Repository: incubator-unomi
Updated Branches:
  refs/heads/master 7c7462018 -> fe4d27b89


UNOMI-129 Restore session storage in setPropertyAction

Signed-off-by: Serge Huber <[email protected]>


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

Branch: refs/heads/master
Commit: fe4d27b8931331610c7f920064d956ee2a540e92
Parents: 7c74620
Author: Serge Huber <[email protected]>
Authored: Fri Oct 13 17:07:26 2017 +0200
Committer: Serge Huber <[email protected]>
Committed: Fri Oct 13 17:07:26 2017 +0200

----------------------------------------------------------------------
 .../baseplugin/actions/SetPropertyAction.java   | 22 ++++++++++++++------
 1 file changed, 16 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/fe4d27b8/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/actions/SetPropertyAction.java
----------------------------------------------------------------------
diff --git 
a/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/actions/SetPropertyAction.java
 
b/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/actions/SetPropertyAction.java
index 17517c8..8da3b0f 100644
--- 
a/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/actions/SetPropertyAction.java
+++ 
b/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/actions/SetPropertyAction.java
@@ -66,14 +66,24 @@ public class SetPropertyAction implements ActionExecutor {
             propertyValue = format.format(event.getTimeStamp());
         }
 
-        Map<String, Object> propertyToUpdate = new HashMap<>();
-        propertyToUpdate.put(propertyName, propertyValue);
+        if (storeInSession) {
+            // in the case of session storage we directly update the session
+            Object target =  event.getSession();
 
-        
updateProfileProperties.setProperty(UpdateProfilePropertiesAction.PROPS_TO_UPDATE,
 propertyToUpdate);
-        int changes = eventService.send(updateProfileProperties);
+            if (PropertyHelper.setProperty(target, propertyName, 
propertyValue, (String) 
action.getParameterValues().get("setPropertyStrategy"))) {
+                return EventService.SESSION_UPDATED;
+            }
+        } else {
+            // in the case of profile storage we use the update profile 
properties event instead.
+            Map<String, Object> propertyToUpdate = new HashMap<>();
+            propertyToUpdate.put(propertyName, propertyValue);
+
+            
updateProfileProperties.setProperty(UpdateProfilePropertiesAction.PROPS_TO_UPDATE,
 propertyToUpdate);
+            int changes = eventService.send(updateProfileProperties);
 
-        if ((changes & EventService.PROFILE_UPDATED) == 
EventService.PROFILE_UPDATED) {
-            return storeInSession ? EventService.SESSION_UPDATED : 
EventService.PROFILE_UPDATED;
+            if ((changes & EventService.PROFILE_UPDATED) == 
EventService.PROFILE_UPDATED) {
+                return EventService.PROFILE_UPDATED;
+            }
         }
 
         return EventService.NO_CHANGE;

Reply via email to