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 2013/10/30 12:26:22 UTC

svn commit: r1537047 [2/5] - in /syncope/trunk: client/src/main/java/org/apache/syncope/client/rest/ common/src/main/java/org/apache/syncope/common/ common/src/main/java/org/apache/syncope/common/mod/ common/src/main/java/org/apache/syncope/common/serv...

Modified: syncope/trunk/common/src/main/java/org/apache/syncope/common/to/BulkAssociationAction.java
URL: http://svn.apache.org/viewvc/syncope/trunk/common/src/main/java/org/apache/syncope/common/to/BulkAssociationAction.java?rev=1537047&r1=1537046&r2=1537047&view=diff
==============================================================================
--- syncope/trunk/common/src/main/java/org/apache/syncope/common/to/BulkAssociationAction.java (original)
+++ syncope/trunk/common/src/main/java/org/apache/syncope/common/to/BulkAssociationAction.java Wed Oct 30 11:26:19 2013
@@ -24,10 +24,10 @@ import java.util.Collection;
 import java.util.List;
 import javax.xml.bind.annotation.XmlElement;
 import javax.xml.bind.annotation.XmlElementWrapper;
-import javax.xml.bind.annotation.XmlEnum;
 import javax.xml.bind.annotation.XmlRootElement;
 import javax.xml.bind.annotation.XmlType;
 import org.apache.syncope.common.AbstractBaseBean;
+import org.apache.syncope.common.types.ResourceAssociationActionType;
 
 @XmlRootElement(name = "bulkAssociationAction")
 @XmlType
@@ -35,28 +35,18 @@ public class BulkAssociationAction exten
 
     private static final long serialVersionUID = 1395353278878758961L;
 
-    @XmlEnum
-    @XmlType(name = "bulkAssociationActionType")
-    public enum Type {
-
-        UNLINK,
-        UNASSIGN,
-        DEPROVISION
-
-    }
-
-    private Type operation;
+    private ResourceAssociationActionType operation;
 
     /**
      * Serialized identifiers.
      */
     private final List<Long> targets = new ArrayList<Long>();
 
-    public Type getOperation() {
+    public ResourceAssociationActionType getOperation() {
         return operation;
     }
 
-    public void setOperation(final Type operation) {
+    public void setOperation(final ResourceAssociationActionType operation) {
         this.operation = operation;
     }
 

Modified: syncope/trunk/common/src/main/java/org/apache/syncope/common/to/CorrelationRuleClassTO.java
URL: http://svn.apache.org/viewvc/syncope/trunk/common/src/main/java/org/apache/syncope/common/to/CorrelationRuleClassTO.java?rev=1537047&r1=1537046&r2=1537047&view=diff
==============================================================================
--- syncope/trunk/common/src/main/java/org/apache/syncope/common/to/CorrelationRuleClassTO.java (original)
+++ syncope/trunk/common/src/main/java/org/apache/syncope/common/to/CorrelationRuleClassTO.java Wed Oct 30 11:26:19 2013
@@ -20,33 +20,12 @@ package org.apache.syncope.common.to;
 
 import javax.xml.bind.annotation.XmlRootElement;
 import javax.xml.bind.annotation.XmlType;
-import org.apache.syncope.common.AbstractBaseBean;
+import org.apache.syncope.common.AbstractWrappable;
 
 @XmlRootElement(name = "correlationRuleClass")
 @XmlType
-public class CorrelationRuleClassTO extends AbstractBaseBean {
+public class CorrelationRuleClassTO extends AbstractWrappable {
 
     private static final long serialVersionUID = -6715106427060816725L;
 
-    private String name;
-
-    public static CorrelationRuleClassTO instance(final String name) {
-        CorrelationRuleClassTO instance = new CorrelationRuleClassTO();
-        instance.setName(name);
-        return instance;
-    }
-
-    /**
-     * @return the name
-     */
-    public String getName() {
-        return name;
-    }
-
-    /**
-     * @param name the name to set
-     */
-    public void setName(final String name) {
-        this.name = name;
-    }
 }

Modified: syncope/trunk/common/src/main/java/org/apache/syncope/common/to/EntitlementTO.java
URL: http://svn.apache.org/viewvc/syncope/trunk/common/src/main/java/org/apache/syncope/common/to/EntitlementTO.java?rev=1537047&r1=1537046&r2=1537047&view=diff
==============================================================================
--- syncope/trunk/common/src/main/java/org/apache/syncope/common/to/EntitlementTO.java (original)
+++ syncope/trunk/common/src/main/java/org/apache/syncope/common/to/EntitlementTO.java Wed Oct 30 11:26:19 2013
@@ -21,33 +21,12 @@ package org.apache.syncope.common.to;
 import javax.xml.bind.annotation.XmlRootElement;
 import javax.xml.bind.annotation.XmlType;
 
-import org.apache.syncope.common.AbstractBaseBean;
+import org.apache.syncope.common.AbstractWrappable;
 
 @XmlRootElement(name = "entitlement")
 @XmlType
-public class EntitlementTO extends AbstractBaseBean {
+public class EntitlementTO extends AbstractWrappable {
 
     private static final long serialVersionUID = 7133614577172038452L;
 
-    private String name;
-
-    public static EntitlementTO instance(final String name) {
-        EntitlementTO instance = new EntitlementTO();
-        instance.setName(name);
-        return instance;
-    }
-
-    /**
-     * @return the name
-     */
-    public String getName() {
-        return name;
-    }
-
-    /**
-     * @param name the name to set
-     */
-    public void setName(final String name) {
-        this.name = name;
-    }
 }

Modified: syncope/trunk/common/src/main/java/org/apache/syncope/common/to/JobClassTO.java
URL: http://svn.apache.org/viewvc/syncope/trunk/common/src/main/java/org/apache/syncope/common/to/JobClassTO.java?rev=1537047&r1=1537046&r2=1537047&view=diff
==============================================================================
--- syncope/trunk/common/src/main/java/org/apache/syncope/common/to/JobClassTO.java (original)
+++ syncope/trunk/common/src/main/java/org/apache/syncope/common/to/JobClassTO.java Wed Oct 30 11:26:19 2013
@@ -21,33 +21,12 @@ package org.apache.syncope.common.to;
 import javax.xml.bind.annotation.XmlRootElement;
 import javax.xml.bind.annotation.XmlType;
 
-import org.apache.syncope.common.AbstractBaseBean;
+import org.apache.syncope.common.AbstractWrappable;
 
 @XmlRootElement(name = "jobClass")
 @XmlType
-public class JobClassTO extends AbstractBaseBean {
+public class JobClassTO extends AbstractWrappable {
 
     private static final long serialVersionUID = -1953799905627918822L;
 
-    private String name;
-
-    public static JobClassTO instance(final String name) {
-        JobClassTO instance = new JobClassTO();
-        instance.setName(name);
-        return instance;
-    }
-
-    /**
-     * @return the name
-     */
-    public String getName() {
-        return name;
-    }
-
-    /**
-     * @param name the name to set
-     */
-    public void setName(final String name) {
-        this.name = name;
-    }
 }

Modified: syncope/trunk/common/src/main/java/org/apache/syncope/common/to/MailTemplateTO.java
URL: http://svn.apache.org/viewvc/syncope/trunk/common/src/main/java/org/apache/syncope/common/to/MailTemplateTO.java?rev=1537047&r1=1537046&r2=1537047&view=diff
==============================================================================
--- syncope/trunk/common/src/main/java/org/apache/syncope/common/to/MailTemplateTO.java (original)
+++ syncope/trunk/common/src/main/java/org/apache/syncope/common/to/MailTemplateTO.java Wed Oct 30 11:26:19 2013
@@ -21,33 +21,12 @@ package org.apache.syncope.common.to;
 import javax.xml.bind.annotation.XmlRootElement;
 import javax.xml.bind.annotation.XmlType;
 
-import org.apache.syncope.common.AbstractBaseBean;
+import org.apache.syncope.common.AbstractWrappable;
 
 @XmlRootElement(name = "mailTemplate")
 @XmlType
-public class MailTemplateTO extends AbstractBaseBean {
+public class MailTemplateTO extends AbstractWrappable {
 
     private static final long serialVersionUID = 7232619557172031478L;
 
-    private String name;
-
-    public static MailTemplateTO instance(final String name) {
-        MailTemplateTO templateTO = new MailTemplateTO();
-        templateTO.setName(name);
-        return templateTO;
-    }
-
-    /**
-     * @return the name
-     */
-    public String getName() {
-        return name;
-    }
-
-    /**
-     * @param name the name to set
-     */
-    public void setName(final String name) {
-        this.name = name;
-    }
 }

Modified: syncope/trunk/common/src/main/java/org/apache/syncope/common/to/PropagationActionClassTO.java
URL: http://svn.apache.org/viewvc/syncope/trunk/common/src/main/java/org/apache/syncope/common/to/PropagationActionClassTO.java?rev=1537047&r1=1537046&r2=1537047&view=diff
==============================================================================
--- syncope/trunk/common/src/main/java/org/apache/syncope/common/to/PropagationActionClassTO.java (original)
+++ syncope/trunk/common/src/main/java/org/apache/syncope/common/to/PropagationActionClassTO.java Wed Oct 30 11:26:19 2013
@@ -21,33 +21,12 @@ package org.apache.syncope.common.to;
 import javax.xml.bind.annotation.XmlRootElement;
 import javax.xml.bind.annotation.XmlType;
 
-import org.apache.syncope.common.AbstractBaseBean;
+import org.apache.syncope.common.AbstractWrappable;
 
 @XmlRootElement(name = "propagationActionClass")
 @XmlType
-public class PropagationActionClassTO extends AbstractBaseBean {
+public class PropagationActionClassTO extends AbstractWrappable {
 
     private static final long serialVersionUID = 2187654394121198308L;
 
-    private String name;
-
-    public static PropagationActionClassTO instance(final String name) {
-        PropagationActionClassTO instance = new PropagationActionClassTO();
-        instance.setName(name);
-        return instance;
-    }
-
-    /**
-     * @return the name
-     */
-    public String getName() {
-        return name;
-    }
-
-    /**
-     * @param name the name to set
-     */
-    public void setName(final String name) {
-        this.name = name;
-    }
 }

Added: syncope/trunk/common/src/main/java/org/apache/syncope/common/to/ResourceNameTO.java
URL: http://svn.apache.org/viewvc/syncope/trunk/common/src/main/java/org/apache/syncope/common/to/ResourceNameTO.java?rev=1537047&view=auto
==============================================================================
--- syncope/trunk/common/src/main/java/org/apache/syncope/common/to/ResourceNameTO.java (added)
+++ syncope/trunk/common/src/main/java/org/apache/syncope/common/to/ResourceNameTO.java Wed Oct 30 11:26:19 2013
@@ -0,0 +1,31 @@
+/*
+ * 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 javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+import org.apache.syncope.common.AbstractWrappable;
+
+@XmlRootElement(name = "resourceName")
+@XmlType
+public class ResourceNameTO extends AbstractWrappable {
+
+    private static final long serialVersionUID = -175720097924079573L;
+
+}

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

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

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

Modified: syncope/trunk/common/src/main/java/org/apache/syncope/common/to/SyncActionClassTO.java
URL: http://svn.apache.org/viewvc/syncope/trunk/common/src/main/java/org/apache/syncope/common/to/SyncActionClassTO.java?rev=1537047&r1=1537046&r2=1537047&view=diff
==============================================================================
--- syncope/trunk/common/src/main/java/org/apache/syncope/common/to/SyncActionClassTO.java (original)
+++ syncope/trunk/common/src/main/java/org/apache/syncope/common/to/SyncActionClassTO.java Wed Oct 30 11:26:19 2013
@@ -21,33 +21,10 @@ package org.apache.syncope.common.to;
 import javax.xml.bind.annotation.XmlRootElement;
 import javax.xml.bind.annotation.XmlType;
 
-import org.apache.syncope.common.AbstractBaseBean;
+import org.apache.syncope.common.AbstractWrappable;
 
 @XmlRootElement(name = "syncActionClass")
 @XmlType
-public class SyncActionClassTO extends AbstractBaseBean {
+public class SyncActionClassTO extends AbstractWrappable {
 
-    private static final long serialVersionUID = -3379629287646343560L;
-
-    private String name;
-
-    public static SyncActionClassTO instance(final String name) {
-        SyncActionClassTO instance = new SyncActionClassTO();
-        instance.setName(name);
-        return instance;
-    }
-
-    /**
-     * @return the name
-     */
-    public String getName() {
-        return name;
-    }
-
-    /**
-     * @param name the name to set
-     */
-    public void setName(final String name) {
-        this.name = name;
-    }
 }

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=1537047&r1=1537046&r2=1537047&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 Wed Oct 30 11:26:19 2013
@@ -42,7 +42,7 @@ public class UserTO extends AbstractAttr
 
     private String password;
 
-    private List<MembershipTO> memberships = new ArrayList<MembershipTO>();
+    private final List<MembershipTO> memberships = new ArrayList<MembershipTO>();
 
     private String status;
 

Modified: syncope/trunk/common/src/main/java/org/apache/syncope/common/to/ValidatorTO.java
URL: http://svn.apache.org/viewvc/syncope/trunk/common/src/main/java/org/apache/syncope/common/to/ValidatorTO.java?rev=1537047&r1=1537046&r2=1537047&view=diff
==============================================================================
--- syncope/trunk/common/src/main/java/org/apache/syncope/common/to/ValidatorTO.java (original)
+++ syncope/trunk/common/src/main/java/org/apache/syncope/common/to/ValidatorTO.java Wed Oct 30 11:26:19 2013
@@ -21,33 +21,12 @@ package org.apache.syncope.common.to;
 import javax.xml.bind.annotation.XmlRootElement;
 import javax.xml.bind.annotation.XmlType;
 
-import org.apache.syncope.common.AbstractBaseBean;
+import org.apache.syncope.common.AbstractWrappable;
 
 @XmlRootElement(name = "validator")
 @XmlType
-public class ValidatorTO extends AbstractBaseBean {
+public class ValidatorTO extends AbstractWrappable {
 
     private static final long serialVersionUID = 7233619557177034453L;
 
-    private String name;
-
-    public static ValidatorTO instance(final String name) {
-        ValidatorTO instance = new ValidatorTO();
-        instance.setName(name);
-        return instance;
-    }
-
-    /**
-     * @return the name
-     */
-    public String getName() {
-        return name;
-    }
-
-    /**
-     * @param name the name to set
-     */
-    public void setName(final String name) {
-        this.name = name;
-    }
 }

Modified: syncope/trunk/common/src/main/java/org/apache/syncope/common/types/ClientExceptionType.java
URL: http://svn.apache.org/viewvc/syncope/trunk/common/src/main/java/org/apache/syncope/common/types/ClientExceptionType.java?rev=1537047&r1=1537046&r2=1537047&view=diff
==============================================================================
--- syncope/trunk/common/src/main/java/org/apache/syncope/common/types/ClientExceptionType.java (original)
+++ syncope/trunk/common/src/main/java/org/apache/syncope/common/types/ClientExceptionType.java Wed Oct 30 11:26:19 2013
@@ -19,7 +19,6 @@
 package org.apache.syncope.common.types;
 
 import javax.ws.rs.core.Response;
-import javax.xml.bind.annotation.XmlEnum;
 
 public enum ClientExceptionType {
 

Added: syncope/trunk/common/src/main/java/org/apache/syncope/common/types/RESTHeaders.java
URL: http://svn.apache.org/viewvc/syncope/trunk/common/src/main/java/org/apache/syncope/common/types/RESTHeaders.java?rev=1537047&view=auto
==============================================================================
--- syncope/trunk/common/src/main/java/org/apache/syncope/common/types/RESTHeaders.java (added)
+++ syncope/trunk/common/src/main/java/org/apache/syncope/common/types/RESTHeaders.java Wed Oct 30 11:26:19 2013
@@ -0,0 +1,64 @@
+/*
+ * 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.types;
+
+/**
+ * Custom HTTP headers in use with REST services.
+ */
+public enum RESTHeaders {
+
+    /**
+     * UserId option key.
+     */
+    USER_ID("Syncope.UserId"),
+    /**
+     * Username option key.
+     */
+    USERNAME("Syncope.Username"),
+    /**
+     * Option key stating if user request create is allowed or not.
+     */
+    USERREQUEST_CREATE_ALLOWED("Syncope.UserRequestCreate.Allowed"),
+    /**
+     * HTTP header key for object ID assigned to an object after its creation.
+     */
+    RESOURCE_ID("Syncope.Id"),
+    /**
+     * Declares the type of exception being raised.
+     */
+    EXCEPTION_TYPE("Syncope.ExceptionType"),
+    /**
+     * Not (yet) defined in <tt>javax.ws.rs.core.HttpHeaders</tt>.
+     *
+     * @see javax.ws.rs.core.HttpHeaders
+     */
+    CONTENT_DISPOSITION("Content-Disposition");
+
+    private final String name;
+
+    private RESTHeaders(final String name) {
+        this.name = name;
+    }
+
+    @Override
+    public String toString() {
+        return name;
+    }
+
+}

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

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

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

Added: syncope/trunk/common/src/main/java/org/apache/syncope/common/types/ResourceAssociationActionType.java
URL: http://svn.apache.org/viewvc/syncope/trunk/common/src/main/java/org/apache/syncope/common/types/ResourceAssociationActionType.java?rev=1537047&view=auto
==============================================================================
--- syncope/trunk/common/src/main/java/org/apache/syncope/common/types/ResourceAssociationActionType.java (added)
+++ syncope/trunk/common/src/main/java/org/apache/syncope/common/types/ResourceAssociationActionType.java Wed Oct 30 11:26:19 2013
@@ -0,0 +1,39 @@
+/*
+ * 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.types;
+
+import javax.xml.bind.annotation.XmlEnum;
+
+@XmlEnum
+public enum ResourceAssociationActionType {
+
+    /**
+     * Remove association between user/role on Syncope and external resource(s).
+     */
+    UNLINK,
+    /**
+     * Remove user/role from external resource(s).
+     */
+    DEPROVISION,
+    /**
+     * Unassign (unlink + deprovision) external resource(s) from user/role.
+     */
+    UNASSIGN
+
+}

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

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

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

Modified: syncope/trunk/common/src/main/java/org/apache/syncope/common/util/CollectionWrapper.java
URL: http://svn.apache.org/viewvc/syncope/trunk/common/src/main/java/org/apache/syncope/common/util/CollectionWrapper.java?rev=1537047&r1=1537046&r2=1537047&view=diff
==============================================================================
--- syncope/trunk/common/src/main/java/org/apache/syncope/common/util/CollectionWrapper.java (original)
+++ syncope/trunk/common/src/main/java/org/apache/syncope/common/util/CollectionWrapper.java Wed Oct 30 11:26:19 2013
@@ -20,17 +20,10 @@ package org.apache.syncope.common.util;
 
 import java.util.ArrayList;
 import java.util.Collection;
-import java.util.HashSet;
+import java.util.Collections;
 import java.util.List;
-import java.util.Set;
-import org.apache.syncope.common.to.CorrelationRuleClassTO;
-import org.apache.syncope.common.to.EntitlementTO;
-import org.apache.syncope.common.to.JobClassTO;
+import org.apache.syncope.common.AbstractWrappable;
 import org.apache.syncope.common.to.LoggerTO;
-import org.apache.syncope.common.to.MailTemplateTO;
-import org.apache.syncope.common.to.PropagationActionClassTO;
-import org.apache.syncope.common.to.SyncActionClassTO;
-import org.apache.syncope.common.to.ValidatorTO;
 import org.apache.syncope.common.types.AuditLoggerName;
 import org.apache.syncope.common.types.LoggerLevel;
 
@@ -40,52 +33,28 @@ public final class CollectionWrapper {
         // empty constructor for static utility class
     }
 
-    public static Set<EntitlementTO> wrap(final Collection<String> collection) {
-        Set<EntitlementTO> respons = new HashSet<EntitlementTO>();
-        for (String e : collection) {
-            respons.add(EntitlementTO.instance(e));
-        }
-        return respons;
-    }
+    public static <T extends AbstractWrappable> List<T> wrap(
+            final String element, final Class<T> reference) {
 
-    public static Set<String> unwrap(final Collection<EntitlementTO> collection) {
-        Set<String> respons = new HashSet<String>();
-        for (EntitlementTO e : collection) {
-            respons.add(e.getName());
-        }
-        return respons;
+        return Collections.singletonList(AbstractWrappable.getInstance(reference, element));
     }
 
-    public static Set<MailTemplateTO> wrapMailTemplates(final Collection<String> collection) {
-        Set<MailTemplateTO> respons = new HashSet<MailTemplateTO>();
-        for (String e : collection) {
-            respons.add(MailTemplateTO.instance(e));
-        }
-        return respons;
-    }
+    public static <T extends AbstractWrappable> List<T> wrap(
+            final Collection<String> collection, final Class<T> reference) {
 
-    public static List<String> unwrapMailTemplates(final Collection<MailTemplateTO> collection) {
-        List<String> respons = new ArrayList<String>();
-        for (MailTemplateTO e : collection) {
-            respons.add(e.getName());
+        List<T> response = new ArrayList<T>();
+        for (String element : collection) {
+            response.add(AbstractWrappable.getInstance(reference, element));
         }
-        return respons;
+        return response;
     }
 
-    public static Set<ValidatorTO> wrapValidators(final Collection<String> validators) {
-        Set<ValidatorTO> respons = new HashSet<ValidatorTO>();
-        for (String validator : validators) {
-            respons.add(ValidatorTO.instance(validator));
+    public static <T extends AbstractWrappable> List<String> unwrap(final Collection<T> collection) {
+        List<String> response = new ArrayList<String>();
+        for (T e : collection) {
+            response.add(e.getName());
         }
-        return respons;
-    }
-
-    public static List<String> unwrapValidator(final Collection<ValidatorTO> collection) {
-        List<String> respons = new ArrayList<String>();
-        for (ValidatorTO e : collection) {
-            respons.add(e.getName());
-        }
-        return respons;
+        return response;
     }
 
     public static List<AuditLoggerName> wrapLogger(final Collection<LoggerTO> logger) {
@@ -110,68 +79,4 @@ public final class CollectionWrapper {
         }
         return respons;
     }
-
-    public static Set<JobClassTO> wrapJobClasses(final Collection<String> classes) {
-        Set<JobClassTO> respons = new HashSet<JobClassTO>();
-        for (String cl : classes) {
-            respons.add(JobClassTO.instance(cl));
-        }
-        return respons;
-    }
-
-    public static List<String> unwrapJobClasses(final Collection<JobClassTO> jobClasses) {
-        List<String> respons = new ArrayList<String>();
-        for (JobClassTO e : jobClasses) {
-            respons.add(e.getName());
-        }
-        return respons;
-    }
-
-    public static Set<SyncActionClassTO> wrapSyncActionClasses(final Collection<String> classes) {
-        Set<SyncActionClassTO> respons = new HashSet<SyncActionClassTO>();
-        for (String cl : classes) {
-            respons.add(SyncActionClassTO.instance(cl));
-        }
-        return respons;
-    }
-
-    public static List<String> unwrapSyncActionClasses(final Collection<SyncActionClassTO> actions) {
-        List<String> respons = new ArrayList<String>();
-        for (SyncActionClassTO e : actions) {
-            respons.add(e.getName());
-        }
-        return respons;
-    }
-
-    public static Set<PropagationActionClassTO> wrapPropagationActionClasses(final Collection<String> classes) {
-        Set<PropagationActionClassTO> respons = new HashSet<PropagationActionClassTO>();
-        for (String cl : classes) {
-            respons.add(PropagationActionClassTO.instance(cl));
-        }
-        return respons;
-    }
-
-    public static List<String> unwrapPropagationActionClasses(final Collection<PropagationActionClassTO> actions) {
-        List<String> respons = new ArrayList<String>();
-        for (PropagationActionClassTO e : actions) {
-            respons.add(e.getName());
-        }
-        return respons;
-    }
-
-    public static Set<CorrelationRuleClassTO> wrapSyncCorrelationRuleClasses(final Collection<String> classes) {
-        Set<CorrelationRuleClassTO> respons = new HashSet<CorrelationRuleClassTO>();
-        for (String cl : classes) {
-            respons.add(CorrelationRuleClassTO.instance(cl));
-        }
-        return respons;
-    }
-
-    public static List<String> unwrapSyncCorrelationRuleClasses(final Collection<CorrelationRuleClassTO> actions) {
-        List<String> respons = new ArrayList<String>();
-        for (CorrelationRuleClassTO e : actions) {
-            respons.add(e.getName());
-        }
-        return respons;
-    }
 }

Modified: syncope/trunk/common/src/test/java/org/apache/syncope/common/JSONTest.java
URL: http://svn.apache.org/viewvc/syncope/trunk/common/src/test/java/org/apache/syncope/common/JSONTest.java?rev=1537047&r1=1537046&r2=1537047&view=diff
==============================================================================
--- syncope/trunk/common/src/test/java/org/apache/syncope/common/JSONTest.java (original)
+++ syncope/trunk/common/src/test/java/org/apache/syncope/common/JSONTest.java Wed Oct 30 11:26:19 2013
@@ -40,7 +40,7 @@ import org.junit.Test;
 public class JSONTest {
 
     @Test
-    public void testSearchCondition() throws IOException {
+    public void searchCondition() throws IOException {
         final AttributeCond usernameCond = new AttributeCond(AttributeCond.Type.LIKE);
         usernameCond.setSchema("username");
         usernameCond.setExpression("%o%");
@@ -63,7 +63,7 @@ public class JSONTest {
     }
 
     @Test
-    public void testLists() throws IOException {
+    public void lists() throws IOException {
         List<ConfigurationTO> confList = new ArrayList<ConfigurationTO>();
         ConfigurationTO configuration = new ConfigurationTO();
         configuration.setKey("key1");
@@ -87,7 +87,7 @@ public class JSONTest {
     }
 
     @Test
-    public void testMap() throws IOException {
+    public void map() throws IOException {
         WorkflowFormPropertyTO prop = new WorkflowFormPropertyTO();
         prop.getEnumValues().put("key1", "value1");
         prop.getEnumValues().put("key2", "value2");
@@ -102,7 +102,7 @@ public class JSONTest {
     }
 
     @Test
-    public void testReportletConfImplementations() throws IOException {
+    public void reportletConfImplementations() throws IOException {
         ReportTO report = new ReportTO();
         report.setName("testReportForCreate");
         report.getReportletConfs().add(new UserReportletConf("first"));

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=1537047&r1=1537046&r2=1537047&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 Wed Oct 30 11:26:19 2013
@@ -24,7 +24,9 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Locale;
 import java.util.Map;
+import javax.ws.rs.core.MediaType;
 import org.apache.commons.lang3.builder.HashCodeBuilder;
+import org.apache.cxf.jaxrs.client.WebClient;
 import org.apache.syncope.client.SyncopeClient;
 import org.apache.syncope.client.SyncopeClientFactoryBean;
 import org.apache.wicket.Session;
@@ -43,7 +45,7 @@ public class SyncopeSession extends WebS
     private static final long serialVersionUID = 7743446298924805872L;
 
     public static final List<Locale> SUPPORTED_LOCALES = Arrays.asList(new Locale[] {
-        Locale.ENGLISH, Locale.ITALIAN, new Locale("pt", "BR")});
+        Locale.ENGLISH, Locale.ITALIAN, new Locale("pt", "BR") });
 
     private String username;
 
@@ -64,8 +66,8 @@ public class SyncopeSession extends WebS
     public SyncopeSession(final Request request) {
         super(request);
 
-        final ApplicationContext applicationContext =
-                WebApplicationContextUtils.getWebApplicationContext(WebApplication.get().getServletContext());
+        final ApplicationContext applicationContext = WebApplicationContextUtils.
+                getWebApplicationContext(WebApplication.get().getServletContext());
 
         clientFactory = applicationContext.getBean(SyncopeClientFactoryBean.class);
     }
@@ -82,6 +84,10 @@ public class SyncopeSession extends WebS
 
         if (!clients.containsKey(clientKey)) {
             clients.put(clientKey, clientFactory.create(username, password));
+
+            // force JSON
+            WebClient.client(clients.get(clientKey).getService(serviceClass)).
+                    accept(MediaType.APPLICATION_JSON).type(MediaType.APPLICATION_JSON);
         }
 
         return clients.get(clientKey).getService(serviceClass);

Modified: syncope/trunk/console/src/main/java/org/apache/syncope/console/commons/AttributableDataProvider.java
URL: http://svn.apache.org/viewvc/syncope/trunk/console/src/main/java/org/apache/syncope/console/commons/AttributableDataProvider.java?rev=1537047&r1=1537046&r2=1537047&view=diff
==============================================================================
--- syncope/trunk/console/src/main/java/org/apache/syncope/console/commons/AttributableDataProvider.java (original)
+++ syncope/trunk/console/src/main/java/org/apache/syncope/console/commons/AttributableDataProvider.java Wed Oct 30 11:26:19 2013
@@ -33,17 +33,18 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 public class AttributableDataProvider extends SortableDataProvider<AbstractAttributableTO, String> {
-    private static final Logger LOG = LoggerFactory.getLogger(AttributableDataProvider.class);
 
     private static final long serialVersionUID = 6267494272884913376L;
 
+    private static final Logger LOG = LoggerFactory.getLogger(AttributableDataProvider.class);
+
     private final SortableAttributableProviderComparator comparator;
 
     private NodeCond filter = null;
 
     private final int paginatorRows;
 
-    private final boolean filtered ;
+    private final boolean filtered;
 
     private final AbstractAttributableRestClient restClient;
 
@@ -68,7 +69,7 @@ public class AttributableDataProvider ex
 
     @Override
     public Iterator<? extends AbstractAttributableTO> iterator(final long first, final long count) {
-        final List<? extends AbstractAttributableTO> result;
+        List<? extends AbstractAttributableTO> result;
 
         if (filtered) {
             try {
@@ -77,7 +78,7 @@ public class AttributableDataProvider ex
                         : restClient.search(filter, ((int) first / paginatorRows) + 1, paginatorRows);
             } catch (InvalidSearchConditionException e) {
                 LOG.error(e.getMessage(), e);
-                return Collections.<AbstractAttributableTO>emptyList().iterator();
+                result = Collections.<AbstractAttributableTO>emptyList();
             }
         } else {
             result = restClient.list(((int) first / paginatorRows) + 1, paginatorRows);
@@ -89,18 +90,22 @@ public class AttributableDataProvider ex
 
     @Override
     public long size() {
+        long result;
+
         if (filtered) {
             try {
-                return filter == null
+                result = filter == null
                         ? 0
                         : restClient.searchCount(filter);
             } catch (InvalidSearchConditionException e) {
                 LOG.error(e.getMessage(), e);
-                return 0;
+                result = 0;
             }
         } else {
-            return restClient.count();
+            result = restClient.count();
         }
+
+        return result;
     }
 
     @Override

Modified: syncope/trunk/console/src/main/java/org/apache/syncope/console/commons/HttpResourceStream.java
URL: http://svn.apache.org/viewvc/syncope/trunk/console/src/main/java/org/apache/syncope/console/commons/HttpResourceStream.java?rev=1537047&r1=1537046&r2=1537047&view=diff
==============================================================================
--- syncope/trunk/console/src/main/java/org/apache/syncope/console/commons/HttpResourceStream.java (original)
+++ syncope/trunk/console/src/main/java/org/apache/syncope/console/commons/HttpResourceStream.java Wed Oct 30 11:26:19 2013
@@ -26,7 +26,7 @@ import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.Response;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.http.HttpStatus;
-import org.apache.syncope.common.SyncopeConstants;
+import org.apache.syncope.common.types.RESTHeaders;
 import org.apache.wicket.util.lang.Bytes;
 import org.apache.wicket.util.resource.AbstractResourceStream;
 import org.apache.wicket.util.resource.IFixedLocationResourceStream;
@@ -47,7 +47,7 @@ public class HttpResourceStream extends 
         if (response.getStatus() == HttpStatus.SC_OK && (entity instanceof InputStream)) {
             this.inputStream = (InputStream) entity;
             this.contentType = response.getHeaderString(HttpHeaders.CONTENT_TYPE);
-            String contentDisposition = response.getHeaderString(SyncopeConstants.CONTENT_DISPOSITION_HEADER);
+            String contentDisposition = response.getHeaderString(RESTHeaders.CONTENT_DISPOSITION.toString());
             if (StringUtils.isNotBlank(contentDisposition)) {
                 String[] splitted = contentDisposition.split("=");
                 if (splitted != null && splitted.length > 1) {

Added: syncope/trunk/console/src/main/java/org/apache/syncope/console/commons/status/AbstractStatusBeanProvider.java
URL: http://svn.apache.org/viewvc/syncope/trunk/console/src/main/java/org/apache/syncope/console/commons/status/AbstractStatusBeanProvider.java?rev=1537047&view=auto
==============================================================================
--- syncope/trunk/console/src/main/java/org/apache/syncope/console/commons/status/AbstractStatusBeanProvider.java (added)
+++ syncope/trunk/console/src/main/java/org/apache/syncope/console/commons/status/AbstractStatusBeanProvider.java Wed Oct 30 11:26:19 2013
@@ -0,0 +1,69 @@
+/*
+ * 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.console.commons.status;
+
+import java.util.Collections;
+import java.util.Iterator;
+import java.util.List;
+import org.apache.syncope.console.commons.SortableDataProviderComparator;
+import org.apache.wicket.extensions.markup.html.repeater.data.sort.SortOrder;
+import org.apache.wicket.extensions.markup.html.repeater.util.SortableDataProvider;
+import org.apache.wicket.model.AbstractReadOnlyModel;
+import org.apache.wicket.model.IModel;
+
+public abstract class AbstractStatusBeanProvider extends SortableDataProvider<StatusBean, String> {
+
+    private static final long serialVersionUID = 4287357360778016173L;
+
+    private SortableDataProviderComparator<StatusBean> comparator;
+
+    public AbstractStatusBeanProvider(final String sort) {
+        //Default sorting
+        setSort(sort, SortOrder.ASCENDING);
+        comparator = new SortableDataProviderComparator<StatusBean>(this);
+    }
+
+    @Override
+    public Iterator<StatusBean> iterator(final long first, final long count) {
+        List<StatusBean> list = getStatusBeans();
+        Collections.sort(list, comparator);
+        return list.subList((int) first, (int) first + (int) count).iterator();
+    }
+
+    @Override
+    public long size() {
+        return getStatusBeans().size();
+    }
+
+    @Override
+    public IModel<StatusBean> model(final StatusBean resource) {
+        return new AbstractReadOnlyModel<StatusBean>() {
+
+            private static final long serialVersionUID = -7802635613997243712L;
+
+            @Override
+            public StatusBean getObject() {
+                return resource;
+            }
+        };
+    }
+
+    public abstract List<StatusBean> getStatusBeans();
+
+}

Propchange: syncope/trunk/console/src/main/java/org/apache/syncope/console/commons/status/AbstractStatusBeanProvider.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: syncope/trunk/console/src/main/java/org/apache/syncope/console/commons/status/AbstractStatusBeanProvider.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Propchange: syncope/trunk/console/src/main/java/org/apache/syncope/console/commons/status/AbstractStatusBeanProvider.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: syncope/trunk/console/src/main/java/org/apache/syncope/console/commons/status/ConnObjectWrapper.java
URL: http://svn.apache.org/viewvc/syncope/trunk/console/src/main/java/org/apache/syncope/console/commons/status/ConnObjectWrapper.java?rev=1537047&view=auto
==============================================================================
--- syncope/trunk/console/src/main/java/org/apache/syncope/console/commons/status/ConnObjectWrapper.java (added)
+++ syncope/trunk/console/src/main/java/org/apache/syncope/console/commons/status/ConnObjectWrapper.java Wed Oct 30 11:26:19 2013
@@ -0,0 +1,55 @@
+/*
+ * 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.console.commons.status;
+
+import java.io.Serializable;
+import org.apache.syncope.common.to.AbstractAttributableTO;
+import org.apache.syncope.common.to.ConnObjectTO;
+
+public class ConnObjectWrapper implements Serializable {
+
+    private static final long serialVersionUID = 9083721948999924299L;
+
+    private final AbstractAttributableTO attributable;
+
+    private final String resourceName;
+
+    private final ConnObjectTO connObjectTO;
+
+    public ConnObjectWrapper(final AbstractAttributableTO attributable, final String resourceName,
+            final ConnObjectTO connObjectTO) {
+
+        this.attributable = attributable;
+        this.resourceName = resourceName;
+        this.connObjectTO = connObjectTO;
+    }
+
+    public AbstractAttributableTO getAttributable() {
+        return attributable;
+    }
+
+    public String getResourceName() {
+        return resourceName;
+    }
+
+    public ConnObjectTO getConnObjectTO() {
+        return connObjectTO;
+    }
+
+}

Propchange: syncope/trunk/console/src/main/java/org/apache/syncope/console/commons/status/ConnObjectWrapper.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: syncope/trunk/console/src/main/java/org/apache/syncope/console/commons/status/ConnObjectWrapper.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Propchange: syncope/trunk/console/src/main/java/org/apache/syncope/console/commons/status/ConnObjectWrapper.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: syncope/trunk/console/src/main/java/org/apache/syncope/console/commons/status/Status.java
URL: http://svn.apache.org/viewvc/syncope/trunk/console/src/main/java/org/apache/syncope/console/commons/status/Status.java?rev=1537047&view=auto
==============================================================================
--- syncope/trunk/console/src/main/java/org/apache/syncope/console/commons/status/Status.java (added)
+++ syncope/trunk/console/src/main/java/org/apache/syncope/console/commons/status/Status.java Wed Oct 30 11:26:19 2013
@@ -0,0 +1,45 @@
+/*
+ * 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.console.commons.status;
+
+public enum Status {
+
+    NOT_YET_SUBMITTED(""),
+    CREATED("created"),
+    ACTIVE("active"),
+    SUSPENDED("inactive"),
+    UNDEFINED("undefined"),
+    OBJECT_NOT_FOUND("objectnotfound");
+
+    public boolean isActive() {
+        return this == ACTIVE;
+    }
+
+    private Status(final String name) {
+        this.name = name;
+    }
+
+    private final String name;
+
+    @Override
+    public String toString() {
+        return name;
+    }
+
+}

Propchange: syncope/trunk/console/src/main/java/org/apache/syncope/console/commons/status/Status.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: syncope/trunk/console/src/main/java/org/apache/syncope/console/commons/status/Status.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Propchange: syncope/trunk/console/src/main/java/org/apache/syncope/console/commons/status/Status.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Copied: syncope/trunk/console/src/main/java/org/apache/syncope/console/commons/status/StatusBean.java (from r1536599, syncope/trunk/console/src/main/java/org/apache/syncope/console/commons/StatusBean.java)
URL: http://svn.apache.org/viewvc/syncope/trunk/console/src/main/java/org/apache/syncope/console/commons/status/StatusBean.java?p2=syncope/trunk/console/src/main/java/org/apache/syncope/console/commons/status/StatusBean.java&p1=syncope/trunk/console/src/main/java/org/apache/syncope/console/commons/StatusBean.java&r1=1536599&r2=1537047&rev=1537047&view=diff
==============================================================================
--- syncope/trunk/console/src/main/java/org/apache/syncope/console/commons/StatusBean.java (original)
+++ syncope/trunk/console/src/main/java/org/apache/syncope/console/commons/status/StatusBean.java Wed Oct 30 11:26:19 2013
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.syncope.console.commons;
+package org.apache.syncope.console.commons.status;
 
 import java.io.Serializable;
 import org.apache.commons.lang3.builder.ReflectionToStringBuilder;
@@ -37,7 +37,7 @@ public class StatusBean implements Seria
 
     private String accountLink = null;
 
-    private StatusUtils.Status status = StatusUtils.Status.OBJECT_NOT_FOUND;
+    private Status status = Status.OBJECT_NOT_FOUND;
 
     public StatusBean(final AbstractAttributableTO attributable, String resourceName) {
         this.attributableId = attributable.getId();
@@ -58,11 +58,11 @@ public class StatusBean implements Seria
         return resourceName;
     }
 
-    public StatusUtils.Status getStatus() {
+    public Status getStatus() {
         return status;
     }
 
-    public void setStatus(final StatusUtils.Status status) {
+    public void setStatus(final Status status) {
         this.status = status;
     }
 

Copied: syncope/trunk/console/src/main/java/org/apache/syncope/console/commons/status/StatusUtils.java (from r1536599, syncope/trunk/console/src/main/java/org/apache/syncope/console/commons/StatusUtils.java)
URL: http://svn.apache.org/viewvc/syncope/trunk/console/src/main/java/org/apache/syncope/console/commons/status/StatusUtils.java?p2=syncope/trunk/console/src/main/java/org/apache/syncope/console/commons/status/StatusUtils.java&p1=syncope/trunk/console/src/main/java/org/apache/syncope/console/commons/StatusUtils.java&r1=1536599&r2=1537047&rev=1537047&view=diff
==============================================================================
--- syncope/trunk/console/src/main/java/org/apache/syncope/console/commons/StatusUtils.java (original)
+++ syncope/trunk/console/src/main/java/org/apache/syncope/console/commons/status/StatusUtils.java Wed Oct 30 11:26:19 2013
@@ -16,33 +16,29 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.syncope.console.commons;
+package org.apache.syncope.console.commons.status;
 
 import java.io.Serializable;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
-import java.util.Iterator;
 import java.util.LinkedHashMap;
 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.AttributeTO;
 import org.apache.syncope.common.to.ConnObjectTO;
-import org.apache.syncope.common.to.PropagationRequestTO;
-import org.apache.syncope.common.to.PropagationTargetsTO;
+import org.apache.syncope.console.commons.ConnIdSpecialAttributeName;
+import org.apache.syncope.console.commons.Constants;
 import org.apache.syncope.console.pages.panels.ImagePanel;
 import org.apache.syncope.console.pages.panels.StatusPanel;
 import org.apache.syncope.console.rest.AbstractAttributableRestClient;
 import org.apache.wicket.Component;
 import org.apache.wicket.ajax.AjaxRequestTarget;
 import org.apache.wicket.behavior.Behavior;
-import org.apache.wicket.extensions.markup.html.repeater.data.sort.SortOrder;
-import org.apache.wicket.extensions.markup.html.repeater.util.SortableDataProvider;
 import org.apache.wicket.markup.ComponentTag;
 import org.apache.wicket.markup.html.image.Image;
-import org.apache.wicket.model.AbstractReadOnlyModel;
-import org.apache.wicket.model.IModel;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -50,56 +46,28 @@ public class StatusUtils implements Seri
 
     private static final long serialVersionUID = 7238009174387184309L;
 
-    public static final String IMG_STATUES = "../statuses/";
-
-    public enum Status {
-
-        NOT_YET_SUBMITTED(""),
-        CREATED("created"),
-        ACTIVE("active"),
-        SUSPENDED("inactive"),
-        UNDEFINED("undefined"),
-        OBJECT_NOT_FOUND("objectnotfound");
-
-        public boolean isActive() {
-            return this == ACTIVE;
-        }
-
-        private Status(final String name) {
-            this.name = name;
-        }
-
-        private final String name;
-
-        @Override
-        public String toString() {
-            return name;
-        }
-    }
-
     /**
      * Logger.
      */
     private static final Logger LOG = LoggerFactory.getLogger(StatusUtils.class);
 
+    public static final String IMG_STATUES = "../statuses/";
+
     private final AbstractAttributableRestClient restClient;
 
     public StatusUtils(final AbstractAttributableRestClient restClient) {
         this.restClient = restClient;
     }
 
-    public List<ConnObjectWrapper> getConnectorObjects(final Collection<AbstractAttributableTO> attributables) {
+    public List<ConnObjectWrapper> getConnectorObjects(final AbstractAttributableTO attributable) {
         final List<ConnObjectWrapper> objects = new ArrayList<ConnObjectWrapper>();
-
-        for (AbstractAttributableTO attributableTO : attributables) {
-            objects.addAll(getConnectorObjects(attributableTO, attributableTO.getResources()));
-        }
-
+        objects.addAll(getConnectorObjects(attributable, attributable.getResources()));
         return objects;
     }
 
     public List<ConnObjectWrapper> getConnectorObjects(
             final Collection<AbstractAttributableTO> attributables, final Collection<String> resources) {
+
         final List<ConnObjectWrapper> objects = new ArrayList<ConnObjectWrapper>();
 
         for (AbstractAttributableTO attributableTO : attributables) {
@@ -110,18 +78,19 @@ public class StatusUtils implements Seri
     }
 
     private List<ConnObjectWrapper> getConnectorObjects(
-            final AbstractAttributableTO attributableTO, final Collection<String> resources) {
+            final AbstractAttributableTO attributable, final Collection<String> resources) {
+
         final List<ConnObjectWrapper> objects = new ArrayList<ConnObjectWrapper>();
 
         for (String resourceName : resources) {
             ConnObjectTO objectTO = null;
             try {
-                objectTO = restClient.getConnectorObject(resourceName, attributableTO.getId());
+                objectTO = restClient.getConnectorObject(resourceName, attributable.getId());
             } catch (Exception e) {
-                LOG.warn("ConnObject '{}' not found on resource '{}'", attributableTO.getId(), resourceName);
+                LOG.warn("ConnObject '{}' not found on resource '{}'", attributable.getId(), resourceName);
             }
 
-            objects.add(new ConnObjectWrapper(attributableTO, resourceName, objectTO));
+            objects.add(new ConnObjectWrapper(attributable, resourceName, objectTO));
         }
 
         return objects;
@@ -137,11 +106,11 @@ public class StatusUtils implements Seri
         if (objectTO != null) {
             final Boolean enabled = isEnabled(objectTO);
 
-            final StatusUtils.Status status = enabled == null
-                    ? (isRole ? StatusUtils.Status.ACTIVE : StatusUtils.Status.UNDEFINED)
+            final Status status = enabled == null
+                    ? (isRole ? Status.ACTIVE : Status.UNDEFINED)
                     : enabled
-                    ? StatusUtils.Status.ACTIVE
-                    : StatusUtils.Status.SUSPENDED;
+                    ? Status.ACTIVE
+                    : Status.SUSPENDED;
 
             final String accountLink = getAccountLink(objectTO);
 
@@ -174,40 +143,28 @@ public class StatusUtils implements Seri
                 : null;
     }
 
-    public static PropagationRequestTO buildPropagationRequestTO(final Collection<StatusBean> statuses) {
-        return buildPropagationRequestTO(statuses, null);
+    public static StatusMod buildStatusMod(final Collection<StatusBean> statuses) {
+        return buildStatusMod(statuses, null);
     }
 
-    public static PropagationRequestTO buildPropagationRequestTO(final Collection<StatusBean> statuses,
-            final Boolean enable) {
-
-        PropagationRequestTO propagationRequestTO = new PropagationRequestTO();
+    public static StatusMod buildStatusMod(final Collection<StatusBean> statuses, final Boolean enable) {
+        StatusMod statusMod = new StatusMod();
+        statusMod.setOnSyncope(false);
 
         for (StatusBean status : statuses) {
             if (enable == null
                     || (enable && !status.getStatus().isActive()) || (!enable && status.getStatus().isActive())) {
 
                 if ("Syncope".equals(status.getResourceName())) {
-                    propagationRequestTO.setOnSyncope(true);
+                    statusMod.setOnSyncope(true);
                 } else {
-                    propagationRequestTO.getResources().add(status.getResourceName());
+                    statusMod.getResourceNames().add(status.getResourceName());
                 }
 
             }
         }
 
-        return propagationRequestTO;
-    }
-
-    public static PropagationTargetsTO buildPropagationTargetsTO(final Collection<StatusBean> statuses) {
-
-        final PropagationTargetsTO propagationTargetsTO = new PropagationTargetsTO();
-
-        for (StatusBean status : statuses) {
-            propagationTargetsTO.getResources().add(status.getResourceName());
-        }
-
-        return propagationTargetsTO;
+        return statusMod;
     }
 
     public static void update(
@@ -230,7 +187,7 @@ public class StatusUtils implements Seri
                         statusBean = statusPanel.getInitialStatusBeanMap().get(resourceName);
                     } else {
                         statusBean = new StatusBean(attributable, resourceName);
-                        statusBean.setStatus(StatusUtils.Status.NOT_YET_SUBMITTED);
+                        statusBean.setStatus(Status.NOT_YET_SUBMITTED);
                     }
 
                     statusMap.put(statusBean.getResourceName(), statusBean);
@@ -250,8 +207,9 @@ public class StatusUtils implements Seri
             final Long attributableId, final String resourceName, final List<ConnObjectWrapper> objects) {
 
         for (ConnObjectWrapper object : objects) {
-            if (attributableId.equals(object.getAttributable())
+            if (attributableId.equals(object.getAttributable().getId())
                     && resourceName.equalsIgnoreCase(object.getResourceName())) {
+
                 return object.getConnObjectTO();
             }
         }
@@ -265,31 +223,31 @@ public class StatusUtils implements Seri
         switch (status) {
 
             case NOT_YET_SUBMITTED:
-                statusName = StatusUtils.Status.UNDEFINED.toString();
+                statusName = Status.UNDEFINED.toString();
                 alt = "undefined icon";
                 title = "Not yet submitted";
                 break;
 
             case ACTIVE:
-                statusName = StatusUtils.Status.ACTIVE.toString();
+                statusName = Status.ACTIVE.toString();
                 alt = "active icon";
                 title = "Enabled";
                 break;
 
             case UNDEFINED:
-                statusName = StatusUtils.Status.UNDEFINED.toString();
+                statusName = Status.UNDEFINED.toString();
                 alt = "undefined icon";
                 title = "Undefined status";
                 break;
 
             case OBJECT_NOT_FOUND:
-                statusName = StatusUtils.Status.OBJECT_NOT_FOUND.toString();
+                statusName = Status.OBJECT_NOT_FOUND.toString();
                 alt = "notfound icon";
                 title = "Not found";
                 break;
 
             default:
-                statusName = StatusUtils.Status.SUSPENDED.toString();
+                statusName = Status.SUSPENDED.toString();
                 alt = "inactive icon";
                 title = "Disabled";
         }
@@ -316,31 +274,31 @@ public class StatusUtils implements Seri
         switch (status) {
 
             case NOT_YET_SUBMITTED:
-                statusName = StatusUtils.Status.UNDEFINED.toString();
+                statusName = Status.UNDEFINED.toString();
                 alt = "undefined icon";
                 title = "Not yet submitted";
                 break;
 
             case ACTIVE:
-                statusName = StatusUtils.Status.ACTIVE.toString();
+                statusName = Status.ACTIVE.toString();
                 alt = "active icon";
                 title = "Enabled";
                 break;
 
             case UNDEFINED:
-                statusName = StatusUtils.Status.UNDEFINED.toString();
+                statusName = Status.UNDEFINED.toString();
                 alt = "undefined icon";
                 title = "Undefined status";
                 break;
 
             case OBJECT_NOT_FOUND:
-                statusName = StatusUtils.Status.OBJECT_NOT_FOUND.toString();
+                statusName = Status.OBJECT_NOT_FOUND.toString();
                 alt = "notfound icon";
                 title = "Not found";
                 break;
 
             default:
-                statusName = StatusUtils.Status.SUSPENDED.toString();
+                statusName = Status.SUSPENDED.toString();
                 alt = "inactive icon";
                 title = "Disabled";
         }
@@ -359,75 +317,4 @@ public class StatusUtils implements Seri
 
         return imagePanel;
     }
-
-    public static class ConnObjectWrapper implements Serializable {
-
-        private static final long serialVersionUID = 9083721948999924299L;
-
-        private final AbstractAttributableTO attributable;
-
-        private final String resourceName;
-
-        private final ConnObjectTO connObjectTO;
-
-        public ConnObjectWrapper(AbstractAttributableTO attributable, String resourceName, ConnObjectTO connObjectTO) {
-            this.attributable = attributable;
-            this.resourceName = resourceName;
-            this.connObjectTO = connObjectTO;
-        }
-
-        public AbstractAttributableTO getAttributable() {
-            return attributable;
-        }
-
-        public String getResourceName() {
-            return resourceName;
-        }
-
-        public ConnObjectTO getConnObjectTO() {
-            return connObjectTO;
-        }
-    }
-
-    public static abstract class StatusBeanProvider extends SortableDataProvider<StatusBean, String> {
-
-        private static final long serialVersionUID = 4287357360778016173L;
-
-        private SortableDataProviderComparator<StatusBean> comparator;
-
-        public StatusBeanProvider(final String sort) {
-            //Default sorting
-            setSort(sort, SortOrder.ASCENDING);
-            comparator = new SortableDataProviderComparator<StatusBean>(this);
-        }
-
-        @Override
-        public Iterator<StatusBean> iterator(final long first, final long count) {
-            List<StatusBean> list = getStatusBeans();
-
-            Collections.sort(list, comparator);
-
-            return list.subList((int) first, (int) first + (int) count).iterator();
-        }
-
-        @Override
-        public long size() {
-            return getStatusBeans().size();
-        }
-
-        @Override
-        public IModel<StatusBean> model(final StatusBean resource) {
-            return new AbstractReadOnlyModel<StatusBean>() {
-
-                private static final long serialVersionUID = -7802635613997243712L;
-
-                @Override
-                public StatusBean getObject() {
-                    return resource;
-                }
-            };
-        }
-
-        public abstract List<StatusBean> getStatusBeans();
-    }
 }

Copied: syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/AbstractStatusModalPage.java (from r1536599, syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/AbstractStatusModlaPage.java)
URL: http://svn.apache.org/viewvc/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/AbstractStatusModalPage.java?p2=syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/AbstractStatusModalPage.java&p1=syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/AbstractStatusModlaPage.java&r1=1536599&r2=1537047&rev=1537047&view=diff
==============================================================================
--- syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/AbstractStatusModlaPage.java (original)
+++ syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/AbstractStatusModalPage.java Wed Oct 30 11:26:19 2013
@@ -15,7 +15,7 @@
  */
 package org.apache.syncope.console.pages;
 
-public class AbstractStatusModlaPage extends BaseModalPage {
+public class AbstractStatusModalPage extends BaseModalPage {
 
     protected static final long serialVersionUID = 6633408683036028540L;
 

Modified: syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/EditUserModalPage.java
URL: http://svn.apache.org/viewvc/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/EditUserModalPage.java?rev=1537047&r1=1537046&r2=1537047&view=diff
==============================================================================
--- syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/EditUserModalPage.java (original)
+++ syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/EditUserModalPage.java Wed Oct 30 11:26:19 2013
@@ -23,7 +23,7 @@ import java.util.ArrayList;
 import org.apache.syncope.common.mod.UserMod;
 import org.apache.syncope.common.to.UserTO;
 import org.apache.syncope.common.util.AttributableOperations;
-import org.apache.syncope.console.commons.StatusBean;
+import org.apache.syncope.console.commons.status.StatusBean;
 import org.apache.syncope.console.pages.panels.AccountInformationPanel;
 import org.apache.syncope.console.pages.panels.MembershipsPanel;
 import org.apache.syncope.console.pages.panels.ResourcesPanel;
@@ -85,7 +85,7 @@ public class EditUserModalPage extends U
             final UserMod userMod = AttributableOperations.diff(updatedUserTO, initialUserTO);
 
             if (statusPanel != null) {
-                userMod.setPwdPropRequest(statusPanel.getPropagationRequestTO());
+                userMod.setPwdPropRequest(statusPanel.getStatusMod());
             }
 
             // update user just if it is changed

Modified: syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/Login.java
URL: http://svn.apache.org/viewvc/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/Login.java?rev=1537047&r1=1537046&r2=1537047&view=diff
==============================================================================
--- syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/Login.java (original)
+++ syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/Login.java Wed Oct 30 11:26:19 2013
@@ -19,20 +19,19 @@
 package org.apache.syncope.console.pages;
 
 import java.security.AccessControlException;
+import java.util.List;
 import java.util.Locale;
-import java.util.Set;
 import org.apache.http.HttpResponse;
 import org.apache.http.client.methods.HttpGet;
 import org.apache.http.impl.client.DefaultHttpClient;
 import org.apache.http.util.EntityUtils;
 import org.apache.syncope.common.services.EntitlementService;
-import org.apache.syncope.common.services.UserRequestService;
 import org.apache.syncope.common.to.EntitlementTO;
 import org.apache.syncope.common.to.UserTO;
 import org.apache.syncope.common.util.CollectionWrapper;
-import org.apache.syncope.common.validation.SyncopeClientException;
 import org.apache.syncope.console.SyncopeSession;
 import org.apache.syncope.console.commons.Constants;
+import org.apache.syncope.console.rest.UserRequestRestClient;
 import org.apache.syncope.console.wicket.ajax.markup.html.ClearIndicatingAjaxLink;
 import org.apache.syncope.console.wicket.markup.html.form.LinkPanel;
 import org.apache.wicket.Page;
@@ -83,6 +82,9 @@ public class Login extends WebPage {
     @SpringBean(name = "anonymousKey")
     private String anonymousKey;
 
+    @SpringBean
+    private UserRequestRestClient userReqRestClient;
+
     private Form<Void> form;
 
     private TextField<String> userIdField;
@@ -143,7 +145,7 @@ public class Login extends WebPage {
         add(editProfileModalWin);
 
         Fragment selfRegFrag;
-        if (isSelfRegistrationAllowed()) {
+        if (userReqRestClient.isSelfRegistrationAllowed()) {
             selfRegFrag = new Fragment("selfRegistration", "selfRegAllowed", this);
 
             final AjaxLink<Void> selfRegLink = new ClearIndicatingAjaxLink<Void>("link", getPageReference()) {
@@ -191,8 +193,8 @@ public class Login extends WebPage {
     }
 
     private void authenticate(final String username, final String password) {
-        Set<EntitlementTO> entitlements = SyncopeSession.get().
-                getService(EntitlementService.class, username, password).getMyEntitlements();
+        List<EntitlementTO> entitlements = SyncopeSession.get().
+                getService(EntitlementService.class, username, password).getOwnEntitlements();
 
         SyncopeSession.get().setUsername(username);
         SyncopeSession.get().setPassword(password);
@@ -200,19 +202,6 @@ public class Login extends WebPage {
         SyncopeSession.get().setVersion(getSyncopeVersion());
     }
 
-    private boolean isSelfRegistrationAllowed() {
-        Boolean result = null;
-        try {
-            result = SyncopeSession.get().getService(UserRequestService.class).isCreateAllowed();
-        } catch (SyncopeClientException e) {
-            LOG.error("While seeking if self registration is allowed", e);
-        }
-
-        return result == null
-                ? false
-                : result.booleanValue();
-    }
-
     private String getSyncopeVersion() {
         String version = "";
         try {

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=1537047&r1=1537046&r2=1537047&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 Wed Oct 30 11:26:19 2013
@@ -31,10 +31,12 @@ import org.apache.syncope.common.to.Bulk
 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.StatusBean;
-import org.apache.syncope.console.commons.StatusUtils;
-import org.apache.syncope.console.commons.StatusUtils.ConnObjectWrapper;
+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.commons.status.ConnObjectWrapper;
 import org.apache.syncope.console.pages.panels.ActionDataTablePanel;
 import org.apache.syncope.console.wicket.markup.html.form.ActionLink;
 import org.apache.wicket.PageReference;
@@ -49,7 +51,7 @@ import org.apache.wicket.markup.repeater
 import org.apache.wicket.model.IModel;
 import org.apache.wicket.model.StringResourceModel;
 
-public class ProvisioningModalPage<T extends AbstractAttributableTO> extends AbstractStatusModlaPage {
+public class ProvisioningModalPage<T extends AbstractAttributableTO> extends AbstractStatusModalPage {
 
     private static final long serialVersionUID = 4114026480146090961L;
 
@@ -82,31 +84,36 @@ public class ProvisioningModalPage<T ext
 
         final List<IColumn<StatusBean, String>> columns = new ArrayList<IColumn<StatusBean, String>>();
         columns.add(new PropertyColumn<StatusBean, String>(
-                new StringResourceModel("id", this, null, "Attributable id"), "attributableId", "attributableId"));
+                new StringResourceModel("id", this, null, "Attributable id"),
+                "attributableId", "attributableId"));
         columns.add(new PropertyColumn<StatusBean, String>(
-                new StringResourceModel("name", this, null, "Attributable name"), "attributableName", "attributableName"));
+                new StringResourceModel("name", this, null, "Attributable name"),
+                "attributableName", "attributableName"));
         columns.add(new PropertyColumn<StatusBean, String>(
-                new StringResourceModel("resourceName", this, null, "Resource name"), "resourceName", "resourceName"));
+                new StringResourceModel("resourceName", this, null, "Resource name"),
+                "resourceName", "resourceName"));
         columns.add(new PropertyColumn<StatusBean, String>(
-                new StringResourceModel("accountLink", this, null, "Account link"), "accountLink", "accountLink"));
+                new StringResourceModel("accountLink", this, null, "Account link"),
+                "accountLink", "accountLink"));
         columns.add(new AbstractColumn<StatusBean, String>(
                 new StringResourceModel("status", this, null, "")) {
 
-            private static final long serialVersionUID = -3503023501954863131L;
+                    private static final long serialVersionUID = -3503023501954863131L;
 
-            @Override
-            public String getCssClass() {
-                return "action";
-            }
-
-            @Override
-            public void populateItem(
-                    final Item<ICellPopulator<StatusBean>> cellItem,
-                    final String componentId,
-                    final IModel<StatusBean> model) {
-                cellItem.add(statusUtils.getStatusImagePanel(componentId, model.getObject().getStatus()));
-            }
-        });
+                    @Override
+                    public String getCssClass() {
+                        return "action";
+                    }
+
+                    @Override
+                    public void populateItem(
+                            final Item<ICellPopulator<StatusBean>> cellItem,
+                            final String componentId,
+                            final IModel<StatusBean> model) {
+                                cellItem.
+                                add(statusUtils.getStatusImagePanel(componentId, model.getObject().getStatus()));
+                            }
+                });
 
         final ActionDataTablePanel<StatusBean, String> table = new ActionDataTablePanel<StatusBean, String>(
                 "resourceDatatable",
@@ -124,7 +131,7 @@ public class ProvisioningModalPage<T ext
             @Override
             public void onClick(final AjaxRequestTarget target) {
                 try {
-                    bulkAssociationAction(target, BulkAssociationAction.Type.UNLINK, table, columns);
+                    bulkAssociationAction(target, ResourceAssociationActionType.UNLINK, table, columns);
                 } catch (Exception e) {
                     LOG.error("Error unlinkink resources", e);
                     error(getString(Constants.ERROR) + ": " + e.getMessage());
@@ -140,7 +147,7 @@ public class ProvisioningModalPage<T ext
             @Override
             public void onClick(final AjaxRequestTarget target) {
                 try {
-                    bulkAssociationAction(target, BulkAssociationAction.Type.DEPROVISION, table, columns);
+                    bulkAssociationAction(target, ResourceAssociationActionType.DEPROVISION, table, columns);
                 } catch (Exception e) {
                     LOG.error("Error de-provisioning user", e);
                     error(getString(Constants.ERROR) + ": " + e.getMessage());
@@ -156,7 +163,7 @@ public class ProvisioningModalPage<T ext
             @Override
             public void onClick(final AjaxRequestTarget target) {
                 try {
-                    bulkAssociationAction(target, BulkAssociationAction.Type.UNASSIGN, table, columns);
+                    bulkAssociationAction(target, ResourceAssociationActionType.UNASSIGN, table, columns);
                 } catch (Exception e) {
                     LOG.error("Error unassigning resources", e);
                     error(getString(Constants.ERROR) + ": " + e.getMessage());
@@ -170,7 +177,7 @@ public class ProvisioningModalPage<T ext
         add(table);
     }
 
-    private class StatusBeanProvider extends StatusUtils.StatusBeanProvider {
+    private class StatusBeanProvider extends AbstractStatusBeanProvider {
 
         private static final long serialVersionUID = 4287357360778016173L;
 
@@ -200,8 +207,8 @@ public class ProvisioningModalPage<T ext
                     (List<AbstractAttributableTO>) attributables, Collections.<String>singleton(resourceTO.getName()));
 
             final List<StatusBean> statusBeans = new ArrayList<StatusBean>(connObjects.size() + 1);
-            final LinkedHashMap<String, StatusBean> initialStatusBeanMap =
-                    new LinkedHashMap<String, StatusBean>(connObjects.size());
+            final LinkedHashMap<String, StatusBean> initialStatusBeanMap = new LinkedHashMap<String, StatusBean>(
+                    connObjects.size());
 
             for (ConnObjectWrapper entry : connObjects) {
                 final StatusBean statusBean = statusUtils.getStatusBean(
@@ -220,7 +227,7 @@ public class ProvisioningModalPage<T ext
 
     private void bulkAssociationAction(
             final AjaxRequestTarget target,
-            final BulkAssociationAction.Type type,
+            final ResourceAssociationActionType type,
             final ActionDataTablePanel<StatusBean, String> table,
             final List<IColumn<StatusBean, String>> columns) {
 
@@ -233,16 +240,16 @@ public class ProvisioningModalPage<T ext
             bulkAction.getTargets().add(bean.getAttributableId());
         }
 
-        if (!beans.isEmpty()) {
-            final BulkActionRes res =
-                    resourceRestClient.bulkAssociationAction(resourceTO.getName(), bulkAction, typeRef);
+        if (beans.isEmpty()) {
+            window.close(target);
+        } else {
+            final BulkActionRes res = resourceRestClient.bulkAssociationAction(
+                    resourceTO.getName(), bulkAction, typeRef);
 
             ((BasePage) pageRef.getPage()).setModalResult(true);
 
             setResponsePage(new BulkActionResultModalPage<StatusBean, String>(
                     window, beans, columns, res, "attributableId"));
-        } else {
-            window.close(target);
         }
     }
 }

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=1537047&r1=1537046&r2=1537047&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 Wed Oct 30 11:26:19 2013
@@ -40,7 +40,8 @@ import org.apache.syncope.common.types.P
 import org.apache.syncope.console.SyncopeSession;
 import org.apache.syncope.console.commons.ConnIdSpecialAttributeName;
 import org.apache.syncope.console.commons.Constants;
-import org.apache.syncope.console.commons.StatusUtils;
+import org.apache.syncope.console.commons.status.Status;
+import org.apache.syncope.console.commons.status.StatusUtils;
 import org.apache.wicket.Component;
 import org.apache.wicket.Page;
 import org.apache.wicket.ajax.AjaxRequestTarget;
@@ -187,7 +188,7 @@ public class ResultStatusModalPage exten
                         case SUCCESS:
                         case SUBMITTED:
                         case CREATED:
-                            image = new Image("icon", IMG_STATUSES + StatusUtils.Status.ACTIVE.toString()
+                            image = new Image("icon", IMG_STATUSES + Status.ACTIVE.toString()
                                     + Constants.PNG_EXT);
                             alt = "success icon";
                             title = "success";
@@ -196,7 +197,7 @@ public class ResultStatusModalPage exten
                             break;
 
                         default:
-                            image = new Image("icon", IMG_STATUSES + StatusUtils.Status.SUSPENDED.toString()
+                            image = new Image("icon", IMG_STATUSES + Status.SUSPENDED.toString()
                                     + Constants.PNG_EXT);
                             alt = "failure icon";
                             title = "failure";
@@ -392,14 +393,14 @@ public class ResultStatusModalPage exten
                 attributable, resourceName, objectTO, this.attributable instanceof RoleTO).getStatus()) {
 
             case ACTIVE:
-                image = new Image("status", IMG_STATUSES + StatusUtils.Status.ACTIVE.toString()
+                image = new Image("status", IMG_STATUSES + Status.ACTIVE.toString()
                         + Constants.PNG_EXT);
                 alt = "active icon";
                 title = "Enabled";
                 break;
 
             case SUSPENDED:
-                image = new Image("status", IMG_STATUSES + StatusUtils.Status.SUSPENDED.toString()
+                image = new Image("status", IMG_STATUSES + Status.SUSPENDED.toString()
                         + Constants.PNG_EXT);
                 alt = "inactive icon";
                 title = "Disabled";

Modified: syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/RoleModalPage.java
URL: http://svn.apache.org/viewvc/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/RoleModalPage.java?rev=1537047&r1=1537046&r2=1537047&view=diff
==============================================================================
--- syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/RoleModalPage.java (original)
+++ syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/RoleModalPage.java Wed Oct 30 11:26:19 2013
@@ -25,7 +25,6 @@ import org.apache.syncope.common.to.Role
 import org.apache.syncope.common.util.AttributableOperations;
 import org.apache.syncope.console.commons.Constants;
 import org.apache.syncope.console.pages.panels.RolePanel;
-import org.apache.syncope.console.rest.RoleRestClient;
 import org.apache.wicket.PageReference;
 import org.apache.wicket.ajax.AjaxRequestTarget;
 import org.apache.wicket.ajax.markup.html.form.AjaxButton;
@@ -36,13 +35,14 @@ import org.apache.wicket.markup.html.bas
 import org.apache.wicket.markup.html.form.Form;
 import org.apache.wicket.model.CompoundPropertyModel;
 import org.apache.wicket.model.ResourceModel;
-import org.apache.wicket.spring.injection.annot.SpringBean;
 
 /**
  * Modal window with Role form.
  */
 public class RoleModalPage extends BaseModalPage {
 
+    private static final long serialVersionUID = -1732493223434085205L;
+
     public enum Mode {
 
         ADMIN,
@@ -50,11 +50,6 @@ public class RoleModalPage extends BaseM
 
     }
 
-    private static final long serialVersionUID = -1732493223434085205L;
-
-    @SpringBean
-    private RoleRestClient roleRestClient;
-
     protected final PageReference pageRef;
 
     protected final ModalWindow window;
@@ -71,7 +66,7 @@ public class RoleModalPage extends BaseM
         this(pageRef, window, roleTO, Mode.ADMIN);
     }
 
-    @SuppressWarnings({"unchecked", "rawtypes"})
+    @SuppressWarnings({ "unchecked", "rawtypes" })
     public RoleModalPage(final PageReference pageRef, final ModalWindow window, final RoleTO roleTO, final Mode mode) {
         super();
 
@@ -90,8 +85,8 @@ public class RoleModalPage extends BaseM
 
         form.setModel(new CompoundPropertyModel(roleTO));
 
-        this.rolePanel = new RolePanel.Builder("rolePanel").form(form).roleTO(roleTO).roleModalPageMode(mode)
-                .pageRef(getPageReference()).build();
+        this.rolePanel = new RolePanel.Builder("rolePanel").form(form).roleTO(roleTO).
+                roleModalPageMode(mode).pageRef(getPageReference()).build();
         form.add(rolePanel);
 
         final AjaxButton submit = new IndicatingAjaxButton(SUBMIT, new ResourceModel(SUBMIT)) {