Repository: incubator-unomi Updated Branches: refs/heads/master faa9175ca -> f76ef4996
UNOMI-128 : Refactoring save/update/delete running import/export config Project: http://git-wip-us.apache.org/repos/asf/incubator-unomi/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-unomi/commit/f76ef499 Tree: http://git-wip-us.apache.org/repos/asf/incubator-unomi/tree/f76ef499 Diff: http://git-wip-us.apache.org/repos/asf/incubator-unomi/diff/f76ef499 Branch: refs/heads/master Commit: f76ef49965df3e5b2e989e582235c7381d7b1afb Parents: faa9175 Author: Abdelkader Midani <[email protected]> Authored: Tue Oct 24 19:05:39 2017 +0200 Committer: Abdelkader Midani <[email protected]> Committed: Tue Oct 24 19:05:46 2017 +0200 ---------------------------------------------------------------------- .../router/api/ImportExportConfiguration.java | 20 ++++++++++++++++++++ .../ImportExportConfigurationService.java | 2 +- .../ExportRouteCompletionProcessor.java | 2 +- .../ImportRouteCompletionProcessor.java | 2 +- .../core/processor/LineSplitProcessor.java | 3 ++- .../ProfileImportFromSourceRouteBuilder.java | 4 +++- .../ExportConfigurationServiceEndPoint.java | 2 +- .../ImportConfigurationServiceEndPoint.java | 2 +- .../ExportConfigurationServiceImpl.java | 12 +++++++----- .../ImportConfigurationServiceImpl.java | 14 +++++++------- .../services/ProfileImportServiceImpl.java | 2 +- 11 files changed, 45 insertions(+), 20 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/f76ef499/extensions/router/router-api/src/main/java/org/apache/unomi/router/api/ImportExportConfiguration.java ---------------------------------------------------------------------- diff --git a/extensions/router/router-api/src/main/java/org/apache/unomi/router/api/ImportExportConfiguration.java b/extensions/router/router-api/src/main/java/org/apache/unomi/router/api/ImportExportConfiguration.java index 10209bd..d048a2e 100644 --- a/extensions/router/router-api/src/main/java/org/apache/unomi/router/api/ImportExportConfiguration.java +++ b/extensions/router/router-api/src/main/java/org/apache/unomi/router/api/ImportExportConfiguration.java @@ -37,6 +37,7 @@ public class ImportExportConfiguration extends Item { private String multiValueSeparator = ";"; private String multiValueDelimiter = ""; private boolean active; + private boolean delayedUpdate; private String status; private List<Map<String, Object>> executions = new ArrayList(); @@ -133,6 +134,25 @@ public class ImportExportConfiguration extends Item { } /** + * Retrieves the import configuration delayedUpdate flag. + * + * @return true if the running import configuration update was delayed (Running config when trying to update) + */ + public boolean isDelayedUpdate() { + return this.delayedUpdate; + } + + /** + * Sets the delayedUpdate flag true/false. + * + * @param delayedUpdate a boolean to set to delay or not the running import configuration update + */ + public void setDelayedUpdate(boolean delayedUpdate) { + this.delayedUpdate = delayedUpdate; + } + + + /** * Retrieves the import configuration status for last execution. * * @return status of the last execution http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/f76ef499/extensions/router/router-api/src/main/java/org/apache/unomi/router/api/services/ImportExportConfigurationService.java ---------------------------------------------------------------------- diff --git a/extensions/router/router-api/src/main/java/org/apache/unomi/router/api/services/ImportExportConfigurationService.java b/extensions/router/router-api/src/main/java/org/apache/unomi/router/api/services/ImportExportConfigurationService.java index 7d2a82d..0ee8753 100644 --- a/extensions/router/router-api/src/main/java/org/apache/unomi/router/api/services/ImportExportConfigurationService.java +++ b/extensions/router/router-api/src/main/java/org/apache/unomi/router/api/services/ImportExportConfigurationService.java @@ -49,7 +49,7 @@ public interface ImportExportConfigurationService<T> { * @param configuration the import/export configuration to be saved * @return the newly saved import/export configuration */ - T save(T configuration); + T save(T configuration, boolean updateRunningRoute); /** * Deletes the import/export configuration identified by the specified identifier. http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/f76ef499/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/processor/ExportRouteCompletionProcessor.java ---------------------------------------------------------------------- diff --git a/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/processor/ExportRouteCompletionProcessor.java b/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/processor/ExportRouteCompletionProcessor.java index d1cbe97..309c7c2 100644 --- a/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/processor/ExportRouteCompletionProcessor.java +++ b/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/processor/ExportRouteCompletionProcessor.java @@ -51,7 +51,7 @@ public class ExportRouteCompletionProcessor implements Processor { exportConfiguration = (ExportConfiguration) RouterUtils.addExecutionEntry(exportConfiguration, execution, executionsHistorySize); exportConfiguration.setStatus(RouterConstants.CONFIG_STATUS_COMPLETE_SUCCESS); - exportConfigurationService.save(exportConfiguration); + exportConfigurationService.save(exportConfiguration, false); logger.info("Processing route {} completed.", exchange.getFromRouteId()); } http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/f76ef499/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/processor/ImportRouteCompletionProcessor.java ---------------------------------------------------------------------- diff --git a/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/processor/ImportRouteCompletionProcessor.java b/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/processor/ImportRouteCompletionProcessor.java index efefe6b..38797e3 100644 --- a/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/processor/ImportRouteCompletionProcessor.java +++ b/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/processor/ImportRouteCompletionProcessor.java @@ -85,7 +85,7 @@ public class ImportRouteCompletionProcessor implements Processor { } else if (failureCount == 0 && successCount > 0) { importConfiguration.setStatus(RouterConstants.CONFIG_STATUS_COMPLETE_SUCCESS); } - importConfigurationService.save(importConfiguration); + importConfigurationService.save(importConfiguration, false); logger.info("Processing route {} completed. completion date: {}.", exchange.getFromRouteId(), new Date()); } http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/f76ef499/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/processor/LineSplitProcessor.java ---------------------------------------------------------------------- diff --git a/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/processor/LineSplitProcessor.java b/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/processor/LineSplitProcessor.java index 4d128a4..7240f90 100644 --- a/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/processor/LineSplitProcessor.java +++ b/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/processor/LineSplitProcessor.java @@ -113,7 +113,8 @@ public class LineSplitProcessor implements Processor { if (profileData.length > fieldsMapping.get(fieldMappingKey)) { try { - if (propertyType.getValueTypeId().equals("string") || propertyType.getValueTypeId().equals("email")) { + if (propertyType.getValueTypeId().equals("string") || propertyType.getValueTypeId().equals("email") || + propertyType.getValueTypeId().equals("date")) { if (BooleanUtils.isTrue(propertyType.isMultivalued())) { String multivalueArray = profileData[fieldsMapping.get(fieldMappingKey)].trim(); if (StringUtils.isNotBlank(multiValueDelimiter) && multiValueDelimiter.length() == 2) { http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/f76ef499/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/route/ProfileImportFromSourceRouteBuilder.java ---------------------------------------------------------------------- diff --git a/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/route/ProfileImportFromSourceRouteBuilder.java b/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/route/ProfileImportFromSourceRouteBuilder.java index fdaa2c1..90599f9 100644 --- a/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/route/ProfileImportFromSourceRouteBuilder.java +++ b/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/route/ProfileImportFromSourceRouteBuilder.java @@ -19,6 +19,7 @@ package org.apache.unomi.router.core.route; import org.apache.camel.Exchange; import org.apache.camel.LoggingLevel; import org.apache.camel.Processor; +import org.apache.camel.ShutdownRunningTask; import org.apache.camel.component.kafka.KafkaEndpoint; import org.apache.camel.model.ProcessorDefinition; import org.apache.commons.lang3.StringUtils; @@ -94,6 +95,7 @@ public class ProfileImportFromSourceRouteBuilder extends RouterAbstractRouteBuil ProcessorDefinition prDef = from(endpoint) .routeId(importConfiguration.getItemId())// This allow identification of the route for manual start/stop .autoStartup(importConfiguration.isActive())// Auto-start if the import configuration is set active + .shutdownRunningTask(ShutdownRunningTask.CompleteAllTasks) .onCompletion() // this route is only invoked when the original route is complete as a kind // of completion callback @@ -104,7 +106,7 @@ public class ProfileImportFromSourceRouteBuilder extends RouterAbstractRouteBuil @Override public void process(Exchange exchange) throws Exception { importConfiguration.setStatus(RouterConstants.CONFIG_STATUS_RUNNING); - importConfigurationService.save(importConfiguration); + importConfigurationService.save(importConfiguration, false); } }) .split(bodyAs(String.class).tokenize(importConfiguration.getLineSeparator())) http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/f76ef499/extensions/router/router-rest/src/main/java/org/apache/unomi/router/rest/ExportConfigurationServiceEndPoint.java ---------------------------------------------------------------------- diff --git a/extensions/router/router-rest/src/main/java/org/apache/unomi/router/rest/ExportConfigurationServiceEndPoint.java b/extensions/router/router-rest/src/main/java/org/apache/unomi/router/rest/ExportConfigurationServiceEndPoint.java index b796d22..5d1635b 100644 --- a/extensions/router/router-rest/src/main/java/org/apache/unomi/router/rest/ExportConfigurationServiceEndPoint.java +++ b/extensions/router/router-rest/src/main/java/org/apache/unomi/router/rest/ExportConfigurationServiceEndPoint.java @@ -79,7 +79,7 @@ public class ExportConfigurationServiceEndPoint extends AbstractConfigurationSer */ @Override public ExportConfiguration saveConfiguration(ExportConfiguration exportConfiguration) { - ExportConfiguration exportConfigSaved = configurationService.save(exportConfiguration); + ExportConfiguration exportConfigSaved = configurationService.save(exportConfiguration, true); return exportConfigSaved; } http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/f76ef499/extensions/router/router-rest/src/main/java/org/apache/unomi/router/rest/ImportConfigurationServiceEndPoint.java ---------------------------------------------------------------------- diff --git a/extensions/router/router-rest/src/main/java/org/apache/unomi/router/rest/ImportConfigurationServiceEndPoint.java b/extensions/router/router-rest/src/main/java/org/apache/unomi/router/rest/ImportConfigurationServiceEndPoint.java index c148997..7f9363c 100644 --- a/extensions/router/router-rest/src/main/java/org/apache/unomi/router/rest/ImportConfigurationServiceEndPoint.java +++ b/extensions/router/router-rest/src/main/java/org/apache/unomi/router/rest/ImportConfigurationServiceEndPoint.java @@ -70,7 +70,7 @@ public class ImportConfigurationServiceEndPoint extends AbstractConfigurationSer @Override public ImportConfiguration saveConfiguration(ImportConfiguration importConfiguration) { - ImportConfiguration importConfigSaved = configurationService.save(importConfiguration); + ImportConfiguration importConfigSaved = configurationService.save(importConfiguration, true); return importConfigSaved; } http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/f76ef499/extensions/router/router-service/src/main/java/org/apache/unomi/router/services/ExportConfigurationServiceImpl.java ---------------------------------------------------------------------- diff --git a/extensions/router/router-service/src/main/java/org/apache/unomi/router/services/ExportConfigurationServiceImpl.java b/extensions/router/router-service/src/main/java/org/apache/unomi/router/services/ExportConfigurationServiceImpl.java index e9e236c..101c2f3 100644 --- a/extensions/router/router-service/src/main/java/org/apache/unomi/router/services/ExportConfigurationServiceImpl.java +++ b/extensions/router/router-service/src/main/java/org/apache/unomi/router/services/ExportConfigurationServiceImpl.java @@ -47,14 +47,16 @@ public class ExportConfigurationServiceImpl extends AbstractConfigurationService } @Override - public ExportConfiguration save(ExportConfiguration exportConfiguration) { + public ExportConfiguration save(ExportConfiguration exportConfiguration, boolean updateRunningRoute) { if (exportConfiguration.getItemId() == null) { exportConfiguration.setItemId(UUID.randomUUID().toString()); } - try { - routerCamelContext.updateProfileReaderRoute(exportConfiguration); - } catch (Exception e) { - logger.error("Error when trying to save/update running Apache Camel Route: {}", exportConfiguration.getItemId()); + if(updateRunningRoute) { + try { + routerCamelContext.updateProfileReaderRoute(exportConfiguration); + } catch (Exception e) { + logger.error("Error when trying to save/update running Apache Camel Route: {}", exportConfiguration.getItemId()); + } } persistenceService.save(exportConfiguration); return persistenceService.load(exportConfiguration.getItemId(), ExportConfiguration.class); http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/f76ef499/extensions/router/router-service/src/main/java/org/apache/unomi/router/services/ImportConfigurationServiceImpl.java ---------------------------------------------------------------------- diff --git a/extensions/router/router-service/src/main/java/org/apache/unomi/router/services/ImportConfigurationServiceImpl.java b/extensions/router/router-service/src/main/java/org/apache/unomi/router/services/ImportConfigurationServiceImpl.java index 2d7f96e..0813f05 100644 --- a/extensions/router/router-service/src/main/java/org/apache/unomi/router/services/ImportConfigurationServiceImpl.java +++ b/extensions/router/router-service/src/main/java/org/apache/unomi/router/services/ImportConfigurationServiceImpl.java @@ -47,17 +47,17 @@ public class ImportConfigurationServiceImpl extends AbstractConfigurationService } @Override - public ImportConfiguration save(ImportConfiguration importConfiguration) { + public ImportConfiguration save(ImportConfiguration importConfiguration, boolean updateRunningRoute) { if (importConfiguration.getItemId() == null) { importConfiguration.setItemId(UUID.randomUUID().toString()); } - - try { - routerCamelContext.updateProfileReaderRoute(importConfiguration); - } catch (Exception e) { - logger.error("Error when trying to save/update running Apache Camel Route: {}", importConfiguration.getItemId()); + if(updateRunningRoute) { + try { + routerCamelContext.updateProfileReaderRoute(importConfiguration); + } catch (Exception e) { + logger.error("Error when trying to save/update running Apache Camel Route: {}", importConfiguration.getItemId()); + } } - persistenceService.save(importConfiguration); return persistenceService.load(importConfiguration.getItemId(), ImportConfiguration.class); } http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/f76ef499/extensions/router/router-service/src/main/java/org/apache/unomi/router/services/ProfileImportServiceImpl.java ---------------------------------------------------------------------- diff --git a/extensions/router/router-service/src/main/java/org/apache/unomi/router/services/ProfileImportServiceImpl.java b/extensions/router/router-service/src/main/java/org/apache/unomi/router/services/ProfileImportServiceImpl.java index 93b9190..8643103 100644 --- a/extensions/router/router-service/src/main/java/org/apache/unomi/router/services/ProfileImportServiceImpl.java +++ b/extensions/router/router-service/src/main/java/org/apache/unomi/router/services/ProfileImportServiceImpl.java @@ -75,7 +75,7 @@ public class ProfileImportServiceImpl extends AbstractCustomServiceImpl implemen return false; } } else { - logger.error("Merging property '{}' has no value in the current profile."); + logger.error("Merging property '{}' has no value in the current profile.", profileToImport.getMergingProperty()); return false; } }
