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

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

commit 486456f65aa8a28d536cce241f69ec2c6da91e81
Author: Francesco Chicchiriccò <[email protected]>
AuthorDate: Fri Apr 17 08:36:27 2026 +0200

    Adding neo4j experimental option to the docs
---
 .../src/test/resources/domains/TwoSecurity.json    |  4 --
 .../src/test/resources/domains/TwoSecurity.json    |  4 --
 pom.xml                                            |  1 +
 .../getting-started/systemRequirements.adoc        |  7 ++-
 .../reference-guide/architecture/core.adoc         |  2 +-
 .../configuration/configuration.adoc               |  2 +-
 .../reference-guide/configuration/deployment.adoc  | 20 +++----
 .../configuration/domainsmanagement.adoc           |  3 +-
 .../configuration/{dbms.adoc => storage.adoc}      | 64 +++++++++++++++++++++-
 .../asciidoc/reference-guide/howto/upgrade.adoc    |  2 +-
 10 files changed, 84 insertions(+), 25 deletions(-)

diff --git a/core/persistence-jpa/src/test/resources/domains/TwoSecurity.json 
b/core/persistence-jpa/src/test/resources/domains/TwoSecurity.json
deleted file mode 100644
index 53e0269b71..0000000000
--- a/core/persistence-jpa/src/test/resources/domains/TwoSecurity.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
-  "password": "2AA60A8FF7FCD473D321E0146AFD9E26DF395147",
-  "cipherAlgorithm": "SHA"
-}
diff --git a/core/persistence-neo4j/src/test/resources/domains/TwoSecurity.json 
b/core/persistence-neo4j/src/test/resources/domains/TwoSecurity.json
deleted file mode 100644
index 53e0269b71..0000000000
--- a/core/persistence-neo4j/src/test/resources/domains/TwoSecurity.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
-  "password": "2AA60A8FF7FCD473D321E0146AFD9E26DF395147",
-  "cipherAlgorithm": "SHA"
-}
diff --git a/pom.xml b/pom.xml
index c98acf47c6..4bc93ef9c3 100644
--- a/pom.xml
+++ b/pom.xml
@@ -2341,6 +2341,7 @@ under the License.
                 <mysql>${docker.mysql.version}</mysql>
                 <mariadb>${docker.mariadb.version}</mariadb>
                 <oracle>${docker.oracle.version}</oracle>
+                <neo4j>${docker.neo4j.version}</neo4j>
                 <postgresqlJDBC>${jdbc.postgresql.version}</postgresqlJDBC>
                 <mysqlJDBC>${jdbc.mysql.version}</mysqlJDBC>
                 <mariadbJDBC>${jdbc.mariadb.version}</mariadbJDBC>
diff --git a/src/main/asciidoc/getting-started/systemRequirements.adoc 
b/src/main/asciidoc/getting-started/systemRequirements.adoc
index 1e751db19d..7532d978fa 100644
--- a/src/main/asciidoc/getting-started/systemRequirements.adoc
+++ b/src/main/asciidoc/getting-started/systemRequirements.adoc
@@ -38,7 +38,7 @@ Apache Syncope {docVersion} is verified with the following 
Jakarta EE containers
 
  . https://tomcat.apache.org/download-10.cgi[Apache Tomcat 10^]
  . https://www.payara.fish/[Payara Server 6^]
- . https://www.wildfly.org/[Wildfly 38^]
+ . https://www.wildfly.org/[Wildfly 39^]
 
 === Internal Storage
 
@@ -48,3 +48,8 @@ Apache Syncope {docVersion} is verified with the recent 
versions of the followin
  . https://mariadb.org/[MariaDB^] (>= {mariadb}, JDBC driver >= {mariadbJDBC})
  . https://www.mysql.com/[MySQL^] (>= {mysql}, JDBC driver >= {mysqlJDBC})
  . https://www.oracle.com/database/index.html[Oracle Database^] (>= {oracle}, 
JDBC driver >= ojdbc11 {oracleJDBC})
+
+[WARNING]
+Persistence support for https://neo4j.com/product/neo4j-graph-database/[Neo4j 
Graph Database^] (>= {neo4j}) is also
+available. +
+While completely functional, the code is not considered stable for production 
environments.
diff --git a/src/main/asciidoc/reference-guide/architecture/core.adoc 
b/src/main/asciidoc/reference-guide/architecture/core.adoc
index 712c6fee1d..2ca963b9f9 100644
--- a/src/main/asciidoc/reference-guide/architecture/core.adoc
+++ b/src/main/asciidoc/reference-guide/architecture/core.adoc
@@ -88,7 +88,7 @@ provided by the Spring Framework.
 
 Globally, this offers the ability to easily scale up to a million entities and 
at the same time allows great portability
 with no code changes: PostgreSQL, MySQL, MariaDB and Oracle are fully supported
-<<dbms,deployment options>>.
+<<internal-storage,deployment options>>.
 
 <<domains>> allow to manage data belonging to different 
https://en.wikipedia.org/wiki/Multitenancy[tenants^] into
 separate database instances.
diff --git a/src/main/asciidoc/reference-guide/configuration/configuration.adoc 
b/src/main/asciidoc/reference-guide/configuration/configuration.adoc
index 39352cce7f..cdeab1759d 100644
--- a/src/main/asciidoc/reference-guide/configuration/configuration.adoc
+++ b/src/main/asciidoc/reference-guide/configuration/configuration.adoc
@@ -46,7 +46,7 @@ was generated, the configuration files will be first searched 
in
 
 include::deployment.adoc[]
 
-include::dbms.adoc[]
+include::storage.adoc[]
 
 include::highavailability.adoc[]
 
diff --git a/src/main/asciidoc/reference-guide/configuration/deployment.adoc 
b/src/main/asciidoc/reference-guide/configuration/deployment.adoc
index 8f8ef97bc6..fc48b7bf43 100644
--- a/src/main/asciidoc/reference-guide/configuration/deployment.adoc
+++ b/src/main/asciidoc/reference-guide/configuration/deployment.adoc
@@ -58,7 +58,7 @@ 
https://docs.spring.io/spring-boot/3.4/reference/features/spring-application.htm
 
 .Run Core application as standalone under GNU / Linux
 ====
-Assuming that the JDBC driver JAR file for the configured <<dbms>> is 
available under `/opt/syncope/lib`,
+Assuming that the JDBC driver JAR file for the configured <<internal-storage>> 
is available under `/opt/syncope/lib`,
 the Core application can be built and run as follows:
 
 [source,bash]
@@ -93,8 +93,8 @@ settings.
 ****
 The <<persistence,internal storage>> is the central place where all data of a 
given <<Core>> deployment are located.
 
-After choosing the appropriate <<DBMS>>, it is of fundamental importance to 
provide an adequate configuration for the
-related database https://en.wikipedia.org/wiki/Connection_pool[connection 
pool^]. 
+After choosing the appropriate technology for <<internal-storage>>, it is of 
fundamental importance to provide an
+adequate configuration for the related database 
https://en.wikipedia.org/wiki/Connection_pool[connection pool^]. 
 
 The database connection pool can be:
 
@@ -106,7 +106,7 @@ for the Master domain.
 Each JavaEE Container provides its own way to accomplish this task:
   * https://tomcat.apache.org/tomcat-10.0-doc/jdbc-pool.html[Apache Tomcat 10^]
   * 
https://docs.payara.fish/community/docs/Technical%20Documentation/Payara%20Server%20Documentation/Server%20Configuration%20And%20Management/JDBC%20Resource%20Management/JDBC.html[Payara
 Server 6^]
-  * https://docs.wildfly.org/38/Admin_Guide.html#DataSource[Wildfly 38^]
+  * https://docs.wildfly.org/39/Admin_Guide.html#DataSource[Wildfly 39^]
 ****
 
 ==== Apache Tomcat 10
@@ -165,11 +165,11 @@ with
     <dependency>
       <groupId>org.apache.syncope.core</groupId>
       <artifactId>syncope-core-starter</artifactId>
-        <exclusions>
-          <exclusion>
-            <groupId>org.apache.tomcat.embed</groupId>
-            <artifactId>tomcat-embed-el</artifactId>
-          </exclusion>
+      <exclusions>
+        <exclusion>
+          <groupId>org.apache.tomcat.embed</groupId>
+          <artifactId>tomcat-embed-el</artifactId>
+        </exclusion>
         <exclusion>
           <groupId>com.github.ben-manes.caffeine</groupId>
           <artifactId>jcache</artifactId>
@@ -213,7 +213,7 @@ For better performance under GNU / Linux, do not forget to 
include the system pr
 ....
 ====
 
-==== Wildfly 38
+==== Wildfly 39
 
 Add
 
diff --git 
a/src/main/asciidoc/reference-guide/configuration/domainsmanagement.adoc 
b/src/main/asciidoc/reference-guide/configuration/domainsmanagement.adoc
index 28363caf4a..2437504aa1 100644
--- a/src/main/asciidoc/reference-guide/configuration/domainsmanagement.adoc
+++ b/src/main/asciidoc/reference-guide/configuration/domainsmanagement.adoc
@@ -18,10 +18,9 @@
 //
 === Domains Management
 
-Besides the pre-defined `Master` domain, other <<domains>> are bootstrapped 
during <<core>> startup from three files
+Besides the pre-defined `Master` domain, other <<domains>> are bootstrapped 
during <<core>> startup from two files
 in the <<properties-files-location,configuration directory>>; assuming that 
the domain name is `Two`, such files are:
 
-* `domains/TwoSecurity.json` - admin credentials;
 * `domains/TwoKeymasterConfParams.json` - for <<keymaster>> initialization;
 * `domains/TwoContent.xml` - for <<import,content>> initialization.
 
diff --git a/src/main/asciidoc/reference-guide/configuration/dbms.adoc 
b/src/main/asciidoc/reference-guide/configuration/storage.adoc
similarity index 79%
rename from src/main/asciidoc/reference-guide/configuration/dbms.adoc
rename to src/main/asciidoc/reference-guide/configuration/storage.adoc
index d1eaf1f812..ebc13e3e27 100644
--- a/src/main/asciidoc/reference-guide/configuration/dbms.adoc
+++ b/src/main/asciidoc/reference-guide/configuration/storage.adoc
@@ -16,7 +16,7 @@
 // specific language governing permissions and limitations
 // under the License.
 //
-=== DBMS
+=== Internal Storage
 
 ==== PostgreSQL
 
@@ -163,3 +163,65 @@ for the Core application.
 [WARNING]
 This assumes that you have an Oracle instance running on localhost, listening 
on its default port 1521 with a database
 `syncope` under tablespace `SYNCOPE`, fully accessible by user `syncope` with 
password `syncope`.
+
+==== Neo4j
+
+[NOTE]
+Apache Syncope {docVersion} is verified with Neo4j Graph Database >= {neo4j}).
+
+[WARNING]
+While completely functional, the code is not considered stable for production 
environments.
+
+Replace
+
+[source,xml]
+....
+    <dependency>
+      <groupId>org.apache.syncope.core</groupId>
+      <artifactId>syncope-core-starter</artifactId>
+    </dependency>
+....
+
+with
+
+[source,xml]
+....
+    <dependency>
+      <groupId>org.apache.syncope.core</groupId>
+      <artifactId>syncope-core-starter</artifactId>
+      <exclusions>
+        <exclusion>
+          <groupId>org.apache.syncope.core</groupId>
+          <artifactId>syncope-core-persistence-jpa</artifactId>          
+        </exclusion>
+      </exclusions>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.syncope.core</groupId>
+      <artifactId>syncope-core-persistence-neo4j</artifactId>
+      <version>${syncope.version}</version>
+    </dependency>
+....
+
+in `core/pom.xml`.
+
+Create
+
+[source]
+....
+persistence.domain[0].key=Master
+persistence.domain[0].uri=bolt://localhost:7687/
+persistence.domain[0].username=neo4j
+persistence.domain[0].password=null
+persistence.domain[0].maxConnectionPoolSize=100
+....
+
+as `core/src/main/resources/core-neo4j.properties`.
+
+Do not forget to include `neo4j` as 
+https://docs.spring.io/spring-boot/3.4/reference/features/profiles.html#features.profiles.adding-active-profiles[Spring
 Boot profile^]
+for the Core application.
+
+[WARNING]
+This assumes that you have a Neo4j instance running on localhost, listening on 
its default port 7687,
+fully accessible by user `neo4j` with no password set.
diff --git a/src/main/asciidoc/reference-guide/howto/upgrade.adoc 
b/src/main/asciidoc/reference-guide/howto/upgrade.adoc
index 6ef590219c..1cebcf8770 100644
--- a/src/main/asciidoc/reference-guide/howto/upgrade.adoc
+++ b/src/main/asciidoc/reference-guide/howto/upgrade.adoc
@@ -31,7 +31,7 @@ Also, ensure to have a full backup of the existing database 
used as <<persistenc
 ==== Persistence Storage upgrade
 
 [CAUTION]
-Ensure to <<dbms,check the compatibility>> of the existing DBMS and upgrade, 
if needed.
+Ensure to <<internal-storage,check the compatibility>> of the existing DBMS 
and upgrade, if needed.
 
 [WARNING]
 ====

Reply via email to