Search in sources :

Example 1 with TransferExtension

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);
}
Also used : AppCredentialStore(org.dataportabilityproject.spi.cloud.storage.AppCredentialStore) JobStore(org.dataportabilityproject.spi.cloud.storage.JobStore) SettingsExtension(org.dataportabilityproject.config.extension.SettingsExtension) CloudExtension(org.dataportabilityproject.spi.cloud.extension.CloudExtension) NetHttpTransport(com.google.api.client.http.javanet.NetHttpTransport) SymmetricKeyGenerator(org.dataportabilityproject.security.SymmetricKeyGenerator) RsaSymmetricKeyGenerator(org.dataportabilityproject.security.RsaSymmetricKeyGenerator) AesSymmetricKeyGenerator(org.dataportabilityproject.security.AesSymmetricKeyGenerator) Injector(com.google.inject.Injector) TransferExtension(org.dataportabilityproject.spi.transfer.extension.TransferExtension) AsymmetricKeyGenerator(org.dataportabilityproject.security.AsymmetricKeyGenerator) AesSymmetricKeyGenerator(org.dataportabilityproject.security.AesSymmetricKeyGenerator) RsaSymmetricKeyGenerator(org.dataportabilityproject.security.RsaSymmetricKeyGenerator)

Example 2 with TransferExtension

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());
}
Also used : TransferExtension(org.dataportabilityproject.spi.transfer.extension.TransferExtension) Singleton(com.google.inject.Singleton) Provides(com.google.inject.Provides)

Example 3 with TransferExtension

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());
}
Also used : TransferExtension(org.dataportabilityproject.spi.transfer.extension.TransferExtension) Singleton(com.google.inject.Singleton) Provides(com.google.inject.Provides)

Aggregations

TransferExtension (org.dataportabilityproject.spi.transfer.extension.TransferExtension)3 Provides (com.google.inject.Provides)2 Singleton (com.google.inject.Singleton)2 NetHttpTransport (com.google.api.client.http.javanet.NetHttpTransport)1 Injector (com.google.inject.Injector)1 SettingsExtension (org.dataportabilityproject.config.extension.SettingsExtension)1 AesSymmetricKeyGenerator (org.dataportabilityproject.security.AesSymmetricKeyGenerator)1 AsymmetricKeyGenerator (org.dataportabilityproject.security.AsymmetricKeyGenerator)1 RsaSymmetricKeyGenerator (org.dataportabilityproject.security.RsaSymmetricKeyGenerator)1 SymmetricKeyGenerator (org.dataportabilityproject.security.SymmetricKeyGenerator)1 CloudExtension (org.dataportabilityproject.spi.cloud.extension.CloudExtension)1 AppCredentialStore (org.dataportabilityproject.spi.cloud.storage.AppCredentialStore)1 JobStore (org.dataportabilityproject.spi.cloud.storage.JobStore)1