use of org.datatransferproject.spi.transfer.security.SecurityExtension in project data-transfer-project by google.
the class WorkerMain method initialize.
public void initialize() {
Monitor monitor = loadMonitor();
SettingsExtension settingsExtension = getSettingsExtension();
settingsExtension.initialize();
WorkerExtensionContext extensionContext = new WorkerExtensionContext(settingsExtension, monitor);
// TODO this should be moved into a service extension
extensionContext.registerService(HttpTransport.class, new NetHttpTransport());
extensionContext.registerService(OkHttpClient.class, new OkHttpClient.Builder().build());
extensionContext.registerService(JsonFactory.class, new JacksonFactory());
ServiceLoader.load(ServiceExtension.class).iterator().forEachRemaining(serviceExtension -> serviceExtension.initialize(extensionContext));
// TODO: verify that this is the cloud extension that is specified in the configuration
CloudExtension cloudExtension = getCloudExtension();
cloudExtension.initialize(extensionContext);
monitor.info(() -> "Using CloudExtension: " + cloudExtension.getClass().getName());
JobStore jobStore = cloudExtension.getJobStore();
extensionContext.registerService(JobStore.class, jobStore);
extensionContext.registerService(TemporaryPerJobDataStore.class, jobStore);
AppCredentialStore appCredentialStore = cloudExtension.getAppCredentialStore();
extensionContext.registerService(AppCredentialStore.class, appCredentialStore);
List<TransferExtension> transferExtensions = getTransferExtensions(monitor);
// Load security extension and services
SecurityExtension securityExtension = SecurityExtensionLoader.getSecurityExtension(extensionContext);
monitor.info(() -> "Using SecurityExtension: " + securityExtension.getClass().getName());
IdempotentImportExecutor idempotentImportExecutor = IdempotentImportExecutorLoader.load(extensionContext);
monitor.info(() -> "Using IdempotentImportExecutor: " + idempotentImportExecutor.getClass().getName());
// TODO: make configurable
SymmetricKeyGenerator symmetricKeyGenerator = new AesSymmetricKeyGenerator(monitor);
JobHooks jobHooks = loadJobHooks();
Injector injector = null;
try {
injector = Guice.createInjector(new WorkerModule(extensionContext, cloudExtension, transferExtensions, securityExtension, idempotentImportExecutor, symmetricKeyGenerator, jobHooks));
} catch (Exception e) {
monitor.severe(() -> "Unable to initialize Guice in Worker", e);
throw e;
}
worker = injector.getInstance(Worker.class);
// Reset the JobMetadata in case set previously when running SingleVMMain
JobMetadata.reset();
}
Aggregations