Skip to content

Commit

Permalink
Merge remote-tracking branch 'blessed/master' into DD-1356-data-suppl…
Browse files Browse the repository at this point in the history
…ier-VLT008
  • Loading branch information
jo-pol committed Jun 30, 2023
2 parents b49fb74 + a2a510e commit 2cd9f60
Show file tree
Hide file tree
Showing 5 changed files with 18 additions and 26 deletions.
3 changes: 3 additions & 0 deletions src/main/assembly/dist/cfg/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,16 +28,19 @@ server:

ingestFlow:
import:
apiKey: 'changeme' # overrides the default
inbox: /var/opt/dans.knaw.nl/tmp/import/inbox
outbox: /var/opt/dans.knaw.nl/tmp/import/outbox

migration:
apiKey: 'changeme' # overrides the default
inbox: /var/opt/dans.knaw.nl/tmp/migration/deposits
outbox: /var/opt/dans.knaw.nl/tmp/migration/out
dataSuppliers:
USER001: The Organization Name

autoIngest:
apiKey: 'changeme' # overrides the default
inbox: /var/opt/dans.knaw.nl/tmp/auto-ingest/inbox
outbox: /var/opt/dans.knaw.nl/tmp/auto-ingest/outbox
depositorRole: swordupdater
Expand Down
24 changes: 4 additions & 20 deletions src/main/java/nl/knaw/dans/ingest/DdIngestFlowApplication.java
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,6 @@
import nl.knaw.dans.ingest.core.CsvMessageBodyWriter;
import nl.knaw.dans.ingest.core.ImportArea;
import nl.knaw.dans.ingest.core.TaskEvent;
import nl.knaw.dans.ingest.core.config.IngestAreaConfig;
import nl.knaw.dans.ingest.core.sequencing.TargetedTaskSequenceManager;
import nl.knaw.dans.ingest.core.service.BlockedTargetService;
import nl.knaw.dans.ingest.core.service.BlockedTargetServiceImpl;
Expand All @@ -48,7 +47,6 @@
import nl.knaw.dans.ingest.resources.EventsResource;
import nl.knaw.dans.ingest.resources.ImportsResource;
import nl.knaw.dans.ingest.resources.MigrationsResource;
import nl.knaw.dans.lib.dataverse.DataverseClient;
import org.glassfish.jersey.media.multipart.MultiPartFeature;

import java.io.IOException;
Expand Down Expand Up @@ -101,40 +99,34 @@ public void run(final DdIngestFlowConfiguration configuration, final Environment
final BlockedTargetService blockedTargetService = new UnitOfWorkAwareProxyFactory(hibernateBundle)
.create(BlockedTargetServiceImpl.class, BlockedTargetDAO.class, blockedTargetDAO);

// validate depositors
final EnqueuingService enqueuingService = new EnqueuingServiceImpl(targetedTaskSequenceManager, 3 /* Must support importArea, migrationArea and autoIngestArea */);
final TaskEventDAO taskEventDAO = new TaskEventDAO(hibernateBundle.getSessionFactory());
final TaskEventService taskEventService = new UnitOfWorkAwareProxyFactory(hibernateBundle).create(TaskEventServiceImpl.class, TaskEventDAO.class, taskEventDAO);
final var taskFactoryBuilder = new DepositIngestTaskFactoryBuilder(configuration, dansBagValidator, blockedTargetService);

final var importAreaConfig = ingestFlowConfig.getImportConfig();
final var migrationAreaConfig = ingestFlowConfig.getMigration();
final var autoIngestAreaConfig = ingestFlowConfig.getAutoIngest();

final var dataverseClientImportArea = getDataverseClient(configuration, importAreaConfig);
final var dataverseClientMigrationArea = getDataverseClient(configuration, migrationAreaConfig);
final var dataverseClientAutoIngestArea = getDataverseClient(configuration, autoIngestAreaConfig);

final var taskFactoryBuilder = new DepositIngestTaskFactoryBuilder(configuration, dansBagValidator, blockedTargetService);

final ImportArea importArea = new ImportArea(
importAreaConfig.getInbox(),
importAreaConfig.getOutbox(),
taskFactoryBuilder.createTaskFactory(importAreaConfig, dataverseClientImportArea, false),
taskFactoryBuilder.createTaskFactory(importAreaConfig, false),
taskEventService,
enqueuingService);

// Can be phased out after migration.
final ImportArea migrationArea = new ImportArea(
migrationAreaConfig.getInbox(),
migrationAreaConfig.getOutbox(),
taskFactoryBuilder.createTaskFactory(migrationAreaConfig, dataverseClientMigrationArea, true),
taskFactoryBuilder.createTaskFactory(migrationAreaConfig, true),
taskEventService,
enqueuingService);

final AutoIngestArea autoIngestArea = new AutoIngestArea(
autoIngestAreaConfig.getInbox(),
autoIngestAreaConfig.getOutbox(),
taskFactoryBuilder.createTaskFactory(autoIngestAreaConfig, dataverseClientAutoIngestArea, false),
taskFactoryBuilder.createTaskFactory(autoIngestAreaConfig, false),
taskEventService,
enqueuingService
);
Expand All @@ -150,12 +142,4 @@ public void run(final DdIngestFlowConfiguration configuration, final Environment
environment.jersey().register(new BlockedTargetsResource(blockedTargetService));
environment.jersey().register(new CsvMessageBodyWriter());
}

private static DataverseClient getDataverseClient(DdIngestFlowConfiguration configuration, IngestAreaConfig ingestAreaConfig) {
final var dataverseClientFactory = configuration.getDataverse();
if (ingestAreaConfig.getApiKey() != null) {
dataverseClientFactory.setApiKey(ingestAreaConfig.getApiKey());
}
return dataverseClientFactory.build();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,6 @@
import nl.knaw.dans.ingest.core.io.FileServiceImpl;
import nl.knaw.dans.ingest.core.service.mapper.DepositToDvDatasetMetadataMapperFactory;
import nl.knaw.dans.ingest.core.validation.DepositorAuthorizationValidatorImpl;
import nl.knaw.dans.lib.dataverse.DataverseClient;

import java.io.IOException;
import java.net.URISyntaxException;
Expand Down Expand Up @@ -64,7 +63,12 @@ public DepositIngestTaskFactoryBuilder(DdIngestFlowConfiguration configuration,
this.blockedTargetService = blockedTargetService;
}

public DepositIngestTaskFactory createTaskFactory(IngestAreaConfig ingestAreaConfig, DataverseClient dataverseClient, boolean isMigration) throws IOException, URISyntaxException {
public DepositIngestTaskFactory createTaskFactory(IngestAreaConfig ingestAreaConfig, boolean isMigration) throws IOException, URISyntaxException {
final var dataverseClientFactory = configuration.getDataverse();
if (ingestAreaConfig.getApiKey() != null) {
dataverseClientFactory.setApiKey(ingestAreaConfig.getApiKey());
}
final var dataverseClient = dataverseClientFactory.build();
final var ingestFlowConfig = configuration.getIngestFlow();
final var mapperFactory = new DepositToDvDatasetMetadataMapperFactory(
ingestFlowConfig.getIso1ToDataverseLanguage(),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,11 +20,9 @@
import io.dropwizard.jackson.Jackson;
import io.dropwizard.jersey.validation.Validators;
import nl.knaw.dans.ingest.DdIngestFlowConfiguration;
import nl.knaw.dans.ingest.core.config.IngestAreaConfig;
import org.junit.jupiter.api.Test;

import java.io.FileInputStream;
import java.nio.file.Paths;

import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;

Expand All @@ -39,6 +37,6 @@ public void debug_etc_does_not_throw() throws Exception {
final var areaConfig = config.getIngestFlow().getAutoIngest();

assertDoesNotThrow(() -> new DepositIngestTaskFactoryBuilder(config, null, null)
.createTaskFactory(areaConfig, null, false));
.createTaskFactory(areaConfig, false));
}
}
5 changes: 4 additions & 1 deletion src/test/resources/debug-etc/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,18 +13,21 @@ server:

ingestFlow:
import:
apiKey: 'changeme' # overrides the default
inbox: data/import/inbox
outbox: data/import/outbox
dataSuppliers:
someUserAccount123: The Organization Name

migration:
apiKey: 'changeme' # overrides the default
inbox: data/migration/deposits
outbox: data/migration/out
dataSuppliers:
USER001: The Organization Name

autoIngest:
apiKey: 'changeme' # overrides the default
inbox: data/auto-ingest/inbox
outbox: data/auto-ingest/outbox
authorization:
Expand Down Expand Up @@ -66,7 +69,7 @@ ingestFlow:
#
dataverse:
baseUrl: 'http://dar.dans.knaw.nl:8080'
apiKey: 'changeme'
apiKey: 'changeme' # define override value per ingest area
unblockKey: 's3kretKey'
awaitLockStateMaxNumberOfRetries: 30
awaitLockStateMillisecondsBetweenRetries: 500
Expand Down

0 comments on commit 2cd9f60

Please sign in to comment.