diff --git a/MySports.admin/src/test/java/eclipselink/example/mysports/admin/test/AdminServerConnectorTests.java b/MySports.admin/src/test/java/eclipselink/example/mysports/admin/test/AdminServerConnectorTests.java
deleted file mode 100644
index 02841b4..0000000
--- a/MySports.admin/src/test/java/eclipselink/example/mysports/admin/test/AdminServerConnectorTests.java
+++ /dev/null
@@ -1,71 +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 javax.persistence.EntityManagerFactory;
-import javax.persistence.Persistence;
-
-import junit.framework.Assert;
-
-import org.junit.AfterClass;
-import org.junit.BeforeClass;
-import org.junit.Test;
-
-import example.mysports.MySportsConfig;
-import example.mysports.admin.AdminServerConnector;
-import example.mysports.admin.League;
-import example.mysports.admin.Leagues;
-import example.mysports.tests.TestingLeagueRepository;
-
-/**
- * Tests for {@link AdminServerConnector}
- * 
- * @author dclarke
- * @since EclipseLink 2.3.0
- */
-public class AdminServerConnectorTests {
-
-    private static MySportsConfig config;
-
-    @Test
-    public void getAllLeagues() throws Exception {
-        Leagues leagues = config.getAdminConnector().getLeagues();
-
-        Assert.assertNotNull(leagues);
-
-        for (League league : leagues.getLeagues()) {
-            System.out.println("League: " + league.getId() + " - " + league.getName());
-        }
-
-    }
-
-    @Test
-    public void verifyLeague_OSL() {
-        League league = config.getAdminConnector().getLeague("OSL");
-
-        Assert.assertNotNull(league);
-        Assert.assertEquals(1l, league.getVersion());
-    }
-
-    @BeforeClass
-    public static void setup() {
-        config = new MySportsConfig();
-        EntityManagerFactory emf = Persistence.createEntityManagerFactory("MySportsAdmin", TestingLeagueRepository.get());
-        ((MockAdminServerConnector) config.getAdminConnector()).setEMF(emf);
-    }
-
-    @AfterClass
-    public static void tearDown() {
-        ((MockAdminServerConnector) config.getAdminConnector()).getEMF().close();
-    }
-}
diff --git a/MySports.admin/src/test/java/eclipselink/example/mysports/admin/test/extensions/CreateOrmXML.java b/MySports.admin/src/test/java/eclipselink/example/mysports/admin/test/extensions/CreateOrmXML.java
deleted file mode 100644
index b37debd..0000000
--- a/MySports.admin/src/test/java/eclipselink/example/mysports/admin/test/extensions/CreateOrmXML.java
+++ /dev/null
@@ -1,40 +0,0 @@
-package eclipselink.example.mysports.admin.test.extensions;
-
-import javax.persistence.EntityManager;
-import javax.persistence.EntityManagerFactory;
-import javax.persistence.Persistence;
-
-import org.eclipse.persistence.internal.jpa.metadata.xml.XMLEntityMappings;
-import org.eclipse.persistence.internal.jpa.metadata.xml.XMLEntityMappingsWriter;
-import org.junit.Test;
-
-import eclipselink.example.mysports.admin.jaxrs.MappingsLoader;
-
-public class CreateOrmXML {
-
-    @Test
-    public void createEmpty() {
-        XMLEntityMappings mappings = new XMLEntityMappings();
-        mappings.setVersion("2.3");
-
-        XMLEntityMappingsWriter.write(mappings, System.out);
-    }
-
-    @Test
-    public void createFromDB() {
-        EntityManagerFactory emf = Persistence.createEntityManagerFactory("MySportsAdmin", TestingLeagueRepository.get());
-        EntityManager em = emf.createEntityManager();
-
-        try {
-            String xml = MappingsLoader.getORMapping(em, "OSL");
-            System.out.println(xml);
-
-            xml = MappingsLoader.getORMapping(em, "HTHL");
-            System.out.println(xml);
-        } finally {
-            em.close();
-            emf.close();
-        }
-    }
-
-}
diff --git a/MySports.application/pom.xml b/MySports.application/pom.xml
deleted file mode 100644
index f3195e7..0000000
--- a/MySports.application/pom.xml
+++ /dev/null
@@ -1,94 +0,0 @@
-<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>
-
-    <groupId>eclipselink.example.mysports</groupId>
-    <artifactId>application</artifactId>
-    <version>0.0.1-SNAPSHOT</version>
-    <packaging>war</packaging>
-
-    <name>MySports.application</name>
-
-    <properties>
-        <endorsed.dir>${project.build.directory}/endorsed</endorsed.dir>
-        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-    </properties>
-
-    <dependencies>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>persistence</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>admin</artifactId>
-            <version>${project.version}</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>javax</groupId>
-            <artifactId>javaee-web-api</artifactId>
-            <version>6.0</version>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>junit</groupId>
-            <artifactId>junit</artifactId>
-            <version>4.11</version>
-            <scope>test</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>
-                    <compilerArguments>
-                        <endorseddirs>${endorsed.dir}</endorseddirs>
-                    </compilerArguments>
-                </configuration>
-            </plugin>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-war-plugin</artifactId>
-                <version>2.1.1</version>
-                <configuration>
-                    <failOnMissingWebXml>false</failOnMissingWebXml>
-                </configuration>
-            </plugin>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-dependency-plugin</artifactId>
-                <version>2.1</version>
-                <executions>
-                    <execution>
-                        <phase>validate</phase>
-                        <goals>
-                            <goal>copy</goal>
-                        </goals>
-                        <configuration>
-                            <outputDirectory>${endorsed.dir}</outputDirectory>
-                            <silent>true</silent>
-                            <artifactItems>
-                                <artifactItem>
-                                    <groupId>javax</groupId>
-                                    <artifactId>javaee-endorsed-api</artifactId>
-                                    <version>6.0</version>
-                                    <type>jar</type>
-                                </artifactItem>
-                            </artifactItems>
-                        </configuration>
-                    </execution>
-                </executions>
-            </plugin>
-        </plugins>
-    </build>
-
-</project>
diff --git a/MySports.application/src/main/java/eclipselink/example/mysports/mysports/application/admin/LeagueInfo.java b/MySports.application/src/main/java/eclipselink/example/mysports/mysports/application/admin/LeagueInfo.java
deleted file mode 100644
index d4e4a10..0000000
--- a/MySports.application/src/main/java/eclipselink/example/mysports/mysports/application/admin/LeagueInfo.java
+++ /dev/null
@@ -1,5 +0,0 @@
-package eclipselink.example.mysports.mysports.application.admin;
-
-public interface LeagueInfo {
-
-}
diff --git a/MySports.persistence/nb-configuration.xml b/MySports.persistence/nb-configuration.xml
deleted file mode 100644
index 4111fe6..0000000
--- a/MySports.persistence/nb-configuration.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project-shared-configuration>
-    <!--
-This file contains additional configuration written by modules in the NetBeans IDE.
-The configuration is intended to be shared among all the users of project and
-therefore it is assumed to be part of version control checkout.
-Without this configuration present, some functionality in the IDE may be limited or fail altogether.
--->
-    <spellchecker-wordlist xmlns="http://www.netbeans.org/ns/spellchecker-wordlist/1">
-        <word>mysports</word>
-    </spellchecker-wordlist>
-</project-shared-configuration>
diff --git a/MySports.persistence/pom.xml b/MySports.persistence/pom.xml
deleted file mode 100644
index de7fefd..0000000
--- a/MySports.persistence/pom.xml
+++ /dev/null
@@ -1,71 +0,0 @@
-<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>
-
-    <groupId>eclipselink.example.mysports</groupId>
-    <artifactId>persistence</artifactId>
-    <version>0.0.1-SNAPSHOT</version>
-    <packaging>jar</packaging>
-
-    <name>MySports.persistence</name>
-    <url>http://maven.apache.org</url>
-
-    <repositories>
-        <repository>
-            <id>EclipseLink</id>
-            <url>http://download.eclipse.org/rt/eclipselink/maven.repo</url>
-        </repository>
-    </repositories>
-
-    <properties>
-        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-    </properties>
-
-    <dependencies>
-        <dependency>
-            <groupId>junit</groupId>
-            <artifactId>junit</artifactId>
-            <version>3.8.1</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>2.4.1</version>
-            <exclusions>
-                <exclusion>
-                    <artifactId>commonj.sdo</artifactId>
-                    <groupId>commonj.sdo</groupId>
-                </exclusion>
-            </exclusions>
-        </dependency>
-        <dependency>
-            <groupId>org.eclipse.persistence</groupId>
-            <artifactId>javax.persistence</artifactId>
-            <version>2.0.0</version>
-        </dependency>
-    </dependencies>
-        
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-jar-plugin</artifactId>
-                <configuration>
-                    <archive>
-                        <manifestEntries>
-                            <Premain-Class>eclipselink.example.mysports.persistence.TenantPerEMFWeavingAgent</Premain-Class>
-                        </manifestEntries>
-                    </archive>
-                </configuration>
-            </plugin>
-        </plugins>
-    </build>
-</project>
diff --git a/MySports.persistence/src/main/java/eclipselink/example/mysports/persistence/admin/LeagueInfo.java b/MySports.persistence/src/main/java/eclipselink/example/mysports/persistence/admin/LeagueInfo.java
deleted file mode 100644
index baa2f15..0000000
--- a/MySports.persistence/src/main/java/eclipselink/example/mysports/persistence/admin/LeagueInfo.java
+++ /dev/null
@@ -1,5 +0,0 @@
-package eclipselink.example.mysports.persistence.admin;
-
-public interface LeagueInfo {
-
-}
diff --git a/admin/.classpath b/admin/.classpath
new file mode 100644
index 0000000..658fc2e
--- /dev/null
+++ b/admin/.classpath
@@ -0,0 +1,31 @@
+<?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 excluding="**" kind="src" output="target/classes" path="src/main/resources">
+		<attributes>
+			<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 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/admin/.project b/admin/.project
new file mode 100644
index 0000000..15234ef
--- /dev/null
+++ b/admin/.project
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>admin</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/admin/.settings/org.eclipse.core.resources.prefs b/admin/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..839d647
--- /dev/null
+++ b/admin/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,5 @@
+eclipse.preferences.version=1
+encoding//src/main/java=UTF-8
+encoding//src/main/resources=UTF-8
+encoding//src/test/java=UTF-8
+encoding/<project>=UTF-8
diff --git a/admin/.settings/org.eclipse.jdt.core.prefs b/admin/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..60105c1
--- /dev/null
+++ b/admin/.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/admin/.settings/org.eclipse.m2e.core.prefs b/admin/.settings/org.eclipse.m2e.core.prefs
new file mode 100644
index 0000000..f897a7f
--- /dev/null
+++ b/admin/.settings/org.eclipse.m2e.core.prefs
@@ -0,0 +1,4 @@
+activeProfiles=
+eclipse.preferences.version=1
+resolveWorkspaceProjects=true
+version=1
diff --git a/MySports.admin/pom.xml b/admin/pom.xml
similarity index 67%
rename from MySports.admin/pom.xml
rename to admin/pom.xml
index 7bc73e5..f0ada93 100644
--- a/MySports.admin/pom.xml
+++ b/admin/pom.xml
@@ -64,31 +64,6 @@
                     <failOnMissingWebXml>false</failOnMissingWebXml>
                 </configuration>
             </plugin>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-dependency-plugin</artifactId>
-                <version>2.1</version>
-                <executions>
-                    <execution>
-                        <phase>validate</phase>
-                        <goals>
-                            <goal>copy</goal>
-                        </goals>
-                        <configuration>
-                            <outputDirectory>${endorsed.dir}</outputDirectory>
-                            <silent>true</silent>
-                            <artifactItems>
-                                <artifactItem>
-                                    <groupId>javax</groupId>
-                                    <artifactId>javaee-endorsed-api</artifactId>
-                                    <version>6.0</version>
-                                    <type>jar</type>
-                                </artifactItem>
-                            </artifactItems>
-                        </configuration>
-                    </execution>
-                </executions>
-            </plugin>
         </plugins>
     </build>
 
diff --git a/admin/src/main/java/eclipselink/example/mysports/admin/jaxrs/HostedLeaguesService.java b/admin/src/main/java/eclipselink/example/mysports/admin/jaxrs/HostedLeaguesService.java
new file mode 100644
index 0000000..5b7049b
--- /dev/null
+++ b/admin/src/main/java/eclipselink/example/mysports/admin/jaxrs/HostedLeaguesService.java
@@ -0,0 +1,108 @@
+/*******************************************************************************
+ * 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.jaxrs;
+
+import java.io.InputStream;
+import java.util.List;
+
+import javax.ejb.EJB;
+import javax.ejb.LocalBean;
+import javax.ejb.Stateless;
+import javax.ws.rs.FormParam;
+import javax.ws.rs.GET;
+import javax.ws.rs.POST;
+import javax.ws.rs.Path;
+import javax.ws.rs.PathParam;
+import javax.ws.rs.Produces;
+import javax.ws.rs.core.Context;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
+import javax.ws.rs.core.UriInfo;
+
+import eclipselink.example.mysports.admin.model.HostedLeague;
+import eclipselink.example.mysports.admin.services.HostedLeagueRepository;
+
+/**
+ * Session bean exposing JAX-RS methods for defining and usage of league
+ * specific metadata.
+ * 
+ * @author dclarke
+ * @since EclipseLink 2.3.0
+ */
+@Stateless
+@LocalBean
+@Path("league")
+public class HostedLeaguesService {
+
+    @EJB
+    private HostedLeagueRepository repository;
+
+    public HostedLeagueRepository getRepository() {
+        return repository;
+    }
+
+    public void setRepository(HostedLeagueRepository repository) {
+        this.repository = repository;
+    }
+
+    @GET
+    @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
+    public List<HostedLeague> allLeagues(@Context UriInfo context) {
+        List<HostedLeague> allLeagues = getRepository().allSharedLeagues();
+
+        for (HostedLeague hl : allLeagues) {
+            hl.setUri(context.getAbsolutePath() + "/" + hl.getId());
+        }
+        return allLeagues;
+    }
+
+    @GET
+    @Path("{league}")
+    @Produces(MediaType.APPLICATION_XML)
+    public HostedLeague getLeague(@Context UriInfo context, @PathParam("league") String leagueId) {
+        HostedLeague league = getRepository().getLeague(leagueId);
+        if (league != null && context != null) {
+            league.setUri(context.getAbsolutePath() + "/" + league.getId());
+        }
+        return league;
+
+    }
+
+    @POST
+    public Response create(@FormParam("league-id") String id, @FormParam("league-name") String name, @FormParam("colour-scheme") String scheme) {
+        getRepository().create(id, name, scheme);
+        return Response.status(Response.Status.CREATED).build();
+    }
+
+    @GET
+    @Path("{league}/orm")
+    @Produces(MediaType.APPLICATION_XML)
+    public String getORM(@PathParam("league") String leagueId) {
+        return getRepository().getORM(leagueId);
+    }
+
+    @GET
+    @Path("{league}.css")
+    @Produces("text/css")
+    public String getCSS(@PathParam("league") String leagueId) {
+        return getRepository().getCSS(leagueId);
+    }
+
+    @GET
+    @Path("{league}.png")
+    @Produces("image/jpeg")
+    public InputStream getLogo(@PathParam("league") String leagueId) {
+        return getRepository().getLogo(leagueId);
+    }
+
+}
\ No newline at end of file
diff --git a/MySports.admin/src/main/java/eclipselink/example/mysports/admin/jaxrs/MappingsLoader.java b/admin/src/main/java/eclipselink/example/mysports/admin/jaxrs/MappingsLoader.java
similarity index 100%
rename from MySports.admin/src/main/java/eclipselink/example/mysports/admin/jaxrs/MappingsLoader.java
rename to admin/src/main/java/eclipselink/example/mysports/admin/jaxrs/MappingsLoader.java
diff --git a/admin/src/main/java/eclipselink/example/mysports/admin/jaxrs/MySportsContextResolver.java b/admin/src/main/java/eclipselink/example/mysports/admin/jaxrs/MySportsContextResolver.java
new file mode 100644
index 0000000..cfeea58
--- /dev/null
+++ b/admin/src/main/java/eclipselink/example/mysports/admin/jaxrs/MySportsContextResolver.java
@@ -0,0 +1,66 @@
+/*******************************************************************************
+ * 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.jaxrs;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.ws.rs.Produces;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.ext.ContextResolver;
+import javax.ws.rs.ext.Provider;
+import javax.xml.bind.JAXBContext;
+import javax.xml.bind.JAXBException;
+
+import org.eclipse.persistence.jaxb.JAXBContextFactory;
+import org.eclipse.persistence.jaxb.JAXBContextProperties;
+
+import eclipselink.example.mysports.admin.model.HostedLeague;
+
+/**
+ * {@link ContextResolver} to handle using EclipseLink MOXy as the JAXB provider
+ * to convert objects into XML when returned from the JAX-RS methods.
+ * 
+ * @author dclarke
+ * @since EclipseLink 2.3.0
+ */
+@Provider
+@Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
+public class MySportsContextResolver implements ContextResolver<JAXBContext> {
+
+    private JAXBContext jc;
+
+    public MySportsContextResolver() {
+        try {
+            jc = createContext();
+        } catch (JAXBException e) {
+            throw new RuntimeException("MySportsContextResolver<init> failed: " + e.getMessage(), e);
+        }
+    }
+
+    public JAXBContext getContext(Class<?> clazz) {
+        if (HostedLeague.class == clazz || HostedLeaguesService.class == clazz) {
+            return jc;
+        }
+        return null;
+    }
+
+    private static final String MAPPING_FILE = "META-INF/eclipselink-oxm.xml";
+
+    public static JAXBContext createContext() throws JAXBException {
+        Map<String, Object> props = new HashMap<String, Object>(1);
+        props.put(JAXBContextProperties.OXM_METADATA_SOURCE, MAPPING_FILE);
+        return JAXBContextFactory.createContext(new Class[] { HostedLeague.class }, props);
+    }
+
+}
\ No newline at end of file
diff --git a/MySports.admin/src/main/java/eclipselink/example/mysports/admin/jsf/CreateLeague.java b/admin/src/main/java/eclipselink/example/mysports/admin/jsf/CreateLeague.java
similarity index 100%
rename from MySports.admin/src/main/java/eclipselink/example/mysports/admin/jsf/CreateLeague.java
rename to admin/src/main/java/eclipselink/example/mysports/admin/jsf/CreateLeague.java
diff --git a/MySports.admin/src/main/java/eclipselink/example/mysports/admin/jsf/CurrentUser.java b/admin/src/main/java/eclipselink/example/mysports/admin/jsf/CurrentUser.java
similarity index 100%
rename from MySports.admin/src/main/java/eclipselink/example/mysports/admin/jsf/CurrentUser.java
rename to admin/src/main/java/eclipselink/example/mysports/admin/jsf/CurrentUser.java
diff --git a/MySports.admin/src/main/java/eclipselink/example/mysports/admin/jsf/DatasourceRepositoryBean.java b/admin/src/main/java/eclipselink/example/mysports/admin/jsf/DatasourceRepositoryBean.java
similarity index 100%
rename from MySports.admin/src/main/java/eclipselink/example/mysports/admin/jsf/DatasourceRepositoryBean.java
rename to admin/src/main/java/eclipselink/example/mysports/admin/jsf/DatasourceRepositoryBean.java
diff --git a/MySports.admin/src/main/java/eclipselink/example/mysports/admin/jsf/HostEnvironmentRepositoryBean.java b/admin/src/main/java/eclipselink/example/mysports/admin/jsf/HostEnvironmentRepositoryBean.java
similarity index 100%
rename from MySports.admin/src/main/java/eclipselink/example/mysports/admin/jsf/HostEnvironmentRepositoryBean.java
rename to admin/src/main/java/eclipselink/example/mysports/admin/jsf/HostEnvironmentRepositoryBean.java
diff --git a/MySports.admin/src/main/java/eclipselink/example/mysports/admin/jsf/LeagueRepository.java b/admin/src/main/java/eclipselink/example/mysports/admin/jsf/LeagueRepository.java
similarity index 100%
rename from MySports.admin/src/main/java/eclipselink/example/mysports/admin/jsf/LeagueRepository.java
rename to admin/src/main/java/eclipselink/example/mysports/admin/jsf/LeagueRepository.java
diff --git a/MySports.admin/src/main/java/eclipselink/example/mysports/admin/jsf/MySportsPhaseListener.java b/admin/src/main/java/eclipselink/example/mysports/admin/jsf/MySportsPhaseListener.java
similarity index 100%
rename from MySports.admin/src/main/java/eclipselink/example/mysports/admin/jsf/MySportsPhaseListener.java
rename to admin/src/main/java/eclipselink/example/mysports/admin/jsf/MySportsPhaseListener.java
diff --git a/MySports.admin/src/main/java/eclipselink/example/mysports/admin/jsf/NoCacheFilter.java b/admin/src/main/java/eclipselink/example/mysports/admin/jsf/NoCacheFilter.java
similarity index 100%
rename from MySports.admin/src/main/java/eclipselink/example/mysports/admin/jsf/NoCacheFilter.java
rename to admin/src/main/java/eclipselink/example/mysports/admin/jsf/NoCacheFilter.java
diff --git a/MySports.admin/src/main/java/eclipselink/example/mysports/admin/jsf/ViewLeague.java b/admin/src/main/java/eclipselink/example/mysports/admin/jsf/ViewLeague.java
similarity index 100%
rename from MySports.admin/src/main/java/eclipselink/example/mysports/admin/jsf/ViewLeague.java
rename to admin/src/main/java/eclipselink/example/mysports/admin/jsf/ViewLeague.java
diff --git a/MySports.admin/src/main/java/eclipselink/example/mysports/admin/model/DataIsolation.java b/admin/src/main/java/eclipselink/example/mysports/admin/model/DataIsolation.java
similarity index 100%
rename from MySports.admin/src/main/java/eclipselink/example/mysports/admin/model/DataIsolation.java
rename to admin/src/main/java/eclipselink/example/mysports/admin/model/DataIsolation.java
diff --git a/MySports.admin/src/main/java/eclipselink/example/mysports/admin/model/Datasource.java b/admin/src/main/java/eclipselink/example/mysports/admin/model/Datasource.java
similarity index 100%
rename from MySports.admin/src/main/java/eclipselink/example/mysports/admin/model/Datasource.java
rename to admin/src/main/java/eclipselink/example/mysports/admin/model/Datasource.java
diff --git a/MySports.admin/src/main/java/eclipselink/example/mysports/admin/model/Extension.java b/admin/src/main/java/eclipselink/example/mysports/admin/model/Extension.java
similarity index 100%
rename from MySports.admin/src/main/java/eclipselink/example/mysports/admin/model/Extension.java
rename to admin/src/main/java/eclipselink/example/mysports/admin/model/Extension.java
diff --git a/MySports.admin/src/main/java/eclipselink/example/mysports/admin/model/GlassFish.java b/admin/src/main/java/eclipselink/example/mysports/admin/model/GlassFish.java
similarity index 100%
rename from MySports.admin/src/main/java/eclipselink/example/mysports/admin/model/GlassFish.java
rename to admin/src/main/java/eclipselink/example/mysports/admin/model/GlassFish.java
diff --git a/MySports.admin/src/main/java/eclipselink/example/mysports/admin/model/HostEnvironment.java b/admin/src/main/java/eclipselink/example/mysports/admin/model/HostEnvironment.java
similarity index 100%
rename from MySports.admin/src/main/java/eclipselink/example/mysports/admin/model/HostEnvironment.java
rename to admin/src/main/java/eclipselink/example/mysports/admin/model/HostEnvironment.java
diff --git a/admin/src/main/java/eclipselink/example/mysports/admin/model/HostedLeague.java b/admin/src/main/java/eclipselink/example/mysports/admin/model/HostedLeague.java
new file mode 100644
index 0000000..7fb9d20
--- /dev/null
+++ b/admin/src/main/java/eclipselink/example/mysports/admin/model/HostedLeague.java
@@ -0,0 +1,258 @@
+/*******************************************************************************
+ * 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.model;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.persistence.CollectionTable;
+import javax.persistence.Column;
+import javax.persistence.ElementCollection;
+import javax.persistence.Entity;
+import javax.persistence.EnumType;
+import javax.persistence.Enumerated;
+import javax.persistence.Id;
+import javax.persistence.NamedQueries;
+import javax.persistence.NamedQuery;
+import javax.persistence.Table;
+import javax.persistence.Transient;
+import javax.persistence.Version;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlTransient;
+
+/**
+ * A HostedLeague represents a sports league that is configured in the MySports
+ * Admin application. It contains the league's (tenant) configuration with
+ * respect to EclipseLink customization of data source, multi-tenancy, table
+ * names, and extended attributes. It also contains Look-and-Feel configuration
+ * for color scheme (CSS) and logo.
+ * 
+ * @author dclarke
+ * @since EclipseLink 2.3.0
+ */
+@Entity
+@Table(name = "mys_admin_league")
+@NamedQueries({ 
+		@NamedQuery(name = "HostedLeague.findAll", query = "SELECT l FROM HostedLeague l ORDER BY l.name"), 
+		@NamedQuery(name = "HostedLeague.findAllShared", query = "SELECT l FROM HostedLeague l WHERE l.shared = TRUE ORDER BY l.name") 
+})
+@XmlRootElement
+public class HostedLeague {
+
+    /**
+     * Unique identifier for the league. This must be a simple string with just
+     * characters that can be used within a URI.
+     */
+    @Id
+    private String id;
+
+    /**
+     * Descriptive name of league. This string is used for display purposes only
+     * and can contain spaces and punctuation.
+     */
+    private String name;
+
+    private String colourScheme = "default";
+
+    private String logoUrl;
+
+    @Transient
+    private String uri;
+
+    @Column(name = "datasource")
+    private String datasourceName;
+
+    /**
+     * Indicates that the league is hosted on a shared application instance
+     * using a SaaS approach. If False the league requires its own dedicated
+     * application instances to be packaged and deployed.
+     */
+    private boolean shared = true;
+
+    @Enumerated(EnumType.STRING)
+    @Column(name = "DATA_ISOLATION")
+    private DataIsolation dataIsolation = DataIsolation.ROW;
+
+    /**
+     * Extensions for Player
+     */
+    @ElementCollection
+    @CollectionTable(name = "mys_admin_player_ext")
+    @XmlTransient
+    private List<Extension> playerExtensions = new ArrayList<Extension>();
+
+    /**
+     * Extensions for Player
+     */
+    @ElementCollection
+    @CollectionTable(name = "mys_admin_team_ext")
+    @XmlTransient
+    private List<Extension> teamExtensions = new ArrayList<Extension>();
+
+    /**
+     * Extensions for Player
+     */
+    @ElementCollection
+    @CollectionTable(name = "mys_admin_div_ext")
+    @XmlTransient
+    private List<Extension> divExtensions = new ArrayList<Extension>();
+
+    @Version
+    private long version;
+
+    public HostedLeague() {
+    }
+
+    public HostedLeague(String id, String name, String scheme) {
+        this.id = id;
+        this.name = name;
+        this.colourScheme = scheme;
+    }
+
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getColourScheme() {
+        return colourScheme;
+    }
+
+    public void setColourScheme(String colourScheme) {
+        this.colourScheme = colourScheme;
+    }
+
+    public String getLogoUrl() {
+        return logoUrl;
+    }
+
+    public void setLogoUrl(String logoUrl) {
+        this.logoUrl = logoUrl;
+    }
+
+    public String getUri() {
+        return uri;
+    }
+
+    public void setUri(String uri) {
+        this.uri = uri;
+    }
+
+    public long getVersion() {
+        return version;
+    }
+
+    public String getDatasourceName() {
+        return datasourceName;
+    }
+
+    public void setDatasourceName(String datasourceName) {
+        this.datasourceName = datasourceName;
+    }
+
+    public List<Extension> getPlayerExtensions() {
+        return this.playerExtensions;
+    }
+
+    public void addPlayerExtension(String name, String javaType, String columnName) {
+        getPlayerExtensions().add(new Extension(name, javaType, columnName));
+    }
+
+    public Extension getPlayerExtension(String columnName) {
+        for (Extension ext : getPlayerExtensions()) {
+            if (ext.getColumnName().equals(columnName)) {
+                return ext;
+            }
+        }
+        return null;
+    }
+
+    public List<Extension> getTeamExtensions() {
+        return this.teamExtensions;
+    }
+
+    public void addTeamExtension(String name, String javaType, String columnName) {
+        getTeamExtensions().add(new Extension(name, javaType, columnName));
+    }
+
+    public Extension getTeamExtension(String columnName) {
+        for (Extension ext : getTeamExtensions()) {
+            if (ext.getColumnName().equals(columnName)) {
+                return ext;
+            }
+        }
+        return null;
+    }
+
+    public List<Extension> getDivisionExtensions() {
+        return this.divExtensions;
+    }
+
+    public void addDivisionExtension(String name, String javaType, String columnName) {
+        getDivisionExtensions().add(new Extension(name, javaType, columnName));
+    }
+
+    public Extension getDivisionExtension(String columnName) {
+        for (Extension ext : getPlayerExtensions()) {
+            if (ext.getColumnName().equals(columnName)) {
+                return ext;
+            }
+        }
+        return null;
+    }
+
+    public boolean isShared() {
+        return shared;
+    }
+
+    public void setShared(boolean shared) {
+        this.shared = shared;
+    }
+
+    public DataIsolation getDataIsolation() {
+        return dataIsolation;
+    }
+
+    public void setDataIsolation(DataIsolation dataIsolation) {
+        this.dataIsolation = dataIsolation;
+    }
+
+    protected void setVersion(long version) {
+        this.version = version;
+    }
+
+    public List<Extension> getExtensions(String entityType) {
+        if ("Player".equalsIgnoreCase(entityType)) {
+            return getPlayerExtensions();
+        }
+        if ("Division".equalsIgnoreCase(entityType)) {
+            return getDivisionExtensions();
+        }
+        if ("Team".equalsIgnoreCase(entityType)) {
+            return getTeamExtensions();
+        }
+        return null;
+    }
+
+}
diff --git a/MySports.admin/src/main/java/eclipselink/example/mysports/admin/model/Style.java b/admin/src/main/java/eclipselink/example/mysports/admin/model/Style.java
similarity index 100%
rename from MySports.admin/src/main/java/eclipselink/example/mysports/admin/model/Style.java
rename to admin/src/main/java/eclipselink/example/mysports/admin/model/Style.java
diff --git a/MySports.admin/src/main/java/eclipselink/example/mysports/admin/model/WebLogic.java b/admin/src/main/java/eclipselink/example/mysports/admin/model/WebLogic.java
similarity index 100%
rename from MySports.admin/src/main/java/eclipselink/example/mysports/admin/model/WebLogic.java
rename to admin/src/main/java/eclipselink/example/mysports/admin/model/WebLogic.java
diff --git a/MySports.admin/src/main/java/eclipselink/example/mysports/admin/model/jaxb.properties b/admin/src/main/java/eclipselink/example/mysports/admin/model/jaxb.properties
similarity index 100%
rename from MySports.admin/src/main/java/eclipselink/example/mysports/admin/model/jaxb.properties
rename to admin/src/main/java/eclipselink/example/mysports/admin/model/jaxb.properties
diff --git a/MySports.admin/src/main/java/eclipselink/example/mysports/admin/services/HostEnvironmentRepository.java b/admin/src/main/java/eclipselink/example/mysports/admin/services/HostEnvironmentRepository.java
similarity index 100%
rename from MySports.admin/src/main/java/eclipselink/example/mysports/admin/services/HostEnvironmentRepository.java
rename to admin/src/main/java/eclipselink/example/mysports/admin/services/HostEnvironmentRepository.java
diff --git a/MySports.admin/src/main/java/eclipselink/example/mysports/admin/services/HostEnvironmentRepositoryBean.java b/admin/src/main/java/eclipselink/example/mysports/admin/services/HostEnvironmentRepositoryBean.java
similarity index 100%
rename from MySports.admin/src/main/java/eclipselink/example/mysports/admin/services/HostEnvironmentRepositoryBean.java
rename to admin/src/main/java/eclipselink/example/mysports/admin/services/HostEnvironmentRepositoryBean.java
diff --git a/MySports.admin/src/main/java/eclipselink/example/mysports/admin/services/HostedLeagueRepository.java b/admin/src/main/java/eclipselink/example/mysports/admin/services/HostedLeagueRepository.java
similarity index 100%
rename from MySports.admin/src/main/java/eclipselink/example/mysports/admin/services/HostedLeagueRepository.java
rename to admin/src/main/java/eclipselink/example/mysports/admin/services/HostedLeagueRepository.java
diff --git a/MySports.admin/src/main/java/eclipselink/example/mysports/admin/services/HostedLeagueRepositoryBean.java b/admin/src/main/java/eclipselink/example/mysports/admin/services/HostedLeagueRepositoryBean.java
similarity index 100%
rename from MySports.admin/src/main/java/eclipselink/example/mysports/admin/services/HostedLeagueRepositoryBean.java
rename to admin/src/main/java/eclipselink/example/mysports/admin/services/HostedLeagueRepositoryBean.java
diff --git a/MySports.admin/src/main/java/eclipselink/example/mysports/admin/services/MyService.java b/admin/src/main/java/eclipselink/example/mysports/admin/services/MyService.java
similarity index 100%
rename from MySports.admin/src/main/java/eclipselink/example/mysports/admin/services/MyService.java
rename to admin/src/main/java/eclipselink/example/mysports/admin/services/MyService.java
diff --git a/MySports.admin/src/main/java/eclipselink/example/mysports/admin/services/glassfish/JDBCResource.java b/admin/src/main/java/eclipselink/example/mysports/admin/services/glassfish/JDBCResource.java
similarity index 100%
rename from MySports.admin/src/main/java/eclipselink/example/mysports/admin/services/glassfish/JDBCResource.java
rename to admin/src/main/java/eclipselink/example/mysports/admin/services/glassfish/JDBCResource.java
diff --git a/MySports.admin/src/main/java/eclipselink/example/mysports/admin/services/glassfish/MOXyContextHelper.java b/admin/src/main/java/eclipselink/example/mysports/admin/services/glassfish/MOXyContextHelper.java
similarity index 100%
rename from MySports.admin/src/main/java/eclipselink/example/mysports/admin/services/glassfish/MOXyContextHelper.java
rename to admin/src/main/java/eclipselink/example/mysports/admin/services/glassfish/MOXyContextHelper.java
diff --git a/MySports.admin/src/main/java/eclipselink/example/mysports/admin/services/glassfish/Message.java b/admin/src/main/java/eclipselink/example/mysports/admin/services/glassfish/Message.java
similarity index 100%
rename from MySports.admin/src/main/java/eclipselink/example/mysports/admin/services/glassfish/Message.java
rename to admin/src/main/java/eclipselink/example/mysports/admin/services/glassfish/Message.java
diff --git a/MySports.admin/src/main/java/eclipselink/example/mysports/admin/services/glassfish/Properties.java b/admin/src/main/java/eclipselink/example/mysports/admin/services/glassfish/Properties.java
similarity index 100%
rename from MySports.admin/src/main/java/eclipselink/example/mysports/admin/services/glassfish/Properties.java
rename to admin/src/main/java/eclipselink/example/mysports/admin/services/glassfish/Properties.java
diff --git a/MySports.admin/src/main/java/eclipselink/example/mysports/admin/services/glassfish/Property.java b/admin/src/main/java/eclipselink/example/mysports/admin/services/glassfish/Property.java
similarity index 100%
rename from MySports.admin/src/main/java/eclipselink/example/mysports/admin/services/glassfish/Property.java
rename to admin/src/main/java/eclipselink/example/mysports/admin/services/glassfish/Property.java
diff --git a/MySports.admin/src/main/java/eclipselink/example/mysports/admin/services/glassfish/RESTOperations.java b/admin/src/main/java/eclipselink/example/mysports/admin/services/glassfish/RESTOperations.java
similarity index 100%
rename from MySports.admin/src/main/java/eclipselink/example/mysports/admin/services/glassfish/RESTOperations.java
rename to admin/src/main/java/eclipselink/example/mysports/admin/services/glassfish/RESTOperations.java
diff --git a/MySports.admin/src/main/java/eclipselink/example/mysports/admin/services/glassfish/Result.java b/admin/src/main/java/eclipselink/example/mysports/admin/services/glassfish/Result.java
similarity index 100%
rename from MySports.admin/src/main/java/eclipselink/example/mysports/admin/services/glassfish/Result.java
rename to admin/src/main/java/eclipselink/example/mysports/admin/services/glassfish/Result.java
diff --git a/MySports.admin/src/main/java/eclipselink/example/mysports/admin/services/glassfish/jaxb.properties b/admin/src/main/java/eclipselink/example/mysports/admin/services/glassfish/jaxb.properties
similarity index 100%
rename from MySports.admin/src/main/java/eclipselink/example/mysports/admin/services/glassfish/jaxb.properties
rename to admin/src/main/java/eclipselink/example/mysports/admin/services/glassfish/jaxb.properties
diff --git a/MySports.admin/src/main/resources/META-INF/eclipselink-oxm.xml b/admin/src/main/resources/META-INF/eclipselink-oxm.xml
similarity index 100%
rename from MySports.admin/src/main/resources/META-INF/eclipselink-oxm.xml
rename to admin/src/main/resources/META-INF/eclipselink-oxm.xml
diff --git a/MySports.admin/src/main/resources/META-INF/persistence.xml b/admin/src/main/resources/META-INF/persistence.xml
similarity index 100%
rename from MySports.admin/src/main/resources/META-INF/persistence.xml
rename to admin/src/main/resources/META-INF/persistence.xml
diff --git a/MySports.admin/src/main/resources/hthl.png b/admin/src/main/resources/hthl.png
similarity index 100%
rename from MySports.admin/src/main/resources/hthl.png
rename to admin/src/main/resources/hthl.png
Binary files differ
diff --git a/MySports.admin/src/main/resources/kfl.png b/admin/src/main/resources/kfl.png
similarity index 100%
rename from MySports.admin/src/main/resources/kfl.png
rename to admin/src/main/resources/kfl.png
Binary files differ
diff --git a/MySports.admin/src/main/resources/mha.png b/admin/src/main/resources/mha.png
similarity index 100%
rename from MySports.admin/src/main/resources/mha.png
rename to admin/src/main/resources/mha.png
Binary files differ
diff --git a/MySports.admin/src/main/resources/osl.png b/admin/src/main/resources/osl.png
similarity index 100%
rename from MySports.admin/src/main/resources/osl.png
rename to admin/src/main/resources/osl.png
Binary files differ
diff --git a/MySports.admin/src/main/webapp/META-INF/MANIFEST.MF b/admin/src/main/webapp/META-INF/MANIFEST.MF
similarity index 100%
rename from MySports.admin/src/main/webapp/META-INF/MANIFEST.MF
rename to admin/src/main/webapp/META-INF/MANIFEST.MF
diff --git a/MySports.admin/src/main/webapp/WEB-INF/faces-config.xml b/admin/src/main/webapp/WEB-INF/faces-config.xml
similarity index 100%
rename from MySports.admin/src/main/webapp/WEB-INF/faces-config.xml
rename to admin/src/main/webapp/WEB-INF/faces-config.xml
diff --git a/MySports.admin/src/main/webapp/WEB-INF/lib/jersey-client-1.12.jar b/admin/src/main/webapp/WEB-INF/lib/jersey-client-1.12.jar
similarity index 100%
rename from MySports.admin/src/main/webapp/WEB-INF/lib/jersey-client-1.12.jar
rename to admin/src/main/webapp/WEB-INF/lib/jersey-client-1.12.jar
Binary files differ
diff --git a/MySports.admin/src/main/webapp/WEB-INF/lib/jersey-core-1.12.jar b/admin/src/main/webapp/WEB-INF/lib/jersey-core-1.12.jar
similarity index 100%
rename from MySports.admin/src/main/webapp/WEB-INF/lib/jersey-core-1.12.jar
rename to admin/src/main/webapp/WEB-INF/lib/jersey-core-1.12.jar
Binary files differ
diff --git a/MySports.admin/src/main/webapp/WEB-INF/lib/org.eclipse.persistence.jpars_2.4.0.v20120608-r11652.jar b/admin/src/main/webapp/WEB-INF/lib/org.eclipse.persistence.jpars_2.4.0.v20120608-r11652.jar
similarity index 100%
rename from MySports.admin/src/main/webapp/WEB-INF/lib/org.eclipse.persistence.jpars_2.4.0.v20120608-r11652.jar
rename to admin/src/main/webapp/WEB-INF/lib/org.eclipse.persistence.jpars_2.4.0.v20120608-r11652.jar
Binary files differ
diff --git a/MySports.admin/src/main/webapp/WEB-INF/sun-web.xml b/admin/src/main/webapp/WEB-INF/sun-web.xml
similarity index 100%
rename from MySports.admin/src/main/webapp/WEB-INF/sun-web.xml
rename to admin/src/main/webapp/WEB-INF/sun-web.xml
diff --git a/MySports.admin/src/main/webapp/WEB-INF/web.xml b/admin/src/main/webapp/WEB-INF/web.xml
similarity index 100%
rename from MySports.admin/src/main/webapp/WEB-INF/web.xml
rename to admin/src/main/webapp/WEB-INF/web.xml
diff --git a/MySports.admin/src/main/webapp/about.xhtml b/admin/src/main/webapp/about.xhtml
similarity index 100%
rename from MySports.admin/src/main/webapp/about.xhtml
rename to admin/src/main/webapp/about.xhtml
diff --git a/MySports.admin/src/main/webapp/default.css b/admin/src/main/webapp/default.css
similarity index 100%
rename from MySports.admin/src/main/webapp/default.css
rename to admin/src/main/webapp/default.css
diff --git a/MySports.admin/src/main/webapp/images/bg_button_a.gif b/admin/src/main/webapp/images/bg_button_a.gif
similarity index 100%
rename from MySports.admin/src/main/webapp/images/bg_button_a.gif
rename to admin/src/main/webapp/images/bg_button_a.gif
Binary files differ
diff --git a/MySports.admin/src/main/webapp/images/bg_button_span.gif b/admin/src/main/webapp/images/bg_button_span.gif
similarity index 100%
rename from MySports.admin/src/main/webapp/images/bg_button_span.gif
rename to admin/src/main/webapp/images/bg_button_span.gif
Binary files differ
diff --git a/MySports.admin/src/main/webapp/images/eclipselink.png b/admin/src/main/webapp/images/eclipselink.png
similarity index 100%
rename from MySports.admin/src/main/webapp/images/eclipselink.png
rename to admin/src/main/webapp/images/eclipselink.png
Binary files differ
diff --git a/MySports.admin/src/main/webapp/images/mysports.png b/admin/src/main/webapp/images/mysports.png
similarity index 100%
rename from MySports.admin/src/main/webapp/images/mysports.png
rename to admin/src/main/webapp/images/mysports.png
Binary files differ
diff --git a/MySports.admin/src/main/webapp/index.jsp b/admin/src/main/webapp/index.jsp
similarity index 100%
rename from MySports.admin/src/main/webapp/index.jsp
rename to admin/src/main/webapp/index.jsp
diff --git a/MySports.admin/src/main/webapp/index.xhtml b/admin/src/main/webapp/index.xhtml
similarity index 100%
rename from MySports.admin/src/main/webapp/index.xhtml
rename to admin/src/main/webapp/index.xhtml
diff --git a/MySports.admin/src/main/webapp/league.xhtml b/admin/src/main/webapp/league.xhtml
similarity index 100%
rename from MySports.admin/src/main/webapp/league.xhtml
rename to admin/src/main/webapp/league.xhtml
diff --git a/MySports.admin/src/main/webapp/logos/hthl.png b/admin/src/main/webapp/logos/hthl.png
similarity index 100%
rename from MySports.admin/src/main/webapp/logos/hthl.png
rename to admin/src/main/webapp/logos/hthl.png
Binary files differ
diff --git a/MySports.admin/src/main/webapp/logos/kfl.png b/admin/src/main/webapp/logos/kfl.png
similarity index 100%
rename from MySports.admin/src/main/webapp/logos/kfl.png
rename to admin/src/main/webapp/logos/kfl.png
Binary files differ
diff --git a/MySports.admin/src/main/webapp/logos/osl.png b/admin/src/main/webapp/logos/osl.png
similarity index 100%
rename from MySports.admin/src/main/webapp/logos/osl.png
rename to admin/src/main/webapp/logos/osl.png
Binary files differ
diff --git a/MySports.admin/src/main/webapp/template.jsf b/admin/src/main/webapp/template.jsf
similarity index 100%
rename from MySports.admin/src/main/webapp/template.jsf
rename to admin/src/main/webapp/template.jsf
diff --git a/MySports.admin/src/main/webapp/xsds/leagues.xsd b/admin/src/main/webapp/xsds/leagues.xsd
similarity index 100%
rename from MySports.admin/src/main/webapp/xsds/leagues.xsd
rename to admin/src/main/webapp/xsds/leagues.xsd
diff --git a/MySports.admin/src/test/java/eclipselink/example/mysports/admin/test/AllTests.java b/admin/src/test/java/eclipselink/example/mysports/admin/test/AllTests.java
similarity index 90%
rename from MySports.admin/src/test/java/eclipselink/example/mysports/admin/test/AllTests.java
rename to admin/src/test/java/eclipselink/example/mysports/admin/test/AllTests.java
index 95e0cc8..15c3402 100644
--- a/MySports.admin/src/test/java/eclipselink/example/mysports/admin/test/AllTests.java
+++ b/admin/src/test/java/eclipselink/example/mysports/admin/test/AllTests.java
@@ -27,8 +27,7 @@
                 CreateHostEnvironments.class,
                 CreateLeagues.class,
                 CreateStyles.class,
-                AdminServerConnectorTests.class,
-                example.mysports.tests.admin.services.glassfish.AllTests.class,
+                eclipselink.example.mysports.admin.test.services.glassfish.AllTests.class,
                 })
 public class AllTests {
 
diff --git a/MySports.admin/src/test/java/eclipselink/example/mysports/admin/test/CreateDatabase.java b/admin/src/test/java/eclipselink/example/mysports/admin/test/CreateDatabase.java
similarity index 95%
rename from MySports.admin/src/test/java/eclipselink/example/mysports/admin/test/CreateDatabase.java
rename to admin/src/test/java/eclipselink/example/mysports/admin/test/CreateDatabase.java
index cf307a5..44151ac 100644
--- a/MySports.admin/src/test/java/eclipselink/example/mysports/admin/test/CreateDatabase.java
+++ b/admin/src/test/java/eclipselink/example/mysports/admin/test/CreateDatabase.java
@@ -18,8 +18,6 @@
 import javax.persistence.EntityManagerFactory;
 import javax.persistence.Persistence;
 
-import junit.framework.Assert;
-
 import org.eclipse.persistence.config.PersistenceUnitProperties;
 import org.eclipse.persistence.config.SessionCustomizer;
 import org.eclipse.persistence.exceptions.IntegrityChecker;
@@ -27,6 +25,7 @@
 import org.eclipse.persistence.sessions.Session;
 import org.eclipse.persistence.sessions.server.Server;
 import org.eclipse.persistence.tools.schemaframework.SchemaManager;
+import org.junit.Assert;
 import org.junit.Test;
 
 /**
@@ -47,7 +46,7 @@
         EntityManagerFactory emf = null;
 
         try {
-            emf = Persistence.createEntityManagerFactory("MySportsAdmin", TestingLeagueRepository.get());
+            emf = Persistence.createEntityManagerFactory("MySportsAdmin", PersistenceTesting.get());
 
             Server session = JpaHelper.getServerSession(emf);
             SchemaManager sm = new SchemaManager(session);
@@ -67,7 +66,7 @@
     public void verifyEmpty() throws Exception {
         EntityManagerFactory emf = null;
         try {
-            emf = Persistence.createEntityManagerFactory("MySportsAdmin", TestingLeagueRepository.get());
+            emf = Persistence.createEntityManagerFactory("MySportsAdmin", PersistenceTesting.get());
 
             EntityManager em = emf.createEntityManager();
 
@@ -89,7 +88,7 @@
      */
     @Test
     public void verifyMySportsAdminSchema() {
-        Map<String, Object> properties = TestingLeagueRepository.get();
+        Map<String, Object> properties = PersistenceTesting.get();
 
         properties.put(PersistenceUnitProperties.SESSION_CUSTOMIZER, EnableIntegrityChecker.class.getName());
         properties.put(PersistenceUnitProperties.DEPLOY_ON_STARTUP, Boolean.TRUE.toString());
diff --git a/MySports.admin/src/test/java/eclipselink/example/mysports/admin/test/CreateHostEnvironments.java b/admin/src/test/java/eclipselink/example/mysports/admin/test/CreateHostEnvironments.java
similarity index 96%
rename from MySports.admin/src/test/java/eclipselink/example/mysports/admin/test/CreateHostEnvironments.java
rename to admin/src/test/java/eclipselink/example/mysports/admin/test/CreateHostEnvironments.java
index 7b750d8..f2d5838 100644
--- a/MySports.admin/src/test/java/eclipselink/example/mysports/admin/test/CreateHostEnvironments.java
+++ b/admin/src/test/java/eclipselink/example/mysports/admin/test/CreateHostEnvironments.java
@@ -27,7 +27,6 @@
 import eclipselink.example.mysports.admin.model.HostEnvironment;
 import eclipselink.example.mysports.admin.services.HostEnvironmentRepository;
 import eclipselink.example.mysports.admin.services.HostEnvironmentRepositoryBean;
-import example.mysports.tests.TestingLeagueRepository;
 
 /**
  * Create initial {@link Datasource} instances.
@@ -78,7 +77,7 @@
 
     @BeforeClass
     public static void createReposirory() {
-        emf = Persistence.createEntityManagerFactory("MySportsAdmin", TestingLeagueRepository.get());
+        emf = Persistence.createEntityManagerFactory("MySportsAdmin", PersistenceTesting.get());
 
         EntityManager em = emf.createEntityManager();
         try {
diff --git a/MySports.admin/src/test/java/eclipselink/example/mysports/admin/test/CreateLeagues.java b/admin/src/test/java/eclipselink/example/mysports/admin/test/CreateLeagues.java
similarity index 98%
rename from MySports.admin/src/test/java/eclipselink/example/mysports/admin/test/CreateLeagues.java
rename to admin/src/test/java/eclipselink/example/mysports/admin/test/CreateLeagues.java
index d3b45ae..64b3806 100644
--- a/MySports.admin/src/test/java/eclipselink/example/mysports/admin/test/CreateLeagues.java
+++ b/admin/src/test/java/eclipselink/example/mysports/admin/test/CreateLeagues.java
@@ -16,7 +16,7 @@
 import javax.persistence.EntityManagerFactory;
 import javax.persistence.Persistence;
 
-import junit.framework.Assert;
+import org.junit.Assert;
 
 import org.eclipse.persistence.jpa.JpaHelper;
 import org.eclipse.persistence.sessions.server.Server;
@@ -93,7 +93,7 @@
 
     @BeforeClass
     public static void createEMF() {
-        emf = Persistence.createEntityManagerFactory("MySportsAdmin", TestingLeagueRepository.get());
+        emf = Persistence.createEntityManagerFactory("MySportsAdmin", PersistenceTesting.get());
 
         EntityManager em = emf.createEntityManager();
         try {
diff --git a/admin/src/test/java/eclipselink/example/mysports/admin/test/PersistenceTesting.java b/admin/src/test/java/eclipselink/example/mysports/admin/test/PersistenceTesting.java
new file mode 100644
index 0000000..da2f143
--- /dev/null
+++ b/admin/src/test/java/eclipselink/example/mysports/admin/test/PersistenceTesting.java
@@ -0,0 +1,51 @@
+/*******************************************************************************
+ * 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;
+
+import static org.eclipse.persistence.config.PersistenceUnitProperties.CONNECTION_POOL;
+import static org.eclipse.persistence.config.PersistenceUnitProperties.CONNECTION_POOL_INITIAL;
+import static org.eclipse.persistence.config.PersistenceUnitProperties.CONNECTION_POOL_MIN;
+import static org.eclipse.persistence.config.PersistenceUnitProperties.CONNECTION_POOL_READ;
+import static org.eclipse.persistence.config.PersistenceUnitProperties.NON_JTA_DATASOURCE;
+import static org.eclipse.persistence.config.PersistenceUnitProperties.TRANSACTION_TYPE;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import eclipselink.example.mysports.persistence.test.ExamplePropertiesLoader;
+
+public class PersistenceTesting {
+
+    public static Map<String, Object> add(Map<String, Object> properties) {
+        Map<String, Object> props = properties;
+
+        if (props == null) {
+            props = new HashMap<String, Object>();
+        }
+        props.put(TRANSACTION_TYPE, "RESOURCE_LOCAL");
+        props.put(NON_JTA_DATASOURCE, "");
+
+        props.put(CONNECTION_POOL_READ + CONNECTION_POOL_INITIAL, "1");
+        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");
+
+        ExamplePropertiesLoader.loadProperties(props);
+        return props;
+    }
+
+    public static Map<String, Object> get() {
+        return add(null);
+    }
+
+}
diff --git a/MySports.admin/src/test/java/eclipselink/example/mysports/admin/test/VerifyModelAndMappings.java b/admin/src/test/java/eclipselink/example/mysports/admin/test/VerifyModelAndMappings.java
similarity index 95%
rename from MySports.admin/src/test/java/eclipselink/example/mysports/admin/test/VerifyModelAndMappings.java
rename to admin/src/test/java/eclipselink/example/mysports/admin/test/VerifyModelAndMappings.java
index 5b414c0..38fa33a 100644
--- a/MySports.admin/src/test/java/eclipselink/example/mysports/admin/test/VerifyModelAndMappings.java
+++ b/admin/src/test/java/eclipselink/example/mysports/admin/test/VerifyModelAndMappings.java
@@ -15,20 +15,18 @@
 import javax.persistence.EntityManagerFactory;
 import javax.persistence.Persistence;
 
-import junit.framework.Assert;
-
 import org.eclipse.persistence.descriptors.ClassDescriptor;
 import org.eclipse.persistence.internal.helper.Helper;
 import org.eclipse.persistence.jpa.JpaHelper;
 import org.eclipse.persistence.sessions.server.Server;
 import org.junit.AfterClass;
+import org.junit.Assert;
 import org.junit.BeforeClass;
 import org.junit.Test;
 
 import eclipselink.example.mysports.admin.model.Extension;
 import eclipselink.example.mysports.admin.model.HostedLeague;
 import eclipselink.example.mysports.admin.model.Style;
-import example.mysports.tests.TestingLeagueRepository;
 
 /**
  * @author dclarke
@@ -76,7 +74,7 @@
 
     @BeforeClass
     public static void createEMF() {
-        emf = Persistence.createEntityManagerFactory("MySportsAdmin", TestingLeagueRepository.get());
+        emf = Persistence.createEntityManagerFactory("MySportsAdmin", PersistenceTesting.get());
     }
 
     @AfterClass
diff --git a/admin/src/test/java/eclipselink/example/mysports/admin/test/extensions/CreateOrmXML.java b/admin/src/test/java/eclipselink/example/mysports/admin/test/extensions/CreateOrmXML.java
new file mode 100644
index 0000000..989b8c6
--- /dev/null
+++ b/admin/src/test/java/eclipselink/example/mysports/admin/test/extensions/CreateOrmXML.java
@@ -0,0 +1,53 @@
+/*******************************************************************************
+ * 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;
+
+import javax.persistence.EntityManager;
+import javax.persistence.EntityManagerFactory;
+import javax.persistence.Persistence;
+
+import org.eclipse.persistence.internal.jpa.metadata.xml.XMLEntityMappings;
+import org.eclipse.persistence.internal.jpa.metadata.xml.XMLEntityMappingsWriter;
+import org.junit.Test;
+
+import eclipselink.example.mysports.admin.jaxrs.MappingsLoader;
+import eclipselink.example.mysports.admin.test.PersistenceTesting;
+
+public class CreateOrmXML {
+
+    @Test
+    public void createEmpty() {
+        XMLEntityMappings mappings = new XMLEntityMappings();
+        mappings.setVersion("2.3");
+
+        XMLEntityMappingsWriter.write(mappings, System.out);
+    }
+
+    @Test
+    public void createFromDB() {
+        EntityManagerFactory emf = Persistence.createEntityManagerFactory("MySportsAdmin", PersistenceTesting.get());
+        EntityManager em = emf.createEntityManager();
+
+        try {
+            String xml = MappingsLoader.getORMapping(em, "OSL");
+            System.out.println(xml);
+
+            xml = MappingsLoader.getORMapping(em, "HTHL");
+            System.out.println(xml);
+        } finally {
+            em.close();
+            emf.close();
+        }
+    }
+
+}
diff --git a/MySports.admin/src/test/java/eclipselink/example/mysports/admin/test/extensions/CreateXMLBindingsTests.java b/admin/src/test/java/eclipselink/example/mysports/admin/test/extensions/CreateXMLBindingsTests.java
similarity index 98%
rename from MySports.admin/src/test/java/eclipselink/example/mysports/admin/test/extensions/CreateXMLBindingsTests.java
rename to admin/src/test/java/eclipselink/example/mysports/admin/test/extensions/CreateXMLBindingsTests.java
index 30886fb..b65de33 100644
--- a/MySports.admin/src/test/java/eclipselink/example/mysports/admin/test/extensions/CreateXMLBindingsTests.java
+++ b/admin/src/test/java/eclipselink/example/mysports/admin/test/extensions/CreateXMLBindingsTests.java
@@ -13,5 +13,5 @@
 package eclipselink.example.mysports.admin.test.extensions;
 
 public class CreateXMLBindingsTests {
-
+	// TODO
 }
diff --git a/MySports.admin/src/test/java/eclipselink/example/mysports/admin/test/league/AllTests.java b/admin/src/test/java/eclipselink/example/mysports/admin/test/league/AllTests.java
similarity index 100%
rename from MySports.admin/src/test/java/eclipselink/example/mysports/admin/test/league/AllTests.java
rename to admin/src/test/java/eclipselink/example/mysports/admin/test/league/AllTests.java
diff --git a/MySports.admin/src/test/java/eclipselink/example/mysports/admin/test/league/DynamicJAXBTests.java b/admin/src/test/java/eclipselink/example/mysports/admin/test/league/DynamicJAXBTests.java
similarity index 98%
rename from MySports.admin/src/test/java/eclipselink/example/mysports/admin/test/league/DynamicJAXBTests.java
rename to admin/src/test/java/eclipselink/example/mysports/admin/test/league/DynamicJAXBTests.java
index ce683de..143cc6f 100644
--- a/MySports.admin/src/test/java/eclipselink/example/mysports/admin/test/league/DynamicJAXBTests.java
+++ b/admin/src/test/java/eclipselink/example/mysports/admin/test/league/DynamicJAXBTests.java
@@ -19,7 +19,7 @@
 
 import javax.xml.bind.JAXBException;
 
-import junit.framework.Assert;
+import org.junit.Assert;
 
 import org.eclipse.persistence.dynamic.DynamicEntity;
 import org.eclipse.persistence.jaxb.dynamic.DynamicJAXBContext;
diff --git a/MySports.admin/src/test/java/eclipselink/example/mysports/admin/test/league/LeagueJAXBTests.java b/admin/src/test/java/eclipselink/example/mysports/admin/test/league/LeagueJAXBTests.java
similarity index 95%
rename from MySports.admin/src/test/java/eclipselink/example/mysports/admin/test/league/LeagueJAXBTests.java
rename to admin/src/test/java/eclipselink/example/mysports/admin/test/league/LeagueJAXBTests.java
index 7f09fbd..665f2d0 100644
--- a/MySports.admin/src/test/java/eclipselink/example/mysports/admin/test/league/LeagueJAXBTests.java
+++ b/admin/src/test/java/eclipselink/example/mysports/admin/test/league/LeagueJAXBTests.java
@@ -21,14 +21,14 @@
 import javax.xml.bind.JAXBException;
 import javax.xml.bind.Marshaller;
 
-import junit.framework.Assert;
-
 import org.junit.AfterClass;
+import org.junit.Assert;
 import org.junit.BeforeClass;
 import org.junit.Test;
 
 import eclipselink.example.mysports.admin.jaxrs.MySportsContextResolver;
 import eclipselink.example.mysports.admin.model.HostedLeague;
+import eclipselink.example.mysports.admin.test.PersistenceTesting;
 
 /**
  * 
@@ -72,7 +72,7 @@
 
     @BeforeClass
     public static void createEMF() {
-        emf = Persistence.createEntityManagerFactory("MySportsAdmin", TestingLeagueRepository.get());
+        emf = Persistence.createEntityManagerFactory("MySportsAdmin", PersistenceTesting.get());
     }
 
     @AfterClass
diff --git a/MySports.admin/src/test/java/eclipselink/example/mysports/admin/test/league/SchemaGenerator.java b/admin/src/test/java/eclipselink/example/mysports/admin/test/league/SchemaGenerator.java
similarity index 100%
rename from MySports.admin/src/test/java/eclipselink/example/mysports/admin/test/league/SchemaGenerator.java
rename to admin/src/test/java/eclipselink/example/mysports/admin/test/league/SchemaGenerator.java
diff --git a/MySports.admin/src/test/java/eclipselink/example/mysports/admin/test/services/glassfish/AllTests.java b/admin/src/test/java/eclipselink/example/mysports/admin/test/services/glassfish/AllTests.java
similarity index 100%
rename from MySports.admin/src/test/java/eclipselink/example/mysports/admin/test/services/glassfish/AllTests.java
rename to admin/src/test/java/eclipselink/example/mysports/admin/test/services/glassfish/AllTests.java
diff --git a/MySports.admin/src/test/java/eclipselink/example/mysports/admin/test/services/glassfish/BaseJsonRestTest.java b/admin/src/test/java/eclipselink/example/mysports/admin/test/services/glassfish/BaseJsonRestTest.java
similarity index 98%
rename from MySports.admin/src/test/java/eclipselink/example/mysports/admin/test/services/glassfish/BaseJsonRestTest.java
rename to admin/src/test/java/eclipselink/example/mysports/admin/test/services/glassfish/BaseJsonRestTest.java
index 4db8763..01f4e81 100644
--- a/MySports.admin/src/test/java/eclipselink/example/mysports/admin/test/services/glassfish/BaseJsonRestTest.java
+++ b/admin/src/test/java/eclipselink/example/mysports/admin/test/services/glassfish/BaseJsonRestTest.java
@@ -23,7 +23,7 @@
 import javax.xml.namespace.QName;
 import javax.xml.transform.stream.StreamSource;
 
-import junit.framework.Assert;
+import org.junit.Assert;
 
 import org.eclipse.persistence.oxm.MediaType;
 
diff --git a/MySports.admin/src/test/java/eclipselink/example/mysports/admin/test/services/glassfish/MOXyContextTests.java b/admin/src/test/java/eclipselink/example/mysports/admin/test/services/glassfish/MOXyContextTests.java
similarity index 98%
rename from MySports.admin/src/test/java/eclipselink/example/mysports/admin/test/services/glassfish/MOXyContextTests.java
rename to admin/src/test/java/eclipselink/example/mysports/admin/test/services/glassfish/MOXyContextTests.java
index afcea42..0f40c9f 100644
--- a/MySports.admin/src/test/java/eclipselink/example/mysports/admin/test/services/glassfish/MOXyContextTests.java
+++ b/admin/src/test/java/eclipselink/example/mysports/admin/test/services/glassfish/MOXyContextTests.java
@@ -22,7 +22,7 @@
 import javax.xml.bind.Unmarshaller;
 import javax.xml.transform.stream.StreamSource;
 
-import junit.framework.Assert;
+import org.junit.Assert;
 
 import org.eclipse.persistence.oxm.MediaType;
 import org.junit.Test;
diff --git a/MySports.admin/src/test/java/eclipselink/example/mysports/admin/test/services/glassfish/ParseJDBCConnectPool_mysports_Tests.java b/admin/src/test/java/eclipselink/example/mysports/admin/test/services/glassfish/ParseJDBCConnectPool_mysports_Tests.java
similarity index 100%
rename from MySports.admin/src/test/java/eclipselink/example/mysports/admin/test/services/glassfish/ParseJDBCConnectPool_mysports_Tests.java
rename to admin/src/test/java/eclipselink/example/mysports/admin/test/services/glassfish/ParseJDBCConnectPool_mysports_Tests.java
diff --git a/MySports.admin/src/test/java/eclipselink/example/mysports/admin/test/services/glassfish/ParseJDBCConnectPool_mysports_property_Tests.java b/admin/src/test/java/eclipselink/example/mysports/admin/test/services/glassfish/ParseJDBCConnectPool_mysports_property_Tests.java
similarity index 100%
rename from MySports.admin/src/test/java/eclipselink/example/mysports/admin/test/services/glassfish/ParseJDBCConnectPool_mysports_property_Tests.java
rename to admin/src/test/java/eclipselink/example/mysports/admin/test/services/glassfish/ParseJDBCConnectPool_mysports_property_Tests.java
diff --git a/MySports.admin/src/test/java/eclipselink/example/mysports/admin/test/services/glassfish/ParseJDBCResourcesTests.java b/admin/src/test/java/eclipselink/example/mysports/admin/test/services/glassfish/ParseJDBCResourcesTests.java
similarity index 98%
rename from MySports.admin/src/test/java/eclipselink/example/mysports/admin/test/services/glassfish/ParseJDBCResourcesTests.java
rename to admin/src/test/java/eclipselink/example/mysports/admin/test/services/glassfish/ParseJDBCResourcesTests.java
index 592eb25..6666abc 100644
--- a/MySports.admin/src/test/java/eclipselink/example/mysports/admin/test/services/glassfish/ParseJDBCResourcesTests.java
+++ b/admin/src/test/java/eclipselink/example/mysports/admin/test/services/glassfish/ParseJDBCResourcesTests.java
@@ -17,7 +17,7 @@
 import javax.xml.bind.Unmarshaller;
 import javax.xml.namespace.QName;
 
-import junit.framework.Assert;
+import org.junit.Assert;
 
 import org.junit.Test;
 
diff --git a/MySports.admin/src/test/java/eclipselink/example/mysports/admin/test/services/glassfish/ParseListJDBCConnectionPoolsTests.java b/admin/src/test/java/eclipselink/example/mysports/admin/test/services/glassfish/ParseListJDBCConnectionPoolsTests.java
similarity index 100%
rename from MySports.admin/src/test/java/eclipselink/example/mysports/admin/test/services/glassfish/ParseListJDBCConnectionPoolsTests.java
rename to admin/src/test/java/eclipselink/example/mysports/admin/test/services/glassfish/ParseListJDBCConnectionPoolsTests.java
diff --git a/MySports.admin/src/test/java/eclipselink/example/mysports/admin/test/services/glassfish/ParseListJDBCResourcesTests.java b/admin/src/test/java/eclipselink/example/mysports/admin/test/services/glassfish/ParseListJDBCResourcesTests.java
similarity index 98%
rename from MySports.admin/src/test/java/eclipselink/example/mysports/admin/test/services/glassfish/ParseListJDBCResourcesTests.java
rename to admin/src/test/java/eclipselink/example/mysports/admin/test/services/glassfish/ParseListJDBCResourcesTests.java
index fc3ab1f..27bc2bd 100644
--- a/MySports.admin/src/test/java/eclipselink/example/mysports/admin/test/services/glassfish/ParseListJDBCResourcesTests.java
+++ b/admin/src/test/java/eclipselink/example/mysports/admin/test/services/glassfish/ParseListJDBCResourcesTests.java
@@ -17,7 +17,7 @@
 import javax.xml.bind.Marshaller;
 import javax.xml.bind.Unmarshaller;
 
-import junit.framework.Assert;
+import org.junit.Assert;
 
 import org.junit.Test;
 
diff --git a/MySports.admin/src/test/java/eclipselink/example/mysports/admin/test/services/glassfish/jdbc-connection-pool_mysports.json b/admin/src/test/java/eclipselink/example/mysports/admin/test/services/glassfish/jdbc-connection-pool_mysports.json
similarity index 100%
rename from MySports.admin/src/test/java/eclipselink/example/mysports/admin/test/services/glassfish/jdbc-connection-pool_mysports.json
rename to admin/src/test/java/eclipselink/example/mysports/admin/test/services/glassfish/jdbc-connection-pool_mysports.json
diff --git a/MySports.admin/src/test/java/eclipselink/example/mysports/admin/test/services/glassfish/jdbc-connection-pool_mysports_property.json b/admin/src/test/java/eclipselink/example/mysports/admin/test/services/glassfish/jdbc-connection-pool_mysports_property.json
similarity index 100%
rename from MySports.admin/src/test/java/eclipselink/example/mysports/admin/test/services/glassfish/jdbc-connection-pool_mysports_property.json
rename to admin/src/test/java/eclipselink/example/mysports/admin/test/services/glassfish/jdbc-connection-pool_mysports_property.json
diff --git a/MySports.admin/src/test/java/eclipselink/example/mysports/admin/test/services/glassfish/jdbc-resource.json b/admin/src/test/java/eclipselink/example/mysports/admin/test/services/glassfish/jdbc-resource.json
similarity index 100%
rename from MySports.admin/src/test/java/eclipselink/example/mysports/admin/test/services/glassfish/jdbc-resource.json
rename to admin/src/test/java/eclipselink/example/mysports/admin/test/services/glassfish/jdbc-resource.json
diff --git a/MySports.admin/src/test/java/eclipselink/example/mysports/admin/test/services/glassfish/list-jdbc-connection-pools.json b/admin/src/test/java/eclipselink/example/mysports/admin/test/services/glassfish/list-jdbc-connection-pools.json
similarity index 100%
rename from MySports.admin/src/test/java/eclipselink/example/mysports/admin/test/services/glassfish/list-jdbc-connection-pools.json
rename to admin/src/test/java/eclipselink/example/mysports/admin/test/services/glassfish/list-jdbc-connection-pools.json
diff --git a/MySports.admin/src/test/java/eclipselink/example/mysports/admin/test/services/glassfish/list-jdbc-resources.json b/admin/src/test/java/eclipselink/example/mysports/admin/test/services/glassfish/list-jdbc-resources.json
similarity index 100%
rename from MySports.admin/src/test/java/eclipselink/example/mysports/admin/test/services/glassfish/list-jdbc-resources.json
rename to admin/src/test/java/eclipselink/example/mysports/admin/test/services/glassfish/list-jdbc-resources.json
diff --git a/MySports.admin/src/test/java/eclipselink/example/mysports/admin/test/style/CreateStyles.java b/admin/src/test/java/eclipselink/example/mysports/admin/test/style/CreateStyles.java
similarity index 95%
rename from MySports.admin/src/test/java/eclipselink/example/mysports/admin/test/style/CreateStyles.java
rename to admin/src/test/java/eclipselink/example/mysports/admin/test/style/CreateStyles.java
index 5c01769..e09dc29 100644
--- a/MySports.admin/src/test/java/eclipselink/example/mysports/admin/test/style/CreateStyles.java
+++ b/admin/src/test/java/eclipselink/example/mysports/admin/test/style/CreateStyles.java
@@ -19,7 +19,7 @@
 import javax.persistence.EntityManagerFactory;
 import javax.persistence.Persistence;
 
-import junit.framework.Assert;
+import org.junit.Assert;
 
 import org.eclipse.persistence.jpa.JpaHelper;
 import org.eclipse.persistence.sessions.server.Server;
@@ -28,6 +28,7 @@
 import org.junit.Test;
 
 import eclipselink.example.mysports.admin.model.Style;
+import eclipselink.example.mysports.admin.test.PersistenceTesting;
 
 /**
  * Create initial styles.
@@ -69,7 +70,7 @@
 
     @BeforeClass
     public static void createEMF() {
-        emf = Persistence.createEntityManagerFactory("MySportsAdmin", TestingLeagueRepository.get());
+        emf = Persistence.createEntityManagerFactory("MySportsAdmin", PersistenceTesting.get());
 
         EntityManager em = emf.createEntityManager();
         try {
diff --git a/MySports.admin/src/test/java/eclipselink/example/mysports/admin/test/style/black.css b/admin/src/test/java/eclipselink/example/mysports/admin/test/style/black.css
similarity index 100%
rename from MySports.admin/src/test/java/eclipselink/example/mysports/admin/test/style/black.css
rename to admin/src/test/java/eclipselink/example/mysports/admin/test/style/black.css
diff --git a/MySports.admin/src/test/java/eclipselink/example/mysports/admin/test/style/blue.css b/admin/src/test/java/eclipselink/example/mysports/admin/test/style/blue.css
similarity index 100%
rename from MySports.admin/src/test/java/eclipselink/example/mysports/admin/test/style/blue.css
rename to admin/src/test/java/eclipselink/example/mysports/admin/test/style/blue.css
diff --git a/MySports.admin/src/test/java/eclipselink/example/mysports/admin/test/style/default.css b/admin/src/test/java/eclipselink/example/mysports/admin/test/style/default.css
similarity index 100%
rename from MySports.admin/src/test/java/eclipselink/example/mysports/admin/test/style/default.css
rename to admin/src/test/java/eclipselink/example/mysports/admin/test/style/default.css
diff --git a/MySports.admin/src/test/java/eclipselink/example/mysports/admin/test/style/green.css b/admin/src/test/java/eclipselink/example/mysports/admin/test/style/green.css
similarity index 100%
rename from MySports.admin/src/test/java/eclipselink/example/mysports/admin/test/style/green.css
rename to admin/src/test/java/eclipselink/example/mysports/admin/test/style/green.css
diff --git a/MySports.admin/src/test/java/eclipselink/example/mysports/admin/test/style/red.css b/admin/src/test/java/eclipselink/example/mysports/admin/test/style/red.css
similarity index 100%
rename from MySports.admin/src/test/java/eclipselink/example/mysports/admin/test/style/red.css
rename to admin/src/test/java/eclipselink/example/mysports/admin/test/style/red.css
diff --git a/application/.classpath b/application/.classpath
new file mode 100644
index 0000000..534b5e5
--- /dev/null
+++ b/application/.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 excluding="**" kind="src" output="target/classes" path="src/main/resources">
+		<attributes>
+			<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/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/application/.project b/application/.project
new file mode 100644
index 0000000..d6d9b1c
--- /dev/null
+++ b/application/.project
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>application</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/application/.settings/org.eclipse.core.resources.prefs b/application/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..29abf99
--- /dev/null
+++ b/application/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,6 @@
+eclipse.preferences.version=1
+encoding//src/main/java=UTF-8
+encoding//src/main/resources=UTF-8
+encoding//src/test/java=UTF-8
+encoding//src/test/resources=UTF-8
+encoding/<project>=UTF-8
diff --git a/application/.settings/org.eclipse.jdt.core.prefs b/application/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..60105c1
--- /dev/null
+++ b/application/.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/application/.settings/org.eclipse.m2e.core.prefs b/application/.settings/org.eclipse.m2e.core.prefs
new file mode 100644
index 0000000..f897a7f
--- /dev/null
+++ b/application/.settings/org.eclipse.m2e.core.prefs
@@ -0,0 +1,4 @@
+activeProfiles=
+eclipse.preferences.version=1
+resolveWorkspaceProjects=true
+version=1
diff --git a/application/pom.xml b/application/pom.xml
new file mode 100644
index 0000000..589ec89
--- /dev/null
+++ b/application/pom.xml
@@ -0,0 +1,66 @@
+<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>
+
+    <groupId>eclipselink.example.mysports</groupId>
+    <artifactId>application</artifactId>
+    <version>0.0.1-SNAPSHOT</version>
+    <packaging>war</packaging>
+
+    <name>MySports.application</name>
+
+    <properties>
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+    </properties>
+
+    <dependencies>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>persistence</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>javax</groupId>
+            <artifactId>javaee-web-api</artifactId>
+            <version>6.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>admin</artifactId>
+        	<version>${project.version}</version>
+            <scope>test</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>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-war-plugin</artifactId>
+                <version>2.1.1</version>
+                <configuration>
+                    <failOnMissingWebXml>false</failOnMissingWebXml>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+
+</project>
diff --git a/MySports.application/src/main/java/eclipselink/example/mysports/mysports/application/MySportsConfig.java b/application/src/main/java/eclipselink/example/mysports/mysports/application/MySportsConfig.java
similarity index 100%
rename from MySports.application/src/main/java/eclipselink/example/mysports/mysports/application/MySportsConfig.java
rename to application/src/main/java/eclipselink/example/mysports/mysports/application/MySportsConfig.java
diff --git a/MySports.application/src/main/java/eclipselink/example/mysports/mysports/application/admin/AdminMetadataSource.java b/application/src/main/java/eclipselink/example/mysports/mysports/application/admin/AdminMetadataSource.java
similarity index 100%
rename from MySports.application/src/main/java/eclipselink/example/mysports/mysports/application/admin/AdminMetadataSource.java
rename to application/src/main/java/eclipselink/example/mysports/mysports/application/admin/AdminMetadataSource.java
diff --git a/MySports.application/src/main/java/eclipselink/example/mysports/mysports/application/admin/AdminServerConnector.java b/application/src/main/java/eclipselink/example/mysports/mysports/application/admin/AdminServerConnector.java
similarity index 97%
rename from MySports.application/src/main/java/eclipselink/example/mysports/mysports/application/admin/AdminServerConnector.java
rename to application/src/main/java/eclipselink/example/mysports/mysports/application/admin/AdminServerConnector.java
index d64734a..d579a79 100644
--- a/MySports.application/src/main/java/eclipselink/example/mysports/mysports/application/admin/AdminServerConnector.java
+++ b/application/src/main/java/eclipselink/example/mysports/mysports/application/admin/AdminServerConnector.java
@@ -34,7 +34,7 @@
     /**
      * Return the list of leagues (tenants) available.
      */
-    Leagues getLeagues();
+    HostedLeagues getLeagues();
 
     /**
      * Retrieve the league (name and version) from the admin server.
diff --git a/MySports.application/src/main/java/eclipselink/example/mysports/mysports/application/admin/Leagues.java b/application/src/main/java/eclipselink/example/mysports/mysports/application/admin/HostedLeagues.java
similarity index 97%
rename from MySports.application/src/main/java/eclipselink/example/mysports/mysports/application/admin/Leagues.java
rename to application/src/main/java/eclipselink/example/mysports/mysports/application/admin/HostedLeagues.java
index 26495cb..6297154 100644
--- a/MySports.application/src/main/java/eclipselink/example/mysports/mysports/application/admin/Leagues.java
+++ b/application/src/main/java/eclipselink/example/mysports/mysports/application/admin/HostedLeagues.java
@@ -22,7 +22,7 @@
  * @author dclarke
  * @since EclipseLink 2.3.0
  */
-public class Leagues {
+public class HostedLeagues {
 
     private List<League> leagues = new ArrayList<League>();
 
diff --git a/MySports.application/src/main/java/eclipselink/example/mysports/mysports/application/admin/League.java b/application/src/main/java/eclipselink/example/mysports/mysports/application/admin/League.java
similarity index 100%
rename from MySports.application/src/main/java/eclipselink/example/mysports/mysports/application/admin/League.java
rename to application/src/main/java/eclipselink/example/mysports/mysports/application/admin/League.java
diff --git a/MySports.application/src/main/java/eclipselink/example/mysports/mysports/application/admin/MoxyContextHelper.java b/application/src/main/java/eclipselink/example/mysports/mysports/application/admin/MoxyContextHelper.java
similarity index 95%
rename from MySports.application/src/main/java/eclipselink/example/mysports/mysports/application/admin/MoxyContextHelper.java
rename to application/src/main/java/eclipselink/example/mysports/mysports/application/admin/MoxyContextHelper.java
index 63bbd89..77df5b8 100644
--- a/MySports.application/src/main/java/eclipselink/example/mysports/mysports/application/admin/MoxyContextHelper.java
+++ b/application/src/main/java/eclipselink/example/mysports/mysports/application/admin/MoxyContextHelper.java
@@ -36,7 +36,7 @@
 public class MoxyContextHelper {
 
     /**
-     * Cached {@link JAXBContext} for marshaling {@link Leagues} and
+     * Cached {@link JAXBContext} for marshaling {@link HostedLeagues} and
      * {@link League} from the admin server requests.
      */
     private static JAXBContext jaxbContext;
@@ -45,7 +45,7 @@
         if (jaxbContext == null) {
             Map<String, Object> props = new HashMap<String, Object>(1);
             props.put(JAXBContextProperties.OXM_METADATA_SOURCE, "example/mysports/admin/leagues-oxm.xml");
-            jaxbContext = JAXBContextFactory.createContext(new Class[] { Leagues.class }, props);
+            jaxbContext = JAXBContextFactory.createContext(new Class[] { HostedLeagues.class }, props);
         }
         return jaxbContext;
     }
diff --git a/MySports.application/src/main/java/eclipselink/example/mysports/mysports/application/admin/RESTAdminServerConnector.java b/application/src/main/java/eclipselink/example/mysports/mysports/application/admin/RESTAdminServerConnector.java
similarity index 96%
rename from MySports.application/src/main/java/eclipselink/example/mysports/mysports/application/admin/RESTAdminServerConnector.java
rename to application/src/main/java/eclipselink/example/mysports/mysports/application/admin/RESTAdminServerConnector.java
index eaf22d2..b75dc9a 100644
--- a/MySports.application/src/main/java/eclipselink/example/mysports/mysports/application/admin/RESTAdminServerConnector.java
+++ b/application/src/main/java/eclipselink/example/mysports/mysports/application/admin/RESTAdminServerConnector.java
@@ -41,12 +41,12 @@
         this.config = config;
     }
 
-    public Leagues getLeagues() {
+    public HostedLeagues getLeagues() {
         InputStream in = null;
 
         try {
             in = open(null, MediaType.APPLICATION_XML.getMediaType(), null);
-            return (Leagues) MoxyContextHelper.createUnmarshaller(MediaType.APPLICATION_XML).unmarshal(in);
+            return (HostedLeagues) MoxyContextHelper.createUnmarshaller(MediaType.APPLICATION_XML).unmarshal(in);
         } catch (IOException e) {
             throw new RuntimeException("Failure to retieve Leagues", e);
         } catch (JAXBException e) {
diff --git a/MySports.application/src/main/java/eclipselink/example/mysports/mysports/application/admin/leagues-oxm.xml b/application/src/main/java/eclipselink/example/mysports/mysports/application/admin/leagues-oxm.xml
similarity index 80%
rename from MySports.application/src/main/java/eclipselink/example/mysports/mysports/application/admin/leagues-oxm.xml
rename to application/src/main/java/eclipselink/example/mysports/mysports/application/admin/leagues-oxm.xml
index ec20841..0cc6816 100644
--- a/MySports.application/src/main/java/eclipselink/example/mysports/mysports/application/admin/leagues-oxm.xml
+++ b/application/src/main/java/eclipselink/example/mysports/mysports/application/admin/leagues-oxm.xml
@@ -4,8 +4,8 @@
 	package-name="example.mysports.admin" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 	xsi:schemaLocation="http://www.eclipse.org/eclipselink/xsds/persistence/oxm http://www.eclipse.org/eclipselink/xsds/eclipselink_oxm_2_3.xsd">
 	<java-types>
-		<java-type name="Leagues" xml-accessor-type="FIELD">
-			<xml-root-element name="hostedLeagues"/>
+		<java-type name="HostedLeagues" xml-accessor-type="FIELD">
+			<xml-root-element name="hosted-leagues"/>
 			<java-attributes>
 				<xml-element java-attribute="leagues" name="league" />
 			</java-attributes>
@@ -16,8 +16,8 @@
 				<xml-attribute java-attribute="id" />
 				<xml-attribute java-attribute="version" />
 				<xml-element java-attribute="name" />
-				<xml-element java-attribute="colourScheme"/>
-				<xml-element java-attribute="logoUrl"/>
+				<xml-element java-attribute="colourScheme" name="scheme"/>
+				<xml-element java-attribute="logoUrl" name="logo"/>
 				<xml-element java-attribute="datasource" name="data-source"/>
 				<xml-element java-attribute="uri" xml-path="link/@href"/>
 			</java-attributes>
diff --git a/MySports.application/src/main/java/eclipselink/example/mysports/mysports/application/model/Division.java b/application/src/main/java/eclipselink/example/mysports/mysports/application/model/Division.java
similarity index 100%
rename from MySports.application/src/main/java/eclipselink/example/mysports/mysports/application/model/Division.java
rename to application/src/main/java/eclipselink/example/mysports/mysports/application/model/Division.java
diff --git a/MySports.application/src/main/java/eclipselink/example/mysports/mysports/application/model/Division_.java b/application/src/main/java/eclipselink/example/mysports/mysports/application/model/Division_.java
similarity index 100%
rename from MySports.application/src/main/java/eclipselink/example/mysports/mysports/application/model/Division_.java
rename to application/src/main/java/eclipselink/example/mysports/mysports/application/model/Division_.java
diff --git a/MySports.application/src/main/java/eclipselink/example/mysports/mysports/application/model/Extensible.java b/application/src/main/java/eclipselink/example/mysports/mysports/application/model/Extensible.java
similarity index 100%
rename from MySports.application/src/main/java/eclipselink/example/mysports/mysports/application/model/Extensible.java
rename to application/src/main/java/eclipselink/example/mysports/mysports/application/model/Extensible.java
diff --git a/MySports.application/src/main/java/eclipselink/example/mysports/mysports/application/model/MOXyHelper.java b/application/src/main/java/eclipselink/example/mysports/mysports/application/model/MOXyHelper.java
similarity index 100%
rename from MySports.application/src/main/java/eclipselink/example/mysports/mysports/application/model/MOXyHelper.java
rename to application/src/main/java/eclipselink/example/mysports/mysports/application/model/MOXyHelper.java
diff --git a/MySports.application/src/main/java/eclipselink/example/mysports/mysports/application/model/Player.java b/application/src/main/java/eclipselink/example/mysports/mysports/application/model/Player.java
similarity index 100%
rename from MySports.application/src/main/java/eclipselink/example/mysports/mysports/application/model/Player.java
rename to application/src/main/java/eclipselink/example/mysports/mysports/application/model/Player.java
diff --git a/MySports.application/src/main/java/eclipselink/example/mysports/mysports/application/model/Player_.java b/application/src/main/java/eclipselink/example/mysports/mysports/application/model/Player_.java
similarity index 100%
rename from MySports.application/src/main/java/eclipselink/example/mysports/mysports/application/model/Player_.java
rename to application/src/main/java/eclipselink/example/mysports/mysports/application/model/Player_.java
diff --git a/MySports.application/src/main/java/eclipselink/example/mysports/mysports/application/model/Team.java b/application/src/main/java/eclipselink/example/mysports/mysports/application/model/Team.java
similarity index 100%
rename from MySports.application/src/main/java/eclipselink/example/mysports/mysports/application/model/Team.java
rename to application/src/main/java/eclipselink/example/mysports/mysports/application/model/Team.java
diff --git a/MySports.application/src/main/java/eclipselink/example/mysports/mysports/application/model/Team_.java b/application/src/main/java/eclipselink/example/mysports/mysports/application/model/Team_.java
similarity index 100%
rename from MySports.application/src/main/java/eclipselink/example/mysports/mysports/application/model/Team_.java
rename to application/src/main/java/eclipselink/example/mysports/mysports/application/model/Team_.java
diff --git a/MySports.application/src/main/java/eclipselink/example/mysports/mysports/application/model/User.java b/application/src/main/java/eclipselink/example/mysports/mysports/application/model/User.java
similarity index 100%
rename from MySports.application/src/main/java/eclipselink/example/mysports/mysports/application/model/User.java
rename to application/src/main/java/eclipselink/example/mysports/mysports/application/model/User.java
diff --git a/MySports.application/src/main/java/eclipselink/example/mysports/mysports/application/model/User_.java b/application/src/main/java/eclipselink/example/mysports/mysports/application/model/User_.java
similarity index 100%
rename from MySports.application/src/main/java/eclipselink/example/mysports/mysports/application/model/User_.java
rename to application/src/main/java/eclipselink/example/mysports/mysports/application/model/User_.java
diff --git a/MySports.application/src/main/java/eclipselink/example/mysports/mysports/application/services/LeagueRepository.java b/application/src/main/java/eclipselink/example/mysports/mysports/application/services/LeagueRepository.java
similarity index 100%
rename from MySports.application/src/main/java/eclipselink/example/mysports/mysports/application/services/LeagueRepository.java
rename to application/src/main/java/eclipselink/example/mysports/mysports/application/services/LeagueRepository.java
diff --git a/MySports.application/src/main/java/eclipselink/example/mysports/mysports/application/services/PersistenceWeavingBean.java b/application/src/main/java/eclipselink/example/mysports/mysports/application/services/PersistenceWeavingBean.java
similarity index 100%
rename from MySports.application/src/main/java/eclipselink/example/mysports/mysports/application/services/PersistenceWeavingBean.java
rename to application/src/main/java/eclipselink/example/mysports/mysports/application/services/PersistenceWeavingBean.java
diff --git a/MySports.application/src/main/java/eclipselink/example/mysports/mysports/application/view/BaseManagedBean.java b/application/src/main/java/eclipselink/example/mysports/mysports/application/view/BaseManagedBean.java
similarity index 100%
rename from MySports.application/src/main/java/eclipselink/example/mysports/mysports/application/view/BaseManagedBean.java
rename to application/src/main/java/eclipselink/example/mysports/mysports/application/view/BaseManagedBean.java
diff --git a/MySports.application/src/main/java/eclipselink/example/mysports/mysports/application/view/BaseTeamBean.java b/application/src/main/java/eclipselink/example/mysports/mysports/application/view/BaseTeamBean.java
similarity index 100%
rename from MySports.application/src/main/java/eclipselink/example/mysports/mysports/application/view/BaseTeamBean.java
rename to application/src/main/java/eclipselink/example/mysports/mysports/application/view/BaseTeamBean.java
diff --git a/MySports.application/src/main/java/eclipselink/example/mysports/mysports/application/view/CreateDivision.java b/application/src/main/java/eclipselink/example/mysports/mysports/application/view/CreateDivision.java
similarity index 100%
rename from MySports.application/src/main/java/eclipselink/example/mysports/mysports/application/view/CreateDivision.java
rename to application/src/main/java/eclipselink/example/mysports/mysports/application/view/CreateDivision.java
diff --git a/MySports.application/src/main/java/eclipselink/example/mysports/mysports/application/view/CreateTeam.java b/application/src/main/java/eclipselink/example/mysports/mysports/application/view/CreateTeam.java
similarity index 100%
rename from MySports.application/src/main/java/eclipselink/example/mysports/mysports/application/view/CreateTeam.java
rename to application/src/main/java/eclipselink/example/mysports/mysports/application/view/CreateTeam.java
diff --git a/MySports.application/src/main/java/eclipselink/example/mysports/mysports/application/view/EditDivision.java b/application/src/main/java/eclipselink/example/mysports/mysports/application/view/EditDivision.java
similarity index 100%
rename from MySports.application/src/main/java/eclipselink/example/mysports/mysports/application/view/EditDivision.java
rename to application/src/main/java/eclipselink/example/mysports/mysports/application/view/EditDivision.java
diff --git a/MySports.application/src/main/java/eclipselink/example/mysports/mysports/application/view/EditTeam.java b/application/src/main/java/eclipselink/example/mysports/mysports/application/view/EditTeam.java
similarity index 100%
rename from MySports.application/src/main/java/eclipselink/example/mysports/mysports/application/view/EditTeam.java
rename to application/src/main/java/eclipselink/example/mysports/mysports/application/view/EditTeam.java
diff --git a/MySports.application/src/main/java/eclipselink/example/mysports/mysports/application/view/ExtensibleEntity.java b/application/src/main/java/eclipselink/example/mysports/mysports/application/view/ExtensibleEntity.java
similarity index 100%
rename from MySports.application/src/main/java/eclipselink/example/mysports/mysports/application/view/ExtensibleEntity.java
rename to application/src/main/java/eclipselink/example/mysports/mysports/application/view/ExtensibleEntity.java
diff --git a/MySports.application/src/main/java/eclipselink/example/mysports/mysports/application/view/LeagueRepositoryBean.java b/application/src/main/java/eclipselink/example/mysports/mysports/application/view/LeagueRepositoryBean.java
similarity index 100%
rename from MySports.application/src/main/java/eclipselink/example/mysports/mysports/application/view/LeagueRepositoryBean.java
rename to application/src/main/java/eclipselink/example/mysports/mysports/application/view/LeagueRepositoryBean.java
diff --git a/MySports.application/src/main/java/eclipselink/example/mysports/mysports/application/view/LeaguesList.java b/application/src/main/java/eclipselink/example/mysports/mysports/application/view/LeaguesList.java
similarity index 88%
rename from MySports.application/src/main/java/eclipselink/example/mysports/mysports/application/view/LeaguesList.java
rename to application/src/main/java/eclipselink/example/mysports/mysports/application/view/LeaguesList.java
index 2eaef8e..d42cb0c 100644
--- a/MySports.application/src/main/java/eclipselink/example/mysports/mysports/application/view/LeaguesList.java
+++ b/application/src/main/java/eclipselink/example/mysports/mysports/application/view/LeaguesList.java
@@ -14,7 +14,7 @@
 
 import javax.faces.bean.ManagedBean;
 
-import eclipselink.example.mysports.mysports.application.admin.Leagues;
+import eclipselink.example.mysports.mysports.application.admin.HostedLeagues;
 
 /**
  * Return list of available Leagues from JAX-RS call to MySports Admin app.
@@ -27,9 +27,9 @@
 
     protected static final String PAGE = "index";
 
-    private Leagues leagues;
+    private HostedLeagues leagues;
 
-    public Leagues getLeagues() {
+    public HostedLeagues getLeagues() {
         if (this.leagues == null) {
             this.leagues = getRepositoryBean().getRepository().getConfig().getAdminConnector().getLeagues();
         }
diff --git a/MySports.application/src/main/java/eclipselink/example/mysports/mysports/application/view/LookAndFeel.java b/application/src/main/java/eclipselink/example/mysports/mysports/application/view/LookAndFeel.java
similarity index 100%
rename from MySports.application/src/main/java/eclipselink/example/mysports/mysports/application/view/LookAndFeel.java
rename to application/src/main/java/eclipselink/example/mysports/mysports/application/view/LookAndFeel.java
diff --git a/MySports.application/src/main/java/eclipselink/example/mysports/mysports/application/view/MySportsPhaseListener.java b/application/src/main/java/eclipselink/example/mysports/mysports/application/view/MySportsPhaseListener.java
similarity index 100%
rename from MySports.application/src/main/java/eclipselink/example/mysports/mysports/application/view/MySportsPhaseListener.java
rename to application/src/main/java/eclipselink/example/mysports/mysports/application/view/MySportsPhaseListener.java
diff --git a/MySports.application/src/main/java/eclipselink/example/mysports/mysports/application/view/NoCacheFilter.java b/application/src/main/java/eclipselink/example/mysports/mysports/application/view/NoCacheFilter.java
similarity index 100%
rename from MySports.application/src/main/java/eclipselink/example/mysports/mysports/application/view/NoCacheFilter.java
rename to application/src/main/java/eclipselink/example/mysports/mysports/application/view/NoCacheFilter.java
diff --git a/MySports.application/src/main/java/eclipselink/example/mysports/mysports/application/view/ViewDivision.java b/application/src/main/java/eclipselink/example/mysports/mysports/application/view/ViewDivision.java
similarity index 100%
rename from MySports.application/src/main/java/eclipselink/example/mysports/mysports/application/view/ViewDivision.java
rename to application/src/main/java/eclipselink/example/mysports/mysports/application/view/ViewDivision.java
diff --git a/MySports.application/src/main/java/eclipselink/example/mysports/mysports/application/view/ViewLeague.java b/application/src/main/java/eclipselink/example/mysports/mysports/application/view/ViewLeague.java
similarity index 100%
rename from MySports.application/src/main/java/eclipselink/example/mysports/mysports/application/view/ViewLeague.java
rename to application/src/main/java/eclipselink/example/mysports/mysports/application/view/ViewLeague.java
diff --git a/MySports.application/src/main/java/eclipselink/example/mysports/mysports/application/view/ViewTeam.java b/application/src/main/java/eclipselink/example/mysports/mysports/application/view/ViewTeam.java
similarity index 100%
rename from MySports.application/src/main/java/eclipselink/example/mysports/mysports/application/view/ViewTeam.java
rename to application/src/main/java/eclipselink/example/mysports/mysports/application/view/ViewTeam.java
diff --git a/MySports.application/src/main/resources/META-INF/eclipselink-oxm.xml b/application/src/main/resources/META-INF/eclipselink-oxm.xml
similarity index 100%
rename from MySports.application/src/main/resources/META-INF/eclipselink-oxm.xml
rename to application/src/main/resources/META-INF/eclipselink-oxm.xml
diff --git a/MySports.application/src/main/resources/META-INF/local-eclipselink-orm.xml b/application/src/main/resources/META-INF/local-eclipselink-orm.xml
similarity index 100%
rename from MySports.application/src/main/resources/META-INF/local-eclipselink-orm.xml
rename to application/src/main/resources/META-INF/local-eclipselink-orm.xml
diff --git a/MySports.application/src/main/resources/META-INF/persistence.xml b/application/src/main/resources/META-INF/persistence.xml
similarity index 100%
rename from MySports.application/src/main/resources/META-INF/persistence.xml
rename to application/src/main/resources/META-INF/persistence.xml
diff --git a/MySports.application/src/main/resources/my-sports.properties b/application/src/main/resources/my-sports.properties
similarity index 100%
rename from MySports.application/src/main/resources/my-sports.properties
rename to application/src/main/resources/my-sports.properties
diff --git a/MySports.application/src/main/resources/resources/application.properties b/application/src/main/resources/resources/application.properties
similarity index 100%
rename from MySports.application/src/main/resources/resources/application.properties
rename to application/src/main/resources/resources/application.properties
diff --git a/MySports.application/src/main/webapp/META-INF/MANIFEST.MF b/application/src/main/webapp/META-INF/MANIFEST.MF
similarity index 100%
rename from MySports.application/src/main/webapp/META-INF/MANIFEST.MF
rename to application/src/main/webapp/META-INF/MANIFEST.MF
diff --git a/MySports.application/src/main/webapp/WEB-INF/faces-config.xml b/application/src/main/webapp/WEB-INF/faces-config.xml
similarity index 100%
rename from MySports.application/src/main/webapp/WEB-INF/faces-config.xml
rename to application/src/main/webapp/WEB-INF/faces-config.xml
diff --git a/MySports.application/src/main/webapp/WEB-INF/lib/org.eclipse.persistence.jpars_2.4.0.v20120608-r11652.jar b/application/src/main/webapp/WEB-INF/lib/org.eclipse.persistence.jpars_2.4.0.v20120608-r11652.jar
similarity index 100%
rename from MySports.application/src/main/webapp/WEB-INF/lib/org.eclipse.persistence.jpars_2.4.0.v20120608-r11652.jar
rename to application/src/main/webapp/WEB-INF/lib/org.eclipse.persistence.jpars_2.4.0.v20120608-r11652.jar
Binary files differ
diff --git a/MySports.application/src/main/webapp/WEB-INF/sun-web.xml b/application/src/main/webapp/WEB-INF/sun-web.xml
similarity index 100%
rename from MySports.application/src/main/webapp/WEB-INF/sun-web.xml
rename to application/src/main/webapp/WEB-INF/sun-web.xml
diff --git a/MySports.application/src/main/webapp/WEB-INF/web.xml b/application/src/main/webapp/WEB-INF/web.xml
similarity index 100%
rename from MySports.application/src/main/webapp/WEB-INF/web.xml
rename to application/src/main/webapp/WEB-INF/web.xml
diff --git a/MySports.application/src/main/webapp/create-division.xhtml b/application/src/main/webapp/create-division.xhtml
similarity index 100%
rename from MySports.application/src/main/webapp/create-division.xhtml
rename to application/src/main/webapp/create-division.xhtml
diff --git a/MySports.application/src/main/webapp/create-team.xhtml b/application/src/main/webapp/create-team.xhtml
similarity index 100%
rename from MySports.application/src/main/webapp/create-team.xhtml
rename to application/src/main/webapp/create-team.xhtml
diff --git a/MySports.application/src/main/webapp/default.css b/application/src/main/webapp/default.css
similarity index 100%
rename from MySports.application/src/main/webapp/default.css
rename to application/src/main/webapp/default.css
diff --git a/MySports.application/src/main/webapp/edit-team.xhtml b/application/src/main/webapp/edit-team.xhtml
similarity index 100%
rename from MySports.application/src/main/webapp/edit-team.xhtml
rename to application/src/main/webapp/edit-team.xhtml
diff --git a/MySports.application/src/main/webapp/images/add_obj.gif b/application/src/main/webapp/images/add_obj.gif
similarity index 100%
rename from MySports.application/src/main/webapp/images/add_obj.gif
rename to application/src/main/webapp/images/add_obj.gif
Binary files differ
diff --git a/MySports.application/src/main/webapp/images/bg_button_a.gif b/application/src/main/webapp/images/bg_button_a.gif
similarity index 100%
rename from MySports.application/src/main/webapp/images/bg_button_a.gif
rename to application/src/main/webapp/images/bg_button_a.gif
Binary files differ
diff --git a/MySports.application/src/main/webapp/images/bg_button_span.gif b/application/src/main/webapp/images/bg_button_span.gif
similarity index 100%
rename from MySports.application/src/main/webapp/images/bg_button_span.gif
rename to application/src/main/webapp/images/bg_button_span.gif
Binary files differ
diff --git a/MySports.application/src/main/webapp/images/eclipselink.png b/application/src/main/webapp/images/eclipselink.png
similarity index 100%
rename from MySports.application/src/main/webapp/images/eclipselink.png
rename to application/src/main/webapp/images/eclipselink.png
Binary files differ
diff --git a/MySports.application/src/main/webapp/images/mysports.png b/application/src/main/webapp/images/mysports.png
similarity index 100%
rename from MySports.application/src/main/webapp/images/mysports.png
rename to application/src/main/webapp/images/mysports.png
Binary files differ
diff --git a/MySports.application/src/main/webapp/index.jsp b/application/src/main/webapp/index.jsp
similarity index 100%
rename from MySports.application/src/main/webapp/index.jsp
rename to application/src/main/webapp/index.jsp
diff --git a/MySports.application/src/main/webapp/index.xhtml b/application/src/main/webapp/index.xhtml
similarity index 100%
rename from MySports.application/src/main/webapp/index.xhtml
rename to application/src/main/webapp/index.xhtml
diff --git a/MySports.application/src/main/webapp/leagues-template.jsf b/application/src/main/webapp/leagues-template.jsf
similarity index 100%
rename from MySports.application/src/main/webapp/leagues-template.jsf
rename to application/src/main/webapp/leagues-template.jsf
diff --git a/MySports.application/src/main/webapp/player/view.xhtml b/application/src/main/webapp/player/view.xhtml
similarity index 100%
rename from MySports.application/src/main/webapp/player/view.xhtml
rename to application/src/main/webapp/player/view.xhtml
diff --git a/MySports.application/src/main/webapp/template.jsf b/application/src/main/webapp/template.jsf
similarity index 100%
rename from MySports.application/src/main/webapp/template.jsf
rename to application/src/main/webapp/template.jsf
diff --git a/MySports.application/src/main/webapp/tsa/index.html b/application/src/main/webapp/tsa/index.html
similarity index 100%
rename from MySports.application/src/main/webapp/tsa/index.html
rename to application/src/main/webapp/tsa/index.html
diff --git a/MySports.application/src/main/webapp/tsa/mysports.css b/application/src/main/webapp/tsa/mysports.css
similarity index 100%
rename from MySports.application/src/main/webapp/tsa/mysports.css
rename to application/src/main/webapp/tsa/mysports.css
diff --git a/MySports.application/src/main/webapp/tsa/mysports.js b/application/src/main/webapp/tsa/mysports.js
similarity index 100%
rename from MySports.application/src/main/webapp/tsa/mysports.js
rename to application/src/main/webapp/tsa/mysports.js
diff --git a/MySports.application/src/main/webapp/view-division.xhtml b/application/src/main/webapp/view-division.xhtml
similarity index 100%
rename from MySports.application/src/main/webapp/view-division.xhtml
rename to application/src/main/webapp/view-division.xhtml
diff --git a/MySports.application/src/main/webapp/view-league.xhtml b/application/src/main/webapp/view-league.xhtml
similarity index 100%
rename from MySports.application/src/main/webapp/view-league.xhtml
rename to application/src/main/webapp/view-league.xhtml
diff --git a/MySports.application/src/main/webapp/view-team.xhtml b/application/src/main/webapp/view-team.xhtml
similarity index 100%
rename from MySports.application/src/main/webapp/view-team.xhtml
rename to application/src/main/webapp/view-team.xhtml
diff --git a/MySports.admin/src/main/java/eclipselink/example/mysports/admin/jaxrs/HostedLeagues.java b/application/src/test/java/eclipselink/example/mysports/admin/jaxrs/HostedLeagues.java
similarity index 100%
rename from MySports.admin/src/main/java/eclipselink/example/mysports/admin/jaxrs/HostedLeagues.java
rename to application/src/test/java/eclipselink/example/mysports/admin/jaxrs/HostedLeagues.java
diff --git a/MySports.admin/src/main/java/eclipselink/example/mysports/admin/jaxrs/MappingsLoader.java b/application/src/test/java/eclipselink/example/mysports/admin/jaxrs/MappingsLoader.java
similarity index 100%
copy from MySports.admin/src/main/java/eclipselink/example/mysports/admin/jaxrs/MappingsLoader.java
copy to application/src/test/java/eclipselink/example/mysports/admin/jaxrs/MappingsLoader.java
diff --git a/MySports.admin/src/main/java/eclipselink/example/mysports/admin/jaxrs/MySportsContextResolver.java b/application/src/test/java/eclipselink/example/mysports/admin/jaxrs/MySportsContextResolver.java
similarity index 100%
rename from MySports.admin/src/main/java/eclipselink/example/mysports/admin/jaxrs/MySportsContextResolver.java
rename to application/src/test/java/eclipselink/example/mysports/admin/jaxrs/MySportsContextResolver.java
diff --git a/MySports.admin/src/main/java/eclipselink/example/mysports/admin/model/DataIsolation.java b/application/src/test/java/eclipselink/example/mysports/admin/model/DataIsolation.java
similarity index 100%
copy from MySports.admin/src/main/java/eclipselink/example/mysports/admin/model/DataIsolation.java
copy to application/src/test/java/eclipselink/example/mysports/admin/model/DataIsolation.java
diff --git a/MySports.admin/src/main/java/eclipselink/example/mysports/admin/model/Datasource.java b/application/src/test/java/eclipselink/example/mysports/admin/model/Datasource.java
similarity index 100%
copy from MySports.admin/src/main/java/eclipselink/example/mysports/admin/model/Datasource.java
copy to application/src/test/java/eclipselink/example/mysports/admin/model/Datasource.java
diff --git a/MySports.admin/src/main/java/eclipselink/example/mysports/admin/model/Extension.java b/application/src/test/java/eclipselink/example/mysports/admin/model/Extension.java
similarity index 100%
copy from MySports.admin/src/main/java/eclipselink/example/mysports/admin/model/Extension.java
copy to application/src/test/java/eclipselink/example/mysports/admin/model/Extension.java
diff --git a/application/src/test/java/eclipselink/example/mysports/admin/model/HostEnvironment.java b/application/src/test/java/eclipselink/example/mysports/admin/model/HostEnvironment.java
new file mode 100644
index 0000000..595e828
--- /dev/null
+++ b/application/src/test/java/eclipselink/example/mysports/admin/model/HostEnvironment.java
@@ -0,0 +1,71 @@
+/*******************************************************************************
+ * 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.model;
+
+import java.util.Collection;
+import javax.persistence.DiscriminatorColumn;
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+import javax.persistence.Inheritance;
+import javax.persistence.InheritanceType;
+import javax.persistence.NamedQuery;
+import javax.persistence.Table;
+
+/**
+ * Represents a target environment where the MySports application can be
+ * deployed to. This could be a specific web or application server, a
+ * cluster/grid of servers, or a cloud implementation.
+ * 
+ * @author dclarke
+ * @since EclipseLink 2.4
+ */
+@Entity
+@Table(name="mys_admin_env")
+@Inheritance(strategy=InheritanceType.JOINED)
+@DiscriminatorColumn(name="ENV_TYPE")
+@NamedQuery(name="HostEnvironment.all", query="SELECT he FROM HostEnvironment he ORDER BY he.id")
+public abstract class HostEnvironment {
+    
+    @Id
+    @GeneratedValue
+    private int id;
+    
+    private String name;
+    
+    private String description;
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getDescription() {
+        return description;
+    }
+
+    public void setDescription(String description) {
+        this.description = description;
+    }
+
+    public int getId() {
+        return id;
+    }
+    
+    public abstract Collection<Datasource> getDatasources();
+
+
+}
diff --git a/MySports.admin/src/main/java/eclipselink/example/mysports/admin/model/HostedLeague.java b/application/src/test/java/eclipselink/example/mysports/admin/model/HostedLeague.java
similarity index 100%
rename from MySports.admin/src/main/java/eclipselink/example/mysports/admin/model/HostedLeague.java
rename to application/src/test/java/eclipselink/example/mysports/admin/model/HostedLeague.java
diff --git a/MySports.admin/src/main/java/eclipselink/example/mysports/admin/model/Style.java b/application/src/test/java/eclipselink/example/mysports/admin/model/Style.java
similarity index 100%
copy from MySports.admin/src/main/java/eclipselink/example/mysports/admin/model/Style.java
copy to application/src/test/java/eclipselink/example/mysports/admin/model/Style.java
diff --git a/MySports.admin/src/main/java/eclipselink/example/mysports/admin/model/jaxb.properties b/application/src/test/java/eclipselink/example/mysports/admin/model/jaxb.properties
similarity index 100%
copy from MySports.admin/src/main/java/eclipselink/example/mysports/admin/model/jaxb.properties
copy to application/src/test/java/eclipselink/example/mysports/admin/model/jaxb.properties
diff --git a/MySports.admin/src/main/java/eclipselink/example/mysports/admin/services/HostEnvironmentRepository.java b/application/src/test/java/eclipselink/example/mysports/admin/services/HostEnvironmentRepository.java
similarity index 100%
copy from MySports.admin/src/main/java/eclipselink/example/mysports/admin/services/HostEnvironmentRepository.java
copy to application/src/test/java/eclipselink/example/mysports/admin/services/HostEnvironmentRepository.java
diff --git a/MySports.admin/src/main/java/eclipselink/example/mysports/admin/services/HostEnvironmentRepositoryBean.java b/application/src/test/java/eclipselink/example/mysports/admin/services/HostEnvironmentRepositoryBean.java
similarity index 100%
copy from MySports.admin/src/main/java/eclipselink/example/mysports/admin/services/HostEnvironmentRepositoryBean.java
copy to application/src/test/java/eclipselink/example/mysports/admin/services/HostEnvironmentRepositoryBean.java
diff --git a/MySports.admin/src/main/java/eclipselink/example/mysports/admin/services/HostedLeagueRepository.java b/application/src/test/java/eclipselink/example/mysports/admin/services/HostedLeagueRepository.java
similarity index 100%
copy from MySports.admin/src/main/java/eclipselink/example/mysports/admin/services/HostedLeagueRepository.java
copy to application/src/test/java/eclipselink/example/mysports/admin/services/HostedLeagueRepository.java
diff --git a/MySports.admin/src/main/java/eclipselink/example/mysports/admin/services/HostedLeagueRepositoryBean.java b/application/src/test/java/eclipselink/example/mysports/admin/services/HostedLeagueRepositoryBean.java
similarity index 100%
copy from MySports.admin/src/main/java/eclipselink/example/mysports/admin/services/HostedLeagueRepositoryBean.java
copy to application/src/test/java/eclipselink/example/mysports/admin/services/HostedLeagueRepositoryBean.java
diff --git a/MySports.admin/src/main/java/eclipselink/example/mysports/admin/services/MyService.java b/application/src/test/java/eclipselink/example/mysports/admin/services/MyService.java
similarity index 100%
copy from MySports.admin/src/main/java/eclipselink/example/mysports/admin/services/MyService.java
copy to application/src/test/java/eclipselink/example/mysports/admin/services/MyService.java
diff --git a/MySports.application/src/test/java/eclipselink/example/mysports/application/test/AllTests.java b/application/src/test/java/eclipselink/example/mysports/application/test/AllTests.java
similarity index 100%
rename from MySports.application/src/test/java/eclipselink/example/mysports/application/test/AllTests.java
rename to application/src/test/java/eclipselink/example/mysports/application/test/AllTests.java
diff --git a/MySports.application/src/test/java/eclipselink/example/mysports/application/test/TestingLeagueRepository.java b/application/src/test/java/eclipselink/example/mysports/application/test/TestingLeagueRepository.java
similarity index 97%
rename from MySports.application/src/test/java/eclipselink/example/mysports/application/test/TestingLeagueRepository.java
rename to application/src/test/java/eclipselink/example/mysports/application/test/TestingLeagueRepository.java
index 68210af..9362d6e 100644
--- a/MySports.application/src/test/java/eclipselink/example/mysports/application/test/TestingLeagueRepository.java
+++ b/application/src/test/java/eclipselink/example/mysports/application/test/TestingLeagueRepository.java
@@ -12,7 +12,6 @@
  ******************************************************************************/
 package eclipselink.example.mysports.application.test;
 
-import eclipselink.example.mysports.application.test.admin.MockAdminMetadataSource;
 import static org.eclipse.persistence.config.PersistenceUnitProperties.CONNECTION_POOL;
 import static org.eclipse.persistence.config.PersistenceUnitProperties.CONNECTION_POOL_INITIAL;
 import static org.eclipse.persistence.config.PersistenceUnitProperties.CONNECTION_POOL_MIN;
@@ -24,9 +23,10 @@
 import java.util.HashMap;
 import java.util.Map;
 
+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.application.test.util.ExamplePropertiesLoader;
+import eclipselink.example.mysports.persistence.test.ExamplePropertiesLoader;
 
 /**
  * Add testing specific properties to override the non-JTA data-source
diff --git a/MySports.application/src/test/java/eclipselink/example/mysports/application/test/admin/MockAdminMetadataSource.java b/application/src/test/java/eclipselink/example/mysports/application/test/admin/MockAdminMetadataSource.java
similarity index 100%
rename from MySports.application/src/test/java/eclipselink/example/mysports/application/test/admin/MockAdminMetadataSource.java
rename to application/src/test/java/eclipselink/example/mysports/application/test/admin/MockAdminMetadataSource.java
diff --git a/MySports.application/src/test/java/eclipselink/example/mysports/application/test/admin/MockAdminServerConnector.java b/application/src/test/java/eclipselink/example/mysports/application/test/admin/MockAdminServerConnector.java
similarity index 94%
rename from MySports.application/src/test/java/eclipselink/example/mysports/application/test/admin/MockAdminServerConnector.java
rename to application/src/test/java/eclipselink/example/mysports/application/test/admin/MockAdminServerConnector.java
index 494c166..cddf20b 100644
--- a/MySports.application/src/test/java/eclipselink/example/mysports/application/test/admin/MockAdminServerConnector.java
+++ b/application/src/test/java/eclipselink/example/mysports/application/test/admin/MockAdminServerConnector.java
@@ -12,7 +12,6 @@
  ******************************************************************************/
 package eclipselink.example.mysports.application.test.admin;
 
-import eclipselink.example.mysports.admin.jaxrs.HostedLeagues;
 import java.io.InputStream;
 import java.net.URI;
 import java.util.List;
@@ -23,11 +22,12 @@
 import javax.ws.rs.core.UriBuilder;
 import javax.ws.rs.core.UriInfo;
 
+import eclipselink.example.mysports.admin.jaxrs.HostedLeaguesService;
+import eclipselink.example.mysports.admin.model.HostedLeague;
 import eclipselink.example.mysports.mysports.application.MySportsConfig;
 import eclipselink.example.mysports.mysports.application.admin.AdminServerConnector;
+import eclipselink.example.mysports.mysports.application.admin.HostedLeagues;
 import eclipselink.example.mysports.mysports.application.admin.League;
-import eclipselink.example.mysports.mysports.application.admin.Leagues;
-import eclipselink.example.mysports.admin.model.HostedLeague;
 /**
  * TODO
  * 
@@ -36,14 +36,14 @@
  */
 public class MockAdminServerConnector implements AdminServerConnector {
 
-    private HostedLeagues leaguesBean;
+    private HostedLeaguesService leaguesBean;
 
     private MySportsConfig config;
 
     private UriInfo uriInfo = new MockUriInfo();
 
     public void setEMF(EntityManagerFactory emf) {
-        this.leaguesBean = new HostedLeagues();
+        this.leaguesBean = new HostedLeaguesService();
         this.leaguesBean.setRepository(new MockHostedLeagueRepository(emf));
     }
 
@@ -57,10 +57,10 @@
         this.config = config;
     }
 
-    public Leagues getLeagues() {
+    public HostedLeagues getLeagues() {
         List<HostedLeague> allLeagues = this.leaguesBean.allLeagues(this.uriInfo);
 
-        Leagues result = new eclipselink.example.mysports.mysports.application.admin.Leagues();
+        HostedLeagues result = new HostedLeagues();
         for (HostedLeague hl : allLeagues) {
             League l = new League();
             l.setId(hl.getId());
diff --git a/MySports.application/src/test/java/eclipselink/example/mysports/application/test/admin/MockHostEnvironmentRepository.java b/application/src/test/java/eclipselink/example/mysports/application/test/admin/MockHostEnvironmentRepository.java
similarity index 100%
rename from MySports.application/src/test/java/eclipselink/example/mysports/application/test/admin/MockHostEnvironmentRepository.java
rename to application/src/test/java/eclipselink/example/mysports/application/test/admin/MockHostEnvironmentRepository.java
diff --git a/MySports.application/src/test/java/eclipselink/example/mysports/application/test/admin/MockHostedLeagueRepository.java b/application/src/test/java/eclipselink/example/mysports/application/test/admin/MockHostedLeagueRepository.java
similarity index 100%
rename from MySports.application/src/test/java/eclipselink/example/mysports/application/test/admin/MockHostedLeagueRepository.java
rename to application/src/test/java/eclipselink/example/mysports/application/test/admin/MockHostedLeagueRepository.java
diff --git a/MySports.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
similarity index 96%
rename from MySports.application/src/test/java/eclipselink/example/mysports/application/test/model/AllTests.java
rename to application/src/test/java/eclipselink/example/mysports/application/test/model/AllTests.java
index 64b2781..cd40ae4 100644
--- a/MySports.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
@@ -21,7 +21,7 @@
  * @since EclipseLink 2.3.0
  */
 @RunWith(Suite.class)
-@SuiteClasses({ CreateDatabase.class, 
+@SuiteClasses({ CreateDatabaseTest.class, 
                 VerifyModelAndMappings.class, 
                 HighTechHockeyTests.class, 
                 OttawaSoccerLeagueTests.class,
diff --git a/MySports.application/src/test/java/eclipselink/example/mysports/application/test/model/CreateDatabase.java b/application/src/test/java/eclipselink/example/mysports/application/test/model/CreateDatabaseTest.java
similarity index 98%
rename from MySports.application/src/test/java/eclipselink/example/mysports/application/test/model/CreateDatabase.java
rename to application/src/test/java/eclipselink/example/mysports/application/test/model/CreateDatabaseTest.java
index 7906eb7..9d00a05 100644
--- a/MySports.application/src/test/java/eclipselink/example/mysports/application/test/model/CreateDatabase.java
+++ b/application/src/test/java/eclipselink/example/mysports/application/test/model/CreateDatabaseTest.java
@@ -19,7 +19,7 @@
 import javax.persistence.EntityManagerFactory;
 import javax.persistence.Persistence;
 
-import junit.framework.Assert;
+import org.junit.Assert;
 
 import org.eclipse.persistence.config.PersistenceUnitProperties;
 import org.eclipse.persistence.config.SessionCustomizer;
@@ -45,7 +45,7 @@
  * @author dclarke
  * @since EclipseLink 2.3.0
  */
-public class CreateDatabase {
+public class CreateDatabaseTest {
 
     private static LeagueRepository repository;
 
diff --git a/MySports.application/src/test/java/eclipselink/example/mysports/application/test/model/HighTechHockeyTests.java b/application/src/test/java/eclipselink/example/mysports/application/test/model/HighTechHockeyTests.java
similarity index 100%
rename from MySports.application/src/test/java/eclipselink/example/mysports/application/test/model/HighTechHockeyTests.java
rename to application/src/test/java/eclipselink/example/mysports/application/test/model/HighTechHockeyTests.java
diff --git a/MySports.application/src/test/java/eclipselink/example/mysports/application/test/model/KidsFootballLeagueTests.java b/application/src/test/java/eclipselink/example/mysports/application/test/model/KidsFootballLeagueTests.java
similarity index 99%
rename from MySports.application/src/test/java/eclipselink/example/mysports/application/test/model/KidsFootballLeagueTests.java
rename to application/src/test/java/eclipselink/example/mysports/application/test/model/KidsFootballLeagueTests.java
index ef0c7e1..0438206 100644
--- a/MySports.application/src/test/java/eclipselink/example/mysports/application/test/model/KidsFootballLeagueTests.java
+++ b/application/src/test/java/eclipselink/example/mysports/application/test/model/KidsFootballLeagueTests.java
@@ -22,7 +22,7 @@
 import javax.persistence.Persistence;
 import javax.persistence.metamodel.Attribute;
 
-import junit.framework.Assert;
+import org.junit.Assert;
 
 import org.eclipse.persistence.internal.jpa.metamodel.AttributeImpl;
 import org.junit.AfterClass;
diff --git a/MySports.application/src/test/java/eclipselink/example/mysports/application/test/model/MinorHockeyLeagueTests.java b/application/src/test/java/eclipselink/example/mysports/application/test/model/MinorHockeyLeagueTests.java
similarity index 100%
rename from MySports.application/src/test/java/eclipselink/example/mysports/application/test/model/MinorHockeyLeagueTests.java
rename to application/src/test/java/eclipselink/example/mysports/application/test/model/MinorHockeyLeagueTests.java
diff --git a/MySports.application/src/test/java/eclipselink/example/mysports/application/test/model/OttawaSoccerLeagueTests.java b/application/src/test/java/eclipselink/example/mysports/application/test/model/OttawaSoccerLeagueTests.java
similarity index 99%
rename from MySports.application/src/test/java/eclipselink/example/mysports/application/test/model/OttawaSoccerLeagueTests.java
rename to application/src/test/java/eclipselink/example/mysports/application/test/model/OttawaSoccerLeagueTests.java
index 3a153f7..69d2b1f 100644
--- a/MySports.application/src/test/java/eclipselink/example/mysports/application/test/model/OttawaSoccerLeagueTests.java
+++ b/application/src/test/java/eclipselink/example/mysports/application/test/model/OttawaSoccerLeagueTests.java
@@ -22,7 +22,7 @@
 import javax.persistence.Persistence;
 import javax.persistence.metamodel.Attribute;
 
-import junit.framework.Assert;
+import org.junit.Assert;
 
 import org.eclipse.persistence.internal.jpa.metamodel.AttributeImpl;
 import org.junit.AfterClass;
diff --git a/MySports.application/src/test/java/eclipselink/example/mysports/application/test/model/QueryTests.java b/application/src/test/java/eclipselink/example/mysports/application/test/model/QueryTests.java
similarity index 100%
rename from MySports.application/src/test/java/eclipselink/example/mysports/application/test/model/QueryTests.java
rename to application/src/test/java/eclipselink/example/mysports/application/test/model/QueryTests.java
diff --git a/MySports.application/src/test/java/eclipselink/example/mysports/application/test/model/VerifyModelAndMappings.java b/application/src/test/java/eclipselink/example/mysports/application/test/model/VerifyModelAndMappings.java
similarity index 99%
rename from MySports.application/src/test/java/eclipselink/example/mysports/application/test/model/VerifyModelAndMappings.java
rename to application/src/test/java/eclipselink/example/mysports/application/test/model/VerifyModelAndMappings.java
index 7d233cf..c8646d9 100644
--- a/MySports.application/src/test/java/eclipselink/example/mysports/application/test/model/VerifyModelAndMappings.java
+++ b/application/src/test/java/eclipselink/example/mysports/application/test/model/VerifyModelAndMappings.java
@@ -19,7 +19,7 @@
 import javax.persistence.EntityManagerFactory;
 import javax.persistence.Persistence;
 
-import junit.framework.Assert;
+import org.junit.Assert;
 
 import org.eclipse.persistence.config.PersistenceUnitProperties;
 import org.eclipse.persistence.descriptors.ClassDescriptor;
diff --git a/MySports.application/src/test/java/eclipselink/example/mysports/application/test/persistence/CreateTenantEMF.java b/application/src/test/java/eclipselink/example/mysports/application/test/persistence/CreateTenantEMF.java
similarity index 93%
rename from MySports.application/src/test/java/eclipselink/example/mysports/application/test/persistence/CreateTenantEMF.java
rename to application/src/test/java/eclipselink/example/mysports/application/test/persistence/CreateTenantEMF.java
index 010ccc7..a659031 100644
--- a/MySports.application/src/test/java/eclipselink/example/mysports/application/test/persistence/CreateTenantEMF.java
+++ b/application/src/test/java/eclipselink/example/mysports/application/test/persistence/CreateTenantEMF.java
@@ -3,7 +3,7 @@
 import javax.persistence.EntityManagerFactory;
 import javax.persistence.Persistence;
 
-import junit.framework.Assert;
+import org.junit.Assert;
 
 import org.junit.Test;
 
diff --git a/MySports.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
similarity index 100%
rename from MySports.application/src/test/java/eclipselink/example/mysports/application/test/util/AllTests.java
rename to application/src/test/java/eclipselink/example/mysports/application/test/util/AllTests.java
diff --git a/MySports.application/src/test/java/eclipselink/example/mysports/application/test/util/AttributeNameLabelTests.java b/application/src/test/java/eclipselink/example/mysports/application/test/util/AttributeNameLabelTests.java
similarity index 98%
rename from MySports.application/src/test/java/eclipselink/example/mysports/application/test/util/AttributeNameLabelTests.java
rename to application/src/test/java/eclipselink/example/mysports/application/test/util/AttributeNameLabelTests.java
index b490f64..ea9335d 100644
--- a/MySports.application/src/test/java/eclipselink/example/mysports/application/test/util/AttributeNameLabelTests.java
+++ b/application/src/test/java/eclipselink/example/mysports/application/test/util/AttributeNameLabelTests.java
@@ -12,7 +12,7 @@
  ******************************************************************************/
 package eclipselink.example.mysports.application.test.util;
 
-import junit.framework.Assert;
+import org.junit.Assert;
 
 import org.junit.Test;
 
diff --git a/MySports.application/src/test/java/eclipselink/example/mysports/application/test/util/PlayerFactory.java b/application/src/test/java/eclipselink/example/mysports/application/test/util/PlayerFactory.java
similarity index 100%
rename from MySports.application/src/test/java/eclipselink/example/mysports/application/test/util/PlayerFactory.java
rename to application/src/test/java/eclipselink/example/mysports/application/test/util/PlayerFactory.java
diff --git a/MySports.application/src/test/resources/eclipselink-example-mysports.properties b/application/src/test/resources/eclipselink-example-mysports.properties
similarity index 100%
rename from MySports.application/src/test/resources/eclipselink-example-mysports.properties
rename to application/src/test/resources/eclipselink-example-mysports.properties
diff --git a/persistence/.classpath b/persistence/.classpath
new file mode 100644
index 0000000..18801b6
--- /dev/null
+++ b/persistence/.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/persistence/.project b/persistence/.project
new file mode 100644
index 0000000..885ce09
--- /dev/null
+++ b/persistence/.project
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>persistence</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/persistence/.settings/org.eclipse.core.resources.prefs b/persistence/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..29abf99
--- /dev/null
+++ b/persistence/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,6 @@
+eclipse.preferences.version=1
+encoding//src/main/java=UTF-8
+encoding//src/main/resources=UTF-8
+encoding//src/test/java=UTF-8
+encoding//src/test/resources=UTF-8
+encoding/<project>=UTF-8
diff --git a/persistence/.settings/org.eclipse.jdt.core.prefs b/persistence/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..60105c1
--- /dev/null
+++ b/persistence/.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/persistence/.settings/org.eclipse.m2e.core.prefs b/persistence/.settings/org.eclipse.m2e.core.prefs
new file mode 100644
index 0000000..f897a7f
--- /dev/null
+++ b/persistence/.settings/org.eclipse.m2e.core.prefs
@@ -0,0 +1,4 @@
+activeProfiles=
+eclipse.preferences.version=1
+resolveWorkspaceProjects=true
+version=1
diff --git a/persistence/pom.xml b/persistence/pom.xml
new file mode 100644
index 0000000..cf4029f
--- /dev/null
+++ b/persistence/pom.xml
@@ -0,0 +1,84 @@
+<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>
+
+	<groupId>eclipselink.example.mysports</groupId>
+	<artifactId>persistence</artifactId>
+	<version>0.0.1-SNAPSHOT</version>
+	<packaging>jar</packaging>
+
+	<name>MySports.persistence</name>
+	<url>http://eclipse.org/eclipselink</url>
+
+	<repositories>
+		<repository>
+			<id>EclipseLink</id>
+			<url>http://download.eclipse.org/rt/eclipselink/maven.repo</url>
+		</repository>
+	</repositories>
+
+	<properties>
+		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+	</properties>
+
+	<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>2.4.1</version>
+			<exclusions>
+				<exclusion>
+					<artifactId>commonj.sdo</artifactId>
+					<groupId>commonj.sdo</groupId>
+				</exclusion>
+			</exclusions>
+		</dependency>
+		<dependency>
+			<groupId>org.eclipse.persistence</groupId>
+			<artifactId>javax.persistence</artifactId>
+			<version>2.0.0</version>
+		</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>
+					<compilerArguments>
+						<endorseddirs>${endorsed.dir}</endorseddirs>
+					</compilerArguments>
+				</configuration>
+			</plugin>
+
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-jar-plugin</artifactId>
+				<configuration>
+					<archive>
+						<manifestEntries>
+							<Premain-Class>eclipselink.example.mysports.persistence.TenantPerEMFWeavingAgent</Premain-Class>
+						</manifestEntries>
+					</archive>
+				</configuration>
+			</plugin>
+		</plugins>
+	</build>
+</project>
diff --git a/MySports.persistence/src/main/java/eclipselink/example/mysports/persistence/MySportsConfig.java b/persistence/src/main/java/eclipselink/example/mysports/persistence/MySportsConfig.java
similarity index 98%
rename from MySports.persistence/src/main/java/eclipselink/example/mysports/persistence/MySportsConfig.java
rename to persistence/src/main/java/eclipselink/example/mysports/persistence/MySportsConfig.java
index 8ecd74f..177da11 100644
--- a/MySports.persistence/src/main/java/eclipselink/example/mysports/persistence/MySportsConfig.java
+++ b/persistence/src/main/java/eclipselink/example/mysports/persistence/MySportsConfig.java
@@ -50,7 +50,7 @@
      * Template persistence unit name. This is the base PU which is used as a
      * template for each tenant's persistence unit.
      * 
-     * @see LeagueRepository#setLeagueId(String, java.util.Map) for details of
+     * @see LeagueRepositoryImpl#setLeagueId(String, java.util.Map) for details of
      *      how the PUs are created from template.
      */
     public static final String PU_NAME = "mysports";
diff --git a/MySports.persistence/src/main/java/eclipselink/example/mysports/persistence/TenantPerEMFProvider.java b/persistence/src/main/java/eclipselink/example/mysports/persistence/TenantPerEMFProvider.java
similarity index 95%
rename from MySports.persistence/src/main/java/eclipselink/example/mysports/persistence/TenantPerEMFProvider.java
rename to persistence/src/main/java/eclipselink/example/mysports/persistence/TenantPerEMFProvider.java
index d11e68e..91c1abe 100644
--- a/MySports.persistence/src/main/java/eclipselink/example/mysports/persistence/TenantPerEMFProvider.java
+++ b/persistence/src/main/java/eclipselink/example/mysports/persistence/TenantPerEMFProvider.java
@@ -21,8 +21,7 @@
 
 /**
  * Custom {@link javax.persistence.spi.PersistenceProvider} to support the
- * MySports usage of {@link EntityManagerFactory} per tenant based on the
- * requested PU name being {@link MySportsConfig#PU_NAME}-{league}.
+ * TODO
  *
  * @author dclarke
  * @since EclipseLink 2.4
diff --git a/MySports.persistence/src/main/java/eclipselink/example/mysports/persistence/TenantPerEMFProviderInitializer.java b/persistence/src/main/java/eclipselink/example/mysports/persistence/TenantPerEMFProviderInitializer.java
similarity index 100%
rename from MySports.persistence/src/main/java/eclipselink/example/mysports/persistence/TenantPerEMFProviderInitializer.java
rename to persistence/src/main/java/eclipselink/example/mysports/persistence/TenantPerEMFProviderInitializer.java
diff --git a/MySports.persistence/src/main/java/eclipselink/example/mysports/persistence/TenantPerEMFWeavingAgent.java b/persistence/src/main/java/eclipselink/example/mysports/persistence/TenantPerEMFWeavingAgent.java
similarity index 100%
rename from MySports.persistence/src/main/java/eclipselink/example/mysports/persistence/TenantPerEMFWeavingAgent.java
rename to persistence/src/main/java/eclipselink/example/mysports/persistence/TenantPerEMFWeavingAgent.java
diff --git a/MySports.persistence/src/main/java/eclipselink/example/mysports/persistence/admin/AdminMetadataSource.java b/persistence/src/main/java/eclipselink/example/mysports/persistence/admin/AdminMetadataSource.java
similarity index 100%
rename from MySports.persistence/src/main/java/eclipselink/example/mysports/persistence/admin/AdminMetadataSource.java
rename to persistence/src/main/java/eclipselink/example/mysports/persistence/admin/AdminMetadataSource.java
diff --git a/MySports.persistence/src/main/java/eclipselink/example/mysports/persistence/admin/AdminServerConnector.java b/persistence/src/main/java/eclipselink/example/mysports/persistence/admin/AdminServerConnector.java
similarity index 100%
rename from MySports.persistence/src/main/java/eclipselink/example/mysports/persistence/admin/AdminServerConnector.java
rename to persistence/src/main/java/eclipselink/example/mysports/persistence/admin/AdminServerConnector.java
diff --git a/MySports.persistence/src/main/java/eclipselink/example/mysports/persistence/admin/League.java b/persistence/src/main/java/eclipselink/example/mysports/persistence/admin/League.java
similarity index 100%
rename from MySports.persistence/src/main/java/eclipselink/example/mysports/persistence/admin/League.java
rename to persistence/src/main/java/eclipselink/example/mysports/persistence/admin/League.java
diff --git a/MySports.persistence/src/main/java/eclipselink/example/mysports/persistence/admin/Leagues.java b/persistence/src/main/java/eclipselink/example/mysports/persistence/admin/Leagues.java
similarity index 100%
rename from MySports.persistence/src/main/java/eclipselink/example/mysports/persistence/admin/Leagues.java
rename to persistence/src/main/java/eclipselink/example/mysports/persistence/admin/Leagues.java
diff --git a/MySports.persistence/src/main/java/eclipselink/example/mysports/persistence/admin/MoxyContextHelper.java b/persistence/src/main/java/eclipselink/example/mysports/persistence/admin/MoxyContextHelper.java
similarity index 100%
rename from MySports.persistence/src/main/java/eclipselink/example/mysports/persistence/admin/MoxyContextHelper.java
rename to persistence/src/main/java/eclipselink/example/mysports/persistence/admin/MoxyContextHelper.java
diff --git a/MySports.persistence/src/main/java/eclipselink/example/mysports/persistence/admin/RESTAdminServerConnector.java b/persistence/src/main/java/eclipselink/example/mysports/persistence/admin/RESTAdminServerConnector.java
similarity index 100%
rename from MySports.persistence/src/main/java/eclipselink/example/mysports/persistence/admin/RESTAdminServerConnector.java
rename to persistence/src/main/java/eclipselink/example/mysports/persistence/admin/RESTAdminServerConnector.java
diff --git a/MySports.persistence/src/main/java/eclipselink/example/mysports/persistence/admin/leagues-oxm.xml b/persistence/src/main/java/eclipselink/example/mysports/persistence/admin/leagues-oxm.xml
similarity index 100%
rename from MySports.persistence/src/main/java/eclipselink/example/mysports/persistence/admin/leagues-oxm.xml
rename to persistence/src/main/java/eclipselink/example/mysports/persistence/admin/leagues-oxm.xml
diff --git a/MySports.persistence/src/main/resources/META-INF/MANIFEST.MF b/persistence/src/main/resources/META-INF/MANIFEST.MF
similarity index 100%
rename from MySports.persistence/src/main/resources/META-INF/MANIFEST.MF
rename to persistence/src/main/resources/META-INF/MANIFEST.MF
diff --git a/MySports.persistence/src/main/resources/META-INF/services/javax.persistence.spi.PersistenceProvider b/persistence/src/main/resources/META-INF/services/javax.persistence.spi.PersistenceProvider
similarity index 100%
rename from MySports.persistence/src/main/resources/META-INF/services/javax.persistence.spi.PersistenceProvider
rename to persistence/src/main/resources/META-INF/services/javax.persistence.spi.PersistenceProvider
diff --git a/MySports.persistence/src/test/java/eclipselink/example/mysports/persistence/ConfigTest.java b/persistence/src/test/java/eclipselink/example/mysports/persistence/test/ConfigTest.java
similarity index 91%
rename from MySports.persistence/src/test/java/eclipselink/example/mysports/persistence/ConfigTest.java
rename to persistence/src/test/java/eclipselink/example/mysports/persistence/test/ConfigTest.java
index 7d37aa9..9ec15c3 100644
--- a/MySports.persistence/src/test/java/eclipselink/example/mysports/persistence/ConfigTest.java
+++ b/persistence/src/test/java/eclipselink/example/mysports/persistence/test/ConfigTest.java
@@ -1,4 +1,4 @@
-package eclipselink.example.mysports.persistence;
+package eclipselink.example.mysports.persistence.test;
 
 import junit.framework.Test;
 import junit.framework.TestCase;
diff --git a/MySports.application/src/test/java/eclipselink/example/mysports/application/test/util/ExamplePropertiesLoader.java b/persistence/src/test/java/eclipselink/example/mysports/persistence/test/ExamplePropertiesLoader.java
similarity index 97%
rename from MySports.application/src/test/java/eclipselink/example/mysports/application/test/util/ExamplePropertiesLoader.java
rename to persistence/src/test/java/eclipselink/example/mysports/persistence/test/ExamplePropertiesLoader.java
index 1993930..a0dd328 100644
--- a/MySports.application/src/test/java/eclipselink/example/mysports/application/test/util/ExamplePropertiesLoader.java
+++ b/persistence/src/test/java/eclipselink/example/mysports/persistence/test/ExamplePropertiesLoader.java
@@ -10,7 +10,7 @@
  * Contributors:
  *  dclarke - EclipseLink 2.3 - MySports Demo Bug 344608
  ******************************************************************************/
-package eclipselink.example.mysports.application.test.util;
+package eclipselink.example.mysports.persistence.test;
 
 import java.io.File;
 import java.io.FileInputStream;
diff --git a/MySports.persistence/src/test/java/eclipselink/example/mysports/persistence/ProviderTest.java b/persistence/src/test/java/eclipselink/example/mysports/persistence/test/ProviderTest.java
similarity index 93%
rename from MySports.persistence/src/test/java/eclipselink/example/mysports/persistence/ProviderTest.java
rename to persistence/src/test/java/eclipselink/example/mysports/persistence/test/ProviderTest.java
index cf27484..9d01e8d 100644
--- a/MySports.persistence/src/test/java/eclipselink/example/mysports/persistence/ProviderTest.java
+++ b/persistence/src/test/java/eclipselink/example/mysports/persistence/test/ProviderTest.java
@@ -1,9 +1,9 @@
-package eclipselink.example.mysports.persistence;
+package eclipselink.example.mysports.persistence.test;
 
 import java.util.HashMap;
 import java.util.Map;
 import javax.persistence.EntityManagerFactory;
-import junit.framework.Assert;
+import org.junit.Assert;
 import junit.framework.Test;
 import junit.framework.TestCase;
 import junit.framework.TestSuite;
@@ -11,6 +11,8 @@
 import org.eclipse.persistence.jpa.JpaHelper;
 import org.eclipse.persistence.sessions.server.Server;
 
+import eclipselink.example.mysports.persistence.TenantPerEMFProvider;
+
 /**
  * Unit test for simple App.
  */
diff --git a/MySports.persistence/src/test/java/eclipselink/example/mysports/persistence/persistence.xml b/persistence/src/test/java/eclipselink/example/mysports/persistence/test/persistence.xml
similarity index 100%
rename from MySports.persistence/src/test/java/eclipselink/example/mysports/persistence/persistence.xml
rename to persistence/src/test/java/eclipselink/example/mysports/persistence/test/persistence.xml
diff --git a/MySports.persistence/src/test/resources/META-INF/test-persistence.xml b/persistence/src/test/resources/META-INF/test-persistence.xml
similarity index 100%
rename from MySports.persistence/src/test/resources/META-INF/test-persistence.xml
rename to persistence/src/test/resources/META-INF/test-persistence.xml
