Author: jbernhardt
Date: Thu Jan 24 15:52:51 2013
New Revision: 1438055

URL: http://svn.apache.org/viewvc?rev=1438055&view=rev
Log:
[SYNCOPE-231]
* Adding JAX-B Annotations for TOs and Types
* Adding REST Header constant for IDs

Added:
    
syncope/trunk/common/src/main/java/org/apache/syncope/common/to/JobClassTO.java
    
syncope/trunk/common/src/main/java/org/apache/syncope/common/to/SyncActionClassTO.java
    
syncope/trunk/common/src/main/java/org/apache/syncope/common/types/LoggerType.java
Modified:
    
syncope/trunk/common/src/main/java/org/apache/syncope/common/SyncopeConstants.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/AttributeMod.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/UserMod.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/AttributeTO.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/NotificationTO.java
    
syncope/trunk/common/src/main/java/org/apache/syncope/common/to/NotificationTaskTO.java
    
syncope/trunk/common/src/main/java/org/apache/syncope/common/to/PropagationStatusTO.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/SchedTaskTO.java
    
syncope/trunk/common/src/main/java/org/apache/syncope/common/to/SyncTaskTO.java
    
syncope/trunk/common/src/main/java/org/apache/syncope/common/to/TaskExecTO.java
    syncope/trunk/common/src/main/java/org/apache/syncope/common/to/TaskTO.java
    
syncope/trunk/common/src/main/java/org/apache/syncope/common/to/UserRequestTO.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/PropagationMode.java
    
syncope/trunk/common/src/main/java/org/apache/syncope/common/types/PropagationTaskExecStatus.java
    
syncope/trunk/common/src/main/java/org/apache/syncope/common/types/ResourceOperation.java
    
syncope/trunk/common/src/main/java/org/apache/syncope/common/types/TaskType.java
    
syncope/trunk/common/src/main/java/org/apache/syncope/common/types/TraceLevel.java
    
syncope/trunk/common/src/main/java/org/apache/syncope/common/types/UserRequestType.java
    
syncope/trunk/common/src/main/java/org/apache/syncope/common/util/CollectionWrapper.java
    
syncope/trunk/core/src/test/java/org/apache/syncope/core/rest/AbstractTest.java

Modified: 
syncope/trunk/common/src/main/java/org/apache/syncope/common/SyncopeConstants.java
URL: 
http://svn.apache.org/viewvc/syncope/trunk/common/src/main/java/org/apache/syncope/common/SyncopeConstants.java?rev=1438055&r1=1438054&r2=1438055&view=diff
==============================================================================
--- 
syncope/trunk/common/src/main/java/org/apache/syncope/common/SyncopeConstants.java
 (original)
+++ 
syncope/trunk/common/src/main/java/org/apache/syncope/common/SyncopeConstants.java
 Thu Jan 24 15:52:51 2013
@@ -31,4 +31,11 @@ public class SyncopeConstants {
 
     public static final String DEFAULT_DATE_PATTERN = "yyyy-MM-dd'T'HH:mm:ssZ";
 
+    /**
+     * This constant will be used to identify HTTP header key to look for 
object ID assigned
+     * to an object after its creation. HTTP Response after PUT operation 
should contain this
+     * key with resource id as its value.
+     */
+    public static final String REST_HEADER_ID = "org.apache.syncope.id";
+
 }

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=1438055&r1=1438054&r2=1438055&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 Jan 24 15:52:51 2013
@@ -21,13 +21,18 @@ package org.apache.syncope.common.mod;
 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;
+
 import org.apache.syncope.common.AbstractBaseBean;
 
 /**
  * Abstract base class for objects that can have attributes removed, added or 
updated.
- * 
+ *
  * Attributes can be regular attributes, derived attributes, virtual 
attributes and resources.
  */
+@XmlType
 public abstract class AbstractAttributableMod extends AbstractBaseBean {
 
     private static final long serialVersionUID = 3241118574016303198L;
@@ -67,9 +72,9 @@ public abstract class AbstractAttributab
 
     /**
      * Convenience method for removing entire attribute instead removing each 
value in an AttributeMod object
-     * 
+     *
      * @param name (schema) of attribute to be removed.
-     * @return true on success. 
+     * @return true on success.
      */
     public boolean addAttributeToBeRemoved(String attribute) {
         return attributesToBeRemoved.add(attribute);
@@ -77,14 +82,16 @@ public abstract class AbstractAttributab
 
     /**
      * Convenience method for removing entire attribute instead removing each 
value in an AttributeMod object
-     * 
+     *
      * @param name (schema) of attribute to be removed.
-     * @return true on success. 
+     * @return true on success.
      */
     public boolean removeAttributeToBeRemoved(String attribute) {
         return attributesToBeRemoved.remove(attribute);
     }
 
+    @XmlElementWrapper(name = "attributesToBeRemoved")
+    @XmlElement(name = "attribute")
     public Set<String> getAttributesToBeRemoved() {
         return attributesToBeRemoved;
     }
@@ -94,8 +101,8 @@ public abstract class AbstractAttributab
     }
 
     /**
-     * Add an attribute modification object. AttributeMod itself indicates how 
the attribute should be modified. 
-     * 
+     * Add an attribute modification object. AttributeMod itself indicates how 
the attribute should be modified.
+     *
      * @param attribute modification object
      * @see AttributeMod
      * @return true on success
@@ -105,8 +112,8 @@ public abstract class AbstractAttributab
     }
 
     /**
-     * Remove an attribute modification object. AttributeMod itself indicates 
how the attribute should be modified. 
-     * 
+     * Remove an attribute modification object. AttributeMod itself indicates 
how the attribute should be modified.
+     *
      * @param attribute modification object
      * @see AttributeMod
      * @return true on success
@@ -115,6 +122,8 @@ public abstract class AbstractAttributab
         return attributesToBeUpdated.remove(attribute);
     }
 
+    @XmlElementWrapper(name = "attributesToBeUpdated")
+    @XmlElement(name = "attributeMod")
     public Set<AttributeMod> getAttributesToBeUpdated() {
         return attributesToBeUpdated;
     }
@@ -124,8 +133,8 @@ public abstract class AbstractAttributab
     }
 
     /**
-     * Add an attribute modification object. AttributeMod itself indicates how 
the attribute should be modified. 
-     * 
+     * Add an attribute modification object. AttributeMod itself indicates how 
the attribute should be modified.
+     *
      * @param attribute modification object
      * @see AttributeMod
      * @return true on success
@@ -135,8 +144,8 @@ public abstract class AbstractAttributab
     }
 
     /**
-     * Add a derivedattribute. Value is calculated by its definition. 
-     * 
+     * Add a derivedattribute. Value is calculated by its definition.
+     *
      * @param derivedAttribute
      * @return true on success
      */
@@ -144,6 +153,8 @@ public abstract class AbstractAttributab
         return derivedAttributesToBeAdded.remove(derivedAttribute);
     }
 
+    @XmlElementWrapper(name = "derivedAttributesToBeAdded")
+    @XmlElement(name = "attributeName")
     public Set<String> getDerivedAttributesToBeAdded() {
         return derivedAttributesToBeAdded;
     }
@@ -161,6 +172,8 @@ public abstract class AbstractAttributab
         return derivedAttributesToBeRemoved.remove(derivedAttribute);
     }
 
+    @XmlElementWrapper(name = "derivedAttributesToBeRemoved")
+    @XmlElement(name = "attribute")
     public Set<String> getDerivedAttributesToBeRemoved() {
         return derivedAttributesToBeRemoved;
     }
@@ -170,6 +183,8 @@ public abstract class AbstractAttributab
         this.derivedAttributesToBeRemoved = derivedAttributesToBeRemoved;
     }
 
+    @XmlElementWrapper(name = "virtualAttributesToBeRemoved")
+    @XmlElement(name = "attribute")
     public Set<String> getVirtualAttributesToBeRemoved() {
         return virtualAttributesToBeRemoved;
     }
@@ -199,6 +214,8 @@ public abstract class AbstractAttributab
         return 
virtualAttributesToBeUpdated.remove(virtualAttributeToBeUpdated);
     }
 
+    @XmlElementWrapper(name = "derivedAttributesToBeUpdated")
+    @XmlElement(name = "attribute")
     public Set<AttributeMod> getVirtualAttributesToBeUpdated() {
         return virtualAttributesToBeUpdated;
     }
@@ -216,6 +233,8 @@ public abstract class AbstractAttributab
         return resourcesToBeAdded.remove(resource);
     }
 
+    @XmlElementWrapper(name = "resourcesToBeAdded")
+    @XmlElement(name = "resource")
     public Set<String> getResourcesToBeAdded() {
         return resourcesToBeAdded;
     }
@@ -232,6 +251,8 @@ public abstract class AbstractAttributab
         return resourcesToBeRemoved.remove(resource);
     }
 
+    @XmlElementWrapper(name = "resourcesToBeRemoved")
+    @XmlElement(name = "resource")
     public Set<String> getResourcesToBeRemoved() {
         return resourcesToBeRemoved;
     }

Modified: 
syncope/trunk/common/src/main/java/org/apache/syncope/common/mod/AttributeMod.java
URL: 
http://svn.apache.org/viewvc/syncope/trunk/common/src/main/java/org/apache/syncope/common/mod/AttributeMod.java?rev=1438055&r1=1438054&r2=1438055&view=diff
==============================================================================
--- 
syncope/trunk/common/src/main/java/org/apache/syncope/common/mod/AttributeMod.java
 (original)
+++ 
syncope/trunk/common/src/main/java/org/apache/syncope/common/mod/AttributeMod.java
 Thu Jan 24 15:52:51 2013
@@ -20,9 +20,17 @@ package org.apache.syncope.common.mod;
 
 import java.util.ArrayList;
 import java.util.List;
+
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlElementWrapper;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
 import org.codehaus.jackson.annotate.JsonIgnore;
 import org.apache.syncope.common.AbstractBaseBean;
 
+@XmlRootElement
+@XmlType
 public class AttributeMod extends AbstractBaseBean {
 
     private static final long serialVersionUID = -913573979137431406L;
@@ -56,6 +64,8 @@ public class AttributeMod extends Abstra
         return valuesToBeAdded.remove(value);
     }
 
+    @XmlElementWrapper(name = "valuesToBeAdded")
+    @XmlElement(name = "value")
     public List<String> getValuesToBeAdded() {
         return valuesToBeAdded;
     }
@@ -72,6 +82,8 @@ public class AttributeMod extends Abstra
         return valuesToBeRemoved.remove(value);
     }
 
+    @XmlElementWrapper(name = "valuesToBeRemoved")
+    @XmlElement(name = "value")
     public List<String> getValuesToBeRemoved() {
         return valuesToBeRemoved;
     }

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=1438055&r1=1438054&r2=1438055&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 Jan 24 15:52:51 2013
@@ -20,8 +20,16 @@ package org.apache.syncope.common.mod;
 
 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;
+
 import org.codehaus.jackson.annotate.JsonIgnore;
 
+@XmlRootElement
+@XmlType
 public class MembershipMod extends AbstractAttributableMod {
 
     private static final long serialVersionUID = 2511869129977331525L;
@@ -46,11 +54,15 @@ public class MembershipMod extends Abstr
         return false;
     }
 
+    @XmlElementWrapper(name = "resourcesToBeAdded")
+    @XmlElement(name = "resource")
     @Override
     public Set<String> getResourcesToBeAdded() {
         return Collections.emptySet();
     }
 
+    @XmlElementWrapper(name = "resourcesToBeRemoved")
+    @XmlElement(name = "resource")
     @Override
     public Set<String> getResourcesToBeRemoved() {
         return Collections.emptySet();

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=1438055&r1=1438054&r2=1438055&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 Jan 24 15:52:51 2013
@@ -20,8 +20,16 @@ package org.apache.syncope.common.mod;
 
 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.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
 import org.codehaus.jackson.annotate.JsonIgnore;
 
+@XmlRootElement(name = "userMod")
+@XmlType
 public class UserMod extends AbstractAttributableMod {
 
     private static final long serialVersionUID = 3081848906558106204L;
@@ -49,6 +57,8 @@ public class UserMod extends AbstractAtt
         return membershipsToBeAdded.remove(membershipMod);
     }
 
+    @XmlElementWrapper(name = "membershipsToBeAdded")
+    @XmlElement(name = "membership")
     public Set<MembershipMod> getMembershipsToBeAdded() {
         return membershipsToBeAdded;
     }
@@ -81,6 +91,8 @@ public class UserMod extends AbstractAtt
         return membershipsToBeRemoved.remove(membershipToBeRemoved);
     }
 
+    @XmlElementWrapper(name = "membershipsToBeRemoved")
+    @XmlElement(name = "membership")
     public Set<Long> getMembershipsToBeRemoved() {
         return membershipsToBeRemoved;
     }

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=1438055&r1=1438054&r2=1438055&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 Jan 24 15:52:51 2013
@@ -25,8 +25,14 @@ 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;
+
 import org.codehaus.jackson.annotate.JsonIgnore;
 
+@XmlType
 public abstract class AbstractAttributableTO extends ConnObjectTO {
 
     private static final long serialVersionUID = 4083884098736820255L;
@@ -39,7 +45,7 @@ public abstract class AbstractAttributab
 
     private Set<String> resources;
 
-    private List<PropagationStatusTO> propagationStatusTOs;
+    private final List<PropagationStatusTO> propagationStatusTOs;
 
     protected AbstractAttributableTO() {
         super();
@@ -100,6 +106,8 @@ public abstract class AbstractAttributab
         return derivedAttributes.remove(derivedAttribute);
     }
 
+    @XmlElementWrapper(name = "derivedAttributes")
+    @XmlElement(name = "attribute")
     public List<AttributeTO> getDerivedAttributes() {
         return derivedAttributes;
     }
@@ -117,6 +125,8 @@ public abstract class AbstractAttributab
         return virtualAttributes.remove(virtualAttribute);
     }
 
+    @XmlElementWrapper(name = "virtualAttributes")
+    @XmlElement(name = "attribute")
     public List<AttributeTO> getVirtualAttributes() {
         return virtualAttributes;
     }
@@ -133,6 +143,8 @@ public abstract class AbstractAttributab
         return resources.remove(resource);
     }
 
+    @XmlElementWrapper(name = "resources")
+    @XmlElement(name = "resource")
     public Set<String> getResources() {
         return resources;
     }
@@ -160,6 +172,8 @@ public abstract class AbstractAttributab
         return false;
     }
 
+    @XmlElementWrapper(name = "propagationStatuses")
+    @XmlElement(name = "propagationStatus")
     public List<PropagationStatusTO> getPropagationStatusTOs() {
         return propagationStatusTOs;
     }

Modified: 
syncope/trunk/common/src/main/java/org/apache/syncope/common/to/AttributeTO.java
URL: 
http://svn.apache.org/viewvc/syncope/trunk/common/src/main/java/org/apache/syncope/common/to/AttributeTO.java?rev=1438055&r1=1438054&r2=1438055&view=diff
==============================================================================
--- 
syncope/trunk/common/src/main/java/org/apache/syncope/common/to/AttributeTO.java
 (original)
+++ 
syncope/trunk/common/src/main/java/org/apache/syncope/common/to/AttributeTO.java
 Thu Jan 24 15:52:51 2013
@@ -21,8 +21,15 @@ package org.apache.syncope.common.to;
 import java.util.ArrayList;
 import java.util.List;
 
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlElementWrapper;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
 import org.apache.syncope.common.AbstractBaseBean;
 
+@XmlRootElement(name = "attribute")
+@XmlType
 public class AttributeTO extends AbstractBaseBean {
 
     private static final long serialVersionUID = 4941691338796323623L;
@@ -89,6 +96,8 @@ public class AttributeTO extends Abstrac
     /**
      * @return attribute values as strings
      */
+    //@XmlElementWrapper(name = "values")
+    @XmlElement(name = "value")
     public List<String> getValues() {
         return values;
     }

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=1438055&r1=1438054&r2=1438055&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 Jan 24 15:52:51 2013
@@ -24,9 +24,16 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlElementWrapper;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
 import org.apache.syncope.common.AbstractBaseBean;
 import org.codehaus.jackson.annotate.JsonIgnore;
 
+@XmlRootElement(name = "connector")
+@XmlType
 public class ConnObjectTO extends AbstractBaseBean {
 
     private static final long serialVersionUID = 5139554911265442497L;
@@ -47,6 +54,8 @@ public class ConnObjectTO extends Abstra
         return attributes.remove(attribute);
     }
 
+    @XmlElementWrapper(name = "attributes")
+    @XmlElement(name = "attribute")
     public List<AttributeTO> getAttributes() {
         return attributes;
     }

Added: 
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=1438055&view=auto
==============================================================================
--- 
syncope/trunk/common/src/main/java/org/apache/syncope/common/to/JobClassTO.java 
(added)
+++ 
syncope/trunk/common/src/main/java/org/apache/syncope/common/to/JobClassTO.java 
Thu Jan 24 15:52:51 2013
@@ -0,0 +1,53 @@
+/*
+ * 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.AbstractBaseBean;
+
+@XmlRootElement(name = "jobClass")
+@XmlType
+public class JobClassTO extends AbstractBaseBean {
+
+    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/MembershipTO.java
URL: 
http://svn.apache.org/viewvc/syncope/trunk/common/src/main/java/org/apache/syncope/common/to/MembershipTO.java?rev=1438055&r1=1438054&r2=1438055&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 Jan 24 15:52:51 2013
@@ -22,6 +22,13 @@ 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;
+
+@XmlRootElement(name = "membership")
+@XmlType
 public class MembershipTO extends AbstractAttributableTO {
 
     private static final long serialVersionUID = 5992828670273935861L;
@@ -57,6 +64,8 @@ public class MembershipTO extends Abstra
     }
 
     @Override
+    @XmlElementWrapper(name = "resources")
+    @XmlElement(name = "resource")
     public Set<String> getResources() {
         return Collections.<String>emptySet();
     }

Modified: 
syncope/trunk/common/src/main/java/org/apache/syncope/common/to/NotificationTO.java
URL: 
http://svn.apache.org/viewvc/syncope/trunk/common/src/main/java/org/apache/syncope/common/to/NotificationTO.java?rev=1438055&r1=1438054&r2=1438055&view=diff
==============================================================================
--- 
syncope/trunk/common/src/main/java/org/apache/syncope/common/to/NotificationTO.java
 (original)
+++ 
syncope/trunk/common/src/main/java/org/apache/syncope/common/to/NotificationTO.java
 Thu Jan 24 15:52:51 2013
@@ -21,14 +21,11 @@ package org.apache.syncope.common.to;
 import java.util.ArrayList;
 import java.util.List;
 
-import javax.xml.bind.annotation.XmlRootElement;
-
 import org.apache.syncope.common.AbstractBaseBean;
 import org.apache.syncope.common.search.NodeCond;
 import org.apache.syncope.common.types.IntMappingType;
 import org.apache.syncope.common.types.TraceLevel;
 
-@XmlRootElement
 public class NotificationTO extends AbstractBaseBean {
 
     private static final long serialVersionUID = -6145117115632592612L;

Modified: 
syncope/trunk/common/src/main/java/org/apache/syncope/common/to/NotificationTaskTO.java
URL: 
http://svn.apache.org/viewvc/syncope/trunk/common/src/main/java/org/apache/syncope/common/to/NotificationTaskTO.java?rev=1438055&r1=1438054&r2=1438055&view=diff
==============================================================================
--- 
syncope/trunk/common/src/main/java/org/apache/syncope/common/to/NotificationTaskTO.java
 (original)
+++ 
syncope/trunk/common/src/main/java/org/apache/syncope/common/to/NotificationTaskTO.java
 Thu Jan 24 15:52:51 2013
@@ -21,13 +21,20 @@ package org.apache.syncope.common.to;
 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.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
 import org.apache.syncope.common.types.TraceLevel;
 
+@XmlRootElement(name = "notificationTask")
+@XmlType
 public class NotificationTaskTO extends TaskTO {
 
     private static final long serialVersionUID = 371671242591093846L;
 
-    private Set<String> recipients;
+    private final Set<String> recipients = new HashSet<String>();
 
     private String sender;
 
@@ -41,12 +48,8 @@ public class NotificationTaskTO extends 
 
     private TraceLevel traceLevel;
 
-    public NotificationTaskTO() {
-        super();
-
-        recipients = new HashSet<String>();
-    }
-
+    @XmlElementWrapper(name = "recipients")
+    @XmlElement(name = "recipient")
     public Set<String> getRecipients() {
         return recipients;
     }

Modified: 
syncope/trunk/common/src/main/java/org/apache/syncope/common/to/PropagationStatusTO.java
URL: 
http://svn.apache.org/viewvc/syncope/trunk/common/src/main/java/org/apache/syncope/common/to/PropagationStatusTO.java?rev=1438055&r1=1438054&r2=1438055&view=diff
==============================================================================
--- 
syncope/trunk/common/src/main/java/org/apache/syncope/common/to/PropagationStatusTO.java
 (original)
+++ 
syncope/trunk/common/src/main/java/org/apache/syncope/common/to/PropagationStatusTO.java
 Thu Jan 24 15:52:51 2013
@@ -18,12 +18,17 @@
  */
 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.types.PropagationTaskExecStatus;
 
 /**
  * Single propagation status.
  */
+@XmlRootElement(name = "propagationStatus")
+@XmlType
 public class PropagationStatusTO extends AbstractBaseBean {
 
     /**

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=1438055&r1=1438054&r2=1438055&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 Jan 24 15:52:51 2013
@@ -18,10 +18,15 @@
  */
 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;
 
+@XmlRootElement(name = "propagationTask")
+@XmlType
 public class PropagationTaskTO extends TaskTO {
 
     private static final long serialVersionUID = 386450127003321197L;

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=1438055&r1=1438054&r2=1438055&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 Jan 24 15:52:51 2013
@@ -20,8 +20,16 @@ package org.apache.syncope.common.to;
 
 import java.util.ArrayList;
 import java.util.List;
+
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlElementWrapper;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
 import org.codehaus.jackson.annotate.JsonIgnoreProperties;
 
+@XmlRootElement(name = "role")
+@XmlType
 @JsonIgnoreProperties({"displayName"})
 public class RoleTO extends AbstractAttributableTO {
 
@@ -47,7 +55,7 @@ public class RoleTO extends AbstractAttr
 
     private boolean inheritAccountPolicy;
 
-    private List<String> entitlements;
+    private final List<String> entitlements;
 
     private Long passwordPolicy;
 
@@ -130,6 +138,8 @@ public class RoleTO extends AbstractAttr
         return entitlements.remove(entitlement);
     }
 
+    @XmlElementWrapper(name = "entitlements")
+    @XmlElement(name = "entitlement")
     public List<String> getEntitlements() {
         return entitlements;
     }

Modified: 
syncope/trunk/common/src/main/java/org/apache/syncope/common/to/SchedTaskTO.java
URL: 
http://svn.apache.org/viewvc/syncope/trunk/common/src/main/java/org/apache/syncope/common/to/SchedTaskTO.java?rev=1438055&r1=1438054&r2=1438055&view=diff
==============================================================================
--- 
syncope/trunk/common/src/main/java/org/apache/syncope/common/to/SchedTaskTO.java
 (original)
+++ 
syncope/trunk/common/src/main/java/org/apache/syncope/common/to/SchedTaskTO.java
 Thu Jan 24 15:52:51 2013
@@ -20,6 +20,11 @@ package org.apache.syncope.common.to;
 
 import java.util.Date;
 
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+@XmlRootElement(name = "schedTask")
+@XmlType
 public class SchedTaskTO extends TaskTO {
 
     private static final long serialVersionUID = -5722284116974636425L;

Added: 
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=1438055&view=auto
==============================================================================
--- 
syncope/trunk/common/src/main/java/org/apache/syncope/common/to/SyncActionClassTO.java
 (added)
+++ 
syncope/trunk/common/src/main/java/org/apache/syncope/common/to/SyncActionClassTO.java
 Thu Jan 24 15:52:51 2013
@@ -0,0 +1,53 @@
+/*
+ * 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.AbstractBaseBean;
+
+@XmlRootElement(name = "syncActionClass")
+@XmlType
+public class SyncActionClassTO extends AbstractBaseBean {
+
+    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/SyncTaskTO.java
URL: 
http://svn.apache.org/viewvc/syncope/trunk/common/src/main/java/org/apache/syncope/common/to/SyncTaskTO.java?rev=1438055&r1=1438054&r2=1438055&view=diff
==============================================================================
--- 
syncope/trunk/common/src/main/java/org/apache/syncope/common/to/SyncTaskTO.java 
(original)
+++ 
syncope/trunk/common/src/main/java/org/apache/syncope/common/to/SyncTaskTO.java 
Thu Jan 24 15:52:51 2013
@@ -18,6 +18,11 @@
  */
 package org.apache.syncope.common.to;
 
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+@XmlRootElement(name = "syncTask")
+@XmlType
 public class SyncTaskTO extends SchedTaskTO {
 
     private static final long serialVersionUID = -2143537546915809016L;

Modified: 
syncope/trunk/common/src/main/java/org/apache/syncope/common/to/TaskExecTO.java
URL: 
http://svn.apache.org/viewvc/syncope/trunk/common/src/main/java/org/apache/syncope/common/to/TaskExecTO.java?rev=1438055&r1=1438054&r2=1438055&view=diff
==============================================================================
--- 
syncope/trunk/common/src/main/java/org/apache/syncope/common/to/TaskExecTO.java 
(original)
+++ 
syncope/trunk/common/src/main/java/org/apache/syncope/common/to/TaskExecTO.java 
Thu Jan 24 15:52:51 2013
@@ -18,6 +18,11 @@
  */
 package org.apache.syncope.common.to;
 
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+@XmlRootElement(name = "taskExecution")
+@XmlType
 public class TaskExecTO extends AbstractExecTO {
 
     private static final long serialVersionUID = -5401795154606268973L;

Modified: 
syncope/trunk/common/src/main/java/org/apache/syncope/common/to/TaskTO.java
URL: 
http://svn.apache.org/viewvc/syncope/trunk/common/src/main/java/org/apache/syncope/common/to/TaskTO.java?rev=1438055&r1=1438054&r2=1438055&view=diff
==============================================================================
--- syncope/trunk/common/src/main/java/org/apache/syncope/common/to/TaskTO.java 
(original)
+++ syncope/trunk/common/src/main/java/org/apache/syncope/common/to/TaskTO.java 
Thu Jan 24 15:52:51 2013
@@ -22,9 +22,16 @@ import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlElementWrapper;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
 import org.apache.syncope.common.AbstractBaseBean;
 
-public class TaskTO extends AbstractBaseBean {
+@XmlRootElement(name = "task")
+@XmlType
+public abstract class TaskTO extends AbstractBaseBean {
 
     private static final long serialVersionUID = 386450127003321197L;
 
@@ -32,17 +39,11 @@ public class TaskTO extends AbstractBase
 
     private String latestExecStatus;
 
-    private List<TaskExecTO> executions;
-    
-    private Date startDate;
-    
-    private Date endDate;
+    private List<TaskExecTO> executions = new ArrayList<TaskExecTO>();
 
-    public TaskTO() {
-        super();
+    private Date startDate;
 
-        executions = new ArrayList<TaskExecTO>();
-    }
+    private Date endDate;
 
     public long getId() {
         return id;
@@ -68,6 +69,8 @@ public class TaskTO extends AbstractBase
         return executions.remove(execution);
     }
 
+    @XmlElementWrapper(name = "excecutions")
+    @XmlElement(name = "excecution")
     public List<TaskExecTO> getExecutions() {
         return executions;
     }

Modified: 
syncope/trunk/common/src/main/java/org/apache/syncope/common/to/UserRequestTO.java
URL: 
http://svn.apache.org/viewvc/syncope/trunk/common/src/main/java/org/apache/syncope/common/to/UserRequestTO.java?rev=1438055&r1=1438054&r2=1438055&view=diff
==============================================================================
--- 
syncope/trunk/common/src/main/java/org/apache/syncope/common/to/UserRequestTO.java
 (original)
+++ 
syncope/trunk/common/src/main/java/org/apache/syncope/common/to/UserRequestTO.java
 Thu Jan 24 15:52:51 2013
@@ -18,10 +18,15 @@
  */
 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.mod.UserMod;
 import org.apache.syncope.common.types.UserRequestType;
 
+@XmlRootElement(name = "userRequest")
+@XmlType
 public class UserRequestTO extends AbstractBaseBean {
 
     private static final long serialVersionUID = 1228351243795629329L;

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=1438055&r1=1438054&r2=1438055&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 Jan 24 15:52:51 2013
@@ -25,10 +25,18 @@ import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlElementWrapper;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
 import org.apache.commons.lang.builder.ReflectionToStringBuilder;
 import org.apache.commons.lang.builder.ToStringStyle;
 import org.codehaus.jackson.annotate.JsonIgnore;
 
+@XmlRootElement(name = "user")
+@XmlType
 public class UserTO extends AbstractAttributableTO {
 
     private static final long serialVersionUID = 7791304495192615740L;
@@ -75,6 +83,8 @@ public class UserTO extends AbstractAttr
         return memberships.remove(membershipTO);
     }
 
+    @XmlElementWrapper(name = "memberships")
+    @XmlElement(name = "membership")
     public List<MembershipTO> getMemberships() {
         return memberships;
     }

Added: 
syncope/trunk/common/src/main/java/org/apache/syncope/common/types/LoggerType.java
URL: 
http://svn.apache.org/viewvc/syncope/trunk/common/src/main/java/org/apache/syncope/common/types/LoggerType.java?rev=1438055&view=auto
==============================================================================
--- 
syncope/trunk/common/src/main/java/org/apache/syncope/common/types/LoggerType.java
 (added)
+++ 
syncope/trunk/common/src/main/java/org/apache/syncope/common/types/LoggerType.java
 Thu Jan 24 15:52:51 2013
@@ -0,0 +1,41 @@
+/*
+ * 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 LoggerType {
+
+    /**
+     * This type describes a common logger used to handle system and 
application events.
+     */
+    NORMAL,
+
+    /**
+     * Audit logger only focus on security related events, usually logging how 
did what and when.
+     * In case of a security incident audit loggers should allow an 
administrator to recall all
+     * actions a certain user has done.
+     */
+    AUDIT;
+
+    public static LoggerType fromString(String value) {
+        return LoggerType.valueOf(value.toUpperCase());
+    }
+}

Modified: 
syncope/trunk/common/src/main/java/org/apache/syncope/common/types/PropagationMode.java
URL: 
http://svn.apache.org/viewvc/syncope/trunk/common/src/main/java/org/apache/syncope/common/types/PropagationMode.java?rev=1438055&r1=1438054&r2=1438055&view=diff
==============================================================================
--- 
syncope/trunk/common/src/main/java/org/apache/syncope/common/types/PropagationMode.java
 (original)
+++ 
syncope/trunk/common/src/main/java/org/apache/syncope/common/types/PropagationMode.java
 Thu Jan 24 15:52:51 2013
@@ -18,6 +18,9 @@
  */
 package org.apache.syncope.common.types;
 
+import javax.xml.bind.annotation.XmlEnum;
+
+@XmlEnum
 public enum PropagationMode {
 
     ONE_PHASE,

Modified: 
syncope/trunk/common/src/main/java/org/apache/syncope/common/types/PropagationTaskExecStatus.java
URL: 
http://svn.apache.org/viewvc/syncope/trunk/common/src/main/java/org/apache/syncope/common/types/PropagationTaskExecStatus.java?rev=1438055&r1=1438054&r2=1438055&view=diff
==============================================================================
--- 
syncope/trunk/common/src/main/java/org/apache/syncope/common/types/PropagationTaskExecStatus.java
 (original)
+++ 
syncope/trunk/common/src/main/java/org/apache/syncope/common/types/PropagationTaskExecStatus.java
 Thu Jan 24 15:52:51 2013
@@ -18,6 +18,8 @@
  */
 package org.apache.syncope.common.types;
 
+import javax.xml.bind.annotation.XmlEnum;
+
 /**
  * Status of a TaskExecution.
  *
@@ -28,6 +30,7 @@ package org.apache.syncope.common.types;
  *
  * @see TaskExecution
  */
+@XmlEnum
 public enum PropagationTaskExecStatus {
 
     CREATED,

Modified: 
syncope/trunk/common/src/main/java/org/apache/syncope/common/types/ResourceOperation.java
URL: 
http://svn.apache.org/viewvc/syncope/trunk/common/src/main/java/org/apache/syncope/common/types/ResourceOperation.java?rev=1438055&r1=1438054&r2=1438055&view=diff
==============================================================================
--- 
syncope/trunk/common/src/main/java/org/apache/syncope/common/types/ResourceOperation.java
 (original)
+++ 
syncope/trunk/common/src/main/java/org/apache/syncope/common/types/ResourceOperation.java
 Thu Jan 24 15:52:51 2013
@@ -18,6 +18,9 @@
  */
 package org.apache.syncope.common.types;
 
+import javax.xml.bind.annotation.XmlEnum;
+
+@XmlEnum
 public enum ResourceOperation {
 
     CREATE,

Modified: 
syncope/trunk/common/src/main/java/org/apache/syncope/common/types/TaskType.java
URL: 
http://svn.apache.org/viewvc/syncope/trunk/common/src/main/java/org/apache/syncope/common/types/TaskType.java?rev=1438055&r1=1438054&r2=1438055&view=diff
==============================================================================
--- 
syncope/trunk/common/src/main/java/org/apache/syncope/common/types/TaskType.java
 (original)
+++ 
syncope/trunk/common/src/main/java/org/apache/syncope/common/types/TaskType.java
 Thu Jan 24 15:52:51 2013
@@ -18,6 +18,9 @@
  */
 package org.apache.syncope.common.types;
 
+import javax.xml.bind.annotation.XmlEnum;
+
+@XmlEnum
 public enum TaskType {
 
     PROPAGATION("propagation"),
@@ -38,12 +41,12 @@ public enum TaskType {
 
     public static TaskType fromString(String name) {
         if (name != null) {
-          for (TaskType t : TaskType.values()) {
-            if (t.name.equalsIgnoreCase(name)) {
-              return t;
+            for (TaskType t : TaskType.values()) {
+                if (t.name.equalsIgnoreCase(name)) {
+                    return t;
+                }
             }
-          }
         }
         return null;
-      }
+    }
 }

Modified: 
syncope/trunk/common/src/main/java/org/apache/syncope/common/types/TraceLevel.java
URL: 
http://svn.apache.org/viewvc/syncope/trunk/common/src/main/java/org/apache/syncope/common/types/TraceLevel.java?rev=1438055&r1=1438054&r2=1438055&view=diff
==============================================================================
--- 
syncope/trunk/common/src/main/java/org/apache/syncope/common/types/TraceLevel.java
 (original)
+++ 
syncope/trunk/common/src/main/java/org/apache/syncope/common/types/TraceLevel.java
 Thu Jan 24 15:52:51 2013
@@ -18,6 +18,9 @@
  */
 package org.apache.syncope.common.types;
 
+import javax.xml.bind.annotation.XmlEnum;
+
+@XmlEnum
 public enum TraceLevel {
 
     /**

Modified: 
syncope/trunk/common/src/main/java/org/apache/syncope/common/types/UserRequestType.java
URL: 
http://svn.apache.org/viewvc/syncope/trunk/common/src/main/java/org/apache/syncope/common/types/UserRequestType.java?rev=1438055&r1=1438054&r2=1438055&view=diff
==============================================================================
--- 
syncope/trunk/common/src/main/java/org/apache/syncope/common/types/UserRequestType.java
 (original)
+++ 
syncope/trunk/common/src/main/java/org/apache/syncope/common/types/UserRequestType.java
 Thu Jan 24 15:52:51 2013
@@ -18,6 +18,9 @@
  */
 package org.apache.syncope.common.types;
 
+import javax.xml.bind.annotation.XmlEnum;
+
+@XmlEnum
 public enum UserRequestType {
 
     CREATE,

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=1438055&r1=1438054&r2=1438055&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
 Thu Jan 24 15:52:51 2013
@@ -18,14 +18,20 @@
  */
 package org.apache.syncope.common.util;
 
+import java.text.ParseException;
 import java.util.ArrayList;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
 
 import org.apache.syncope.common.to.EntitlementTO;
+import org.apache.syncope.common.to.JobClassTO;
+import org.apache.syncope.common.to.LoggerTO;
 import org.apache.syncope.common.to.MailTemplateTO;
+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.SyncopeLoggerLevel;
 import org.springframework.web.servlet.ModelAndView;
 
 public final class CollectionWrapper {
@@ -108,4 +114,59 @@ public final class CollectionWrapper {
         }
         return respons;
     }
+
+    public static List<LoggerTO> unwrapLogger(List<AuditLoggerName> 
auditNames) {
+        List<LoggerTO> respons = new ArrayList<LoggerTO>();
+        for (AuditLoggerName l : auditNames) {
+            LoggerTO loggerTO = new LoggerTO();
+            loggerTO.setName(l.toLoggerName());
+            loggerTO.setLevel(SyncopeLoggerLevel.DEBUG);
+            respons.add(loggerTO);
+        }
+        return respons;
+    }
+
+    public static Set<JobClassTO> wrapJobClasses(Set<String> classes) {
+        Set<JobClassTO> respons = new HashSet<JobClassTO>();
+        for (String cl : classes) {
+            respons.add(JobClassTO.instance(cl));
+        }
+        return respons;
+    }
+
+    public static Set<SyncActionClassTO> wrapSyncActionClasses(Set<String> 
classes) {
+        Set<SyncActionClassTO> respons = new HashSet<SyncActionClassTO>();
+        for (String cl : classes) {
+            respons.add(SyncActionClassTO.instance(cl));
+        }
+        return respons;
+    }
+
+    public static List<AuditLoggerName> wrapLogger(List<LoggerTO> logger) {
+        List<AuditLoggerName> respons = new ArrayList<AuditLoggerName>();
+        for (LoggerTO l : logger) {
+            try {
+                respons.add(AuditLoggerName.fromLoggerName(l.getName()));
+            } catch (Exception e) {
+                //TODO log event
+            }
+        }
+        return respons;
+    }
+
+    public static List<String> unwrapJobClasses(List<JobClassTO> jobClasses) {
+        List<String> respons = new ArrayList<String>();
+        for (JobClassTO e : jobClasses) {
+            respons.add(e.getName());
+        }
+        return respons;
+    }
+
+    public static List<String> unwrapSyncActionClasses(List<SyncActionClassTO> 
actions) {
+        List<String> respons = new ArrayList<String>();
+        for (SyncActionClassTO e : actions) {
+            respons.add(e.getName());
+        }
+        return respons;
+    }
 }

Modified: 
syncope/trunk/core/src/test/java/org/apache/syncope/core/rest/AbstractTest.java
URL: 
http://svn.apache.org/viewvc/syncope/trunk/core/src/test/java/org/apache/syncope/core/rest/AbstractTest.java?rev=1438055&r1=1438054&r2=1438055&view=diff
==============================================================================
--- 
syncope/trunk/core/src/test/java/org/apache/syncope/core/rest/AbstractTest.java 
(original)
+++ 
syncope/trunk/core/src/test/java/org/apache/syncope/core/rest/AbstractTest.java 
Thu Jan 24 15:52:51 2013
@@ -21,8 +21,10 @@ package org.apache.syncope.core.rest;
 import static org.junit.Assert.assertNotNull;
 
 import java.net.URI;
+import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collection;
+import java.util.List;
 import java.util.UUID;
 
 import javax.sql.DataSource;
@@ -64,6 +66,7 @@ import org.apache.syncope.common.service
 import org.apache.syncope.common.services.UserService;
 import org.apache.syncope.common.services.WorkflowService;
 import org.apache.syncope.common.to.AttributeTO;
+import org.apache.syncope.common.validation.SyncopeClientErrorHandler;
 import org.junit.Before;
 import org.junit.runner.RunWith;
 import org.junit.runners.Parameterized;
@@ -71,6 +74,8 @@ import org.junit.runners.Parameterized.P
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.converter.HttpMessageConverter;
+import 
org.springframework.http.converter.json.MappingJacksonHttpMessageConverter;
 import org.springframework.test.context.ContextConfiguration;
 import org.springframework.test.context.TestContextManager;
 import org.springframework.web.client.RestTemplate;
@@ -91,14 +96,20 @@ public abstract class AbstractTest {
     protected static final String ADMIN_PWD = "password";
 
     protected boolean activatedCXF;
-    
+
     @Autowired
     private RestTemplate restTemplate;
 
+    @Autowired
+    private MappingJacksonHttpMessageConverter 
mappingJacksonHttpMessageConverter;
+
+    @Autowired
+    private PreemptiveAuthHttpRequestFactory httpClientFactory;
+
     protected String contentType;
-    
+
     private TestContextManager testContextManager;
-    
+
     @Autowired
     protected JAXRSClientFactoryBean restClientFactory;
 
@@ -132,11 +143,11 @@ public abstract class AbstractTest {
     protected UserRequestService userRequestService;
 
     protected PolicyService policyService;
-    
+
     public AbstractTest(final String contentType) {
         this.contentType = contentType;
     }
-    
+
     private void setupContext() throws Exception {
         this.testContextManager = new TestContextManager(getClass());
         this.testContextManager.prepareTestInstance(this);
@@ -145,17 +156,17 @@ public abstract class AbstractTest {
     protected void activateCXF() {
         activatedCXF = true;
     }
-    
+
     @Before
     public void setup() throws Exception {
         setupContext();
         if (!activatedCXF) {
-            resetRestTemplate(); 
+            resetRestTemplate();
         } else {
             setupCXFServices();
         }
     }
-    
+
     // BEGIN Spring MVC Initialization
     protected void setupRestTemplate(final String uid, final String pwd) {
         PreemptiveAuthHttpRequestFactory requestFactory = 
((PreemptiveAuthHttpRequestFactory) restTemplate
@@ -166,7 +177,12 @@ public abstract class AbstractTest {
     }
 
     protected RestTemplate anonymousRestTemplate() {
-        return new RestTemplate();
+        RestTemplate template = new RestTemplate(httpClientFactory);
+        List<HttpMessageConverter<?>> converters = new 
ArrayList<HttpMessageConverter<?>>();
+        converters.add(mappingJacksonHttpMessageConverter);
+        template.setMessageConverters(converters);
+        template.setErrorHandler(new SyncopeClientErrorHandler());
+        return template;
     }
 
     protected void resetRestTemplate() {
@@ -189,7 +205,7 @@ public abstract class AbstractTest {
     // END Spring MVC Initialization
 
     // BEGIN CXF Initialization
-    public void setupCXFServices() throws Exception { 
+    public void setupCXFServices() throws Exception {
         setupContext();
         restClientFactory.setUsername(ADMIN_UID);
         userService = createServiceInstance(UserService.class);
@@ -215,7 +231,7 @@ public abstract class AbstractTest {
     protected <T> T createServiceInstance(Class<T> serviceClass) {
         return createServiceInstance(serviceClass, ADMIN_UID);
     }
-    
+
     protected <T> T createServiceInstance(Class<T> serviceClass, String 
username) {
         return createServiceInstance(serviceClass, username, null);
     }
@@ -249,7 +265,7 @@ public abstract class AbstractTest {
         assertNotNull(location);
         return restTemplate.getForEntity(location, type).getBody();
     }
-    
+
     public static <T> T resolveObjectCXF(final URI location, final Class<T> 
type, final Object serviceProxy) {
         WebClient webClient = 
WebClient.fromClient(WebClient.client(serviceProxy));
         webClient.to(location.toString(), false);


Reply via email to