Main test class running with derby
diff --git a/employee/employee.dynamic/.classpath b/employee/employee.dynamic/.classpath
index 0a1dadd..2b90e11 100644
--- a/employee/employee.dynamic/.classpath
+++ b/employee/employee.dynamic/.classpath
@@ -6,6 +6,7 @@
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
+ <classpathentry kind="src" path="src/main/resources"/>
<classpathentry kind="src" output="target/test-classes" path="src/test/java">
<attributes>
<attribute name="optional" value="true"/>
diff --git a/employee/employee.dynamic/dynamicExampleCreateDDL_ddlGeneration.jdbc b/employee/employee.dynamic/dynamicExampleCreateDDL_ddlGeneration.jdbc
new file mode 100644
index 0000000..5980a13
--- /dev/null
+++ b/employee/employee.dynamic/dynamicExampleCreateDDL_ddlGeneration.jdbc
@@ -0,0 +1,25 @@
+CREATE TABLE PROJECT (PROJ_ID INTEGER NOT NULL, PROJ_TYPE VARCHAR(31), DESCRIP VARCHAR(255), PROJ_NAME VARCHAR(255), VERSION BIGINT, LEADER_ID INTEGER, PRIMARY KEY (PROJ_ID))
+CREATE TABLE ADDRESS (ADDRESS_ID INTEGER NOT NULL, CITY VARCHAR(255), COUNTRY VARCHAR(255), P_CODE VARCHAR(255), PROVINCE VARCHAR(255), STREET VARCHAR(255), PRIMARY KEY (ADDRESS_ID))
+CREATE TABLE LPROJECT (PROJ_ID INTEGER NOT NULL, BUDGET FLOAT, MILESTONE TIMESTAMP, PRIMARY KEY (PROJ_ID))
+CREATE TABLE PHONE (PHONE_NUM_ID INTEGER NOT NULL, AREA_CODE VARCHAR(255), P_NUMBER VARCHAR(255), TYPE VARCHAR(255), EMP_ID INTEGER, PRIMARY KEY (PHONE_NUM_ID))
+CREATE TABLE EMPLOYEE (EMP_ID INTEGER NOT NULL, END_TIME VARCHAR(255), F_NAME VARCHAR(255), GENDER VARCHAR(255), L_NAME VARCHAR(255), START_TIME VARCHAR(255), VERSION BIGINT, END_DATE DATE, START_DATE DATE, MANAGER_ID INTEGER, ADDR_ID INTEGER, PRIMARY KEY (EMP_ID))
+CREATE TABLE SALARY (EMP_ID INTEGER NOT NULL, SALARY INTEGER, PRIMARY KEY (EMP_ID))
+CREATE TABLE RESPONS (Employee_EMP_ID INTEGER, RESPON_DESC VARCHAR(255))
+CREATE TABLE PROJ_EMP (EMP_ID INTEGER NOT NULL, PROJ_ID INTEGER NOT NULL, PRIMARY KEY (EMP_ID, PROJ_ID))
+ALTER TABLE PROJECT ADD CONSTRAINT PROJECT_LEADER_ID FOREIGN KEY (LEADER_ID) REFERENCES EMPLOYEE (EMP_ID)
+ALTER TABLE LPROJECT ADD CONSTRAINT LPROJECT_PROJ_ID FOREIGN KEY (PROJ_ID) REFERENCES PROJECT (PROJ_ID)
+ALTER TABLE PHONE ADD CONSTRAINT FK_PHONE_EMP_ID FOREIGN KEY (EMP_ID) REFERENCES EMPLOYEE (EMP_ID)
+ALTER TABLE EMPLOYEE ADD CONSTRAINT EMPLOYEEMANAGER_ID FOREIGN KEY (MANAGER_ID) REFERENCES EMPLOYEE (EMP_ID)
+ALTER TABLE EMPLOYEE ADD CONSTRAINT EMPLOYEE_ADDR_ID FOREIGN KEY (ADDR_ID) REFERENCES ADDRESS (ADDRESS_ID)
+ALTER TABLE SALARY ADD CONSTRAINT FK_SALARY_EMP_ID FOREIGN KEY (EMP_ID) REFERENCES EMPLOYEE (EMP_ID)
+ALTER TABLE RESPONS ADD CONSTRAINT RSPONSmployeeEMPID FOREIGN KEY (Employee_EMP_ID) REFERENCES EMPLOYEE (EMP_ID)
+ALTER TABLE PROJ_EMP ADD CONSTRAINT FK_PROJ_EMP_EMP_ID FOREIGN KEY (EMP_ID) REFERENCES EMPLOYEE (EMP_ID)
+ALTER TABLE PROJ_EMP ADD CONSTRAINT PROJ_EMP_PROJ_ID FOREIGN KEY (PROJ_ID) REFERENCES PROJECT (PROJ_ID)
+CREATE SEQUENCE PROJ_SEQ INCREMENT BY 50 START WITH 50
+CREATE SEQUENCE ADDR_SEQ INCREMENT BY 50 START WITH 50
+CREATE SEQUENCE EMP_SEQ INCREMENT BY 50 START WITH 50
+CREATE SEQUENCE SEQ_GEN_SEQUENCE INCREMENT BY 50 START WITH 50
+CREATE SEQUENCE SEQ_GEN_SEQUENCE INCREMENT BY 50 START WITH 50
+CREATE SEQUENCE PROJ_SEQ INCREMENT BY 50 START WITH 50
+CREATE SEQUENCE ADDR_SEQ INCREMENT BY 50 START WITH 50
+CREATE SEQUENCE EMP_SEQ INCREMENT BY 50 START WITH 50
diff --git a/employee/employee.dynamic/dynamicExampleDropDDL_ddlGeneration.jdbc b/employee/employee.dynamic/dynamicExampleDropDDL_ddlGeneration.jdbc
new file mode 100644
index 0000000..7150923
--- /dev/null
+++ b/employee/employee.dynamic/dynamicExampleDropDDL_ddlGeneration.jdbc
@@ -0,0 +1,21 @@
+ALTER TABLE PROJECT DROP CONSTRAINT PROJECT_LEADER_ID
+ALTER TABLE LPROJECT DROP CONSTRAINT LPROJECT_PROJ_ID
+ALTER TABLE PHONE DROP CONSTRAINT FK_PHONE_EMP_ID
+ALTER TABLE EMPLOYEE DROP CONSTRAINT EMPLOYEEMANAGER_ID
+ALTER TABLE EMPLOYEE DROP CONSTRAINT EMPLOYEE_ADDR_ID
+ALTER TABLE SALARY DROP CONSTRAINT FK_SALARY_EMP_ID
+ALTER TABLE RESPONS DROP CONSTRAINT RSPONSmployeeEMPID
+ALTER TABLE PROJ_EMP DROP CONSTRAINT FK_PROJ_EMP_EMP_ID
+ALTER TABLE PROJ_EMP DROP CONSTRAINT PROJ_EMP_PROJ_ID
+DROP TABLE PROJECT
+DROP TABLE ADDRESS
+DROP TABLE LPROJECT
+DROP TABLE PHONE
+DROP TABLE EMPLOYEE
+DROP TABLE SALARY
+DROP TABLE RESPONS
+DROP TABLE PROJ_EMP
+DROP SEQUENCE SEQ_GEN_SEQUENCE RESTRICT
+DROP SEQUENCE PROJ_SEQ RESTRICT
+DROP SEQUENCE ADDR_SEQ RESTRICT
+DROP SEQUENCE EMP_SEQ RESTRICT
diff --git a/employee/employee.dynamic/pom.xml b/employee/employee.dynamic/pom.xml
index 23832b9..6cdbea6 100644
--- a/employee/employee.dynamic/pom.xml
+++ b/employee/employee.dynamic/pom.xml
@@ -42,6 +42,12 @@
<scope>provided</scope>
</dependency>
+ <dependency>
+ <groupId>org.apache.derby</groupId>
+ <artifactId>derby</artifactId>
+ <version>10.9.1.0</version>
+ <scope>test</scope>
+ </dependency>
<dependency>
<groupId>junit</groupId>
diff --git a/employee/employee.dynamic/src/test/java/example/Main.java b/employee/employee.dynamic/src/test/java/example/Main.java
index 97a6992..54f04e2 100644
--- a/employee/employee.dynamic/src/test/java/example/Main.java
+++ b/employee/employee.dynamic/src/test/java/example/Main.java
@@ -32,8 +32,7 @@
import org.eclipse.persistence.jpa.dynamic.JPADynamicHelper;
import org.eclipse.persistence.tools.schemaframework.SchemaManager;
-import example.utils.ExamplePropertiesLoader;
-
+@SuppressWarnings("restriction")
public class Main {
public static void main(String[] args) throws Exception {
@@ -118,10 +117,21 @@
}
public static EntityManagerFactory createEntityManagerFactory(DynamicClassLoader dcl, String persistenceUnit) {
- Map<String, Object> properties = new HashMap<String, Object>();
- ExamplePropertiesLoader.loadProperties(properties);
- properties.put(PersistenceUnitProperties.CLASSLOADER, dcl);
- properties.put(PersistenceUnitProperties.WEAVING, "static");
- return Persistence.createEntityManagerFactory(persistenceUnit, properties);
+ 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, "");
+
+ // Configure the use of embedded derby for the tests allowing system
+ // properties of the same name to override
+ props.put(PersistenceUnitProperties.JDBC_DRIVER, "org.apache.derby.jdbc.EmbeddedDriver");
+ props.put(PersistenceUnitProperties.JDBC_URL, "jdbc:derby:target/derby/mysports;create=true");
+ props.put(PersistenceUnitProperties.JDBC_USER, "app");
+ props.put(PersistenceUnitProperties.JDBC_PASSWORD, "app");
+ props.put(PersistenceUnitProperties.CLASSLOADER, dcl);
+ props.put(PersistenceUnitProperties.WEAVING, "static");
+ return Persistence.createEntityManagerFactory(persistenceUnit, props);
}
}