You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@syncope.apache.org by il...@apache.org on 2016/04/19 15:01:50 UTC

[03/24] syncope git commit: [SYNCOPE-822] UUID keys

http://git-wip-us.apache.org/repos/asf/syncope/blob/550ee4f4/fit/core-reference/src/test/java/org/apache/syncope/fit/core/SchedTaskITCase.java
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/SchedTaskITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/SchedTaskITCase.java
index b847a06..30cc8c8 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/SchedTaskITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/SchedTaskITCase.java
@@ -74,11 +74,11 @@ public class SchedTaskITCase extends AbstractTaskITCase {
 
     @Test
     public void update() {
-        SchedTaskTO task = taskService.read(SCHED_TASK_ID, true);
+        SchedTaskTO task = taskService.read(SCHED_TASK_KEY, true);
         assertNotNull(task);
 
         SchedTaskTO taskMod = new SchedTaskTO();
-        taskMod.setKey(SCHED_TASK_ID);
+        taskMod.setKey(SCHED_TASK_KEY);
         taskMod.setName(task.getName());
         taskMod.setCronExpression(null);
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/550ee4f4/fit/core-reference/src/test/java/org/apache/syncope/fit/core/SearchITCase.java
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/SearchITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/SearchITCase.java
index 0e6a991..8cdd7fb 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/SearchITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/SearchITCase.java
@@ -70,7 +70,8 @@ public class SearchITCase extends AbstractITCase {
 
             @Override
             public boolean evaluate(final UserTO user) {
-                return user.getKey() == 2L || user.getKey() == 3L;
+                return "74cd8ece-715a-44a4-a736-e17b46c4e7e6".equals(user.getKey())
+                        || "b3cbc78d-32e6-4bd4-92e0-bbe07566a2ee".equals(user.getKey());
             }
         });
         assertEquals(2, found.size());
@@ -85,7 +86,7 @@ public class SearchITCase extends AbstractITCase {
         assertNotNull(matchingUsers);
         assertEquals(1, matchingUsers.getResult().size());
         assertEquals("rossini", matchingUsers.getResult().iterator().next().getUsername());
-        assertEquals(1L, matchingUsers.getResult().iterator().next().getKey(), 0);
+        assertEquals("1417acbe-cbf6-4277-9372-e75e04f97000", matchingUsers.getResult().iterator().next().getKey());
     }
 
     @Test
@@ -93,18 +94,20 @@ public class SearchITCase extends AbstractITCase {
         PagedResult<GroupTO> groups = groupService.search(
                 new AnySearchQuery.Builder().realm(SyncopeConstants.ROOT_REALM).
                 fiql(SyncopeClient.getGroupSearchConditionBuilder().
-                        is("name").equalTo("root").and("key").lessThan(2).query()).build());
+                        is("name").equalTo("root").and("key").equalTo("37d15e4c-cdc1-460b-a591-8505c8133806").
+                        query()).build());
         assertNotNull(groups);
         assertEquals(1, groups.getResult().size());
         assertEquals("root", groups.getResult().iterator().next().getName());
-        assertEquals(1L, groups.getResult().iterator().next().getKey(), 0);
+        assertEquals("37d15e4c-cdc1-460b-a591-8505c8133806", groups.getResult().iterator().next().getKey());
     }
 
     @Test
     public void searchByGroup() {
         PagedResult<UserTO> matchingUsers = userService.search(
                 new AnySearchQuery.Builder().realm(SyncopeConstants.ROOT_REALM).
-                fiql(SyncopeClient.getUserSearchConditionBuilder().inGroups(1L).query()).
+                fiql(SyncopeClient.getUserSearchConditionBuilder().
+                        inGroups("37d15e4c-cdc1-460b-a591-8505c8133806").query()).
                 build());
         assertNotNull(matchingUsers);
         assertFalse(matchingUsers.getResult().isEmpty());
@@ -113,7 +116,7 @@ public class SearchITCase extends AbstractITCase {
 
             @Override
             public boolean evaluate(final UserTO user) {
-                return user.getKey() == 1;
+                return "1417acbe-cbf6-4277-9372-e75e04f97000".equals(user.getKey());
             }
         }));
     }
@@ -136,7 +139,7 @@ public class SearchITCase extends AbstractITCase {
 
             @Override
             public boolean evaluate(final UserTO user) {
-                return user.getKey() == 4;
+                return "c9b2dec2-00a7-4855-97c0-d854842b4b24".equals(user.getKey());
             }
         }));
     }
@@ -154,7 +157,7 @@ public class SearchITCase extends AbstractITCase {
 
             @Override
             public boolean evaluate(final UserTO user) {
-                return user.getKey() == 1;
+                return "1417acbe-cbf6-4277-9372-e75e04f97000".equals(user.getKey());
             }
         }));
     }
@@ -178,7 +181,7 @@ public class SearchITCase extends AbstractITCase {
 
             @Override
             public boolean evaluate(final UserTO user) {
-                return user.getKey() == 4;
+                return "c9b2dec2-00a7-4855-97c0-d854842b4b24".equals(user.getKey());
             }
         }));
     }
@@ -196,7 +199,7 @@ public class SearchITCase extends AbstractITCase {
 
             @Override
             public boolean evaluate(final UserTO user) {
-                return user.getKey() == 2;
+                return "74cd8ece-715a-44a4-a736-e17b46c4e7e6".equals(user.getKey());
             }
         }));
     }
@@ -253,10 +256,13 @@ public class SearchITCase extends AbstractITCase {
     public void searchByRelationshipAnyCond() {
         PagedResult<GroupTO> groups = groupService.search(
                 new AnySearchQuery.Builder().realm(SyncopeConstants.ROOT_REALM).
-                fiql(SyncopeClient.getGroupSearchConditionBuilder().is("userOwner").equalTo(5).query()).build());
+                fiql(SyncopeClient.getGroupSearchConditionBuilder().
+                        is("userOwner").equalTo("823074dc-d280-436d-a7dd-07399fae48ec").query()).build());
         assertNotNull(groups);
         assertEquals(1, groups.getResult().size());
-        assertEquals(6L, groups.getResult().iterator().next().getKey(), 0);
+        assertEquals(
+                "ebf97068-aa4b-4a85-9f01-680e8c4cf227",
+                groups.getResult().iterator().next().getKey());
     }
 
     @Test
@@ -297,27 +303,28 @@ public class SearchITCase extends AbstractITCase {
         PagedResult<AnyObjectTO> anyObjects = anyObjectService.search(
                 new AnySearchQuery.Builder().realm(SyncopeConstants.ROOT_REALM).
                 fiql(SyncopeClient.getAnyObjectSearchConditionBuilder("PRINTER").
-                        inRelationships(2L).query()).
+                        inRelationships("8559d14d-58c2-46eb-a2d4-a7d35161e8f8").query()).
                 build());
         assertNotNull(anyObjects);
         assertTrue(IterableUtils.matchesAny(anyObjects.getResult(), new Predicate<AnyObjectTO>() {
 
             @Override
             public boolean evaluate(final AnyObjectTO anyObject) {
-                return anyObject.getKey() == 1L;
+                return "fc6dbc3a-6c07-4965-8781-921e7401a4a5".equals(anyObject.getKey());
             }
         }));
 
         PagedResult<UserTO> users = userService.search(
                 new AnySearchQuery.Builder().realm(SyncopeConstants.ROOT_REALM).
-                fiql(SyncopeClient.getUserSearchConditionBuilder().inRelationships(1L).query()).
+                fiql(SyncopeClient.getUserSearchConditionBuilder().
+                        inRelationships("fc6dbc3a-6c07-4965-8781-921e7401a4a5").query()).
                 build());
         assertNotNull(users);
         assertTrue(IterableUtils.matchesAny(users.getResult(), new Predicate<UserTO>() {
 
             @Override
             public boolean evaluate(final UserTO user) {
-                return user.getKey() == 4L;
+                return "c9b2dec2-00a7-4855-97c0-d854842b4b24".equals(user.getKey());
             }
         }));
     }
@@ -334,14 +341,14 @@ public class SearchITCase extends AbstractITCase {
 
             @Override
             public boolean evaluate(final AnyObjectTO anyObject) {
-                return anyObject.getKey() == 1L;
+                return "fc6dbc3a-6c07-4965-8781-921e7401a4a5".equals(anyObject.getKey());
             }
         }));
         assertTrue(IterableUtils.matchesAny(anyObjects.getResult(), new Predicate<AnyObjectTO>() {
 
             @Override
             public boolean evaluate(final AnyObjectTO anyObject) {
-                return anyObject.getKey() == 2L;
+                return "8559d14d-58c2-46eb-a2d4-a7d35161e8f8".equals(anyObject.getKey());
             }
         }));
 
@@ -354,7 +361,7 @@ public class SearchITCase extends AbstractITCase {
 
             @Override
             public boolean evaluate(final UserTO user) {
-                return user.getKey() == 4L;
+                return "c9b2dec2-00a7-4855-97c0-d854842b4b24".equals(user.getKey());
             }
         }));
     }
@@ -371,14 +378,14 @@ public class SearchITCase extends AbstractITCase {
 
             @Override
             public boolean evaluate(final GroupTO group) {
-                return group.getKey() == 15L;
+                return "034740a9-fa10-453b-af37-dc7897e98fb1".equals(group.getKey());
             }
         }));
         assertFalse(IterableUtils.matchesAny(groups.getResult(), new Predicate<GroupTO>() {
 
             @Override
             public boolean evaluate(final GroupTO group) {
-                return group.getKey() == 16L;
+                return "e7ff94e8-19c9-4f0a-b8b7-28327edbf6ed".equals(group.getKey());
             }
         }));
 
@@ -392,7 +399,7 @@ public class SearchITCase extends AbstractITCase {
 
             @Override
             public boolean evaluate(final AnyObjectTO anyObject) {
-                return anyObject.getKey() == 3L;
+                return "9e1d130c-d6a3-48b1-98b3-182477ed0688".equals(anyObject.getKey());
             }
         }));
     }

http://git-wip-us.apache.org/repos/asf/syncope/blob/550ee4f4/fit/core-reference/src/test/java/org/apache/syncope/fit/core/SecurityQuestionITCase.java
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/SecurityQuestionITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/SecurityQuestionITCase.java
index 40d4b54..a4b1d39 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/SecurityQuestionITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/SecurityQuestionITCase.java
@@ -39,7 +39,8 @@ public class SecurityQuestionITCase extends AbstractITCase {
 
     @Test
     public void read() {
-        SecurityQuestionTO securityQuestionTO = securityQuestionService.read(1L);
+        SecurityQuestionTO securityQuestionTO = securityQuestionService.read(
+                "887028ea-66fc-41e7-b397-620d7ea6dfbb");
         assertNotNull(securityQuestionTO);
     }
 
@@ -70,7 +71,8 @@ public class SecurityQuestionITCase extends AbstractITCase {
 
     @Test
     public void update() {
-        SecurityQuestionTO securityQuestionTO = securityQuestionService.read(1L);
+        SecurityQuestionTO securityQuestionTO = securityQuestionService.read(
+                "887028ea-66fc-41e7-b397-620d7ea6dfbb");
         securityQuestionTO.setContent("What is your favorite color?");
 
         securityQuestionService.update(securityQuestionTO);

http://git-wip-us.apache.org/repos/asf/syncope/blob/550ee4f4/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserITCase.java
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserITCase.java
index 79ec811..3e7c6db 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserITCase.java
@@ -18,8 +18,6 @@
  */
 package org.apache.syncope.fit.core;
 
-import org.apache.syncope.fit.ActivitiDetector;
-
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotEquals;
@@ -37,6 +35,7 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
+import java.util.UUID;
 import javax.naming.NamingException;
 import javax.ws.rs.core.GenericType;
 import javax.ws.rs.core.MediaType;
@@ -100,6 +99,7 @@ import org.apache.syncope.fit.core.reference.DoubleValueLogicActions;
 import org.apache.syncope.fit.core.reference.TestAccountRuleConf;
 import org.apache.syncope.fit.core.reference.TestPasswordRuleConf;
 import org.apache.syncope.fit.AbstractITCase;
+import org.apache.syncope.fit.ActivitiDetector;
 import org.identityconnectors.framework.common.objects.Name;
 import org.identityconnectors.framework.common.objects.OperationalAttributes;
 import org.junit.Assume;
@@ -141,33 +141,20 @@ public class UserITCase extends AbstractITCase {
 
     @Test
     public void createUserWithNoPropagation() {
-        // get task list
-        PagedResult<PropagationTaskTO> tasks = taskService.list(
-                new TaskQuery.Builder(TaskType.PROPAGATION).page(1).size(1).build());
-        assertNotNull(tasks);
-        assertFalse(tasks.getResult().isEmpty());
-
-        long maxKey = tasks.getResult().iterator().next().getKey();
-
         // create a new user
         UserTO userTO = getUniqueSampleTO("xxx@xxx.xxx");
         userTO.setPassword("password123");
         userTO.getResources().add(RESOURCE_NAME_NOPROPAGATION);
 
-        createUser(userTO);
+        userTO = createUser(userTO).getAny();
 
-        // get the new task list
-        tasks = taskService.list(
-                new TaskQuery.Builder(TaskType.PROPAGATION).page(1).size(1).build());
+        // get the propagation task just created
+        PagedResult<PropagationTaskTO> tasks = taskService.list(new TaskQuery.Builder(TaskType.PROPAGATION).
+                anyTypeKind(AnyTypeKind.USER).anyTypeKey(userTO.getKey()).page(1).size(1).build());
         assertNotNull(tasks);
         assertFalse(tasks.getResult().isEmpty());
 
-        long newMaxKey = tasks.getResult().iterator().next().getKey();
-
-        assertTrue(newMaxKey > maxKey);
-
-        // get last task
-        PropagationTaskTO taskTO = taskService.read(newMaxKey, true);
+        PropagationTaskTO taskTO = tasks.getResult().get(0);
         assertNotNull(taskTO);
         assertFalse(taskTO.getExecutions().isEmpty());
         assertEquals(PropagationTaskExecStatus.NOT_ATTEMPTED.name(), taskTO.getExecutions().get(0).getStatus());
@@ -331,7 +318,8 @@ public class UserITCase extends AbstractITCase {
         // configured to be minLength=16
         userTO.setPassword("password1");
 
-        userTO.getMemberships().add(new MembershipTO.Builder().group(8L).build());
+        userTO.getMemberships().add(new MembershipTO.Builder().
+                group("f779c0d4-633b-4be5-8f57-32eb478a3ca5").build());
 
         createUser(userTO);
     }
@@ -351,7 +339,7 @@ public class UserITCase extends AbstractITCase {
         assertNotNull(tasks);
         assertFalse(tasks.getResult().isEmpty());
 
-        long maxKey = tasks.getResult().iterator().next().getKey();
+        String maxKey = tasks.getResult().iterator().next().getKey();
         PropagationTaskTO taskTO = taskService.read(maxKey, true);
 
         assertNotNull(taskTO);
@@ -360,7 +348,8 @@ public class UserITCase extends AbstractITCase {
         UserTO userTO = getUniqueSampleTO("a.b@c.com");
 
         // add a membership
-        userTO.getMemberships().add(new MembershipTO.Builder().group(8L).build());
+        userTO.getMemberships().add(new MembershipTO.Builder().
+                group("f779c0d4-633b-4be5-8f57-32eb478a3ca5").build());
 
         // add an attribute with a non-existing schema: must be ignored
         AttrTO attrWithInvalidSchemaTO = attrTO("invalid schema", "a value");
@@ -391,7 +380,7 @@ public class UserITCase extends AbstractITCase {
         assertNotNull(tasks);
         assertFalse(tasks.getResult().isEmpty());
 
-        long newMaxKey = tasks.getResult().iterator().next().getKey();
+        String newMaxKey = tasks.getResult().iterator().next().getKey();
 
         // default configuration for ws-target-resource2:
         // only failed executions have to be registered
@@ -443,7 +432,8 @@ public class UserITCase extends AbstractITCase {
         AttrTO type = userTO.getPlainAttrMap().get("ctype");
         userTO.getPlainAttrs().remove(type);
 
-        userTO.getMemberships().add(new MembershipTO.Builder().group(8L).build());
+        userTO.getMemberships().add(new MembershipTO.Builder().
+                group("f779c0d4-633b-4be5-8f57-32eb478a3ca5").build());
 
         // 1. create user without type (mandatory by UserSchema)
         try {
@@ -470,7 +460,7 @@ public class UserITCase extends AbstractITCase {
     @Test
     public void delete() {
         try {
-            userService.delete(0L);
+            userService.delete(UUID.randomUUID().toString());
         } catch (SyncopeClientException e) {
             assertEquals(Response.Status.NOT_FOUND, e.getType().getResponseStatus());
         }
@@ -482,12 +472,12 @@ public class UserITCase extends AbstractITCase {
 
         userTO = createUser(userTO).getAny();
 
-        long key = userTO.getKey();
+        String key = userTO.getKey();
 
         ProvisioningResult<UserTO> result = deleteUser(key);
         assertNotNull(result);
         userTO = result.getAny();
-        assertEquals(key, userTO.getKey(), 0);
+        assertEquals(key, userTO.getKey());
         assertTrue(userTO.getPlainAttrs().isEmpty());
 
         // check for propagation result
@@ -510,13 +500,13 @@ public class UserITCase extends AbstractITCase {
 
         userTO = createUser(userTO).getAny();
 
-        long key = userTO.getKey();
+        String key = userTO.getKey();
         userTO = userService.read(key);
 
         ProvisioningResult<UserTO> result = deleteUser(userTO.getKey());
         assertNotNull(result);
         userTO = result.getAny();
-        assertEquals(key, userTO.getKey(), 0);
+        assertEquals(key, userTO.getKey());
         assertTrue(userTO.getPlainAttrs().isEmpty());
 
         // check for propagation result
@@ -568,7 +558,7 @@ public class UserITCase extends AbstractITCase {
 
     @Test
     public void read() {
-        UserTO userTO = userService.read(1L);
+        UserTO userTO = userService.read("1417acbe-cbf6-4277-9372-e75e04f97000");
 
         assertNotNull(userTO);
         assertNull(userTO.getPassword());
@@ -637,7 +627,8 @@ public class UserITCase extends AbstractITCase {
     public void update() {
         UserTO userTO = getUniqueSampleTO("g.h@t.com");
 
-        userTO.getMemberships().add(new MembershipTO.Builder().group(8L).build());
+        userTO.getMemberships().add(new MembershipTO.Builder().
+                group("f779c0d4-633b-4be5-8f57-32eb478a3ca5").build());
 
         userTO = createUser(userTO).getAny();
 
@@ -655,7 +646,8 @@ public class UserITCase extends AbstractITCase {
         userPatch.getPlainAttrs().add(attrAddReplacePatch("fullname", newFullName));
 
         userPatch.getMemberships().add(new MembershipPatch.Builder().operation(PatchOperation.ADD_REPLACE).
-                membershipTO(new MembershipTO.Builder().group(8L).build()).build());
+                membershipTO(new MembershipTO.Builder().
+                        group("f779c0d4-633b-4be5-8f57-32eb478a3ca5").build()).build());
         userPatch.getMemberships().add(new MembershipPatch.Builder().operation(PatchOperation.ADD_REPLACE).
                 membershipTO(userTO.getMemberships().get(0)).build());
 
@@ -686,7 +678,8 @@ public class UserITCase extends AbstractITCase {
         assertFalse(beforeTasks <= 0);
 
         UserTO userTO = getUniqueSampleTO("pwdonly@t.com");
-        userTO.getMemberships().add(new MembershipTO.Builder().group(8L).build());
+        userTO.getMemberships().add(new MembershipTO.Builder().
+                group("f779c0d4-633b-4be5-8f57-32eb478a3ca5").build());
 
         userTO = createUser(userTO).getAny();
 
@@ -715,7 +708,7 @@ public class UserITCase extends AbstractITCase {
         assertNotNull(tasks);
         assertFalse(tasks.getResult().isEmpty());
 
-        long maxKey = tasks.getResult().iterator().next().getKey();
+        String maxKey = tasks.getResult().iterator().next().getKey();
 
         // --------------------------------------
         // Create operation
@@ -723,7 +716,8 @@ public class UserITCase extends AbstractITCase {
         UserTO userTO = getUniqueSampleTO("t@p.mode");
 
         // add a membership
-        userTO.getMemberships().add(new MembershipTO.Builder().group(8L).build());
+        userTO.getMemberships().add(new MembershipTO.Builder().
+                group("f779c0d4-633b-4be5-8f57-32eb478a3ca5").build());
 
         // 1. create user
         userTO = createUser(userTO).getAny();
@@ -734,7 +728,7 @@ public class UserITCase extends AbstractITCase {
         assertNotNull(tasks);
         assertFalse(tasks.getResult().isEmpty());
 
-        long newMaxKey = tasks.getResult().iterator().next().getKey();
+        String newMaxKey = tasks.getResult().iterator().next().getKey();
 
         // default configuration for ws-target-resource2 during create:
         // only failed executions have to be registered
@@ -756,12 +750,9 @@ public class UserITCase extends AbstractITCase {
         // get the new task list
         tasks = taskService.list(new TaskQuery.Builder(TaskType.PROPAGATION).page(1).size(1).build());
 
-        maxKey = newMaxKey;
-        newMaxKey = tasks.getResult().iterator().next().getKey();
-
         // default configuration for ws-target-resource2 during update:
         // all update executions have to be registered
-        assertTrue(newMaxKey > maxKey);
+        newMaxKey = tasks.getResult().iterator().next().getKey();
 
         PropagationTaskTO taskTO = taskService.read(newMaxKey, true);
 
@@ -790,7 +781,8 @@ public class UserITCase extends AbstractITCase {
 
         UserTO userTO = getUniqueSampleTO("createActivate@syncope.apache.org");
 
-        userTO.getMemberships().add(new MembershipTO.Builder().group(11L).build());
+        userTO.getMemberships().add(new MembershipTO.Builder().
+                group("268fed79-f440-4390-9435-b273768eb5d6").build());
 
         userTO = createUser(userTO).getAny();
 
@@ -817,7 +809,8 @@ public class UserITCase extends AbstractITCase {
     public void suspendReactivate() {
         UserTO userTO = getUniqueSampleTO("suspendReactivate@syncope.apache.org");
 
-        userTO.getMemberships().add(new MembershipTO.Builder().group(7L).build());
+        userTO.getMemberships().add(new MembershipTO.Builder().
+                group("bf825fe1-7320-4a54-bd64-143b5c18ab97").build());
 
         userTO = createUser(userTO).getAny();
 
@@ -862,7 +855,7 @@ public class UserITCase extends AbstractITCase {
         assertEquals(ActivitiDetector.isActivitiEnabledForUsers(syncopeService)
                 ? "active"
                 : "created", userTO.getStatus());
-        long userKey = userTO.getKey();
+        String userKey = userTO.getKey();
 
         // Suspend with effect on syncope, ldap and db => user should be suspended in syncope and all resources
         StatusPatch statusPatch = new StatusPatch();
@@ -1117,7 +1110,8 @@ public class UserITCase extends AbstractITCase {
         userTO.getAuxClasses().add("csv");
         userTO.getDerAttrs().add(attrTO("csvuserid", null));
 
-        userTO.getMemberships().add(new MembershipTO.Builder().group(1L).build());
+        userTO.getMemberships().add(new MembershipTO.Builder().
+                group("37d15e4c-cdc1-460b-a591-8505c8133806").build());
 
         userTO.getResources().add(RESOURCE_NAME_CSV);
 
@@ -1152,9 +1146,9 @@ public class UserITCase extends AbstractITCase {
         assertNotNull(passwordPolicy);
 
         RealmTO realm = realmService.list("/even/two").get(0);
-        Long oldAccountPolicy = realm.getAccountPolicy();
+        String oldAccountPolicy = realm.getAccountPolicy();
         realm.setAccountPolicy(accountPolicy.getKey());
-        Long oldPasswordPolicy = realm.getPasswordPolicy();
+        String oldPasswordPolicy = realm.getPasswordPolicy();
         realm.setPasswordPolicy(passwordPolicy.getKey());
         realmService.update(realm);
 
@@ -1201,8 +1195,10 @@ public class UserITCase extends AbstractITCase {
         userTO.getAuxClasses().add("csv");
         userTO.getDerAttrs().add(attrTO("csvuserid", null));
 
-        userTO.getMemberships().add(new MembershipTO.Builder().group(12L).build());
-        userTO.getMemberships().add(new MembershipTO.Builder().group(13L).build());
+        userTO.getMemberships().add(new MembershipTO.Builder().
+                group("0626100b-a4ba-4e00-9971-86fad52a6216").build());
+        userTO.getMemberships().add(new MembershipTO.Builder().
+                group("ba9ed509-b1f5-48ab-a334-c8530a6422dc").build());
 
         userTO.getResources().add(RESOURCE_NAME_CSV);
 
@@ -1453,7 +1449,7 @@ public class UserITCase extends AbstractITCase {
     }
 
     @Test
-    public void isseSYNCOPE136AES() {
+    public void issueSYNCOPE136AES() {
         // 1. read configured cipher algorithm in order to be able to restore it at the end of test
         AttrTO pwdCipherAlgo = configurationService.get("password.cipher.algorithm");
         final String origpwdCipherAlgo = pwdCipherAlgo.getValues().get(0);
@@ -1462,9 +1458,10 @@ public class UserITCase extends AbstractITCase {
         pwdCipherAlgo.getValues().set(0, "AES");
         configurationService.set(pwdCipherAlgo);
 
+        UserTO userTO = null;
         try {
             // 3. create user with no resources
-            UserTO userTO = getUniqueSampleTO("syncope136_AES@apache.org");
+            userTO = getUniqueSampleTO("syncope136_AES@apache.org");
             userTO.getResources().clear();
 
             userTO = createUser(userTO).getAny();
@@ -1474,8 +1471,8 @@ public class UserITCase extends AbstractITCase {
             UserPatch userPatch = new UserPatch();
             userPatch.setKey(userTO.getKey());
             userPatch.getResources().add(new StringPatchItem.Builder().
-                    operation(PatchOperation.ADD_REPLACE).value(RESOURCE_NAME_WS1).build());
-            userPatch.setPassword(new PasswordPatch.Builder().onSyncope(false).resource(RESOURCE_NAME_WS1).build());
+                    operation(PatchOperation.ADD_REPLACE).value(RESOURCE_NAME_LDAP).build());
+            userPatch.setPassword(new PasswordPatch.Builder().onSyncope(false).resource(RESOURCE_NAME_LDAP).build());
 
             ProvisioningResult<UserTO> result = updateUser(userPatch);
             assertNotNull(result);
@@ -1488,12 +1485,16 @@ public class UserITCase extends AbstractITCase {
             assertEquals(1, props.size());
             PropagationStatus prop = props.iterator().next();
             assertNotNull(prop);
-            assertEquals(RESOURCE_NAME_WS1, prop.getResource());
+            assertEquals(RESOURCE_NAME_LDAP, prop.getResource());
             assertEquals(PropagationTaskExecStatus.SUCCESS, prop.getStatus());
         } finally {
             // restore initial cipher algorithm
             pwdCipherAlgo.getValues().set(0, origpwdCipherAlgo);
             configurationService.set(pwdCipherAlgo);
+
+            if (userTO != null) {
+                deleteUser(userTO.getKey());
+            }
         }
     }
 
@@ -1547,14 +1548,18 @@ public class UserITCase extends AbstractITCase {
 
     @Test
     public void issueSYNCOPE265() {
-        for (long key = 1; key <= 5; key++) {
+        String[] userKeys = new String[] {
+            "1417acbe-cbf6-4277-9372-e75e04f97000",
+            "74cd8ece-715a-44a4-a736-e17b46c4e7e6",
+            "b3cbc78d-32e6-4bd4-92e0-bbe07566a2ee",
+            "c9b2dec2-00a7-4855-97c0-d854842b4b24",
+            "823074dc-d280-436d-a7dd-07399fae48ec" };
+
+        for (String userKey : userKeys) {
             UserPatch userPatch = new UserPatch();
-            userPatch.setKey(key);
-
+            userPatch.setKey(userKey);
             userPatch.getPlainAttrs().add(attrAddReplacePatch("ctype", "a type"));
-
             UserTO userTO = updateUser(userPatch).getAny();
-
             assertEquals("a type", userTO.getPlainAttrMap().get("ctype").getValues().get(0));
         }
     }
@@ -1577,15 +1582,13 @@ public class UserITCase extends AbstractITCase {
         BulkActionResult res = userService.bulk(bulkAction);
         assertEquals(10, res.getResultByStatus(Status.SUCCESS).size());
         assertEquals(1, res.getResultByStatus(Status.FAILURE).size());
-        assertEquals("suspended", userService.read(
-                Long.parseLong(res.getResultByStatus(Status.SUCCESS).get(3))).getStatus());
+        assertEquals("suspended", userService.read(res.getResultByStatus(Status.SUCCESS).get(3)).getStatus());
 
         bulkAction.setType(BulkAction.Type.REACTIVATE);
         res = userService.bulk(bulkAction);
         assertEquals(10, res.getResultByStatus(Status.SUCCESS).size());
         assertEquals(1, res.getResultByStatus(Status.FAILURE).size());
-        assertEquals("active", userService.read(
-                Long.parseLong(res.getResultByStatus(Status.SUCCESS).get(3))).getStatus());
+        assertEquals("active", userService.read(res.getResultByStatus(Status.SUCCESS).get(3)).getStatus());
 
         bulkAction.setType(BulkAction.Type.DELETE);
         res = userService.bulk(bulkAction);
@@ -2131,7 +2134,7 @@ public class UserITCase extends AbstractITCase {
     @Test
     public void issueSYNCOPE493() {
         // 1.  create user and check that firstname is not propagated on resource with mapping for firstname set to NONE
-        UserTO userTO = getUniqueSampleTO("issueSYNCOPE493@test.org");
+        UserTO userTO = getUniqueSampleTO("493@test.org");
         userTO.getResources().add(RESOURCE_NAME_WS1);
         ProvisioningResult<UserTO> result = createUser(userTO);
         assertNotNull(userTO);
@@ -2371,9 +2374,10 @@ public class UserITCase extends AbstractITCase {
         ResourceTO csv = resourceService.read(RESOURCE_NAME_CSV);
         assertNotNull(csv);
         try {
-            csv.setPasswordPolicy(8L);
+            csv.setPasswordPolicy("55e5de0b-c79c-4e66-adda-251b6fb8579a");
             resourceService.update(csv);
             csv = resourceService.read(RESOURCE_NAME_CSV);
+            assertEquals("55e5de0b-c79c-4e66-adda-251b6fb8579a", csv.getPasswordPolicy());
 
             userTO = getUniqueSampleTO("syncope391@syncope.apache.org");
             userTO.setPassword(null);
@@ -2443,7 +2447,7 @@ public class UserITCase extends AbstractITCase {
         assertNotNull(passwordPolicy);
 
         RealmTO realm = realmService.list("/even/two").get(0);
-        Long oldPasswordPolicy = realm.getPasswordPolicy();
+        String oldPasswordPolicy = realm.getPasswordPolicy();
         realm.setPasswordPolicy(passwordPolicy.getKey());
         realmService.update(realm);
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/550ee4f4/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserSelfITCase.java
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserSelfITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserSelfITCase.java
index abbac1a..6d412a8 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserSelfITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserSelfITCase.java
@@ -96,7 +96,8 @@ public class UserSelfITCase extends AbstractITCase {
 
         // self-create user with membership: goes 'createApproval' with resources and membership but no propagation
         UserTO userTO = UserITCase.getUniqueSampleTO("anonymous@syncope.apache.org");
-        userTO.getMemberships().add(new MembershipTO.Builder().group(3L).build());
+        userTO.getMemberships().add(
+                new MembershipTO.Builder().group("29f96485-729e-4d31-88a1-6fc60e4677f3").build());
         userTO.getResources().add(RESOURCE_NAME_TESTDB);
 
         SyncopeClient anonClient = clientFactory.create();
@@ -134,7 +135,7 @@ public class UserSelfITCase extends AbstractITCase {
         UserService userService2 = clientFactory.create("rossini", ADMIN_PWD).getService(UserService.class);
 
         try {
-            userService2.read(1L);
+            userService2.read("1417acbe-cbf6-4277-9372-e75e04f97000");
             fail();
         } catch (AccessControlException e) {
             assertNotNull(e);
@@ -181,7 +182,8 @@ public class UserSelfITCase extends AbstractITCase {
         userPatch.setUsername(new StringReplacePatchItem.Builder().value(created.getUsername() + "XX").build());
         userPatch.getMemberships().add(new MembershipPatch.Builder().
                 operation(PatchOperation.ADD_REPLACE).
-                membershipTO(new MembershipTO.Builder().group(7L).build()).
+                membershipTO(new MembershipTO.Builder().
+                        group("bf825fe1-7320-4a54-bd64-143b5c18ab97").build()).
                 build());
         userPatch.getResources().add(new StringPatchItem.Builder().
                 operation(PatchOperation.ADD_REPLACE).value(RESOURCE_NAME_TESTDB).build());
@@ -251,7 +253,7 @@ public class UserSelfITCase extends AbstractITCase {
 
         // 1. create an user with security question and answer
         UserTO user = UserITCase.getUniqueSampleTO("pwdReset@syncope.apache.org");
-        user.setSecurityQuestion(1L);
+        user.setSecurityQuestion("887028ea-66fc-41e7-b397-620d7ea6dfbb");
         user.setSecurityAnswer("Rossi");
         user.getResources().add(RESOURCE_NAME_TESTDB);
         createUser(user);
@@ -350,7 +352,7 @@ public class UserSelfITCase extends AbstractITCase {
     public void mustChangePassword() {
         // PRE: reset vivaldi's password
         UserPatch userPatch = new UserPatch();
-        userPatch.setKey(3L);
+        userPatch.setKey("b3cbc78d-32e6-4bd4-92e0-bbe07566a2ee");
         userPatch.setPassword(new PasswordPatch.Builder().value("password321").build());
         userService.update(userPatch);
 
@@ -361,7 +363,7 @@ public class UserSelfITCase extends AbstractITCase {
 
         // 1. update user vivaldi (3) requirig password update
         userPatch = new UserPatch();
-        userPatch.setKey(3L);
+        userPatch.setKey("b3cbc78d-32e6-4bd4-92e0-bbe07566a2ee");
         userPatch.setMustChangePassword(new BooleanReplacePatchItem.Builder().value(true).build());
         UserTO vivaldi = updateUser(userPatch).getAny();
         assertTrue(vivaldi.isMustChangePassword());

http://git-wip-us.apache.org/repos/asf/syncope/blob/550ee4f4/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserWorkflowITCase.java
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserWorkflowITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserWorkflowITCase.java
index ecb83d0..32c8269 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserWorkflowITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserWorkflowITCase.java
@@ -61,29 +61,30 @@ public class UserWorkflowITCase extends AbstractITCase {
         userTO.getResources().add(RESOURCE_NAME_TESTDB);
 
         // User with group 9 are defined in workflow as subject to approval
-        userTO.getMemberships().add(new MembershipTO.Builder().group(9L).build());
+        userTO.getMemberships().add(
+                new MembershipTO.Builder().group("0cbcabd2-4410-4b6b-8f05-a052b451d18f").build());
 
         // 1. create user with group 9
         userTO = createUser(userTO).getAny();
         assertNotNull(userTO);
         assertEquals(1, userTO.getMemberships().size());
-        assertEquals(9, userTO.getMemberships().get(0).getRightKey());
+        assertEquals("0cbcabd2-4410-4b6b-8f05-a052b451d18f", userTO.getMemberships().get(0).getRightKey());
         assertEquals("createApproval", userTO.getStatus());
 
         // 2. request if there is any pending task for user just created
         WorkflowFormTO form = userWorkflowService.getFormForUser(userTO.getKey());
         assertNotNull(form);
         assertNotNull(form.getUserKey());
-        assertEquals(userTO.getKey(), form.getUserKey(), 0);
+        assertEquals(userTO.getKey(), form.getUserKey());
         assertNotNull(form.getTaskId());
         assertNull(form.getOwner());
 
         // 3. claim task as rossini, with role "User manager" granting entitlement to claim forms but not in group 7,
         // designated for approval in workflow definition: fail
-        UserTO rossini = userService.read(1L);
+        UserTO rossini = userService.read("1417acbe-cbf6-4277-9372-e75e04f97000");
         if (!rossini.getRoles().contains("User manager")) {
             UserPatch userPatch = new UserPatch();
-            userPatch.setKey(1L);
+            userPatch.setKey("1417acbe-cbf6-4277-9372-e75e04f97000");
             userPatch.getRoles().add(new StringPatchItem.Builder().
                     operation(PatchOperation.ADD_REPLACE).value("User manager").build());
             rossini = updateUser(userPatch).getAny();
@@ -141,15 +142,16 @@ public class UserWorkflowITCase extends AbstractITCase {
         UserTO userTO = UserITCase.getUniqueSampleTO("createWithApproval@syncope.apache.org");
         userTO.getResources().add(RESOURCE_NAME_TESTDB);
 
-        // User with group 9 are defined in workflow as subject to approval
-        userTO.getMemberships().add(new MembershipTO.Builder().group(9L).build());
+        // User with group 0cbcabd2-4410-4b6b-8f05-a052b451d18f are defined in workflow as subject to approval
+        userTO.getMemberships().add(
+                new MembershipTO.Builder().group("0cbcabd2-4410-4b6b-8f05-a052b451d18f").build());
 
         // 1. create user with group 9 (and verify that no propagation occurred)
         ProvisioningResult<UserTO> result = createUser(userTO);
         assertNotNull(result);
         userTO = result.getAny();
         assertEquals(1, userTO.getMemberships().size());
-        assertEquals(9, userTO.getMemberships().get(0).getRightKey());
+        assertEquals("0cbcabd2-4410-4b6b-8f05-a052b451d18f", userTO.getMemberships().get(0).getRightKey());
         assertEquals("createApproval", userTO.getStatus());
         assertEquals(Collections.singleton(RESOURCE_NAME_TESTDB), userTO.getResources());
 
@@ -226,13 +228,14 @@ public class UserWorkflowITCase extends AbstractITCase {
         userTO.getDerAttrs().clear();
         userTO.getMemberships().clear();
 
-        // User with group 9 are defined in workflow as subject to approval
-        userTO.getMemberships().add(new MembershipTO.Builder().group(9L).build());
+        // Users with group 0cbcabd2-4410-4b6b-8f05-a052b451d18f are defined in workflow as subject to approval
+        userTO.getMemberships().add(
+                new MembershipTO.Builder().group("0cbcabd2-4410-4b6b-8f05-a052b451d18f").build());
 
         // 1. create user with group 9 (and verify that no propagation occurred)
         userTO = createUser(userTO).getAny();
         assertNotNull(userTO);
-        assertNotEquals(0L, userTO.getKey(), 0);
+        assertNotEquals(0L, userTO.getKey());
         assertNotNull(userTO.getCreationDate());
         assertNotNull(userTO.getCreator());
         assertNotNull(userTO.getLastChangeDate());

http://git-wip-us.apache.org/repos/asf/syncope/blob/550ee4f4/fit/core-reference/src/test/java/org/apache/syncope/fit/core/VirAttrITCase.java
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/VirAttrITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/VirAttrITCase.java
index b51670b..04fc00a 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/VirAttrITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/VirAttrITCase.java
@@ -73,7 +73,8 @@ public class VirAttrITCase extends AbstractITCase {
         UserTO userTO = UserITCase.getUniqueSampleTO("issue16@apache.org");
         userTO.getVirAttrs().add(attrTO("virtualdata", "virtualvalue"));
         userTO.getResources().add(RESOURCE_NAME_DBVIRATTR);
-        userTO.getMemberships().add(new MembershipTO.Builder().group(8L).build());
+        userTO.getMemberships().add(
+                new MembershipTO.Builder().group("f779c0d4-633b-4be5-8f57-32eb478a3ca5").build());
 
         // 1. create user
         userTO = createUser(userTO).getAny();
@@ -450,7 +451,7 @@ public class VirAttrITCase extends AbstractITCase {
     @Test
     public void issueSYNCOPE453() {
         String resourceName = "issueSYNCOPE453-Res-" + getUUIDString();
-        Long groupKey = null;
+        String groupKey = null;
         String groupName = "issueSYNCOPE453-Group-" + getUUIDString();
 
         try {
@@ -466,7 +467,7 @@ public class VirAttrITCase extends AbstractITCase {
                 rvirtualdata = new VirSchemaTO();
                 rvirtualdata.setKey("rvirtualdata");
                 rvirtualdata.setExtAttrName("businessCategory");
-                rvirtualdata.setProvision(20);
+                rvirtualdata.setProvision("20a75199-3f2e-4b9a-9510-c68dd7fc7b3d");
 
                 rvirtualdata = createSchema(SchemaType.VIRTUAL, rvirtualdata);
             }
@@ -489,7 +490,7 @@ public class VirAttrITCase extends AbstractITCase {
             ResourceTO resourceTO = new ResourceTO();
 
             resourceTO.setKey(resourceName);
-            resourceTO.setConnector(107L);
+            resourceTO.setConnector("be24b061-019d-4e3e-baf0-0a6d0a45cb9c");
 
             ProvisionTO provisionTO = new ProvisionTO();
             provisionTO.setAnyType(AnyTypeKind.USER.name());
@@ -501,7 +502,7 @@ public class VirAttrITCase extends AbstractITCase {
             provisionTO.setMapping(mapping);
 
             MappingItemTO item = new MappingItemTO();
-            item.setIntAttrName("aLong");
+            item.setIntAttrName("fullname");
             item.setIntMappingType(IntMappingType.UserPlainSchema);
             item.setExtAttrName("ID");
             item.setPurpose(MappingPurpose.PROPAGATION);
@@ -541,7 +542,7 @@ public class VirAttrITCase extends AbstractITCase {
             // Create new user
             // -------------------------------------------
             UserTO userTO = UserITCase.getUniqueSampleTO("syncope453@syncope.apache.org");
-            userTO.getPlainAttrs().add(attrTO("aLong", "123"));
+            userTO.getPlainAttrs().add(attrTO("fullname", "123"));
             userTO.getResources().clear();
             userTO.getResources().add(resourceName);
             userTO.getVirAttrs().clear();
@@ -560,9 +561,9 @@ public class VirAttrITCase extends AbstractITCase {
 
             Map<String, Object> actuals = jdbcTemplate.queryForMap(
                     "SELECT id, surname, email FROM testpull WHERE id=?",
-                    new Object[] { Integer.parseInt(userTO.getPlainAttrMap().get("aLong").getValues().get(0)) });
+                    new Object[] { userTO.getPlainAttrMap().get("fullname").getValues().get(0) });
 
-            assertEquals(userTO.getPlainAttrMap().get("aLong").getValues().get(0), actuals.get("id").toString());
+            assertEquals(userTO.getPlainAttrMap().get("fullname").getValues().get(0), actuals.get("id").toString());
             assertEquals("ml@group.it", actuals.get("email"));
             // -------------------------------------------
         } finally {

http://git-wip-us.apache.org/repos/asf/syncope/blob/550ee4f4/fit/core-reference/src/test/java/org/apache/syncope/fit/core/VirSchemaITCase.java
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/VirSchemaITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/VirSchemaITCase.java
index 01ce60f..84d378a 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/VirSchemaITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/VirSchemaITCase.java
@@ -66,7 +66,7 @@ public class VirSchemaITCase extends AbstractITCase {
 
         schema = createSchema(SchemaType.VIRTUAL, schema);
         assertNotNull(schema);
-        assertEquals(csv.getProvisions().get(0).getKey(), schema.getProvision(), 0);
+        assertEquals(csv.getProvisions().get(0).getKey(), schema.getProvision());
 
         csv = resourceService.read(RESOURCE_NAME_CSV);
         assertNotNull(csv);

http://git-wip-us.apache.org/repos/asf/syncope/blob/550ee4f4/fit/core-reference/src/test/resources/console.properties
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/test/resources/console.properties b/fit/core-reference/src/test/resources/console.properties
index 0de5557..b197ef0 100644
--- a/fit/core-reference/src/test/resources/console.properties
+++ b/fit/core-reference/src/test/resources/console.properties
@@ -30,7 +30,7 @@ rootPath=/syncope/rest/
 
 activitiModelerDirectory=${activiti-modeler.directory}
 
-reconciliationReportKey=2
+reconciliationReportKey=c3520ad9-179f-49e7-b315-d684d216dd97
 
 page.dashboard=org.apache.syncope.client.console.pages.Dashboard
 page.realms=org.apache.syncope.client.console.pages.Realms

http://git-wip-us.apache.org/repos/asf/syncope/blob/550ee4f4/fit/core-reference/src/test/resources/rebel.xml
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/test/resources/rebel.xml b/fit/core-reference/src/test/resources/rebel.xml
index b025aa9..a14db81 100644
--- a/fit/core-reference/src/test/resources/rebel.xml
+++ b/fit/core-reference/src/test/resources/rebel.xml
@@ -41,6 +41,7 @@ under the License.
     </dir>
     <dir name="${basedir}/../../core/persistence-jpa/target/classes">
       <exclude name="persistenceContext.xml"/>
+      <exclude name="org/apache/syncope/core/persistence/jpa/entity/**"/>
     </dir>
     <dir name="${basedir}/../../core/provisioning-api/target/classes">
     </dir>

http://git-wip-us.apache.org/repos/asf/syncope/blob/550ee4f4/fit/enduser-reference/src/test/resources/rebel.xml
----------------------------------------------------------------------
diff --git a/fit/enduser-reference/src/test/resources/rebel.xml b/fit/enduser-reference/src/test/resources/rebel.xml
index b65a463..eca8af7 100644
--- a/fit/enduser-reference/src/test/resources/rebel.xml
+++ b/fit/enduser-reference/src/test/resources/rebel.xml
@@ -34,7 +34,7 @@ under the License.
       </dir>
     </link>
     <link target="/">
-      <dir name="${basedir}/../../client/enduser/target/classes">
+      <dir name="${basedir}/../../client/enduser/target/classes/META-INF/resources">
       </dir>
     </link>
   </web>

http://git-wip-us.apache.org/repos/asf/syncope/blob/550ee4f4/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 80bc895..ab044ed 100644
--- a/pom.xml
+++ b/pom.xml
@@ -598,7 +598,12 @@ under the License.
         <artifactId>openjpa-persistence-jdbc</artifactId>
         <version>${openjpa.version}</version>
       </dependency>
-    
+      <dependency>
+        <groupId>com.fasterxml.uuid</groupId>
+        <artifactId>java-uuid-generator</artifactId>
+        <version>3.1.4</version>
+      </dependency>
+
       <dependency>
         <groupId>org.apache.commons</groupId>
         <artifactId>commons-dbcp2</artifactId>
@@ -1854,7 +1859,7 @@ under the License.
           <plugin>
             <groupId>org.apache.maven.plugins</groupId>
             <artifactId>maven-site-plugin</artifactId>
-            <version>3.5</version>
+            <version>3.5.1</version>
             <dependencies>
               <dependency>
                 <groupId>org.apache.velocity</groupId>