Added test.common project with embedded derby testing defaults
diff --git a/.gitignore b/.gitignore
index eb5a316..b3ecb72 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1,2 @@
 target
+derby.log
diff --git a/admin.services/eclipse-runconfigs/TestCreateOrmXml.launch b/admin.services/eclipse-runconfigs/TestCreateOrmXml.launch
new file mode 100644
index 0000000..2910eec
--- /dev/null
+++ b/admin.services/eclipse-runconfigs/TestCreateOrmXml.launch
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.jdt.junit.launchconfig">
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
+<listEntry value="/admin.services/src/test/java/eclipselink/example/mysports/admin/services/test/extensions/TestCreateOrmXml.java"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
+<listEntry value="1"/>
+</listAttribute>
+<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value=""/>
+<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
+<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
+<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit4"/>
+<stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="org.eclipse.m2e.launchconfig.classpathProvider"/>
+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="eclipselink.example.mysports.admin.services.test.extensions.TestCreateOrmXml"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="admin.services"/>
+<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.m2e.launchconfig.sourcepathProvider"/>
+<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-javaagent:${system_property:user.home}/.m2/repository/eclipselink/example/mysports/persistence/0.0.1-SNAPSHOT/persistence-0.0.1-SNAPSHOT.jar"/>
+</launchConfiguration>
diff --git a/admin.services/eclipse-runconfigs/TestCreateStyles.launch b/admin.services/eclipse-runconfigs/TestCreateStyles.launch
new file mode 100644
index 0000000..faf2b52
--- /dev/null
+++ b/admin.services/eclipse-runconfigs/TestCreateStyles.launch
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.jdt.junit.launchconfig">
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
+<listEntry value="/admin.services/src/test/java/eclipselink/example/mysports/admin/services/test/style/TestCreateStyles.java"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
+<listEntry value="1"/>
+</listAttribute>
+<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value=""/>
+<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
+<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
+<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit4"/>
+<stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="org.eclipse.m2e.launchconfig.classpathProvider"/>
+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="eclipselink.example.mysports.admin.services.test.style.TestCreateStyles"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="admin.services"/>
+<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.m2e.launchconfig.sourcepathProvider"/>
+<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-javaagent:${system_property:user.home}/.m2/repository/eclipselink/example/mysports/persistence/0.0.1-SNAPSHOT/persistence-0.0.1-SNAPSHOT.jar"/>
+</launchConfiguration>
diff --git a/admin.services/pom.xml b/admin.services/pom.xml
index 1d9f636..511ebed 100644
--- a/admin.services/pom.xml
+++ b/admin.services/pom.xml
@@ -5,7 +5,7 @@
 	<artifactId>admin.services</artifactId>
 	<packaging>jar</packaging>
 	<name>MySports Admin Services</name>
-	
+
 	<parent>
 		<groupId>eclipselink.example.mysports</groupId>
 		<artifactId>example</artifactId>
@@ -56,6 +56,20 @@
 			<scope>test</scope>
 		</dependency>
 
+		<dependency>
+			<groupId>${project.groupId}</groupId>
+			<artifactId>test.common</artifactId>
+			<version>${project.version}</version>
+			<scope>test</scope>
+		</dependency>
+
+
+		<dependency>
+			<groupId>org.apache.derby</groupId>
+			<artifactId>derby</artifactId>
+			<version>10.9.1.0</version>
+			<scope>test</scope>
+		</dependency>
 	</dependencies>
 
 	<build>
@@ -63,11 +77,22 @@
 			<plugin>
 				<groupId>org.apache.maven.plugins</groupId>
 				<artifactId>maven-compiler-plugin</artifactId>
+				<version>3.0</version>
 				<configuration>
 					<source>1.6</source>
 					<target>1.6</target>
 				</configuration>
 			</plugin>
+
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-surefire-plugin</artifactId>
+				<version>2.12.4</version>
+				<configuration>
+					<argLine>-javaagent:${user.home}\\.m2\\repository\\eclipselink\\example\\mysports\\persistence\\${project.version}\\persistence-${project.version}.jar</argLine>
+				</configuration>
+			</plugin>
+
 		</plugins>
 	</build>
 
diff --git a/admin.services/src/main/resources/META-INF/persistence.xml b/admin.services/src/main/resources/META-INF/persistence.xml
index a4f2b34..80000a9 100644
--- a/admin.services/src/main/resources/META-INF/persistence.xml
+++ b/admin.services/src/main/resources/META-INF/persistence.xml
@@ -11,14 +11,6 @@
     <class>eclipselink.example.mysports.admin.model.HostEnvironment</class>
     <validation-mode>NONE</validation-mode>
     <properties>
-      <property name="eclipselink.logging.timestamp" value="false"/>
-      <property name="eclipselink.logging.thread" value="false"/>
-      <property name="eclipselink.logging.exceptions" value="false"/>
-      <property name="eclipselink.logging.connection" value="false"/>
-      <property name="eclipselink.logging.level.ejb_or_metadata" value="WARNING"/>
-      <property name="eclipselink.logging.level" value="FINE"/>
-      <property name="eclipselink.logging.parameters" value="true"/>
-      <property name="eclipselink.logging.logger" value="DefaultLogger"/>
       <property name="eclipselink.weaving" value="true"/>
     </properties>
   </persistence-unit>
diff --git a/admin.services/src/test/java/eclipselink/example/mysports/admin/services/AppTest.java b/admin.services/src/test/java/eclipselink/example/mysports/admin/services/AppTest.java
deleted file mode 100644
index d2b7092..0000000
--- a/admin.services/src/test/java/eclipselink/example/mysports/admin/services/AppTest.java
+++ /dev/null
@@ -1,38 +0,0 @@
-package eclipselink.example.mysports.admin.services;
-
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-
-/**
- * Unit test for simple App.
- */
-public class AppTest 
-    extends TestCase
-{
-    /**
-     * Create the test case
-     *
-     * @param testName name of the test case
-     */
-    public AppTest( String testName )
-    {
-        super( testName );
-    }
-
-    /**
-     * @return the suite of tests being tested
-     */
-    public static Test suite()
-    {
-        return new TestSuite( AppTest.class );
-    }
-
-    /**
-     * Rigourous Test :-)
-     */
-    public void testApp()
-    {
-        assertTrue( true );
-    }
-}
diff --git a/admin.services/src/test/java/eclipselink/example/mysports/admin/test/CreateHostEnvironments.java b/admin.services/src/test/java/eclipselink/example/mysports/admin/services/test/CreateHostEnvironments.java
similarity index 97%
rename from admin.services/src/test/java/eclipselink/example/mysports/admin/test/CreateHostEnvironments.java
rename to admin.services/src/test/java/eclipselink/example/mysports/admin/services/test/CreateHostEnvironments.java
index f2d5838..dd0a05c 100644
--- a/admin.services/src/test/java/eclipselink/example/mysports/admin/test/CreateHostEnvironments.java
+++ b/admin.services/src/test/java/eclipselink/example/mysports/admin/services/test/CreateHostEnvironments.java
@@ -10,7 +10,7 @@
  * Contributors:
  *  dclarke - EclipseLink 2.3 - MySports Demo Bug 344608
  ******************************************************************************/
-package eclipselink.example.mysports.admin.test;
+package eclipselink.example.mysports.admin.services.test;
 
 import javax.persistence.EntityManager;
 import javax.persistence.EntityManagerFactory;
diff --git a/admin.services/src/test/java/eclipselink/example/mysports/admin/test/CreateLeagues.java b/admin.services/src/test/java/eclipselink/example/mysports/admin/services/test/CreateLeagues.java
similarity index 98%
rename from admin.services/src/test/java/eclipselink/example/mysports/admin/test/CreateLeagues.java
rename to admin.services/src/test/java/eclipselink/example/mysports/admin/services/test/CreateLeagues.java
index 64b3806..68d5d70 100644
--- a/admin.services/src/test/java/eclipselink/example/mysports/admin/test/CreateLeagues.java
+++ b/admin.services/src/test/java/eclipselink/example/mysports/admin/services/test/CreateLeagues.java
@@ -10,7 +10,7 @@
  * Contributors:
  *  dclarke - EclipseLink 2.3 - MySports Demo Bug 344608
  ******************************************************************************/
-package eclipselink.example.mysports.admin.test;
+package eclipselink.example.mysports.admin.services.test;
 
 import javax.persistence.EntityManager;
 import javax.persistence.EntityManagerFactory;
diff --git a/admin.services/src/test/java/eclipselink/example/mysports/admin/test/PersistenceTesting.java b/admin.services/src/test/java/eclipselink/example/mysports/admin/services/test/PersistenceTesting.java
similarity index 75%
rename from admin.services/src/test/java/eclipselink/example/mysports/admin/test/PersistenceTesting.java
rename to admin.services/src/test/java/eclipselink/example/mysports/admin/services/test/PersistenceTesting.java
index 5f8c37a..63bcc59 100644
--- a/admin.services/src/test/java/eclipselink/example/mysports/admin/test/PersistenceTesting.java
+++ b/admin.services/src/test/java/eclipselink/example/mysports/admin/services/test/PersistenceTesting.java
@@ -10,7 +10,7 @@
  * Contributors:
  *  dclarke - EclipseLink 2.4 - MySports Demo Bug 344608
  ******************************************************************************/
-package eclipselink.example.mysports.admin.test;
+package eclipselink.example.mysports.admin.services.test;
 
 import static org.eclipse.persistence.config.PersistenceUnitProperties.CONNECTION_POOL;
 import static org.eclipse.persistence.config.PersistenceUnitProperties.CONNECTION_POOL_INITIAL;
@@ -22,9 +22,13 @@
 import java.util.HashMap;
 import java.util.Map;
 
+import org.eclipse.persistence.config.PersistenceUnitProperties;
+
+import eclipselink.example.mysports.test.common.ExamplePropertiesLoader;
+
 public class PersistenceTesting {
 
-    public static Map<String, Object> add(Map<String, Object> properties) {
+    public static Map<String, Object> add(Map<String, Object> properties, boolean replaceTables) {
         Map<String, Object> props = properties;
 
         if (props == null) {
@@ -37,13 +41,21 @@
         props.put(CONNECTION_POOL_READ + CONNECTION_POOL_MIN, "1");
         props.put(CONNECTION_POOL + CONNECTION_POOL_INITIAL, "1");
         props.put(CONNECTION_POOL + CONNECTION_POOL_MIN, "1");
+        
+        if (replaceTables) {
+            props.put(PersistenceUnitProperties.DDL_GENERATION, PersistenceUnitProperties.DROP_AND_CREATE);
+            props.put(PersistenceUnitProperties.DDL_GENERATION_MODE, PersistenceUnitProperties.DDL_DATABASE_GENERATION);
+        }
 
         ExamplePropertiesLoader.loadProperties(props);
         return props;
     }
 
-    public static Map<String, Object> get() {
-        return add(null);
+    public static Map<String, Object> get(boolean replaceTables) {
+        return add(null, replaceTables);
     }
 
+    public static Map<String, Object> get() {
+        return add(null, false);
+    }
 }
diff --git a/admin.services/src/test/java/eclipselink/example/mysports/admin/test/CreateDatabase.java b/admin.services/src/test/java/eclipselink/example/mysports/admin/services/test/TestCreateDatabase.java
similarity index 97%
rename from admin.services/src/test/java/eclipselink/example/mysports/admin/test/CreateDatabase.java
rename to admin.services/src/test/java/eclipselink/example/mysports/admin/services/test/TestCreateDatabase.java
index 44151ac..b718618 100644
--- a/admin.services/src/test/java/eclipselink/example/mysports/admin/test/CreateDatabase.java
+++ b/admin.services/src/test/java/eclipselink/example/mysports/admin/services/test/TestCreateDatabase.java
@@ -10,7 +10,7 @@
  * Contributors:
  *  dclarke - EclipseLink 2.3 - MySports Demo Bug 344608
  ******************************************************************************/
-package eclipselink.example.mysports.admin.test;
+package eclipselink.example.mysports.admin.services.test;
 
 import java.util.Map;
 
@@ -34,7 +34,7 @@
  * @author dclarke
  * @since EclipseLink 2.3.0
  */
-public class CreateDatabase {
+public class TestCreateDatabase {
 
     /**
      * Using EclipseLink's schema generation when the
diff --git a/admin.services/src/test/java/eclipselink/example/mysports/admin/test/VerifyModelAndMappings.java b/admin.services/src/test/java/eclipselink/example/mysports/admin/services/test/VerifyModelAndMappings.java
similarity index 97%
rename from admin.services/src/test/java/eclipselink/example/mysports/admin/test/VerifyModelAndMappings.java
rename to admin.services/src/test/java/eclipselink/example/mysports/admin/services/test/VerifyModelAndMappings.java
index 38fa33a..6b13ca9 100644
--- a/admin.services/src/test/java/eclipselink/example/mysports/admin/test/VerifyModelAndMappings.java
+++ b/admin.services/src/test/java/eclipselink/example/mysports/admin/services/test/VerifyModelAndMappings.java
@@ -10,7 +10,7 @@
  * Contributors:
  *  dclarke - EclipseLink 2.3 - MySports Demo Bug 344608
  ******************************************************************************/
-package eclipselink.example.mysports.admin.test;
+package eclipselink.example.mysports.admin.services.test;
 
 import javax.persistence.EntityManagerFactory;
 import javax.persistence.Persistence;
diff --git a/admin.services/src/test/java/eclipselink/example/mysports/admin/test/extensions/CreateOrmXML.java b/admin.services/src/test/java/eclipselink/example/mysports/admin/services/test/extensions/TestCreateOrmXml.java
similarity index 69%
rename from admin.services/src/test/java/eclipselink/example/mysports/admin/test/extensions/CreateOrmXML.java
rename to admin.services/src/test/java/eclipselink/example/mysports/admin/services/test/extensions/TestCreateOrmXml.java
index 282504e..d82785b 100644
--- a/admin.services/src/test/java/eclipselink/example/mysports/admin/test/extensions/CreateOrmXML.java
+++ b/admin.services/src/test/java/eclipselink/example/mysports/admin/services/test/extensions/TestCreateOrmXml.java
@@ -10,7 +10,7 @@
  * Contributors:
  *  dclarke - EclipseLink 2.3 - MySports Demo Bug 344608
  ******************************************************************************/
-package eclipselink.example.mysports.admin.test.extensions;
+package eclipselink.example.mysports.admin.services.test.extensions;
 
 import javax.persistence.EntityManager;
 import javax.persistence.EntityManagerFactory;
@@ -18,12 +18,17 @@
 
 import org.eclipse.persistence.internal.jpa.metadata.xml.XMLEntityMappings;
 import org.eclipse.persistence.internal.jpa.metadata.xml.XMLEntityMappingsWriter;
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
 import org.junit.Test;
 
 import eclipselink.example.mysports.admin.services.MappingsLoader;
-import eclipselink.example.mysports.admin.test.PersistenceTesting;
+import eclipselink.example.mysports.admin.services.test.PersistenceTesting;
+import eclipselink.example.mysports.admin.services.test.league.ExampleLeagues;
 
-public class CreateOrmXML {
+public class TestCreateOrmXml {
+
+    private static EntityManagerFactory emf;
 
     @Test
     public void createEmpty() {
@@ -35,7 +40,6 @@
 
     @Test
     public void createFromDB() {
-        EntityManagerFactory emf = Persistence.createEntityManagerFactory("MySportsAdmin", PersistenceTesting.get());
         EntityManager em = emf.createEntityManager();
 
         try {
@@ -50,4 +54,17 @@
         }
     }
 
+    @BeforeClass
+    public static void createEMF() {
+        emf = Persistence.createEntityManagerFactory("MySportsAdmin", PersistenceTesting.get(true));
+        
+        new ExampleLeagues().populate(emf);
+    }
+    
+    @AfterClass
+    public static void closeEMF() {
+        if (emf != null && emf.isOpen()) {
+            emf.close();
+        }
+    }
 }
diff --git a/admin.services/src/test/java/eclipselink/example/mysports/admin/services/test/league/ExampleLeagues.java b/admin.services/src/test/java/eclipselink/example/mysports/admin/services/test/league/ExampleLeagues.java
new file mode 100644
index 0000000..5fb31d3
--- /dev/null
+++ b/admin.services/src/test/java/eclipselink/example/mysports/admin/services/test/league/ExampleLeagues.java
@@ -0,0 +1,104 @@
+/*******************************************************************************
+ * Copyright (c) 2010-2012 Oracle. All rights reserved.
+ * This program and the accompanying materials are made available under the 
+ * terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0 
+ * which accompanies this distribution. 
+ * The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html
+ * and the Eclipse Distribution License is available at 
+ * http://www.eclipse.org/org/documents/edl-v10.php.
+ *
+ * Contributors:
+ *  dclarke - EclipseLink 2.3 - MySports Demo Bug 344608
+ ******************************************************************************/
+package eclipselink.example.mysports.admin.services.test.league;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.persistence.EntityManager;
+import javax.persistence.EntityManagerFactory;
+
+import eclipselink.example.mysports.admin.model.DataIsolation;
+import eclipselink.example.mysports.admin.model.HostedLeague;
+
+/**
+ * Test fixture that will populate the
+ * 
+ * @author dclarke
+ * @since EclipseLink 2.4.2
+ */
+public class ExampleLeagues {
+
+    private Map<String, HostedLeague> leagues = new HashMap<String, HostedLeague>();
+
+    public ExampleLeagues() {
+
+        HostedLeague osl = new HostedLeague("OSL", "Ottawa Soccer League", "black");
+        osl.setLogoUrl("/logos/osl.png");
+        osl.setDatasourceName("jdbc/MySportsMHL");
+
+        osl.addPlayerExtension("allergies", "java.lang.String", "flex_1");
+
+        this.leagues.put(osl.getId(), osl);
+
+        HostedLeague hthl = new HostedLeague("HTHL", "High Tech Hockey League", "red");
+        hthl.setLogoUrl("/logos/hthl.png");
+        hthl.setDatasourceName("jdbc/MySports");
+
+        hthl.addPlayerExtension("penaltyMinutes", "java.lang.Integer", "flex_1");
+        hthl.addPlayerExtension("position", "java.lang.String", "flex_2");
+
+        this.leagues.put(hthl.getId(), hthl);
+
+        HostedLeague kfl = new HostedLeague("KFL", "Kid's Football League", "green");
+        kfl.setLogoUrl("/logos/kfl.png");
+        kfl.setDatasourceName("jdbc/MySports");
+        kfl.setDataIsolation(DataIsolation.TABLE);
+
+        kfl.addPlayerExtension("position", "java.lang.String", "flex_1");
+
+        this.leagues.put(kfl.getId(), kfl);
+
+        HostedLeague mhl = new HostedLeague("MHL", "Minor Hockey League", "red");
+        mhl.setShared(false);
+        mhl.setDataIsolation(DataIsolation.DATABASE);
+        mhl.setLogoUrl("/logos/hthl.png");
+        mhl.setDatasourceName("jdbc/MySports");
+
+        mhl.addPlayerExtension("position", "java.lang.String", "flex_1");
+
+        this.leagues.put(mhl.getId(), mhl);
+    }
+    
+    public void populate(EntityManagerFactory emf) {
+        EntityManager em = emf.createEntityManager();
+        
+        try {
+            em.getTransaction().begin();
+            
+            for (HostedLeague hl: this.leagues.values()) {
+                em.persist(hl);
+            }
+            
+            em.getTransaction().commit();
+        } finally {
+            em.close();
+        }
+    }
+
+    public void clearDatabase(EntityManagerFactory emf) {
+        EntityManager em = emf.createEntityManager();
+
+        try {
+            em.getTransaction().begin();
+            em.createNativeQuery("DELETE FROM mys_admin_player_ext").executeUpdate();
+            em.createNativeQuery("DELETE FROM mys_admin_team_ext").executeUpdate();
+            em.createNativeQuery("DELETE FROM mys_admin_div_ext").executeUpdate();
+            em.createQuery("DELETE FROM HostedLeague").executeUpdate();
+            em.getTransaction().commit();
+        } finally {
+            em.close();
+        }
+    }
+
+}
diff --git a/admin.services/src/test/java/eclipselink/example/mysports/admin/test/league/DynamicJAXBTests.java b/admin.services/src/test/java/eclipselink/example/mysports/admin/services/test/league/TestDynamicJAXB.java
similarity index 95%
rename from admin.services/src/test/java/eclipselink/example/mysports/admin/test/league/DynamicJAXBTests.java
rename to admin.services/src/test/java/eclipselink/example/mysports/admin/services/test/league/TestDynamicJAXB.java
index 143cc6f..70f7c21 100644
--- a/admin.services/src/test/java/eclipselink/example/mysports/admin/test/league/DynamicJAXBTests.java
+++ b/admin.services/src/test/java/eclipselink/example/mysports/admin/services/test/league/TestDynamicJAXB.java
@@ -10,7 +10,7 @@
  * Contributors:
  *  dclarke - EclipseLink 2.3 - MySports Demo Bug 344608
  ******************************************************************************/
-package eclipselink.example.mysports.admin.test.league;
+package eclipselink.example.mysports.admin.services.test.league;
 
 import java.io.IOException;
 import java.io.InputStream;
@@ -31,7 +31,7 @@
  * @author dclarke
  * @since EclipseLink 2.3.0
  */
-public class DynamicJAXBTests {
+public class TestDynamicJAXB {
 
     @Test
     public void verifyContext() throws Exception {
diff --git a/admin.services/src/test/java/eclipselink/example/mysports/admin/test/services/glassfish/BaseJsonRestTest.java b/admin.services/src/test/java/eclipselink/example/mysports/admin/services/test/services/glassfish/TestBaseJsonRest.java
similarity index 95%
rename from admin.services/src/test/java/eclipselink/example/mysports/admin/test/services/glassfish/BaseJsonRestTest.java
rename to admin.services/src/test/java/eclipselink/example/mysports/admin/services/test/services/glassfish/TestBaseJsonRest.java
index 01f4e81..5925db2 100644
--- a/admin.services/src/test/java/eclipselink/example/mysports/admin/test/services/glassfish/BaseJsonRestTest.java
+++ b/admin.services/src/test/java/eclipselink/example/mysports/admin/services/test/services/glassfish/TestBaseJsonRest.java
@@ -10,7 +10,7 @@
  * Contributors:
  *  dclarke - EclipseLink 2.4 - MySports Demo Bug 344608
  ******************************************************************************/
-package eclipselink.example.mysports.admin.test.services.glassfish;
+package eclipselink.example.mysports.admin.services.test.services.glassfish;
 
 import java.io.FileInputStream;
 import java.io.FileNotFoundException;
@@ -39,7 +39,7 @@
  * @author dclarke
  * @since EclipseLink 2.4
  */
-public abstract class BaseJsonRestTest {
+public abstract class TestBaseJsonRest {
 
     protected Unmarshaller createJsonUnmarshaller() throws JAXBException {
         return MOXyContextHelper.createUnmarshaller(MediaType.APPLICATION_JSON);
diff --git a/admin.services/src/test/java/eclipselink/example/mysports/admin/test/services/glassfish/MOXyContextTests.java b/admin.services/src/test/java/eclipselink/example/mysports/admin/services/test/services/glassfish/TestMOXyContext.java
similarity index 95%
rename from admin.services/src/test/java/eclipselink/example/mysports/admin/test/services/glassfish/MOXyContextTests.java
rename to admin.services/src/test/java/eclipselink/example/mysports/admin/services/test/services/glassfish/TestMOXyContext.java
index 0f40c9f..4c6abe4 100644
--- a/admin.services/src/test/java/eclipselink/example/mysports/admin/test/services/glassfish/MOXyContextTests.java
+++ b/admin.services/src/test/java/eclipselink/example/mysports/admin/services/test/services/glassfish/TestMOXyContext.java
@@ -10,7 +10,7 @@
  * Contributors:
  *  dclarke - EclipseLink 2.4 - MySports Demo Bug 344608
  ******************************************************************************/
-package eclipselink.example.mysports.admin.test.services.glassfish;
+package eclipselink.example.mysports.admin.services.test.services.glassfish;
 
 import java.io.StringReader;
 import java.io.StringWriter;
@@ -34,7 +34,7 @@
  * @author dclarke
  * @since EclipseLink 2.4
  */
-public class MOXyContextTests {
+public class TestMOXyContext {
 
     @Test
     public void createContext() throws JAXBException {
diff --git a/admin.services/src/test/java/eclipselink/example/mysports/admin/test/services/glassfish/ParseJDBCConnectPool_mysports_Tests.java b/admin.services/src/test/java/eclipselink/example/mysports/admin/services/test/services/glassfish/TestParseJDBCConnectPool_mysports.java
similarity index 89%
rename from admin.services/src/test/java/eclipselink/example/mysports/admin/test/services/glassfish/ParseJDBCConnectPool_mysports_Tests.java
rename to admin.services/src/test/java/eclipselink/example/mysports/admin/services/test/services/glassfish/TestParseJDBCConnectPool_mysports.java
index cfa9e5d..e3015d6 100644
--- a/admin.services/src/test/java/eclipselink/example/mysports/admin/test/services/glassfish/ParseJDBCConnectPool_mysports_Tests.java
+++ b/admin.services/src/test/java/eclipselink/example/mysports/admin/services/test/services/glassfish/TestParseJDBCConnectPool_mysports.java
@@ -10,7 +10,7 @@
  * Contributors:
  *  dclarke - EclipseLink 2.4 - MySports Demo Bug 344608
  ******************************************************************************/
-package eclipselink.example.mysports.admin.test.services.glassfish;
+package eclipselink.example.mysports.admin.services.test.services.glassfish;
 
 import javax.xml.bind.Marshaller;
 import javax.xml.bind.Unmarshaller;
@@ -19,7 +19,7 @@
 
 import eclipselink.example.mysports.admin.services.glassfish.Message;
 
-public class ParseJDBCConnectPool_mysports_Tests extends BaseJsonRestTest{
+public class TestParseJDBCConnectPool_mysports extends TestBaseJsonRest{
 
     @Test
     public void parse() throws Exception {
diff --git a/admin.services/src/test/java/eclipselink/example/mysports/admin/test/services/glassfish/ParseJDBCConnectPool_mysports_property_Tests.java b/admin.services/src/test/java/eclipselink/example/mysports/admin/services/test/services/glassfish/TestParseJDBCConnectPool_mysports_property.java
similarity index 88%
rename from admin.services/src/test/java/eclipselink/example/mysports/admin/test/services/glassfish/ParseJDBCConnectPool_mysports_property_Tests.java
rename to admin.services/src/test/java/eclipselink/example/mysports/admin/services/test/services/glassfish/TestParseJDBCConnectPool_mysports_property.java
index 2c40b41..982e748 100644
--- a/admin.services/src/test/java/eclipselink/example/mysports/admin/test/services/glassfish/ParseJDBCConnectPool_mysports_property_Tests.java
+++ b/admin.services/src/test/java/eclipselink/example/mysports/admin/services/test/services/glassfish/TestParseJDBCConnectPool_mysports_property.java
@@ -10,7 +10,7 @@
  * Contributors:
  *  dclarke - EclipseLink 2.4 - MySports Demo Bug 344608
  ******************************************************************************/
-package eclipselink.example.mysports.admin.test.services.glassfish;
+package eclipselink.example.mysports.admin.services.test.services.glassfish;
 
 import javax.xml.bind.Marshaller;
 import javax.xml.bind.Unmarshaller;
@@ -19,7 +19,7 @@
 
 import eclipselink.example.mysports.admin.services.glassfish.Result;
 
-public class ParseJDBCConnectPool_mysports_property_Tests extends BaseJsonRestTest {
+public class TestParseJDBCConnectPool_mysports_property extends TestBaseJsonRest {
 
     @Test
     public void parseJSON() throws Exception {
diff --git a/admin.services/src/test/java/eclipselink/example/mysports/admin/test/services/glassfish/ParseJDBCResourcesTests.java b/admin.services/src/test/java/eclipselink/example/mysports/admin/services/test/services/glassfish/TestParseJDBCResources.java
similarity index 93%
rename from admin.services/src/test/java/eclipselink/example/mysports/admin/test/services/glassfish/ParseJDBCResourcesTests.java
rename to admin.services/src/test/java/eclipselink/example/mysports/admin/services/test/services/glassfish/TestParseJDBCResources.java
index 6666abc..2731f3b 100644
--- a/admin.services/src/test/java/eclipselink/example/mysports/admin/test/services/glassfish/ParseJDBCResourcesTests.java
+++ b/admin.services/src/test/java/eclipselink/example/mysports/admin/services/test/services/glassfish/TestParseJDBCResources.java
@@ -10,7 +10,7 @@
  * Contributors:
  *  dclarke - EclipseLink 2.4 - MySports Demo Bug 344608
  ******************************************************************************/
-package eclipselink.example.mysports.admin.test.services.glassfish;
+package eclipselink.example.mysports.admin.services.test.services.glassfish;
 
 import javax.xml.bind.JAXBElement;
 import javax.xml.bind.Marshaller;
@@ -23,7 +23,7 @@
 
 import eclipselink.example.mysports.admin.services.glassfish.JDBCResource;
 
-public class ParseJDBCResourcesTests extends BaseJsonRestTest {
+public class TestParseJDBCResources extends TestBaseJsonRest {
 
     @Test
     public void parseFromFile() throws Exception {
diff --git a/admin.services/src/test/java/eclipselink/example/mysports/admin/test/services/glassfish/ParseListJDBCConnectionPoolsTests.java b/admin.services/src/test/java/eclipselink/example/mysports/admin/services/test/services/glassfish/TestParseListJDBCConnectionPools.java
similarity index 91%
rename from admin.services/src/test/java/eclipselink/example/mysports/admin/test/services/glassfish/ParseListJDBCConnectionPoolsTests.java
rename to admin.services/src/test/java/eclipselink/example/mysports/admin/services/test/services/glassfish/TestParseListJDBCConnectionPools.java
index bc814fd..f6a795d 100644
--- a/admin.services/src/test/java/eclipselink/example/mysports/admin/test/services/glassfish/ParseListJDBCConnectionPoolsTests.java
+++ b/admin.services/src/test/java/eclipselink/example/mysports/admin/services/test/services/glassfish/TestParseListJDBCConnectionPools.java
@@ -10,7 +10,7 @@
  * Contributors:
  *  dclarke - EclipseLink 2.4 - MySports Demo Bug 344608
  ******************************************************************************/
-package eclipselink.example.mysports.admin.test.services.glassfish;
+package eclipselink.example.mysports.admin.services.test.services.glassfish;
 
 import javax.xml.bind.Marshaller;
 import javax.xml.bind.Unmarshaller;
@@ -20,7 +20,7 @@
 import eclipselink.example.mysports.admin.services.glassfish.Message;
 import eclipselink.example.mysports.admin.services.glassfish.Result;
 
-public class ParseListJDBCConnectionPoolsTests extends BaseJsonRestTest {
+public class TestParseListJDBCConnectionPools extends TestBaseJsonRest {
 
     @Test
     public void parse() throws Exception {
diff --git a/admin.services/src/test/java/eclipselink/example/mysports/admin/test/services/glassfish/ParseListJDBCResourcesTests.java b/admin.services/src/test/java/eclipselink/example/mysports/admin/services/test/services/glassfish/TestParseListJDBCResources.java
similarity index 95%
rename from admin.services/src/test/java/eclipselink/example/mysports/admin/test/services/glassfish/ParseListJDBCResourcesTests.java
rename to admin.services/src/test/java/eclipselink/example/mysports/admin/services/test/services/glassfish/TestParseListJDBCResources.java
index 27bc2bd..126bf89 100644
--- a/admin.services/src/test/java/eclipselink/example/mysports/admin/test/services/glassfish/ParseListJDBCResourcesTests.java
+++ b/admin.services/src/test/java/eclipselink/example/mysports/admin/services/test/services/glassfish/TestParseListJDBCResources.java
@@ -10,7 +10,7 @@
  * Contributors:
  *  dclarke - EclipseLink 2.4 - MySports Demo Bug 344608
  ******************************************************************************/
-package eclipselink.example.mysports.admin.test.services.glassfish;
+package eclipselink.example.mysports.admin.services.test.services.glassfish;
 
 import java.net.ConnectException;
 
@@ -27,7 +27,7 @@
 import eclipselink.example.mysports.admin.services.glassfish.RESTOperations;
 import eclipselink.example.mysports.admin.services.glassfish.Result;
 
-public class ParseListJDBCResourcesTests extends BaseJsonRestTest {
+public class TestParseListJDBCResources extends TestBaseJsonRest {
 
     @Test
     public void unmarshalMarshal() throws Exception {
diff --git a/admin.services/src/test/java/eclipselink/example/mysports/admin/test/style/CreateStyles.java b/admin.services/src/test/java/eclipselink/example/mysports/admin/services/test/style/TestCreateStyles.java
similarity index 85%
rename from admin.services/src/test/java/eclipselink/example/mysports/admin/test/style/CreateStyles.java
rename to admin.services/src/test/java/eclipselink/example/mysports/admin/services/test/style/TestCreateStyles.java
index e09dc29..1af0479 100644
--- a/admin.services/src/test/java/eclipselink/example/mysports/admin/test/style/CreateStyles.java
+++ b/admin.services/src/test/java/eclipselink/example/mysports/admin/services/test/style/TestCreateStyles.java
@@ -10,7 +10,7 @@
  * Contributors: dclarke - EclipseLink 2.3 - MySports Demo Bug 344608
  *****************************************************************************
  */
-package eclipselink.example.mysports.admin.test.style;
+package eclipselink.example.mysports.admin.services.test.style;
 
 import java.io.InputStream;
 import java.io.StringWriter;
@@ -28,7 +28,7 @@
 import org.junit.Test;
 
 import eclipselink.example.mysports.admin.model.Style;
-import eclipselink.example.mysports.admin.test.PersistenceTesting;
+import eclipselink.example.mysports.admin.services.test.PersistenceTesting;
 
 /**
  * Create initial styles.
@@ -36,7 +36,7 @@
  * @author dclarke
  * @since EclipseLink 2.3.0
  */
-public class CreateStyles {
+public class TestCreateStyles {
 
     private static EntityManagerFactory emf;
 
@@ -70,7 +70,7 @@
 
     @BeforeClass
     public static void createEMF() {
-        emf = Persistence.createEntityManagerFactory("MySportsAdmin", PersistenceTesting.get());
+        emf = Persistence.createEntityManagerFactory("MySportsAdmin", PersistenceTesting.get(true));
 
         EntityManager em = emf.createEntityManager();
         try {
@@ -88,7 +88,12 @@
     }
 
     private String load(String name) throws Exception {
-        InputStream in = Thread.currentThread().getContextClassLoader().getResourceAsStream("example/mysports/tests/admin/style/" + name + ".css");
+        String resource = "eclipselink/example/mysports/admin/services/test/style/" + name + ".css";
+        InputStream in = Thread.currentThread().getContextClassLoader().getResourceAsStream(resource);
+        
+        if (in == null) {
+            Assert.fail("Could not find CSS for '" + name + " @ " + resource);
+        }
         StringWriter writer = new StringWriter(in.available());
         for (int ch = in.read(); ch >= 0; ch = in.read()) {
             writer.write(ch);
diff --git a/admin.services/src/test/java/eclipselink/example/mysports/admin/test/AllTests.java b/admin.services/src/test/java/eclipselink/example/mysports/admin/test/AllTests.java
deleted file mode 100644
index 15c3402..0000000
--- a/admin.services/src/test/java/eclipselink/example/mysports/admin/test/AllTests.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2010-2012 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the 
- * terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0 
- * which accompanies this distribution. 
- * The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html
- * and the Eclipse Distribution License is available at 
- * http://www.eclipse.org/org/documents/edl-v10.php.
- *
- * Contributors:
- *  dclarke - EclipseLink 2.3 - MySports Demo Bug 344608
- ******************************************************************************/
-package eclipselink.example.mysports.admin.test;
-
-import eclipselink.example.mysports.admin.test.style.CreateStyles;
-import org.junit.runner.RunWith;
-import org.junit.runners.Suite;
-import org.junit.runners.Suite.SuiteClasses;
-
-/**
- * @author dclarke
- * @since EclipseLink 2.3.0
- */
-@RunWith(Suite.class)
-@SuiteClasses({ CreateDatabase.class,
-                VerifyModelAndMappings.class, 
-                CreateHostEnvironments.class,
-                CreateLeagues.class,
-                CreateStyles.class,
-                eclipselink.example.mysports.admin.test.services.glassfish.AllTests.class,
-                })
-public class AllTests {
-
-}
diff --git a/admin.services/src/test/java/eclipselink/example/mysports/admin/test/extensions/CreateXMLBindingsTests.java b/admin.services/src/test/java/eclipselink/example/mysports/admin/test/extensions/CreateXMLBindingsTests.java
deleted file mode 100644
index b65de33..0000000
--- a/admin.services/src/test/java/eclipselink/example/mysports/admin/test/extensions/CreateXMLBindingsTests.java
+++ /dev/null
@@ -1,17 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2010-2012 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the 
- * terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0 
- * which accompanies this distribution. 
- * The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html
- * and the Eclipse Distribution License is available at 
- * http://www.eclipse.org/org/documents/edl-v10.php.
- *
- * Contributors:
- *  dclarke - EclipseLink 2.3 - MySports Demo Bug 344608
- ******************************************************************************/
-package eclipselink.example.mysports.admin.test.extensions;
-
-public class CreateXMLBindingsTests {
-	// TODO
-}
diff --git a/admin.services/src/test/java/eclipselink/example/mysports/admin/test/league/AllTests.java b/admin.services/src/test/java/eclipselink/example/mysports/admin/test/league/AllTests.java
deleted file mode 100644
index 5c39e4a..0000000
--- a/admin.services/src/test/java/eclipselink/example/mysports/admin/test/league/AllTests.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2010-2012 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the 
- * terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0 
- * which accompanies this distribution. 
- * The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html
- * and the Eclipse Distribution License is available at 
- * http://www.eclipse.org/org/documents/edl-v10.php.
- *
- * Contributors:
- *  dclarke - EclipseLink 2.3 - MySports Demo Bug 344608
- ******************************************************************************/
-package eclipselink.example.mysports.admin.test.league;
-
-import org.junit.runner.RunWith;
-import org.junit.runners.Suite;
-import org.junit.runners.Suite.SuiteClasses;
-
-/**
- * @author dclarke
- * @since EclipseLink 2.3.0
- */
-@RunWith(Suite.class)
-@SuiteClasses({ DynamicJAXBTests.class})
-public class AllTests {
-
-}
diff --git a/admin.services/src/test/java/eclipselink/example/mysports/admin/test/services/glassfish/AllTests.java b/admin.services/src/test/java/eclipselink/example/mysports/admin/test/services/glassfish/AllTests.java
deleted file mode 100644
index 39da8a2..0000000
--- a/admin.services/src/test/java/eclipselink/example/mysports/admin/test/services/glassfish/AllTests.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2010-2012 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the 
- * terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0 
- * which accompanies this distribution. 
- * The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html
- * and the Eclipse Distribution License is available at 
- * http://www.eclipse.org/org/documents/edl-v10.php.
- *
- * Contributors:
- *  dclarke - EclipseLink 2.4 - MySports Demo Bug 344608
- ******************************************************************************/
-package eclipselink.example.mysports.admin.test.services.glassfish;
-
-import org.junit.runner.RunWith;
-import org.junit.runners.Suite;
-import org.junit.runners.Suite.SuiteClasses;
-
-
-/**
- * @author dclarke
- * @since EclipseLink 2.4
- */
-@RunWith(Suite.class)
-@SuiteClasses({ MOXyContextTests.class,
-                ParseJDBCConnectPool_mysports_Tests.class,
-                ParseJDBCResourcesTests.class,
-                ParseListJDBCConnectionPoolsTests.class,
-                ParseListJDBCResourcesTests.class,
-                ParseJDBCConnectPool_mysports_property_Tests.class,
-                })
-public class AllTests {
-
-}
diff --git a/admin.services/src/test/resource/eclipselink-example-mysports.properties b/admin.services/src/test/resource/eclipselink-example-mysports.properties
new file mode 100644
index 0000000..e3c5237
--- /dev/null
+++ b/admin.services/src/test/resource/eclipselink-example-mysports.properties
@@ -0,0 +1,19 @@
+javax.persistence.jdbc.url=jdbc:derby:target/derby/mysports;create=true
+javax.persistence.jdbc.user=app
+javax.persistence.jdbc.password=app
+javax.persistence.jdbc.driver=org.apache.derby.jdbc.EmbeddedDriver
+
+# Ensure that the data source info in persistence.xml is replaced
+javax.persistence.jtaDataSource=
+javax.persistence.nonJtaDataSource=
+javax.persistence.transactionType=RESOURCE_LOCAL
+
+eclipselink.logging.level=FINE
+eclipselink.logging.connection=false
+eclipselink.logging.timestamp=false
+eclipselink.logging.thread=false
+eclipselink.logging.session=false
+eclipselink.logging.exceptions=false
+eclipselink.logging.level.sql=FINE
+eclipselink.logging.level.metadata=WARNING
+eclipselink.logging.parameters=true
\ No newline at end of file
diff --git a/admin.services/src/test/resource/eclipselink/example/mysports/admin/services/test/services/glassfish/eclipselink-example-mysports.properties b/admin.services/src/test/resource/eclipselink/example/mysports/admin/services/test/services/glassfish/eclipselink-example-mysports.properties
new file mode 100644
index 0000000..07f4600
--- /dev/null
+++ b/admin.services/src/test/resource/eclipselink/example/mysports/admin/services/test/services/glassfish/eclipselink-example-mysports.properties
@@ -0,0 +1,19 @@
+javax.persistence.jdbc.url=jdbc:derby:testmysports;create=true
+javax.persistence.jdbc.user=app
+javax.persistence.jdbc.password=app
+javax.persistence.jdbc.driver=org.apache.derby.jdbc.EmbeddedDriver
+
+# Ensure that the data source info in persistence.xml is replaced
+javax.persistence.jtaDataSource=
+javax.persistence.nonJtaDataSource=
+javax.persistence.transactionType=RESOURCE_LOCAL
+
+eclipselink.logging.level=FINE
+eclipselink.logging.connection=false
+eclipselink.logging.timestamp=false
+eclipselink.logging.thread=false
+eclipselink.logging.session=false
+eclipselink.logging.exceptions=false
+eclipselink.logging.level.sql=FINE
+eclipselink.logging.level.metadata=WARNING
+eclipselink.logging.parameters=true
\ No newline at end of file
diff --git a/admin.services/src/test/java/eclipselink/example/mysports/admin/test/services/glassfish/jdbc-connection-pool_mysports.json b/admin.services/src/test/resource/eclipselink/example/mysports/admin/services/test/services/glassfish/jdbc-connection-pool_mysports.json
similarity index 100%
rename from admin.services/src/test/java/eclipselink/example/mysports/admin/test/services/glassfish/jdbc-connection-pool_mysports.json
rename to admin.services/src/test/resource/eclipselink/example/mysports/admin/services/test/services/glassfish/jdbc-connection-pool_mysports.json
diff --git a/admin.services/src/test/java/eclipselink/example/mysports/admin/test/services/glassfish/jdbc-connection-pool_mysports_property.json b/admin.services/src/test/resource/eclipselink/example/mysports/admin/services/test/services/glassfish/jdbc-connection-pool_mysports_property.json
similarity index 100%
rename from admin.services/src/test/java/eclipselink/example/mysports/admin/test/services/glassfish/jdbc-connection-pool_mysports_property.json
rename to admin.services/src/test/resource/eclipselink/example/mysports/admin/services/test/services/glassfish/jdbc-connection-pool_mysports_property.json
diff --git a/admin.services/src/test/java/eclipselink/example/mysports/admin/test/services/glassfish/jdbc-resource.json b/admin.services/src/test/resource/eclipselink/example/mysports/admin/services/test/services/glassfish/jdbc-resource.json
similarity index 100%
rename from admin.services/src/test/java/eclipselink/example/mysports/admin/test/services/glassfish/jdbc-resource.json
rename to admin.services/src/test/resource/eclipselink/example/mysports/admin/services/test/services/glassfish/jdbc-resource.json
diff --git a/admin.services/src/test/java/eclipselink/example/mysports/admin/test/services/glassfish/list-jdbc-connection-pools.json b/admin.services/src/test/resource/eclipselink/example/mysports/admin/services/test/services/glassfish/list-jdbc-connection-pools.json
similarity index 100%
rename from admin.services/src/test/java/eclipselink/example/mysports/admin/test/services/glassfish/list-jdbc-connection-pools.json
rename to admin.services/src/test/resource/eclipselink/example/mysports/admin/services/test/services/glassfish/list-jdbc-connection-pools.json
diff --git a/admin.services/src/test/java/eclipselink/example/mysports/admin/test/services/glassfish/list-jdbc-resources.json b/admin.services/src/test/resource/eclipselink/example/mysports/admin/services/test/services/glassfish/list-jdbc-resources.json
similarity index 100%
rename from admin.services/src/test/java/eclipselink/example/mysports/admin/test/services/glassfish/list-jdbc-resources.json
rename to admin.services/src/test/resource/eclipselink/example/mysports/admin/services/test/services/glassfish/list-jdbc-resources.json
diff --git a/admin.services/src/test/java/eclipselink/example/mysports/admin/test/style/black.css b/admin.services/src/test/resource/eclipselink/example/mysports/admin/services/test/style/black.css
similarity index 100%
rename from admin.services/src/test/java/eclipselink/example/mysports/admin/test/style/black.css
rename to admin.services/src/test/resource/eclipselink/example/mysports/admin/services/test/style/black.css
diff --git a/admin.services/src/test/java/eclipselink/example/mysports/admin/test/style/blue.css b/admin.services/src/test/resource/eclipselink/example/mysports/admin/services/test/style/blue.css
similarity index 100%
rename from admin.services/src/test/java/eclipselink/example/mysports/admin/test/style/blue.css
rename to admin.services/src/test/resource/eclipselink/example/mysports/admin/services/test/style/blue.css
diff --git a/admin.services/src/test/java/eclipselink/example/mysports/admin/test/style/default.css b/admin.services/src/test/resource/eclipselink/example/mysports/admin/services/test/style/default.css
similarity index 100%
rename from admin.services/src/test/java/eclipselink/example/mysports/admin/test/style/default.css
rename to admin.services/src/test/resource/eclipselink/example/mysports/admin/services/test/style/default.css
diff --git a/admin.services/src/test/java/eclipselink/example/mysports/admin/test/style/green.css b/admin.services/src/test/resource/eclipselink/example/mysports/admin/services/test/style/green.css
similarity index 100%
rename from admin.services/src/test/java/eclipselink/example/mysports/admin/test/style/green.css
rename to admin.services/src/test/resource/eclipselink/example/mysports/admin/services/test/style/green.css
diff --git a/admin.services/src/test/java/eclipselink/example/mysports/admin/test/style/red.css b/admin.services/src/test/resource/eclipselink/example/mysports/admin/services/test/style/red.css
similarity index 100%
rename from admin.services/src/test/java/eclipselink/example/mysports/admin/test/style/red.css
rename to admin.services/src/test/resource/eclipselink/example/mysports/admin/services/test/style/red.css
diff --git a/admin.web/pom.xml b/admin.web/pom.xml
index 632fa67..e3536c3 100644
--- a/admin.web/pom.xml
+++ b/admin.web/pom.xml
@@ -49,7 +49,7 @@
 
 		<dependency>
 			<groupId>${project.groupId}</groupId>
-			<artifactId>persistence</artifactId>
+			<artifactId>test.common</artifactId>
 			<version>${project.version}</version>
 			<scope>test</scope>
 		</dependency>
diff --git a/admin.web/src/test/java/eclipselink/example/mysports/admin/test/AllTests.java b/admin.web/src/test/java/eclipselink/example/mysports/admin/test/AllTests.java
index 4953bf3..1485370 100644
--- a/admin.web/src/test/java/eclipselink/example/mysports/admin/test/AllTests.java
+++ b/admin.web/src/test/java/eclipselink/example/mysports/admin/test/AllTests.java
@@ -12,7 +12,8 @@
  ******************************************************************************/
 package eclipselink.example.mysports.admin.test;
 
-import eclipselink.example.mysports.admin.test.style.CreateStyles;
+import eclipselink.example.mysports.admin.services.test.style.TestCreateStyles;
+
 import org.junit.runner.RunWith;
 import org.junit.runners.Suite;
 import org.junit.runners.Suite.SuiteClasses;
@@ -22,7 +23,7 @@
  * @since EclipseLink 2.3.0
  */
 @RunWith(Suite.class)
-@SuiteClasses({ CreateStyles.class})
+@SuiteClasses({ TestCreateStyles.class})
 public class AllTests {
 
 }
diff --git a/admin.web/src/test/java/eclipselink/example/mysports/admin/test/extensions/CreateOrmXML.java b/admin.web/src/test/java/eclipselink/example/mysports/admin/test/extensions/CreateOrmXML.java
index 282504e..44e3656 100644
--- a/admin.web/src/test/java/eclipselink/example/mysports/admin/test/extensions/CreateOrmXML.java
+++ b/admin.web/src/test/java/eclipselink/example/mysports/admin/test/extensions/CreateOrmXML.java
@@ -21,7 +21,7 @@
 import org.junit.Test;
 
 import eclipselink.example.mysports.admin.services.MappingsLoader;
-import eclipselink.example.mysports.admin.test.PersistenceTesting;
+import eclipselink.example.mysports.admin.services.test.PersistenceTesting;
 
 public class CreateOrmXML {
 
diff --git a/admin.web/src/test/java/eclipselink/example/mysports/admin/test/league/LeagueJAXBTests.java b/admin.web/src/test/java/eclipselink/example/mysports/admin/test/league/LeagueJAXBTests.java
index 665f2d0..c55a448 100644
--- a/admin.web/src/test/java/eclipselink/example/mysports/admin/test/league/LeagueJAXBTests.java
+++ b/admin.web/src/test/java/eclipselink/example/mysports/admin/test/league/LeagueJAXBTests.java
@@ -28,7 +28,7 @@
 
 import eclipselink.example.mysports.admin.jaxrs.MySportsContextResolver;
 import eclipselink.example.mysports.admin.model.HostedLeague;
-import eclipselink.example.mysports.admin.test.PersistenceTesting;
+import eclipselink.example.mysports.admin.services.test.PersistenceTesting;
 
 /**
  * 
diff --git a/admin.web/src/test/java/eclipselink/example/mysports/admin/test/style/CreateStyles.java b/admin.web/src/test/java/eclipselink/example/mysports/admin/test/style/CreateStyles.java
index e09dc29..bed0950 100644
--- a/admin.web/src/test/java/eclipselink/example/mysports/admin/test/style/CreateStyles.java
+++ b/admin.web/src/test/java/eclipselink/example/mysports/admin/test/style/CreateStyles.java
@@ -28,7 +28,7 @@
 import org.junit.Test;
 
 import eclipselink.example.mysports.admin.model.Style;
-import eclipselink.example.mysports.admin.test.PersistenceTesting;
+import eclipselink.example.mysports.admin.services.test.PersistenceTesting;
 
 /**
  * Create initial styles.
diff --git a/application/pom.xml b/application/pom.xml
index d73b2ce..bbb4441 100644
--- a/application/pom.xml
+++ b/application/pom.xml
@@ -56,11 +56,17 @@
 
 		<dependency>
 			<groupId>${project.groupId}</groupId>
-			<artifactId>admin.services</artifactId>
+			<artifactId>test.common</artifactId>
 			<version>${project.version}</version>
 			<scope>test</scope>
 		</dependency>
 
+		<dependency>
+			<groupId>${project.groupId}</groupId>
+			<artifactId>admin.services</artifactId>
+			<version>${project.version}</version>
+			<scope>test</scope>
+		</dependency>
 
 		<dependency>
 			<groupId>mysql</groupId>
@@ -96,9 +102,6 @@
 				<artifactId>maven-surefire-plugin</artifactId>
 				<version>2.12.4</version>
 				<configuration>
-					<includes>
-						<include>eclipselink.example.mysports.application.test.AllTests.class</include>
-					</includes>
 					<argLine>-javaagent:${user.home}\\.m2\\repository\\eclipselink\\example\\mysports\\persistence\\${project.version}\\persistence-${project.version}.jar</argLine>
 				</configuration>
 			</plugin>
diff --git a/application/src/test/java/eclipselink/example/mysports/application/test/AllTests.java b/application/src/test/java/eclipselink/example/mysports/application/test/AllTests.java
deleted file mode 100644
index 5b5e001..0000000
--- a/application/src/test/java/eclipselink/example/mysports/application/test/AllTests.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2010-2012 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the 
- * terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0 
- * which accompanies this distribution. 
- * The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html
- * and the Eclipse Distribution License is available at 
- * http://www.eclipse.org/org/documents/edl-v10.php.
- *
- * Contributors:
- *  dclarke - EclipseLink 2.3 - MySports Demo Bug 344608
- ******************************************************************************/
-package eclipselink.example.mysports.application.test;
-
-import org.junit.runner.RunWith;
-import org.junit.runners.Suite;
-import org.junit.runners.Suite.SuiteClasses;
-
-/**
- * Top-level test suite running all tests.
- * 
- * @author dclarke
- * @since EclipseLink 2.3.0
- */
-@RunWith(Suite.class)
-@SuiteClasses({ eclipselink.example.mysports.application.test.model.AllTests.class})
-public class AllTests {
-
-}
diff --git a/application/src/test/java/eclipselink/example/mysports/application/test/ExamplePropertiesLoader.java b/application/src/test/java/eclipselink/example/mysports/application/test/ExamplePropertiesLoader.java
deleted file mode 100644
index a05523c..0000000
--- a/application/src/test/java/eclipselink/example/mysports/application/test/ExamplePropertiesLoader.java
+++ /dev/null
@@ -1,106 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2010-2012 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the 
- * terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0 
- * which accompanies this distribution. 
- * The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html
- * and the Eclipse Distribution License is available at 
- * http://www.eclipse.org/org/documents/edl-v10.php.
- *
- * Contributors:
- *  dclarke - EclipseLink 2.3 - MySports Demo Bug 344608
- ******************************************************************************/
-package eclipselink.example.mysports.application.test;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.InputStream;
-import java.util.Map;
-import java.util.Properties;
-
-/**
- * Helper class that will load persistence unit overrides from a properties file
- * in both the current running folder and the current user's home folder. The
- * goal is to enable developers and users of the example to customize its
- * behaviour without having to modify the source of the example.
- * 
- * @author dclarke
- * @since EclipseLink 2.0.0
- */
-public class ExamplePropertiesLoader {
-
-    public static final String DEFAULT_FILENAME = "eclipselink-example-mysports.properties";
-
-    /**
-     * 
-     * @param properties
-     */
-    public static void loadProperties(Map<String, Object> properties) {
-        loadProperties(properties, DEFAULT_FILENAME);
-    }
-
-    /**
-     * 
-     * @param properties
-     */
-    public static void loadProperties(Map<String, Object> properties, String filename) {
-    	loadProperties(properties, Thread.currentThread().getContextClassLoader(), filename);
-        loadProperties(properties, new File(filename));
-
-        String home = System.getProperty("user.home");
-        loadProperties(properties, new File(home + System.getProperty("file.separator") + filename));
-
-        for (Object key : System.getProperties().keySet()) {
-            String keyName = (String) key;
-
-            if (keyName.startsWith("javax.persistence") || keyName.startsWith("eclipselink")) {
-                String value = System.getProperty(keyName);
-                properties.put(keyName, value);
-            }
-        }
-    }
-
-    /**
-     * 
-     * @param properties
-     * @param filePath
-     */
-    public static void loadProperties(Map<String, Object> properties, File file) {
-        try {
-            if (file.exists()) {
-                Properties exampleProps = new Properties();
-                InputStream in = new FileInputStream(file);
-                exampleProps.load(in);
-                in.close();
-                
-                for (Map.Entry<Object, Object> entry: exampleProps.entrySet()) {
-                    properties.put((String) entry.getKey(), entry.getValue());
-                }
-            }
-        } catch (Exception e) {
-            // ignore
-        }
-    }
-
-    /**
-     * 
-     * @param properties
-     * @param filePath
-     */
-    public static void loadProperties(Map<String, Object> properties, ClassLoader cl, String resource) {
-        try {
-        	InputStream in = cl.getResourceAsStream(resource);
-            if (in != null) {
-                Properties exampleProps = new Properties();
-                exampleProps.load(in);
-                in.close();
-                
-                for (Map.Entry<Object, Object> entry: exampleProps.entrySet()) {
-                    properties.put((String) entry.getKey(), entry.getValue());
-                }
-            }
-        } catch (Exception e) {
-            // ignore
-        }
-    }
-}
diff --git a/application/src/test/java/eclipselink/example/mysports/application/test/TestingLeagueRepository.java b/application/src/test/java/eclipselink/example/mysports/application/test/TestingLeagueRepository.java
index 14bf462..d57d192 100644
--- a/application/src/test/java/eclipselink/example/mysports/application/test/TestingLeagueRepository.java
+++ b/application/src/test/java/eclipselink/example/mysports/application/test/TestingLeagueRepository.java
@@ -26,6 +26,7 @@
 import eclipselink.example.mysports.application.test.admin.MockAdminMetadataSource;
 import eclipselink.example.mysports.mysports.application.MySportsConfig;
 import eclipselink.example.mysports.mysports.application.services.LeagueRepository;
+import eclipselink.example.mysports.test.common.ExamplePropertiesLoader;
 
 /**
  * Add testing specific properties to override the non-JTA data-source
diff --git a/application/src/test/java/eclipselink/example/mysports/application/test/model/AllTests.java b/application/src/test/java/eclipselink/example/mysports/application/test/model/AllTests.java
deleted file mode 100644
index e858104..0000000
--- a/application/src/test/java/eclipselink/example/mysports/application/test/model/AllTests.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2010-2012 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the 
- * terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0 
- * which accompanies this distribution. 
- * The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html
- * and the Eclipse Distribution License is available at 
- * http://www.eclipse.org/org/documents/edl-v10.php.
- *
- * Contributors:
- *  dclarke - EclipseLink 2.3 - MySports Demo Bug 344608
- ******************************************************************************/
-package eclipselink.example.mysports.application.test.model;
-
-import org.junit.runner.RunWith;
-import org.junit.runners.Suite;
-import org.junit.runners.Suite.SuiteClasses;
-
-/**
- * @author dclarke
- * @since EclipseLink 2.3.0
- */
-@RunWith(Suite.class)
-@SuiteClasses({ CreateDatabaseTest.class, 
-                VerifyModelAndMappings.class, 
-                HighTechHockeyTest.class, 
-                OttawaSoccerLeagueTest.class,
-                KidsFootballLeagueTest.class,
-                eclipselink.example.mysports.application.test.util.AllTests.class})
-public class AllTests {
-
-}
diff --git a/application/src/test/java/eclipselink/example/mysports/application/test/model/QueryTests.java b/application/src/test/java/eclipselink/example/mysports/application/test/model/QueryTest.java
similarity index 97%
rename from application/src/test/java/eclipselink/example/mysports/application/test/model/QueryTests.java
rename to application/src/test/java/eclipselink/example/mysports/application/test/model/QueryTest.java
index 0a00bb7..efc6cf0 100644
--- a/application/src/test/java/eclipselink/example/mysports/application/test/model/QueryTests.java
+++ b/application/src/test/java/eclipselink/example/mysports/application/test/model/QueryTest.java
@@ -12,7 +12,7 @@
 import eclipselink.example.mysports.mysports.application.MySportsConfig;
 import eclipselink.example.mysports.mysports.application.services.LeagueRepository;
 
-public class QueryTests {
+public class QueryTest {
 
     public static final String LEAGUE = "OSL";
 
diff --git a/application/src/test/java/eclipselink/example/mysports/application/test/util/AllTests.java b/application/src/test/java/eclipselink/example/mysports/application/test/util/AllTests.java
deleted file mode 100644
index e1b1436..0000000
--- a/application/src/test/java/eclipselink/example/mysports/application/test/util/AllTests.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package eclipselink.example.mysports.application.test.util;
-
-import org.junit.runner.RunWith;
-import org.junit.runners.Suite;
-import org.junit.runners.Suite.SuiteClasses;
-
-@RunWith(Suite.class)
-@SuiteClasses({AttributeNameLabelTests.class})
-public class AllTests {
-
-}
diff --git a/application/src/test/java/eclipselink/example/mysports/application/test/util/AttributeNameLabelTests.java b/application/src/test/java/eclipselink/example/mysports/application/test/util/TestAttributeNameLabel.java
similarity index 97%
rename from application/src/test/java/eclipselink/example/mysports/application/test/util/AttributeNameLabelTests.java
rename to application/src/test/java/eclipselink/example/mysports/application/test/util/TestAttributeNameLabel.java
index ea9335d..6b86c47 100644
--- a/application/src/test/java/eclipselink/example/mysports/application/test/util/AttributeNameLabelTests.java
+++ b/application/src/test/java/eclipselink/example/mysports/application/test/util/TestAttributeNameLabel.java
@@ -25,7 +25,7 @@
  * @author dclarke
  * @since EclipseLink 2.3.0
  */
-public class AttributeNameLabelTests {
+public class TestAttributeNameLabel {
 
     @Test
     public void test_a() {
diff --git a/application/src/test/resources/eclipselink-example-mysports.properties b/application/src/test/resources/eclipselink-example-mysports.properties
index 20944c9..07f4600 100644
--- a/application/src/test/resources/eclipselink-example-mysports.properties
+++ b/application/src/test/resources/eclipselink-example-mysports.properties
@@ -1,7 +1,7 @@
-javax.persistence.jdbc.driver=com.mysql.jdbc.Driver
-javax.persistence.jdbc.url=jdbc:mysql://localhost:3306/mysports
-javax.persistence.jdbc.user=root
-javax.persistence.jdbc.password=password
+javax.persistence.jdbc.url=jdbc:derby:testmysports;create=true
+javax.persistence.jdbc.user=app
+javax.persistence.jdbc.password=app
+javax.persistence.jdbc.driver=org.apache.derby.jdbc.EmbeddedDriver
 
 # Ensure that the data source info in persistence.xml is replaced
 javax.persistence.jtaDataSource=
diff --git a/persistence/pom.xml b/persistence/pom.xml
index e6654e6..4f901f3 100644
--- a/persistence/pom.xml
+++ b/persistence/pom.xml
@@ -15,19 +15,6 @@
 
 	<dependencies>
 		<dependency>
-			<groupId>junit</groupId>
-			<artifactId>junit</artifactId>
-			<version>4.11</version>
-			<scope>test</scope>
-		</dependency>
-
-		<dependency>
-			<groupId>mysql</groupId>
-			<artifactId>mysql-connector-java</artifactId>
-			<version>5.1.21</version>
-			<scope>test</scope>
-		</dependency>
-		<dependency>
 			<groupId>org.eclipse.persistence</groupId>
 			<artifactId>eclipselink</artifactId>
 			<version>${eclipselink.version}</version>
@@ -39,12 +26,34 @@
 			</exclusions>
 			<scope>provided</scope>
 		</dependency>
+		
 		<dependency>
 			<groupId>org.eclipse.persistence</groupId>
 			<artifactId>javax.persistence</artifactId>
 			<version>2.0.0</version>
 			<scope>provided</scope>
 		</dependency>
+
+		<dependency>
+			<groupId>junit</groupId>
+			<artifactId>junit</artifactId>
+			<version>4.11</version>
+			<scope>test</scope>
+		</dependency>
+
+		<dependency>
+			<groupId>${project.groupId}</groupId>
+			<artifactId>test.common</artifactId>
+			<version>${project.version}</version>
+			<scope>test</scope>
+		</dependency>
+
+		<dependency>
+			<groupId>org.apache.derby</groupId>
+			<artifactId>derby</artifactId>
+			<version>10.9.1.0</version>
+			<scope>test</scope>
+		</dependency>
 	</dependencies>
 
 	<build>
@@ -70,6 +79,16 @@
 					</archive>
 				</configuration>
 			</plugin>
+
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-surefire-plugin</artifactId>
+				<version>2.12.4</version>
+				<configuration>
+					<argLine>-javaagent:${user.home}\\.m2\\repository\\eclipselink\\example\\mysports\\persistence\\${project.version}\\persistence-${project.version}.jar</argLine>
+				</configuration>
+			</plugin>
+
 		</plugins>
 	</build>
 </project>
diff --git a/persistence/src/test/java/eclipselink/example/mysports/persistence/test/ConfigTest.java b/persistence/src/test/java/eclipselink/example/mysports/persistence/test/ConfigTest.java
index 9ec15c3..e9aa40f 100644
--- a/persistence/src/test/java/eclipselink/example/mysports/persistence/test/ConfigTest.java
+++ b/persistence/src/test/java/eclipselink/example/mysports/persistence/test/ConfigTest.java
@@ -1,38 +1,20 @@
 package eclipselink.example.mysports.persistence.test;
 
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
+import org.junit.Test;
 
 /**
  * Unit test for simple App.
  */
-public class ConfigTest 
-    extends TestCase
-{
-    /**
-     * Create the test case
-     *
-     * @param testName name of the test case
-     */
-    public ConfigTest( String testName )
-    {
-        super( testName );
-    }
+public class ConfigTest {
 
-    /**
-     * @return the suite of tests being tested
-     */
-    public static Test suite()
-    {
-        return new TestSuite( ConfigTest.class );
-    }
+	@Test
+	public void verifyProviderServices() {
 
-    /**
-     * Rigourous Test :-)
-     */
-    public void testApp()
-    {
-        assertTrue( true );
-    }
+	}
+
+	@Test
+	public void verifyPremainInManifest() {
+
+	}
+
 }
diff --git a/persistence/src/test/java/eclipselink/example/mysports/persistence/test/ProviderTest.java b/persistence/src/test/java/eclipselink/example/mysports/persistence/test/ProviderTest.java
index 9d01e8d..3c4cf8b 100644
--- a/persistence/src/test/java/eclipselink/example/mysports/persistence/test/ProviderTest.java
+++ b/persistence/src/test/java/eclipselink/example/mysports/persistence/test/ProviderTest.java
@@ -4,9 +4,7 @@
 import java.util.Map;
 import javax.persistence.EntityManagerFactory;
 import org.junit.Assert;
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
+import org.junit.Test;
 import org.eclipse.persistence.config.PersistenceUnitProperties;
 import org.eclipse.persistence.jpa.JpaHelper;
 import org.eclipse.persistence.sessions.server.Server;
@@ -16,73 +14,65 @@
 /**
  * Unit test for simple App.
  */
-public class ProviderTest
-        extends TestCase {
+public class ProviderTest {
 
-    /**
-     * Create the test case
-     *
-     * @param testName name of the test case
-     */
-    public ProviderTest(String testName) {
-        super(testName);
-    }
+	@Test
+	public void testNullName() {
+		new TenantPerEMFProvider().createEntityManagerFactory(null, null);
+	}
 
-    /**
-     * @return the suite of tests being tested
-     */
-    public static Test suite() {
-        return new TestSuite(ProviderTest.class);
-    }
+	@Test
+	public void testEmptyName() {
+		new TenantPerEMFProvider().createEntityManagerFactory("", null);
+	}
 
-    public void testNullName() {
-        new TenantPerEMFProvider().createEntityManagerFactory(null, null);
-    }
+	@Test
+	public void testJustSeparator() {
+		try {
+			new TenantPerEMFProvider().createEntityManagerFactory(";", null);
+		} catch (IllegalArgumentException e) {
+			return;
+		}
+		Assert.fail("IllegalArgumentException expected");
+	}
 
-    public void testEmptyName() {
-        new TenantPerEMFProvider().createEntityManagerFactory("", null);
-    }
+	@Test
+	public void testSeparatorEquals() {
+		try {
+			new TenantPerEMFProvider().createEntityManagerFactory(";=", null);
+		} catch (IllegalArgumentException e) {
+			return;
+		}
+		Assert.fail("IllegalArgumentException expected");
 
-    public void testJustSeparator() {
-        try {
-            new TenantPerEMFProvider().createEntityManagerFactory(";", null);
-        } catch (IllegalArgumentException e) {
-            return;
-        }
-        Assert.fail("IllegalArgumentException expected");
-    }
+	}
 
-    public void testSeparatorEquals() {
-        try {
-            new TenantPerEMFProvider().createEntityManagerFactory(";=", null);
-        } catch (IllegalArgumentException e) {
-            return;
-        }
-        Assert.fail("IllegalArgumentException expected");
+	@Test
+	public void testXSeparatorEquals() {
+		try {
+			new TenantPerEMFProvider().createEntityManagerFactory(";X=", null);
+		} catch (IllegalArgumentException e) {
+			return;
+		}
+		Assert.fail("IllegalArgumentException expected");
 
-    }
+	}
 
-    public void testXSeparatorEquals() {
-        try {
-            new TenantPerEMFProvider().createEntityManagerFactory(";X=", null);
-        } catch (IllegalArgumentException e) {
-            return;
-        }
-        Assert.fail("IllegalArgumentException expected");
+	@Test
+	public void testContextX() {
+		Map<String, Object> props = new HashMap<String, Object>();
+		props.put(PersistenceUnitProperties.ECLIPSELINK_PERSISTENCE_XML,
+				"META-INF/test-persistence.xml");
+		EntityManagerFactory emf = new TenantPerEMFProvider()
+				.createEntityManagerFactory("test;context=X", props);
 
-    }
+		Assert.assertNotNull(emf);
+		Server session = JpaHelper.getServerSession(emf);
 
-    public void testContextX() {
-        Map<String, Object> props = new HashMap<String, Object>();
-        props.put(PersistenceUnitProperties.ECLIPSELINK_PERSISTENCE_XML, "META-INF/test-persistence.xml");
-        EntityManagerFactory emf = new TenantPerEMFProvider().createEntityManagerFactory("test;context=X", props);
+		Assert.assertEquals("test;context=X", session.getName());
 
-        Assert.assertNotNull(emf);
-        Server session = JpaHelper.getServerSession(emf);
-        
-        Assert.assertEquals("test;context=X", session.getName());
-                
-        String context = (String) emf.getProperties().get("context");
-        Assert.assertEquals(context, "X");
-    }
+		String context = (String) emf.getProperties().get("context");
+		Assert.assertEquals(context, "X");
+	}
+
 }
diff --git a/persistence/src/test/resources/META-INF/test-persistence.xml b/persistence/src/test/resources/META-INF/test-persistence.xml
index d919de1..970db77 100644
--- a/persistence/src/test/resources/META-INF/test-persistence.xml
+++ b/persistence/src/test/resources/META-INF/test-persistence.xml
@@ -3,10 +3,10 @@
     <persistence-unit name="test" transaction-type="RESOURCE_LOCAL">
         <provider>eclipselink.example.mysports.persistence.TenantPerEMFProvider</provider>
         <properties>
-            <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/>
-            <property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/mysports"/>
-            <property name="javax.persistence.jdbc.user" value="root"/>
-            <property name="javax.persistence.jdbc.password" value="password"/>
+           <property name="javax.persistence.jdbc.url" value="jdbc:derby:test;create=true"/>
+			<property name="javax.persistence.jdbc.user" value="app"/>
+			<property name="javax.persistence.jdbc.password" value="app"/>
+			<property name="javax.persistence.jdbc.driver" value="org.apache.derby.jdbc.EmbeddedDriver"/>
         </properties>
     </persistence-unit>
 </persistence>
diff --git a/pom.xml b/pom.xml
index 070bf14..ddb159c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -26,6 +26,7 @@
 	</properties>
 
 	<modules>
+		<module>test.common</module>
 		<module>persistence</module>
 		<module>admin.services</module>
 		<module>admin.web</module>
diff --git a/test.common/.classpath b/test.common/.classpath
new file mode 100644
index 0000000..18801b6
--- /dev/null
+++ b/test.common/.classpath
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" output="target/classes" path="src/main/java">
+		<attributes>
+			<attribute name="optional" value="true"/>
+			<attribute name="maven.pomderived" value="true"/>
+		</attributes>
+	</classpathentry>
+	<classpathentry kind="src" output="target/test-classes" path="src/test/java">
+		<attributes>
+			<attribute name="optional" value="true"/>
+			<attribute name="maven.pomderived" value="true"/>
+		</attributes>
+	</classpathentry>
+	<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources">
+		<attributes>
+			<attribute name="maven.pomderived" value="true"/>
+		</attributes>
+	</classpathentry>
+	<classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources">
+		<attributes>
+			<attribute name="maven.pomderived" value="true"/>
+		</attributes>
+	</classpathentry>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6">
+		<attributes>
+			<attribute name="maven.pomderived" value="true"/>
+		</attributes>
+	</classpathentry>
+	<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
+		<attributes>
+			<attribute name="maven.pomderived" value="true"/>
+		</attributes>
+	</classpathentry>
+	<classpathentry kind="output" path="target/classes"/>
+</classpath>
diff --git a/test.common/.project b/test.common/.project
new file mode 100644
index 0000000..e0e8bb3
--- /dev/null
+++ b/test.common/.project
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>test.common</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.m2e.core.maven2Builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>org.eclipse.m2e.core.maven2Nature</nature>
+	</natures>
+</projectDescription>
diff --git a/test.common/.settings/org.eclipse.jdt.core.prefs b/test.common/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..60105c1
--- /dev/null
+++ b/test.common/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,5 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
+org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
+org.eclipse.jdt.core.compiler.source=1.6
diff --git a/test.common/.settings/org.eclipse.m2e.core.prefs b/test.common/.settings/org.eclipse.m2e.core.prefs
new file mode 100644
index 0000000..f897a7f
--- /dev/null
+++ b/test.common/.settings/org.eclipse.m2e.core.prefs
@@ -0,0 +1,4 @@
+activeProfiles=
+eclipse.preferences.version=1
+resolveWorkspaceProjects=true
+version=1
diff --git a/test.common/pom.xml b/test.common/pom.xml
new file mode 100644
index 0000000..1e17227
--- /dev/null
+++ b/test.common/pom.xml
@@ -0,0 +1,59 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+
+	<artifactId>test.common</artifactId>
+	<packaging>jar</packaging>
+	<name>MySports Common Testing</name>
+
+	<parent>
+		<groupId>eclipselink.example.mysports</groupId>
+		<artifactId>example</artifactId>
+		<version>0.0.1-SNAPSHOT</version>
+		<relativePath>../pom.xml</relativePath>
+	</parent>
+
+	<dependencies>
+		<dependency>
+			<groupId>junit</groupId>
+			<artifactId>junit</artifactId>
+			<version>4.11</version>
+			<scope>test</scope>
+		</dependency>
+
+		<dependency>
+			<groupId>org.eclipse.persistence</groupId>
+			<artifactId>eclipselink</artifactId>
+			<version>${eclipselink.version}</version>
+			<exclusions>
+				<exclusion>
+					<artifactId>commonj.sdo</artifactId>
+					<groupId>commonj.sdo</groupId>
+				</exclusion>
+			</exclusions>
+			<scope>provided</scope>
+		</dependency>
+		
+		<dependency>
+			<groupId>org.eclipse.persistence</groupId>
+			<artifactId>javax.persistence</artifactId>
+			<version>2.0.0</version>
+			<scope>provided</scope>
+		</dependency>
+	</dependencies>
+
+	<build>
+		<plugins>
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-compiler-plugin</artifactId>
+				<version>2.3.2</version>
+				<configuration>
+					<source>1.6</source>
+					<target>1.6</target>
+				</configuration>
+			</plugin>
+
+		</plugins>
+	</build>
+</project>
diff --git a/admin.services/src/test/java/eclipselink/example/mysports/admin/test/ExamplePropertiesLoader.java b/test.common/src/main/java/eclipselink/example/mysports/test/common/ExamplePropertiesLoader.java
similarity index 85%
rename from admin.services/src/test/java/eclipselink/example/mysports/admin/test/ExamplePropertiesLoader.java
rename to test.common/src/main/java/eclipselink/example/mysports/test/common/ExamplePropertiesLoader.java
index 8882f21..11bde28 100644
--- a/admin.services/src/test/java/eclipselink/example/mysports/admin/test/ExamplePropertiesLoader.java
+++ b/test.common/src/main/java/eclipselink/example/mysports/test/common/ExamplePropertiesLoader.java
@@ -10,7 +10,7 @@
  * Contributors:
  *  dclarke - EclipseLink 2.3 - MySports Demo Bug 344608
  ******************************************************************************/
-package eclipselink.example.mysports.admin.test;
+package eclipselink.example.mysports.test.common;
 
 import java.io.File;
 import java.io.FileInputStream;
@@ -44,7 +44,7 @@
      * @param properties
      */
     public static void loadProperties(Map<String, Object> properties, String filename) {
-    	loadProperties(properties, Thread.currentThread().getContextClassLoader(), filename);
+        loadProperties(properties, Thread.currentThread().getContextClassLoader(), filename);
         loadProperties(properties, new File(filename));
 
         String home = System.getProperty("user.home");
@@ -60,11 +60,6 @@
         }
     }
 
-    /**
-     * 
-     * @param properties
-     * @param filePath
-     */
     public static void loadProperties(Map<String, Object> properties, File file) {
         try {
             if (file.exists()) {
@@ -72,8 +67,8 @@
                 InputStream in = new FileInputStream(file);
                 exampleProps.load(in);
                 in.close();
-                
-                for (Map.Entry<Object, Object> entry: exampleProps.entrySet()) {
+
+                for (Map.Entry<Object, Object> entry : exampleProps.entrySet()) {
                     properties.put((String) entry.getKey(), entry.getValue());
                 }
             }
@@ -82,20 +77,16 @@
         }
     }
 
-    /**
-     * 
-     * @param properties
-     * @param filePath
-     */
     public static void loadProperties(Map<String, Object> properties, ClassLoader cl, String resource) {
         try {
-        	InputStream in = cl.getResourceAsStream(resource);
+            InputStream in = cl.getResourceAsStream(resource);
+            
             if (in != null) {
                 Properties exampleProps = new Properties();
                 exampleProps.load(in);
                 in.close();
-                
-                for (Map.Entry<Object, Object> entry: exampleProps.entrySet()) {
+
+                for (Map.Entry<Object, Object> entry : exampleProps.entrySet()) {
                     properties.put((String) entry.getKey(), entry.getValue());
                 }
             }
diff --git a/test.common/src/main/resources/eclipselink-example-mysports.properties b/test.common/src/main/resources/eclipselink-example-mysports.properties
new file mode 100644
index 0000000..e3c5237
--- /dev/null
+++ b/test.common/src/main/resources/eclipselink-example-mysports.properties
@@ -0,0 +1,19 @@
+javax.persistence.jdbc.url=jdbc:derby:target/derby/mysports;create=true
+javax.persistence.jdbc.user=app
+javax.persistence.jdbc.password=app
+javax.persistence.jdbc.driver=org.apache.derby.jdbc.EmbeddedDriver
+
+# Ensure that the data source info in persistence.xml is replaced
+javax.persistence.jtaDataSource=
+javax.persistence.nonJtaDataSource=
+javax.persistence.transactionType=RESOURCE_LOCAL
+
+eclipselink.logging.level=FINE
+eclipselink.logging.connection=false
+eclipselink.logging.timestamp=false
+eclipselink.logging.thread=false
+eclipselink.logging.session=false
+eclipselink.logging.exceptions=false
+eclipselink.logging.level.sql=FINE
+eclipselink.logging.level.metadata=WARNING
+eclipselink.logging.parameters=true
\ No newline at end of file