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 2015/12/03 08:45:42 UTC

[1/3] syncope git commit: [SYNCOPE-738] Temporary workaround: recognize if running in JBoss / Wildfy and switch to old DOM parser API

Repository: syncope
Updated Branches:
  refs/heads/master 39950ccfc -> 18179de19


[SYNCOPE-738] Temporary workaround: recognize if running in JBoss / Wildfy and switch to old DOM parser API


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

Branch: refs/heads/master
Commit: d6c211774586de3f66e6ec3087c8b2f98e0e9a31
Parents: 39950cc
Author: Francesco Chicchiriccò <il...@apache.org>
Authored: Wed Dec 2 17:17:10 2015 +0100
Committer: Francesco Chicchiriccò <il...@apache.org>
Committed: Wed Dec 2 17:21:03 2015 +0100

----------------------------------------------------------------------
 .../core/logic/init/CamelRouteLoader.java       | 73 +++++++++++++++++---
 1 file changed, 65 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/syncope/blob/d6c21177/ext/camel/logic/src/main/java/org/apache/syncope/core/logic/init/CamelRouteLoader.java
----------------------------------------------------------------------
diff --git a/ext/camel/logic/src/main/java/org/apache/syncope/core/logic/init/CamelRouteLoader.java b/ext/camel/logic/src/main/java/org/apache/syncope/core/logic/init/CamelRouteLoader.java
index 05cf79f..6228346 100644
--- a/ext/camel/logic/src/main/java/org/apache/syncope/core/logic/init/CamelRouteLoader.java
+++ b/ext/camel/logic/src/main/java/org/apache/syncope/core/logic/init/CamelRouteLoader.java
@@ -21,6 +21,15 @@ package org.apache.syncope.core.logic.init;
 import java.io.StringWriter;
 import java.util.Map;
 import javax.sql.DataSource;
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.transform.OutputKeys;
+import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerException;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.transform.stream.StreamResult;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.syncope.common.lib.types.AnyTypeKind;
 import org.apache.syncope.common.lib.types.CamelEntitlement;
 import org.apache.syncope.core.misc.EntitlementsHolder;
@@ -34,6 +43,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.core.io.Resource;
 import org.springframework.jdbc.core.JdbcTemplate;
 import org.springframework.stereotype.Component;
+import org.w3c.dom.Document;
 import org.w3c.dom.Element;
 import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
@@ -49,6 +59,21 @@ public class CamelRouteLoader implements SyncopeLoader {
 
     private static final Logger LOG = LoggerFactory.getLogger(CamelRouteLoader.class);
 
+    private static final boolean IS_JBOSS;
+
+    static {
+        IS_JBOSS = isJBoss();
+    }
+
+    private static boolean isJBoss() {
+        try {
+            Class.forName("org.jboss.vfs.VirtualFile");
+            return true;
+        } catch (Throwable ex) {
+            return false;
+        }
+    }
+
     @javax.annotation.Resource(name = "userRoutes")
     private ResourceWithFallbackLoader userRoutesLoader;
 
@@ -94,6 +119,22 @@ public class CamelRouteLoader implements SyncopeLoader {
         return writer.toString();
     }
 
+    private String nodeToString(final Node content, final TransformerFactory tf) {
+        String output = StringUtils.EMPTY;
+
+        try {
+            Transformer transformer = tf.newTransformer();
+            transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes");
+            StringWriter writer = new StringWriter();
+            transformer.transform(new DOMSource(content), new StreamResult(writer));
+            output = writer.getBuffer().toString();
+        } catch (TransformerException e) {
+            LOG.debug("While serializing route node", e);
+        }
+
+        return output;
+    }
+
     private void loadRoutes(
             final String domain, final DataSource dataSource, final Resource resource, final AnyTypeKind anyTypeKind) {
 
@@ -105,17 +146,33 @@ public class CamelRouteLoader implements SyncopeLoader {
 
         if (shouldLoadRoutes) {
             try {
-                DOMImplementationRegistry reg = DOMImplementationRegistry.newInstance();
-                DOMImplementationLS domImpl = (DOMImplementationLS) reg.getDOMImplementation("LS");
-                LSInput lsinput = domImpl.createLSInput();
-                lsinput.setByteStream(resource.getInputStream());
-
-                LSParser parser = domImpl.createLSParser(DOMImplementationLS.MODE_SYNCHRONOUS, null);
+                TransformerFactory tf = null;
+                DOMImplementationLS domImpl = null;
+                NodeList routeNodes;
+                // When https://issues.jboss.org/browse/WFLY-4416 is resolved, this is not needed any more
+                if (IS_JBOSS) {
+                    tf = TransformerFactory.newInstance();
+                    DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
+                    DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
+                    Document doc = dBuilder.parse(resource.getInputStream());
+
+                    routeNodes = doc.getDocumentElement().getElementsByTagName("route");
+                } else {
+                    DOMImplementationRegistry reg = DOMImplementationRegistry.newInstance();
+                    domImpl = (DOMImplementationLS) reg.getDOMImplementation("LS");
+                    LSInput lsinput = domImpl.createLSInput();
+                    lsinput.setByteStream(resource.getInputStream());
+
+                    LSParser parser = domImpl.createLSParser(DOMImplementationLS.MODE_SYNCHRONOUS, null);
+
+                    routeNodes = parser.parse(lsinput).getDocumentElement().getElementsByTagName("route");
+                }
 
-                NodeList routeNodes = parser.parse(lsinput).getDocumentElement().getElementsByTagName("route");
                 for (int s = 0; s < routeNodes.getLength(); s++) {
                     Node routeElement = routeNodes.item(s);
-                    String routeContent = nodeToString(routeNodes.item(s), domImpl);
+                    String routeContent = IS_JBOSS
+                            ? nodeToString(routeNodes.item(s), tf)
+                            : nodeToString(routeNodes.item(s), domImpl);
                     String routeId = ((Element) routeElement).getAttribute("id");
 
                     jdbcTemplate.update(


[3/3] syncope git commit: [SYNCOPE-738] Adding some logging

Posted by il...@apache.org.
[SYNCOPE-738] Adding some logging


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

Branch: refs/heads/master
Commit: 18179de19556f4d2235a5264fe40a45dee149f3c
Parents: 6125dc3
Author: Francesco Chicchiriccò <il...@apache.org>
Authored: Thu Dec 3 08:45:33 2015 +0100
Committer: Francesco Chicchiriccò <il...@apache.org>
Committed: Thu Dec 3 08:45:33 2015 +0100

----------------------------------------------------------------------
 .../java/org/apache/syncope/core/logic/init/CamelRouteLoader.java  | 2 ++
 1 file changed, 2 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/syncope/blob/18179de1/ext/camel/logic/src/main/java/org/apache/syncope/core/logic/init/CamelRouteLoader.java
----------------------------------------------------------------------
diff --git a/ext/camel/logic/src/main/java/org/apache/syncope/core/logic/init/CamelRouteLoader.java b/ext/camel/logic/src/main/java/org/apache/syncope/core/logic/init/CamelRouteLoader.java
index 6228346..e3401ca 100644
--- a/ext/camel/logic/src/main/java/org/apache/syncope/core/logic/init/CamelRouteLoader.java
+++ b/ext/camel/logic/src/main/java/org/apache/syncope/core/logic/init/CamelRouteLoader.java
@@ -68,8 +68,10 @@ public class CamelRouteLoader implements SyncopeLoader {
     private static boolean isJBoss() {
         try {
             Class.forName("org.jboss.vfs.VirtualFile");
+            LOG.debug("Running in JBoss AS / Wildfly, disabling {}", DOMImplementationRegistry.class.getName());
             return true;
         } catch (Throwable ex) {
+            LOG.debug("Not running in JBoss AS / Wildfly, enabling {}", DOMImplementationRegistry.class.getName());
             return false;
         }
     }


[2/3] syncope git commit: Introducing web.xml for easier Spring context overrides + dynamically including REST API javadocs from extensions

Posted by il...@apache.org.
Introducing web.xml for easier Spring context overrides + dynamically including REST API javadocs from extensions


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

Branch: refs/heads/master
Commit: 6125dc3a7de2a8093b151ccf86e0003c24df20e4
Parents: d6c2117
Author: Francesco Chicchiriccò <il...@apache.org>
Authored: Wed Dec 2 17:29:26 2015 +0100
Committer: Francesco Chicchiriccò <il...@apache.org>
Committed: Wed Dec 2 17:29:26 2015 +0100

----------------------------------------------------------------------
 .../archetype-resources/console/pom.xml         |   9 --
 .../resources/archetype-resources/core/pom.xml  |   9 --
 .../archetype-resources/enduser/pom.xml         |  11 --
 .../main/resources/META-INF/web-fragment.xml    |  12 --
 .../main/resources/META-INF/web-fragment.xml    |  13 --
 core/rest-cxf/pom.xml                           |   9 --
 .../syncope/core/rest/cxf/JavaDocUtils.java     |  53 +++++++
 .../syncope/core/rest/cxf/Swagger2Feature.java  |  40 +++++
 .../syncope/core/rest/cxf/WadlGenerator.java    |  47 ++++++
 .../main/resources/META-INF/web-fragment.xml    |  14 --
 .../src/main/resources/restCXFContext.xml       |   7 +-
 deb/console/pom.xml                             |   2 +-
 deb/core/pom.xml                                |   3 +-
 deb/enduser/pom.xml                             |   2 +-
 ext/camel/rest-api/pom.xml                      |  15 ++
 ext/camel/rest-cxf/pom.xml                      |   6 +
 ext/swagger-ui/pom.xml                          |   7 +
 fit/console-reference/pom.xml                   |   9 --
 .../src/main/webapp/WEB-INF/web.xml             |  38 +++++
 fit/core-reference/pom.xml                      |  17 +-
 .../src/main/resources/jboss/restCXFContext.xml | 159 +++++++++++++++++++
 .../src/main/resources/jboss/web.xml            |  44 +++++
 .../src/main/webapp/WEB-INF/web.xml             |  43 +++++
 fit/enduser-reference/pom.xml                   |   9 --
 .../src/main/webapp/WEB-INF/web.xml             |  38 +++++
 pom.xml                                         |  18 +--
 26 files changed, 511 insertions(+), 123 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/syncope/blob/6125dc3a/archetype/src/main/resources/archetype-resources/console/pom.xml
----------------------------------------------------------------------
diff --git a/archetype/src/main/resources/archetype-resources/console/pom.xml b/archetype/src/main/resources/archetype-resources/console/pom.xml
index 53bd556..228e8b1 100644
--- a/archetype/src/main/resources/archetype-resources/console/pom.xml
+++ b/archetype/src/main/resources/archetype-resources/console/pom.xml
@@ -162,15 +162,6 @@ ORYX.Editor.createByUrl = function(modelUrl){"/>
           </execution>
         </executions>
       </plugin>
-      
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-war-plugin</artifactId>
-        <inherited>true</inherited>
-        <configuration>
-          <failOnMissingWebXml>false</failOnMissingWebXml>
-        </configuration>
-      </plugin>
     </plugins>
 
     <resources>

http://git-wip-us.apache.org/repos/asf/syncope/blob/6125dc3a/archetype/src/main/resources/archetype-resources/core/pom.xml
----------------------------------------------------------------------
diff --git a/archetype/src/main/resources/archetype-resources/core/pom.xml b/archetype/src/main/resources/archetype-resources/core/pom.xml
index d45c223..e2303cf 100644
--- a/archetype/src/main/resources/archetype-resources/core/pom.xml
+++ b/archetype/src/main/resources/archetype-resources/core/pom.xml
@@ -120,15 +120,6 @@ under the License.
     <plugins>
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-war-plugin</artifactId>
-        <inherited>true</inherited>
-        <configuration>
-          <failOnMissingWebXml>false</failOnMissingWebXml>
-        </configuration>
-      </plugin>
-                
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-dependency-plugin</artifactId>
         <inherited>true</inherited>
         <executions>

http://git-wip-us.apache.org/repos/asf/syncope/blob/6125dc3a/archetype/src/main/resources/archetype-resources/enduser/pom.xml
----------------------------------------------------------------------
diff --git a/archetype/src/main/resources/archetype-resources/enduser/pom.xml b/archetype/src/main/resources/archetype-resources/enduser/pom.xml
index 8a079a9..9ded846 100644
--- a/archetype/src/main/resources/archetype-resources/enduser/pom.xml
+++ b/archetype/src/main/resources/archetype-resources/enduser/pom.xml
@@ -92,17 +92,6 @@ under the License.
   <build>
     <finalName>syncope-enduser</finalName>
 
-    <plugins>      
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-war-plugin</artifactId>
-        <inherited>true</inherited>
-        <configuration>
-          <failOnMissingWebXml>false</failOnMissingWebXml>
-        </configuration>
-      </plugin>
-    </plugins>
-
     <resources>
       <resource>
         <directory>src/main/resources</directory>

http://git-wip-us.apache.org/repos/asf/syncope/blob/6125dc3a/client/console/src/main/resources/META-INF/web-fragment.xml
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/META-INF/web-fragment.xml b/client/console/src/main/resources/META-INF/web-fragment.xml
index 7ad9566..092331a 100644
--- a/client/console/src/main/resources/META-INF/web-fragment.xml
+++ b/client/console/src/main/resources/META-INF/web-fragment.xml
@@ -22,13 +22,6 @@ under the License.
               xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee 
                                   http://xmlns.jcp.org/xml/ns/javaee/web-fragment_3_1.xsd"
               id="${pom.artifactId}" version="3.1">
-  
-  <display-name>Apache Syncope ${syncope.version} Console</display-name>
-
-  <context-param>
-    <param-name>configuration</param-name>
-    <param-value>deployment</param-value>
-  </context-param>
     
   <filter>
     <filter-name>SyncopeConsole</filter-name>
@@ -49,10 +42,5 @@ under the License.
     <dispatcher>REQUEST</dispatcher>
     <dispatcher>INCLUDE</dispatcher>
   </filter-mapping>
-    
-  <!-- SESSION TIMEOUT (MINUTES)-->
-  <session-config>
-    <session-timeout>30</session-timeout>
-  </session-config>
 
 </web-fragment>

http://git-wip-us.apache.org/repos/asf/syncope/blob/6125dc3a/client/enduser/src/main/resources/META-INF/web-fragment.xml
----------------------------------------------------------------------
diff --git a/client/enduser/src/main/resources/META-INF/web-fragment.xml b/client/enduser/src/main/resources/META-INF/web-fragment.xml
index 786b59c..d33e0f6 100644
--- a/client/enduser/src/main/resources/META-INF/web-fragment.xml
+++ b/client/enduser/src/main/resources/META-INF/web-fragment.xml
@@ -23,14 +23,6 @@ under the License.
                                   http://xmlns.jcp.org/xml/ns/javaee/web-fragment_3_1.xsd"
               id="${pom.artifactId}" version="3.1">
   
-  <!--causes problem if deployed with other fragments-->
-  <display-name>Apache Syncope ${syncope.version} Enduser</display-name>
-  
-  <context-param>
-    <param-name>configuration</param-name>
-    <param-value>deployment</param-value>
-  </context-param>
-  
   <filter>
     <filter-name>SyncopeEnduser</filter-name>
     <filter-class>org.apache.wicket.protocol.http.WicketFilter</filter-class>
@@ -51,9 +43,4 @@ under the License.
     <dispatcher>INCLUDE</dispatcher>
   </filter-mapping>
   
-  <!--SESSION TIMEOUT (MINUTES)-->
-  <session-config>
-    <session-timeout>30</session-timeout>
-  </session-config>
-
 </web-fragment>

http://git-wip-us.apache.org/repos/asf/syncope/blob/6125dc3a/core/rest-cxf/pom.xml
----------------------------------------------------------------------
diff --git a/core/rest-cxf/pom.xml b/core/rest-cxf/pom.xml
index 5985ffc..2a1fcad 100644
--- a/core/rest-cxf/pom.xml
+++ b/core/rest-cxf/pom.xml
@@ -107,15 +107,6 @@ under the License.
     </dependency>
     
     <dependency>
-      <groupId>io.swagger</groupId>
-      <artifactId>swagger-jaxrs</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>io.swagger</groupId>
-      <artifactId>swagger-hibernate-validations</artifactId>
-    </dependency>
-
-    <dependency>
       <groupId>org.apache.syncope.core</groupId>
       <artifactId>syncope-core-logic</artifactId>
       <version>${project.version}</version>

http://git-wip-us.apache.org/repos/asf/syncope/blob/6125dc3a/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/JavaDocUtils.java
----------------------------------------------------------------------
diff --git a/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/JavaDocUtils.java b/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/JavaDocUtils.java
new file mode 100644
index 0000000..f4ab5c5
--- /dev/null
+++ b/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/JavaDocUtils.java
@@ -0,0 +1,53 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.syncope.core.rest.cxf;
+
+import java.net.URL;
+import java.net.URLClassLoader;
+import java.util.ArrayList;
+import java.util.List;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.util.ClassUtils;
+
+public final class JavaDocUtils {
+
+    public static URL[] getJavaDocURLs() {
+        URL[] result = null;
+
+        ClassLoader classLoader = ClassUtils.getDefaultClassLoader();
+        if (classLoader instanceof URLClassLoader) {
+            List<URL> javaDocURLs = new ArrayList<>();
+            for (URL url : ((URLClassLoader) classLoader).getURLs()) {
+                String filename = StringUtils.substringAfterLast(url.toExternalForm(), "/");
+                if (filename.startsWith("syncope-") && filename.endsWith("-javadoc.jar")) {
+                    javaDocURLs.add(url);
+                }
+            }
+            if (!javaDocURLs.isEmpty()) {
+                result = javaDocURLs.toArray(new URL[javaDocURLs.size()]);
+            }
+        }
+
+        return result;
+    }
+
+    private JavaDocUtils() {
+        // private constructor for static utility class
+    }
+}

http://git-wip-us.apache.org/repos/asf/syncope/blob/6125dc3a/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/Swagger2Feature.java
----------------------------------------------------------------------
diff --git a/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/Swagger2Feature.java b/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/Swagger2Feature.java
new file mode 100644
index 0000000..fa7ce9a
--- /dev/null
+++ b/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/Swagger2Feature.java
@@ -0,0 +1,40 @@
+/*
+ * 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 java.net.URL;
+import org.apache.cxf.Bus;
+import org.apache.cxf.endpoint.Server;
+
+/**
+ * Automatically loads available javadocs from class loader (when {@link java.net.URLClassLoader}).
+ */
+public class Swagger2Feature extends org.apache.cxf.jaxrs.swagger.Swagger2Feature {
+
+    @Override
+    public void initialize(final Server server, final Bus bus) {
+        URL[] javaDocURLs = JavaDocUtils.getJavaDocURLs();
+        if (javaDocURLs != null) {
+            super.setJavaDocURLs(javaDocURLs);
+        }
+
+        super.initialize(server, bus);
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/syncope/blob/6125dc3a/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/WadlGenerator.java
----------------------------------------------------------------------
diff --git a/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/WadlGenerator.java b/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/WadlGenerator.java
new file mode 100644
index 0000000..444e58e
--- /dev/null
+++ b/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/WadlGenerator.java
@@ -0,0 +1,47 @@
+/*
+ * 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 java.net.URL;
+import javax.ws.rs.container.ContainerRequestContext;
+
+/**
+ * Automatically loads available javadocs from class loader (when {@link java.net.URLClassLoader}).
+ */
+public class WadlGenerator extends org.apache.cxf.jaxrs.model.wadl.WadlGenerator {
+
+    private boolean inited = false;
+
+    @Override
+    public void filter(final ContainerRequestContext context) {
+        synchronized (this) {
+            if (!inited) {
+                URL[] javaDocURLs = JavaDocUtils.getJavaDocURLs();
+                if (javaDocURLs != null) {
+                    super.setJavaDocURLs(javaDocURLs);
+                }
+
+                inited = true;
+            }
+        }
+
+        super.filter(context);
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/syncope/blob/6125dc3a/core/rest-cxf/src/main/resources/META-INF/web-fragment.xml
----------------------------------------------------------------------
diff --git a/core/rest-cxf/src/main/resources/META-INF/web-fragment.xml b/core/rest-cxf/src/main/resources/META-INF/web-fragment.xml
index ee51488..405139a 100644
--- a/core/rest-cxf/src/main/resources/META-INF/web-fragment.xml
+++ b/core/rest-cxf/src/main/resources/META-INF/web-fragment.xml
@@ -23,16 +23,6 @@ under the License.
                                   http://xmlns.jcp.org/xml/ns/javaee/web-fragment_3_1.xsd"
               id="${pom.artifactId}" version="3.1">
   
-  <display-name>Apache Syncope ${syncope.version} Core</display-name>
-
-  <context-param>
-    <param-name>contextConfigLocation</param-name>
-    <param-value>classpath*:/*Context.xml</param-value>
-  </context-param>
-
-  <listener>
-    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
-  </listener>
   <listener>
     <listener-class>org.apache.syncope.core.rest.cxf.ThreadLocalCleanupListener</listener-class>
   </listener>
@@ -85,8 +75,4 @@ under the License.
     <url-pattern>/*</url-pattern>
   </filter-mapping>
 
-  <login-config>
-    <auth-method>CLIENT-CERT</auth-method>
-  </login-config>
-
 </web-fragment>

http://git-wip-us.apache.org/repos/asf/syncope/blob/6125dc3a/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 cdfea0d..f9455c7 100644
--- a/core/rest-cxf/src/main/resources/restCXFContext.xml
+++ b/core/rest-cxf/src/main/resources/restCXFContext.xml
@@ -87,7 +87,7 @@ under the License.
   <bean id="addDomainFilter" class="org.apache.syncope.core.rest.cxf.AddDomainFilter"/>
   <bean id="addETagFilter" class="org.apache.syncope.core.rest.cxf.AddETagFilter"/>
   
-  <bean id="wadlGenerator" class="org.apache.cxf.jaxrs.model.wadl.WadlGenerator">
+  <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"/>
@@ -95,10 +95,9 @@ under the License.
     <property name="addResourceAndMethodIds" value="true"/>
     <property name="ignoreMessageWriters" value="true"/>
     <property name="usePathParamsToCompareOperations" value="false"/>
-    <property name="javaDocPath" value="/WEB-INF/lib/syncope-common-rest-api-${syncope.version}-javadoc.jar"/>
   </bean>
   
-  <bean id="swagger2Feature" class="org.apache.cxf.jaxrs.swagger.Swagger2Feature">
+  <bean id="swagger2Feature" class="org.apache.syncope.core.rest.cxf.Swagger2Feature">
     <property name="title" value="Apache Syncope"/>
     <property name="version" value="${syncope.version}"/>
     <property name="description" value="Apache Syncope ${syncope.version}"/>    
@@ -106,10 +105,10 @@ under the License.
     
     <property name="resourcePackage" value="org.apache.syncope.common.rest.api.service"/>
     <property name="scanAllResources" value="true"/>
+    <property name="activateOnlyIfJaxrsSupported" value="true"/>
     
     <property name="dynamicBasePath" value="true"/>
     <property name="replaceTags" value="true"/>
-    <property name="javaDocPath" value="/WEB-INF/lib/syncope-common-rest-api-${syncope.version}-javadoc.jar"/>
   </bean>
 
   <jaxrs:server id="restContainer" address="/"

http://git-wip-us.apache.org/repos/asf/syncope/blob/6125dc3a/deb/console/pom.xml
----------------------------------------------------------------------
diff --git a/deb/console/pom.xml b/deb/console/pom.xml
index 9008394..bca1731 100644
--- a/deb/console/pom.xml
+++ b/deb/console/pom.xml
@@ -154,7 +154,7 @@ under the License.
         <inherited>false</inherited>
         <extensions>true</extensions>
         <configuration>
-          <failOnMissingWebXml>false</failOnMissingWebXml>
+          <webXml>${basedir}/../../fit/console-reference/src/main/webapp/WEB-INF/web.xml</webXml>
           <webResources>
             <resource>
               <directory>${basedir}</directory>

http://git-wip-us.apache.org/repos/asf/syncope/blob/6125dc3a/deb/core/pom.xml
----------------------------------------------------------------------
diff --git a/deb/core/pom.xml b/deb/core/pom.xml
index e08f3d8..137a81a 100644
--- a/deb/core/pom.xml
+++ b/deb/core/pom.xml
@@ -151,6 +151,7 @@ under the License.
           <include>provisioning.properties</include>
           <include>userRoutes.xml</include>
           <include>groupRoutes.xml</include>
+          <include>anyObjectRoutes.xml</include>
         </includes>
         <targetPath>${project.build.directory}/etc</targetPath>
         <filtering>true</filtering>
@@ -248,7 +249,7 @@ under the License.
         <inherited>false</inherited>
         <extensions>true</extensions>
         <configuration>
-          <failOnMissingWebXml>false</failOnMissingWebXml>
+          <webXml>${basedir}/../../fit/core-reference/src/main/webapp/WEB-INF/web.xml</webXml>
           <webResources>
             <resource>
               <directory>${basedir}</directory>

http://git-wip-us.apache.org/repos/asf/syncope/blob/6125dc3a/deb/enduser/pom.xml
----------------------------------------------------------------------
diff --git a/deb/enduser/pom.xml b/deb/enduser/pom.xml
index ef0f631..982e9c9 100644
--- a/deb/enduser/pom.xml
+++ b/deb/enduser/pom.xml
@@ -150,7 +150,7 @@ under the License.
         <inherited>false</inherited>
         <extensions>true</extensions>
         <configuration>
-          <failOnMissingWebXml>false</failOnMissingWebXml>
+          <webXml>${basedir}/../../fit/enduser-reference/src/main/webapp/WEB-INF/web.xml</webXml>
           <webResources>
             <resource>
               <directory>${basedir}</directory>

http://git-wip-us.apache.org/repos/asf/syncope/blob/6125dc3a/ext/camel/rest-api/pom.xml
----------------------------------------------------------------------
diff --git a/ext/camel/rest-api/pom.xml b/ext/camel/rest-api/pom.xml
index d1d72fb..69a7373 100644
--- a/ext/camel/rest-api/pom.xml
+++ b/ext/camel/rest-api/pom.xml
@@ -52,6 +52,21 @@ under the License.
 
   <build>
     <plugins>
+      <!-- Generating javadoc JAR artifact for usage with CXF's WADL generator (for core) -->
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-javadoc-plugin</artifactId>
+        <inherited>true</inherited>
+        <executions>
+          <execution>
+            <id>attach-javadocs</id>
+            <goals>
+              <goal>jar</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-checkstyle-plugin</artifactId>

http://git-wip-us.apache.org/repos/asf/syncope/blob/6125dc3a/ext/camel/rest-cxf/pom.xml
----------------------------------------------------------------------
diff --git a/ext/camel/rest-cxf/pom.xml b/ext/camel/rest-cxf/pom.xml
index bf17bb6..7a8f355 100644
--- a/ext/camel/rest-cxf/pom.xml
+++ b/ext/camel/rest-cxf/pom.xml
@@ -50,6 +50,12 @@ under the License.
     </dependency>
     <dependency>
       <groupId>org.apache.syncope.ext.camel</groupId>
+      <artifactId>syncope-ext-camel-rest-api</artifactId>
+      <version>${project.version}</version>
+      <classifier>javadoc</classifier>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.syncope.ext.camel</groupId>
       <artifactId>syncope-ext-camel-logic</artifactId>
       <version>${project.version}</version>
     </dependency>

http://git-wip-us.apache.org/repos/asf/syncope/blob/6125dc3a/ext/swagger-ui/pom.xml
----------------------------------------------------------------------
diff --git a/ext/swagger-ui/pom.xml b/ext/swagger-ui/pom.xml
index a625099..b9f1a72 100644
--- a/ext/swagger-ui/pom.xml
+++ b/ext/swagger-ui/pom.xml
@@ -37,6 +37,13 @@ under the License.
     <rootpom.basedir>${basedir}/../..</rootpom.basedir>
   </properties>
 
+  <dependencies>
+    <dependency>
+      <groupId>io.swagger</groupId>
+      <artifactId>swagger-jaxrs</artifactId>
+    </dependency>
+  </dependencies>
+
   <build>
     <plugins>
       <plugin>

http://git-wip-us.apache.org/repos/asf/syncope/blob/6125dc3a/fit/console-reference/pom.xml
----------------------------------------------------------------------
diff --git a/fit/console-reference/pom.xml b/fit/console-reference/pom.xml
index e6b2a2b..b77ccea 100644
--- a/fit/console-reference/pom.xml
+++ b/fit/console-reference/pom.xml
@@ -201,15 +201,6 @@ ORYX.Editor.createByUrl = function(modelUrl){"/>
       </plugin>
       
       <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-war-plugin</artifactId>
-        <inherited>true</inherited>
-        <configuration>
-          <failOnMissingWebXml>false</failOnMissingWebXml>
-        </configuration>
-      </plugin>
-
-      <plugin>
         <groupId>org.codehaus.cargo</groupId>
         <artifactId>cargo-maven2-plugin</artifactId>
         <inherited>true</inherited>

http://git-wip-us.apache.org/repos/asf/syncope/blob/6125dc3a/fit/console-reference/src/main/webapp/WEB-INF/web.xml
----------------------------------------------------------------------
diff --git a/fit/console-reference/src/main/webapp/WEB-INF/web.xml b/fit/console-reference/src/main/webapp/WEB-INF/web.xml
new file mode 100644
index 0000000..c9508a8
--- /dev/null
+++ b/fit/console-reference/src/main/webapp/WEB-INF/web.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+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.
+-->
+<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee 
+                             http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
+         version="3.1">
+
+  <display-name>Apache Syncope ${syncope.version} Console</display-name>
+
+  <context-param>
+    <param-name>configuration</param-name>
+    <param-value>deployment</param-value>
+  </context-param>
+
+  <!-- SESSION TIMEOUT (MINUTES)-->
+  <session-config>
+    <session-timeout>30</session-timeout>
+  </session-config>
+
+</web-app>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/syncope/blob/6125dc3a/fit/core-reference/pom.xml
----------------------------------------------------------------------
diff --git a/fit/core-reference/pom.xml b/fit/core-reference/pom.xml
index e686bdc..7ba8c4a 100644
--- a/fit/core-reference/pom.xml
+++ b/fit/core-reference/pom.xml
@@ -159,15 +159,6 @@ under the License.
     <plugins>
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-war-plugin</artifactId>
-        <inherited>true</inherited>
-        <configuration>
-          <failOnMissingWebXml>false</failOnMissingWebXml>
-        </configuration>
-      </plugin>
-                
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-dependency-plugin</artifactId>
         <inherited>true</inherited>
         <executions>
@@ -605,6 +596,7 @@ under the License.
             <groupId>org.apache.maven.plugins</groupId>
             <artifactId>maven-war-plugin</artifactId>
             <configuration>
+              <webXml>${basedir}/src/main/resources/jboss/web.xml</webXml>
               <packagingExcludes>WEB-INF/lib/syncope-*-persistence-jpa-${project.version}.jar</packagingExcludes>
             </configuration>
           </plugin>
@@ -672,7 +664,7 @@ under the License.
               <container>
                 <containerId>wildfly9x</containerId>
                 <zipUrlInstaller>
-                  <url>http://download.jboss.org/wildfly/9.0.1.Final/wildfly-9.0.1.Final.zip</url>
+                  <url>http://download.jboss.org/wildfly/9.0.2.Final/wildfly-9.0.2.Final.zip</url>
                   <downloadDir>${settings.localRepository}/org/codehaus/cargo/cargo-container-archives</downloadDir>
                   <extractDir>${project.build.directory}/cargo/extract</extractDir>
                 </zipUrlInstaller>
@@ -684,7 +676,7 @@ under the License.
                   <cargo.jvmargs>-XX:+CMSClassUnloadingEnabled -XX:+UseConcMarkSweepGC -XX:PermSize=512m -XX:MaxPermSize=1024m -Xmx2048m -Xms1024m</cargo.jvmargs>
                 </properties>
               </configuration>
-            </configuration>            
+            </configuration>
           </plugin>
         </plugins>
 
@@ -692,6 +684,9 @@ under the License.
           <resource>
             <directory>src/main/resources</directory>
             <filtering>true</filtering>
+            <excludes>
+              <exclude>restCXFContext.xml</exclude>
+            </excludes>
           </resource>
           <resource>
             <directory>src/main/resources/jboss</directory>

http://git-wip-us.apache.org/repos/asf/syncope/blob/6125dc3a/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
new file mode 100644
index 0000000..38f4d28
--- /dev/null
+++ b/fit/core-reference/src/main/resources/jboss/restCXFContext.xml
@@ -0,0 +1,159 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+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.
+-->
+<beans xmlns="http://www.springframework.org/schema/beans"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xmlns:jaxrs="http://cxf.apache.org/jaxrs"
+       xmlns:context="http://www.springframework.org/schema/context"
+       xmlns:aop="http://www.springframework.org/schema/aop"
+       xsi:schemaLocation="http://www.springframework.org/schema/beans
+                           http://www.springframework.org/schema/beans/spring-beans.xsd
+                           http://cxf.apache.org/jaxrs
+                           http://cxf.apache.org/schemas/jaxrs.xsd
+                           http://www.springframework.org/schema/context
+                           http://www.springframework.org/schema/context/spring-context.xsd
+                           http://www.springframework.org/schema/aop 
+                           http://www.springframework.org/schema/aop/spring-aop.xsd">
+
+  <import resource="classpath:META-INF/cxf/cxf.xml"/>
+  <import resource="classpath:META-INF/cxf/cxf-servlet.xml"/>
+
+  <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="jacksonObjectMapper" class="org.apache.syncope.core.rest.cxf.UnwrappedObjectMapper"/>
+  <bean id="jsonProvider" class="com.fasterxml.jackson.jaxrs.json.JacksonJaxbJsonProvider">
+    <property name="mapper" ref="jacksonObjectMapper"/>
+  </bean>
+
+  <bean id="exceptionMapper" class="org.apache.syncope.core.rest.cxf.RestServiceExceptionMapper"/>
+
+  <bean id="validationProvider" class="org.apache.cxf.validation.BeanValidationProvider"/>
+  <bean id="validationInInterceptor" class="org.apache.cxf.jaxrs.validation.JAXRSBeanValidationInInterceptor">
+    <property name="provider" ref="validationProvider"/>
+  </bean>
+  <bean id="validationOutInterceptor" class="org.apache.cxf.jaxrs.validation.JAXRSBeanValidationOutInterceptor">
+    <property name="provider" ref="validationProvider"/>
+  </bean>   
+  
+  <bean id="gzipInInterceptor" class="org.apache.cxf.transport.common.gzip.GZIPInInterceptor"/>
+  <bean id="gzipOutInterceptor" class="org.apache.cxf.transport.common.gzip.GZIPOutInterceptor">
+    <property name="threshold" value="0"/>
+    <property name="force" value="true"/>
+  </bean>
+  
+  <bean id="searchContextProvider" class="org.apache.cxf.jaxrs.ext.search.SearchContextProvider"/>
+    
+  <bean id="addDomainFilter" class="org.apache.syncope.core.rest.cxf.AddDomainFilter"/>
+  <bean id="addETagFilter" class="org.apache.syncope.core.rest.cxf.AddETagFilter"/>
+  
+  <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="addResourceAndMethodIds" value="true"/>
+    <property name="ignoreMessageWriters" value="true"/>
+    <property name="usePathParamsToCompareOperations" value="false"/>
+    <property name="javaDocPaths">
+      <list>
+        <value>/WEB-INF/lib/syncope-common-rest-api-${syncope.version}-javadoc.jar</value>
+        <value>/WEB-INF/lib/syncope-ext-camel-rest-api-${syncope.version}-javadoc.jar</value>
+      </list>
+    </property>
+  </bean>
+  
+  <bean id="swagger2Feature" class="org.apache.syncope.core.rest.cxf.Swagger2Feature">
+    <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="resourcePackage" value="org.apache.syncope.common.rest.api.service"/>
+    <property name="scanAllResources" value="true"/>
+    <property name="activateOnlyIfJaxrsSupported" value="true"/>
+    
+    <property name="dynamicBasePath" value="true"/>
+    <property name="replaceTags" value="true"/>
+    <property name="javaDocPaths">
+      <list>
+        <value>/WEB-INF/lib/syncope-common-rest-api-${syncope.version}-javadoc.jar</value>
+        <value>/WEB-INF/lib/syncope-ext-camel-rest-api-${syncope.version}-javadoc.jar</value>
+      </list>
+    </property>
+  </bean>
+
+  <jaxrs:server id="restContainer" address="/"
+                basePackages="org.apache.syncope.common.rest.api.service, org.apache.syncope.core.rest.cxf.service" 
+                staticSubresourceResolution="true">
+    <jaxrs:properties> 
+      <entry key="search.lax.property.match" value="true"/> 
+      <entry key="convert.wadl.resources.to.dom" value="false"/>
+    </jaxrs:properties> 
+    <jaxrs:inInterceptors>
+      <ref bean="gzipInInterceptor"/>
+      <ref bean="validationInInterceptor"/>
+    </jaxrs:inInterceptors>         
+    <jaxrs:outInterceptors>
+      <ref bean="gzipOutInterceptor"/>
+      <ref bean="validationOutInterceptor"/>
+    </jaxrs:outInterceptors>
+    <jaxrs:providers>
+      <ref bean="jaxbProvider"/>
+      <ref bean="jsonProvider"/>
+      <ref bean="exceptionMapper"/>
+      <ref bean="searchContextProvider"/>
+      <ref bean="addDomainFilter"/>
+      <ref bean="addETagFilter"/>
+      <ref bean="wadlGenerator"/>
+    </jaxrs:providers>
+    <jaxrs:features>
+      <ref bean="swagger2Feature"/>
+    </jaxrs:features>
+    <jaxrs:extensionMappings>
+      <entry key="json" value="application/json;charset=UTF-8"/>
+      <entry key="xml" value="application/xml;charset=UTF-8"/>
+    </jaxrs:extensionMappings>
+  </jaxrs:server>
+
+</beans>

http://git-wip-us.apache.org/repos/asf/syncope/blob/6125dc3a/fit/core-reference/src/main/resources/jboss/web.xml
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/main/resources/jboss/web.xml b/fit/core-reference/src/main/resources/jboss/web.xml
new file mode 100644
index 0000000..25bc692
--- /dev/null
+++ b/fit/core-reference/src/main/resources/jboss/web.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+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.
+-->
+<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee 
+                             http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
+         version="3.1">
+
+  <display-name>Apache Syncope ${syncope.version} Core</display-name>
+
+  <context-param>
+    <param-name>contextConfigLocation</param-name>
+    <param-value>
+      classpath*:/*Context.xml
+      /WEB-INF/classes/restCXFContext.xml
+    </param-value>
+  </context-param>
+
+  <listener>
+    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
+  </listener>
+
+  <login-config>
+    <auth-method>CLIENT-CERT</auth-method>
+  </login-config>
+
+</web-app>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/syncope/blob/6125dc3a/fit/core-reference/src/main/webapp/WEB-INF/web.xml
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/main/webapp/WEB-INF/web.xml b/fit/core-reference/src/main/webapp/WEB-INF/web.xml
new file mode 100644
index 0000000..b358a27
--- /dev/null
+++ b/fit/core-reference/src/main/webapp/WEB-INF/web.xml
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+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.
+-->
+<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee 
+                             http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
+         version="3.1">
+
+  <display-name>Apache Syncope ${syncope.version} Core</display-name>
+
+  <context-param>
+    <param-name>contextConfigLocation</param-name>
+    <param-value>
+      classpath*:/*Context.xml
+    </param-value>
+  </context-param>
+
+  <listener>
+    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
+  </listener>
+
+  <login-config>
+    <auth-method>CLIENT-CERT</auth-method>
+  </login-config>
+
+</web-app>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/syncope/blob/6125dc3a/fit/enduser-reference/pom.xml
----------------------------------------------------------------------
diff --git a/fit/enduser-reference/pom.xml b/fit/enduser-reference/pom.xml
index a08ab4d..707e4f5 100644
--- a/fit/enduser-reference/pom.xml
+++ b/fit/enduser-reference/pom.xml
@@ -117,15 +117,6 @@ under the License.
   <build>
     <plugins>
       <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-war-plugin</artifactId>
-        <inherited>true</inherited>
-        <configuration>
-          <failOnMissingWebXml>false</failOnMissingWebXml>
-        </configuration>
-      </plugin>
-
-      <plugin>
         <groupId>org.codehaus.cargo</groupId>
         <artifactId>cargo-maven2-plugin</artifactId>
         <inherited>true</inherited>

http://git-wip-us.apache.org/repos/asf/syncope/blob/6125dc3a/fit/enduser-reference/src/main/webapp/WEB-INF/web.xml
----------------------------------------------------------------------
diff --git a/fit/enduser-reference/src/main/webapp/WEB-INF/web.xml b/fit/enduser-reference/src/main/webapp/WEB-INF/web.xml
new file mode 100644
index 0000000..10afe42
--- /dev/null
+++ b/fit/enduser-reference/src/main/webapp/WEB-INF/web.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+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.
+-->
+<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee 
+                             http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
+         version="3.1">
+
+  <display-name>Apache Syncope ${syncope.version} Enduser</display-name>
+
+  <context-param>
+    <param-name>configuration</param-name>
+    <param-value>deployment</param-value>
+  </context-param>
+
+  <!-- SESSION TIMEOUT (MINUTES)-->
+  <session-config>
+    <session-timeout>30</session-timeout>
+  </session-config>
+
+</web-app>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/syncope/blob/6125dc3a/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index fb26391..813cb38 100644
--- a/pom.xml
+++ b/pom.xml
@@ -517,6 +517,9 @@ under the License.
         <artifactId>cxf-rt-rs-client</artifactId>
         <version>${cxf.version}</version>
       </dependency>
+      <!-- /CXF -->
+
+      <!-- Swagger -->      
       <dependency>
         <groupId>io.swagger</groupId>
         <artifactId>swagger-jaxrs</artifactId>
@@ -529,12 +532,12 @@ under the License.
         </exclusions>
       </dependency>
       <dependency>
-        <groupId>io.swagger</groupId>
-        <artifactId>swagger-hibernate-validations</artifactId>
-        <version>${swagger-core.version}</version>
+        <groupId>org.webjars</groupId>
+        <artifactId>swagger-ui</artifactId>
+        <version>${swagger-ui.version}</version>
       </dependency>
-      <!-- /CXF -->
-      
+      <!-- /Swagger -->      
+
       <!-- Camel -->
       <dependency>
         <groupId>org.apache.camel</groupId>
@@ -950,11 +953,6 @@ under the License.
       
       <dependency>
         <groupId>org.webjars</groupId>
-        <artifactId>swagger-ui</artifactId>
-        <version>${swagger-ui.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.webjars</groupId>
         <artifactId>jquery</artifactId>
         <version>${jquery.version}</version>
       </dependency>