You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@syncope.apache.org by il...@apache.org on 2016/07/05 09:53:38 UTC

[1/5] syncope git commit: Forgot to add fix test methods execution [Forced Update!]

Repository: syncope
Updated Branches:
  refs/heads/2_0_NO_JAXB bbe8fe089 -> f283ebc0c (forced update)


Forgot to add fix test methods execution


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

Branch: refs/heads/2_0_NO_JAXB
Commit: e74a10a25e397eecf6774ca308269cdfa1462d16
Parents: df7613e
Author: Francesco Chicchiricc� <il...@apache.org>
Authored: Tue Jul 5 11:52:04 2016 +0200
Committer: Francesco Chicchiricc� <il...@apache.org>
Committed: Tue Jul 5 11:52:04 2016 +0200

----------------------------------------------------------------------
 .../test/java/org/apache/syncope/fit/core/UserIssuesITCase.java   | 3 +++
 1 file changed, 3 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/syncope/blob/e74a10a2/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserIssuesITCase.java
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserIssuesITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserIssuesITCase.java
index 1e50c24..fc7aa62 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserIssuesITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserIssuesITCase.java
@@ -70,10 +70,13 @@ import org.apache.syncope.fit.AbstractITCase;
 import org.apache.syncope.fit.core.reference.DoubleValueLogicActions;
 import org.identityconnectors.framework.common.objects.Name;
 import org.identityconnectors.framework.common.objects.OperationalAttributes;
+import org.junit.FixMethodOrder;
 import org.junit.Test;
+import org.junit.runners.MethodSorters;
 import org.springframework.dao.EmptyResultDataAccessException;
 import org.springframework.jdbc.core.JdbcTemplate;
 
+@FixMethodOrder(MethodSorters.JVM)
 public class UserIssuesITCase extends AbstractITCase {
 
     @Test


[2/5] syncope git commit: Removing JAXB in favor of jackson-dataformat-xml: currently the only missing part is XSD in WADL

Posted by il...@apache.org.
http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/core/rest-cxf/pom.xml
----------------------------------------------------------------------
diff --git a/core/rest-cxf/pom.xml b/core/rest-cxf/pom.xml
index cb4da8a..6230abe 100644
--- a/core/rest-cxf/pom.xml
+++ b/core/rest-cxf/pom.xml
@@ -71,14 +71,14 @@ under the License.
     </dependency>
     
     <dependency>
-      <groupId>com.fasterxml.jackson.datatype</groupId>
-      <artifactId>jackson-datatype-joda</artifactId>
-    </dependency>    
-    <dependency>
       <groupId>com.fasterxml.jackson.jaxrs</groupId>
       <artifactId>jackson-jaxrs-json-provider</artifactId>
     </dependency>
     <dependency>
+      <groupId>com.fasterxml.jackson.jaxrs</groupId>
+      <artifactId>jackson-jaxrs-xml-provider</artifactId>
+    </dependency>
+    <dependency>
       <groupId>com.fasterxml.jackson.module</groupId>
       <artifactId>jackson-module-afterburner</artifactId>
     </dependency>

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/JacksonXMLProvider.java
----------------------------------------------------------------------
diff --git a/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/JacksonXMLProvider.java b/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/JacksonXMLProvider.java
new file mode 100644
index 0000000..9e469d1
--- /dev/null
+++ b/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/JacksonXMLProvider.java
@@ -0,0 +1,33 @@
+/*
+ * 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.core.rest.cxf;
+
+import javax.ws.rs.Consumes;
+import javax.ws.rs.Produces;
+import javax.ws.rs.ext.Provider;
+
+/**
+ * Extends {@link com.fasterxml.jackson.jaxrs.xml.JacksonXMLProvider} only for setting correct {@link Produces} and
+ * {link Consumes} annotations for usage with Apache CXF.
+ */
+@Produces({ "application/xml", "application/*+xml", "text/xml" })
+@Consumes({ "application/xml", "application/*+xml", "text/xml" })
+@Provider
+public class JacksonXMLProvider extends com.fasterxml.jackson.jaxrs.xml.JacksonXMLProvider {
+}

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/UnwrappedObjectMapper.java
----------------------------------------------------------------------
diff --git a/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/UnwrappedObjectMapper.java b/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/UnwrappedObjectMapper.java
deleted file mode 100644
index 31b1dfd..0000000
--- a/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/UnwrappedObjectMapper.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.syncope.core.rest.cxf;
-
-import com.fasterxml.jackson.core.JsonGenerator;
-import com.fasterxml.jackson.core.JsonProcessingException;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.fasterxml.jackson.datatype.joda.JodaModule;
-import java.io.File;
-import java.io.IOException;
-import java.io.OutputStream;
-import java.io.Writer;
-import java.util.Map;
-
-/**
- * Jackson ObjectMapper that unwraps singleton map values and enable default
- * typing for handling abstract types serialization.
- */
-public class UnwrappedObjectMapper extends ObjectMapper {
-
-    private static final long serialVersionUID = -317191546835195103L;
-
-    public UnwrappedObjectMapper() {
-        super();
-
-        registerModule(new JodaModule());
-        configure(com.fasterxml.jackson.databind.SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false);
-    }
-
-    /**
-     * Unwraps the given value if it implements the Map interface and contains only a single entry, otherwise the
-     * value is returned unmodified.
-     *
-     * @param value the potential Map to unwrap
-     * @return the unwrapped map or the original value
-     */
-    private Object unwrapMap(final Object value) {
-        if (value instanceof Map) {
-            Map<?, ?> map = (Map<?, ?>) value;
-            if (map.size() == 1) {
-                return map.values().iterator().next();
-            }
-        }
-
-        return value;
-    }
-
-    @Override
-    public void writeValue(final JsonGenerator jgen, final Object value) throws IOException {
-        super.writeValue(jgen, unwrapMap(value));
-    }
-
-    @Override
-    public void writeValue(final File resultFile, final Object value) throws IOException {
-        super.writeValue(resultFile, unwrapMap(value));
-    }
-
-    @Override
-    public void writeValue(final OutputStream out, final Object value) throws IOException {
-        super.writeValue(out, unwrapMap(value));
-    }
-
-    @Override
-    public void writeValue(final Writer writer, final Object value) throws IOException {
-        super.writeValue(writer, unwrapMap(value));
-    }
-
-    @Override
-    public byte[] writeValueAsBytes(final Object value) throws JsonProcessingException {
-        return super.writeValueAsBytes(unwrapMap(value));
-    }
-
-    @Override
-    public String writeValueAsString(final Object value) throws JsonProcessingException {
-        return super.writeValueAsString(unwrapMap(value));
-    }
-}

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/service/AbstractAnyService.java
----------------------------------------------------------------------
diff --git a/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/service/AbstractAnyService.java b/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/service/AbstractAnyService.java
index 7a19af1..020cf57 100644
--- a/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/service/AbstractAnyService.java
+++ b/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/service/AbstractAnyService.java
@@ -247,14 +247,14 @@ public abstract class AbstractAnyService<TO extends AnyTO, P extends AnyPatch>
 
         if (patch.getAction() == ResourceDeassociationAction.UNLINK) {
             for (String resource : patch.getResources()) {
-                result.getResults().put(resource,
+                result.add(resource,
                         updated.getEntity().getResources().contains(resource)
                         ? BulkActionResult.Status.FAILURE
                         : BulkActionResult.Status.SUCCESS);
             }
         } else {
             for (PropagationStatus propagationStatusTO : updated.getPropagationStatuses()) {
-                result.getResults().put(propagationStatusTO.getResource(),
+                result.add(propagationStatusTO.getResource(),
                         BulkActionResult.Status.valueOf(propagationStatusTO.getStatus().toString()));
             }
         }
@@ -304,14 +304,14 @@ public abstract class AbstractAnyService<TO extends AnyTO, P extends AnyPatch>
 
         if (patch.getAction() == ResourceAssociationAction.LINK) {
             for (String resource : patch.getResources()) {
-                result.getResults().put(resource,
+                result.add(resource,
                         updated.getEntity().getResources().contains(resource)
                         ? BulkActionResult.Status.SUCCESS
                         : BulkActionResult.Status.FAILURE);
             }
         } else {
             for (PropagationStatus propagationStatusTO : updated.getPropagationStatuses()) {
-                result.getResults().put(propagationStatusTO.getResource(),
+                result.add(propagationStatusTO.getResource(),
                         BulkActionResult.Status.valueOf(propagationStatusTO.getStatus().toString()));
             }
         }
@@ -334,12 +334,12 @@ public abstract class AbstractAnyService<TO extends AnyTO, P extends AnyPatch>
                             userPatch.setKey(key);
                             userPatch.setMustChangePassword(new BooleanReplacePatchItem.Builder().value(true).build());
 
-                            result.getResults().put(
+                            result.add(
                                     ((UserLogic) logic).update(userPatch, false).getEntity().getKey(),
                                     BulkActionResult.Status.SUCCESS);
                         } catch (Exception e) {
                             LOG.error("Error performing delete for user {}", key, e);
-                            result.getResults().put(key, BulkActionResult.Status.FAILURE);
+                            result.add(key, BulkActionResult.Status.FAILURE);
                         }
                     }
                 } else {
@@ -350,12 +350,12 @@ public abstract class AbstractAnyService<TO extends AnyTO, P extends AnyPatch>
             case DELETE:
                 for (String key : bulkAction.getTargets()) {
                     try {
-                        result.getResults().put(
+                        result.add(
                                 logic.delete(key, isNullPriorityAsync()).getEntity().getKey(),
                                 BulkActionResult.Status.SUCCESS);
                     } catch (Exception e) {
                         LOG.error("Error performing delete for user {}", key, e);
-                        result.getResults().put(key, BulkActionResult.Status.FAILURE);
+                        result.add(key, BulkActionResult.Status.FAILURE);
                     }
                 }
                 break;
@@ -369,13 +369,13 @@ public abstract class AbstractAnyService<TO extends AnyTO, P extends AnyPatch>
                         statusPatch.setOnSyncope(true);
 
                         try {
-                            result.getResults().put(
+                            result.add(
                                     ((UserLogic) logic).
                                     status(statusPatch, isNullPriorityAsync()).getEntity().getKey(),
                                     BulkActionResult.Status.SUCCESS);
                         } catch (Exception e) {
                             LOG.error("Error performing suspend for user {}", key, e);
-                            result.getResults().put(key, BulkActionResult.Status.FAILURE);
+                            result.add(key, BulkActionResult.Status.FAILURE);
                         }
                     }
                 } else {
@@ -392,13 +392,13 @@ public abstract class AbstractAnyService<TO extends AnyTO, P extends AnyPatch>
                         statusPatch.setOnSyncope(true);
 
                         try {
-                            result.getResults().put(
+                            result.add(
                                     ((UserLogic) logic).
                                     status(statusPatch, isNullPriorityAsync()).getEntity().getKey(),
                                     BulkActionResult.Status.SUCCESS);
                         } catch (Exception e) {
                             LOG.error("Error performing reactivate for user {}", key, e);
-                            result.getResults().put(key, BulkActionResult.Status.FAILURE);
+                            result.add(key, BulkActionResult.Status.FAILURE);
                         }
                     }
                 } else {

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/service/ConnectorServiceImpl.java
----------------------------------------------------------------------
diff --git a/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/service/ConnectorServiceImpl.java b/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/service/ConnectorServiceImpl.java
index a5ebee1..5fc1902 100644
--- a/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/service/ConnectorServiceImpl.java
+++ b/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/service/ConnectorServiceImpl.java
@@ -101,10 +101,10 @@ public class ConnectorServiceImpl extends AbstractServiceImpl implements Connect
         if (bulkAction.getType() == BulkAction.Type.DELETE) {
             for (String key : bulkAction.getTargets()) {
                 try {
-                    result.getResults().put(logic.delete(key).getKey(), BulkActionResult.Status.SUCCESS);
+                    result.add(logic.delete(key).getKey(), BulkActionResult.Status.SUCCESS);
                 } catch (Exception e) {
                     LOG.error("Error performing delete for connector {}", key, e);
-                    result.getResults().put(key, BulkActionResult.Status.FAILURE);
+                    result.add(key, BulkActionResult.Status.FAILURE);
                 }
             }
         }

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/service/ResourceServiceImpl.java
----------------------------------------------------------------------
diff --git a/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/service/ResourceServiceImpl.java b/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/service/ResourceServiceImpl.java
index 2bfba5a..9b32caa 100644
--- a/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/service/ResourceServiceImpl.java
+++ b/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/service/ResourceServiceImpl.java
@@ -172,10 +172,10 @@ public class ResourceServiceImpl extends AbstractServiceImpl implements Resource
                     default:
                 }
 
-                result.getResults().put(anyKey, BulkActionResult.Status.SUCCESS);
+                result.add(anyKey, BulkActionResult.Status.SUCCESS);
             } catch (Exception e) {
                 LOG.warn("While executing {} on {} {}", patch.getAction(), patch.getAnyTypeKey(), anyKey, e);
-                result.getResults().put(anyKey, BulkActionResult.Status.FAILURE);
+                result.add(anyKey, BulkActionResult.Status.FAILURE);
             }
         }
 
@@ -189,10 +189,10 @@ public class ResourceServiceImpl extends AbstractServiceImpl implements Resource
         if (bulkAction.getType() == BulkAction.Type.DELETE) {
             for (String key : bulkAction.getTargets()) {
                 try {
-                    result.getResults().put(logic.delete(key).getKey(), BulkActionResult.Status.SUCCESS);
+                    result.add(logic.delete(key).getKey(), BulkActionResult.Status.SUCCESS);
                 } catch (Exception e) {
                     LOG.error("Error performing delete for resource {}", key, e);
-                    result.getResults().put(key, BulkActionResult.Status.FAILURE);
+                    result.add(key, BulkActionResult.Status.FAILURE);
                 }
             }
         }

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/service/TaskServiceImpl.java
----------------------------------------------------------------------
diff --git a/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/service/TaskServiceImpl.java b/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/service/TaskServiceImpl.java
index 16ba72a..f4eb4e0 100644
--- a/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/service/TaskServiceImpl.java
+++ b/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/service/TaskServiceImpl.java
@@ -113,10 +113,10 @@ public class TaskServiceImpl extends AbstractExecutableService implements TaskSe
             case DELETE:
                 for (String key : bulkAction.getTargets()) {
                     try {
-                        result.getResults().put(logic.delete(key).getKey(), BulkActionResult.Status.SUCCESS);
+                        result.add(logic.delete(key).getKey(), BulkActionResult.Status.SUCCESS);
                     } catch (Exception e) {
                         LOG.error("Error performing delete for task {}", key, e);
-                        result.getResults().put(key, BulkActionResult.Status.FAILURE);
+                        result.add(key, BulkActionResult.Status.FAILURE);
                     }
                 }
                 break;
@@ -125,10 +125,10 @@ public class TaskServiceImpl extends AbstractExecutableService implements TaskSe
                 for (String key : bulkAction.getTargets()) {
                     try {
                         logic.execute(key, null, true);
-                        result.getResults().put(key, BulkActionResult.Status.SUCCESS);
+                        result.add(key, BulkActionResult.Status.SUCCESS);
                     } catch (Exception e) {
                         LOG.error("Error performing dryrun for task {}", key, e);
-                        result.getResults().put(key, BulkActionResult.Status.FAILURE);
+                        result.add(key, BulkActionResult.Status.FAILURE);
                     }
                 }
                 break;
@@ -137,10 +137,10 @@ public class TaskServiceImpl extends AbstractExecutableService implements TaskSe
                 for (String key : bulkAction.getTargets()) {
                     try {
                         logic.execute(key, null, false);
-                        result.getResults().put(key, BulkActionResult.Status.SUCCESS);
+                        result.add(key, BulkActionResult.Status.SUCCESS);
                     } catch (Exception e) {
                         LOG.error("Error performing execute for task {}", key, e);
-                        result.getResults().put(key, BulkActionResult.Status.FAILURE);
+                        result.add(key, BulkActionResult.Status.FAILURE);
                     }
                 }
                 break;

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/core/rest-cxf/src/main/resources/restCXFContext.xml
----------------------------------------------------------------------
diff --git a/core/rest-cxf/src/main/resources/restCXFContext.xml b/core/rest-cxf/src/main/resources/restCXFContext.xml
index f7714a1..df3716d 100644
--- a/core/rest-cxf/src/main/resources/restCXFContext.xml
+++ b/core/rest-cxf/src/main/resources/restCXFContext.xml
@@ -36,35 +36,15 @@ under the License.
 
   <context:component-scan base-package="org.apache.syncope.core.rest.cxf.service"/>  
 
-  <bean id="jaxbProvider" class="org.apache.cxf.jaxrs.provider.JAXBElementProvider">
-    <property name="namespacePrefixes">
-      <map>
-        <entry key="http://syncope.apache.org/2.0">
-          <value>syncope</value>
-        </entry>
-      </map>      
-    </property>
-    <property name="depthProperties">
-      <bean id="depthProperties" class="org.apache.cxf.staxutils.DocumentDepthProperties">
-        <property name="innerElementCountThreshold" value="500"/>
-      </bean>
-    </property>
-    <property name="collectionWrapperMap">
-      <map>
-        <entry>
-          <key>
-            <value>org.apache.syncope.common.lib.policy.AbstractPolicyTO</value>
-          </key>
-          <value>policies</value>
-        </entry>
-      </map>
-    </property>
-  </bean>
-
   <bean id="dateParamConverterProvider" class="org.apache.syncope.common.rest.api.DateParamConverterProvider"/>
 
-  <bean id="jacksonObjectMapper" class="org.apache.syncope.core.rest.cxf.UnwrappedObjectMapper"/>
-  <bean id="jsonProvider" class="com.fasterxml.jackson.jaxrs.json.JacksonJaxbJsonProvider">
+  <bean id="jacksonXmlMapper" class="org.apache.syncope.common.lib.jackson.UnwrappedXmlMapper"/>
+  <bean id="xmlProvider" class="org.apache.syncope.core.rest.cxf.JacksonXMLProvider">
+    <property name="mapper" ref="jacksonXmlMapper"/>
+  </bean>
+
+  <bean id="jacksonObjectMapper" class="org.apache.syncope.common.lib.jackson.UnwrappedObjectMapper"/>
+  <bean id="jsonProvider" class="com.fasterxml.jackson.jaxrs.json.JacksonJsonProvider">
     <property name="mapper" ref="jacksonObjectMapper"/>
   </bean>
 
@@ -91,9 +71,8 @@ under the License.
   
   <bean id="wadlGenerator" class="org.apache.syncope.core.rest.cxf.WadlGenerator">
     <property name="applicationTitle" value="Apache Syncope ${syncope.version}"/>
-    <property name="namespacePrefix" value="syncope"/>
     <property name="linkAnyMediaTypeToXmlSchema" value="true"/>
-    <property name="useJaxbContextForQnames" value="true"/>
+    <property name="useJaxbContextForQnames" value="false"/>
     <property name="addResourceAndMethodIds" value="true"/>
     <property name="ignoreMessageWriters" value="true"/>
     <property name="usePathParamsToCompareOperations" value="false"/>
@@ -130,7 +109,7 @@ under the License.
     </jaxrs:outInterceptors>
     <jaxrs:providers>
       <ref bean="dateParamConverterProvider"/>
-      <ref bean="jaxbProvider"/>
+      <ref bean="xmlProvider"/>
       <ref bean="jsonProvider"/>
       <ref bean="exceptionMapper"/>
       <ref bean="searchContextProvider"/>

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/ext/camel/common-lib/src/main/java/org/apache/syncope/common/lib/to/CamelMetrics.java
----------------------------------------------------------------------
diff --git a/ext/camel/common-lib/src/main/java/org/apache/syncope/common/lib/to/CamelMetrics.java b/ext/camel/common-lib/src/main/java/org/apache/syncope/common/lib/to/CamelMetrics.java
index 050c63c..2d4df04 100644
--- a/ext/camel/common-lib/src/main/java/org/apache/syncope/common/lib/to/CamelMetrics.java
+++ b/ext/camel/common-lib/src/main/java/org/apache/syncope/common/lib/to/CamelMetrics.java
@@ -18,23 +18,14 @@
  */
 package org.apache.syncope.common.lib.to;
 
-import com.fasterxml.jackson.annotation.JsonProperty;
 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.lib.AbstractBaseBean;
 
-@XmlRootElement(name = "camelMetrics")
-@XmlType
 public class CamelMetrics extends AbstractBaseBean {
 
     private static final long serialVersionUID = -391404198406614231L;
 
-    @XmlRootElement(name = "meanRate")
-    @XmlType
     public static class MeanRate extends AbstractBaseBean {
 
         private static final long serialVersionUID = -233921226510124154L;
@@ -63,9 +54,6 @@ public class CamelMetrics extends AbstractBaseBean {
 
     private final List<MeanRate> responseMeanRates = new ArrayList<>();
 
-    @XmlElementWrapper(name = "responseMeanRates")
-    @XmlElement(name = "meanRate")
-    @JsonProperty("responseMeanRates")
     public List<MeanRate> getResponseMeanRates() {
         return responseMeanRates;
     }

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/ext/camel/common-lib/src/main/java/org/apache/syncope/common/lib/to/CamelRouteTO.java
----------------------------------------------------------------------
diff --git a/ext/camel/common-lib/src/main/java/org/apache/syncope/common/lib/to/CamelRouteTO.java b/ext/camel/common-lib/src/main/java/org/apache/syncope/common/lib/to/CamelRouteTO.java
index cb64fb6..8c18403 100644
--- a/ext/camel/common-lib/src/main/java/org/apache/syncope/common/lib/to/CamelRouteTO.java
+++ b/ext/camel/common-lib/src/main/java/org/apache/syncope/common/lib/to/CamelRouteTO.java
@@ -19,13 +19,9 @@ package org.apache.syncope.common.lib.to;
  * under the License.
  */
 import javax.ws.rs.PathParam;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlType;
 import org.apache.syncope.common.lib.AbstractBaseBean;
 import org.apache.syncope.common.lib.types.AnyTypeKind;
 
-@XmlRootElement(name = "camelRoute")
-@XmlType
 public class CamelRouteTO extends AbstractBaseBean {
 
     private static final long serialVersionUID = 6431992877435181674L;

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/fit/core-reference/src/main/resources/jboss/restCXFContext.xml
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/main/resources/jboss/restCXFContext.xml b/fit/core-reference/src/main/resources/jboss/restCXFContext.xml
index 2417c35..53483cb 100644
--- a/fit/core-reference/src/main/resources/jboss/restCXFContext.xml
+++ b/fit/core-reference/src/main/resources/jboss/restCXFContext.xml
@@ -36,35 +36,15 @@ under the License.
 
   <context:component-scan base-package="org.apache.syncope.core.rest.cxf.service"/>  
 
-  <bean id="jaxbProvider" class="org.apache.cxf.jaxrs.provider.JAXBElementProvider">
-    <property name="namespacePrefixes">
-      <map>
-        <entry key="http://syncope.apache.org/2.0">
-          <value>syncope</value>
-        </entry>
-      </map>      
-    </property>
-    <property name="depthProperties">
-      <bean id="depthProperties" class="org.apache.cxf.staxutils.DocumentDepthProperties">
-        <property name="innerElementCountThreshold" value="500"/>
-      </bean>
-    </property>
-    <property name="collectionWrapperMap">
-      <map>
-        <entry>
-          <key>
-            <value>org.apache.syncope.common.lib.policy.AbstractPolicyTO</value>
-          </key>
-          <value>policies</value>
-        </entry>
-      </map>
-    </property>
-  </bean>
-
   <bean id="dateParamConverterProvider" class="org.apache.syncope.common.rest.api.DateParamConverterProvider"/>
 
-  <bean id="jacksonObjectMapper" class="org.apache.syncope.core.rest.cxf.UnwrappedObjectMapper"/>
-  <bean id="jsonProvider" class="com.fasterxml.jackson.jaxrs.json.JacksonJaxbJsonProvider">
+  <bean id="jacksonXmlMapper" class="org.apache.syncope.common.lib.jackson.UnwrappedXmlMapper"/>
+  <bean id="xmlProvider" class="org.apache.syncope.core.rest.cxf.JacksonXMLProvider">
+    <property name="mapper" ref="jacksonXmlMapper"/>
+  </bean>
+
+  <bean id="jacksonObjectMapper" class="org.apache.syncope.common.lib.jackson.UnwrappedObjectMapper"/>
+  <bean id="jsonProvider" class="com.fasterxml.jackson.jaxrs.json.JacksonJsonProvider">
     <property name="mapper" ref="jacksonObjectMapper"/>
   </bean>
 
@@ -91,9 +71,8 @@ under the License.
   
   <bean id="wadlGenerator" class="org.apache.syncope.core.rest.cxf.WadlGenerator">
     <property name="applicationTitle" value="Apache Syncope ${syncope.version}"/>
-    <property name="namespacePrefix" value="syncope"/>
     <property name="linkAnyMediaTypeToXmlSchema" value="true"/>
-    <property name="useJaxbContextForQnames" value="true"/>
+    <property name="useJaxbContextForQnames" value="false"/>
     <property name="addResourceAndMethodIds" value="true"/>
     <property name="ignoreMessageWriters" value="true"/>
     <property name="usePathParamsToCompareOperations" value="false"/>
@@ -109,7 +88,7 @@ under the License.
     <property name="title" value="Apache Syncope"/>
     <property name="version" value="${syncope.version}"/>
     <property name="description" value="Apache Syncope ${syncope.version}"/>    
-    <property name="contact" value="dev@syncope.apache.org"/>
+    <property name="contact" value="dev@syncope.apache.org"/>    
     
     <property name="resourcePackage" value="org.apache.syncope.common.rest.api.service"/>
     <property name="scanAllResources" value="true"/>
@@ -142,7 +121,7 @@ under the License.
     </jaxrs:outInterceptors>
     <jaxrs:providers>
       <ref bean="dateParamConverterProvider"/>
-      <ref bean="jaxbProvider"/>
+      <ref bean="xmlProvider"/>
       <ref bean="jsonProvider"/>
       <ref bean="exceptionMapper"/>
       <ref bean="searchContextProvider"/>

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/fit/core-reference/src/test/java/org/apache/syncope/fit/core/ReportITCase.java
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/ReportITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/ReportITCase.java
index 651e9bb..8d2f077 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/ReportITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/ReportITCase.java
@@ -250,8 +250,8 @@ public class ReportITCase extends AbstractITCase {
         assertNotNull(result);
 
         assertEquals(1, result.getResults().size());
-        assertEquals(execKey, result.getResults().keySet().iterator().next());
-        assertEquals(BulkActionResult.Status.SUCCESS, result.getResults().entrySet().iterator().next().getValue());
+        assertEquals(execKey, result.getResultMap().keySet().iterator().next());
+        assertEquals(BulkActionResult.Status.SUCCESS, result.getResultMap().entrySet().iterator().next().getValue());
     }
 
     @Test

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserITCase.java
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserITCase.java
index 80d1e90..15448fc 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserITCase.java
@@ -26,6 +26,7 @@ import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
 import java.security.AccessControlException;
+import java.util.ArrayList;
 import java.util.Collections;
 import java.util.Date;
 import java.util.HashMap;
@@ -118,6 +119,18 @@ public class UserITCase extends AbstractITCase {
         return userTO;
     }
 
+    private List<String> getResultByStatus(final BulkActionResult bulkActionResult, final Status status) {
+        List<String> result = new ArrayList<>();
+
+        for (Map.Entry<String, Status> entry : bulkActionResult.getResultMap().entrySet()) {
+            if (entry.getValue() == status) {
+                result.add(entry.getKey());
+            }
+        }
+
+        return Collections.unmodifiableList(result);
+    }
+
     @Test
     public void createUserWithNoPropagation() {
         // create a new user
@@ -1036,20 +1049,20 @@ public class UserITCase extends AbstractITCase {
 
         bulkAction.setType(BulkAction.Type.SUSPEND);
         BulkActionResult res = userService.bulk(bulkAction).readEntity(BulkActionResult.class);
-        assertEquals(10, res.getResultByStatus(Status.SUCCESS).size());
-        assertEquals(1, res.getResultByStatus(Status.FAILURE).size());
-        assertEquals("suspended", userService.read(res.getResultByStatus(Status.SUCCESS).get(3)).getStatus());
+        assertEquals(10, getResultByStatus(res, Status.SUCCESS).size());
+        assertEquals(1, getResultByStatus(res, Status.FAILURE).size());
+        assertEquals("suspended", userService.read(getResultByStatus(res, Status.SUCCESS).get(3)).getStatus());
 
         bulkAction.setType(BulkAction.Type.REACTIVATE);
         res = userService.bulk(bulkAction).readEntity(BulkActionResult.class);
-        assertEquals(10, res.getResultByStatus(Status.SUCCESS).size());
-        assertEquals(1, res.getResultByStatus(Status.FAILURE).size());
-        assertEquals("active", userService.read(res.getResultByStatus(Status.SUCCESS).get(3)).getStatus());
+        assertEquals(10, getResultByStatus(res, Status.SUCCESS).size());
+        assertEquals(1, getResultByStatus(res, Status.FAILURE).size());
+        assertEquals("active", userService.read(getResultByStatus(res, Status.SUCCESS).get(3)).getStatus());
 
         bulkAction.setType(BulkAction.Type.DELETE);
         res = userService.bulk(bulkAction).readEntity(BulkActionResult.class);
-        assertEquals(10, res.getResultByStatus(Status.SUCCESS).size());
-        assertEquals(1, res.getResultByStatus(Status.FAILURE).size());
+        assertEquals(10, getResultByStatus(res, Status.SUCCESS).size());
+        assertEquals(1, getResultByStatus(res, Status.FAILURE).size());
     }
 
     @Test

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 84cfb94..28fbd43 100644
--- a/pom.xml
+++ b/pom.xml
@@ -518,11 +518,6 @@ under the License.
       </dependency>
       <dependency>
         <groupId>org.apache.cxf</groupId>
-        <artifactId>cxf-rt-databinding-jaxb</artifactId>
-        <version>${cxf.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.cxf</groupId>
         <artifactId>cxf-rt-rs-client</artifactId>
         <version>${cxf.version}</version>
       </dependency>
@@ -658,6 +653,11 @@ under the License.
         <version>${jackson.version}</version>
       </dependency>
       <dependency>
+        <groupId>com.fasterxml.jackson.jaxrs</groupId>
+        <artifactId>jackson-jaxrs-xml-provider</artifactId>
+        <version>${jackson.version}</version>
+      </dependency>
+      <dependency>
         <groupId>com.fasterxml.jackson.module</groupId>
         <artifactId>jackson-module-afterburner</artifactId>
         <version>${jackson.version}</version>


[4/5] syncope git commit: Removing JAXB in favor of jackson-dataformat-xml: currently the only missing part is XSD in WADL

Posted by il...@apache.org.
http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/patch/UserPatch.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/patch/UserPatch.java b/common/lib/src/main/java/org/apache/syncope/common/lib/patch/UserPatch.java
index 5dc50f1..c7c8cd5 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/patch/UserPatch.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/patch/UserPatch.java
@@ -18,16 +18,9 @@
  */
 package org.apache.syncope.common.lib.patch;
 
-import com.fasterxml.jackson.annotation.JsonProperty;
 import java.util.HashSet;
 import java.util.Set;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlElementWrapper;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlType;
 
-@XmlRootElement(name = "userPatch")
-@XmlType
 public class UserPatch extends AnyPatch {
 
     private static final long serialVersionUID = 2872795537911821448L;
@@ -88,23 +81,14 @@ public class UserPatch extends AnyPatch {
         this.mustChangePassword = mustChangePassword;
     }
 
-    @XmlElementWrapper(name = "relationships")
-    @XmlElement(name = "relationship")
-    @JsonProperty("relationships")
     public Set<RelationshipPatch> getRelationships() {
         return relationships;
     }
 
-    @XmlElementWrapper(name = "memberships")
-    @XmlElement(name = "membership")
-    @JsonProperty("memberships")
     public Set<MembershipPatch> getMemberships() {
         return memberships;
     }
 
-    @XmlElementWrapper(name = "roles")
-    @XmlElement(name = "role")
-    @JsonProperty("roles")
     public Set<StringPatchItem> getRoles() {
         return roles;
     }

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/patch/package-info.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/patch/package-info.java b/common/lib/src/main/java/org/apache/syncope/common/lib/patch/package-info.java
deleted file mode 100644
index 426ac6d..0000000
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/patch/package-info.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-@XmlSchema(namespace = SyncopeConstants.NAMESPACE)
-package org.apache.syncope.common.lib.patch;
-
-import javax.xml.bind.annotation.XmlSchema;
-import org.apache.syncope.common.lib.SyncopeConstants;

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/policy/AbstractAccountRuleConf.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/policy/AbstractAccountRuleConf.java b/common/lib/src/main/java/org/apache/syncope/common/lib/policy/AbstractAccountRuleConf.java
index 8820779..280a555 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/policy/AbstractAccountRuleConf.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/policy/AbstractAccountRuleConf.java
@@ -18,13 +18,9 @@
  */
 package org.apache.syncope.common.lib.policy;
 
-import javax.xml.bind.annotation.XmlSeeAlso;
-import javax.xml.bind.annotation.XmlType;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.syncope.common.lib.AbstractBaseBean;
 
-@XmlType
-@XmlSeeAlso({ DefaultAccountRuleConf.class })
 public abstract class AbstractAccountRuleConf extends AbstractBaseBean implements AccountRuleConf {
 
     private static final long serialVersionUID = -4080475005967851092L;

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/policy/AbstractPasswordRuleConf.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/policy/AbstractPasswordRuleConf.java b/common/lib/src/main/java/org/apache/syncope/common/lib/policy/AbstractPasswordRuleConf.java
index 6d35abd..abc24ea 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/policy/AbstractPasswordRuleConf.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/policy/AbstractPasswordRuleConf.java
@@ -18,13 +18,9 @@
  */
 package org.apache.syncope.common.lib.policy;
 
-import javax.xml.bind.annotation.XmlSeeAlso;
-import javax.xml.bind.annotation.XmlType;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.syncope.common.lib.AbstractBaseBean;
 
-@XmlType
-@XmlSeeAlso({ DefaultPasswordRuleConf.class })
 public abstract class AbstractPasswordRuleConf extends AbstractBaseBean implements PasswordRuleConf {
 
     private static final long serialVersionUID = -5814018872387142339L;

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/policy/AbstractPolicyTO.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/policy/AbstractPolicyTO.java b/common/lib/src/main/java/org/apache/syncope/common/lib/policy/AbstractPolicyTO.java
index bc41628..374001b 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/policy/AbstractPolicyTO.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/policy/AbstractPolicyTO.java
@@ -18,22 +18,13 @@
  */
 package org.apache.syncope.common.lib.policy;
 
-import com.fasterxml.jackson.annotation.JsonProperty;
 import com.fasterxml.jackson.annotation.JsonTypeInfo;
 import java.util.ArrayList;
 import java.util.List;
 import javax.ws.rs.PathParam;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlElementWrapper;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlSeeAlso;
-import javax.xml.bind.annotation.XmlType;
 import org.apache.syncope.common.lib.AbstractBaseBean;
 import org.apache.syncope.common.lib.to.EntityTO;
 
-@XmlRootElement(name = "abstractPolicy")
-@XmlType
-@XmlSeeAlso({ AccountPolicyTO.class, PasswordPolicyTO.class, PullPolicyTO.class })
 @JsonTypeInfo(use = JsonTypeInfo.Id.CLASS, include = JsonTypeInfo.As.PROPERTY, property = "@class")
 public abstract class AbstractPolicyTO extends AbstractBaseBean implements EntityTO {
 
@@ -66,16 +57,10 @@ public abstract class AbstractPolicyTO extends AbstractBaseBean implements Entit
         this.description = description;
     }
 
-    @XmlElementWrapper(name = "usedByResources")
-    @XmlElement(name = "resource")
-    @JsonProperty("usedByResources")
     public List<String> getUsedByResources() {
         return usedByResources;
     }
 
-    @XmlElementWrapper(name = "usedByRealms")
-    @XmlElement(name = "group")
-    @JsonProperty("usedByRealms")
     public List<String> getUsedByRealms() {
         return usedByRealms;
     }

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/policy/AccountPolicyTO.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/policy/AccountPolicyTO.java b/common/lib/src/main/java/org/apache/syncope/common/lib/policy/AccountPolicyTO.java
index caf2506..189f460 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/policy/AccountPolicyTO.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/policy/AccountPolicyTO.java
@@ -18,16 +18,9 @@
  */
 package org.apache.syncope.common.lib.policy;
 
-import com.fasterxml.jackson.annotation.JsonProperty;
 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;
 
-@XmlRootElement(name = "accountPolicy")
-@XmlType
 public class AccountPolicyTO extends AbstractPolicyTO implements ComposablePolicy<AbstractAccountRuleConf> {
 
     private static final long serialVersionUID = -1557150042828800134L;
@@ -56,17 +49,11 @@ public class AccountPolicyTO extends AbstractPolicyTO implements ComposablePolic
         this.maxAuthenticationAttempts = maxAuthenticationAttempts;
     }
 
-    @XmlElementWrapper(name = "ruleConfs")
-    @XmlElement(name = "ruleConf")
-    @JsonProperty("ruleConfs")
     @Override
     public List<AbstractAccountRuleConf> getRuleConfs() {
         return ruleConfs;
     }
 
-    @XmlElementWrapper(name = "passthroughResources")
-    @XmlElement(name = "passthroughResource")
-    @JsonProperty("passthroughResources")
     public List<String> getPassthroughResources() {
         return passthroughResources;
     }

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/policy/DefaultAccountRuleConf.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/policy/DefaultAccountRuleConf.java b/common/lib/src/main/java/org/apache/syncope/common/lib/policy/DefaultAccountRuleConf.java
index 2788a4a..862fd6f 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/policy/DefaultAccountRuleConf.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/policy/DefaultAccountRuleConf.java
@@ -18,19 +18,12 @@
  */
 package org.apache.syncope.common.lib.policy;
 
-import com.fasterxml.jackson.annotation.JsonProperty;
 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.lib.report.Schema;
 import org.apache.syncope.common.lib.types.AnyTypeKind;
 import org.apache.syncope.common.lib.types.SchemaType;
 
-@XmlRootElement(name = "defaultAccountRuleConf")
-@XmlType
 public class DefaultAccountRuleConf extends AbstractAccountRuleConf implements AccountRuleConf {
 
     private static final long serialVersionUID = 3259256974414758406L;
@@ -122,30 +115,18 @@ public class DefaultAccountRuleConf extends AbstractAccountRuleConf implements A
         this.pattern = pattern;
     }
 
-    @XmlElementWrapper(name = "wordsNotPermitted")
-    @XmlElement(name = "word")
-    @JsonProperty("wordsNotPermitted")
     public List<String> getWordsNotPermitted() {
         return wordsNotPermitted;
     }
 
-    @XmlElementWrapper(name = "prefixesNotPermitted")
-    @XmlElement(name = "prefix")
-    @JsonProperty("prefixesNotPermitted")
     public List<String> getPrefixesNotPermitted() {
         return prefixesNotPermitted;
     }
 
-    @XmlElementWrapper(name = "schemasNotPermitted")
-    @XmlElement(name = "schema")
-    @JsonProperty("schemasNotPermitted")
     public List<String> getSchemasNotPermitted() {
         return schemasNotPermitted;
     }
 
-    @XmlElementWrapper(name = "suffixesNotPermitted")
-    @XmlElement(name = "suffix")
-    @JsonProperty("suffixesNotPermitted")
     public List<String> getSuffixesNotPermitted() {
         return suffixesNotPermitted;
     }

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/policy/DefaultPasswordRuleConf.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/policy/DefaultPasswordRuleConf.java b/common/lib/src/main/java/org/apache/syncope/common/lib/policy/DefaultPasswordRuleConf.java
index b622546..62dea8c 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/policy/DefaultPasswordRuleConf.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/policy/DefaultPasswordRuleConf.java
@@ -18,19 +18,12 @@
  */
 package org.apache.syncope.common.lib.policy;
 
-import com.fasterxml.jackson.annotation.JsonProperty;
 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.lib.report.Schema;
 import org.apache.syncope.common.lib.types.AnyTypeKind;
 import org.apache.syncope.common.lib.types.SchemaType;
 
-@XmlRootElement(name = "defaultPasswordRuleConf")
-@XmlType
 public class DefaultPasswordRuleConf extends AbstractPasswordRuleConf {
 
     private static final long serialVersionUID = -7988778083915548547L;
@@ -317,30 +310,18 @@ public class DefaultPasswordRuleConf extends AbstractPasswordRuleConf {
         this.usernameAllowed = usernameAllowed;
     }
 
-    @XmlElementWrapper(name = "wordsNotPermitted")
-    @XmlElement(name = "word")
-    @JsonProperty("wordsNotPermitted")
     public List<String> getWordsNotPermitted() {
         return wordsNotPermitted;
     }
 
-    @XmlElementWrapper(name = "prefixesNotPermitted")
-    @XmlElement(name = "prefix")
-    @JsonProperty("prefixesNotPermitted")
     public List<String> getPrefixesNotPermitted() {
         return prefixesNotPermitted;
     }
 
-    @XmlElementWrapper(name = "schemasNotPermitted")
-    @XmlElement(name = "schema")
-    @JsonProperty("schemasNotPermitted")
     public List<String> getSchemasNotPermitted() {
         return schemasNotPermitted;
     }
 
-    @XmlElementWrapper(name = "suffixesNotPermitted")
-    @XmlElement(name = "suffix")
-    @JsonProperty("suffixesNotPermitted")
     public List<String> getSuffixesNotPermitted() {
         return suffixesNotPermitted;
     }

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/policy/PasswordPolicyTO.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/policy/PasswordPolicyTO.java b/common/lib/src/main/java/org/apache/syncope/common/lib/policy/PasswordPolicyTO.java
index b9d6d3e..342577e 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/policy/PasswordPolicyTO.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/policy/PasswordPolicyTO.java
@@ -18,16 +18,9 @@
  */
 package org.apache.syncope.common.lib.policy;
 
-import com.fasterxml.jackson.annotation.JsonProperty;
 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;
 
-@XmlRootElement(name = "passwordPolicy")
-@XmlType
 public class PasswordPolicyTO extends AbstractPolicyTO implements ComposablePolicy<AbstractPasswordRuleConf> {
 
     private static final long serialVersionUID = -5606086441294799690L;
@@ -54,9 +47,6 @@ public class PasswordPolicyTO extends AbstractPolicyTO implements ComposablePoli
         this.historyLength = historyLength;
     }
 
-    @XmlElementWrapper(name = "ruleConfs")
-    @XmlElement(name = "ruleConf")
-    @JsonProperty("ruleConfs")
     @Override
     public List<AbstractPasswordRuleConf> getRuleConfs() {
         return ruleConfs;

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/policy/PullPolicySpec.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/policy/PullPolicySpec.java b/common/lib/src/main/java/org/apache/syncope/common/lib/policy/PullPolicySpec.java
index a6b5338..71fcc1c 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/policy/PullPolicySpec.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/policy/PullPolicySpec.java
@@ -22,13 +22,9 @@ import com.fasterxml.jackson.annotation.JsonIgnore;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import java.util.HashMap;
 import java.util.Map;
-import javax.xml.bind.annotation.XmlType;
-import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
 import org.apache.syncope.common.lib.AbstractBaseBean;
-import org.apache.syncope.common.lib.jaxb.XmlGenericMapAdapter;
 import org.apache.syncope.common.lib.types.ConflictResolutionAction;
 
-@XmlType
 public class PullPolicySpec extends AbstractBaseBean {
 
     private static final long serialVersionUID = -3144027171719498127L;
@@ -43,7 +39,6 @@ public class PullPolicySpec extends AbstractBaseBean {
      * {@code PlainAttrsPullCorrelationRule}</li>
      * </ol>
      */
-    @XmlJavaTypeAdapter(XmlGenericMapAdapter.class)
     @JsonIgnore
     private final Map<String, String> correlationRules = new HashMap<>();
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/policy/PullPolicyTO.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/policy/PullPolicyTO.java b/common/lib/src/main/java/org/apache/syncope/common/lib/policy/PullPolicyTO.java
index 2618e43..da0fd8d 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/policy/PullPolicyTO.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/policy/PullPolicyTO.java
@@ -18,11 +18,6 @@
  */
 package org.apache.syncope.common.lib.policy;
 
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlType;
-
-@XmlRootElement(name = "pullPolicy")
-@XmlType
 public class PullPolicyTO extends AbstractPolicyTO {
 
     private static final long serialVersionUID = 993024634238024242L;

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/policy/PushPolicySpec.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/policy/PushPolicySpec.java b/common/lib/src/main/java/org/apache/syncope/common/lib/policy/PushPolicySpec.java
index 7cfe621..d1b5f2b 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/policy/PushPolicySpec.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/policy/PushPolicySpec.java
@@ -18,10 +18,8 @@
  */
 package org.apache.syncope.common.lib.policy;
 
-import javax.xml.bind.annotation.XmlType;
 import org.apache.syncope.common.lib.AbstractBaseBean;
 
-@XmlType
 public class PushPolicySpec extends AbstractBaseBean {
 
     private static final long serialVersionUID = 3641030189482617497L;

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/policy/package-info.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/policy/package-info.java b/common/lib/src/main/java/org/apache/syncope/common/lib/policy/package-info.java
deleted file mode 100644
index bb26628..0000000
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/policy/package-info.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-@XmlSchema(namespace = SyncopeConstants.NAMESPACE)
-package org.apache.syncope.common.lib.policy;
-
-import javax.xml.bind.annotation.XmlSchema;
-import org.apache.syncope.common.lib.SyncopeConstants;

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/report/AbstractAnyReportletConf.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/report/AbstractAnyReportletConf.java b/common/lib/src/main/java/org/apache/syncope/common/lib/report/AbstractAnyReportletConf.java
index 5e95102..11026aa 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/report/AbstractAnyReportletConf.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/report/AbstractAnyReportletConf.java
@@ -18,9 +18,6 @@
  */
 package org.apache.syncope.common.lib.report;
 
-import javax.xml.bind.annotation.XmlType;
-
-@XmlType
 public abstract class AbstractAnyReportletConf extends AbstractReportletConf {
 
     private static final long serialVersionUID = -5388597116592877789L;

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/report/AbstractReportletConf.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/report/AbstractReportletConf.java b/common/lib/src/main/java/org/apache/syncope/common/lib/report/AbstractReportletConf.java
index f590067..6bcd297 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/report/AbstractReportletConf.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/report/AbstractReportletConf.java
@@ -18,15 +18,9 @@
  */
 package org.apache.syncope.common.lib.report;
 
-import javax.xml.bind.annotation.XmlSeeAlso;
-import javax.xml.bind.annotation.XmlType;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.syncope.common.lib.AbstractBaseBean;
 
-@XmlType
-@XmlSeeAlso({
-    StaticReportletConf.class, UserReportletConf.class, GroupReportletConf.class,
-    AuditReportletConf.class, ReconciliationReportletConf.class })
 public abstract class AbstractReportletConf extends AbstractBaseBean implements ReportletConf {
 
     private static final long serialVersionUID = -6130008602014516608L;

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/report/AuditReportletConf.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/report/AuditReportletConf.java b/common/lib/src/main/java/org/apache/syncope/common/lib/report/AuditReportletConf.java
index 96e49d0..a764705 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/report/AuditReportletConf.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/report/AuditReportletConf.java
@@ -18,11 +18,6 @@
  */
 package org.apache.syncope.common.lib.report;
 
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlType;
-
-@XmlRootElement(name = "auditReportletConf")
-@XmlType
 public class AuditReportletConf extends AbstractReportletConf {
 
     private static final long serialVersionUID = -4814950086361753689L;

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/report/GroupReportletConf.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/report/GroupReportletConf.java b/common/lib/src/main/java/org/apache/syncope/common/lib/report/GroupReportletConf.java
index 6f3800a..88ce96d 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/report/GroupReportletConf.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/report/GroupReportletConf.java
@@ -18,25 +18,15 @@
  */
 package org.apache.syncope.common.lib.report;
 
-import com.fasterxml.jackson.annotation.JsonProperty;
 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.XmlEnum;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlType;
 import org.apache.syncope.common.lib.types.AnyTypeKind;
 import org.apache.syncope.common.lib.types.SchemaType;
 
-@XmlRootElement(name = "groupReportletConf")
-@XmlType
 public class GroupReportletConf extends AbstractAnyReportletConf {
 
     private static final long serialVersionUID = -8488503068032439699L;
 
-    @XmlEnum
-    @XmlType(name = "groupReportletConfFeature")
     public enum Feature {
 
         key,
@@ -70,23 +60,14 @@ public class GroupReportletConf extends AbstractAnyReportletConf {
         this.matchingCond = matchingCond;
     }
 
-    @XmlElementWrapper(name = "plainAttrs")
-    @XmlElement(name = "attribute")
-    @JsonProperty("plainAttrs")
     public List<String> getPlainAttrs() {
         return plainAttrs;
     }
 
-    @XmlElementWrapper(name = "derAttrs")
-    @XmlElement(name = "attribute")
-    @JsonProperty("derAttrs")
     public List<String> getDerAttrs() {
         return derAttrs;
     }
 
-    @XmlElementWrapper(name = "virAttrs")
-    @XmlElement(name = "attribute")
-    @JsonProperty("virAttrs")
     public List<String> getVirAttrs() {
         return virAttrs;
     }
@@ -99,9 +80,6 @@ public class GroupReportletConf extends AbstractAnyReportletConf {
         super(name);
     }
 
-    @XmlElementWrapper(name = "features")
-    @XmlElement(name = "feature")
-    @JsonProperty("features")
     public List<Feature> getFeatures() {
         return features;
     }

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/report/ReconciliationReportletConf.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/report/ReconciliationReportletConf.java b/common/lib/src/main/java/org/apache/syncope/common/lib/report/ReconciliationReportletConf.java
index ce67f46..ee641a0 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/report/ReconciliationReportletConf.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/report/ReconciliationReportletConf.java
@@ -18,24 +18,13 @@
  */
 package org.apache.syncope.common.lib.report;
 
-import com.fasterxml.jackson.annotation.JsonProperty;
 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.XmlEnum;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlType;
-
-@XmlRootElement(name = "reconciliationReportletConf")
-@XmlType
 public class ReconciliationReportletConf extends AbstractReportletConf {
 
     private static final long serialVersionUID = 6602717600064602764L;
 
-    @XmlEnum
-    @XmlType(name = "reconciliationReportletConfFeature")
     public enum Feature {
 
         key,
@@ -94,9 +83,6 @@ public class ReconciliationReportletConf extends AbstractReportletConf {
         this.anyObjectMatchingCond = anyObjectMatchingCond;
     }
 
-    @XmlElementWrapper(name = "features")
-    @XmlElement(name = "feature")
-    @JsonProperty("features")
     public List<Feature> getFeatures() {
         return features;
     }

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/report/StaticReportletConf.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/report/StaticReportletConf.java b/common/lib/src/main/java/org/apache/syncope/common/lib/report/StaticReportletConf.java
index 2514c16..6059ff2 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/report/StaticReportletConf.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/report/StaticReportletConf.java
@@ -18,18 +18,11 @@
  */
 package org.apache.syncope.common.lib.report;
 
-import com.fasterxml.jackson.annotation.JsonProperty;
 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.lib.types.TraceLevel;
 
-@XmlRootElement(name = "staticReportletConf")
-@XmlType
 public class StaticReportletConf extends AbstractReportletConf {
 
     private static final long serialVersionUID = -4814950086361753689L;
@@ -74,9 +67,6 @@ public class StaticReportletConf extends AbstractReportletConf {
         this.doubleField = doubleField;
     }
 
-    @XmlElementWrapper(name = "listField")
-    @XmlElement(name = "field")
-    @JsonProperty("listField")
     public List<String> getListField() {
         return listField;
     }

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/report/UserReportletConf.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/report/UserReportletConf.java b/common/lib/src/main/java/org/apache/syncope/common/lib/report/UserReportletConf.java
index 0a5455d..e9c13b3 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/report/UserReportletConf.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/report/UserReportletConf.java
@@ -18,19 +18,11 @@
  */
 package org.apache.syncope.common.lib.report;
 
-import com.fasterxml.jackson.annotation.JsonProperty;
 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.XmlEnum;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlType;
 import org.apache.syncope.common.lib.types.AnyTypeKind;
 import org.apache.syncope.common.lib.types.SchemaType;
 
-@XmlRootElement(name = "userReportletConf")
-@XmlType
 public class UserReportletConf extends AbstractAnyReportletConf {
 
     private static final long serialVersionUID = 6602717600064602764L;
@@ -44,8 +36,6 @@ public class UserReportletConf extends AbstractAnyReportletConf {
     @Schema(anyTypeKind = AnyTypeKind.USER, type = { SchemaType.VIRTUAL })
     private final List<String> virAttrs = new ArrayList<>();
 
-    @XmlEnum
-    @XmlType(name = "userReportletConfFeature")
     public enum Feature {
 
         key,
@@ -69,23 +59,14 @@ public class UserReportletConf extends AbstractAnyReportletConf {
     @SearchCondition(type = "USER")
     protected String matchingCond;
 
-    @XmlElementWrapper(name = "plainAttrs")
-    @XmlElement(name = "attribute")
-    @JsonProperty("plainAttrs")
     public List<String> getPlainAttrs() {
         return plainAttrs;
     }
 
-    @XmlElementWrapper(name = "derAttrs")
-    @XmlElement(name = "attribute")
-    @JsonProperty("derAttrs")
     public List<String> getDerAttrs() {
         return derAttrs;
     }
 
-    @XmlElementWrapper(name = "virAttrs")
-    @XmlElement(name = "attribute")
-    @JsonProperty("virAttrs")
     public List<String> getVirAttrs() {
         return virAttrs;
     }
@@ -108,9 +89,6 @@ public class UserReportletConf extends AbstractAnyReportletConf {
         this.matchingCond = matchingCond;
     }
 
-    @XmlElementWrapper(name = "features")
-    @XmlElement(name = "feature")
-    @JsonProperty("features")
     public List<Feature> getFeatures() {
         return features;
     }

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/report/package-info.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/report/package-info.java b/common/lib/src/main/java/org/apache/syncope/common/lib/report/package-info.java
deleted file mode 100644
index bc452c1..0000000
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/report/package-info.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-@XmlSchema(namespace = SyncopeConstants.NAMESPACE)
-package org.apache.syncope.common.lib.report;
-
-import javax.xml.bind.annotation.XmlSchema;
-import org.apache.syncope.common.lib.SyncopeConstants;

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/search/package-info.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/search/package-info.java b/common/lib/src/main/java/org/apache/syncope/common/lib/search/package-info.java
deleted file mode 100644
index ff6b5e7..0000000
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/search/package-info.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-@XmlSchema(namespace = SyncopeConstants.NAMESPACE)
-package org.apache.syncope.common.lib.search;
-
-import javax.xml.bind.annotation.XmlSchema;
-import org.apache.syncope.common.lib.SyncopeConstants;

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/to/AbstractAnnotatedBean.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/to/AbstractAnnotatedBean.java b/common/lib/src/main/java/org/apache/syncope/common/lib/to/AbstractAnnotatedBean.java
index c0f7155..ce0a990 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/to/AbstractAnnotatedBean.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/to/AbstractAnnotatedBean.java
@@ -21,13 +21,11 @@ package org.apache.syncope.common.lib.to;
 import org.apache.syncope.common.lib.AbstractBaseBean;
 import com.fasterxml.jackson.annotation.JsonIgnore;
 import java.util.Date;
-import javax.xml.bind.annotation.XmlType;
 import org.apache.commons.lang3.StringUtils;
 
 /**
  * Abstract wrapper for common system information.
  */
-@XmlType
 public class AbstractAnnotatedBean extends AbstractBaseBean {
 
     private static final long serialVersionUID = -930797879027642457L;

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/to/AbstractProvisioningTaskTO.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/to/AbstractProvisioningTaskTO.java b/common/lib/src/main/java/org/apache/syncope/common/lib/to/AbstractProvisioningTaskTO.java
index cd7a5ae..b94c250 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/to/AbstractProvisioningTaskTO.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/to/AbstractProvisioningTaskTO.java
@@ -18,20 +18,11 @@
  */
 package org.apache.syncope.common.lib.to;
 
-import com.fasterxml.jackson.annotation.JsonProperty;
 import java.util.HashSet;
 import java.util.Set;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlElementWrapper;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlSeeAlso;
-import javax.xml.bind.annotation.XmlType;
 import org.apache.syncope.common.lib.types.MatchingRule;
 import org.apache.syncope.common.lib.types.UnmatchingRule;
 
-@XmlRootElement(name = "abstractProvisioningTask")
-@XmlType
-@XmlSeeAlso({ PushTaskTO.class, PullTaskTO.class })
 public class AbstractProvisioningTaskTO extends SchedTaskTO {
 
     private static final long serialVersionUID = -2143537546915809016L;
@@ -92,9 +83,6 @@ public class AbstractProvisioningTaskTO extends SchedTaskTO {
         this.syncStatus = syncStatus;
     }
 
-    @XmlElementWrapper(name = "actionsClassNames")
-    @XmlElement(name = "actionsClassName")
-    @JsonProperty("actionsClassNames")
     public Set<String> getActionsClassNames() {
         return actionsClassNames;
     }

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/to/AbstractSchemaTO.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/to/AbstractSchemaTO.java b/common/lib/src/main/java/org/apache/syncope/common/lib/to/AbstractSchemaTO.java
index 2917c98..6976415 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/to/AbstractSchemaTO.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/to/AbstractSchemaTO.java
@@ -20,14 +20,8 @@ package org.apache.syncope.common.lib.to;
 
 import com.fasterxml.jackson.annotation.JsonTypeInfo;
 import javax.ws.rs.PathParam;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlSeeAlso;
-import javax.xml.bind.annotation.XmlType;
 import org.apache.syncope.common.lib.AbstractBaseBean;
 
-@XmlRootElement(name = "abstractSchema")
-@XmlType
-@XmlSeeAlso({ PlainSchemaTO.class, DerSchemaTO.class, VirSchemaTO.class })
 @JsonTypeInfo(use = JsonTypeInfo.Id.CLASS, include = JsonTypeInfo.As.PROPERTY, property = "@class")
 public abstract class AbstractSchemaTO extends AbstractBaseBean implements EntityTO {
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/to/AbstractStartEndBean.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/to/AbstractStartEndBean.java b/common/lib/src/main/java/org/apache/syncope/common/lib/to/AbstractStartEndBean.java
index 88962c5..ae6e3ec 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/to/AbstractStartEndBean.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/to/AbstractStartEndBean.java
@@ -19,10 +19,8 @@
 package org.apache.syncope.common.lib.to;
 
 import java.util.Date;
-import javax.xml.bind.annotation.XmlType;
 import org.apache.syncope.common.lib.AbstractBaseBean;
 
-@XmlType
 public class AbstractStartEndBean extends AbstractBaseBean {
 
     private static final long serialVersionUID = 2399577415544539917L;

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/to/AbstractTaskTO.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/to/AbstractTaskTO.java b/common/lib/src/main/java/org/apache/syncope/common/lib/to/AbstractTaskTO.java
index 65603f7..ec624b3 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/to/AbstractTaskTO.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/to/AbstractTaskTO.java
@@ -18,21 +18,11 @@
  */
 package org.apache.syncope.common.lib.to;
 
-import com.fasterxml.jackson.annotation.JsonProperty;
 import com.fasterxml.jackson.annotation.JsonTypeInfo;
-
 import java.util.ArrayList;
 import java.util.List;
 import javax.ws.rs.PathParam;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlElementWrapper;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlSeeAlso;
-import javax.xml.bind.annotation.XmlType;
 
-@XmlRootElement(name = "abstractTask")
-@XmlType
-@XmlSeeAlso({ PropagationTaskTO.class, SchedTaskTO.class, NotificationTaskTO.class })
 @JsonTypeInfo(use = JsonTypeInfo.Id.CLASS, include = JsonTypeInfo.As.PROPERTY, property = "@class")
 public abstract class AbstractTaskTO extends AbstractStartEndBean implements EntityTO {
 
@@ -63,9 +53,6 @@ public abstract class AbstractTaskTO extends AbstractStartEndBean implements Ent
         this.latestExecStatus = latestExecStatus;
     }
 
-    @XmlElementWrapper(name = "executions")
-    @XmlElement(name = "execution")
-    @JsonProperty("executions")
     public List<ExecTO> getExecutions() {
         return executions;
     }

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/to/AnyObjectTO.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/to/AnyObjectTO.java b/common/lib/src/main/java/org/apache/syncope/common/lib/to/AnyObjectTO.java
index 81a445a..f90396d 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/to/AnyObjectTO.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/to/AnyObjectTO.java
@@ -19,20 +19,13 @@
 package org.apache.syncope.common.lib.to;
 
 import com.fasterxml.jackson.annotation.JsonIgnore;
-import com.fasterxml.jackson.annotation.JsonProperty;
 import java.util.ArrayList;
 import java.util.Collections;
 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.lang3.tuple.Pair;
 
-@XmlRootElement(name = "anyObject")
-@XmlType
 public class AnyObjectTO extends AnyTO implements GroupableRelatableTO {
 
     private static final long serialVersionUID = 8841697496476959639L;
@@ -53,9 +46,6 @@ public class AnyObjectTO extends AnyTO implements GroupableRelatableTO {
         this.name = name;
     }
 
-    @XmlElementWrapper(name = "relationships")
-    @XmlElement(name = "relationship")
-    @JsonProperty("relationships")
     @Override
     public List<RelationshipTO> getRelationships() {
         return relationships;
@@ -73,9 +63,6 @@ public class AnyObjectTO extends AnyTO implements GroupableRelatableTO {
         return result;
     }
 
-    @XmlElementWrapper(name = "memberships")
-    @XmlElement(name = "membership")
-    @JsonProperty("memberships")
     @Override
     public List<MembershipTO> getMemberships() {
         return memberships;
@@ -93,9 +80,6 @@ public class AnyObjectTO extends AnyTO implements GroupableRelatableTO {
         return result;
     }
 
-    @XmlElementWrapper(name = "dynGroups")
-    @XmlElement(name = "role")
-    @JsonProperty("dynGroups")
     @Override
     public List<String> getDynGroups() {
         return dynGroups;

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/to/AnyTO.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/to/AnyTO.java b/common/lib/src/main/java/org/apache/syncope/common/lib/to/AnyTO.java
index b63d4b0..8b3998c 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/to/AnyTO.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/to/AnyTO.java
@@ -19,7 +19,6 @@
 package org.apache.syncope.common.lib.to;
 
 import com.fasterxml.jackson.annotation.JsonIgnore;
-import com.fasterxml.jackson.annotation.JsonProperty;
 import com.fasterxml.jackson.annotation.JsonTypeInfo;
 import java.util.ArrayList;
 import java.util.Collections;
@@ -28,13 +27,7 @@ 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.XmlSeeAlso;
-import javax.xml.bind.annotation.XmlType;
 
-@XmlType
-@XmlSeeAlso({ UserTO.class, GroupTO.class, AnyObjectTO.class })
 @JsonTypeInfo(use = JsonTypeInfo.Id.CLASS, include = JsonTypeInfo.As.PROPERTY, property = "@class")
 public abstract class AnyTO extends AbstractAnnotatedBean implements EntityTO, AttributableTO {
 
@@ -92,16 +85,10 @@ public abstract class AnyTO extends AbstractAnnotatedBean implements EntityTO, A
         this.status = status;
     }
 
-    @XmlElementWrapper(name = "auxClasses")
-    @XmlElement(name = "class")
-    @JsonProperty("auxClasses")
     public List<String> getAuxClasses() {
         return auxClasses;
     }
 
-    @XmlElementWrapper(name = "plainAttrs")
-    @XmlElement(name = "attribute")
-    @JsonProperty("plainAttrs")
     @Override
     public Set<AttrTO> getPlainAttrs() {
         return plainAttrs;
@@ -118,9 +105,6 @@ public abstract class AnyTO extends AbstractAnnotatedBean implements EntityTO, A
         return Collections.unmodifiableMap(result);
     }
 
-    @XmlElementWrapper(name = "derAttrs")
-    @XmlElement(name = "attribute")
-    @JsonProperty("derAttrs")
     @Override
     public Set<AttrTO> getDerAttrs() {
         return derAttrs;
@@ -137,9 +121,6 @@ public abstract class AnyTO extends AbstractAnnotatedBean implements EntityTO, A
         return Collections.unmodifiableMap(result);
     }
 
-    @XmlElementWrapper(name = "virAttrs")
-    @XmlElement(name = "attribute")
-    @JsonProperty("virAttrs")
     @Override
     public Set<AttrTO> getVirAttrs() {
         return virAttrs;
@@ -156,9 +137,6 @@ public abstract class AnyTO extends AbstractAnnotatedBean implements EntityTO, A
         return Collections.unmodifiableMap(result);
     }
 
-    @XmlElementWrapper(name = "resources")
-    @XmlElement(name = "resource")
-    @JsonProperty("resources")
     public Set<String> getResources() {
         return resources;
     }

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/to/AnyTypeClassTO.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/to/AnyTypeClassTO.java b/common/lib/src/main/java/org/apache/syncope/common/lib/to/AnyTypeClassTO.java
index d68a7fe..e4cccc5 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/to/AnyTypeClassTO.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/to/AnyTypeClassTO.java
@@ -18,18 +18,11 @@
  */
 package org.apache.syncope.common.lib.to;
 
-import com.fasterxml.jackson.annotation.JsonProperty;
 import java.util.ArrayList;
 import java.util.List;
 import javax.ws.rs.PathParam;
-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.lib.AbstractBaseBean;
 
-@XmlRootElement(name = "anyTypeClass")
-@XmlType
 public class AnyTypeClassTO extends AbstractBaseBean implements EntityTO {
 
     private static final long serialVersionUID = -591757688607551266L;
@@ -55,30 +48,18 @@ public class AnyTypeClassTO extends AbstractBaseBean implements EntityTO {
         this.key = key;
     }
 
-    @XmlElementWrapper(name = "plainSchemas")
-    @XmlElement(name = "schema")
-    @JsonProperty("plainSchemas")
     public List<String> getPlainSchemas() {
         return plainSchemas;
     }
 
-    @XmlElementWrapper(name = "derSchemas")
-    @XmlElement(name = "schema")
-    @JsonProperty("derSchemas")
     public List<String> getDerSchemas() {
         return derSchemas;
     }
 
-    @XmlElementWrapper(name = "virSchemas")
-    @XmlElement(name = "schema")
-    @JsonProperty("virSchemas")
     public List<String> getVirSchemas() {
         return virSchemas;
     }
 
-    @XmlElementWrapper(name = "inUseByTypes")
-    @XmlElement(name = "anyTypeClass")
-    @JsonProperty("inUseByTypes")
     public List<String> getInUseByTypes() {
         return inUseByTypes;
     }

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/to/AnyTypeTO.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/to/AnyTypeTO.java b/common/lib/src/main/java/org/apache/syncope/common/lib/to/AnyTypeTO.java
index 07827cb..d61898c 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/to/AnyTypeTO.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/to/AnyTypeTO.java
@@ -18,19 +18,12 @@
  */
 package org.apache.syncope.common.lib.to;
 
-import com.fasterxml.jackson.annotation.JsonProperty;
 import java.util.ArrayList;
 import java.util.List;
 import javax.ws.rs.PathParam;
-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.lib.AbstractBaseBean;
 import org.apache.syncope.common.lib.types.AnyTypeKind;
 
-@XmlRootElement(name = "anyType")
-@XmlType
 public class AnyTypeTO extends AbstractBaseBean implements EntityTO {
 
     private static final long serialVersionUID = 6771657557616874373L;
@@ -60,9 +53,6 @@ public class AnyTypeTO extends AbstractBaseBean implements EntityTO {
         this.kind = kind;
     }
 
-    @XmlElementWrapper(name = "classes")
-    @XmlElement(name = "class")
-    @JsonProperty("classes")
     public List<String> getClasses() {
         return classes;
     }

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/to/AttrTO.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/to/AttrTO.java b/common/lib/src/main/java/org/apache/syncope/common/lib/to/AttrTO.java
index 65a6b51..86513c3 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/to/AttrTO.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/to/AttrTO.java
@@ -19,19 +19,12 @@
 package org.apache.syncope.common.lib.to;
 
 import org.apache.syncope.common.lib.AbstractBaseBean;
-import com.fasterxml.jackson.annotation.JsonProperty;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
 import javax.ws.rs.PathParam;
-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.collections4.CollectionUtils;
 
-@XmlRootElement(name = "attribute")
-@XmlType
 public class AttrTO extends AbstractBaseBean {
 
     private static final long serialVersionUID = 4941691338796323623L;
@@ -104,9 +97,6 @@ public class AttrTO extends AbstractBaseBean {
     /**
      * @return attribute values as strings
      */
-    @XmlElementWrapper(name = "values")
-    @XmlElement(name = "value")
-    @JsonProperty("values")
     public List<String> getValues() {
         return values;
     }

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/to/BulkAction.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/to/BulkAction.java b/common/lib/src/main/java/org/apache/syncope/common/lib/to/BulkAction.java
index c3edf7c..768b51a 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/to/BulkAction.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/to/BulkAction.java
@@ -18,24 +18,14 @@
  */
 package org.apache.syncope.common.lib.to;
 
-import com.fasterxml.jackson.annotation.JsonProperty;
 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.XmlEnum;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlType;
 import org.apache.syncope.common.lib.AbstractBaseBean;
 
-@XmlRootElement(name = "bulkAction")
-@XmlType
 public class BulkAction extends AbstractBaseBean {
 
     private static final long serialVersionUID = 1395353278878758961L;
 
-    @XmlEnum
-    @XmlType(name = "bulkActionType")
     public enum Type {
 
         MUSTCHANGEPASSWORD,
@@ -59,9 +49,6 @@ public class BulkAction extends AbstractBaseBean {
         this.type = type;
     }
 
-    @XmlElementWrapper(name = "targets")
-    @XmlElement(name = "target")
-    @JsonProperty("targets")
     public List<String> getTargets() {
         return targets;
     }

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/to/BulkActionResult.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/to/BulkActionResult.java b/common/lib/src/main/java/org/apache/syncope/common/lib/to/BulkActionResult.java
index c2e67f4..c74f3af 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/to/BulkActionResult.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/to/BulkActionResult.java
@@ -18,6 +18,7 @@
  */
 package org.apache.syncope.common.lib.to;
 
+import com.fasterxml.jackson.annotation.JsonCreator;
 import com.fasterxml.jackson.annotation.JsonIgnore;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import java.util.ArrayList;
@@ -25,26 +26,12 @@ import java.util.Collections;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlEnum;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlSeeAlso;
-import javax.xml.bind.annotation.XmlType;
-import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
 import org.apache.syncope.common.lib.AbstractBaseBean;
-import org.apache.syncope.common.lib.jaxb.XmlGenericMapAdapter;
 
-@XmlRootElement(name = "bulkActionResult")
-@XmlType
-@XmlAccessorType(XmlAccessType.FIELD)
-@XmlSeeAlso(BulkActionResult.Status.class)
 public class BulkActionResult extends AbstractBaseBean {
 
     private static final long serialVersionUID = 2868894178821778133L;
 
-    @XmlEnum
-    @XmlType(name = "bulkActionStatus")
     public enum Status {
 
         // general bulk action result statuses
@@ -56,25 +43,48 @@ public class BulkActionResult extends AbstractBaseBean {
 
     }
 
-    @XmlJavaTypeAdapter(XmlGenericMapAdapter.class)
+    public static class Single extends AbstractBaseBean {
+
+        private static final long serialVersionUID = -2677679977955844506L;
+
+        private final String key;
+
+        private final Status status;
+
+        @JsonCreator
+        public Single(@JsonProperty("key") final String key, @JsonProperty("status") final Status status) {
+            this.key = key;
+            this.status = status;
+        }
+
+        public String getKey() {
+            return key;
+        }
+
+        public Status getStatus() {
+            return status;
+        }
+    }
+
+    private final List<Single> results = new ArrayList<>();
+
     @JsonIgnore
-    private final Map<String, Status> results = new HashMap<>();
+    public boolean add(final String key, final Status status) {
+        Single single = new Single(key, status);
+        return results.contains(single) || results.add(single);
+    }
 
-    @JsonProperty
-    public Map<String, Status> getResults() {
+    public List<Single> getResults() {
         return results;
     }
 
     @JsonIgnore
-    public List<String> getResultByStatus(final Status status) {
-        final List<String> result = new ArrayList<>();
-
-        for (Map.Entry<String, Status> entry : results.entrySet()) {
-            if (entry.getValue() == status) {
-                result.add(entry.getKey());
-            }
+    public Map<String, Status> getResultMap() {
+        Map<String, Status> result = new HashMap<>(results.size());
+        for (Single single : results) {
+            result.put(single.getKey(), single.getStatus());
         }
 
-        return Collections.unmodifiableList(result);
+        return Collections.unmodifiableMap(result);
     }
 }

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/to/ConnBundleTO.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/to/ConnBundleTO.java b/common/lib/src/main/java/org/apache/syncope/common/lib/to/ConnBundleTO.java
index b62c353..3687b6a 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/to/ConnBundleTO.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/to/ConnBundleTO.java
@@ -18,18 +18,11 @@
  */
 package org.apache.syncope.common.lib.to;
 
-import com.fasterxml.jackson.annotation.JsonProperty;
 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.lib.AbstractBaseBean;
 import org.apache.syncope.common.lib.types.ConnConfPropSchema;
 
-@XmlRootElement(name = "connectorBundle")
-@XmlType
 public class ConnBundleTO extends AbstractBaseBean {
 
     private static final long serialVersionUID = 7215115961910138005L;
@@ -78,9 +71,6 @@ public class ConnBundleTO extends AbstractBaseBean {
         this.connectorName = connectorName;
     }
 
-    @XmlElementWrapper(name = "properties")
-    @XmlElement(name = "connConfPropSchema")
-    @JsonProperty("properties")
     public List<ConnConfPropSchema> getProperties() {
         return properties;
     }

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/to/ConnIdObjectClassTO.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/to/ConnIdObjectClassTO.java b/common/lib/src/main/java/org/apache/syncope/common/lib/to/ConnIdObjectClassTO.java
index be1b6d6..a5529db 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/to/ConnIdObjectClassTO.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/to/ConnIdObjectClassTO.java
@@ -18,20 +18,13 @@
  */
 package org.apache.syncope.common.lib.to;
 
-import com.fasterxml.jackson.annotation.JsonProperty;
 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.lib.AbstractBaseBean;
 
 /**
  * Metadata description of ConnId ObjectClass.
  */
-@XmlRootElement(name = "connIdObjectClass")
-@XmlType
 public class ConnIdObjectClassTO extends AbstractBaseBean {
 
     private static final long serialVersionUID = -3719658595689434648L;
@@ -68,9 +61,6 @@ public class ConnIdObjectClassTO extends AbstractBaseBean {
         this.auxiliary = auxiliary;
     }
 
-    @XmlElementWrapper(name = "attributes")
-    @XmlElement(name = "attribute")
-    @JsonProperty("attributes")
     public List<String> getAttributes() {
         return attributes;
     }

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/to/ConnInstanceTO.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/to/ConnInstanceTO.java b/common/lib/src/main/java/org/apache/syncope/common/lib/to/ConnInstanceTO.java
index 4f91355..633365d 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/to/ConnInstanceTO.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/to/ConnInstanceTO.java
@@ -19,7 +19,6 @@
 package org.apache.syncope.common.lib.to;
 
 import com.fasterxml.jackson.annotation.JsonIgnore;
-import com.fasterxml.jackson.annotation.JsonProperty;
 import java.util.Collections;
 import java.util.EnumSet;
 import java.util.HashMap;
@@ -27,16 +26,10 @@ import java.util.HashSet;
 import java.util.Map;
 import java.util.Set;
 import javax.ws.rs.PathParam;
-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.lib.AbstractBaseBean;
 import org.apache.syncope.common.lib.types.ConnConfProperty;
 import org.apache.syncope.common.lib.types.ConnectorCapability;
 
-@XmlRootElement(name = "connInstance")
-@XmlType
 public class ConnInstanceTO extends AbstractBaseBean implements EntityTO {
 
     private static final long serialVersionUID = 2707778645445168671L;
@@ -104,9 +97,6 @@ public class ConnInstanceTO extends AbstractBaseBean implements EntityTO {
         this.version = version;
     }
 
-    @XmlElementWrapper(name = "conf")
-    @XmlElement(name = "property")
-    @JsonProperty("conf")
     public Set<ConnConfProperty> getConf() {
         return this.conf;
     }
@@ -123,9 +113,6 @@ public class ConnInstanceTO extends AbstractBaseBean implements EntityTO {
         return Collections.unmodifiableMap(result);
     }
 
-    @XmlElementWrapper(name = "capabilities")
-    @XmlElement(name = "capability")
-    @JsonProperty("capabilities")
     public Set<ConnectorCapability> getCapabilities() {
         return capabilities;
     }

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/to/ConnObjectTO.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/to/ConnObjectTO.java b/common/lib/src/main/java/org/apache/syncope/common/lib/to/ConnObjectTO.java
index 09784c8..d1ba0e6 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/to/ConnObjectTO.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/to/ConnObjectTO.java
@@ -19,29 +19,19 @@
 package org.apache.syncope.common.lib.to;
 
 import com.fasterxml.jackson.annotation.JsonIgnore;
-import com.fasterxml.jackson.annotation.JsonProperty;
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.LinkedHashSet;
 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.XmlRootElement;
-import javax.xml.bind.annotation.XmlType;
 import org.apache.syncope.common.lib.AbstractBaseBean;
 
-@XmlRootElement(name = "connObject")
-@XmlType
 public class ConnObjectTO extends AbstractBaseBean {
 
     private static final long serialVersionUID = 5139554911265442497L;
 
     private final Set<AttrTO> attrs = new LinkedHashSet<>();
 
-    @XmlElementWrapper(name = "attrs")
-    @XmlElement(name = "attribute")
-    @JsonProperty("attrs")
     public Set<AttrTO> getAttrs() {
         return attrs;
     }

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/to/ConnPoolConfTO.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/to/ConnPoolConfTO.java b/common/lib/src/main/java/org/apache/syncope/common/lib/to/ConnPoolConfTO.java
index 9f455dc..38c950a 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/to/ConnPoolConfTO.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/to/ConnPoolConfTO.java
@@ -19,11 +19,7 @@
 package org.apache.syncope.common.lib.to;
 
 import org.apache.syncope.common.lib.AbstractBaseBean;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlType;
 
-@XmlRootElement(name = "connPoolConf")
-@XmlType
 public class ConnPoolConfTO extends AbstractBaseBean {
 
     private static final long serialVersionUID = -214360178113476623L;

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/to/DerSchemaTO.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/to/DerSchemaTO.java b/common/lib/src/main/java/org/apache/syncope/common/lib/to/DerSchemaTO.java
index dc84864..0b3d42f 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/to/DerSchemaTO.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/to/DerSchemaTO.java
@@ -18,11 +18,6 @@
  */
 package org.apache.syncope.common.lib.to;
 
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlType;
-
-@XmlRootElement(name = "derivedSchema")
-@XmlType
 public class DerSchemaTO extends AbstractSchemaTO {
 
     private static final long serialVersionUID = -6747399803792103108L;

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/to/DomainTO.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/to/DomainTO.java b/common/lib/src/main/java/org/apache/syncope/common/lib/to/DomainTO.java
index 8994cf8..1fce4de 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/to/DomainTO.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/to/DomainTO.java
@@ -18,13 +18,9 @@
  */
 package org.apache.syncope.common.lib.to;
 
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlType;
 import org.apache.syncope.common.lib.AbstractBaseBean;
 import org.apache.syncope.common.lib.types.CipherAlgorithm;
 
-@XmlRootElement(name = "domain")
-@XmlType
 public class DomainTO extends AbstractBaseBean implements EntityTO {
 
     private static final long serialVersionUID = -7938075259986084934L;

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/to/ErrorTO.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/to/ErrorTO.java b/common/lib/src/main/java/org/apache/syncope/common/lib/to/ErrorTO.java
index f643b88..a688c8e 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/to/ErrorTO.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/to/ErrorTO.java
@@ -18,18 +18,11 @@
  */
 package org.apache.syncope.common.lib.to;
 
-import com.fasterxml.jackson.annotation.JsonProperty;
 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.lib.AbstractBaseBean;
 import org.apache.syncope.common.lib.types.ClientExceptionType;
 
-@XmlRootElement(name = "error")
-@XmlType
 public class ErrorTO extends AbstractBaseBean {
 
     private static final long serialVersionUID = 2435764161719225927L;
@@ -56,9 +49,6 @@ public class ErrorTO extends AbstractBaseBean {
         this.type = type;
     }
 
-    @XmlElementWrapper(name = "elements")
-    @XmlElement(name = "element")
-    @JsonProperty("elements")
     public List<String> getElements() {
         return elements;
     }

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/to/EventCategoryTO.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/to/EventCategoryTO.java b/common/lib/src/main/java/org/apache/syncope/common/lib/to/EventCategoryTO.java
index 544e204..5dd4b77 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/to/EventCategoryTO.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/to/EventCategoryTO.java
@@ -18,18 +18,11 @@
  */
 package org.apache.syncope.common.lib.to;
 
-import com.fasterxml.jackson.annotation.JsonProperty;
 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.lib.AbstractBaseBean;
 import org.apache.syncope.common.lib.types.AuditElements;
 
-@XmlRootElement(name = "eventCategory")
-@XmlType
 public class EventCategoryTO extends AbstractBaseBean {
 
     private static final long serialVersionUID = -4340060002701633401L;
@@ -83,9 +76,6 @@ public class EventCategoryTO extends AbstractBaseBean {
         this.subcategory = subcategory;
     }
 
-    @XmlElementWrapper(name = "events")
-    @XmlElement(name = "event")
-    @JsonProperty("events")
     public List<String> getEvents() {
         return events;
     }

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/to/ExecTO.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/to/ExecTO.java b/common/lib/src/main/java/org/apache/syncope/common/lib/to/ExecTO.java
index 323658e..34b8977 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/to/ExecTO.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/to/ExecTO.java
@@ -18,12 +18,8 @@
  */
 package org.apache.syncope.common.lib.to;
 
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlType;
 import org.apache.syncope.common.lib.types.JobType;
 
-@XmlRootElement(name = "exec")
-@XmlType()
 public class ExecTO extends AbstractStartEndBean implements EntityTO {
 
     private static final long serialVersionUID = -4621191979198357081L;

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/to/GroupTO.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/to/GroupTO.java b/common/lib/src/main/java/org/apache/syncope/common/lib/to/GroupTO.java
index 0ae0885..7f1f721 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/to/GroupTO.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/to/GroupTO.java
@@ -19,23 +19,14 @@
 package org.apache.syncope.common.lib.to;
 
 import com.fasterxml.jackson.annotation.JsonIgnore;
-import com.fasterxml.jackson.annotation.JsonProperty;
 import java.util.ArrayList;
 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 javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
 import org.apache.commons.collections4.IterableUtils;
 import org.apache.commons.collections4.Predicate;
-import org.apache.syncope.common.lib.jaxb.XmlGenericMapAdapter;
 import org.apache.syncope.common.lib.types.AnyTypeKind;
 
-@XmlRootElement(name = "group")
-@XmlType
 public class GroupTO extends AnyTO {
 
     private static final long serialVersionUID = -7785920258290147542L;
@@ -48,8 +39,6 @@ public class GroupTO extends AnyTO {
 
     private String udynMembershipCond;
 
-    @XmlJavaTypeAdapter(XmlGenericMapAdapter.class)
-    @JsonIgnore
     private final Map<String, String> adynMembershipConds = new HashMap<>();
 
     private final List<TypeExtensionTO> typeExtensions = new ArrayList<>();
@@ -96,7 +85,6 @@ public class GroupTO extends AnyTO {
         this.udynMembershipCond = uDynMembershipCond;
     }
 
-    @JsonProperty
     public Map<String, String> getADynMembershipConds() {
         return adynMembershipConds;
     }
@@ -112,9 +100,6 @@ public class GroupTO extends AnyTO {
         });
     }
 
-    @XmlElementWrapper(name = "typeExtensions")
-    @XmlElement(name = "typeExtension")
-    @JsonProperty("typeExtensions")
     public List<TypeExtensionTO> getTypeExtensions() {
         return typeExtensions;
     }

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/to/JobTO.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/to/JobTO.java b/common/lib/src/main/java/org/apache/syncope/common/lib/to/JobTO.java
index 69a339c..bb82ad3 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/to/JobTO.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/to/JobTO.java
@@ -19,13 +19,9 @@
 package org.apache.syncope.common.lib.to;
 
 import java.util.Date;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlType;
 import org.apache.syncope.common.lib.AbstractBaseBean;
 import org.apache.syncope.common.lib.types.JobType;
 
-@XmlRootElement(name = "job")
-@XmlType
 public class JobTO extends AbstractBaseBean {
 
     private static final long serialVersionUID = -7254450981751326711L;

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/to/LoggerTO.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/to/LoggerTO.java b/common/lib/src/main/java/org/apache/syncope/common/lib/to/LoggerTO.java
index 0dfa8b5..a37cd1a 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/to/LoggerTO.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/to/LoggerTO.java
@@ -19,13 +19,9 @@
 package org.apache.syncope.common.lib.to;
 
 import javax.ws.rs.PathParam;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlType;
 import org.apache.syncope.common.lib.AbstractBaseBean;
 import org.apache.syncope.common.lib.types.LoggerLevel;
 
-@XmlRootElement(name = "logger")
-@XmlType
 public class LoggerTO extends AbstractBaseBean {
 
     private static final long serialVersionUID = -7794833835668648505L;

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/to/MailTemplateTO.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/to/MailTemplateTO.java b/common/lib/src/main/java/org/apache/syncope/common/lib/to/MailTemplateTO.java
index bf25867..b949f75 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/to/MailTemplateTO.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/to/MailTemplateTO.java
@@ -19,12 +19,8 @@
 package org.apache.syncope.common.lib.to;
 
 import javax.ws.rs.PathParam;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlType;
 import org.apache.syncope.common.lib.AbstractBaseBean;
 
-@XmlRootElement(name = "mailTemplate")
-@XmlType
 public class MailTemplateTO extends AbstractBaseBean implements EntityTO {
 
     private static final long serialVersionUID = 8389755049666062735L;

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/to/MappingItemTO.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/to/MappingItemTO.java b/common/lib/src/main/java/org/apache/syncope/common/lib/to/MappingItemTO.java
index c078950..5ac943d 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/to/MappingItemTO.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/to/MappingItemTO.java
@@ -18,18 +18,11 @@
  */
 package org.apache.syncope.common.lib.to;
 
-import com.fasterxml.jackson.annotation.JsonProperty;
 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.lib.AbstractBaseBean;
 import org.apache.syncope.common.lib.types.MappingPurpose;
 
-@XmlRootElement(name = "mappingItem")
-@XmlType
 public class MappingItemTO extends AbstractBaseBean implements EntityTO {
 
     private static final long serialVersionUID = 2983498836767176862L;
@@ -153,9 +146,6 @@ public class MappingItemTO extends AbstractBaseBean implements EntityTO {
         this.pullJEXLTransformer = pullJEXLTransformer;
     }
 
-    @XmlElementWrapper(name = "mappingItemTransformerClassNames")
-    @XmlElement(name = "className")
-    @JsonProperty("mappingItemTransformerClassNames")
     public List<String> getMappingItemTransformerClassNames() {
         return mappingItemTransformerClassNames;
     }

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/to/MappingTO.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/to/MappingTO.java b/common/lib/src/main/java/org/apache/syncope/common/lib/to/MappingTO.java
index a9048c7..cc7aa8c 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/to/MappingTO.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/to/MappingTO.java
@@ -18,19 +18,12 @@
  */
 package org.apache.syncope.common.lib.to;
 
-import com.fasterxml.jackson.annotation.JsonProperty;
 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.commons.collections4.IterableUtils;
 import org.apache.commons.collections4.Predicate;
 import org.apache.syncope.common.lib.AbstractBaseBean;
 
-@XmlRootElement(name = "mapping")
-@XmlType
 public class MappingTO extends AbstractBaseBean {
 
     private static final long serialVersionUID = 8447688036282611118L;
@@ -72,9 +65,6 @@ public class MappingTO extends AbstractBaseBean {
                 : addConnObjectKeyItem(connObjectKeyItem);
     }
 
-    @XmlElementWrapper(name = "items")
-    @XmlElement(name = "item")
-    @JsonProperty("items")
     public List<MappingItemTO> getItems() {
         return items;
     }
@@ -87,9 +77,6 @@ public class MappingTO extends AbstractBaseBean {
         return this.items.remove(item);
     }
 
-    @XmlElementWrapper(name = "linkingItems")
-    @XmlElement(name = "item")
-    @JsonProperty("linkingItems")
     public List<MappingItemTO> getLinkingItems() {
         return linkingItems;
     }

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/to/MembershipTO.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/to/MembershipTO.java b/common/lib/src/main/java/org/apache/syncope/common/lib/to/MembershipTO.java
index a970dec..be758ed 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/to/MembershipTO.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/to/MembershipTO.java
@@ -19,20 +19,13 @@
 package org.apache.syncope.common.lib.to;
 
 import com.fasterxml.jackson.annotation.JsonIgnore;
-import com.fasterxml.jackson.annotation.JsonProperty;
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.HashSet;
 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.XmlRootElement;
-import javax.xml.bind.annotation.XmlType;
 import org.apache.syncope.common.lib.types.AnyTypeKind;
 
-@XmlRootElement(name = "membership")
-@XmlType
 public class MembershipTO extends RelationshipTO implements AttributableTO {
 
     private static final long serialVersionUID = 5992828670273935861L;
@@ -102,9 +95,6 @@ public class MembershipTO extends RelationshipTO implements AttributableTO {
         this.groupName = groupName;
     }
 
-    @XmlElementWrapper(name = "plainAttrs")
-    @XmlElement(name = "attribute")
-    @JsonProperty("plainAttrs")
     @Override
     public Set<AttrTO> getPlainAttrs() {
         return plainAttrs;
@@ -121,9 +111,6 @@ public class MembershipTO extends RelationshipTO implements AttributableTO {
         return Collections.unmodifiableMap(result);
     }
 
-    @XmlElementWrapper(name = "derAttrs")
-    @XmlElement(name = "attribute")
-    @JsonProperty("derAttrs")
     @Override
     public Set<AttrTO> getDerAttrs() {
         return derAttrs;
@@ -140,9 +127,6 @@ public class MembershipTO extends RelationshipTO implements AttributableTO {
         return Collections.unmodifiableMap(result);
     }
 
-    @XmlElementWrapper(name = "virAttrs")
-    @XmlElement(name = "attribute")
-    @JsonProperty("virAttrs")
     @Override
     public Set<AttrTO> getVirAttrs() {
         return virAttrs;

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/to/NotificationTO.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/to/NotificationTO.java b/common/lib/src/main/java/org/apache/syncope/common/lib/to/NotificationTO.java
index 428efde..9cec2cf 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/to/NotificationTO.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/to/NotificationTO.java
@@ -25,17 +25,9 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import javax.ws.rs.PathParam;
-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 javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
 import org.apache.syncope.common.lib.AbstractBaseBean;
-import org.apache.syncope.common.lib.jaxb.XmlGenericMapAdapter;
 import org.apache.syncope.common.lib.types.TraceLevel;
 
-@XmlRootElement(name = "notification")
-@XmlType
 public class NotificationTO extends AbstractBaseBean implements EntityTO {
 
     private static final long serialVersionUID = -6145117115632592612L;
@@ -44,7 +36,6 @@ public class NotificationTO extends AbstractBaseBean implements EntityTO {
 
     private final List<String> events = new ArrayList<>();
 
-    @XmlJavaTypeAdapter(XmlGenericMapAdapter.class)
     @JsonIgnore
     private final Map<String, String> abouts = new HashMap<>();
 
@@ -73,16 +64,10 @@ public class NotificationTO extends AbstractBaseBean implements EntityTO {
         return abouts;
     }
 
-    @XmlElementWrapper(name = "events")
-    @XmlElement(name = "event")
-    @JsonProperty("events")
     public List<String> getEvents() {
         return events;
     }
 
-    @XmlElementWrapper(name = "staticRecipients")
-    @XmlElement(name = "staticRecipient")
-    @JsonProperty("staticRecipients")
     public List<String> getStaticRecipients() {
         return staticRecipients;
     }

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/to/NotificationTaskTO.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/to/NotificationTaskTO.java b/common/lib/src/main/java/org/apache/syncope/common/lib/to/NotificationTaskTO.java
index ce74be2..a217f39 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/to/NotificationTaskTO.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/to/NotificationTaskTO.java
@@ -18,18 +18,11 @@
  */
 package org.apache.syncope.common.lib.to;
 
-import com.fasterxml.jackson.annotation.JsonProperty;
 import java.util.HashSet;
 import java.util.Set;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlElementWrapper;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlType;
 import org.apache.syncope.common.lib.types.AnyTypeKind;
 import org.apache.syncope.common.lib.types.TraceLevel;
 
-@XmlRootElement(name = "notificationTask")
-@XmlType
 public class NotificationTaskTO extends AbstractTaskTO {
 
     private static final long serialVersionUID = 371671242591093846L;
@@ -78,9 +71,6 @@ public class NotificationTaskTO extends AbstractTaskTO {
         this.anyKey = anyKey;
     }
 
-    @XmlElementWrapper(name = "recipients")
-    @XmlElement(name = "recipient")
-    @JsonProperty("recipients")
     public Set<String> getRecipients() {
         return recipients;
     }

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/to/OrgUnitTO.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/to/OrgUnitTO.java b/common/lib/src/main/java/org/apache/syncope/common/lib/to/OrgUnitTO.java
index 80743c0..7c962e5 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/to/OrgUnitTO.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/to/OrgUnitTO.java
@@ -18,12 +18,8 @@
  */
 package org.apache.syncope.common.lib.to;
 
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlType;
 import org.apache.syncope.common.lib.AbstractBaseBean;
 
-@XmlRootElement(name = "orgUnit")
-@XmlType
 public class OrgUnitTO extends AbstractBaseBean implements EntityTO {
 
     private static final long serialVersionUID = -1868877794174953177L;


[5/5] syncope git commit: Removing JAXB in favor of jackson-dataformat-xml: currently the only missing part is XSD in WADL

Posted by il...@apache.org.
Removing JAXB in favor of jackson-dataformat-xml: currently the only missing part is XSD in WADL


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

Branch: refs/heads/2_0_NO_JAXB
Commit: f283ebc0c0b0c6ebac01d5a79ce550eb22db5da5
Parents: e74a10a
Author: Francesco Chicchiricc� <il...@apache.org>
Authored: Fri Jul 1 17:19:47 2016 +0200
Committer: Francesco Chicchiricc� <il...@apache.org>
Committed: Tue Jul 5 11:53:16 2016 +0200

----------------------------------------------------------------------
 .../commands/user/UserSyncopeOperations.java    |   2 +-
 .../client/console/rest/ReportRestClient.java   |   4 +-
 .../client/console/rest/UserRestClient.java     |  11 +-
 .../data/table/BulkActionResultColumn.java      |   9 +-
 client/lib/pom.xml                              |   8 +-
 .../client/lib/SyncopeClientFactoryBean.java    |  61 +++-----
 common/lib/pom.xml                              |  23 ++-
 .../syncope/common/lib/AbstractBaseBean.java    |   9 --
 .../syncope/common/lib/SyncopeConstants.java    |   2 -
 .../syncope/common/lib/info/NumbersInfo.java    |  29 ----
 .../syncope/common/lib/info/PlatformInfo.java   |  55 -------
 .../syncope/common/lib/info/SystemInfo.java     |  12 --
 .../syncope/common/lib/info/package-info.java   |  23 ---
 .../lib/jackson/UnwrappedObjectMapper.java      |  93 ++++++++++++
 .../common/lib/jackson/UnwrappedXmlMapper.java  |  94 ++++++++++++
 .../syncope/common/lib/jaxb/EntityTOType.java   |  63 --------
 .../common/lib/jaxb/GenericMapEntryType.java    |  56 --------
 .../syncope/common/lib/jaxb/GenericMapType.java |  46 ------
 .../common/lib/jaxb/XmlEntityTOAdapter.java     |  66 ---------
 .../common/lib/jaxb/XmlGenericMapAdapter.java   |  49 -------
 .../syncope/common/lib/jaxb/package-info.java   |  23 ---
 .../apache/syncope/common/lib/package-info.java |  22 ---
 .../syncope/common/lib/patch/AbstractPatch.java |   4 -
 .../common/lib/patch/AbstractPatchItem.java     |   5 -
 .../lib/patch/AbstractReplacePatchItem.java     |   4 -
 .../common/lib/patch/AnyObjectPatch.java        |  13 --
 .../syncope/common/lib/patch/AnyPatch.java      |  17 ---
 .../common/lib/patch/AssociationPatch.java      |   4 -
 .../syncope/common/lib/patch/AttrPatch.java     |   4 -
 .../lib/patch/BooleanReplacePatchItem.java      |   5 -
 .../common/lib/patch/DeassociationPatch.java    |  10 --
 .../syncope/common/lib/patch/GroupPatch.java    |  12 --
 .../syncope/common/lib/patch/LongPatchItem.java |   5 -
 .../common/lib/patch/MembershipPatch.java       |  13 --
 .../syncope/common/lib/patch/PasswordPatch.java |  12 --
 .../common/lib/patch/RelationshipPatch.java     |   4 -
 .../lib/patch/ResourceDeassociationPatch.java   |  10 --
 .../syncope/common/lib/patch/StatusPatch.java   |   4 -
 .../common/lib/patch/StringPatchItem.java       |   5 -
 .../lib/patch/StringReplacePatchItem.java       |   7 -
 .../syncope/common/lib/patch/UserPatch.java     |  16 ---
 .../syncope/common/lib/patch/package-info.java  |  23 ---
 .../lib/policy/AbstractAccountRuleConf.java     |   4 -
 .../lib/policy/AbstractPasswordRuleConf.java    |   4 -
 .../common/lib/policy/AbstractPolicyTO.java     |  15 --
 .../common/lib/policy/AccountPolicyTO.java      |  13 --
 .../lib/policy/DefaultAccountRuleConf.java      |  19 ---
 .../lib/policy/DefaultPasswordRuleConf.java     |  19 ---
 .../common/lib/policy/PasswordPolicyTO.java     |  10 --
 .../common/lib/policy/PullPolicySpec.java       |   5 -
 .../syncope/common/lib/policy/PullPolicyTO.java |   5 -
 .../common/lib/policy/PushPolicySpec.java       |   2 -
 .../syncope/common/lib/policy/package-info.java |  23 ---
 .../lib/report/AbstractAnyReportletConf.java    |   3 -
 .../lib/report/AbstractReportletConf.java       |   6 -
 .../common/lib/report/AuditReportletConf.java   |   5 -
 .../common/lib/report/GroupReportletConf.java   |  22 ---
 .../lib/report/ReconciliationReportletConf.java |  14 --
 .../common/lib/report/StaticReportletConf.java  |  10 --
 .../common/lib/report/UserReportletConf.java    |  22 ---
 .../syncope/common/lib/report/package-info.java |  23 ---
 .../syncope/common/lib/search/package-info.java |  23 ---
 .../common/lib/to/AbstractAnnotatedBean.java    |   2 -
 .../lib/to/AbstractProvisioningTaskTO.java      |  12 --
 .../syncope/common/lib/to/AbstractSchemaTO.java |   6 -
 .../common/lib/to/AbstractStartEndBean.java     |   2 -
 .../syncope/common/lib/to/AbstractTaskTO.java   |  13 --
 .../syncope/common/lib/to/AnyObjectTO.java      |  16 ---
 .../org/apache/syncope/common/lib/to/AnyTO.java |  22 ---
 .../syncope/common/lib/to/AnyTypeClassTO.java   |  19 ---
 .../apache/syncope/common/lib/to/AnyTypeTO.java |  10 --
 .../apache/syncope/common/lib/to/AttrTO.java    |  10 --
 .../syncope/common/lib/to/BulkAction.java       |  13 --
 .../syncope/common/lib/to/BulkActionResult.java |  62 ++++----
 .../syncope/common/lib/to/ConnBundleTO.java     |  10 --
 .../common/lib/to/ConnIdObjectClassTO.java      |  10 --
 .../syncope/common/lib/to/ConnInstanceTO.java   |  13 --
 .../syncope/common/lib/to/ConnObjectTO.java     |  10 --
 .../syncope/common/lib/to/ConnPoolConfTO.java   |   4 -
 .../syncope/common/lib/to/DerSchemaTO.java      |   5 -
 .../apache/syncope/common/lib/to/DomainTO.java  |   4 -
 .../apache/syncope/common/lib/to/ErrorTO.java   |  10 --
 .../syncope/common/lib/to/EventCategoryTO.java  |  10 --
 .../apache/syncope/common/lib/to/ExecTO.java    |   4 -
 .../apache/syncope/common/lib/to/GroupTO.java   |  15 --
 .../org/apache/syncope/common/lib/to/JobTO.java |   4 -
 .../apache/syncope/common/lib/to/LoggerTO.java  |   4 -
 .../syncope/common/lib/to/MailTemplateTO.java   |   4 -
 .../syncope/common/lib/to/MappingItemTO.java    |  10 --
 .../apache/syncope/common/lib/to/MappingTO.java |  13 --
 .../syncope/common/lib/to/MembershipTO.java     |  16 ---
 .../syncope/common/lib/to/NotificationTO.java   |  15 --
 .../common/lib/to/NotificationTaskTO.java       |  10 --
 .../apache/syncope/common/lib/to/OrgUnitTO.java |   4 -
 .../common/lib/to/PagedConnObjectTOResult.java  |  10 --
 .../syncope/common/lib/to/PagedResult.java      |  10 --
 .../syncope/common/lib/to/PlainSchemaTO.java    |   5 -
 .../common/lib/to/PropagationStatus.java        |   4 -
 .../common/lib/to/PropagationTaskTO.java        |   4 -
 .../syncope/common/lib/to/ProvisionTO.java      |  13 --
 .../common/lib/to/ProvisioningResult.java       |  14 --
 .../syncope/common/lib/to/PullTaskTO.java       |  14 --
 .../syncope/common/lib/to/PushTaskTO.java       |  14 --
 .../apache/syncope/common/lib/to/RealmTO.java   |  15 --
 .../syncope/common/lib/to/RelationshipTO.java   |   4 -
 .../common/lib/to/RelationshipTypeTO.java       |   4 -
 .../apache/syncope/common/lib/to/ReportTO.java  |  13 --
 .../syncope/common/lib/to/ReportTemplateTO.java |   4 -
 .../syncope/common/lib/to/ResourceTO.java       |  19 ---
 .../apache/syncope/common/lib/to/RoleTO.java    |  13 --
 .../syncope/common/lib/to/SchedTaskTO.java      |   7 -
 .../common/lib/to/SecurityQuestionTO.java       |   4 -
 .../syncope/common/lib/to/TypeExtensionTO.java  |  10 --
 .../apache/syncope/common/lib/to/UserTO.java    |  22 ---
 .../syncope/common/lib/to/VirSchemaTO.java      |   3 -
 .../common/lib/to/WorkflowFormPropertyTO.java   |  11 --
 .../syncope/common/lib/to/WorkflowFormTO.java   |  10 --
 .../syncope/common/lib/to/package-info.java     |  23 ---
 .../syncope/common/lib/types/AnyTypeKind.java   |   2 -
 .../common/lib/types/AttrSchemaType.java        |   2 -
 .../syncope/common/lib/types/AuditElements.java |   3 -
 .../common/lib/types/BulkMembersActionType.java |   3 -
 .../common/lib/types/CipherAlgorithm.java       |   3 -
 .../lib/types/ConflictResolutionAction.java     |   4 +-
 .../common/lib/types/ConnConfPropSchema.java    |  10 --
 .../common/lib/types/ConnConfProperty.java      |  10 --
 .../common/lib/types/ConnectorCapability.java   |   3 -
 .../common/lib/types/EntityViolationType.java   |   3 -
 .../syncope/common/lib/types/JobAction.java     |   3 -
 .../syncope/common/lib/types/JobType.java       |   3 -
 .../syncope/common/lib/types/LoggerLevel.java   |   2 -
 .../syncope/common/lib/types/LoggerType.java    |   2 -
 .../common/lib/types/MailTemplateFormat.java    |   2 -
 .../syncope/common/lib/types/MatchingRule.java  |   5 +-
 .../common/lib/types/PatchOperation.java        |   3 -
 .../syncope/common/lib/types/PolicyType.java    |   3 -
 .../lib/types/PropagationTaskExecStatus.java    |   3 -
 .../syncope/common/lib/types/PullMode.java      |   3 -
 .../lib/types/ReportExecExportFormat.java       |   3 -
 .../common/lib/types/ReportExecStatus.java      |   3 -
 .../common/lib/types/ReportTemplateFormat.java  |   3 -
 .../lib/types/ResourceAssociationAction.java    |   3 -
 .../lib/types/ResourceDeassociationAction.java  |   3 -
 .../common/lib/types/ResourceOperation.java     |   3 -
 .../syncope/common/lib/types/SchemaType.java    |   2 -
 .../common/lib/types/StatusPatchType.java       |   3 -
 .../syncope/common/lib/types/TaskType.java      |   3 -
 .../syncope/common/lib/types/TraceLevel.java    |   3 -
 .../common/lib/types/UnmatchingRule.java        |   3 -
 .../lib/types/WorkflowFormPropertyType.java     |   3 -
 .../syncope/common/lib/types/WorkflowTasks.java |   2 -
 .../syncope/common/lib/types/package-info.java  |  23 ---
 .../apache/syncope/common/lib/AbstractTest.java | 144 +++++++++++++++++++
 .../org/apache/syncope/common/lib/JAXBTest.java |  82 -----------
 .../org/apache/syncope/common/lib/JSONTest.java | 106 +-------------
 .../org/apache/syncope/common/lib/XMLTest.java  |  31 ++++
 .../apache/syncope/core/logic/ReportLogic.java  |   4 +-
 .../apache/syncope/core/logic/TaskLogic.java    |   4 +-
 core/rest-cxf/pom.xml                           |   8 +-
 .../core/rest/cxf/JacksonXMLProvider.java       |  33 +++++
 .../core/rest/cxf/UnwrappedObjectMapper.java    |  93 ------------
 .../rest/cxf/service/AbstractAnyService.java    |  24 ++--
 .../rest/cxf/service/ConnectorServiceImpl.java  |   4 +-
 .../rest/cxf/service/ResourceServiceImpl.java   |   8 +-
 .../core/rest/cxf/service/TaskServiceImpl.java  |  12 +-
 .../src/main/resources/restCXFContext.xml       |  39 ++---
 .../syncope/common/lib/to/CamelMetrics.java     |  12 --
 .../syncope/common/lib/to/CamelRouteTO.java     |   4 -
 .../src/main/resources/jboss/restCXFContext.xml |  41 ++----
 .../apache/syncope/fit/core/ReportITCase.java   |   4 +-
 .../org/apache/syncope/fit/core/UserITCase.java |  29 ++--
 pom.xml                                         |  10 +-
 172 files changed, 563 insertions(+), 2057 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/client/cli/src/main/java/org/apache/syncope/client/cli/commands/user/UserSyncopeOperations.java
----------------------------------------------------------------------
diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/user/UserSyncopeOperations.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/user/UserSyncopeOperations.java
index cc9101b..f1c2aad 100644
--- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/user/UserSyncopeOperations.java
+++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/user/UserSyncopeOperations.java
@@ -89,6 +89,6 @@ public class UserSyncopeOperations {
             bulkAction.getTargets().add(String.valueOf(user.getKey()));
         }
         final BulkActionResult bulkResult = userService.bulk(bulkAction).readEntity(BulkActionResult.class);
-        return bulkResult.getResults();
+        return bulkResult.getResultMap();
     }
 }

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/client/console/src/main/java/org/apache/syncope/client/console/rest/ReportRestClient.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/rest/ReportRestClient.java b/client/console/src/main/java/org/apache/syncope/client/console/rest/ReportRestClient.java
index c51df2c..b0a58ec 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/rest/ReportRestClient.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/rest/ReportRestClient.java
@@ -144,13 +144,13 @@ public class ReportRestClient extends BaseRestClient
             case DELETE:
                 for (String target : action.getTargets()) {
                     delete(target);
-                    result.getResults().put(target, BulkActionResult.Status.SUCCESS);
+                    result.add(target, BulkActionResult.Status.SUCCESS);
                 }
                 break;
             case EXECUTE:
                 for (String target : action.getTargets()) {
                     startExecution(target, new Date());
-                    result.getResults().put(target, BulkActionResult.Status.SUCCESS);
+                    result.add(target, BulkActionResult.Status.SUCCESS);
                 }
                 break;
             default:

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/client/console/src/main/java/org/apache/syncope/client/console/rest/UserRestClient.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/rest/UserRestClient.java b/client/console/src/main/java/org/apache/syncope/client/console/rest/UserRestClient.java
index 68e3a01..835a278 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/rest/UserRestClient.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/rest/UserRestClient.java
@@ -19,7 +19,6 @@
 package org.apache.syncope.client.console.rest;
 
 import java.util.List;
-import java.util.Map;
 import javax.ws.rs.core.GenericType;
 import javax.ws.rs.core.Response;
 import org.apache.commons.lang3.StringUtils;
@@ -89,7 +88,6 @@ public class UserRestClient extends AbstractAnyRestClient<UserTO, UserPatch> {
         BulkActionResult result;
         synchronized (this) {
             result = new BulkActionResult();
-            Map<String, BulkActionResult.Status> res = result.getResults();
             UserService service = getService(etag, UserService.class);
 
             @SuppressWarnings("unchecked")
@@ -97,14 +95,14 @@ public class UserRestClient extends AbstractAnyRestClient<UserTO, UserPatch> {
                     readEntity(ProvisioningResult.class);
 
             if (statusPatch.isOnSyncope()) {
-                res.put(StringUtils.capitalize(Constants.SYNCOPE),
+                result.add(StringUtils.capitalize(Constants.SYNCOPE),
                         "suspended".equalsIgnoreCase(provisions.getEntity().getStatus())
                         ? BulkActionResult.Status.SUCCESS
                         : BulkActionResult.Status.FAILURE);
             }
 
             for (PropagationStatus status : provisions.getPropagationStatuses()) {
-                res.put(status.getResource(), BulkActionResult.Status.valueOf(status.getStatus().name()));
+                result.add(status.getResource(), BulkActionResult.Status.valueOf(status.getStatus().name()));
             }
             resetClient(UserService.class);
         }
@@ -119,7 +117,6 @@ public class UserRestClient extends AbstractAnyRestClient<UserTO, UserPatch> {
         BulkActionResult result;
         synchronized (this) {
             result = new BulkActionResult();
-            Map<String, BulkActionResult.Status> res = result.getResults();
             UserService service = getService(etag, UserService.class);
 
             @SuppressWarnings("unchecked")
@@ -127,14 +124,14 @@ public class UserRestClient extends AbstractAnyRestClient<UserTO, UserPatch> {
                     readEntity(ProvisioningResult.class);
 
             if (statusPatch.isOnSyncope()) {
-                res.put(StringUtils.capitalize(Constants.SYNCOPE),
+                result.add(StringUtils.capitalize(Constants.SYNCOPE),
                         "active".equalsIgnoreCase(provisions.getEntity().getStatus())
                         ? BulkActionResult.Status.SUCCESS
                         : BulkActionResult.Status.FAILURE);
             }
 
             for (PropagationStatus status : provisions.getPropagationStatuses()) {
-                res.put(status.getResource(), BulkActionResult.Status.valueOf(status.getStatus().name()));
+                result.add(status.getResource(), BulkActionResult.Status.valueOf(status.getStatus().name()));
             }
             resetClient(UserService.class);
         }

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/client/console/src/main/java/org/apache/syncope/client/console/wicket/extensions/markup/html/repeater/data/table/BulkActionResultColumn.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wicket/extensions/markup/html/repeater/data/table/BulkActionResultColumn.java b/client/console/src/main/java/org/apache/syncope/client/console/wicket/extensions/markup/html/repeater/data/table/BulkActionResultColumn.java
index 73abd09..0587cdf 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wicket/extensions/markup/html/repeater/data/table/BulkActionResultColumn.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wicket/extensions/markup/html/repeater/data/table/BulkActionResultColumn.java
@@ -19,6 +19,7 @@
 package org.apache.syncope.client.console.wicket.extensions.markup.html.repeater.data.table;
 
 import java.lang.reflect.InvocationTargetException;
+import java.util.Map;
 import org.apache.syncope.common.lib.to.BulkActionResult;
 import org.apache.syncope.common.lib.to.BulkActionResult.Status;
 import org.apache.wicket.Component;
@@ -65,14 +66,14 @@ public class BulkActionResultColumn<T, S> extends AbstractColumn<T, S> {
     @Override
     public void populateItem(final Item<ICellPopulator<T>> item, final String componentId, final IModel<T> rowModel) {
         try {
-            final Object id = BeanUtils.getPropertyDescriptor(rowModel.getObject().getClass(), keyFieldName).
+            Object id = BeanUtils.getPropertyDescriptor(rowModel.getObject().getClass(), keyFieldName).
                     getReadMethod().invoke(rowModel.getObject(), new Object[0]);
-            final Status status = results.getResults().containsKey(id.toString())
-                    ? results.getResults().get(id.toString())
+            Map<String, Status> bulkResultMap = results.getResultMap();
+            Status status = bulkResultMap.containsKey(id.toString())
+                    ? bulkResultMap.get(id.toString())
                     : Status.NOT_ATTEMPTED;
 
             item.add(new Label(componentId, new StringResourceModel(status.name(), item, new Model<>(status.name()))));
-
         } catch (BeansException | IllegalAccessException | IllegalArgumentException | InvocationTargetException e) {
             LOG.error("Errore retrieving target id value", e);
         }

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/client/lib/pom.xml
----------------------------------------------------------------------
diff --git a/client/lib/pom.xml b/client/lib/pom.xml
index 134497e..f03a2bf 100644
--- a/client/lib/pom.xml
+++ b/client/lib/pom.xml
@@ -47,10 +47,6 @@ under the License.
       <groupId>org.apache.cxf</groupId>
       <artifactId>cxf-rt-rs-client</artifactId>
     </dependency>
-    <dependency>
-      <groupId>org.apache.cxf</groupId>
-      <artifactId>cxf-rt-databinding-jaxb</artifactId>
-    </dependency>
     
     <dependency>
       <groupId>com.fasterxml.jackson.datatype</groupId>
@@ -60,6 +56,10 @@ under the License.
       <groupId>com.fasterxml.jackson.jaxrs</groupId>
       <artifactId>jackson-jaxrs-json-provider</artifactId>
     </dependency>  
+    <dependency>
+      <groupId>com.fasterxml.jackson.jaxrs</groupId>
+      <artifactId>jackson-jaxrs-xml-provider</artifactId>
+    </dependency>
     
     <dependency>
       <groupId>commons-codec</groupId>

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/client/lib/src/main/java/org/apache/syncope/client/lib/SyncopeClientFactoryBean.java
----------------------------------------------------------------------
diff --git a/client/lib/src/main/java/org/apache/syncope/client/lib/SyncopeClientFactoryBean.java b/client/lib/src/main/java/org/apache/syncope/client/lib/SyncopeClientFactoryBean.java
index 6ea7b4f..7412c45 100644
--- a/client/lib/src/main/java/org/apache/syncope/client/lib/SyncopeClientFactoryBean.java
+++ b/client/lib/src/main/java/org/apache/syncope/client/lib/SyncopeClientFactoryBean.java
@@ -18,22 +18,17 @@
  */
 package org.apache.syncope.client.lib;
 
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.fasterxml.jackson.datatype.joda.JodaModule;
-import com.fasterxml.jackson.jaxrs.json.JacksonJaxbJsonProvider;
+import com.fasterxml.jackson.jaxrs.json.JacksonJsonProvider;
+import com.fasterxml.jackson.jaxrs.xml.JacksonXMLProvider;
 import java.util.ArrayList;
 import java.util.Collections;
-import java.util.HashMap;
 import java.util.List;
-import java.util.Map;
 import javax.ws.rs.core.MediaType;
-import javax.xml.bind.Marshaller;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.cxf.feature.Feature;
 import org.apache.cxf.feature.LoggingFeature;
-import org.apache.cxf.jaxrs.provider.JAXBElementProvider;
-import org.apache.cxf.staxutils.DocumentDepthProperties;
-import org.apache.syncope.common.lib.policy.AbstractPolicyTO;
+import org.apache.syncope.common.lib.jackson.UnwrappedObjectMapper;
+import org.apache.syncope.common.lib.jackson.UnwrappedXmlMapper;
 import org.apache.syncope.common.rest.api.DateParamConverterProvider;
 import org.apache.syncope.common.rest.api.RESTHeaders;
 
@@ -65,9 +60,9 @@ public class SyncopeClientFactoryBean {
         }
     }
 
-    private JacksonJaxbJsonProvider jsonProvider;
+    private JacksonJsonProvider jsonProvider;
 
-    private JAXBElementProvider<?> jaxbProvider;
+    private JacksonXMLProvider xmlProvider;
 
     private RestClientExceptionMapper exceptionMapper;
 
@@ -81,30 +76,12 @@ public class SyncopeClientFactoryBean {
 
     private RestClientFactoryBean restClientFactoryBean;
 
-    protected JacksonJaxbJsonProvider defaultJsonProvider() {
-        ObjectMapper objectMapper = new ObjectMapper();
-        objectMapper.registerModule(new JodaModule());
-        objectMapper.configure(com.fasterxml.jackson.databind.SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false);
-        return new JacksonJaxbJsonProvider(objectMapper, JacksonJaxbJsonProvider.DEFAULT_ANNOTATIONS);
+    protected JacksonJsonProvider defaultJsonProvider() {
+        return new JacksonJsonProvider(new UnwrappedObjectMapper(), JacksonJsonProvider.BASIC_ANNOTATIONS);
     }
 
-    @SuppressWarnings({ "rawtypes" })
-    protected JAXBElementProvider<?> defaultJAXBProvider() {
-        JAXBElementProvider<?> defaultJAXBProvider = new JAXBElementProvider();
-
-        DocumentDepthProperties depthProperties = new DocumentDepthProperties();
-        depthProperties.setInnerElementCountThreshold(500);
-        defaultJAXBProvider.setDepthProperties(depthProperties);
-
-        Map<String, Object> marshallerProperties = new HashMap<>();
-        marshallerProperties.put(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
-        defaultJAXBProvider.setMarshallerProperties(marshallerProperties);
-
-        Map<String, String> collectionWrapperMap = new HashMap<>();
-        collectionWrapperMap.put(AbstractPolicyTO.class.getName(), "policies");
-        defaultJAXBProvider.setCollectionWrapperMap(collectionWrapperMap);
-
-        return defaultJAXBProvider;
+    protected JacksonXMLProvider defaultXMLProvider() {
+        return new JacksonXMLProvider(new UnwrappedXmlMapper(), JacksonXMLProvider.BASIC_ANNOTATIONS);
     }
 
     protected RestClientExceptionMapper defaultExceptionMapper() {
@@ -132,7 +109,7 @@ public class SyncopeClientFactoryBean {
 
         List<Object> providers = new ArrayList<>(4);
         providers.add(new DateParamConverterProvider());
-        providers.add(getJaxbProvider());
+        providers.add(getXMLProvider());
         providers.add(getJsonProvider());
         providers.add(getExceptionMapper());
         defaultRestClientFactoryBean.setProviders(providers);
@@ -140,24 +117,24 @@ public class SyncopeClientFactoryBean {
         return defaultRestClientFactoryBean;
     }
 
-    public JacksonJaxbJsonProvider getJsonProvider() {
+    public JacksonJsonProvider getJsonProvider() {
         return jsonProvider == null
                 ? defaultJsonProvider()
                 : jsonProvider;
     }
 
-    public void setJsonProvider(final JacksonJaxbJsonProvider jsonProvider) {
+    public void setJsonProvider(final JacksonJsonProvider jsonProvider) {
         this.jsonProvider = jsonProvider;
     }
 
-    public JAXBElementProvider<?> getJaxbProvider() {
-        return jaxbProvider == null
-                ? defaultJAXBProvider()
-                : jaxbProvider;
+    public JacksonXMLProvider getXMLProvider() {
+        return xmlProvider == null
+                ? defaultXMLProvider()
+                : xmlProvider;
     }
 
-    public SyncopeClientFactoryBean setJaxbProvider(final JAXBElementProvider<?> jaxbProvider) {
-        this.jaxbProvider = jaxbProvider;
+    public SyncopeClientFactoryBean setXMLProvider(final JacksonXMLProvider xmlProvider) {
+        this.xmlProvider = xmlProvider;
         return this;
     }
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/pom.xml
----------------------------------------------------------------------
diff --git a/common/lib/pom.xml b/common/lib/pom.xml
index 7f6106d..05e5e7d 100644
--- a/common/lib/pom.xml
+++ b/common/lib/pom.xml
@@ -50,9 +50,18 @@ under the License.
 
     <dependency>
       <groupId>com.fasterxml.jackson.core</groupId>
-      <artifactId>jackson-annotations</artifactId>
+      <artifactId>jackson-databind</artifactId>
     </dependency>
-    
+    <dependency>
+      <groupId>com.fasterxml.jackson.dataformat</groupId>
+      <artifactId>jackson-dataformat-xml</artifactId>      
+    </dependency>
+
+    <dependency>
+      <groupId>com.fasterxml.jackson.datatype</groupId>
+      <artifactId>jackson-datatype-joda</artifactId>
+    </dependency>    
+
     <dependency>
       <groupId>org.apache.commons</groupId>
       <artifactId>commons-lang3</artifactId>
@@ -72,16 +81,6 @@ under the License.
     </dependency>
     
     <dependency>
-      <groupId>com.fasterxml.jackson.core</groupId>
-      <artifactId>jackson-databind</artifactId>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.cxf</groupId>
-      <artifactId>cxf-rt-databinding-jaxb</artifactId>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
       <groupId>junit</groupId>
       <artifactId>junit</artifactId>
       <scope>test</scope>

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/AbstractBaseBean.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/AbstractBaseBean.java b/common/lib/src/main/java/org/apache/syncope/common/lib/AbstractBaseBean.java
index bd8b06e..01bc093 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/AbstractBaseBean.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/AbstractBaseBean.java
@@ -19,20 +19,11 @@
 package org.apache.syncope.common.lib;
 
 import java.io.Serializable;
-import javax.xml.bind.annotation.XmlSeeAlso;
-import javax.xml.bind.annotation.XmlType;
 import org.apache.commons.lang3.builder.EqualsBuilder;
 import org.apache.commons.lang3.builder.HashCodeBuilder;
 import org.apache.commons.lang3.builder.ReflectionToStringBuilder;
 import org.apache.commons.lang3.builder.ToStringStyle;
-import org.apache.syncope.common.lib.to.AbstractTaskTO;
-import org.apache.syncope.common.lib.to.ReportTO;
-import org.apache.syncope.common.lib.to.GroupTO;
-import org.apache.syncope.common.lib.to.UserTO;
 
-@XmlType
-// Reporting here only classes used via PagedResult
-@XmlSeeAlso({ AbstractTaskTO.class, ReportTO.class, GroupTO.class, UserTO.class })
 public abstract class AbstractBaseBean implements Serializable {
 
     private static final long serialVersionUID = 3119542005279892164L;

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/SyncopeConstants.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/SyncopeConstants.java b/common/lib/src/main/java/org/apache/syncope/common/lib/SyncopeConstants.java
index 1f2febd..5bc7b49 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/SyncopeConstants.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/SyncopeConstants.java
@@ -25,8 +25,6 @@ import java.util.regex.Pattern;
 
 public final class SyncopeConstants {
 
-    public static final String NAMESPACE = "http://syncope.apache.org/2.0";
-
     public static final String MASTER_DOMAIN = "Master";
 
     public static final String ROOT_REALM = "/";

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/info/NumbersInfo.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/info/NumbersInfo.java b/common/lib/src/main/java/org/apache/syncope/common/lib/info/NumbersInfo.java
index 293bb55..96db65b 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/info/NumbersInfo.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/info/NumbersInfo.java
@@ -18,25 +18,14 @@
  */
 package org.apache.syncope.common.lib.info;
 
-import com.fasterxml.jackson.annotation.JsonIgnore;
-import com.fasterxml.jackson.annotation.JsonProperty;
 import java.util.HashMap;
 import java.util.Map;
-import javax.xml.bind.annotation.XmlEnum;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlType;
-import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
 import org.apache.syncope.common.lib.AbstractBaseBean;
-import org.apache.syncope.common.lib.jaxb.XmlGenericMapAdapter;
 
-@XmlRootElement(name = "numbersInfo")
-@XmlType
 public class NumbersInfo extends AbstractBaseBean {
 
     private static final long serialVersionUID = 7691187370598649583L;
 
-    @XmlEnum
-    @XmlType(name = "confItem")
     public enum ConfItem {
 
         RESOURCE(20),
@@ -63,42 +52,30 @@ public class NumbersInfo extends AbstractBaseBean {
 
     private int totalUsers;
 
-    @XmlJavaTypeAdapter(XmlGenericMapAdapter.class)
-    @JsonIgnore
     private final Map<String, Integer> usersByRealm = new HashMap<>();
 
-    @XmlJavaTypeAdapter(XmlGenericMapAdapter.class)
-    @JsonIgnore
     private final Map<String, Integer> usersByStatus = new HashMap<>();
 
     private int totalGroups;
 
-    @XmlJavaTypeAdapter(XmlGenericMapAdapter.class)
-    @JsonIgnore
     private final Map<String, Integer> groupsByRealm = new HashMap<>();
 
     private String anyType1;
 
     private Integer totalAny1;
 
-    @XmlJavaTypeAdapter(XmlGenericMapAdapter.class)
-    @JsonIgnore
     private final Map<String, Integer> any1ByRealm = new HashMap<>();
 
     private String anyType2;
 
     private Integer totalAny2;
 
-    @XmlJavaTypeAdapter(XmlGenericMapAdapter.class)
-    @JsonIgnore
     private final Map<String, Integer> any2ByRealm = new HashMap<>();
 
     private int totalResources;
 
     private int totalRoles;
 
-    @XmlJavaTypeAdapter(XmlGenericMapAdapter.class)
-    @JsonIgnore
     private final Map<ConfItem, Boolean> confCompleteness = new HashMap<>();
 
     public int getTotalUsers() {
@@ -165,32 +142,26 @@ public class NumbersInfo extends AbstractBaseBean {
         this.totalRoles = totalRoles;
     }
 
-    @JsonProperty
     public Map<String, Integer> getUsersByRealm() {
         return usersByRealm;
     }
 
-    @JsonProperty
     public Map<String, Integer> getUsersByStatus() {
         return usersByStatus;
     }
 
-    @JsonProperty
     public Map<String, Integer> getGroupsByRealm() {
         return groupsByRealm;
     }
 
-    @JsonProperty
     public Map<String, Integer> getAny1ByRealm() {
         return any1ByRealm;
     }
 
-    @JsonProperty
     public Map<String, Integer> getAny2ByRealm() {
         return any2ByRealm;
     }
 
-    @JsonProperty
     public Map<ConfItem, Boolean> getConfCompleteness() {
         return confCompleteness;
     }

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/info/PlatformInfo.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/info/PlatformInfo.java b/common/lib/src/main/java/org/apache/syncope/common/lib/info/PlatformInfo.java
index 3d21d69..288f484 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/info/PlatformInfo.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/info/PlatformInfo.java
@@ -18,17 +18,10 @@
  */
 package org.apache.syncope.common.lib.info;
 
-import com.fasterxml.jackson.annotation.JsonProperty;
 import java.util.HashSet;
 import java.util.Set;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlElementWrapper;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlType;
 import org.apache.syncope.common.lib.AbstractBaseBean;
 
-@XmlRootElement(name = "platformInfo")
-@XmlType
 public class PlatformInfo extends AbstractBaseBean {
 
     private static final long serialVersionUID = -7941853999417673827L;
@@ -105,9 +98,6 @@ public class PlatformInfo extends AbstractBaseBean {
         return pwdResetRequiringSecurityQuestions;
     }
 
-    @XmlElementWrapper(name = "connIdLocations")
-    @XmlElement(name = "connIdLocation")
-    @JsonProperty("connIdLocations")
     public Set<String> getConnIdLocations() {
         return connIdLocations;
     }
@@ -148,107 +138,62 @@ public class PlatformInfo extends AbstractBaseBean {
         this.passwordGenerator = passwordGenerator;
     }
 
-    @XmlElementWrapper(name = "entitlements")
-    @XmlElement(name = "entitlement")
-    @JsonProperty("entitlements")
     public Set<String> getEntitlements() {
         return entitlements;
     }
 
-    @XmlElementWrapper(name = "reportletConfs")
-    @XmlElement(name = "reportletConf")
-    @JsonProperty("reportletConfs")
     public Set<String> getReportletConfs() {
         return reportletConfs;
     }
 
-    @XmlElementWrapper(name = "accountRules")
-    @XmlElement(name = "accountRule")
-    @JsonProperty("accountRules")
     public Set<String> getAccountRules() {
         return accountRules;
     }
 
-    @XmlElementWrapper(name = "passwordRules")
-    @XmlElement(name = "passwordRule")
-    @JsonProperty("passwordRules")
     public Set<String> getPasswordRules() {
         return passwordRules;
     }
 
-    @XmlElementWrapper(name = "mappingItemTransformers")
-    @XmlElement(name = "mappingItemTransformer")
-    @JsonProperty("mappingItemTransformers")
     public Set<String> getMappingItemTransformers() {
         return mappingItemTransformers;
     }
 
-    @XmlElementWrapper(name = "taskJobs")
-    @XmlElement(name = "taskJob")
-    @JsonProperty("taskJobs")
     public Set<String> getTaskJobs() {
         return taskJobs;
     }
 
-    @XmlElementWrapper(name = "reconciliationFilterBuilders")
-    @XmlElement(name = "reconciliationFilterBuilder")
-    @JsonProperty("reconciliationFilterBuilders")
     public Set<String> getReconciliationFilterBuilders() {
         return reconciliationFilterBuilders;
     }
 
-    @XmlElementWrapper(name = "logicActions")
-    @XmlElement(name = "logicAction")
-    @JsonProperty("logicActions")
     public Set<String> getLogicActions() {
         return logicActions;
     }
 
-    @XmlElementWrapper(name = "propagationActions")
-    @XmlElement(name = "propagationAction")
-    @JsonProperty("propagationActions")
     public Set<String> getPropagationActions() {
         return propagationActions;
     }
 
-    @XmlElementWrapper(name = "pullActions")
-    @XmlElement(name = "pullAction")
-    @JsonProperty("pullActions")
     public Set<String> getPullActions() {
         return pullActions;
     }
 
-    @XmlElementWrapper(name = "pushActions")
-    @XmlElement(name = "pushAction")
-    @JsonProperty("pushActions")
     public Set<String> getPushActions() {
         return pushActions;
     }
 
-    @XmlElementWrapper(name = "pullCorrelationRules")
-    @XmlElement(name = "pullCorrelationRule")
-    @JsonProperty("pullCorrelationRules")
     public Set<String> getPullCorrelationRules() {
         return pullCorrelationRules;
     }
 
-    @XmlElementWrapper(name = "pushCorrelationRules")
-    @XmlElement(name = "pushCorrelationRule")
-    @JsonProperty("pushCorrelationRules")
     public Set<String> getPushCorrelationRules() {
         return pushCorrelationRules;
     }
 
-    @XmlElementWrapper(name = "validators")
-    @XmlElement(name = "validator")
-    @JsonProperty("validators")
     public Set<String> getValidators() {
         return validators;
     }
 
-    @XmlElementWrapper(name = "notificationRecipientsProviders")
-    @XmlElement(name = "notificationRecipientsProvider")
-    @JsonProperty("notificationRecipientsProviders")
     public Set<String> getNotificationRecipientsProviders() {
         return notificationRecipientsProviders;
     }

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/info/SystemInfo.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/info/SystemInfo.java b/common/lib/src/main/java/org/apache/syncope/common/lib/info/SystemInfo.java
index d660451..52eb9fc 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/info/SystemInfo.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/info/SystemInfo.java
@@ -18,16 +18,9 @@
  */
 package org.apache.syncope.common.lib.info;
 
-import com.fasterxml.jackson.annotation.JsonProperty;
-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.collections4.queue.CircularFifoQueue;
 import org.apache.syncope.common.lib.AbstractBaseBean;
 
-@XmlRootElement(name = "systemInfo")
-@XmlType
 public class SystemInfo extends AbstractBaseBean {
 
     private static final long serialVersionUID = -352727968865892499L;
@@ -84,15 +77,10 @@ public class SystemInfo extends AbstractBaseBean {
         this.startTime = startTime;
     }
 
-    @XmlElementWrapper(name = "load")
-    @XmlElement(name = "instant")
-    @JsonProperty("load")
     public CircularFifoQueue<LoadInstant> getLoad() {
         return load;
     }
 
-    @XmlRootElement(name = "loadInstant")
-    @XmlType
     public static class LoadInstant extends AbstractBaseBean {
 
         private static final long serialVersionUID = 1700788373758716478L;

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/info/package-info.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/info/package-info.java b/common/lib/src/main/java/org/apache/syncope/common/lib/info/package-info.java
deleted file mode 100644
index fccc6f4..0000000
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/info/package-info.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-@XmlSchema(namespace = SyncopeConstants.NAMESPACE)
-package org.apache.syncope.common.lib.info;
-
-import javax.xml.bind.annotation.XmlSchema;
-import org.apache.syncope.common.lib.SyncopeConstants;

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/jackson/UnwrappedObjectMapper.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/jackson/UnwrappedObjectMapper.java b/common/lib/src/main/java/org/apache/syncope/common/lib/jackson/UnwrappedObjectMapper.java
new file mode 100644
index 0000000..d34ff8b
--- /dev/null
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/jackson/UnwrappedObjectMapper.java
@@ -0,0 +1,93 @@
+/*
+ * 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.lib.jackson;
+
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.SerializationFeature;
+import com.fasterxml.jackson.datatype.joda.JodaModule;
+import java.io.File;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.io.Writer;
+import java.util.Map;
+
+/**
+ * Jackson {@link ObjectMapper} that unwraps singleton map values and configure date (de)serialization via Joda.
+ */
+public class UnwrappedObjectMapper extends ObjectMapper {
+
+    private static final long serialVersionUID = -317191546835195103L;
+
+    public UnwrappedObjectMapper() {
+        super();
+
+        registerModule(new JodaModule());
+        configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false);
+    }
+
+    /**
+     * Unwraps the given value if it implements the Map interface and contains only a single entry, otherwise the
+     * value is returned unmodified.
+     *
+     * @param value the potential Map to unwrap
+     * @return the unwrapped map or the original value
+     */
+    private Object unwrapMap(final Object value) {
+        if (value instanceof Map) {
+            Map<?, ?> map = (Map<?, ?>) value;
+            if (map.size() == 1) {
+                return map.values().iterator().next();
+            }
+        }
+
+        return value;
+    }
+
+    @Override
+    public void writeValue(final JsonGenerator jgen, final Object value) throws IOException {
+        super.writeValue(jgen, unwrapMap(value));
+    }
+
+    @Override
+    public void writeValue(final File resultFile, final Object value) throws IOException {
+        super.writeValue(resultFile, unwrapMap(value));
+    }
+
+    @Override
+    public void writeValue(final OutputStream out, final Object value) throws IOException {
+        super.writeValue(out, unwrapMap(value));
+    }
+
+    @Override
+    public void writeValue(final Writer writer, final Object value) throws IOException {
+        super.writeValue(writer, unwrapMap(value));
+    }
+
+    @Override
+    public byte[] writeValueAsBytes(final Object value) throws JsonProcessingException {
+        return super.writeValueAsBytes(unwrapMap(value));
+    }
+
+    @Override
+    public String writeValueAsString(final Object value) throws JsonProcessingException {
+        return super.writeValueAsString(unwrapMap(value));
+    }
+}

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/jackson/UnwrappedXmlMapper.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/jackson/UnwrappedXmlMapper.java b/common/lib/src/main/java/org/apache/syncope/common/lib/jackson/UnwrappedXmlMapper.java
new file mode 100644
index 0000000..7d69301
--- /dev/null
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/jackson/UnwrappedXmlMapper.java
@@ -0,0 +1,94 @@
+/*
+ * 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.lib.jackson;
+
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.SerializationFeature;
+import com.fasterxml.jackson.dataformat.xml.XmlMapper;
+import com.fasterxml.jackson.datatype.joda.JodaModule;
+import java.io.File;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.io.Writer;
+import java.util.Map;
+
+/**
+ * Jackson {@link XmlMapper} that unwraps singleton map values, configure date (de)serialization via Joda.
+ */
+public class UnwrappedXmlMapper extends XmlMapper {
+
+    private static final long serialVersionUID = -317191546835195103L;
+
+    public UnwrappedXmlMapper() {
+        super();
+
+        registerModule(new JodaModule());
+        configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false);
+        configure(SerializationFeature.WRITE_EMPTY_JSON_ARRAYS, false);
+    }
+
+    /**
+     * Unwraps the given value if it implements the Map interface and contains only a single entry, otherwise the
+     * value is returned unmodified.
+     *
+     * @param value the potential Map to unwrap
+     * @return the unwrapped map or the original value
+     */
+    private Object unwrapMap(final Object value) {
+        if (value instanceof Map) {
+            Map<?, ?> map = (Map<?, ?>) value;
+            if (map.size() == 1) {
+                return map.values().iterator().next();
+            }
+        }
+
+        return value;
+    }
+
+    @Override
+    public void writeValue(final JsonGenerator jgen, final Object value) throws IOException {
+        super.writeValue(jgen, unwrapMap(value));
+    }
+
+    @Override
+    public void writeValue(final File resultFile, final Object value) throws IOException {
+        super.writeValue(resultFile, unwrapMap(value));
+    }
+
+    @Override
+    public void writeValue(final OutputStream out, final Object value) throws IOException {
+        super.writeValue(out, unwrapMap(value));
+    }
+
+    @Override
+    public void writeValue(final Writer writer, final Object value) throws IOException {
+        super.writeValue(writer, unwrapMap(value));
+    }
+
+    @Override
+    public byte[] writeValueAsBytes(final Object value) throws JsonProcessingException {
+        return super.writeValueAsBytes(unwrapMap(value));
+    }
+
+    @Override
+    public String writeValueAsString(final Object value) throws JsonProcessingException {
+        return super.writeValueAsString(unwrapMap(value));
+    }
+}

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/jaxb/EntityTOType.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/jaxb/EntityTOType.java b/common/lib/src/main/java/org/apache/syncope/common/lib/jaxb/EntityTOType.java
deleted file mode 100644
index 95ad262..0000000
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/jaxb/EntityTOType.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.syncope.common.lib.jaxb;
-
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlEnum;
-import javax.xml.bind.annotation.XmlSeeAlso;
-import org.apache.syncope.common.lib.to.AnyObjectTO;
-import org.apache.syncope.common.lib.to.GroupTO;
-import org.apache.syncope.common.lib.to.RealmTO;
-import org.apache.syncope.common.lib.to.UserTO;
-
-@XmlSeeAlso({ UserTO.class, GroupTO.class, AnyObjectTO.class, RealmTO.class })
-@XmlAccessorType(XmlAccessType.PROPERTY)
-public class EntityTOType {
-
-    @XmlEnum
-    public enum Type {
-        USER,
-        GROUP,
-        ANY_OBJECT,
-        REALM
-
-    }
-
-    private Type type;
-
-    private Object value;
-
-    public Type getType() {
-        return type;
-    }
-
-    public void setType(final Type type) {
-        this.type = type;
-    }
-
-    public Object getValue() {
-        return value;
-    }
-
-    public void setValue(final Object value) {
-        this.value = value;
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/jaxb/GenericMapEntryType.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/jaxb/GenericMapEntryType.java b/common/lib/src/main/java/org/apache/syncope/common/lib/jaxb/GenericMapEntryType.java
deleted file mode 100644
index a418837..0000000
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/jaxb/GenericMapEntryType.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * Copyright 2011 John Yeary <jy...@bluelotussoftware.com>.
- * Copyright 2011 Bluelotus Software, LLC.
- *
- * Licensed 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.lib.jaxb;
-
-import java.util.Map;
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlElement;
-
-@XmlAccessorType(XmlAccessType.PROPERTY)
-public class GenericMapEntryType<K, V> {
-
-    private K key;
-
-    private V value;
-
-    public GenericMapEntryType() {
-    }
-
-    public GenericMapEntryType(final Map.Entry<K, V> e) {
-        key = e.getKey();
-        value = e.getValue();
-    }
-
-    @XmlElement
-    public K getKey() {
-        return key;
-    }
-
-    public void setKey(final K key) {
-        this.key = key;
-    }
-
-    @XmlElement
-    public V getValue() {
-        return value;
-    }
-
-    public void setValue(final V value) {
-        this.value = value;
-    }
-}

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/jaxb/GenericMapType.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/jaxb/GenericMapType.java b/common/lib/src/main/java/org/apache/syncope/common/lib/jaxb/GenericMapType.java
deleted file mode 100644
index e57a401..0000000
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/jaxb/GenericMapType.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Copyright 2011 John Yeary <jy...@bluelotussoftware.com>.
- * Copyright 2011 Bluelotus Software, LLC.
- *
- * Licensed 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.lib.jaxb;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-
-public class GenericMapType<K, V> {
-
-    private final List<GenericMapEntryType<K, V>> entry = new ArrayList<>();
-
-    public GenericMapType() {
-    }
-
-    public GenericMapType(final Map<K, V> map) {
-        for (Map.Entry<K, V> e : map.entrySet()) {
-            entry.add(new GenericMapEntryType<>(e));
-        }
-    }
-
-    public List<GenericMapEntryType<K, V>> getEntry() {
-        return entry;
-    }
-
-    public void setEntry(final List<GenericMapEntryType<K, V>> entry) {
-        this.entry.clear();
-        if (entry != null) {
-            this.entry.addAll(entry);
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/jaxb/XmlEntityTOAdapter.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/jaxb/XmlEntityTOAdapter.java b/common/lib/src/main/java/org/apache/syncope/common/lib/jaxb/XmlEntityTOAdapter.java
deleted file mode 100644
index 2374891..0000000
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/jaxb/XmlEntityTOAdapter.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.syncope.common.lib.jaxb;
-
-import javax.xml.bind.annotation.adapters.XmlAdapter;
-import org.apache.syncope.common.lib.to.AnyObjectTO;
-import org.apache.syncope.common.lib.to.EntityTO;
-import org.apache.syncope.common.lib.to.GroupTO;
-import org.apache.syncope.common.lib.to.RealmTO;
-import org.apache.syncope.common.lib.to.UserTO;
-
-public class XmlEntityTOAdapter<E extends EntityTO> extends XmlAdapter<EntityTOType, E> {
-
-    @Override
-    @SuppressWarnings("unchecked")
-    public E unmarshal(final EntityTOType v) throws Exception {
-        E result = null;
-
-        switch (v.getType()) {
-            case USER:
-            case GROUP:
-            case ANY_OBJECT:
-            case REALM:
-                result = (E) v.getValue();
-                break;
-
-            default:
-        }
-
-        return result;
-    }
-
-    @Override
-    public EntityTOType marshal(final E v) throws Exception {
-        EntityTOType result = new EntityTOType();
-        if (v instanceof UserTO) {
-            result.setType(EntityTOType.Type.USER);
-        } else if (v instanceof GroupTO) {
-            result.setType(EntityTOType.Type.GROUP);
-        } else if (v instanceof AnyObjectTO) {
-            result.setType(EntityTOType.Type.ANY_OBJECT);
-        } else if (v instanceof RealmTO) {
-            result.setType(EntityTOType.Type.REALM);
-        }
-        result.setValue(v);
-
-        return result;
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/jaxb/XmlGenericMapAdapter.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/jaxb/XmlGenericMapAdapter.java b/common/lib/src/main/java/org/apache/syncope/common/lib/jaxb/XmlGenericMapAdapter.java
deleted file mode 100644
index 1855164..0000000
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/jaxb/XmlGenericMapAdapter.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Copyright 2011 John Yeary <jy...@bluelotussoftware.com>.
- * Copyright 2011 Bluelotus Software, LLC.
- *
- * Licensed 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.lib.jaxb;
-
-import java.util.HashMap;
-import java.util.Map;
-import javax.xml.bind.annotation.adapters.XmlAdapter;
-
-public class XmlGenericMapAdapter<K, V> extends XmlAdapter<GenericMapType<K, V>, Map<K, V>> {
-
-    @Override
-    public Map<K, V> unmarshal(final GenericMapType<K, V> v) throws Exception {
-        Map<K, V> map = new HashMap<>();
-
-        for (GenericMapEntryType<K, V> mapEntryType : v.getEntry()) {
-            map.put(mapEntryType.getKey(), mapEntryType.getValue());
-        }
-
-        return map;
-    }
-
-    @Override
-    public GenericMapType<K, V> marshal(final Map<K, V> v) throws Exception {
-        GenericMapType<K, V> mapType = new GenericMapType<>();
-
-        for (Map.Entry<K, V> entry : v.entrySet()) {
-            GenericMapEntryType<K, V> mapEntryType = new GenericMapEntryType<>();
-            mapEntryType.setKey(entry.getKey());
-            mapEntryType.setValue(entry.getValue());
-            mapType.getEntry().add(mapEntryType);
-        }
-
-        return mapType;
-    }
-}

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/jaxb/package-info.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/jaxb/package-info.java b/common/lib/src/main/java/org/apache/syncope/common/lib/jaxb/package-info.java
deleted file mode 100644
index a04b95d..0000000
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/jaxb/package-info.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-@XmlSchema(namespace = SyncopeConstants.NAMESPACE)
-package org.apache.syncope.common.lib.jaxb;
-
-import javax.xml.bind.annotation.XmlSchema;
-import org.apache.syncope.common.lib.SyncopeConstants;

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/package-info.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/package-info.java b/common/lib/src/main/java/org/apache/syncope/common/lib/package-info.java
deleted file mode 100644
index 8eac5d5..0000000
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/package-info.java
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-@XmlSchema(namespace = SyncopeConstants.NAMESPACE)
-package org.apache.syncope.common.lib;
-
-import javax.xml.bind.annotation.XmlSchema;

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/patch/AbstractPatch.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/patch/AbstractPatch.java b/common/lib/src/main/java/org/apache/syncope/common/lib/patch/AbstractPatch.java
index bb881a7..841e9b6 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/patch/AbstractPatch.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/patch/AbstractPatch.java
@@ -18,13 +18,9 @@
  */
 package org.apache.syncope.common.lib.patch;
 
-import javax.xml.bind.annotation.XmlSeeAlso;
-import javax.xml.bind.annotation.XmlType;
 import org.apache.syncope.common.lib.AbstractBaseBean;
 import org.apache.syncope.common.lib.types.PatchOperation;
 
-@XmlType
-@XmlSeeAlso({ AbstractPatchItem.class, AttrPatch.class, MembershipPatch.class, RelationshipPatch.class })
 public abstract class AbstractPatch extends AbstractBaseBean {
 
     private static final long serialVersionUID = -4729181508529829580L;

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/patch/AbstractPatchItem.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/patch/AbstractPatchItem.java b/common/lib/src/main/java/org/apache/syncope/common/lib/patch/AbstractPatchItem.java
index ee86a88..9a30049 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/patch/AbstractPatchItem.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/patch/AbstractPatchItem.java
@@ -18,11 +18,6 @@
  */
 package org.apache.syncope.common.lib.patch;
 
-import javax.xml.bind.annotation.XmlSeeAlso;
-import javax.xml.bind.annotation.XmlType;
-
-@XmlType
-@XmlSeeAlso({ AbstractReplacePatchItem.class, LongPatchItem.class, StringPatchItem.class })
 public abstract class AbstractPatchItem<T> extends AbstractPatch {
 
     private static final long serialVersionUID = -8889326446009942028L;

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/patch/AbstractReplacePatchItem.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/patch/AbstractReplacePatchItem.java b/common/lib/src/main/java/org/apache/syncope/common/lib/patch/AbstractReplacePatchItem.java
index 8282427..50c2e26 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/patch/AbstractReplacePatchItem.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/patch/AbstractReplacePatchItem.java
@@ -18,8 +18,6 @@
  */
 package org.apache.syncope.common.lib.patch;
 
-import javax.xml.bind.annotation.XmlSeeAlso;
-import javax.xml.bind.annotation.XmlType;
 import org.apache.syncope.common.lib.types.PatchOperation;
 
 /**
@@ -29,8 +27,6 @@ import org.apache.syncope.common.lib.types.PatchOperation;
  *
  * @param <T> {@code String}, {@code Long} or {@code Boolean}
  */
-@XmlType
-@XmlSeeAlso({ BooleanReplacePatchItem.class, StringReplacePatchItem.class })
 public abstract class AbstractReplacePatchItem<T> extends AbstractPatchItem<T> {
 
     private static final long serialVersionUID = 2027599764019829563L;

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/patch/AnyObjectPatch.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/patch/AnyObjectPatch.java b/common/lib/src/main/java/org/apache/syncope/common/lib/patch/AnyObjectPatch.java
index ddb4ac3..36f5b75 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/patch/AnyObjectPatch.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/patch/AnyObjectPatch.java
@@ -18,16 +18,9 @@
  */
 package org.apache.syncope.common.lib.patch;
 
-import com.fasterxml.jackson.annotation.JsonProperty;
 import java.util.HashSet;
 import java.util.Set;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlElementWrapper;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlType;
 
-@XmlRootElement(name = "anyObjectPatch")
-@XmlType
 public class AnyObjectPatch extends AnyPatch {
 
     private static final long serialVersionUID = -1644118942622556097L;
@@ -46,16 +39,10 @@ public class AnyObjectPatch extends AnyPatch {
         this.name = name;
     }
 
-    @XmlElementWrapper(name = "relationships")
-    @XmlElement(name = "relationship")
-    @JsonProperty("relationships")
     public Set<RelationshipPatch> getRelationships() {
         return relationships;
     }
 
-    @XmlElementWrapper(name = "memberships")
-    @XmlElement(name = "membership")
-    @JsonProperty("memberships")
     public Set<MembershipPatch> getMemberships() {
         return memberships;
     }

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/patch/AnyPatch.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/patch/AnyPatch.java b/common/lib/src/main/java/org/apache/syncope/common/lib/patch/AnyPatch.java
index 0dadbf8..32350ff 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/patch/AnyPatch.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/patch/AnyPatch.java
@@ -19,17 +19,12 @@
 package org.apache.syncope.common.lib.patch;
 
 import com.fasterxml.jackson.annotation.JsonIgnore;
-import com.fasterxml.jackson.annotation.JsonProperty;
 import java.util.HashSet;
 import java.util.Set;
 import javax.ws.rs.PathParam;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlElementWrapper;
-import javax.xml.bind.annotation.XmlType;
 import org.apache.syncope.common.lib.AbstractBaseBean;
 import org.apache.syncope.common.lib.to.AttrTO;
 
-@XmlType
 public abstract class AnyPatch extends AbstractBaseBean implements AttributablePatch {
 
     private static final long serialVersionUID = -7445489774552440544L;
@@ -63,32 +58,20 @@ public abstract class AnyPatch extends AbstractBaseBean implements AttributableP
         this.realm = realm;
     }
 
-    @XmlElementWrapper(name = "auxClasses")
-    @XmlElement(name = "auxClass")
-    @JsonProperty("auxClasses")
     public Set<StringPatchItem> getAuxClasses() {
         return auxClasses;
     }
 
-    @XmlElementWrapper(name = "plainAttrs")
-    @XmlElement(name = "attribute")
-    @JsonProperty("plainAttrs")
     @Override
     public Set<AttrPatch> getPlainAttrs() {
         return plainAttrs;
     }
 
-    @XmlElementWrapper(name = "virAttrs")
-    @XmlElement(name = "attribute")
-    @JsonProperty("virAttrs")
     @Override
     public Set<AttrTO> getVirAttrs() {
         return virAttrs;
     }
 
-    @XmlElementWrapper(name = "resources")
-    @XmlElement(name = "resource")
-    @JsonProperty("resources")
     public Set<StringPatchItem> getResources() {
         return resources;
     }

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/patch/AssociationPatch.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/patch/AssociationPatch.java b/common/lib/src/main/java/org/apache/syncope/common/lib/patch/AssociationPatch.java
index 56efe7e..5d47619 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/patch/AssociationPatch.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/patch/AssociationPatch.java
@@ -19,12 +19,8 @@
 package org.apache.syncope.common.lib.patch;
 
 import javax.ws.rs.PathParam;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlType;
 import org.apache.syncope.common.lib.types.ResourceAssociationAction;
 
-@XmlRootElement(name = "associationPatch")
-@XmlType
 public class AssociationPatch extends PasswordPatch {
 
     private static final long serialVersionUID = 6295778399633883767L;

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/patch/AttrPatch.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/patch/AttrPatch.java b/common/lib/src/main/java/org/apache/syncope/common/lib/patch/AttrPatch.java
index f41a054..22beb7b 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/patch/AttrPatch.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/patch/AttrPatch.java
@@ -19,12 +19,8 @@
 package org.apache.syncope.common.lib.patch;
 
 import com.fasterxml.jackson.annotation.JsonIgnore;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlType;
 import org.apache.syncope.common.lib.to.AttrTO;
 
-@XmlRootElement(name = "attrPatch")
-@XmlType
 public class AttrPatch extends AbstractPatch {
 
     private static final long serialVersionUID = 6881634224246176673L;

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/patch/BooleanReplacePatchItem.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/patch/BooleanReplacePatchItem.java b/common/lib/src/main/java/org/apache/syncope/common/lib/patch/BooleanReplacePatchItem.java
index 9cf1097..481c904 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/patch/BooleanReplacePatchItem.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/patch/BooleanReplacePatchItem.java
@@ -18,11 +18,6 @@
  */
 package org.apache.syncope.common.lib.patch;
 
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlType;
-
-@XmlRootElement(name = "booleanReplacePatchItem")
-@XmlType
 public class BooleanReplacePatchItem extends AbstractReplacePatchItem<Boolean> {
 
     private static final long serialVersionUID = 4013349284181583101L;

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/patch/DeassociationPatch.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/patch/DeassociationPatch.java b/common/lib/src/main/java/org/apache/syncope/common/lib/patch/DeassociationPatch.java
index e5271e0..7f6004c 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/patch/DeassociationPatch.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/patch/DeassociationPatch.java
@@ -18,19 +18,12 @@
  */
 package org.apache.syncope.common.lib.patch;
 
-import com.fasterxml.jackson.annotation.JsonProperty;
 import java.util.ArrayList;
 import java.util.List;
 import javax.ws.rs.PathParam;
-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.lib.AbstractBaseBean;
 import org.apache.syncope.common.lib.types.ResourceDeassociationAction;
 
-@XmlRootElement(name = "deassociationPatch")
-@XmlType
 public class DeassociationPatch extends AbstractBaseBean {
 
     private static final long serialVersionUID = 6295778399633883767L;
@@ -58,9 +51,6 @@ public class DeassociationPatch extends AbstractBaseBean {
         this.action = action;
     }
 
-    @XmlElementWrapper(name = "resources")
-    @XmlElement(name = "resource")
-    @JsonProperty("resources")
     public List<String> getResources() {
         return resources;
     }

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/patch/GroupPatch.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/patch/GroupPatch.java b/common/lib/src/main/java/org/apache/syncope/common/lib/patch/GroupPatch.java
index 29353ff..6849cb9 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/patch/GroupPatch.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/patch/GroupPatch.java
@@ -24,18 +24,10 @@ import java.util.ArrayList;
 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 javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
 import org.apache.commons.collections4.IterableUtils;
 import org.apache.commons.collections4.Predicate;
-import org.apache.syncope.common.lib.jaxb.XmlGenericMapAdapter;
 import org.apache.syncope.common.lib.to.TypeExtensionTO;
 
-@XmlRootElement(name = "groupPatch")
-@XmlType
 public class GroupPatch extends AnyPatch {
 
     private static final long serialVersionUID = -460284378124440077L;
@@ -48,7 +40,6 @@ public class GroupPatch extends AnyPatch {
 
     private String udynMembershipCond;
 
-    @XmlJavaTypeAdapter(XmlGenericMapAdapter.class)
     @JsonIgnore
     private final Map<String, String> adynMembershipConds = new HashMap<>();
 
@@ -102,9 +93,6 @@ public class GroupPatch extends AnyPatch {
         });
     }
 
-    @XmlElementWrapper(name = "typeExtensions")
-    @XmlElement(name = "typeExtension")
-    @JsonProperty("typeExtensions")
     public List<TypeExtensionTO> getTypeExtensions() {
         return typeExtensions;
     }

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/patch/LongPatchItem.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/patch/LongPatchItem.java b/common/lib/src/main/java/org/apache/syncope/common/lib/patch/LongPatchItem.java
index 96c6050..19e3426 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/patch/LongPatchItem.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/patch/LongPatchItem.java
@@ -18,11 +18,6 @@
  */
 package org.apache.syncope.common.lib.patch;
 
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlType;
-
-@XmlRootElement(name = "stringPatchItem")
-@XmlType
 public class LongPatchItem extends AbstractPatchItem<Long> {
 
     private static final long serialVersionUID = 7308597905137875993L;

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/patch/MembershipPatch.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/patch/MembershipPatch.java b/common/lib/src/main/java/org/apache/syncope/common/lib/patch/MembershipPatch.java
index 8487e1f..037ec5f 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/patch/MembershipPatch.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/patch/MembershipPatch.java
@@ -18,17 +18,10 @@
  */
 package org.apache.syncope.common.lib.patch;
 
-import com.fasterxml.jackson.annotation.JsonProperty;
 import java.util.HashSet;
 import java.util.Set;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlElementWrapper;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlType;
 import org.apache.syncope.common.lib.to.AttrTO;
 
-@XmlRootElement(name = "membershipPatch")
-@XmlType
 public class MembershipPatch extends AbstractPatch implements AttributablePatch {
 
     private static final long serialVersionUID = -6783121761221554433L;
@@ -60,17 +53,11 @@ public class MembershipPatch extends AbstractPatch implements AttributablePatch
         this.group = group;
     }
 
-    @XmlElementWrapper(name = "plainAttrs")
-    @XmlElement(name = "attribute")
-    @JsonProperty("plainAttrs")
     @Override
     public Set<AttrPatch> getPlainAttrs() {
         return plainAttrs;
     }
 
-    @XmlElementWrapper(name = "virAttrs")
-    @XmlElement(name = "attribute")
-    @JsonProperty("virAttrs")
     @Override
     public Set<AttrTO> getVirAttrs() {
         return virAttrs;

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/patch/PasswordPatch.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/patch/PasswordPatch.java b/common/lib/src/main/java/org/apache/syncope/common/lib/patch/PasswordPatch.java
index 93e6b9e..00097a2 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/patch/PasswordPatch.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/patch/PasswordPatch.java
@@ -18,20 +18,11 @@
  */
 package org.apache.syncope.common.lib.patch;
 
-import com.fasterxml.jackson.annotation.JsonProperty;
 import java.util.ArrayList;
 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.XmlRootElement;
-import javax.xml.bind.annotation.XmlSeeAlso;
-import javax.xml.bind.annotation.XmlType;
 import org.apache.commons.collections4.CollectionUtils;
 
-@XmlRootElement(name = "passwordPatch")
-@XmlType
-@XmlSeeAlso({ AssociationPatch.class, StatusPatch.class })
 public class PasswordPatch extends StringReplacePatchItem {
 
     private static final long serialVersionUID = 961023537479513071L;
@@ -87,9 +78,6 @@ public class PasswordPatch extends StringReplacePatchItem {
         this.onSyncope = onSyncope;
     }
 
-    @XmlElementWrapper(name = "resources")
-    @XmlElement(name = "resource")
-    @JsonProperty("resources")
     public List<String> getResources() {
         return resources;
     }

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/patch/RelationshipPatch.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/patch/RelationshipPatch.java b/common/lib/src/main/java/org/apache/syncope/common/lib/patch/RelationshipPatch.java
index f7925e9..e71d1da 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/patch/RelationshipPatch.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/patch/RelationshipPatch.java
@@ -18,12 +18,8 @@
  */
 package org.apache.syncope.common.lib.patch;
 
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlType;
 import org.apache.syncope.common.lib.to.RelationshipTO;
 
-@XmlRootElement(name = "relationshipPatch")
-@XmlType
 public class RelationshipPatch extends AbstractPatch {
 
     private static final long serialVersionUID = 1314175521205206511L;

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/patch/ResourceDeassociationPatch.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/patch/ResourceDeassociationPatch.java b/common/lib/src/main/java/org/apache/syncope/common/lib/patch/ResourceDeassociationPatch.java
index 233d5bd..f907e9f 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/patch/ResourceDeassociationPatch.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/patch/ResourceDeassociationPatch.java
@@ -18,19 +18,12 @@
  */
 package org.apache.syncope.common.lib.patch;
 
-import com.fasterxml.jackson.annotation.JsonProperty;
 import java.util.ArrayList;
 import java.util.List;
 import javax.ws.rs.PathParam;
-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.lib.AbstractBaseBean;
 import org.apache.syncope.common.lib.types.ResourceDeassociationAction;
 
-@XmlRootElement(name = "resourceDeassociationPatch")
-@XmlType
 public class ResourceDeassociationPatch extends AbstractBaseBean {
 
     private static final long serialVersionUID = -9116268525079837276L;
@@ -70,9 +63,6 @@ public class ResourceDeassociationPatch extends AbstractBaseBean {
         this.action = action;
     }
 
-    @XmlElementWrapper(name = "anyKyes")
-    @XmlElement(name = "key")
-    @JsonProperty("anyKyes")
     public List<String> getAnyKyes() {
         return anyKyes;
     }

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/patch/StatusPatch.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/patch/StatusPatch.java b/common/lib/src/main/java/org/apache/syncope/common/lib/patch/StatusPatch.java
index b7d9c1e..66862ed 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/patch/StatusPatch.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/patch/StatusPatch.java
@@ -19,12 +19,8 @@
 package org.apache.syncope.common.lib.patch;
 
 import javax.ws.rs.PathParam;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlType;
 import org.apache.syncope.common.lib.types.StatusPatchType;
 
-@XmlRootElement(name = "statusPatch")
-@XmlType
 public class StatusPatch extends PasswordPatch {
 
     private static final long serialVersionUID = 99309988426922612L;

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/patch/StringPatchItem.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/patch/StringPatchItem.java b/common/lib/src/main/java/org/apache/syncope/common/lib/patch/StringPatchItem.java
index d9aacf8..1813df9 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/patch/StringPatchItem.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/patch/StringPatchItem.java
@@ -18,11 +18,6 @@
  */
 package org.apache.syncope.common.lib.patch;
 
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlType;
-
-@XmlRootElement(name = "stringPatchItem")
-@XmlType
 public class StringPatchItem extends AbstractPatchItem<String> {
 
     private static final long serialVersionUID = -4956965404796800689L;

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/patch/StringReplacePatchItem.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/patch/StringReplacePatchItem.java b/common/lib/src/main/java/org/apache/syncope/common/lib/patch/StringReplacePatchItem.java
index b924484..04cf2d0 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/patch/StringReplacePatchItem.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/patch/StringReplacePatchItem.java
@@ -18,13 +18,6 @@
  */
 package org.apache.syncope.common.lib.patch;
 
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlSeeAlso;
-import javax.xml.bind.annotation.XmlType;
-
-@XmlRootElement(name = "stringReplacePatchItem")
-@XmlType
-@XmlSeeAlso({ PasswordPatch.class })
 public class StringReplacePatchItem extends AbstractReplacePatchItem<String> {
 
     private static final long serialVersionUID = -5631052324901928363L;


[3/5] syncope git commit: Removing JAXB in favor of jackson-dataformat-xml: currently the only missing part is XSD in WADL

Posted by il...@apache.org.
http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/to/PagedConnObjectTOResult.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/to/PagedConnObjectTOResult.java b/common/lib/src/main/java/org/apache/syncope/common/lib/to/PagedConnObjectTOResult.java
index 33e4c5d..3ad3cd2 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/to/PagedConnObjectTOResult.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/to/PagedConnObjectTOResult.java
@@ -18,18 +18,11 @@
  */
 package org.apache.syncope.common.lib.to;
 
-import com.fasterxml.jackson.annotation.JsonProperty;
 import java.net.URI;
 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.lib.AbstractBaseBean;
 
-@XmlRootElement(name = "pagedConnObjectResult")
-@XmlType
 public class PagedConnObjectTOResult extends AbstractBaseBean {
 
     private static final long serialVersionUID = -2832908019064402976L;
@@ -110,9 +103,6 @@ public class PagedConnObjectTOResult extends AbstractBaseBean {
         this.allResultsReturned = allResultsReturned;
     }
 
-    @XmlElementWrapper(name = "result")
-    @XmlElement(name = "item")
-    @JsonProperty("result")
     public List<ConnObjectTO> getResult() {
         return result;
     }

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/to/PagedResult.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/to/PagedResult.java b/common/lib/src/main/java/org/apache/syncope/common/lib/to/PagedResult.java
index b17db6d..1892728 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/to/PagedResult.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/to/PagedResult.java
@@ -18,19 +18,12 @@
  */
 package org.apache.syncope.common.lib.to;
 
-import com.fasterxml.jackson.annotation.JsonProperty;
 import com.fasterxml.jackson.annotation.JsonTypeInfo;
 import java.net.URI;
 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.lib.AbstractBaseBean;
 
-@XmlRootElement(name = "pagedResult")
-@XmlType
 public class PagedResult<T extends AbstractBaseBean> extends AbstractBaseBean {
 
     private static final long serialVersionUID = 3472875885259250934L;
@@ -63,9 +56,6 @@ public class PagedResult<T extends AbstractBaseBean> extends AbstractBaseBean {
         this.next = next;
     }
 
-    @XmlElementWrapper(name = "result")
-    @XmlElement(name = "item")
-    @JsonProperty("result")
     @JsonTypeInfo(use = JsonTypeInfo.Id.CLASS, include = JsonTypeInfo.As.PROPERTY, property = "@class")
     public List<T> getResult() {
         return result;

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/to/PlainSchemaTO.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/to/PlainSchemaTO.java b/common/lib/src/main/java/org/apache/syncope/common/lib/to/PlainSchemaTO.java
index 4568e36..546fb3c 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/to/PlainSchemaTO.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/to/PlainSchemaTO.java
@@ -18,15 +18,10 @@
  */
 package org.apache.syncope.common.lib.to;
 
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlType;
-
 import org.apache.commons.lang3.StringUtils;
 import org.apache.syncope.common.lib.types.AttrSchemaType;
 import org.apache.syncope.common.lib.types.CipherAlgorithm;
 
-@XmlRootElement(name = "schema")
-@XmlType
 public class PlainSchemaTO extends AbstractSchemaTO {
 
     private static final long serialVersionUID = -8133983392476990308L;

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/to/PropagationStatus.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/to/PropagationStatus.java b/common/lib/src/main/java/org/apache/syncope/common/lib/to/PropagationStatus.java
index c2caa60..6656cb0 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/to/PropagationStatus.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/to/PropagationStatus.java
@@ -19,15 +19,11 @@
 package org.apache.syncope.common.lib.to;
 
 import org.apache.syncope.common.lib.AbstractBaseBean;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlType;
 import org.apache.syncope.common.lib.types.PropagationTaskExecStatus;
 
 /**
  * Single propagation status.
  */
-@XmlRootElement(name = "propagationStatus")
-@XmlType
 public class PropagationStatus extends AbstractBaseBean {
 
     private static final long serialVersionUID = 3921498450222857690L;

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/to/PropagationTaskTO.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/to/PropagationTaskTO.java b/common/lib/src/main/java/org/apache/syncope/common/lib/to/PropagationTaskTO.java
index ab6c066..02917ad 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/to/PropagationTaskTO.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/to/PropagationTaskTO.java
@@ -18,13 +18,9 @@
  */
 package org.apache.syncope.common.lib.to;
 
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlType;
 import org.apache.syncope.common.lib.types.AnyTypeKind;
 import org.apache.syncope.common.lib.types.ResourceOperation;
 
-@XmlRootElement(name = "propagationTask")
-@XmlType
 public class PropagationTaskTO extends AbstractTaskTO {
 
     private static final long serialVersionUID = 386450127003321197L;

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/to/ProvisionTO.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/to/ProvisionTO.java b/common/lib/src/main/java/org/apache/syncope/common/lib/to/ProvisionTO.java
index b7dae9c..4fb43b3 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/to/ProvisionTO.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/to/ProvisionTO.java
@@ -18,17 +18,10 @@
  */
 package org.apache.syncope.common.lib.to;
 
-import com.fasterxml.jackson.annotation.JsonProperty;
 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.lib.AbstractBaseBean;
 
-@XmlRootElement(name = "provision")
-@XmlType
 public class ProvisionTO extends AbstractBaseBean implements EntityTO {
 
     private static final long serialVersionUID = 8298910216218007927L;
@@ -73,9 +66,6 @@ public class ProvisionTO extends AbstractBaseBean implements EntityTO {
         this.objectClass = objectClass;
     }
 
-    @XmlElementWrapper(name = "auxClasses")
-    @XmlElement(name = "class")
-    @JsonProperty("auxClasses")
     public List<String> getAuxClasses() {
         return auxClasses;
     }
@@ -96,9 +86,6 @@ public class ProvisionTO extends AbstractBaseBean implements EntityTO {
         this.mapping = mapping;
     }
 
-    @XmlElementWrapper(name = "virSchemas")
-    @XmlElement(name = "virSchema")
-    @JsonProperty("virSchemas")
     public List<String> getVirSchemas() {
         return virSchemas;
     }

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/to/ProvisioningResult.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/to/ProvisioningResult.java b/common/lib/src/main/java/org/apache/syncope/common/lib/to/ProvisioningResult.java
index 3fe4790..d1e3bc0 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/to/ProvisioningResult.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/to/ProvisioningResult.java
@@ -23,28 +23,17 @@ import com.fasterxml.jackson.annotation.JsonProperty;
 import com.fasterxml.jackson.annotation.JsonTypeInfo;
 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.XmlTransient;
-import javax.xml.bind.annotation.XmlType;
-import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
 import org.apache.syncope.common.lib.AbstractBaseBean;
-import org.apache.syncope.common.lib.jaxb.XmlEntityTOAdapter;
 
-@XmlRootElement(name = "provisioningResult")
-@XmlType
 public class ProvisioningResult<E extends EntityTO> extends AbstractBaseBean {
 
     private static final long serialVersionUID = 351317476398082746L;
 
-    @XmlJavaTypeAdapter(XmlEntityTOAdapter.class)
     @JsonIgnore
     private E entity;
 
     private final List<PropagationStatus> propagationStatuses = new ArrayList<>();
 
-    @XmlTransient
     @JsonTypeInfo(use = JsonTypeInfo.Id.CLASS, include = JsonTypeInfo.As.PROPERTY, property = "@class")
     @JsonProperty
     public E getEntity() {
@@ -55,9 +44,6 @@ public class ProvisioningResult<E extends EntityTO> extends AbstractBaseBean {
         this.entity = any;
     }
 
-    @XmlElementWrapper(name = "propagationStatuses")
-    @XmlElement(name = "propagationStatus")
-    @JsonProperty("propagationStatuses")
     public List<PropagationStatus> getPropagationStatuses() {
         return propagationStatuses;
     }

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/to/PullTaskTO.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/to/PullTaskTO.java b/common/lib/src/main/java/org/apache/syncope/common/lib/to/PullTaskTO.java
index 9aaccf2..bab5aa1 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/to/PullTaskTO.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/to/PullTaskTO.java
@@ -18,21 +18,10 @@
  */
 package org.apache.syncope.common.lib.to;
 
-import com.fasterxml.jackson.annotation.JsonIgnore;
-import com.fasterxml.jackson.annotation.JsonProperty;
 import java.util.HashMap;
 import java.util.Map;
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlType;
-import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
-import org.apache.syncope.common.lib.jaxb.XmlGenericMapAdapter;
 import org.apache.syncope.common.lib.types.PullMode;
 
-@XmlRootElement(name = "pullTask")
-@XmlType
-@XmlAccessorType(XmlAccessType.FIELD)
 public class PullTaskTO extends AbstractProvisioningTaskTO implements TemplatableTO {
 
     private static final long serialVersionUID = -2143537546915809017L;
@@ -43,8 +32,6 @@ public class PullTaskTO extends AbstractProvisioningTaskTO implements Templatabl
 
     private String destinationRealm;
 
-    @XmlJavaTypeAdapter(XmlGenericMapAdapter.class)
-    @JsonIgnore
     private final Map<String, AnyTO> templates = new HashMap<>();
 
     public PullMode getPullMode() {
@@ -71,7 +58,6 @@ public class PullTaskTO extends AbstractProvisioningTaskTO implements Templatabl
         this.destinationRealm = destinationRealm;
     }
 
-    @JsonProperty
     @Override
     public Map<String, AnyTO> getTemplates() {
         return templates;

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/to/PushTaskTO.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/to/PushTaskTO.java b/common/lib/src/main/java/org/apache/syncope/common/lib/to/PushTaskTO.java
index dd3347a..2b4cdbd 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/to/PushTaskTO.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/to/PushTaskTO.java
@@ -18,29 +18,15 @@
  */
 package org.apache.syncope.common.lib.to;
 
-import com.fasterxml.jackson.annotation.JsonIgnore;
-import com.fasterxml.jackson.annotation.JsonProperty;
 import java.util.HashMap;
 import java.util.Map;
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlType;
-import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
-import org.apache.syncope.common.lib.jaxb.XmlGenericMapAdapter;
 
-@XmlRootElement(name = "pushTask")
-@XmlType
-@XmlAccessorType(XmlAccessType.FIELD)
 public class PushTaskTO extends AbstractProvisioningTaskTO {
 
     private static final long serialVersionUID = -2143537546915809018L;
 
-    @XmlJavaTypeAdapter(XmlGenericMapAdapter.class)
-    @JsonIgnore
     private final Map<String, String> filters = new HashMap<>();
 
-    @JsonProperty
     public Map<String, String> getFilters() {
         return filters;
     }

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/to/RealmTO.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/to/RealmTO.java b/common/lib/src/main/java/org/apache/syncope/common/lib/to/RealmTO.java
index db770e7..bb044cb 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/to/RealmTO.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/to/RealmTO.java
@@ -25,16 +25,8 @@ import java.util.HashSet;
 import java.util.Map;
 import java.util.Set;
 import javax.ws.rs.PathParam;
-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 javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
 import org.apache.syncope.common.lib.AbstractBaseBean;
-import org.apache.syncope.common.lib.jaxb.XmlGenericMapAdapter;
 
-@XmlRootElement(name = "realm")
-@XmlType
 public class RealmTO extends AbstractBaseBean implements EntityTO, TemplatableTO {
 
     private static final long serialVersionUID = 516330662956254391L;
@@ -53,7 +45,6 @@ public class RealmTO extends AbstractBaseBean implements EntityTO, TemplatableTO
 
     private final Set<String> actionsClassNames = new HashSet<>();
 
-    @XmlJavaTypeAdapter(XmlGenericMapAdapter.class)
     @JsonIgnore
     private final Map<String, AnyTO> templates = new HashMap<>();
 
@@ -110,9 +101,6 @@ public class RealmTO extends AbstractBaseBean implements EntityTO, TemplatableTO
         this.passwordPolicy = passwordPolicy;
     }
 
-    @XmlElementWrapper(name = "actionsClassNames")
-    @XmlElement(name = "actionsClassName")
-    @JsonProperty("actionsClassNames")
     public Set<String> getActionsClassNames() {
         return actionsClassNames;
     }
@@ -123,9 +111,6 @@ public class RealmTO extends AbstractBaseBean implements EntityTO, TemplatableTO
         return templates;
     }
 
-    @XmlElementWrapper(name = "resources")
-    @XmlElement(name = "resource")
-    @JsonProperty("resources")
     public Set<String> getResources() {
         return resources;
     }

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/to/RelationshipTO.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/to/RelationshipTO.java b/common/lib/src/main/java/org/apache/syncope/common/lib/to/RelationshipTO.java
index fc5de4f..8a97c8b 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/to/RelationshipTO.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/to/RelationshipTO.java
@@ -18,12 +18,8 @@
  */
 package org.apache.syncope.common.lib.to;
 
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlType;
 import org.apache.syncope.common.lib.AbstractBaseBean;
 
-@XmlRootElement(name = "relationship")
-@XmlType
 public class RelationshipTO extends AbstractBaseBean {
 
     private static final long serialVersionUID = 360672942026613929L;

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/to/RelationshipTypeTO.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/to/RelationshipTypeTO.java b/common/lib/src/main/java/org/apache/syncope/common/lib/to/RelationshipTypeTO.java
index d5eba40..15c2a5c 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/to/RelationshipTypeTO.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/to/RelationshipTypeTO.java
@@ -19,12 +19,8 @@
 package org.apache.syncope.common.lib.to;
 
 import javax.ws.rs.Path;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlType;
 import org.apache.syncope.common.lib.AbstractBaseBean;
 
-@XmlRootElement(name = "relationshipType")
-@XmlType
 public class RelationshipTypeTO extends AbstractBaseBean implements EntityTO {
 
     private static final long serialVersionUID = -1884088415277925817L;

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/to/ReportTO.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/to/ReportTO.java b/common/lib/src/main/java/org/apache/syncope/common/lib/to/ReportTO.java
index 73b16f7..1244e1e 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/to/ReportTO.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/to/ReportTO.java
@@ -18,19 +18,12 @@
  */
 package org.apache.syncope.common.lib.to;
 
-import com.fasterxml.jackson.annotation.JsonProperty;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 import javax.ws.rs.PathParam;
-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.lib.report.AbstractReportletConf;
 
-@XmlRootElement(name = "report")
-@XmlType
 public class ReportTO extends AbstractStartEndBean implements EntityTO {
 
     private static final long serialVersionUID = 5274568072084814410L;
@@ -74,9 +67,6 @@ public class ReportTO extends AbstractStartEndBean implements EntityTO {
         this.name = name;
     }
 
-    @XmlElementWrapper(name = "reportletConfs")
-    @XmlElement(name = "reportletConf")
-    @JsonProperty("reportletConfs")
     public List<AbstractReportletConf> getReportletConfs() {
         return reportletConfs;
     }
@@ -89,9 +79,6 @@ public class ReportTO extends AbstractStartEndBean implements EntityTO {
         this.cronExpression = cronExpression;
     }
 
-    @XmlElementWrapper(name = "executions")
-    @XmlElement(name = "execution")
-    @JsonProperty("executions")
     public List<ExecTO> getExecutions() {
         return executions;
     }

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/to/ReportTemplateTO.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/to/ReportTemplateTO.java b/common/lib/src/main/java/org/apache/syncope/common/lib/to/ReportTemplateTO.java
index 1731d4c..9819f96 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/to/ReportTemplateTO.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/to/ReportTemplateTO.java
@@ -19,12 +19,8 @@
 package org.apache.syncope.common.lib.to;
 
 import javax.ws.rs.PathParam;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlType;
 import org.apache.syncope.common.lib.AbstractBaseBean;
 
-@XmlRootElement(name = "reportTemplate")
-@XmlType
 public class ReportTemplateTO extends AbstractBaseBean implements EntityTO {
 
     private static final long serialVersionUID = 7776679004906244896L;

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/to/ResourceTO.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/to/ResourceTO.java b/common/lib/src/main/java/org/apache/syncope/common/lib/to/ResourceTO.java
index 9ea0029..1743687 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/to/ResourceTO.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/to/ResourceTO.java
@@ -19,17 +19,12 @@
 package org.apache.syncope.common.lib.to;
 
 import com.fasterxml.jackson.annotation.JsonIgnore;
-import com.fasterxml.jackson.annotation.JsonProperty;
 import java.util.ArrayList;
 import java.util.EnumSet;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
 import javax.ws.rs.PathParam;
-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.collections4.IterableUtils;
 import org.apache.commons.collections4.Predicate;
 import org.apache.syncope.common.lib.AbstractBaseBean;
@@ -37,8 +32,6 @@ import org.apache.syncope.common.lib.types.ConnConfProperty;
 import org.apache.syncope.common.lib.types.ConnectorCapability;
 import org.apache.syncope.common.lib.types.TraceLevel;
 
-@XmlRootElement(name = "resource")
-@XmlType
 public class ResourceTO extends AbstractBaseBean implements EntityTO {
 
     private static final long serialVersionUID = -9193551354041698963L;
@@ -197,9 +190,6 @@ public class ResourceTO extends AbstractBaseBean implements EntityTO {
         });
     }
 
-    @XmlElementWrapper(name = "provisions")
-    @XmlElement(name = "provision")
-    @JsonProperty("provisions")
     public List<ProvisionTO> getProvisions() {
         return provisions;
     }
@@ -212,9 +202,6 @@ public class ResourceTO extends AbstractBaseBean implements EntityTO {
         this.orgUnit = orgUnit;
     }
 
-    @XmlElementWrapper(name = "confOverride")
-    @XmlElement(name = "property")
-    @JsonProperty("confOverride")
     public Set<ConnConfProperty> getConfOverride() {
         return confOverride;
     }
@@ -227,9 +214,6 @@ public class ResourceTO extends AbstractBaseBean implements EntityTO {
         this.overrideCapabilities = overrideCapabilities;
     }
 
-    @XmlElementWrapper(name = "capabilitiesOverride")
-    @XmlElement(name = "capability")
-    @JsonProperty("capabilitiesOverride")
     public Set<ConnectorCapability> getCapabilitiesOverride() {
         return capabilitiesOverride;
     }
@@ -242,9 +226,6 @@ public class ResourceTO extends AbstractBaseBean implements EntityTO {
         this.provisioningTraceLevel = provisioningTraceLevel;
     }
 
-    @XmlElementWrapper(name = "propagationActionsClassNames")
-    @XmlElement(name = "propagationActionsClassName")
-    @JsonProperty("propagationActionsClassNames")
     public List<String> getPropagationActionsClassNames() {
         return propagationActionsClassNames;
     }

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/to/RoleTO.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/to/RoleTO.java b/common/lib/src/main/java/org/apache/syncope/common/lib/to/RoleTO.java
index cbb8784..432513a 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/to/RoleTO.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/to/RoleTO.java
@@ -18,20 +18,13 @@
  */
 package org.apache.syncope.common.lib.to;
 
-import com.fasterxml.jackson.annotation.JsonProperty;
 import java.util.ArrayList;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
 import javax.ws.rs.PathParam;
-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.lib.AbstractBaseBean;
 
-@XmlRootElement(name = "role")
-@XmlType
 public class RoleTO extends AbstractBaseBean implements EntityTO {
 
     private static final long serialVersionUID = 4560822655754800031L;
@@ -55,16 +48,10 @@ public class RoleTO extends AbstractBaseBean implements EntityTO {
         this.key = key;
     }
 
-    @XmlElementWrapper(name = "entitlements")
-    @XmlElement(name = "entitlement")
-    @JsonProperty("entitlements")
     public Set<String> getEntitlements() {
         return entitlements;
     }
 
-    @XmlElementWrapper(name = "realms")
-    @XmlElement(name = "realm")
-    @JsonProperty("realms")
     public List<String> getRealms() {
         return realms;
     }

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/to/SchedTaskTO.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/to/SchedTaskTO.java b/common/lib/src/main/java/org/apache/syncope/common/lib/to/SchedTaskTO.java
index 90748ec..1370380 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/to/SchedTaskTO.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/to/SchedTaskTO.java
@@ -20,13 +20,6 @@ package org.apache.syncope.common.lib.to;
 
 import java.util.Date;
 
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlSeeAlso;
-import javax.xml.bind.annotation.XmlType;
-
-@XmlRootElement(name = "schedTask")
-@XmlType
-@XmlSeeAlso(AbstractProvisioningTaskTO.class)
 public class SchedTaskTO extends AbstractTaskTO {
 
     private static final long serialVersionUID = -5722284116974636425L;

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/to/SecurityQuestionTO.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/to/SecurityQuestionTO.java b/common/lib/src/main/java/org/apache/syncope/common/lib/to/SecurityQuestionTO.java
index bf3d221..efa38dc 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/to/SecurityQuestionTO.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/to/SecurityQuestionTO.java
@@ -19,12 +19,8 @@
 package org.apache.syncope.common.lib.to;
 
 import javax.ws.rs.PathParam;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlType;
 import org.apache.syncope.common.lib.AbstractBaseBean;
 
-@XmlRootElement(name = "securityQuestion")
-@XmlType
 public class SecurityQuestionTO extends AbstractBaseBean implements EntityTO {
 
     private static final long serialVersionUID = 5969810939993556530L;

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/to/TypeExtensionTO.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/to/TypeExtensionTO.java b/common/lib/src/main/java/org/apache/syncope/common/lib/to/TypeExtensionTO.java
index f8dea41..3fe4276 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/to/TypeExtensionTO.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/to/TypeExtensionTO.java
@@ -18,17 +18,10 @@
  */
 package org.apache.syncope.common.lib.to;
 
-import com.fasterxml.jackson.annotation.JsonProperty;
 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.lib.AbstractBaseBean;
 
-@XmlRootElement(name = "typeExtension")
-@XmlType
 public class TypeExtensionTO extends AbstractBaseBean {
 
     private static final long serialVersionUID = -5422809645030924811L;
@@ -45,9 +38,6 @@ public class TypeExtensionTO extends AbstractBaseBean {
         this.anyType = anyType;
     }
 
-    @XmlElementWrapper(name = "auxClasses")
-    @XmlElement(name = "class")
-    @JsonProperty("auxClasses")
     public List<String> getAuxClasses() {
         return auxClasses;
     }

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/to/UserTO.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/to/UserTO.java b/common/lib/src/main/java/org/apache/syncope/common/lib/to/UserTO.java
index 4ec8181..aecbd20 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/to/UserTO.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/to/UserTO.java
@@ -19,7 +19,6 @@
 package org.apache.syncope.common.lib.to;
 
 import com.fasterxml.jackson.annotation.JsonIgnore;
-import com.fasterxml.jackson.annotation.JsonProperty;
 import java.lang.reflect.Field;
 import java.util.ArrayList;
 import java.util.Collections;
@@ -27,17 +26,11 @@ 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.lang3.builder.ReflectionToStringBuilder;
 import org.apache.commons.lang3.builder.ToStringStyle;
 import org.apache.commons.lang3.tuple.Pair;
 import org.apache.syncope.common.lib.types.AnyTypeKind;
 
-@XmlRootElement(name = "user")
-@XmlType
 public class UserTO extends AnyTO implements GroupableRelatableTO {
 
     private static final long serialVersionUID = 7791304495192615740L;
@@ -90,16 +83,10 @@ public class UserTO extends AnyTO implements GroupableRelatableTO {
         this.password = password;
     }
 
-    @XmlElementWrapper(name = "roles")
-    @XmlElement(name = "role")
-    @JsonProperty("roles")
     public List<String> getRoles() {
         return roles;
     }
 
-    @XmlElementWrapper(name = "dynRoles")
-    @XmlElement(name = "role")
-    @JsonProperty("dynRoles")
     public List<String> getDynRoles() {
         return dynRoles;
     }
@@ -180,9 +167,6 @@ public class UserTO extends AnyTO implements GroupableRelatableTO {
         this.mustChangePassword = mustChangePassword;
     }
 
-    @XmlElementWrapper(name = "relationships")
-    @XmlElement(name = "relationship")
-    @JsonProperty("relationships")
     @Override
     public List<RelationshipTO> getRelationships() {
         return relationships;
@@ -198,9 +182,6 @@ public class UserTO extends AnyTO implements GroupableRelatableTO {
         return Collections.unmodifiableMap(result);
     }
 
-    @XmlElementWrapper(name = "memberships")
-    @XmlElement(name = "membership")
-    @JsonProperty("memberships")
     @Override
     public List<MembershipTO> getMemberships() {
         return memberships;
@@ -218,9 +199,6 @@ public class UserTO extends AnyTO implements GroupableRelatableTO {
         return result;
     }
 
-    @XmlElementWrapper(name = "dynGroups")
-    @XmlElement(name = "role")
-    @JsonProperty("dynGroups")
     @Override
     public List<String> getDynGroups() {
         return dynGroups;

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/to/VirSchemaTO.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/to/VirSchemaTO.java b/common/lib/src/main/java/org/apache/syncope/common/lib/to/VirSchemaTO.java
index 1f10e6b..4aa6ec2 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/to/VirSchemaTO.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/to/VirSchemaTO.java
@@ -18,9 +18,6 @@
  */
 package org.apache.syncope.common.lib.to;
 
-import javax.xml.bind.annotation.XmlRootElement;
-
-@XmlRootElement(name = "virtualSchema")
 public class VirSchemaTO extends AbstractSchemaTO {
 
     private static final long serialVersionUID = -8198557479659701343L;

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/to/WorkflowFormPropertyTO.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/to/WorkflowFormPropertyTO.java b/common/lib/src/main/java/org/apache/syncope/common/lib/to/WorkflowFormPropertyTO.java
index 9fa5928..22e3ecc 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/to/WorkflowFormPropertyTO.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/to/WorkflowFormPropertyTO.java
@@ -18,19 +18,11 @@
  */
 package org.apache.syncope.common.lib.to;
 
-import com.fasterxml.jackson.annotation.JsonIgnore;
-import com.fasterxml.jackson.annotation.JsonProperty;
 import java.util.HashMap;
 import java.util.Map;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlType;
-import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
 import org.apache.syncope.common.lib.AbstractBaseBean;
-import org.apache.syncope.common.lib.jaxb.XmlGenericMapAdapter;
 import org.apache.syncope.common.lib.types.WorkflowFormPropertyType;
 
-@XmlRootElement(name = "workflowFormProperty")
-@XmlType
 public class WorkflowFormPropertyTO extends AbstractBaseBean {
 
     private static final long serialVersionUID = 9139969592634304261L;
@@ -51,8 +43,6 @@ public class WorkflowFormPropertyTO extends AbstractBaseBean {
 
     private String datePattern;
 
-    @XmlJavaTypeAdapter(XmlGenericMapAdapter.class)
-    @JsonIgnore
     private final Map<String, String> enumValues = new HashMap<>();
 
     public String getId() {
@@ -119,7 +109,6 @@ public class WorkflowFormPropertyTO extends AbstractBaseBean {
         this.datePattern = datePattern;
     }
 
-    @JsonProperty
     public Map<String, String> getEnumValues() {
         return enumValues;
     }

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/to/WorkflowFormTO.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/to/WorkflowFormTO.java b/common/lib/src/main/java/org/apache/syncope/common/lib/to/WorkflowFormTO.java
index e6027f1..c1d1241 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/to/WorkflowFormTO.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/to/WorkflowFormTO.java
@@ -19,21 +19,14 @@
 package org.apache.syncope.common.lib.to;
 
 import com.fasterxml.jackson.annotation.JsonIgnore;
-import com.fasterxml.jackson.annotation.JsonProperty;
 import java.util.ArrayList;
 import java.util.Collections;
 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.syncope.common.lib.AbstractBaseBean;
 
-@XmlRootElement(name = "workflowForm")
-@XmlType
 public class WorkflowFormTO extends AbstractBaseBean {
 
     private static final long serialVersionUID = -7044543391316529128L;
@@ -100,9 +93,6 @@ public class WorkflowFormTO extends AbstractBaseBean {
         this.owner = owner;
     }
 
-    @XmlElementWrapper(name = "workflowFormProperties")
-    @XmlElement(name = "workflowFormProperty")
-    @JsonProperty("workflowFormProperties")
     public List<WorkflowFormPropertyTO> getProperties() {
         return properties;
     }

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/to/package-info.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/to/package-info.java b/common/lib/src/main/java/org/apache/syncope/common/lib/to/package-info.java
deleted file mode 100644
index b02ed8f..0000000
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/to/package-info.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-@XmlSchema(namespace = SyncopeConstants.NAMESPACE)
-package org.apache.syncope.common.lib.to;
-
-import javax.xml.bind.annotation.XmlSchema;
-import org.apache.syncope.common.lib.SyncopeConstants;

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/types/AnyTypeKind.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/types/AnyTypeKind.java b/common/lib/src/main/java/org/apache/syncope/common/lib/types/AnyTypeKind.java
index 12fbf59..d0092f0 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/types/AnyTypeKind.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/types/AnyTypeKind.java
@@ -18,13 +18,11 @@
  */
 package org.apache.syncope.common.lib.types;
 
-import javax.xml.bind.annotation.XmlEnum;
 import org.apache.syncope.common.lib.to.AnyObjectTO;
 import org.apache.syncope.common.lib.to.AnyTO;
 import org.apache.syncope.common.lib.to.GroupTO;
 import org.apache.syncope.common.lib.to.UserTO;
 
-@XmlEnum
 public enum AnyTypeKind {
 
     USER(UserTO.class),

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/types/AttrSchemaType.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/types/AttrSchemaType.java b/common/lib/src/main/java/org/apache/syncope/common/lib/types/AttrSchemaType.java
index be78979..b8e162d 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/types/AttrSchemaType.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/types/AttrSchemaType.java
@@ -19,9 +19,7 @@
 package org.apache.syncope.common.lib.types;
 
 import java.util.Date;
-import javax.xml.bind.annotation.XmlEnum;
 
-@XmlEnum
 public enum AttrSchemaType {
 
     String(String.class),

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/types/AuditElements.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/types/AuditElements.java b/common/lib/src/main/java/org/apache/syncope/common/lib/types/AuditElements.java
index 16f6d69..9ea5f99 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/types/AuditElements.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/types/AuditElements.java
@@ -19,7 +19,6 @@
 package org.apache.syncope.common.lib.types;
 
 import java.io.Serializable;
-import javax.xml.bind.annotation.XmlEnum;
 import org.apache.commons.lang3.StringUtils;
 
 public final class AuditElements implements Serializable {
@@ -30,7 +29,6 @@ public final class AuditElements implements Serializable {
 
     public static final String LOGIN_EVENT = "login";
 
-    @XmlEnum
     public enum EventCategoryType {
 
         LOGIC(StringUtils.EMPTY),
@@ -52,7 +50,6 @@ public final class AuditElements implements Serializable {
         }
     }
 
-    @XmlEnum
     public enum Result {
 
         SUCCESS,

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/types/BulkMembersActionType.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/types/BulkMembersActionType.java b/common/lib/src/main/java/org/apache/syncope/common/lib/types/BulkMembersActionType.java
index c86559a..4a4faf6 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/types/BulkMembersActionType.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/types/BulkMembersActionType.java
@@ -18,9 +18,6 @@
  */
 package org.apache.syncope.common.lib.types;
 
-import javax.xml.bind.annotation.XmlEnum;
-
-@XmlEnum
 public enum BulkMembersActionType {
 
     PROVISION,

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/types/CipherAlgorithm.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/types/CipherAlgorithm.java b/common/lib/src/main/java/org/apache/syncope/common/lib/types/CipherAlgorithm.java
index d7be1bc..e346298 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/types/CipherAlgorithm.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/types/CipherAlgorithm.java
@@ -18,9 +18,6 @@
  */
 package org.apache.syncope.common.lib.types;
 
-import javax.xml.bind.annotation.XmlEnum;
-
-@XmlEnum
 public enum CipherAlgorithm {
 
     SHA("SHA-1", false),

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/types/ConflictResolutionAction.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/types/ConflictResolutionAction.java b/common/lib/src/main/java/org/apache/syncope/common/lib/types/ConflictResolutionAction.java
index 37308e1..4b38f98 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/types/ConflictResolutionAction.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/types/ConflictResolutionAction.java
@@ -18,9 +18,6 @@
  */
 package org.apache.syncope.common.lib.types;
 
-import javax.xml.bind.annotation.XmlEnum;
-
-@XmlEnum
 public enum ConflictResolutionAction {
 
     // ignore sync
@@ -31,4 +28,5 @@ public enum ConflictResolutionAction {
     LASTMATCH,
     // sync all
     ALL;
+
 }

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/types/ConnConfPropSchema.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/types/ConnConfPropSchema.java b/common/lib/src/main/java/org/apache/syncope/common/lib/types/ConnConfPropSchema.java
index 8b0dbe6..acfa7f4 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/types/ConnConfPropSchema.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/types/ConnConfPropSchema.java
@@ -18,17 +18,10 @@
  */
 package org.apache.syncope.common.lib.types;
 
-import com.fasterxml.jackson.annotation.JsonProperty;
 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.lib.AbstractBaseBean;
 
-@XmlRootElement
-@XmlType
 public class ConnConfPropSchema extends AbstractBaseBean implements Comparable<ConnConfPropSchema> {
 
     private static final long serialVersionUID = -1976365781005801296L;
@@ -105,9 +98,6 @@ public class ConnConfPropSchema extends AbstractBaseBean implements Comparable<C
         this.confidential = confidential;
     }
 
-    @XmlElementWrapper(name = "defaultValues")
-    @XmlElement(name = "defaultValue")
-    @JsonProperty("defaultValues")
     public List<Object> getDefaultValues() {
         return defaultValues;
     }

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/types/ConnConfProperty.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/types/ConnConfProperty.java b/common/lib/src/main/java/org/apache/syncope/common/lib/types/ConnConfProperty.java
index f4d321b..eeeacd3 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/types/ConnConfProperty.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/types/ConnConfProperty.java
@@ -18,18 +18,11 @@
  */
 package org.apache.syncope.common.lib.types;
 
-import com.fasterxml.jackson.annotation.JsonProperty;
 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.commons.lang3.ObjectUtils;
 import org.apache.syncope.common.lib.AbstractBaseBean;
 
-@XmlRootElement
-@XmlType
 public class ConnConfProperty extends AbstractBaseBean implements Comparable<ConnConfProperty> {
 
     private static final long serialVersionUID = -8391413960221862238L;
@@ -48,9 +41,6 @@ public class ConnConfProperty extends AbstractBaseBean implements Comparable<Con
         this.schema = schema;
     }
 
-    @XmlElementWrapper(name = "values")
-    @XmlElement(name = "value")
-    @JsonProperty("values")
     public List<Object> getValues() {
         return values;
     }

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/types/ConnectorCapability.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/types/ConnectorCapability.java b/common/lib/src/main/java/org/apache/syncope/common/lib/types/ConnectorCapability.java
index 41b1e4a..1abf35f 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/types/ConnectorCapability.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/types/ConnectorCapability.java
@@ -18,12 +18,9 @@
  */
 package org.apache.syncope.common.lib.types;
 
-import javax.xml.bind.annotation.XmlEnum;
-
 /**
  * Enum of all possible capabilities that a connector instance can expose.
  */
-@XmlEnum
 public enum ConnectorCapability {
 
     AUTHENTICATE,

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/types/EntityViolationType.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/types/EntityViolationType.java b/common/lib/src/main/java/org/apache/syncope/common/lib/types/EntityViolationType.java
index cbfc0c6..0eab704 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/types/EntityViolationType.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/types/EntityViolationType.java
@@ -18,9 +18,6 @@
  */
 package org.apache.syncope.common.lib.types;
 
-import javax.xml.bind.annotation.XmlEnum;
-
-@XmlEnum
 public enum EntityViolationType {
 
     Standard(""),

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/types/JobAction.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/types/JobAction.java b/common/lib/src/main/java/org/apache/syncope/common/lib/types/JobAction.java
index 920393b..6056a02 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/types/JobAction.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/types/JobAction.java
@@ -18,9 +18,6 @@
  */
 package org.apache.syncope.common.lib.types;
 
-import javax.xml.bind.annotation.XmlEnum;
-
-@XmlEnum
 public enum JobAction {
 
     START,

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/types/JobType.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/types/JobType.java b/common/lib/src/main/java/org/apache/syncope/common/lib/types/JobType.java
index b480848..1f37aa6 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/types/JobType.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/types/JobType.java
@@ -18,9 +18,6 @@
  */
 package org.apache.syncope.common.lib.types;
 
-import javax.xml.bind.annotation.XmlEnum;
-
-@XmlEnum
 public enum JobType {
     NOTIFICATION,
     REPORT,

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/types/LoggerLevel.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/types/LoggerLevel.java b/common/lib/src/main/java/org/apache/syncope/common/lib/types/LoggerLevel.java
index 01f7d2e..dd54348 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/types/LoggerLevel.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/types/LoggerLevel.java
@@ -18,10 +18,8 @@
  */
 package org.apache.syncope.common.lib.types;
 
-import javax.xml.bind.annotation.XmlEnum;
 import org.apache.logging.log4j.Level;
 
-@XmlEnum
 public enum LoggerLevel {
 
     OFF(Level.OFF),

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/types/LoggerType.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/types/LoggerType.java b/common/lib/src/main/java/org/apache/syncope/common/lib/types/LoggerType.java
index f129a7d..c696d6e 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/types/LoggerType.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/types/LoggerType.java
@@ -18,10 +18,8 @@
  */
 package org.apache.syncope.common.lib.types;
 
-import javax.xml.bind.annotation.XmlEnum;
 import org.apache.commons.lang3.StringUtils;
 
-@XmlEnum
 public enum LoggerType {
 
     /**

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/types/MailTemplateFormat.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/types/MailTemplateFormat.java b/common/lib/src/main/java/org/apache/syncope/common/lib/types/MailTemplateFormat.java
index fdf8429..f301145 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/types/MailTemplateFormat.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/types/MailTemplateFormat.java
@@ -19,9 +19,7 @@
 package org.apache.syncope.common.lib.types;
 
 import javax.ws.rs.core.MediaType;
-import javax.xml.bind.annotation.XmlEnum;
 
-@XmlEnum
 public enum MailTemplateFormat {
 
     HTML(MediaType.TEXT_HTML_TYPE),

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/types/MatchingRule.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/types/MatchingRule.java b/common/lib/src/main/java/org/apache/syncope/common/lib/types/MatchingRule.java
index 4b3ad53..3d91b66 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/types/MatchingRule.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/types/MatchingRule.java
@@ -18,12 +18,9 @@
  */
 package org.apache.syncope.common.lib.types;
 
-import javax.xml.bind.annotation.XmlEnum;
-
 /**
- * Sync/Push task matching rule.
+ * Pull/Push task matching rule.
  */
-@XmlEnum
 public enum MatchingRule {
 
     /**

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/types/PatchOperation.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/types/PatchOperation.java b/common/lib/src/main/java/org/apache/syncope/common/lib/types/PatchOperation.java
index 9872cbf..19c7752 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/types/PatchOperation.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/types/PatchOperation.java
@@ -18,9 +18,6 @@
  */
 package org.apache.syncope.common.lib.types;
 
-import javax.xml.bind.annotation.XmlEnum;
-
-@XmlEnum
 public enum PatchOperation {
 
     ADD_REPLACE,

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/types/PolicyType.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/types/PolicyType.java b/common/lib/src/main/java/org/apache/syncope/common/lib/types/PolicyType.java
index ea429c2..79e78d5 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/types/PolicyType.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/types/PolicyType.java
@@ -18,9 +18,6 @@
  */
 package org.apache.syncope.common.lib.types;
 
-import javax.xml.bind.annotation.XmlEnum;
-
-@XmlEnum
 public enum PolicyType {
 
     /**

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/types/PropagationTaskExecStatus.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/types/PropagationTaskExecStatus.java b/common/lib/src/main/java/org/apache/syncope/common/lib/types/PropagationTaskExecStatus.java
index 6ae4a36..9996d21 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/types/PropagationTaskExecStatus.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/types/PropagationTaskExecStatus.java
@@ -18,12 +18,9 @@
  */
 package org.apache.syncope.common.lib.types;
 
-import javax.xml.bind.annotation.XmlEnum;
-
 /**
  * Status of a propagation task execution.
  */
-@XmlEnum
 public enum PropagationTaskExecStatus {
 
     CREATED,

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/types/PullMode.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/types/PullMode.java b/common/lib/src/main/java/org/apache/syncope/common/lib/types/PullMode.java
index 522c30d..26933f9 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/types/PullMode.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/types/PullMode.java
@@ -18,9 +18,6 @@
  */
 package org.apache.syncope.common.lib.types;
 
-import javax.xml.bind.annotation.XmlEnum;
-
-@XmlEnum
 public enum PullMode {
     FULL_RECONCILIATION,
     FILTERED_RECONCILIATION,

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/types/ReportExecExportFormat.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/types/ReportExecExportFormat.java b/common/lib/src/main/java/org/apache/syncope/common/lib/types/ReportExecExportFormat.java
index fdac43d..9b95af2 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/types/ReportExecExportFormat.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/types/ReportExecExportFormat.java
@@ -18,9 +18,6 @@
  */
 package org.apache.syncope.common.lib.types;
 
-import javax.xml.bind.annotation.XmlEnum;
-
-@XmlEnum
 public enum ReportExecExportFormat {
 
     XML,

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/types/ReportExecStatus.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/types/ReportExecStatus.java b/common/lib/src/main/java/org/apache/syncope/common/lib/types/ReportExecStatus.java
index 2fe42ed..2e0e7fc 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/types/ReportExecStatus.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/types/ReportExecStatus.java
@@ -18,9 +18,6 @@
  */
 package org.apache.syncope.common.lib.types;
 
-import javax.xml.bind.annotation.XmlEnum;
-
-@XmlEnum
 public enum ReportExecStatus {
 
     STARTED,

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/types/ReportTemplateFormat.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/types/ReportTemplateFormat.java b/common/lib/src/main/java/org/apache/syncope/common/lib/types/ReportTemplateFormat.java
index 17ebf91..cd91e07 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/types/ReportTemplateFormat.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/types/ReportTemplateFormat.java
@@ -18,9 +18,6 @@
  */
 package org.apache.syncope.common.lib.types;
 
-import javax.xml.bind.annotation.XmlEnum;
-
-@XmlEnum
 public enum ReportTemplateFormat {
 
     FO,

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/types/ResourceAssociationAction.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/types/ResourceAssociationAction.java b/common/lib/src/main/java/org/apache/syncope/common/lib/types/ResourceAssociationAction.java
index efbe0ef..f17b6ec 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/types/ResourceAssociationAction.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/types/ResourceAssociationAction.java
@@ -18,9 +18,6 @@
  */
 package org.apache.syncope.common.lib.types;
 
-import javax.xml.bind.annotation.XmlEnum;
-
-@XmlEnum
 public enum ResourceAssociationAction {
 
     /**

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/types/ResourceDeassociationAction.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/types/ResourceDeassociationAction.java b/common/lib/src/main/java/org/apache/syncope/common/lib/types/ResourceDeassociationAction.java
index c8d78ec..cabedcf 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/types/ResourceDeassociationAction.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/types/ResourceDeassociationAction.java
@@ -18,9 +18,6 @@
  */
 package org.apache.syncope.common.lib.types;
 
-import javax.xml.bind.annotation.XmlEnum;
-
-@XmlEnum
 public enum ResourceDeassociationAction {
 
     /**

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/types/ResourceOperation.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/types/ResourceOperation.java b/common/lib/src/main/java/org/apache/syncope/common/lib/types/ResourceOperation.java
index b399b17..dee3d71 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/types/ResourceOperation.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/types/ResourceOperation.java
@@ -18,9 +18,6 @@
  */
 package org.apache.syncope.common.lib.types;
 
-import javax.xml.bind.annotation.XmlEnum;
-
-@XmlEnum
 public enum ResourceOperation {
 
     CREATE,

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/types/SchemaType.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/types/SchemaType.java b/common/lib/src/main/java/org/apache/syncope/common/lib/types/SchemaType.java
index 673666d..3bb9ab9 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/types/SchemaType.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/types/SchemaType.java
@@ -18,13 +18,11 @@
  */
 package org.apache.syncope.common.lib.types;
 
-import javax.xml.bind.annotation.XmlEnum;
 import org.apache.syncope.common.lib.to.AbstractSchemaTO;
 import org.apache.syncope.common.lib.to.DerSchemaTO;
 import org.apache.syncope.common.lib.to.PlainSchemaTO;
 import org.apache.syncope.common.lib.to.VirSchemaTO;
 
-@XmlEnum
 public enum SchemaType {
 
     /**

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/types/StatusPatchType.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/types/StatusPatchType.java b/common/lib/src/main/java/org/apache/syncope/common/lib/types/StatusPatchType.java
index 00b88c5..628d617 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/types/StatusPatchType.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/types/StatusPatchType.java
@@ -18,9 +18,6 @@
  */
 package org.apache.syncope.common.lib.types;
 
-import javax.xml.bind.annotation.XmlEnum;
-
-@XmlEnum
 public enum StatusPatchType {
 
     ACTIVATE,

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/types/TaskType.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/types/TaskType.java b/common/lib/src/main/java/org/apache/syncope/common/lib/types/TaskType.java
index fcebb1c..679ff3c 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/types/TaskType.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/types/TaskType.java
@@ -18,9 +18,6 @@
  */
 package org.apache.syncope.common.lib.types;
 
-import javax.xml.bind.annotation.XmlEnum;
-
-@XmlEnum
 public enum TaskType {
 
     PROPAGATION,

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/types/TraceLevel.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/types/TraceLevel.java b/common/lib/src/main/java/org/apache/syncope/common/lib/types/TraceLevel.java
index e8232b8..2de1500 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/types/TraceLevel.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/types/TraceLevel.java
@@ -18,9 +18,6 @@
  */
 package org.apache.syncope.common.lib.types;
 
-import javax.xml.bind.annotation.XmlEnum;
-
-@XmlEnum
 public enum TraceLevel {
 
     /**

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/types/UnmatchingRule.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/types/UnmatchingRule.java b/common/lib/src/main/java/org/apache/syncope/common/lib/types/UnmatchingRule.java
index 3387137..86fb72c 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/types/UnmatchingRule.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/types/UnmatchingRule.java
@@ -18,12 +18,9 @@
  */
 package org.apache.syncope.common.lib.types;
 
-import javax.xml.bind.annotation.XmlEnum;
-
 /**
  * Pull/Push task un-matching rule.
  */
-@XmlEnum
 public enum UnmatchingRule {
 
     /**

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/types/WorkflowFormPropertyType.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/types/WorkflowFormPropertyType.java b/common/lib/src/main/java/org/apache/syncope/common/lib/types/WorkflowFormPropertyType.java
index ec2db4a..847283e 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/types/WorkflowFormPropertyType.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/types/WorkflowFormPropertyType.java
@@ -18,9 +18,6 @@
  */
 package org.apache.syncope.common.lib.types;
 
-import javax.xml.bind.annotation.XmlEnum;
-
-@XmlEnum
 public enum WorkflowFormPropertyType {
 
     String,

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/types/WorkflowTasks.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/types/WorkflowTasks.java b/common/lib/src/main/java/org/apache/syncope/common/lib/types/WorkflowTasks.java
index d23b1bc..92fd7d8 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/types/WorkflowTasks.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/types/WorkflowTasks.java
@@ -21,9 +21,7 @@ package org.apache.syncope.common.lib.types;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
-import javax.xml.bind.annotation.XmlRootElement;
 
-@XmlRootElement
 public class WorkflowTasks {
 
     private List<String> tasks;

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/main/java/org/apache/syncope/common/lib/types/package-info.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/types/package-info.java b/common/lib/src/main/java/org/apache/syncope/common/lib/types/package-info.java
deleted file mode 100644
index 80cb87f..0000000
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/types/package-info.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-@XmlSchema(namespace = SyncopeConstants.NAMESPACE)
-package org.apache.syncope.common.lib.types;
-
-import javax.xml.bind.annotation.XmlSchema;
-import org.apache.syncope.common.lib.SyncopeConstants;

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/test/java/org/apache/syncope/common/lib/AbstractTest.java
----------------------------------------------------------------------
diff --git a/common/lib/src/test/java/org/apache/syncope/common/lib/AbstractTest.java b/common/lib/src/test/java/org/apache/syncope/common/lib/AbstractTest.java
new file mode 100644
index 0000000..ab017c6
--- /dev/null
+++ b/common/lib/src/test/java/org/apache/syncope/common/lib/AbstractTest.java
@@ -0,0 +1,144 @@
+/*
+ * 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.lib;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+
+import com.fasterxml.jackson.core.type.TypeReference;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import java.io.IOException;
+import java.io.StringWriter;
+import java.util.UUID;
+import org.apache.syncope.common.lib.patch.PasswordPatch;
+import org.apache.syncope.common.lib.patch.StringPatchItem;
+import org.apache.syncope.common.lib.patch.StringReplacePatchItem;
+import org.apache.syncope.common.lib.patch.UserPatch;
+import org.apache.syncope.common.lib.report.UserReportletConf;
+import org.apache.syncope.common.lib.to.AttrTO;
+import org.apache.syncope.common.lib.to.BulkActionResult;
+import org.apache.syncope.common.lib.to.ConnObjectTO;
+import org.apache.syncope.common.lib.to.GroupTO;
+import org.apache.syncope.common.lib.to.PropagationStatus;
+import org.apache.syncope.common.lib.to.ProvisioningResult;
+import org.apache.syncope.common.lib.to.ReportTO;
+import org.apache.syncope.common.lib.to.WorkflowFormPropertyTO;
+import org.apache.syncope.common.lib.types.PatchOperation;
+import org.junit.Test;
+
+public abstract class AbstractTest {
+
+    protected abstract ObjectMapper getObjectMapper();
+
+    protected void map() throws IOException {
+        BulkActionResult result = new BulkActionResult();
+        result.add("1", BulkActionResult.Status.SUCCESS);
+        result.add("2", BulkActionResult.Status.SUCCESS);
+
+        ObjectMapper mapper = getObjectMapper();
+
+        StringWriter writer = new StringWriter();
+        mapper.writerWithDefaultPrettyPrinter().writeValue(writer, result);
+
+        BulkActionResult actual = mapper.readValue(writer.toString(), BulkActionResult.class);
+        assertEquals(result, actual);
+    }
+
+    protected void nativeMap() throws IOException {
+        WorkflowFormPropertyTO prop = new WorkflowFormPropertyTO();
+        prop.getEnumValues().put("key1", "value1");
+        prop.getEnumValues().put("key2", "value2");
+
+        ObjectMapper mapper = getObjectMapper();
+
+        StringWriter writer = new StringWriter();
+        mapper.writeValue(writer, prop);
+
+        WorkflowFormPropertyTO unserializedProp = mapper.readValue(writer.toString(), WorkflowFormPropertyTO.class);
+        assertEquals(prop, unserializedProp);
+    }
+
+    @Test
+    public void reportletConfImplementations() throws IOException {
+        ReportTO report = new ReportTO();
+        report.setName("testReportForCreate");
+        report.getReportletConfs().add(new UserReportletConf("first"));
+        report.getReportletConfs().add(new UserReportletConf("second"));
+
+        ObjectMapper mapper = getObjectMapper();
+
+        StringWriter writer = new StringWriter();
+        mapper.writeValue(writer, report);
+
+        ReportTO actual = mapper.readValue(writer.toString(), ReportTO.class);
+        assertEquals(report, actual);
+    }
+
+    @Test
+    public void patch() throws IOException {
+        UserPatch patch = new UserPatch();
+        patch.setKey(UUID.randomUUID().toString());
+        patch.setUsername(new StringReplacePatchItem.Builder().value("newusername").build());
+        assertNotNull(patch.getUsername().getValue());
+        patch.setPassword(new PasswordPatch.Builder().
+                onSyncope(false).
+                resource("ext1").resource("ext2").
+                value("newpassword").
+                build());
+        assertNotNull(patch.getPassword().getValue());
+        patch.getRoles().add(new StringPatchItem.Builder().operation(PatchOperation.DELETE).value("role").build());
+
+        ObjectMapper mapper = getObjectMapper();
+
+        StringWriter writer = new StringWriter();
+        mapper.writeValue(writer, patch);
+
+        UserPatch actual = mapper.readValue(writer.toString(), UserPatch.class);
+        assertEquals(patch, actual);
+    }
+
+    @Test
+    public void provisioningResult() throws IOException {
+        GroupTO group = new GroupTO();
+        group.setName(UUID.randomUUID().toString());
+        group.setRealm(SyncopeConstants.ROOT_REALM);
+        group.getVirAttrs().add(new AttrTO.Builder().schema("rvirtualdata").value("rvirtualvalue").build());
+        group.getADynMembershipConds().put("USER", "username==a*");
+
+        ProvisioningResult<GroupTO> original = new ProvisioningResult<>();
+        original.setEntity(group);
+
+        PropagationStatus status = new PropagationStatus();
+        status.setFailureReason("failed");
+        ConnObjectTO before = new ConnObjectTO();
+        before.getAttrs().add(new AttrTO.Builder().schema("key").value("value").build());
+        status.setBeforeObj(before);
+        original.getPropagationStatuses().add(status);
+
+        ObjectMapper mapper = getObjectMapper();
+
+        StringWriter writer = new StringWriter();
+        mapper.writeValue(writer, original);
+
+        ProvisioningResult<GroupTO> actual = mapper.readValue(
+                writer.toString(), new TypeReference<ProvisioningResult<GroupTO>>() {
+        });
+        assertEquals(original, actual);
+    }
+}

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/test/java/org/apache/syncope/common/lib/JAXBTest.java
----------------------------------------------------------------------
diff --git a/common/lib/src/test/java/org/apache/syncope/common/lib/JAXBTest.java b/common/lib/src/test/java/org/apache/syncope/common/lib/JAXBTest.java
deleted file mode 100644
index a14b878..0000000
--- a/common/lib/src/test/java/org/apache/syncope/common/lib/JAXBTest.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.syncope.common.lib;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.fail;
-
-import java.io.StringReader;
-import java.io.StringWriter;
-import java.util.UUID;
-import javax.xml.bind.JAXBContext;
-import javax.xml.bind.JAXBException;
-import javax.xml.bind.Marshaller;
-import javax.xml.bind.Unmarshaller;
-import org.apache.commons.lang3.exception.ExceptionUtils;
-import org.apache.syncope.common.lib.patch.UserPatch;
-import org.apache.syncope.common.lib.report.UserReportletConf;
-import org.apache.syncope.common.lib.to.AttrTO;
-import org.apache.syncope.common.lib.to.ConnObjectTO;
-import org.apache.syncope.common.lib.to.GroupTO;
-import org.apache.syncope.common.lib.to.PropagationStatus;
-import org.apache.syncope.common.lib.to.ProvisioningResult;
-import org.apache.syncope.common.lib.to.UserTO;
-import org.junit.Test;
-
-public class JAXBTest {
-
-    @Test
-    public void marshal() {
-        try {
-            JAXBContext context = JAXBContext.newInstance(UserTO.class, UserPatch.class, UserReportletConf.class);
-            Marshaller marshaller = context.createMarshaller();
-            marshaller.marshal(new UserTO(), new StringWriter());
-            marshaller.marshal(new UserPatch(), new StringWriter());
-        } catch (Exception e) {
-            fail(ExceptionUtils.getStackTrace(e));
-        }
-    }
-
-    @Test
-    public void provisioningResult() throws JAXBException {
-        JAXBContext context = JAXBContext.newInstance(ProvisioningResult.class);
-        Marshaller marshaller = context.createMarshaller();
-        Unmarshaller unmarshaller = context.createUnmarshaller();
-
-        GroupTO group = new GroupTO();
-        group.setName(UUID.randomUUID().toString());
-        group.setRealm(SyncopeConstants.ROOT_REALM);
-        group.getVirAttrs().add(new AttrTO.Builder().schema("rvirtualdata").value("rvirtualvalue").build());
-        group.getADynMembershipConds().put("USER", "username==a*");
-
-        ProvisioningResult<GroupTO> original = new ProvisioningResult<>();
-        original.setEntity(group);
-
-        PropagationStatus status = new PropagationStatus();
-        status.setFailureReason("failed");
-        status.setBeforeObj(new ConnObjectTO());
-        original.getPropagationStatuses().add(status);
-        
-        StringWriter writer = new StringWriter();
-        marshaller.marshal(original, writer);
-
-        Object actual = unmarshaller.unmarshal(new StringReader(writer.toString()));
-        assertEquals(original, actual);
-    }
-}

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/test/java/org/apache/syncope/common/lib/JSONTest.java
----------------------------------------------------------------------
diff --git a/common/lib/src/test/java/org/apache/syncope/common/lib/JSONTest.java b/common/lib/src/test/java/org/apache/syncope/common/lib/JSONTest.java
index 9c5c777..03fc045 100644
--- a/common/lib/src/test/java/org/apache/syncope/common/lib/JSONTest.java
+++ b/common/lib/src/test/java/org/apache/syncope/common/lib/JSONTest.java
@@ -18,109 +18,13 @@
  */
 package org.apache.syncope.common.lib;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-
-import com.fasterxml.jackson.core.type.TypeReference;
 import com.fasterxml.jackson.databind.ObjectMapper;
-import java.io.IOException;
-import java.io.StringWriter;
-import java.util.UUID;
-import org.apache.syncope.common.lib.patch.PasswordPatch;
-import org.apache.syncope.common.lib.patch.StringPatchItem;
-import org.apache.syncope.common.lib.patch.StringReplacePatchItem;
-import org.apache.syncope.common.lib.patch.UserPatch;
-import org.apache.syncope.common.lib.report.UserReportletConf;
-import org.apache.syncope.common.lib.to.AttrTO;
-import org.apache.syncope.common.lib.to.ConnObjectTO;
-import org.apache.syncope.common.lib.to.GroupTO;
-import org.apache.syncope.common.lib.to.PropagationStatus;
-import org.apache.syncope.common.lib.to.ProvisioningResult;
-import org.apache.syncope.common.lib.to.ReportTO;
-import org.apache.syncope.common.lib.to.WorkflowFormPropertyTO;
-import org.apache.syncope.common.lib.types.PatchOperation;
-import org.junit.Test;
-
-public class JSONTest {
-
-    @Test
-    public void map() throws IOException {
-        WorkflowFormPropertyTO prop = new WorkflowFormPropertyTO();
-        prop.getEnumValues().put("key1", "value1");
-        prop.getEnumValues().put("key2", "value2");
-
-        ObjectMapper mapper = new ObjectMapper();
-
-        StringWriter writer = new StringWriter();
-        mapper.writeValue(writer, prop);
-
-        WorkflowFormPropertyTO unserializedProp = mapper.readValue(writer.toString(), WorkflowFormPropertyTO.class);
-        assertEquals(prop, unserializedProp);
-    }
-
-    @Test
-    public void reportletConfImplementations() throws IOException {
-        ReportTO report = new ReportTO();
-        report.setName("testReportForCreate");
-        report.getReportletConfs().add(new UserReportletConf("first"));
-        report.getReportletConfs().add(new UserReportletConf("second"));
-
-        ObjectMapper mapper = new ObjectMapper();
-
-        StringWriter writer = new StringWriter();
-        mapper.writeValue(writer, report);
-
-        ReportTO actual = mapper.readValue(writer.toString(), ReportTO.class);
-        assertEquals(report, actual);
-    }
-
-    @Test
-    public void patch() throws IOException {
-        UserPatch patch = new UserPatch();
-        patch.setKey(UUID.randomUUID().toString());
-        patch.setUsername(new StringReplacePatchItem.Builder().value("newusername").build());
-        assertNotNull(patch.getUsername().getValue());
-        patch.setPassword(new PasswordPatch.Builder().
-                onSyncope(false).
-                resource("ext1").resource("ext2").
-                value("newpassword").
-                build());
-        assertNotNull(patch.getPassword().getValue());
-        patch.getRoles().add(new StringPatchItem.Builder().operation(PatchOperation.DELETE).value("role").build());
-
-        ObjectMapper mapper = new ObjectMapper();
-
-        StringWriter writer = new StringWriter();
-        mapper.writeValue(writer, patch);
-
-        UserPatch actual = mapper.readValue(writer.toString(), UserPatch.class);
-        assertEquals(patch, actual);
-    }
-
-    @Test
-    public void provisioningResult() throws IOException {
-        GroupTO group = new GroupTO();
-        group.setName(UUID.randomUUID().toString());
-        group.setRealm(SyncopeConstants.ROOT_REALM);
-        group.getVirAttrs().add(new AttrTO.Builder().schema("rvirtualdata").value("rvirtualvalue").build());
-        group.getADynMembershipConds().put("USER", "username==a*");
-
-        ProvisioningResult<GroupTO> original = new ProvisioningResult<>();
-        original.setEntity(group);
-
-        PropagationStatus status = new PropagationStatus();
-        status.setFailureReason("failed");
-        status.setBeforeObj(new ConnObjectTO());
-        original.getPropagationStatuses().add(status);
-
-        ObjectMapper mapper = new ObjectMapper();
+import org.apache.syncope.common.lib.jackson.UnwrappedObjectMapper;
 
-        StringWriter writer = new StringWriter();
-        mapper.writeValue(writer, original);
+public class JSONTest extends AbstractTest {
 
-        ProvisioningResult<GroupTO> actual = mapper.readValue(
-                writer.toString(), new TypeReference<ProvisioningResult<GroupTO>>() {
-        });
-        assertEquals(original, actual);
+    @Override
+    protected ObjectMapper getObjectMapper() {
+        return new UnwrappedObjectMapper();
     }
 }

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/common/lib/src/test/java/org/apache/syncope/common/lib/XMLTest.java
----------------------------------------------------------------------
diff --git a/common/lib/src/test/java/org/apache/syncope/common/lib/XMLTest.java b/common/lib/src/test/java/org/apache/syncope/common/lib/XMLTest.java
new file mode 100644
index 0000000..416ec93
--- /dev/null
+++ b/common/lib/src/test/java/org/apache/syncope/common/lib/XMLTest.java
@@ -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.lib;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+import org.apache.syncope.common.lib.jackson.UnwrappedXmlMapper;
+
+public class XMLTest extends AbstractTest {
+
+    @Override
+    protected ObjectMapper getObjectMapper() {
+        return new UnwrappedXmlMapper();
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/core/logic/src/main/java/org/apache/syncope/core/logic/ReportLogic.java
----------------------------------------------------------------------
diff --git a/core/logic/src/main/java/org/apache/syncope/core/logic/ReportLogic.java b/core/logic/src/main/java/org/apache/syncope/core/logic/ReportLogic.java
index 3fd8ccf..513ebe1 100644
--- a/core/logic/src/main/java/org/apache/syncope/core/logic/ReportLogic.java
+++ b/core/logic/src/main/java/org/apache/syncope/core/logic/ReportLogic.java
@@ -366,10 +366,10 @@ public class ReportLogic extends AbstractExecutableLogic<ReportTO> {
         for (ReportExec exec : reportExecDAO.findAll(report, startedBefore, startedAfter, endedBefore, endedAfter)) {
             try {
                 reportExecDAO.delete(exec);
-                result.getResults().put(String.valueOf(exec.getKey()), BulkActionResult.Status.SUCCESS);
+                result.add(exec.getKey(), BulkActionResult.Status.SUCCESS);
             } catch (Exception e) {
                 LOG.error("Error deleting execution {} of report {}", exec.getKey(), key, e);
-                result.getResults().put(String.valueOf(exec.getKey()), BulkActionResult.Status.FAILURE);
+                result.add(exec.getKey(), BulkActionResult.Status.FAILURE);
             }
         }
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/f283ebc0/core/logic/src/main/java/org/apache/syncope/core/logic/TaskLogic.java
----------------------------------------------------------------------
diff --git a/core/logic/src/main/java/org/apache/syncope/core/logic/TaskLogic.java b/core/logic/src/main/java/org/apache/syncope/core/logic/TaskLogic.java
index 8136e46..3f9fa53 100644
--- a/core/logic/src/main/java/org/apache/syncope/core/logic/TaskLogic.java
+++ b/core/logic/src/main/java/org/apache/syncope/core/logic/TaskLogic.java
@@ -343,10 +343,10 @@ public class TaskLogic extends AbstractExecutableLogic<AbstractTaskTO> {
         for (TaskExec exec : taskExecDAO.findAll(task, startedBefore, startedAfter, endedBefore, endedAfter)) {
             try {
                 taskExecDAO.delete(exec);
-                result.getResults().put(String.valueOf(exec.getKey()), BulkActionResult.Status.SUCCESS);
+                result.add(exec.getKey(), BulkActionResult.Status.SUCCESS);
             } catch (Exception e) {
                 LOG.error("Error deleting execution {} of task {}", exec.getKey(), key, e);
-                result.getResults().put(String.valueOf(exec.getKey()), BulkActionResult.Status.FAILURE);
+                result.add(exec.getKey(), BulkActionResult.Status.FAILURE);
             }
         }