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

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

commit 3996dcefe8e0e71d27d95af4304410aeef41f0c3
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        |  5 ++
 .../reference-guide/architecture/core.adoc         |  9 ++-
 .../configuration/configuration.adoc               |  2 +-
 .../reference-guide/configuration/deployment.adoc  | 18 +++---
 .../configuration/domainsmanagement.adoc           |  3 +-
 .../configuration/{dbms.adoc => storage.adoc}      | 64 +++++++++++++++++++++-
 .../asciidoc/reference-guide/howto/upgrade.adoc    |  2 +-
 10 files changed, 85 insertions(+), 27 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 1ecfebc91f..f4d95cdffe 100644
--- a/pom.xml
+++ b/pom.xml
@@ -2324,6 +2324,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 b99e5c9150..7532d978fa 100644
--- a/src/main/asciidoc/getting-started/systemRequirements.adoc
+++ b/src/main/asciidoc/getting-started/systemRequirements.adoc
@@ -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 e428b53f1a..e3a2b2090c 100644
--- a/src/main/asciidoc/reference-guide/architecture/core.adoc
+++ b/src/main/asciidoc/reference-guide/architecture/core.adoc
@@ -80,16 +80,15 @@ https://camunda.org/[Camunda^] or 
http://jbpm.jboss.org/[jBPM^], can be written
 ==== Persistence
 
 All data (users, groups, attributes, resources, ...) is internally managed at 
a high level using a standard 
-https://en.wikipedia.org/wiki/Jakarta_Persistence[Jakarta Persistence 3.1] 
approach based on
-https://hibernate.org/orm/[Hibernate ORM^].
-The data is persisted into an underlying database, referred to as *_Internal 
Storage_*. Consistency is ensured via the
-comprehensive
+https://en.wikipedia.org/wiki/Jakarta_Persistence[Jakarta Persistence 3.1] 
approach based on https://openjpa.apache.org[Apache OpenJPA^].
+The data is persisted into an underlying
+database, referred to as *_Internal Storage_*. Consistency is ensured via the 
comprehensive
 
https://docs.spring.io/spring-framework/reference/6.2/data-access/transaction.html[transaction
 management^] 
 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 17cd77298c..61e796caf4 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.5/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:
 
@@ -169,11 +169,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>
@@ -217,7 +217,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 f9a1ad7c00..b02160c162 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.5/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 d7c2b8e4c3..b5a380e1b5 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.
 
 Download 
https://syncope.apache.org/downloads[`syncope-core-persistence-jpa-upgrader-{docVersion}.jar`^]:
 this tool will generate the full set of SQL statements required to upgrade the 
internal storage to Syncope 4.1.

Reply via email to