BATCHEE-160 jaxb and derby cleanup
diff --git a/extensions/extras/pom.xml b/extensions/extras/pom.xml
index dca4c56..b200b33 100644
--- a/extensions/extras/pom.xml
+++ b/extensions/extras/pom.xml
@@ -19,9 +19,10 @@
     <modelVersion>4.0.0</modelVersion>
 
     <parent>
-        <artifactId>batchee-extensions</artifactId>
         <groupId>org.apache.batchee</groupId>
+        <artifactId>batchee-extensions</artifactId>
         <version>2.0.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
     </parent>
 
     <artifactId>batchee-extras</artifactId>
@@ -44,13 +45,19 @@
             <groupId>jakarta.validation</groupId>
             <artifactId>jakarta.validation-api</artifactId>
         </dependency>
+        <dependency>
+            <groupId>org.glassfish.jaxb</groupId>
+            <artifactId>jaxb-runtime</artifactId>
+        </dependency>
+
 
         <dependency>
             <groupId>org.apache.bval</groupId>
             <artifactId>bval-jsr</artifactId>
-            <version>2.0.5</version>
+            <version>${bval.version}</version>
             <scope>test</scope>
         </dependency>
+
         <dependency>
             <groupId>org.apache.openjpa</groupId>
             <artifactId>openjpa</artifactId>
@@ -62,23 +69,12 @@
                     <groupId>org.apache.geronimo.specs</groupId>
                     <artifactId>*</artifactId>
                 </exclusion>
+                <exclusion>
+                    <groupId>org.apache.bval</groupId>
+                    <artifactId>.*</artifactId>
+                </exclusion>
             </exclusions>
         </dependency>
     </dependencies>
 
-    <profiles>
-        <profile>
-            <id>jdk11</id>
-            <activation>
-                <jdk>[11,)</jdk>
-            </activation>
-            <dependencies>
-                <dependency>
-                    <groupId>com.sun.xml.bind</groupId>
-                    <artifactId>jaxb-impl</artifactId>
-                    <version>${jaxb.version}</version>
-                </dependency>
-            </dependencies>
-        </profile>
-    </profiles>
 </project>
diff --git a/extensions/pom.xml b/extensions/pom.xml
index b40d02e..b3b4069 100644
--- a/extensions/pom.xml
+++ b/extensions/pom.xml
@@ -19,8 +19,8 @@
     <modelVersion>4.0.0</modelVersion>
 
     <parent>
-        <artifactId>batchee</artifactId>
         <groupId>org.apache.batchee</groupId>
+        <artifactId>batchee</artifactId>
         <version>2.0.0-SNAPSHOT</version>
     </parent>
 
@@ -77,6 +77,10 @@
             <groupId>org.apache.derby</groupId>
             <artifactId>derby</artifactId>
         </dependency>
+        <dependency>
+            <groupId>org.apache.derby</groupId>
+            <artifactId>derbytools</artifactId>
+        </dependency>
 
         <dependency> <!-- just there for mvn-exec and deps ordering -->
             <groupId>org.apache.batchee</groupId>
diff --git a/gui/jaxrs/jaxrs-client/pom.xml b/gui/jaxrs/jaxrs-client/pom.xml
index 7f26d19..54dc8c2 100644
--- a/gui/jaxrs/jaxrs-client/pom.xml
+++ b/gui/jaxrs/jaxrs-client/pom.xml
@@ -59,6 +59,10 @@
             <groupId>org.apache.johnzon</groupId>
             <artifactId>johnzon-jaxrs</artifactId>
         </dependency>
+        <dependency>
+            <groupId>org.glassfish.jaxb</groupId>
+            <artifactId>jaxb-runtime</artifactId>
+        </dependency>
 
         <dependency>
             <groupId>org.apache.cxf</groupId>
@@ -84,19 +88,4 @@
         </dependency>
     </dependencies>
 
-    <profiles>
-        <profile>
-            <id>jdk11</id>
-            <activation>
-                <jdk>[11,)</jdk>
-            </activation>
-            <dependencies>
-                <dependency>
-                    <groupId>com.sun.xml.bind</groupId>
-                    <artifactId>jaxb-impl</artifactId>
-                    <version>${jaxb.version}</version>
-                </dependency>
-            </dependencies>
-        </profile>
-    </profiles>
 </project>
diff --git a/gui/jaxrs/jaxrs-server/pom.xml b/gui/jaxrs/jaxrs-server/pom.xml
index 2908d18..4651e5a 100644
--- a/gui/jaxrs/jaxrs-server/pom.xml
+++ b/gui/jaxrs/jaxrs-server/pom.xml
@@ -102,7 +102,7 @@
         </dependency>
         <dependency>
             <groupId>org.jboss.arquillian.container</groupId>
-            <artifactId>arquillian-tomcat-embedded-7</artifactId>
+            <artifactId>arquillian-tomcat-embedded-10</artifactId>
         </dependency>
         <dependency>
             <groupId>org.apache.tomcat.embed</groupId>
diff --git a/gui/pom.xml b/gui/pom.xml
index 199cf12..1568cf9 100644
--- a/gui/pom.xml
+++ b/gui/pom.xml
@@ -181,8 +181,8 @@
             </dependency>
             <dependency>
                 <groupId>org.jboss.arquillian.container</groupId>
-                <artifactId>arquillian-tomcat-embedded-7</artifactId>
-                <version>1.0.0.CR5</version>
+                <artifactId>arquillian-tomcat-embedded-10</artifactId>
+                <version>1.2.0.Final</version>
                 <scope>test</scope>
             </dependency>
             <dependency>
diff --git a/gui/servlet/embedded/pom.xml b/gui/servlet/embedded/pom.xml
index 97f0257..c7269cc 100644
--- a/gui/servlet/embedded/pom.xml
+++ b/gui/servlet/embedded/pom.xml
@@ -77,7 +77,7 @@
     </dependency>
     <dependency>
       <groupId>org.jboss.arquillian.container</groupId>
-      <artifactId>arquillian-tomcat-embedded-7</artifactId>
+      <artifactId>arquillian-tomcat-embedded-10</artifactId>
     </dependency>
     <dependency>
       <groupId>org.apache.tomcat.embed</groupId>
diff --git a/jbatch/pom.xml b/jbatch/pom.xml
index 4da8318..1c9fe93 100644
--- a/jbatch/pom.xml
+++ b/jbatch/pom.xml
@@ -88,14 +88,29 @@
       <artifactId>derby</artifactId>
     </dependency>
     <dependency>
+      <groupId>org.apache.derby</groupId>
+      <artifactId>derbytools</artifactId>
+    </dependency>
+    <dependency>
       <groupId>joda-time</groupId>
       <artifactId>joda-time</artifactId>
     </dependency>
     <dependency>
+      <groupId>org.glassfish.jaxb</groupId>
+      <artifactId>jaxb-runtime</artifactId>
+    </dependency>
+
+    <dependency>
       <groupId>org.apache.tomee</groupId>
       <artifactId>openejb-core</artifactId>
       <version>${tomee.version}</version>
       <scope>test</scope>
+      <exclusions>
+        <exclusion>
+          <groupId>org.apache.bval</groupId>
+          <artifactId>bval-jsr</artifactId>
+        </exclusion>
+      </exclusions>
     </dependency>
     <dependency>
       <groupId>org.fusesource.jansi</groupId>
@@ -103,6 +118,12 @@
       <version>1.17.1</version>
       <scope>test</scope>
     </dependency>
+    <dependency>
+      <groupId>org.apache.bval</groupId>
+      <artifactId>bval-jsr</artifactId>
+      <version>${bval.version}</version>
+      <scope>test</scope>
+    </dependency>
 
     <!-- To replace with the jakarta version of TCK
     <dependency>
@@ -510,19 +531,4 @@
     </plugins>
   </build>
 
-  <profiles>
-    <profile>
-      <id>jdk11</id>
-      <activation>
-        <jdk>[11,)</jdk>
-      </activation>
-      <dependencies>
-        <dependency>
-          <groupId>com.sun.xml.bind</groupId>
-          <artifactId>jaxb-impl</artifactId>
-          <version>${jaxb.version}</version>
-        </dependency>
-      </dependencies>
-    </profile>
-  </profiles>
 </project>
diff --git a/jbatch/src/main/java/org/apache/batchee/container/services/persistence/JPAPersistenceManagerService.java b/jbatch/src/main/java/org/apache/batchee/container/services/persistence/JPAPersistenceManagerService.java
index 556685f..ae3137f 100644
--- a/jbatch/src/main/java/org/apache/batchee/container/services/persistence/JPAPersistenceManagerService.java
+++ b/jbatch/src/main/java/org/apache/batchee/container/services/persistence/JPAPersistenceManagerService.java
@@ -844,7 +844,7 @@
         final String providerClass = batchConfig.getProperty(
             "persistence.jpa.entity-manager-provider", ee ? EEEntityManagerProvider.class.getName() : DefaultEntityManagerProvider.class.getName());
         try {
-            emProvider = EntityManagerProvider.class.cast(Thread.currentThread().getContextClassLoader().loadClass(providerClass).newInstance());
+            emProvider = EntityManagerProvider.class.cast(Thread.currentThread().getContextClassLoader().loadClass(providerClass).getDeclaredConstructor().newInstance());
         } catch (final Exception e) {
             throw new BatchContainerRuntimeException(e);
         }
diff --git a/jbatch/src/test/java/org/apache/batchee/container/impl/JPAPersistenceManagerTest.java b/jbatch/src/test/java/org/apache/batchee/container/impl/JPAPersistenceManagerTest.java
index 2a7e0a4..d74be93 100644
--- a/jbatch/src/test/java/org/apache/batchee/container/impl/JPAPersistenceManagerTest.java
+++ b/jbatch/src/test/java/org/apache/batchee/container/impl/JPAPersistenceManagerTest.java
@@ -33,77 +33,77 @@
 @SuppressWarnings("serial")
 public class JPAPersistenceManagerTest {
 
-	private static final String VALID_JOBNAME = "simple";
-	private static final String INVALID_JOBNAME = "simple_batchee139";
-	private static final int INVALID_ID = -1;
-	private static final Properties simpleJobProp;
+    private static final String VALID_JOBNAME = "simple";
+    private static final String INVALID_JOBNAME = "simple_batchee139";
+    private static final int INVALID_ID = -1;
+    private static final Properties simpleJobProp;
 
-	private static JobOperatorImpl operator;
-	private static long executionId;
+    private static JobOperatorImpl operator;
+    private static long executionId;
 
-	static {
-		simpleJobProp = new Properties() {
-			{
-				setProperty("duration", "10");
-			}
-		};
-	}
+    static {
+        simpleJobProp = new Properties() {
+            {
+                setProperty("duration", "10");
+            }
+        };
+    }
 
-	@BeforeClass
-	public static void setup() {
-		operator = new JobOperatorImpl(new ServicesManager() {
-			{
-				init(new Properties() {
-					{
-						setProperty(PersistenceManagerService.class.getName(),
-								JPAPersistenceManagerService.class.getName());
-					}
-				});
-			}
-		});
-		executionId = triggerSimpleJob();
-	}
+    @BeforeClass
+    public static void setup() {
+        operator = new JobOperatorImpl(new ServicesManager() {
+            {
+                init(new Properties() {
+                    {
+                        setProperty(PersistenceManagerService.class.getName(),
+                                JPAPersistenceManagerService.class.getName());
+                    }
+                });
+            }
+        });
+        executionId = triggerSimpleJob();
+    }
 
-	@Test(expected = NoSuchJobExecutionException.class)
-	public void testGetJobExecutionError_BATCHEE139() {
-		operator.getJobExecution(INVALID_ID);
-	}
+    @Test(expected = NoSuchJobExecutionException.class)
+    public void testGetJobExecutionError_BATCHEE139() {
+        operator.getJobExecution(INVALID_ID);
+    }
 
-	@Test
-	public void testGetJobExecution_BATCHEE139() {
-		final InternalJobExecution jobExecution = operator.getJobExecution(executionId);
-		assertEquals(executionId, jobExecution.getExecutionId());
-	}
+    @Test
+    public void testGetJobExecution_BATCHEE139() {
+        final InternalJobExecution jobExecution = operator.getJobExecution(executionId);
+        assertEquals(executionId, jobExecution.getExecutionId());
+    }
 
-	@Test(expected = NoSuchJobExecutionException.class)
-	public void testGetJobInstanceError_BATCHEE139() {
-		operator.getJobInstance(INVALID_ID);
-	}
+    @Test(expected = NoSuchJobExecutionException.class)
+    public void testGetJobInstanceError_BATCHEE139() {
+        operator.getJobInstance(INVALID_ID);
+    }
 
-	@Test
-	public void testGetJobInstance_BATCHEE139() {
-		final JobInstance jobInstance = operator.getJobInstance(executionId);
-		assertEquals(operator.getJobExecution(executionId).getInstanceId(), jobInstance.getInstanceId());
-	}
+    @Test
+    public void testGetJobInstance_BATCHEE139() {
+        final JobInstance jobInstance = operator.getJobInstance(executionId);
+        assertEquals(operator.getJobExecution(executionId).getInstanceId(), jobInstance.getInstanceId());
+    }
 
-	@Test
-	public void testGetParameters_BATCHEE139() {
-		final Properties parameters = operator.getParameters(executionId);
-		assertEquals(simpleJobProp, parameters);
-	}
+    @Test
+    public void testGetParameters_BATCHEE139() {
+        final Properties parameters = operator.getParameters(executionId);
+        assertEquals(simpleJobProp, parameters);
+    }
 
-	@Test(expected = NoSuchJobExecutionException.class)
-	public void testGetParametersError_BATCHEE139() {
-		operator.getParameters(INVALID_ID);
-	}
+    @Test(expected = NoSuchJobExecutionException.class)
+    public void testGetParametersError_BATCHEE139() {
+        operator.getParameters(INVALID_ID);
+    }
 
-	@Test(expected = NoSuchJobException.class)
-	public void testJobInstanceCountError_BATCHEE139() {
-		operator.getJobInstanceCount(INVALID_JOBNAME);
-	}
+    @Test(expected = NoSuchJobException.class)
+    public void testJobInstanceCountError_BATCHEE139() {
+        operator.getJobInstanceCount(INVALID_JOBNAME);
+    }
 
-	private static long triggerSimpleJob() {
-		return operator.start(VALID_JOBNAME, simpleJobProp);
-	}
+    private static long triggerSimpleJob() {
+        return operator.start(VALID_JOBNAME, simpleJobProp);
+    }
 
 }
diff --git a/jbatch/src/test/resources/META-INF/persistence.xml b/jbatch/src/test/resources/META-INF/persistence.xml
index a20845b..7f4b4dc 100644
--- a/jbatch/src/test/resources/META-INF/persistence.xml
+++ b/jbatch/src/test/resources/META-INF/persistence.xml
@@ -28,6 +28,7 @@
     <class>org.apache.batchee.container.services.persistence.jpa.domain.JobInstanceEntity</class>
     <class>org.apache.batchee.container.services.persistence.jpa.domain.StepExecutionEntity</class>
     <exclude-unlisted-classes>true</exclude-unlisted-classes>
+    <validation-mode>NONE</validation-mode>
     <properties>
       <property name="jakarta.persistence.jdbc.driver" value="org.apache.derby.jdbc.EmbeddedDriver" />
       <property name="jakarta.persistence.jdbc.url" value="jdbc:derby:memory:jpabatchee;create=true" />
diff --git a/pom.xml b/pom.xml
index ad0b6df..bc05a7f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -42,7 +42,7 @@
         <!-- for reproducible builds -->
         <project.build.outputTimestamp>10</project.build.outputTimestamp>
 
-        <jaxb.version>2.3.4</jaxb.version>
+        <jaxb.version>3.0.2</jaxb.version>
         <dependency.version.jakarta.batch-api>2.1.1</dependency.version.jakarta.batch-api>
         <dependency.version.jakarta.servlet-api>5.0.0</dependency.version.jakarta.servlet-api>
         <dependency.version.jakarta.persistence-api>3.1.0</dependency.version.jakarta.persistence-api>
@@ -61,11 +61,14 @@
         <johnzon.version>2.0.0-SNAPSHOT</johnzon.version>
         <openjpa.version>3.2.2</openjpa.version>
         <tomee.version>9.0.0</tomee.version>
+        <bval.version>3.0.0-SNAPSHOT</bval.version>
         <xbean.version>4.22</xbean.version>
         <deltaspike.version>2.0.0-SNAPSHOT</deltaspike.version>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
         <batchee.scmPubUrl>https://svn.apache.org/repos/infra/websites/production/geronimo/content/batchee</batchee.scmPubUrl>
         <batchee.scmPubCheckoutDirectory>${basedir}/.site-content</batchee.scmPubCheckoutDirectory>
+
+        <derby.version>10.15.2.0</derby.version>
     </properties>
 
     <ciManagement>
@@ -234,6 +237,12 @@
                 <version>${jodatime.version}</version>
                 <scope>test</scope>
             </dependency>
+            <dependency>
+                <groupId>org.glassfish.jaxb</groupId>
+                <artifactId>jaxb-runtime</artifactId>
+                <version>${jaxb.version}</version>
+            </dependency>
+
 
             <!-- Testing libraries -->
             <dependency> <!-- TCK and default tests -->
@@ -251,7 +260,13 @@
             <dependency>
                 <groupId>org.apache.derby</groupId>
                 <artifactId>derby</artifactId>
-                <version>10.14.2.0</version>
+                <version>${derby.version}</version>
+                <scope>test</scope>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.derby</groupId>
+                <artifactId>derbytools</artifactId>
+                <version>${derby.version}</version>
                 <scope>test</scope>
             </dependency>
         </dependencies>