Eclipse-ified projects. All compiling.
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