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 2018/07/13 12:36:21 UTC

[5/5] syncope git commit: Replace JRebel with HotSwapAgent

Replace JRebel with HotSwapAgent


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

Branch: refs/heads/2_0_X
Commit: 68882c712f6a6761ea2224b01038dfd01e120445
Parents: cc89632
Author: Francesco Chicchiriccò <il...@apache.org>
Authored: Fri Jul 13 14:18:51 2018 +0200
Committer: Francesco Chicchiriccò <il...@apache.org>
Committed: Fri Jul 13 14:36:06 2018 +0200

----------------------------------------------------------------------
 .gitignore                                      |   2 +-
 .../syncope/client/console/pages/Reports.html   |   2 +-
 fit/console-reference/pom.xml                   |  26 ++--
 .../src/test/resources/hotswap-agent.properties |  33 +++++
 .../src/test/resources/rebel.xml                |  70 ----------
 fit/core-reference/pom.xml                      |  23 +++-
 .../src/test/resources/hotswap-agent.properties |  70 ++++++++++
 fit/core-reference/src/test/resources/rebel.xml | 136 -------------------
 fit/enduser-reference/pom.xml                   |  29 ++--
 .../src/test/resources/hotswap-agent.properties |  33 +++++
 .../src/test/resources/rebel.xml                |  58 --------
 pom.xml                                         |  10 +-
 src/site/xdoc/building.xml                      |  34 ++---
 13 files changed, 219 insertions(+), 307 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/syncope/blob/68882c71/.gitignore
----------------------------------------------------------------------
diff --git a/.gitignore b/.gitignore
index e21571f..3388d02 100644
--- a/.gitignore
+++ b/.gitignore
@@ -13,4 +13,4 @@ ide/eclipse/bundles/org.apache.syncope.ide.eclipse.plugin/bin/
 ide/eclipse/bundles/org.apache.syncope.ide.eclipse.plugin/lib/
 ide/eclipse/bundles/org.apache.syncope.ide.eclipse.tests/bin/
 ide/eclipse/bundles/org.apache.syncope.ide.eclipse.tests/screenshots/
-fit/core-reference/nb-configuration.xml
+*nb-configuration.xml

http://git-wip-us.apache.org/repos/asf/syncope/blob/68882c71/client/console/src/main/resources/org/apache/syncope/client/console/pages/Reports.html
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/pages/Reports.html b/client/console/src/main/resources/org/apache/syncope/client/console/pages/Reports.html
index 63604ec..40ed1f1 100644
--- a/client/console/src/main/resources/org/apache/syncope/client/console/pages/Reports.html
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/pages/Reports.html
@@ -22,7 +22,7 @@ under the License.
       <h1>&nbsp;</h1>
       <ol class="breadcrumb">
         <li><a wicket:id="dashboardBr"><i class="fa fa-dashboard"></i> <wicket:message key="dashboard"></wicket:message></a></li>
-        <li class="active"><wicket:message key="roles"></wicket:message></li>
+        <li class="active"><wicket:message key="reports"></wicket:message></li>
       </ol>
     </section>
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/68882c71/fit/console-reference/pom.xml
----------------------------------------------------------------------
diff --git a/fit/console-reference/pom.xml b/fit/console-reference/pom.xml
index 9d66ba1..4be866a 100644
--- a/fit/console-reference/pom.xml
+++ b/fit/console-reference/pom.xml
@@ -360,8 +360,16 @@ under the License.
     </profile>
     
     <profile>
-      <id>jrebel</id>
+      <id>hotswap</id>
       
+      <dependencies>
+        <dependency>
+          <groupId>org.hotswapagent</groupId>
+          <artifactId>hotswap-agent</artifactId>
+          <scope>test</scope>
+        </dependency>
+      </dependencies>
+
       <build>
         <defaultGoal>clean verify cargo:run</defaultGoal>
 
@@ -372,11 +380,13 @@ under the License.
             <inherited>true</inherited>
             <executions>
               <execution>
-                <id>enableJRebelForCore</id>
+                <id>enableHotSwapForCore</id>
                 <phase>package</phase>
                 <configuration>
                   <target>                                               
-                    <copy file="${basedir}/../core-reference/target/test-classes/rebel.xml" tofile="${basedir}/../core-reference/target/syncope-fit-core-reference-${project.version}/WEB-INF/classes/rebel.xml" overwrite="true" />
+                    <copy file="${basedir}/../core-reference/target/test-classes/hotswap-agent.properties"
+                          tofile="${basedir}/../core-reference/target/syncope-fit-core-reference-${project.version}/WEB-INF/classes/hotswap-agent.properties"
+                          overwrite="true"/>
                   </target>
                 </configuration>
                 <goals>
@@ -393,10 +403,10 @@ under the License.
             <configuration>
               <configuration>
                 <properties>
-                  <cargo.jvmargs>-Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n
-                    -noverify -agentpath:${env.REBEL_HOME}/lib/libjrebel64.so -Drebel.spring_plugin=true
-                    -Dwicket.configuration=development
-                    -XX:+CMSClassUnloadingEnabled -XX:+UseConcMarkSweepGC -XX:MaxPermSize=512m -Xmx1024m -Xms512m</cargo.jvmargs>
+                  <cargo.jvmargs>
+                    -XXaltjvm=dcevm -javaagent:${settings.localRepository}/org/hotswapagent/hotswap-agent/${hotswap.version}/hotswap-agent-${hotswap.version}.jar=autoHotswap=true,disablePlugin=Spring
+                    -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8000
+                    -XX:MaxPermSize=512m -Xmx1024m -Xms512m</cargo.jvmargs>
                 </properties>
               </configuration>
             </configuration>
@@ -418,7 +428,7 @@ under the License.
             <directory>src/test/resources</directory>
             <filtering>true</filtering>
             <includes>
-              <include>rebel.xml</include>
+              <include>hotswap-agent.properties</include>
             </includes>
           </resource>
         </resources>

http://git-wip-us.apache.org/repos/asf/syncope/blob/68882c71/fit/console-reference/src/test/resources/hotswap-agent.properties
----------------------------------------------------------------------
diff --git a/fit/console-reference/src/test/resources/hotswap-agent.properties b/fit/console-reference/src/test/resources/hotswap-agent.properties
new file mode 100644
index 0000000..8e57816
--- /dev/null
+++ b/fit/console-reference/src/test/resources/hotswap-agent.properties
@@ -0,0 +1,33 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+LOGGER=error
+
+autoHotswap=true
+autoHotswap.port=8000
+
+extraClasspath=${basedir}/../console-reference/target/classes,\
+${basedir}/../../client/console/target/classes,\
+${basedir}/../../ext/camel/client-console/target/classes,\
+${basedir}/../../ext/saml2sp/client-console/target/classes,\
+${basedir}/../../ext/scimv2/client-console/target/classes,\
+${basedir}/../../ext/oidcclient/client-console/target/classes
+
+webappDir=${basedir}/../console-reference/src/main/webapp,\
+${basedir}/../../client/console/target/classes/META-INF/resources,\
+${basedir}/../../ext/saml2sp/client-console/target/classes,\
+${basedir}/../../ext/oidcclient/client-console/target/classes

http://git-wip-us.apache.org/repos/asf/syncope/blob/68882c71/fit/console-reference/src/test/resources/rebel.xml
----------------------------------------------------------------------
diff --git a/fit/console-reference/src/test/resources/rebel.xml b/fit/console-reference/src/test/resources/rebel.xml
deleted file mode 100644
index 876c58f..0000000
--- a/fit/console-reference/src/test/resources/rebel.xml
+++ /dev/null
@@ -1,70 +0,0 @@
-<?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.
--->
-<application xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
-             xmlns="http://www.zeroturnaround.com" 
-             xsi:schemaLocation="http://www.zeroturnaround.com http://www.zeroturnaround.com/alderaan/rebel-2_0.xsd">
-  
-  <classpath fallback="default">
-    <dir name="${basedir}/../console-reference/target/classes">
-    </dir>
-    <dir name="${basedir}/../../client/console/target/classes">
-    </dir>
-    <dir name="${basedir}/../../ext/camel/client-console/target/classes">
-    </dir>
-    <dir name="${basedir}/../../ext/saml2sp/agent/target/classes">
-    </dir>
-    <dir name="${basedir}/../../ext/saml2sp/client-console/target/classes">
-    </dir>
-    <dir name="${basedir}/../../ext/scimv2/client-console/target/classes">
-    </dir>
-    <dir name="${basedir}/../../ext/oidcclient/agent/target/classes">
-    </dir>
-    <dir name="${basedir}/../../ext/oidcclient/client-console/target/classes">
-    </dir>
-  </classpath>
-
-  <web>
-    <link target="/">
-      <dir name="${basedir}/../console-reference/src/main/webapp">
-      </dir>
-    </link>
-    <link target="/">
-      <dir name="${basedir}/../../client/console/target/classes/META-INF/resources">
-      </dir>
-    </link>
-    <link target="/">
-      <dir name="${basedir}/../../ext/camel/client-console/target/classes">
-      </dir>
-    </link>
-    <link target="/">
-      <dir name="${basedir}/../../ext/saml2sp/client-console/target/classes">
-      </dir>
-    </link>
-    <link target="/">
-      <dir name="${basedir}/../../ext/scimv2/client-console/target/classes">
-      </dir>
-    </link>
-    <link target="/">
-      <dir name="${basedir}/../../ext/oidcclient/client-console/target/classes">
-      </dir>
-    </link>
-  </web>
-
-</application>

http://git-wip-us.apache.org/repos/asf/syncope/blob/68882c71/fit/core-reference/pom.xml
----------------------------------------------------------------------
diff --git a/fit/core-reference/pom.xml b/fit/core-reference/pom.xml
index a6a7586..24fe6db 100644
--- a/fit/core-reference/pom.xml
+++ b/fit/core-reference/pom.xml
@@ -1407,12 +1407,20 @@ under the License.
     </profile>
     
     <profile>
-      <id>jrebel</id>
+      <id>hotswap</id>
       
       <properties>
         <skipTests>true</skipTests>
       </properties>
       
+      <dependencies>
+        <dependency>
+          <groupId>org.hotswapagent</groupId>
+          <artifactId>hotswap-agent</artifactId>
+          <scope>test</scope>
+        </dependency>
+      </dependencies>
+      
       <build>
         <defaultGoal>clean verify cargo:run</defaultGoal>
 
@@ -1424,9 +1432,10 @@ under the License.
             <configuration>
               <configuration>
                 <properties>
-                  <cargo.jvmargs>-Xdebug -Djaxb.debug=true -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n
-                    -noverify -agentpath:${env.REBEL_HOME}/lib/libjrebel64.so -Drebel.spring_plugin=true
-                    -XX:+CMSClassUnloadingEnabled -XX:+UseConcMarkSweepGC -XX:MaxPermSize=512m -Xmx1024m -Xms512m</cargo.jvmargs>
+                  <cargo.jvmargs>
+                    -XXaltjvm=dcevm -javaagent:${settings.localRepository}/org/hotswapagent/hotswap-agent/${hotswap.version}/hotswap-agent-${hotswap.version}.jar=autoHotswap=true,disablePlugin=Spring
+                    -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8000
+                    -XX:MaxPermSize=512m -Xmx1024m -Xms512m</cargo.jvmargs>
                 </properties>
               </configuration>
             </configuration>
@@ -1442,19 +1451,19 @@ under the License.
             </executions>
           </plugin>
         </plugins>
-        
+
         <resources>
           <resource>
             <directory>src/test/resources</directory>
             <filtering>true</filtering>
             <includes>
-              <include>rebel.xml</include>
+              <include>hotswap-agent.properties</include>
             </includes>
           </resource>
         </resources>
       </build>
     </profile>
-    
+
     <profile>
       <id>all</id>
       <activation>

http://git-wip-us.apache.org/repos/asf/syncope/blob/68882c71/fit/core-reference/src/test/resources/hotswap-agent.properties
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/test/resources/hotswap-agent.properties b/fit/core-reference/src/test/resources/hotswap-agent.properties
new file mode 100644
index 0000000..69c5f48
--- /dev/null
+++ b/fit/core-reference/src/test/resources/hotswap-agent.properties
@@ -0,0 +1,70 @@
+# 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.
+
+LOGGER=error
+
+autoHotswap=true
+autoHotswap.port=8000
+
+extraClasspath=${basedir}/../core-reference/target/classes,\
+${basedir}/../../common/lib/target/classes,\
+${basedir}/../../common/rest-api/target/classes,\
+${basedir}/../../core/logic/target/classes/org,\
+${basedir}/../../core/rest-cxf/target/classes/org,\
+${basedir}/../../core/spring/target/classes/org,\
+${basedir}/../../core/persistence-api/target/classes,\
+${basedir}/../../core/persistence-jpa/target/classes/org/apache/syncope/core/persistence/jpa/dao,\
+${basedir}/../../core/persistence-jpa/target/classes/org/apache/syncope/core/persistence/jpa/validation,\
+${basedir}/../../core/provisioning-api/target/classes,\
+${basedir}/../../core/provisioning-java/target/classes/org,\
+${basedir}/../../core/workflow-api/target/classes,\
+${basedir}/../../core/workflow-java/target/classes/org,\
+${basedir}/../../core/workflow-activiti/target/classes/org,\
+${basedir}/../../core/migration/target/classes,\
+${basedir}/../../ext/camel/common-lib/target/classes,\
+${basedir}/../../ext/camel/logic/target/classes,\
+${basedir}/../../ext/camel/provisioning-camel/target/classes/org,\
+${basedir}/../../ext/saml2sp/common-lib/target/classes,\
+${basedir}/../../ext/saml2sp/logic/target/classes,\
+${basedir}/../../ext/saml2sp/persistence-api/target/classes,\
+${basedir}/../../ext/saml2sp/persistence-jpa/target/classes/org/apache/syncope/core/persistence/jpa/dao,\
+${basedir}/../../ext/saml2sp/persistence-jpa/target/classes/org/apache/syncope/core/persistence/jpa/validation,\
+${basedir}/../../ext/saml2sp/provisioning-api/target/classes,\
+${basedir}/../../ext/saml2sp/provisioning-java/target/classes,\
+${basedir}/../../ext/saml2sp/rest-api/target/classes,\
+${basedir}/../../ext/saml2sp/rest-cxf/target/classes/org,\
+${basedir}/../../ext/elasticsearch/client-elasticsearch/target/classes,\
+${basedir}/../../ext/elasticsearch/provisioning-java/target/classes,\
+${basedir}/../../ext/elasticsearch/persistence-jpa/target/classes,\
+${basedir}/../../ext/scimv2/common-lib/target/classes,\
+${basedir}/../../ext/scimv2/rest-api/target/classes,\
+${basedir}/../../ext/scimv2/rest-cxf/target/classes,\
+${basedir}/../../ext/scimv2/scim-rest-api/target/classes,\
+${basedir}/../../ext/scimv2/scim-rest-cxf/target/classes/org,\
+${basedir}/../../ext/scimv2/logic/target/classes,\
+${basedir}/../../ext/oidcclient/common-lib/target/classes,\
+${basedir}/../../ext/oidcclient/logic/target/classes,\
+${basedir}/../../ext/oidcclient/persistence-api/target/classes,\
+${basedir}/../../ext/oidcclient/persistence-jpa/target/classes/org/apache/syncope/core/persistence/jpa/dao,\
+${basedir}/../../ext/oidcclient/persistence-jpa/target/classes/org/apache/syncope/core/persistence/jpa/validation,\
+${basedir}/../../ext/oidcclient/provisioning-api/target/classes,\
+${basedir}/../../ext/oidcclient/provisioning-java/target/classes,\
+${basedir}/../../ext/oidcclient/rest-api/target/classes,\
+${basedir}/../../ext/oidcclient/rest-cxf/target/classes
+
+webappDir=${basedir}/../core-reference/src/main/webapp,\
+${basedir}/../../ext/swagger-ui/target/classes/META-INF/resources

http://git-wip-us.apache.org/repos/asf/syncope/blob/68882c71/fit/core-reference/src/test/resources/rebel.xml
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/test/resources/rebel.xml b/fit/core-reference/src/test/resources/rebel.xml
deleted file mode 100644
index 975ded0..0000000
--- a/fit/core-reference/src/test/resources/rebel.xml
+++ /dev/null
@@ -1,136 +0,0 @@
-<?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.
--->
-<application xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
-             xmlns="http://www.zeroturnaround.com" 
-             xsi:schemaLocation="http://www.zeroturnaround.com http://www.zeroturnaround.com/alderaan/rebel-2_0.xsd">
-
-  <classpath fallback="default">
-    <dir name="${basedir}/../core-reference/target/classes">
-    </dir>
-    <dir name="${basedir}/../../common/lib/target/classes">
-    </dir>
-    <dir name="${basedir}/../../common/rest-api/target/classes">
-    </dir>
-    <dir name="${basedir}/../../core/logic/target/classes">
-      <exclude name="logicContext.xml"/>
-    </dir>
-    <dir name="${basedir}/../../core/rest-cxf/target/classes">
-      <exclude name="restCXFContext.xml"/>
-    </dir>
-    <dir name="${basedir}/../../core/spring/target/classes">
-      <exclude name="securityContext.xml"/>
-    </dir>
-    <dir name="${basedir}/../../core/persistence-api/target/classes">
-    </dir>
-    <dir name="${basedir}/../../core/persistence-jpa/target/classes">
-      <exclude name="persistenceContext.xml"/>
-      <exclude name="org/apache/syncope/core/persistence/jpa/entity/**"/>
-    </dir>
-    <dir name="${basedir}/../../core/provisioning-api/target/classes">
-    </dir>
-    <dir name="${basedir}/../../core/provisioning-java/target/classes">
-      <exclude name="provisioningContext.xml"/>
-    </dir>
-    <dir name="${basedir}/../../core/workflow-api/target/classes">
-    </dir>
-    <dir name="${basedir}/../../core/workflow-java/target/classes">
-      <exclude name="workflowContext.xml"/>
-    </dir>
-    <dir name="${basedir}/../../core/workflow-activiti/target/classes">
-      <exclude name="workflowActivitiContext.xml"/>
-    </dir>
-    <dir name="${basedir}/../../core/migration/target/classes">
-    </dir>
-    <dir name="${basedir}/../../ext/camel/common-lib/target/classes">
-    </dir>
-    <dir name="${basedir}/../../ext/camel/logic/target/classes">
-    </dir>
-    <dir name="${basedir}/../../ext/camel/provisioning-camel/target/classes">
-      <exclude name="provisioningCamelContext.xml"/>
-    </dir>
-    <dir name="${basedir}/../../ext/saml2sp/common-lib/target/classes">
-    </dir>
-    <dir name="${basedir}/../../ext/saml2sp/logic/target/classes">
-    </dir>
-    <dir name="${basedir}/../../ext/saml2sp/persistence-api/target/classes">
-    </dir>
-    <dir name="${basedir}/../../ext/saml2sp/persistence-jpa/target/classes">
-      <exclude name="org/apache/syncope/core/persistence/jpa/entity/**"/>
-    </dir>
-    <dir name="${basedir}/../../ext/saml2sp/provisioning-api/target/classes">
-    </dir>
-    <dir name="${basedir}/../../ext/saml2sp/provisioning-java/target/classes">
-    </dir>
-    <dir name="${basedir}/../../ext/saml2sp/rest-api/target/classes">
-    </dir>
-    <dir name="${basedir}/../../ext/saml2sp/rest-cxf/target/classes">
-    </dir>
-    <dir name="${basedir}/../../ext/elasticsearch/client-elasticsearch/target/classes">
-      <exclude name="elasticsearchClientContext.xml"/>
-    </dir>
-    <dir name="${basedir}/../../ext/elasticsearch/client-elasticsearch/target/classes">
-    </dir>
-    <dir name="${basedir}/../../ext/elasticsearch/provisioning-java/target/classes">
-    </dir>
-    <dir name="${basedir}/../../ext/elasticsearch/persistence-jpa/target/classes">
-    </dir>
-    <dir name="${basedir}/../../ext/scimv2/common-lib/target/classes">
-    </dir>
-    <dir name="${basedir}/../../ext/scimv2/rest-api/target/classes">
-    </dir>
-    <dir name="${basedir}/../../ext/scimv2/rest-cxf/target/classes">
-    </dir>
-    <dir name="${basedir}/../../ext/scimv2/scim-rest-api/target/classes">
-    </dir>
-    <dir name="${basedir}/../../ext/scimv2/scim-rest-cxf/target/classes">
-    </dir>
-    <dir name="${basedir}/../../ext/scimv2/logic/target/classes">
-    </dir>
-    <dir name="${basedir}/../../ext/oidcclient/common-lib/target/classes">
-    </dir>
-    <dir name="${basedir}/../../ext/oidcclient/logic/target/classes">
-    </dir>
-    <dir name="${basedir}/../../ext/oidcclient/persistence-api/target/classes">
-    </dir>
-    <dir name="${basedir}/../../ext/oidcclient/persistence-jpa/target/classes">
-      <exclude name="org/apache/syncope/core/persistence/jpa/entity/**"/>
-    </dir>
-    <dir name="${basedir}/../../ext/oidcclient/provisioning-api/target/classes">
-    </dir>
-    <dir name="${basedir}/../../ext/oidcclient/provisioning-java/target/classes">
-    </dir>
-    <dir name="${basedir}/../../ext/oidcclient/rest-api/target/classes">
-    </dir>
-    <dir name="${basedir}/../../ext/oidcclient/rest-cxf/target/classes">
-    </dir>
-  </classpath>
-
-  <web>
-    <link target="/">
-      <dir name="${basedir}/../core-reference/src/main/webapp">
-      </dir>
-    </link>
-    <link target="/">
-      <dir name="${basedir}/../../ext/swagger-ui/target/classes/META-INF/resources">
-      </dir>
-    </link>
-  </web>
-
-</application>

http://git-wip-us.apache.org/repos/asf/syncope/blob/68882c71/fit/enduser-reference/pom.xml
----------------------------------------------------------------------
diff --git a/fit/enduser-reference/pom.xml b/fit/enduser-reference/pom.xml
index 6d5a364..33ad9bc 100644
--- a/fit/enduser-reference/pom.xml
+++ b/fit/enduser-reference/pom.xml
@@ -506,8 +506,16 @@ under the License.
     </profile>
     
     <profile>
-      <id>jrebel</id>
+      <id>hotswap</id>
       
+      <dependencies>
+        <dependency>
+          <groupId>org.hotswapagent</groupId>
+          <artifactId>hotswap-agent</artifactId>
+          <scope>test</scope>
+        </dependency>
+      </dependencies>
+
       <build>
         <defaultGoal>clean verify cargo:run</defaultGoal>
 
@@ -530,12 +538,16 @@ under the License.
             <inherited>true</inherited>
             <executions>
               <execution>
-                <id>enableJRebelForCoreAndConsole</id>
+                <id>enableHotSwapForCoreAndConsole</id>
                 <phase>package</phase>
                 <configuration>
                   <target>                                               
-                    <copy file="${basedir}/../core-reference/target/test-classes/rebel.xml" tofile="${basedir}/../core-reference/target/syncope-fit-core-reference-${project.version}/WEB-INF/classes/rebel.xml" overwrite="true" />
-                    <copy file="${basedir}/../console-reference/target/test-classes/rebel.xml" tofile="${basedir}/../console-reference/target/syncope-fit-console-reference-${project.version}/WEB-INF/classes/rebel.xml" overwrite="true" />
+                    <copy file="${basedir}/../core-reference/target/test-classes/hotswap-agent.properties"
+                          tofile="${basedir}/../core-reference/target/syncope-fit-core-reference-${project.version}/WEB-INF/classes/hotswap-agent.properties"
+                          overwrite="true"/>
+                    <copy file="${basedir}/../console-reference/target/test-classes/hotswap-agent.properties"
+                          tofile="${basedir}/../console-reference/target/syncope-fit-console-reference-${project.version}/WEB-INF/classes/hotswap-agent.properties"
+                          overwrite="true"/>
                   </target>
                 </configuration>
                 <goals>
@@ -552,9 +564,10 @@ under the License.
             <configuration>
               <configuration>
                 <properties>
-                  <cargo.jvmargs>-Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n
-                    -noverify -agentpath:${env.REBEL_HOME}/lib/libjrebel64.so -Drebel.spring_plugin=true
-                    -XX:+CMSClassUnloadingEnabled -XX:+UseConcMarkSweepGC -XX:MaxPermSize=512m -Xmx1024m -Xms512m</cargo.jvmargs>
+                  <cargo.jvmargs>
+                    -XXaltjvm=dcevm -javaagent:${settings.localRepository}/org/hotswapagent/hotswap-agent/${hotswap.version}/hotswap-agent-${hotswap.version}.jar=autoHotswap=true,disablePlugin=Spring
+                    -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8000
+                    -XX:MaxPermSize=512m -Xmx1024m -Xms512m</cargo.jvmargs>
                 </properties>
               </configuration>
             </configuration>
@@ -576,7 +589,7 @@ under the License.
             <directory>src/test/resources</directory>
             <filtering>true</filtering>
             <includes>
-              <include>rebel.xml</include>
+              <include>hotswap-agent.properties</include>
             </includes>
           </resource>
         </resources>

http://git-wip-us.apache.org/repos/asf/syncope/blob/68882c71/fit/enduser-reference/src/test/resources/hotswap-agent.properties
----------------------------------------------------------------------
diff --git a/fit/enduser-reference/src/test/resources/hotswap-agent.properties b/fit/enduser-reference/src/test/resources/hotswap-agent.properties
new file mode 100644
index 0000000..4f08d6f
--- /dev/null
+++ b/fit/enduser-reference/src/test/resources/hotswap-agent.properties
@@ -0,0 +1,33 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+LOGGER=error
+
+autoHotswap=true
+autoHotswap.port=8000
+
+extraClasspath=${basedir}/../enduser-reference/target/classes,\
+${basedir}/../../client/enduser/target/classes,\
+${basedir}/../../ext/camel/client-enduser/target/classes,\
+${basedir}/../../ext/saml2sp/client-enduser/target/classes,\
+${basedir}/../../ext/scimv2/client-enduser/target/classes,\
+${basedir}/../../ext/oidcclient/client-enduser/target/classes
+
+webappDir=${basedir}/../enduser-reference/src/main/webapp,\
+${basedir}/../../client/enduser/target/classes/META-INF/resources,\
+${basedir}/../../ext/saml2sp/client-enduser/target/classes,\
+${basedir}/../../ext/oidcclient/client-enduser/target/classes

http://git-wip-us.apache.org/repos/asf/syncope/blob/68882c71/fit/enduser-reference/src/test/resources/rebel.xml
----------------------------------------------------------------------
diff --git a/fit/enduser-reference/src/test/resources/rebel.xml b/fit/enduser-reference/src/test/resources/rebel.xml
deleted file mode 100644
index d544b8d..0000000
--- a/fit/enduser-reference/src/test/resources/rebel.xml
+++ /dev/null
@@ -1,58 +0,0 @@
-<?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.
--->
-<application xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
-             xmlns="http://www.zeroturnaround.com" 
-             xsi:schemaLocation="http://www.zeroturnaround.com http://www.zeroturnaround.com/alderaan/rebel-2_0.xsd">
-  
-  <classpath fallback="default">
-    <dir name="${basedir}/../enduser-reference/target/classes">
-    </dir>
-    <dir name="${basedir}/../../client/enduser/target/classes">
-    </dir>
-    <dir name="${basedir}/../../ext/saml2sp/agent/target/classes">
-    </dir>
-    <dir name="${basedir}/../../ext/saml2sp/client-enduser/target/classes">
-    </dir>
-    <dir name="${basedir}/../../ext/oidcclient/agent/target/classes">
-    </dir>
-    <dir name="${basedir}/../../ext/oidcclient/client-enduser/target/classes">
-    </dir>
-  </classpath>
-
-  <web>
-    <link target="/">
-      <dir name="${basedir}/../enduser-reference/src/main/webapp">
-      </dir>
-    </link>
-    <link target="/">
-      <dir name="${basedir}/../../client/enduser/target/classes/META-INF/resources">
-      </dir>
-    </link>
-    <link target="/">
-      <dir name="${basedir}/../../ext/saml2sp/client-enduser/target/classes">
-      </dir>
-    </link>
-    <link target="/">
-      <dir name="${basedir}/../../ext/oidcclient/client-enduser/target/classes">
-      </dir>
-    </link>
-  </web>
-
-</application>

http://git-wip-us.apache.org/repos/asf/syncope/blob/68882c71/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 5de0b9c..aa244b9 100644
--- a/pom.xml
+++ b/pom.xml
@@ -493,6 +493,8 @@ under the License.
 
     <antlr4.version>4.7.1</antlr4.version>
 
+    <hotswap.version>1.3.0</hotswap.version>
+
     <testds.port>1389</testds.port>
     <testdb.webport>9082</testdb.webport>
 
@@ -1739,6 +1741,12 @@ under the License.
         <version>${antlr4.version}</version>
       </dependency>
 
+      <dependency>
+        <groupId>org.hotswapagent</groupId>
+        <artifactId>hotswap-agent</artifactId>
+        <version>${hotswap.version}</version>
+      </dependency>
+
       <!-- TEST -->
       <dependency>
         <groupId>com.github.detro</groupId>
@@ -2375,7 +2383,7 @@ under the License.
             <link>http://activiti.org/javadocs/</link>
             <link>http://www.flowable.org/docs/javadocs/</link>
             <link>https://build.shibboleth.net/nexus/content/sites/site/java-opensaml/3.3.0/apidocs/</link>
-            <link>https://www.javadoc.io/doc/org.elasticsearch/elasticsearch/5.6.10</link>
+            <link>https://artifacts.elastic.co/javadoc/org/elasticsearch/client/transport/5.6.10/index.html</link>
           </links>
         </configuration>
         <reportSets>

http://git-wip-us.apache.org/repos/asf/syncope/blob/68882c71/src/site/xdoc/building.xml
----------------------------------------------------------------------
diff --git a/src/site/xdoc/building.xml b/src/site/xdoc/building.xml
index 47271c8..ecabe39 100644
--- a/src/site/xdoc/building.xml
+++ b/src/site/xdoc/building.xml
@@ -37,7 +37,7 @@ under the License.
         <ul>
           <li>JDK 7 or higher for &le; 2.0; JDK 8 or higher for later versions</li>
           <li>
-            <a href="http://maven.apache.org/download.html">Apache Maven</a> 3.0.3 or higher</li>
+            Latest <a href="http://maven.apache.org/download.html">Apache Maven</a></li>
           <li>
             <a href="source-repository.html">Latest source code</a>
           </li>
@@ -115,13 +115,11 @@ under the License.
           <source>$ mvn test -Dtest=UserITCase#list</source>
         </p>
 
-        <h4>JRebel</h4>
-        As with Debug, but with <a href="http://zeroturnaround.com/software/jrebel/">JRebel</a> features enabled.
-        <source>$ export REBEL_HOME=/opt/jrebel
-$ mvn -Pjrebel,all</source>
-        or, without Activiti and Camel support
-        <source>$ export REBEL_HOME=/opt/jrebel
-$ mvn -Pjrebel</source>
+        <h4>HotSwapAgent</h4>
+        Similar to Debug, but with <a href="http://hotswapagent.org/">HotSwapAgent</a> features enabled (requires
+        <a href="https://github.com/dcevm/dcevm">DCEVM Java</a> installed as "alternative JVM" and IDE of choice
+        <a href="http://hotswapagent.org/mydoc_setup_netbeans.html">set up properly</a>).
+        <source>$ mvn -Photswap,all</source>
 
         <h4>DBMSes</h4>
 
@@ -172,10 +170,11 @@ $ mvn -Pjrebel</source>
         enables remote JPDA debugging on port 8000 in the running Java EE container (Tomcat).
         <source>$ mvn -Pdebug</source>
 
-        <h4>JRebel</h4>
-        As with Debug, but with <a href="http://zeroturnaround.com/software/jrebel/">JRebel</a> features enabled.
-        <source>$ export REBEL_HOME=/opt/jrebel
-$ mvn -Pjrebel</source>
+        <h4>HotSwapAgent</h4>
+        Similar to Debug, but with <a href="http://hotswapagent.org/">HotSwapAgent</a> features enabled (requires
+        <a href="https://github.com/dcevm/dcevm">DCEVM Java</a> installed as "alternative JVM" and IDE of choice
+        <a href="http://hotswapagent.org/mydoc_setup_netbeans.html">set up properly</a>).
+        <source>$ mvn -Photswap</source>
       </subsection>
       
       <subsection name="fit/enduser-reference">
@@ -188,14 +187,15 @@ $ mvn -Pjrebel</source>
         <p>
           Once started in debug mode, the test cases can be executed as follows:
           <source>$ cd target/enduser-test
-$ nodejs/node/node nodejs/bin/protractor protractor-conf.js</source>
+            $ nodejs/node/node nodejs/bin/protractor protractor-conf.js</source>
           where the actual tests to be run can be selected by modifying the <code>protractor-conf.js</code> content.
         </p>
 
-        <h4>JRebel</h4>
-        As with Debug, but with <a href="http://zeroturnaround.com/software/jrebel/">JRebel</a> features enabled.
-        <source>$ export REBEL_HOME=/opt/jrebel
-$ mvn -Pjrebel</source>
+        <h4>HotSwapAgent</h4>
+        Similar to Debug, but with <a href="http://hotswapagent.org/">HotSwapAgent</a> features enabled (requires
+        <a href="https://github.com/dcevm/dcevm">DCEVM Java</a> installed as "alternative JVM" and IDE of choice
+        <a href="http://hotswapagent.org/mydoc_setup_netbeans.html">set up properly</a>).
+        <source>$ mvn -Photswap</source>
       </subsection>
 
       <subsection name="ide/eclipse/bundles/org.apache.syncope.ide.eclipse.tests">