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/11/02 10:53:34 UTC

[syncope] branch 2_0_X updated: Updating docs with OpenJPA customization

This is an automated email from the ASF dual-hosted git repository.

ilgrosso pushed a commit to branch 2_0_X
in repository https://gitbox.apache.org/repos/asf/syncope.git


The following commit(s) were added to refs/heads/2_0_X by this push:
     new 89c6df7  Updating docs with OpenJPA customization
89c6df7 is described below

commit 89c6df7e9c3970b955bc56a015a45193c9280ecc
Author: Francesco Chicchiriccò <il...@apache.org>
AuthorDate: Fri Nov 2 11:53:19 2018 +0100

    Updating docs with OpenJPA customization
---
 .../reference-guide/architecture/core.adoc         |  14 +-
 .../workingwithapachesyncope/customization.adoc    | 219 ++++++++++++++-------
 .../systemadministration/highavailability.adoc     |   2 +-
 .../systemadministration/javaeecontainer.adoc      |  57 ++++--
 4 files changed, 204 insertions(+), 88 deletions(-)

diff --git a/src/main/asciidoc/reference-guide/architecture/core.adoc b/src/main/asciidoc/reference-guide/architecture/core.adoc
index 67a54cf..c1e32da 100644
--- a/src/main/asciidoc/reference-guide/architecture/core.adoc
+++ b/src/main/asciidoc/reference-guide/architecture/core.adoc
@@ -36,7 +36,7 @@ An <<swagger,extension>> is also available, providing full http://swagger.io/[Sw
 which enables in-browser access to all the REST endpoints defined.
 
 At a technical level, the RESTful interface is a fully-compliant 
-https://en.wikipedia.org/wiki/Java_API_for_RESTful_Web_Services[JAX-RS 2.0^] implementation based on 
+https://en.wikipedia.org/wiki/Java_API_for_RESTful_Web_Services[JAX-RS 2.1^] implementation based on 
 http://cxf.apache.org[Apache CXF^], natively dealing either with JSON, YAML and XML payloads.
 
 More details are available in the dedicated <<restful-services,usage>> section.
@@ -73,20 +73,22 @@ In addition, an http://camel.apache.org/[Apache Camel^]-based implementation is
 
 The Workflow layer is responsible for managing the internal lifecycle of Users, Groups and Any Objects.
 
-Besides the default engine, another engine is available based on http://www.activiti.org/[Activiti BPM^], the 
+Besides the default engine, another engine is available based on http://www.flowable.org/[Flowable^], the 
 reference open source http://www.bpmn.org/[BPMN 2.0^] implementation. It enables advanced features such
-as approval management and new statuses definitions. An optional web-based GUI editor is also available.
+as approval management and new statuses definitions; a web-based GUI editor, the
+http://www.flowable.org/docs/userguide/index.html#flowableModelerApp[Flowable Modeler^], is also available.
 
 [.text-center]
-image::userWorkflow.png[title="Default Activiti user workflow",alt="Default Activiti user workflow"] 
+image::userWorkflow.png[title="Default Flowable user workflow",alt="Default Flowable user workflow"] 
 
-Besides Activiti, new workflow engines - possibly integrating with third-party tools as 
+Besides Flowable, new workflow engines - possibly integrating with third-party tools as 
 https://camunda.org/[Camunda^] or http://jbpm.jboss.org/[jBPM^], can be written and plugged into specific deployments.
 
 ==== Persistence
 
 All data (users, groups, attributes, resources, ...) is internally managed at a high level using a standard 
-https://en.wikipedia.org/wiki/Java_Persistence_API[JPA 2.0^] approach. The data is persisted into an underlying 
+https://en.wikipedia.org/wiki/Java_Persistence_API[JPA 2.0^] approach based on http://openjpa.apache.org[Apache OpenJPA^].
+The data is persisted into an underlying 
 database, referred to as *_Internal Storage_*. Consistency is ensured via the comprehensive
 http://docs.spring.io/spring/docs/4.2.x/spring-framework-reference/html/transaction.html[transaction management^] 
 provided by the Spring Framework.
diff --git a/src/main/asciidoc/reference-guide/workingwithapachesyncope/customization.adoc b/src/main/asciidoc/reference-guide/workingwithapachesyncope/customization.adoc
index 785f2da..cd846db 100644
--- a/src/main/asciidoc/reference-guide/workingwithapachesyncope/customization.adoc
+++ b/src/main/asciidoc/reference-guide/workingwithapachesyncope/customization.adoc
@@ -30,9 +30,8 @@ Once the project has been created from the provided Maven archetype, the generat
 adding new features or replacing existing components.
 
 [[override-behavior]]
-[TIP]
 .Override behavior
-====
+****
 As a rule of thumb, any file of the local project will take precedence over a file with the same name in the same
 directory of the standard Apache Syncope release.
 
@@ -45,7 +44,7 @@ ifeval::["{snapshotOrRelease}" == "release"]
 https://github.com/apache/syncope/blob/syncope-{docVersion}/core/spring/src/main/java/org/apache/syncope/core/spring/security/SyncopeAuthenticationProvider.java[SyncopeAuthenticationProvider^].
 endif::[]
 ifeval::["{snapshotOrRelease}" == "snapshot"]
-https://github.com/apache/syncope/tree/2_0_X/core/spring/src/main/java/org/apache/syncope/core/spring/security/SyncopeAuthenticationProvider.java[SyncopeAuthenticationProvider^].
+https://github.com/apache/syncope/blob/2_0_X/core/spring/src/main/java/org/apache/syncope/core/spring/security/SyncopeAuthenticationProvider.java[SyncopeAuthenticationProvider^].
 endif::[]
 
 The same happens with resources as images or HTML files; if you place
@@ -57,11 +56,43 @@ ifeval::["{snapshotOrRelease}" == "release"]
 https://github.com/apache/syncope/blob/syncope-{docVersion}/client/console/src/main/resources/org/apache/syncope/client/console/pages/BasePage.html[BasePage.html^].
 endif::[]
 ifeval::["{snapshotOrRelease}" == "snapshot"]
-https://github.com/apache/syncope/tree/2_0_X/client/console/src/main/resources/org/apache/syncope/client/console/pages/BasePage.html[BasePage.html^].
+https://github.com/apache/syncope/blob/2_0_X/client/console/src/main/resources/org/apache/syncope/client/console/pages/BasePage.html[BasePage.html^].
 endif::[]
 
-This general behavior might have exceptions, as highlighted below.
-====
+This general behavior might have exceptions: when you need to customize one of the Spring context definitions, say
+ifeval::["{snapshotOrRelease}" == "release"]
+https://github.com/apache/syncope/blob/syncope-{docVersion}/core/spring/src/main/resources/securityContext.xml[securityContext.xml^]
+endif::[]
+ifeval::["{snapshotOrRelease}" == "snapshot"]
+https://github.com/apache/syncope/blob/2_0_X/core/spring/src/main/resources/securityContext.xml[securityContext.xml^]
+endif::[]
+for example, you will also need to replace the following text in `core/src/main/webapp/WEB-INF/web.xml`,
+
+....
+classpath*:/coreContext.xml
+classpath*:/securityContext.xml
+classpath*:/logicContext.xml
+classpath*:/restCXFContext.xml
+classpath*:/persistenceContext.xml
+classpath*:/provisioning*Context.xml
+classpath*:/workflow*Context.xml
+....
+
+with
+
+....
+classpath*:/coreContext.xml
+classpath:/securityContext.xml
+classpath*:/logicContext.xml
+classpath*:/restCXFContext.xml
+classpath*:/persistenceContext.xml
+classpath*:/provisioning*Context.xml
+classpath*:/workflow*Context.xml
+....
+
+to be sure that `core/src/main/resources/securityContext.xml` is picked up. +
+Please also note that the actual list of Spring context files to include might depend on the configured extensions.
+****
 
 In general, the Embedded Mode (see the
 ifeval::["{backend}" == "html5"]
@@ -164,10 +195,9 @@ straightforward: just add the `<profile>` below to `enduser/pom.xml`:
 Now, from the `enduser` subdirectory, execute:
 
 [source,bash]
-mvn -P embedded,debug
+$ mvn -P embedded,debug
 
-At this point your favourite IDE can be attached to the port `8000`; please note that you might need to add
-`-XX:MaxPermSize=512m` to `<cargo.jvmargs>` in order to run with JDK 7.
+At this point your favourite IDE can be attached to the port `8000`.
 ====
 
 [[customization-core]]
@@ -178,8 +208,8 @@ When providing custom Java classes implementing the defined interfaces or extend
 implementations, their package *must* be rooted under `org.apache.syncope.core`, otherwise they will not be available
 at runtime.
 
-Besides replacing existing classes as explained <<override-behavior,above>>, new implementations can be provided under
-`core/src/main/java` for the following components:
+Besides replacing existing classes as explained <<override-behavior,above>>, new <<implementations,implementations>> can
+be provided - under `core/src/main/java` if Java - for the following components:
 
 * <<propagationactions,propagation>>, <<pushactions,push>>, <<pullactions,pull>> and <<logicactions,logic>> actions
 * <<push-correlation-rules,push>> / <<pull-correlation-rules,pull>> correlation rules
@@ -196,54 +226,16 @@ Besides replacing existing classes as explained <<override-behavior,above>>, new
 * <<jwtssoprovider,JWT SSO providers>>
 * <<audit-appenders, audit appenders>>
 
-[[new-rest-endpoints]]
-[TIP]
-.New REST endpoints
-====
-Adding a new REST endpoint involves several operations:
+[discrete]
+===== Customize OpenJPA settings
 
-. create - in an extension's `rest-api` module or under `common` otherwise - a Java interface with package
-`org.apache.syncope.common.rest.api.service` and proper JAX-RS annotations; check
-ifeval::["{snapshotOrRelease}" == "release"]
-https://github.com/apache/syncope/blob/syncope-{docVersion}/ext/camel/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/CamelRouteService.java[CamelRouteService^]
-endif::[]
-ifeval::["{snapshotOrRelease}" == "snapshot"]
-https://github.com/apache/syncope/tree/2_0_X/ext/camel/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/CamelRouteService.java[CamelRouteService^]
-endif::[]
-for reference;
-. if needed, define supporting payload objects - in an extension's `common-lib` module or under `common` otherwise;
-check
-ifeval::["{snapshotOrRelease}" == "release"]
-https://github.com/apache/syncope/blob/syncope-{docVersion}/ext/camel/common-lib/src/main/java/org/apache/syncope/common/lib/to/CamelRouteTO.java[CamelRouteTO^]
-endif::[]
-ifeval::["{snapshotOrRelease}" == "snapshot"]
-https://github.com/apache/syncope/tree/2_0_X/ext/camel/common-lib/src/main/java/org/apache/syncope/common/lib/to/CamelRouteTO.java[CamelRouteTO^]
-endif::[]
-for reference;
-. implement - in an extension's `rest-cxf` module or under `core` otherwise -  the interface defined above in a Java
-class with package `org.apache.syncope.core.rest.cxf.service`; check
-ifeval::["{snapshotOrRelease}" == "release"]
-https://github.com/apache/syncope/blob/syncope-{docVersion}/ext/camel/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/service/CamelRouteServiceImpl.java[CamelRouteServiceImpl^]
-endif::[]
-ifeval::["{snapshotOrRelease}" == "snapshot"]
-https://github.com/apache/syncope/tree/2_0_X/ext/camel/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/service/CamelRouteServiceImpl.java[CamelRouteServiceImpl^]
-endif::[]
-for reference.
+Apache OpenJPA is at the core of the <<persistence,persistence>> layer; its configuration can be tweaked under several
+aspects - including http://openjpa.apache.org/builds/2.4.3/apache-openjpa/docs/ref_guide_caching.html[caching^] for
+example, to best suit the various environments.
 
-By following such conventions, the new REST endpoint will be automatically picked up alongside the default services.
-====
+In case you need to alter the standard settings provided, proceed as follows.
 
-[WARNING]
-====
-The <<override-behavior,override behavior>> might have exceptions; if you need to customize one of the
-Spring context definitions. For example, if you want to customize 
-ifeval::["{snapshotOrRelease}" == "release"]
-https://github.com/apache/syncope/blob/syncope-{docVersion}/core/spring/src/main/resources/securityContext.xml[securityContext.xml^]
-endif::[]
-ifeval::["{snapshotOrRelease}" == "snapshot"]
-https://github.com/apache/syncope/tree/2_0_X/core/spring/src/main/resources/securityContext.xml[securityContext.xml^]
-endif::[]
-, you will also need to replace the following text in `core/src/main/webapp/WEB-INF/web.xml`,
+Replace
 
 ....
 classpath*:/coreContext.xml
@@ -259,34 +251,92 @@ with
 
 ....
 classpath*:/coreContext.xml
-classpath:/securityContext.xml
+classpath*:/securityContext.xml
 classpath*:/logicContext.xml
-classpath*:/restCXFContext.xml
-classpath*:/persistenceContext.xml
+classpath:/restCXFContext.xml
+classpath:/persistenceContext.xml
 classpath*:/provisioning*Context.xml
 classpath*:/workflow*Context.xml
 ....
 
-to be sure that `core/src/main/resources/securityContext.xml` is picked up. +
-Please also note that the actual list of Spring context files to include might depend on the configured extensions.
+in `core/src/main/webapp/WEB-INF/web.xml`.
+
+Download
+ifeval::["{snapshotOrRelease}" == "release"]
+https://github.com/apache/syncope/blob/syncope-{docVersion}/core/persistence-jpa/src/main/resources/persistenceContext.xml[persistenceContext.xml^]
+endif::[]
+ifeval::["{snapshotOrRelease}" == "snapshot"]
+https://github.com/apache/syncope/blob/2_0_X/core/persistence-jpa/src/main/resources/persistenceContext.xml[persistenceContext.xml^]
+endif::[]
+and save it under `core/src/main/resources/`.
+
+Download
+ifeval::["{snapshotOrRelease}" == "release"]
+https://github.com/apache/syncope/blob/syncope-{docVersion}/core/persistence-jpa/src/main/resources/domains.xml
+endif::[]
+ifeval::["{snapshotOrRelease}" == "snapshot"]
+https://github.com/apache/syncope/blob/2_0_X/core/persistence-jpa/src/main/resources/domains.xml[domains.xml^]
+endif::[]
+and save it under `core/src/main/resources/`.
+
+Now you can add any OpenJPA configuration property in one of domains configuration files as
+`core/src/main/resources/domains/MasterDomain.xml` as follows, for the `EntityManagerFactory` bean:
+
+[source,xml]
+....
+<property name="jpaPropertyMap">
+  <map>
+    <entry key="openjpa.DataCache" value="true(Lru=true)"/>
+    <entry key="openjpa.QueryCache" value="true(Lru=true)"/>
+  </map>
+</property>
+....
+
+[WARNING]
+====
+The OpenJPA documentation's XML snippets refer to a different configuration style; for example, when used in
+one of domains configuration files as `MasterDomain.xml`, this:
+
+[source,xml]
+....
+<property name="openjpa.DataCache" value="true"/>
+....
+
+becomes:
+
+[source,xml]
+....
+<entry key="openjpa.DataCache" value="true"/>
+....
 ====
 
 [discrete]
-===== Select the <<activiti-user-workflow-adapter>>
+===== Select the <<flowable-user-workflow-adapter>>
 
 Add the following dependency to `core/pom.xml`:
 
 [source,xml,subs="verbatim,attributes"]
 ----
 <dependency>
-  <groupId>org.apache.syncope.core</groupId>
-  <artifactId>syncope-core-workflow-activiti</artifactId>
+  <groupId>org.apache.syncope.ext.flowable</groupId>
+  <artifactId>syncope-ext-flowable-rest-cxf</artifactId>
   <version>${syncope.version}</version>
 </dependency>
 ----
 
 Copy `core/src/main/resources/all/workflow.properties` to `core/src/main/resources/workflow.properties`.
 
+Add the following dependency to `console/pom.xml`:
+
+[source,xml,subs="verbatim,attributes"]
+----
+<dependency>
+  <groupId>org.apache.syncope.ext.flowable</groupId>
+  <artifactId>syncope-ext-flowable-client-console</artifactId>
+  <version>${syncope.version}</version>
+</dependency>
+----
+
 [discrete]
 ===== Enable the <<apache-camel-provisioning-manager>>
 
@@ -373,9 +423,6 @@ Add the following dependencies to `core/pom.xml`:
 [discrete]
 ===== Enable the <<elasticsearch>> extension
 
-[WARNING]
-This extension requires the latest JDK 8 that is available.
-
 Add the following dependencies to `core/pom.xml`:
 
 [source,xml,subs="verbatim,attributes"]
@@ -459,6 +506,40 @@ Add the following dependencies to `core/pom.xml`:
 </dependency>
 ----
 
+[discrete]
+===== New REST endpoints
+Adding a new REST endpoint involves several operations:
+
+. create - in an extension's `rest-api` module or under `common` otherwise - a Java interface with package
+`org.apache.syncope.common.rest.api.service` and proper JAX-RS annotations; check
+ifeval::["{snapshotOrRelease}" == "release"]
+https://github.com/apache/syncope/blob/syncope-{docVersion}/ext/camel/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/CamelRouteService.java[CamelRouteService^]
+endif::[]
+ifeval::["{snapshotOrRelease}" == "snapshot"]
+https://github.com/apache/syncope/blob/2_0_X/ext/camel/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/CamelRouteService.java[CamelRouteService^]
+endif::[]
+for reference;
+. if needed, define supporting payload objects - in an extension's `common-lib` module or under `common` otherwise;
+check
+ifeval::["{snapshotOrRelease}" == "release"]
+https://github.com/apache/syncope/blob/syncope-{docVersion}/ext/camel/common-lib/src/main/java/org/apache/syncope/common/lib/to/CamelRouteTO.java[CamelRouteTO^]
+endif::[]
+ifeval::["{snapshotOrRelease}" == "snapshot"]
+https://github.com/apache/syncope/blob/2_0_X/ext/camel/common-lib/src/main/java/org/apache/syncope/common/lib/to/CamelRouteTO.java[CamelRouteTO^]
+endif::[]
+for reference;
+. implement - in an extension's `rest-cxf` module or under `core` otherwise -  the interface defined above in a Java
+class with package `org.apache.syncope.core.rest.cxf.service`; check
+ifeval::["{snapshotOrRelease}" == "release"]
+https://github.com/apache/syncope/blob/syncope-{docVersion}/ext/camel/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/service/CamelRouteServiceImpl.java[CamelRouteServiceImpl^]
+endif::[]
+ifeval::["{snapshotOrRelease}" == "snapshot"]
+https://github.com/apache/syncope/blob/2_0_X/ext/camel/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/service/CamelRouteServiceImpl.java[CamelRouteServiceImpl^]
+endif::[]
+for reference.
+
+By following such conventions, the new REST endpoint will be automatically picked up alongside the default services.
+
 [[customization-console]]
 ==== Console
 
@@ -953,5 +1034,5 @@ In case it is necessary to change those identifiers, remember to edit all refere
 <<extensions>> can be part of a local project, to encapsulate special features which are specific to a given deployment.
 
 For example, the http://www.chorevolution.eu/[CHOReVOLUTION^] IdM - based on Apache Syncope - provides
-https://gitlab.ow2.org/chorevolution/syncope/tree/master/ext/choreography[an extension^]
-for managing via the <<core>> and visualizing via the <<admin-console-component>> the running choreography instances.
\ No newline at end of file
+https://gitlab.ow2.org/chorevolution/syncope/tree/2_0_X/ext/choreography[an extension^]
+for managing via the <<core>> and visualizing via the <<admin-console-component>> the running choreography instances.
diff --git a/src/main/asciidoc/reference-guide/workingwithapachesyncope/systemadministration/highavailability.adoc b/src/main/asciidoc/reference-guide/workingwithapachesyncope/systemadministration/highavailability.adoc
index 6947df2..2740199 100644
--- a/src/main/asciidoc/reference-guide/workingwithapachesyncope/systemadministration/highavailability.adoc
+++ b/src/main/asciidoc/reference-guide/workingwithapachesyncope/systemadministration/highavailability.adoc
@@ -40,7 +40,7 @@ see the OpenJPA documentation for reference.
 [WARNING]
 ====
 The http://openjpa.apache.org/builds/2.4.3/apache-openjpa/docs/ref_guide_event.html[OpenJPA documentation^]'s XML
-snippets refer to a different configuration style; for example, when used in persistence.properties`, this:
+snippets refer to a different configuration style; for example, when used in `persistence.properties`, this:
 
 [source,xml]
 ....
diff --git a/src/main/asciidoc/reference-guide/workingwithapachesyncope/systemadministration/javaeecontainer.adoc b/src/main/asciidoc/reference-guide/workingwithapachesyncope/systemadministration/javaeecontainer.adoc
index ea0abc1..09335c0 100644
--- a/src/main/asciidoc/reference-guide/workingwithapachesyncope/systemadministration/javaeecontainer.adoc
+++ b/src/main/asciidoc/reference-guide/workingwithapachesyncope/systemadministration/javaeecontainer.adoc
@@ -18,23 +18,22 @@
 //
 ==== JavaEE Container
 
-===== Apache Tomcat 8 and 8.5
+===== Apache Tomcat 9
 
 On GNU / Linux - Mac OS X, create `$CATALINA_HOME/bin/setenv.sh` with similar content
 (keep everything on a single line):
 
 ....
 JAVA_OPTS="-Djava.awt.headless=true -Dfile.encoding=UTF-8 -server \
--Xms1536m -Xmx1536m -XX:NewSize=256m -XX:MaxNewSize=256m -XX:PermSize=256m \
--XX:MaxPermSize=256m -XX:+DisableExplicitGC -Djava.security.egd=file:/dev/./urandom"
+-Xms1536m -Xmx1536m -XX:NewSize=256m -XX:MaxNewSize=256m -XX:+DisableExplicitGC \
+-Djava.security.egd=file:/dev/./urandom"
 ....
 
 On MS Windows, create `%CATALINA_HOME%\bin\setenv.bat` with similar content (keep everything on a single line):
 
 ....
 set JAVA_OPTS=-Djava.awt.headless=true -Dfile.encoding=UTF-8 -server
--Xms1536m -Xmx1536m -XX:NewSize=256m -XX:MaxNewSize=256m -XX:PermSize=256m
--XX:MaxPermSize=256m -XX:+DisableExplicitGC
+-Xms1536m -Xmx1536m -XX:NewSize=256m -XX:MaxNewSize=256m -XX:+DisableExplicitGC
 ....
 
 It is recommended to define a separate datasource for each <<domains,domain>> (the following example is for the `Master`
@@ -59,7 +58,41 @@ domain and MySQL): please also check that the connection parameters are the same
 [CAUTION]
 Be sure to put the corresponding JDBC driver JAR file under `$CATALINA_HOME/lib` for each datasource defined.
 
-===== Glassfish 4.1 and Payara Server
+===== Glassfish 5 and Payara Server 5
+
+Replace
+
+[source,xml]
+....
+    <dependency>
+      <groupId>org.apache.syncope.core</groupId>
+      <artifactId>syncope-core-persistence-jpa</artifactId>
+    </dependency>
+....
+
+with
+
+[source,xml]
+....
+    <dependency>
+      <groupId>org.apache.syncope.core</groupId>
+      <artifactId>syncope-core-persistence-jpa</artifactId>
+      <version>${syncope.version}</version>
+      <exclusions>
+        <exclusion>
+          <groupId>org.apache.bval</groupId>
+          <artifactId>bval-jsr</artifactId>
+        </exclusion>
+      </exclusions>
+    </dependency>
+    <dependency>
+      <groupId>org.hibernate.validator</groupId>
+      <artifactId>hibernate-validator</artifactId>
+      <version>6.0.11.Final</version>
+    </dependency>
+....
+
+in `core/pom.xml`.
 
 When using a datasource for internal storage, be sure to add
 
@@ -83,7 +116,7 @@ For better performance under GNU / Linux, do not forget to include
 among JVM options.
 ====
 
-===== Wildfly 9 and 10
+===== Wildfly 14
 
 Add
 
@@ -149,25 +182,25 @@ ifeval::["{snapshotOrRelease}" == "release"]
 https://github.com/apache/syncope/blob/syncope-{docVersion}/fit/core-reference/src/main/resources/jboss/restCXFContext.xml[restCXFContext.xml^]
 endif::[]
 ifeval::["{snapshotOrRelease}" == "snapshot"]
-https://github.com/apache/syncope/tree/2_0_X/fit/core-reference/src/main/resources/jboss/restCXFContext.xml[restCXFContext.xml^]
+https://github.com/apache/syncope/blob/2_0_X/fit/core-reference/src/main/resources/jboss/restCXFContext.xml[restCXFContext.xml^]
 endif::[]
 and save it under `core/src/main/resources/`.
 
 Download
 ifeval::["{snapshotOrRelease}" == "release"]
-https://github.com/apache/syncope/blob/syncope-{docVersion}/fit/core-reference/src/main/resources/jboss/domains.xml[domains.xml^]
+https://github.com/apache/syncope/blob/syncope-{docVersion}/core/persistence-jpa/src/main/resources/persistenceContext.xml[persistenceContext.xml^]
 endif::[]
 ifeval::["{snapshotOrRelease}" == "snapshot"]
-https://github.com/apache/syncope/blob/2_0_X/fit/core-reference/src/main/resources/jboss/domains.xml[domains.xml^]
+https://github.com/apache/syncope/blob/2_0_X/core/persistence-jpa/src/main/resources/persistenceContext.xml[persistenceContext.xml^]
 endif::[]
 and save it under `core/src/main/resources/`.
 
 Download
 ifeval::["{snapshotOrRelease}" == "release"]
-https://github.com/apache/syncope/blob/syncope-{docVersion}/core/persistence-jpa/src/main/resources/persistenceContext.xml[persistenceContext.xml^]
+https://github.com/apache/syncope/blob/syncope-{docVersion}/fit/core-reference/src/main/resources/jboss/domains.xml[domains.xml^]
 endif::[]
 ifeval::["{snapshotOrRelease}" == "snapshot"]
-https://github.com/apache/syncope/blob/2_0_X/core/persistence-jpa/src/main/resources/persistenceContext.xml[persistenceContext.xml^]
+https://github.com/apache/syncope/blob/2_0_X/fit/core-reference/src/main/resources/jboss/domains.xml[domains.xml^]
 endif::[]
 and save it under `core/src/main/resources/`.