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 2015/05/26 08:26:36 UTC

[1/5] syncope git commit: [SYNCOPE-672] Fix AbstractSearchPanel for search filter

Repository: syncope
Updated Branches:
  refs/heads/SYNCOPE-666 081d9a04a -> a78a6f1f7


[SYNCOPE-672] Fix AbstractSearchPanel for search filter


Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/13abc833
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/13abc833
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/13abc833

Branch: refs/heads/SYNCOPE-666
Commit: 13abc83310e7d204ccc47d39d5d7513392648006
Parents: 4c90ea8
Author: Marco Di Sabatino Di Diodoro <md...@apache.org>
Authored: Mon May 25 17:16:09 2015 +0200
Committer: Marco Di Sabatino Di Diodoro <md...@apache.org>
Committed: Mon May 25 17:16:09 2015 +0200

----------------------------------------------------------------------
 .../apache/syncope/console/pages/panels/AbstractSearchPanel.java    | 1 +
 1 file changed, 1 insertion(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/syncope/blob/13abc833/console/src/main/java/org/apache/syncope/console/pages/panels/AbstractSearchPanel.java
----------------------------------------------------------------------
diff --git a/console/src/main/java/org/apache/syncope/console/pages/panels/AbstractSearchPanel.java b/console/src/main/java/org/apache/syncope/console/pages/panels/AbstractSearchPanel.java
index d873419..247816b 100644
--- a/console/src/main/java/org/apache/syncope/console/pages/panels/AbstractSearchPanel.java
+++ b/console/src/main/java/org/apache/syncope/console/pages/panels/AbstractSearchPanel.java
@@ -225,6 +225,7 @@ public abstract class AbstractSearchPanel extends Panel {
             }
         } else if (SpecialAttr.RESOURCES.toString().equals(property)) {
             searchClause.setType(SearchClause.Type.RESOURCE);
+            searchClause.setProperty(value);
         } else if (SpecialAttr.ENTITLEMENTS.toString().equals(property)) {
             searchClause.setType(SearchClause.Type.ENTITLEMENT);
         } else {


[4/5] syncope git commit: [SYNCOPE-666] Fix naming

Posted by il...@apache.org.
http://git-wip-us.apache.org/repos/asf/syncope/blob/a78a6f1f/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/LDAPPasswordSyncActions.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/LDAPPasswordSyncActions.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/LDAPPasswordSyncActions.java
index 992507b..32f660e 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/LDAPPasswordSyncActions.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/LDAPPasswordSyncActions.java
@@ -56,10 +56,10 @@ public class LDAPPasswordSyncActions extends DefaultSyncActions {
     public <T extends AnyTO> SyncDelta beforeProvision(
             final ProvisioningProfile<?, ?> profile,
             final SyncDelta delta,
-            final T subject) throws JobExecutionException {
+            final T any) throws JobExecutionException {
 
-        if (subject instanceof UserTO) {
-            String password = ((UserTO) subject).getPassword();
+        if (any instanceof UserTO) {
+            String password = ((UserTO) any).getPassword();
             parseEncodedPassword(password);
         }
 
@@ -71,11 +71,11 @@ public class LDAPPasswordSyncActions extends DefaultSyncActions {
     public <T extends AnyTO, K extends AnyMod> SyncDelta beforeUpdate(
             final ProvisioningProfile<?, ?> profile,
             final SyncDelta delta,
-            final T subject,
-            final K subjectMod) throws JobExecutionException {
+            final T any,
+            final K anyMod) throws JobExecutionException {
 
-        if (subjectMod instanceof UserMod) {
-            String modPassword = ((UserMod) subjectMod).getPassword();
+        if (anyMod instanceof UserMod) {
+            String modPassword = ((UserMod) anyMod).getPassword();
             parseEncodedPassword(modPassword);
         }
 
@@ -104,11 +104,11 @@ public class LDAPPasswordSyncActions extends DefaultSyncActions {
     public <T extends AnyTO> void after(
             final ProvisioningProfile<?, ?> profile,
             final SyncDelta delta,
-            final T subject,
+            final T any,
             final ProvisioningResult result) throws JobExecutionException {
 
-        if (subject instanceof UserTO && encodedPassword != null && cipher != null) {
-            User syncopeUser = userDAO.find(subject.getKey());
+        if (any instanceof UserTO && encodedPassword != null && cipher != null) {
+            User syncopeUser = userDAO.find(any.getKey());
             if (syncopeUser != null) {
                 byte[] encodedPasswordBytes = Base64.decode(encodedPassword.getBytes());
                 char[] encodedHex = Hex.encode(encodedPasswordBytes);

http://git-wip-us.apache.org/repos/asf/syncope/blob/a78a6f1f/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/SyncUtils.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/SyncUtils.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/SyncUtils.java
index e751522..8982824 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/SyncUtils.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/SyncUtils.java
@@ -163,10 +163,10 @@ public class SyncUtils {
         return result;
     }
 
-    private AnyDAO<?> getAnyDAO(final MappingItem accountIdItem) {
-        return AnyTypeKind.USER == accountIdItem.getIntMappingType().getAnyTypeKind()
+    private AnyDAO<?> getAnyDAO(final MappingItem connObjectKeyItem) {
+        return AnyTypeKind.USER == connObjectKeyItem.getIntMappingType().getAnyTypeKind()
                 ? userDAO
-                : AnyTypeKind.ANY_OBJECT == accountIdItem.getIntMappingType().getAnyTypeKind()
+                : AnyTypeKind.ANY_OBJECT == connObjectKeyItem.getIntMappingType().getAnyTypeKind()
                         ? anyObjectDAO
                         : groupDAO;
     }
@@ -238,7 +238,7 @@ public class SyncUtils {
                 break;
 
             default:
-                LOG.error("Invalid accountId type '{}'", connObjectKeyItem.getIntMappingType());
+                LOG.error("Invalid connObjectKey type '{}'", connObjectKeyItem.getIntMappingType());
         }
 
         return result;
@@ -356,7 +356,7 @@ public class SyncUtils {
     /**
      * Find users / groups based on mapped uid value (or previous uid value, if updated).
      *
-     * @param uid for finding by account id
+     * @param uid for finding by connObjectKey
      * @param connObj for finding by attribute value
      * @param provision external resource
      * @param anyUtils any util

http://git-wip-us.apache.org/repos/asf/syncope/blob/a78a6f1f/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/UserPushResultHandlerImpl.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/UserPushResultHandlerImpl.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/UserPushResultHandlerImpl.java
index dc1ea5a..e4a436f 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/UserPushResultHandlerImpl.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/UserPushResultHandlerImpl.java
@@ -113,8 +113,8 @@ public class UserPushResultHandlerImpl extends AbstractPushResultHandler impleme
     }
 
     @Override
-    protected String getName(final Any<?, ?, ?> subject) {
-        return User.class.cast(subject).getUsername();
+    protected String getName(final Any<?, ?, ?> any) {
+        return User.class.cast(any).getUsername();
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/syncope/blob/a78a6f1f/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/UserSyncResultHandlerImpl.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/UserSyncResultHandlerImpl.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/UserSyncResultHandlerImpl.java
index 3e99286..8487fa8 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/UserSyncResultHandlerImpl.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/UserSyncResultHandlerImpl.java
@@ -40,8 +40,8 @@ public class UserSyncResultHandlerImpl extends AbstractSyncResultHandler impleme
     }
 
     @Override
-    protected String getName(final AnyTO subjectTO) {
-        return UserTO.class.cast(subjectTO).getUsername();
+    protected String getName(final AnyTO anyTO) {
+        return UserTO.class.cast(anyTO).getUsername();
     }
 
     @Override
@@ -55,8 +55,8 @@ public class UserSyncResultHandlerImpl extends AbstractSyncResultHandler impleme
     }
 
     @Override
-    protected AnyTO doCreate(final AnyTO subjectTO, final SyncDelta delta, final ProvisioningResult result) {
-        UserTO userTO = UserTO.class.cast(subjectTO);
+    protected AnyTO doCreate(final AnyTO anyTO, final SyncDelta delta, final ProvisioningResult result) {
+        UserTO userTO = UserTO.class.cast(anyTO);
 
         Boolean enabled = syncUtilities.readEnabled(delta.getObject(), profile.getTask());
         Map.Entry<Long, List<PropagationStatus>> created = userProvisioningManager.create(userTO, true, true, enabled,

http://git-wip-us.apache.org/repos/asf/syncope/blob/a78a6f1f/core/provisioning-java/src/test/java/org/apache/syncope/core/provisioning/java/data/ResourceDataBinderTest.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/test/java/org/apache/syncope/core/provisioning/java/data/ResourceDataBinderTest.java b/core/provisioning-java/src/test/java/org/apache/syncope/core/provisioning/java/data/ResourceDataBinderTest.java
index 51245e4..969dd89 100644
--- a/core/provisioning-java/src/test/java/org/apache/syncope/core/provisioning/java/data/ResourceDataBinderTest.java
+++ b/core/provisioning-java/src/test/java/org/apache/syncope/core/provisioning/java/data/ResourceDataBinderTest.java
@@ -92,7 +92,7 @@ public class ResourceDataBinderTest extends AbstractTest {
         item.setIntAttrName("userId");
         item.setIntMappingType(IntMappingType.UserPlainSchema);
         item.setExtAttrName("campo1");
-        item.setAccountid(true);
+        item.setConnObjectKey(true);
         item.setMandatoryCondition("false");
         item.setPurpose(MappingPurpose.BOTH);
         mapping.setConnObjectKeyItem(item);

http://git-wip-us.apache.org/repos/asf/syncope/blob/a78a6f1f/ext/camel/logic/src/main/java/org/apache/syncope/core/logic/init/CamelRouteLoader.java
----------------------------------------------------------------------
diff --git a/ext/camel/logic/src/main/java/org/apache/syncope/core/logic/init/CamelRouteLoader.java b/ext/camel/logic/src/main/java/org/apache/syncope/core/logic/init/CamelRouteLoader.java
index e13018f..e2ddbc9 100644
--- a/ext/camel/logic/src/main/java/org/apache/syncope/core/logic/init/CamelRouteLoader.java
+++ b/ext/camel/logic/src/main/java/org/apache/syncope/core/logic/init/CamelRouteLoader.java
@@ -82,7 +82,7 @@ public class CamelRouteLoader implements SyncopeLoader {
     }
 
     private boolean loadRoutesFor(final AnyTypeKind anyTypeKind) {
-        final String sql = String.format("SELECT * FROM %s WHERE SUBJECTTYPE = ?", CamelRoute.class.getSimpleName());
+        final String sql = String.format("SELECT * FROM %s WHERE ANYTYPEKIND = ?", CamelRoute.class.getSimpleName());
         final JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
         final List<Map<String, Object>> rows = jdbcTemplate.queryForList(sql, new Object[] { anyTypeKind.name() });
         return rows.isEmpty();
@@ -104,7 +104,7 @@ public class CamelRouteLoader implements SyncopeLoader {
 
     private void loadRoutes(final Resource resource, final AnyTypeKind anyTypeKind) {
         if (loadRoutesFor(anyTypeKind)) {
-            String query = String.format("INSERT INTO %s(NAME, SUBJECTTYPE, CONTENT) VALUES (?, ?, ?)",
+            String query = String.format("INSERT INTO %s(NAME, ANYTYPEKIND, CONTENT) VALUES (?, ?, ?)",
                     CamelRoute.class.getSimpleName());
             JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/a78a6f1f/ext/camel/provisioning-camel/src/main/java/org/apache/syncope/core/provisioning/camel/CamelGroupProvisioningManager.java
----------------------------------------------------------------------
diff --git a/ext/camel/provisioning-camel/src/main/java/org/apache/syncope/core/provisioning/camel/CamelGroupProvisioningManager.java b/ext/camel/provisioning-camel/src/main/java/org/apache/syncope/core/provisioning/camel/CamelGroupProvisioningManager.java
index 7c132a1..18aadcc 100644
--- a/ext/camel/provisioning-camel/src/main/java/org/apache/syncope/core/provisioning/camel/CamelGroupProvisioningManager.java
+++ b/ext/camel/provisioning-camel/src/main/java/org/apache/syncope/core/provisioning/camel/CamelGroupProvisioningManager.java
@@ -36,8 +36,8 @@ public class CamelGroupProvisioningManager
         extends AbstractCamelProvisioningManager implements GroupProvisioningManager {
 
     @Override
-    public Pair<Long, List<PropagationStatus>> create(final GroupTO subject) {
-        return create(subject, Collections.<String>emptySet());
+    public Pair<Long, List<PropagationStatus>> create(final GroupTO any) {
+        return create(any, Collections.<String>emptySet());
     }
 
     @Override
@@ -82,21 +82,21 @@ public class CamelGroupProvisioningManager
     }
 
     @Override
-    public Pair<Long, List<PropagationStatus>> update(final GroupMod subjectMod) {
-        return update(subjectMod, Collections.<String>emptySet());
+    public Pair<Long, List<PropagationStatus>> update(final GroupMod anyMod) {
+        return update(anyMod, Collections.<String>emptySet());
     }
 
     @Override
     @SuppressWarnings("unchecked")
     public Pair<Long, List<PropagationStatus>> update(
-            final GroupMod subjectMod, final Set<String> excludedResources) {
+            final GroupMod anyMod, final Set<String> excludedResources) {
 
         PollingConsumer pollingConsumer = getConsumer("direct:updateGroupPort");
 
         Map<String, Object> props = new HashMap<>();
         props.put("excludedResources", excludedResources);
 
-        sendMessage("direct:updateGroup", subjectMod, props);
+        sendMessage("direct:updateGroup", anyMod, props);
 
         Exchange exchange = pollingConsumer.receive();
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/a78a6f1f/ext/camel/provisioning-camel/src/main/java/org/apache/syncope/core/provisioning/camel/CamelUserProvisioningManager.java
----------------------------------------------------------------------
diff --git a/ext/camel/provisioning-camel/src/main/java/org/apache/syncope/core/provisioning/camel/CamelUserProvisioningManager.java b/ext/camel/provisioning-camel/src/main/java/org/apache/syncope/core/provisioning/camel/CamelUserProvisioningManager.java
index 5b20fa1..a258751 100644
--- a/ext/camel/provisioning-camel/src/main/java/org/apache/syncope/core/provisioning/camel/CamelUserProvisioningManager.java
+++ b/ext/camel/provisioning-camel/src/main/java/org/apache/syncope/core/provisioning/camel/CamelUserProvisioningManager.java
@@ -214,10 +214,10 @@ public class CamelUserProvisioningManager extends AbstractCamelProvisioningManag
     }
 
     @Override
-    public Long link(final UserMod subjectMod) {
+    public Long link(final UserMod anyMod) {
         PollingConsumer pollingConsumer = getConsumer("direct:linkPort");
 
-        sendMessage("direct:linkUser", subjectMod);
+        sendMessage("direct:linkUser", anyMod);
 
         Exchange exchange = pollingConsumer.receive();
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/a78a6f1f/ext/camel/provisioning-camel/src/main/java/org/apache/syncope/core/provisioning/camel/processor/GroupCreateInSyncProcessor.java
----------------------------------------------------------------------
diff --git a/ext/camel/provisioning-camel/src/main/java/org/apache/syncope/core/provisioning/camel/processor/GroupCreateInSyncProcessor.java b/ext/camel/provisioning-camel/src/main/java/org/apache/syncope/core/provisioning/camel/processor/GroupCreateInSyncProcessor.java
index a22f2eb..8dc8bde 100644
--- a/ext/camel/provisioning-camel/src/main/java/org/apache/syncope/core/provisioning/camel/processor/GroupCreateInSyncProcessor.java
+++ b/ext/camel/provisioning-camel/src/main/java/org/apache/syncope/core/provisioning/camel/processor/GroupCreateInSyncProcessor.java
@@ -48,7 +48,7 @@ public class GroupCreateInSyncProcessor implements Processor {
     public void process(final Exchange exchange) {
         WorkflowResult<Long> created = (WorkflowResult) exchange.getIn().getBody();
 
-        GroupTO actual = exchange.getProperty("subject", GroupTO.class);
+        GroupTO actual = exchange.getProperty("any", GroupTO.class);
         Map<Long, String> groupOwnerMap = exchange.getProperty("groupOwnerMap", Map.class);
         Set<String> excludedResources = exchange.getProperty("excludedResources", Set.class);
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/a78a6f1f/ext/camel/provisioning-camel/src/main/java/org/apache/syncope/core/provisioning/camel/processor/GroupCreateProcessor.java
----------------------------------------------------------------------
diff --git a/ext/camel/provisioning-camel/src/main/java/org/apache/syncope/core/provisioning/camel/processor/GroupCreateProcessor.java b/ext/camel/provisioning-camel/src/main/java/org/apache/syncope/core/provisioning/camel/processor/GroupCreateProcessor.java
index 6805a5e..4ab62e3 100644
--- a/ext/camel/provisioning-camel/src/main/java/org/apache/syncope/core/provisioning/camel/processor/GroupCreateProcessor.java
+++ b/ext/camel/provisioning-camel/src/main/java/org/apache/syncope/core/provisioning/camel/processor/GroupCreateProcessor.java
@@ -51,11 +51,11 @@ public class GroupCreateProcessor implements Processor {
     @Override
     public void process(final Exchange exchange) {
         WorkflowResult<Long> created = (WorkflowResult) exchange.getIn().getBody();
-        GroupTO subject = exchange.getProperty("subject", GroupTO.class);
+        GroupTO any = exchange.getProperty("any", GroupTO.class);
         Set<String> excludedResource = exchange.getProperty("excludedResources", Set.class);
 
         List<PropagationTask> tasks =
-                propagationManager.getGroupCreateTasks(created, subject.getVirAttrs(), excludedResource);
+                propagationManager.getGroupCreateTasks(created, any.getVirAttrs(), excludedResource);
         PropagationReporter propagationReporter =
                 ApplicationContextProvider.getApplicationContext().getBean(PropagationReporter.class);
         try {

http://git-wip-us.apache.org/repos/asf/syncope/blob/a78a6f1f/ext/camel/provisioning-camel/src/main/java/org/apache/syncope/core/provisioning/camel/processor/GroupDeleteProcessor.java
----------------------------------------------------------------------
diff --git a/ext/camel/provisioning-camel/src/main/java/org/apache/syncope/core/provisioning/camel/processor/GroupDeleteProcessor.java b/ext/camel/provisioning-camel/src/main/java/org/apache/syncope/core/provisioning/camel/processor/GroupDeleteProcessor.java
index 212cccd..f452ffd 100644
--- a/ext/camel/provisioning-camel/src/main/java/org/apache/syncope/core/provisioning/camel/processor/GroupDeleteProcessor.java
+++ b/ext/camel/provisioning-camel/src/main/java/org/apache/syncope/core/provisioning/camel/processor/GroupDeleteProcessor.java
@@ -59,8 +59,8 @@ public class GroupDeleteProcessor implements Processor {
 
     @Override
     public void process(final Exchange exchange) throws Exception {
-        Long subjectKey = exchange.getIn().getBody(Long.class);
-        Group group = groupDAO.find(subjectKey);
+        Long anyKey = exchange.getIn().getBody(Long.class);
+        Group group = groupDAO.find(anyKey);
 
         final List<PropagationTask> tasks = new ArrayList<>();
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/a78a6f1f/ext/camel/provisioning-camel/src/main/java/org/apache/syncope/core/provisioning/camel/processor/GroupUpdateProcessor.java
----------------------------------------------------------------------
diff --git a/ext/camel/provisioning-camel/src/main/java/org/apache/syncope/core/provisioning/camel/processor/GroupUpdateProcessor.java b/ext/camel/provisioning-camel/src/main/java/org/apache/syncope/core/provisioning/camel/processor/GroupUpdateProcessor.java
index fc18e83..7a2f455 100644
--- a/ext/camel/provisioning-camel/src/main/java/org/apache/syncope/core/provisioning/camel/processor/GroupUpdateProcessor.java
+++ b/ext/camel/provisioning-camel/src/main/java/org/apache/syncope/core/provisioning/camel/processor/GroupUpdateProcessor.java
@@ -51,11 +51,11 @@ public class GroupUpdateProcessor implements Processor {
     @Override
     public void process(final Exchange exchange) {
         WorkflowResult<Long> updated = (WorkflowResult) exchange.getIn().getBody();
-        GroupMod subjectMod = exchange.getProperty("subjectMod", GroupMod.class);
+        GroupMod anyMod = exchange.getProperty("anyMod", GroupMod.class);
         Set<String> excludedResources = exchange.getProperty("excludedResources", Set.class);
 
         List<PropagationTask> tasks = propagationManager.getGroupUpdateTasks(updated,
-                subjectMod.getVirAttrsToRemove(), subjectMod.getVirAttrsToUpdate(), excludedResources);
+                anyMod.getVirAttrsToRemove(), anyMod.getVirAttrsToUpdate(), excludedResources);
         PropagationReporter propagationReporter =
                 ApplicationContextProvider.getApplicationContext().getBean(PropagationReporter.class);
         try {

http://git-wip-us.apache.org/repos/asf/syncope/blob/a78a6f1f/ext/camel/provisioning-camel/src/main/resources/groupRoutes.xml
----------------------------------------------------------------------
diff --git a/ext/camel/provisioning-camel/src/main/resources/groupRoutes.xml b/ext/camel/provisioning-camel/src/main/resources/groupRoutes.xml
index 63aa0d3..f897f90 100644
--- a/ext/camel/provisioning-camel/src/main/resources/groupRoutes.xml
+++ b/ext/camel/provisioning-camel/src/main/resources/groupRoutes.xml
@@ -21,7 +21,7 @@ under the License.
      
   <route id="createGroup">
     <from uri="direct:createGroup"/>
-    <setProperty propertyName="subject">
+    <setProperty propertyName="any">
       <simple>${body}</simple>
     </setProperty>
     <doTry>
@@ -40,7 +40,7 @@ under the License.
                
   <route id="createGroupSync">
     <from uri="direct:createGroupInSync"/>
-    <setProperty propertyName="subject">
+    <setProperty propertyName="any">
       <simple>${body}</simple>
     </setProperty>
     <doTry>
@@ -59,7 +59,7 @@ under the License.
          
   <route id="updateGroup">
     <from uri="direct:updateGroup"/>
-    <setProperty propertyName="subjectMod">
+    <setProperty propertyName="anyMod">
       <simple>${body}</simple>
     </setProperty>
     <doTry>

http://git-wip-us.apache.org/repos/asf/syncope/blob/a78a6f1f/fit/core-reference/src/main/java/org/apache/syncope/fit/core/reference/DoubleValueAnyTransformer.java
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/main/java/org/apache/syncope/fit/core/reference/DoubleValueAnyTransformer.java b/fit/core-reference/src/main/java/org/apache/syncope/fit/core/reference/DoubleValueAnyTransformer.java
new file mode 100644
index 0000000..b92d976
--- /dev/null
+++ b/fit/core-reference/src/main/java/org/apache/syncope/fit/core/reference/DoubleValueAnyTransformer.java
@@ -0,0 +1,75 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.syncope.fit.core.reference;
+
+import java.util.ArrayList;
+import java.util.List;
+import org.apache.syncope.common.lib.mod.AnyMod;
+import org.apache.syncope.common.lib.mod.AttrMod;
+import org.apache.syncope.common.lib.to.AnyTO;
+import org.apache.syncope.common.lib.to.AttrTO;
+import org.apache.syncope.core.provisioning.api.AnyTransformer;
+
+/**
+ * Class for integration tests: transform (by making it double) any attribute value for defined schema.
+ */
+public class DoubleValueAnyTransformer implements AnyTransformer {
+
+    private static final String NAME = "makeItDouble";
+
+    @Override
+    public <T extends AnyTO> T transform(final T input) {
+        for (AttrTO attr : input.getPlainAttrs()) {
+            if (NAME.equals(attr.getSchema())) {
+                List<String> values = new ArrayList<>(attr.getValues().size());
+                for (String value : attr.getValues()) {
+                    try {
+                        values.add(String.valueOf(2 * Long.valueOf(value)));
+                    } catch (NumberFormatException e) {
+                        // ignore
+                    }
+                }
+                attr.getValues().clear();
+                attr.getValues().addAll(values);
+            }
+        }
+
+        return input;
+    }
+
+    @Override
+    public <T extends AnyMod> T transform(final T input) {
+        for (AttrMod attr : input.getPlainAttrsToUpdate()) {
+            if (NAME.equals(attr.getSchema())) {
+                List<String> values = new ArrayList<>(attr.getValuesToBeAdded().size());
+                for (String value : attr.getValuesToBeAdded()) {
+                    try {
+                        values.add(String.valueOf(2 * Long.valueOf(value)));
+                    } catch (NumberFormatException e) {
+                        // ignore
+                    }
+                }
+                attr.getValuesToBeAdded().clear();
+                attr.getValuesToBeAdded().addAll(values);
+            }
+        }
+
+        return input;
+    }
+}

http://git-wip-us.apache.org/repos/asf/syncope/blob/a78a6f1f/fit/core-reference/src/main/java/org/apache/syncope/fit/core/reference/DoubleValueAttributableTransformer.java
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/main/java/org/apache/syncope/fit/core/reference/DoubleValueAttributableTransformer.java b/fit/core-reference/src/main/java/org/apache/syncope/fit/core/reference/DoubleValueAttributableTransformer.java
deleted file mode 100644
index ec5d437..0000000
--- a/fit/core-reference/src/main/java/org/apache/syncope/fit/core/reference/DoubleValueAttributableTransformer.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.syncope.fit.core.reference;
-
-import java.util.ArrayList;
-import java.util.List;
-import org.apache.syncope.common.lib.mod.AnyMod;
-import org.apache.syncope.common.lib.mod.AttrMod;
-import org.apache.syncope.common.lib.to.AnyTO;
-import org.apache.syncope.common.lib.to.AttrTO;
-import org.apache.syncope.core.provisioning.api.AnyTransformer;
-
-/**
- * Class for integration tests: transform (by making it double) any attribute value for defined schema.
- */
-public class DoubleValueAttributableTransformer implements AnyTransformer {
-
-    private static final String NAME = "makeItDouble";
-
-    @Override
-    public <T extends AnyTO> T transform(final T input) {
-        for (AttrTO attr : input.getPlainAttrs()) {
-            if (NAME.equals(attr.getSchema())) {
-                List<String> values = new ArrayList<>(attr.getValues().size());
-                for (String value : attr.getValues()) {
-                    try {
-                        values.add(String.valueOf(2 * Long.valueOf(value)));
-                    } catch (NumberFormatException e) {
-                        // ignore
-                    }
-                }
-                attr.getValues().clear();
-                attr.getValues().addAll(values);
-            }
-        }
-
-        return input;
-    }
-
-    @Override
-    public <T extends AnyMod> T transform(final T input) {
-        for (AttrMod attr : input.getPlainAttrsToUpdate()) {
-            if (NAME.equals(attr.getSchema())) {
-                List<String> values = new ArrayList<>(attr.getValuesToBeAdded().size());
-                for (String value : attr.getValuesToBeAdded()) {
-                    try {
-                        values.add(String.valueOf(2 * Long.valueOf(value)));
-                    } catch (NumberFormatException e) {
-                        // ignore
-                    }
-                }
-                attr.getValuesToBeAdded().clear();
-                attr.getValuesToBeAdded().addAll(values);
-            }
-        }
-
-        return input;
-    }
-}

http://git-wip-us.apache.org/repos/asf/syncope/blob/a78a6f1f/fit/core-reference/src/main/java/org/apache/syncope/fit/core/reference/TestSyncActions.java
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/main/java/org/apache/syncope/fit/core/reference/TestSyncActions.java b/fit/core-reference/src/main/java/org/apache/syncope/fit/core/reference/TestSyncActions.java
index 9e37c09..8974c82 100644
--- a/fit/core-reference/src/main/java/org/apache/syncope/fit/core/reference/TestSyncActions.java
+++ b/fit/core-reference/src/main/java/org/apache/syncope/fit/core/reference/TestSyncActions.java
@@ -39,12 +39,12 @@ public class TestSyncActions extends DefaultSyncActions {
 
     @Override
     public <T extends AnyTO> SyncDelta beforeProvision(
-            final ProvisioningProfile<?, ?> profile, final SyncDelta delta, final T subject)
+            final ProvisioningProfile<?, ?> profile, final SyncDelta delta, final T any)
             throws JobExecutionException {
 
         AttrTO attrTO = null;
-        for (int i = 0; i < subject.getPlainAttrs().size(); i++) {
-            AttrTO plainAttr = CollectionUtils.get(subject.getPlainAttrs(), i);
+        for (int i = 0; i < any.getPlainAttrs().size(); i++) {
+            AttrTO plainAttr = CollectionUtils.get(any.getPlainAttrs(), i);
             if ("fullname".equals(plainAttr.getSchema())) {
                 attrTO = plainAttr;
             }
@@ -52,7 +52,7 @@ public class TestSyncActions extends DefaultSyncActions {
         if (attrTO == null) {
             attrTO = new AttrTO();
             attrTO.setSchema("fullname");
-            subject.getPlainAttrs().add(attrTO);
+            any.getPlainAttrs().add(attrTO);
         }
         attrTO.getValues().clear();
         attrTO.getValues().add(String.valueOf(counter++));
@@ -62,10 +62,10 @@ public class TestSyncActions extends DefaultSyncActions {
 
     @Override
     public <T extends AnyTO> SyncDelta beforeAssign(
-            final ProvisioningProfile<?, ?> profile, final SyncDelta delta, final T subject)
+            final ProvisioningProfile<?, ?> profile, final SyncDelta delta, final T any)
             throws JobExecutionException {
 
-        if (subject instanceof UserTO && "test2".equals(UserTO.class.cast(subject).getUsername())) {
+        if (any instanceof UserTO && "test2".equals(UserTO.class.cast(any).getUsername())) {
             throw new IgnoreProvisionException();
         }
 
@@ -76,13 +76,13 @@ public class TestSyncActions extends DefaultSyncActions {
     public <T extends AnyTO, K extends AnyMod> SyncDelta beforeUpdate(
             final ProvisioningProfile<?, ?> profile,
             final SyncDelta delta,
-            final T subject,
-            final K subjectMod) throws JobExecutionException {
+            final T any,
+            final K anyMod) throws JobExecutionException {
 
-        subjectMod.getPlainAttrsToRemove().add("fullname");
+        anyMod.getPlainAttrsToRemove().add("fullname");
 
         AttrMod fullnameMod = null;
-        for (AttrMod attrMod : subjectMod.getPlainAttrsToUpdate()) {
+        for (AttrMod attrMod : anyMod.getPlainAttrsToUpdate()) {
             if ("fullname".equals(attrMod.getSchema())) {
                 fullnameMod = attrMod;
             }
@@ -90,7 +90,7 @@ public class TestSyncActions extends DefaultSyncActions {
         if (fullnameMod == null) {
             fullnameMod = new AttrMod();
             fullnameMod.setSchema("fullname");
-            subjectMod.getPlainAttrsToUpdate().add(fullnameMod);
+            anyMod.getPlainAttrsToUpdate().add(fullnameMod);
         }
 
         fullnameMod.getValuesToBeAdded().clear();

http://git-wip-us.apache.org/repos/asf/syncope/blob/a78a6f1f/fit/core-reference/src/main/resources/logic.properties
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/main/resources/logic.properties b/fit/core-reference/src/main/resources/logic.properties
index 2fcb844..7ff308d 100644
--- a/fit/core-reference/src/main/resources/logic.properties
+++ b/fit/core-reference/src/main/resources/logic.properties
@@ -14,5 +14,5 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
-attributableTransformer=org.apache.syncope.fit.core.reference.DoubleValueAttributableTransformer
+anyTransformer=org.apache.syncope.fit.core.reference.DoubleValueAnyTransformer
 logicInvocationHandler=org.apache.syncope.core.logic.LogicInvocationHandler

http://git-wip-us.apache.org/repos/asf/syncope/blob/a78a6f1f/fit/core-reference/src/test/java/org/apache/syncope/fit/core/reference/AuthenticationITCase.java
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/reference/AuthenticationITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/reference/AuthenticationITCase.java
index 019c1c8..8005b24 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/reference/AuthenticationITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/reference/AuthenticationITCase.java
@@ -198,7 +198,7 @@ public class AuthenticationITCase extends AbstractITCase {
                 getService(UserService.class);
 
         PagedResult<UserTO> matchedUsers = userService2.search(
-                SyncopeClient.getSubjectSearchQueryBuilder().realm(SyncopeConstants.ROOT_REALM).
+                SyncopeClient.getAnySearchQueryBuilder().realm(SyncopeConstants.ROOT_REALM).
                 fiql(SyncopeClient.getUserSearchConditionBuilder().isNotNull("key").query()).build());
         assertNotNull(matchedUsers);
         assertFalse(matchedUsers.getResult().isEmpty());
@@ -217,7 +217,7 @@ public class AuthenticationITCase extends AbstractITCase {
         UserService userService3 = clientFactory.create("puccini", ADMIN_PWD).getService(UserService.class);
 
         matchedUsers = userService3.search(
-                SyncopeClient.getSubjectSearchQueryBuilder().realm("/even/two").
+                SyncopeClient.getAnySearchQueryBuilder().realm("/even/two").
                 fiql(SyncopeClient.getUserSearchConditionBuilder().isNotNull("loginDate").query()).build());
         assertNotNull(matchedUsers);
         assertTrue(matchedUsers.getResult().isEmpty());

http://git-wip-us.apache.org/repos/asf/syncope/blob/a78a6f1f/fit/core-reference/src/test/java/org/apache/syncope/fit/core/reference/ConnectorITCase.java
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/reference/ConnectorITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/reference/ConnectorITCase.java
index 5fcc1e9..5d75e7c 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/reference/ConnectorITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/reference/ConnectorITCase.java
@@ -660,7 +660,7 @@ public class ConnectorITCase extends AbstractITCase {
             mapItem.setExtAttrName("uid");
             mapItem.setIntAttrName("userId");
             mapItem.setIntMappingType(IntMappingType.UserPlainSchema);
-            mapItem.setAccountid(true);
+            mapItem.setConnObjectKey(true);
             mapping.setConnObjectKeyItem(mapItem);
             // ----------------------------------------
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/a78a6f1f/fit/core-reference/src/test/java/org/apache/syncope/fit/core/reference/GroupITCase.java
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/reference/GroupITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/reference/GroupITCase.java
index 281fb1a..d0a4be1 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/reference/GroupITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/reference/GroupITCase.java
@@ -149,7 +149,7 @@ public class GroupITCase extends AbstractITCase {
     @Test
     public void list() {
         PagedResult<GroupTO> groupTOs =
-                groupService.list(SyncopeClient.getSubjectListQueryBuilder().realm(SyncopeConstants.ROOT_REALM).build());
+                groupService.list(SyncopeClient.getAnyListQueryBuilder().realm(SyncopeConstants.ROOT_REALM).build());
         assertNotNull(groupTOs);
         assertTrue(groupTOs.getResult().size() >= 8);
         for (GroupTO groupTO : groupTOs.getResult()) {
@@ -546,14 +546,14 @@ public class GroupITCase extends AbstractITCase {
         GroupService unauthenticated = clientFactory.createAnonymous().getService(GroupService.class);
         try {
             unauthenticated.
-                    list(SyncopeClient.getSubjectSearchQueryBuilder().realm(SyncopeConstants.ROOT_REALM).build());
+                    list(SyncopeClient.getAnySearchQueryBuilder().realm(SyncopeConstants.ROOT_REALM).build());
             fail();
         } catch (AccessControlException e) {
             assertNotNull(e);
         }
 
         GroupService anonymous = clientFactory.create(ANONYMOUS_UNAME, ANONYMOUS_KEY).getService(GroupService.class);
-        assertFalse(anonymous.list(SyncopeClient.getSubjectSearchQueryBuilder().realm(SyncopeConstants.ROOT_REALM).
+        assertFalse(anonymous.list(SyncopeClient.getAnySearchQueryBuilder().realm(SyncopeConstants.ROOT_REALM).
                 build()).
                 getResult().isEmpty());
     }

http://git-wip-us.apache.org/repos/asf/syncope/blob/a78a6f1f/fit/core-reference/src/test/java/org/apache/syncope/fit/core/reference/PushTaskITCase.java
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/reference/PushTaskITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/reference/PushTaskITCase.java
index ef525d5..1f498cc 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/reference/PushTaskITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/reference/PushTaskITCase.java
@@ -291,7 +291,7 @@ public class PushTaskITCase extends AbstractTaskITCase {
             item.setIntMappingType(IntMappingType.GroupPlainSchema);
             item.setExtAttrName("cn");
             item.setIntAttrName(newPlainSchemaTO.getKey());
-            item.setAccountid(true);
+            item.setConnObjectKey(true);
             item.setPurpose(MappingPurpose.BOTH);
             rmapping.setConnObjectKeyItem(item);
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/a78a6f1f/fit/core-reference/src/test/java/org/apache/syncope/fit/core/reference/ResourceITCase.java
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/reference/ResourceITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/reference/ResourceITCase.java
index 21c3e92..2e6cf21 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/reference/ResourceITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/reference/ResourceITCase.java
@@ -86,7 +86,7 @@ public class ResourceITCase extends AbstractITCase {
         item.setExtAttrName("fullname");
         item.setIntAttrName("cn");
         item.setIntMappingType(IntMappingType.UserPlainSchema);
-        item.setAccountid(false);
+        item.setConnObjectKey(false);
         item.setPurpose(MappingPurpose.BOTH);
         mapping.add(item);
 
@@ -138,7 +138,7 @@ public class ResourceITCase extends AbstractITCase {
         item.setExtAttrName("username");
         item.setIntAttrName("fullname");
         item.setIntMappingType(IntMappingType.UserId);
-        item.setAccountid(true);
+        item.setConnObjectKey(true);
         item.setPurpose(MappingPurpose.BOTH);
         mapping.setConnObjectKeyItem(item);
 
@@ -146,7 +146,7 @@ public class ResourceITCase extends AbstractITCase {
         item.setExtAttrName("fullname");
         item.setIntAttrName("cn");
         item.setIntMappingType(IntMappingType.UserPlainSchema);
-        item.setAccountid(false);
+        item.setConnObjectKey(false);
         item.setPurpose(MappingPurpose.BOTH);
         mapping.add(item);
 
@@ -191,7 +191,7 @@ public class ResourceITCase extends AbstractITCase {
         MappingItemTO item = new MappingItemTO();
         item.setIntMappingType(IntMappingType.UserId);
         item.setExtAttrName("userId");
-        item.setAccountid(true);
+        item.setConnObjectKey(true);
         item.setPurpose(MappingPurpose.PROPAGATION);
         mapping.setConnObjectKeyItem(item);
 
@@ -205,7 +205,7 @@ public class ResourceITCase extends AbstractITCase {
         item = new MappingItemTO();
         item.setIntMappingType(IntMappingType.GroupId);
         item.setExtAttrName("groupId");
-        item.setAccountid(true);
+        item.setConnObjectKey(true);
         item.setPurpose(MappingPurpose.SYNCHRONIZATION);
         mapping.setConnObjectKeyItem(item);
 
@@ -241,7 +241,7 @@ public class ResourceITCase extends AbstractITCase {
         MappingItemTO item = new MappingItemTO();
         item.setIntMappingType(IntMappingType.UserId);
         item.setExtAttrName("userId");
-        item.setAccountid(true);
+        item.setConnObjectKey(true);
         mapping.setConnObjectKeyItem(item);
 
         item = new MappingItemTO();
@@ -277,7 +277,7 @@ public class ResourceITCase extends AbstractITCase {
         MappingItemTO item = new MappingItemTO();
         item.setIntMappingType(IntMappingType.UserId);
         item.setExtAttrName("userId");
-        item.setAccountid(true);
+        item.setConnObjectKey(true);
         mapping.setConnObjectKeyItem(item);
 
         item = new MappingItemTO();
@@ -309,7 +309,7 @@ public class ResourceITCase extends AbstractITCase {
         item.setExtAttrName("userId");
         item.setIntAttrName("userId");
         item.setIntMappingType(IntMappingType.UserPlainSchema);
-        item.setAccountid(true);
+        item.setConnObjectKey(true);
         item.setPurpose(MappingPurpose.BOTH);
         mapping.setConnObjectKeyItem(item);
 
@@ -374,7 +374,7 @@ public class ResourceITCase extends AbstractITCase {
         item.setExtAttrName("username");
         item.setIntAttrName("fullname");
         item.setIntMappingType(IntMappingType.UserId);
-        item.setAccountid(true);
+        item.setConnObjectKey(true);
         item.setPurpose(MappingPurpose.BOTH);
         mapping.setConnObjectKeyItem(item);
 
@@ -599,13 +599,13 @@ public class ResourceITCase extends AbstractITCase {
         MappingItemTO item = new MappingItemTO();
         item.setIntMappingType(IntMappingType.UserId);
         item.setExtAttrName("userId");
-        item.setAccountid(true);
+        item.setConnObjectKey(true);
         item.setPurpose(MappingPurpose.PROPAGATION);
         mapping.setConnObjectKeyItem(item);
 
         MappingItemTO item2 = new MappingItemTO();
         item2.setIntMappingType(IntMappingType.UserPlainSchema);
-        item2.setAccountid(false);
+        item2.setConnObjectKey(false);
         item2.setIntAttrName("gender");
         item2.setExtAttrName("gender");
         item2.setPurpose(MappingPurpose.NONE);

http://git-wip-us.apache.org/repos/asf/syncope/blob/a78a6f1f/fit/core-reference/src/test/java/org/apache/syncope/fit/core/reference/SearchITCase.java
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/reference/SearchITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/reference/SearchITCase.java
index 02ccb5e..3f1eb0a 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/reference/SearchITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/reference/SearchITCase.java
@@ -45,7 +45,7 @@ public class SearchITCase extends AbstractITCase {
     public void searchUser() {
         // LIKE
         PagedResult<UserTO> matchedUsers = userService.search(
-                SyncopeClient.getSubjectSearchQueryBuilder().realm(SyncopeConstants.ROOT_REALM).
+                SyncopeClient.getAnySearchQueryBuilder().realm(SyncopeConstants.ROOT_REALM).
                 fiql(SyncopeClient.getUserSearchConditionBuilder().
                         is("fullname").equalTo("*o*").and("fullname").equalTo("*i*").query()).build());
         assertNotNull(matchedUsers);
@@ -57,7 +57,7 @@ public class SearchITCase extends AbstractITCase {
 
         // ISNULL
         matchedUsers = userService.search(
-                SyncopeClient.getSubjectSearchQueryBuilder().realm(SyncopeConstants.ROOT_REALM).
+                SyncopeClient.getAnySearchQueryBuilder().realm(SyncopeConstants.ROOT_REALM).
                 fiql(SyncopeClient.getUserSearchConditionBuilder().isNull("loginDate").query()).build());
         assertNotNull(matchedUsers);
         assertFalse(matchedUsers.getResult().isEmpty());
@@ -75,7 +75,7 @@ public class SearchITCase extends AbstractITCase {
     @Test
     public void searchByUsernameAndKey() {
         PagedResult<UserTO> matchingUsers = userService.search(
-                SyncopeClient.getSubjectSearchQueryBuilder().realm(SyncopeConstants.ROOT_REALM).
+                SyncopeClient.getAnySearchQueryBuilder().realm(SyncopeConstants.ROOT_REALM).
                 fiql(SyncopeClient.getUserSearchConditionBuilder().
                         is("username").equalTo("rossini").and("key").lessThan(2).query()).build());
         assertNotNull(matchingUsers);
@@ -87,7 +87,7 @@ public class SearchITCase extends AbstractITCase {
     @Test
     public void searchByGroupNameAndKey() {
         PagedResult<GroupTO> matchingGroups = groupService.search(
-                SyncopeClient.getSubjectSearchQueryBuilder().realm(SyncopeConstants.ROOT_REALM).
+                SyncopeClient.getAnySearchQueryBuilder().realm(SyncopeConstants.ROOT_REALM).
                 fiql(SyncopeClient.getUserSearchConditionBuilder().
                         is("name").equalTo("root").and("key").lessThan(2).query()).build());
         assertNotNull(matchingGroups);
@@ -99,7 +99,7 @@ public class SearchITCase extends AbstractITCase {
     @Test
     public void searchByGroup() {
         PagedResult<UserTO> matchedUsers = userService.search(
-                SyncopeClient.getSubjectSearchQueryBuilder().realm(SyncopeConstants.ROOT_REALM).
+                SyncopeClient.getAnySearchQueryBuilder().realm(SyncopeConstants.ROOT_REALM).
                 fiql(SyncopeClient.getUserSearchConditionBuilder().inGroups(1L).query()).
                 build());
         assertNotNull(matchedUsers);
@@ -122,7 +122,7 @@ public class SearchITCase extends AbstractITCase {
         assertNotNull(group);
 
         PagedResult<UserTO> matchedUsers = userService.search(
-                SyncopeClient.getSubjectSearchQueryBuilder().realm(SyncopeConstants.ROOT_REALM).
+                SyncopeClient.getAnySearchQueryBuilder().realm(SyncopeConstants.ROOT_REALM).
                 fiql(SyncopeClient.getUserSearchConditionBuilder().inGroups(group.getKey()).query()).
                 build());
         assertNotNull(matchedUsers);
@@ -140,7 +140,7 @@ public class SearchITCase extends AbstractITCase {
     @Test
     public void searchByRole() {
         PagedResult<UserTO> matchedUsers = userService.search(
-                SyncopeClient.getSubjectSearchQueryBuilder().realm(SyncopeConstants.ROOT_REALM).
+                SyncopeClient.getAnySearchQueryBuilder().realm(SyncopeConstants.ROOT_REALM).
                 fiql(SyncopeClient.getUserSearchConditionBuilder().inRoles(3L).query()).
                 build());
         assertNotNull(matchedUsers);
@@ -164,7 +164,7 @@ public class SearchITCase extends AbstractITCase {
         assertNotNull(role);
 
         PagedResult<UserTO> matchedUsers = userService.search(
-                SyncopeClient.getSubjectSearchQueryBuilder().realm(SyncopeConstants.ROOT_REALM).
+                SyncopeClient.getAnySearchQueryBuilder().realm(SyncopeConstants.ROOT_REALM).
                 fiql(SyncopeClient.getUserSearchConditionBuilder().inRoles(role.getKey()).query()).
                 build());
         assertNotNull(matchedUsers);
@@ -182,7 +182,7 @@ public class SearchITCase extends AbstractITCase {
     @Test
     public void searchUserByResourceName() {
         PagedResult<UserTO> matchedUsers = userService.search(
-                SyncopeClient.getSubjectSearchQueryBuilder().realm(SyncopeConstants.ROOT_REALM).
+                SyncopeClient.getAnySearchQueryBuilder().realm(SyncopeConstants.ROOT_REALM).
                 fiql(SyncopeClient.getUserSearchConditionBuilder().hasResources(RESOURCE_NAME_MAPPINGS2).query()).
                 build());
         assertNotNull(matchedUsers);
@@ -201,7 +201,7 @@ public class SearchITCase extends AbstractITCase {
     public void paginatedSearch() {
         // LIKE
         PagedResult<UserTO> matchingUsers = userService.search(
-                SyncopeClient.getSubjectSearchQueryBuilder().realm(SyncopeConstants.ROOT_REALM).
+                SyncopeClient.getAnySearchQueryBuilder().realm(SyncopeConstants.ROOT_REALM).
                 fiql(SyncopeClient.getUserSearchConditionBuilder().
                         is("fullname").equalTo("*o*").and("fullname").equalTo("*i*").query()).page(1).size(2).build());
         assertNotNull(matchingUsers);
@@ -213,7 +213,7 @@ public class SearchITCase extends AbstractITCase {
 
         // ISNULL
         matchingUsers = userService.search(
-                SyncopeClient.getSubjectSearchQueryBuilder().realm(SyncopeConstants.ROOT_REALM).
+                SyncopeClient.getAnySearchQueryBuilder().realm(SyncopeConstants.ROOT_REALM).
                 fiql(SyncopeClient.getUserSearchConditionBuilder().isNull("loginDate").query()).page(2).size(2).
                 build());
         assertNotNull(matchingUsers);
@@ -222,18 +222,18 @@ public class SearchITCase extends AbstractITCase {
     }
 
     @Test
-    public void searchByBooleanSubjectCond() {
+    public void searchByBooleanAnyCond() {
         PagedResult<GroupTO> matchingGroups = groupService.search(
-                SyncopeClient.getSubjectSearchQueryBuilder().realm(SyncopeConstants.ROOT_REALM).
+                SyncopeClient.getAnySearchQueryBuilder().realm(SyncopeConstants.ROOT_REALM).
                 fiql(SyncopeClient.getGroupSearchConditionBuilder().is("show").equalTo("true").query()).build());
         assertNotNull(matchingGroups);
         assertFalse(matchingGroups.getResult().isEmpty());
     }
 
     @Test
-    public void searchByRelationshipSubjectCond() {
+    public void searchByRelationshipAnyCond() {
         PagedResult<GroupTO> matchingGroups = groupService.search(
-                SyncopeClient.getSubjectSearchQueryBuilder().realm(SyncopeConstants.ROOT_REALM).
+                SyncopeClient.getAnySearchQueryBuilder().realm(SyncopeConstants.ROOT_REALM).
                 fiql(SyncopeClient.getGroupSearchConditionBuilder().is("userOwner").equalTo(5).query()).build());
         assertNotNull(matchingGroups);
         assertEquals(1, matchingGroups.getResult().size());
@@ -243,7 +243,7 @@ public class SearchITCase extends AbstractITCase {
     @Test
     public void nested() {
         PagedResult<UserTO> matchedUsers = userService.search(
-                SyncopeClient.getSubjectSearchQueryBuilder().realm(SyncopeConstants.ROOT_REALM).
+                SyncopeClient.getAnySearchQueryBuilder().realm(SyncopeConstants.ROOT_REALM).
                 fiql("((fullname==*o*,fullname==*i*);$resources!=ws-target-resource-1)").page(1).size(2).build());
         assertNotNull(matchedUsers);
 
@@ -256,7 +256,7 @@ public class SearchITCase extends AbstractITCase {
     @Test
     public void orderBy() {
         PagedResult<UserTO> matchedUsers = userService.search(
-                SyncopeClient.getSubjectSearchQueryBuilder().realm(SyncopeConstants.ROOT_REALM).
+                SyncopeClient.getAnySearchQueryBuilder().realm(SyncopeConstants.ROOT_REALM).
                 fiql(SyncopeClient.getUserSearchConditionBuilder().is("userId").equalTo("*@apache.org").query()).
                 orderBy(SyncopeClient.getOrderByClauseBuilder().asc("status").desc("firstname").build()).build());
         assertNotNull(matchedUsers);

http://git-wip-us.apache.org/repos/asf/syncope/blob/a78a6f1f/fit/core-reference/src/test/java/org/apache/syncope/fit/core/reference/SyncTaskITCase.java
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/reference/SyncTaskITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/reference/SyncTaskITCase.java
index 868deee..479c96f 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/reference/SyncTaskITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/reference/SyncTaskITCase.java
@@ -156,7 +156,7 @@ public class SyncTaskITCase extends AbstractTaskITCase {
         // -----------------------------
         try {
             int usersPre = userService.list(
-                    SyncopeClient.getSubjectListQueryBuilder().realm(SyncopeConstants.ROOT_REALM).
+                    SyncopeClient.getAnyListQueryBuilder().realm(SyncopeConstants.ROOT_REALM).
                     page(1).size(1).build()).getTotalCount();
             assertNotNull(usersPre);
 
@@ -212,7 +212,7 @@ public class SyncTaskITCase extends AbstractTaskITCase {
 
             // check for sync results
             int usersPost = userService.list(
-                    SyncopeClient.getSubjectListQueryBuilder().realm(SyncopeConstants.ROOT_REALM).
+                    SyncopeClient.getAnyListQueryBuilder().realm(SyncopeConstants.ROOT_REALM).
                     page(1).size(1).build()).getTotalCount();
             assertNotNull(usersPost);
             assertEquals(usersPre + 8, usersPost);
@@ -282,7 +282,7 @@ public class SyncTaskITCase extends AbstractTaskITCase {
      */
     private void ldapCleanup() {
         PagedResult<GroupTO> matchingGroups = groupService.search(
-                SyncopeClient.getSubjectSearchQueryBuilder().realm(SyncopeConstants.ROOT_REALM).
+                SyncopeClient.getAnySearchQueryBuilder().realm(SyncopeConstants.ROOT_REALM).
                 fiql(SyncopeClient.getGroupSearchConditionBuilder().is("name").equalTo("testLDAPGroup").query()).
                 build());
         if (matchingGroups.getSize() > 0) {
@@ -294,7 +294,7 @@ public class SyncTaskITCase extends AbstractTaskITCase {
             }
         }
         PagedResult<UserTO> matchingUsers = userService.search(
-                SyncopeClient.getSubjectSearchQueryBuilder().realm(SyncopeConstants.ROOT_REALM).
+                SyncopeClient.getAnySearchQueryBuilder().realm(SyncopeConstants.ROOT_REALM).
                 fiql(SyncopeClient.getUserSearchConditionBuilder().is("username").equalTo("syncFromLDAP").query()).
                 build());
         if (matchingUsers.getSize() > 0) {
@@ -322,14 +322,14 @@ public class SyncTaskITCase extends AbstractTaskITCase {
 
         // 2. verify that synchronized group is found, with expected attributes
         PagedResult<GroupTO> matchingGroups = groupService.search(
-                SyncopeClient.getSubjectSearchQueryBuilder().realm(SyncopeConstants.ROOT_REALM).
+                SyncopeClient.getAnySearchQueryBuilder().realm(SyncopeConstants.ROOT_REALM).
                 fiql(SyncopeClient.getGroupSearchConditionBuilder().is("name").equalTo("testLDAPGroup").query()).
                 build());
         assertNotNull(matchingGroups);
         assertEquals(1, matchingGroups.getResult().size());
 
         PagedResult<UserTO> matchingUsers = userService.search(
-                SyncopeClient.getSubjectSearchQueryBuilder().realm(SyncopeConstants.ROOT_REALM).
+                SyncopeClient.getAnySearchQueryBuilder().realm(SyncopeConstants.ROOT_REALM).
                 fiql(SyncopeClient.getUserSearchConditionBuilder().is("username").equalTo("syncFromLDAP").query()).
                 build());
         assertNotNull(matchingUsers);
@@ -352,7 +352,7 @@ public class SyncTaskITCase extends AbstractTaskITCase {
 
         // 3. verify that LDAP group membership is propagated as Syncope group membership
         PagedResult<UserTO> members = userService.search(
-                SyncopeClient.getSubjectSearchQueryBuilder().realm(SyncopeConstants.ROOT_REALM).
+                SyncopeClient.getAnySearchQueryBuilder().realm(SyncopeConstants.ROOT_REALM).
                 fiql(SyncopeClient.getUserSearchConditionBuilder().inGroups(groupTO.getKey()).query()).build());
         assertNotNull(members);
         assertEquals(1, members.getResult().size());

http://git-wip-us.apache.org/repos/asf/syncope/blob/a78a6f1f/fit/core-reference/src/test/java/org/apache/syncope/fit/core/reference/UserITCase.java
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/reference/UserITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/reference/UserITCase.java
index 9c67d13..107c953 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/reference/UserITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/reference/UserITCase.java
@@ -531,7 +531,7 @@ public class UserITCase extends AbstractITCase {
     @Test
     public void list() {
         PagedResult<UserTO> users = userService.list(
-                SyncopeClient.getSubjectListQueryBuilder().realm(SyncopeConstants.ROOT_REALM).build());
+                SyncopeClient.getAnyListQueryBuilder().realm(SyncopeConstants.ROOT_REALM).build());
         assertNotNull(users);
         assertFalse(users.getResult().isEmpty());
 
@@ -543,7 +543,7 @@ public class UserITCase extends AbstractITCase {
     @Test
     public void paginatedList() {
         PagedResult<UserTO> users = userService.list(
-                SyncopeClient.getSubjectListQueryBuilder().realm(SyncopeConstants.ROOT_REALM).page(1).size(2).build());
+                SyncopeClient.getAnyListQueryBuilder().realm(SyncopeConstants.ROOT_REALM).page(1).size(2).build());
         assertNotNull(users);
         assertFalse(users.getResult().isEmpty());
         assertEquals(2, users.getResult().size());
@@ -552,13 +552,13 @@ public class UserITCase extends AbstractITCase {
             assertNotNull(user);
         }
 
-        users = userService.list(SyncopeClient.getSubjectListQueryBuilder().realm(SyncopeConstants.ROOT_REALM).
+        users = userService.list(SyncopeClient.getAnyListQueryBuilder().realm(SyncopeConstants.ROOT_REALM).
                 page(2).size(2).build());
         assertNotNull(users);
         assertEquals(2, users.getPage());
         assertEquals(2, users.getResult().size());
 
-        users = userService.list(SyncopeClient.getSubjectListQueryBuilder().realm(SyncopeConstants.ROOT_REALM).
+        users = userService.list(SyncopeClient.getAnyListQueryBuilder().realm(SyncopeConstants.ROOT_REALM).
                 page(100).size(2).build());
         assertNotNull(users);
         assertTrue(users.getResult().isEmpty());

http://git-wip-us.apache.org/repos/asf/syncope/blob/a78a6f1f/fit/core-reference/src/test/java/org/apache/syncope/fit/core/reference/VirAttrITCase.java
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/reference/VirAttrITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/reference/VirAttrITCase.java
index e161258..a373df5 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/reference/VirAttrITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/reference/VirAttrITCase.java
@@ -465,7 +465,7 @@ public class VirAttrITCase extends AbstractITCase {
         item.setIntMappingType(IntMappingType.UserPlainSchema);
         item.setExtAttrName(groupName);
         item.setPurpose(MappingPurpose.PROPAGATION);
-        item.setAccountid(true);
+        item.setConnObjectKey(true);
         mapping.setConnObjectKeyItem(item);
 
         item = new MappingItemTO();

http://git-wip-us.apache.org/repos/asf/syncope/blob/a78a6f1f/src/site/xdoc/security.xml
----------------------------------------------------------------------
diff --git a/src/site/xdoc/security.xml b/src/site/xdoc/security.xml
index fc5619e..436c083 100644
--- a/src/site/xdoc/security.xml
+++ b/src/site/xdoc/security.xml
@@ -63,7 +63,7 @@ under the License.
 
       <subsection name="CVE-2014-0111: Remote code execution by an authenticated administrator">	
         <p>In the various places in which Apache Commons JEXL expressions are allowed (derived schema definition, 
-          user / group templates, account links of resource mappings) a malicious administrator can inject Java code 
+          user / group templates, connObjectLinks of resource mappings) a malicious administrator can inject Java code 
           that can be executed remotely by the JEE container running the Apache Syncope core.</p>
 
         <p>


[3/5] syncope git commit: Merge branch 'master' into SYNCOPE-666

Posted by il...@apache.org.
Merge branch 'master' into SYNCOPE-666


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

Branch: refs/heads/SYNCOPE-666
Commit: a5408c5e12ed77f0545fa33ac957d04bdb8d96e3
Parents: 081d9a0 55d846e
Author: Francesco Chicchiriccò <il...@apache.org>
Authored: Tue May 26 07:42:02 2015 +0200
Committer: Francesco Chicchiriccò <il...@apache.org>
Committed: Tue May 26 07:42:02 2015 +0200

----------------------------------------------------------------------
 .../apache/syncope/client/console/panels/AbstractSearchPanel.java   | 1 +
 1 file changed, 1 insertion(+)
----------------------------------------------------------------------



[2/5] syncope git commit: [SYNCOPE-672] Merge from 1_2_X

Posted by il...@apache.org.
[SYNCOPE-672] Merge from 1_2_X


Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/55d846ee
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/55d846ee
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/55d846ee

Branch: refs/heads/SYNCOPE-666
Commit: 55d846eee3ded55ac9bcda2aec21b3bb4ce53fcd
Parents: 4cd6f5d 13abc83
Author: Marco Di Sabatino Di Diodoro <md...@apache.org>
Authored: Mon May 25 17:28:03 2015 +0200
Committer: Marco Di Sabatino Di Diodoro <md...@apache.org>
Committed: Mon May 25 17:28:03 2015 +0200

----------------------------------------------------------------------
 .../apache/syncope/client/console/panels/AbstractSearchPanel.java   | 1 +
 1 file changed, 1 insertion(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/syncope/blob/55d846ee/client/old_console/src/main/java/org/apache/syncope/client/console/panels/AbstractSearchPanel.java
----------------------------------------------------------------------
diff --cc client/old_console/src/main/java/org/apache/syncope/client/console/panels/AbstractSearchPanel.java
index ba4411e,0000000..3f88266
mode 100644,000000..100644
--- a/client/old_console/src/main/java/org/apache/syncope/client/console/panels/AbstractSearchPanel.java
+++ b/client/old_console/src/main/java/org/apache/syncope/client/console/panels/AbstractSearchPanel.java
@@@ -1,401 -1,0 +1,402 @@@
 +/*
 + * Licensed to the Apache Software Foundation (ASF) under one
 + * or more contributor license agreements.  See the NOTICE file
 + * distributed with this work for additional information
 + * regarding copyright ownership.  The ASF licenses this file
 + * to you under the Apache License, Version 2.0 (the
 + * "License"); you may not use this file except in compliance
 + * with the License.  You may obtain a copy of the License at
 + *
 + *   http://www.apache.org/licenses/LICENSE-2.0
 + *
 + * Unless required by applicable law or agreed to in writing,
 + * software distributed under the License is distributed on an
 + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 + * KIND, either express or implied.  See the License for the
 + * specific language governing permissions and limitations
 + * under the License.
 + */
 +package org.apache.syncope.client.console.panels;
 +
 +import java.util.ArrayList;
 +import java.util.Collections;
 +import java.util.List;
 +import org.apache.commons.lang3.StringUtils;
 +import org.apache.commons.lang3.math.NumberUtils;
 +import org.apache.cxf.jaxrs.ext.search.ConditionType;
 +import org.apache.cxf.jaxrs.ext.search.SearchBean;
 +import org.apache.cxf.jaxrs.ext.search.SearchCondition;
 +import org.apache.cxf.jaxrs.ext.search.client.CompleteCondition;
 +import org.apache.cxf.jaxrs.ext.search.fiql.FiqlParser;
 +import org.apache.syncope.client.console.rest.AuthRestClient;
 +import org.apache.syncope.client.console.rest.ResourceRestClient;
 +import org.apache.syncope.client.console.rest.SchemaRestClient;
 +import org.apache.syncope.common.lib.search.GroupFiqlSearchConditionBuilder;
 +import org.apache.syncope.common.lib.search.SearchableFields;
 +import org.apache.syncope.common.lib.search.SpecialAttr;
 +import org.apache.syncope.common.lib.search.AbstractFiqlSearchConditionBuilder;
 +import org.apache.syncope.common.lib.search.SyncopeProperty;
 +import org.apache.syncope.common.lib.search.UserFiqlSearchConditionBuilder;
 +import org.apache.syncope.common.lib.to.ResourceTO;
 +import org.apache.syncope.common.lib.types.AttributableType;
 +import org.apache.syncope.common.lib.types.SubjectType;
 +import org.apache.wicket.feedback.FeedbackMessage;
 +import org.apache.wicket.feedback.IFeedbackMessageFilter;
 +import org.apache.wicket.markup.html.WebMarkupContainer;
 +import org.apache.wicket.markup.html.panel.Panel;
 +import org.apache.wicket.model.IModel;
 +import org.apache.wicket.model.LoadableDetachableModel;
 +import org.apache.wicket.spring.injection.annot.SpringBean;
 +import org.slf4j.Logger;
 +import org.slf4j.LoggerFactory;
 +
 +public abstract class AbstractSearchPanel extends Panel {
 +
 +    private static final long serialVersionUID = 5922413053568696414L;
 +
 +    /**
 +     * Logger.
 +     */
 +    protected static final Logger LOG = LoggerFactory.getLogger(AbstractSearchPanel.class);
 +
 +    @SpringBean
 +    protected SchemaRestClient schemaRestClient;
 +
 +    @SpringBean
 +    protected ResourceRestClient resourceRestClient;
 +
 +    @SpringBean
 +    protected AuthRestClient authRestClient;
 +
 +    protected IModel<List<String>> dnames;
 +
 +    protected IModel<List<String>> anames;
 +
 +    protected IModel<List<String>> resourceNames;
 +
 +    protected IModel<List<String>> entitlements;
 +
 +    protected IModel<List<SearchClause.Type>> types;
 +
 +    protected IModel<List<String>> groupNames;
 +
 +    protected NotificationPanel searchFeedback;
 +
 +    protected List<SearchClause> searchClauses;
 +
 +    protected WebMarkupContainer searchFormContainer;
 +
 +    protected AttributableType attributableType;
 +
 +    protected boolean required;
 +
 +    protected AbstractSearchPanel(final String id, final AttributableType attributableType) {
 +        this(id, attributableType, null, true);
 +    }
 +
 +    protected AbstractSearchPanel(final String id, final AttributableType attributableType,
 +            final String fiql, final boolean required) {
 +
 +        super(id);
 +        populate();
 +
 +        this.attributableType = attributableType;
 +        this.required = required;
 +
 +        setOutputMarkupId(true);
 +
 +        searchFormContainer = new WebMarkupContainer("searchFormContainer");
 +        searchFormContainer.setOutputMarkupId(true);
 +
 +        searchFeedback = new NotificationPanel("searchFeedback", "notificationpanel_top_right",
 +                new IFeedbackMessageFilter() {
 +
 +                    private static final long serialVersionUID = 6895024863321391672L;
 +
 +                    @Override
 +                    public boolean accept(final FeedbackMessage message) {
 +                        boolean result;
 +
 +                        // messages reported on the session have a null reporter
 +                        if (message.getReporter() == null) {
 +                            result = false;
 +                        } else {
 +                            // only accept messages coming from the children of the search form container
 +                            result = searchFormContainer.contains(message.getReporter(), true);
 +                        }
 +
 +                        return result;
 +                    }
 +                });
 +        searchFeedback.setOutputMarkupId(true);
 +        add(searchFeedback);
 +
 +        this.searchClauses = new ArrayList<>();
 +        this.searchClauses.add(new SearchClause());
 +        if (StringUtils.isNotBlank(fiql)) {
 +            try {
 +                FiqlParser<SearchBean> fiqlParser = new FiqlParser<>(
 +                        SearchBean.class, AbstractFiqlSearchConditionBuilder.CONTEXTUAL_PROPERTIES);
 +                List<SearchClause> parsed = getSearchClauses(fiqlParser.parse(fiql));
 +
 +                this.searchClauses.clear();
 +                this.searchClauses.addAll(parsed);
 +            } catch (Exception e) {
 +                LOG.error("Unparseable FIQL expression '{}'", fiql, e);
 +            }
 +        }
 +
 +        searchFormContainer.add(new SearchView("searchView", searchClauses, searchFormContainer, required,
 +                types, anames, dnames, groupNames, resourceNames, entitlements));
 +        add(searchFormContainer);
 +    }
 +
 +    protected void populate() {
 +        dnames = new LoadableDetachableModel<List<String>>() {
 +
 +            private static final long serialVersionUID = 5275935387613157437L;
 +
 +            @Override
 +            protected List<String> load() {
 +                return SearchableFields.get(
 +                        attributableType == AttributableType.USER ? SubjectType.USER : SubjectType.GROUP);
 +            }
 +        };
 +
 +        anames = new LoadableDetachableModel<List<String>>() {
 +
 +            private static final long serialVersionUID = 5275935387613157437L;
 +
 +            @Override
 +            protected List<String> load() {
 +                return schemaRestClient.getPlainSchemaNames(attributableType);
 +            }
 +        };
 +
 +        resourceNames = new LoadableDetachableModel<List<String>>() {
 +
 +            private static final long serialVersionUID = 5275935387613157437L;
 +
 +            @Override
 +            protected List<String> load() {
 +                List<ResourceTO> resourceTOs = resourceRestClient.getAll();
 +
 +                List<String> result = new ArrayList<>(resourceTOs.size());
 +
 +                for (ResourceTO resource : resourceTOs) {
 +                    result.add(resource.getKey());
 +                }
 +
 +                return result;
 +            }
 +        };
 +
 +        entitlements = new LoadableDetachableModel<List<String>>() {
 +
 +            private static final long serialVersionUID = 5275935387613157437L;
 +
 +            @Override
 +            protected List<String> load() {
 +                List<String> result = authRestClient.getOwnedEntitlements();
 +                Collections.sort(result);
 +                return result;
 +            }
 +        };
 +    }
 +
 +    public NotificationPanel getSearchFeedback() {
 +        return searchFeedback;
 +    }
 +
 +    private SearchClause getPrimitiveSearchClause(final SearchCondition<SearchBean> sc) {
 +        SearchClause searchClause = new SearchClause();
 +
 +        String property = sc.getCondition().getKeySet().iterator().next();
 +        searchClause.setProperty(property);
 +        String value = sc.getCondition().get(property);
 +        searchClause.setValue(value);
 +
 +        if (SpecialAttr.GROUPS.toString().equals(property)) {
 +            searchClause.setType(SearchClause.Type.MEMBERSHIP);
 +            for (String label : groupNames.getObject()) {
 +                if (value.equals(label.substring(0, label.indexOf(' ')))) {
 +                    searchClause.setProperty(label);
 +                }
 +            }
 +        } else if (SpecialAttr.RESOURCES.toString().equals(property)) {
 +            searchClause.setType(SearchClause.Type.RESOURCE);
++            searchClause.setProperty(value);
 +        } else if (SpecialAttr.ENTITLEMENTS.toString().equals(property)) {
 +            searchClause.setType(SearchClause.Type.ENTITLEMENT);
 +        } else {
 +            searchClause.setType(SearchClause.Type.ATTRIBUTE);
 +        }
 +
 +        switch (sc.getConditionType()) {
 +            case EQUALS:
 +                searchClause.setComparator(SpecialAttr.NULL.toString().equals(value)
 +                        ? SearchClause.Comparator.IS_NULL : SearchClause.Comparator.EQUALS);
 +                break;
 +
 +            case NOT_EQUALS:
 +                searchClause.setComparator(SpecialAttr.NULL.toString().equals(value)
 +                        ? SearchClause.Comparator.IS_NOT_NULL : SearchClause.Comparator.NOT_EQUALS);
 +                break;
 +
 +            case GREATER_OR_EQUALS:
 +                searchClause.setComparator(SearchClause.Comparator.GREATER_OR_EQUALS);
 +                break;
 +
 +            case GREATER_THAN:
 +                searchClause.setComparator(SearchClause.Comparator.GREATER_THAN);
 +                break;
 +
 +            case LESS_OR_EQUALS:
 +                searchClause.setComparator(SearchClause.Comparator.LESS_OR_EQUALS);
 +                break;
 +
 +            case LESS_THAN:
 +                searchClause.setComparator(SearchClause.Comparator.LESS_THAN);
 +                break;
 +
 +            default:
 +                break;
 +        }
 +
 +        return searchClause;
 +    }
 +
 +    private List<SearchClause> getCompoundSearchClause(final SearchCondition<SearchBean> sc) {
 +        List<SearchClause> clauses = new ArrayList<SearchClause>();
 +
 +        for (SearchCondition<SearchBean> searchCondition : sc.getSearchConditions()) {
 +            if (searchCondition.getStatement() == null) {
 +                clauses.addAll(getCompoundSearchClause(searchCondition));
 +            } else {
 +                SearchClause clause = getPrimitiveSearchClause(searchCondition);
 +                if (sc.getConditionType() == ConditionType.AND) {
 +                    clause.setOperator(SearchClause.Operator.AND);
 +                }
 +                if (sc.getConditionType() == ConditionType.OR) {
 +                    clause.setOperator(SearchClause.Operator.OR);
 +                }
 +                clauses.add(clause);
 +            }
 +        }
 +
 +        return clauses;
 +    }
 +
 +    private List<SearchClause> getSearchClauses(final SearchCondition<SearchBean> sc) {
 +        List<SearchClause> clauses = new ArrayList<SearchClause>();
 +
 +        if (sc.getStatement() == null) {
 +            clauses.addAll(getCompoundSearchClause(sc));
 +        } else {
 +            clauses.add(getPrimitiveSearchClause(sc));
 +        }
 +
 +        return clauses;
 +    }
 +
 +    protected abstract AbstractFiqlSearchConditionBuilder getSearchConditionBuilder();
 +
 +    public String buildFIQL() {
 +        LOG.debug("Generating FIQL from List<SearchClause>: {}", searchClauses);
 +
 +        if (searchClauses.isEmpty() || searchClauses.get(0).getType() == null) {
 +            return StringUtils.EMPTY;
 +        }
 +
 +        AbstractFiqlSearchConditionBuilder builder = getSearchConditionBuilder();
 +
 +        CompleteCondition prevCondition;
 +        CompleteCondition condition = null;
 +        for (int i = 0; i < searchClauses.size(); i++) {
 +            prevCondition = condition;
 +
 +            switch (searchClauses.get(i).getType()) {
 +                case ENTITLEMENT:
 +                    condition = searchClauses.get(i).getComparator() == SearchClause.Comparator.EQUALS
 +                            ? ((GroupFiqlSearchConditionBuilder) builder).
 +                            hasEntitlements(searchClauses.get(i).getProperty())
 +                            : ((GroupFiqlSearchConditionBuilder) builder).
 +                            hasNotEntitlements(searchClauses.get(i).getProperty());
 +                    break;
 +
 +                case MEMBERSHIP:
 +                    Long groupId = NumberUtils.toLong(searchClauses.get(i).getProperty().split(" ")[0]);
 +                    condition = searchClauses.get(i).getComparator() == SearchClause.Comparator.EQUALS
 +                            ? ((UserFiqlSearchConditionBuilder) builder).inGroups(groupId)
 +                            : ((UserFiqlSearchConditionBuilder) builder).notInGroups(groupId);
 +                    break;
 +
 +                case RESOURCE:
 +                    condition = searchClauses.get(i).getComparator() == SearchClause.Comparator.EQUALS
 +                            ? builder.hasResources(searchClauses.get(i).getProperty())
 +                            : builder.hasNotResources(searchClauses.get(i).getProperty());
 +                    break;
 +
 +                case ATTRIBUTE:
 +                    SyncopeProperty property = builder.is(searchClauses.get(i).getProperty());
 +                    switch (searchClauses.get(i).getComparator()) {
 +                        case IS_NULL:
 +                            condition = builder.isNull(searchClauses.get(i).getProperty());
 +                            break;
 +
 +                        case IS_NOT_NULL:
 +                            condition = builder.isNotNull(searchClauses.get(i).getProperty());
 +                            break;
 +
 +                        case LESS_THAN:
 +                            condition = StringUtils.isNumeric(searchClauses.get(i).getProperty())
 +                                    ? property.lessThan(NumberUtils.toDouble(searchClauses.get(i).getValue()))
 +                                    : property.lexicalBefore(searchClauses.get(i).getValue());
 +                            break;
 +
 +                        case LESS_OR_EQUALS:
 +                            condition = StringUtils.isNumeric(searchClauses.get(i).getProperty())
 +                                    ? property.lessOrEqualTo(NumberUtils.toDouble(searchClauses.get(i).getValue()))
 +                                    : property.lexicalNotAfter(searchClauses.get(i).getValue());
 +                            break;
 +
 +                        case GREATER_THAN:
 +                            condition = StringUtils.isNumeric(searchClauses.get(i).getProperty())
 +                                    ? property.greaterThan(NumberUtils.toDouble(searchClauses.get(i).getValue()))
 +                                    : property.lexicalAfter(searchClauses.get(i).getValue());
 +                            break;
 +
 +                        case GREATER_OR_EQUALS:
 +                            condition = StringUtils.isNumeric(searchClauses.get(i).getProperty())
 +                                    ? property.greaterOrEqualTo(NumberUtils.toDouble(searchClauses.get(i).getValue()))
 +                                    : property.lexicalNotBefore(searchClauses.get(i).getValue());
 +                            break;
 +
 +                        case NOT_EQUALS:
 +                            condition = property.notEqualTo(searchClauses.get(i).getValue());
 +                            break;
 +
 +                        case EQUALS:
 +                        default:
 +                            condition = property.equalTo(searchClauses.get(i).getValue());
 +                            break;
 +                    }
 +                default:
 +                    break;
 +            }
 +
 +            if (i > 0) {
 +                if (searchClauses.get(i).getOperator() == SearchClause.Operator.AND) {
 +                    condition = builder.and(prevCondition, condition);
 +                }
 +                if (searchClauses.get(i).getOperator() == SearchClause.Operator.OR) {
 +                    condition = builder.or(prevCondition, condition);
 +                }
 +            }
 +        }
 +
 +        String fiql = condition == null ? StringUtils.EMPTY : condition.query();
 +        LOG.debug("Generated FIQL: {}", fiql);
 +        return fiql;
 +    }
 +}


[5/5] syncope git commit: [SYNCOPE-666] Fix naming

Posted by il...@apache.org.
[SYNCOPE-666] Fix naming


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

Branch: refs/heads/SYNCOPE-666
Commit: a78a6f1f7624bb834ada494cff969ed36ca4a85b
Parents: a5408c5
Author: Francesco Chicchiriccò <il...@apache.org>
Authored: Tue May 26 08:24:18 2015 +0200
Committer: Francesco Chicchiriccò <il...@apache.org>
Committed: Tue May 26 08:24:18 2015 +0200

----------------------------------------------------------------------
 .../commons/SortableAnyProviderComparator.java  | 122 +++++++++++++++++++
 .../SortableAttributableProviderComparator.java | 122 -------------------
 .../commons/status/ConnObjectWrapper.java       |   4 +-
 .../console/commons/status/StatusBean.java      |  10 +-
 .../console/commons/status/StatusUtils.java     |   6 +-
 .../resources/WorkflowDefGETResource.java       |   3 +-
 .../resources/WorkflowDefPUTResource.java       |   3 +-
 .../client/console/rest/GroupRestClient.java    |   8 +-
 .../client/console/rest/UserRestClient.java     |   8 +-
 .../syncope/client/lib/SyncopeClient.java       |   4 +-
 .../syncope/common/lib/to/MappingItemTO.java    |  10 +-
 .../apache/syncope/common/lib/to/MappingTO.java |   8 +-
 .../common/lib/types/PropagationByResource.java |  40 +++---
 .../syncope/core/logic/AbstractAnyLogic.java    |   2 +-
 .../syncope/core/logic/AnyObjectLogic.java      |   4 +-
 .../apache/syncope/core/logic/GroupLogic.java   |   4 +-
 .../apache/syncope/core/logic/UserLogic.java    |   4 +-
 core/logic/src/main/resources/logic.properties  |   2 +-
 core/logic/src/main/resources/logicContext.xml  |   2 +-
 .../syncope/core/misc/ConnObjectUtils.java      |   2 +-
 .../apache/syncope/core/misc/MappingUtils.java  |  40 +++---
 .../persistence/jpa/dao/JPAAnySearchDAO.java    |  50 ++++----
 .../entity/ExternalResourceValidator.java       |   4 +-
 .../persistence/jpa/entity/AnySearchTest.java   |   2 +-
 .../java/DefaultGroupProvisioningManager.java   |  34 +++---
 .../java/DefaultUserProvisioningManager.java    |  10 +-
 .../core/provisioning/java/VirAttrHandler.java  |   2 +-
 .../java/cache/MemoryVirAttrCache.java          |   6 +-
 .../java/data/AbstractAnyDataBinder.java        |   4 +-
 .../java/data/GroupDataBinderImpl.java          |   6 +-
 .../java/data/ResourceDataBinderImpl.java       |   2 +-
 .../java/data/UserDataBinderImpl.java           |  12 +-
 .../AbstractPropagationTaskExecutor.java        |  12 +-
 .../LDAPMembershipPropagationActions.java       |  16 +--
 .../propagation/PropagationManagerImpl.java     |   2 +-
 .../java/sync/AbstractSyncResultHandler.java    |   4 +-
 .../sync/AnyObjectPushResultHandlerImpl.java    |   2 +-
 .../java/sync/GroupPushResultHandlerImpl.java   |   4 +-
 .../java/sync/LDAPPasswordSyncActions.java      |  20 +--
 .../core/provisioning/java/sync/SyncUtils.java  |  10 +-
 .../java/sync/UserPushResultHandlerImpl.java    |   4 +-
 .../java/sync/UserSyncResultHandlerImpl.java    |   8 +-
 .../java/data/ResourceDataBinderTest.java       |   2 +-
 .../core/logic/init/CamelRouteLoader.java       |   4 +-
 .../camel/CamelGroupProvisioningManager.java    |  12 +-
 .../camel/CamelUserProvisioningManager.java     |   4 +-
 .../processor/GroupCreateInSyncProcessor.java   |   2 +-
 .../camel/processor/GroupCreateProcessor.java   |   4 +-
 .../camel/processor/GroupDeleteProcessor.java   |   4 +-
 .../camel/processor/GroupUpdateProcessor.java   |   4 +-
 .../src/main/resources/groupRoutes.xml          |   6 +-
 .../reference/DoubleValueAnyTransformer.java    |  75 ++++++++++++
 .../DoubleValueAttributableTransformer.java     |  75 ------------
 .../fit/core/reference/TestSyncActions.java     |  22 ++--
 .../src/main/resources/logic.properties         |   2 +-
 .../core/reference/AuthenticationITCase.java    |   4 +-
 .../fit/core/reference/ConnectorITCase.java     |   2 +-
 .../syncope/fit/core/reference/GroupITCase.java |   6 +-
 .../fit/core/reference/PushTaskITCase.java      |   2 +-
 .../fit/core/reference/ResourceITCase.java      |  22 ++--
 .../fit/core/reference/SearchITCase.java        |  34 +++---
 .../fit/core/reference/SyncTaskITCase.java      |  14 +--
 .../syncope/fit/core/reference/UserITCase.java  |   8 +-
 .../fit/core/reference/VirAttrITCase.java       |   2 +-
 src/site/xdoc/security.xml                      |   2 +-
 65 files changed, 464 insertions(+), 470 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/syncope/blob/a78a6f1f/client/console/src/main/java/org/apache/syncope/client/console/commons/SortableAnyProviderComparator.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/commons/SortableAnyProviderComparator.java b/client/console/src/main/java/org/apache/syncope/client/console/commons/SortableAnyProviderComparator.java
new file mode 100644
index 0000000..99cfaf0
--- /dev/null
+++ b/client/console/src/main/java/org/apache/syncope/client/console/commons/SortableAnyProviderComparator.java
@@ -0,0 +1,122 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.syncope.client.console.commons;
+
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import org.apache.syncope.common.lib.to.AnyTO;
+import org.apache.syncope.common.lib.to.AttrTO;
+import org.apache.syncope.common.lib.types.SchemaType;
+import org.apache.wicket.extensions.markup.html.repeater.util.SortableDataProvider;
+import org.apache.wicket.model.AbstractReadOnlyModel;
+
+public class SortableAnyProviderComparator extends SortableDataProviderComparator<AnyTO> {
+
+    private static final long serialVersionUID = 1775967163571699258L;
+
+    private static final Set<String> INLINE_PROPS = new HashSet<>(Arrays.asList(
+            new String[] { "key", "status", "token", "username" }));
+
+    public SortableAnyProviderComparator(final SortableDataProvider<AnyTO, String> provider) {
+        super(provider);
+    }
+
+    @Override
+    public int compare(final AnyTO any1, final AnyTO any2) {
+        if (INLINE_PROPS.contains(provider.getSort().getProperty())) {
+            return super.compare(any1, any2);
+        }
+
+        return super.compare(new AttrModel(any1), new AttrModel(any2));
+    }
+
+    @SuppressWarnings("rawtypes")
+    private class AttrModel extends AbstractReadOnlyModel<Comparable> {
+
+        private static final long serialVersionUID = -7856686374020091808L;
+
+        private final Map<String, AttrTO> attrs;
+
+        private final Map<String, AttrTO> derAttrs;
+
+        private final Map<String, AttrTO> virAttrs;
+
+        public AttrModel(final AnyTO anyTO) {
+            super();
+
+            this.attrs = anyTO.getPlainAttrMap();
+            this.derAttrs = anyTO.getDerAttrMap();
+            this.virAttrs = anyTO.getVirAttrMap();
+        }
+
+        /**
+         * @see UserAttrColumn constructor
+         */
+        @Override
+        public Comparable getObject() {
+            int hashPos = provider.getSort().getProperty().indexOf('#');
+
+            SchemaType schemaType = null;
+            final String schema;
+            if (hashPos == -1) {
+                schema = provider.getSort().getProperty();
+            } else {
+                String[] splitted = provider.getSort().getProperty().split("#");
+                try {
+                    schemaType = SchemaType.valueOf(splitted[0]);
+                } catch (IllegalArgumentException e) {
+                    // this should never happen
+                }
+                schema = provider.getSort().getProperty().substring(hashPos + 1);
+            }
+
+            final AttrTO attr;
+            if (schemaType == null) {
+                attr = this.attrs.get(schema);
+            } else {
+                switch (schemaType) {
+                    case PLAIN:
+                    default:
+                        attr = this.attrs.get(schema);
+                        break;
+
+                    case DERIVED:
+                        attr = this.derAttrs.get(schema);
+                        break;
+
+                    case VIRTUAL:
+                        attr = this.virAttrs.get(schema);
+                        break;
+                }
+            }
+
+            Comparable result = null;
+
+            List<String> values = attr == null ? null : attr.getValues();
+            if (values != null && !values.isEmpty()) {
+                result = values.iterator().next();
+            }
+
+            return result;
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/syncope/blob/a78a6f1f/client/console/src/main/java/org/apache/syncope/client/console/commons/SortableAttributableProviderComparator.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/commons/SortableAttributableProviderComparator.java b/client/console/src/main/java/org/apache/syncope/client/console/commons/SortableAttributableProviderComparator.java
deleted file mode 100644
index 78b91ef..0000000
--- a/client/console/src/main/java/org/apache/syncope/client/console/commons/SortableAttributableProviderComparator.java
+++ /dev/null
@@ -1,122 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.syncope.client.console.commons;
-
-import java.util.Arrays;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import org.apache.syncope.common.lib.to.AnyTO;
-import org.apache.syncope.common.lib.to.AttrTO;
-import org.apache.syncope.common.lib.types.SchemaType;
-import org.apache.wicket.extensions.markup.html.repeater.util.SortableDataProvider;
-import org.apache.wicket.model.AbstractReadOnlyModel;
-
-public class SortableAttributableProviderComparator extends SortableDataProviderComparator<AnyTO> {
-
-    private static final long serialVersionUID = 1775967163571699258L;
-
-    private static final Set<String> INLINE_PROPS = new HashSet<>(Arrays.asList(
-            new String[] { "key", "status", "token", "username" }));
-
-    public SortableAttributableProviderComparator(final SortableDataProvider<AnyTO, String> provider) {
-        super(provider);
-    }
-
-    @Override
-    public int compare(final AnyTO any1, final AnyTO any2) {
-        if (INLINE_PROPS.contains(provider.getSort().getProperty())) {
-            return super.compare(any1, any2);
-        }
-
-        return super.compare(new AttrModel(any1), new AttrModel(any2));
-    }
-
-    @SuppressWarnings("rawtypes")
-    private class AttrModel extends AbstractReadOnlyModel<Comparable> {
-
-        private static final long serialVersionUID = -7856686374020091808L;
-
-        private final Map<String, AttrTO> attrs;
-
-        private final Map<String, AttrTO> derAttrs;
-
-        private final Map<String, AttrTO> virAttrs;
-
-        public AttrModel(final AnyTO anyTO) {
-            super();
-
-            this.attrs = anyTO.getPlainAttrMap();
-            this.derAttrs = anyTO.getDerAttrMap();
-            this.virAttrs = anyTO.getVirAttrMap();
-        }
-
-        /**
-         * @see UserAttrColumn constructor
-         */
-        @Override
-        public Comparable getObject() {
-            int hashPos = provider.getSort().getProperty().indexOf('#');
-
-            SchemaType schemaType = null;
-            final String schema;
-            if (hashPos == -1) {
-                schema = provider.getSort().getProperty();
-            } else {
-                String[] splitted = provider.getSort().getProperty().split("#");
-                try {
-                    schemaType = SchemaType.valueOf(splitted[0]);
-                } catch (IllegalArgumentException e) {
-                    // this should never happen
-                }
-                schema = provider.getSort().getProperty().substring(hashPos + 1);
-            }
-
-            final AttrTO attr;
-            if (schemaType == null) {
-                attr = this.attrs.get(schema);
-            } else {
-                switch (schemaType) {
-                    case PLAIN:
-                    default:
-                        attr = this.attrs.get(schema);
-                        break;
-
-                    case DERIVED:
-                        attr = this.derAttrs.get(schema);
-                        break;
-
-                    case VIRTUAL:
-                        attr = this.virAttrs.get(schema);
-                        break;
-                }
-            }
-
-            Comparable result = null;
-
-            List<String> values = attr == null ? null : attr.getValues();
-            if (values != null && !values.isEmpty()) {
-                result = values.iterator().next();
-            }
-
-            return result;
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/syncope/blob/a78a6f1f/client/console/src/main/java/org/apache/syncope/client/console/commons/status/ConnObjectWrapper.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/commons/status/ConnObjectWrapper.java b/client/console/src/main/java/org/apache/syncope/client/console/commons/status/ConnObjectWrapper.java
index c66a825..199b262 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/commons/status/ConnObjectWrapper.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/commons/status/ConnObjectWrapper.java
@@ -32,10 +32,10 @@ public class ConnObjectWrapper implements Serializable {
 
     private final ConnObjectTO connObjectTO;
 
-    public ConnObjectWrapper(final AnyTO attributable, final String resourceName,
+    public ConnObjectWrapper(final AnyTO any, final String resourceName,
             final ConnObjectTO connObjectTO) {
 
-        this.any = attributable;
+        this.any = any;
         this.resourceName = resourceName;
         this.connObjectTO = connObjectTO;
     }

http://git-wip-us.apache.org/repos/asf/syncope/blob/a78a6f1f/client/console/src/main/java/org/apache/syncope/client/console/commons/status/StatusBean.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/commons/status/StatusBean.java b/client/console/src/main/java/org/apache/syncope/client/console/commons/status/StatusBean.java
index af43c0a..adb6040 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/commons/status/StatusBean.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/commons/status/StatusBean.java
@@ -37,7 +37,7 @@ public class StatusBean implements Serializable {
 
     private final String resourceName;
 
-    private String accountLink = null;
+    private String connObjectLink = null;
 
     private Status status = Status.OBJECT_NOT_FOUND;
 
@@ -50,12 +50,12 @@ public class StatusBean implements Serializable {
         this.resourceName = resourceName;
     }
 
-    public String getAccountLink() {
-        return accountLink;
+    public String getConnObjectLink() {
+        return connObjectLink;
     }
 
-    public void setAccountLink(final String accountLink) {
-        this.accountLink = accountLink;
+    public void setConnObjectLink(final String connObjectLink) {
+        this.connObjectLink = connObjectLink;
     }
 
     public String getResourceName() {

http://git-wip-us.apache.org/repos/asf/syncope/blob/a78a6f1f/client/console/src/main/java/org/apache/syncope/client/console/commons/status/StatusUtils.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/commons/status/StatusUtils.java b/client/console/src/main/java/org/apache/syncope/client/console/commons/status/StatusUtils.java
index 877a628..1a6f04f 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/commons/status/StatusUtils.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/commons/status/StatusUtils.java
@@ -108,10 +108,10 @@ public class StatusUtils implements Serializable {
                             ? Status.ACTIVE
                             : Status.SUSPENDED;
 
-            final String accountLink = getAccountLink(objectTO);
+            String connObjectLink = getConnObjectLink(objectTO);
 
             statusBean.setStatus(status);
-            statusBean.setAccountLink(accountLink);
+            statusBean.setConnObjectLink(connObjectLink);
         }
 
         return statusBean;
@@ -127,7 +127,7 @@ public class StatusUtils implements Serializable {
                 : null;
     }
 
-    private String getAccountLink(final ConnObjectTO objectTO) {
+    private String getConnObjectLink(final ConnObjectTO objectTO) {
         final Map<String, AttrTO> attributeTOs = objectTO == null
                 ? Collections.<String, AttrTO>emptyMap()
                 : objectTO.getPlainAttrMap();

http://git-wip-us.apache.org/repos/asf/syncope/blob/a78a6f1f/client/console/src/main/java/org/apache/syncope/client/console/resources/WorkflowDefGETResource.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/resources/WorkflowDefGETResource.java b/client/console/src/main/java/org/apache/syncope/client/console/resources/WorkflowDefGETResource.java
index faf3a57..62dfe30 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/resources/WorkflowDefGETResource.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/resources/WorkflowDefGETResource.java
@@ -29,8 +29,7 @@ import org.springframework.web.context.support.WebApplicationContextUtils;
 /**
  * Mirror REST resource for obtaining user workflow definition in JSON (used by Activiti Modeler).
  *
- * @see org.apache.syncope.common.rest.api.service.WorkflowService#exportDefinition(
- * org.apache.syncope.common.types.SubjectType)
+ * @see org.apache.syncope.common.rest.api.service.WorkflowService#exportDefinition
  */
 public class WorkflowDefGETResource extends AbstractResource {
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/a78a6f1f/client/console/src/main/java/org/apache/syncope/client/console/resources/WorkflowDefPUTResource.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/resources/WorkflowDefPUTResource.java b/client/console/src/main/java/org/apache/syncope/client/console/resources/WorkflowDefPUTResource.java
index e603ab2..b85dfd8 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/resources/WorkflowDefPUTResource.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/resources/WorkflowDefPUTResource.java
@@ -33,8 +33,7 @@ import org.springframework.web.context.support.WebApplicationContextUtils;
 /**
  * Mirror REST resource for putting user workflow definition in JSON (used by Activiti Modeler).
  *
- * @see org.apache.syncope.common.rest.api.service.#importDefinition(
- * org.apache.syncope.common.types.SubjectType, java.lang.String)
+ * @see org.apache.syncope.common.rest.api.service.WorkflowService#importDefinition
  */
 public class WorkflowDefPUTResource extends AbstractResource {
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/a78a6f1f/client/console/src/main/java/org/apache/syncope/client/console/rest/GroupRestClient.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/rest/GroupRestClient.java b/client/console/src/main/java/org/apache/syncope/client/console/rest/GroupRestClient.java
index 157de09..073e7c3 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/rest/GroupRestClient.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/rest/GroupRestClient.java
@@ -50,14 +50,14 @@ public class GroupRestClient extends AbstractAnyRestClient {
     @Override
     public int count(final String realm) {
         return getService(GroupService.class).
-                list(SyncopeClient.getSubjectListQueryBuilder().realm(realm).page(1).size(1).build()).
+                list(SyncopeClient.getAnyListQueryBuilder().realm(realm).page(1).size(1).build()).
                 getTotalCount();
     }
 
     @Override
     public List<GroupTO> list(final String realm, final int page, final int size, final SortParam<String> sort) {
         return getService(GroupService.class).
-                list(SyncopeClient.getSubjectListQueryBuilder().realm(realm).page(page).size(size).
+                list(SyncopeClient.getAnyListQueryBuilder().realm(realm).page(page).size(size).
                         orderBy(toOrderBy(sort)).build()).
                 getResult();
     }
@@ -65,7 +65,7 @@ public class GroupRestClient extends AbstractAnyRestClient {
     @Override
     public int searchCount(final String realm, final String fiql) {
         return getService(GroupService.class).
-                search(SyncopeClient.getSubjectSearchQueryBuilder().realm(realm).fiql(fiql).page(1).size(1).build()).
+                search(SyncopeClient.getAnySearchQueryBuilder().realm(realm).fiql(fiql).page(1).size(1).build()).
                 getTotalCount();
     }
 
@@ -74,7 +74,7 @@ public class GroupRestClient extends AbstractAnyRestClient {
             final String realm, final String fiql, final int page, final int size, final SortParam<String> sort) {
 
         return getService(GroupService.class).
-                search(SyncopeClient.getSubjectSearchQueryBuilder().realm(realm).fiql(fiql).page(page).size(size).
+                search(SyncopeClient.getAnySearchQueryBuilder().realm(realm).fiql(fiql).page(page).size(size).
                         orderBy(toOrderBy(sort)).build()).
                 getResult();
     }

http://git-wip-us.apache.org/repos/asf/syncope/blob/a78a6f1f/client/console/src/main/java/org/apache/syncope/client/console/rest/UserRestClient.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/rest/UserRestClient.java b/client/console/src/main/java/org/apache/syncope/client/console/rest/UserRestClient.java
index 9d30b78..45272c3 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/rest/UserRestClient.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/rest/UserRestClient.java
@@ -52,14 +52,14 @@ public class UserRestClient extends AbstractAnyRestClient {
     @Override
     public int count(final String realm) {
         return getService(UserService.class).
-                list(SyncopeClient.getSubjectListQueryBuilder().realm(realm).page(1).size(1).build()).
+                list(SyncopeClient.getAnyListQueryBuilder().realm(realm).page(1).size(1).build()).
                 getTotalCount();
     }
 
     @Override
     public List<UserTO> list(final String realm, final int page, final int size, final SortParam<String> sort) {
         return getService(UserService.class).
-                list(SyncopeClient.getSubjectListQueryBuilder().realm(realm).page(page).size(size).
+                list(SyncopeClient.getAnyListQueryBuilder().realm(realm).page(page).size(size).
                         orderBy(toOrderBy(sort)).build()).
                 getResult();
     }
@@ -103,7 +103,7 @@ public class UserRestClient extends AbstractAnyRestClient {
     @Override
     public int searchCount(final String realm, final String fiql) {
         return getService(UserService.class).
-                search(SyncopeClient.getSubjectSearchQueryBuilder().realm(realm).fiql(fiql).page(1).size(1).build()).
+                search(SyncopeClient.getAnySearchQueryBuilder().realm(realm).fiql(fiql).page(1).size(1).build()).
                 getTotalCount();
     }
 
@@ -112,7 +112,7 @@ public class UserRestClient extends AbstractAnyRestClient {
             final String realm, final String fiql, final int page, final int size, final SortParam<String> sort) {
 
         return getService(UserService.class).
-                search(SyncopeClient.getSubjectSearchQueryBuilder().realm(realm).fiql(fiql).page(page).size(size).
+                search(SyncopeClient.getAnySearchQueryBuilder().realm(realm).fiql(fiql).page(page).size(size).
                         orderBy(toOrderBy(sort)).build()).
                 getResult();
     }

http://git-wip-us.apache.org/repos/asf/syncope/blob/a78a6f1f/client/lib/src/main/java/org/apache/syncope/client/lib/SyncopeClient.java
----------------------------------------------------------------------
diff --git a/client/lib/src/main/java/org/apache/syncope/client/lib/SyncopeClient.java b/client/lib/src/main/java/org/apache/syncope/client/lib/SyncopeClient.java
index 4773150..c981739 100644
--- a/client/lib/src/main/java/org/apache/syncope/client/lib/SyncopeClient.java
+++ b/client/lib/src/main/java/org/apache/syncope/client/lib/SyncopeClient.java
@@ -113,7 +113,7 @@ public class SyncopeClient {
      *
      * @return default instance of {@link AnyListQueryBuilder}
      */
-    public static AnyListQueryBuilder getSubjectListQueryBuilder() {
+    public static AnyListQueryBuilder getAnyListQueryBuilder() {
         return new AnyListQueryBuilder();
     }
 
@@ -124,7 +124,7 @@ public class SyncopeClient {
      *
      * @return default instance of {@link AnySearchQueryBuilder}
      */
-    public static AnySearchQueryBuilder getSubjectSearchQueryBuilder() {
+    public static AnySearchQueryBuilder getAnySearchQueryBuilder() {
         return new AnySearchQueryBuilder();
     }
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/a78a6f1f/common/lib/src/main/java/org/apache/syncope/common/lib/to/MappingItemTO.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/to/MappingItemTO.java b/common/lib/src/main/java/org/apache/syncope/common/lib/to/MappingItemTO.java
index 4df561c..f252fbb 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/to/MappingItemTO.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/to/MappingItemTO.java
@@ -51,7 +51,7 @@ public class MappingItemTO extends AbstractBaseBean {
     /**
      * Specify if the mapped target resource's field is the key.
      */
-    private boolean accountid;
+    private boolean connObjectKey;
 
     /**
      * Specify if the mapped target resource's field is the password.
@@ -68,12 +68,12 @@ public class MappingItemTO extends AbstractBaseBean {
      */
     private MappingPurpose purpose;
 
-    public boolean isAccountid() {
-        return accountid;
+    public boolean isConnObjectKey() {
+        return connObjectKey;
     }
 
-    public void setAccountid(final boolean accountid) {
-        this.accountid = accountid;
+    public void setConnObjectKey(final boolean connObjectKey) {
+        this.connObjectKey = connObjectKey;
     }
 
     public String getExtAttrName() {

http://git-wip-us.apache.org/repos/asf/syncope/blob/a78a6f1f/common/lib/src/main/java/org/apache/syncope/common/lib/to/MappingTO.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/to/MappingTO.java b/common/lib/src/main/java/org/apache/syncope/common/lib/to/MappingTO.java
index cf5dc71..92be8e1 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/to/MappingTO.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/to/MappingTO.java
@@ -53,7 +53,7 @@ public class MappingTO extends AbstractBaseBean {
 
             @Override
             public boolean evaluate(final MappingItemTO item) {
-                return item.isAccountid();
+                return item.isConnObjectKey();
             }
         });
     }
@@ -64,14 +64,14 @@ public class MappingTO extends AbstractBaseBean {
                 || IntMappingType.AnyVirtualSchema == connObjectItem.getIntMappingType()
                 || IntMappingType.Password == connObjectItem.getIntMappingType()) {
 
-            throw new IllegalArgumentException("Virtual attributes cannot be set as accountId");
+            throw new IllegalArgumentException("Virtual attributes cannot be set as connObjectKey");
         }
         if (IntMappingType.Password == connObjectItem.getIntMappingType()) {
-            throw new IllegalArgumentException("Password attributes cannot be set as accountId");
+            throw new IllegalArgumentException("Password attributes cannot be set as connObjectKey");
         }
 
         connObjectItem.setExtAttrName(connObjectItem.getExtAttrName());
-        connObjectItem.setAccountid(true);
+        connObjectItem.setConnObjectKey(true);
 
         return this.add(connObjectItem);
     }

http://git-wip-us.apache.org/repos/asf/syncope/blob/a78a6f1f/common/lib/src/main/java/org/apache/syncope/common/lib/types/PropagationByResource.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/types/PropagationByResource.java b/common/lib/src/main/java/org/apache/syncope/common/lib/types/PropagationByResource.java
index 014f52d..bf35bb3 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/types/PropagationByResource.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/types/PropagationByResource.java
@@ -49,9 +49,9 @@ public class PropagationByResource implements Serializable {
     private final Set<String> toBeDeleted;
 
     /**
-     * Mapping target resource names to old account ids (when applicable).
+     * Mapping target resource names to old ConnObjectKeys (when applicable).
      */
-    private final Map<String, String> oldAccountIds;
+    private final Map<String, String> oldConnObjectKeys;
 
     /**
      * Default constructor.
@@ -61,7 +61,7 @@ public class PropagationByResource implements Serializable {
         toBeUpdated = new HashSet<>();
         toBeDeleted = new HashSet<>();
 
-        oldAccountIds = new HashMap<>();
+        oldConnObjectKeys = new HashMap<>();
     }
 
     /**
@@ -301,7 +301,7 @@ public class PropagationByResource implements Serializable {
             toBeCreated.addAll(propByRes.get(ResourceOperation.CREATE));
             toBeUpdated.addAll(propByRes.get(ResourceOperation.UPDATE));
             toBeDeleted.addAll(propByRes.get(ResourceOperation.DELETE));
-            oldAccountIds.putAll(propByRes.getOldAccountIds());
+            oldConnObjectKeys.putAll(propByRes.getOldConnObjectKeys());
         }
     }
 
@@ -317,40 +317,40 @@ public class PropagationByResource implements Serializable {
     /**
      * Whether no operations are present.
      *
-     * @return true if no operations (create / update / delete) and no old account ids are present
+     * @return true if no operations (create / update / delete) and no old connObjectKeys are present
      */
     public final boolean isEmpty() {
-        return toBeCreated.isEmpty() && toBeUpdated.isEmpty() && toBeDeleted.isEmpty() && oldAccountIds.isEmpty();
+        return toBeCreated.isEmpty() && toBeUpdated.isEmpty() && toBeDeleted.isEmpty() && oldConnObjectKeys.isEmpty();
     }
 
     /**
-     * Fetch all old account ids.
+     * Fetch all old connObjectKeys.
      *
-     * @return old account ids; can be empty
+     * @return old connObjectKeys; can be empty
      */
-    public Map<String, String> getOldAccountIds() {
-        return oldAccountIds;
+    public Map<String, String> getOldConnObjectKeys() {
+        return oldConnObjectKeys;
     }
 
     /**
-     * Fetch old account id for given resource name.
+     * Fetch old connObjectKey for given resource name.
      *
      * @param resourceName resource name
-     * @return old account id; can be null
+     * @return old connObjectKey; can be null
      */
-    public String getOldAccountId(final String resourceName) {
-        return oldAccountIds.get(resourceName);
+    public String getOldConnObjectKey(final String resourceName) {
+        return oldConnObjectKeys.get(resourceName);
     }
 
     /**
-     * Add old account id for a given resource name.
+     * Add old ConnObjectKey for a given resource name.
      *
      * @param resourceName resourceName resource name
-     * @param oldAccountId old account id
+     * @param oldConnObjectKey old ConnObjectKey
      */
-    public void addOldAccountId(final String resourceName, final String oldAccountId) {
-        if (resourceName != null && oldAccountId != null) {
-            oldAccountIds.put(resourceName, oldAccountId);
+    public void addOldConnObjectKey(final String resourceName, final String oldConnObjectKey) {
+        if (resourceName != null && oldConnObjectKey != null) {
+            oldConnObjectKeys.put(resourceName, oldConnObjectKey);
         }
     }
 
@@ -359,6 +359,6 @@ public class PropagationByResource implements Serializable {
         return "To be Created: " + toBeCreated + ";\n"
                 + "To be Updated: " + toBeUpdated + ";\n"
                 + "To be Deleted: " + toBeDeleted + ";\n"
-                + "Old account Ids: " + oldAccountIds;
+                + "Old connObjectKeys: " + oldConnObjectKeys;
     }
 }

http://git-wip-us.apache.org/repos/asf/syncope/blob/a78a6f1f/core/logic/src/main/java/org/apache/syncope/core/logic/AbstractAnyLogic.java
----------------------------------------------------------------------
diff --git a/core/logic/src/main/java/org/apache/syncope/core/logic/AbstractAnyLogic.java b/core/logic/src/main/java/org/apache/syncope/core/logic/AbstractAnyLogic.java
index 7c998cf..83e90da 100644
--- a/core/logic/src/main/java/org/apache/syncope/core/logic/AbstractAnyLogic.java
+++ b/core/logic/src/main/java/org/apache/syncope/core/logic/AbstractAnyLogic.java
@@ -71,7 +71,7 @@ public abstract class AbstractAnyLogic<T extends AnyTO, V extends AnyMod>
 
     public abstract int count(List<String> realms);
 
-    public abstract T update(V attributableMod);
+    public abstract T update(V anyMod);
 
     public abstract T delete(Long key);
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/a78a6f1f/core/logic/src/main/java/org/apache/syncope/core/logic/AnyObjectLogic.java
----------------------------------------------------------------------
diff --git a/core/logic/src/main/java/org/apache/syncope/core/logic/AnyObjectLogic.java b/core/logic/src/main/java/org/apache/syncope/core/logic/AnyObjectLogic.java
index 5b186b5..31fda37 100644
--- a/core/logic/src/main/java/org/apache/syncope/core/logic/AnyObjectLogic.java
+++ b/core/logic/src/main/java/org/apache/syncope/core/logic/AnyObjectLogic.java
@@ -161,7 +161,7 @@ public class AnyObjectLogic extends AbstractAnyLogic<AnyObjectTO, AnyObjectMod>
             throw new UnauthorizedException(AnyTypeKind.ANY_OBJECT, null);
         }
 
-        // Attributable transformation (if configured)
+        // Any transformation (if configured)
         AnyObjectTO actual = attrTransformer.transform(anyObjectTO);
         LOG.debug("Transformed: {}", actual);
 
@@ -188,7 +188,7 @@ public class AnyObjectLogic extends AbstractAnyLogic<AnyObjectTO, AnyObjectMod>
             throw new UnauthorizedException(AnyTypeKind.ANY_OBJECT, anyObject.getKey());
         }
 
-        // Attribute value transformation (if configured)
+        // Any transformation (if configured)
         AnyObjectMod actual = attrTransformer.transform(anyObjectMod);
         LOG.debug("Transformed: {}", actual);
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/a78a6f1f/core/logic/src/main/java/org/apache/syncope/core/logic/GroupLogic.java
----------------------------------------------------------------------
diff --git a/core/logic/src/main/java/org/apache/syncope/core/logic/GroupLogic.java b/core/logic/src/main/java/org/apache/syncope/core/logic/GroupLogic.java
index 7129b74..d9216da 100644
--- a/core/logic/src/main/java/org/apache/syncope/core/logic/GroupLogic.java
+++ b/core/logic/src/main/java/org/apache/syncope/core/logic/GroupLogic.java
@@ -178,7 +178,7 @@ public class GroupLogic extends AbstractAnyLogic<GroupTO, GroupMod> {
             throw new UnauthorizedException(AnyTypeKind.GROUP, null);
         }
 
-        // Attributable transformation (if configured)
+        // Any transformation (if configured)
         GroupTO actual = attrTransformer.transform(groupTO);
         LOG.debug("Transformed: {}", actual);
 
@@ -205,7 +205,7 @@ public class GroupLogic extends AbstractAnyLogic<GroupTO, GroupMod> {
             throw new UnauthorizedException(AnyTypeKind.GROUP, group.getKey());
         }
 
-        // Attribute value transformation (if configured)
+        // Any transformation (if configured)
         GroupMod actual = attrTransformer.transform(groupMod);
         LOG.debug("Transformed: {}", actual);
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/a78a6f1f/core/logic/src/main/java/org/apache/syncope/core/logic/UserLogic.java
----------------------------------------------------------------------
diff --git a/core/logic/src/main/java/org/apache/syncope/core/logic/UserLogic.java b/core/logic/src/main/java/org/apache/syncope/core/logic/UserLogic.java
index 2ec1175..37acf19 100644
--- a/core/logic/src/main/java/org/apache/syncope/core/logic/UserLogic.java
+++ b/core/logic/src/main/java/org/apache/syncope/core/logic/UserLogic.java
@@ -199,7 +199,7 @@ public class UserLogic extends AbstractAnyLogic<UserTO, UserMod> {
     }
 
     protected UserTO doCreate(final UserTO userTO, final boolean storePassword) {
-        // Attributable transformation (if configured)
+        // Any transformation (if configured)
         UserTO actual = anyTransformer.transform(userTO);
         LOG.debug("Transformed: {}", actual);
 
@@ -224,7 +224,7 @@ public class UserLogic extends AbstractAnyLogic<UserTO, UserMod> {
     @PreAuthorize("hasRole('" + Entitlement.USER_UPDATE + "')")
     @Override
     public UserTO update(final UserMod userMod) {
-        // AttributableMod transformation (if configured)
+        // Any transformation (if configured)
         UserMod actual = anyTransformer.transform(userMod);
         LOG.debug("Transformed: {}", actual);
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/a78a6f1f/core/logic/src/main/resources/logic.properties
----------------------------------------------------------------------
diff --git a/core/logic/src/main/resources/logic.properties b/core/logic/src/main/resources/logic.properties
index 72f5b06..d2f6b11 100644
--- a/core/logic/src/main/resources/logic.properties
+++ b/core/logic/src/main/resources/logic.properties
@@ -14,5 +14,5 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
-attributableTransformer=org.apache.syncope.core.provisioning.java.DefaultAttributableTransformer
+anyTransformer=org.apache.syncope.core.provisioning.java.DefaultAnyTransformer
 logicInvocationHandler=org.apache.syncope.core.logic.LogicInvocationHandler

http://git-wip-us.apache.org/repos/asf/syncope/blob/a78a6f1f/core/logic/src/main/resources/logicContext.xml
----------------------------------------------------------------------
diff --git a/core/logic/src/main/resources/logicContext.xml b/core/logic/src/main/resources/logicContext.xml
index 61eb724..b70f4cd 100644
--- a/core/logic/src/main/resources/logicContext.xml
+++ b/core/logic/src/main/resources/logicContext.xml
@@ -37,6 +37,6 @@ under the License.
   <context:component-scan base-package="org.apache.syncope.core.logic"/>
 
   <bean class="${logicInvocationHandler}"/>
-  <bean class="${attributableTransformer}"/>
+  <bean class="${anyTransformer}"/>
 
 </beans>

http://git-wip-us.apache.org/repos/asf/syncope/blob/a78a6f1f/core/misc/src/main/java/org/apache/syncope/core/misc/ConnObjectUtils.java
----------------------------------------------------------------------
diff --git a/core/misc/src/main/java/org/apache/syncope/core/misc/ConnObjectUtils.java b/core/misc/src/main/java/org/apache/syncope/core/misc/ConnObjectUtils.java
index 30341bd..279ef77 100644
--- a/core/misc/src/main/java/org/apache/syncope/core/misc/ConnObjectUtils.java
+++ b/core/misc/src/main/java/org/apache/syncope/core/misc/ConnObjectUtils.java
@@ -540,7 +540,7 @@ public class ConnObjectUtils {
                                     : MappingUtils.getConnObjectKeyValue(any, provision);
 
                             if (StringUtils.isBlank(connObjectKey)) {
-                                throw new IllegalArgumentException("No AccountId found for " + resource.getKey());
+                                throw new IllegalArgumentException("No ConnObjectKey found for " + resource.getKey());
                             }
 
                             Connector connector = connFactory.getConnector(resource);

http://git-wip-us.apache.org/repos/asf/syncope/blob/a78a6f1f/core/misc/src/main/java/org/apache/syncope/core/misc/MappingUtils.java
----------------------------------------------------------------------
diff --git a/core/misc/src/main/java/org/apache/syncope/core/misc/MappingUtils.java b/core/misc/src/main/java/org/apache/syncope/core/misc/MappingUtils.java
index 87f2ea5..a1931c1 100644
--- a/core/misc/src/main/java/org/apache/syncope/core/misc/MappingUtils.java
+++ b/core/misc/src/main/java/org/apache/syncope/core/misc/MappingUtils.java
@@ -127,7 +127,7 @@ public final class MappingUtils {
      * @param vAttrsToBeUpdated virtual attributes to be added
      * @param enable whether any object must be enabled or not
      * @param provision provision information
-     * @return account link + prepared attributes
+     * @return connObjectLink + prepared attributes
      */
     public static Pair<String, Set<Attribute>> prepareAttributes(
             final AnyUtils anyUtils, final Any<?, ?, ?> any,
@@ -186,10 +186,10 @@ public final class MappingUtils {
             }
         }
 
-        final Attribute accountIdExtAttr =
+        Attribute connObjectKeyExtAttr =
                 AttributeUtil.find(anyUtils.getConnObjectKeyItem(provision).getExtAttrName(), attributes);
-        if (accountIdExtAttr != null) {
-            attributes.remove(accountIdExtAttr);
+        if (connObjectKeyExtAttr != null) {
+            attributes.remove(connObjectKeyExtAttr);
             attributes.add(AttributeBuilder.build(
                     anyUtils.getConnObjectKeyItem(provision).getExtAttrName(), connObjectKey));
         }
@@ -218,7 +218,7 @@ public final class MappingUtils {
      * @param passwordGenerator password generator
      * @param vAttrsToBeRemoved virtual attributes to be removed
      * @param vAttrsToBeUpdated virtual attributes to be added
-     * @return account link + prepared attribute
+     * @return connObjectLink + prepared attribute
      */
     @SuppressWarnings("unchecked")
     private static Pair<String, Attribute> prepareAttr(
@@ -294,7 +294,7 @@ public final class MappingUtils {
 
         LOG.debug("Define mapping for: "
                 + "\n* ExtAttrName " + extAttrName
-                + "\n* is accountId " + mapItem.isConnObjectKey()
+                + "\n* is connObjectKey " + mapItem.isConnObjectKey()
                 + "\n* is password " + (mapItem.isPassword() || mapItem.getIntMappingType() == IntMappingType.Password)
                 + "\n* mandatory condition " + mapItem.getMandatoryCondition()
                 + "\n* Schema " + mapItem.getIntAttrName()
@@ -364,8 +364,8 @@ public final class MappingUtils {
     }
 
     /**
-     * Build __NAME__ for propagation. First look if there ia a defined accountLink for the given resource (and in this
-     * case evaluate as JEXL); otherwise, take given accountId.
+     * Build __NAME__ for propagation. First look if there ia a defined connObjectLink for the given resource (and in
+     * this case evaluate as JEXL); otherwise, take given connObjectKey.
      *
      * @param any given any object
      * @param provision external resource
@@ -384,29 +384,29 @@ public final class MappingUtils {
             LOG.error("Missing ConnObjectKey for '{}': ", provision.getResource());
         }
 
-        // Evaluate AccountLink expression
-        String evalAccountLink = null;
+        // Evaluate connObjectKey expression
+        String evalConnObjectLink = null;
         if (StringUtils.isNotBlank(anyUtils.getConnObjectLink(provision))) {
             final JexlContext jexlContext = new MapContext();
             JexlUtils.addFieldsToContext(any, jexlContext);
             JexlUtils.addAttrsToContext(any.getPlainAttrs(), jexlContext);
             JexlUtils.addDerAttrsToContext(any.getDerAttrs(), any.getPlainAttrs(), jexlContext);
-            evalAccountLink = JexlUtils.evaluate(anyUtils.getConnObjectLink(provision), jexlContext);
+            evalConnObjectLink = JexlUtils.evaluate(anyUtils.getConnObjectLink(provision), jexlContext);
         }
 
-        // If AccountLink evaluates to an empty string, just use the provided AccountId as Name(),
-        // otherwise evaluated AccountLink expression is taken as Name().
+        // If connObjectLink evaluates to an empty string, just use the provided connObjectKey as Name(),
+        // otherwise evaluated connObjectLink expression is taken as Name().
         Name name;
-        if (StringUtils.isBlank(evalAccountLink)) {
-            // add AccountId as __NAME__ attribute ...
-            LOG.debug("Add AccountId [{}] as __NAME__", connObjectKey);
+        if (StringUtils.isBlank(evalConnObjectLink)) {
+            // add connObjectKey as __NAME__ attribute ...
+            LOG.debug("Add connObjectKey [{}] as __NAME__", connObjectKey);
             name = new Name(connObjectKey);
         } else {
-            LOG.debug("Add AccountLink [{}] as __NAME__", evalAccountLink);
-            name = new Name(evalAccountLink);
+            LOG.debug("Add connObjectLink [{}] as __NAME__", evalConnObjectLink);
+            name = new Name(evalConnObjectLink);
 
-            // AccountId not propagated: it will be used to set the value for __UID__ attribute
-            LOG.debug("AccountId will be used just as __UID__ attribute");
+            // connObjectKey not propagated: it will be used to set the value for __UID__ attribute
+            LOG.debug("connObjectKey will be used just as __UID__ attribute");
         }
 
         return name;

http://git-wip-us.apache.org/repos/asf/syncope/blob/a78a6f1f/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAAnySearchDAO.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAAnySearchDAO.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAAnySearchDAO.java
index d91b948..6a14e58 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAAnySearchDAO.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAAnySearchDAO.java
@@ -61,8 +61,6 @@ import org.apache.syncope.core.persistence.api.entity.PlainAttrValue;
 import org.apache.syncope.core.persistence.api.entity.PlainSchema;
 import org.apache.syncope.core.persistence.api.entity.Realm;
 import org.apache.syncope.core.persistence.jpa.entity.JPAPlainSchema;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Repository;
 import org.springframework.util.ReflectionUtils;
@@ -70,8 +68,6 @@ import org.springframework.util.ReflectionUtils;
 @Repository
 public class JPAAnySearchDAO extends AbstractDAO<Any<?, ?, ?>, Long> implements AnySearchDAO {
 
-    protected static final Logger LOG = LoggerFactory.getLogger(AnySearchDAO.class);
-
     private static final String EMPTY_ATTR_QUERY = "SELECT any_id FROM user_search_attr WHERE 1=2";
 
     @Autowired
@@ -193,7 +189,7 @@ public class JPAAnySearchDAO extends AbstractDAO<Any<?, ?, ?>, Long> implements
 
     @Override
     public <T extends Any<?, ?, ?>> boolean matches(
-            final T subject, final SearchCond searchCondition, final AnyTypeKind typeKind) {
+            final T any, final SearchCond searchCondition, final AnyTypeKind typeKind) {
 
         List<Object> parameters = Collections.synchronizedList(new ArrayList<>());
 
@@ -208,7 +204,7 @@ public class JPAAnySearchDAO extends AbstractDAO<Any<?, ?, ?>, Long> implements
         } else {
             // 2. take into account the passed user
             queryString.insert(0, "SELECT u.any_id FROM (");
-            queryString.append(") u WHERE any_id=?").append(setParameter(parameters, subject.getKey()));
+            queryString.append(") u WHERE any_id=?").append(setParameter(parameters, any.getKey()));
 
             // 3. prepare the search query
             Query query = entityManager.createNativeQuery(queryString.toString());
@@ -305,8 +301,8 @@ public class JPAAnySearchDAO extends AbstractDAO<Any<?, ?, ?>, Long> implements
             // Manage difference among external key attribute and internal JPA @Id
             String fieldName = "key".equals(clause.getField()) ? "id" : clause.getField();
 
-            Field subjectField = ReflectionUtils.findField(attrUtils.anyClass(), fieldName);
-            if (subjectField == null) {
+            Field anyField = ReflectionUtils.findField(attrUtils.anyClass(), fieldName);
+            if (anyField == null) {
                 PlainSchema schema = schemaDAO.find(fieldName);
                 if (schema != null) {
                     if (schema.isUniqueConstraint()) {
@@ -389,25 +385,25 @@ public class JPAAnySearchDAO extends AbstractDAO<Any<?, ?, ?>, Long> implements
         // 6. Prepare the result (avoiding duplicates)
         List<T> result = new ArrayList<>();
 
-        for (Object subjectKey : query.getResultList()) {
+        for (Object anyKey : query.getResultList()) {
             long actualKey;
-            if (subjectKey instanceof Object[]) {
-                actualKey = ((Number) ((Object[]) subjectKey)[0]).longValue();
+            if (anyKey instanceof Object[]) {
+                actualKey = ((Number) ((Object[]) anyKey)[0]).longValue();
             } else {
-                actualKey = ((Number) subjectKey).longValue();
+                actualKey = ((Number) anyKey).longValue();
             }
 
-            T subject = typeKind == AnyTypeKind.USER
+            T any = typeKind == AnyTypeKind.USER
                     ? (T) userDAO.find(actualKey)
                     : typeKind == AnyTypeKind.GROUP
                             ? (T) groupDAO.find(actualKey)
                             : (T) anyObjectDAO.find(actualKey);
-            if (subject == null) {
+            if (any == null) {
                 LOG.error("Could not find {} with id {}, even though returned by the native query",
                         typeKind, actualKey);
             } else {
-                if (!result.contains(subject)) {
-                    result.add(subject);
+                if (!result.contains(any)) {
+                    result.add(any);
                 }
             }
         }
@@ -736,26 +732,26 @@ public class JPAAnySearchDAO extends AbstractDAO<Any<?, ?, ?>, Long> implements
             cond.setSchema("id");
         }
 
-        Field subjectField = ReflectionUtils.findField(attrUtils.anyClass(), cond.getSchema());
-        if (subjectField == null) {
+        Field anyField = ReflectionUtils.findField(attrUtils.anyClass(), cond.getSchema());
+        if (anyField == null) {
             LOG.warn("Ignoring invalid schema '{}'", cond.getSchema());
             return EMPTY_ATTR_QUERY;
         }
 
         PlainSchema schema = new JPAPlainSchema();
-        schema.setKey(subjectField.getName());
+        schema.setKey(anyField.getName());
         for (AttrSchemaType attrSchemaType : AttrSchemaType.values()) {
-            if (subjectField.getType().isAssignableFrom(attrSchemaType.getType())) {
+            if (anyField.getType().isAssignableFrom(attrSchemaType.getType())) {
                 schema.setType(attrSchemaType);
             }
         }
 
-        // Deal with subject Integer fields logically mapping to boolean values
+        // Deal with any Integer fields logically mapping to boolean values
         // (JPAGroup.inheritPlainAttrs, for example)
         boolean foundBooleanMin = false;
         boolean foundBooleanMax = false;
-        if (Integer.class.equals(subjectField.getType())) {
-            for (Annotation annotation : subjectField.getAnnotations()) {
+        if (Integer.class.equals(anyField.getType())) {
+            for (Annotation annotation : anyField.getAnnotations()) {
                 if (Min.class.equals(annotation.annotationType())) {
                     foundBooleanMin = ((Min) annotation).value() == 0;
                 } else if (Max.class.equals(annotation.annotationType())) {
@@ -767,13 +763,13 @@ public class JPAAnySearchDAO extends AbstractDAO<Any<?, ?, ?>, Long> implements
             schema.setType(AttrSchemaType.Boolean);
         }
 
-        // Deal with subject fields representing relationships to other entities
-        if (subjectField.getType().getAnnotation(Entity.class) != null) {
+        // Deal with any fields representing relationships to other entities
+        if (anyField.getType().getAnnotation(Entity.class) != null) {
             Method relMethod = null;
             try {
-                relMethod = ClassUtils.getPublicMethod(subjectField.getType(), "getKey", new Class[0]);
+                relMethod = ClassUtils.getPublicMethod(anyField.getType(), "getKey", new Class[0]);
             } catch (Exception e) {
-                LOG.error("Could not find {}#getKey", subjectField.getType(), e);
+                LOG.error("Could not find {}#getKey", anyField.getType(), e);
             }
 
             if (relMethod != null) {

http://git-wip-us.apache.org/repos/asf/syncope/blob/a78a6f1f/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/validation/entity/ExternalResourceValidator.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/validation/entity/ExternalResourceValidator.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/validation/entity/ExternalResourceValidator.java
index 77eea1c..f888374 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/validation/entity/ExternalResourceValidator.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/validation/entity/ExternalResourceValidator.java
@@ -82,8 +82,8 @@ public class ExternalResourceValidator extends AbstractValidator<ExternalResourc
         MappingItem connObjectKey = mapping.getConnObjectKeyItem();
         if (connObjectKey.getIntMappingType().getAnyTypeKind() != anyType.getKind()) {
             context.buildConstraintViolationWithTemplate(
-                    getTemplate(EntityViolationType.InvalidMapping, "ConnObjectKey must be from the same AnyType")).
-                    addPropertyNode("attributableType").addConstraintViolation();
+                    getTemplate(EntityViolationType.InvalidMapping, "ConnObjectKey must be from the same AnyTypeKind")).
+                    addPropertyNode("anyTypeKind").addConstraintViolation();
             return false;
         }
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/a78a6f1f/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/entity/AnySearchTest.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/entity/AnySearchTest.java b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/entity/AnySearchTest.java
index 9d253da..fcc3982 100644
--- a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/entity/AnySearchTest.java
+++ b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/entity/AnySearchTest.java
@@ -272,7 +272,7 @@ public class AnySearchTest extends AbstractTest {
     }
 
     @Test
-    public void searchByBooleanSubjectCond() {
+    public void searchByBooleanAnyCond() {
         AttributeCond booleanCond = new AttributeCond(AnyCond.Type.EQ);
         booleanCond.setSchema("show");
         booleanCond.setExpression("true");

http://git-wip-us.apache.org/repos/asf/syncope/blob/a78a6f1f/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/DefaultGroupProvisioningManager.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/DefaultGroupProvisioningManager.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/DefaultGroupProvisioningManager.java
index f0344b4..8535dc2 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/DefaultGroupProvisioningManager.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/DefaultGroupProvisioningManager.java
@@ -66,16 +66,16 @@ public class DefaultGroupProvisioningManager implements GroupProvisioningManager
     protected GroupDAO groupDAO;
 
     @Override
-    public Pair<Long, List<PropagationStatus>> create(final GroupTO subject) {
-        return create(subject, Collections.<String>emptySet());
+    public Pair<Long, List<PropagationStatus>> create(final GroupTO any) {
+        return create(any, Collections.<String>emptySet());
     }
 
     @Override
-    public Pair<Long, List<PropagationStatus>> create(final GroupTO subject, final Set<String> excludedResources) {
-        WorkflowResult<Long> created = gwfAdapter.create(subject);
+    public Pair<Long, List<PropagationStatus>> create(final GroupTO any, final Set<String> excludedResources) {
+        WorkflowResult<Long> created = gwfAdapter.create(any);
 
         List<PropagationTask> tasks =
-                propagationManager.getGroupCreateTasks(created, subject.getVirAttrs(), excludedResources);
+                propagationManager.getGroupCreateTasks(created, any.getVirAttrs(), excludedResources);
         PropagationReporter propagationReporter = ApplicationContextProvider.getApplicationContext().getBean(
                 PropagationReporter.class);
         try {
@@ -107,18 +107,18 @@ public class DefaultGroupProvisioningManager implements GroupProvisioningManager
     }
 
     @Override
-    public Pair<Long, List<PropagationStatus>> update(final GroupMod subjectMod) {
-        return update(subjectMod, Collections.<String>emptySet());
+    public Pair<Long, List<PropagationStatus>> update(final GroupMod anyMod) {
+        return update(anyMod, Collections.<String>emptySet());
     }
 
     @Override
     public Pair<Long, List<PropagationStatus>> update(
-            final GroupMod subjectMod, final Set<String> excludedResources) {
+            final GroupMod anyMod, final Set<String> excludedResources) {
 
-        WorkflowResult<Long> updated = gwfAdapter.update(subjectMod);
+        WorkflowResult<Long> updated = gwfAdapter.update(anyMod);
 
         List<PropagationTask> tasks = propagationManager.getGroupUpdateTasks(updated,
-                subjectMod.getVirAttrsToRemove(), subjectMod.getVirAttrsToUpdate(), null);
+                anyMod.getVirAttrsToRemove(), anyMod.getVirAttrsToUpdate(), null);
         PropagationReporter propagationReporter =
                 ApplicationContextProvider.getApplicationContext().getBean(PropagationReporter.class);
         try {
@@ -134,10 +134,10 @@ public class DefaultGroupProvisioningManager implements GroupProvisioningManager
     }
 
     @Override
-    public List<PropagationStatus> delete(final Long subjectKey) {
+    public List<PropagationStatus> delete(final Long anyKey) {
         final List<PropagationTask> tasks = new ArrayList<>();
 
-        Group group = groupDAO.authFind(subjectKey);
+        Group group = groupDAO.authFind(anyKey);
         if (group != null) {
             // Generate propagation tasks for deleting users from group resources, if they are on those resources only
             // because of the reason being deleted (see SYNCOPE-357)
@@ -163,7 +163,7 @@ public class DefaultGroupProvisioningManager implements GroupProvisioningManager
         }
 
         try {
-            gwfAdapter.delete(subjectKey);
+            gwfAdapter.delete(anyKey);
         } catch (RuntimeException e) {
             throw e;
         }
@@ -172,8 +172,8 @@ public class DefaultGroupProvisioningManager implements GroupProvisioningManager
     }
 
     @Override
-    public Long unlink(final GroupMod subjectMod) {
-        WorkflowResult<Long> updated = gwfAdapter.update(subjectMod);
+    public Long unlink(final GroupMod anyMod) {
+        WorkflowResult<Long> updated = gwfAdapter.update(anyMod);
         return updated.getResult();
     }
 
@@ -197,8 +197,8 @@ public class DefaultGroupProvisioningManager implements GroupProvisioningManager
     }
 
     @Override
-    public Long link(final GroupMod subjectMod) {
-        return gwfAdapter.update(subjectMod).getResult();
+    public Long link(final GroupMod anyMod) {
+        return gwfAdapter.update(anyMod).getResult();
     }
 
 }

http://git-wip-us.apache.org/repos/asf/syncope/blob/a78a6f1f/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/DefaultUserProvisioningManager.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/DefaultUserProvisioningManager.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/DefaultUserProvisioningManager.java
index 5826786..58ecb4a 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/DefaultUserProvisioningManager.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/DefaultUserProvisioningManager.java
@@ -143,13 +143,13 @@ public class DefaultUserProvisioningManager implements UserProvisioningManager {
     }
 
     @Override
-    public List<PropagationStatus> delete(final Long subjectId, final Set<String> excludedResources) {
+    public List<PropagationStatus> delete(final Long anyId, final Set<String> excludedResources) {
         // Note here that we can only notify about "delete", not any other
         // task defined in workflow process definition: this because this
         // information could only be available after uwfAdapter.delete(), which
         // will also effectively remove user from db, thus making virtually
         // impossible by NotificationManager to fetch required user information
-        List<PropagationTask> tasks = propagationManager.getUserDeleteTasks(subjectId, excludedResources);
+        List<PropagationTask> tasks = propagationManager.getUserDeleteTasks(anyId, excludedResources);
 
         PropagationReporter propagationReporter =
                 ApplicationContextProvider.getApplicationContext().getBean(PropagationReporter.class);
@@ -161,7 +161,7 @@ public class DefaultUserProvisioningManager implements UserProvisioningManager {
         }
 
         try {
-            uwfAdapter.delete(subjectId);
+            uwfAdapter.delete(anyId);
         } catch (PropagationException e) {
             throw e;
         }
@@ -176,8 +176,8 @@ public class DefaultUserProvisioningManager implements UserProvisioningManager {
     }
 
     @Override
-    public Long link(final UserMod subjectMod) {
-        return uwfAdapter.update(subjectMod).getResult().getKey().getKey();
+    public Long link(final UserMod anyMod) {
+        return uwfAdapter.update(anyMod).getResult().getKey().getKey();
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/syncope/blob/a78a6f1f/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/VirAttrHandler.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/VirAttrHandler.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/VirAttrHandler.java
index 3ffc1c3..6c11f8a 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/VirAttrHandler.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/VirAttrHandler.java
@@ -138,7 +138,7 @@ public class VirAttrHandler {
 
                             // Using virtual attribute as ConnObjectKey must be avoided
                             if (mapItem.isConnObjectKey() && virAttr != null && !virAttr.getValues().isEmpty()) {
-                                propByRes.addOldAccountId(resource.getKey(), virAttr.getValues().get(0).toString());
+                                propByRes.addOldConnObjectKey(resource.getKey(), virAttr.getValues().get(0).toString());
                             }
                         }
                     }

http://git-wip-us.apache.org/repos/asf/syncope/blob/a78a6f1f/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/cache/MemoryVirAttrCache.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/cache/MemoryVirAttrCache.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/cache/MemoryVirAttrCache.java
index bac145e..21d2236 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/cache/MemoryVirAttrCache.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/cache/MemoryVirAttrCache.java
@@ -56,7 +56,7 @@ public class MemoryVirAttrCache implements VirAttrCache {
      * Cache virtual attribute values.
      *
      * @param type any object type
-     * @param key attributable key
+     * @param key any key
      * @param schemaName virtual attribute name
      * @param value virtual attribute values
      */
@@ -81,7 +81,7 @@ public class MemoryVirAttrCache implements VirAttrCache {
      * Retrieve cached value. Return null in case of virtual attribute not cached.
      *
      * @param type any object type
-     * @param key attributable key
+     * @param key any key
      * @param schemaName virtual attribute schema name.
      * @return cached values or null if virtual attribute is not cached.
      */
@@ -94,7 +94,7 @@ public class MemoryVirAttrCache implements VirAttrCache {
      * Force entry expiring.
      *
      * @param type any object type
-     * @param key attributable key
+     * @param key any key
      * @param schemaName virtual attribute schema name
      */
     @Override

http://git-wip-us.apache.org/repos/asf/syncope/blob/a78a6f1f/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/AbstractAnyDataBinder.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/AbstractAnyDataBinder.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/AbstractAnyDataBinder.java
index 3551a80..f63a9b4 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/AbstractAnyDataBinder.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/AbstractAnyDataBinder.java
@@ -353,7 +353,7 @@ abstract class AbstractAnyDataBinder {
                             propByRes.add(ResourceOperation.UPDATE, resource.getKey());
 
                             if (mapItem.isConnObjectKey() && attr != null && !attr.getValuesAsStrings().isEmpty()) {
-                                propByRes.addOldAccountId(resource.getKey(), attr.getValuesAsStrings().get(0));
+                                propByRes.addOldConnObjectKey(resource.getKey(), attr.getValuesAsStrings().get(0));
                             }
                         }
                     }
@@ -451,7 +451,7 @@ abstract class AbstractAnyDataBinder {
                             if (mapItem.isConnObjectKey() && derAttr != null
                                     && !derAttr.getValue(any.getPlainAttrs()).isEmpty()) {
 
-                                propByRes.addOldAccountId(resource.getKey(),
+                                propByRes.addOldConnObjectKey(resource.getKey(),
                                         derAttr.getValue(any.getPlainAttrs()));
                             }
                         }

http://git-wip-us.apache.org/repos/asf/syncope/blob/a78a6f1f/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/GroupDataBinderImpl.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/GroupDataBinderImpl.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/GroupDataBinderImpl.java
index 17370e6..6bce1b1 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/GroupDataBinderImpl.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/GroupDataBinderImpl.java
@@ -126,7 +126,7 @@ public class GroupDataBinderImpl extends AbstractAnyDataBinder implements GroupD
 
         SyncopeClientCompositeException scce = SyncopeClientException.buildComposite();
 
-        // fetch account ids before update
+        // fetch connObjectKeys before update
         Map<String, String> oldConnObjectKeys = getConnObjectKeys(group);
 
         // realm
@@ -153,13 +153,13 @@ public class GroupDataBinderImpl extends AbstractAnyDataBinder implements GroupD
         // attributes, derived attributes, virtual attributes and resources
         propByRes.merge(fill(group, groupMod, anyUtilsFactory.getInstance(AnyTypeKind.GROUP), scce));
 
-        // check if some account id was changed by the update above
+        // check if some connObjectKey was changed by the update above
         Map<String, String> newConnObjectKeys = getConnObjectKeys(group);
         for (Map.Entry<String, String> entry : oldConnObjectKeys.entrySet()) {
             if (newConnObjectKeys.containsKey(entry.getKey())
                     && !entry.getValue().equals(newConnObjectKeys.get(entry.getKey()))) {
 
-                propByRes.addOldAccountId(entry.getKey(), entry.getValue());
+                propByRes.addOldConnObjectKey(entry.getKey(), entry.getValue());
                 propByRes.add(ResourceOperation.UPDATE, entry.getKey());
             }
         }

http://git-wip-us.apache.org/repos/asf/syncope/blob/a78a6f1f/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/ResourceDataBinderImpl.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/ResourceDataBinderImpl.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/ResourceDataBinderImpl.java
index fae0f9f..4930764 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/ResourceDataBinderImpl.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/ResourceDataBinderImpl.java
@@ -246,7 +246,7 @@ public class ResourceDataBinderImpl implements ResourceDataBinder {
             itemTO.setKey(item.getKey());
             BeanUtils.copyProperties(item, itemTO, MAPPINGITEM_IGNORE_PROPERTIES);
 
-            if (itemTO.isAccountid()) {
+            if (itemTO.isConnObjectKey()) {
                 mappingTO.setConnObjectKeyItem(itemTO);
             } else {
                 mappingTO.add(itemTO);

http://git-wip-us.apache.org/repos/asf/syncope/blob/a78a6f1f/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/UserDataBinderImpl.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/UserDataBinderImpl.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/UserDataBinderImpl.java
index e7ec3cd..e20e405 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/UserDataBinderImpl.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/UserDataBinderImpl.java
@@ -213,7 +213,7 @@ public class UserDataBinderImpl extends AbstractAnyDataBinder implements UserDat
 
         Collection<String> currentResources = userDAO.findAllResourceNames(user);
 
-        // fetch account ids before update
+        // fetch connObjectKeys before update
         Map<String, String> oldConnObjectKeys = getConnObjectKeys(user);
 
         // realm
@@ -336,13 +336,13 @@ public class UserDataBinderImpl extends AbstractAnyDataBinder implements UserDat
             propByRes.addAll(ResourceOperation.UPDATE, currentResources);
         }
 
-        // check if some account id was changed by the update above
-        Map<String, String> newAccountIds = getConnObjectKeys(user);
+        // check if some connObjectKey was changed by the update above
+        Map<String, String> newcCnnObjectKeys = getConnObjectKeys(user);
         for (Map.Entry<String, String> entry : oldConnObjectKeys.entrySet()) {
-            if (newAccountIds.containsKey(entry.getKey())
-                    && !entry.getValue().equals(newAccountIds.get(entry.getKey()))) {
+            if (newcCnnObjectKeys.containsKey(entry.getKey())
+                    && !entry.getValue().equals(newcCnnObjectKeys.get(entry.getKey()))) {
 
-                propByRes.addOldAccountId(entry.getKey(), entry.getValue());
+                propByRes.addOldConnObjectKey(entry.getKey(), entry.getValue());
                 propByRes.add(ResourceOperation.UPDATE, entry.getKey());
             }
         }

http://git-wip-us.apache.org/repos/asf/syncope/blob/a78a6f1f/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/AbstractPropagationTaskExecutor.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/AbstractPropagationTaskExecutor.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/AbstractPropagationTaskExecutor.java
index 5c89dbb..73a7896 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/AbstractPropagationTaskExecutor.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/AbstractPropagationTaskExecutor.java
@@ -296,11 +296,11 @@ public abstract class AbstractPropagationTaskExecutor implements PropagationTask
              * update, this user / group used to have the current resource assigned by more than one mean (for example,
              * two different memberships with the same resource).
              */
-            Any<?, ?, ?> subject = getAny(task);
-            Collection<String> resources = subject instanceof User
-                    ? userDAO.findAllResourceNames((User) subject)
-                    : subject instanceof Group
-                            ? ((Group) subject).getResourceNames()
+            Any<?, ?, ?> any = getAny(task);
+            Collection<String> resources = any instanceof User
+                    ? userDAO.findAllResourceNames((User) any)
+                    : any instanceof Group
+                            ? ((Group) any).getResourceNames()
                             : Collections.<String>emptySet();
             if (!resources.contains(task.getResource().getKey())) {
                 LOG.debug("Delete {} on {}", beforeObj.getUid(), task.getResource().getKey());
@@ -527,7 +527,7 @@ public abstract class AbstractPropagationTaskExecutor implements PropagationTask
      * @param connector connector facade proxy.
      * @param task current propagation task.
      * @param provision provision
-     * @param latest 'FALSE' to retrieve object using old accountId if not null.
+     * @param latest 'FALSE' to retrieve object using old connObjectKey if not null.
      * @return remote connector object.
      */
     protected ConnectorObject getRemoteObject(final PropagationTask task, final Connector connector,

http://git-wip-us.apache.org/repos/asf/syncope/blob/a78a6f1f/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/LDAPMembershipPropagationActions.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/LDAPMembershipPropagationActions.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/LDAPMembershipPropagationActions.java
index d01b5c5..6d795d8 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/LDAPMembershipPropagationActions.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/LDAPMembershipPropagationActions.java
@@ -76,31 +76,31 @@ public class LDAPMembershipPropagationActions extends DefaultPropagationActions
         if (AnyTypeKind.USER == task.getAnyTypeKind() && provision.getMapping() != null) {
             User user = userDAO.find(task.getAnyKey());
             if (user != null) {
-                List<String> groupAccountLinks = new ArrayList<>();
+                List<String> groupConnObjectLinks = new ArrayList<>();
                 for (Group group : userDAO.findAllGroups(user)) {
                     if (group.getResourceNames().contains(task.getResource().getKey())
                             && StringUtils.isNotBlank(provision.getMapping().getConnObjectLink())) {
 
-                        LOG.debug("Evaluating accountLink for {}", group);
+                        LOG.debug("Evaluating connObjectLink for {}", group);
 
                         JexlContext jexlContext = new MapContext();
                         JexlUtils.addFieldsToContext(group, jexlContext);
                         JexlUtils.addAttrsToContext(group.getPlainAttrs(), jexlContext);
                         JexlUtils.addDerAttrsToContext(group.getDerAttrs(), group.getPlainAttrs(), jexlContext);
 
-                        String groupAccountLink =
+                        String groupConnObjectLinkLink =
                                 JexlUtils.evaluate(provision.getMapping().getConnObjectLink(), jexlContext);
-                        LOG.debug("AccountLink for {} is '{}'", group, groupAccountLink);
-                        if (StringUtils.isNotBlank(groupAccountLink)) {
-                            groupAccountLinks.add(groupAccountLink);
+                        LOG.debug("ConnObjectLink for {} is '{}'", group, groupConnObjectLinkLink);
+                        if (StringUtils.isNotBlank(groupConnObjectLinkLink)) {
+                            groupConnObjectLinks.add(groupConnObjectLinkLink);
                         }
                     }
                 }
-                LOG.debug("Group accountLinks to propagate for membership: {}", groupAccountLinks);
+                LOG.debug("Group connObjectLinks to propagate for membership: {}", groupConnObjectLinks);
 
                 Set<Attribute> attributes = new HashSet<>(task.getAttributes());
 
-                Set<String> groups = new HashSet<>(groupAccountLinks);
+                Set<String> groups = new HashSet<>(groupConnObjectLinks);
                 Attribute ldapGroups = AttributeUtil.find(getGroupMembershipAttrName(), attributes);
 
                 if (ldapGroups != null) {

http://git-wip-us.apache.org/repos/asf/syncope/blob/a78a6f1f/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/PropagationManagerImpl.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/PropagationManagerImpl.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/PropagationManagerImpl.java
index 400b72e..952343b 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/PropagationManagerImpl.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/PropagationManagerImpl.java
@@ -467,7 +467,7 @@ public class PropagationManagerImpl implements PropagationManager {
                     }
                     task.setPropagationOperation(operation);
                     task.setPropagationMode(resource.getPropagationMode());
-                    task.setOldConnObjectKey(propByRes.getOldAccountId(resource.getKey()));
+                    task.setOldConnObjectKey(propByRes.getOldConnObjectKey(resource.getKey()));
 
                     Pair<String, Set<Attribute>> preparedAttrs = MappingUtils.prepareAttributes(anyUtils, any,
                             password, changePwd, vAttrsToBeRemoved, vAttrsToBeUpdated, enable, provision);

http://git-wip-us.apache.org/repos/asf/syncope/blob/a78a6f1f/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/AbstractSyncResultHandler.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/AbstractSyncResultHandler.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/AbstractSyncResultHandler.java
index b854921..1ead6a7 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/AbstractSyncResultHandler.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/AbstractSyncResultHandler.java
@@ -114,7 +114,7 @@ public abstract class AbstractSyncResultHandler extends AbstractSyncopeResultHan
         result.setAnyType(provision.getAnyType().getKey());
         result.setStatus(ProvisioningResult.Status.SUCCESS);
 
-        // Attributable transformation (if configured)
+        // Any transformation (if configured)
         AnyTO transformed = anyTransformer.transform(anyTO);
         LOG.debug("Transformed: {}", transformed);
 
@@ -145,7 +145,7 @@ public abstract class AbstractSyncResultHandler extends AbstractSyncopeResultHan
 
         AnyTO anyTO = connObjectUtils.getAnyTO(delta.getObject(), profile.getTask(), provision, anyUtils);
 
-        // Attributable transformation (if configured)
+        // Any transformation (if configured)
         AnyTO transformed = anyTransformer.transform(anyTO);
         LOG.debug("Transformed: {}", transformed);
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/a78a6f1f/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/AnyObjectPushResultHandlerImpl.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/AnyObjectPushResultHandlerImpl.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/AnyObjectPushResultHandlerImpl.java
index fcfb537..503ce0b 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/AnyObjectPushResultHandlerImpl.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/AnyObjectPushResultHandlerImpl.java
@@ -111,7 +111,7 @@ public class AnyObjectPushResultHandlerImpl extends AbstractPushResultHandler im
     }
 
     @Override
-    protected String getName(final Any<?, ?, ?> subject) {
+    protected String getName(final Any<?, ?, ?> any) {
         return StringUtils.EMPTY;
     }
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/a78a6f1f/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/GroupPushResultHandlerImpl.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/GroupPushResultHandlerImpl.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/GroupPushResultHandlerImpl.java
index 38ae900..78fffbf 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/GroupPushResultHandlerImpl.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/GroupPushResultHandlerImpl.java
@@ -110,8 +110,8 @@ public class GroupPushResultHandlerImpl extends AbstractPushResultHandler implem
     }
 
     @Override
-    protected String getName(final Any<?, ?, ?> subject) {
-        return Group.class.cast(subject).getName();
+    protected String getName(final Any<?, ?, ?> any) {
+        return Group.class.cast(any).getName();
     }
 
     @Override