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());