use of org.dataportabilityproject.spi.transfer.extension.TransferExtension in project data-transfer-project by google.
the class WorkerMain method initialize.
public void initialize() {
SettingsExtension settingsExtension = getSettingsExtension();
settingsExtension.initialize(null);
WorkerExtensionContext extensionContext = new WorkerExtensionContext(settingsExtension);
// TODO this should be moved into a service extension
extensionContext.registerService(HttpTransport.class, new NetHttpTransport());
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);
logger.info("Using CloudExtension: {} ", cloudExtension.getClass().getName());
JobStore jobStore = cloudExtension.getJobStore();
extensionContext.registerService(JobStore.class, jobStore);
AppCredentialStore appCredentialStore = cloudExtension.getAppCredentialStore();
extensionContext.registerService(AppCredentialStore.class, appCredentialStore);
List<TransferExtension> transferExtensions = getTransferExtensions();
// TODO: make configurable
SymmetricKeyGenerator symmetricKeyGenerator = new AesSymmetricKeyGenerator();
AsymmetricKeyGenerator asymmetricKeyGenerator = new RsaSymmetricKeyGenerator();
Injector injector = Guice.createInjector(new WorkerModule(extensionContext, cloudExtension, transferExtensions, symmetricKeyGenerator, asymmetricKeyGenerator));
worker = injector.getInstance(Worker.class);
}
use of org.dataportabilityproject.spi.transfer.extension.TransferExtension in project data-transfer-project by google.
the class WorkerModule method getExporter.
@Provides
@Singleton
Exporter getExporter(ImmutableList<TransferExtension> transferExtensions) {
TransferExtension extension = findTransferExtension(transferExtensions, JobMetadata.getExportService());
extension.initialize(context);
return extension.getExporter(JobMetadata.getDataType());
}
use of org.dataportabilityproject.spi.transfer.extension.TransferExtension in project data-transfer-project by google.
the class WorkerModule method getImporter.
@Provides
@Singleton
Importer getImporter(ImmutableList<TransferExtension> transferExtensions) {
TransferExtension extension = findTransferExtension(transferExtensions, JobMetadata.getImportService());
extension.initialize(context);
return extension.getImporter(JobMetadata.getDataType());
}
Aggregations