You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@syncope.apache.org by Stéphane Popoff <st...@spopoff.net> on 2026/04/16 12:56:10 UTC
spring AutoConfigurationClass.getAnnotationMetadata neo4j
Hi,
I'm trying to activate the persistence system neo4j in place of any SQL server.
To do that I change the content of the file
resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
and put :
- org.apache.syncope.core.persistence.neo4j.PersistenceContext
- org.apache.syncope.core.persistence.neo4j.MasterDomain
- org.neo4j.driver.Driver
I also change the core.properties to define the source and secret for
the Aura NEO4J database.
Of course I add the dependencies needed for neo4j in the CORE pom.xml [1]
What is strange, is that spring tries to find meta-data information
directly in class files that should be generated in a classes
directory and fails.
The same is not required when using a jpa persistence, spring analyzes
meta-data through the jar via the classpath.
Of course I can add the java source file (PersistenceContext,
MasterDomain) in the CORE to generate class files, but other problems
appear.
Do you have an idea(s) why spring changes the way to look for
meta-data in that case ?
Best regards,
Stéphane POPOFF
[1]
<dependency>
<groupId>org.apache.syncope.core</groupId>
<artifactId>syncope-core-persistence-neo4j</artifactId>
<version>4.1.0</version>
</dependency>
<dependency>
<groupId>org.neo4j.driver</groupId>
<artifactId>neo4j-java-driver</artifactId>
<version>5.28.10</version>
</dependency>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-neo4j</artifactId>
<version>7.5.1</version>
</dependency>
<dependency>
<groupId>org.neo4j</groupId>
<artifactId>neo4j-cypher-dsl</artifactId>
<version>2025.2.6</version>
</dependency>
Re: spring AutoConfigurationClass.getAnnotationMetadata neo4j
Posted by Stéphane Popoff <st...@spopoff.net>.
Hi,
Thanks, but I think I'll wait till a proper profile for neo4j appears
in the FIT for the docker mode.
Actually it's too confusing for me between all the core-xxx.properties
that mix information of persistence and configuration independent of
the datasource.
Of course I can understand that an Object Oriented DataBase isn't the
priority for now.
Best regards,
Stéphane POPOFF
Le ven. 24 avr. 2026 à 12:24, Francesco Chicchiriccò
<il...@apache.org> a écrit :
>
> FYI https://nightlies.apache.org/syncope/4_1_X/reference-guide.html#neo4j
>
> (recently added to the doc but working with any 4.0.x and 4.1.x release)
>
> On 24/04/26 12:22, Andrea Patricelli wrote:
>
> Hi Stéphane,
>
> no, that dependency it is not enough, if you look at the pom.xml these are the needed dependencies
>
> <dependencies>
> <dependency>
> <groupId>org.apache.syncope.core</groupId>
> <artifactId>syncope-core-self-keymaster-starter</artifactId>
> <version>${project.version}</version>
> <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>${project.version}</version>
> </dependency>
> </dependencies>
>
> Best regards,
> Andrea
>
> Il 20/04/26 20:07, Stéphane Popoff ha scritto:
>
> Hi Andrea,
>
> Thanks for the help, but I still have errors when starting the
> KeyMaster as a Neo4j (see logs [2]).
> I understand that this declaration [1] is the key to change jpa to
> neo4j but is it suffisant ?
>
> Best regards,
>
> Stéphane POPOFF
> [1]
> <dependency>
> <groupId>org.apache.syncope.core</groupId>
> <artifactId>syncope-core-self-keymaster-starter</artifactId>
> <version>${project.version}</version>
> <exclusions>
> <exclusion>
> <groupId>org.apache.syncope.core</groupId>
> <artifactId>syncope-core-persistence-jpa</artifactId>
> </exclusion>
> </exclusions>
> </dependency>
>
> [2]
> 2026-04-20 17:57:21.477 INFO [ main]
> org.apache.syncope.core.starter.SyncopeCoreApplication :
> Starting SyncopeCoreApplication v4.1.0 using Java 25.0.2 with PID 7
> (/opt/syncope/lib/syncope.jar started by syncope in /)
> 2026-04-20 17:57:21.492 INFO [ main]
> org.apache.syncope.core.starter.SyncopeCoreApplication : The
> following 2 profiles are active: "embedded", "all"
> 2026-04-20 17:57:28.884 INFO [ main]
> org.springframework.boot.web.embedded.tomcat.TomcatWebServer : Tomcat
> initialized with port 8080 (http)
> 2026-04-20 17:57:28.918 INFO [ main]
> org.apache.coyote.http11.Http11NioProtocol :
> Initializing ProtocolHandler ["http-nio-8080"]
> 2026-04-20 17:57:28.926 INFO [ main]
> org.apache.catalina.core.StandardService :
> Starting service [Tomcat]
> 2026-04-20 17:57:28.927 INFO [ main]
> org.apache.catalina.core.StandardEngine :
> Starting Servlet engine: [Apache Tomcat/10.1.53]
> 2026-04-20 17:57:29.023 INFO [ main]
> .catalina.core.ContainerBase.[Tomcat].[localhost].[/syncope] :
> Initializing Spring embedded WebApplicationContext
> 2026-04-20 17:57:29.025 INFO [ main]
> .boot.web.servlet.context.ServletWebServerApplicationContext : Root
> WebApplicationContext: initialization completed in 5906 ms
> 2026-04-20 17:57:36.299 WARN [ main]
> t.context.AnnotationConfigServletWebServerApplicationContext :
> Exception encountered during context initialization - cancelling
> refresh attempt:
> org.springframework.beans.factory.UnsatisfiedDependencyException:
> Error creating bean with name 'keymasterStart' defined in
> org.apache.syncope.core.starter.SyncopeCoreApplication: Unsatisfied
> dependency expressed through method 'keymasterStart' parameter 0:
> Error creating bean with name 'commonEMFConf' defined in class path
> resource [org/apache/syncope/core/persistence/jpa/PersistenceContext.class]:
> Unsatisfied dependency expressed through method 'commonEMFConf'
> parameter 1: Error creating bean with name 'MasterDataSource' defined
> in class path resource [org/apache/syncope/core/persistence/jpa/Maste
>
> Le lun. 20 avr. 2026 à 12:34, Andrea Patricelli
> <an...@apache.org> a écrit :
>
> Hi Stéphane,
>
> in order to enable neo4j I'd suggest to start as simple and clean
> (archetype I mean) as possible, without manually changing spring
> autoconfiguration imports or adding neo4j maven dependencies.
>
> To have an idea on how correctly configure Syncope please refer to the
> neo4j-it profile [1] in source code and to sample core configurations
> here [2].
>
> Please also bear in mind that you have also to load the correct
> configurations for persistence startup, available here [3].
>
> HTH,
> Andrea
>
> [1]
> https://github.com/apache/syncope/blob/syncope-4.1.0/fit/core-reference/pom.xml#L1089-L1217
>
> [2]
> https://github.com/apache/syncope/blob/syncope-4.1.0/fit/core-reference/src/main/resources/core-neo4j.properties
>
> [3]
> https://github.com/apache/syncope/tree/syncope-4.1.0/core/persistence-neo4j/src/test/resources/domains
>
> Il 16/04/26 14:56, Stéphane Popoff ha scritto:
>
> Hi,
>
> I'm trying to activate the persistence system neo4j in place of any SQL server.
> To do that I change the content of the file
> resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
> and put :
> - org.apache.syncope.core.persistence.neo4j.PersistenceContext
> - org.apache.syncope.core.persistence.neo4j.MasterDomain
> - org.neo4j.driver.Driver
> I also change the core.properties to define the source and secret for
> the Aura NEO4J database.
> Of course I add the dependencies needed for neo4j in the CORE pom.xml [1]
>
> What is strange, is that spring tries to find meta-data information
> directly in class files that should be generated in a classes
> directory and fails.
> The same is not required when using a jpa persistence, spring analyzes
> meta-data through the jar via the classpath.
> Of course I can add the java source file (PersistenceContext,
> MasterDomain) in the CORE to generate class files, but other problems
> appear.
>
> Do you have an idea(s) why spring changes the way to look for
> meta-data in that case ?
>
> Best regards,
>
> Stéphane POPOFF
>
> [1]
> <dependency>
> <groupId>org.apache.syncope.core</groupId>
> <artifactId>syncope-core-persistence-neo4j</artifactId>
> <version>4.1.0</version>
> </dependency>
> <dependency>
> <groupId>org.neo4j.driver</groupId>
> <artifactId>neo4j-java-driver</artifactId>
> <version>5.28.10</version>
> </dependency>
> <dependency>
> <groupId>org.springframework.data</groupId>
> <artifactId>spring-data-neo4j</artifactId>
> <version>7.5.1</version>
> </dependency>
> <dependency>
> <groupId>org.neo4j</groupId>
> <artifactId>neo4j-cypher-dsl</artifactId>
> <version>2025.2.6</version>
> </dependency>
>
> --
> Francesco Chicchiriccò
>
> Tirasa - Open Source Excellence
> http://www.tirasa.net/
>
> Member at The Apache Software Foundation
> Syncope, Cocoon, Olingo, CXF, OpenJPA
> https://about.me/ilgrosso
Re: spring AutoConfigurationClass.getAnnotationMetadata neo4j
Posted by Francesco Chicchiriccò <il...@apache.org>.
FYI https://nightlies.apache.org/syncope/4_1_X/reference-guide.html#neo4j
(recently added to the doc but working with any 4.0.x and 4.1.x release)
On 24/04/26 12:22, Andrea Patricelli wrote:
>
> Hi Stéphane,
>
> no, that dependency it is not enough, if you look at the pom.xml these are the needed dependencies
>
> <dependencies>
> <dependency>
> <groupId>org.apache.syncope.core</groupId>
> <artifactId>syncope-core-self-keymaster-starter</artifactId>
> <version>${project.version}</version>
> <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>${project.version}</version>
> </dependency>
> </dependencies>
>
> Best regards,
> Andrea
>
> Il 20/04/26 20:07, Stéphane Popoff ha scritto:
>> Hi Andrea,
>>
>> Thanks for the help, but I still have errors when starting the
>> KeyMaster as a Neo4j (see logs [2]).
>> I understand that this declaration [1] is the key to change jpa to
>> neo4j but is it suffisant ?
>>
>> Best regards,
>>
>> Stéphane POPOFF
>> [1]
>> <dependency>
>> <groupId>org.apache.syncope.core</groupId>
>> <artifactId>syncope-core-self-keymaster-starter</artifactId>
>> <version>${project.version}</version>
>> <exclusions>
>> <exclusion>
>> <groupId>org.apache.syncope.core</groupId>
>> <artifactId>syncope-core-persistence-jpa</artifactId>
>> </exclusion>
>> </exclusions>
>> </dependency>
>>
>> [2]
>> 2026-04-20 17:57:21.477 INFO [ main]
>> org.apache.syncope.core.starter.SyncopeCoreApplication :
>> Starting SyncopeCoreApplication v4.1.0 using Java 25.0.2 with PID 7
>> (/opt/syncope/lib/syncope.jar started by syncope in /)
>> 2026-04-20 17:57:21.492 INFO [ main]
>> org.apache.syncope.core.starter.SyncopeCoreApplication : The
>> following 2 profiles are active: "embedded", "all"
>> 2026-04-20 17:57:28.884 INFO [ main]
>> org.springframework.boot.web.embedded.tomcat.TomcatWebServer : Tomcat
>> initialized with port 8080 (http)
>> 2026-04-20 17:57:28.918 INFO [ main]
>> org.apache.coyote.http11.Http11NioProtocol :
>> Initializing ProtocolHandler ["http-nio-8080"]
>> 2026-04-20 17:57:28.926 INFO [ main]
>> org.apache.catalina.core.StandardService :
>> Starting service [Tomcat]
>> 2026-04-20 17:57:28.927 INFO [ main]
>> org.apache.catalina.core.StandardEngine :
>> Starting Servlet engine: [Apache Tomcat/10.1.53]
>> 2026-04-20 17:57:29.023 INFO [ main]
>> .catalina.core.ContainerBase.[Tomcat].[localhost].[/syncope] :
>> Initializing Spring embedded WebApplicationContext
>> 2026-04-20 17:57:29.025 INFO [ main]
>> .boot.web.servlet.context.ServletWebServerApplicationContext : Root
>> WebApplicationContext: initialization completed in 5906 ms
>> 2026-04-20 17:57:36.299 WARN [ main]
>> t.context.AnnotationConfigServletWebServerApplicationContext :
>> Exception encountered during context initialization - cancelling
>> refresh attempt:
>> org.springframework.beans.factory.UnsatisfiedDependencyException:
>> Error creating bean with name 'keymasterStart' defined in
>> org.apache.syncope.core.starter.SyncopeCoreApplication: Unsatisfied
>> dependency expressed through method 'keymasterStart' parameter 0:
>> Error creating bean with name 'commonEMFConf' defined in class path
>> resource [org/apache/syncope/core/persistence/jpa/PersistenceContext.class]:
>> Unsatisfied dependency expressed through method 'commonEMFConf'
>> parameter 1: Error creating bean with name 'MasterDataSource' defined
>> in class path resource [org/apache/syncope/core/persistence/jpa/Maste
>>
>> Le lun. 20 avr. 2026 à 12:34, Andrea Patricelli
>> <an...@apache.org> a écrit :
>>> Hi Stéphane,
>>>
>>> in order to enable neo4j I'd suggest to start as simple and clean
>>> (archetype I mean) as possible, without manually changing spring
>>> autoconfiguration imports or adding neo4j maven dependencies.
>>>
>>> To have an idea on how correctly configure Syncope please refer to the
>>> neo4j-it profile [1] in source code and to sample core configurations
>>> here [2].
>>>
>>> Please also bear in mind that you have also to load the correct
>>> configurations for persistence startup, available here [3].
>>>
>>> HTH,
>>> Andrea
>>>
>>> [1]
>>> https://github.com/apache/syncope/blob/syncope-4.1.0/fit/core-reference/pom.xml#L1089-L1217
>>>
>>> [2]
>>> https://github.com/apache/syncope/blob/syncope-4.1.0/fit/core-reference/src/main/resources/core-neo4j.properties
>>>
>>> [3]
>>> https://github.com/apache/syncope/tree/syncope-4.1.0/core/persistence-neo4j/src/test/resources/domains
>>>
>>> Il 16/04/26 14:56, Stéphane Popoff ha scritto:
>>>> Hi,
>>>>
>>>> I'm trying to activate the persistence system neo4j in place of any SQL server.
>>>> To do that I change the content of the file
>>>> resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
>>>> and put :
>>>> - org.apache.syncope.core.persistence.neo4j.PersistenceContext
>>>> - org.apache.syncope.core.persistence.neo4j.MasterDomain
>>>> - org.neo4j.driver.Driver
>>>> I also change the core.properties to define the source and secret for
>>>> the Aura NEO4J database.
>>>> Of course I add the dependencies needed for neo4j in the CORE pom.xml [1]
>>>>
>>>> What is strange, is that spring tries to find meta-data information
>>>> directly in class files that should be generated in a classes
>>>> directory and fails.
>>>> The same is not required when using a jpa persistence, spring analyzes
>>>> meta-data through the jar via the classpath.
>>>> Of course I can add the java source file (PersistenceContext,
>>>> MasterDomain) in the CORE to generate class files, but other problems
>>>> appear.
>>>>
>>>> Do you have an idea(s) why spring changes the way to look for
>>>> meta-data in that case ?
>>>>
>>>> Best regards,
>>>>
>>>> Stéphane POPOFF
>>>>
>>>> [1]
>>>> <dependency>
>>>> <groupId>org.apache.syncope.core</groupId>
>>>> <artifactId>syncope-core-persistence-neo4j</artifactId>
>>>> <version>4.1.0</version>
>>>> </dependency>
>>>> <dependency>
>>>> <groupId>org.neo4j.driver</groupId>
>>>> <artifactId>neo4j-java-driver</artifactId>
>>>> <version>5.28.10</version>
>>>> </dependency>
>>>> <dependency>
>>>> <groupId>org.springframework.data</groupId>
>>>> <artifactId>spring-data-neo4j</artifactId>
>>>> <version>7.5.1</version>
>>>> </dependency>
>>>> <dependency>
>>>> <groupId>org.neo4j</groupId>
>>>> <artifactId>neo4j-cypher-dsl</artifactId>
>>>> <version>2025.2.6</version>
>>>> </dependency>
--
Francesco Chicchiriccò
Tirasa - Open Source Excellence
http://www.tirasa.net/
Member at The Apache Software Foundation
Syncope, Cocoon, Olingo, CXF, OpenJPA
https://about.me/ilgrosso
Re: spring AutoConfigurationClass.getAnnotationMetadata neo4j
Posted by Andrea Patricelli <an...@apache.org>.
Hi Stéphane,
no, that dependency it is not enough, if you look at the pom.xml these
are the needed dependencies
<dependencies>
<dependency>
<groupId>org.apache.syncope.core</groupId>
<artifactId>syncope-core-self-keymaster-starter</artifactId>
<version>${project.version}</version>
<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>${project.version}</version>
</dependency>
</dependencies>
Best regards,
Andrea
Il 20/04/26 20:07, Stéphane Popoff ha scritto:
> Hi Andrea,
>
> Thanks for the help, but I still have errors when starting the
> KeyMaster as a Neo4j (see logs [2]).
> I understand that this declaration [1] is the key to change jpa to
> neo4j but is it suffisant ?
>
> Best regards,
>
> Stéphane POPOFF
> [1]
> <dependency>
> <groupId>org.apache.syncope.core</groupId>
> <artifactId>syncope-core-self-keymaster-starter</artifactId>
> <version>${project.version}</version>
> <exclusions>
> <exclusion>
> <groupId>org.apache.syncope.core</groupId>
> <artifactId>syncope-core-persistence-jpa</artifactId>
> </exclusion>
> </exclusions>
> </dependency>
>
> [2]
> 2026-04-20 17:57:21.477 INFO [ main]
> org.apache.syncope.core.starter.SyncopeCoreApplication :
> Starting SyncopeCoreApplication v4.1.0 using Java 25.0.2 with PID 7
> (/opt/syncope/lib/syncope.jar started by syncope in /)
> 2026-04-20 17:57:21.492 INFO [ main]
> org.apache.syncope.core.starter.SyncopeCoreApplication : The
> following 2 profiles are active: "embedded", "all"
> 2026-04-20 17:57:28.884 INFO [ main]
> org.springframework.boot.web.embedded.tomcat.TomcatWebServer : Tomcat
> initialized with port 8080 (http)
> 2026-04-20 17:57:28.918 INFO [ main]
> org.apache.coyote.http11.Http11NioProtocol :
> Initializing ProtocolHandler ["http-nio-8080"]
> 2026-04-20 17:57:28.926 INFO [ main]
> org.apache.catalina.core.StandardService :
> Starting service [Tomcat]
> 2026-04-20 17:57:28.927 INFO [ main]
> org.apache.catalina.core.StandardEngine :
> Starting Servlet engine: [Apache Tomcat/10.1.53]
> 2026-04-20 17:57:29.023 INFO [ main]
> .catalina.core.ContainerBase.[Tomcat].[localhost].[/syncope] :
> Initializing Spring embedded WebApplicationContext
> 2026-04-20 17:57:29.025 INFO [ main]
> .boot.web.servlet.context.ServletWebServerApplicationContext : Root
> WebApplicationContext: initialization completed in 5906 ms
> 2026-04-20 17:57:36.299 WARN [ main]
> t.context.AnnotationConfigServletWebServerApplicationContext :
> Exception encountered during context initialization - cancelling
> refresh attempt:
> org.springframework.beans.factory.UnsatisfiedDependencyException:
> Error creating bean with name 'keymasterStart' defined in
> org.apache.syncope.core.starter.SyncopeCoreApplication: Unsatisfied
> dependency expressed through method 'keymasterStart' parameter 0:
> Error creating bean with name 'commonEMFConf' defined in class path
> resource [org/apache/syncope/core/persistence/jpa/PersistenceContext.class]:
> Unsatisfied dependency expressed through method 'commonEMFConf'
> parameter 1: Error creating bean with name 'MasterDataSource' defined
> in class path resource [org/apache/syncope/core/persistence/jpa/Maste
>
> Le lun. 20 avr. 2026 à 12:34, Andrea Patricelli
> <an...@apache.org> a écrit :
>> Hi Stéphane,
>>
>> in order to enable neo4j I'd suggest to start as simple and clean
>> (archetype I mean) as possible, without manually changing spring
>> autoconfiguration imports or adding neo4j maven dependencies.
>>
>> To have an idea on how correctly configure Syncope please refer to the
>> neo4j-it profile [1] in source code and to sample core configurations
>> here [2].
>>
>> Please also bear in mind that you have also to load the correct
>> configurations for persistence startup, available here [3].
>>
>> HTH,
>> Andrea
>>
>> [1]
>> https://github.com/apache/syncope/blob/syncope-4.1.0/fit/core-reference/pom.xml#L1089-L1217
>>
>> [2]
>> https://github.com/apache/syncope/blob/syncope-4.1.0/fit/core-reference/src/main/resources/core-neo4j.properties
>>
>> [3]
>> https://github.com/apache/syncope/tree/syncope-4.1.0/core/persistence-neo4j/src/test/resources/domains
>>
>> Il 16/04/26 14:56, Stéphane Popoff ha scritto:
>>> Hi,
>>>
>>> I'm trying to activate the persistence system neo4j in place of any SQL server.
>>> To do that I change the content of the file
>>> resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
>>> and put :
>>> - org.apache.syncope.core.persistence.neo4j.PersistenceContext
>>> - org.apache.syncope.core.persistence.neo4j.MasterDomain
>>> - org.neo4j.driver.Driver
>>> I also change the core.properties to define the source and secret for
>>> the Aura NEO4J database.
>>> Of course I add the dependencies needed for neo4j in the CORE pom.xml [1]
>>>
>>> What is strange, is that spring tries to find meta-data information
>>> directly in class files that should be generated in a classes
>>> directory and fails.
>>> The same is not required when using a jpa persistence, spring analyzes
>>> meta-data through the jar via the classpath.
>>> Of course I can add the java source file (PersistenceContext,
>>> MasterDomain) in the CORE to generate class files, but other problems
>>> appear.
>>>
>>> Do you have an idea(s) why spring changes the way to look for
>>> meta-data in that case ?
>>>
>>> Best regards,
>>>
>>> Stéphane POPOFF
>>>
>>> [1]
>>> <dependency>
>>> <groupId>org.apache.syncope.core</groupId>
>>> <artifactId>syncope-core-persistence-neo4j</artifactId>
>>> <version>4.1.0</version>
>>> </dependency>
>>> <dependency>
>>> <groupId>org.neo4j.driver</groupId>
>>> <artifactId>neo4j-java-driver</artifactId>
>>> <version>5.28.10</version>
>>> </dependency>
>>> <dependency>
>>> <groupId>org.springframework.data</groupId>
>>> <artifactId>spring-data-neo4j</artifactId>
>>> <version>7.5.1</version>
>>> </dependency>
>>> <dependency>
>>> <groupId>org.neo4j</groupId>
>>> <artifactId>neo4j-cypher-dsl</artifactId>
>>> <version>2025.2.6</version>
>>> </dependency>
>> --
>> Andrea Patricelli
>>
>> Tirasa - Open Source Excellence
>> http://www.tirasa.net/
>>
>> PMC Member at The Apache Software Foundation
>> Syncope
>>
--
Andrea Patricelli
Tirasa - Open Source Excellence
http://www.tirasa.net/
PMC Member at The Apache Software Foundation
Syncope
Re: spring AutoConfigurationClass.getAnnotationMetadata neo4j
Posted by Stéphane Popoff <st...@spopoff.net>.
Hi Andrea,
Thanks for the help, but I still have errors when starting the
KeyMaster as a Neo4j (see logs [2]).
I understand that this declaration [1] is the key to change jpa to
neo4j but is it suffisant ?
Best regards,
Stéphane POPOFF
[1]
<dependency>
<groupId>org.apache.syncope.core</groupId>
<artifactId>syncope-core-self-keymaster-starter</artifactId>
<version>${project.version}</version>
<exclusions>
<exclusion>
<groupId>org.apache.syncope.core</groupId>
<artifactId>syncope-core-persistence-jpa</artifactId>
</exclusion>
</exclusions>
</dependency>
[2]
2026-04-20 17:57:21.477 INFO [ main]
org.apache.syncope.core.starter.SyncopeCoreApplication :
Starting SyncopeCoreApplication v4.1.0 using Java 25.0.2 with PID 7
(/opt/syncope/lib/syncope.jar started by syncope in /)
2026-04-20 17:57:21.492 INFO [ main]
org.apache.syncope.core.starter.SyncopeCoreApplication : The
following 2 profiles are active: "embedded", "all"
2026-04-20 17:57:28.884 INFO [ main]
org.springframework.boot.web.embedded.tomcat.TomcatWebServer : Tomcat
initialized with port 8080 (http)
2026-04-20 17:57:28.918 INFO [ main]
org.apache.coyote.http11.Http11NioProtocol :
Initializing ProtocolHandler ["http-nio-8080"]
2026-04-20 17:57:28.926 INFO [ main]
org.apache.catalina.core.StandardService :
Starting service [Tomcat]
2026-04-20 17:57:28.927 INFO [ main]
org.apache.catalina.core.StandardEngine :
Starting Servlet engine: [Apache Tomcat/10.1.53]
2026-04-20 17:57:29.023 INFO [ main]
.catalina.core.ContainerBase.[Tomcat].[localhost].[/syncope] :
Initializing Spring embedded WebApplicationContext
2026-04-20 17:57:29.025 INFO [ main]
.boot.web.servlet.context.ServletWebServerApplicationContext : Root
WebApplicationContext: initialization completed in 5906 ms
2026-04-20 17:57:36.299 WARN [ main]
t.context.AnnotationConfigServletWebServerApplicationContext :
Exception encountered during context initialization - cancelling
refresh attempt:
org.springframework.beans.factory.UnsatisfiedDependencyException:
Error creating bean with name 'keymasterStart' defined in
org.apache.syncope.core.starter.SyncopeCoreApplication: Unsatisfied
dependency expressed through method 'keymasterStart' parameter 0:
Error creating bean with name 'commonEMFConf' defined in class path
resource [org/apache/syncope/core/persistence/jpa/PersistenceContext.class]:
Unsatisfied dependency expressed through method 'commonEMFConf'
parameter 1: Error creating bean with name 'MasterDataSource' defined
in class path resource [org/apache/syncope/core/persistence/jpa/Maste
Le lun. 20 avr. 2026 à 12:34, Andrea Patricelli
<an...@apache.org> a écrit :
>
> Hi Stéphane,
>
> in order to enable neo4j I'd suggest to start as simple and clean
> (archetype I mean) as possible, without manually changing spring
> autoconfiguration imports or adding neo4j maven dependencies.
>
> To have an idea on how correctly configure Syncope please refer to the
> neo4j-it profile [1] in source code and to sample core configurations
> here [2].
>
> Please also bear in mind that you have also to load the correct
> configurations for persistence startup, available here [3].
>
> HTH,
> Andrea
>
> [1]
> https://github.com/apache/syncope/blob/syncope-4.1.0/fit/core-reference/pom.xml#L1089-L1217
>
> [2]
> https://github.com/apache/syncope/blob/syncope-4.1.0/fit/core-reference/src/main/resources/core-neo4j.properties
>
> [3]
> https://github.com/apache/syncope/tree/syncope-4.1.0/core/persistence-neo4j/src/test/resources/domains
>
> Il 16/04/26 14:56, Stéphane Popoff ha scritto:
> > Hi,
> >
> > I'm trying to activate the persistence system neo4j in place of any SQL server.
> > To do that I change the content of the file
> > resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
> > and put :
> > - org.apache.syncope.core.persistence.neo4j.PersistenceContext
> > - org.apache.syncope.core.persistence.neo4j.MasterDomain
> > - org.neo4j.driver.Driver
> > I also change the core.properties to define the source and secret for
> > the Aura NEO4J database.
> > Of course I add the dependencies needed for neo4j in the CORE pom.xml [1]
> >
> > What is strange, is that spring tries to find meta-data information
> > directly in class files that should be generated in a classes
> > directory and fails.
> > The same is not required when using a jpa persistence, spring analyzes
> > meta-data through the jar via the classpath.
> > Of course I can add the java source file (PersistenceContext,
> > MasterDomain) in the CORE to generate class files, but other problems
> > appear.
> >
> > Do you have an idea(s) why spring changes the way to look for
> > meta-data in that case ?
> >
> > Best regards,
> >
> > Stéphane POPOFF
> >
> > [1]
> > <dependency>
> > <groupId>org.apache.syncope.core</groupId>
> > <artifactId>syncope-core-persistence-neo4j</artifactId>
> > <version>4.1.0</version>
> > </dependency>
> > <dependency>
> > <groupId>org.neo4j.driver</groupId>
> > <artifactId>neo4j-java-driver</artifactId>
> > <version>5.28.10</version>
> > </dependency>
> > <dependency>
> > <groupId>org.springframework.data</groupId>
> > <artifactId>spring-data-neo4j</artifactId>
> > <version>7.5.1</version>
> > </dependency>
> > <dependency>
> > <groupId>org.neo4j</groupId>
> > <artifactId>neo4j-cypher-dsl</artifactId>
> > <version>2025.2.6</version>
> > </dependency>
>
> --
> Andrea Patricelli
>
> Tirasa - Open Source Excellence
> http://www.tirasa.net/
>
> PMC Member at The Apache Software Foundation
> Syncope
>
Re: spring AutoConfigurationClass.getAnnotationMetadata neo4j
Posted by Andrea Patricelli <an...@apache.org>.
Hi Stéphane,
in order to enable neo4j I'd suggest to start as simple and clean
(archetype I mean) as possible, without manually changing spring
autoconfiguration imports or adding neo4j maven dependencies.
To have an idea on how correctly configure Syncope please refer to the
neo4j-it profile [1] in source code and to sample core configurations
here [2].
Please also bear in mind that you have also to load the correct
configurations for persistence startup, available here [3].
HTH,
Andrea
[1]
https://github.com/apache/syncope/blob/syncope-4.1.0/fit/core-reference/pom.xml#L1089-L1217
[2]
https://github.com/apache/syncope/blob/syncope-4.1.0/fit/core-reference/src/main/resources/core-neo4j.properties
[3]
https://github.com/apache/syncope/tree/syncope-4.1.0/core/persistence-neo4j/src/test/resources/domains
Il 16/04/26 14:56, Stéphane Popoff ha scritto:
> Hi,
>
> I'm trying to activate the persistence system neo4j in place of any SQL server.
> To do that I change the content of the file
> resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
> and put :
> - org.apache.syncope.core.persistence.neo4j.PersistenceContext
> - org.apache.syncope.core.persistence.neo4j.MasterDomain
> - org.neo4j.driver.Driver
> I also change the core.properties to define the source and secret for
> the Aura NEO4J database.
> Of course I add the dependencies needed for neo4j in the CORE pom.xml [1]
>
> What is strange, is that spring tries to find meta-data information
> directly in class files that should be generated in a classes
> directory and fails.
> The same is not required when using a jpa persistence, spring analyzes
> meta-data through the jar via the classpath.
> Of course I can add the java source file (PersistenceContext,
> MasterDomain) in the CORE to generate class files, but other problems
> appear.
>
> Do you have an idea(s) why spring changes the way to look for
> meta-data in that case ?
>
> Best regards,
>
> Stéphane POPOFF
>
> [1]
> <dependency>
> <groupId>org.apache.syncope.core</groupId>
> <artifactId>syncope-core-persistence-neo4j</artifactId>
> <version>4.1.0</version>
> </dependency>
> <dependency>
> <groupId>org.neo4j.driver</groupId>
> <artifactId>neo4j-java-driver</artifactId>
> <version>5.28.10</version>
> </dependency>
> <dependency>
> <groupId>org.springframework.data</groupId>
> <artifactId>spring-data-neo4j</artifactId>
> <version>7.5.1</version>
> </dependency>
> <dependency>
> <groupId>org.neo4j</groupId>
> <artifactId>neo4j-cypher-dsl</artifactId>
> <version>2025.2.6</version>
> </dependency>
--
Andrea Patricelli
Tirasa - Open Source Excellence
http://www.tirasa.net/
PMC Member at The Apache Software Foundation
Syncope