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 2014/06/19 15:04:41 UTC

svn commit: r1603867 [1/3] - in /syncope/trunk: client/src/main/java/org/apache/syncope/client/ common/src/main/java/org/apache/syncope/common/mod/ common/src/main/java/org/apache/syncope/common/search/ common/src/main/java/org/apache/syncope/common/se...

Author: ilgrosso
Date: Thu Jun 19 13:04:39 2014
New Revision: 1603867

URL: http://svn.apache.org/r1603867
Log:
[SYNCOPE-290] Preliminary refactoring

Added:
    syncope/trunk/common/src/main/java/org/apache/syncope/common/mod/AbstractSubjectMod.java   (with props)
    syncope/trunk/common/src/main/java/org/apache/syncope/common/to/AbstractSubjectTO.java   (with props)
    syncope/trunk/common/src/main/java/org/apache/syncope/common/types/SubjectType.java
      - copied, changed from r1603812, syncope/trunk/common/src/main/java/org/apache/syncope/common/types/AttributableType.java
    syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/beans/AbstractSubject.java   (with props)
Modified:
    syncope/trunk/client/src/main/java/org/apache/syncope/client/SyncopeClient.java
    syncope/trunk/common/src/main/java/org/apache/syncope/common/mod/AbstractAttributableMod.java
    syncope/trunk/common/src/main/java/org/apache/syncope/common/mod/MembershipMod.java
    syncope/trunk/common/src/main/java/org/apache/syncope/common/mod/RoleMod.java
    syncope/trunk/common/src/main/java/org/apache/syncope/common/mod/UserMod.java
    syncope/trunk/common/src/main/java/org/apache/syncope/common/search/SearchableFields.java
    syncope/trunk/common/src/main/java/org/apache/syncope/common/services/ResourceService.java
    syncope/trunk/common/src/main/java/org/apache/syncope/common/services/WorkflowService.java
    syncope/trunk/common/src/main/java/org/apache/syncope/common/to/AbstractAttributableTO.java
    syncope/trunk/common/src/main/java/org/apache/syncope/common/to/ConnObjectTO.java
    syncope/trunk/common/src/main/java/org/apache/syncope/common/to/MembershipTO.java
    syncope/trunk/common/src/main/java/org/apache/syncope/common/to/PropagationTaskTO.java
    syncope/trunk/common/src/main/java/org/apache/syncope/common/to/RoleTO.java
    syncope/trunk/common/src/main/java/org/apache/syncope/common/to/UserTO.java
    syncope/trunk/common/src/main/java/org/apache/syncope/common/types/IntMappingType.java
    syncope/trunk/common/src/main/java/org/apache/syncope/common/util/AttributableOperations.java
    syncope/trunk/console/src/main/java/org/apache/syncope/console/SyncopeSession.java
    syncope/trunk/console/src/main/java/org/apache/syncope/console/commons/status/StatusUtils.java
    syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/ProvisioningModalPage.java
    syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/ResultStatusModalPage.java
    syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/StatusModalPage.java
    syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/AbstractSearchPanel.java
    syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/NotificationTasks.java
    syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/PropagationTasks.java
    syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/ResourcesPanel.java
    syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/SchedTasks.java
    syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/StatusPanel.java
    syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/SyncTasks.java
    syncope/trunk/console/src/main/java/org/apache/syncope/console/rest/ResourceRestClient.java
    syncope/trunk/console/src/main/java/org/apache/syncope/console/rest/RoleRestClient.java
    syncope/trunk/console/src/main/java/org/apache/syncope/console/rest/UserRestClient.java
    syncope/trunk/console/src/main/java/org/apache/syncope/console/rest/WorkflowRestClient.java
    syncope/trunk/core/src/main/java/org/apache/syncope/core/connid/ConnObjectUtil.java
    syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/beans/AbstractAttributable.java
    syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/beans/membership/Membership.java
    syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/beans/role/SyncopeRole.java
    syncope/trunk/core/src/main/java/org/apache/syncope/core/persistence/beans/user/SyncopeUser.java
    syncope/trunk/core/src/main/java/org/apache/syncope/core/propagation/impl/AbstractPropagationTaskExecutor.java
    syncope/trunk/core/src/main/java/org/apache/syncope/core/propagation/impl/DBPasswordPropagationActions.java
    syncope/trunk/core/src/main/java/org/apache/syncope/core/propagation/impl/PropagationManager.java
    syncope/trunk/core/src/main/java/org/apache/syncope/core/report/RoleReportlet.java
    syncope/trunk/core/src/main/java/org/apache/syncope/core/report/UserReportlet.java
    syncope/trunk/core/src/main/java/org/apache/syncope/core/rest/controller/ResourceController.java
    syncope/trunk/core/src/main/java/org/apache/syncope/core/rest/data/AbstractAttributableDataBinder.java
    syncope/trunk/core/src/main/java/org/apache/syncope/core/rest/data/UserDataBinder.java
    syncope/trunk/core/src/main/java/org/apache/syncope/core/services/ResourceServiceImpl.java
    syncope/trunk/core/src/main/java/org/apache/syncope/core/services/WorkflowServiceImpl.java
    syncope/trunk/core/src/main/java/org/apache/syncope/core/sync/impl/SyncopeSyncResultHandler.java
    syncope/trunk/core/src/main/java/org/apache/syncope/core/util/AttributableUtil.java
    syncope/trunk/core/src/test/java/org/apache/syncope/core/rest/RoleTestITCase.java
    syncope/trunk/core/src/test/java/org/apache/syncope/core/rest/UserSelfTestITCase.java
    syncope/trunk/core/src/test/java/org/apache/syncope/core/rest/UserTestITCase.java
    syncope/trunk/core/src/test/java/org/apache/syncope/core/rest/VirAttrTestITCase.java
    syncope/trunk/core/src/test/java/org/apache/syncope/core/rest/WorkflowTestITCase.java

Modified: syncope/trunk/client/src/main/java/org/apache/syncope/client/SyncopeClient.java
URL: http://svn.apache.org/viewvc/syncope/trunk/client/src/main/java/org/apache/syncope/client/SyncopeClient.java?rev=1603867&r1=1603866&r2=1603867&view=diff
==============================================================================
--- syncope/trunk/client/src/main/java/org/apache/syncope/client/SyncopeClient.java (original)
+++ syncope/trunk/client/src/main/java/org/apache/syncope/client/SyncopeClient.java Thu Jun 19 13:04:39 2014
@@ -18,7 +18,6 @@
  */
 package org.apache.syncope.client;
 
-import org.apache.syncope.common.search.UserFiqlSearchConditionBuilder;
 import javax.ws.rs.core.EntityTag;
 import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.Response;
@@ -26,11 +25,12 @@ import org.apache.cxf.jaxrs.client.WebCl
 import org.apache.syncope.client.rest.RestClientFactoryBean;
 import org.apache.syncope.common.search.OrderByClauseBuilder;
 import org.apache.syncope.common.search.RoleFiqlSearchConditionBuilder;
+import org.apache.syncope.common.search.UserFiqlSearchConditionBuilder;
 import org.apache.syncope.common.services.UserSelfService;
 import org.apache.syncope.common.services.WorkflowService;
-import org.apache.syncope.common.types.AttributableType;
 import org.apache.syncope.common.types.Preference;
 import org.apache.syncope.common.types.RESTHeaders;
+import org.apache.syncope.common.types.SubjectType;
 
 /**
  * Entry point for client access to all REST services exposed by Syncope core; obtain instances via
@@ -222,26 +222,23 @@ public class SyncopeClient {
     /**
      * Checks whether Activiti workflow is enabled for users / roles, by calling <tt>WorkflowService</tt>'s options.
      *
-     * @param attributableType user / role
+     * @param subjectType user / role
      * @return whether Activiti workflow is enabled for given attributable type
      * @see WorkflowService#getOptions(org.apache.syncope.common.types.AttributableType)
      */
-    public boolean isActivitiEnabledFor(final AttributableType attributableType) {
-        Response options = getService(WorkflowService.class).getOptions(attributableType);
+    public boolean isActivitiEnabledFor(final SubjectType subjectType) {
+        Response options = getService(WorkflowService.class).getOptions(subjectType);
 
         boolean result;
-        switch (attributableType) {
+        switch (subjectType) {
             case USER:
+            default:
                 result = Boolean.valueOf(options.getHeaderString(RESTHeaders.ACTIVITI_USER_ENABLED));
                 break;
 
             case ROLE:
                 result = Boolean.valueOf(options.getHeaderString(RESTHeaders.ACTIVITI_ROLE_ENABLED));
                 break;
-
-            case MEMBERSHIP:
-            default:
-                result = false;
         }
 
         return result;

Modified: syncope/trunk/common/src/main/java/org/apache/syncope/common/mod/AbstractAttributableMod.java
URL: http://svn.apache.org/viewvc/syncope/trunk/common/src/main/java/org/apache/syncope/common/mod/AbstractAttributableMod.java?rev=1603867&r1=1603866&r2=1603867&view=diff
==============================================================================
--- syncope/trunk/common/src/main/java/org/apache/syncope/common/mod/AbstractAttributableMod.java (original)
+++ syncope/trunk/common/src/main/java/org/apache/syncope/common/mod/AbstractAttributableMod.java Thu Jun 19 13:04:39 2014
@@ -40,37 +40,17 @@ public abstract class AbstractAttributab
 
     protected long id;
 
-    protected Set<AttributeMod> attrsToUpdate;
+    protected final Set<AttributeMod> attrsToUpdate = new HashSet<AttributeMod>();
 
-    protected Set<String> attrsToRemove;
+    protected final Set<String> attrsToRemove = new HashSet<String>();
 
-    protected Set<String> derAttrsToAdd;
+    protected final Set<String> derAttrsToAdd = new HashSet<String>();
 
-    protected Set<String> derAttrsToRemove;
+    protected final Set<String> derAttrsToRemove = new HashSet<String>();
 
-    protected Set<AttributeMod> virAttrsToUpdate;
+    protected final Set<AttributeMod> virAttrsToUpdate = new HashSet<AttributeMod>();
 
-    protected Set<String> virAttrsToRemove;
-
-    protected Set<String> resourcesToAdd;
-
-    protected Set<String> resourcesToRemove;
-
-    /**
-     * All attributes are initialized to empty sets.
-     */
-    public AbstractAttributableMod() {
-        super();
-
-        attrsToUpdate = new HashSet<AttributeMod>();
-        attrsToRemove = new HashSet<String>();
-        derAttrsToAdd = new HashSet<String>();
-        derAttrsToRemove = new HashSet<String>();
-        virAttrsToUpdate = new HashSet<AttributeMod>();
-        virAttrsToRemove = new HashSet<String>();
-        resourcesToAdd = new HashSet<String>();
-        resourcesToRemove = new HashSet<String>();
-    }
+    protected final Set<String> virAttrsToRemove = new HashSet<String>();
 
     public long getId() {
         return id;
@@ -122,27 +102,12 @@ public abstract class AbstractAttributab
         return virAttrsToUpdate;
     }
 
-    @XmlElementWrapper(name = "resourcesToAdd")
-    @XmlElement(name = "resource")
-    @JsonProperty("resourcesToAdd")
-    public Set<String> getResourcesToAdd() {
-        return resourcesToAdd;
-    }
-
-    @XmlElementWrapper(name = "resourcesToRemove")
-    @XmlElement(name = "resource")
-    @JsonProperty("resourcesToRemove")
-    public Set<String> getResourcesToRemove() {
-        return resourcesToRemove;
-    }
-
     /**
      * @return true is all backing Sets are empty.
      */
     public boolean isEmpty() {
         return attrsToUpdate.isEmpty() && attrsToRemove.isEmpty()
                 && derAttrsToAdd.isEmpty() && derAttrsToRemove.isEmpty()
-                && virAttrsToUpdate.isEmpty() && virAttrsToRemove.isEmpty()
-                && resourcesToAdd.isEmpty() && resourcesToRemove.isEmpty();
+                && virAttrsToUpdate.isEmpty() && virAttrsToRemove.isEmpty();
     }
 }

Added: syncope/trunk/common/src/main/java/org/apache/syncope/common/mod/AbstractSubjectMod.java
URL: http://svn.apache.org/viewvc/syncope/trunk/common/src/main/java/org/apache/syncope/common/mod/AbstractSubjectMod.java?rev=1603867&view=auto
==============================================================================
--- syncope/trunk/common/src/main/java/org/apache/syncope/common/mod/AbstractSubjectMod.java (added)
+++ syncope/trunk/common/src/main/java/org/apache/syncope/common/mod/AbstractSubjectMod.java Thu Jun 19 13:04:39 2014
@@ -0,0 +1,56 @@
+/*
+ * 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.common.mod;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.HashSet;
+import java.util.Set;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlElementWrapper;
+import javax.xml.bind.annotation.XmlType;
+
+@XmlType
+public abstract class AbstractSubjectMod extends AbstractAttributableMod {
+
+    private static final long serialVersionUID = -6404459635536484024L;
+
+    protected final Set<String> resourcesToAdd = new HashSet<String>();
+
+    protected final Set<String> resourcesToRemove = new HashSet<String>();
+
+    @XmlElementWrapper(name = "resourcesToAdd")
+    @XmlElement(name = "resource")
+    @JsonProperty("resourcesToAdd")
+    public Set<String> getResourcesToAdd() {
+        return resourcesToAdd;
+    }
+
+    @XmlElementWrapper(name = "resourcesToRemove")
+    @XmlElement(name = "resource")
+    @JsonProperty("resourcesToRemove")
+    public Set<String> getResourcesToRemove() {
+        return resourcesToRemove;
+    }
+
+    @Override
+    public boolean isEmpty() {
+        return super.isEmpty() && resourcesToAdd.isEmpty() && resourcesToRemove.isEmpty();
+    }
+
+}

Propchange: syncope/trunk/common/src/main/java/org/apache/syncope/common/mod/AbstractSubjectMod.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: syncope/trunk/common/src/main/java/org/apache/syncope/common/mod/AbstractSubjectMod.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Propchange: syncope/trunk/common/src/main/java/org/apache/syncope/common/mod/AbstractSubjectMod.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: syncope/trunk/common/src/main/java/org/apache/syncope/common/mod/MembershipMod.java
URL: http://svn.apache.org/viewvc/syncope/trunk/common/src/main/java/org/apache/syncope/common/mod/MembershipMod.java?rev=1603867&r1=1603866&r2=1603867&view=diff
==============================================================================
--- syncope/trunk/common/src/main/java/org/apache/syncope/common/mod/MembershipMod.java (original)
+++ syncope/trunk/common/src/main/java/org/apache/syncope/common/mod/MembershipMod.java Thu Jun 19 13:04:39 2014
@@ -19,12 +19,6 @@
 package org.apache.syncope.common.mod;
 
 import com.fasterxml.jackson.annotation.JsonIgnore;
-import com.fasterxml.jackson.annotation.JsonProperty;
-import java.util.Collections;
-import java.util.Set;
-
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlElementWrapper;
 import javax.xml.bind.annotation.XmlRootElement;
 import javax.xml.bind.annotation.XmlType;
 
@@ -44,22 +38,6 @@ public class MembershipMod extends Abstr
         this.role = role;
     }
 
-    @XmlElementWrapper(name = "resourcesToAdd")
-    @XmlElement(name = "resource")
-    @JsonProperty("resourcesToAdd")
-    @Override
-    public Set<String> getResourcesToAdd() {
-        return Collections.emptySet();
-    }
-
-    @XmlElementWrapper(name = "resourcesToRemove")
-    @XmlElement(name = "resource")
-    @JsonProperty("resourcesToRemove")
-    @Override
-    public Set<String> getResourcesToRemove() {
-        return Collections.emptySet();
-    }
-
     @JsonIgnore
     @Override
     public boolean isEmpty() {

Modified: syncope/trunk/common/src/main/java/org/apache/syncope/common/mod/RoleMod.java
URL: http://svn.apache.org/viewvc/syncope/trunk/common/src/main/java/org/apache/syncope/common/mod/RoleMod.java?rev=1603867&r1=1603866&r2=1603867&view=diff
==============================================================================
--- syncope/trunk/common/src/main/java/org/apache/syncope/common/mod/RoleMod.java (original)
+++ syncope/trunk/common/src/main/java/org/apache/syncope/common/mod/RoleMod.java Thu Jun 19 13:04:39 2014
@@ -30,7 +30,7 @@ import javax.xml.bind.annotation.XmlType
 
 @XmlRootElement(name = "roleMod")
 @XmlType
-public class RoleMod extends AbstractAttributableMod {
+public class RoleMod extends AbstractSubjectMod {
 
     private static final long serialVersionUID = 7455805264680210747L;
 

Modified: syncope/trunk/common/src/main/java/org/apache/syncope/common/mod/UserMod.java
URL: http://svn.apache.org/viewvc/syncope/trunk/common/src/main/java/org/apache/syncope/common/mod/UserMod.java?rev=1603867&r1=1603866&r2=1603867&view=diff
==============================================================================
--- syncope/trunk/common/src/main/java/org/apache/syncope/common/mod/UserMod.java (original)
+++ syncope/trunk/common/src/main/java/org/apache/syncope/common/mod/UserMod.java Thu Jun 19 13:04:39 2014
@@ -29,7 +29,7 @@ import javax.xml.bind.annotation.XmlType
 
 @XmlRootElement(name = "userMod")
 @XmlType
-public class UserMod extends AbstractAttributableMod {
+public class UserMod extends AbstractSubjectMod {
 
     private static final long serialVersionUID = 3081848906558106204L;
 

Modified: syncope/trunk/common/src/main/java/org/apache/syncope/common/search/SearchableFields.java
URL: http://svn.apache.org/viewvc/syncope/trunk/common/src/main/java/org/apache/syncope/common/search/SearchableFields.java?rev=1603867&r1=1603866&r2=1603867&view=diff
==============================================================================
--- syncope/trunk/common/src/main/java/org/apache/syncope/common/search/SearchableFields.java (original)
+++ syncope/trunk/common/src/main/java/org/apache/syncope/common/search/SearchableFields.java Thu Jun 19 13:04:39 2014
@@ -26,7 +26,7 @@ import org.apache.commons.lang3.ArrayUti
 import org.apache.syncope.common.to.AbstractAttributableTO;
 import org.apache.syncope.common.to.RoleTO;
 import org.apache.syncope.common.to.UserTO;
-import org.apache.syncope.common.types.AttributableType;
+import org.apache.syncope.common.types.SubjectType;
 
 public class SearchableFields {
 
@@ -36,8 +36,8 @@ public class SearchableFields {
         "propagationTOs", "propagationStatusMap"
     };
 
-    public static final List<String> get(final AttributableType attributableType) {
-        return get(attributableType == AttributableType.USER
+    public static final List<String> get(final SubjectType subjectType) {
+        return get(subjectType == SubjectType.USER
                 ? UserTO.class
                 : RoleTO.class);
     }

Modified: syncope/trunk/common/src/main/java/org/apache/syncope/common/services/ResourceService.java
URL: http://svn.apache.org/viewvc/syncope/trunk/common/src/main/java/org/apache/syncope/common/services/ResourceService.java?rev=1603867&r1=1603866&r2=1603867&view=diff
==============================================================================
--- syncope/trunk/common/src/main/java/org/apache/syncope/common/services/ResourceService.java (original)
+++ syncope/trunk/common/src/main/java/org/apache/syncope/common/services/ResourceService.java Thu Jun 19 13:04:39 2014
@@ -33,13 +33,12 @@ import javax.ws.rs.core.Response;
 import org.apache.cxf.jaxrs.model.wadl.Description;
 import org.apache.cxf.jaxrs.model.wadl.Descriptions;
 import org.apache.cxf.jaxrs.model.wadl.DocTarget;
-
 import org.apache.syncope.common.reqres.BulkAction;
 import org.apache.syncope.common.reqres.BulkActionResult;
 import org.apache.syncope.common.to.ConnObjectTO;
 import org.apache.syncope.common.to.ResourceTO;
-import org.apache.syncope.common.types.AttributableType;
 import org.apache.syncope.common.types.ResourceDeassociationActionType;
+import org.apache.syncope.common.types.SubjectType;
 import org.apache.syncope.common.wrap.PropagationActionClass;
 import org.apache.syncope.common.wrap.SubjectId;
 
@@ -61,7 +60,7 @@ public interface ResourceService extends
     @Path("{resourceName}/{type}/{id}")
     @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
     ConnObjectTO getConnectorObject(@PathParam("resourceName") String resourceName,
-            @PathParam("type") AttributableType type, @PathParam("id") Long id);
+            @PathParam("type") SubjectType type, @PathParam("id") Long id);
 
     /**
      * Returns a list of classes that can be used to customize the propagation process.
@@ -150,10 +149,10 @@ public interface ResourceService extends
     boolean check(ResourceTO resourceTO);
 
     /**
-     * De-associate users or roles (depending on the provided attributable type) from the given resource.
+     * De-associate users or roles (depending on the provided subject type) from the given resource.
      *
      * @param resourceName name of resource
-     * @param attrType attributable type (user or role)
+     * @param subjectType subject type (user or role)
      * @param type resource de-association action type
      * @param subjectIds users or roles against which the bulk action will be performed
      * @return <tt>Response</tt> object featuring {@link BulkActionResult} as <tt>Entity</tt>
@@ -167,7 +166,7 @@ public interface ResourceService extends
     @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
     @Consumes({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
     BulkActionResult bulkDeassociation(@PathParam("resourceName") String resourceName,
-            @PathParam("attrType") AttributableType attrType,
+            @PathParam("attrType") SubjectType subjectType,
             @PathParam("type") ResourceDeassociationActionType type, List<SubjectId> subjectIds);
 
     /**

Modified: syncope/trunk/common/src/main/java/org/apache/syncope/common/services/WorkflowService.java
URL: http://svn.apache.org/viewvc/syncope/trunk/common/src/main/java/org/apache/syncope/common/services/WorkflowService.java?rev=1603867&r1=1603866&r2=1603867&view=diff
==============================================================================
--- syncope/trunk/common/src/main/java/org/apache/syncope/common/services/WorkflowService.java (original)
+++ syncope/trunk/common/src/main/java/org/apache/syncope/common/services/WorkflowService.java Thu Jun 19 13:04:39 2014
@@ -30,9 +30,8 @@ import javax.ws.rs.core.Response;
 import org.apache.cxf.jaxrs.model.wadl.Description;
 import org.apache.cxf.jaxrs.model.wadl.Descriptions;
 import org.apache.cxf.jaxrs.model.wadl.DocTarget;
-
-import org.apache.syncope.common.types.AttributableType;
 import org.apache.syncope.common.types.RESTHeaders;
+import org.apache.syncope.common.types.SubjectType;
 
 /**
  * REST operations for workflow definition management.
@@ -43,7 +42,7 @@ public interface WorkflowService extends
     /**
      * Checks whether Activiti is enabled (for users or roles).
      *
-     * @param kind can be USER or ROLE only!
+     * @param kind user or role
      * @return <tt>Response</tt> contains special syncope HTTP header indicating if Activiti is enabled for
      * users / roles
      * @see org.apache.syncope.common.types.RESTHeaders#ACTIVITI_USER_ENABLED
@@ -54,36 +53,36 @@ public interface WorkflowService extends
                 value = "Contains special syncope HTTP header indicating if Activiti is enabled for users / roles")
     })
     @OPTIONS
-    Response getOptions(@PathParam("kind") AttributableType kind);
+    Response getOptions(@PathParam("kind") SubjectType kind);
 
     /**
      * Exports workflow definition for matching kind.
      *
-     * @param kind can be USER or ROLE only!
+     * @param kind user or role
      * @return workflow definition for matching kind
      */
     @GET
     @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
-    Response exportDefinition(@PathParam("kind") AttributableType kind);
+    Response exportDefinition(@PathParam("kind") SubjectType kind);
 
     /**
      * Exports workflow diagram representation.
      *
-     * @param kind can be USER or ROLE only!
+     * @param kind user or role
      * @return workflow diagram representation
      */
     @GET
     @Path("diagram.png")
     @Produces({ RESTHeaders.MEDIATYPE_IMAGE_PNG })
-    Response exportDiagram(@PathParam("kind") AttributableType kind);
+    Response exportDiagram(@PathParam("kind") SubjectType kind);
 
     /**
      * Imports workflow definition for matching kind.
      *
-     * @param kind can be USER or ROLE only!
+     * @param kind user or role
      * @param definition workflow definition for matching kind
      */
     @PUT
     @Consumes({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
-    void importDefinition(@PathParam("kind") AttributableType kind, String definition);
+    void importDefinition(@PathParam("kind") SubjectType kind, String definition);
 }

Modified: syncope/trunk/common/src/main/java/org/apache/syncope/common/to/AbstractAttributableTO.java
URL: http://svn.apache.org/viewvc/syncope/trunk/common/src/main/java/org/apache/syncope/common/to/AbstractAttributableTO.java?rev=1603867&r1=1603866&r2=1603867&view=diff
==============================================================================
--- syncope/trunk/common/src/main/java/org/apache/syncope/common/to/AbstractAttributableTO.java (original)
+++ syncope/trunk/common/src/main/java/org/apache/syncope/common/to/AbstractAttributableTO.java Thu Jun 19 13:04:39 2014
@@ -23,10 +23,8 @@ import com.fasterxml.jackson.annotation.
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.HashMap;
-import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
-import java.util.Set;
 import javax.xml.bind.annotation.XmlElement;
 import javax.xml.bind.annotation.XmlElementWrapper;
 import javax.xml.bind.annotation.XmlType;
@@ -38,22 +36,9 @@ public abstract class AbstractAttributab
 
     private long id;
 
-    private List<AttributeTO> derAttrs;
+    private final List<AttributeTO> derAttrs = new ArrayList<AttributeTO>();
 
-    private List<AttributeTO> virAttrs;
-
-    private Set<String> resources;
-
-    private final List<PropagationStatus> propagationStatusTOs;
-
-    protected AbstractAttributableTO() {
-        super();
-
-        derAttrs = new ArrayList<AttributeTO>();
-        virAttrs = new ArrayList<AttributeTO>();
-        resources = new HashSet<String>();
-        propagationStatusTOs = new ArrayList<PropagationStatus>();
-    }
+    private final List<AttributeTO> virAttrs = new ArrayList<AttributeTO>();
 
     public long getId() {
         return id;
@@ -98,33 +83,4 @@ public abstract class AbstractAttributab
     public List<AttributeTO> getVirAttrs() {
         return virAttrs;
     }
-
-    @XmlElementWrapper(name = "resources")
-    @XmlElement(name = "resource")
-    @JsonProperty("resources")
-    public Set<String> getResources() {
-        return resources;
-    }
-
-    public boolean removePropagationTO(final String resource) {
-        if (resource != null && getPropagationStatusTOs().isEmpty()) {
-            final List<PropagationStatus> toBeRemoved = new ArrayList<PropagationStatus>();
-
-            for (PropagationStatus propagationTO : getPropagationStatusTOs()) {
-                if (resource.equals(propagationTO.getResource())) {
-                    toBeRemoved.add(propagationTO);
-                }
-            }
-
-            return propagationStatusTOs.removeAll(toBeRemoved);
-        }
-        return false;
-    }
-
-    @XmlElementWrapper(name = "propagationStatuses")
-    @XmlElement(name = "propagationStatus")
-    @JsonProperty("propagationStatuses")
-    public List<PropagationStatus> getPropagationStatusTOs() {
-        return propagationStatusTOs;
-    }
 }

Added: syncope/trunk/common/src/main/java/org/apache/syncope/common/to/AbstractSubjectTO.java
URL: http://svn.apache.org/viewvc/syncope/trunk/common/src/main/java/org/apache/syncope/common/to/AbstractSubjectTO.java?rev=1603867&view=auto
==============================================================================
--- syncope/trunk/common/src/main/java/org/apache/syncope/common/to/AbstractSubjectTO.java (added)
+++ syncope/trunk/common/src/main/java/org/apache/syncope/common/to/AbstractSubjectTO.java Thu Jun 19 13:04:39 2014
@@ -0,0 +1,68 @@
+/*
+ * 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.common.to;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlElementWrapper;
+import javax.xml.bind.annotation.XmlType;
+
+@XmlType
+public abstract class AbstractSubjectTO extends AbstractAttributableTO {
+
+    private static final long serialVersionUID = 114668706977919206L;
+
+    private final Set<String> resources = new HashSet<String>();
+
+    private final List<PropagationStatus> propagationStatusTOs = new ArrayList<PropagationStatus>();
+
+    @XmlElementWrapper(name = "resources")
+    @XmlElement(name = "resource")
+    @JsonProperty("resources")
+    public Set<String> getResources() {
+        return resources;
+    }
+
+    public boolean removePropagationTO(final String resource) {
+        if (resource != null && getPropagationStatusTOs().isEmpty()) {
+            final List<PropagationStatus> toBeRemoved = new ArrayList<PropagationStatus>();
+
+            for (PropagationStatus propagationTO : getPropagationStatusTOs()) {
+                if (resource.equals(propagationTO.getResource())) {
+                    toBeRemoved.add(propagationTO);
+                }
+            }
+
+            return propagationStatusTOs.removeAll(toBeRemoved);
+        }
+        return false;
+    }
+
+    @XmlElementWrapper(name = "propagationStatuses")
+    @XmlElement(name = "propagationStatus")
+    @JsonProperty("propagationStatuses")
+    public List<PropagationStatus> getPropagationStatusTOs() {
+        return propagationStatusTOs;
+    }
+
+}

Propchange: syncope/trunk/common/src/main/java/org/apache/syncope/common/to/AbstractSubjectTO.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: syncope/trunk/common/src/main/java/org/apache/syncope/common/to/AbstractSubjectTO.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Propchange: syncope/trunk/common/src/main/java/org/apache/syncope/common/to/AbstractSubjectTO.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: syncope/trunk/common/src/main/java/org/apache/syncope/common/to/ConnObjectTO.java
URL: http://svn.apache.org/viewvc/syncope/trunk/common/src/main/java/org/apache/syncope/common/to/ConnObjectTO.java?rev=1603867&r1=1603866&r2=1603867&view=diff
==============================================================================
--- syncope/trunk/common/src/main/java/org/apache/syncope/common/to/ConnObjectTO.java (original)
+++ syncope/trunk/common/src/main/java/org/apache/syncope/common/to/ConnObjectTO.java Thu Jun 19 13:04:39 2014
@@ -36,7 +36,7 @@ public class ConnObjectTO extends Abstra
 
     private static final long serialVersionUID = 5139554911265442497L;
 
-    private List<AttributeTO> attrs = new ArrayList<AttributeTO>();
+    private final List<AttributeTO> attrs = new ArrayList<AttributeTO>();
 
     @XmlElementWrapper(name = "attributes")
     @XmlElement(name = "attribute")

Modified: syncope/trunk/common/src/main/java/org/apache/syncope/common/to/MembershipTO.java
URL: http://svn.apache.org/viewvc/syncope/trunk/common/src/main/java/org/apache/syncope/common/to/MembershipTO.java?rev=1603867&r1=1603866&r2=1603867&view=diff
==============================================================================
--- syncope/trunk/common/src/main/java/org/apache/syncope/common/to/MembershipTO.java (original)
+++ syncope/trunk/common/src/main/java/org/apache/syncope/common/to/MembershipTO.java Thu Jun 19 13:04:39 2014
@@ -18,13 +18,6 @@
  */
 package org.apache.syncope.common.to;
 
-import com.fasterxml.jackson.annotation.JsonProperty;
-import java.util.Collections;
-import java.util.List;
-import java.util.Set;
-
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlElementWrapper;
 import javax.xml.bind.annotation.XmlRootElement;
 import javax.xml.bind.annotation.XmlType;
 
@@ -53,17 +46,4 @@ public class MembershipTO extends Abstra
     public void setRoleName(String roleName) {
         this.roleName = roleName;
     }
-
-    @Override
-    @XmlElementWrapper(name = "resources")
-    @XmlElement(name = "resource")
-    @JsonProperty("resources")
-    public Set<String> getResources() {
-        return Collections.<String>emptySet();
-    }
-
-    @Override
-    public List<PropagationStatus> getPropagationStatusTOs() {
-        return Collections.<PropagationStatus>emptyList();
-    }
 }

Modified: syncope/trunk/common/src/main/java/org/apache/syncope/common/to/PropagationTaskTO.java
URL: http://svn.apache.org/viewvc/syncope/trunk/common/src/main/java/org/apache/syncope/common/to/PropagationTaskTO.java?rev=1603867&r1=1603866&r2=1603867&view=diff
==============================================================================
--- syncope/trunk/common/src/main/java/org/apache/syncope/common/to/PropagationTaskTO.java (original)
+++ syncope/trunk/common/src/main/java/org/apache/syncope/common/to/PropagationTaskTO.java Thu Jun 19 13:04:39 2014
@@ -20,10 +20,9 @@ package org.apache.syncope.common.to;
 
 import javax.xml.bind.annotation.XmlRootElement;
 import javax.xml.bind.annotation.XmlType;
-
-import org.apache.syncope.common.types.AttributableType;
 import org.apache.syncope.common.types.PropagationMode;
 import org.apache.syncope.common.types.ResourceOperation;
+import org.apache.syncope.common.types.SubjectType;
 
 @XmlRootElement(name = "propagationTask")
 @XmlType
@@ -45,7 +44,7 @@ public class PropagationTaskTO extends A
 
     private String objectClassName;
 
-    private AttributableType subjectType;
+    private SubjectType subjectType;
 
     private Long subjectId;
 
@@ -53,7 +52,7 @@ public class PropagationTaskTO extends A
         return accountId;
     }
 
-    public void setAccountId(String accountId) {
+    public void setAccountId(final String accountId) {
         this.accountId = accountId;
     }
 
@@ -61,7 +60,7 @@ public class PropagationTaskTO extends A
         return oldAccountId;
     }
 
-    public void setOldAccountId(String oldAccountId) {
+    public void setOldAccountId(final String oldAccountId) {
         this.oldAccountId = oldAccountId;
     }
 
@@ -69,7 +68,7 @@ public class PropagationTaskTO extends A
         return propagationMode;
     }
 
-    public void setPropagationMode(PropagationMode propagationMode) {
+    public void setPropagationMode(final PropagationMode propagationMode) {
         this.propagationMode = propagationMode;
     }
 
@@ -77,7 +76,7 @@ public class PropagationTaskTO extends A
         return resource;
     }
 
-    public void setResource(String resource) {
+    public void setResource(final String resource) {
         this.resource = resource;
     }
 
@@ -85,7 +84,7 @@ public class PropagationTaskTO extends A
         return propagationOperation;
     }
 
-    public void setPropagationOperation(ResourceOperation propagationOperation) {
+    public void setPropagationOperation(final ResourceOperation propagationOperation) {
 
         this.propagationOperation = propagationOperation;
     }
@@ -94,7 +93,7 @@ public class PropagationTaskTO extends A
         return xmlAttributes;
     }
 
-    public void setXmlAttributes(String xmlAttributes) {
+    public void setXmlAttributes(final String xmlAttributes) {
         this.xmlAttributes = xmlAttributes;
     }
 
@@ -102,15 +101,15 @@ public class PropagationTaskTO extends A
         return objectClassName;
     }
 
-    public void setObjectClassName(String objectClassName) {
+    public void setObjectClassName(final String objectClassName) {
         this.objectClassName = objectClassName;
     }
 
-    public AttributableType getSubjectType() {
+    public SubjectType getSubjectType() {
         return subjectType;
     }
 
-    public void setSubjectType(AttributableType subjectType) {
+    public void setSubjectType(final SubjectType subjectType) {
         this.subjectType = subjectType;
     }
 
@@ -118,7 +117,7 @@ public class PropagationTaskTO extends A
         return subjectId;
     }
 
-    public void setSubjectId(Long subjectId) {
+    public void setSubjectId(final Long subjectId) {
         this.subjectId = subjectId;
     }
 }

Modified: syncope/trunk/common/src/main/java/org/apache/syncope/common/to/RoleTO.java
URL: http://svn.apache.org/viewvc/syncope/trunk/common/src/main/java/org/apache/syncope/common/to/RoleTO.java?rev=1603867&r1=1603866&r2=1603867&view=diff
==============================================================================
--- syncope/trunk/common/src/main/java/org/apache/syncope/common/to/RoleTO.java (original)
+++ syncope/trunk/common/src/main/java/org/apache/syncope/common/to/RoleTO.java Thu Jun 19 13:04:39 2014
@@ -30,8 +30,8 @@ import javax.xml.bind.annotation.XmlType
 
 @XmlRootElement(name = "role")
 @XmlType
-@JsonIgnoreProperties({"displayName"})
-public class RoleTO extends AbstractAttributableTO {
+@JsonIgnoreProperties({ "displayName" })
+public class RoleTO extends AbstractSubjectTO {
 
     private static final long serialVersionUID = -7785920258290147542L;
 

Modified: syncope/trunk/common/src/main/java/org/apache/syncope/common/to/UserTO.java
URL: http://svn.apache.org/viewvc/syncope/trunk/common/src/main/java/org/apache/syncope/common/to/UserTO.java?rev=1603867&r1=1603866&r2=1603867&view=diff
==============================================================================
--- syncope/trunk/common/src/main/java/org/apache/syncope/common/to/UserTO.java (original)
+++ syncope/trunk/common/src/main/java/org/apache/syncope/common/to/UserTO.java Thu Jun 19 13:04:39 2014
@@ -36,7 +36,7 @@ import org.apache.commons.lang3.builder.
 
 @XmlRootElement(name = "user")
 @XmlType
-public class UserTO extends AbstractAttributableTO {
+public class UserTO extends AbstractSubjectTO {
 
     private static final long serialVersionUID = 7791304495192615740L;
 

Modified: syncope/trunk/common/src/main/java/org/apache/syncope/common/types/IntMappingType.java
URL: http://svn.apache.org/viewvc/syncope/trunk/common/src/main/java/org/apache/syncope/common/types/IntMappingType.java?rev=1603867&r1=1603866&r2=1603867&view=diff
==============================================================================
--- syncope/trunk/common/src/main/java/org/apache/syncope/common/types/IntMappingType.java (original)
+++ syncope/trunk/common/src/main/java/org/apache/syncope/common/types/IntMappingType.java Thu Jun 19 13:04:39 2014
@@ -102,6 +102,7 @@ public enum IntMappingType {
                 enumset = EnumSet.allOf(MembershipMappingType.class);
                 break;
 
+            case USER:
             default:
                 enumset = EnumSet.allOf(UserMappingType.class);
         }

Copied: syncope/trunk/common/src/main/java/org/apache/syncope/common/types/SubjectType.java (from r1603812, syncope/trunk/common/src/main/java/org/apache/syncope/common/types/AttributableType.java)
URL: http://svn.apache.org/viewvc/syncope/trunk/common/src/main/java/org/apache/syncope/common/types/SubjectType.java?p2=syncope/trunk/common/src/main/java/org/apache/syncope/common/types/SubjectType.java&p1=syncope/trunk/common/src/main/java/org/apache/syncope/common/types/AttributableType.java&r1=1603812&r2=1603867&rev=1603867&view=diff
==============================================================================
--- syncope/trunk/common/src/main/java/org/apache/syncope/common/types/AttributableType.java (original)
+++ syncope/trunk/common/src/main/java/org/apache/syncope/common/types/SubjectType.java Thu Jun 19 13:04:39 2014
@@ -21,10 +21,14 @@ package org.apache.syncope.common.types;
 import javax.xml.bind.annotation.XmlEnum;
 
 @XmlEnum
-public enum AttributableType {
+public enum SubjectType {
 
     USER,
-    ROLE,
-    MEMBERSHIP
+    ROLE;
 
+    public AttributableType asAttributableType() {
+        return this == USER
+                ? AttributableType.USER
+                : AttributableType.ROLE;
+    }
 }

Modified: syncope/trunk/common/src/main/java/org/apache/syncope/common/util/AttributableOperations.java
URL: http://svn.apache.org/viewvc/syncope/trunk/common/src/main/java/org/apache/syncope/common/util/AttributableOperations.java?rev=1603867&r1=1603866&r2=1603867&view=diff
==============================================================================
--- syncope/trunk/common/src/main/java/org/apache/syncope/common/util/AttributableOperations.java (original)
+++ syncope/trunk/common/src/main/java/org/apache/syncope/common/util/AttributableOperations.java Thu Jun 19 13:04:39 2014
@@ -27,12 +27,14 @@ import java.util.Map;
 import java.util.Set;
 import org.apache.commons.lang3.SerializationUtils;
 import org.apache.syncope.common.mod.AbstractAttributableMod;
+import org.apache.syncope.common.mod.AbstractSubjectMod;
 import org.apache.syncope.common.mod.AttributeMod;
 import org.apache.syncope.common.mod.MembershipMod;
 import org.apache.syncope.common.mod.ReferenceMod;
 import org.apache.syncope.common.mod.RoleMod;
 import org.apache.syncope.common.mod.UserMod;
 import org.apache.syncope.common.to.AbstractAttributableTO;
+import org.apache.syncope.common.to.AbstractSubjectTO;
 import org.apache.syncope.common.to.AttributeTO;
 import org.apache.syncope.common.to.MembershipTO;
 import org.apache.syncope.common.to.RoleTO;
@@ -178,18 +180,22 @@ public final class AttributableOperation
         populate(updatedAttrs, originalAttrs, result, true);
 
         // 5. resources
-        Set<String> updatedRes = new HashSet<String>(updated.getResources());
-        Set<String> originalRes = new HashSet<String>(original.getResources());
+        if (original instanceof AbstractSubjectTO && updated instanceof AbstractSubjectTO
+                && result instanceof AbstractSubjectMod) {
 
-        updatedRes.removeAll(originalRes);
-        result.getResourcesToAdd().clear();
-        result.getResourcesToAdd().addAll(updatedRes);
+            Set<String> updatedRes = new HashSet<String>(((AbstractSubjectTO) updated).getResources());
+            Set<String> originalRes = new HashSet<String>(((AbstractSubjectTO) original).getResources());
 
-        originalRes.removeAll(updated.getResources());
+            updatedRes.removeAll(originalRes);
+            ((AbstractSubjectMod) result).getResourcesToAdd().clear();
+            ((AbstractSubjectMod) result).getResourcesToAdd().addAll(updatedRes);
 
-        if (!incremental) {
-            result.getResourcesToRemove().clear();
-            result.getResourcesToRemove().addAll(originalRes);
+            originalRes.removeAll(((AbstractSubjectTO) updated).getResources());
+
+            if (!incremental) {
+                ((AbstractSubjectMod) result).getResourcesToRemove().clear();
+                ((AbstractSubjectMod) result).getResourcesToRemove().addAll(originalRes);
+            }
         }
     }
 
@@ -266,7 +272,6 @@ public final class AttributableOperation
                         membMod.getAttrsToRemove().add(attrMod.getSchema());
                     }
                 }
-                membMod.getResourcesToAdd().addAll(entry.getValue().getResources());
             }
 
             if (!membMod.isEmpty()) {
@@ -450,8 +455,10 @@ public final class AttributableOperation
                 mod.getVirAttrsToRemove(), mod.getVirAttrsToUpdate()));
 
         // 4. resources
-        result.getResources().removeAll(mod.getResourcesToRemove());
-        result.getResources().addAll(mod.getResourcesToAdd());
+        if (result instanceof AbstractSubjectTO && mod instanceof AbstractSubjectMod) {
+            ((AbstractSubjectTO) result).getResources().removeAll(((AbstractSubjectMod) mod).getResourcesToRemove());
+            ((AbstractSubjectTO) result).getResources().addAll(((AbstractSubjectMod) mod).getResourcesToAdd());
+        }
     }
 
     public static UserTO apply(final UserTO userTO, final UserMod userMod) {

Modified: syncope/trunk/console/src/main/java/org/apache/syncope/console/SyncopeSession.java
URL: http://svn.apache.org/viewvc/syncope/trunk/console/src/main/java/org/apache/syncope/console/SyncopeSession.java?rev=1603867&r1=1603866&r2=1603867&view=diff
==============================================================================
--- syncope/trunk/console/src/main/java/org/apache/syncope/console/SyncopeSession.java (original)
+++ syncope/trunk/console/src/main/java/org/apache/syncope/console/SyncopeSession.java Thu Jun 19 13:04:39 2014
@@ -28,7 +28,7 @@ import javax.ws.rs.core.MediaType;
 import org.apache.commons.lang3.builder.HashCodeBuilder;
 import org.apache.syncope.client.SyncopeClient;
 import org.apache.syncope.client.SyncopeClientFactoryBean;
-import org.apache.syncope.common.types.AttributableType;
+import org.apache.syncope.common.types.SubjectType;
 import org.apache.wicket.Session;
 import org.apache.wicket.authroles.authorization.strategies.role.Roles;
 import org.apache.wicket.protocol.http.WebApplication;
@@ -90,7 +90,7 @@ public class SyncopeSession extends WebS
         return client.isSelfRegistrationAllowed();
     }
 
-    public boolean isActivitiEnabledFor(final AttributableType type) {
+    public boolean isActivitiEnabledFor(final SubjectType type) {
         SyncopeClient client = clients.isEmpty()
                 ? clientFactory.createAnonymous()
                 : clients.values().iterator().next();

Modified: syncope/trunk/console/src/main/java/org/apache/syncope/console/commons/status/StatusUtils.java
URL: http://svn.apache.org/viewvc/syncope/trunk/console/src/main/java/org/apache/syncope/console/commons/status/StatusUtils.java?rev=1603867&r1=1603866&r2=1603867&view=diff
==============================================================================
--- syncope/trunk/console/src/main/java/org/apache/syncope/console/commons/status/StatusUtils.java (original)
+++ syncope/trunk/console/src/main/java/org/apache/syncope/console/commons/status/StatusUtils.java Thu Jun 19 13:04:39 2014
@@ -27,6 +27,7 @@ import java.util.List;
 import java.util.Map;
 import org.apache.syncope.common.mod.StatusMod;
 import org.apache.syncope.common.to.AbstractAttributableTO;
+import org.apache.syncope.common.to.AbstractSubjectTO;
 import org.apache.syncope.common.to.AttributeTO;
 import org.apache.syncope.common.to.ConnObjectTO;
 import org.apache.syncope.console.commons.ConnIdSpecialAttributeName;
@@ -59,38 +60,38 @@ public class StatusUtils implements Seri
         this.restClient = restClient;
     }
 
-    public List<ConnObjectWrapper> getConnectorObjects(final AbstractAttributableTO attributable) {
+    public List<ConnObjectWrapper> getConnectorObjects(final AbstractSubjectTO subject) {
         final List<ConnObjectWrapper> objects = new ArrayList<ConnObjectWrapper>();
-        objects.addAll(getConnectorObjects(attributable, attributable.getResources()));
+        objects.addAll(getConnectorObjects(subject, subject.getResources()));
         return objects;
     }
 
     public List<ConnObjectWrapper> getConnectorObjects(
-            final Collection<AbstractAttributableTO> attributables, final Collection<String> resources) {
+            final Collection<AbstractSubjectTO> subjects, final Collection<String> resources) {
 
         final List<ConnObjectWrapper> objects = new ArrayList<ConnObjectWrapper>();
 
-        for (AbstractAttributableTO attributableTO : attributables) {
-            objects.addAll(getConnectorObjects(attributableTO, resources));
+        for (AbstractSubjectTO subject : subjects) {
+            objects.addAll(getConnectorObjects(subject, resources));
         }
 
         return objects;
     }
 
     private List<ConnObjectWrapper> getConnectorObjects(
-            final AbstractAttributableTO attributable, final Collection<String> resources) {
+            final AbstractSubjectTO subject, final Collection<String> resources) {
 
         final List<ConnObjectWrapper> objects = new ArrayList<ConnObjectWrapper>();
 
         for (String resourceName : resources) {
             ConnObjectTO objectTO = null;
             try {
-                objectTO = restClient.getConnectorObject(resourceName, attributable.getId());
+                objectTO = restClient.getConnectorObject(resourceName, subject.getId());
             } catch (Exception e) {
-                LOG.warn("ConnObject '{}' not found on resource '{}'", attributable.getId(), resourceName);
+                LOG.warn("ConnObject '{}' not found on resource '{}'", subject.getId(), resourceName);
             }
 
-            objects.add(new ConnObjectWrapper(attributable, resourceName, objectTO));
+            objects.add(new ConnObjectWrapper(subject, resourceName, objectTO));
         }
 
         return objects;

Modified: syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/ProvisioningModalPage.java
URL: http://svn.apache.org/viewvc/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/ProvisioningModalPage.java?rev=1603867&r1=1603866&r2=1603867&view=diff
==============================================================================
--- syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/ProvisioningModalPage.java (original)
+++ syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/ProvisioningModalPage.java Thu Jun 19 13:04:39 2014
@@ -25,6 +25,7 @@ import java.util.List;
 import org.apache.syncope.client.SyncopeClient;
 import org.apache.syncope.common.to.AbstractAttributableTO;
 import org.apache.syncope.common.reqres.BulkActionResult;
+import org.apache.syncope.common.to.AbstractSubjectTO;
 import org.apache.syncope.common.to.ResourceTO;
 import org.apache.syncope.common.to.RoleTO;
 import org.apache.syncope.common.to.UserTO;
@@ -190,17 +191,17 @@ public class ProvisioningModalPage<T ext
         public List<StatusBean> getStatusBeans() {
             final String fiql = SyncopeClient.getUserSearchConditionBuilder().hasResources(resourceTO.getName()).query();
 
-            final List<T> attributables = new ArrayList<T>();
+            final List<T> subjects = new ArrayList<T>();
             if (UserTO.class.isAssignableFrom(typeRef)) {
-                attributables.addAll((List<T>) userRestClient.search(fiql, 1, ROWS_PER_PAGE,
+                subjects.addAll((List<T>) userRestClient.search(fiql, 1, ROWS_PER_PAGE,
                         new SortParam<String>("id", true)));
             } else {
-                attributables.addAll((List<T>) roleRestClient.search(fiql, 1, ROWS_PER_PAGE,
+                subjects.addAll((List<T>) roleRestClient.search(fiql, 1, ROWS_PER_PAGE,
                         new SortParam<String>("id", true)));
             }
 
             final List<ConnObjectWrapper> connObjects = statusUtils.getConnectorObjects(
-                    (List<AbstractAttributableTO>) attributables, Collections.<String>singleton(resourceTO.getName()));
+                    (List<AbstractSubjectTO>) subjects, Collections.<String>singleton(resourceTO.getName()));
 
             final List<StatusBean> statusBeans = new ArrayList<StatusBean>(connObjects.size() + 1);
             final LinkedHashMap<String, StatusBean> initialStatusBeanMap = new LinkedHashMap<String, StatusBean>(

Modified: syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/ResultStatusModalPage.java
URL: http://svn.apache.org/viewvc/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/ResultStatusModalPage.java?rev=1603867&r1=1603866&r2=1603867&view=diff
==============================================================================
--- syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/ResultStatusModalPage.java (original)
+++ syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/ResultStatusModalPage.java Thu Jun 19 13:04:39 2014
@@ -26,7 +26,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 import org.apache.commons.lang3.StringUtils;
-import org.apache.syncope.common.to.AbstractAttributableTO;
+import org.apache.syncope.common.to.AbstractSubjectTO;
 import org.apache.syncope.common.to.AttributeTO;
 import org.apache.syncope.common.to.ConnObjectTO;
 import org.apache.syncope.common.to.PropagationStatus;
@@ -67,7 +67,7 @@ public class ResultStatusModalPage exten
     @SpringBean(name = "anonymousUser")
     private String anonymousUser;
 
-    private final AbstractAttributableTO attributable;
+    private final AbstractSubjectTO subject;
 
     private final UserModalPage.Mode mode;
 
@@ -84,11 +84,11 @@ public class ResultStatusModalPage exten
 
         private UserModalPage.Mode mode;
 
-        private AbstractAttributableTO attributable;
+        private AbstractSubjectTO subject;
 
-        public Builder(final ModalWindow window, final AbstractAttributableTO attributable) {
+        public Builder(final ModalWindow window, final AbstractSubjectTO attributable) {
             this.window = window;
-            this.attributable = attributable;
+            this.subject = attributable;
         }
 
         public ResultStatusModalPage.Builder mode(final UserModalPage.Mode mode) {
@@ -103,7 +103,7 @@ public class ResultStatusModalPage exten
 
     private ResultStatusModalPage(final Builder builder) {
         super();
-        this.attributable = builder.attributable;
+        this.subject = builder.subject;
         statusUtils = new StatusUtils(this.userRestClient);
         if (builder.mode == null) {
             this.mode = UserModalPage.Mode.ADMIN;
@@ -131,14 +131,14 @@ public class ResultStatusModalPage exten
 
             List<PropagationStatus> propagations = new ArrayList<PropagationStatus>();
             propagations.add(syncope);
-            propagations.addAll(attributable.getPropagationStatusTOs());
+            propagations.addAll(subject.getPropagationStatusTOs());
 
             fragment.add(new Label("info",
-                    ((attributable instanceof UserTO) && ((UserTO) attributable).getUsername() != null)
-                    ? ((UserTO) attributable).getUsername()
-                    : ((attributable instanceof RoleTO) && ((RoleTO) attributable).getName() != null)
-                    ? ((RoleTO) attributable).getName()
-                    : String.valueOf(attributable.getId())));
+                    ((subject instanceof UserTO) && ((UserTO) subject).getUsername() != null)
+                    ? ((UserTO) subject).getUsername()
+                    : ((subject instanceof RoleTO) && ((RoleTO) subject).getName() != null)
+                    ? ((RoleTO) subject).getName()
+                    : String.valueOf(subject.getId())));
 
             final ListView<PropagationStatus> propRes = new ListView<PropagationStatus>("resources",
                     propagations) {
@@ -266,7 +266,7 @@ public class ResultStatusModalPage exten
 
         // sorted in reversed presentation order
         final List<String> head = new ArrayList<String>();
-        if (attributable instanceof UserTO) {
+        if (subject instanceof UserTO) {
             head.add(ConnIdSpecialAttributeName.PASSWORD);
             head.add(ConnIdSpecialAttributeName.ENABLE);
         }
@@ -285,7 +285,7 @@ public class ResultStatusModalPage exten
         attributes.addAll(beforeAttrMap.keySet());
         attributes.addAll(afterAttrMap.keySet());
 
-        if (!(attributable instanceof UserTO)) {
+        if (!(subject instanceof UserTO)) {
             attributes.remove(ConnIdSpecialAttributeName.PASSWORD);
             attributes.remove(ConnIdSpecialAttributeName.ENABLE);
         }
@@ -381,7 +381,7 @@ public class ResultStatusModalPage exten
         final Image image;
         final String alt, title;
         switch (statusUtils.getStatusBean(
-                attributable, resourceName, objectTO, this.attributable instanceof RoleTO).getStatus()) {
+                subject, resourceName, objectTO, this.subject instanceof RoleTO).getStatus()) {
 
             case ACTIVE:
                 image = new Image("status", IMG_STATUSES + Status.ACTIVE.toString()

Modified: syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/StatusModalPage.java
URL: http://svn.apache.org/viewvc/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/StatusModalPage.java?rev=1603867&r1=1603866&r2=1603867&view=diff
==============================================================================
--- syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/StatusModalPage.java (original)
+++ syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/StatusModalPage.java Thu Jun 19 13:04:39 2014
@@ -24,17 +24,17 @@ import java.util.Collections;
 import java.util.List;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.syncope.common.reqres.BulkActionResult;
-import org.apache.syncope.common.to.AbstractAttributableTO;
+import org.apache.syncope.common.to.AbstractSubjectTO;
 import org.apache.syncope.common.to.ResourceTO;
 import org.apache.syncope.common.to.RoleTO;
 import org.apache.syncope.common.to.UserTO;
 import org.apache.syncope.common.types.ResourceAssociationActionType;
 import org.apache.syncope.console.commons.Constants;
-import org.apache.syncope.console.commons.status.StatusBean;
-import org.apache.syncope.console.commons.status.StatusUtils;
+import org.apache.syncope.console.commons.status.AbstractStatusBeanProvider;
 import org.apache.syncope.console.commons.status.ConnObjectWrapper;
 import org.apache.syncope.console.commons.status.Status;
-import org.apache.syncope.console.commons.status.AbstractStatusBeanProvider;
+import org.apache.syncope.console.commons.status.StatusBean;
+import org.apache.syncope.console.commons.status.StatusUtils;
 import org.apache.syncope.console.pages.panels.ActionDataTablePanel;
 import org.apache.syncope.console.wicket.ajax.markup.html.ClearIndicatingAjaxButton;
 import org.apache.syncope.console.wicket.markup.html.form.ActionLink;
@@ -60,11 +60,11 @@ import org.apache.wicket.model.Model;
 import org.apache.wicket.model.ResourceModel;
 import org.apache.wicket.model.StringResourceModel;
 
-public class StatusModalPage<T extends AbstractAttributableTO> extends AbstractStatusModalPage {
+public class StatusModalPage<T extends AbstractSubjectTO> extends AbstractStatusModalPage {
 
     private static final long serialVersionUID = -9148734710505211261L;
 
-    private final AbstractAttributableTO attributableTO;
+    private final AbstractSubjectTO subjectTO;
 
     private int rowsPerPage = 10;
 
@@ -99,14 +99,15 @@ public class StatusModalPage<T extends A
     public StatusModalPage(
             final PageReference pageRef,
             final ModalWindow window,
-            final AbstractAttributableTO attributableTO) {
+            final AbstractSubjectTO attributableTO) {
+
         this(pageRef, window, attributableTO, false);
     }
 
     public StatusModalPage(
             final PageReference pageRef,
             final ModalWindow window,
-            final AbstractAttributableTO attributableTO,
+            final AbstractSubjectTO subjectTO,
             final boolean statusOnly) {
 
         super();
@@ -114,9 +115,9 @@ public class StatusModalPage<T extends A
         this.pageRef = pageRef;
         this.window = window;
         this.statusOnly = statusOnly;
-        this.attributableTO = attributableTO;
+        this.subjectTO = subjectTO;
 
-        statusUtils = new StatusUtils(attributableTO instanceof UserTO ? userRestClient : roleRestClient);
+        statusUtils = new StatusUtils(subjectTO instanceof UserTO ? userRestClient : roleRestClient);
 
         columns = new ArrayList<IColumn<StatusBean, String>>();
         columns.add(new AbstractColumn<StatusBean, String>(
@@ -190,7 +191,7 @@ public class StatusModalPage<T extends A
                 };
         table.setOutputMarkupId(true);
 
-        final String pageId = attributableTO instanceof RoleTO ? "Roles" : "Users";
+        final String pageId = subjectTO instanceof RoleTO ? "Roles" : "Users";
 
         final Fragment pwdMgtFragment = new Fragment("pwdMgtFields", "pwdMgtFragment", this);
         addOrReplace(pwdMgtFragment);
@@ -259,7 +260,7 @@ public class StatusModalPage<T extends A
                 public void onClick(final AjaxRequestTarget target) {
                     try {
                         userRestClient.reactivate(
-                                attributableTO.getId(), new ArrayList<StatusBean>(table.getModelObject()));
+                                subjectTO.getId(), new ArrayList<StatusBean>(table.getModelObject()));
 
                         ((BasePage) pageRef.getPage()).setModalResult(true);
 
@@ -280,7 +281,7 @@ public class StatusModalPage<T extends A
                 public void onClick(final AjaxRequestTarget target) {
                     try {
                         userRestClient.suspend(
-                                attributableTO.getId(), new ArrayList<StatusBean>(table.getModelObject()));
+                                subjectTO.getId(), new ArrayList<StatusBean>(table.getModelObject()));
 
                         if (pageRef.getPage() instanceof BasePage) {
                             ((BasePage) pageRef.getPage()).setModalResult(true);
@@ -302,12 +303,12 @@ public class StatusModalPage<T extends A
                 @Override
                 public void onClick(final AjaxRequestTarget target) {
                     try {
-                        if (attributableTO instanceof UserTO) {
+                        if (subjectTO instanceof UserTO) {
                             userRestClient.unlink(
-                                    attributableTO.getId(), new ArrayList<StatusBean>(table.getModelObject()));
+                                    subjectTO.getId(), new ArrayList<StatusBean>(table.getModelObject()));
                         } else {
                             roleRestClient.unlink(
-                                    attributableTO.getId(), new ArrayList<StatusBean>(table.getModelObject()));
+                                    subjectTO.getId(), new ArrayList<StatusBean>(table.getModelObject()));
                         }
 
                         ((BasePage) pageRef.getPage()).setModalResult(true);
@@ -327,12 +328,12 @@ public class StatusModalPage<T extends A
                 @Override
                 public void onClick(final AjaxRequestTarget target) {
                     try {
-                        if (attributableTO instanceof UserTO) {
+                        if (subjectTO instanceof UserTO) {
                             userRestClient.link(
-                                    attributableTO.getId(), new ArrayList<StatusBean>(table.getModelObject()));
+                                    subjectTO.getId(), new ArrayList<StatusBean>(table.getModelObject()));
                         } else {
                             roleRestClient.link(
-                                    attributableTO.getId(), new ArrayList<StatusBean>(table.getModelObject()));
+                                    subjectTO.getId(), new ArrayList<StatusBean>(table.getModelObject()));
                         }
 
                         ((BasePage) pageRef.getPage()).setModalResult(true);
@@ -353,12 +354,12 @@ public class StatusModalPage<T extends A
                 public void onClick(final AjaxRequestTarget target) {
                     try {
                         final BulkActionResult bulkActionResult;
-                        if (attributableTO instanceof UserTO) {
+                        if (subjectTO instanceof UserTO) {
                             bulkActionResult = userRestClient.deprovision(
-                                    attributableTO.getId(), new ArrayList<StatusBean>(table.getModelObject()));
+                                    subjectTO.getId(), new ArrayList<StatusBean>(table.getModelObject()));
                         } else {
                             bulkActionResult = roleRestClient.deprovision(
-                                    attributableTO.getId(), new ArrayList<StatusBean>(table.getModelObject()));
+                                    subjectTO.getId(), new ArrayList<StatusBean>(table.getModelObject()));
                         }
 
                         ((BasePage) pageRef.getPage()).setModalResult(true);
@@ -378,13 +379,13 @@ public class StatusModalPage<T extends A
                 @Override
                 public void onClick(final AjaxRequestTarget target) {
 
-                    if (attributableTO instanceof UserTO) {
+                    if (subjectTO instanceof UserTO) {
                         StatusModalPage.this.passwordManagement(
                                 target, ResourceAssociationActionType.PROVISION, table.getModelObject());
                     } else {
                         try {
                             final BulkActionResult bulkActionResult = roleRestClient.provision(
-                                    attributableTO.getId(), new ArrayList<StatusBean>(table.getModelObject()));
+                                    subjectTO.getId(), new ArrayList<StatusBean>(table.getModelObject()));
 
                             ((BasePage) pageRef.getPage()).setModalResult(true);
                             loadBulkActionResultPage(table.getModelObject(), bulkActionResult);
@@ -395,7 +396,7 @@ public class StatusModalPage<T extends A
                         }
                     }
                 }
-            }.feedbackPanelAutomaticReload(!(attributableTO instanceof UserTO)), ActionLink.ActionType.PROVISION, pageId);
+            }.feedbackPanelAutomaticReload(!(subjectTO instanceof UserTO)), ActionLink.ActionType.PROVISION, pageId);
 
             table.addAction(new ActionLink() {
 
@@ -405,12 +406,12 @@ public class StatusModalPage<T extends A
                 public void onClick(final AjaxRequestTarget target) {
                     try {
                         final BulkActionResult bulkActionResult;
-                        if (attributableTO instanceof UserTO) {
+                        if (subjectTO instanceof UserTO) {
                             bulkActionResult = userRestClient.unassign(
-                                    attributableTO.getId(), new ArrayList<StatusBean>(table.getModelObject()));
+                                    subjectTO.getId(), new ArrayList<StatusBean>(table.getModelObject()));
                         } else {
                             bulkActionResult = roleRestClient.unassign(
-                                    attributableTO.getId(), new ArrayList<StatusBean>(table.getModelObject()));
+                                    subjectTO.getId(), new ArrayList<StatusBean>(table.getModelObject()));
                         }
 
                         ((BasePage) pageRef.getPage()).setModalResult(true);
@@ -429,13 +430,13 @@ public class StatusModalPage<T extends A
 
                 @Override
                 public void onClick(final AjaxRequestTarget target) {
-                    if (attributableTO instanceof UserTO) {
+                    if (subjectTO instanceof UserTO) {
                         StatusModalPage.this.passwordManagement(
                                 target, ResourceAssociationActionType.ASSIGN, table.getModelObject());
                     } else {
                         try {
                             final BulkActionResult bulkActionResult = roleRestClient.assign(
-                                    attributableTO.getId(), new ArrayList<StatusBean>(table.getModelObject()));
+                                    subjectTO.getId(), new ArrayList<StatusBean>(table.getModelObject()));
 
                             ((BasePage) pageRef.getPage()).setModalResult(true);
                             loadBulkActionResultPage(table.getModelObject(), bulkActionResult);
@@ -446,7 +447,7 @@ public class StatusModalPage<T extends A
                         }
                     }
                 }
-            }.feedbackPanelAutomaticReload(!(attributableTO instanceof UserTO)), ActionLink.ActionType.ASSIGN, pageId);
+            }.feedbackPanelAutomaticReload(!(subjectTO instanceof UserTO)), ActionLink.ActionType.ASSIGN, pageId);
         }
 
         table.addCancelButton(window);
@@ -469,32 +470,32 @@ public class StatusModalPage<T extends A
                 resources.add(resourceTO.getName());
             }
 
-            final List<ConnObjectWrapper> connObjects = statusUtils.getConnectorObjects(attributableTO);
+            final List<ConnObjectWrapper> connObjects = statusUtils.getConnectorObjects(subjectTO);
 
             final List<StatusBean> statusBeans = new ArrayList<StatusBean>(connObjects.size() + 1);
 
             for (ConnObjectWrapper entry : connObjects) {
                 final StatusBean statusBean = statusUtils.getStatusBean(
-                        attributableTO,
+                        subjectTO,
                         entry.getResourceName(),
                         entry.getConnObjectTO(),
-                        attributableTO instanceof RoleTO);
+                        subjectTO instanceof RoleTO);
 
                 statusBeans.add(statusBean);
                 resources.remove(entry.getResourceName());
             }
 
             if (statusOnly) {
-                final StatusBean syncope = new StatusBean(attributableTO, "Syncope");
+                final StatusBean syncope = new StatusBean(subjectTO, "Syncope");
 
-                syncope.setAccountLink(((UserTO) attributableTO).getUsername());
+                syncope.setAccountLink(((UserTO) subjectTO).getUsername());
 
                 Status syncopeStatus = Status.UNDEFINED;
-                if (((UserTO) attributableTO).getStatus() != null) {
+                if (((UserTO) subjectTO).getStatus() != null) {
                     try {
-                        syncopeStatus = Status.valueOf(((UserTO) attributableTO).getStatus().toUpperCase());
+                        syncopeStatus = Status.valueOf(((UserTO) subjectTO).getStatus().toUpperCase());
                     } catch (IllegalArgumentException e) {
-                        LOG.warn("Unexpected status found: {}", ((UserTO) attributableTO).getStatus(), e);
+                        LOG.warn("Unexpected status found: {}", ((UserTO) subjectTO).getStatus(), e);
                     }
                 }
                 syncope.setStatus(syncopeStatus);
@@ -503,10 +504,10 @@ public class StatusModalPage<T extends A
             } else {
                 for (String resource : resources) {
                     final StatusBean statusBean = statusUtils.getStatusBean(
-                            attributableTO,
+                            subjectTO,
                             resource,
                             null,
-                            attributableTO instanceof RoleTO);
+                            subjectTO instanceof RoleTO);
 
                     statusBean.setLinked(false);
                     statusBeans.add(statusBean);
@@ -539,14 +540,14 @@ public class StatusModalPage<T extends A
                             switch (type) {
                                 case ASSIGN:
                                     bulkActionResult = userRestClient.assign(
-                                            attributableTO.getId(),
+                                            subjectTO.getId(),
                                             new ArrayList<StatusBean>(selection),
                                             changepwd.getModelObject(),
                                             password.getModelObject());
                                     break;
                                 case PROVISION:
                                     bulkActionResult = userRestClient.provision(
-                                            attributableTO.getId(),
+                                            subjectTO.getId(),
                                             new ArrayList<StatusBean>(selection),
                                             changepwd.getModelObject(),
                                             password.getModelObject());
@@ -590,16 +591,16 @@ public class StatusModalPage<T extends A
         }
 
         final List<ConnObjectWrapper> connObjects =
-                statusUtils.getConnectorObjects(Collections.singletonList(attributableTO), resources);
+                statusUtils.getConnectorObjects(Collections.singletonList(subjectTO), resources);
 
         final List<StatusBean> statusBeans = new ArrayList<StatusBean>(connObjects.size());
 
         for (ConnObjectWrapper entry : connObjects) {
             final StatusBean statusBean = statusUtils.getStatusBean(
-                    attributableTO,
+                    subjectTO,
                     entry.getResourceName(),
                     entry.getConnObjectTO(),
-                    attributableTO instanceof RoleTO);
+                    subjectTO instanceof RoleTO);
 
             statusBeans.add(statusBean);
         }

Modified: syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/AbstractSearchPanel.java
URL: http://svn.apache.org/viewvc/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/AbstractSearchPanel.java?rev=1603867&r1=1603866&r2=1603867&view=diff
==============================================================================
--- syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/AbstractSearchPanel.java (original)
+++ syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/AbstractSearchPanel.java Thu Jun 19 13:04:39 2014
@@ -36,6 +36,7 @@ import org.apache.syncope.common.search.
 import org.apache.syncope.common.search.UserFiqlSearchConditionBuilder;
 import org.apache.syncope.common.to.ResourceTO;
 import org.apache.syncope.common.types.AttributableType;
+import org.apache.syncope.common.types.SubjectType;
 import org.apache.syncope.console.rest.AuthRestClient;
 import org.apache.syncope.console.rest.ResourceRestClient;
 import org.apache.syncope.console.rest.SchemaRestClient;
@@ -157,7 +158,8 @@ public abstract class AbstractSearchPane
 
             @Override
             protected List<String> load() {
-                return SearchableFields.get(attributableType);
+                return SearchableFields.get(attributableType == AttributableType.USER
+                        ? SubjectType.USER : SubjectType.ROLE);
             }
         };
 

Modified: syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/NotificationTasks.java
URL: http://svn.apache.org/viewvc/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/NotificationTasks.java?rev=1603867&r1=1603866&r2=1603867&view=diff
==============================================================================
--- syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/NotificationTasks.java (original)
+++ syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/NotificationTasks.java Thu Jun 19 13:04:39 2014
@@ -61,10 +61,10 @@ public class NotificationTasks extends A
     private ModalWindow window;
 
     private AjaxDataTablePanel<AbstractTaskTO, String> table;
-    
+
     public NotificationTasks(final String id, final PageReference pageRef) {
         super(id, pageRef);
-        
+
         container = new WebMarkupContainer("container");
         container.setOutputMarkupId(true);
         add(container);
@@ -103,8 +103,10 @@ public class NotificationTasks extends A
         window.setInitialWidth(WIN_WIDTH);
         window.setCookieName(VIEW_TASK_WIN_COOKIE_NAME);
 
+        @SuppressWarnings("rawtypes")
         final Form paginatorForm = new Form("PaginatorForm");
 
+        @SuppressWarnings({ "unchecked", "rawtypes" })
         final DropDownChoice rowsChooser = new DropDownChoice("rowsChooser", new PropertyModel(this, "paginatorRows"),
                 prefMan.getPaginatorChoices());
 
@@ -239,7 +241,7 @@ public class NotificationTasks extends A
                 return panel;
             }
         });
-        
+
         return columns;
     }
 

Modified: syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/PropagationTasks.java
URL: http://svn.apache.org/viewvc/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/PropagationTasks.java?rev=1603867&r1=1603866&r2=1603867&view=diff
==============================================================================
--- syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/PropagationTasks.java (original)
+++ syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/PropagationTasks.java Thu Jun 19 13:04:39 2014
@@ -106,8 +106,10 @@ public class PropagationTasks extends Ab
         window.setInitialWidth(WIN_WIDTH);
         window.setCookieName(VIEW_TASK_WIN_COOKIE_NAME);
 
+        @SuppressWarnings("rawtypes")
         Form paginatorForm = new Form("PaginatorForm");
 
+        @SuppressWarnings({ "unchecked", "rawtypes" })
         final DropDownChoice rowsChooser = new DropDownChoice(
                 "rowsChooser", new PropertyModel(this, "paginatorRows"), prefMan.getPaginatorChoices());
 
@@ -258,7 +260,7 @@ public class PropagationTasks extends Ab
                 return panel;
             }
         });
-        
+
         return columns;
     }
 

Modified: syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/ResourcesPanel.java
URL: http://svn.apache.org/viewvc/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/ResourcesPanel.java?rev=1603867&r1=1603866&r2=1603867&view=diff
==============================================================================
--- syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/ResourcesPanel.java (original)
+++ syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/ResourcesPanel.java Thu Jun 19 13:04:39 2014
@@ -24,7 +24,7 @@ import java.util.Collections;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
-import org.apache.syncope.common.to.AbstractAttributableTO;
+import org.apache.syncope.common.to.AbstractSubjectTO;
 import org.apache.syncope.common.to.MembershipTO;
 import org.apache.syncope.common.to.ResourceTO;
 import org.apache.syncope.common.to.RoleTO;
@@ -58,7 +58,7 @@ public class ResourcesPanel extends Pane
     @SpringBean
     private RoleTreeBuilder roleTreeBuilder;
 
-    private final AbstractAttributableTO attributableTO;
+    private final AbstractSubjectTO subjectTO;
 
     private final Set<String> previousResources;
 
@@ -95,8 +95,8 @@ public class ResourcesPanel extends Pane
 
     private ResourcesPanel(final Builder builder) {
         super(builder.id);
-        attributableTO = (AbstractAttributableTO) builder.to;
-        previousResources = new HashSet<String>(attributableTO.getResources());
+        subjectTO = (AbstractSubjectTO) builder.to;
+        previousResources = new HashSet<String>(subjectTO.getResources());
         allResources = new ArrayList<String>();
         for (ResourceTO resourceTO : resourceRestClient.getAllResources()) {
             allResources.add(resourceTO.getName());
@@ -105,13 +105,13 @@ public class ResourcesPanel extends Pane
 
         AjaxPalettePanel<String> resourcesPalette = null;
 
-        if (attributableTO instanceof UserTO) {
+        if (subjectTO instanceof UserTO) {
             resourcesPalette = new AjaxRecordingPalettePanel<String>("resourcesPalette",
-                    new PropertyModel<List<String>>(attributableTO, "resources"),
+                    new PropertyModel<List<String>>(subjectTO, "resources"),
                     new ListModel<String>(allResources), builder.statusPanel);
-        } else if (attributableTO instanceof RoleTO) {
+        } else if (subjectTO instanceof RoleTO) {
             resourcesPalette = new AjaxPalettePanel<String>("resourcesPalette",
-                    new PropertyModel<List<String>>(attributableTO, "resources"), new ListModel<String>(allResources));
+                    new PropertyModel<List<String>>(subjectTO, "resources"), new ListModel<String>(allResources));
         }
         add(resourcesPalette);
     }
@@ -146,8 +146,8 @@ public class ResourcesPanel extends Pane
 
                         @Override
                         protected void onUpdate(final AjaxRequestTarget target) {
-                            if (attributableTO instanceof UserTO) {
-                                UserTO userTO = (UserTO) attributableTO;
+                            if (subjectTO instanceof UserTO) {
+                                UserTO userTO = (UserTO) subjectTO;
 
                                 Set<String> resourcesToRemove = new HashSet<String>(previousResources);
                                 resourcesToRemove.removeAll(userTO.getResources());

Modified: syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/SchedTasks.java
URL: http://svn.apache.org/viewvc/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/SchedTasks.java?rev=1603867&r1=1603866&r2=1603867&view=diff
==============================================================================
--- syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/SchedTasks.java (original)
+++ syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/SchedTasks.java Thu Jun 19 13:04:39 2014
@@ -63,10 +63,10 @@ public class SchedTasks extends Abstract
     private ModalWindow window;
 
     private AjaxDataTablePanel<AbstractTaskTO, String> table;
-    
+
     public SchedTasks(final String id, final PageReference pageRef) {
         super(id, pageRef);
-        
+
         container = new WebMarkupContainer("container");
         container.setOutputMarkupId(true);
         add(container);
@@ -92,8 +92,10 @@ public class SchedTasks extends Abstract
 
         container.add(table);
 
+        @SuppressWarnings("rawtypes")
         Form paginatorForm = new Form("PaginatorForm");
 
+        @SuppressWarnings({ "unchecked", "rawtypes" })
         final DropDownChoice rowsChooser = new DropDownChoice("rowsChooser", new PropertyModel(this, "paginatorRows"),
                 prefMan.getPaginatorChoices());
 
@@ -146,7 +148,7 @@ public class SchedTasks extends Abstract
 
         add(createLink);
     }
-    
+
     private List<IColumn<AbstractTaskTO, String>> getColumns() {
         final List<IColumn<AbstractTaskTO, String>> columns = new ArrayList<IColumn<AbstractTaskTO, String>>();