diff --git a/jpa/eclipselink.jaxrs.test/pom.xml b/jpa/eclipselink.jaxrs.test/pom.xml
index bd77a13..bee1fab 100644
--- a/jpa/eclipselink.jaxrs.test/pom.xml
+++ b/jpa/eclipselink.jaxrs.test/pom.xml
@@ -27,7 +27,7 @@
         <groupId>org.eclipse.persistence</groupId>
         <artifactId>org.eclipse.persistence.test.server.parent</artifactId>
         <version>3.1.0-SNAPSHOT</version>
-        <relativePath>../../pom_test_server.xml</relativePath>
+        <relativePath>../../testing/server/pom.xml</relativePath>
     </parent>
 
     <properties>
diff --git a/jpa/eclipselink.jpa.nosql.test/pom.xml b/jpa/eclipselink.jpa.nosql.test/pom.xml
index 082c45d..e00779b 100644
--- a/jpa/eclipselink.jpa.nosql.test/pom.xml
+++ b/jpa/eclipselink.jpa.nosql.test/pom.xml
@@ -27,7 +27,7 @@
         <groupId>org.eclipse.persistence</groupId>
         <artifactId>org.eclipse.persistence.test.server.parent</artifactId>
         <version>3.1.0-SNAPSHOT</version>
-        <relativePath>../../pom_test_server.xml</relativePath>
+        <relativePath>../../testing/server/pom.xml</relativePath>
     </parent>
 
     <properties>
diff --git a/jpa/eclipselink.jpa.test/pom.xml b/jpa/eclipselink.jpa.test/pom.xml
index d3bc517..d9f90cd 100644
--- a/jpa/eclipselink.jpa.test/pom.xml
+++ b/jpa/eclipselink.jpa.test/pom.xml
@@ -27,7 +27,7 @@
         <groupId>org.eclipse.persistence</groupId>
         <artifactId>org.eclipse.persistence.test.server.parent</artifactId>
         <version>3.1.0-SNAPSHOT</version>
-        <relativePath>../../pom_test_server.xml</relativePath>
+        <relativePath>../../testing/server/pom.xml</relativePath>
     </parent>
 
     <properties>
diff --git a/jpa/eclipselink.jpa.wdf.test/src/it/java/org/eclipse/persistence/testing/tests/wdf/jpa1/entitymanager/TestFind.java b/jpa/eclipselink.jpa.wdf.test/src/it/java/org/eclipse/persistence/testing/tests/wdf/jpa1/entitymanager/TestFind.java
index d15454d..67aba7e 100644
--- a/jpa/eclipselink.jpa.wdf.test/src/it/java/org/eclipse/persistence/testing/tests/wdf/jpa1/entitymanager/TestFind.java
+++ b/jpa/eclipselink.jpa.wdf.test/src/it/java/org/eclipse/persistence/testing/tests/wdf/jpa1/entitymanager/TestFind.java
@@ -92,7 +92,7 @@
     public void testNegativ() {
         final EntityManager em = getEnvironment().getEntityManager();
         try {
-            Object result = em.find(Employee.class, Integer.valueOf(17 + 4));
+            Object result = em.find(Employee.class, Integer.valueOf(17 + 12345));
             verify(result == null, "found something");
         } finally {
             closeEntityManager(em);
diff --git a/jpa/eclipselink.jpars.test/pom.xml b/jpa/eclipselink.jpars.test/pom.xml
index 1b775dc..5f7f72e 100644
--- a/jpa/eclipselink.jpars.test/pom.xml
+++ b/jpa/eclipselink.jpars.test/pom.xml
@@ -27,7 +27,7 @@
         <groupId>org.eclipse.persistence</groupId>
         <artifactId>org.eclipse.persistence.test.server.parent</artifactId>
         <version>3.1.0-SNAPSHOT</version>
-        <relativePath>../../pom_test_server.xml</relativePath>
+        <relativePath>../../testing/server/pom.xml</relativePath>
     </parent>
 
     <properties>
diff --git a/pom.xml b/pom.xml
index 7d9207b..157e45b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -275,6 +275,11 @@
             <!-- our artifacts TODO: this belongs to BOM pom-->
             <dependency>
                 <groupId>org.eclipse.persistence</groupId>
+                <artifactId>org.eclipse.persistence.parent</artifactId>
+                <version>${project.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.eclipse.persistence</groupId>
                 <artifactId>org.eclipse.persistence.asm</artifactId>
                 <version>${eclipselink.asm.version}</version>
             </dependency>
@@ -1811,8 +1816,8 @@
             </activation>
             <modules>
                 <!--Helper parent pom for server side test modules-->
-                <module>pom_test_server.xml</module>
-                <module>pom_oracle_test_server.xml</module>
+                <module>testing/server</module>
+                <module>testing/server-oracle</module>
                 <module>foundation/org.eclipse.persistence.core.test.framework</module>
                 <module>foundation/eclipselink.core.test</module>
                 <module>jpa/org.eclipse.persistence.jpa.test.framework</module>
diff --git a/pom_oracle_test_server.xml b/pom_oracle_test_server.xml
deleted file mode 100644
index 3a4e3f2..0000000
--- a/pom_oracle_test_server.xml
+++ /dev/null
@@ -1,284 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
-    Copyright (c) 2019, 2021 Oracle and/or its affiliates. All rights reserved.
-
-    This program and the accompanying materials are made available under the
-    terms of the Eclipse Public License v. 2.0 which is available at
-    http://www.eclipse.org/legal/epl-2.0,
-    or the Eclipse Distribution License v. 1.0 which is available at
-    http://www.eclipse.org/org/documents/edl-v10.php.
-
-    SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause
-
--->
-
-<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
-         xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
-    <modelVersion>4.0.0</modelVersion>
-
-    <name>EclipseLink Test Server Parent</name>
-    <groupId>org.eclipse.persistence</groupId>
-    <artifactId>org.eclipse.persistence.oracle.test.server.parent</artifactId>
-    <packaging>pom</packaging>
-
-    <parent>
-        <groupId>org.eclipse.persistence</groupId>
-        <artifactId>org.eclipse.persistence.parent</artifactId>
-        <version>3.1.0-SNAPSHOT</version>
-        <relativePath>pom.xml</relativePath>
-    </parent>
-
-    <build>
-        <plugins>
-            <!--Download and unpack JEE server automatically if property skip.jee.server.installation=false-->
-            <plugin>
-                <groupId>com.googlecode.maven-download-plugin</groupId>
-                <artifactId>download-maven-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <id>install-jee-server</id>
-                        <phase>initialize</phase>
-                        <goals>
-                            <goal>wget</goal>
-                        </goals>
-                        <configuration>
-                            <skip>${skip.jee.server.installation}</skip>
-                            <url>${installation.url}</url>
-                            <unpack>true</unpack>
-                            <outputDirectory>${test.directory}</outputDirectory>
-                            <md5>${installation.checksum.md5}</md5>
-                        </configuration>
-                    </execution>
-                </executions>
-            </plugin>
-            <!--Skip WildFly configuration if server binaries are not available.-->
-            <plugin>
-                <groupId>org.codehaus.gmaven</groupId>
-                <artifactId>groovy-maven-plugin</artifactId>
-                <configuration>
-                    <source>
-                        <![CDATA[
-                        project.properties.setProperty("skip.wildfly.configuration", "true")
-                        if (properties["cargo.container.installation.home"] == null) {
-                            return
-                        }
-                        def wildFlyHomeDir = new File(properties["cargo.container.installation.home"])
-                        log.info "WildFlyHomeDir exists:" + wildFlyHomeDir.exists()
-                        if (wildFlyHomeDir.exists() && properties["server.name"] == "jboss") {
-                            project.properties.setProperty("skip.wildfly.configuration", "false")
-                        }
-                        log.info "Skip WildFly configuration: " + project.properties.getProperty("skip.wildfly.configuration")
-                        ]]>
-                    </source>
-                </configuration>
-            </plugin>
-            <!--Set current EclipseLink JARs into JBoss/WildFly org.eclipse.persistence system module-->
-            <plugin>
-                <groupId>org.codehaus.mojo</groupId>
-                <artifactId>xml-maven-plugin</artifactId>
-                <configuration>
-                    <skip>${skip.wildfly.configuration}</skip>
-                    <transformationSets>
-                        <transformationSet>
-                            <dir>${cargo.container.installation.home}/modules/system/layers/base/org/eclipse/persistence/main</dir>
-                            <includes>
-                                <include>module.xml</include>
-                            </includes>
-                            <stylesheet>${project.build.testOutputDirectory}/wildfly/eclipselink-wildfly-module.xsl</stylesheet>
-                            <outputDir>${cargo.container.installation.home}/modules/system/layers/base/org/eclipse/persistence/main</outputDir>
-                        </transformationSet>
-                    </transformationSets>
-                </configuration>
-            </plugin>
-            <!--Copy current EclipseLink JARs into GlassFish modules directory-->
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-dependency-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <id>configure-glassfish-modules</id>
-                        <phase>pre-integration-test</phase>
-                        <goals>
-                            <goal>copy</goal>
-                        </goals>
-                        <configuration>
-                            <skip>${skip.glassfish.configuration}</skip>
-                            <artifactItems>
-                                <artifactItem>
-                                    <groupId>org.eclipse.persistence</groupId>
-                                    <artifactId>org.eclipse.persistence.asm</artifactId>
-                                    <version>${project.version}</version>
-                                    <destFileName>org.eclipse.persistence.asm_DEV.jar</destFileName>
-                                </artifactItem>
-                                <artifactItem>
-                                    <groupId>org.eclipse.persistence</groupId>
-                                    <artifactId>org.eclipse.persistence.core</artifactId>
-                                    <version>${project.version}</version>
-                                    <destFileName>org.eclipse.persistence.core_DEV.jar</destFileName>
-                                </artifactItem>
-                                <artifactItem>
-                                    <groupId>org.eclipse.persistence</groupId>
-                                    <artifactId>org.eclipse.persistence.dbws</artifactId>
-                                    <destFileName>org.eclipse.persistence.dbws_DEV.jar</destFileName>
-                                    <version>${project.version}</version>
-                                </artifactItem>
-                                <artifactItem>
-                                    <groupId>org.eclipse.persistence</groupId>
-                                    <artifactId>org.eclipse.persistence.jpa</artifactId>
-                                    <destFileName>org.eclipse.persistence.jpa_DEV.jar</destFileName>
-                                    <version>${project.version}</version>
-                                </artifactItem>
-                                <artifactItem>
-                                    <groupId>org.eclipse.persistence</groupId>
-                                    <artifactId>org.eclipse.persistence.jpa.jpql</artifactId>
-                                    <version>${project.version}</version>
-                                    <destFileName>org.eclipse.persistence.jpa.jpql_DEV.jar</destFileName>
-                                </artifactItem>
-                                <artifactItem>
-                                    <groupId>org.eclipse.persistence</groupId>
-                                    <artifactId>org.eclipse.persistence.jpa.modelgen.processor</artifactId>
-                                    <version>${project.version}</version>
-                                    <destFileName>org.eclipse.persistence.jpa.modelgen.processor_DEV.jar</destFileName>
-                                </artifactItem>
-                                <artifactItem>
-                                    <groupId>org.eclipse.persistence</groupId>
-                                    <artifactId>org.eclipse.persistence.moxy</artifactId>
-                                    <version>${project.version}</version>
-                                    <destFileName>org.eclipse.persistence.moxy_DEV.jar</destFileName>
-                                </artifactItem>
-                                <artifactItem>
-                                    <groupId>org.eclipse.persistence</groupId>
-                                    <artifactId>org.eclipse.persistence.nosql</artifactId>
-                                    <version>${project.version}</version>
-                                    <destFileName>org.eclipse.persistence.nosql_DEV.jar</destFileName>
-                                </artifactItem>
-                                <artifactItem>
-                                    <groupId>org.eclipse.persistence</groupId>
-                                    <artifactId>org.eclipse.persistence.oracle</artifactId>
-                                    <version>${project.version}</version>
-                                    <destFileName>org.eclipse.persistence.oracle_DEV.jar</destFileName>
-                                </artifactItem>
-                                <artifactItem>
-                                    <groupId>org.eclipse.persistence</groupId>
-                                    <artifactId>org.eclipse.persistence.sdo</artifactId>
-                                    <version>${project.version}</version>
-                                    <destFileName>org.eclipse.persistence.sdo_DEV.jar</destFileName>
-                                </artifactItem>
-                            </artifactItems>
-                            <outputDirectory>${cargo.container.installation.home}/glassfish/modules</outputDirectory>
-                            <overWriteReleases>true</overWriteReleases>
-                            <overWriteSnapshots>true</overWriteSnapshots>
-                        </configuration>
-                    </execution>
-                </executions>
-            </plugin>
-            <plugin>
-                <groupId>org.codehaus.cargo</groupId>
-                <artifactId>cargo-maven2-plugin</artifactId>
-                <configuration>
-                    <container>
-                        <dependencies>
-                            <dependency>
-                                <groupId>${db.driver.groupId}</groupId>
-                                <artifactId>${db.driver.artifactId}</artifactId>
-                            </dependency>
-                            <dependency>
-                                <groupId>org.eclipse.persistence</groupId>
-                                <artifactId>org.eclipse.persistence.asm</artifactId>
-                            </dependency>
-                            <dependency>
-                                <groupId>org.eclipse.persistence</groupId>
-                                <artifactId>org.eclipse.persistence.jpa.jpql</artifactId>
-                            </dependency>
-                            <dependency>
-                                <groupId>org.eclipse.persistence</groupId>
-                                <artifactId>org.eclipse.persistence.core</artifactId>
-                            </dependency>
-                            <dependency>
-                                <groupId>org.eclipse.persistence</groupId>
-                                <artifactId>org.eclipse.persistence.jpa</artifactId>
-                            </dependency>
-                            <dependency>
-                                <groupId>org.eclipse.persistence</groupId>
-                                <artifactId>org.eclipse.persistence.moxy</artifactId>
-                            </dependency>
-                        </dependencies>
-                        <!--<append>false</append>-->
-                        <containerId>${server.containerId}</containerId>
-                        <home>${cargo.container.installation.home}</home>
-                        <log>${project.build.directory}/logs/${server.containerId}.log</log>
-                        <output>${project.build.directory}/logs/${server.containerId}.out</output>
-                        <systemProperties>
-                            <!--Required due troubles with Docker-->
-                            <java.net.preferIPv4Stack>true</java.net.preferIPv4Stack>
-                        </systemProperties>
-                        <timeout>1800000</timeout>
-                    </container>
-                    <configuration>
-                        <!--<type>standalone</type>-->
-                        <properties>
-                            <cargo.servlet.port>${server.http.port}</cargo.servlet.port>
-                            <!--<cargo.jboss.configuration>default</cargo.jboss.configuration>-->
-                            <cargo.rmi.port>${server.rmi.port}</cargo.rmi.port>
-                            <cargo.logging>high</cargo.logging>
-                            <cargo.datasource.datasource1>
-                                cargo.datasource.driver=${db.xa.driver}|
-                                cargo.datasource.url=${db.url}|
-                                cargo.datasource.jndi=${data-source-name}|
-                                cargo.datasource.username=${db.user}|
-                                cargo.datasource.password=${db.pwd}|
-                                cargo.datasource.type=${datasource.type}|
-                                cargo.datasource.transactionsupport=${datasource.transactionsupport}|
-                                cargo.datasource.properties=${db.properties}
-                            </cargo.datasource.datasource1>
-                            <cargo.datasource.datasource2>
-                                cargo.datasource.driver=${db.xa.driver}|
-                                cargo.datasource.url=${db.url}|
-                                cargo.datasource.jndi=${data-source-name}2|
-                                cargo.datasource.username=${db.user}|
-                                cargo.datasource.password=${db.pwd}|
-                                cargo.datasource.type=${datasource.type}|
-                                cargo.datasource.transactionsupport=${datasource.transactionsupport}|
-                                cargo.datasource.properties=${db.properties}
-                            </cargo.datasource.datasource2>
-                            <cargo.datasource.datasource3>
-                                cargo.datasource.driver=${db.xa.driver}|
-                                cargo.datasource.url=${db.url}|
-                                cargo.datasource.jndi=${data-source-name}3|
-                                cargo.datasource.username=${db.user}|
-                                cargo.datasource.password=${db.pwd}|
-                                cargo.datasource.type=${datasource.type}|
-                                cargo.datasource.transactionsupport=${datasource.transactionsupport}|
-                                cargo.datasource.properties=${db.properties}
-                            </cargo.datasource.datasource3>
-                            <cargo.datasource.datasource4>
-                                cargo.datasource.driver=${db.driver}|
-                                cargo.datasource.url=${db.url}|
-                                cargo.datasource.jndi=${data-source-name-non-jta}|
-                                cargo.datasource.username=${db.user}|
-                                cargo.datasource.password=${db.pwd}
-                            </cargo.datasource.datasource4>
-                            <cargo.datasource.datasource5>
-                                cargo.datasource.driver=${db.driver}|
-                                cargo.datasource.url=${db.url}|
-                                cargo.datasource.jndi=${data-source-name-non-jta}2|
-                                cargo.datasource.username=${db.user}|
-                                cargo.datasource.password=${db.pwd}
-                            </cargo.datasource.datasource5>
-                            <cargo.datasource.datasource6>
-                                cargo.datasource.driver=${db.driver}|
-                                cargo.datasource.url=${db.url}|
-                                cargo.datasource.jndi=${data-source-name-non-jta}3|
-                                cargo.datasource.username=${db.user}|
-                                cargo.datasource.password=${db.pwd}
-                            </cargo.datasource.datasource6>
-                        </properties>
-                    </configuration>
-                    <!--<wait>false</wait>-->
-                </configuration>
-            </plugin>
-        </plugins>
-    </build>
-</project>
diff --git a/sdo/eclipselink.sdo.test.server/pom.xml b/sdo/eclipselink.sdo.test.server/pom.xml
index 2eca0af..f523689 100644
--- a/sdo/eclipselink.sdo.test.server/pom.xml
+++ b/sdo/eclipselink.sdo.test.server/pom.xml
@@ -27,7 +27,7 @@
         <groupId>org.eclipse.persistence</groupId>
         <artifactId>org.eclipse.persistence.test.server.parent</artifactId>
         <version>3.1.0-SNAPSHOT</version>
-        <relativePath>../../pom_test_server.xml</relativePath>
+        <relativePath>../../testing/server/pom.xml</relativePath>
     </parent>
 
     <properties>
diff --git a/pom_test_server.xml b/testing/server-oracle/pom.xml
similarity index 98%
copy from pom_test_server.xml
copy to testing/server-oracle/pom.xml
index 9d01d47..e1052e1 100644
--- a/pom_test_server.xml
+++ b/testing/server-oracle/pom.xml
@@ -20,14 +20,14 @@
 
     <name>EclipseLink Test Server Parent</name>
     <groupId>org.eclipse.persistence</groupId>
-    <artifactId>org.eclipse.persistence.test.server.parent</artifactId>
+    <artifactId>org.eclipse.persistence.oracle.test.server.parent</artifactId>
     <packaging>pom</packaging>
 
     <parent>
-        <artifactId>org.eclipse.persistence.parent</artifactId>
         <groupId>org.eclipse.persistence</groupId>
+        <artifactId>org.eclipse.persistence.parent</artifactId>
         <version>3.1.0-SNAPSHOT</version>
-        <relativePath>pom.xml</relativePath>
+        <relativePath>../../pom.xml</relativePath>
     </parent>
 
     <build>
diff --git a/pom_test_server.xml b/testing/server/pom.xml
similarity index 98%
rename from pom_test_server.xml
rename to testing/server/pom.xml
index 9d01d47..5a1d42d 100644
--- a/pom_test_server.xml
+++ b/testing/server/pom.xml
@@ -27,7 +27,7 @@
         <artifactId>org.eclipse.persistence.parent</artifactId>
         <groupId>org.eclipse.persistence</groupId>
         <version>3.1.0-SNAPSHOT</version>
-        <relativePath>pom.xml</relativePath>
+        <relativePath>../../pom.xml</relativePath>
     </parent>
 
     <build>
diff --git a/utils/eclipselink.dbws.builder.test.oracle.server/pom.xml b/utils/eclipselink.dbws.builder.test.oracle.server/pom.xml
index 91f6738..f1d6a50 100644
--- a/utils/eclipselink.dbws.builder.test.oracle.server/pom.xml
+++ b/utils/eclipselink.dbws.builder.test.oracle.server/pom.xml
@@ -27,7 +27,7 @@
         <groupId>org.eclipse.persistence</groupId>
         <artifactId>org.eclipse.persistence.oracle.test.server.parent</artifactId>
         <version>3.1.0-SNAPSHOT</version>
-        <relativePath>../../pom_oracle_test_server.xml</relativePath>
+        <relativePath>../../testing/server-oracle/pom.xml</relativePath>
     </parent>
 
     <properties>
