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;
         }
     }

Reply via email to