Skip to content

Commit 3e33a07

Browse files
kateyeowmorland
andauthored
Implement inMemeoryIdempotentExecutorExtension and update loader and worker (#1210)
* Bump version after publishing and remove the end /'s from the repository URLs * Implement inMemeoryIdempotentExecutorExtension and update loader and worker * Revert "Merge branch 'skippable2' of https://github.com/google/data-transfer-project into skippable2" This reverts commit 21dfbd9, reversing changes made to b90bf5b. --------- Co-authored-by: William Morland <wmorland@fb.com>
1 parent 3d06268 commit 3e33a07

File tree

3 files changed

+31
-7
lines changed

3 files changed

+31
-7
lines changed

portability-spi-transfer/src/main/java/org/datatransferproject/spi/transfer/idempotentexecutor/IdempotentImportExecutorLoader.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,18 +7,17 @@
77

88
public class IdempotentImportExecutorLoader {
99

10-
public static IdempotentImportExecutor load(ExtensionContext extensionContext) {
10+
public static IdempotentImportExecutorExtension load(ExtensionContext extensionContext) {
1111
ImmutableList.Builder<IdempotentImportExecutorExtension> builder = ImmutableList.builder();
1212
ServiceLoader.load(IdempotentImportExecutorExtension.class)
1313
.iterator()
1414
.forEachRemaining(builder::add);
1515
ImmutableList<IdempotentImportExecutorExtension> executors = builder.build();
1616
if (executors.isEmpty()) {
17-
return new InMemoryIdempotentImportExecutor(extensionContext.getMonitor());
17+
return new InMemoryIdempotentImportExecutorExtension();
1818
} else if (executors.size() == 1) {
1919
IdempotentImportExecutorExtension extension = executors.get(0);
20-
extension.initialize();
21-
return extension.getIdempotentImportExecutor(extensionContext);
20+
return extension;
2221
} else {
2322
throw new IllegalStateException("Cannot load multiple IdempotentImportExecutors");
2423
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package org.datatransferproject.spi.transfer.idempotentexecutor;
2+
3+
import org.datatransferproject.api.launcher.ExtensionContext;
4+
import org.datatransferproject.api.launcher.Monitor;
5+
6+
/**
7+
* ImMemory Implementation of IdempotentImportExecutor.
8+
*/
9+
public class InMemoryIdempotentImportExecutorExtension
10+
implements IdempotentImportExecutorExtension {
11+
12+
@Override
13+
public IdempotentImportExecutor getIdempotentImportExecutor(ExtensionContext extensionContext) {
14+
return new InMemoryIdempotentImportExecutor(extensionContext.getMonitor());
15+
}
16+
17+
@Override
18+
public void initialize() {
19+
}
20+
}

portability-transfer/src/main/java/org/datatransferproject/transfer/WorkerMain.java

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@
4444
import org.datatransferproject.spi.transfer.extension.TransferExtension;
4545
import org.datatransferproject.spi.transfer.hooks.JobHooks;
4646
import org.datatransferproject.spi.transfer.idempotentexecutor.IdempotentImportExecutor;
47+
import org.datatransferproject.spi.transfer.idempotentexecutor.IdempotentImportExecutorExtension;
4748
import org.datatransferproject.spi.transfer.idempotentexecutor.IdempotentImportExecutorLoader;
4849
import org.datatransferproject.spi.transfer.provider.TransferCompatibilityProvider;
4950
import org.datatransferproject.spi.transfer.security.SecurityExtension;
@@ -103,10 +104,14 @@ public void initialize() {
103104
SecurityExtensionLoader.getSecurityExtension(extensionContext);
104105
monitor.info(() -> "Using SecurityExtension: " + securityExtension.getClass().getName());
105106

106-
IdempotentImportExecutor idempotentImportExecutor =
107+
IdempotentImportExecutorExtension idempotentImportExecutorExtension =
107108
IdempotentImportExecutorLoader.load(extensionContext);
109+
110+
extensionContext.registerService(
111+
IdempotentImportExecutorExtension.class, idempotentImportExecutorExtension);
112+
108113
monitor.info(
109-
() -> "Using IdempotentImportExecutor: " + idempotentImportExecutor.getClass().getName());
114+
() -> "Using IdempotentImportExecutor: " + idempotentImportExecutorExtension.getClass().getName());
110115

111116
// TODO: make configurable
112117
SymmetricKeyGenerator symmetricKeyGenerator = new AesSymmetricKeyGenerator(monitor);
@@ -122,7 +127,7 @@ public void initialize() {
122127
cloudExtension,
123128
transferExtensions,
124129
securityExtension,
125-
idempotentImportExecutor,
130+
idempotentImportExecutorExtension.getIdempotentImportExecutor(extensionContext),
126131
symmetricKeyGenerator,
127132
jobHooks,
128133
new TransferCompatibilityProvider()));

0 commit comments

Comments
 (0)