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] ====
