You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@openjpa.apache.org by Francesco Chicchiriccò <il...@apache.org> on 2022/12/27 15:21:51 UTC

Using OpenJPA with Spring Boot 3?

Hi all,
so let's suppone one has the weird idea of adding OpenJPA to a Spring Boot 3 project.

Do we already an idea about how to handle the javax.persistence.*  Vs jakarta.persistence.* conflicts?

Thanks in advance.
Regards.

-- 
Francesco Chicchiriccò

Tirasa - Open Source Excellence
http://www.tirasa.net/

Member at The Apache Software Foundation
Syncope, Cocoon, Olingo, CXF, OpenJPA, PonyMail
http://home.apache.org/~ilgrosso/


Re: Using OpenJPA with Spring Boot 3?

Posted by Romain Manni-Bucau <rm...@gmail.com>.
Yes

Romain Manni-Bucau
@rmannibucau <https://twitter.com/rmannibucau> |  Blog
<https://rmannibucau.metawerx.net/> | Old Blog
<http://rmannibucau.wordpress.com> | Github <https://github.com/rmannibucau> |
LinkedIn <https://www.linkedin.com/in/rmannibucau> | Book
<https://www.packtpub.com/application-development/java-ee-8-high-performance>


Le mar. 27 déc. 2022 à 16:56, Francesco Chicchiriccò <il...@apache.org>
a écrit :

> On 27/12/22 16:50, Maxim Solodovnik wrote:
> > I guess this code should do the job:
> > https://github.com/apache/openjpa/blob/master/openjpa/pom.xml#L100
>
> Agree, but only for openjpa-all as it seems, correct?
>
> Regards.
>
> > On Tue, 27 Dec 2022 at 22:21, Francesco Chicchiriccò
> > <il...@apache.org> wrote:
> >> Hi all,
> >> so let's suppone one has the weird idea of adding OpenJPA to a Spring
> Boot 3 project.
> >>
> >> Do we already an idea about how to handle the javax.persistence.*  Vs
> jakarta.persistence.* conflicts?
> >>
> >> Thanks in advance.
> >> Regards.
>
> --
> Francesco Chicchiriccò
>
> Tirasa - Open Source Excellence
> http://www.tirasa.net/
>
> Member at The Apache Software Foundation
> Syncope, Cocoon, Olingo, CXF, OpenJPA, PonyMail
> http://home.apache.org/~ilgrosso/
>
>

Re: Using OpenJPA with Spring Boot 3?

Posted by Francesco Chicchiriccò <il...@apache.org>.
On 27/12/22 16:50, Maxim Solodovnik wrote:
> I guess this code should do the job:
> https://github.com/apache/openjpa/blob/master/openjpa/pom.xml#L100

Agree, but only for openjpa-all as it seems, correct?

Regards.

> On Tue, 27 Dec 2022 at 22:21, Francesco Chicchiriccò
> <il...@apache.org> wrote:
>> Hi all,
>> so let's suppone one has the weird idea of adding OpenJPA to a Spring Boot 3 project.
>>
>> Do we already an idea about how to handle the javax.persistence.*  Vs jakarta.persistence.* conflicts?
>>
>> Thanks in advance.
>> Regards.

-- 
Francesco Chicchiriccò

Tirasa - Open Source Excellence
http://www.tirasa.net/

Member at The Apache Software Foundation
Syncope, Cocoon, Olingo, CXF, OpenJPA, PonyMail
http://home.apache.org/~ilgrosso/


Re: Using OpenJPA with Spring Boot 3?

Posted by Maxim Solodovnik <so...@gmail.com>.
I guess this code should do the job:
https://github.com/apache/openjpa/blob/master/openjpa/pom.xml#L100

On Tue, 27 Dec 2022 at 22:21, Francesco Chicchiriccò
<il...@apache.org> wrote:
>
> Hi all,
> so let's suppone one has the weird idea of adding OpenJPA to a Spring Boot 3 project.
>
> Do we already an idea about how to handle the javax.persistence.*  Vs jakarta.persistence.* conflicts?
>
> Thanks in advance.
> Regards.
>
> --
> Francesco Chicchiriccò
>
> Tirasa - Open Source Excellence
> http://www.tirasa.net/
>
> Member at The Apache Software Foundation
> Syncope, Cocoon, Olingo, CXF, OpenJPA, PonyMail
> http://home.apache.org/~ilgrosso/
>


-- 
Best regards,
Maxim

Re: Using OpenJPA with Spring Boot 3?

Posted by Francesco Chicchiriccò <il...@apache.org>.
On 28/12/22 10:44, Romain Manni-Bucau wrote:
> A bit from memory so can miss a few details but think adding openjpa with
> jakarta classifier as a dependency of the plugin does the trick.

That's correct, thank you.

Again, FTR:

         <plugin>
           <groupId>org.apache.openjpa</groupId>
<artifactId>openjpa-maven-plugin</artifactId>
           <version>${openjpa.version}</version>
           <dependencies>
             <dependency>
               <groupId>org.apache.openjpa</groupId>
               <artifactId>openjpa</artifactId>
               <version>${openjpa.version}</version>
               <classifier>jakarta</classifier>
             </dependency>
             <dependency>
               <groupId>jakarta.persistence</groupId>
<artifactId>jakarta.persistence-api</artifactId>
               <version>3.1.0</version>
             </dependency>
             <dependency>
               <groupId>jakarta.transaction</groupId>
<artifactId>jakarta.transaction-api</artifactId>
               <version>2.0.1</version>
             </dependency>
           </dependencies>
         </plugin>

Regards.

> Le mer. 28 déc. 2022 à 10:40, Francesco Chicchiriccò <il...@apache.org>
> a écrit :
>
>> Thank you.
>>
>> FTR this is my current setup:
>>
>> root pom.xml:
>>
>>         <dependency>
>>           <groupId>org.apache.openjpa</groupId>
>>           <artifactId>openjpa</artifactId>
>>           <version>${openjpa.version}</version>
>>           <classifier>jakarta</classifier>
>>           <exclusions>
>>             <exclusion>
>>               <groupId>org.apache.xbean</groupId>
>>               <artifactId>xbean-asm9-shaded</artifactId>
>>             </exclusion>
>>             <exclusion>
>>               <groupId>org.apache.commons</groupId>
>>               <artifactId>commons-pool2</artifactId>
>>             </exclusion>
>>             <exclusion>
>> <groupId>org.apache.geronimo.specs</groupId>
>> <artifactId>geronimo-jpa_2.2_spec</artifactId>
>>             </exclusion>
>>             <exclusion>
>> <groupId>org.apache.geronimo.specs</groupId>
>> <artifactId>geronimo-jta_1.1_spec</artifactId>
>>             </exclusion>
>>             <exclusion>
>> <groupId>org.apache.geronimo.specs</groupId>
>> <artifactId>geronimo-jms_1.1_spec</artifactId>
>>             </exclusion>
>>           </exclusions>
>>         </dependency>
>>
>> core/persistence-jpa/pom.xml:
>>
>>       <dependency>
>>         <groupId>jakarta.persistence</groupId>
>>         <artifactId>jakarta.persistence-api</artifactId>
>>       </dependency>
>>       <dependency>
>>         <groupId>jakarta.transaction</groupId>
>>         <artifactId>jakarta.transaction-api</artifactId>
>>       </dependency>
>>       <dependency>
>>         <groupId>org.apache.openjpa</groupId>
>>         <artifactId>openjpa</artifactId>
>>         <classifier>jakarta</classifier>
>>       </dependency>
>>
>> I am having issues now with entity enhancement.
>>
>> I see log messages like as
>>
>> [BuilderThread 0] openjpa.Tool - Enhancer running on type "class
>> org.apache.syncope.core.persistence.jpa.entity.group.JPAGPlainAttr".
>>
>> but afterwards:
>>
>> [BuilderThread 0] openjpa.Tool - No metadata was found for 134 classes;
>> they have been enhanced as persistence-aware. If you intended for any of
>> these classes to be persistence-capable, then this means that OpenJPA could
>> not find any metadata for those classes.
>>
>> I guess this is because of the namespace mismatch between
>> openjpa-maven-plugin and the openjpa dependency as declared above.
>>
>> Regards.
>>
>> On 28/12/22 08:52, Romain Manni-Bucau wrote:
>>> Use
>>>
>> https://repo.maven.apache.org/maven2/org/apache/openjpa/openjpa/3.2.2/openjpa-3.2.2-jakarta.jar
>>> and exclude transitive deps.
>>>
>>> Le mer. 28 déc. 2022 à 08:45, Francesco Chicchiriccò <
>> ilgrosso@apache.org>
>>> a écrit :
>>>
>>>> On 27/12/22 17:14, Romain Manni-Bucau wrote:
>>>>> Yes, think you should either move to openjpa-all shade or generate the
>>>>> class with asm at build time (guess switching the main dep is easier).
>>>> Unfortunately just switching to openjpa-all does not change the errors I
>>>> am reporting below.
>>>>
>>>> When I look inside
>>>>
>>>>
>>>>
>> https://repo1.maven.org/maven2/org/apache/openjpa/openjpa-all/3.2.2/openjpa-all-3.2.2.jar
>>>> what should I be able to see exactly? e.g. what would be the effect of
>> the
>>>> relocation settings in
>>>>
>>>> https://github.com/apache/openjpa/blob/master/openjpa/pom.xml#L100
>>>>
>>>> ?
>>>>
>>>> In case this option is not viable: would you be able to suggest how to
>>>> proceed with asm-based alternative you are mentioning above?
>>>> TIA.
>>>>
>>>> Regards.
>>>>
>>>>> Le mar. 27 déc. 2022 à 17:06, Maxim Solodovnik <so...@gmail.com>
>> a
>>>>> écrit :
>>>>>
>>>>>> Sorry fir top-posting
>>>>>>
>>>>>> Maybe we shall release Jakarta version?
>>>>>> As 4.x for ex?
>>>>>>
>>>>>> from mobile (sorry for typos ;)
>>>>>>
>>>>>>
>>>>>> On Tue, Dec 27, 2022, 23:01 Francesco Chicchiriccò <
>> ilgrosso@apache.org
>>>>>> wrote:
>>>>>>
>>>>>>> On 27/12/22 16:50, Romain Manni-Bucau wrote:
>>>>>>>> Hi,
>>>>>>>>
>>>>>>>> Well I guess the jakarta shade should handle jakarta properly else
>>>> user
>>>>>>> can
>>>>>>>> use what he wants and finally worse case you can still integrate the
>>>>>>>> mapping in spring glue code (not sure you have something particular
>> in
>>>>>>> mind
>>>>>>>> so shouting in the wind ;)).
>>>>>>> For instance, I would like to keep these classes [1] working, but
>> when
>>>> I
>>>>>>> attempt to build it, I am receiving the following errors:
>>>>>>>
>>>>>>> [ERROR]
>>>>>>>
>> /home/ilgrosso/work/syncope/fork/core/persistence-jpa/src/main/java/org/springframework/orm/jpa/vendor/OpenJpaDialect.java:[56,55]
>>>>>>> cannot access javax.persistence.EntityTransaction
>>>>>>> [ERROR]   class file for javax.persistence.EntityTransaction not
>> found
>>>>>>> [ERROR]
>>>>>>>
>> /home/ilgrosso/work/syncope/fork/core/persistence-jpa/src/main/java/org/springframework/orm/jpa/vendor/OpenJpaDialect.java:[89,34]
>>>>>>> no suitable method found for cast(jakarta.persistence.EntityManager)
>>>>>>> [ERROR]     method
>>>>>>>
>> org.apache.openjpa.persistence.OpenJPAPersistence.cast(javax.persistence.EntityManagerFactory)
>>>>>>> is not applicable
>>>>>>> [ERROR]       (argument mismatch; jakarta.persistence.EntityManager
>>>>>> cannot
>>>>>>> be converted to javax.persistence.EntityManagerFactory)
>>>>>>> [ERROR]     method
>>>>>>>
>> org.apache.openjpa.persistence.OpenJPAPersistence.cast(javax.persistence.EntityManager)
>>>>>>> is not applicable
>>>>>>> [ERROR]       (argument mismatch; jakarta.persistence.EntityManager
>>>>>> cannot
>>>>>>> be converted to javax.persistence.EntityManager)
>>>>>>> [ERROR]     method
>>>>>>>
>> org.apache.openjpa.persistence.OpenJPAPersistence.cast(javax.persistence.Query)
>>>>>>> is not applicable
>>>>>>> [ERROR]       (argument mismatch; jakarta.persistence.EntityManager
>>>>>> cannot
>>>>>>> be converted to javax.persistence.Query)
>>>>>>> [ERROR]
>>>>>>>
>> /home/ilgrosso/work/syncope/fork/core/persistence-jpa/src/main/java/org/springframework/orm/jpa/vendor/OpenJpaVendorAdapter.java:[46,61]
>>>>>>> cannot access javax.persistence.spi.PersistenceProvider
>>>>>>> [ERROR]   class file for javax.persistence.spi.PersistenceProvider
>> not
>>>>>>> found
>>>>>>> [ERROR]
>>>>>>>
>> /home/ilgrosso/work/syncope/fork/core/persistence-jpa/src/main/java/org/springframework/orm/jpa/vendor/OpenJpaVendorAdapter.java:[122,46]
>>>>>>> incompatible types:
>>>>>>>
>> java.lang.Class<org.apache.openjpa.persistence.OpenJPAEntityManagerFactorySPI>
>>>>>>> cannot be converted to java.lang.Class<? extends
>>>>>>> jakarta.persistence.EntityManagerFactory>
>>>>>>> [ERROR]
>>>>>>>
>> /home/ilgrosso/work/syncope/fork/core/persistence-jpa/src/main/java/org/springframework/orm/jpa/vendor/OpenJpaVendorAdapter.java:[127,39]
>>>>>>> incompatible types:
>>>>>>>
>> java.lang.Class<org.apache.openjpa.persistence.OpenJPAEntityManagerSPI>
>>>>>>> cannot be converted to java.lang.Class<? extends
>>>>>>> jakarta.persistence.EntityManager>
>>>>>>>
>>>>>>> Given Maxim's and yours answer about openjpa-all, I believe I'll need
>>>> to
>>>>>>> either depend on that or shade OpenJPA artifacts right on Syncope
>> poms:
>>>>>>> correct?
>>>>>>>
>>>>>>> Regards.
>>>>>>>
>>>>>>> [1]
>>>>>>>
>> https://github.com/apache/syncope/blob/master/core/persistence-jpa/src/main/java/org/springframework/orm/jpa/vendor
>>>>>>>> Le mar. 27 déc. 2022 à 16:21, Francesco Chicchiriccò <
>>>>>>> ilgrosso@apache.org>
>>>>>>>> a écrit :
>>>>>>>>
>>>>>>>>> Hi all,
>>>>>>>>> so let's suppone one has the weird idea of adding OpenJPA to a
>> Spring
>>>>>>> Boot
>>>>>>>>> 3 project.
>>>>>>>>>
>>>>>>>>> Do we already an idea about how to handle the javax.persistence.*
>> Vs
>>>>>>>>> jakarta.persistence.* conflicts?
>>>>>>>>>
>>>>>>>>> Thanks in advance.
>>>>>>>>> Regards.
>>>>>>>>>
-- 
Francesco Chicchiriccò

Tirasa - Open Source Excellence
http://www.tirasa.net/

Member at The Apache Software Foundation
Syncope, Cocoon, Olingo, CXF, OpenJPA, PonyMail
http://home.apache.org/~ilgrosso/


Re: Using OpenJPA with Spring Boot 3?

Posted by Romain Manni-Bucau <rm...@gmail.com>.
A bit from memory so can miss a few details but think adding openjpa with
jakarta classifier as a dependency of the plugin does the trick.

Romain Manni-Bucau
@rmannibucau <https://twitter.com/rmannibucau> |  Blog
<https://rmannibucau.metawerx.net/> | Old Blog
<http://rmannibucau.wordpress.com> | Github <https://github.com/rmannibucau> |
LinkedIn <https://www.linkedin.com/in/rmannibucau> | Book
<https://www.packtpub.com/application-development/java-ee-8-high-performance>


Le mer. 28 déc. 2022 à 10:40, Francesco Chicchiriccò <il...@apache.org>
a écrit :

> Thank you.
>
> FTR this is my current setup:
>
> root pom.xml:
>
>        <dependency>
>          <groupId>org.apache.openjpa</groupId>
>          <artifactId>openjpa</artifactId>
>          <version>${openjpa.version}</version>
>          <classifier>jakarta</classifier>
>          <exclusions>
>            <exclusion>
>              <groupId>org.apache.xbean</groupId>
>              <artifactId>xbean-asm9-shaded</artifactId>
>            </exclusion>
>            <exclusion>
>              <groupId>org.apache.commons</groupId>
>              <artifactId>commons-pool2</artifactId>
>            </exclusion>
>            <exclusion>
> <groupId>org.apache.geronimo.specs</groupId>
> <artifactId>geronimo-jpa_2.2_spec</artifactId>
>            </exclusion>
>            <exclusion>
> <groupId>org.apache.geronimo.specs</groupId>
> <artifactId>geronimo-jta_1.1_spec</artifactId>
>            </exclusion>
>            <exclusion>
> <groupId>org.apache.geronimo.specs</groupId>
> <artifactId>geronimo-jms_1.1_spec</artifactId>
>            </exclusion>
>          </exclusions>
>        </dependency>
>
> core/persistence-jpa/pom.xml:
>
>      <dependency>
>        <groupId>jakarta.persistence</groupId>
>        <artifactId>jakarta.persistence-api</artifactId>
>      </dependency>
>      <dependency>
>        <groupId>jakarta.transaction</groupId>
>        <artifactId>jakarta.transaction-api</artifactId>
>      </dependency>
>      <dependency>
>        <groupId>org.apache.openjpa</groupId>
>        <artifactId>openjpa</artifactId>
>        <classifier>jakarta</classifier>
>      </dependency>
>
> I am having issues now with entity enhancement.
>
> I see log messages like as
>
> [BuilderThread 0] openjpa.Tool - Enhancer running on type "class
> org.apache.syncope.core.persistence.jpa.entity.group.JPAGPlainAttr".
>
> but afterwards:
>
> [BuilderThread 0] openjpa.Tool - No metadata was found for 134 classes;
> they have been enhanced as persistence-aware. If you intended for any of
> these classes to be persistence-capable, then this means that OpenJPA could
> not find any metadata for those classes.
>
> I guess this is because of the namespace mismatch between
> openjpa-maven-plugin and the openjpa dependency as declared above.
>
> Regards.
>
> On 28/12/22 08:52, Romain Manni-Bucau wrote:
> > Use
> >
> https://repo.maven.apache.org/maven2/org/apache/openjpa/openjpa/3.2.2/openjpa-3.2.2-jakarta.jar
> > and exclude transitive deps.
> >
> > Le mer. 28 déc. 2022 à 08:45, Francesco Chicchiriccò <
> ilgrosso@apache.org>
> > a écrit :
> >
> >> On 27/12/22 17:14, Romain Manni-Bucau wrote:
> >>> Yes, think you should either move to openjpa-all shade or generate the
> >>> class with asm at build time (guess switching the main dep is easier).
> >> Unfortunately just switching to openjpa-all does not change the errors I
> >> am reporting below.
> >>
> >> When I look inside
> >>
> >>
> >>
> https://repo1.maven.org/maven2/org/apache/openjpa/openjpa-all/3.2.2/openjpa-all-3.2.2.jar
> >>
> >> what should I be able to see exactly? e.g. what would be the effect of
> the
> >> relocation settings in
> >>
> >> https://github.com/apache/openjpa/blob/master/openjpa/pom.xml#L100
> >>
> >> ?
> >>
> >> In case this option is not viable: would you be able to suggest how to
> >> proceed with asm-based alternative you are mentioning above?
> >> TIA.
> >>
> >> Regards.
> >>
> >>> Le mar. 27 déc. 2022 à 17:06, Maxim Solodovnik <so...@gmail.com>
> a
> >>> écrit :
> >>>
> >>>> Sorry fir top-posting
> >>>>
> >>>> Maybe we shall release Jakarta version?
> >>>> As 4.x for ex?
> >>>>
> >>>> from mobile (sorry for typos ;)
> >>>>
> >>>>
> >>>> On Tue, Dec 27, 2022, 23:01 Francesco Chicchiriccò <
> ilgrosso@apache.org
> >>>> wrote:
> >>>>
> >>>>> On 27/12/22 16:50, Romain Manni-Bucau wrote:
> >>>>>> Hi,
> >>>>>>
> >>>>>> Well I guess the jakarta shade should handle jakarta properly else
> >> user
> >>>>> can
> >>>>>> use what he wants and finally worse case you can still integrate the
> >>>>>> mapping in spring glue code (not sure you have something particular
> in
> >>>>> mind
> >>>>>> so shouting in the wind ;)).
> >>>>> For instance, I would like to keep these classes [1] working, but
> when
> >> I
> >>>>> attempt to build it, I am receiving the following errors:
> >>>>>
> >>>>> [ERROR]
> >>>>>
> >>
> /home/ilgrosso/work/syncope/fork/core/persistence-jpa/src/main/java/org/springframework/orm/jpa/vendor/OpenJpaDialect.java:[56,55]
> >>>>> cannot access javax.persistence.EntityTransaction
> >>>>> [ERROR]   class file for javax.persistence.EntityTransaction not
> found
> >>>>> [ERROR]
> >>>>>
> >>
> /home/ilgrosso/work/syncope/fork/core/persistence-jpa/src/main/java/org/springframework/orm/jpa/vendor/OpenJpaDialect.java:[89,34]
> >>>>> no suitable method found for cast(jakarta.persistence.EntityManager)
> >>>>> [ERROR]     method
> >>>>>
> >>
> org.apache.openjpa.persistence.OpenJPAPersistence.cast(javax.persistence.EntityManagerFactory)
> >>>>> is not applicable
> >>>>> [ERROR]       (argument mismatch; jakarta.persistence.EntityManager
> >>>> cannot
> >>>>> be converted to javax.persistence.EntityManagerFactory)
> >>>>> [ERROR]     method
> >>>>>
> >>
> org.apache.openjpa.persistence.OpenJPAPersistence.cast(javax.persistence.EntityManager)
> >>>>> is not applicable
> >>>>> [ERROR]       (argument mismatch; jakarta.persistence.EntityManager
> >>>> cannot
> >>>>> be converted to javax.persistence.EntityManager)
> >>>>> [ERROR]     method
> >>>>>
> >>
> org.apache.openjpa.persistence.OpenJPAPersistence.cast(javax.persistence.Query)
> >>>>> is not applicable
> >>>>> [ERROR]       (argument mismatch; jakarta.persistence.EntityManager
> >>>> cannot
> >>>>> be converted to javax.persistence.Query)
> >>>>> [ERROR]
> >>>>>
> >>
> /home/ilgrosso/work/syncope/fork/core/persistence-jpa/src/main/java/org/springframework/orm/jpa/vendor/OpenJpaVendorAdapter.java:[46,61]
> >>>>> cannot access javax.persistence.spi.PersistenceProvider
> >>>>> [ERROR]   class file for javax.persistence.spi.PersistenceProvider
> not
> >>>>> found
> >>>>> [ERROR]
> >>>>>
> >>
> /home/ilgrosso/work/syncope/fork/core/persistence-jpa/src/main/java/org/springframework/orm/jpa/vendor/OpenJpaVendorAdapter.java:[122,46]
> >>>>> incompatible types:
> >>>>>
> >>
> java.lang.Class<org.apache.openjpa.persistence.OpenJPAEntityManagerFactorySPI>
> >>>>> cannot be converted to java.lang.Class<? extends
> >>>>> jakarta.persistence.EntityManagerFactory>
> >>>>> [ERROR]
> >>>>>
> >>
> /home/ilgrosso/work/syncope/fork/core/persistence-jpa/src/main/java/org/springframework/orm/jpa/vendor/OpenJpaVendorAdapter.java:[127,39]
> >>>>> incompatible types:
> >>>>>
> java.lang.Class<org.apache.openjpa.persistence.OpenJPAEntityManagerSPI>
> >>>>> cannot be converted to java.lang.Class<? extends
> >>>>> jakarta.persistence.EntityManager>
> >>>>>
> >>>>> Given Maxim's and yours answer about openjpa-all, I believe I'll need
> >> to
> >>>>> either depend on that or shade OpenJPA artifacts right on Syncope
> poms:
> >>>>> correct?
> >>>>>
> >>>>> Regards.
> >>>>>
> >>>>> [1]
> >>>>>
> >>
> https://github.com/apache/syncope/blob/master/core/persistence-jpa/src/main/java/org/springframework/orm/jpa/vendor
> >>>>>> Le mar. 27 déc. 2022 à 16:21, Francesco Chicchiriccò <
> >>>>> ilgrosso@apache.org>
> >>>>>> a écrit :
> >>>>>>
> >>>>>>> Hi all,
> >>>>>>> so let's suppone one has the weird idea of adding OpenJPA to a
> Spring
> >>>>> Boot
> >>>>>>> 3 project.
> >>>>>>>
> >>>>>>> Do we already an idea about how to handle the javax.persistence.*
> Vs
> >>>>>>> jakarta.persistence.* conflicts?
> >>>>>>>
> >>>>>>> Thanks in advance.
> >>>>>>> Regards.
>
> --
> Francesco Chicchiriccò
>
> Tirasa - Open Source Excellence
> http://www.tirasa.net/
>
> Member at The Apache Software Foundation
> Syncope, Cocoon, Olingo, CXF, OpenJPA, PonyMail
> http://home.apache.org/~ilgrosso/
>
>

Re: Using OpenJPA with Spring Boot 3?

Posted by Francesco Chicchiriccò <il...@apache.org>.
Thank you.

FTR this is my current setup:

root pom.xml:

       <dependency>
         <groupId>org.apache.openjpa</groupId>
         <artifactId>openjpa</artifactId>
         <version>${openjpa.version}</version>
         <classifier>jakarta</classifier>
         <exclusions>
           <exclusion>
             <groupId>org.apache.xbean</groupId>
             <artifactId>xbean-asm9-shaded</artifactId>
           </exclusion>
           <exclusion>
             <groupId>org.apache.commons</groupId>
             <artifactId>commons-pool2</artifactId>
           </exclusion>
           <exclusion>
<groupId>org.apache.geronimo.specs</groupId>
<artifactId>geronimo-jpa_2.2_spec</artifactId>
           </exclusion>
           <exclusion>
<groupId>org.apache.geronimo.specs</groupId>
<artifactId>geronimo-jta_1.1_spec</artifactId>
           </exclusion>
           <exclusion>
<groupId>org.apache.geronimo.specs</groupId>
<artifactId>geronimo-jms_1.1_spec</artifactId>
           </exclusion>
         </exclusions>
       </dependency>

core/persistence-jpa/pom.xml:

     <dependency>
       <groupId>jakarta.persistence</groupId>
       <artifactId>jakarta.persistence-api</artifactId>
     </dependency>
     <dependency>
       <groupId>jakarta.transaction</groupId>
       <artifactId>jakarta.transaction-api</artifactId>
     </dependency>
     <dependency>
       <groupId>org.apache.openjpa</groupId>
       <artifactId>openjpa</artifactId>
       <classifier>jakarta</classifier>
     </dependency>

I am having issues now with entity enhancement.

I see log messages like as

[BuilderThread 0] openjpa.Tool - Enhancer running on type "class org.apache.syncope.core.persistence.jpa.entity.group.JPAGPlainAttr".

but afterwards:

[BuilderThread 0] openjpa.Tool - No metadata was found for 134 classes; they have been enhanced as persistence-aware. If you intended for any of these classes to be persistence-capable, then this means that OpenJPA could not find any metadata for those classes.

I guess this is because of the namespace mismatch between openjpa-maven-plugin and the openjpa dependency as declared above.

Regards.

On 28/12/22 08:52, Romain Manni-Bucau wrote:
> Use
> https://repo.maven.apache.org/maven2/org/apache/openjpa/openjpa/3.2.2/openjpa-3.2.2-jakarta.jar
> and exclude transitive deps.
>
> Le mer. 28 déc. 2022 à 08:45, Francesco Chicchiriccò <il...@apache.org>
> a écrit :
>
>> On 27/12/22 17:14, Romain Manni-Bucau wrote:
>>> Yes, think you should either move to openjpa-all shade or generate the
>>> class with asm at build time (guess switching the main dep is easier).
>> Unfortunately just switching to openjpa-all does not change the errors I
>> am reporting below.
>>
>> When I look inside
>>
>>
>> https://repo1.maven.org/maven2/org/apache/openjpa/openjpa-all/3.2.2/openjpa-all-3.2.2.jar
>>
>> what should I be able to see exactly? e.g. what would be the effect of the
>> relocation settings in
>>
>> https://github.com/apache/openjpa/blob/master/openjpa/pom.xml#L100
>>
>> ?
>>
>> In case this option is not viable: would you be able to suggest how to
>> proceed with asm-based alternative you are mentioning above?
>> TIA.
>>
>> Regards.
>>
>>> Le mar. 27 déc. 2022 à 17:06, Maxim Solodovnik <so...@gmail.com> a
>>> écrit :
>>>
>>>> Sorry fir top-posting
>>>>
>>>> Maybe we shall release Jakarta version?
>>>> As 4.x for ex?
>>>>
>>>> from mobile (sorry for typos ;)
>>>>
>>>>
>>>> On Tue, Dec 27, 2022, 23:01 Francesco Chicchiriccò <ilgrosso@apache.org
>>>> wrote:
>>>>
>>>>> On 27/12/22 16:50, Romain Manni-Bucau wrote:
>>>>>> Hi,
>>>>>>
>>>>>> Well I guess the jakarta shade should handle jakarta properly else
>> user
>>>>> can
>>>>>> use what he wants and finally worse case you can still integrate the
>>>>>> mapping in spring glue code (not sure you have something particular in
>>>>> mind
>>>>>> so shouting in the wind ;)).
>>>>> For instance, I would like to keep these classes [1] working, but when
>> I
>>>>> attempt to build it, I am receiving the following errors:
>>>>>
>>>>> [ERROR]
>>>>>
>> /home/ilgrosso/work/syncope/fork/core/persistence-jpa/src/main/java/org/springframework/orm/jpa/vendor/OpenJpaDialect.java:[56,55]
>>>>> cannot access javax.persistence.EntityTransaction
>>>>> [ERROR]   class file for javax.persistence.EntityTransaction not found
>>>>> [ERROR]
>>>>>
>> /home/ilgrosso/work/syncope/fork/core/persistence-jpa/src/main/java/org/springframework/orm/jpa/vendor/OpenJpaDialect.java:[89,34]
>>>>> no suitable method found for cast(jakarta.persistence.EntityManager)
>>>>> [ERROR]     method
>>>>>
>> org.apache.openjpa.persistence.OpenJPAPersistence.cast(javax.persistence.EntityManagerFactory)
>>>>> is not applicable
>>>>> [ERROR]       (argument mismatch; jakarta.persistence.EntityManager
>>>> cannot
>>>>> be converted to javax.persistence.EntityManagerFactory)
>>>>> [ERROR]     method
>>>>>
>> org.apache.openjpa.persistence.OpenJPAPersistence.cast(javax.persistence.EntityManager)
>>>>> is not applicable
>>>>> [ERROR]       (argument mismatch; jakarta.persistence.EntityManager
>>>> cannot
>>>>> be converted to javax.persistence.EntityManager)
>>>>> [ERROR]     method
>>>>>
>> org.apache.openjpa.persistence.OpenJPAPersistence.cast(javax.persistence.Query)
>>>>> is not applicable
>>>>> [ERROR]       (argument mismatch; jakarta.persistence.EntityManager
>>>> cannot
>>>>> be converted to javax.persistence.Query)
>>>>> [ERROR]
>>>>>
>> /home/ilgrosso/work/syncope/fork/core/persistence-jpa/src/main/java/org/springframework/orm/jpa/vendor/OpenJpaVendorAdapter.java:[46,61]
>>>>> cannot access javax.persistence.spi.PersistenceProvider
>>>>> [ERROR]   class file for javax.persistence.spi.PersistenceProvider not
>>>>> found
>>>>> [ERROR]
>>>>>
>> /home/ilgrosso/work/syncope/fork/core/persistence-jpa/src/main/java/org/springframework/orm/jpa/vendor/OpenJpaVendorAdapter.java:[122,46]
>>>>> incompatible types:
>>>>>
>> java.lang.Class<org.apache.openjpa.persistence.OpenJPAEntityManagerFactorySPI>
>>>>> cannot be converted to java.lang.Class<? extends
>>>>> jakarta.persistence.EntityManagerFactory>
>>>>> [ERROR]
>>>>>
>> /home/ilgrosso/work/syncope/fork/core/persistence-jpa/src/main/java/org/springframework/orm/jpa/vendor/OpenJpaVendorAdapter.java:[127,39]
>>>>> incompatible types:
>>>>> java.lang.Class<org.apache.openjpa.persistence.OpenJPAEntityManagerSPI>
>>>>> cannot be converted to java.lang.Class<? extends
>>>>> jakarta.persistence.EntityManager>
>>>>>
>>>>> Given Maxim's and yours answer about openjpa-all, I believe I'll need
>> to
>>>>> either depend on that or shade OpenJPA artifacts right on Syncope poms:
>>>>> correct?
>>>>>
>>>>> Regards.
>>>>>
>>>>> [1]
>>>>>
>> https://github.com/apache/syncope/blob/master/core/persistence-jpa/src/main/java/org/springframework/orm/jpa/vendor
>>>>>> Le mar. 27 déc. 2022 à 16:21, Francesco Chicchiriccò <
>>>>> ilgrosso@apache.org>
>>>>>> a écrit :
>>>>>>
>>>>>>> Hi all,
>>>>>>> so let's suppone one has the weird idea of adding OpenJPA to a Spring
>>>>> Boot
>>>>>>> 3 project.
>>>>>>>
>>>>>>> Do we already an idea about how to handle the javax.persistence.*  Vs
>>>>>>> jakarta.persistence.* conflicts?
>>>>>>>
>>>>>>> Thanks in advance.
>>>>>>> Regards.

-- 
Francesco Chicchiriccò

Tirasa - Open Source Excellence
http://www.tirasa.net/

Member at The Apache Software Foundation
Syncope, Cocoon, Olingo, CXF, OpenJPA, PonyMail
http://home.apache.org/~ilgrosso/


Re: Using OpenJPA with Spring Boot 3?

Posted by Romain Manni-Bucau <rm...@gmail.com>.
Use
https://repo.maven.apache.org/maven2/org/apache/openjpa/openjpa/3.2.2/openjpa-3.2.2-jakarta.jar
and exclude transitive deps.

Le mer. 28 déc. 2022 à 08:45, Francesco Chicchiriccò <il...@apache.org>
a écrit :

> On 27/12/22 17:14, Romain Manni-Bucau wrote:
> > Yes, think you should either move to openjpa-all shade or generate the
> > class with asm at build time (guess switching the main dep is easier).
>
> Unfortunately just switching to openjpa-all does not change the errors I
> am reporting below.
>
> When I look inside
>
>
> https://repo1.maven.org/maven2/org/apache/openjpa/openjpa-all/3.2.2/openjpa-all-3.2.2.jar
>
> what should I be able to see exactly? e.g. what would be the effect of the
> relocation settings in
>
> https://github.com/apache/openjpa/blob/master/openjpa/pom.xml#L100
>
> ?
>
> In case this option is not viable: would you be able to suggest how to
> proceed with asm-based alternative you are mentioning above?
> TIA.
>
> Regards.
>
> > Le mar. 27 déc. 2022 à 17:06, Maxim Solodovnik <so...@gmail.com> a
> > écrit :
> >
> >> Sorry fir top-posting
> >>
> >> Maybe we shall release Jakarta version?
> >> As 4.x for ex?
> >>
> >> from mobile (sorry for typos ;)
> >>
> >>
> >> On Tue, Dec 27, 2022, 23:01 Francesco Chicchiriccò <ilgrosso@apache.org
> >
> >> wrote:
> >>
> >>> On 27/12/22 16:50, Romain Manni-Bucau wrote:
> >>>> Hi,
> >>>>
> >>>> Well I guess the jakarta shade should handle jakarta properly else
> user
> >>> can
> >>>> use what he wants and finally worse case you can still integrate the
> >>>> mapping in spring glue code (not sure you have something particular in
> >>> mind
> >>>> so shouting in the wind ;)).
> >>> For instance, I would like to keep these classes [1] working, but when
> I
> >>> attempt to build it, I am receiving the following errors:
> >>>
> >>> [ERROR]
> >>>
> >>
> /home/ilgrosso/work/syncope/fork/core/persistence-jpa/src/main/java/org/springframework/orm/jpa/vendor/OpenJpaDialect.java:[56,55]
> >>> cannot access javax.persistence.EntityTransaction
> >>> [ERROR]   class file for javax.persistence.EntityTransaction not found
> >>> [ERROR]
> >>>
> >>
> /home/ilgrosso/work/syncope/fork/core/persistence-jpa/src/main/java/org/springframework/orm/jpa/vendor/OpenJpaDialect.java:[89,34]
> >>> no suitable method found for cast(jakarta.persistence.EntityManager)
> >>> [ERROR]     method
> >>>
> >>
> org.apache.openjpa.persistence.OpenJPAPersistence.cast(javax.persistence.EntityManagerFactory)
> >>> is not applicable
> >>> [ERROR]       (argument mismatch; jakarta.persistence.EntityManager
> >> cannot
> >>> be converted to javax.persistence.EntityManagerFactory)
> >>> [ERROR]     method
> >>>
> >>
> org.apache.openjpa.persistence.OpenJPAPersistence.cast(javax.persistence.EntityManager)
> >>> is not applicable
> >>> [ERROR]       (argument mismatch; jakarta.persistence.EntityManager
> >> cannot
> >>> be converted to javax.persistence.EntityManager)
> >>> [ERROR]     method
> >>>
> >>
> org.apache.openjpa.persistence.OpenJPAPersistence.cast(javax.persistence.Query)
> >>> is not applicable
> >>> [ERROR]       (argument mismatch; jakarta.persistence.EntityManager
> >> cannot
> >>> be converted to javax.persistence.Query)
> >>> [ERROR]
> >>>
> >>
> /home/ilgrosso/work/syncope/fork/core/persistence-jpa/src/main/java/org/springframework/orm/jpa/vendor/OpenJpaVendorAdapter.java:[46,61]
> >>> cannot access javax.persistence.spi.PersistenceProvider
> >>> [ERROR]   class file for javax.persistence.spi.PersistenceProvider not
> >>> found
> >>> [ERROR]
> >>>
> >>
> /home/ilgrosso/work/syncope/fork/core/persistence-jpa/src/main/java/org/springframework/orm/jpa/vendor/OpenJpaVendorAdapter.java:[122,46]
> >>> incompatible types:
> >>>
> >>
> java.lang.Class<org.apache.openjpa.persistence.OpenJPAEntityManagerFactorySPI>
> >>> cannot be converted to java.lang.Class<? extends
> >>> jakarta.persistence.EntityManagerFactory>
> >>> [ERROR]
> >>>
> >>
> /home/ilgrosso/work/syncope/fork/core/persistence-jpa/src/main/java/org/springframework/orm/jpa/vendor/OpenJpaVendorAdapter.java:[127,39]
> >>> incompatible types:
> >>> java.lang.Class<org.apache.openjpa.persistence.OpenJPAEntityManagerSPI>
> >>> cannot be converted to java.lang.Class<? extends
> >>> jakarta.persistence.EntityManager>
> >>>
> >>> Given Maxim's and yours answer about openjpa-all, I believe I'll need
> to
> >>> either depend on that or shade OpenJPA artifacts right on Syncope poms:
> >>> correct?
> >>>
> >>> Regards.
> >>>
> >>> [1]
> >>>
> >>
> https://github.com/apache/syncope/blob/master/core/persistence-jpa/src/main/java/org/springframework/orm/jpa/vendor
> >>>> Le mar. 27 déc. 2022 à 16:21, Francesco Chicchiriccò <
> >>> ilgrosso@apache.org>
> >>>> a écrit :
> >>>>
> >>>>> Hi all,
> >>>>> so let's suppone one has the weird idea of adding OpenJPA to a Spring
> >>> Boot
> >>>>> 3 project.
> >>>>>
> >>>>> Do we already an idea about how to handle the javax.persistence.*  Vs
> >>>>> jakarta.persistence.* conflicts?
> >>>>>
> >>>>> Thanks in advance.
> >>>>> Regards.
>
> --
> Francesco Chicchiriccò
>
> Tirasa - Open Source Excellence
> http://www.tirasa.net/
>
> Member at The Apache Software Foundation
> Syncope, Cocoon, Olingo, CXF, OpenJPA, PonyMail
> http://home.apache.org/~ilgrosso/
>
>

Re: Using OpenJPA with Spring Boot 3?

Posted by Francesco Chicchiriccò <il...@apache.org>.
On 27/12/22 17:14, Romain Manni-Bucau wrote:
> Yes, think you should either move to openjpa-all shade or generate the
> class with asm at build time (guess switching the main dep is easier).

Unfortunately just switching to openjpa-all does not change the errors I am reporting below.

When I look inside

https://repo1.maven.org/maven2/org/apache/openjpa/openjpa-all/3.2.2/openjpa-all-3.2.2.jar

what should I be able to see exactly? e.g. what would be the effect of the relocation settings in

https://github.com/apache/openjpa/blob/master/openjpa/pom.xml#L100

?

In case this option is not viable: would you be able to suggest how to proceed with asm-based alternative you are mentioning above?
TIA.

Regards.

> Le mar. 27 déc. 2022 à 17:06, Maxim Solodovnik <so...@gmail.com> a
> écrit :
>
>> Sorry fir top-posting
>>
>> Maybe we shall release Jakarta version?
>> As 4.x for ex?
>>
>> from mobile (sorry for typos ;)
>>
>>
>> On Tue, Dec 27, 2022, 23:01 Francesco Chicchiriccò <il...@apache.org>
>> wrote:
>>
>>> On 27/12/22 16:50, Romain Manni-Bucau wrote:
>>>> Hi,
>>>>
>>>> Well I guess the jakarta shade should handle jakarta properly else user
>>> can
>>>> use what he wants and finally worse case you can still integrate the
>>>> mapping in spring glue code (not sure you have something particular in
>>> mind
>>>> so shouting in the wind ;)).
>>> For instance, I would like to keep these classes [1] working, but when I
>>> attempt to build it, I am receiving the following errors:
>>>
>>> [ERROR]
>>>
>> /home/ilgrosso/work/syncope/fork/core/persistence-jpa/src/main/java/org/springframework/orm/jpa/vendor/OpenJpaDialect.java:[56,55]
>>> cannot access javax.persistence.EntityTransaction
>>> [ERROR]   class file for javax.persistence.EntityTransaction not found
>>> [ERROR]
>>>
>> /home/ilgrosso/work/syncope/fork/core/persistence-jpa/src/main/java/org/springframework/orm/jpa/vendor/OpenJpaDialect.java:[89,34]
>>> no suitable method found for cast(jakarta.persistence.EntityManager)
>>> [ERROR]     method
>>>
>> org.apache.openjpa.persistence.OpenJPAPersistence.cast(javax.persistence.EntityManagerFactory)
>>> is not applicable
>>> [ERROR]       (argument mismatch; jakarta.persistence.EntityManager
>> cannot
>>> be converted to javax.persistence.EntityManagerFactory)
>>> [ERROR]     method
>>>
>> org.apache.openjpa.persistence.OpenJPAPersistence.cast(javax.persistence.EntityManager)
>>> is not applicable
>>> [ERROR]       (argument mismatch; jakarta.persistence.EntityManager
>> cannot
>>> be converted to javax.persistence.EntityManager)
>>> [ERROR]     method
>>>
>> org.apache.openjpa.persistence.OpenJPAPersistence.cast(javax.persistence.Query)
>>> is not applicable
>>> [ERROR]       (argument mismatch; jakarta.persistence.EntityManager
>> cannot
>>> be converted to javax.persistence.Query)
>>> [ERROR]
>>>
>> /home/ilgrosso/work/syncope/fork/core/persistence-jpa/src/main/java/org/springframework/orm/jpa/vendor/OpenJpaVendorAdapter.java:[46,61]
>>> cannot access javax.persistence.spi.PersistenceProvider
>>> [ERROR]   class file for javax.persistence.spi.PersistenceProvider not
>>> found
>>> [ERROR]
>>>
>> /home/ilgrosso/work/syncope/fork/core/persistence-jpa/src/main/java/org/springframework/orm/jpa/vendor/OpenJpaVendorAdapter.java:[122,46]
>>> incompatible types:
>>>
>> java.lang.Class<org.apache.openjpa.persistence.OpenJPAEntityManagerFactorySPI>
>>> cannot be converted to java.lang.Class<? extends
>>> jakarta.persistence.EntityManagerFactory>
>>> [ERROR]
>>>
>> /home/ilgrosso/work/syncope/fork/core/persistence-jpa/src/main/java/org/springframework/orm/jpa/vendor/OpenJpaVendorAdapter.java:[127,39]
>>> incompatible types:
>>> java.lang.Class<org.apache.openjpa.persistence.OpenJPAEntityManagerSPI>
>>> cannot be converted to java.lang.Class<? extends
>>> jakarta.persistence.EntityManager>
>>>
>>> Given Maxim's and yours answer about openjpa-all, I believe I'll need to
>>> either depend on that or shade OpenJPA artifacts right on Syncope poms:
>>> correct?
>>>
>>> Regards.
>>>
>>> [1]
>>>
>> https://github.com/apache/syncope/blob/master/core/persistence-jpa/src/main/java/org/springframework/orm/jpa/vendor
>>>> Le mar. 27 déc. 2022 à 16:21, Francesco Chicchiriccò <
>>> ilgrosso@apache.org>
>>>> a écrit :
>>>>
>>>>> Hi all,
>>>>> so let's suppone one has the weird idea of adding OpenJPA to a Spring
>>> Boot
>>>>> 3 project.
>>>>>
>>>>> Do we already an idea about how to handle the javax.persistence.*  Vs
>>>>> jakarta.persistence.* conflicts?
>>>>>
>>>>> Thanks in advance.
>>>>> Regards.

-- 
Francesco Chicchiriccò

Tirasa - Open Source Excellence
http://www.tirasa.net/

Member at The Apache Software Foundation
Syncope, Cocoon, Olingo, CXF, OpenJPA, PonyMail
http://home.apache.org/~ilgrosso/


Re: Using OpenJPA with Spring Boot 3?

Posted by Romain Manni-Bucau <rm...@gmail.com>.
Yes, think you should either move to openjpa-all shade or generate the
class with asm at build time (guess switching the main dep is easier).

Romain Manni-Bucau
@rmannibucau <https://twitter.com/rmannibucau> |  Blog
<https://rmannibucau.metawerx.net/> | Old Blog
<http://rmannibucau.wordpress.com> | Github <https://github.com/rmannibucau> |
LinkedIn <https://www.linkedin.com/in/rmannibucau> | Book
<https://www.packtpub.com/application-development/java-ee-8-high-performance>


Le mar. 27 déc. 2022 à 17:06, Maxim Solodovnik <so...@gmail.com> a
écrit :

> Sorry fir top-posting
>
> Maybe we shall release Jakarta version?
> As 4.x for ex?
>
> from mobile (sorry for typos ;)
>
>
> On Tue, Dec 27, 2022, 23:01 Francesco Chicchiriccò <il...@apache.org>
> wrote:
>
> > On 27/12/22 16:50, Romain Manni-Bucau wrote:
> > > Hi,
> > >
> > > Well I guess the jakarta shade should handle jakarta properly else user
> > can
> > > use what he wants and finally worse case you can still integrate the
> > > mapping in spring glue code (not sure you have something particular in
> > mind
> > > so shouting in the wind ;)).
> >
> > For instance, I would like to keep these classes [1] working, but when I
> > attempt to build it, I am receiving the following errors:
> >
> > [ERROR]
> >
> /home/ilgrosso/work/syncope/fork/core/persistence-jpa/src/main/java/org/springframework/orm/jpa/vendor/OpenJpaDialect.java:[56,55]
> > cannot access javax.persistence.EntityTransaction
> > [ERROR]   class file for javax.persistence.EntityTransaction not found
> > [ERROR]
> >
> /home/ilgrosso/work/syncope/fork/core/persistence-jpa/src/main/java/org/springframework/orm/jpa/vendor/OpenJpaDialect.java:[89,34]
> > no suitable method found for cast(jakarta.persistence.EntityManager)
> > [ERROR]     method
> >
> org.apache.openjpa.persistence.OpenJPAPersistence.cast(javax.persistence.EntityManagerFactory)
> > is not applicable
> > [ERROR]       (argument mismatch; jakarta.persistence.EntityManager
> cannot
> > be converted to javax.persistence.EntityManagerFactory)
> > [ERROR]     method
> >
> org.apache.openjpa.persistence.OpenJPAPersistence.cast(javax.persistence.EntityManager)
> > is not applicable
> > [ERROR]       (argument mismatch; jakarta.persistence.EntityManager
> cannot
> > be converted to javax.persistence.EntityManager)
> > [ERROR]     method
> >
> org.apache.openjpa.persistence.OpenJPAPersistence.cast(javax.persistence.Query)
> > is not applicable
> > [ERROR]       (argument mismatch; jakarta.persistence.EntityManager
> cannot
> > be converted to javax.persistence.Query)
> > [ERROR]
> >
> /home/ilgrosso/work/syncope/fork/core/persistence-jpa/src/main/java/org/springframework/orm/jpa/vendor/OpenJpaVendorAdapter.java:[46,61]
> > cannot access javax.persistence.spi.PersistenceProvider
> > [ERROR]   class file for javax.persistence.spi.PersistenceProvider not
> > found
> > [ERROR]
> >
> /home/ilgrosso/work/syncope/fork/core/persistence-jpa/src/main/java/org/springframework/orm/jpa/vendor/OpenJpaVendorAdapter.java:[122,46]
> > incompatible types:
> >
> java.lang.Class<org.apache.openjpa.persistence.OpenJPAEntityManagerFactorySPI>
> > cannot be converted to java.lang.Class<? extends
> > jakarta.persistence.EntityManagerFactory>
> > [ERROR]
> >
> /home/ilgrosso/work/syncope/fork/core/persistence-jpa/src/main/java/org/springframework/orm/jpa/vendor/OpenJpaVendorAdapter.java:[127,39]
> > incompatible types:
> > java.lang.Class<org.apache.openjpa.persistence.OpenJPAEntityManagerSPI>
> > cannot be converted to java.lang.Class<? extends
> > jakarta.persistence.EntityManager>
> >
> > Given Maxim's and yours answer about openjpa-all, I believe I'll need to
> > either depend on that or shade OpenJPA artifacts right on Syncope poms:
> > correct?
> >
> > Regards.
> >
> > [1]
> >
> https://github.com/apache/syncope/blob/master/core/persistence-jpa/src/main/java/org/springframework/orm/jpa/vendor
> >
> > > Le mar. 27 déc. 2022 à 16:21, Francesco Chicchiriccò <
> > ilgrosso@apache.org>
> > > a écrit :
> > >
> > >> Hi all,
> > >> so let's suppone one has the weird idea of adding OpenJPA to a Spring
> > Boot
> > >> 3 project.
> > >>
> > >> Do we already an idea about how to handle the javax.persistence.*  Vs
> > >> jakarta.persistence.* conflicts?
> > >>
> > >> Thanks in advance.
> > >> Regards.
> >
> > --
> > Francesco Chicchiriccò
> >
> > Tirasa - Open Source Excellence
> > http://www.tirasa.net/
> >
> > Member at The Apache Software Foundation
> > Syncope, Cocoon, Olingo, CXF, OpenJPA, PonyMail
> > http://home.apache.org/~ilgrosso/
> >
> >
>

Re: Using OpenJPA with Spring Boot 3?

Posted by Francesco Chicchiriccò <il...@apache.org>.
On 27/12/22 17:06, Maxim Solodovnik wrote:
> Sorry fir top-posting
>
> Maybe we shall release Jakarta version?
> As 4.x for ex?

+1

I think it would be way better for anyone willing to use OpenJPA with Spring Boot 3 and fwd.

Regards.

-- 
Francesco Chicchiriccò

Tirasa - Open Source Excellence
http://www.tirasa.net/

Member at The Apache Software Foundation
Syncope, Cocoon, Olingo, CXF, OpenJPA, PonyMail
http://home.apache.org/~ilgrosso/


Re: Using OpenJPA with Spring Boot 3?

Posted by Maxim Solodovnik <so...@gmail.com>.
Sorry fir top-posting

Maybe we shall release Jakarta version?
As 4.x for ex?

from mobile (sorry for typos ;)


On Tue, Dec 27, 2022, 23:01 Francesco Chicchiriccò <il...@apache.org>
wrote:

> On 27/12/22 16:50, Romain Manni-Bucau wrote:
> > Hi,
> >
> > Well I guess the jakarta shade should handle jakarta properly else user
> can
> > use what he wants and finally worse case you can still integrate the
> > mapping in spring glue code (not sure you have something particular in
> mind
> > so shouting in the wind ;)).
>
> For instance, I would like to keep these classes [1] working, but when I
> attempt to build it, I am receiving the following errors:
>
> [ERROR]
> /home/ilgrosso/work/syncope/fork/core/persistence-jpa/src/main/java/org/springframework/orm/jpa/vendor/OpenJpaDialect.java:[56,55]
> cannot access javax.persistence.EntityTransaction
> [ERROR]   class file for javax.persistence.EntityTransaction not found
> [ERROR]
> /home/ilgrosso/work/syncope/fork/core/persistence-jpa/src/main/java/org/springframework/orm/jpa/vendor/OpenJpaDialect.java:[89,34]
> no suitable method found for cast(jakarta.persistence.EntityManager)
> [ERROR]     method
> org.apache.openjpa.persistence.OpenJPAPersistence.cast(javax.persistence.EntityManagerFactory)
> is not applicable
> [ERROR]       (argument mismatch; jakarta.persistence.EntityManager cannot
> be converted to javax.persistence.EntityManagerFactory)
> [ERROR]     method
> org.apache.openjpa.persistence.OpenJPAPersistence.cast(javax.persistence.EntityManager)
> is not applicable
> [ERROR]       (argument mismatch; jakarta.persistence.EntityManager cannot
> be converted to javax.persistence.EntityManager)
> [ERROR]     method
> org.apache.openjpa.persistence.OpenJPAPersistence.cast(javax.persistence.Query)
> is not applicable
> [ERROR]       (argument mismatch; jakarta.persistence.EntityManager cannot
> be converted to javax.persistence.Query)
> [ERROR]
> /home/ilgrosso/work/syncope/fork/core/persistence-jpa/src/main/java/org/springframework/orm/jpa/vendor/OpenJpaVendorAdapter.java:[46,61]
> cannot access javax.persistence.spi.PersistenceProvider
> [ERROR]   class file for javax.persistence.spi.PersistenceProvider not
> found
> [ERROR]
> /home/ilgrosso/work/syncope/fork/core/persistence-jpa/src/main/java/org/springframework/orm/jpa/vendor/OpenJpaVendorAdapter.java:[122,46]
> incompatible types:
> java.lang.Class<org.apache.openjpa.persistence.OpenJPAEntityManagerFactorySPI>
> cannot be converted to java.lang.Class<? extends
> jakarta.persistence.EntityManagerFactory>
> [ERROR]
> /home/ilgrosso/work/syncope/fork/core/persistence-jpa/src/main/java/org/springframework/orm/jpa/vendor/OpenJpaVendorAdapter.java:[127,39]
> incompatible types:
> java.lang.Class<org.apache.openjpa.persistence.OpenJPAEntityManagerSPI>
> cannot be converted to java.lang.Class<? extends
> jakarta.persistence.EntityManager>
>
> Given Maxim's and yours answer about openjpa-all, I believe I'll need to
> either depend on that or shade OpenJPA artifacts right on Syncope poms:
> correct?
>
> Regards.
>
> [1]
> https://github.com/apache/syncope/blob/master/core/persistence-jpa/src/main/java/org/springframework/orm/jpa/vendor
>
> > Le mar. 27 déc. 2022 à 16:21, Francesco Chicchiriccò <
> ilgrosso@apache.org>
> > a écrit :
> >
> >> Hi all,
> >> so let's suppone one has the weird idea of adding OpenJPA to a Spring
> Boot
> >> 3 project.
> >>
> >> Do we already an idea about how to handle the javax.persistence.*  Vs
> >> jakarta.persistence.* conflicts?
> >>
> >> Thanks in advance.
> >> Regards.
>
> --
> Francesco Chicchiriccò
>
> Tirasa - Open Source Excellence
> http://www.tirasa.net/
>
> Member at The Apache Software Foundation
> Syncope, Cocoon, Olingo, CXF, OpenJPA, PonyMail
> http://home.apache.org/~ilgrosso/
>
>

Re: Using OpenJPA with Spring Boot 3?

Posted by Francesco Chicchiriccò <il...@apache.org>.
On 27/12/22 16:50, Romain Manni-Bucau wrote:
> Hi,
>
> Well I guess the jakarta shade should handle jakarta properly else user can
> use what he wants and finally worse case you can still integrate the
> mapping in spring glue code (not sure you have something particular in mind
> so shouting in the wind ;)).

For instance, I would like to keep these classes [1] working, but when I attempt to build it, I am receiving the following errors:

[ERROR] /home/ilgrosso/work/syncope/fork/core/persistence-jpa/src/main/java/org/springframework/orm/jpa/vendor/OpenJpaDialect.java:[56,55] cannot access javax.persistence.EntityTransaction
[ERROR]   class file for javax.persistence.EntityTransaction not found
[ERROR] /home/ilgrosso/work/syncope/fork/core/persistence-jpa/src/main/java/org/springframework/orm/jpa/vendor/OpenJpaDialect.java:[89,34] no suitable method found for cast(jakarta.persistence.EntityManager)
[ERROR]     method org.apache.openjpa.persistence.OpenJPAPersistence.cast(javax.persistence.EntityManagerFactory) is not applicable
[ERROR]       (argument mismatch; jakarta.persistence.EntityManager cannot be converted to javax.persistence.EntityManagerFactory)
[ERROR]     method org.apache.openjpa.persistence.OpenJPAPersistence.cast(javax.persistence.EntityManager) is not applicable
[ERROR]       (argument mismatch; jakarta.persistence.EntityManager cannot be converted to javax.persistence.EntityManager)
[ERROR]     method org.apache.openjpa.persistence.OpenJPAPersistence.cast(javax.persistence.Query) is not applicable
[ERROR]       (argument mismatch; jakarta.persistence.EntityManager cannot be converted to javax.persistence.Query)
[ERROR] /home/ilgrosso/work/syncope/fork/core/persistence-jpa/src/main/java/org/springframework/orm/jpa/vendor/OpenJpaVendorAdapter.java:[46,61] cannot access javax.persistence.spi.PersistenceProvider
[ERROR]   class file for javax.persistence.spi.PersistenceProvider not found
[ERROR] /home/ilgrosso/work/syncope/fork/core/persistence-jpa/src/main/java/org/springframework/orm/jpa/vendor/OpenJpaVendorAdapter.java:[122,46] incompatible types: java.lang.Class<org.apache.openjpa.persistence.OpenJPAEntityManagerFactorySPI> cannot be converted to java.lang.Class<? extends jakarta.persistence.EntityManagerFactory>
[ERROR] /home/ilgrosso/work/syncope/fork/core/persistence-jpa/src/main/java/org/springframework/orm/jpa/vendor/OpenJpaVendorAdapter.java:[127,39] incompatible types: java.lang.Class<org.apache.openjpa.persistence.OpenJPAEntityManagerSPI> cannot be converted to java.lang.Class<? extends jakarta.persistence.EntityManager>

Given Maxim's and yours answer about openjpa-all, I believe I'll need to either depend on that or shade OpenJPA artifacts right on Syncope poms: correct?

Regards.

[1] https://github.com/apache/syncope/blob/master/core/persistence-jpa/src/main/java/org/springframework/orm/jpa/vendor

> Le mar. 27 déc. 2022 à 16:21, Francesco Chicchiriccò <il...@apache.org>
> a écrit :
>
>> Hi all,
>> so let's suppone one has the weird idea of adding OpenJPA to a Spring Boot
>> 3 project.
>>
>> Do we already an idea about how to handle the javax.persistence.*  Vs
>> jakarta.persistence.* conflicts?
>>
>> Thanks in advance.
>> Regards.

-- 
Francesco Chicchiriccò

Tirasa - Open Source Excellence
http://www.tirasa.net/

Member at The Apache Software Foundation
Syncope, Cocoon, Olingo, CXF, OpenJPA, PonyMail
http://home.apache.org/~ilgrosso/


Re: Using OpenJPA with Spring Boot 3?

Posted by Romain Manni-Bucau <rm...@gmail.com>.
Hi,

Well I guess the jakarta shade should handle jakarta properly else user can
use what he wants and finally worse case you can still integrate the
mapping in spring glue code (not sure you have something particular in mind
so shouting in the wind ;)).

Romain Manni-Bucau
@rmannibucau <https://twitter.com/rmannibucau> |  Blog
<https://rmannibucau.metawerx.net/> | Old Blog
<http://rmannibucau.wordpress.com> | Github <https://github.com/rmannibucau> |
LinkedIn <https://www.linkedin.com/in/rmannibucau> | Book
<https://www.packtpub.com/application-development/java-ee-8-high-performance>


Le mar. 27 déc. 2022 à 16:21, Francesco Chicchiriccò <il...@apache.org>
a écrit :

> Hi all,
> so let's suppone one has the weird idea of adding OpenJPA to a Spring Boot
> 3 project.
>
> Do we already an idea about how to handle the javax.persistence.*  Vs
> jakarta.persistence.* conflicts?
>
> Thanks in advance.
> Regards.
>
> --
> Francesco Chicchiriccò
>
> Tirasa - Open Source Excellence
> http://www.tirasa.net/
>
> Member at The Apache Software Foundation
> Syncope, Cocoon, Olingo, CXF, OpenJPA, PonyMail
> http://home.apache.org/~ilgrosso/
>
>