Skip to content

Commit d82b3ee

Browse files
committed
Pass scheduler feature as required parameter.
1 parent da15d6a commit d82b3ee

9 files changed

+21
-21
lines changed

dracoon/src/main/java/ch/cyberduck/core/sds/SDSEncryptionBulkFeature.java

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,7 @@
2020
import ch.cyberduck.core.PathContainerService;
2121
import ch.cyberduck.core.exception.BackgroundException;
2222
import ch.cyberduck.core.features.Bulk;
23-
import ch.cyberduck.core.features.Scheduler;
2423
import ch.cyberduck.core.preferences.HostPreferencesFactory;
25-
import ch.cyberduck.core.sds.io.swagger.client.model.UserFileKeySetRequest;
2624
import ch.cyberduck.core.transfer.Transfer;
2725
import ch.cyberduck.core.transfer.TransferItem;
2826
import ch.cyberduck.core.transfer.TransferStatus;
@@ -31,20 +29,21 @@
3129
import org.apache.logging.log4j.Logger;
3230

3331
import java.util.HashMap;
34-
import java.util.List;
3532
import java.util.Map;
3633

3734
public class SDSEncryptionBulkFeature implements Bulk<Void> {
3835
private static final Logger log = LogManager.getLogger(SDSEncryptionBulkFeature.class);
3936

4037
private final SDSSession session;
4138
private final SDSTripleCryptEncryptorFeature triplecrypt;
39+
private final SDSMissingFileKeysSchedulerFeature scheduler;
4240

4341
private final PathContainerService containerService
4442
= new SDSPathContainerService();
4543

46-
public SDSEncryptionBulkFeature(final SDSSession session, final SDSNodeIdProvider nodeid) {
44+
public SDSEncryptionBulkFeature(final SDSSession session, final SDSNodeIdProvider nodeid, final SDSMissingFileKeysSchedulerFeature scheduler) {
4745
this.session = session;
46+
this.scheduler = scheduler;
4847
this.triplecrypt = new SDSTripleCryptEncryptorFeature(session, nodeid);
4948
}
5049

@@ -93,7 +92,6 @@ public void post(final Transfer.Type type, final Map<TransferItem, TransferStatu
9392
default:
9493
if(HostPreferencesFactory.get(session.getHost()).getBoolean("sds.encryption.missingkeys.upload")) {
9594
if(session.userAccount().isEncryptionEnabled()) {
96-
final Scheduler<List<UserFileKeySetRequest>> scheduler = session.getFeature(Scheduler.class);
9795
final Map<Path, Boolean> rooms = this.getRoomEncryptionStatus(files);
9896
for(Map.Entry<TransferItem, TransferStatus> entry : files.entrySet()) {
9997
final Path file = entry.getKey().remote;

dracoon/src/main/java/ch/cyberduck/core/sds/SDSSession.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -638,7 +638,7 @@ public <T> T _getFeature(final Class<T> type) {
638638
return (T) new SDSDelegatingCopyFeature(this, nodeid, new SDSCopyFeature(this, nodeid));
639639
}
640640
if(type == Bulk.class) {
641-
return (T) new SDSEncryptionBulkFeature(this, nodeid);
641+
return (T) new SDSEncryptionBulkFeature(this, nodeid, scheduler);
642642
}
643643
if(type == UrlProvider.class) {
644644
return (T) new SDSUrlProvider(this);

dracoon/src/test/java/ch/cyberduck/core/sds/SDSDelegatingCopyFeatureTest.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -199,7 +199,7 @@ public void testCopyFromEncryptedDataRoom() throws Exception {
199199
final TransferStatus status = new TransferStatus();
200200
status.setLength(content.length);
201201
final Path test = new Path(room1, new AlphanumericRandomStringService().random(), EnumSet.of(Path.Type.file));
202-
final SDSEncryptionBulkFeature bulk = new SDSEncryptionBulkFeature(session, nodeid);
202+
final SDSEncryptionBulkFeature bulk = new SDSEncryptionBulkFeature(session, nodeid, new SDSMissingFileKeysSchedulerFeature(session, nodeid));
203203
bulk.pre(Transfer.Type.upload, Collections.singletonMap(new TransferItem(test), status), new DisabledConnectionCallback());
204204
final TripleCryptWriteFeature writer = new TripleCryptWriteFeature(session, nodeid, new SDSDirectS3MultipartWriteFeature(session, nodeid));
205205
final StatusOutputStream<Node> out = writer.write(test, status, new DisabledConnectionCallback());
@@ -299,7 +299,7 @@ public void testCopyFileWithRenameBetweenEncryptedDataRooms() throws Exception {
299299
final TransferStatus status = new TransferStatus();
300300
status.setLength(content.length);
301301
final Path test = new Path(room1, new AlphanumericRandomStringService().random(), EnumSet.of(Path.Type.file));
302-
final SDSEncryptionBulkFeature bulk = new SDSEncryptionBulkFeature(session, nodeid);
302+
final SDSEncryptionBulkFeature bulk = new SDSEncryptionBulkFeature(session, nodeid, new SDSMissingFileKeysSchedulerFeature(session, nodeid));
303303
bulk.pre(Transfer.Type.upload, Collections.singletonMap(new TransferItem(test), status), new DisabledConnectionCallback());
304304
final TripleCryptWriteFeature writer = new TripleCryptWriteFeature(session, nodeid, new SDSDirectS3MultipartWriteFeature(session, nodeid));
305305
final StatusOutputStream<Node> out = writer.write(test, status, new DisabledConnectionCallback());
@@ -356,7 +356,7 @@ public void testCopyFileSameNameBetweenEncryptedDataRooms() throws Exception {
356356
final TransferStatus status = new TransferStatus();
357357
status.setLength(content.length);
358358
final Path test = new Path(room1, new AlphanumericRandomStringService().random(), EnumSet.of(Path.Type.file));
359-
final SDSEncryptionBulkFeature bulk = new SDSEncryptionBulkFeature(session, nodeid);
359+
final SDSEncryptionBulkFeature bulk = new SDSEncryptionBulkFeature(session, nodeid, new SDSMissingFileKeysSchedulerFeature(session, nodeid));
360360
bulk.pre(Transfer.Type.upload, Collections.singletonMap(new TransferItem(test), status), new DisabledConnectionCallback());
361361
final TripleCryptWriteFeature writer = new TripleCryptWriteFeature(session, nodeid, new SDSDirectS3MultipartWriteFeature(session, nodeid));
362362
final StatusOutputStream<Node> out = writer.write(test, status, new DisabledConnectionCallback());

dracoon/src/test/java/ch/cyberduck/core/sds/SDSDelegatingMoveFeatureTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,7 @@ public void testMoveFromEncryptedDataRoom() throws Exception {
148148
final TransferStatus status = new TransferStatus();
149149
status.setLength(content.length);
150150
final Path test = new Path(room1, new AlphanumericRandomStringService().random(), EnumSet.of(Path.Type.file));
151-
final SDSEncryptionBulkFeature bulk = new SDSEncryptionBulkFeature(session, nodeid);
151+
final SDSEncryptionBulkFeature bulk = new SDSEncryptionBulkFeature(session, nodeid, new SDSMissingFileKeysSchedulerFeature(session, nodeid));
152152
bulk.pre(Transfer.Type.upload, Collections.singletonMap(new TransferItem(test), status), new DisabledConnectionCallback());
153153
final TripleCryptWriteFeature writer = new TripleCryptWriteFeature(session, nodeid, new SDSDirectS3MultipartWriteFeature(session, nodeid));
154154
final StatusOutputStream<Node> out = writer.write(test, status, new DisabledConnectionCallback());
@@ -239,7 +239,7 @@ public void testMoveBetweenEncryptedDataRooms() throws Exception {
239239
final TransferStatus status = new TransferStatus();
240240
status.setLength(content.length);
241241
final Path test = new Path(room1, new AlphanumericRandomStringService().random(), EnumSet.of(Path.Type.file));
242-
final SDSEncryptionBulkFeature bulk = new SDSEncryptionBulkFeature(session, nodeid);
242+
final SDSEncryptionBulkFeature bulk = new SDSEncryptionBulkFeature(session, nodeid, new SDSMissingFileKeysSchedulerFeature(session, nodeid));
243243
bulk.pre(Transfer.Type.upload, Collections.singletonMap(new TransferItem(test), status), new DisabledConnectionCallback());
244244
final TripleCryptWriteFeature writer = new TripleCryptWriteFeature(session, nodeid, new SDSDirectS3MultipartWriteFeature(session, nodeid));
245245
final StatusOutputStream<Node> out = writer.write(test, status, new DisabledConnectionCallback());

dracoon/src/test/java/ch/cyberduck/core/sds/SDSDirectS3UploadFeatureTest.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -225,7 +225,7 @@ public void testTripleCryptUploadBelowMultipartSize() throws Exception {
225225
final TransferStatus status = new TransferStatus();
226226
status.setFilekey(SDSTripleCryptEncryptorFeature.generateFileKey());
227227
status.setLength(random.length);
228-
final SDSEncryptionBulkFeature bulk = new SDSEncryptionBulkFeature(session, nodeid);
228+
final SDSEncryptionBulkFeature bulk = new SDSEncryptionBulkFeature(session, nodeid, new SDSMissingFileKeysSchedulerFeature(session, nodeid));
229229
bulk.pre(Transfer.Type.upload, Collections.singletonMap(new TransferItem(test, local), status), new DisabledConnectionCallback());
230230
final Node node = feature.upload(new SDSDirectS3WriteFeature(session, nodeid), test, local, new BandwidthThrottle(BandwidthThrottle.UNLIMITED),
231231
new DisabledProgressListener(), new DisabledStreamListener(), status, new DisabledLoginCallback());
@@ -264,7 +264,7 @@ public void testTripleCryptUploadExactMultipartSize() throws Exception {
264264
final TransferStatus status = new TransferStatus();
265265
status.setFilekey(SDSTripleCryptEncryptorFeature.generateFileKey());
266266
status.setLength(random.length);
267-
final SDSEncryptionBulkFeature bulk = new SDSEncryptionBulkFeature(session, nodeid);
267+
final SDSEncryptionBulkFeature bulk = new SDSEncryptionBulkFeature(session, nodeid, new SDSMissingFileKeysSchedulerFeature(session, nodeid));
268268
bulk.pre(Transfer.Type.upload, Collections.singletonMap(new TransferItem(test, local), status), new DisabledConnectionCallback());
269269
final Node node = feature.upload(new SDSDirectS3WriteFeature(session, nodeid), test, local, new BandwidthThrottle(BandwidthThrottle.UNLIMITED),
270270
new DisabledProgressListener(), new DisabledStreamListener(), status, new DisabledLoginCallback());
@@ -303,7 +303,7 @@ public void testTripleCryptUploadMultipleParts() throws Exception {
303303
final TransferStatus status = new TransferStatus();
304304
status.setFilekey(SDSTripleCryptEncryptorFeature.generateFileKey());
305305
status.setLength(random.length);
306-
final SDSEncryptionBulkFeature bulk = new SDSEncryptionBulkFeature(session, nodeid);
306+
final SDSEncryptionBulkFeature bulk = new SDSEncryptionBulkFeature(session, nodeid, new SDSMissingFileKeysSchedulerFeature(session, nodeid));
307307
bulk.pre(Transfer.Type.upload, Collections.singletonMap(new TransferItem(test, local), status), new DisabledConnectionCallback());
308308
final Node node = feature.upload(new SDSDirectS3WriteFeature(session, nodeid), test, local, new BandwidthThrottle(BandwidthThrottle.UNLIMITED),
309309
new DisabledProgressListener(), new DisabledStreamListener(), status, new DisabledLoginCallback());

dracoon/src/test/java/ch/cyberduck/core/sds/SDSEncryptionBulkFeatureTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ public void testMissingEncryptionStatus() throws Exception {
4747
room.attributes().setCustom(Collections.emptyMap());
4848
final Path test = new Path(room, new AlphanumericRandomStringService().random(), EnumSet.of(Path.Type.file));
4949
final TransferStatus status = new TransferStatus();
50-
new SDSEncryptionBulkFeature(session, nodeid).pre(Transfer.Type.upload, Collections.singletonMap(new TransferItem(test), status), new DisabledConnectionCallback());
50+
new SDSEncryptionBulkFeature(session, nodeid, new SDSMissingFileKeysSchedulerFeature(session, nodeid)).pre(Transfer.Type.upload, Collections.singletonMap(new TransferItem(test), status), new DisabledConnectionCallback());
5151
assertNotNull(status.getFilekey());
5252
}
5353
}

dracoon/src/test/java/ch/cyberduck/core/sds/SDSMissingFileKeysSchedulerFeatureTest.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ public void testMissingKeys() throws Exception {
8787
final TransferStatus status = new TransferStatus();
8888
status.setLength(content.length);
8989
final Path test = new Path(room, UUID.randomUUID().toString(), EnumSet.of(Path.Type.file));
90-
final SDSEncryptionBulkFeature bulk = new SDSEncryptionBulkFeature(session, nodeid);
90+
final SDSEncryptionBulkFeature bulk = new SDSEncryptionBulkFeature(session, nodeid, new SDSMissingFileKeysSchedulerFeature(session, nodeid));
9191
bulk.pre(Transfer.Type.upload, Collections.singletonMap(new TransferItem(test), status), new DisabledConnectionCallback());
9292
final TripleCryptWriteFeature writer = new TripleCryptWriteFeature(session, nodeid, new SDSDirectS3MultipartWriteFeature(session, nodeid));
9393
final StatusOutputStream<Node> out = writer.write(test, status, new DisabledConnectionCallback());
@@ -145,7 +145,7 @@ public void testFileKeyMigration() throws Exception {
145145
final TransferStatus status = new TransferStatus();
146146
status.setLength(content.length);
147147
final Path test = new Path(room, UUID.randomUUID().toString(), EnumSet.of(Path.Type.file));
148-
final SDSEncryptionBulkFeature bulk = new SDSEncryptionBulkFeature(session, nodeid);
148+
final SDSEncryptionBulkFeature bulk = new SDSEncryptionBulkFeature(session, nodeid, new SDSMissingFileKeysSchedulerFeature(session, nodeid));
149149
bulk.pre(Transfer.Type.upload, Collections.singletonMap(new TransferItem(test), status), new DisabledConnectionCallback());
150150
final TripleCryptWriteFeature writer = new TripleCryptWriteFeature(session, nodeid, new SDSDirectS3MultipartWriteFeature(session, nodeid));
151151
final StatusOutputStream<Node> out = writer.write(test, status, new DisabledConnectionCallback());
@@ -203,7 +203,7 @@ public void testWrongPassword() throws Exception {
203203
final TransferStatus status = new TransferStatus();
204204
status.setLength(content.length);
205205
final Path test = new Path(room, UUID.randomUUID().toString(), EnumSet.of(Path.Type.file));
206-
final SDSEncryptionBulkFeature bulk = new SDSEncryptionBulkFeature(session, nodeid);
206+
final SDSEncryptionBulkFeature bulk = new SDSEncryptionBulkFeature(session, nodeid, new SDSMissingFileKeysSchedulerFeature(session, nodeid));
207207
bulk.pre(Transfer.Type.upload, Collections.singletonMap(new TransferItem(test), status), new DisabledConnectionCallback());
208208
final TripleCryptWriteFeature writer = new TripleCryptWriteFeature(session, nodeid, new SDSDirectS3MultipartWriteFeature(session, nodeid));
209209
final StatusOutputStream<Node> out = writer.write(test, status, new DisabledConnectionCallback());

dracoon/src/test/java/ch/cyberduck/core/sds/triplecrypt/TripleCryptReadFeatureTest.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
import ch.cyberduck.core.sds.SDSDirectS3MultipartWriteFeature;
3434
import ch.cyberduck.core.sds.SDSDirectoryFeature;
3535
import ch.cyberduck.core.sds.SDSEncryptionBulkFeature;
36+
import ch.cyberduck.core.sds.SDSMissingFileKeysSchedulerFeature;
3637
import ch.cyberduck.core.sds.SDSNodeIdProvider;
3738
import ch.cyberduck.core.sds.SDSReadFeature;
3839
import ch.cyberduck.core.sds.io.swagger.client.api.NodesApi;
@@ -76,7 +77,7 @@ public void testPartialRead() throws Exception {
7677
final TransferStatus status = new TransferStatus();
7778
status.setLength(content.length);
7879
final Path test = new Path(room, UUID.randomUUID().toString(), EnumSet.of(Path.Type.file));
79-
final SDSEncryptionBulkFeature bulk = new SDSEncryptionBulkFeature(session, nodeid);
80+
final SDSEncryptionBulkFeature bulk = new SDSEncryptionBulkFeature(session, nodeid, new SDSMissingFileKeysSchedulerFeature(session, nodeid));
8081
bulk.pre(Transfer.Type.upload, Collections.singletonMap(new TransferItem(test), status), new DisabledConnectionCallback());
8182
final TripleCryptWriteFeature writer = new TripleCryptWriteFeature(session, nodeid, new SDSDirectS3MultipartWriteFeature(session, nodeid));
8283
final StatusOutputStream<Node> out = writer.write(test, status, new DisabledConnectionCallback());

dracoon/src/test/java/ch/cyberduck/core/sds/triplecrypt/TripleCryptWriteFeatureTest.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
import ch.cyberduck.core.sds.SDSDirectS3MultipartWriteFeature;
3333
import ch.cyberduck.core.sds.SDSDirectoryFeature;
3434
import ch.cyberduck.core.sds.SDSEncryptionBulkFeature;
35+
import ch.cyberduck.core.sds.SDSMissingFileKeysSchedulerFeature;
3536
import ch.cyberduck.core.sds.SDSNodeIdProvider;
3637
import ch.cyberduck.core.sds.SDSReadFeature;
3738
import ch.cyberduck.core.sds.io.swagger.client.api.NodesApi;
@@ -76,7 +77,7 @@ public void testWrite() throws Exception {
7677
status.setLength(content.length);
7778
status.setChecksum(new MD5ChecksumCompute().compute(new ByteArrayInputStream(content), new TransferStatus()));
7879
final Path test = new Path(room, UUID.randomUUID().toString(), EnumSet.of(Path.Type.file));
79-
final SDSEncryptionBulkFeature bulk = new SDSEncryptionBulkFeature(session, nodeid);
80+
final SDSEncryptionBulkFeature bulk = new SDSEncryptionBulkFeature(session, nodeid, new SDSMissingFileKeysSchedulerFeature(session, nodeid));
8081
bulk.pre(Transfer.Type.upload, Collections.singletonMap(new TransferItem(test), status), new DisabledConnectionCallback());
8182
final StatusOutputStream<Node> out = writer.write(test, status, new DisabledConnectionCallback());
8283
assertNotNull(out);
@@ -115,7 +116,7 @@ public void testWriteMultipart() throws Exception {
115116
final TransferStatus status = new TransferStatus();
116117
status.setLength(content.length);
117118
final Path test = new Path(room, UUID.randomUUID().toString(), EnumSet.of(Path.Type.file));
118-
final SDSEncryptionBulkFeature bulk = new SDSEncryptionBulkFeature(session, nodeid);
119+
final SDSEncryptionBulkFeature bulk = new SDSEncryptionBulkFeature(session, nodeid, new SDSMissingFileKeysSchedulerFeature(session, nodeid));
119120
bulk.pre(Transfer.Type.upload, Collections.singletonMap(new TransferItem(test), status), new DisabledConnectionCallback());
120121
final TripleCryptWriteFeature writer = new TripleCryptWriteFeature(session, nodeid, new SDSDirectS3MultipartWriteFeature(session, nodeid));
121122
final StatusOutputStream<Node> out = writer.write(test, status, new DisabledConnectionCallback());

0 commit comments

Comments
 (0)