On Tue, Sep 26, 2023 at 4:50 AM Gary Gregory <garydgreg...@gmail.com> wrote:

> (Let's stop high jacking the announcement thread.)
>

Agreed.  Sorry about that.

>
> In the future, FYI, I plan on supporting both Java and Jakarta by splitting
> DBCP into a multi-module Maven project. I'm not sure exactly when but it's
> on my to do list.
>

That sounds good.  But we may need to do something before that to restore
backward compatibility (if there is in fact a problem).  The build error
that Greg reports below is somehow related to the Commons Parent 62
version.  If I back rev Commons Parent to version 60 and revert the JTA
spec jar change (per below), the build works.  (Greg - can you try that -
just change Commons Parent version to 60 along with the change below).

Alternatively, maybe there is some other workaround to avoid the conflict
that Greg is reporting.  I am not sure if there is in fact a backward
compat issue here.  Any better ideas?

One more thing is the EPL/GPL license on the Jakarta jars.   Have these
been cleared for use (as dependencies) in ASF projects? Do we need some
kind of notice for this?

Phil

>
> Gary
>
>
>
> On Tue, Sep 26, 2023, 5:00 AM Greg Huber <gregh3...@gmail.com> wrote:
>
> > If I am understanding this correctly, I replace
> >
> > <!-- For managed connections -->
> > <dependency>
> >       <groupId>jakarta.transaction</groupId>
> >       <artifactId>jakarta.transaction-api</artifactId>
> >       <version>1.3.1</version>
> > </dependency>
> >
> > with
> >
> > <dependency>
> >         <groupId>org.apache.geronimo.specs</groupId>
> >         <artifactId>geronimo-jta_1.1_spec</artifactId>
> >         <version>1.1.1</version>
> >         <optional>true</optional>
> > </dependency>
> >
> > in the source of 2.10.0 pom.xml and then mvn clean package.
> >
> > I get this error
> >
> > [ERROR] Failed to execute goal
> > org.moditect:moditect-maven-plugin:1.0.0.Final:add-module-info
> > (add-module-infos) on project commons-dbcp2: Execution add-module-infos
> > of goal org.moditect:moditect-maven-plugin:1.0.0.Final:add-module-info
> > failed: No assignedModuleName provided for jar with invalid module name:
> >
> ~/.m2/repository/org/apache/geronimo/specs/geronimo-jta_1.1_spec/1.1.1/geronimo-jta_1.1_spec-1.1.1.jar
> >
> > -> [Help 1]
> >
> > #####
> >
> >
> > I did a diff of my apps /lib folder between the 2.10.0 and 2.9.0
> >
> > Only in ~/downloads/commons-dbcp2-2.10.0-src/target/lib.9:
> > commons-dbcp2-2.9.0.jar
> > Only in ~/downloads/commons-dbcp2-2.10.0-src/target/lib.10:
> > commons-dbcp2-2.10.0.jar
> >
> > Only in ~/downloads/commons-dbcp2-2.10.0-src/target/lib.9:
> > commons-pool2-2.10.0.jar
> > Only in ~/downloads/commons-dbcp2-2.10.0-src/target/lib.10:
> > commons-pool2-2.11.1.jar
> >
> > Only in ~/downloads/commons-dbcp2-2.10.0-src/target/lib.9:
> > jakarta.transaction-api-2.0.1.jar
> > Only in ~/downloads/commons-dbcp2-2.10.0-src/target/lib.10:
> > jakarta.transaction-api-1.3.1.jar
> >
> >
> > If I copy lib.9: jakarta.transaction-api-2.0.1.jar to replace the
> > lib.10: jakarta.transaction-api-1.3.1.jar class
> > ThreadLocalSessionContextNoAutoClose compiles and works.
> >
> > Cheers Greg
> >
> > On 25/09/2023 18:49, Phil Steitz wrote:
> > > Thanks, Greg.  I assume that dependency was there and working with DBCP
> > > 2.9, correct?
> > >
> > > Can you try reverting the pom change above, replacing the
> > > Jakarta transactions reference with
> > >
> > > <dependency>
> > >        <groupId>org.apache.geronimo.specs</groupId>
> > >        <artifactId>geronimo-jta_1.1_spec</artifactId>
> > >        <version>1.1.1</version>
> > >        <optional>true</optional>
> > > </dependency>
> > >
> > > Then recompile DBCP from 2.10 sources and test (just use mvn clean
> > package
> > > from the root of an extract of the source distribution).
> > >
> > > Phil
> > >
> > > On Mon, Sep 25, 2023 at 12:44 AM Greg Huber <gregh3...@gmail.com>
> wrote:
> > >
> > >>    >> does your code maybe bring in the 2.0 jakarta spec jar?
> > >>
> > >> I do have :
> > >>
> > >> jakarta.transaction-api-2.0.1.jar
> > >>
> > >> which comes from hibernate-core 6.3.1.Final.
> > >>
> > >>
> > >>
> > >> ###############
> > >>
> > >> Using eclipse here are the errors
> > >>
> > >> The project was not built since its build path is incomplete. Cannot
> > >> find the class file for jakarta.transaction.Synchronization. Fix the
> > >> build path then try building this project
> > >>
> > >> The type jakarta.transaction.Synchronization cannot be resolved. It is
> > >> indirectly referenced from required type
> > >> org.hibernate.context.internal.ThreadLocalSessionContext.CleanupSync
> > >>
> > >>
> > >> Here is the class that won't compile
> > >>
> > >> public class ThreadLocalSessionContextNoAutoClose
> > >>           extends ThreadLocalSessionContext {
> > >>
> > >>       private static final long serialVersionUID =
> > -9220338553393731611L;
> > >>
> > >>       /**
> > >>        * Create a new instance.
> > >>        *
> > >>        * @param factory The <code>SessionFactoryImplementor</code>
> > >> required by the
> > >>        *                super constructor.
> > >>        */
> > >>       public ThreadLocalSessionContextNoAutoClose(
> > >>               SessionFactoryImplementor factory) {
> > >>           super(factory);
> > >>       }
> > >>
> > >>       /**
> > >>        * Returns <code>false</code> to prevent auto closing.
> > >>        *
> > >>        * @return <code>false</code> to prevent auto closing.
> > >>        */
> > >>       protected boolean isAutoCloseEnabled() {
> > >>           return false;
> > >>       }
> > >>
> > >>       /**
> > >>        * Returns <code>false</code> to prevent auto flushing.
> > >>        *
> > >>        * @return <code>false</code> to prevent auto flushing.
> > >>        */
> > >>       protected boolean isAutoFlushEnabled() {
> > >>           return false;
> > >>       }
> > >>
> > >>       /**
> > >>        * Uses <code>super.buildOrObtainSession()</code>, then sets the
> > >> resulting
> > >>        * <code>Session</code>'s flush mode to
> > <code>FlushMode.NEVER</code>
> > >> to
> > >>        * prevent auto-flushing.
> > >>        *
> > >>        * @return A session configured with
> <code>FlushMode.NEVER</code>.
> > >>        */
> > >>       protected Session buildOrObtainSession() {
> > >>           Session s = super.buildOrObtainSession();
> > >>           s.setHibernateFlushMode(FlushMode.MANUAL);
> > >>           return s;
> > >>       }
> > >>
> > >>       /**
> > >>        * Returns an instance of <code>CleanupSynch</code> which
> prevents
> > >> auto
> > >>        * closing and unbinding.
> > >>        *
> > >>        * @return A <code>CleanupSynch</code> which prevents auto
> > closing and
> > >>        *         unbinding.
> > >>        */
> > >>       protected CleanupSync buildCleanupSynch() {
> > >>           return new NoCleanupSynch(factory());
> > >>       }
> > >>
> > >>       /**
> > >>        * A simple extension of <code>CleanupSynch</code> that prevents
> > >> any cleanup
> > >>        * from happening. No session closing or unbinding.
> > >>        */
> > >>       private static class NoCleanupSynch
> > >>               extends ThreadLocalSessionContext.CleanupSync {
> > >>
> > >>           private static final long serialVersionUID =
> > >> -6191453375299821467L;
> > >>
> > >>           /**
> > >>            * Creates a new instance based on the given factory.
> > >>            *
> > >>            * @param factory The required <code>SessionFactory</code>
> > that is
> > >>            *                passed to the super constructor.
> > >>            */
> > >>           public NoCleanupSynch(SessionFactory factory) {
> > >>               super(factory);
> > >>           }
> > >>
> > >>           /**
> > >>            * Does nothing, thus helping to prevent session closing
> > and/or
> > >>            * unbinding.
> > >>            */
> > >>           public void beforeCompletion() {
> > >>               // do nothing
> > >>           }
> > >>
> > >>           /**
> > >>            * Does nothing, thus helping to prevent session closing
> > and/or
> > >>            * unbinding.
> > >>            *
> > >>            * @param i
> > >>            */
> > >>           public void afterCompletion(int i) {
> > >>               // do nothing
> > >>           }
> > >>       }
> > >>
> > >> }
> > >>
> > >> Thanks.
> > >>
> > >> On 24/09/2023 20:34, Phil Steitz wrote:
> > >>> On Sun, Sep 24, 2023 at 10:28 AM Greg Huber<gregh3...@gmail.com>
> > wrote:
> > >>>
> > >>>> Forgot to add, I use hibernate 6.
> > >>>>
> > >>> I suspect this is a side effect of the change to use the jakarta spec
> > jar
> > >>>
> > >>> In 2.10, we have
> > >>>
> > >>> <dependency>
> > >>>       <groupId>jakarta.transaction</groupId>
> > >>>       <artifactId>jakarta.transaction-api</artifactId>
> > >>>       <version>1.3.1</version>
> > >>> </dependency>
> > >>>
> > >>> vs
> > >>>
> > >>> <dependency>
> > >>>         <groupId>org.apache.geronimo.specs</groupId>
> > >>>         <artifactId>geronimo-jta_1.1_spec</artifactId>
> > >>>         <version>1.1.1</version>
> > >>>         <optional>true</optional>
> > >>> </dependency>
> > >>>
> > >>> in 2.9.  What I don't get is where Greg's code is picking
> > >>> up jakarta.transaction.Synchronization because the jakarta version we
> > >>> "upgraded" to still exports the javax classes and these are what dbcp
> > >>> uses.  Greg - does your code maybe bring in the 2.0 jakarta spec jar?
> > >>>
> > >>> Phil
> > >>>
> > >>>
> > >>>> Cheers.
> > >>>>
> > >>>> On Sun, 24 Sept 2023 at 12:49, Gary Gregory<garydgreg...@gmail.com>
> > >>>> wrote:
> > >>>>
> > >>>>> What else has changed in your app?
> > >>>>>
> > >>>>> Gary
> > >>>>>
> > >>>>> On Sun, Sep 24, 2023 at 5:13 AM Greg Huber<gregh3...@gmail.com>
> > >> wrote:
> > >>>>>> Hello,
> > >>>>>>
> > >>>>>> On upgrading from 2.9.0 I get this message and my class won't
> > compile.
> > >>>>>>
> > >>>>>> I get this error
> > >>>>>>
> > >>>>>> The type jakarta.transaction.Synchronization cannot be resolved.
> It
> > is
> > >>>>>> indirectly referenced from required type
> > >>>>>>
> org.hibernate.context.internal.ThreadLocalSessionContext.CleanupSync
> > >>>>>>
> > >>>>>> I am on :
> > >>>>>>
> > >>>>>> openjdk version "11.0.19" 2023-04-18 LTS
> > >>>>>> OpenJDK Runtime Environment Zulu11.64+19-CA (build 11.0.19+7-LTS)
> > >>>>>> OpenJDK 64-Bit Server VM Zulu11.64+19-CA (build 11.0.19+7-LTS,
> mixed
> > >>>>> mode)
> > >>>>>> Not too sure what I need to do to fix this.
> > >>>>>>
> > >>>>>> Cheers
> > >>>>>>
> > >>>>>> On 03/09/2023 22:51, Gary Gregory wrote:
> > >>>>>>> The Apache Commons DBCP team is pleased to announce the release
> of
> > >>>>>>> Apache Commons DBCP 2.10.0.
> > >>>>>>>
> > >>>>>>> Apache Commons DBCP software implements Database Connection
> > Pooling.
> > >>>>>>>
> > >>>>>>> This is a minor release, including bug fixes and enhancements:
> > >>>>>>>
> > >>
> >
> https://commons.apache.org/proper/commons-dbcp/changes-report.html#a2.10.0
> > >>>>>>> For complete information on Apache Commons DBCP, including
> > >>>>>>> instructions on how to submit bug reports, patches, or
> suggestions
> > >>>> for
> > >>>>>>> improvement, see the Apache Commons DBCP website:
> > >>>>>>>
> > >>>>>>> https://commons.apache.org/dbcp/
> > >>>>>>>
> > >>>>>>> Download page:https://commons.apache.org/dbcp/download_dbcp.cgi
> > >>>>>>>
> > >>>>>>> Gary Gregory
> > >>>>>>> Apache Commons
> > >>>>>>>
> > >>>>>>>
> > ---------------------------------------------------------------------
> > >>>>>>> To unsubscribe, e-mail:user-unsubscr...@commons.apache.org
> > >>>>>>> For additional commands, e-mail:user-h...@commons.apache.org
> > >>>>>>>
> > >>>>>>
> > ---------------------------------------------------------------------
> > >>>>>> To unsubscribe, e-mail:user-unsubscr...@commons.apache.org
> > >>>>>> For additional commands, e-mail:user-h...@commons.apache.org
> > >>>>>>
> > >>>>>
> ---------------------------------------------------------------------
> > >>>>> To unsubscribe, e-mail:user-unsubscr...@commons.apache.org
> > >>>>> For additional commands, e-mail:user-h...@commons.apache.org
> > >>>>>
> > >>>>>
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: user-unsubscr...@commons.apache.org
> > For additional commands, e-mail: user-h...@commons.apache.org
> >
> >
>

Reply via email to