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();