Simplified model to just Employee-Address-Phone
Both XML and API testing of example.* samples passing
diff --git a/employee/employee.dynamic/pom.xml b/employee/employee.dynamic/pom.xml
index cfc7355..a5835ad 100644
--- a/employee/employee.dynamic/pom.xml
+++ b/employee/employee.dynamic/pom.xml
@@ -52,7 +52,7 @@
 		<dependency>
 			<groupId>junit</groupId>
 			<artifactId>junit</artifactId>
-			<version>3.8.1</version>
+			<version>4.11</version>
 			<scope>test</scope>
 		</dependency>
 	</dependencies>
diff --git a/employee/employee.dynamic/src/main/resources/META-INF/employee-orm.xml b/employee/employee.dynamic/src/main/resources/META-INF/employee-orm.xml
index 52dfcf7..920e862 100644
--- a/employee/employee.dynamic/src/main/resources/META-INF/employee-orm.xml
+++ b/employee/employee.dynamic/src/main/resources/META-INF/employee-orm.xml
@@ -12,17 +12,14 @@
 	</object-type-converter>
 
 	<named-query name="Employee.findAll">
-		<query>SELECT e FROM Employee e ORDER BY e.lastName, e.firstName</query>
+		<query>SELECT e FROM Employee e ORDER BY e.lastName, e.firstName
+		</query>
 		<hint name="eclipselink.query-results-cache" value="True" />
 	</named-query>
 
 	<named-query name="Employee.findMin">
-		<query>SELECT e FROM Employee e WHERE e.id IN (SELECT MIN(ee.id) FROM
-			Employee ee)</query>
-	</named-query>
-
-	<named-query name="Employee.findSummary">
-		<query>SELECT new example.jpa.dynamic.model.employee.EmpSummary(e.id, e.firstName, e.lastName, a.city) FROM Employee e JOIN e.address a</query>
+		<query>SELECT e FROM Employee e WHERE e.id IN (SELECT MIN(ee.id) FROM Employee ee)
+		</query>
 	</named-query>
 
 	<entity class="Address" access="VIRTUAL">
@@ -120,77 +117,13 @@
 				<private-owned />
 			</one-to-one>
 
-			<many-to-many name="projects" target-entity="Project"
-				attribute-type="java.util.List">
-				<join-table name="PROJ_EMP">
-					<join-column name="EMP_ID" />
-					<inverse-join-column name="PROJ_ID" />
-				</join-table>
-			</many-to-many>
-
 			<element-collection name="responsibilities"
 				attribute-type="java.util.List" target-class="String">
 				<column name="RESPON_DESC" />
 				<collection-table name="RESPONS" />
 			</element-collection>
 
-			<embedded name="period" attribute-type="EmploymentPeriod" />
-
 		</attributes>
 	</entity>
 
-	<entity class="Project" access="VIRTUAL">
-		<inheritance strategy="JOINED" />
-		<discriminator-column name="PROJ_TYPE"
-			discriminator-type="CHAR" />
-		<attributes>
-			<id name="id" attribute-type="Integer">
-				<column name="PROJ_ID" />
-				<generated-value strategy="SEQUENCE" generator="project-generator" />
-				<sequence-generator name="project-generator"
-					sequence-name="PROJ_SEQ" />
-			</id>
-			<basic name="description" attribute-type="String">
-				<column name="DESCRIP" />
-			</basic>
-			<basic name="name" attribute-type="String">
-				<column name="PROJ_NAME" />
-			</basic>
-			<version name="version" attribute-type="Long" />
-			<many-to-one name="teamLeader" fetch="EAGER"
-				target-entity="Employee">
-				<join-column name="LEADER_ID" />
-			</many-to-one>
-		</attributes>
-	</entity>
-
-	<entity class="SmallProject" parent-class="Project" access="VIRTUAL">
-		<table name="PROJECT" />
-		<discriminator-value>S</discriminator-value>
-	</entity>
-
-	<entity class="LargeProject" parent-class="Project" access="VIRTUAL">
-		<table name="LPROJECT" />
-		<discriminator-value>L</discriminator-value>
-		<attributes>
-			<basic name="budget" attribute-type="Double" />
-			<basic name="milestone" attribute-type="java.util.Calendar">
-				<temporal>TIMESTAMP</temporal>
-			</basic>
-		</attributes>
-	</entity>
-
-	<embeddable class="EmploymentPeriod" access="VIRTUAL">
-		<attributes>
-			<basic name="startDate" attribute-type="java.util.Date">
-				<column name="START_DATE" />
-				<temporal>DATE</temporal>
-			</basic>
-			<basic name="endDate" attribute-type="java.util.Date">
-				<column name="END_DATE" />
-				<temporal>DATE</temporal>
-			</basic>
-		</attributes>
-	</embeddable>
-
 </entity-mappings>
\ No newline at end of file
diff --git a/employee/employee.dynamic/src/main/resources/META-INF/persistence.xml b/employee/employee.dynamic/src/main/resources/META-INF/persistence.xml
index e5300f1..eb1c2a9 100644
--- a/employee/employee.dynamic/src/main/resources/META-INF/persistence.xml
+++ b/employee/employee.dynamic/src/main/resources/META-INF/persistence.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">
-	<persistence-unit name="employee=xml" transaction-type="RESOURCE_LOCAL">
+	<persistence-unit name="employee-xml" transaction-type="RESOURCE_LOCAL">
 		<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
 		<mapping-file>META-INF/employee-orm.xml</mapping-file>
 		<exclude-unlisted-classes>true</exclude-unlisted-classes>
diff --git a/employee/employee.dynamic/src/test/java/example/EmployeeDynamicMappings.java b/employee/employee.dynamic/src/test/java/example/EmployeeDynamicMappings.java
index 774bac3..6cb7203 100644
--- a/employee/employee.dynamic/src/test/java/example/EmployeeDynamicMappings.java
+++ b/employee/employee.dynamic/src/test/java/example/EmployeeDynamicMappings.java
@@ -18,10 +18,6 @@
  ******************************************************************************/
 package example;
 
-import java.util.Calendar;
-import java.util.Date;
-
-import org.eclipse.persistence.descriptors.ClassDescriptor;
 import org.eclipse.persistence.dynamic.DynamicClassLoader;
 import org.eclipse.persistence.dynamic.DynamicType;
 import org.eclipse.persistence.jpa.dynamic.JPADynamicTypeBuilder;
@@ -54,7 +50,7 @@
     /**
      * Configure using dynamic API.
      */
-    private static void configureEmployee(JPADynamicTypeBuilder employee, JPADynamicTypeBuilder address, JPADynamicTypeBuilder phone, JPADynamicTypeBuilder period, JPADynamicTypeBuilder project) {
+    private static void configureEmployee(JPADynamicTypeBuilder employee, JPADynamicTypeBuilder address, JPADynamicTypeBuilder phone) {
         employee.setPrimaryKeyFields("EMP_ID");
 
         employee.addDirectMapping("id", int.class, "D_EMPLOYEE.EMP_ID");
@@ -73,7 +69,6 @@
         phoneMapping.setCascadeAll(true);
         phoneMapping.setIsPrivateOwned(true);
 
-        employee.addAggregateObjectMapping("period", period.getType(), true);
         employee.addOneToManyMapping("managedEmployees", employee.getType(), "MANAGER_ID");
 
         employee.addDirectCollectionMapping("responsibilities", "D_RESPONS", "RESPON_DESC", String.class, "EMP_ID");
@@ -84,28 +79,6 @@
     /**
      * Configure using dynamic API.
      */
-    private static void configureLargeProject(JPADynamicTypeBuilder largeProject, JPADynamicTypeBuilder project) {
-        largeProject.setPrimaryKeyFields("PROJ_ID");
-
-        ClassDescriptor descriptor = largeProject.getType().getDescriptor();
-        descriptor.getInheritancePolicy().setClassIndicatorFieldName("PROJ_TYPE");
-        descriptor.getInheritancePolicy().setParentClass(project.getType().getJavaClass());
-
-        largeProject.addDirectMapping("budget", double.class, "BUDGET");
-        largeProject.addDirectMapping("milestone", Calendar.class, "MILESTONE");
-    }
-
-    /**
-     * Configure using dynamic API.
-     */
-    private static void configurePeriod(JPADynamicTypeBuilder period) {
-        period.addDirectMapping("startDate", Date.class, "START_DATE");
-        period.addDirectMapping("endDate", Date.class, "END_DATE");
-    }
-
-    /**
-     * Configure using dynamic API.
-     */
     private static void configurePhone(JPADynamicTypeBuilder phone, JPADynamicTypeBuilder employee) {
         phone.setPrimaryKeyFields("PHONE_TYPE", "EMP_ID");
 
@@ -117,37 +90,6 @@
         phone.addOneToOneMapping("owner", employee.getType(), "EMP_ID");
     }
 
-    /**
-     * Configure using dynamic API.
-     */
-    private static void configureProject(JPADynamicTypeBuilder project, JPADynamicTypeBuilder smallProject, JPADynamicTypeBuilder largeProject, JPADynamicTypeBuilder employee) {
-        project.setPrimaryKeyFields("PROJ_ID");
-
-        project.addDirectMapping("id", int.class, "PROJ_ID");
-        project.addDirectMapping("name", String.class, "NAME");
-        project.addDirectMapping("description", String.class, "DESCRIP");
-
-        project.addOneToOneMapping("teamLeader", employee.getType(), "EMP_ID");
-
-        ClassDescriptor descriptor = project.getType().getDescriptor();
-
-        descriptor.getInheritancePolicy().setClassIndicatorFieldName("PROJ_TYPE");
-        descriptor.getInheritancePolicy().addClassIndicator(smallProject.getType().getJavaClass(), "S");
-        descriptor.getInheritancePolicy().addClassIndicator(largeProject.getType().getJavaClass(), "L");
-        descriptor.getInheritancePolicy().addClassIndicator(project.getType().getJavaClass(), "P");
-
-        project.configureSequencing("PROJ_SEQ", "PROJ_ID");
-    }
-
-    /**
-     * Configure using dynamic API.
-     */
-    private static void configureSmallProject(JPADynamicTypeBuilder smallProject, JPADynamicTypeBuilder project) {
-        smallProject.setPrimaryKeyFields("PROJ_ID");
-
-        ClassDescriptor descriptor = smallProject.getType().getDescriptor();
-        descriptor.getInheritancePolicy().setParentClass(project.getType().getJavaClass());
-    }
 
     /**
      * Create the types using the dynamic API.
@@ -158,32 +100,16 @@
         Class<?> employeeClass = dcl.createDynamicClass(packagePrefix + "Employee");
         Class<?> addressClass = dcl.createDynamicClass(packagePrefix + "Address");
         Class<?> phoneClass = dcl.createDynamicClass(packagePrefix + "PhoneNumber");
-        Class<?> periodClass = dcl.createDynamicClass(packagePrefix + "EmploymentPeriod");
-        Class<?> projectClass = dcl.createDynamicClass(packagePrefix + "Project");
-        Class<?> smallProjectClass = dcl.createDynamicClass(packagePrefix + "SmallProject", projectClass);
-        Class<?> largeProjectClass = dcl.createDynamicClass(packagePrefix + "LargeProject", projectClass);
 
         JPADynamicTypeBuilder employee = new JPADynamicTypeBuilder(employeeClass, null, "D_EMPLOYEE", "D_SALARY");
         JPADynamicTypeBuilder address = new JPADynamicTypeBuilder(addressClass, null, "D_ADDRESS");
         JPADynamicTypeBuilder phone = new JPADynamicTypeBuilder(phoneClass, null, "D_PHONE");
-        JPADynamicTypeBuilder period = new JPADynamicTypeBuilder(periodClass, null);
-        JPADynamicTypeBuilder project = new JPADynamicTypeBuilder(projectClass, null, "D_PROJECT");
-        JPADynamicTypeBuilder smallProject = new JPADynamicTypeBuilder(smallProjectClass, project.getType(), "D_PROJECT");
-        JPADynamicTypeBuilder largeProject = new JPADynamicTypeBuilder(largeProjectClass, project.getType(), "D_LPROJECT");
 
         configureAddress(address);
-        configureEmployee(employee, address, phone, period, project);
+        configureEmployee(employee, address, phone);
         configurePhone(phone, employee);
-        configurePeriod(period);
-        configureProject(project, smallProject, largeProject, employee);
-        configureSmallProject(smallProject, project);
-        configureLargeProject(largeProject, project);
 
-        // Must be done here since it requires the PK configurations on Employee
-        // and Project
-        employee.addManyToManyMapping("projects", project.getType(), "D_PROJ_EMP");
-
-        DynamicType[] types = new DynamicType[] { employee.getType(), address.getType(), phone.getType(), period.getType(), project.getType(), smallProject.getType(), largeProject.getType() };
+        DynamicType[] types = new DynamicType[] { employee.getType(), address.getType(), phone.getType() };
         return types;
     }
 }
diff --git a/employee/employee.dynamic/src/test/java/example/PersistenceHelper.java b/employee/employee.dynamic/src/test/java/example/PersistenceHelper.java
index ab011bb..f549b5b 100644
--- a/employee/employee.dynamic/src/test/java/example/PersistenceHelper.java
+++ b/employee/employee.dynamic/src/test/java/example/PersistenceHelper.java
@@ -45,14 +45,23 @@
  * @author dclarke
  */
 public class PersistenceHelper {
+    
+    public static final String EMPLOYEE_XML_PU = "employee-xml";
 
-    public static EntityManagerFactory createEntityManagerFactory(DynamicClassLoader dcl, String persistenceUnit) {
+    public static final String EMPLOYEE_API_PU = "employee-api";
+
+    public static EntityManagerFactory createEntityManagerFactory(DynamicClassLoader dcl, String persistenceUnit, boolean createTables) {
         Map<String, Object> props = new HashMap<String, Object>();
 
         // Ensure the persistence.xml provided data source are ignored for Java
         // SE testing
         props.put(PersistenceUnitProperties.NON_JTA_DATASOURCE, "");
         props.put(PersistenceUnitProperties.JTA_DATASOURCE, "");
+        
+        if (createTables) {
+            props.put(PersistenceUnitProperties.DDL_GENERATION, PersistenceUnitProperties.DROP_AND_CREATE);
+            props.put(PersistenceUnitProperties.DDL_GENERATION_MODE, PersistenceUnitProperties.DDL_DATABASE_GENERATION);
+        }
 
         // Configure the use of embedded derby for the tests allowing system
         // properties of the same name to override
diff --git a/employee/employee.dynamic/src/test/java/example/Queries.java b/employee/employee.dynamic/src/test/java/example/Queries.java
index 96ecbb2..eb2e84d 100644
--- a/employee/employee.dynamic/src/test/java/example/Queries.java
+++ b/employee/employee.dynamic/src/test/java/example/Queries.java
@@ -71,7 +71,7 @@
         List<DynamicEntity> emps = query.getResultList();
 
         for (DynamicEntity emp : emps) {
-            emp.<DynamicEntity>get("manager").<Collection>get("phoneNumbers").size();
+            emp.<DynamicEntity>get("manager").<Collection<DynamicEntity>>get("phoneNumbers").size();
         }
 
         return emps;
diff --git a/employee/employee.dynamic/src/test/java/example/Samples.java b/employee/employee.dynamic/src/test/java/example/Samples.java
index d649122..44e352d 100644
--- a/employee/employee.dynamic/src/test/java/example/Samples.java
+++ b/employee/employee.dynamic/src/test/java/example/Samples.java
@@ -18,11 +18,9 @@
  ******************************************************************************/
 package example;
 import java.util.ArrayList;
-import java.util.Calendar;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.Comparator;
-import java.util.Date;
 import java.util.List;
 
 import javax.persistence.EntityManager;
@@ -43,22 +41,15 @@
  * @author dclarke
  * @since EclipseLink - Dynamic Incubator (1.1.0-branch)
  */
-@SuppressWarnings("deprecation")
 public class Samples {
     private EntityManagerFactory emf;
     public DynamicEntity[] employees;
-    public DynamicEntity[] smallProjects;
-    public DynamicEntity[] largeProjects;
 
     public Samples(EntityManagerFactory emf) {
         this.emf = emf;
 
         this.employees = new DynamicEntity[] { basicEmployeeExample1(), basicEmployeeExample2(), basicEmployeeExample3(), basicEmployeeExample4(), basicEmployeeExample5(), basicEmployeeExample6(), basicEmployeeExample7(), basicEmployeeExample8(), basicEmployeeExample9(), basicEmployeeExample10(), basicEmployeeExample11(), basicEmployeeExample12() };
 
-        this.smallProjects = new DynamicEntity[] { basicSmallProjectExample1(), basicSmallProjectExample2(), basicSmallProjectExample3(), basicSmallProjectExample4(), basicSmallProjectExample5(), basicSmallProjectExample7(), basicSmallProjectExample8(), basicSmallProjectExample9(), basicSmallProjectExample10() };
-
-        this.largeProjects = new DynamicEntity[] { basicLargeProjectExample1(), basicLargeProjectExample2(), basicLargeProjectExample3(), basicLargeProjectExample4(), basicLargeProjectExample5() };
-
         // Setup management hierarchy
         addManagedEmployees(0, new int[] { 2, 3, 4 });
         addManagedEmployees(1, new int[] { 5, 0 });
@@ -72,20 +63,6 @@
         addManagedEmployees(9, new int[] { 7, 8, 10, 11 });
         addManagedEmployees(10, new int[] { 6 });
         addManagedEmployees(11, new int[] { 1 });
-
-        // Setup Employee-Project associations
-        addProjects(0, new int[] { 0, 1, 2 }, new int[] {});
-        addProjects(1, new int[] { 3, 4, 0 }, new int[] {});
-        addProjects(2, new int[] { 3 }, new int[] { 3, 4 });
-        addProjects(4, new int[] { 3, 1 }, new int[] { 2, 4 });
-        addProjects(5, new int[] {}, new int[] { 1 });
-        addProjects(6, new int[] {}, new int[] { 1 });
-
-        // Setup LargeProject leads
-        this.largeProjects[0].set("teamLeader", this.employees[1]);
-        this.largeProjects[3].set("teamLeader", this.employees[2]);
-        this.largeProjects[4].set("teamLeader", this.employees[2]);
-
     }
 
     private DynamicEntity newInstance(String entityAlias) {
@@ -108,13 +85,6 @@
         return phone;
     }
 
-    private void setPeriod(DynamicEntity employee, Date startDate, Date endDate) {
-        DynamicEntity period = newInstance("EmploymentPeriod");
-        period.set("startDate", startDate);
-        period.set("endDate", endDate);
-        employee.set("period", period);
-    }
-
     public DynamicEntity basicEmployeeExample1() {
         DynamicEntity employee = newInstance("Employee");
 
@@ -123,8 +93,6 @@
         employee.set("gender", "Male");
         employee.set("salary", 35000);
 
-        setPeriod(employee, new Date(1993, 0, 1), new Date(1996, 0, 1));
-
         DynamicEntity address = newInstance("Address");
         address.set("city", "Toronto");
         address.set("postalCode", "L5J2B5");
@@ -147,8 +115,6 @@
         employee.set("lastName", "May");
         employee.set("gender", "Female");
 
-        setPeriod(employee, new Date(1991, 10, 111), null);
-
         DynamicEntity address = newInstance("Address");
         address.set("city", "Calgary");
         address.set("postalCode", "J5J2B5");
@@ -171,8 +137,6 @@
         employee.set("lastName", "Smitty");
         employee.set("gender", "Female");
 
-        setPeriod(employee, new Date(1993, 0, 1), new Date(1996, 0, 1));
-
         DynamicEntity address = newInstance("Address");
         address.set("city", "Arnprior");
         address.set("postalCode", "W1A2B5");
@@ -196,8 +160,6 @@
         employee.set("lastName", "Jefferson");
         employee.set("gender", "Male");
 
-        setPeriod(employee, new Date(1995, 0, 12), new Date(2001, 11, 31));
-
         DynamicEntity address = newInstance("Address");
         address.set("city", "Yellowknife");
         address.set("postalCode", "Y5J2N5");
@@ -221,8 +183,6 @@
         employee.set("gender", "Male");
         employee.set("salary", 53000);
 
-        setPeriod(employee, new Date(1991, 10, 11), null);
-
         DynamicEntity address = newInstance("Address");
         address.set("city", "Ottawa");
         address.set("postalCode", "K5J2B5");
@@ -247,8 +207,6 @@
         employee.set("gender", "Male");
         employee.set("salary", 43000);
 
-        setPeriod(employee, new Date(1995, 0, 1), new Date(2001, 11, 31));
-
         DynamicEntity address = newInstance("Address");
         address.set("city", "Montreal");
         address.set("postalCode", "Q2S5Z5");
@@ -273,8 +231,6 @@
         employee.set("gender", "Male");
         employee.set("salary", 49631);
 
-        setPeriod(employee, new Date(2001, 11, 31), new Date(1995, 0, 1));
-
         DynamicEntity address = newInstance("Address");
         address.set("city", "Vancouver");
         address.set("postalCode", "N5J2N5");
@@ -300,8 +256,6 @@
         employee.set("gender", "Female");
         employee.set("salary", 87000);
 
-        setPeriod(employee, new Date(2001, 6, 31), new Date(1995, 4, 1));
-
         DynamicEntity address = newInstance("Address");
         address.set("city", "Prince Rupert");
         address.set("postalCode", "K3K5D5");
@@ -326,8 +280,6 @@
         employee.set("gender", "Male");
         employee.set("salary", 54300);
 
-        setPeriod(employee, new Date(2001, 11, 31), new Date(1995, 0, 12));
-
         DynamicEntity address = newInstance("Address");
         address.set("city", "Perth");
         address.set("postalCode", "Y3Q2N9");
@@ -351,8 +303,6 @@
         employee.set("gender", "Female");
         employee.set("salary", 31000);
 
-        setPeriod(employee, new Date(1996, 0, 1), new Date(1993, 0, 1));
-
         DynamicEntity address = newInstance("Address");
         address.set("city", "Metcalfe");
         address.set("postalCode", "Y4F7V6");
@@ -374,8 +324,6 @@
         employee.set("gender", "Male");
         employee.set("salary", 500000);
 
-        setPeriod(employee, new Date(2001, 11, 31), new Date(1995, 0, 1));
-
         DynamicEntity address = newInstance("Address");
         address.set("city", "Victoria");
         address.set("postalCode", "Z5J2N5");
@@ -398,8 +346,6 @@
         employee.set("gender", "Female");
         employee.set("salary", 500001);
 
-        setPeriod(employee, new Date(2001, 11, 31), new Date(1995, 0, 1));
-
         DynamicEntity address = newInstance("Address");
         address.set("city", "Smith Falls");
         address.set("postalCode", "C6C6C6");
@@ -414,141 +360,6 @@
         return employee;
     }
 
-    private void setCalendar(DynamicEntity entity, String name, int year, int month, int day, int hour, int minute, int seconds) {
-        Calendar cal = entity.<Calendar> get(name);
-
-        if (cal == null) {
-            cal = Calendar.getInstance();
-            entity.set(name, cal);
-        }
-        cal.set(year, month, day, hour, minute, seconds);
-    }
-
-    public DynamicEntity basicLargeProjectExample1() {
-        DynamicEntity largeProject = newInstance("LargeProject");
-
-        largeProject.set("name", "Sales Reporting");
-        largeProject.set("description", "A reporting application to report on the corporations database through TopLink.");
-        largeProject.set("budget", (double) 5000);
-        setCalendar(largeProject, "milestone", 1991, 10, 11, 12, 0, 0);
-
-        return largeProject;
-    }
-
-    public DynamicEntity basicLargeProjectExample2() {
-        DynamicEntity largeProject = newInstance("LargeProject");
-
-        largeProject.set("name", "Light Reporter");
-        largeProject.set("description", "A lightweight application to report on the corporations database through TopLink.");
-        largeProject.set("budget", 100.98);
-        setCalendar(largeProject, "milestone", 1999, 11, 25, 11, 40, 44);
-
-        return largeProject;
-    }
-
-    public DynamicEntity basicLargeProjectExample3() {
-        DynamicEntity largeProject = newInstance("LargeProject");
-
-        largeProject.set("name", "TOPEmployee Management");
-        largeProject.set("description", "A management application to report on the corporations database through TopLink.");
-        largeProject.set("budget", 4000.98);
-        setCalendar(largeProject, "milestone", 1997, 10, 12, 1, 0, 0);
-
-        return largeProject;
-    }
-
-    public DynamicEntity basicLargeProjectExample4() {
-        DynamicEntity largeProject = newInstance("LargeProject");
-
-        largeProject.set("name", "Enterprise System");
-        largeProject.set("description", "A enterprise wide application to report on the corporations database through TopLink.");
-        largeProject.set("budget", 40.98);
-        setCalendar(largeProject, "milestone", 1996, 8, 6, 6, 40, 44);
-
-        return largeProject;
-    }
-
-    public DynamicEntity basicLargeProjectExample5() {
-        DynamicEntity largeProject = newInstance("LargeProject");
-
-        largeProject.set("name", "Problem Reporting System");
-        largeProject.set("description", "A PRS application to report on the corporations database through TopLink.");
-        largeProject.set("budget", 101.98);
-        setCalendar(largeProject, "milestone", 1997, 9, 6, 1, 40, 44);
-
-        return largeProject;
-    }
-
-    public DynamicEntity basicSmallProjectExample1() {
-        DynamicEntity smallProject = newInstance("SmallProject");
-        smallProject.set("name", "Enterprise");
-        smallProject.set("description", "A enterprise wide application to report on the corporations database through TopLink.");
-        return smallProject;
-    }
-
-    public DynamicEntity basicSmallProjectExample10() {
-        DynamicEntity smallProject = newInstance("SmallProject");
-        smallProject.set("name", "Staff Query Tool");
-        smallProject.set("description", "A tool to help staff query various things.");
-        return smallProject;
-    }
-
-    public DynamicEntity basicSmallProjectExample2() {
-        DynamicEntity smallProject = newInstance("SmallProject");
-        smallProject.set("name", "Sales Reporter");
-        smallProject.set("description", "A reporting application using JDK to report on the corporations database through TopLink.");
-        return smallProject;
-    }
-
-    public DynamicEntity basicSmallProjectExample3() {
-        DynamicEntity smallProject = newInstance("SmallProject");
-        smallProject.set("name", "TOP-Employee Manager");
-        smallProject.set("description", "A management application to report on the corporations database through TopLink.");
-        return smallProject;
-    }
-
-    public DynamicEntity basicSmallProjectExample4() {
-        DynamicEntity smallProject = newInstance("SmallProject");
-        smallProject.set("name", "Problem Reporter");
-        smallProject.set("description", "A PRS application to report on the corporations database through TopLink.");
-        return smallProject;
-    }
-
-    public DynamicEntity basicSmallProjectExample5() {
-        DynamicEntity smallProject = newInstance("SmallProject");
-        smallProject.set("name", "Feather Reporter");
-        smallProject.set("description", "An extremely lightweight application to report on the corporations database through TopLink.");
-        return smallProject;
-    }
-
-    public DynamicEntity basicSmallProjectExample6() {
-        DynamicEntity smallProject = newInstance("SmallProject");
-        smallProject.set("name", "Makework");
-        smallProject.set("description", "A makework project.");
-        return smallProject;
-    }
-
-    public DynamicEntity basicSmallProjectExample7() {
-        DynamicEntity smallProject = newInstance("SmallProject");
-        smallProject.set("name", "Marketing Query Tool");
-        smallProject.set("description", "A tool to help marketing query various things.");
-        return smallProject;
-    }
-
-    public DynamicEntity basicSmallProjectExample8() {
-        DynamicEntity smallProject = newInstance("SmallProject");
-        smallProject.set("name", "Shipping Query Tool");
-        smallProject.set("description", "A tool to help shipping query various things.");
-        return smallProject;
-    }
-
-    public DynamicEntity basicSmallProjectExample9() {
-        DynamicEntity smallProject = newInstance("SmallProject");
-        smallProject.set("name", "Accounting Query Tool");
-        smallProject.set("description", "A tool to help accounting query various things.");
-        return smallProject;
-    }
-
     private void addManagedEmployees(int managerIndex, int[] employeeIndeces) {
         DynamicEntity manager = this.employees[managerIndex];
 
@@ -559,19 +370,6 @@
         }
     }
 
-    private void addProjects(int empIndex, int[] smallProjIndeces, int[] largeProjIndeces) {
-        DynamicEntity employee = this.employees[empIndex];
-        Collection<DynamicEntity> projects = employee.<Collection<DynamicEntity>> get("projects");
-
-        for (int index = 0; index < smallProjIndeces.length; index++) {
-            projects.add(this.smallProjects[smallProjIndeces[index]]);
-        }
-
-        for (int index = 0; index < largeProjIndeces.length; index++) {
-            projects.add(this.largeProjects[largeProjIndeces[index]]);
-        }
-    }
-
     /**
      * Register all of the population in the provided EntityManager to be
      * persisted This method should only be called from within a test case. It
@@ -585,17 +383,10 @@
         assertCount(em, "Employee", 0);
         assertCount(em, "Address", 0);
         assertCount(em, "PhoneNumber", 0);
-        assertCount(em, "Project", 0);
 
         for (int index = 0; index < this.employees.length; index++) {
             em.persist(this.employees[index]);
         }
-        for (int index = 0; index < this.smallProjects.length; index++) {
-            em.persist(this.smallProjects[index]);
-        }
-        for (int index = 0; index < this.largeProjects.length; index++) {
-            em.persist(this.largeProjects[index]);
-        }
 
         em.flush();
         verifyCounts(em);
@@ -604,7 +395,6 @@
     public void verifyCounts(EntityManager em) {
         assertCount(em, "Employee", this.employees.length);
         assertCount(em, "Address", this.employees.length);
-        assertCount(em, "Project", this.smallProjects.length + this.largeProjects.length);
     }
 
     /**
diff --git a/employee/employee.dynamic/src/test/java/tests/TestDynamicUsingAPI.java b/employee/employee.dynamic/src/test/java/tests/TestDynamicUsingAPI.java
index 6b23559..9502383 100644
--- a/employee/employee.dynamic/src/test/java/tests/TestDynamicUsingAPI.java
+++ b/employee/employee.dynamic/src/test/java/tests/TestDynamicUsingAPI.java
@@ -16,9 +16,10 @@
  * may never be included in the product. Please provide feedback through mailing 
  * lists or the bug database.
  ******************************************************************************/
-package example;
+package tests;
 
 import javax.persistence.EntityManager;
+import static example.PersistenceHelper.EMPLOYEE_API_PU;
 import javax.persistence.EntityManagerFactory;
 
 import org.eclipse.persistence.dynamic.DynamicClassLoader;
@@ -27,6 +28,12 @@
 import org.eclipse.persistence.tools.schemaframework.SchemaManager;
 import org.junit.Test;
 
+import example.EmployeeDynamicMappings;
+import example.PersistenceHelper;
+import example.Queries;
+import example.Samples;
+import example.Transactions;
+
 public class TestDynamicUsingAPI {
 
     @Test
@@ -36,7 +43,7 @@
         DynamicType[] types = EmployeeDynamicMappings.createTypes(dcl, "example.jpa.dynamic.model.employee");
 
         // Create an entity manager factory.
-        EntityManagerFactory emf = PersistenceHelper.createEntityManagerFactory(dcl, "employee-api");
+        EntityManagerFactory emf = PersistenceHelper.createEntityManagerFactory(dcl, EMPLOYEE_API_PU, true);
 
         // Create JPA Dynamic Helper (with the emf above) and after the types
         // have been created and add the types through the helper.
diff --git a/employee/employee.dynamic/src/test/java/tests/TestDynamicUsingXML.java b/employee/employee.dynamic/src/test/java/tests/TestDynamicUsingXML.java
index 6cb54f2..d66ccd6 100644
--- a/employee/employee.dynamic/src/test/java/tests/TestDynamicUsingXML.java
+++ b/employee/employee.dynamic/src/test/java/tests/TestDynamicUsingXML.java
@@ -16,7 +16,7 @@
  * may never be included in the product. Please provide feedback through mailing 
  * lists or the bug database.
  ******************************************************************************/
-package example;
+package tests;
 
 import javax.persistence.EntityManager;
 import javax.persistence.EntityManagerFactory;
@@ -27,13 +27,24 @@
 import org.eclipse.persistence.jpa.dynamic.JPADynamicHelper;
 import org.junit.Test;
 
+import example.PersistenceHelper;
+import example.Queries;
+import example.Samples;
+import example.Transactions;
+import static example.PersistenceHelper.EMPLOYEE_XML_PU;
+
+/**
+ * 
+ * @author dclarke
+ * 
+ */
 public class TestDynamicUsingXML {
 
     @Test
     public void runDynamicJPATest() throws JAXBException {
         // Create an entity manager factory with a dynamic class loader.
         DynamicClassLoader dcl = new DynamicClassLoader(Thread.currentThread().getContextClassLoader());
-        EntityManagerFactory emf = PersistenceHelper.createEntityManagerFactory(dcl, "employee-xml");
+        EntityManagerFactory emf = PersistenceHelper.createEntityManagerFactory(dcl, EMPLOYEE_XML_PU, true);
 
         EntityManager em = emf.createEntityManager();
         em.getTransaction().begin();
@@ -52,7 +63,7 @@
         queries.findEmployee(em, empType, minEmpId);
         queries.findEmployeesUsingGenderIn(em);
 
-        queries.findEmployeeSummaries(em);
+        //queries.findEmployeeSummaries(em);
 
         // Example transactions
         Transactions txn = new Transactions();