Merge pull request #8 from rzo1/jakarta

GERONIMO-6844 - Migrate to Jakarta Namespace
diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml
new file mode 100644
index 0000000..70710ff
--- /dev/null
+++ b/.github/workflows/maven.yml
@@ -0,0 +1,44 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+name: Java CI
+
+on: [push, pull_request]
+
+jobs:
+  build:
+    runs-on: ${{ matrix.os }}
+    continue-on-error: ${{ matrix.experimental }}
+    strategy:
+      matrix:
+        os: [ubuntu-latest]
+        java: [ 11 ]
+        experimental: [false]
+
+    steps:
+    - uses: actions/checkout@v2.4.0
+    - uses: actions/cache@v2.1.7
+      with:
+        path: ~/.m2/repository
+        key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
+        restore-keys: |
+          ${{ runner.os }}-maven-
+    - name: Set up JDK ${{ matrix.java }}
+      uses: actions/setup-java@v2
+      with:
+        distribution: adopt
+        java-version: ${{ matrix.java }}
+    - name: Build with Maven
+      run: mvn -V clean test install --no-transfer-progress
\ No newline at end of file
diff --git a/NOTICE b/NOTICE
index 1bff2e3..71d27b1 100644
--- a/NOTICE
+++ b/NOTICE
@@ -1,5 +1,5 @@
 Apache Geronimo 
-Copyright 2003-2010 The Apache Software Foundation
+Copyright 2003-2023 The Apache Software Foundation
 
 This product includes software developed by
 The Apache Software Foundation (http://www.apache.org/).
diff --git a/geronimo-connector/pom.xml b/geronimo-connector/pom.xml
index db9d976..16ad24c 100644
--- a/geronimo-connector/pom.xml
+++ b/geronimo-connector/pom.xml
@@ -25,7 +25,7 @@
     <parent>
         <groupId>org.apache.geronimo.components</groupId>
         <artifactId>geronimo-txmanager-parent</artifactId>
-        <version>3.1.6-SNAPSHOT</version>
+        <version>4.0.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>geronimo-connector</artifactId>
@@ -43,30 +43,18 @@
 
     <dependencies>
         <dependency>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-api</artifactId>
-            <scope>provided</scope>
-        </dependency>
-      
-        <dependency>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-simple</artifactId>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
             <groupId>org.apache.geronimo.components</groupId>
             <artifactId>geronimo-transaction</artifactId>
         </dependency>
 
         <dependency>
-            <groupId>org.apache.geronimo.specs</groupId>
-            <artifactId>geronimo-j2ee-connector_1.6_spec</artifactId>
+            <groupId>jakarta.resource</groupId>
+            <artifactId>jakarta.resource-api</artifactId>
         </dependency>
-            
+
         <dependency>
-            <groupId>org.apache.geronimo.specs</groupId>
-            <artifactId>geronimo-validation_1.0_spec</artifactId>
+            <groupId>jakarta.validation</groupId>
+            <artifactId>jakarta.validation-api</artifactId>
         </dependency>
 
         <dependency>
@@ -111,10 +99,6 @@
                 </configuration>
             </plugin>
 
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-shade-plugin</artifactId>
-            </plugin>
         </plugins>
     </build>
 </project>
diff --git a/geronimo-connector/src/main/java/org/apache/geronimo/connector/ActivationSpecNamedXAResourceFactory.java b/geronimo-connector/src/main/java/org/apache/geronimo/connector/ActivationSpecNamedXAResourceFactory.java
index 0818ba5..e69aedf 100644
--- a/geronimo-connector/src/main/java/org/apache/geronimo/connector/ActivationSpecNamedXAResourceFactory.java
+++ b/geronimo-connector/src/main/java/org/apache/geronimo/connector/ActivationSpecNamedXAResourceFactory.java
@@ -20,10 +20,10 @@
 
 package org.apache.geronimo.connector;
 
-import javax.resource.ResourceException;
-import javax.resource.spi.ActivationSpec;
-import javax.resource.spi.ResourceAdapter;
-import javax.transaction.SystemException;
+import jakarta.resource.ResourceException;
+import jakarta.resource.spi.ActivationSpec;
+import jakarta.resource.spi.ResourceAdapter;
+import jakarta.transaction.SystemException;
 import javax.transaction.xa.XAResource;
 import org.apache.geronimo.transaction.manager.NamedXAResource;
 import org.apache.geronimo.transaction.manager.NamedXAResourceFactory;
diff --git a/geronimo-connector/src/main/java/org/apache/geronimo/connector/ActivationSpecWrapper.java b/geronimo-connector/src/main/java/org/apache/geronimo/connector/ActivationSpecWrapper.java
index 7b34c29..f1d3980 100644
--- a/geronimo-connector/src/main/java/org/apache/geronimo/connector/ActivationSpecWrapper.java
+++ b/geronimo-connector/src/main/java/org/apache/geronimo/connector/ActivationSpecWrapper.java
@@ -19,15 +19,15 @@
 
 import java.util.Set; 
 
-import javax.resource.ResourceException;
-import javax.resource.spi.ActivationSpec;
-import javax.resource.spi.ResourceAdapter;
-import javax.resource.spi.InvalidPropertyException; 
-import javax.resource.spi.endpoint.MessageEndpointFactory;
-import javax.validation.ConstraintViolation; 
-import javax.validation.ConstraintViolationException; 
-import javax.validation.Validator; 
-import javax.validation.ValidatorFactory; 
+import jakarta.resource.ResourceException;
+import jakarta.resource.spi.ActivationSpec;
+import jakarta.resource.spi.ResourceAdapter;
+import jakarta.resource.spi.InvalidPropertyException; 
+import jakarta.resource.spi.endpoint.MessageEndpointFactory;
+import jakarta.validation.ConstraintViolation; 
+import jakarta.validation.ConstraintViolationException; 
+import jakarta.validation.Validator; 
+import jakarta.validation.ValidatorFactory; 
 
 /**
  * Wrapper for ActivationSpec instances.
diff --git a/geronimo-connector/src/main/java/org/apache/geronimo/connector/AdminObjectWrapper.java b/geronimo-connector/src/main/java/org/apache/geronimo/connector/AdminObjectWrapper.java
index 4b2eefe..504a892 100644
--- a/geronimo-connector/src/main/java/org/apache/geronimo/connector/AdminObjectWrapper.java
+++ b/geronimo-connector/src/main/java/org/apache/geronimo/connector/AdminObjectWrapper.java
@@ -19,11 +19,11 @@
 
 import java.util.Set; 
 
-import javax.resource.spi.ResourceAdapterAssociation;
-import javax.validation.ConstraintViolation; 
-import javax.validation.ConstraintViolationException; 
-import javax.validation.Validator; 
-import javax.validation.ValidatorFactory; 
+import jakarta.resource.spi.ResourceAdapterAssociation;
+import jakarta.validation.ConstraintViolation; 
+import jakarta.validation.ConstraintViolationException; 
+import jakarta.validation.Validator; 
+import jakarta.validation.ValidatorFactory; 
 
 
 /**
diff --git a/geronimo-connector/src/main/java/org/apache/geronimo/connector/ConnectorTransactionContext.java b/geronimo-connector/src/main/java/org/apache/geronimo/connector/ConnectorTransactionContext.java
index ca519a0..eb18cbb 100644
--- a/geronimo-connector/src/main/java/org/apache/geronimo/connector/ConnectorTransactionContext.java
+++ b/geronimo-connector/src/main/java/org/apache/geronimo/connector/ConnectorTransactionContext.java
@@ -20,10 +20,10 @@
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
 
-import javax.transaction.Status;
-import javax.transaction.Synchronization;
-import javax.transaction.SystemException;
-import javax.transaction.Transaction;
+import jakarta.transaction.Status;
+import jakarta.transaction.Synchronization;
+import jakarta.transaction.SystemException;
+import jakarta.transaction.Transaction;
 
 import org.apache.geronimo.connector.outbound.TransactionCachingInterceptor;
 import org.apache.geronimo.transaction.manager.TransactionImpl;
diff --git a/geronimo-connector/src/main/java/org/apache/geronimo/connector/GeronimoBootstrapContext.java b/geronimo-connector/src/main/java/org/apache/geronimo/connector/GeronimoBootstrapContext.java
index 41cf403..8d1e0d1 100644
--- a/geronimo-connector/src/main/java/org/apache/geronimo/connector/GeronimoBootstrapContext.java
+++ b/geronimo-connector/src/main/java/org/apache/geronimo/connector/GeronimoBootstrapContext.java
@@ -18,11 +18,11 @@
 
 import java.util.Timer;
 
-import javax.resource.spi.UnavailableException;
-import javax.resource.spi.XATerminator;
-import javax.resource.spi.work.WorkManager;
-import javax.resource.spi.work.WorkContext;
-import javax.transaction.TransactionSynchronizationRegistry;
+import jakarta.resource.spi.UnavailableException;
+import jakarta.resource.spi.XATerminator;
+import jakarta.resource.spi.work.WorkManager;
+import jakarta.resource.spi.work.WorkContext;
+import jakarta.transaction.TransactionSynchronizationRegistry;
 import org.apache.geronimo.connector.work.GeronimoWorkManager;
 
 /**
@@ -31,7 +31,7 @@
  *
  * @version $Rev$ $Date$
  */
-public class GeronimoBootstrapContext implements javax.resource.spi.BootstrapContext {
+public class GeronimoBootstrapContext implements jakarta.resource.spi.BootstrapContext {
     private final GeronimoWorkManager workManager;
     private final XATerminator xATerminator;
     private final TransactionSynchronizationRegistry transactionSynchronizationRegistry;
@@ -59,21 +59,21 @@
 
 
     /**
-     * @see javax.resource.spi.BootstrapContext#getWorkManager()
+     * @see jakarta.resource.spi.BootstrapContext#getWorkManager()
      */
     public WorkManager getWorkManager() {
         return workManager;
     }
 
     /**
-     * @see javax.resource.spi.BootstrapContext#getXATerminator()
+     * @see jakarta.resource.spi.BootstrapContext#getXATerminator()
      */
     public XATerminator getXATerminator() {
         return xATerminator;
     }
 
     /**
-     * @see javax.resource.spi.BootstrapContext#createTimer()
+     * @see jakarta.resource.spi.BootstrapContext#createTimer()
      */
     public Timer createTimer() throws UnavailableException {
         return new Timer("BootStrapTimer", true);
diff --git a/geronimo-connector/src/main/java/org/apache/geronimo/connector/ResourceAdapterWrapper.java b/geronimo-connector/src/main/java/org/apache/geronimo/connector/ResourceAdapterWrapper.java
index f41a32c..6f3e223 100644
--- a/geronimo-connector/src/main/java/org/apache/geronimo/connector/ResourceAdapterWrapper.java
+++ b/geronimo-connector/src/main/java/org/apache/geronimo/connector/ResourceAdapterWrapper.java
@@ -20,19 +20,19 @@
 import java.util.Map;
 import java.util.Set;
 
-import javax.resource.ResourceException;
-import javax.resource.spi.ActivationSpec;
-import javax.resource.spi.BootstrapContext;
-import javax.resource.spi.ResourceAdapter;
-import javax.resource.spi.ResourceAdapterAssociation;
-import javax.resource.spi.ResourceAdapterInternalException;
-import javax.resource.spi.endpoint.MessageEndpointFactory;
-import javax.transaction.SystemException;
+import jakarta.resource.ResourceException;
+import jakarta.resource.spi.ActivationSpec;
+import jakarta.resource.spi.BootstrapContext;
+import jakarta.resource.spi.ResourceAdapter;
+import jakarta.resource.spi.ResourceAdapterAssociation;
+import jakarta.resource.spi.ResourceAdapterInternalException;
+import jakarta.resource.spi.endpoint.MessageEndpointFactory;
+import jakarta.transaction.SystemException;
 import javax.transaction.xa.XAResource;
-import javax.validation.ConstraintViolation; 
-import javax.validation.ConstraintViolationException; 
-import javax.validation.Validator; 
-import javax.validation.ValidatorFactory; 
+import jakarta.validation.ConstraintViolation; 
+import jakarta.validation.ConstraintViolationException; 
+import jakarta.validation.Validator; 
+import jakarta.validation.ValidatorFactory; 
 
 import org.apache.geronimo.transaction.manager.NamedXAResource;
 import org.apache.geronimo.transaction.manager.NamedXAResourceFactory;
diff --git a/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/AbstractConnectionManager.java b/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/AbstractConnectionManager.java
index 5ec67e1..923a514 100644
--- a/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/AbstractConnectionManager.java
+++ b/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/AbstractConnectionManager.java
@@ -17,11 +17,11 @@
 
 package org.apache.geronimo.connector.outbound;
 
-import javax.resource.ResourceException;
-import javax.resource.spi.ConnectionManager;
-import javax.resource.spi.ConnectionRequestInfo;
-import javax.resource.spi.LazyAssociatableConnectionManager;
-import javax.resource.spi.ManagedConnectionFactory;
+import jakarta.resource.ResourceException;
+import jakarta.resource.spi.ConnectionManager;
+import jakarta.resource.spi.ConnectionRequestInfo;
+import jakarta.resource.spi.LazyAssociatableConnectionManager;
+import jakarta.resource.spi.ManagedConnectionFactory;
 
 import org.apache.geronimo.connector.outbound.connectionmanagerconfig.PoolingSupport;
 import org.apache.geronimo.transaction.manager.RecoverableTransactionManager;
diff --git a/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/AbstractSinglePoolConnectionInterceptor.java b/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/AbstractSinglePoolConnectionInterceptor.java
index 7ca3ac1..e1967c2 100644
--- a/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/AbstractSinglePoolConnectionInterceptor.java
+++ b/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/AbstractSinglePoolConnectionInterceptor.java
@@ -24,21 +24,20 @@
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.locks.ReadWriteLock;
 import java.util.concurrent.locks.ReentrantReadWriteLock;
+import java.util.logging.Level;
+import java.util.logging.Logger;
 
-import javax.resource.ResourceException;
-import javax.resource.spi.ConnectionRequestInfo;
-import javax.resource.spi.ManagedConnection;
-import javax.resource.spi.ManagedConnectionFactory;
+import jakarta.resource.ResourceException;
+import jakarta.resource.spi.ConnectionRequestInfo;
+import jakarta.resource.spi.ManagedConnection;
+import jakarta.resource.spi.ManagedConnectionFactory;
 import javax.security.auth.Subject;
 
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
 /**
  * @version $Rev$ $Date$
  */
 public abstract class AbstractSinglePoolConnectionInterceptor implements ConnectionInterceptor, PoolingAttributes {
-    protected static Logger log = LoggerFactory.getLogger(AbstractSinglePoolConnectionInterceptor.class);
+    protected static Logger log = Logger.getLogger(AbstractSinglePoolConnectionInterceptor.class.getName());
     protected final ConnectionInterceptor next;
     private final ReadWriteLock resizeLock = new ReentrantReadWriteLock();
     protected Semaphore permits;
@@ -67,8 +66,8 @@
 
     public void getConnection(ConnectionInfo connectionInfo) throws ResourceException {
         if (connectionInfo.getManagedConnectionInfo().getManagedConnection() != null) {
-            if (log.isTraceEnabled()) {
-                log.trace("supplying already assigned connection from pool " + this + " " + connectionInfo);
+            if (log.isLoggable(Level.FINEST)) {
+                log.log(Level.FINEST,"supplying already assigned connection from pool " + this + " " + connectionInfo);
             }
             return;
         }
@@ -102,8 +101,8 @@
 
     public void returnConnection(ConnectionInfo connectionInfo,
                                  ConnectionReturnAction connectionReturnAction) {
-        if (log.isTraceEnabled()) {
-            log.trace("returning connection " + connectionInfo.getConnectionHandle() + " for MCI " + connectionInfo.getManagedConnectionInfo() + " and MC " + connectionInfo.getManagedConnectionInfo().getManagedConnection() + " to pool " + this);
+        if (log.isLoggable(Level.FINEST)) {
+            log.log(Level.FINEST,"returning connection " + connectionInfo.getConnectionHandle() + " for MCI " + connectionInfo.getManagedConnectionInfo() + " and MC " + connectionInfo.getManagedConnectionInfo().getManagedConnection() + " to pool " + this);
         }
 
         // not strictly synchronized with destroy(), but pooled operations in internalReturn() are...
@@ -120,8 +119,8 @@
         try {
             ManagedConnectionInfo mci = connectionInfo.getManagedConnectionInfo();
             if (connectionReturnAction == ConnectionReturnAction.RETURN_HANDLE && mci.hasConnectionHandles()) {
-                if (log.isTraceEnabled()) {
-                    log.trace("Return request at pool with connection handles! " + connectionInfo.getConnectionHandle() + " for MCI " + connectionInfo.getManagedConnectionInfo() + " and MC " + connectionInfo.getManagedConnectionInfo().getManagedConnection() + " to pool " + this, new Exception("Stack trace"));
+                if (log.isLoggable(Level.FINEST)) {
+                    log.log(Level.FINEST,"Return request at pool with connection handles! " + connectionInfo.getConnectionHandle() + " for MCI " + connectionInfo.getManagedConnectionInfo() + " and MC " + connectionInfo.getManagedConnectionInfo().getManagedConnection() + " to pool " + this, new Exception("Stack trace"));
                 }
                 return;
             }
@@ -179,8 +178,8 @@
             }
         }
         //we must destroy connection.
-        if (log.isTraceEnabled()) {
-            log.trace("Discarding connection in pool " + this + " " + connectionInfo);
+        if (log.isLoggable(Level.FINEST)) {
+            log.log(Level.FINEST,"Discarding connection in pool " + this + " " + connectionInfo);
         }
         next.returnConnection(connectionInfo, connectionReturnAction);
         connectionCount--;
@@ -378,7 +377,7 @@
                     parent.next.returnConnection(killInfo, ConnectionReturnAction.DESTROY);
                 }
             } catch (Throwable t) {
-                log.error("Error occurred during execution of ExpirationMonitor TimerTask", t);
+                log.log(Level.SEVERE, "Error occurred during execution of ExpirationMonitor TimerTask", t);
             } finally {
                 interceptor.resizeLock.readLock().unlock();
             }
@@ -418,7 +417,7 @@
                     }
                 }
             } catch (Throwable t) {
-                log.error("FillTask encountered error in run method", t);
+                log.log(Level.SEVERE, "FillTask encountered error in run method", t);
             } finally {
                 resizeLock.readLock().unlock();
             }
diff --git a/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/ConnectionHandleInterceptor.java b/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/ConnectionHandleInterceptor.java
index 232efce..9587a2b 100644
--- a/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/ConnectionHandleInterceptor.java
+++ b/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/ConnectionHandleInterceptor.java
@@ -17,7 +17,7 @@
 
 package org.apache.geronimo.connector.outbound;
 
-import javax.resource.ResourceException;
+import jakarta.resource.ResourceException;
 
 /**
  * ConnectionHandleInterceptor.java
diff --git a/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/ConnectionInterceptor.java b/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/ConnectionInterceptor.java
index 66f791a..eff9495 100644
--- a/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/ConnectionInterceptor.java
+++ b/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/ConnectionInterceptor.java
@@ -17,7 +17,7 @@
 
 package org.apache.geronimo.connector.outbound;
 
-import javax.resource.ResourceException;
+import jakarta.resource.ResourceException;
 
 /**
  * ConnectionInterceptor is the interface implemented by
diff --git a/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/ConnectionManagerContainer.java b/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/ConnectionManagerContainer.java
index f7b4f2f..2e516c2 100644
--- a/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/ConnectionManagerContainer.java
+++ b/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/ConnectionManagerContainer.java
@@ -17,8 +17,8 @@
 
 package org.apache.geronimo.connector.outbound;
 
-import javax.resource.ResourceException;
-import javax.resource.spi.ManagedConnectionFactory;
+import jakarta.resource.ResourceException;
+import jakarta.resource.spi.ManagedConnectionFactory;
 
 /**
  * ConnectionManagerContainer
diff --git a/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/ConnectionTrackingInterceptor.java b/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/ConnectionTrackingInterceptor.java
index 607855f..16ee6fa 100644
--- a/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/ConnectionTrackingInterceptor.java
+++ b/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/ConnectionTrackingInterceptor.java
@@ -20,9 +20,9 @@
 import java.util.Collection;
 import java.util.Iterator;
 
-import javax.resource.ResourceException;
-import javax.resource.spi.DissociatableManagedConnection;
-import javax.resource.spi.ManagedConnection;
+import jakarta.resource.ResourceException;
+import jakarta.resource.spi.DissociatableManagedConnection;
+import jakarta.resource.spi.ManagedConnection;
 
 import org.apache.geronimo.connector.outbound.connectiontracking.ConnectionTracker;
 
diff --git a/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/GenericConnectionManager.java b/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/GenericConnectionManager.java
index 6c8bc63..092311c 100644
--- a/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/GenericConnectionManager.java
+++ b/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/GenericConnectionManager.java
@@ -17,8 +17,8 @@
 
 package org.apache.geronimo.connector.outbound;
 
-import javax.resource.spi.ManagedConnectionFactory;
-import javax.transaction.TransactionManager;
+import jakarta.resource.spi.ManagedConnectionFactory;
+import jakarta.transaction.TransactionManager;
 
 import org.apache.geronimo.connector.outbound.connectionmanagerconfig.LocalTransactions;
 import org.apache.geronimo.connector.outbound.connectionmanagerconfig.NoTransactions;
@@ -28,8 +28,9 @@
 import org.apache.geronimo.connector.outbound.connectionmanagerconfig.XATransactions;
 import org.apache.geronimo.connector.outbound.connectiontracking.ConnectionTracker;
 import org.apache.geronimo.transaction.manager.RecoverableTransactionManager;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+
+import java.util.logging.Level;
+import java.util.logging.Logger;
 
 /**
  * GenericConnectionManager sets up a connection manager stack according to the
@@ -38,7 +39,7 @@
  * @version $Rev$ $Date$
  */
 public class GenericConnectionManager extends AbstractConnectionManager {
-    protected static final Logger log = LoggerFactory.getLogger(GenericConnectionManager.class);
+    protected static final Logger log = Logger.getLogger(GenericConnectionManager.class.getName());
 
     //default constructor to support externalizable subclasses
     public GenericConnectionManager() {
@@ -101,14 +102,14 @@
             if (mcf == null) {
                 throw new NullPointerException("No ManagedConnectionFactory supplied for " + name);
             }
-            if (mcf instanceof javax.resource.spi.TransactionSupport) {
-                javax.resource.spi.TransactionSupport txSupport = (javax.resource.spi.TransactionSupport)mcf;
-                javax.resource.spi.TransactionSupport.TransactionSupportLevel txSupportLevel = txSupport.getTransactionSupport();
+            if (mcf instanceof jakarta.resource.spi.TransactionSupport) {
+                jakarta.resource.spi.TransactionSupport txSupport = (jakarta.resource.spi.TransactionSupport)mcf;
+                jakarta.resource.spi.TransactionSupport.TransactionSupportLevel txSupportLevel = txSupport.getTransactionSupport();
                 log.info("Runtime TransactionSupport level: " + txSupportLevel);
                 if (txSupportLevel != null) {
-                    if (txSupportLevel == javax.resource.spi.TransactionSupport.TransactionSupportLevel.NoTransaction) {
+                    if (txSupportLevel == jakarta.resource.spi.TransactionSupport.TransactionSupportLevel.NoTransaction) {
                         transactionSupport = NoTransactions.INSTANCE;
-                    } else if (txSupportLevel == javax.resource.spi.TransactionSupport.TransactionSupportLevel.LocalTransaction) {
+                    } else if (txSupportLevel == jakarta.resource.spi.TransactionSupport.TransactionSupportLevel.LocalTransaction) {
                         if (transactionSupport != NoTransactions.INSTANCE) {
                             transactionSupport = LocalTransactions.INSTANCE;
                         }
@@ -128,8 +129,8 @@
 
             stack = transactionSupport.addXAResourceInsertionInterceptor(stack, name);
             stack = pooling.addPoolingInterceptors(stack);
-            if (log.isTraceEnabled()) {
-                log.trace("Connection Manager " + name + " installed pool " + stack);
+            if (log.isLoggable(Level.FINEST)) {
+                log.log(Level.FINEST,"Connection Manager " + name + " installed pool " + stack);
             }
 
             this.poolingSupport = pooling;
@@ -155,10 +156,10 @@
             }
             tail.setStack(stack);
             this.stack = stack;
-            if (log.isDebugEnabled()) {
+            if (log.isLoggable(Level.FINE)) {
                 StringBuilder s = new StringBuilder("ConnectionManager Interceptor stack;\n");
                 stack.info(s);
-                log.debug(s.toString());
+                log.log(Level.FINE, s.toString());
             }
         }
 
diff --git a/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/GeronimoConnectionEventListener.java b/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/GeronimoConnectionEventListener.java
index 435aa6f..876f91f 100644
--- a/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/GeronimoConnectionEventListener.java
+++ b/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/GeronimoConnectionEventListener.java
@@ -21,13 +21,11 @@
 import java.util.Collection;
 import java.util.Collections;
 import java.util.List;
+import java.util.logging.Level;
+import java.util.logging.Logger;
 
-import javax.resource.spi.ConnectionEvent;
-import javax.resource.spi.ConnectionEventListener;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
+import jakarta.resource.spi.ConnectionEvent;
+import jakarta.resource.spi.ConnectionEventListener;
 
 /**
  * ConnectionEventListener.java
@@ -39,7 +37,7 @@
  */
 public class GeronimoConnectionEventListener implements ConnectionEventListener {
 
-    private static Logger log = LoggerFactory.getLogger(GeronimoConnectionEventListener.class.getName());
+    private static Logger log = Logger.getLogger(GeronimoConnectionEventListener.class.getName());
 
     private final ManagedConnectionInfo managedConnectionInfo;
     private final ConnectionInterceptor stack;
@@ -61,16 +59,16 @@
                     + ", actual "
                     + connectionEvent.getSource());
         }
-        if (log.isTraceEnabled()) {
-            log.trace("connectionClosed called with " + connectionEvent.getConnectionHandle() + " for MCI: " + managedConnectionInfo + " and MC: " + managedConnectionInfo.getManagedConnection());
+        if (log.isLoggable(Level.FINEST)) {
+            log.log(Level.FINEST,"connectionClosed called with " + connectionEvent.getConnectionHandle() + " for MCI: " + managedConnectionInfo + " and MC: " + managedConnectionInfo.getManagedConnection());
         }
         ConnectionInfo ci = new ConnectionInfo(managedConnectionInfo);
         ci.setConnectionHandle(connectionEvent.getConnectionHandle());
         try {
             stack.returnConnection(ci, ConnectionReturnAction.RETURN_HANDLE);
         } catch (Throwable e) {
-            if (log.isTraceEnabled()) {
-                log.trace("connectionClosed failed with " + connectionEvent.getConnectionHandle() + " for MCI: " + managedConnectionInfo + " and MC: " + managedConnectionInfo.getManagedConnection(), e);
+            if (log.isLoggable(Level.FINEST)) {
+                log.log(Level.FINEST,"connectionClosed failed with " + connectionEvent.getConnectionHandle() + " for MCI: " + managedConnectionInfo + " and MC: " + managedConnectionInfo.getManagedConnection(), e);
             }
             if (e instanceof Error) {
                 throw (Error)e;
@@ -86,7 +84,7 @@
                     + ", actual "
                     + connectionEvent.getSource());
         }
-        log.warn("connectionErrorOccurred called with " + connectionEvent.getConnectionHandle(), connectionEvent.getException());
+        log.log(Level.WARNING,"connectionErrorOccurred called with " + connectionEvent.getConnectionHandle(), connectionEvent.getException());
         boolean errorOccurred = this.errorOccurred;
         this.errorOccurred = true;
         if (!errorOccurred) {
diff --git a/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/LocalXAResource.java b/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/LocalXAResource.java
index a8f7d4b..20885fd 100644
--- a/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/LocalXAResource.java
+++ b/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/LocalXAResource.java
@@ -17,8 +17,8 @@
 
 package org.apache.geronimo.connector.outbound;
 
-import javax.resource.ResourceException;
-import javax.resource.spi.LocalTransaction;
+import jakarta.resource.ResourceException;
+import jakarta.resource.spi.LocalTransaction;
 import javax.transaction.xa.XAException;
 import javax.transaction.xa.XAResource;
 import javax.transaction.xa.Xid;
diff --git a/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/LocalXAResourceInsertionInterceptor.java b/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/LocalXAResourceInsertionInterceptor.java
index b6b8184..7ea5c9a 100644
--- a/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/LocalXAResourceInsertionInterceptor.java
+++ b/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/LocalXAResourceInsertionInterceptor.java
@@ -17,7 +17,7 @@
 
 package org.apache.geronimo.connector.outbound;
 
-import javax.resource.ResourceException;
+import jakarta.resource.ResourceException;
 
 /**
  * LocalXAResourceInsertionInterceptor.java
diff --git a/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/MCFConnectionInterceptor.java b/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/MCFConnectionInterceptor.java
index a7dec72..b5c0c7f 100644
--- a/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/MCFConnectionInterceptor.java
+++ b/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/MCFConnectionInterceptor.java
@@ -17,12 +17,11 @@
 
 package org.apache.geronimo.connector.outbound;
 
-import javax.resource.ResourceException;
-import javax.resource.spi.ManagedConnection;
+import jakarta.resource.ResourceException;
+import jakarta.resource.spi.ManagedConnection;
 
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
+import java.util.logging.Level;
+import java.util.logging.Logger;
 
 /**
  * MCFConnectionInterceptor.java
@@ -31,7 +30,7 @@
  */
 public class MCFConnectionInterceptor implements ConnectionInterceptor {
 
-    protected static final Logger log = LoggerFactory.getLogger(MCFConnectionInterceptor.class.getName());
+    protected static final Logger log = Logger.getLogger(MCFConnectionInterceptor.class.getName());
 
     private ConnectionInterceptor stack;
 
@@ -53,7 +52,7 @@
             mci.setConnectionEventListener(listener);
             mc.addConnectionEventListener(listener);
         } catch (ResourceException re) {
-            log.error("Error occurred creating ManagedConnection for " + connectionInfo, re);
+            log.log(Level.SEVERE, "Error occurred creating ManagedConnection for " + connectionInfo, re);
             throw re;
         }
     }
diff --git a/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/ManagedConnectionInfo.java b/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/ManagedConnectionInfo.java
index 5fdf5fe..c24a64f 100644
--- a/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/ManagedConnectionInfo.java
+++ b/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/ManagedConnectionInfo.java
@@ -19,9 +19,9 @@
 
 import java.util.Collection;
 
-import javax.resource.spi.ConnectionRequestInfo;
-import javax.resource.spi.ManagedConnection;
-import javax.resource.spi.ManagedConnectionFactory;
+import jakarta.resource.spi.ConnectionRequestInfo;
+import jakarta.resource.spi.ManagedConnection;
+import jakarta.resource.spi.ManagedConnectionFactory;
 import javax.security.auth.Subject;
 import javax.transaction.xa.XAResource;
 
diff --git a/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/MultiPoolConnectionInterceptor.java b/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/MultiPoolConnectionInterceptor.java
index 8ac2fc2..3388a0b 100644
--- a/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/MultiPoolConnectionInterceptor.java
+++ b/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/MultiPoolConnectionInterceptor.java
@@ -20,8 +20,8 @@
 import java.util.HashMap;
 import java.util.Map;
 
-import javax.resource.ResourceException;
-import javax.resource.spi.ConnectionRequestInfo;
+import jakarta.resource.ResourceException;
+import jakarta.resource.spi.ConnectionRequestInfo;
 import javax.security.auth.Subject;
 
 import org.apache.geronimo.connector.outbound.connectionmanagerconfig.PoolingSupport;
diff --git a/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/OutboundNamedXAResourceFactory.java b/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/OutboundNamedXAResourceFactory.java
index 3ff4f8e..ee9a546 100644
--- a/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/OutboundNamedXAResourceFactory.java
+++ b/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/OutboundNamedXAResourceFactory.java
@@ -20,9 +20,9 @@
 
 package org.apache.geronimo.connector.outbound;
 
-import javax.resource.ResourceException;
-import javax.resource.spi.ManagedConnectionFactory;
-import javax.transaction.SystemException;
+import jakarta.resource.ResourceException;
+import jakarta.resource.spi.ManagedConnectionFactory;
+import jakarta.transaction.SystemException;
 import javax.transaction.xa.XAException;
 import javax.transaction.xa.XAResource;
 import javax.transaction.xa.Xid;
diff --git a/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/SinglePoolConnectionInterceptor.java b/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/SinglePoolConnectionInterceptor.java
index 7a04b45..62e179d 100644
--- a/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/SinglePoolConnectionInterceptor.java
+++ b/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/SinglePoolConnectionInterceptor.java
@@ -21,13 +21,11 @@
 import java.util.Collections;
 import java.util.Iterator;
 import java.util.List;
+import java.util.logging.Level;
+import java.util.logging.Logger;
 
-import javax.resource.ResourceException;
-import javax.resource.spi.ManagedConnection;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
+import jakarta.resource.ResourceException;
+import jakarta.resource.spi.ManagedConnection;
 
 /**
  * SinglePoolConnectionInterceptor chooses a single connection from the pool.  If selectOneAssumeMatch
@@ -41,7 +39,7 @@
  * @version $Rev$ $Date$
  */
 public class SinglePoolConnectionInterceptor extends AbstractSinglePoolConnectionInterceptor {
-    private static final Logger log = LoggerFactory.getLogger(SinglePoolConnectionInterceptor.class.getName());
+    private static final Logger log = Logger.getLogger(SinglePoolConnectionInterceptor.class.getName());
 
     private boolean selectOneAssumeMatch;
 
@@ -69,8 +67,8 @@
             if (pool.isEmpty()) {
                 next.getConnection(connectionInfo);
                 connectionCount++;
-                if (log.isTraceEnabled()) {
-                    log.trace("Supplying new connection MCI: " + connectionInfo.getManagedConnectionInfo() + " MC: " + connectionInfo.getManagedConnectionInfo().getManagedConnection() + " from pool: " + this);
+                if (log.isLoggable(Level.FINEST)) {
+                    log.log(Level.FINEST,"Supplying new connection MCI: " + connectionInfo.getManagedConnectionInfo() + " MC: " + connectionInfo.getManagedConnectionInfo().getManagedConnection() + " from pool: " + this);
                 }
                 return;
             } else {
@@ -81,8 +79,8 @@
             }
             if (selectOneAssumeMatch) {
                 connectionInfo.setManagedConnectionInfo(newMCI);
-                if (log.isTraceEnabled()) {
-                    log.trace("Supplying pooled connection without checking matching MCI: " + connectionInfo.getManagedConnectionInfo() + " MC: " + connectionInfo.getManagedConnectionInfo().getManagedConnection() + " from pool: " + this);
+                if (log.isLoggable(Level.FINEST)) {
+                    log.log(Level.FINEST,"Supplying pooled connection without checking matching MCI: " + connectionInfo.getManagedConnectionInfo() + " MC: " + connectionInfo.getManagedConnectionInfo().getManagedConnection() + " from pool: " + this);
                 }
                 return;
             }
@@ -101,8 +99,8 @@
             }
             if (matchedMC != null) {
                 connectionInfo.setManagedConnectionInfo(newMCI);
-                if (log.isTraceEnabled()) {
-                    log.trace("Supplying pooled connection  MCI: " + connectionInfo.getManagedConnectionInfo() + " from pool: " + this);
+                if (log.isLoggable(Level.FINEST)) {
+                    log.log(Level.FINEST,"Supplying pooled connection  MCI: " + connectionInfo.getManagedConnectionInfo() + " from pool: " + this);
                 }
             } else {
                 //matching failed.
diff --git a/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/SinglePoolMatchAllConnectionInterceptor.java b/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/SinglePoolMatchAllConnectionInterceptor.java
index 539f7af..3703d13 100644
--- a/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/SinglePoolMatchAllConnectionInterceptor.java
+++ b/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/SinglePoolMatchAllConnectionInterceptor.java
@@ -22,10 +22,11 @@
 import java.util.List;
 import java.util.Map;
 import java.util.ArrayList;
+import java.util.logging.Level;
 
-import javax.resource.ResourceException;
-import javax.resource.spi.ManagedConnection;
-import javax.resource.spi.ManagedConnectionFactory;
+import jakarta.resource.ResourceException;
+import jakarta.resource.spi.ManagedConnection;
+import jakarta.resource.spi.ManagedConnectionFactory;
 
 /**
  * This pool is the most spec-compliant pool.  It can be used by itself with no partitioning.
@@ -66,8 +67,8 @@
                 if (matchedMC != null) {
                     connectionInfo.setManagedConnectionInfo(pool.get(matchedMC));
                     pool.remove(matchedMC);
-                    if (log.isTraceEnabled()) {
-                        log.trace("Supplying existing connection from pool " + this + " " + connectionInfo);
+                    if (log.isLoggable(Level.FINEST)) {
+                        log.log(Level.FINEST,"Supplying existing connection from pool " + this + " " + connectionInfo);
                     }
                     if (connectionCount < minSize) {
                         timer.schedule(new FillTask(connectionInfo), 10);
@@ -78,7 +79,7 @@
             //matching failed or pool is empty
             //if pool is at maximum size, pick a cx to kill
             if (connectionCount == maxSize) {
-                log.trace("Pool is at max size but no connections match, picking one to destroy");
+                log.log(Level.FINEST,"Pool is at max size but no connections match, picking one to destroy");
                 Iterator iterator = pool.entrySet().iterator();
                 ManagedConnectionInfo kill = (ManagedConnectionInfo) ((Map.Entry) iterator.next()).getValue();
                 iterator.remove();
@@ -87,8 +88,8 @@
             }
             next.getConnection(connectionInfo);
             connectionCount++;
-            if (log.isTraceEnabled()) {
-                log.trace("Supplying new connection from pool " + this + " " + connectionInfo);
+            if (log.isLoggable(Level.FINEST)) {
+                log.log(Level.FINEST,"Supplying new connection from pool " + this + " " + connectionInfo);
             }
             if (connectionCount < minSize) {
                 timer.schedule(new FillTask(connectionInfo), 10);
diff --git a/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/SubjectInterceptor.java b/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/SubjectInterceptor.java
index cbb62aa..542a252 100644
--- a/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/SubjectInterceptor.java
+++ b/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/SubjectInterceptor.java
@@ -17,8 +17,8 @@
 
 package org.apache.geronimo.connector.outbound;
 
-import javax.resource.ResourceException;
-import javax.resource.spi.ApplicationServerInternalException;
+import jakarta.resource.ResourceException;
+import jakarta.resource.spi.ApplicationServerInternalException;
 import javax.security.auth.Subject;
 
 /**
diff --git a/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/TCCLInterceptor.java b/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/TCCLInterceptor.java
index 44d908b..07640a5 100644
--- a/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/TCCLInterceptor.java
+++ b/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/TCCLInterceptor.java
@@ -16,7 +16,7 @@
  */
 package org.apache.geronimo.connector.outbound;
 
-import javax.resource.ResourceException;
+import jakarta.resource.ResourceException;
 
 /**
  * @version $Rev$ $Date$
diff --git a/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/ThreadLocalCachingConnectionInterceptor.java b/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/ThreadLocalCachingConnectionInterceptor.java
index bfa0b74..ffca34a 100644
--- a/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/ThreadLocalCachingConnectionInterceptor.java
+++ b/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/ThreadLocalCachingConnectionInterceptor.java
@@ -19,7 +19,7 @@
 
 import java.util.Collections;
 
-import javax.resource.ResourceException;
+import jakarta.resource.ResourceException;
 
 /**
  *
diff --git a/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/TransactionCachingInterceptor.java b/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/TransactionCachingInterceptor.java
index 14c6ce6..8c92cd1 100644
--- a/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/TransactionCachingInterceptor.java
+++ b/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/TransactionCachingInterceptor.java
@@ -19,16 +19,16 @@
 
 import java.util.HashSet;
 import java.util.Set;
+import java.util.logging.Level;
+import java.util.logging.Logger;
 
-import javax.resource.ResourceException;
-import javax.transaction.SystemException;
-import javax.transaction.Transaction;
-import javax.transaction.TransactionManager;
+import jakarta.resource.ResourceException;
+import jakarta.transaction.SystemException;
+import jakarta.transaction.Transaction;
+import jakarta.transaction.TransactionManager;
 
 import org.apache.geronimo.connector.ConnectionReleaser;
 import org.apache.geronimo.connector.ConnectorTransactionContext;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 /**
  * TransactionCachingInterceptor.java
@@ -51,7 +51,7 @@
  * @version 1.0
  */
 public class TransactionCachingInterceptor implements ConnectionInterceptor, ConnectionReleaser {
-    protected static Logger log = LoggerFactory.getLogger(TransactionCachingInterceptor.class.getName());
+    protected static Logger log = Logger.getLogger(TransactionCachingInterceptor.class.getName());
 
     private final ConnectionInterceptor next;
     private final TransactionManager transactionManager;
@@ -73,8 +73,8 @@
                 if (!managedConnectionInfos.containsUnshared(connectionInfo.getManagedConnectionInfo())) {
                     next.getConnection(connectionInfo);
                     managedConnectionInfos.addUnshared(connectionInfo.getManagedConnectionInfo());
-                    if (log.isTraceEnabled()) {
-                        log.trace("Enlisting connection already associated with handle " + infoString(connectionInfo));
+                    if (log.isLoggable(Level.FINEST)) {
+                        log.log(Level.FINEST,"Enlisting connection already associated with handle " + infoString(connectionInfo));
                     }
                 }
             } else {
@@ -86,22 +86,22 @@
                         //enlists connection
                         next.getConnection(connectionInfo);
                         managedConnectionInfos.addUnshared(previousMci);
-                        if (log.isTraceEnabled()) {
-                            log.trace("Enlisting existing connection associated with connection handle with current tx  " + infoString(connectionInfo));
+                        if (log.isLoggable(Level.FINEST)) {
+                            log.log(Level.FINEST,"Enlisting existing connection associated with connection handle with current tx  " + infoString(connectionInfo));
                         }
                     } else {
                         connectionInfo.setManagedConnectionInfo(managedConnectionInfo);
 
                         //return;
-                        if (log.isTraceEnabled()) {
-                            log.trace("supplying connection from tx cache  " + infoString(connectionInfo));
+                        if (log.isLoggable(Level.FINEST)) {
+                            log.log(Level.FINEST,"supplying connection from tx cache  " + infoString(connectionInfo));
                         }
                     }
                 } else {
                     next.getConnection(connectionInfo);
                     managedConnectionInfos.setShared(connectionInfo.getManagedConnectionInfo());
-                    if (log.isTraceEnabled()) {
-                        log.trace("supplying connection from pool " + connectionInfo.getConnectionHandle() + " for managed connection " + connectionInfo.getManagedConnectionInfo().getManagedConnection() + " to tx caching interceptor " + this);
+                    if (log.isLoggable(Level.FINEST)) {
+                        log.log(Level.FINEST,"supplying connection from pool " + connectionInfo.getConnectionHandle() + " for managed connection " + connectionInfo.getManagedConnectionInfo().getManagedConnection() + " to tx caching interceptor " + this);
                     }
                 }
             }
@@ -113,8 +113,8 @@
     public void returnConnection(ConnectionInfo connectionInfo, ConnectionReturnAction connectionReturnAction) {
 
         if (connectionReturnAction == ConnectionReturnAction.DESTROY) {
-            if (log.isTraceEnabled()) {
-                log.trace("destroying connection " + infoString(connectionInfo));
+            if (log.isLoggable(Level.FINEST)) {
+                log.log(Level.FINEST,"destroying connection " + infoString(connectionInfo));
             }
             next.returnConnection(connectionInfo, connectionReturnAction);
             return;
@@ -124,8 +124,8 @@
             transaction = transactionManager.getTransaction();
             if (transaction != null) {
                 if (TxUtil.isActive(transaction)) {
-                    if (log.isTraceEnabled()) {
-                        log.trace("tx active, not returning connection  " + infoString(connectionInfo));
+                    if (log.isLoggable(Level.FINEST)) {
+                        log.log(Level.FINEST,"tx active, not returning connection  " + infoString(connectionInfo));
                     }
                     return;
                 }
@@ -133,30 +133,30 @@
                 //so we don't close it twice
                 ManagedConnectionInfos managedConnectionInfos = ConnectorTransactionContext.get(transaction, this);
                 managedConnectionInfos.remove(connectionInfo.getManagedConnectionInfo());
-                if (log.isTraceEnabled()) {
-                    log.trace("tx ended, return during synchronization afterCompletion " + infoString(connectionInfo));
+                if (log.isLoggable(Level.FINEST)) {
+                    log.log(Level.FINEST,"tx ended, return during synchronization afterCompletion " + infoString(connectionInfo));
                 }
             }
         } catch (SystemException e) {
             //ignore
         }
-        if (log.isTraceEnabled()) {
-            log.trace("tx ended, returning connection " + infoString(connectionInfo));
+        if (log.isLoggable(Level.FINEST)) {
+            log.log(Level.FINEST,"tx ended, returning connection " + infoString(connectionInfo));
         }
         internalReturn(connectionInfo, connectionReturnAction);
     }
 
     private void internalReturn(ConnectionInfo connectionInfo, ConnectionReturnAction connectionReturnAction) {
         if (connectionInfo.getManagedConnectionInfo().hasConnectionHandles()) {
-            if (log.isTraceEnabled()) {
-                log.trace("not returning connection from tx cache (has handles) " + infoString(connectionInfo));
+            if (log.isLoggable(Level.FINEST)) {
+                log.log(Level.FINEST,"not returning connection from tx cache (has handles) " + infoString(connectionInfo));
             }
             return;
         }
         //No transaction, no handles, we return it.
         next.returnConnection(connectionInfo, connectionReturnAction);
-        if (log.isTraceEnabled()) {
-            log.trace("completed return of connection through tx cache " + infoString(connectionInfo));
+        if (log.isLoggable(Level.FINEST)) {
+            log.log(Level.FINEST,"completed return of connection through tx cache " + infoString(connectionInfo));
         }
     }
 
@@ -168,14 +168,14 @@
         ManagedConnectionInfos managedConnectionInfos = (ManagedConnectionInfos) stuff;
         ManagedConnectionInfo sharedMCI = managedConnectionInfos.getShared();
         if (sharedMCI != null) {
-            if (log.isTraceEnabled()) {
-                log.trace("Transaction completed, attempting to return shared connection MCI: " + infoString(sharedMCI));
+            if (log.isLoggable(Level.FINEST)) {
+                log.log(Level.FINEST,"Transaction completed, attempting to return shared connection MCI: " + infoString(sharedMCI));
             }
             returnHandle(sharedMCI);
         }
         for (ManagedConnectionInfo managedConnectionInfo : managedConnectionInfos.getUnshared()) {
-            if (log.isTraceEnabled()) {
-                log.trace("Transaction completed, attempting to return unshared connection MCI: " + infoString(managedConnectionInfo));
+            if (log.isLoggable(Level.FINEST)) {
+                log.log(Level.FINEST,"Transaction completed, attempting to return unshared connection MCI: " + infoString(managedConnectionInfo));
             }
             returnHandle(managedConnectionInfo);
         }
diff --git a/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/TransactionEnlistingInterceptor.java b/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/TransactionEnlistingInterceptor.java
index 345df16..bc5cd15 100644
--- a/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/TransactionEnlistingInterceptor.java
+++ b/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/TransactionEnlistingInterceptor.java
@@ -17,14 +17,14 @@
 
 package org.apache.geronimo.connector.outbound;
 
-import javax.resource.ResourceException;
-import javax.transaction.RollbackException;
-import javax.transaction.SystemException;
-import javax.transaction.Transaction;
-import javax.transaction.TransactionManager;
+import jakarta.resource.ResourceException;
+import jakarta.transaction.RollbackException;
+import jakarta.transaction.SystemException;
+import jakarta.transaction.Transaction;
+import jakarta.transaction.TransactionManager;
 import javax.transaction.xa.XAResource;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import java.util.logging.Level;
+import java.util.logging.Logger;
 
 /**
  * TransactionEnlistingInterceptor.java
@@ -35,7 +35,7 @@
  * @version 1.0
  */
 public class TransactionEnlistingInterceptor implements ConnectionInterceptor {
-    protected static Logger log = LoggerFactory.getLogger(TransactionEnlistingInterceptor.class);
+    protected static Logger log = Logger.getLogger(TransactionEnlistingInterceptor.class.getName());
 
     private final ConnectionInterceptor next;
     private final TransactionManager transactionManager;
@@ -54,13 +54,13 @@
             Transaction transaction = TxUtil.getTransactionIfActive(transactionManager);
             if (transaction != null) {
                 XAResource xares = mci.getXAResource();
-                if (log.isTraceEnabled()) {
-                    log.trace("Enlisting connection " + connectionInfo + " with XAResource " + xares + " in transaction: " + transaction);
+                if (log.isLoggable(Level.FINEST)) {
+                    log.log(Level.FINEST,"Enlisting connection " + connectionInfo + " with XAResource " + xares + " in transaction: " + transaction);
                 }
                 transaction.enlistResource(xares);
             } else {
-                if (log.isTraceEnabled()) {
-                    log.trace("not enlisting connection " + connectionInfo + " with XAResource " + mci.getXAResource() + " no transaction");
+                if (log.isLoggable(Level.FINEST)) {
+                    log.log(Level.FINEST,"not enlisting connection " + connectionInfo + " with XAResource " + mci.getXAResource() + " no transaction");
                 }
             }
         } catch (SystemException e) {
@@ -92,19 +92,19 @@
             Transaction transaction = TxUtil.getTransactionIfActive(transactionManager);
             if (transaction != null) {
                 XAResource xares = mci.getXAResource();
-                if (log.isTraceEnabled()) {
-                    log.trace("Delisting connection " + connectionInfo + " with XAResource " + xares + " in transaction: " + transaction, new Exception("stack trace"));
+                if (log.isLoggable(Level.FINEST)) {
+                    log.log(Level.FINEST,"Delisting connection " + connectionInfo + " with XAResource " + xares + " in transaction: " + transaction, new Exception("stack trace"));
                 }
                 transaction.delistResource(xares, XAResource.TMSUSPEND);
             } else {
-                if (log.isTraceEnabled()) {
-                    log.trace("not delisting connection " + connectionInfo + " with XAResource " + mci.getXAResource() + " no transaction");
+                if (log.isLoggable(Level.FINEST)) {
+                    log.log(Level.FINEST,"not delisting connection " + connectionInfo + " with XAResource " + mci.getXAResource() + " no transaction");
                 }
             }
 
         } catch (SystemException e) {
             //maybe we should warn???
-            log.info("Could not delist resource: " + connectionInfo  + " with XAResource: " + connectionInfo.getManagedConnectionInfo().getXAResource(), e);
+            log.log(Level.INFO,"Could not delist resource: " + connectionInfo  + " with XAResource: " + connectionInfo.getManagedConnectionInfo().getXAResource(), e);
             connectionReturnAction = ConnectionReturnAction.DESTROY;
         } catch (IllegalStateException e) {
             connectionReturnAction = ConnectionReturnAction.DESTROY;
diff --git a/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/TxUtil.java b/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/TxUtil.java
index ea6e602..a1ef3ea 100644
--- a/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/TxUtil.java
+++ b/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/TxUtil.java
@@ -16,10 +16,10 @@
  */
 package org.apache.geronimo.connector.outbound;
 
-import javax.transaction.Status;
-import javax.transaction.SystemException;
-import javax.transaction.Transaction;
-import javax.transaction.TransactionManager;
+import jakarta.transaction.Status;
+import jakarta.transaction.SystemException;
+import jakarta.transaction.Transaction;
+import jakarta.transaction.TransactionManager;
 
 /**
  * @version $Rev$ $Date$
diff --git a/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/XAResourceInsertionInterceptor.java b/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/XAResourceInsertionInterceptor.java
index e0e3a64..d850971 100644
--- a/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/XAResourceInsertionInterceptor.java
+++ b/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/XAResourceInsertionInterceptor.java
@@ -17,7 +17,7 @@
 
 package org.apache.geronimo.connector.outbound;
 
-import javax.resource.ResourceException;
+import jakarta.resource.ResourceException;
 
 import org.apache.geronimo.transaction.manager.WrapperNamedXAResource;
 
diff --git a/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/connectionmanagerconfig/LocalTransactions.java b/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/connectionmanagerconfig/LocalTransactions.java
index 4d3022c..da1159d 100644
--- a/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/connectionmanagerconfig/LocalTransactions.java
+++ b/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/connectionmanagerconfig/LocalTransactions.java
@@ -17,7 +17,7 @@
 
 package org.apache.geronimo.connector.outbound.connectionmanagerconfig;
 
-import javax.transaction.TransactionManager;
+import jakarta.transaction.TransactionManager;
 
 import org.apache.geronimo.connector.outbound.ConnectionInterceptor;
 import org.apache.geronimo.connector.outbound.LocalXAResourceInsertionInterceptor;
diff --git a/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/connectionmanagerconfig/NoTransactions.java b/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/connectionmanagerconfig/NoTransactions.java
index 536aea1..a002094 100644
--- a/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/connectionmanagerconfig/NoTransactions.java
+++ b/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/connectionmanagerconfig/NoTransactions.java
@@ -17,7 +17,7 @@
 
 package org.apache.geronimo.connector.outbound.connectionmanagerconfig;
 
-import javax.transaction.TransactionManager;
+import jakarta.transaction.TransactionManager;
 
 import org.apache.geronimo.connector.outbound.ConnectionInterceptor;
 
diff --git a/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/connectionmanagerconfig/TransactionLog.java b/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/connectionmanagerconfig/TransactionLog.java
index b11d24a..0a4fcd1 100644
--- a/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/connectionmanagerconfig/TransactionLog.java
+++ b/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/connectionmanagerconfig/TransactionLog.java
@@ -17,7 +17,7 @@
 
 package org.apache.geronimo.connector.outbound.connectionmanagerconfig;
 
-import javax.transaction.TransactionManager;
+import jakarta.transaction.TransactionManager;
 
 import org.apache.geronimo.connector.outbound.ConnectionInterceptor;
 import org.apache.geronimo.connector.outbound.TransactionCachingInterceptor;
diff --git a/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/connectionmanagerconfig/TransactionSupport.java b/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/connectionmanagerconfig/TransactionSupport.java
index f960b3f..d95a408 100644
--- a/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/connectionmanagerconfig/TransactionSupport.java
+++ b/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/connectionmanagerconfig/TransactionSupport.java
@@ -19,7 +19,7 @@
 
 import java.io.Serializable;
 
-import javax.transaction.TransactionManager;
+import jakarta.transaction.TransactionManager;
 
 import org.apache.geronimo.connector.outbound.ConnectionInterceptor;
 
diff --git a/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/connectionmanagerconfig/XATransactions.java b/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/connectionmanagerconfig/XATransactions.java
index e1ff6c9..5100987 100644
--- a/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/connectionmanagerconfig/XATransactions.java
+++ b/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/connectionmanagerconfig/XATransactions.java
@@ -17,7 +17,7 @@
 
 package org.apache.geronimo.connector.outbound.connectionmanagerconfig;
 
-import javax.transaction.TransactionManager;
+import jakarta.transaction.TransactionManager;
 
 import org.apache.geronimo.connector.outbound.ConnectionInterceptor;
 import org.apache.geronimo.connector.outbound.ThreadLocalCachingConnectionInterceptor;
diff --git a/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/connectiontracking/ConnectionTracker.java b/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/connectiontracking/ConnectionTracker.java
index 26a94b4..5efe2f4 100644
--- a/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/connectiontracking/ConnectionTracker.java
+++ b/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/connectiontracking/ConnectionTracker.java
@@ -17,7 +17,7 @@
 
 package org.apache.geronimo.connector.outbound.connectiontracking;
 
-import javax.resource.ResourceException;
+import jakarta.resource.ResourceException;
 
 import org.apache.geronimo.connector.outbound.ConnectionInfo;
 import org.apache.geronimo.connector.outbound.ConnectionReturnAction;
diff --git a/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/connectiontracking/ConnectionTrackingCoordinator.java b/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/connectiontracking/ConnectionTrackingCoordinator.java
index 4b8ff0e..bebd22f 100644
--- a/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/connectiontracking/ConnectionTrackingCoordinator.java
+++ b/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/connectiontracking/ConnectionTrackingCoordinator.java
@@ -28,16 +28,16 @@
 import java.util.Set;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.ConcurrentMap;
+import java.util.logging.Level;
+import java.util.logging.Logger;
 
-import javax.resource.ResourceException;
-import javax.resource.spi.DissociatableManagedConnection;
+import jakarta.resource.ResourceException;
+import jakarta.resource.spi.DissociatableManagedConnection;
 
 import org.apache.geronimo.connector.outbound.ConnectionInfo;
 import org.apache.geronimo.connector.outbound.ConnectionReturnAction;
 import org.apache.geronimo.connector.outbound.ConnectionTrackingInterceptor;
 import org.apache.geronimo.connector.outbound.ManagedConnectionInfo;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 /**
  * ConnectionTrackingCoordinator tracks connections that are in use by
@@ -56,7 +56,7 @@
  * @version $Rev$ $Date$
  */
 public class ConnectionTrackingCoordinator implements TrackedConnectionAssociator, ConnectionTracker {
-    private static final Logger log = LoggerFactory.getLogger(ConnectionTrackingCoordinator.class.getName());
+    private static final Logger log = Logger.getLogger(ConnectionTrackingCoordinator.class.getName());
 
     private final boolean lazyConnect;
     private final ThreadLocal<ConnectorInstanceContext> currentInstanceContexts = new ThreadLocal<ConnectorInstanceContext>();
@@ -191,8 +191,8 @@
                 infos.remove(connectionInfo);
             }
         } else {
-            if ( log.isTraceEnabled()) {
-                 log.trace("No infos found for handle " + connectionInfo.getConnectionHandle() +
+            if ( log.isLoggable(Level.FINEST)) {
+                 log.log(Level.FINEST,"No infos found for handle " + connectionInfo.getConnectionHandle() +
                          " for MCI: " + connectionInfo.getManagedConnectionInfo() +
                          " for MC: " + connectionInfo.getManagedConnectionInfo().getManagedConnection() +
                          " for CTI: " + connectionTrackingInterceptor, new Exception("Stack Trace"));
diff --git a/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/connectiontracking/GeronimoTransactionListener.java b/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/connectiontracking/GeronimoTransactionListener.java
index c4837b4..569ed61 100644
--- a/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/connectiontracking/GeronimoTransactionListener.java
+++ b/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/connectiontracking/GeronimoTransactionListener.java
@@ -16,18 +16,19 @@
  */
 package org.apache.geronimo.connector.outbound.connectiontracking;
 
-import javax.resource.ResourceException;
-import javax.transaction.Transaction;
+import jakarta.resource.ResourceException;
+import jakarta.transaction.Transaction;
 
 import org.apache.geronimo.transaction.manager.TransactionManagerMonitor;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+
+import java.util.logging.Level;
+import java.util.logging.Logger;
 
 /**
  * @version $Rev$ $Date$
  */
 public class GeronimoTransactionListener implements TransactionManagerMonitor {
-    private static final Logger log = LoggerFactory.getLogger(GeronimoTransactionListener.class);
+    private static final Logger log = Logger.getLogger(GeronimoTransactionListener.class.getName());
     private final TrackedConnectionAssociator trackedConnectionAssociator;
 
     public GeronimoTransactionListener(TrackedConnectionAssociator trackedConnectionAssociator) {
@@ -38,7 +39,7 @@
         try {
             trackedConnectionAssociator.newTransaction();
         } catch (ResourceException e) {
-            log.warn("Error notifying connection tranker of transaction association", e);
+            log.log(Level.WARNING, "Error notifying connection tranker of transaction association", e);
         }
     }
 
diff --git a/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/connectiontracking/TrackedConnectionAssociator.java b/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/connectiontracking/TrackedConnectionAssociator.java
index 970d4ec..a9dc13f 100644
--- a/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/connectiontracking/TrackedConnectionAssociator.java
+++ b/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/connectiontracking/TrackedConnectionAssociator.java
@@ -17,7 +17,7 @@
 
 package org.apache.geronimo.connector.outbound.connectiontracking;
 
-import javax.resource.ResourceException;
+import jakarta.resource.ResourceException;
 
 /**
  *
diff --git a/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/transactionlog/LogXAResource.java b/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/transactionlog/LogXAResource.java
index 4557483..235aa95 100644
--- a/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/transactionlog/LogXAResource.java
+++ b/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/transactionlog/LogXAResource.java
@@ -17,8 +17,8 @@
 
 package org.apache.geronimo.connector.outbound.transactionlog;
 
-import javax.resource.ResourceException;
-import javax.resource.spi.LocalTransaction;
+import jakarta.resource.ResourceException;
+import jakarta.resource.spi.LocalTransaction;
 import javax.transaction.xa.XAException;
 import javax.transaction.xa.XAResource;
 import javax.transaction.xa.Xid;
diff --git a/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/transactionlog/LogXAResourceInsertionInterceptor.java b/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/transactionlog/LogXAResourceInsertionInterceptor.java
index 6152712..cb17a48 100644
--- a/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/transactionlog/LogXAResourceInsertionInterceptor.java
+++ b/geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/transactionlog/LogXAResourceInsertionInterceptor.java
@@ -17,7 +17,7 @@
 
 package org.apache.geronimo.connector.outbound.transactionlog;
 
-import javax.resource.ResourceException;
+import jakarta.resource.ResourceException;
 
 import org.apache.geronimo.connector.outbound.ConnectionInfo;
 import org.apache.geronimo.connector.outbound.ConnectionInterceptor;
diff --git a/geronimo-connector/src/main/java/org/apache/geronimo/connector/work/GeronimoWorkManager.java b/geronimo-connector/src/main/java/org/apache/geronimo/connector/work/GeronimoWorkManager.java
index 22f8449..8e6a393 100644
--- a/geronimo-connector/src/main/java/org/apache/geronimo/connector/work/GeronimoWorkManager.java
+++ b/geronimo-connector/src/main/java/org/apache/geronimo/connector/work/GeronimoWorkManager.java
@@ -21,13 +21,13 @@
 import java.util.Collections;
 import java.util.concurrent.Executor;
 
-import javax.resource.spi.work.ExecutionContext;
-import javax.resource.spi.work.Work;
-import javax.resource.spi.work.WorkCompletedException;
-import javax.resource.spi.work.WorkContext;
-import javax.resource.spi.work.WorkException;
-import javax.resource.spi.work.WorkListener;
-import javax.resource.spi.work.WorkManager;
+import jakarta.resource.spi.work.ExecutionContext;
+import jakarta.resource.spi.work.Work;
+import jakarta.resource.spi.work.WorkCompletedException;
+import jakarta.resource.spi.work.WorkContext;
+import jakarta.resource.spi.work.WorkException;
+import jakarta.resource.spi.work.WorkListener;
+import jakarta.resource.spi.work.WorkManager;
 
 import org.apache.geronimo.connector.work.pool.ScheduleWorkExecutor;
 import org.apache.geronimo.connector.work.pool.StartWorkExecutor;
@@ -114,14 +114,14 @@
     }
 
     /* (non-Javadoc)
-    * @see javax.resource.spi.work.WorkManager#doWork(javax.resource.spi.work.Work)
+    * @see jakarta.resource.spi.work.WorkManager#doWork(jakarta.resource.spi.work.Work)
     */
     public void doWork(Work work) throws WorkException {
         executeWork(new WorkerContext(work, workContextHandlers), syncWorkExecutor, syncWorkExecutorPool);
     }
 
     /* (non-Javadoc)
-     * @see javax.resource.spi.work.WorkManager#doWork(javax.resource.spi.work.Work, long, javax.resource.spi.work.ExecutionContext, javax.resource.spi.work.WorkListener)
+     * @see jakarta.resource.spi.work.WorkManager#doWork(jakarta.resource.spi.work.Work, long, jakarta.resource.spi.work.ExecutionContext, jakarta.resource.spi.work.WorkListener)
      */
     public void doWork(
             Work work,
@@ -136,7 +136,7 @@
     }
 
     /* (non-Javadoc)
-     * @see javax.resource.spi.work.WorkManager#startWork(javax.resource.spi.work.Work)
+     * @see jakarta.resource.spi.work.WorkManager#startWork(jakarta.resource.spi.work.Work)
      */
     public long startWork(Work work) throws WorkException {
         WorkerContext workWrapper = new WorkerContext(work, workContextHandlers);
@@ -146,7 +146,7 @@
     }
 
     /* (non-Javadoc)
-     * @see javax.resource.spi.work.WorkManager#startWork(javax.resource.spi.work.Work, long, javax.resource.spi.work.ExecutionContext, javax.resource.spi.work.WorkListener)
+     * @see jakarta.resource.spi.work.WorkManager#startWork(jakarta.resource.spi.work.Work, long, jakarta.resource.spi.work.ExecutionContext, jakarta.resource.spi.work.WorkListener)
      */
     public long startWork(
             Work work,
@@ -162,7 +162,7 @@
     }
 
     /* (non-Javadoc)
-     * @see javax.resource.spi.work.WorkManager#scheduleWork(javax.resource.spi.work.Work)
+     * @see jakarta.resource.spi.work.WorkManager#scheduleWork(jakarta.resource.spi.work.Work)
      */
     public void scheduleWork(Work work) throws WorkException {
         WorkerContext workWrapper = new WorkerContext(work, workContextHandlers);
@@ -171,7 +171,7 @@
     }
 
     /* (non-Javadoc)
-     * @see javax.resource.spi.work.WorkManager#scheduleWork(javax.resource.spi.work.Work, long, javax.resource.spi.work.ExecutionContext, javax.resource.spi.work.WorkListener)
+     * @see jakarta.resource.spi.work.WorkManager#scheduleWork(jakarta.resource.spi.work.Work, long, jakarta.resource.spi.work.ExecutionContext, jakarta.resource.spi.work.WorkListener)
      */
     public void scheduleWork(
             Work work,
diff --git a/geronimo-connector/src/main/java/org/apache/geronimo/connector/work/HintsContextHandler.java b/geronimo-connector/src/main/java/org/apache/geronimo/connector/work/HintsContextHandler.java
index 0a314f1..f31229c 100644
--- a/geronimo-connector/src/main/java/org/apache/geronimo/connector/work/HintsContextHandler.java
+++ b/geronimo-connector/src/main/java/org/apache/geronimo/connector/work/HintsContextHandler.java
@@ -20,9 +20,9 @@
 
 package org.apache.geronimo.connector.work;
 
-import javax.resource.spi.work.HintsContext;
-import javax.resource.spi.work.WorkCompletedException;
-import javax.resource.spi.work.WorkContext;
+import jakarta.resource.spi.work.HintsContext;
+import jakarta.resource.spi.work.WorkCompletedException;
+import jakarta.resource.spi.work.WorkContext;
 
 /**
  * @version $Rev$ $Date$
diff --git a/geronimo-connector/src/main/java/org/apache/geronimo/connector/work/TransactionContextHandler.java b/geronimo-connector/src/main/java/org/apache/geronimo/connector/work/TransactionContextHandler.java
index d7433d6..dc8ff41 100644
--- a/geronimo-connector/src/main/java/org/apache/geronimo/connector/work/TransactionContextHandler.java
+++ b/geronimo-connector/src/main/java/org/apache/geronimo/connector/work/TransactionContextHandler.java
@@ -20,12 +20,12 @@
 
 package org.apache.geronimo.connector.work;
 
-import javax.resource.spi.work.TransactionContext;
-import javax.resource.spi.work.WorkCompletedException;
-import javax.resource.spi.work.WorkContext;
+import jakarta.resource.spi.work.TransactionContext;
+import jakarta.resource.spi.work.WorkCompletedException;
+import jakarta.resource.spi.work.WorkContext;
 import javax.transaction.xa.XAException;
-import javax.transaction.InvalidTransactionException;
-import javax.transaction.SystemException;
+import jakarta.transaction.InvalidTransactionException;
+import jakarta.transaction.SystemException;
 
 import org.apache.geronimo.transaction.manager.XAWork;
 import org.apache.geronimo.transaction.manager.ImportedTransactionActiveException;
diff --git a/geronimo-connector/src/main/java/org/apache/geronimo/connector/work/WorkContextHandler.java b/geronimo-connector/src/main/java/org/apache/geronimo/connector/work/WorkContextHandler.java
index 5ea8d18..025d9e1 100644
--- a/geronimo-connector/src/main/java/org/apache/geronimo/connector/work/WorkContextHandler.java
+++ b/geronimo-connector/src/main/java/org/apache/geronimo/connector/work/WorkContextHandler.java
@@ -20,8 +20,8 @@
 
 package org.apache.geronimo.connector.work;
 
-import javax.resource.spi.work.WorkContext;
-import javax.resource.spi.work.WorkCompletedException;
+import jakarta.resource.spi.work.WorkContext;
+import jakarta.resource.spi.work.WorkCompletedException;
 
 /**
  * @version $Rev$ $Date$
diff --git a/geronimo-connector/src/main/java/org/apache/geronimo/connector/work/WorkerContext.java b/geronimo-connector/src/main/java/org/apache/geronimo/connector/work/WorkerContext.java
index 39f2026..7d8e179 100644
--- a/geronimo-connector/src/main/java/org/apache/geronimo/connector/work/WorkerContext.java
+++ b/geronimo-connector/src/main/java/org/apache/geronimo/connector/work/WorkerContext.java
@@ -23,24 +23,23 @@
 import java.util.List;
 import java.util.Collection;
 import java.util.concurrent.CountDownLatch;
+import java.util.logging.Level;
+import java.util.logging.Logger;
 
-import javax.resource.NotSupportedException;
-import javax.resource.spi.work.ExecutionContext;
-import javax.resource.spi.work.WorkContext;
-import javax.resource.spi.work.WorkContextErrorCodes;
-import javax.resource.spi.work.WorkContextProvider;
-import javax.resource.spi.work.TransactionContext;
-import javax.resource.spi.work.Work;
-import javax.resource.spi.work.WorkAdapter;
-import javax.resource.spi.work.WorkCompletedException;
-import javax.resource.spi.work.WorkEvent;
-import javax.resource.spi.work.WorkException;
-import javax.resource.spi.work.WorkListener;
-import javax.resource.spi.work.WorkManager;
-import javax.resource.spi.work.WorkRejectedException;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import jakarta.resource.NotSupportedException;
+import jakarta.resource.spi.work.ExecutionContext;
+import jakarta.resource.spi.work.WorkContext;
+import jakarta.resource.spi.work.WorkContextErrorCodes;
+import jakarta.resource.spi.work.WorkContextProvider;
+import jakarta.resource.spi.work.TransactionContext;
+import jakarta.resource.spi.work.Work;
+import jakarta.resource.spi.work.WorkAdapter;
+import jakarta.resource.spi.work.WorkCompletedException;
+import jakarta.resource.spi.work.WorkEvent;
+import jakarta.resource.spi.work.WorkException;
+import jakarta.resource.spi.work.WorkListener;
+import jakarta.resource.spi.work.WorkManager;
+import jakarta.resource.spi.work.WorkRejectedException;
 
 /**
  * Work wrapper providing an execution context to a Work instance.
@@ -49,7 +48,7 @@
  */
 public class WorkerContext implements Work {
 
-    private static final Logger log = LoggerFactory.getLogger(WorkerContext.class);
+    private static final Logger log = Logger.getLogger(WorkerContext.class.getName());
 
     private static final List<WorkContext> NO_INFLOW_CONTEXT = Collections.emptyList();
 
@@ -60,9 +59,9 @@
         public void workRejected(WorkEvent event) {
             if (event.getException() != null) {
                 if (event.getException() instanceof WorkCompletedException && event.getException().getCause() != null) {
-                    log.error(event.getWork().toString(), event.getException().getCause());
+                    log.log(Level.SEVERE, event.getWork().toString(), event.getException().getCause());
                 } else {
-                    log.error(event.getWork().toString(), event.getException());
+                    log.log(Level.SEVERE, event.getWork().toString(), event.getException());
                 }
             }
         }
@@ -151,7 +150,7 @@
 *                      the submitted Work instance must be executed.
      * @param workListener  an object which would be notified when the various
      * @param workContextHandlers WorkContextHandlers supported by this work manager
-     * @throws javax.resource.spi.work.WorkRejectedException if executionContext supplied yet Work implements WorkContextProvider
+     * @throws jakarta.resource.spi.work.WorkRejectedException if executionContext supplied yet Work implements WorkContextProvider
      */
     public WorkerContext(Work aWork,
                          long aStartTimeout,
@@ -176,7 +175,7 @@
     }
 
     /* (non-Javadoc)
-     * @see javax.resource.spi.work.Work#release()
+     * @see jakarta.resource.spi.work.Work#release()
      */
     public void release() {
         adaptee.release();
@@ -256,8 +255,8 @@
         }
         boolean isTimeout = acceptedTime + startTimeOut > 0 &&
                 System.currentTimeMillis() > acceptedTime + startTimeOut;
-        if (log.isDebugEnabled()) {
-            log.debug(this
+        if (log.isLoggable(Level.FINE)) {
+            log.log(Level.FINE, this
                     + " accepted at "
                     + acceptedTime
                     + (isTimeout ? " has timed out." : " has not timed out. ")
diff --git a/geronimo-connector/src/main/java/org/apache/geronimo/connector/work/pool/ScheduleWorkExecutor.java b/geronimo-connector/src/main/java/org/apache/geronimo/connector/work/pool/ScheduleWorkExecutor.java
index 603acb7..5a6b077 100644
--- a/geronimo-connector/src/main/java/org/apache/geronimo/connector/work/pool/ScheduleWorkExecutor.java
+++ b/geronimo-connector/src/main/java/org/apache/geronimo/connector/work/pool/ScheduleWorkExecutor.java
@@ -19,7 +19,7 @@
 
 import java.util.concurrent.Executor;
 
-import javax.resource.spi.work.WorkException;
+import jakarta.resource.spi.work.WorkException;
 
 import org.apache.geronimo.connector.work.WorkerContext;
 
diff --git a/geronimo-connector/src/main/java/org/apache/geronimo/connector/work/pool/StartWorkExecutor.java b/geronimo-connector/src/main/java/org/apache/geronimo/connector/work/pool/StartWorkExecutor.java
index d3df8e9..29f8c2b 100644
--- a/geronimo-connector/src/main/java/org/apache/geronimo/connector/work/pool/StartWorkExecutor.java
+++ b/geronimo-connector/src/main/java/org/apache/geronimo/connector/work/pool/StartWorkExecutor.java
@@ -20,7 +20,7 @@
 import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.Executor;
 
-import javax.resource.spi.work.WorkException;
+import jakarta.resource.spi.work.WorkException;
 
 import org.apache.geronimo.connector.work.WorkerContext;
 
diff --git a/geronimo-connector/src/main/java/org/apache/geronimo/connector/work/pool/SyncWorkExecutor.java b/geronimo-connector/src/main/java/org/apache/geronimo/connector/work/pool/SyncWorkExecutor.java
index 2933eec..574ff64 100644
--- a/geronimo-connector/src/main/java/org/apache/geronimo/connector/work/pool/SyncWorkExecutor.java
+++ b/geronimo-connector/src/main/java/org/apache/geronimo/connector/work/pool/SyncWorkExecutor.java
@@ -20,7 +20,7 @@
 import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.Executor;
 
-import javax.resource.spi.work.WorkException;
+import jakarta.resource.spi.work.WorkException;
 
 import org.apache.geronimo.connector.work.WorkerContext;
 
diff --git a/geronimo-connector/src/main/java/org/apache/geronimo/connector/work/pool/WorkExecutor.java b/geronimo-connector/src/main/java/org/apache/geronimo/connector/work/pool/WorkExecutor.java
index 3efbe88..f0342d3 100644
--- a/geronimo-connector/src/main/java/org/apache/geronimo/connector/work/pool/WorkExecutor.java
+++ b/geronimo-connector/src/main/java/org/apache/geronimo/connector/work/pool/WorkExecutor.java
@@ -18,7 +18,7 @@
 
 import java.util.concurrent.Executor;
 
-import javax.resource.spi.work.WorkException;
+import jakarta.resource.spi.work.WorkException;
 
 import org.apache.geronimo.connector.work.WorkerContext;
 
@@ -37,7 +37,7 @@
      *
      * @param work Work to be executed.
      *
-     * @throws javax.resource.spi.work.WorkException Indicates that the work has failed.
+     * @throws jakarta.resource.spi.work.WorkException Indicates that the work has failed.
      * @throws InterruptedException Indicates that the thread in charge of the
      * execution of the specified work has been interrupted.
      */
diff --git a/geronimo-connector/src/main/java/org/apache/geronimo/connector/work/pool/WorkExecutorPoolImpl.java b/geronimo-connector/src/main/java/org/apache/geronimo/connector/work/pool/WorkExecutorPoolImpl.java
index c55f5b0..f174f4f 100644
--- a/geronimo-connector/src/main/java/org/apache/geronimo/connector/work/pool/WorkExecutorPoolImpl.java
+++ b/geronimo-connector/src/main/java/org/apache/geronimo/connector/work/pool/WorkExecutorPoolImpl.java
@@ -20,10 +20,8 @@
 import java.util.concurrent.LinkedBlockingQueue;
 import java.util.concurrent.ThreadPoolExecutor;
 import java.util.concurrent.TimeUnit;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
+import java.util.logging.Level;
+import java.util.logging.Logger;
 
 /**
  * Based class for WorkExecutorPool. Sub-classes define the synchronization
@@ -38,7 +36,7 @@
      * A timed out pooled executor.
      */
     private ThreadPoolExecutor pooledExecutor;
-    private static Logger log = LoggerFactory.getLogger(WorkExecutorPoolImpl.class);
+    private static Logger log = Logger.getLogger(WorkExecutorPoolImpl.class.getName());
 
     /**
      * Creates a pool with the specified minimum and maximum sizes. The Channel
@@ -62,7 +60,7 @@
      */
     public void execute(Runnable work) {
         if(pooledExecutor.getPoolSize() == pooledExecutor.getMaximumPoolSize()) {
-            log.warn("Maximum Pool size has been exceeded.  Current Pool Size = "+pooledExecutor.getMaximumPoolSize());
+            log.log(Level.WARNING, "Maximum Pool size has been exceeded.  Current Pool Size = "+pooledExecutor.getMaximumPoolSize());
         }
 
         pooledExecutor.execute(work);
diff --git a/geronimo-connector/src/test/java/org/apache/geronimo/connector/BootstrapContextTest.java b/geronimo-connector/src/test/java/org/apache/geronimo/connector/BootstrapContextTest.java
index e7bd1a2..2300715 100644
--- a/geronimo-connector/src/test/java/org/apache/geronimo/connector/BootstrapContextTest.java
+++ b/geronimo-connector/src/test/java/org/apache/geronimo/connector/BootstrapContextTest.java
@@ -26,8 +26,8 @@
 import java.util.concurrent.ThreadPoolExecutor;
 import java.util.concurrent.TimeUnit;
 
-import javax.resource.spi.XATerminator;
-import javax.resource.spi.work.WorkManager;
+import jakarta.resource.spi.XATerminator;
+import jakarta.resource.spi.work.WorkManager;
 
 import junit.framework.TestCase;
 import org.apache.geronimo.connector.work.GeronimoWorkManager;
diff --git a/geronimo-connector/src/test/java/org/apache/geronimo/connector/MockTransaction.java b/geronimo-connector/src/test/java/org/apache/geronimo/connector/MockTransaction.java
index 517a257..bca9e9e 100644
--- a/geronimo-connector/src/test/java/org/apache/geronimo/connector/MockTransaction.java
+++ b/geronimo-connector/src/test/java/org/apache/geronimo/connector/MockTransaction.java
@@ -17,12 +17,12 @@
 
 package org.apache.geronimo.connector;
 
-import javax.transaction.HeuristicMixedException;
-import javax.transaction.HeuristicRollbackException;
-import javax.transaction.RollbackException;
-import javax.transaction.Synchronization;
-import javax.transaction.SystemException;
-import javax.transaction.Transaction;
+import jakarta.transaction.HeuristicMixedException;
+import jakarta.transaction.HeuristicRollbackException;
+import jakarta.transaction.RollbackException;
+import jakarta.transaction.Synchronization;
+import jakarta.transaction.SystemException;
+import jakarta.transaction.Transaction;
 import javax.transaction.xa.XAResource;
 
 /**
diff --git a/geronimo-connector/src/test/java/org/apache/geronimo/connector/MockWorkManager.java b/geronimo-connector/src/test/java/org/apache/geronimo/connector/MockWorkManager.java
index fc46d94..d88ea45 100644
--- a/geronimo-connector/src/test/java/org/apache/geronimo/connector/MockWorkManager.java
+++ b/geronimo-connector/src/test/java/org/apache/geronimo/connector/MockWorkManager.java
@@ -17,11 +17,11 @@
 
 package org.apache.geronimo.connector;
 
-import javax.resource.spi.work.ExecutionContext;
-import javax.resource.spi.work.Work;
-import javax.resource.spi.work.WorkException;
-import javax.resource.spi.work.WorkListener;
-import javax.resource.spi.work.WorkManager;
+import jakarta.resource.spi.work.ExecutionContext;
+import jakarta.resource.spi.work.Work;
+import jakarta.resource.spi.work.WorkException;
+import jakarta.resource.spi.work.WorkListener;
+import jakarta.resource.spi.work.WorkManager;
 
 /**
  * Dummy implementation of WorkManager interface for use in
diff --git a/geronimo-connector/src/test/java/org/apache/geronimo/connector/mock/ConnectionExtension.java b/geronimo-connector/src/test/java/org/apache/geronimo/connector/mock/ConnectionExtension.java
index 44ada99..5e6e43e 100644
--- a/geronimo-connector/src/test/java/org/apache/geronimo/connector/mock/ConnectionExtension.java
+++ b/geronimo-connector/src/test/java/org/apache/geronimo/connector/mock/ConnectionExtension.java
@@ -16,7 +16,7 @@
  */
 package org.apache.geronimo.connector.mock;
 
-import javax.resource.cci.Connection;
+import jakarta.resource.cci.Connection;
 import javax.security.auth.Subject;
 
 /**
diff --git a/geronimo-connector/src/test/java/org/apache/geronimo/connector/mock/ConnectionFactoryExtension.java b/geronimo-connector/src/test/java/org/apache/geronimo/connector/mock/ConnectionFactoryExtension.java
index d1965ea..4be8d66 100644
--- a/geronimo-connector/src/test/java/org/apache/geronimo/connector/mock/ConnectionFactoryExtension.java
+++ b/geronimo-connector/src/test/java/org/apache/geronimo/connector/mock/ConnectionFactoryExtension.java
@@ -16,7 +16,7 @@
  */
 package org.apache.geronimo.connector.mock;
 
-import javax.resource.cci.ConnectionFactory;
+import jakarta.resource.cci.ConnectionFactory;
 
 /**
  *
diff --git a/geronimo-connector/src/test/java/org/apache/geronimo/connector/mock/MockActivationSpec.java b/geronimo-connector/src/test/java/org/apache/geronimo/connector/mock/MockActivationSpec.java
index bed67f2..a8be63a 100644
--- a/geronimo-connector/src/test/java/org/apache/geronimo/connector/mock/MockActivationSpec.java
+++ b/geronimo-connector/src/test/java/org/apache/geronimo/connector/mock/MockActivationSpec.java
@@ -17,10 +17,10 @@
 
 package org.apache.geronimo.connector.mock;
 
-import javax.resource.spi.ActivationSpec;
-import javax.resource.spi.InvalidPropertyException;
-import javax.resource.spi.ResourceAdapter;
-import javax.resource.ResourceException;
+import jakarta.resource.spi.ActivationSpec;
+import jakarta.resource.spi.InvalidPropertyException;
+import jakarta.resource.spi.ResourceAdapter;
+import jakarta.resource.ResourceException;
 
 /**
  *
diff --git a/geronimo-connector/src/test/java/org/apache/geronimo/connector/mock/MockCCILocalTransaction.java b/geronimo-connector/src/test/java/org/apache/geronimo/connector/mock/MockCCILocalTransaction.java
index 6359f9e..cefde85 100644
--- a/geronimo-connector/src/test/java/org/apache/geronimo/connector/mock/MockCCILocalTransaction.java
+++ b/geronimo-connector/src/test/java/org/apache/geronimo/connector/mock/MockCCILocalTransaction.java
@@ -17,8 +17,8 @@
 
 package org.apache.geronimo.connector.mock;
 
-import javax.resource.ResourceException;
-import javax.resource.cci.LocalTransaction;
+import jakarta.resource.ResourceException;
+import jakarta.resource.cci.LocalTransaction;
 
 /**
  *
diff --git a/geronimo-connector/src/test/java/org/apache/geronimo/connector/mock/MockConnection.java b/geronimo-connector/src/test/java/org/apache/geronimo/connector/mock/MockConnection.java
index 3153996..581afa4 100644
--- a/geronimo-connector/src/test/java/org/apache/geronimo/connector/mock/MockConnection.java
+++ b/geronimo-connector/src/test/java/org/apache/geronimo/connector/mock/MockConnection.java
@@ -17,11 +17,11 @@
 
 package org.apache.geronimo.connector.mock;
 
-import javax.resource.ResourceException;
-import javax.resource.cci.ConnectionMetaData;
-import javax.resource.cci.Interaction;
-import javax.resource.cci.LocalTransaction;
-import javax.resource.cci.ResultSetInfo;
+import jakarta.resource.ResourceException;
+import jakarta.resource.cci.ConnectionMetaData;
+import jakarta.resource.cci.Interaction;
+import jakarta.resource.cci.LocalTransaction;
+import jakarta.resource.cci.ResultSetInfo;
 import javax.security.auth.Subject;
 
 /**
diff --git a/geronimo-connector/src/test/java/org/apache/geronimo/connector/mock/MockConnectionFactory.java b/geronimo-connector/src/test/java/org/apache/geronimo/connector/mock/MockConnectionFactory.java
index a63af59..e2a563b 100644
--- a/geronimo-connector/src/test/java/org/apache/geronimo/connector/mock/MockConnectionFactory.java
+++ b/geronimo-connector/src/test/java/org/apache/geronimo/connector/mock/MockConnectionFactory.java
@@ -19,12 +19,12 @@
 
 import javax.naming.NamingException;
 import javax.naming.Reference;
-import javax.resource.ResourceException;
-import javax.resource.cci.Connection;
-import javax.resource.cci.ConnectionSpec;
-import javax.resource.cci.RecordFactory;
-import javax.resource.cci.ResourceAdapterMetaData;
-import javax.resource.spi.ConnectionManager;
+import jakarta.resource.ResourceException;
+import jakarta.resource.cci.Connection;
+import jakarta.resource.cci.ConnectionSpec;
+import jakarta.resource.cci.RecordFactory;
+import jakarta.resource.cci.ResourceAdapterMetaData;
+import jakarta.resource.spi.ConnectionManager;
 
 /**
  * @version $Rev$ $Date$
diff --git a/geronimo-connector/src/test/java/org/apache/geronimo/connector/mock/MockConnectionRequestInfo.java b/geronimo-connector/src/test/java/org/apache/geronimo/connector/mock/MockConnectionRequestInfo.java
index 8f3e9b7..01f76a4 100644
--- a/geronimo-connector/src/test/java/org/apache/geronimo/connector/mock/MockConnectionRequestInfo.java
+++ b/geronimo-connector/src/test/java/org/apache/geronimo/connector/mock/MockConnectionRequestInfo.java
@@ -17,8 +17,8 @@
 
 package org.apache.geronimo.connector.mock;
 
-import javax.resource.cci.ConnectionSpec;
-import javax.resource.spi.ConnectionRequestInfo;
+import jakarta.resource.cci.ConnectionSpec;
+import jakarta.resource.spi.ConnectionRequestInfo;
 
 /**
  *
diff --git a/geronimo-connector/src/test/java/org/apache/geronimo/connector/mock/MockManagedConnection.java b/geronimo-connector/src/test/java/org/apache/geronimo/connector/mock/MockManagedConnection.java
index e743d66..2900f4a 100644
--- a/geronimo-connector/src/test/java/org/apache/geronimo/connector/mock/MockManagedConnection.java
+++ b/geronimo-connector/src/test/java/org/apache/geronimo/connector/mock/MockManagedConnection.java
@@ -24,13 +24,13 @@
 import java.util.Iterator;
 import java.util.List;
 import java.util.Set;
-import javax.resource.ResourceException;
-import javax.resource.spi.ConnectionEvent;
-import javax.resource.spi.ConnectionEventListener;
-import javax.resource.spi.ConnectionRequestInfo;
-import javax.resource.spi.LocalTransaction;
-import javax.resource.spi.ManagedConnection;
-import javax.resource.spi.ManagedConnectionMetaData;
+import jakarta.resource.ResourceException;
+import jakarta.resource.spi.ConnectionEvent;
+import jakarta.resource.spi.ConnectionEventListener;
+import jakarta.resource.spi.ConnectionRequestInfo;
+import jakarta.resource.spi.LocalTransaction;
+import jakarta.resource.spi.ManagedConnection;
+import jakarta.resource.spi.ManagedConnectionMetaData;
 import javax.security.auth.Subject;
 import javax.transaction.xa.XAResource;
 
diff --git a/geronimo-connector/src/test/java/org/apache/geronimo/connector/mock/MockManagedConnectionFactory.java b/geronimo-connector/src/test/java/org/apache/geronimo/connector/mock/MockManagedConnectionFactory.java
index b32a008..10c9803 100644
--- a/geronimo-connector/src/test/java/org/apache/geronimo/connector/mock/MockManagedConnectionFactory.java
+++ b/geronimo-connector/src/test/java/org/apache/geronimo/connector/mock/MockManagedConnectionFactory.java
@@ -23,12 +23,12 @@
 import java.util.Set;
 import java.util.Collections;
 
-import javax.resource.ResourceException;
-import javax.resource.spi.ConnectionManager;
-import javax.resource.spi.ConnectionRequestInfo;
-import javax.resource.spi.ManagedConnection;
-import javax.resource.spi.ManagedConnectionFactory;
-import javax.resource.spi.ResourceAdapter;
+import jakarta.resource.ResourceException;
+import jakarta.resource.spi.ConnectionManager;
+import jakarta.resource.spi.ConnectionRequestInfo;
+import jakarta.resource.spi.ManagedConnection;
+import jakarta.resource.spi.ManagedConnectionFactory;
+import jakarta.resource.spi.ResourceAdapter;
 import javax.security.auth.Subject;
 
 /**
diff --git a/geronimo-connector/src/test/java/org/apache/geronimo/connector/mock/MockResourceAdapter.java b/geronimo-connector/src/test/java/org/apache/geronimo/connector/mock/MockResourceAdapter.java
index c826690..e9b696a 100644
--- a/geronimo-connector/src/test/java/org/apache/geronimo/connector/mock/MockResourceAdapter.java
+++ b/geronimo-connector/src/test/java/org/apache/geronimo/connector/mock/MockResourceAdapter.java
@@ -17,12 +17,12 @@
 
 package org.apache.geronimo.connector.mock;
 
-import javax.resource.ResourceException;
-import javax.resource.spi.ActivationSpec;
-import javax.resource.spi.BootstrapContext;
-import javax.resource.spi.ResourceAdapter;
-import javax.resource.spi.ResourceAdapterInternalException;
-import javax.resource.spi.endpoint.MessageEndpointFactory;
+import jakarta.resource.ResourceException;
+import jakarta.resource.spi.ActivationSpec;
+import jakarta.resource.spi.BootstrapContext;
+import jakarta.resource.spi.ResourceAdapter;
+import jakarta.resource.spi.ResourceAdapterInternalException;
+import jakarta.resource.spi.endpoint.MessageEndpointFactory;
 import javax.transaction.xa.XAResource;
 
 /**
diff --git a/geronimo-connector/src/test/java/org/apache/geronimo/connector/mock/MockSPILocalTransaction.java b/geronimo-connector/src/test/java/org/apache/geronimo/connector/mock/MockSPILocalTransaction.java
index e4c84d4..23c6049 100644
--- a/geronimo-connector/src/test/java/org/apache/geronimo/connector/mock/MockSPILocalTransaction.java
+++ b/geronimo-connector/src/test/java/org/apache/geronimo/connector/mock/MockSPILocalTransaction.java
@@ -17,8 +17,8 @@
 
 package org.apache.geronimo.connector.mock;
 
-import javax.resource.ResourceException;
-import javax.resource.spi.LocalTransaction;
+import jakarta.resource.ResourceException;
+import jakarta.resource.spi.LocalTransaction;
 
 /**
  *
diff --git a/geronimo-connector/src/test/java/org/apache/geronimo/connector/outbound/AbstractSinglePoolTest.java b/geronimo-connector/src/test/java/org/apache/geronimo/connector/outbound/AbstractSinglePoolTest.java
index 5512b98..c227c18 100644
--- a/geronimo-connector/src/test/java/org/apache/geronimo/connector/outbound/AbstractSinglePoolTest.java
+++ b/geronimo-connector/src/test/java/org/apache/geronimo/connector/outbound/AbstractSinglePoolTest.java
@@ -23,8 +23,8 @@
 import java.util.List;
 import java.util.ArrayList;
 
-import javax.resource.ResourceException;
-import javax.resource.spi.ManagedConnectionFactory;
+import jakarta.resource.ResourceException;
+import jakarta.resource.spi.ManagedConnectionFactory;
 
 import junit.framework.TestCase;
 import org.apache.geronimo.connector.mock.MockManagedConnectionFactory;
@@ -32,7 +32,7 @@
 /**
  * @version $Rev$ $Date$
  */
-public class AbstractSinglePoolTest extends TestCase {
+public abstract class AbstractSinglePoolTest extends TestCase {
 
     private ManagedConnectionFactory mcf = new MockManagedConnectionFactory();
     protected SwitchableInterceptor switchableInterceptor;
diff --git a/geronimo-connector/src/test/java/org/apache/geronimo/connector/outbound/ConnectionInterceptorTestUtils.java b/geronimo-connector/src/test/java/org/apache/geronimo/connector/outbound/ConnectionInterceptorTestUtils.java
index 2bed128..04a65f4 100644
--- a/geronimo-connector/src/test/java/org/apache/geronimo/connector/outbound/ConnectionInterceptorTestUtils.java
+++ b/geronimo-connector/src/test/java/org/apache/geronimo/connector/outbound/ConnectionInterceptorTestUtils.java
@@ -20,13 +20,13 @@
 import java.io.PrintWriter;
 import java.security.Principal;
 import java.util.Set;
-import javax.resource.ResourceException;
-import javax.resource.spi.ConnectionEventListener;
-import javax.resource.spi.ConnectionRequestInfo;
-import javax.resource.spi.DissociatableManagedConnection;
-import javax.resource.spi.LocalTransaction;
-import javax.resource.spi.ManagedConnection;
-import javax.resource.spi.ManagedConnectionMetaData;
+import jakarta.resource.ResourceException;
+import jakarta.resource.spi.ConnectionEventListener;
+import jakarta.resource.spi.ConnectionRequestInfo;
+import jakarta.resource.spi.DissociatableManagedConnection;
+import jakarta.resource.spi.LocalTransaction;
+import jakarta.resource.spi.ManagedConnection;
+import jakarta.resource.spi.ManagedConnectionMetaData;
 import javax.security.auth.Subject;
 import javax.transaction.xa.XAResource;
 
diff --git a/geronimo-connector/src/test/java/org/apache/geronimo/connector/outbound/ConnectionManagerStressTest.java b/geronimo-connector/src/test/java/org/apache/geronimo/connector/outbound/ConnectionManagerStressTest.java
index 04f812b..c5a1c2f 100644
--- a/geronimo-connector/src/test/java/org/apache/geronimo/connector/outbound/ConnectionManagerStressTest.java
+++ b/geronimo-connector/src/test/java/org/apache/geronimo/connector/outbound/ConnectionManagerStressTest.java
@@ -18,6 +18,7 @@
 package org.apache.geronimo.connector.outbound;
 
 import java.util.HashSet;
+import java.util.logging.Level;
 
 import org.apache.geronimo.connector.outbound.connectiontracking.ConnectorInstanceContextImpl;
 
@@ -70,14 +71,14 @@
                                 long duration = System.currentTimeMillis() - start;
                                 if (duration > 100) {
                                     localSlowCount++;
-                                    log.debug("got a cx: " + i + ", time: " + (duration));
+                                    log.log(Level.FINE, "got a cx: " + i + ", time: " + (duration));
                                 }
                             } catch (Throwable throwable) {
-                                log.debug(throwable.getMessage(), throwable);
+                                log.log(Level.FINE, throwable.getMessage(), throwable);
                             }
                         }
                     } catch (Exception e) {
-                        log.info(e.getMessage(), e);
+                        log.log(Level.INFO, e.getMessage(), e);
                         ConnectionManagerStressTest.this.e = e;
                     } finally {
                         synchronized (stopBarrier) {
@@ -107,7 +108,7 @@
             while (stoppedThreads < threadCount) stopBarrier.wait();
         }
         long duration = System.currentTimeMillis() - startTime;
-        log.debug("no tx run, thread count: " + threadCount + ", connection count: " + repeatCount + ", duration: " + duration + ", total duration: " + totalDuration + ", ms per cx request: " + (totalDuration / (threadCount * repeatCount)) + ", slow cx request count: " + slowCount);
+        log.log(Level.FINE, "no tx run, thread count: " + threadCount + ", connection count: " + repeatCount + ", duration: " + duration + ", total duration: " + totalDuration + ", ms per cx request: " + (totalDuration / (threadCount * repeatCount)) + ", slow cx request count: " + slowCount);
         //return startTime;
         if (e != null) {
             throw e;
diff --git a/geronimo-connector/src/test/java/org/apache/geronimo/connector/outbound/ConnectionManagerTestUtils.java b/geronimo-connector/src/test/java/org/apache/geronimo/connector/outbound/ConnectionManagerTestUtils.java
index cff5c6f..83e03fe 100644
--- a/geronimo-connector/src/test/java/org/apache/geronimo/connector/outbound/ConnectionManagerTestUtils.java
+++ b/geronimo-connector/src/test/java/org/apache/geronimo/connector/outbound/ConnectionManagerTestUtils.java
@@ -19,9 +19,10 @@
 
 import java.util.HashSet;
 import java.util.Set;
+import java.util.logging.Logger;
 
 import javax.security.auth.Subject;
-import javax.transaction.UserTransaction;
+import jakarta.transaction.UserTransaction;
 
 import org.apache.geronimo.connector.mock.ConnectionExtension;
 import org.apache.geronimo.connector.mock.MockConnectionFactory;
@@ -39,8 +40,6 @@
 import org.apache.geronimo.connector.outbound.connectiontracking.GeronimoTransactionListener;
 import org.apache.geronimo.transaction.manager.RecoverableTransactionManager;
 import org.apache.geronimo.transaction.manager.TransactionManagerImpl;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 import junit.framework.TestCase;
 
 /**
@@ -49,7 +48,7 @@
  * @version $Rev$ $Date$
  */
 public class ConnectionManagerTestUtils extends TestCase implements DefaultInterceptor {
-    protected static final Logger log = LoggerFactory.getLogger(ConnectionManagerTestUtils.class);
+    protected static final Logger log = Logger.getLogger(ConnectionManagerTestUtils.class.getName());
     
     protected boolean useTransactionCaching = true;
     protected boolean useLocalTransactions = false;
diff --git a/geronimo-connector/src/test/java/org/apache/geronimo/connector/outbound/ConnectionTrackingInterceptorTest.java b/geronimo-connector/src/test/java/org/apache/geronimo/connector/outbound/ConnectionTrackingInterceptorTest.java
index da255c0..7529a74 100644
--- a/geronimo-connector/src/test/java/org/apache/geronimo/connector/outbound/ConnectionTrackingInterceptorTest.java
+++ b/geronimo-connector/src/test/java/org/apache/geronimo/connector/outbound/ConnectionTrackingInterceptorTest.java
@@ -20,7 +20,7 @@
 import java.util.Collection;
 import java.util.HashSet;
 
-import javax.resource.ResourceException;
+import jakarta.resource.ResourceException;
 
 import org.apache.geronimo.connector.outbound.connectiontracking.ConnectionTracker;
 
diff --git a/geronimo-connector/src/test/java/org/apache/geronimo/connector/outbound/LocalXAResourceInsertionInterceptorTest.java b/geronimo-connector/src/test/java/org/apache/geronimo/connector/outbound/LocalXAResourceInsertionInterceptorTest.java
index e8ee30a..88b26fd 100644
--- a/geronimo-connector/src/test/java/org/apache/geronimo/connector/outbound/LocalXAResourceInsertionInterceptorTest.java
+++ b/geronimo-connector/src/test/java/org/apache/geronimo/connector/outbound/LocalXAResourceInsertionInterceptorTest.java
@@ -17,8 +17,8 @@
 
 package org.apache.geronimo.connector.outbound;
 
-import javax.resource.ResourceException;
-import javax.resource.spi.LocalTransaction;
+import jakarta.resource.ResourceException;
+import jakarta.resource.spi.LocalTransaction;
 
 /**
  *
diff --git a/geronimo-connector/src/test/java/org/apache/geronimo/connector/outbound/MultiPoolMinSizeTest.java b/geronimo-connector/src/test/java/org/apache/geronimo/connector/outbound/MultiPoolMinSizeTest.java
index 283b823..70b8cc5 100644
--- a/geronimo-connector/src/test/java/org/apache/geronimo/connector/outbound/MultiPoolMinSizeTest.java
+++ b/geronimo-connector/src/test/java/org/apache/geronimo/connector/outbound/MultiPoolMinSizeTest.java
@@ -20,8 +20,8 @@
 
 package org.apache.geronimo.connector.outbound;
 
-import javax.resource.ResourceException;
-import javax.resource.spi.ManagedConnectionFactory;
+import jakarta.resource.ResourceException;
+import jakarta.resource.spi.ManagedConnectionFactory;
 
 import junit.framework.TestCase;
 
diff --git a/geronimo-connector/src/test/java/org/apache/geronimo/connector/outbound/SubjectInterceptorTest.java b/geronimo-connector/src/test/java/org/apache/geronimo/connector/outbound/SubjectInterceptorTest.java
index 3fd5291..335963c 100644
--- a/geronimo-connector/src/test/java/org/apache/geronimo/connector/outbound/SubjectInterceptorTest.java
+++ b/geronimo-connector/src/test/java/org/apache/geronimo/connector/outbound/SubjectInterceptorTest.java
@@ -18,7 +18,7 @@
 package org.apache.geronimo.connector.outbound;
 
 import javax.security.auth.Subject;
-import javax.resource.ResourceException;
+import jakarta.resource.ResourceException;
 
 /**
  *
diff --git a/geronimo-connector/src/test/java/org/apache/geronimo/connector/outbound/TransactionCachingInterceptorTest.java b/geronimo-connector/src/test/java/org/apache/geronimo/connector/outbound/TransactionCachingInterceptorTest.java
index 1782091..c21fc67 100644
--- a/geronimo-connector/src/test/java/org/apache/geronimo/connector/outbound/TransactionCachingInterceptorTest.java
+++ b/geronimo-connector/src/test/java/org/apache/geronimo/connector/outbound/TransactionCachingInterceptorTest.java
@@ -17,10 +17,10 @@
 
 package org.apache.geronimo.connector.outbound;
 
-import javax.resource.ResourceException;
-import javax.transaction.Transaction;
-import javax.transaction.TransactionManager;
-import javax.transaction.Status;
+import jakarta.resource.ResourceException;
+import jakarta.transaction.Transaction;
+import jakarta.transaction.TransactionManager;
+import jakarta.transaction.Status;
 
 import org.apache.geronimo.connector.ConnectorTransactionContext;
 import org.apache.geronimo.transaction.manager.TransactionManagerImpl;
diff --git a/geronimo-connector/src/test/java/org/apache/geronimo/connector/outbound/TransactionEnlistingInterceptorTest.java b/geronimo-connector/src/test/java/org/apache/geronimo/connector/outbound/TransactionEnlistingInterceptorTest.java
index 8da1a07..8ebd576 100644
--- a/geronimo-connector/src/test/java/org/apache/geronimo/connector/outbound/TransactionEnlistingInterceptorTest.java
+++ b/geronimo-connector/src/test/java/org/apache/geronimo/connector/outbound/TransactionEnlistingInterceptorTest.java
@@ -17,11 +17,11 @@
 
 package org.apache.geronimo.connector.outbound;
 
-import javax.resource.ResourceException;
+import jakarta.resource.ResourceException;
 import javax.transaction.xa.XAException;
 import javax.transaction.xa.XAResource;
 import javax.transaction.xa.Xid;
-import javax.transaction.TransactionManager;
+import jakarta.transaction.TransactionManager;
 
 import org.apache.geronimo.transaction.manager.NamedXAResource;
 import org.apache.geronimo.transaction.manager.TransactionManagerImpl;
diff --git a/geronimo-connector/src/test/java/org/apache/geronimo/connector/outbound/XAResourceInsertionInterceptorTest.java b/geronimo-connector/src/test/java/org/apache/geronimo/connector/outbound/XAResourceInsertionInterceptorTest.java
index 8e795ed..10705b9 100644
--- a/geronimo-connector/src/test/java/org/apache/geronimo/connector/outbound/XAResourceInsertionInterceptorTest.java
+++ b/geronimo-connector/src/test/java/org/apache/geronimo/connector/outbound/XAResourceInsertionInterceptorTest.java
@@ -17,7 +17,7 @@
 
 package org.apache.geronimo.connector.outbound;
 
-import javax.resource.ResourceException;
+import jakarta.resource.ResourceException;
 import javax.transaction.xa.XAException;
 import javax.transaction.xa.XAResource;
 import javax.transaction.xa.Xid;
diff --git a/geronimo-connector/src/test/java/org/apache/geronimo/connector/outbound/connectiontracking/ConnectionTrackingCoordinatorProxyTest.java b/geronimo-connector/src/test/java/org/apache/geronimo/connector/outbound/connectiontracking/ConnectionTrackingCoordinatorProxyTest.java
index ec431b7..e9fd358 100644
--- a/geronimo-connector/src/test/java/org/apache/geronimo/connector/outbound/connectiontracking/ConnectionTrackingCoordinatorProxyTest.java
+++ b/geronimo-connector/src/test/java/org/apache/geronimo/connector/outbound/connectiontracking/ConnectionTrackingCoordinatorProxyTest.java
@@ -25,12 +25,12 @@
 import org.apache.geronimo.connector.outbound.GeronimoConnectionEventListener;
 
 import javax.security.auth.Subject;
-import javax.resource.ResourceException;
-import javax.resource.spi.ManagedConnection;
-import javax.resource.spi.ConnectionRequestInfo;
-import javax.resource.spi.ConnectionEventListener;
-import javax.resource.spi.LocalTransaction;
-import javax.resource.spi.ManagedConnectionMetaData;
+import jakarta.resource.ResourceException;
+import jakarta.resource.spi.ManagedConnection;
+import jakarta.resource.spi.ConnectionRequestInfo;
+import jakarta.resource.spi.ConnectionEventListener;
+import jakarta.resource.spi.LocalTransaction;
+import jakarta.resource.spi.ManagedConnectionMetaData;
 import javax.transaction.xa.XAResource;
 import java.util.Set;
 import java.util.HashSet;
diff --git a/geronimo-connector/src/test/java/org/apache/geronimo/connector/outbound/connectiontracking/ConnectionTrackingCoordinatorTest.java b/geronimo-connector/src/test/java/org/apache/geronimo/connector/outbound/connectiontracking/ConnectionTrackingCoordinatorTest.java
index 76aa906..a39c396 100644
--- a/geronimo-connector/src/test/java/org/apache/geronimo/connector/outbound/connectiontracking/ConnectionTrackingCoordinatorTest.java
+++ b/geronimo-connector/src/test/java/org/apache/geronimo/connector/outbound/connectiontracking/ConnectionTrackingCoordinatorTest.java
@@ -21,7 +21,7 @@
 import java.util.Map;
 import java.util.Set;
 
-import javax.resource.ResourceException;
+import jakarta.resource.ResourceException;
 import javax.security.auth.Subject;
 
 import junit.framework.TestCase;
diff --git a/geronimo-connector/src/test/java/org/apache/geronimo/connector/work/PooledWorkManagerTest.java b/geronimo-connector/src/test/java/org/apache/geronimo/connector/work/PooledWorkManagerTest.java
index e7e63cd..1a0c952 100644
--- a/geronimo-connector/src/test/java/org/apache/geronimo/connector/work/PooledWorkManagerTest.java
+++ b/geronimo-connector/src/test/java/org/apache/geronimo/connector/work/PooledWorkManagerTest.java
@@ -25,18 +25,18 @@
 import java.util.concurrent.ThreadPoolExecutor;
 import java.util.concurrent.TimeUnit;
 import java.util.Collections;
+import java.util.logging.Level;
+import java.util.logging.Logger;
 
-import javax.resource.spi.work.ExecutionContext;
-import javax.resource.spi.work.Work;
-import javax.resource.spi.work.WorkEvent;
-import javax.resource.spi.work.WorkException;
-import javax.resource.spi.work.WorkListener;
+import jakarta.resource.spi.work.ExecutionContext;
+import jakarta.resource.spi.work.Work;
+import jakarta.resource.spi.work.WorkEvent;
+import jakarta.resource.spi.work.WorkException;
+import jakarta.resource.spi.work.WorkListener;
 
 import junit.framework.TestCase;
 import org.apache.geronimo.transaction.manager.GeronimoTransactionManager;
 import org.apache.geronimo.transaction.manager.XAWork;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 /**
  * Timing is crucial for this test case, which focuses on the synchronization
@@ -253,7 +253,7 @@
     }
 
     public static class DummyWork implements Work {
-        private Logger log = LoggerFactory.getLogger(getClass());
+        private Logger log = Logger.getLogger(getClass().getName());
 
         private final String name;
         private final int tempo;
@@ -270,7 +270,7 @@
             try {
                 Thread.sleep(tempo);
             } catch (InterruptedException e) {
-                log.debug(e.getMessage(), e);
+                log.log(Level.FINE, e.getMessage(), e);
             }
         }
 
@@ -280,7 +280,7 @@
     }
 
     public static class DummyWorkListener implements WorkListener {
-        private Logger log = LoggerFactory.getLogger(getClass());
+        private Logger log = Logger.getLogger(getClass().getName());
 
         public WorkEvent acceptedEvent;
         public WorkEvent rejectedEvent;
@@ -289,22 +289,22 @@
 
         public void workAccepted(WorkEvent e) {
             acceptedEvent = e;
-            log.debug("accepted: " + e);
+            log.log(Level.FINE, "accepted: " + e);
         }
 
         public void workRejected(WorkEvent e) {
             rejectedEvent = e;
-            log.debug("rejected: " + e);
+            log.log(Level.FINE,"rejected: " + e);
         }
 
         public void workStarted(WorkEvent e) {
             startedEvent = e;
-            log.debug("started: " + e);
+            log.log(Level.FINE,"started: " + e);
         }
 
         public void workCompleted(WorkEvent e) {
             completedEvent = e;
-            log.debug("completed: " + e);
+            log.log(Level.FINE,"completed: " + e);
         }
     }
 }
diff --git a/geronimo-transaction/pom.xml b/geronimo-transaction/pom.xml
index 8a0303f..a2a5c95 100644
--- a/geronimo-transaction/pom.xml
+++ b/geronimo-transaction/pom.xml
@@ -25,7 +25,7 @@
     <parent>
         <groupId>org.apache.geronimo.components</groupId>
         <artifactId>geronimo-txmanager-parent</artifactId>
-        <version>3.1.6-SNAPSHOT</version>
+        <version>4.0.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>geronimo-transaction</artifactId>
@@ -33,7 +33,7 @@
     <packaging>bundle</packaging>
     <description>Apache Geronimo Transaction Manager</description>
 
-    <url>http://geronimo.apache.org/maven/${siteId}/${project.version}</url>
+    <url>https://geronimo.apache.org/maven/${siteId}/${project.version}</url>
     <properties>
         <siteId>components/${project.artifactId}</siteId>
 
@@ -43,25 +43,13 @@
 
     <dependencies>
         <dependency>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-api</artifactId>
-            <scope>provided</scope>
+            <groupId>jakarta.transaction</groupId>
+            <artifactId>jakarta.transaction-api</artifactId>
         </dependency>
 
         <dependency>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-simple</artifactId>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.geronimo.specs</groupId>
-            <artifactId>geronimo-jta_1.1_spec</artifactId>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.geronimo.specs</groupId>
-            <artifactId>geronimo-j2ee-connector_1.6_spec</artifactId>
+            <groupId>jakarta.resource</groupId>
+            <artifactId>jakarta.resource-api</artifactId>
         </dependency>
 
         <dependency>
@@ -86,16 +74,12 @@
                         <Export-Package>org.apache.geronimo.transaction*;version=3.0</Export-Package>
                         <Import-Package>
                             org.objectweb.howl*;resolution:=optional,
-                            javax.resource.spi;version="1.5",
+                            jakarta.resource.spi;version="2.1.0",
                             *
                         </Import-Package>
                     </instructions>
                 </configuration>
             </plugin>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-shade-plugin</artifactId>
-            </plugin>
         </plugins>
     </build>
 
diff --git a/geronimo-transaction/src/main/java/org/apache/geronimo/transaction/GeronimoUserTransaction.java b/geronimo-transaction/src/main/java/org/apache/geronimo/transaction/GeronimoUserTransaction.java
index e2c180e..6071656 100644
--- a/geronimo-transaction/src/main/java/org/apache/geronimo/transaction/GeronimoUserTransaction.java
+++ b/geronimo-transaction/src/main/java/org/apache/geronimo/transaction/GeronimoUserTransaction.java
@@ -18,13 +18,13 @@
 package org.apache.geronimo.transaction;
 
 import java.io.Serializable;
-import javax.transaction.HeuristicMixedException;
-import javax.transaction.HeuristicRollbackException;
-import javax.transaction.NotSupportedException;
-import javax.transaction.RollbackException;
-import javax.transaction.SystemException;
-import javax.transaction.TransactionManager;
-import javax.transaction.UserTransaction;
+import jakarta.transaction.HeuristicMixedException;
+import jakarta.transaction.HeuristicRollbackException;
+import jakarta.transaction.NotSupportedException;
+import jakarta.transaction.RollbackException;
+import jakarta.transaction.SystemException;
+import jakarta.transaction.TransactionManager;
+import jakarta.transaction.UserTransaction;
 
 public final class GeronimoUserTransaction implements UserTransaction, Serializable {
     private static final long serialVersionUID = -7524804683512228998L;
diff --git a/geronimo-transaction/src/main/java/org/apache/geronimo/transaction/log/HOWLLog.java b/geronimo-transaction/src/main/java/org/apache/geronimo/transaction/log/HOWLLog.java
index aea5ca6..4a39122 100644
--- a/geronimo-transaction/src/main/java/org/apache/geronimo/transaction/log/HOWLLog.java
+++ b/geronimo-transaction/src/main/java/org/apache/geronimo/transaction/log/HOWLLog.java
@@ -23,6 +23,8 @@
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.logging.Level;
+import java.util.logging.Logger;
 import javax.transaction.xa.Xid;
 
 import org.apache.geronimo.transaction.manager.LogException;
@@ -42,8 +44,6 @@
 import org.objectweb.howl.log.xa.XACommittingTx;
 import org.objectweb.howl.log.xa.XALogRecord;
 import org.objectweb.howl.log.xa.XALogger;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 /**
  * @version $Rev$ $Date$
@@ -56,7 +56,7 @@
 
     static final String[] TYPE_NAMES = {null, "PREPARE", "COMMIT", "ROLLBACK"};
 
-    private static final Logger log = LoggerFactory.getLogger(HOWLLog.class);
+    private static final Logger log = Logger.getLogger(HOWLLog.class.getName());
 
     private File serverBaseDir;
     private String logFileDir;
@@ -252,7 +252,7 @@
     public void doStart() throws Exception {
         started = true;
         setLogFileDir(logFileDir);
-        log.debug("Initiating transaction manager recovery");
+        log.log(Level.FINE, "Initiating transaction manager recovery");
         recovered = new HashMap<Xid, Recovery.XidBranchesPair>();
 
         logger.open(null);
@@ -260,7 +260,7 @@
         ReplayListener replayListener = new GeronimoReplayListener(xidFactory, recovered);
         logger.replayActiveTx(replayListener);
 
-        log.debug("In doubt transactions recovered from log");
+        log.log(Level.FINE, "In doubt transactions recovered from log");
     }
 
     public void doStop() throws Exception {
@@ -349,11 +349,11 @@
     }
 
     public Collection<Recovery.XidBranchesPair> recover(XidFactory xidFactory) throws LogException {
-        log.debug("Initiating transaction manager recovery");
+        log.log(Level.FINE, "Initiating transaction manager recovery");
         Map<Xid, Recovery.XidBranchesPair> recovered = new HashMap<Xid, Recovery.XidBranchesPair>();
         ReplayListener replayListener = new GeronimoReplayListener(xidFactory, recovered);
         logger.replayActiveTx(replayListener);
-        log.debug("In doubt transactions recovered from log");
+        log.log(Level.FINE, "In doubt transactions recovered from log");
         return recovered.values();
     }
 
@@ -408,7 +408,7 @@
 
                 Recovery.XidBranchesPair xidBranchesPair = new Recovery.XidBranchesPair(masterXid, tx);
                 recoveredTx.put(masterXid, xidBranchesPair);
-                log.debug("recovered prepare record for master xid: " + masterXid);
+                log.log(Level.FINE, "recovered prepare record for master xid: " + masterXid);
                 for (int i = 3; i < data.length; i += 2) {
                     byte[] branchBranchId = data[i];
                     String name = new String(data[i + 1]);
@@ -416,17 +416,17 @@
                     Xid branchXid = xidFactory.recover(formatId, globalId, branchBranchId);
                     TransactionBranchInfoImpl branchInfo = new TransactionBranchInfoImpl(branchXid, name);
                     xidBranchesPair.addBranch(branchInfo);
-                    log.debug("recovered branch for resource manager, branchId " + name + ", " + branchXid);
+                    log.log(Level.FINE, "recovered branch for resource manager, branchId " + name + ", " + branchXid);
                 }
             } else {
                 if(recordType != LogRecordType.END_OF_LOG) { // This value crops up every time the server is started
-                    log.warn("Received unexpected log record: " + lr +" ("+recordType+")");
+                    log.log(Level.WARNING, "Received unexpected log record: " + lr +" ("+recordType+")");
                 }
             }
         }
 
         public void onError(org.objectweb.howl.log.LogException exception) {
-            log.error("Error during recovery: ", exception);
+            log.log(Level.SEVERE, "Error during recovery: ", exception);
         }
 
         public LogRecord getLogRecord() {
diff --git a/geronimo-transaction/src/main/java/org/apache/geronimo/transaction/manager/CommitTask.java b/geronimo-transaction/src/main/java/org/apache/geronimo/transaction/manager/CommitTask.java
index 7c78190..7741797 100644
--- a/geronimo-transaction/src/main/java/org/apache/geronimo/transaction/manager/CommitTask.java
+++ b/geronimo-transaction/src/main/java/org/apache/geronimo/transaction/manager/CommitTask.java
@@ -21,21 +21,21 @@
 package org.apache.geronimo.transaction.manager;
 
 import java.util.List;
+import java.util.logging.Level;
+import java.util.logging.Logger;
 
-import javax.transaction.Status;
-import javax.transaction.SystemException;
+import jakarta.transaction.Status;
+import jakarta.transaction.SystemException;
 import javax.transaction.xa.XAException;
 import javax.transaction.xa.Xid;
 import org.apache.geronimo.transaction.manager.TransactionImpl.ReturnableTransactionBranch;
 import org.apache.geronimo.transaction.manager.TransactionImpl.TransactionBranch;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 /**
  * @version $Rev$ $Date$
  */
 public class CommitTask implements Runnable {
-    private static final Logger log = LoggerFactory.getLogger(CommitTask.class);
+    private static final Logger log = Logger.getLogger(CommitTask.class.getName());
     private final Xid xid;
     private final List<TransactionBranch> rms;
     private final Object logMark;
@@ -65,7 +65,7 @@
                     remove(index);
                     evercommit = true;
                 } catch (XAException e) {
-                    log.error("Unexpected exception committing " + manager.getCommitter() + "; continuing to commit other RMs", e);
+                    log.log(Level.SEVERE, "Unexpected exception committing " + manager.getCommitter() + "; continuing to commit other RMs", e);
 
                     if (e.errorCode == XAException.XA_HEURRB) {
                         remove(index);
@@ -135,7 +135,7 @@
                     status = Status.STATUS_COMMITTED;
                 }
             } catch (LogException e) {
-                log.error("Unexpected exception logging commit completion for xid " + xid, e);
+                log.log(Level.SEVERE, "Unexpected exception logging commit completion for xid " + xid, e);
                 cause = (XAException) new XAException("Unexpected error logging commit completion for xid " + xid).initCause(e);
             }
         } else {
diff --git a/geronimo-transaction/src/main/java/org/apache/geronimo/transaction/manager/GeronimoTransactionManager.java b/geronimo-transaction/src/main/java/org/apache/geronimo/transaction/manager/GeronimoTransactionManager.java
index 902a8e5..7c9eab7 100644
--- a/geronimo-transaction/src/main/java/org/apache/geronimo/transaction/manager/GeronimoTransactionManager.java
+++ b/geronimo-transaction/src/main/java/org/apache/geronimo/transaction/manager/GeronimoTransactionManager.java
@@ -20,11 +20,12 @@
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.Map;
-import javax.resource.spi.XATerminator;
-import javax.transaction.InvalidTransactionException;
-import javax.transaction.Status;
-import javax.transaction.SystemException;
-import javax.transaction.Transaction;
+
+import jakarta.resource.spi.XATerminator;
+import jakarta.transaction.InvalidTransactionException;
+import jakarta.transaction.Status;
+import jakarta.transaction.SystemException;
+import jakarta.transaction.Transaction;
 import javax.transaction.xa.XAException;
 import javax.transaction.xa.XAResource;
 import javax.transaction.xa.Xid;
@@ -54,7 +55,7 @@
     }
 
     /**
-     * @see javax.resource.spi.XATerminator#commit(javax.transaction.xa.Xid, boolean)
+     * @see jakarta.resource.spi.XATerminator#commit(javax.transaction.xa.Xid, boolean)
      */
     public void commit(Xid xid, boolean onePhase) throws XAException {
         Transaction importedTransaction;
@@ -75,7 +76,7 @@
     }
 
     /**
-     * @see javax.resource.spi.XATerminator#forget(javax.transaction.xa.Xid)
+     * @see jakarta.resource.spi.XATerminator#forget(javax.transaction.xa.Xid)
      */
     public void forget(Xid xid) throws XAException {
         Transaction importedTransaction;
@@ -96,7 +97,7 @@
     }
 
     /**
-     * @see javax.resource.spi.XATerminator#prepare(javax.transaction.xa.Xid)
+     * @see jakarta.resource.spi.XATerminator#prepare(javax.transaction.xa.Xid)
      */
     public int prepare(Xid xid) throws XAException {
         Transaction importedTransaction;
@@ -116,7 +117,7 @@
     }
 
     /**
-     * @see javax.resource.spi.XATerminator#recover(int)
+     * @see jakarta.resource.spi.XATerminator#recover(int)
      */
     public Xid[] recover(int flag) throws XAException {
         if (!isInRecovery) {
@@ -150,7 +151,7 @@
     }
 
     /**
-     * @see javax.resource.spi.XATerminator#rollback(javax.transaction.xa.Xid)
+     * @see jakarta.resource.spi.XATerminator#rollback(javax.transaction.xa.Xid)
      */
     public void rollback(Xid xid) throws XAException {
         Transaction importedTransaction;
diff --git a/geronimo-transaction/src/main/java/org/apache/geronimo/transaction/manager/NamedXAResourceFactory.java b/geronimo-transaction/src/main/java/org/apache/geronimo/transaction/manager/NamedXAResourceFactory.java
index 7dbb1c5..c1dcb90 100644
--- a/geronimo-transaction/src/main/java/org/apache/geronimo/transaction/manager/NamedXAResourceFactory.java
+++ b/geronimo-transaction/src/main/java/org/apache/geronimo/transaction/manager/NamedXAResourceFactory.java
@@ -20,7 +20,7 @@
 
 package org.apache.geronimo.transaction.manager;
 
-import javax.transaction.SystemException;
+import jakarta.transaction.SystemException;
 
 /**
  * @version $Rev$ $Date$
diff --git a/geronimo-transaction/src/main/java/org/apache/geronimo/transaction/manager/RecoverTask.java b/geronimo-transaction/src/main/java/org/apache/geronimo/transaction/manager/RecoverTask.java
index 65126b7..9032759 100644
--- a/geronimo-transaction/src/main/java/org/apache/geronimo/transaction/manager/RecoverTask.java
+++ b/geronimo-transaction/src/main/java/org/apache/geronimo/transaction/manager/RecoverTask.java
@@ -22,7 +22,7 @@
 
 import java.util.TimerTask;
 
-import javax.transaction.SystemException;
+import jakarta.transaction.SystemException;
 import javax.transaction.xa.XAException;
 
 /**
diff --git a/geronimo-transaction/src/main/java/org/apache/geronimo/transaction/manager/RecoverableTransactionManager.java b/geronimo-transaction/src/main/java/org/apache/geronimo/transaction/manager/RecoverableTransactionManager.java
index 7e8d497..5e1625c 100644
--- a/geronimo-transaction/src/main/java/org/apache/geronimo/transaction/manager/RecoverableTransactionManager.java
+++ b/geronimo-transaction/src/main/java/org/apache/geronimo/transaction/manager/RecoverableTransactionManager.java
@@ -20,7 +20,7 @@
 
 package org.apache.geronimo.transaction.manager;
 
-import javax.transaction.TransactionManager;
+import jakarta.transaction.TransactionManager;
 
 /**
  * @version $Rev$ $Date$
diff --git a/geronimo-transaction/src/main/java/org/apache/geronimo/transaction/manager/RecoveryImpl.java b/geronimo-transaction/src/main/java/org/apache/geronimo/transaction/manager/RecoveryImpl.java
index 0f5da05..a048ef2 100644
--- a/geronimo-transaction/src/main/java/org/apache/geronimo/transaction/manager/RecoveryImpl.java
+++ b/geronimo-transaction/src/main/java/org/apache/geronimo/transaction/manager/RecoveryImpl.java
@@ -27,18 +27,16 @@
 import java.util.Arrays;
 import java.util.HashSet;
 import java.util.Collection;
+import java.util.logging.Level;
+import java.util.logging.Logger;
 
-import javax.transaction.HeuristicMixedException;
-import javax.transaction.HeuristicRollbackException;
-import javax.transaction.SystemException;
+import jakarta.transaction.HeuristicMixedException;
+import jakarta.transaction.HeuristicRollbackException;
+import jakarta.transaction.SystemException;
 import javax.transaction.xa.XAException;
 import javax.transaction.xa.XAResource;
 import javax.transaction.xa.Xid;
 
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-
 /**
  *
  *
@@ -46,7 +44,7 @@
  *
  * */
 public class RecoveryImpl implements Recovery {
-    private static final Logger log = LoggerFactory.getLogger("Recovery");
+    private static final Logger log = Logger.getLogger("Recovery");
 
 
     private final TransactionManagerImpl txManager;
@@ -71,11 +69,11 @@
         }
         for (XidBranchesPair xidBranchesPair : preparedXids) {
             Xid xid = xidBranchesPair.getXid();
-            log.trace("read prepared global xid from log: " + toString(xid));
+            log.log(Level.FINEST,"read prepared global xid from log: " + toString(xid));
             if (txManager.getXidFactory().matchesGlobalId(xid.getGlobalTransactionId())) {
                 ourXids.put(new ByteArrayWrapper(xid.getGlobalTransactionId()), xidBranchesPair);
                 for (TransactionBranchInfo transactionBranchInfo : xidBranchesPair.getBranches()) {
-                    log.trace("read branch from log: " + transactionBranchInfo.toString());
+                    log.log(Level.FINEST,"read branch from log: " + transactionBranchInfo.toString());
                     String name = transactionBranchInfo.getResourceName();
                     Set<XidBranchesPair> transactionsForName = nameToOurTxMap.get(name);
                     if (transactionsForName == null) {
@@ -85,7 +83,7 @@
                     transactionsForName.add(xidBranchesPair);
                 }
             } else {
-                log.trace("read external prepared xid from log: " + toString(xid));
+                log.log(Level.FINEST,"read external prepared xid from log: " + toString(xid));
                 TransactionImpl externalTx = new ExternalTransaction(xid, txManager, xidBranchesPair.getBranches());
                 externalXids.put(xid, externalTx);
                 externalGlobalIdMap.put(xid.getGlobalTransactionId(), externalTx);
@@ -100,10 +98,10 @@
         for (int i = 0; prepared != null && i < prepared.length; i++) {
             Xid xid = prepared[i];
             if (xid.getGlobalTransactionId() == null || xid.getBranchQualifier() == null) {
-                log.warn("Ignoring bad xid from\n name: " + xaResource.getName() + "\n " + toString(xid));
+                log.log(Level.WARNING, "Ignoring bad xid from\n name: " + xaResource.getName() + "\n " + toString(xid));
                 continue;
             }
-            log.trace("Considering recovered xid from\n name: " + xaResource.getName() + "\n " + toString(xid));
+            log.log(Level.FINEST,"Considering recovered xid from\n name: " + xaResource.getName() + "\n " + toString(xid));
             ByteArrayWrapper globalIdWrapper = new ByteArrayWrapper(xid.getGlobalTransactionId());
             XidBranchesPair xidNamesPair = ourXids.get(globalIdWrapper);
             
@@ -113,25 +111,25 @@
                 // Otherwise, wait for recoverResourceManager to be called for the actual XAResource 
                 // This is a bit wasteful, but given our management of XAResources by "name", is about the best we can do.
                 if (isNameInTransaction(xidNamesPair, name, xid)) {
-                    log.trace("This xid was prepared from this XAResource: committing");
+                    log.log(Level.FINEST,"This xid was prepared from this XAResource: committing");
                     commit(xaResource, xid);
                     removeNameFromTransaction(xidNamesPair, name, true);
                 } else {
-                    log.trace("This xid was prepared from another XAResource, ignoring");
+                    log.log(Level.FINEST,"This xid was prepared from another XAResource, ignoring");
                 }
             } else if (txManager.getXidFactory().matchesGlobalId(xid.getGlobalTransactionId())) {
                 //ours, but prepare not logged
-                log.trace("this xid was initiated from this tm but not prepared: rolling back");
+                log.log(Level.FINEST,"this xid was initiated from this tm but not prepared: rolling back");
                 rollback(xaResource, xid);
             } else if (txManager.getXidFactory().matchesBranchId(xid.getBranchQualifier())) {
                 //our branch, but we did not start this tx.
                 TransactionImpl externalTx = externalGlobalIdMap.get(xid.getGlobalTransactionId());
                 if (externalTx == null) {
                     //we did not prepare this branch, rollback.
-                    log.trace("this xid is from an external transaction and was not prepared: rolling back");
+                    log.log(Level.FINEST,"this xid is from an external transaction and was not prepared: rolling back");
                     rollback(xaResource, xid);
                 } else {
-                    log.trace("this xid is from an external transaction and was prepared in this tm.  Waiting for instructions from transaction originator");
+                    log.log(Level.FINEST,"this xid is from an external transaction and was prepared in this tm.  Waiting for instructions from transaction originator");
                     //we prepared this branch, must wait for commit/rollback command.
                     externalTx.addBranchXid(xaResource, xid);
                 }
@@ -174,7 +172,7 @@
                     xaResource.forget(xid);
                 } else {
                     recoveryErrors.add(e);
-                    log.error("Could not roll back", e);
+                    log.log(Level.SEVERE, "Could not roll back", e);
                 }
             } catch (XAException e2) {
                 if (e2.errorCode == XAException.XAER_NOTA) {
@@ -182,7 +180,7 @@
                     // ignore
                 } else {
                     recoveryErrors.add(e);
-                    log.error("Could not roll back", e);
+                    log.log(Level.SEVERE, "Could not roll back", e);
                 }
             }
         }
@@ -213,7 +211,7 @@
             }
         }
         if (warn && removed == 0) {
-            log.error("XAResource named: " + name + " returned branch xid for xid: " + xidBranchesPair.getXid() + " but was not registered with that transaction!");
+            log.log(Level.SEVERE, "XAResource named: " + name + " returned branch xid for xid: " + xidBranchesPair.getXid() + " but was not registered with that transaction!");
         }
         if (xidBranchesPair.getBranches().isEmpty() && 0 != removed ) {
             try {
@@ -221,7 +219,7 @@
                 txManager.getTransactionLog().commit(xidBranchesPair.getXid(), xidBranchesPair.getMark());
             } catch (LogException e) {
                 recoveryErrors.add(e);
-                log.error("Could not commit", e);
+                log.log(Level.SEVERE, "Could not commit", e);
             }
         }
     }
diff --git a/geronimo-transaction/src/main/java/org/apache/geronimo/transaction/manager/RollbackTask.java b/geronimo-transaction/src/main/java/org/apache/geronimo/transaction/manager/RollbackTask.java
index 78f83bf..1176f1b 100644
--- a/geronimo-transaction/src/main/java/org/apache/geronimo/transaction/manager/RollbackTask.java
+++ b/geronimo-transaction/src/main/java/org/apache/geronimo/transaction/manager/RollbackTask.java
@@ -21,21 +21,21 @@
 package org.apache.geronimo.transaction.manager;
 
 import java.util.List;
+import java.util.logging.Level;
+import java.util.logging.Logger;
 
-import javax.transaction.Status;
-import javax.transaction.SystemException;
+import jakarta.transaction.Status;
+import jakarta.transaction.SystemException;
 import javax.transaction.xa.XAException;
 import javax.transaction.xa.Xid;
 import org.apache.geronimo.transaction.manager.TransactionImpl.ReturnableTransactionBranch;
 import org.apache.geronimo.transaction.manager.TransactionImpl.TransactionBranch;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 /**
  * @version $Rev$ $Date$
  */
 public class RollbackTask implements Runnable {
-    private static final Logger log = LoggerFactory.getLogger(RollbackTask.class);
+    private static final Logger log = Logger.getLogger(RollbackTask.class.getName());
     private final Xid xid;
     private final List<TransactionBranch> rms;
     private final Object logMark;
@@ -65,7 +65,7 @@
                     remove(index);
                     everRolledBack = true;
                 } catch (XAException e) {
-                    log.error("Unexpected exception committing " + manager.getCommitter() + "; continuing to commit other RMs", e);
+                    log.log(Level.SEVERE, "Unexpected exception committing " + manager.getCommitter() + "; continuing to commit other RMs", e);
 
                     if (e.errorCode >= XAException.XA_RBBASE && e.errorCode <= XAException.XA_RBEND || e.errorCode == XAException.XAER_NOTA) {
                         remove(index);
@@ -138,7 +138,7 @@
                     status = Status.STATUS_ROLLEDBACK;
                 }
             } catch (LogException e) {
-                log.error("Unexpected exception logging commit completion for xid " + xid, e);
+                log.log(Level.SEVERE, "Unexpected exception logging commit completion for xid " + xid, e);
                 cause = (XAException) new XAException("Unexpected error logging commit completion for xid " + xid).initCause(e);
             }
         } else {
diff --git a/geronimo-transaction/src/main/java/org/apache/geronimo/transaction/manager/TransactionImpl.java b/geronimo-transaction/src/main/java/org/apache/geronimo/transaction/manager/TransactionImpl.java
index f06deb6..0b8ad6b 100644
--- a/geronimo-transaction/src/main/java/org/apache/geronimo/transaction/manager/TransactionImpl.java
+++ b/geronimo-transaction/src/main/java/org/apache/geronimo/transaction/manager/TransactionImpl.java
@@ -25,19 +25,19 @@
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
+import java.util.logging.Level;
+import java.util.logging.Logger;
 
-import javax.transaction.HeuristicMixedException;
-import javax.transaction.HeuristicRollbackException;
-import javax.transaction.RollbackException;
-import javax.transaction.Status;
-import javax.transaction.Synchronization;
-import javax.transaction.SystemException;
-import javax.transaction.Transaction;
+import jakarta.transaction.HeuristicMixedException;
+import jakarta.transaction.HeuristicRollbackException;
+import jakarta.transaction.RollbackException;
+import jakarta.transaction.Status;
+import jakarta.transaction.Synchronization;
+import jakarta.transaction.SystemException;
+import jakarta.transaction.Transaction;
 import javax.transaction.xa.XAException;
 import javax.transaction.xa.XAResource;
 import javax.transaction.xa.Xid;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 
 /**
@@ -46,7 +46,7 @@
  * @version $Rev$ $Date$
  */
 public class TransactionImpl implements Transaction {
-    private static final Logger log = LoggerFactory.getLogger("Transaction");
+    private static final Logger log = Logger.getLogger("Transaction");
 
     private final TransactionManagerImpl txManager;
     private final Xid xid;
@@ -195,7 +195,7 @@
                 try {
                     sameRM = xaRes.isSameRM(manager.getCommitter());
                 } catch (XAException e) {
-                    log.warn("Unexpected error checking for same RM", e);
+                    log.log(Level.WARNING, "Unexpected error checking for same RM", e);
                     continue;
                 }
                 if (sameRM) {
@@ -212,7 +212,7 @@
             activeXaResources.put(xaRes, addBranchXid(xaRes, branchId));
             return true;
         } catch (XAException e) {
-            log.warn("Unable to enlist XAResource " + xaRes + ", errorCode: " + e.errorCode, e);
+            log.log(Level.WARNING, "Unable to enlist XAResource " + xaRes + ", errorCode: " + e.errorCode, e);
             // mark status as rollback only because enlist resource failed
             setRollbackOnly(e);
             return false;
@@ -252,7 +252,7 @@
             }
             return true;
         } catch (XAException e) {
-            log.warn("Unable to delist XAResource " + xaRes + ", error code: " + e.errorCode, e);
+            log.log(Level.WARNING, "Unable to delist XAResource " + xaRes + ", error code: " + e.errorCode, e);
             return false;
         }
     }
@@ -469,7 +469,7 @@
                 try {
                     rollbackResources(resourceManagers, false);
                 } catch (Exception se) {
-                    log.error("Unable to rollback after failure to log prepare", se.getCause());
+                    log.log(Level.SEVERE, "Unable to rollback after failure to log prepare", se.getCause());
                 }
                 throw (SystemException) new SystemException("Error logging prepare; transaction was rolled back)").initCause(e);
             }
@@ -526,7 +526,7 @@
             try {
                 synch.beforeCompletion();
             } catch (Exception e) {
-                log.warn("Unexpected exception from beforeCompletion; transaction will roll back", e);
+                log.log(Level.WARNING,"Unexpected exception from beforeCompletion; transaction will roll back", e);
                 synchronized (this) {
                     markRollbackCause(e);
                     status = Status.STATUS_MARKED_ROLLBACK;
@@ -558,7 +558,7 @@
             try {
                 synch.afterCompletion(status);
             } catch (Exception e) {
-                log.warn("Unexpected exception from afterCompletion; continuing", e);
+                log.log(Level.WARNING,"Unexpected exception from afterCompletion; continuing", e);
             }
         }
     }
@@ -587,7 +587,7 @@
             try {
                 xaRes.end(manager.getBranchId(), flags);
             } catch (XAException e) {
-                log.warn("Error ending association for XAResource " + xaRes + "; transaction will roll back. XA error code: " + e.errorCode, e);
+                log.log(Level.WARNING,"Error ending association for XAResource " + xaRes + "; transaction will roll back. XA error code: " + e.errorCode, e);
                 synchronized (this) {
                     markRollbackCause(e);
                     status = Status.STATUS_MARKED_ROLLBACK;
@@ -778,7 +778,7 @@
             } else {
                 // if it isn't a named resource should we really stop all processing here!
                 // Maybe this would be better to handle else where and do we really want to prevent all processing of transactions?
-                log.error("Please correct the integration and supply a NamedXAResource", new IllegalStateException("Cannot log transactions as " + committer + " is not a NamedXAResource."));
+                log.log(Level.SEVERE, "Please correct the integration and supply a NamedXAResource", new IllegalStateException("Cannot log transactions as " + committer + " is not a NamedXAResource."));
                 return committer.toString();
             }
         }
diff --git a/geronimo-transaction/src/main/java/org/apache/geronimo/transaction/manager/TransactionManagerImpl.java b/geronimo-transaction/src/main/java/org/apache/geronimo/transaction/manager/TransactionManagerImpl.java
index 1cb3f58..1db17f0 100644
--- a/geronimo-transaction/src/main/java/org/apache/geronimo/transaction/manager/TransactionManagerImpl.java
+++ b/geronimo-transaction/src/main/java/org/apache/geronimo/transaction/manager/TransactionManagerImpl.java
@@ -22,27 +22,28 @@
 import java.util.List;
 import java.util.Map;
 
-import javax.transaction.HeuristicMixedException;
-import javax.transaction.HeuristicRollbackException;
-import javax.transaction.InvalidTransactionException;
-import javax.transaction.NotSupportedException;
-import javax.transaction.RollbackException;
-import javax.transaction.Status;
-import javax.transaction.Synchronization;
-import javax.transaction.SystemException;
-import javax.transaction.Transaction;
-import javax.transaction.TransactionManager;
-import javax.transaction.TransactionSynchronizationRegistry;
-import javax.transaction.UserTransaction;
+import jakarta.transaction.HeuristicMixedException;
+import jakarta.transaction.HeuristicRollbackException;
+import jakarta.transaction.InvalidTransactionException;
+import jakarta.transaction.NotSupportedException;
+import jakarta.transaction.RollbackException;
+import jakarta.transaction.Status;
+import jakarta.transaction.Synchronization;
+import jakarta.transaction.SystemException;
+import jakarta.transaction.Transaction;
+import jakarta.transaction.TransactionManager;
+import jakarta.transaction.TransactionSynchronizationRegistry;
+import jakarta.transaction.UserTransaction;
 import javax.transaction.xa.XAException;
 import javax.transaction.xa.Xid;
 
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.CopyOnWriteArrayList;
 import java.util.concurrent.atomic.AtomicLong;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
 import org.apache.geronimo.transaction.log.UnrecoverableLog;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 /**
  * Simple implementation of a transaction manager.
@@ -50,8 +51,8 @@
  * @version $Rev$ $Date$
  */
 public class TransactionManagerImpl implements TransactionManager, UserTransaction, TransactionSynchronizationRegistry, XidImporter, MonitorableTransactionManager, RecoverableTransactionManager {
-    private static final Logger log = LoggerFactory.getLogger(TransactionManagerImpl.class);
-    private static final Logger recoveryLog = LoggerFactory.getLogger("RecoveryController");
+    private static final Logger log = Logger.getLogger(TransactionManagerImpl.class.getName());
+    private static final Logger recoveryLog = Logger.getLogger("RecoveryController");
 
     protected static final int DEFAULT_TIMEOUT = 600;
     protected static final byte[] DEFAULT_TM_ID = new byte[] {71,84,77,73,68};
@@ -355,7 +356,7 @@
 
     //Recovery
     public void recoveryError(Exception e) {
-        recoveryLog.error("Recovery error: {}", e.getMessage());
+        recoveryLog.log(Level.SEVERE, "Recovery error: {}", e.getMessage());
         recoveryErrors.add(e);
     }
 
@@ -401,7 +402,7 @@
             try {
                 listener.threadAssociated(tx);
             } catch (Exception e) {
-                log.warn("Error calling transaction association listener", e);
+                log.log(Level.WARNING, "Error calling transaction association listener", e);
             }
         }
     }
@@ -411,7 +412,7 @@
             try {
                 listener.threadUnassociated(tx);
             } catch (Exception e) {
-                log.warn("Error calling transaction association listener", e);
+                log.log(Level.WARNING, "Error calling transaction association listener", e);
             }
         }
     }
diff --git a/geronimo-transaction/src/main/java/org/apache/geronimo/transaction/manager/TransactionManagerMonitor.java b/geronimo-transaction/src/main/java/org/apache/geronimo/transaction/manager/TransactionManagerMonitor.java
index 260a344..e8b223d 100644
--- a/geronimo-transaction/src/main/java/org/apache/geronimo/transaction/manager/TransactionManagerMonitor.java
+++ b/geronimo-transaction/src/main/java/org/apache/geronimo/transaction/manager/TransactionManagerMonitor.java
@@ -17,7 +17,7 @@
 package org.apache.geronimo.transaction.manager;
 
 import java.util.EventListener;
-import javax.transaction.Transaction;
+import jakarta.transaction.Transaction;
 
 /**
  * @version $Rev$ $Date$
diff --git a/geronimo-transaction/src/main/java/org/apache/geronimo/transaction/manager/WrapperNamedXAResource.java b/geronimo-transaction/src/main/java/org/apache/geronimo/transaction/manager/WrapperNamedXAResource.java
index a0ab682..239cefd 100644
--- a/geronimo-transaction/src/main/java/org/apache/geronimo/transaction/manager/WrapperNamedXAResource.java
+++ b/geronimo-transaction/src/main/java/org/apache/geronimo/transaction/manager/WrapperNamedXAResource.java
@@ -20,9 +20,8 @@
 import javax.transaction.xa.XAResource;
 import javax.transaction.xa.Xid;
 import javax.transaction.xa.XAException;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import java.util.logging.Level;
+import java.util.logging.Logger;
 
 /**
  *
@@ -31,7 +30,7 @@
  *
  * */
 public class WrapperNamedXAResource implements NamedXAResource {
-    protected static Logger log = LoggerFactory.getLogger(WrapperNamedXAResource.class.getName());
+    protected static Logger log = Logger.getLogger(WrapperNamedXAResource.class.getName());
 
     private final XAResource xaResource;
     private final String name;
@@ -48,22 +47,22 @@
     }
 
     public void commit(Xid xid, boolean onePhase) throws XAException {
-        if (log.isTraceEnabled()) {
-            log.trace("Commit called on XAResource " + getName() + "\n Xid: " + xid + "\n onePhase:" + onePhase);
+        if (log.isLoggable(Level.FINEST)) {
+            log.log(Level.FINEST,"Commit called on XAResource " + getName() + "\n Xid: " + xid + "\n onePhase:" + onePhase);
         }
         xaResource.commit(xid, onePhase);
     }                                                                                                                   
 
     public void end(Xid xid, int flags) throws XAException {
-        if (log.isTraceEnabled()) {
-            log.trace("End called on XAResource " + getName() + "\n Xid: " + xid + "\n flags:" + decodeFlags(flags));
+        if (log.isLoggable(Level.FINEST)) {
+            log.log(Level.FINEST,"End called on XAResource " + getName() + "\n Xid: " + xid + "\n flags:" + decodeFlags(flags));
         }
         xaResource.end(xid, flags);
     }
 
     public void forget(Xid xid) throws XAException {
-        if (log.isTraceEnabled()) {
-            log.trace("Forget called on XAResource " + getName() + "\n Xid: " + xid);
+        if (log.isLoggable(Level.FINEST)) {
+            log.log(Level.FINEST,"Forget called on XAResource " + getName() + "\n Xid: " + xid);
         }
         xaResource.forget(xid);
     }
@@ -80,22 +79,22 @@
     }
 
     public int prepare(Xid xid) throws XAException {
-        if (log.isTraceEnabled()) {
-            log.trace("Prepare called on XAResource " + getName() + "\n Xid: " + xid);
+        if (log.isLoggable(Level.FINEST)) {
+            log.log(Level.FINEST,"Prepare called on XAResource " + getName() + "\n Xid: " + xid);
         }
         return xaResource.prepare(xid);
     }
 
     public Xid[] recover(int flag) throws XAException {
-        if (log.isTraceEnabled()) {
-            log.trace("Recover called on XAResource " + getName() + "\n flags: " + decodeFlags(flag));
+        if (log.isLoggable(Level.FINEST)) {
+            log.log(Level.FINEST,"Recover called on XAResource " + getName() + "\n flags: " + decodeFlags(flag));
         }
         return xaResource.recover(flag);
     }
 
     public void rollback(Xid xid) throws XAException {
-        if (log.isTraceEnabled()) {
-            log.trace("Rollback called on XAResource " + getName() + "\n Xid: " + xid);
+        if (log.isLoggable(Level.FINEST)) {
+            log.log(Level.FINEST,"Rollback called on XAResource " + getName() + "\n Xid: " + xid);
         }
         xaResource.rollback(xid);
     }
@@ -105,8 +104,8 @@
     }
 
     public void start(Xid xid, int flags) throws XAException {
-        if (log.isTraceEnabled()) {
-            log.trace("Start called on XAResource " + getName() + "\n Xid: " + xid + "\n flags:" + decodeFlags(flags));
+        if (log.isLoggable(Level.FINEST)) {
+            log.log(Level.FINEST,"Start called on XAResource " + getName() + "\n Xid: " + xid + "\n flags:" + decodeFlags(flags));
         }
         xaResource.start(xid, flags);
     }
diff --git a/geronimo-transaction/src/main/java/org/apache/geronimo/transaction/manager/XAWork.java b/geronimo-transaction/src/main/java/org/apache/geronimo/transaction/manager/XAWork.java
index e0f5e21..834d488 100644
--- a/geronimo-transaction/src/main/java/org/apache/geronimo/transaction/manager/XAWork.java
+++ b/geronimo-transaction/src/main/java/org/apache/geronimo/transaction/manager/XAWork.java
@@ -19,8 +19,8 @@
 
 import javax.transaction.xa.Xid;
 import javax.transaction.xa.XAException;
-import javax.transaction.SystemException;
-import javax.transaction.InvalidTransactionException;
+import jakarta.transaction.SystemException;
+import jakarta.transaction.InvalidTransactionException;
 
 import org.apache.geronimo.transaction.manager.ImportedTransactionActiveException;
 
diff --git a/geronimo-transaction/src/main/java/org/apache/geronimo/transaction/manager/XidImporter.java b/geronimo-transaction/src/main/java/org/apache/geronimo/transaction/manager/XidImporter.java
index b12744e..886a12d 100644
--- a/geronimo-transaction/src/main/java/org/apache/geronimo/transaction/manager/XidImporter.java
+++ b/geronimo-transaction/src/main/java/org/apache/geronimo/transaction/manager/XidImporter.java
@@ -21,8 +21,8 @@
 
 import javax.transaction.xa.Xid;
 import javax.transaction.xa.XAException;
-import javax.transaction.Transaction;
-import javax.transaction.SystemException;
+import jakarta.transaction.Transaction;
+import jakarta.transaction.SystemException;
 
 /**
  *
diff --git a/geronimo-transaction/src/test/java/org/apache/geronimo/transaction/manager/HeuristicTest.java b/geronimo-transaction/src/test/java/org/apache/geronimo/transaction/manager/HeuristicTest.java
index b0e2683..1c44518 100644
--- a/geronimo-transaction/src/test/java/org/apache/geronimo/transaction/manager/HeuristicTest.java
+++ b/geronimo-transaction/src/test/java/org/apache/geronimo/transaction/manager/HeuristicTest.java
@@ -20,8 +20,8 @@
 
 package org.apache.geronimo.transaction.manager;
 
-import javax.transaction.HeuristicMixedException;
-import javax.transaction.HeuristicRollbackException;
+import jakarta.transaction.HeuristicMixedException;
+import jakarta.transaction.HeuristicRollbackException;
 import javax.transaction.xa.XAException;
 import junit.framework.TestCase;
 
diff --git a/geronimo-transaction/src/test/java/org/apache/geronimo/transaction/manager/MockResource.java b/geronimo-transaction/src/test/java/org/apache/geronimo/transaction/manager/MockResource.java
index 0152d57..6a69409 100644
--- a/geronimo-transaction/src/test/java/org/apache/geronimo/transaction/manager/MockResource.java
+++ b/geronimo-transaction/src/test/java/org/apache/geronimo/transaction/manager/MockResource.java
@@ -20,7 +20,7 @@
 import java.util.Set;
 import java.util.HashSet;
 
-import javax.transaction.SystemException;
+import jakarta.transaction.SystemException;
 import javax.transaction.xa.XAException;
 import javax.transaction.xa.XAResource;
 import javax.transaction.xa.Xid;
diff --git a/geronimo-transaction/src/test/java/org/apache/geronimo/transaction/manager/ProtocolTest.java b/geronimo-transaction/src/test/java/org/apache/geronimo/transaction/manager/ProtocolTest.java
index 7624ca7..c110d4e 100644
--- a/geronimo-transaction/src/test/java/org/apache/geronimo/transaction/manager/ProtocolTest.java
+++ b/geronimo-transaction/src/test/java/org/apache/geronimo/transaction/manager/ProtocolTest.java
@@ -17,7 +17,7 @@
 
 package org.apache.geronimo.transaction.manager;
 
-import javax.transaction.Transaction;
+import jakarta.transaction.Transaction;
 import javax.transaction.xa.XAResource;
 
 import junit.framework.TestCase;
diff --git a/geronimo-transaction/src/test/java/org/apache/geronimo/transaction/manager/TransactionManagerImplTest.java b/geronimo-transaction/src/test/java/org/apache/geronimo/transaction/manager/TransactionManagerImplTest.java
index 4f65c4e..c4e26a4 100644
--- a/geronimo-transaction/src/test/java/org/apache/geronimo/transaction/manager/TransactionManagerImplTest.java
+++ b/geronimo-transaction/src/test/java/org/apache/geronimo/transaction/manager/TransactionManagerImplTest.java
@@ -19,10 +19,10 @@
 
 import java.util.Map;
 
-import javax.transaction.InvalidTransactionException;
-import javax.transaction.RollbackException;
-import javax.transaction.Status;
-import javax.transaction.Transaction;
+import jakarta.transaction.InvalidTransactionException;
+import jakarta.transaction.RollbackException;
+import jakarta.transaction.Status;
+import jakarta.transaction.Transaction;
 import javax.transaction.xa.XAException;
 import javax.transaction.xa.XAResource;
 import javax.transaction.xa.Xid;
diff --git a/geronimo-transaction/src/test/java/org/apache/geronimo/transaction/manager/TransactionManagerTest.java b/geronimo-transaction/src/test/java/org/apache/geronimo/transaction/manager/TransactionManagerTest.java
index ae6b03c..b174f6c 100644
--- a/geronimo-transaction/src/test/java/org/apache/geronimo/transaction/manager/TransactionManagerTest.java
+++ b/geronimo-transaction/src/test/java/org/apache/geronimo/transaction/manager/TransactionManagerTest.java
@@ -17,9 +17,9 @@
 
 package org.apache.geronimo.transaction.manager;
 
-import javax.transaction.Status;
-import javax.transaction.Transaction;
-import javax.transaction.TransactionManager;
+import jakarta.transaction.Status;
+import jakarta.transaction.Transaction;
+import jakarta.transaction.TransactionManager;
 import javax.transaction.xa.XAResource;
 
 import junit.framework.TestCase;
diff --git a/geronimo-transaction/src/test/java/org/apache/geronimo/transaction/manager/TransactionSynchronizationRegistryTest.java b/geronimo-transaction/src/test/java/org/apache/geronimo/transaction/manager/TransactionSynchronizationRegistryTest.java
index d1e6345..cd13fe9 100644
--- a/geronimo-transaction/src/test/java/org/apache/geronimo/transaction/manager/TransactionSynchronizationRegistryTest.java
+++ b/geronimo-transaction/src/test/java/org/apache/geronimo/transaction/manager/TransactionSynchronizationRegistryTest.java
@@ -17,12 +17,12 @@
 
 package org.apache.geronimo.transaction.manager;
 
-import javax.transaction.Synchronization;
-import javax.transaction.HeuristicMixedException;
-import javax.transaction.HeuristicRollbackException;
-import javax.transaction.RollbackException;
-import javax.transaction.SystemException;
-import javax.transaction.NotSupportedException;
+import jakarta.transaction.Synchronization;
+import jakarta.transaction.HeuristicMixedException;
+import jakarta.transaction.HeuristicRollbackException;
+import jakarta.transaction.RollbackException;
+import jakarta.transaction.SystemException;
+import jakarta.transaction.NotSupportedException;
 
 import junit.framework.TestCase;
 
diff --git a/geronimo-transaction/src/test/java/org/apache/geronimo/transaction/manager/XATransactionTester.java b/geronimo-transaction/src/test/java/org/apache/geronimo/transaction/manager/XATransactionTester.java
index aa22f92..542f6c7 100644
--- a/geronimo-transaction/src/test/java/org/apache/geronimo/transaction/manager/XATransactionTester.java
+++ b/geronimo-transaction/src/test/java/org/apache/geronimo/transaction/manager/XATransactionTester.java
@@ -24,7 +24,7 @@
 import java.util.List;
 import javax.sql.XAConnection;
 import javax.sql.XADataSource;
-import javax.transaction.TransactionManager;
+import jakarta.transaction.TransactionManager;
 import javax.transaction.xa.XAResource;
 import javax.transaction.xa.Xid;
 
diff --git a/geronimo-transaction/src/test/java/org/apache/geronimo/transaction/manager/XidImporterTest.java b/geronimo-transaction/src/test/java/org/apache/geronimo/transaction/manager/XidImporterTest.java
index 72c51c0..9fa9d9c 100644
--- a/geronimo-transaction/src/test/java/org/apache/geronimo/transaction/manager/XidImporterTest.java
+++ b/geronimo-transaction/src/test/java/org/apache/geronimo/transaction/manager/XidImporterTest.java
@@ -20,8 +20,8 @@
 import javax.transaction.xa.Xid;
 import javax.transaction.xa.XAResource;
 import javax.transaction.xa.XAException;
-import javax.transaction.Transaction;
-import javax.transaction.Status;
+import jakarta.transaction.Transaction;
+import jakarta.transaction.Status;
 
 import junit.framework.TestCase;
 
diff --git a/pom.xml b/pom.xml
index 7984c51..a98c580 100644
--- a/pom.xml
+++ b/pom.xml
@@ -23,15 +23,15 @@
     <modelVersion>4.0.0</modelVersion>
 
     <parent>
-        <groupId>org.apache.geronimo.genesis</groupId>
-        <artifactId>genesis-java8-flava</artifactId>
-        <version>2.4</version>
+        <groupId>org.apache</groupId>
+        <artifactId>apache</artifactId>
+        <version>29</version>
         <relativePath />
     </parent>
 
     <groupId>org.apache.geronimo.components</groupId>
     <artifactId>geronimo-txmanager-parent</artifactId>
-    <version>3.1.6-SNAPSHOT</version>
+    <version>4.0.0-SNAPSHOT</version>
     <packaging>pom</packaging>
     <name>Apache Geronimo TxManager</name>
 
@@ -44,11 +44,10 @@
         <tag>HEAD</tag>
     </scm>
 
-    <url>http://geronimo.apache.org/maven/${siteId}/${project.version}</url>
+    <url>https://geronimo.apache.org/maven/${siteId}/${project.version}</url>
     <properties>
         <siteId>components/${project.artifactId}</siteId>
 
-        <maven-shade-plugin.version>3.2.4</maven-shade-plugin.version>
         <build-helper-maven-plugin.version>3.3.0</build-helper-maven-plugin.version>
 
         <!-- Package attribute of the JAR artifact. -->
@@ -57,50 +56,33 @@
 
     <dependencyManagement>
         <dependencies>
-            <!-- internal -->
-
             <dependency>
                 <groupId>org.apache.geronimo.components</groupId>
                 <artifactId>geronimo-transaction</artifactId>
-                <version>3.1.6-SNAPSHOT</version>
+                <version>4.0.0-SNAPSHOT</version>
             </dependency>
             <dependency>
                 <groupId>org.apache.geronimo.components</groupId>
                 <artifactId>geronimo-connector</artifactId>
-                <version>3.1.6-SNAPSHOT</version>
-            </dependency>
-
-            <!-- external -->
-            <dependency>
-                <groupId>org.slf4j</groupId>
-                <artifactId>slf4j-api</artifactId>
-                <version>1.5.5</version>
-                <scope>provided</scope>
+                <version>4.0.0-SNAPSHOT</version>
             </dependency>
 
             <dependency>
-                <groupId>org.slf4j</groupId>
-                <artifactId>slf4j-simple</artifactId>
-                <version>1.5.5</version>
-                <scope>test</scope>
+                <groupId>jakarta.transaction</groupId>
+                <artifactId>jakarta.transaction-api</artifactId>
+                <version>2.0.1</version>
             </dependency>
 
             <dependency>
-                <groupId>org.apache.geronimo.specs</groupId>
-                <artifactId>geronimo-jta_1.1_spec</artifactId>
-                <version>1.1.1</version>
+                <groupId>jakarta.resource</groupId>
+                <artifactId>jakarta.resource-api</artifactId>
+                <version>2.1.0</version>
             </dependency>
 
             <dependency>
-                <groupId>org.apache.geronimo.specs</groupId>
-                <artifactId>geronimo-j2ee-connector_1.6_spec</artifactId>
-                <version>1.0</version>
-            </dependency>
-                
-            <dependency>
-                <groupId>org.apache.geronimo.specs</groupId>
-                <artifactId>geronimo-validation_1.0_spec</artifactId>
-                <version>1.1</version>
+                <groupId>jakarta.validation</groupId>
+                <artifactId>jakarta.validation-api</artifactId>
+                <version>3.0.2</version>
             </dependency>
 
             <dependency>
@@ -113,33 +95,26 @@
             <dependency>
                 <groupId>junit</groupId>
                 <artifactId>junit</artifactId>
-                <version>3.8.2</version>
+                <version>4.13.2</version>
                 <scope>test</scope>
             </dependency>
 
         </dependencies>
     </dependencyManagement>
 
-    <profiles>
-        <profile>
-            <id>java8-doclint-disabled</id>
-            <activation>
-                <jdk>[1.8,)</jdk>
-            </activation>
-
-            <properties>
-                <additionalparam>-Xdoclint:none</additionalparam>
-                <javadoc.opts>-Xdoclint:none</javadoc.opts>
-            </properties>
-        </profile>
-    </profiles>
     <build>
         <pluginManagement>
             <plugins>
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>
+                    <artifactId>maven-compiler-plugin</artifactId>
+                    <configuration>
+                        <release>11</release>
+                    </configuration>
+                </plugin>
+                <plugin>
+                    <groupId>org.apache.maven.plugins</groupId>
                     <artifactId>maven-javadoc-plugin</artifactId>
-                    <version>2.9</version>
                     <executions>
                         <execution>
                             <id>attach-javadocs</id>
@@ -147,68 +122,42 @@
                                 <goal>jar</goal>
                             </goals>
                             <configuration>
-                                <additionalparam>${javadoc.opts}</additionalparam>
+                                <quiet>true</quiet>
+                                <release>11</release>
+                                <doclint>none</doclint>
                             </configuration>
                         </execution>
                     </executions>
                 </plugin>
+
+                <plugin>
+                    <groupId>org.apache.maven.plugins</groupId>
+                    <artifactId>maven-jar-plugin</artifactId>
+                    <configuration>
+                        <archive>
+                            <manifestEntries>
+                                <Automatic-Module-Name>${jpms.module.name}</Automatic-Module-Name>
+                            </manifestEntries>
+                        </archive>
+                    </configuration>
+                </plugin>
+
                 <plugin>
                     <groupId>org.apache.felix</groupId>
                     <artifactId>maven-bundle-plugin</artifactId>
-                    <version>2.0.1</version>
+                    <version>5.1.8</version>
+                    <extensions>true</extensions>
                     <configuration>
                         <instructions>
+                            <Implementation-Title>${project.name}</Implementation-Title>
+                            <Implementation-Version>${project.version}</Implementation-Version>
+                            <Bundle-DocURL>${project.url}</Bundle-DocURL>
                             <_versionpolicy-impl>[$(version;==;$(@)),$(version;=+;$(@)))</_versionpolicy-impl>
                             <_versionpolicy-uses>[$(version;==;$(@)),$(version;+;$(@)))</_versionpolicy-uses>
                             <_versionpolicy>[$(version;==;$(@)),$(version;+;$(@)))</_versionpolicy>
                         </instructions>
                     </configuration>
                 </plugin>
-                <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-shade-plugin</artifactId>
-                    <version>${maven-shade-plugin.version}</version>
-                    <executions>
-                        <execution>
-                            <phase>package</phase>
-                            <goals>
-                                <goal>shade</goal>
-                            </goals>
-                            <configuration>
-                                <shadedArtifactAttached>true</shadedArtifactAttached>
-                                <shadedClassifierName>jakarta</shadedClassifierName>
-                                <createDependencyReducedPom>false</createDependencyReducedPom>
-                                <transformers>
-                                    <transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer" />
-                                </transformers>
-                                <artifactSet> <!-- don't include transitive deps -->
-                                    <includes>
-                                        <include>${project.groupId}:${project.artifactId}</include>
-                                    </includes>
-                                </artifactSet>
-                                <relocations>
-                                    <relocation>
-                                        <pattern>javax.resource</pattern>
-                                        <shadedPattern>jakarta.resource</shadedPattern>
-                                    </relocation>
-                                    <relocation>
-                                        <pattern>javax.transaction</pattern>
-                                        <shadedPattern>jakarta.transaction</shadedPattern>
-                                        <excludes>
-                                            <exclude>javax.transaction.xa.**</exclude>
-                                        </excludes>
-                                    </relocation>
-
-                                    <relocation>
-                                        <pattern>javax.validation</pattern>
-                                        <shadedPattern>jakarta.validation</shadedPattern>
-                                    </relocation>
-                                </relocations>
-                            </configuration>
-                        </execution>
-                    </executions>
-                </plugin>
-
                 <!--
                 Build Helper Maven plugin -
                 https://www.mojohaus.org/build-helper-maven-plugin/