(Let's stop high jacking the announcement thread.) 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.
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 > >