Repository: incubator-unomi
Updated Branches:
  refs/heads/master 3f3b20aaf -> f0f871da4


UNOMI-102 : Update segments and scores after the import


Project: http://git-wip-us.apache.org/repos/asf/incubator-unomi/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-unomi/commit/f0f871da
Tree: http://git-wip-us.apache.org/repos/asf/incubator-unomi/tree/f0f871da
Diff: http://git-wip-us.apache.org/repos/asf/incubator-unomi/diff/f0f871da

Branch: refs/heads/master
Commit: f0f871da408e58682ff3236cbe4772b28f842439
Parents: 3f3b20a
Author: Abdelkader Midani <amid...@apache.org>
Authored: Wed Jul 12 17:29:34 2017 +0200
Committer: Abdelkader Midani <amid...@apache.org>
Committed: Wed Jul 12 17:29:34 2017 +0200

----------------------------------------------------------------------
 .../core/processor/UnomiStorageProcessor.java   | 23 ++++++++++++++++++++
 .../resources/OSGI-INF/blueprint/blueprint.xml  |  2 ++
 .../services/ProfileImportServiceImpl.java      |  3 +++
 3 files changed, 28 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/f0f871da/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/processor/UnomiStorageProcessor.java
----------------------------------------------------------------------
diff --git 
a/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/processor/UnomiStorageProcessor.java
 
b/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/processor/UnomiStorageProcessor.java
index 7e55185..d5c1b22 100644
--- 
a/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/processor/UnomiStorageProcessor.java
+++ 
b/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/processor/UnomiStorageProcessor.java
@@ -19,15 +19,21 @@ package org.apache.unomi.router.core.processor;
 import org.apache.camel.Exchange;
 import org.apache.camel.Message;
 import org.apache.camel.Processor;
+import org.apache.unomi.api.segments.SegmentsAndScores;
+import org.apache.unomi.api.services.SegmentService;
 import org.apache.unomi.router.api.ProfileToImport;
 import org.apache.unomi.router.api.services.ProfileImportService;
 
+import java.util.Map;
+import java.util.Set;
+
 /**
  * Created by amidani on 29/12/2016.
  */
 public class UnomiStorageProcessor implements Processor {
 
     private ProfileImportService profileImportService;
+    private SegmentService segmentService;
 
     @Override
     public void process(Exchange exchange)
@@ -36,6 +42,19 @@ public class UnomiStorageProcessor implements Processor {
             Message message = exchange.getIn();
 
             ProfileToImport profileToImport = (ProfileToImport) 
message.getBody();
+
+            if(!profileToImport.isProfileToDelete()) {
+                SegmentsAndScores segmentsAndScoringForProfile = 
segmentService.getSegmentsAndScoresForProfile(profileToImport);
+                Set<String> segments = 
segmentsAndScoringForProfile.getSegments();
+                if (!segments.equals(profileToImport.getSegments())) {
+                    profileToImport.setSegments(segments);
+                }
+                Map<String, Integer> scores = 
segmentsAndScoringForProfile.getScores();
+                if (!scores.equals(profileToImport.getScores())) {
+                    profileToImport.setScores(scores);
+                }
+            }
+
             
profileImportService.saveMergeDeleteImportedProfile(profileToImport);
         }
     }
@@ -43,4 +62,8 @@ public class UnomiStorageProcessor implements Processor {
     public void setProfileImportService(ProfileImportService 
profileImportService) {
         this.profileImportService = profileImportService;
     }
+
+    public void setSegmentService(SegmentService segmentService) {
+        this.segmentService = segmentService;
+    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/f0f871da/extensions/router/router-core/src/main/resources/OSGI-INF/blueprint/blueprint.xml
----------------------------------------------------------------------
diff --git 
a/extensions/router/router-core/src/main/resources/OSGI-INF/blueprint/blueprint.xml
 
b/extensions/router/router-core/src/main/resources/OSGI-INF/blueprint/blueprint.xml
index ea6ba3c..1d3ddca 100644
--- 
a/extensions/router/router-core/src/main/resources/OSGI-INF/blueprint/blueprint.xml
+++ 
b/extensions/router/router-core/src/main/resources/OSGI-INF/blueprint/blueprint.xml
@@ -43,6 +43,7 @@
 
     <bean id="unomiStorageProcessor" 
class="org.apache.unomi.router.core.processor.UnomiStorageProcessor">
         <property name="profileImportService" ref="profileImportService"/>
+        <property name="segmentService" ref="segmentService"/>
     </bean>
 
     <bean id="importRouteCompletionProcessor" 
class="org.apache.unomi.router.core.processor.ImportRouteCompletionProcessor">
@@ -141,6 +142,7 @@
     <reference id="profileExportService" 
interface="org.apache.unomi.router.api.services.ProfileExportService"/>
     <reference id="profileService" 
interface="org.apache.unomi.api.services.ProfileService"/>
     <reference id="persistenceService" 
interface="org.apache.unomi.persistence.spi.PersistenceService"/>
+    <reference id="segmentService" 
interface="org.apache.unomi.api.services.SegmentService"/>
     <reference id="importConfigurationService" 
interface="org.apache.unomi.router.api.services.ImportExportConfigurationService"
 filter="(configDiscriminator=IMPORT)"/>
     <reference id="exportConfigurationService" 
interface="org.apache.unomi.router.api.services.ImportExportConfigurationService"
 filter="(configDiscriminator=EXPORT)"/>
 

http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/f0f871da/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 aad6782..7f9b503 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
@@ -53,6 +53,9 @@ public class ProfileImportServiceImpl extends 
AbstractCustomServiceImpl implemen
                 for (String propName : propertiesToOverwrite) {
                     existingProfile.getProperties().put(propName, 
profileToImport.getProperties().get(propName));
                 }
+                //update segments and scores
+                existingProfile.setSegments(profileToImport.getSegments());
+                existingProfile.setScores(profileToImport.getScores());
             } else { //If no property is marked to overwrite we replace the 
whole properties map
                 logger.debug("Overwrite all properties");
                 existingProfile.setProperties(profileToImport.getProperties());

Reply via email to