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