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:41:22 UTC

[5/6] syncope git commit: Initial work

Initial work


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

Branch: refs/heads/2_0_NO_JAXB
Commit: 920476b8caa460fa784da8640c7162463314a527
Parents: df7613e
Author: Francesco Chicchiricc� <il...@apache.org>
Authored: Fri Jul 1 17:19:47 2016 +0200
Committer: Francesco Chicchiricc� <il...@apache.org>
Committed: Mon Jul 4 16:09:10 2016 +0200

----------------------------------------------------------------------
 client/lib/pom.xml                              |   8 +-
 .../client/lib/SyncopeClientFactoryBean.java    |  58 +++------
 common/lib/pom.xml                              |   4 +-
 .../syncope/common/lib/SyncopeConstants.java    |   2 +
 .../syncope/common/lib/info/NumbersInfo.java    |  22 ----
 .../syncope/common/lib/info/PlatformInfo.java   |  51 --------
 .../syncope/common/lib/info/SystemInfo.java     |   6 -
 .../syncope/common/lib/info/package-info.java   |   5 +-
 .../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 |   5 +-
 .../common/lib/patch/AnyObjectPatch.java        |   9 --
 .../syncope/common/lib/patch/AnyPatch.java      |  15 ---
 .../common/lib/patch/DeassociationPatch.java    |   6 -
 .../syncope/common/lib/patch/GroupPatch.java    |   8 --
 .../common/lib/patch/MembershipPatch.java       |   9 --
 .../syncope/common/lib/patch/PasswordPatch.java |   6 -
 .../lib/patch/ResourceDeassociationPatch.java   |   6 -
 .../syncope/common/lib/patch/UserPatch.java     |  12 --
 .../syncope/common/lib/patch/package-info.java  |   5 +-
 .../common/lib/policy/AbstractPolicyTO.java     |   9 --
 .../common/lib/policy/AccountPolicyTO.java      |   9 --
 .../lib/policy/DefaultAccountRuleConf.java      |  15 ---
 .../lib/policy/DefaultPasswordRuleConf.java     |  15 ---
 .../common/lib/policy/PasswordPolicyTO.java     |   6 -
 .../common/lib/policy/PullPolicySpec.java       |   3 -
 .../syncope/common/lib/policy/package-info.java |   5 +-
 .../common/lib/report/GroupReportletConf.java   |  15 ---
 .../lib/report/ReconciliationReportletConf.java |   7 -
 .../common/lib/report/StaticReportletConf.java  |   6 -
 .../common/lib/report/UserReportletConf.java    |  15 ---
 .../syncope/common/lib/report/package-info.java |   5 +-
 .../syncope/common/lib/search/package-info.java |   5 +-
 .../lib/to/AbstractProvisioningTaskTO.java      |   6 -
 .../syncope/common/lib/to/AbstractTaskTO.java   |   7 -
 .../syncope/common/lib/to/AnyObjectTO.java      |  12 --
 .../org/apache/syncope/common/lib/to/AnyTO.java |  18 ---
 .../syncope/common/lib/to/AnyTypeClassTO.java   |  15 ---
 .../apache/syncope/common/lib/to/AnyTypeTO.java |   6 -
 .../apache/syncope/common/lib/to/AttrTO.java    |   6 -
 .../syncope/common/lib/to/BulkAction.java       |   6 -
 .../syncope/common/lib/to/BulkActionResult.java |   3 -
 .../syncope/common/lib/to/ConnBundleTO.java     |   6 -
 .../common/lib/to/ConnIdObjectClassTO.java      |   6 -
 .../syncope/common/lib/to/ConnInstanceTO.java   |   9 --
 .../syncope/common/lib/to/ConnObjectTO.java     |   6 -
 .../apache/syncope/common/lib/to/ErrorTO.java   |   6 -
 .../syncope/common/lib/to/EventCategoryTO.java  |   6 -
 .../apache/syncope/common/lib/to/GroupTO.java   |   8 --
 .../syncope/common/lib/to/MappingItemTO.java    |   6 -
 .../apache/syncope/common/lib/to/MappingTO.java |   9 --
 .../syncope/common/lib/to/MembershipTO.java     |  12 --
 .../syncope/common/lib/to/NotificationTO.java   |  11 --
 .../common/lib/to/NotificationTaskTO.java       |   6 -
 .../common/lib/to/PagedConnObjectTOResult.java  |   6 -
 .../syncope/common/lib/to/PagedResult.java      |   6 -
 .../syncope/common/lib/to/ProvisionTO.java      |   9 --
 .../common/lib/to/ProvisioningResult.java       |  10 --
 .../syncope/common/lib/to/PullTaskTO.java       |   3 -
 .../syncope/common/lib/to/PushTaskTO.java       |   3 -
 .../apache/syncope/common/lib/to/RealmTO.java   |  11 --
 .../apache/syncope/common/lib/to/ReportTO.java  |   9 --
 .../syncope/common/lib/to/ResourceTO.java       |  15 ---
 .../apache/syncope/common/lib/to/RoleTO.java    |   9 --
 .../syncope/common/lib/to/TypeExtensionTO.java  |   6 -
 .../apache/syncope/common/lib/to/UserTO.java    |  18 ---
 .../common/lib/to/WorkflowFormPropertyTO.java   |   3 -
 .../syncope/common/lib/to/WorkflowFormTO.java   |   6 -
 .../syncope/common/lib/to/package-info.java     |   5 +-
 .../common/lib/types/ConnConfPropSchema.java    |   6 -
 .../common/lib/types/ConnConfProperty.java      |   6 -
 .../syncope/common/lib/types/package-info.java  |   5 +-
 .../apache/syncope/common/lib/AbstractTest.java | 129 +++++++++++++++++++
 .../org/apache/syncope/common/lib/JAXBTest.java |  82 ------------
 .../org/apache/syncope/common/lib/JSONTest.java | 105 +--------------
 .../org/apache/syncope/common/lib/XMLTest.java  |  34 +++++
 core/rest-cxf/pom.xml                           |   4 +
 .../src/main/resources/restCXFContext.xml       |  31 +----
 pom.xml                                         |  10 +-
 83 files changed, 241 insertions(+), 1115 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/syncope/blob/920476b8/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/920476b8/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..e0f12ef 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
@@ -19,21 +19,17 @@
 package org.apache.syncope.client.lib;
 
 import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.dataformat.xml.XmlMapper;
 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.rest.api.DateParamConverterProvider;
 import org.apache.syncope.common.rest.api.RESTHeaders;
 
@@ -65,9 +61,9 @@ public class SyncopeClientFactoryBean {
         }
     }
 
-    private JacksonJaxbJsonProvider jsonProvider;
+    private JacksonJsonProvider jsonProvider;
 
-    private JAXBElementProvider<?> jaxbProvider;
+    private JacksonXMLProvider xmlProvider;
 
     private RestClientExceptionMapper exceptionMapper;
 
@@ -81,30 +77,18 @@ public class SyncopeClientFactoryBean {
 
     private RestClientFactoryBean restClientFactoryBean;
 
-    protected JacksonJaxbJsonProvider defaultJsonProvider() {
+    protected JacksonJsonProvider 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);
+        return new JacksonJsonProvider(objectMapper, 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() {
+        XmlMapper xmlMapper = new XmlMapper();
+        xmlMapper.registerModule(new JodaModule());
+        xmlMapper.configure(com.fasterxml.jackson.databind.SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false);
+        return new JacksonXMLProvider(xmlMapper, JacksonXMLProvider.BASIC_ANNOTATIONS);
     }
 
     protected RestClientExceptionMapper defaultExceptionMapper() {
@@ -132,7 +116,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 +124,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/920476b8/common/lib/pom.xml
----------------------------------------------------------------------
diff --git a/common/lib/pom.xml b/common/lib/pom.xml
index 7f6106d..3666037 100644
--- a/common/lib/pom.xml
+++ b/common/lib/pom.xml
@@ -77,8 +77,8 @@ under the License.
       <scope>test</scope>
     </dependency>
     <dependency>
-      <groupId>org.apache.cxf</groupId>
-      <artifactId>cxf-rt-databinding-jaxb</artifactId>
+      <groupId>com.fasterxml.jackson.dataformat</groupId>
+      <artifactId>jackson-dataformat-xml</artifactId>
       <scope>test</scope>
     </dependency>
     <dependency>

http://git-wip-us.apache.org/repos/asf/syncope/blob/920476b8/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..f3a6b90 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
@@ -27,6 +27,8 @@ public final class SyncopeConstants {
 
     public static final String NAMESPACE = "http://syncope.apache.org/2.0";
 
+    public static final String NAMESPACE_PREFIX = "syncope";
+
     public static final String MASTER_DOMAIN = "Master";
 
     public static final String ROOT_REALM = "/";

http://git-wip-us.apache.org/repos/asf/syncope/blob/920476b8/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..063bdf6 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,16 +18,12 @@
  */
 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
@@ -63,42 +59,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 +149,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/920476b8/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..c535fe5 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,11 +18,8 @@
  */
 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;
@@ -105,9 +102,6 @@ public class PlatformInfo extends AbstractBaseBean {
         return pwdResetRequiringSecurityQuestions;
     }
 
-    @XmlElementWrapper(name = "connIdLocations")
-    @XmlElement(name = "connIdLocation")
-    @JsonProperty("connIdLocations")
     public Set<String> getConnIdLocations() {
         return connIdLocations;
     }
@@ -148,107 +142,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/920476b8/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..5d4d0e8 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,9 +18,6 @@
  */
 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;
@@ -84,9 +81,6 @@ public class SystemInfo extends AbstractBaseBean {
         this.startTime = startTime;
     }
 
-    @XmlElementWrapper(name = "load")
-    @XmlElement(name = "instant")
-    @JsonProperty("load")
     public CircularFifoQueue<LoadInstant> getLoad() {
         return load;
     }

http://git-wip-us.apache.org/repos/asf/syncope/blob/920476b8/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
index fccc6f4..32e93e4 100644
--- 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
@@ -16,8 +16,11 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-@XmlSchema(namespace = SyncopeConstants.NAMESPACE)
+@XmlSchema(namespace = SyncopeConstants.NAMESPACE,
+        xmlns = { @XmlNs(prefix = SyncopeConstants.NAMESPACE_PREFIX, namespaceURI = SyncopeConstants.NAMESPACE) }
+)
 package org.apache.syncope.common.lib.info;
 
+import javax.xml.bind.annotation.XmlNs;
 import javax.xml.bind.annotation.XmlSchema;
 import org.apache.syncope.common.lib.SyncopeConstants;

http://git-wip-us.apache.org/repos/asf/syncope/blob/920476b8/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/920476b8/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/920476b8/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/920476b8/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/920476b8/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/920476b8/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/920476b8/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
index 8eac5d5..acfb284 100644
--- 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
@@ -16,7 +16,10 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-@XmlSchema(namespace = SyncopeConstants.NAMESPACE)
+@XmlSchema(namespace = SyncopeConstants.NAMESPACE,
+        xmlns = { @XmlNs(prefix = SyncopeConstants.NAMESPACE_PREFIX, namespaceURI = SyncopeConstants.NAMESPACE) }
+)
 package org.apache.syncope.common.lib;
 
+import javax.xml.bind.annotation.XmlNs;
 import javax.xml.bind.annotation.XmlSchema;

http://git-wip-us.apache.org/repos/asf/syncope/blob/920476b8/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..97cc44b 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,11 +18,8 @@
  */
 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;
 
@@ -46,16 +43,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/920476b8/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..c372767 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,12 +19,9 @@
 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;
@@ -63,32 +60,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/920476b8/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..23777f7 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,12 +18,9 @@
  */
 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;
@@ -58,9 +55,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/920476b8/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..da4671b 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,14 +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")
@@ -48,7 +44,6 @@ public class GroupPatch extends AnyPatch {
 
     private String udynMembershipCond;
 
-    @XmlJavaTypeAdapter(XmlGenericMapAdapter.class)
     @JsonIgnore
     private final Map<String, String> adynMembershipConds = new HashMap<>();
 
@@ -102,9 +97,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/920476b8/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..0ed42c1 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,11 +18,8 @@
  */
 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;
@@ -60,17 +57,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/920476b8/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..c07c44d 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,12 +18,9 @@
  */
 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;
@@ -87,9 +84,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/920476b8/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..c583607 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,12 +18,9 @@
  */
 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;
@@ -70,9 +67,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/920476b8/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..cb451df 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,11 +18,8 @@
  */
 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;
 
@@ -88,23 +85,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/920476b8/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
index 426ac6d..5114723 100644
--- 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
@@ -16,8 +16,11 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-@XmlSchema(namespace = SyncopeConstants.NAMESPACE)
+@XmlSchema(namespace = SyncopeConstants.NAMESPACE,
+        xmlns = { @XmlNs(prefix = SyncopeConstants.NAMESPACE_PREFIX, namespaceURI = SyncopeConstants.NAMESPACE) }
+)
 package org.apache.syncope.common.lib.patch;
 
+import javax.xml.bind.annotation.XmlNs;
 import javax.xml.bind.annotation.XmlSchema;
 import org.apache.syncope.common.lib.SyncopeConstants;

http://git-wip-us.apache.org/repos/asf/syncope/blob/920476b8/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..1e4e330 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,13 +18,10 @@
  */
 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;
@@ -66,16 +63,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/920476b8/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..104c80c 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,11 +18,8 @@
  */
 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;
 
@@ -56,17 +53,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/920476b8/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..6baecc6 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,11 +18,8 @@
  */
 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;
@@ -122,30 +119,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/920476b8/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..2b8c93a 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,11 +18,8 @@
  */
 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;
@@ -317,30 +314,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/920476b8/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..9cc364e 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,11 +18,8 @@
  */
 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;
 
@@ -54,9 +51,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/920476b8/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..1c24a5a 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
@@ -23,9 +23,7 @@ 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
@@ -43,7 +41,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/920476b8/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
index bb26628..82c6761 100644
--- 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
@@ -16,8 +16,11 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-@XmlSchema(namespace = SyncopeConstants.NAMESPACE)
+@XmlSchema(namespace = SyncopeConstants.NAMESPACE,
+        xmlns = { @XmlNs(prefix = SyncopeConstants.NAMESPACE_PREFIX, namespaceURI = SyncopeConstants.NAMESPACE) }
+)
 package org.apache.syncope.common.lib.policy;
 
+import javax.xml.bind.annotation.XmlNs;
 import javax.xml.bind.annotation.XmlSchema;
 import org.apache.syncope.common.lib.SyncopeConstants;

http://git-wip-us.apache.org/repos/asf/syncope/blob/920476b8/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..d863c45 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,11 +18,8 @@
  */
 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;
@@ -70,23 +67,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 +87,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/920476b8/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..192d339 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,12 +18,8 @@
  */
 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;
@@ -94,9 +90,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/920476b8/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..82208f7 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,12 +18,9 @@
  */
 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;
@@ -74,9 +71,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/920476b8/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..727f972 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,11 +18,8 @@
  */
 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;
@@ -69,23 +66,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 +96,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/920476b8/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
index bc452c1..32b0dcc 100644
--- 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
@@ -16,8 +16,11 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-@XmlSchema(namespace = SyncopeConstants.NAMESPACE)
+@XmlSchema(namespace = SyncopeConstants.NAMESPACE,
+        xmlns = { @XmlNs(prefix = SyncopeConstants.NAMESPACE_PREFIX, namespaceURI = SyncopeConstants.NAMESPACE) }
+)
 package org.apache.syncope.common.lib.report;
 
+import javax.xml.bind.annotation.XmlNs;
 import javax.xml.bind.annotation.XmlSchema;
 import org.apache.syncope.common.lib.SyncopeConstants;

http://git-wip-us.apache.org/repos/asf/syncope/blob/920476b8/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
index ff6b5e7..64ca1e7 100644
--- 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
@@ -16,8 +16,11 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-@XmlSchema(namespace = SyncopeConstants.NAMESPACE)
+@XmlSchema(namespace = SyncopeConstants.NAMESPACE,
+        xmlns = { @XmlNs(prefix = SyncopeConstants.NAMESPACE_PREFIX, namespaceURI = SyncopeConstants.NAMESPACE) }
+)
 package org.apache.syncope.common.lib.search;
 
+import javax.xml.bind.annotation.XmlNs;
 import javax.xml.bind.annotation.XmlSchema;
 import org.apache.syncope.common.lib.SyncopeConstants;

http://git-wip-us.apache.org/repos/asf/syncope/blob/920476b8/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..32af2ba 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,11 +18,8 @@
  */
 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;
@@ -92,9 +89,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/920476b8/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..c5c30d9 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,14 +18,10 @@
  */
 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;
@@ -63,9 +59,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/920476b8/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..a02cc1d 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,14 +19,11 @@
 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;
@@ -53,9 +50,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 +67,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 +84,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/920476b8/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..ec8fec6 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,8 +27,6 @@ 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;
 
@@ -92,16 +89,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 +109,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 +125,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 +141,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/920476b8/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..2c941e7 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,12 +18,9 @@
  */
 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;
@@ -55,30 +52,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/920476b8/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..1245cab 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,12 +18,9 @@
  */
 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;
@@ -60,9 +57,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/920476b8/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..9df13cd 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,13 +19,10 @@
 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;
@@ -104,9 +101,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/920476b8/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..670fc30 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,11 +18,8 @@
  */
 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;
@@ -59,9 +56,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/920476b8/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..611424c 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
@@ -31,9 +31,7 @@ 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
@@ -56,7 +54,6 @@ public class BulkActionResult extends AbstractBaseBean {
 
     }
 
-    @XmlJavaTypeAdapter(XmlGenericMapAdapter.class)
     @JsonIgnore
     private final Map<String, Status> results = new HashMap<>();
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/920476b8/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..be7ea15 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,11 +18,8 @@
  */
 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;
@@ -78,9 +75,6 @@ public class ConnBundleTO extends AbstractBaseBean {
         this.connectorName = connectorName;
     }
 
-    @XmlElementWrapper(name = "properties")
-    @XmlElement(name = "connConfPropSchema")
-    @JsonProperty("properties")
     public List<ConnConfPropSchema> getProperties() {
         return properties;
     }