Merge branch 'master' of ssh://git.eclipse.org/gitroot/eclipselink/examples
diff --git a/jpa-moxy/round-trip/.gitignore b/jpa-moxy/round-trip/.gitignore
new file mode 100644
index 0000000..5e56e04
--- /dev/null
+++ b/jpa-moxy/round-trip/.gitignore
@@ -0,0 +1 @@
+/bin
diff --git a/jpa-moxy/round-trip/.project b/jpa-moxy/round-trip/.project
new file mode 100644
index 0000000..15966b8
--- /dev/null
+++ b/jpa-moxy/round-trip/.project
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>round-trip</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/jpa/employee/employee.model/.project b/jpa/employee/employee.model/.project
index aa0e7e6..5a922d3 100644
--- a/jpa/employee/employee.model/.project
+++ b/jpa/employee/employee.model/.project
@@ -6,6 +6,11 @@
</projects>
<buildSpec>
<buildCommand>
+ <name>org.python.pydev.PyDevBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
<name>org.eclipse.wst.common.project.facet.core.builder</name>
<arguments>
</arguments>
@@ -32,5 +37,6 @@
<nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
<nature>org.eclipse.jdt.core.javanature</nature>
<nature>org.eclipse.wst.common.project.facet.core.nature</nature>
+ <nature>org.python.pydev.pythonNature</nature>
</natures>
</projectDescription>
diff --git a/jpa/employee/employee.model/.pydevproject b/jpa/employee/employee.model/.pydevproject
new file mode 100644
index 0000000..40e9f40
--- /dev/null
+++ b/jpa/employee/employee.model/.pydevproject
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<?eclipse-pydev version="1.0"?><pydev_project>
+<pydev_property name="org.python.pydev.PYTHON_PROJECT_INTERPRETER">Default</pydev_property>
+<pydev_property name="org.python.pydev.PYTHON_PROJECT_VERSION">python 2.7</pydev_property>
+</pydev_project>
diff --git a/jpa/employee/employee.model/.settings/org.eclipse.core.resources.prefs b/jpa/employee/employee.model/.settings/org.eclipse.core.resources.prefs
index c015bf3..42133d9 100644
--- a/jpa/employee/employee.model/.settings/org.eclipse.core.resources.prefs
+++ b/jpa/employee/employee.model/.settings/org.eclipse.core.resources.prefs
@@ -1,7 +1,7 @@
eclipse.preferences.version=1
encoding//src/main/java=UTF-8
-encoding//src/main/java/eclipselink/example/jpa/employee/services/EditEmployee.java=UTF-8
-encoding//src/main/java/eclipselink/example/jpa/employee/services/EditEmployeeBean.java=UTF-8
+encoding//src/main/java/eclipselink/example/jpa/employee/services/AdminBean.java=UTF-8
+encoding//src/main/java/eclipselink/example/jpa/employee/services/EmployeeRepository.java=UTF-8
encoding//src/main/resources=UTF-8
encoding//src/test/java=UTF-8
encoding/<project>=UTF-8
diff --git a/jpa/employee/employee.model/.settings/org.eclipse.jpt.core.prefs b/jpa/employee/employee.model/.settings/org.eclipse.jpt.core.prefs
index 03921bf..f225875 100644
--- a/jpa/employee/employee.model/.settings/org.eclipse.jpt.core.prefs
+++ b/jpa/employee/employee.model/.settings/org.eclipse.jpt.core.prefs
@@ -1,6 +1,7 @@
eclipse.preferences.version=1
org.eclipse.jpt.core.platform=eclipselink2_4
org.eclipse.jpt.jpa.core.discoverAnnotatedClasses=false
+org.eclipse.jpt.jpa.core.metamodelSourceFolderName=src/main/java
problem.PROJECT_INACTIVE_CONNECTION=info
problem.PROJECT_NO_CONNECTION=info
workspace_preferences_overriden=true
diff --git a/jpa/employee/employee.model/.settings/org.eclipse.wst.validation.prefs b/jpa/employee/employee.model/.settings/org.eclipse.wst.validation.prefs
new file mode 100644
index 0000000..f6a7fbd
--- /dev/null
+++ b/jpa/employee/employee.model/.settings/org.eclipse.wst.validation.prefs
@@ -0,0 +1,8 @@
+DELEGATES_PREFERENCE=delegateValidatorList
+USER_BUILD_PREFERENCE=enabledBuildValidatorListorg.eclipse.jst.j2ee.internal.classpathdep.ClasspathDependencyValidator;
+USER_MANUAL_PREFERENCE=enabledManualValidatorListorg.eclipse.jst.j2ee.internal.classpathdep.ClasspathDependencyValidator;
+USER_PREFERENCE=overrideGlobalPreferencesfalse
+eclipse.preferences.version=1
+override=false
+suspend=false
+vf.version=3
diff --git a/jpa/employee/employee.model/.settings/org.eclipse.wst.xml.core.prefs b/jpa/employee/employee.model/.settings/org.eclipse.wst.xml.core.prefs
new file mode 100644
index 0000000..b663641
--- /dev/null
+++ b/jpa/employee/employee.model/.settings/org.eclipse.wst.xml.core.prefs
@@ -0,0 +1,18 @@
+attributeHasNoValue=2
+eclipse.preferences.version=1
+endTagWithAttributes=2
+honourAllSchemaLocations=false
+indicateNoGrammar=-1
+indiciateNoDocumentElement=-1
+markupValidation=false
+missingClosingBracket=2
+missingClosingQuote=2
+missingEndTag=2
+missingQuotes=2
+missingStartTag=2
+missingTagName=2
+namespaceInPITarget=2
+use-project-settings=true
+whitespaceAtStart=2
+whitespaceBeforeTagName=2
+xinclude=false
diff --git a/jpa/employee/employee.model/.settings/org.eclipse.wst.xsl.core.prefs b/jpa/employee/employee.model/.settings/org.eclipse.wst.xsl.core.prefs
new file mode 100644
index 0000000..e28962c
--- /dev/null
+++ b/jpa/employee/employee.model/.settings/org.eclipse.wst.xsl.core.prefs
@@ -0,0 +1,11 @@
+CHECK_CALL_TEMPLATES=2
+CHECK_XPATHS=2
+CIRCULAR_REF=2
+DUPLICATE_PARAMETER=2
+EMPTY_PARAM=1
+MISSING_INCLUDE=2
+MISSING_PARAM=1
+NAME_ATTRIBUTE_EMPTY=2
+NAME_ATTRIBUTE_MISSING=2
+TEMPLATE_CONFLICT=2
+eclipse.preferences.version=1
diff --git a/jpa/employee/employee.model/README.md b/jpa/employee/employee.model/README.md
index 3b165aa..2a1ffd3 100644
--- a/jpa/employee/employee.model/README.md
+++ b/jpa/employee/employee.model/README.md
@@ -3,4 +3,7 @@
Employee example model project illustrating an annotation mapped model. This project is leveraged by the employee.web and employee.web-js projects.
-http://wiki.eclipse.org/EclipseLink/Examples/JPA/Employee
\ No newline at end of file
+[EclipseLink Wiki: Employee JPA Example][1]
+
+
+[1]: http://wiki.eclipse.org/EclipseLink/Examples/JPA/Employee
\ No newline at end of file
diff --git a/jpa/employee/employee.model/pom.xml b/jpa/employee/employee.model/pom.xml
index 4ded44d..50b6df4 100644
--- a/jpa/employee/employee.model/pom.xml
+++ b/jpa/employee/employee.model/pom.xml
@@ -42,9 +42,9 @@
</dependency>
<dependency>
- <groupId>javax</groupId>
- <artifactId>javaee-api</artifactId>
- <version>6.0</version>
+ <groupId>org.glassfish</groupId>
+ <artifactId>javax.ejb</artifactId>
+ <version>3.1.1</version>
<scope>provided</scope>
</dependency>
</dependencies>
diff --git a/jpa/employee/employee.model/src/PessimisticLockTest.launch b/jpa/employee/employee.model/src/eclipse/AdminBeanTest.launch
similarity index 86%
rename from jpa/employee/employee.model/src/PessimisticLockTest.launch
rename to jpa/employee/employee.model/src/eclipse/AdminBeanTest.launch
index 4231fbb..d1ba8ed 100644
--- a/jpa/employee/employee.model/src/PessimisticLockTest.launch
+++ b/jpa/employee/employee.model/src/eclipse/AdminBeanTest.launch
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<launchConfiguration type="org.eclipse.jdt.junit.launchconfig">
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
-<listEntry value="/employee.model/src/test/java/test/PessimisticLockTest.java"/>
+<listEntry value="/employee.model/src/test/java/eclipselink/example/jpa/employee/test/services/AdminBeanTest.java"/>
</listAttribute>
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
<listEntry value="1"/>
@@ -11,7 +11,7 @@
<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit4"/>
<stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="org.eclipse.m2e.launchconfig.classpathProvider"/>
-<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="test.PessimisticLockTest"/>
+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="eclipselink.example.jpa.employee.test.services.AdminBeanTest"/>
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="employee.model"/>
<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.m2e.launchconfig.sourcepathProvider"/>
<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-javaagent:${system_property:user.home}/.m2/repository/org/eclipse/persistence/eclipselink/2.4.2-SNAPSHOT/eclipselink-2.4.2-SNAPSHOT.jar"/>
diff --git a/jpa/employee/employee.model/src/eclipse/DiagnosticsTest.launch b/jpa/employee/employee.model/src/eclipse/DiagnosticsTest.launch
index edfa2c0..97480c0 100644
--- a/jpa/employee/employee.model/src/eclipse/DiagnosticsTest.launch
+++ b/jpa/employee/employee.model/src/eclipse/DiagnosticsTest.launch
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<launchConfiguration type="org.eclipse.jdt.junit.launchconfig">
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
-<listEntry value="/Employee Example - model/src/test/java/eclipselink/example/jpa/employee/test/services/DiagnosticsTest.java"/>
+<listEntry value="/employee.model/src/test/java/eclipselink/example/jpa/employee/test/services/DiagnosticsTest.java"/>
</listAttribute>
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
<listEntry value="1"/>
@@ -12,7 +12,7 @@
<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit4"/>
<stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="org.eclipse.m2e.launchconfig.classpathProvider"/>
<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="eclipselink.example.jpa.employee.test.services.DiagnosticsTest"/>
-<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="Employee Example - model"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="employee.model"/>
<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.m2e.launchconfig.sourcepathProvider"/>
<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-javaagent:${system_property:user.home}/.m2/repository/org/eclipse/persistence/eclipselink/2.4.2-SNAPSHOT/eclipselink-2.4.2-SNAPSHOT.jar"/>
</launchConfiguration>
diff --git a/jpa/employee/employee.model/src/eclipse/EditEmployeeTest.launch b/jpa/employee/employee.model/src/eclipse/EditEmployeeTest.launch
index 93e0f59..9d6a4f2 100644
--- a/jpa/employee/employee.model/src/eclipse/EditEmployeeTest.launch
+++ b/jpa/employee/employee.model/src/eclipse/EditEmployeeTest.launch
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<launchConfiguration type="org.eclipse.jdt.junit.launchconfig">
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
-<listEntry value="/Employee Example - model/src/test/java/eclipselink/example/jpa/employee/test/services/EditEmployeeTest.java"/>
+<listEntry value="/employee.model/src/test/java/eclipselink/example/jpa/employee/test/services/EditEmployeeTest.java"/>
</listAttribute>
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
<listEntry value="1"/>
@@ -12,7 +12,7 @@
<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit4"/>
<stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="org.eclipse.m2e.launchconfig.classpathProvider"/>
<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="eclipselink.example.jpa.employee.test.services.EditEmployeeTest"/>
-<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="Employee Example - model"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="employee.model"/>
<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.m2e.launchconfig.sourcepathProvider"/>
<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-javaagent:${system_property:user.home}/.m2/repository/org/eclipse/persistence/eclipselink/2.4.2-SNAPSHOT/eclipselink-2.4.2-SNAPSHOT.jar"/>
</launchConfiguration>
diff --git a/jpa/employee/employee.model/src/PageEmployeesTest.launch b/jpa/employee/employee.model/src/eclipse/PageEmployeesTest.launch
similarity index 85%
rename from jpa/employee/employee.model/src/PageEmployeesTest.launch
rename to jpa/employee/employee.model/src/eclipse/PageEmployeesTest.launch
index a5992eb..d591873 100644
--- a/jpa/employee/employee.model/src/PageEmployeesTest.launch
+++ b/jpa/employee/employee.model/src/eclipse/PageEmployeesTest.launch
@@ -1,7 +1,8 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<launchConfiguration type="org.eclipse.jdt.junit.launchconfig">
+<stringAttribute key="bad_container_name" value="/employee.model/src/eclips"/>
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
-<listEntry value="/Employee Example - model/src/test/java/eclipselink/example/jpa/employee/test/services/PageEmployeesTest.java"/>
+<listEntry value="/employee.model/src/test/java/eclipselink/example/jpa/employee/test/services/PageEmployeesTest.java"/>
</listAttribute>
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
<listEntry value="1"/>
@@ -12,7 +13,7 @@
<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit4"/>
<stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="org.eclipse.m2e.launchconfig.classpathProvider"/>
<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="eclipselink.example.jpa.employee.test.services.PageEmployeesTest"/>
-<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="Employee Example - model"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="employee.model"/>
<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.m2e.launchconfig.sourcepathProvider"/>
<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-javaagent:${system_property:user.home}/.m2/repository/org/eclipse/persistence/eclipselink/2.4.2-SNAPSHOT/eclipselink-2.4.2-SNAPSHOT.jar"/>
</launchConfiguration>
diff --git a/jpa/employee/employee.model/src/PageIdsInEmployeesTest.launch b/jpa/employee/employee.model/src/eclipse/PageIdsInEmployeesTest.launch
similarity index 85%
rename from jpa/employee/employee.model/src/PageIdsInEmployeesTest.launch
rename to jpa/employee/employee.model/src/eclipse/PageIdsInEmployeesTest.launch
index 64f1985..d2e961d 100644
--- a/jpa/employee/employee.model/src/PageIdsInEmployeesTest.launch
+++ b/jpa/employee/employee.model/src/eclipse/PageIdsInEmployeesTest.launch
@@ -1,7 +1,8 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<launchConfiguration type="org.eclipse.jdt.junit.launchconfig">
+<stringAttribute key="bad_container_name" value="/employee.model/src/eclips"/>
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
-<listEntry value="/Employee Example - model/src/test/java/eclipselink/example/jpa/employee/test/services/PageIdsInEmployeesTest.java"/>
+<listEntry value="/employee.model/src/test/java/eclipselink/example/jpa/employee/test/services/PageIdsInEmployeesTest.java"/>
</listAttribute>
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
<listEntry value="1"/>
@@ -12,7 +13,7 @@
<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit4"/>
<stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="org.eclipse.m2e.launchconfig.classpathProvider"/>
<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="eclipselink.example.jpa.employee.test.services.PageIdsInEmployeesTest"/>
-<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="Employee Example - model"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="employee.model"/>
<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.m2e.launchconfig.sourcepathProvider"/>
<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-javaagent:${system_property:user.home}/.m2/repository/org/eclipse/persistence/eclipselink/2.4.2-SNAPSHOT/eclipselink-2.4.2-SNAPSHOT.jar"/>
</launchConfiguration>
diff --git a/jpa/employee/employee.model/src/StreamEmployeesTest.launch b/jpa/employee/employee.model/src/eclipse/StreamEmployeesTest.launch
similarity index 85%
rename from jpa/employee/employee.model/src/StreamEmployeesTest.launch
rename to jpa/employee/employee.model/src/eclipse/StreamEmployeesTest.launch
index a0668ae..c708c0d 100644
--- a/jpa/employee/employee.model/src/StreamEmployeesTest.launch
+++ b/jpa/employee/employee.model/src/eclipse/StreamEmployeesTest.launch
@@ -1,7 +1,8 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<launchConfiguration type="org.eclipse.jdt.junit.launchconfig">
+<stringAttribute key="bad_container_name" value="/employee.model/src/eclips"/>
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
-<listEntry value="/Employee Example - model/src/test/java/eclipselink/example/jpa/employee/test/services/StreamEmployeesTest.java"/>
+<listEntry value="/employee.model/src/test/java/eclipselink/example/jpa/employee/test/services/StreamEmployeesTest.java"/>
</listAttribute>
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
<listEntry value="1"/>
@@ -12,7 +13,7 @@
<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit4"/>
<stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="org.eclipse.m2e.launchconfig.classpathProvider"/>
<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="eclipselink.example.jpa.employee.test.services.StreamEmployeesTest"/>
-<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="Employee Example - model"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="employee.model"/>
<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.m2e.launchconfig.sourcepathProvider"/>
<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-javaagent:${system_property:user.home}/.m2/repository/org/eclipse/persistence/eclipselink/2.4.2-SNAPSHOT/eclipselink-2.4.2-SNAPSHOT.jar"/>
</launchConfiguration>
diff --git a/jpa/employee/employee.model/src/main/java/eclipselink/example/jpa/employee/model/Address_.java b/jpa/employee/employee.model/src/main/java/eclipselink/example/jpa/employee/model/Address_.java
index 2dc8e93..173f440 100644
--- a/jpa/employee/employee.model/src/main/java/eclipselink/example/jpa/employee/model/Address_.java
+++ b/jpa/employee/employee.model/src/main/java/eclipselink/example/jpa/employee/model/Address_.java
@@ -4,7 +4,7 @@
import javax.persistence.metamodel.SingularAttribute;
import javax.persistence.metamodel.StaticMetamodel;
-@Generated(value="Dali", date="2013-02-14T13:15:29.490-0500")
+@Generated(value="Dali", date="2013-05-08T15:16:26.628-0400")
@StaticMetamodel(Address.class)
public class Address_ {
public static volatile SingularAttribute<Address, Integer> id;
@@ -13,4 +13,5 @@
public static volatile SingularAttribute<Address, String> province;
public static volatile SingularAttribute<Address, String> postalCode;
public static volatile SingularAttribute<Address, String> street;
+ public static volatile SingularAttribute<Address, Long> version;
}
diff --git a/jpa/employee/employee.model/src/main/java/eclipselink/example/jpa/employee/model/Employee.java b/jpa/employee/employee.model/src/main/java/eclipselink/example/jpa/employee/model/Employee.java
index a641b6f..3ae747d 100644
--- a/jpa/employee/employee.model/src/main/java/eclipselink/example/jpa/employee/model/Employee.java
+++ b/jpa/employee/employee.model/src/main/java/eclipselink/example/jpa/employee/model/Employee.java
@@ -95,10 +95,6 @@
@Version
private Long version;
- @ManyToMany
- @JoinTable(joinColumns = @JoinColumn(name = "EMP_ID"), inverseJoinColumns = @JoinColumn(name = "PROJ_ID"), name = "PROJ_EMP")
- private List<Project> projects = new ArrayList<Project>();
-
@ManyToOne(fetch = LAZY)
@JoinColumn(name = "MANAGER_ID")
private Employee manager;
@@ -171,24 +167,6 @@
this.version = version;
}
- public List<Project> getProjects() {
- return projects;
- }
-
- public void setProjects(List<Project> projectList) {
- this.projects = projectList;
- }
-
- public Project addProject(Project project) {
- getProjects().add(project);
- return project;
- }
-
- public Project removeProject(Project project) {
- getProjects().remove(project);
- return project;
- }
-
public Employee getManager() {
return manager;
}
diff --git a/jpa/employee/employee.model/src/main/java/eclipselink/example/jpa/employee/model/Employee_.java b/jpa/employee/employee.model/src/main/java/eclipselink/example/jpa/employee/model/Employee_.java
index f5d5af9..bbde128 100644
--- a/jpa/employee/employee.model/src/main/java/eclipselink/example/jpa/employee/model/Employee_.java
+++ b/jpa/employee/employee.model/src/main/java/eclipselink/example/jpa/employee/model/Employee_.java
@@ -5,7 +5,7 @@
import javax.persistence.metamodel.SingularAttribute;
import javax.persistence.metamodel.StaticMetamodel;
-@Generated(value="Dali", date="2013-02-14T13:15:29.493-0500")
+@Generated(value="Dali", date="2013-05-08T15:16:26.635-0400")
@StaticMetamodel(Employee.class)
public class Employee_ {
public static volatile SingularAttribute<Employee, Integer> id;
@@ -14,7 +14,6 @@
public static volatile SingularAttribute<Employee, String> lastName;
public static volatile SingularAttribute<Employee, Double> salary;
public static volatile SingularAttribute<Employee, Long> version;
- public static volatile ListAttribute<Employee, Project> projects;
public static volatile SingularAttribute<Employee, Employee> manager;
public static volatile ListAttribute<Employee, Employee> managedEmployees;
public static volatile ListAttribute<Employee, PhoneNumber> phoneNumbers;
diff --git a/jpa/employee/employee.model/src/main/java/eclipselink/example/jpa/employee/model/LargeProject.java b/jpa/employee/employee.model/src/main/java/eclipselink/example/jpa/employee/model/LargeProject.java
deleted file mode 100644
index 5b3af9b..0000000
--- a/jpa/employee/employee.model/src/main/java/eclipselink/example/jpa/employee/model/LargeProject.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 1998, 2011 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 - initial JPA Employee example using XML (bug 217884)
- * mbraeuer - annotated version
- ******************************************************************************/
-package eclipselink.example.jpa.employee.model;
-
-import static javax.persistence.TemporalType.TIMESTAMP;
-
-import java.util.Calendar;
-
-import javax.persistence.*;
-
-/**
- *
- * @author dclarke
- * @since EclipseLink 1.0
- */
-@Entity
-@Table(name = "LPROJECT")
-@DiscriminatorValue("L")
-public class LargeProject extends Project {
- @Basic
- private double budget;
- @Basic
- @Temporal(TIMESTAMP)
- private Calendar milestone = Calendar.getInstance();
-
- public LargeProject() {
- super();
- }
-
- public double getBudget() {
- return this.budget;
- }
-
- public void setBudget(double budget) {
- this.budget = budget;
- }
-
- public Calendar getMilestone() {
- return milestone;
- }
-
- public void setMilestone(Calendar milestone) {
- this.milestone = milestone;
- }
-}
diff --git a/jpa/employee/employee.model/src/main/java/eclipselink/example/jpa/employee/model/LargeProject_.java b/jpa/employee/employee.model/src/main/java/eclipselink/example/jpa/employee/model/LargeProject_.java
deleted file mode 100644
index 02b9c7f..0000000
--- a/jpa/employee/employee.model/src/main/java/eclipselink/example/jpa/employee/model/LargeProject_.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package eclipselink.example.jpa.employee.model;
-
-import java.util.Calendar;
-import javax.annotation.Generated;
-import javax.persistence.metamodel.SingularAttribute;
-import javax.persistence.metamodel.StaticMetamodel;
-
-@Generated(value="Dali", date="2013-02-14T13:15:29.495-0500")
-@StaticMetamodel(LargeProject.class)
-public class LargeProject_ extends Project_ {
- public static volatile SingularAttribute<LargeProject, Double> budget;
- public static volatile SingularAttribute<LargeProject, Calendar> milestone;
-}
diff --git a/jpa/employee/employee.model/src/main/java/eclipselink/example/jpa/employee/model/Project.java b/jpa/employee/employee.model/src/main/java/eclipselink/example/jpa/employee/model/Project.java
deleted file mode 100644
index 0790d83..0000000
--- a/jpa/employee/employee.model/src/main/java/eclipselink/example/jpa/employee/model/Project.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 1998, 2011 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 - initial JPA Employee example using XML (bug 217884)
- * mbraeuer - annotated version
- ******************************************************************************/
-package eclipselink.example.jpa.employee.model;
-
-import static javax.persistence.FetchType.LAZY;
-import static javax.persistence.InheritanceType.JOINED;
-
-import javax.persistence.*;
-
-/**
- *
- * @author dclarke
- * @since EclipseLink 1.0
- */
-@Entity
-@Inheritance(strategy = JOINED)
-@DiscriminatorColumn(name = "PROJ_TYPE")
-public abstract class Project {
-
- @Id
- @Column(name = "PROJ_ID")
- @GeneratedValue
- private int id;
-
- @Basic
- @Column(name = "PROJ_NAME")
- private String name;
-
- @Basic
- @Column(name = "DESCRIP")
- private String description;
-
- @Version
- private Long version;
-
- @ManyToOne(fetch = LAZY)
- @JoinColumn(name = "LEADER_ID")
- private Employee teamLeader;
-
- public Project() {
- }
-
- public String getDescription() {
- return this.description;
- }
-
- public void setDescription(String descrip) {
- this.description = descrip;
- }
-
- public int getId() {
- return this.id;
- }
-
- public void setId(int projId) {
- this.id = projId;
- }
-
- public String getName() {
- return this.name;
- }
-
- public void setName(String projName) {
- this.name = projName;
- }
-
- public Long getVersion() {
- return version;
- }
-
- public void setVersion(Long version) {
- this.version = version;
- }
-
- public Employee getTeamLeader() {
- return this.teamLeader;
- }
-
- public void setTeamLeader(Employee employee) {
- this.teamLeader = employee;
- }
-}
diff --git a/jpa/employee/employee.model/src/main/java/eclipselink/example/jpa/employee/model/Project_.java b/jpa/employee/employee.model/src/main/java/eclipselink/example/jpa/employee/model/Project_.java
deleted file mode 100644
index 14144ca..0000000
--- a/jpa/employee/employee.model/src/main/java/eclipselink/example/jpa/employee/model/Project_.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package eclipselink.example.jpa.employee.model;
-
-import javax.annotation.Generated;
-import javax.persistence.metamodel.SingularAttribute;
-import javax.persistence.metamodel.StaticMetamodel;
-
-@Generated(value="Dali", date="2013-02-14T13:15:29.499-0500")
-@StaticMetamodel(Project.class)
-public class Project_ {
- public static volatile SingularAttribute<Project, Integer> id;
- public static volatile SingularAttribute<Project, String> name;
- public static volatile SingularAttribute<Project, String> description;
- public static volatile SingularAttribute<Project, Long> version;
- public static volatile SingularAttribute<Project, Employee> teamLeader;
-}
diff --git a/jpa/employee/employee.model/src/main/java/eclipselink/example/jpa/employee/model/SamplePopulation.java b/jpa/employee/employee.model/src/main/java/eclipselink/example/jpa/employee/model/SamplePopulation.java
index 66a982f..8bfda6a 100644
--- a/jpa/employee/employee.model/src/main/java/eclipselink/example/jpa/employee/model/SamplePopulation.java
+++ b/jpa/employee/employee.model/src/main/java/eclipselink/example/jpa/employee/model/SamplePopulation.java
@@ -27,13 +27,13 @@
*/
public class SamplePopulation {
+ /**
+ * Create the specified number of random sample employees.
+ */
public void createNewEmployees(EntityManager em, int quantity) {
- em.getTransaction().begin();
-
for (int index = 0; index < quantity; index++) {
em.persist(createRandomEmployee());
}
- em.getTransaction().commit();
}
private static final String[] MALE_FIRST_NAMES = { "Jacob", "Ethan", "Michael", "Alexander", "William", "Joshua", "Daniel", "Jayden", "Noah", "Anthony" };
diff --git a/jpa/employee/employee.model/src/main/java/eclipselink/example/jpa/employee/model/SmallProject.java b/jpa/employee/employee.model/src/main/java/eclipselink/example/jpa/employee/model/SmallProject.java
deleted file mode 100644
index ad345f8..0000000
--- a/jpa/employee/employee.model/src/main/java/eclipselink/example/jpa/employee/model/SmallProject.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 1998, 2011 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 - initial JPA Employee example using XML (bug 217884)
- * mbraeuer - annotated version
- ******************************************************************************/
-package eclipselink.example.jpa.employee.model;
-
-import javax.persistence.*;
-
-/**
- *
- * @author dclarke
- * @since EclipseLink 1.0
- */
-@Entity
-@Table(name = "PROJECT")
-@DiscriminatorValue("S")
-public class SmallProject extends Project {
-
- private SmallProject() {
- super();
- }
-
- public SmallProject(String name, String description) {
- this();
- setName(name);
- setDescription(description);
- }
-
-}
diff --git a/jpa/employee/employee.model/src/main/java/eclipselink/example/jpa/employee/model/SmallProject_.java b/jpa/employee/employee.model/src/main/java/eclipselink/example/jpa/employee/model/SmallProject_.java
deleted file mode 100644
index d909260..0000000
--- a/jpa/employee/employee.model/src/main/java/eclipselink/example/jpa/employee/model/SmallProject_.java
+++ /dev/null
@@ -1,9 +0,0 @@
-package eclipselink.example.jpa.employee.model;
-
-import javax.annotation.Generated;
-import javax.persistence.metamodel.StaticMetamodel;
-
-@Generated(value="Dali", date="2013-02-14T13:15:29.500-0500")
-@StaticMetamodel(SmallProject.class)
-public class SmallProject_ extends Project_ {
-}
diff --git a/jpa/employee/employee.model/src/main/java/eclipselink/example/jpa/employee/services/AdminBean.java b/jpa/employee/employee.model/src/main/java/eclipselink/example/jpa/employee/services/AdminBean.java
new file mode 100644
index 0000000..4a4b948
--- /dev/null
+++ b/jpa/employee/employee.model/src/main/java/eclipselink/example/jpa/employee/services/AdminBean.java
@@ -0,0 +1,117 @@
+/*******************************************************************************
+ * Copyright (c) 2010-2013 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.jpa.employee.services;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.ejb.LocalBean;
+import javax.ejb.Stateless;
+import javax.persistence.EntityManager;
+import javax.persistence.EntityManagerFactory;
+import javax.persistence.PersistenceUnit;
+import javax.persistence.metamodel.EntityType;
+
+import org.eclipse.persistence.descriptors.ClassDescriptor;
+import org.eclipse.persistence.internal.sessions.IdentityMapAccessor;
+import org.eclipse.persistence.sessions.server.Server;
+import org.eclipse.persistence.tools.schemaframework.SchemaManager;
+
+import eclipselink.example.jpa.employee.model.Employee;
+import eclipselink.example.jpa.employee.model.SamplePopulation;
+
+/**
+ * Edit service for an {@link Employee} instance.
+ *
+ * @author dclarke
+ * @since EclipseLink 2.4.2
+ */
+@Stateless
+@LocalBean
+public class AdminBean {
+
+ private EntityManagerFactory emf;
+
+ public EntityManagerFactory getEmf() {
+ return emf;
+ }
+
+ @PersistenceUnit(unitName = "employee")
+ public void setEmf(EntityManagerFactory emf) {
+ this.emf = emf;
+ }
+
+ public String resetDatabase() {
+ EntityManager em = getEmf().createEntityManager();
+
+ try {
+ SchemaManager sm = new SchemaManager(em.unwrap(Server.class));
+ sm.replaceDefaultTables();
+ sm.replaceSequences();
+
+ em.unwrap(Server.class).getIdentityMapAccessor().initializeAllIdentityMaps();
+ } finally {
+ em.close();
+ }
+ return null;
+ }
+
+ public String populateDatabase(int quantity) {
+ EntityManager em = getEmf().createEntityManager();
+
+ try {
+ em.getTransaction().begin();
+ new SamplePopulation().createNewEmployees(em, quantity);
+ em.getTransaction().commit();
+ } finally {
+ em.close();
+ }
+ return null;
+ }
+
+ public int getCacheSize(String typeName) {
+ EntityManager em = getEmf().createEntityManager();
+ Server session = em.unwrap(Server.class);
+ ClassDescriptor descriptor = session.getDescriptorForAlias(typeName);
+ if (descriptor != null) {
+ return ((IdentityMapAccessor) session.getIdentityMapAccessor()).getIdentityMap(descriptor.getJavaClass()).getSize();
+ } else {
+ return -1;
+ }
+ }
+
+ public int getDatabaseCount(String type) {
+ EntityManager em = getEmf().createEntityManager();
+
+ try {
+ return em.createQuery("SELECT COUNT(o) FROM " + type + " o", Number.class).getSingleResult().intValue();
+ } finally {
+ em.close();
+ }
+ }
+
+ /**
+ * Construct a list of valid type names based on the JAP metamodel. Only
+ * include types that are inheritance roots (no super type).
+ */
+ public List<String> getTypes() {
+ List<String> typeNames = new ArrayList<String>();
+ for (EntityType<?> type : getEmf().getMetamodel().getEntities()) {
+ if (type.getSupertype() == null) {
+ typeNames.add(type.getName());
+ }
+ }
+ return typeNames;
+ }
+
+}
diff --git a/jpa/employee/employee.model/src/main/java/eclipselink/example/jpa/employee/services/Diagnostics.java b/jpa/employee/employee.model/src/main/java/eclipselink/example/jpa/employee/services/Diagnostics.java
index 3652b3b..dfcffd4 100644
--- a/jpa/employee/employee.model/src/main/java/eclipselink/example/jpa/employee/services/Diagnostics.java
+++ b/jpa/employee/employee.model/src/main/java/eclipselink/example/jpa/employee/services/Diagnostics.java
@@ -27,7 +27,9 @@
import org.eclipse.persistence.sessions.server.Server;
/**
- * TODO
+ * SessionLog proxy {@link InvocationHandler} used to intercept SQL logging
+ * messages so this sample application can display the SQL executed by the most
+ * recent operations.
*
* @author dclarke
* @since EclipseLink 2.4.2
@@ -46,20 +48,25 @@
private SessionLog log;
/**
- * TODO
- *
- * @param emf
- * @return
+ * Lookup the Diagnostics instance and registered as the SessionLog (proxy).
+ * If one does not exist then create one.
*/
public static Diagnostics getInstance(EntityManagerFactory emf) {
EntityManager em = emf.createEntityManager();
+ try {
+ return getInstance(em);
+ } finally {
+ em.close();
+ }
+ }
+
+ public static Diagnostics getInstance(EntityManager em) {
Server session = em.unwrap(Server.class);
- em.close();
Diagnostics diagnostics = (Diagnostics) session.getProperty(DIAGNOSTICS);
if (diagnostics == null) {
- synchronized (emf) {
+ synchronized (em.unwrap(Server.class)) {
diagnostics = (Diagnostics) session.getProperty(DIAGNOSTICS);
if (diagnostics == null) {
diagnostics = new Diagnostics(session);
@@ -108,7 +115,9 @@
if (trace != null && "log".equals(method.getName()) && args.length == 1) {
SessionLogEntry entry = (SessionLogEntry) args[0];
- trace.add(entry);
+ if (SessionLog.SQL.equals(entry.getNameSpace())) {
+ trace.add(entry.getMessage());
+ }
}
return method.invoke(getLog(), args);
@@ -117,15 +126,13 @@
public static class SQLTrace {
- private List<SessionLogEntry> entries = new ArrayList<SessionLogEntry>();
+ private List<String> entries = new ArrayList<String>();
- protected void add(SessionLogEntry entry) {
- if (SessionLog.SQL.equals(entry.getNameSpace())) {
- this.entries.add(entry);
- }
+ protected void add(String entry) {
+ this.entries.add(entry);
}
- public List<SessionLogEntry> getEntries() {
+ public List<String> getEntries() {
return entries;
}
diff --git a/jpa/employee/employee.model/src/main/java/eclipselink/example/jpa/employee/services/EditEmployee.java b/jpa/employee/employee.model/src/main/java/eclipselink/example/jpa/employee/services/EditEmployee.java
deleted file mode 100644
index ccac3c8..0000000
--- a/jpa/employee/employee.model/src/main/java/eclipselink/example/jpa/employee/services/EditEmployee.java
+++ /dev/null
@@ -1,48 +0,0 @@
-package eclipselink.example.jpa.employee.services;
-
-import javax.ejb.Local;
-
-import eclipselink.example.jpa.employee.model.Employee;
-import eclipselink.example.jpa.employee.model.PhoneNumber;
-
-/**
- *
- * @author dclarke
- * @since EclipseLink 2.4.2
- */
-@Local
-public interface EditEmployee {
-
- public abstract Employee getEmployee();
-
- public abstract void setEmployee(Employee employee);
-
- public abstract boolean isNew();
-
- /**
- *
- * @return
- */
- public abstract void save();
-
- public abstract void delete();
-
- public abstract void refresh();
-
- /**
- * Force the optimistic version field to be updated so that the save
- * operations will fail.
- */
- public abstract int updateVersion();
-
- public abstract String removeAddress();
-
- public abstract String addAddress();
-
- public abstract PhoneNumber addPhone(String type);
-
- public abstract void remove(PhoneNumber phone);
-
- public abstract void close();
-
-}
\ No newline at end of file
diff --git a/jpa/employee/employee.model/src/main/java/eclipselink/example/jpa/employee/services/EditEmployeeBean.java b/jpa/employee/employee.model/src/main/java/eclipselink/example/jpa/employee/services/EditEmployeeBean.java
deleted file mode 100644
index 4b7399d..0000000
--- a/jpa/employee/employee.model/src/main/java/eclipselink/example/jpa/employee/services/EditEmployeeBean.java
+++ /dev/null
@@ -1,212 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2010-2013 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.jpa.employee.services;
-
-import javax.ejb.Local;
-import javax.ejb.Stateless;
-import javax.persistence.EntityManager;
-import javax.persistence.EntityManagerFactory;
-import javax.persistence.LockModeType;
-
-import eclipselink.example.jpa.employee.model.Address;
-import eclipselink.example.jpa.employee.model.Employee;
-import eclipselink.example.jpa.employee.model.PhoneNumber;
-
-/**
- * Edit service for an {@link Employee} instance.
- *
- * @author dclarke
- * @since EclipseLink 2.4.2
- */
-@Stateless
-@Local(EditEmployee.class)
-public class EditEmployeeBean implements EditEmployee {
-
- private EntityManager entityManager;
-
- private Employee employee;
-
- public EditEmployeeBean() {
- super();
- }
-
- public EditEmployeeBean(EntityManagerFactory emf, Integer id) {
- this.entityManager = emf.createEntityManager();
- if (id != null) {
- setEmployee(getEntityManager().find(Employee.class, id));
- } else {
- this.employee = new Employee();
- }
- }
-
- protected EntityManager getEntityManager() {
- return this.entityManager;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see eclipselink.example.jpa.employee.services.EditEmployee#getEmployee()
- */
- @Override
- public Employee getEmployee() {
- return employee;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see eclipselink.example.jpa.employee.services.EditEmployee#setEmployee(
- * eclipselink.example.jpa.employee.model.Employee)
- */
- @Override
- public void setEmployee(Employee employee) {
- this.employee = employee;
- if (employee != null) {
- employee.getAddress();
- employee.getPhoneNumbers().size();
- }
- }
-
- /*
- * (non-Javadoc)
- *
- * @see eclipselink.example.jpa.employee.services.EditEmployee#isNew()
- */
- @Override
- public boolean isNew() {
- return getEmployee().getId() <= 0;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see eclipselink.example.jpa.employee.services.EditEmployee#save()
- */
- @Override
- public void save() {
- getEntityManager().getTransaction().begin();
-
- // Ensure the Employee's lock value is incremented
- getEntityManager().lock(getEmployee(), LockModeType.OPTIMISTIC_FORCE_INCREMENT);
-
- getEntityManager().getTransaction().commit();
- }
-
- /*
- * (non-Javadoc)
- *
- * @see eclipselink.example.jpa.employee.services.EditEmployee#delete()
- */
- @Override
- public void delete() {
- try {
- getEntityManager().getTransaction().begin();
- getEntityManager().remove(getEmployee());
- getEntityManager().getTransaction().commit();
- } finally {
- setEmployee(null);
- }
- }
-
- /*
- * (non-Javadoc)
- *
- * @see eclipselink.example.jpa.employee.services.EditEmployee#refresh()
- */
- @Override
- public void refresh() {
- if (!getEntityManager().contains(getEmployee())) {
- setEmployee(getEntityManager().merge(getEmployee()));
- }
- getEntityManager().refresh(getEmployee());
- }
-
- /*
- * (non-Javadoc)
- *
- * @see
- * eclipselink.example.jpa.employee.services.EditEmployee#updateVersion()
- */
- @Override
- public int updateVersion() {
- getEntityManager().detach(getEmployee());
- getEntityManager().getTransaction().begin();
- getEntityManager().createNativeQuery("UPDATE EMPLOYEE SET VERSION = VERSION + 1 WHERE EMP_ID = " + getEmployee().getId()).executeUpdate();
- getEntityManager().getTransaction().commit();
- setEmployee(getEntityManager().merge(getEmployee()));
- Number result = (Number) getEntityManager().createNativeQuery("SELECT VERSION FROM EMPLOYEE WHERE EMP_ID = " + getEmployee().getId()).getSingleResult();
- return result.intValue();
- }
-
- /*
- * (non-Javadoc)
- *
- * @see
- * eclipselink.example.jpa.employee.services.EditEmployee#removeAddress()
- */
- @Override
- public String removeAddress() {
- getEmployee().setAddress(null);
- return null;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see eclipselink.example.jpa.employee.services.EditEmployee#addAddress()
- */
- @Override
- public String addAddress() {
- getEmployee().setAddress(new Address());
- return null;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see
- * eclipselink.example.jpa.employee.services.EditEmployee#addPhone(java.
- * lang.String)
- */
- @Override
- public PhoneNumber addPhone(String type) {
- if (type != null && !type.isEmpty()) {
- return getEmployee().addPhoneNumber(type, "", "");
- }
- return null;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see
- * eclipselink.example.jpa.employee.services.EditEmployee#remove(eclipselink
- * .example.jpa.employee.model.PhoneNumber)
- */
- @Override
- public void remove(PhoneNumber phone) {
- getEmployee().removePhoneNumber(phone);
- }
-
- /*
- * (non-Javadoc)
- *
- * @see eclipselink.example.jpa.employee.services.EditEmployee#close()
- */
- @Override
- public void close() {
- getEntityManager().close();
- }
-
-}
diff --git a/jpa/employee/employee.model/src/main/java/eclipselink/example/jpa/employee/services/EmployeeCriteria.java b/jpa/employee/employee.model/src/main/java/eclipselink/example/jpa/employee/services/EmployeeCriteria.java
index 4982cdb..b70602c 100644
--- a/jpa/employee/employee.model/src/main/java/eclipselink/example/jpa/employee/services/EmployeeCriteria.java
+++ b/jpa/employee/employee.model/src/main/java/eclipselink/example/jpa/employee/services/EmployeeCriteria.java
@@ -12,6 +12,7 @@
******************************************************************************/
package eclipselink.example.jpa.employee.services;
+import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
@@ -20,7 +21,11 @@
import eclipselink.example.jpa.employee.model.Employee;
import eclipselink.example.jpa.employee.model.Employee_;
-import eclipselink.example.jpa.employee.services.EntityPaging.Type;
+import eclipselink.example.jpa.employee.services.paging.EntityPaging;
+import eclipselink.example.jpa.employee.services.paging.EntityPaging.Type;
+import eclipselink.example.jpa.employee.services.paging.FirstMaxPaging;
+import eclipselink.example.jpa.employee.services.paging.IdInPaging;
+import eclipselink.example.jpa.employee.services.paging.StreamPaging;
/**
* TODO
@@ -79,6 +84,14 @@
}
@SuppressWarnings("unchecked")
+ public CriteriaQuery<Employee> createQuery(EntityManager em) {
+ CriteriaBuilder cb = em.getCriteriaBuilder();
+ CriteriaQuery<Employee> query = cb.createQuery(Employee.class);
+ Root<Employee> employee = query.from(Employee.class);
+ return (CriteriaQuery<Employee>) addWhereOrder(cb, query, employee, true);
+ }
+
+ @SuppressWarnings("unchecked")
public CriteriaQuery<Number> createIdQuery(EntityManagerFactory emf) {
CriteriaBuilder cb = emf.getCriteriaBuilder();
CriteriaQuery<Number> query = cb.createQuery(Number.class);
@@ -116,7 +129,7 @@
return query;
}
- public EntityPaging<Employee> getPaging(EntityManagerFactory emf) {
+ protected EntityPaging<Employee> getPaging(EntityManagerFactory emf) {
if (getPagingType() != null) {
Type type = EntityPaging.Type.valueOf(getPagingType());
diff --git a/jpa/employee/employee.model/src/main/java/eclipselink/example/jpa/employee/services/EmployeeRepository.java b/jpa/employee/employee.model/src/main/java/eclipselink/example/jpa/employee/services/EmployeeRepository.java
new file mode 100644
index 0000000..6aca440
--- /dev/null
+++ b/jpa/employee/employee.model/src/main/java/eclipselink/example/jpa/employee/services/EmployeeRepository.java
@@ -0,0 +1,124 @@
+/*******************************************************************************
+ * Copyright (c) 2010-2013 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.jpa.employee.services;
+
+import java.util.List;
+
+import javax.ejb.LocalBean;
+import javax.ejb.Stateless;
+import javax.persistence.EntityManager;
+import javax.persistence.LockModeType;
+import javax.persistence.PersistenceContext;
+import javax.persistence.criteria.CriteriaQuery;
+
+import eclipselink.example.jpa.employee.model.Address;
+import eclipselink.example.jpa.employee.model.Employee;
+import eclipselink.example.jpa.employee.model.PhoneNumber;
+import eclipselink.example.jpa.employee.services.paging.EntityPaging;
+
+/**
+ * Edit service for an {@link Employee} instance.
+ *
+ * @author dclarke
+ * @since EclipseLink 2.4.2
+ */
+@Stateless
+@LocalBean
+public class EmployeeRepository {
+
+ private EntityManager entityManager;
+
+ private Diagnostics diagnostics;
+
+ public EntityManager getEntityManager() {
+ return entityManager;
+ }
+
+ @PersistenceContext(unitName = "employee")
+ public void setEntityManager(EntityManager entityManager) {
+ this.entityManager = entityManager;
+ this.diagnostics = Diagnostics.getInstance(entityManager);
+ }
+
+ public Diagnostics getDiagnostics() {
+ return diagnostics;
+ }
+
+ public Employee find(int id) {
+ return getEntityManager().find(Employee.class, id);
+ }
+
+ public Employee save(Employee employee) {
+ Employee emp = getEntityManager().merge(employee);
+
+ // Ensure the Employee's lock value is incremented
+ getEntityManager().lock(emp, LockModeType.OPTIMISTIC_FORCE_INCREMENT);
+ getEntityManager().flush();
+ return emp;
+ }
+
+ public void delete(Employee employee) {
+ Employee emp = getEntityManager().merge(employee);
+ getEntityManager().remove(emp);
+ }
+
+ public Employee refresh(Employee employee) {
+ Employee emp = employee;
+ if (!getEntityManager().contains(employee)) {
+ emp = getEntityManager().merge(employee);
+ }
+ getEntityManager().refresh(emp);
+ return emp;
+ }
+
+ public int updateVersion(Employee employee) {
+ Employee emp = getEntityManager().merge(employee);
+ getEntityManager().createNativeQuery("UPDATE EMPLOYEE SET VERSION = VERSION + 1 WHERE EMP_ID = " + emp.getId()).executeUpdate();
+ Number result = (Number) getEntityManager().createNativeQuery("SELECT VERSION FROM EMPLOYEE WHERE EMP_ID = " + emp.getId()).getSingleResult();
+ return result.intValue();
+ }
+
+ public void removeAddress(Employee employee) {
+ Employee emp = getEntityManager().merge(employee);
+ emp.setAddress(null);
+ }
+
+ public Address addAddress(Employee employee) {
+ Employee emp = getEntityManager().merge(employee);
+ emp.setAddress(new Address());
+ return emp.getAddress();
+ }
+
+ public PhoneNumber addPhone(Employee employee, String type) {
+ if (type != null && !type.isEmpty()) {
+ Employee emp = getEntityManager().merge(employee);
+ return emp.addPhoneNumber(type, "", "");
+ }
+ return null;
+ }
+
+ public void remove(Employee employee, PhoneNumber phone) {
+ Employee emp = getEntityManager().merge(employee);
+ PhoneNumber p = getEntityManager().merge(phone);
+ emp.removePhoneNumber(p);
+ }
+
+ public EntityPaging<Employee> getPaging(EmployeeCriteria criteria) {
+ return criteria.getPaging(getEntityManager().getEntityManagerFactory());
+ }
+
+ public List<Employee> getEmployees(EmployeeCriteria criteria) {
+ CriteriaQuery<Employee> cq = criteria.createQuery(getEntityManager());
+ return getEntityManager().createQuery(cq).getResultList();
+ }
+}
diff --git a/jpa/employee/employee.model/src/main/java/eclipselink/example/jpa/employee/services/EntityPaging.java b/jpa/employee/employee.model/src/main/java/eclipselink/example/jpa/employee/services/paging/EntityPaging.java
similarity index 97%
rename from jpa/employee/employee.model/src/main/java/eclipselink/example/jpa/employee/services/EntityPaging.java
rename to jpa/employee/employee.model/src/main/java/eclipselink/example/jpa/employee/services/paging/EntityPaging.java
index e1737c2..3cd6609 100644
--- a/jpa/employee/employee.model/src/main/java/eclipselink/example/jpa/employee/services/EntityPaging.java
+++ b/jpa/employee/employee.model/src/main/java/eclipselink/example/jpa/employee/services/paging/EntityPaging.java
@@ -10,7 +10,7 @@
* Contributors:
* dclarke - initial
******************************************************************************/
-package eclipselink.example.jpa.employee.services;
+package eclipselink.example.jpa.employee.services.paging;
import java.util.List;
diff --git a/jpa/employee/employee.model/src/main/java/eclipselink/example/jpa/employee/services/FirstMaxPaging.java b/jpa/employee/employee.model/src/main/java/eclipselink/example/jpa/employee/services/paging/FirstMaxPaging.java
similarity index 97%
rename from jpa/employee/employee.model/src/main/java/eclipselink/example/jpa/employee/services/FirstMaxPaging.java
rename to jpa/employee/employee.model/src/main/java/eclipselink/example/jpa/employee/services/paging/FirstMaxPaging.java
index 2aac129..db8eae0 100644
--- a/jpa/employee/employee.model/src/main/java/eclipselink/example/jpa/employee/services/FirstMaxPaging.java
+++ b/jpa/employee/employee.model/src/main/java/eclipselink/example/jpa/employee/services/paging/FirstMaxPaging.java
@@ -10,7 +10,7 @@
* Contributors:
* dclarke - initial
******************************************************************************/
-package eclipselink.example.jpa.employee.services;
+package eclipselink.example.jpa.employee.services.paging;
import java.util.List;
diff --git a/jpa/employee/employee.model/src/main/java/eclipselink/example/jpa/employee/services/IdInPaging.java b/jpa/employee/employee.model/src/main/java/eclipselink/example/jpa/employee/services/paging/IdInPaging.java
similarity index 97%
rename from jpa/employee/employee.model/src/main/java/eclipselink/example/jpa/employee/services/IdInPaging.java
rename to jpa/employee/employee.model/src/main/java/eclipselink/example/jpa/employee/services/paging/IdInPaging.java
index 16df376..31490e6 100644
--- a/jpa/employee/employee.model/src/main/java/eclipselink/example/jpa/employee/services/IdInPaging.java
+++ b/jpa/employee/employee.model/src/main/java/eclipselink/example/jpa/employee/services/paging/IdInPaging.java
@@ -10,7 +10,7 @@
* Contributors:
* dclarke - initial
******************************************************************************/
-package eclipselink.example.jpa.employee.services;
+package eclipselink.example.jpa.employee.services.paging;
import java.util.ArrayList;
import java.util.List;
diff --git a/jpa/employee/employee.model/src/main/java/eclipselink/example/jpa/employee/services/StreamPaging.java b/jpa/employee/employee.model/src/main/java/eclipselink/example/jpa/employee/services/paging/StreamPaging.java
similarity index 97%
rename from jpa/employee/employee.model/src/main/java/eclipselink/example/jpa/employee/services/StreamPaging.java
rename to jpa/employee/employee.model/src/main/java/eclipselink/example/jpa/employee/services/paging/StreamPaging.java
index aa0e2de..06accf9 100644
--- a/jpa/employee/employee.model/src/main/java/eclipselink/example/jpa/employee/services/StreamPaging.java
+++ b/jpa/employee/employee.model/src/main/java/eclipselink/example/jpa/employee/services/paging/StreamPaging.java
@@ -10,7 +10,7 @@
* Contributors:
* dclarke - initial
******************************************************************************/
-package eclipselink.example.jpa.employee.services;
+package eclipselink.example.jpa.employee.services.paging;
import java.util.List;
diff --git a/jpa/employee/employee.model/src/main/resources/META-INF/persistence.xml b/jpa/employee/employee.model/src/main/resources/META-INF/persistence.xml
index 2d93a10..8046947 100644
--- a/jpa/employee/employee.model/src/main/resources/META-INF/persistence.xml
+++ b/jpa/employee/employee.model/src/main/resources/META-INF/persistence.xml
@@ -1,14 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.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_2_0.xsd">
- <persistence-unit name="employee" transaction-type="RESOURCE_LOCAL">
- <non-jta-data-source>java:global/employeeDS</non-jta-data-source>
- <class>eclipselink.example.jpa.employee.model.Project</class>
+ <persistence-unit name="employee" transaction-type="JTA">
+ <jta-data-source>java:global/employeeDS</jta-data-source>
<class>eclipselink.example.jpa.employee.model.Address</class>
<class>eclipselink.example.jpa.employee.model.Employee</class>
<class>eclipselink.example.jpa.employee.model.PhoneNumber</class>
<class>eclipselink.example.jpa.employee.model.EmploymentPeriod</class>
- <class>eclipselink.example.jpa.employee.model.LargeProject</class>
- <class>eclipselink.example.jpa.employee.model.SmallProject</class>
<properties>
<property name="eclipselink.logging.level" value="FINE"/>
<property name="eclipselink.logging.timestamp" value="false"/>
diff --git a/jpa/employee/employee.model/src/test/java/eclipselink/example/jpa/employee/test/PersistenceTesting.java b/jpa/employee/employee.model/src/test/java/eclipselink/example/jpa/employee/test/PersistenceTesting.java
index 303eded..c74b7ae 100644
--- a/jpa/employee/employee.model/src/test/java/eclipselink/example/jpa/employee/test/PersistenceTesting.java
+++ b/jpa/employee/employee.model/src/test/java/eclipselink/example/jpa/employee/test/PersistenceTesting.java
@@ -36,7 +36,8 @@
// SE testing
props.put(PersistenceUnitProperties.NON_JTA_DATASOURCE, "");
props.put(PersistenceUnitProperties.JTA_DATASOURCE, "");
-
+ props.put(PersistenceUnitProperties.TRANSACTION_TYPE, "RESOURCE_LOCAL");
+
// Configure the use of embedded derby for the tests allowing system
// properties of the same name to override
setProperty(props, PersistenceUnitProperties.JDBC_DRIVER, "org.apache.derby.jdbc.EmbeddedDriver");
diff --git a/jpa/employee/employee.model/src/test/java/eclipselink/example/jpa/employee/test/services/AdminBeanTest.java b/jpa/employee/employee.model/src/test/java/eclipselink/example/jpa/employee/test/services/AdminBeanTest.java
new file mode 100644
index 0000000..78501f2
--- /dev/null
+++ b/jpa/employee/employee.model/src/test/java/eclipselink/example/jpa/employee/test/services/AdminBeanTest.java
@@ -0,0 +1,110 @@
+/*******************************************************************************
+ * Copyright (c) 2010-2013 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 - initial
+ ******************************************************************************/
+package eclipselink.example.jpa.employee.test.services;
+
+import java.util.List;
+
+import javax.persistence.EntityManager;
+import javax.persistence.EntityManagerFactory;
+
+import org.junit.AfterClass;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+import eclipselink.example.jpa.employee.model.SamplePopulation;
+import eclipselink.example.jpa.employee.services.Diagnostics;
+import eclipselink.example.jpa.employee.services.AdminBean;
+import eclipselink.example.jpa.employee.test.PersistenceTesting;
+
+public class AdminBeanTest {
+
+ private AdminBean admin;
+
+ public AdminBean getAdmin() {
+ return admin;
+ }
+
+ @Test
+ public void verifyReset() {
+ for (String type : getAdmin().getTypes()) {
+ Assert.assertEquals(0, admin.getCacheSize(type));
+ Assert.assertEquals(0, admin.getDatabaseCount(type));
+ }
+ }
+
+ @Test
+ public void popuate() {
+ verifyReset();
+
+ getAdmin().populateDatabase(20);
+
+ Assert.assertEquals(20, admin.getCacheSize("Employee"));
+ Assert.assertEquals(20, admin.getDatabaseCount("Employee"));
+
+ Assert.assertEquals(20, admin.getCacheSize("Address"));
+ Assert.assertEquals(20, admin.getDatabaseCount("Address"));
+
+ Assert.assertEquals(40, admin.getCacheSize("PhoneNumber"));
+ Assert.assertEquals(40, admin.getDatabaseCount("PhoneNumber"));
+ }
+
+ @Test
+ public void verifyTypeNames() {
+ List<String> types = getAdmin().getTypes();
+
+ Assert.assertNotNull(types);
+ Assert.assertEquals(3, types.size());
+
+ Assert.assertTrue(types.contains("Employee"));
+ Assert.assertTrue(types.contains("Address"));
+ Assert.assertTrue(types.contains("PhoneNumber"));
+ }
+
+ private static EntityManagerFactory emf;
+
+ public static EntityManagerFactory getEmf() {
+ return emf;
+ }
+
+ @Before
+ public void resetDatabase() {
+ this.admin = new AdminBean();
+ this.admin.setEmf(getEmf());
+ this.admin.resetDatabase();
+ }
+
+ @BeforeClass
+ public static void createEMF() {
+ emf = PersistenceTesting.createEMF(true);
+
+ EntityManager em = emf.createEntityManager();
+ em.getTransaction().begin();
+ new SamplePopulation().createNewEmployees(em, 25);
+ em.getTransaction().commit();
+ em.close();
+
+ Diagnostics.getInstance(emf);
+ emf.getCache().evictAll();
+ }
+
+ @AfterClass
+ public static void closeEMF() {
+ if (emf != null && emf.isOpen()) {
+ emf.close();
+ }
+ emf = null;
+ }
+
+}
diff --git a/jpa/employee/employee.model/src/test/java/eclipselink/example/jpa/employee/test/services/DiagnosticsTest.java b/jpa/employee/employee.model/src/test/java/eclipselink/example/jpa/employee/test/services/DiagnosticsTest.java
index 1e01073..351897f 100644
--- a/jpa/employee/employee.model/src/test/java/eclipselink/example/jpa/employee/test/services/DiagnosticsTest.java
+++ b/jpa/employee/employee.model/src/test/java/eclipselink/example/jpa/employee/test/services/DiagnosticsTest.java
@@ -75,7 +75,9 @@
emf = PersistenceTesting.createEMF(true);
EntityManager em = emf.createEntityManager();
+ em.getTransaction().begin();
new SamplePopulation().createNewEmployees(em, 25);
+ em.getTransaction().commit();
em.close();
Diagnostics.getInstance(emf);
diff --git a/jpa/employee/employee.model/src/test/java/eclipselink/example/jpa/employee/test/services/EditEmployeeTest.java b/jpa/employee/employee.model/src/test/java/eclipselink/example/jpa/employee/test/services/EditEmployeeTest.java
index 22f9265..62899bd 100644
--- a/jpa/employee/employee.model/src/test/java/eclipselink/example/jpa/employee/test/services/EditEmployeeTest.java
+++ b/jpa/employee/employee.model/src/test/java/eclipselink/example/jpa/employee/test/services/EditEmployeeTest.java
@@ -17,15 +17,16 @@
import javax.persistence.OptimisticLockException;
import javax.persistence.RollbackException;
+import org.junit.After;
import org.junit.AfterClass;
import org.junit.Assert;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
+import eclipselink.example.jpa.employee.model.Employee;
import eclipselink.example.jpa.employee.model.SamplePopulation;
-import eclipselink.example.jpa.employee.services.EditEmployee;
-import eclipselink.example.jpa.employee.services.EditEmployeeBean;
+import eclipselink.example.jpa.employee.services.EmployeeRepository;
import eclipselink.example.jpa.employee.test.PersistenceTesting;
/**
@@ -38,42 +39,34 @@
@Test
public void saveWithoutChanges() {
- EditEmployee edit = new EditEmployeeBean(getEmf(), sampleId);
+ Employee emp = this.repository.find(sampleId);
- try {
- edit.save();
- } finally {
- edit.close();
- }
+ Assert.assertNotNull(emp);
+
+ repository.save(emp);
}
@Test
public void incrementSalary() {
- EditEmployee edit = new EditEmployeeBean(getEmf(), sampleId);
+ Employee emp = this.repository.find(sampleId);
- try {
- edit.getEmployee().setSalary(edit.getEmployee().getSalary() + 1);
- edit.save();
- } finally {
- edit.close();
- }
+ emp.setSalary(emp.getSalary() + 1);
+
+ repository.save(emp);
}
@Test
public void optimisticLockFailure() {
- EditEmployee edit = new EditEmployeeBean(getEmf(), sampleId);
+ Employee emp = this.repository.find(sampleId);
try {
- edit.updateVersion();
- edit.getEmployee().setSalary(edit.getEmployee().getSalary() + 1);
- edit.save();
- } catch (RollbackException e) {
- if (e.getCause() instanceof OptimisticLockException) {
- return;
- }
- throw e;
- } finally {
- edit.close();
+ repository.updateVersion(emp);
+ emp.setSalary(emp.getSalary() + 1);
+ repository.save(emp);
+
+ } catch (OptimisticLockException e) {
+ getRepository().getEntityManager().getTransaction().rollback();
+ return;
}
Assert.fail("OptimisticLockException not thrown");
@@ -81,16 +74,33 @@
@Test
public void refreshUpdateAddress() {
- EditEmployee edit = new EditEmployeeBean(getEmf(), sampleId);
+ Employee emp = this.repository.find(sampleId);
- try {
- edit.refresh();
- edit.getEmployee().getAddress().setCity("Ottawa");
- edit.save();
- } finally {
- edit.close();
+ emp = repository.refresh(emp);
+ emp.getAddress().setCity("Ottawa");
+ repository.save(emp);
+
+ }
+
+ private EmployeeRepository repository;
+
+ @Before
+ public void setup() {
+ this.repository = new EmployeeRepository();
+ this.repository.setEntityManager(getEmf().createEntityManager());
+ this.repository.getEntityManager().getTransaction().begin();
+ }
+
+ @After
+ public void close() {
+ if (this.repository.getEntityManager().getTransaction().isActive()) {
+ this.repository.getEntityManager().getTransaction().commit();
}
+ this.repository.getEntityManager().close();
+ }
+ public EmployeeRepository getRepository() {
+ return repository;
}
private static EntityManagerFactory emf;
@@ -111,7 +121,9 @@
emf = PersistenceTesting.createEMF(true);
EntityManager em = emf.createEntityManager();
+ em.getTransaction().begin();
new SamplePopulation().createNewEmployees(em, 1);
+ em.getTransaction().commit();
sampleId = em.createQuery("SELECT e.id FROM Employee e", Integer.class).getSingleResult();
em.close();
diff --git a/jpa/employee/employee.model/src/test/java/eclipselink/example/jpa/employee/test/services/PageEmployeesTest.java b/jpa/employee/employee.model/src/test/java/eclipselink/example/jpa/employee/test/services/PageEmployeesTest.java
index d308860..a1becc9 100644
--- a/jpa/employee/employee.model/src/test/java/eclipselink/example/jpa/employee/test/services/PageEmployeesTest.java
+++ b/jpa/employee/employee.model/src/test/java/eclipselink/example/jpa/employee/test/services/PageEmployeesTest.java
@@ -17,17 +17,20 @@
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
+import org.junit.After;
import org.junit.AfterClass;
import org.junit.Assert;
+import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import eclipselink.example.jpa.employee.model.Employee;
import eclipselink.example.jpa.employee.model.SamplePopulation;
import eclipselink.example.jpa.employee.services.Diagnostics;
+import eclipselink.example.jpa.employee.services.EmployeeRepository;
import eclipselink.example.jpa.employee.services.Diagnostics.SQLTrace;
+import eclipselink.example.jpa.employee.services.paging.EntityPaging;
import eclipselink.example.jpa.employee.services.EmployeeCriteria;
-import eclipselink.example.jpa.employee.services.EntityPaging;
import eclipselink.example.jpa.employee.test.PersistenceTesting;
/**
@@ -40,10 +43,8 @@
@Test
public void page5ByIndex() {
- EntityManager em = getEmf().createEntityManager();
- Diagnostics diagnostics = Diagnostics.getInstance(getEmf());
- SQLTrace start = diagnostics.start();
+ SQLTrace start = getDiagnostics().start();
Assert.assertTrue(start.getEntries().isEmpty());
EmployeeCriteria criteria = new EmployeeCriteria();
@@ -51,11 +52,12 @@
criteria.setLastName(null);
criteria.setPageSize(5);
criteria.setPagingType(EntityPaging.Type.PAGE.name());
- EntityPaging<Employee> paging = criteria.getPaging(getEmf());
+
+ EntityPaging<Employee> paging = getRepository().getPaging(criteria);
Assert.assertEquals(25, paging.size());
- SQLTrace end = diagnostics.stop();
+ SQLTrace end = getDiagnostics().stop();
Assert.assertNotNull(end);
Assert.assertSame(start, end);
@@ -73,15 +75,12 @@
Assert.assertFalse(paging.hasNext());
- em.close();
}
@Test
public void page5ByNext() {
- EntityManager em = getEmf().createEntityManager();
- Diagnostics diagnostics = Diagnostics.getInstance(getEmf());
- SQLTrace start = diagnostics.start();
+ SQLTrace start = getDiagnostics().start();
Assert.assertTrue(start.getEntries().isEmpty());
EmployeeCriteria criteria = new EmployeeCriteria();
@@ -89,11 +88,12 @@
criteria.setLastName(null);
criteria.setPageSize(5);
criteria.setPagingType(EntityPaging.Type.PAGE.name());
- EntityPaging<Employee> paging = criteria.getPaging(getEmf());
+
+ EntityPaging<Employee> paging = getRepository().getPaging(criteria);
Assert.assertEquals(25, paging.size());
- SQLTrace end = diagnostics.stop();
+ SQLTrace end = getDiagnostics().stop();
Assert.assertNotNull(end);
Assert.assertSame(start, end);
@@ -111,15 +111,12 @@
Assert.assertFalse(paging.hasNext());
- em.close();
}
@Test
public void page10ByIndex() {
- EntityManager em = getEmf().createEntityManager();
- Diagnostics diagnostics = Diagnostics.getInstance(getEmf());
- SQLTrace start = diagnostics.start();
+ SQLTrace start = getDiagnostics().start();
Assert.assertTrue(start.getEntries().isEmpty());
EmployeeCriteria criteria = new EmployeeCriteria();
@@ -127,11 +124,12 @@
criteria.setLastName(null);
criteria.setPageSize(10);
criteria.setPagingType(EntityPaging.Type.PAGE.name());
- EntityPaging<Employee> paging = criteria.getPaging(getEmf());
+
+ EntityPaging<Employee> paging = getRepository().getPaging(criteria);
Assert.assertEquals(25, paging.size());
- SQLTrace end = diagnostics.stop();
+ SQLTrace end = getDiagnostics().stop();
Assert.assertNotNull(end);
Assert.assertSame(start, end);
@@ -150,15 +148,12 @@
Assert.assertFalse(paging.hasNext());
- em.close();
}
@Test
public void page10ByNext() {
- EntityManager em = getEmf().createEntityManager();
- Diagnostics diagnostics = Diagnostics.getInstance(getEmf());
- SQLTrace start = diagnostics.start();
+ SQLTrace start = getDiagnostics().start();
Assert.assertTrue(start.getEntries().isEmpty());
EmployeeCriteria criteria = new EmployeeCriteria();
@@ -166,11 +161,12 @@
criteria.setLastName(null);
criteria.setPageSize(10);
criteria.setPagingType(EntityPaging.Type.PAGE.name());
- EntityPaging<Employee> paging = criteria.getPaging(getEmf());
+
+ EntityPaging<Employee> paging = getRepository().getPaging(criteria);
Assert.assertEquals(25, paging.size());
- SQLTrace end = diagnostics.stop();
+ SQLTrace end = getDiagnostics().stop();
Assert.assertNotNull(end);
Assert.assertSame(start, end);
@@ -189,7 +185,6 @@
Assert.assertFalse(paging.hasNext());
- em.close();
}
private static EntityManagerFactory emf;
@@ -203,7 +198,9 @@
emf = PersistenceTesting.createEMF(true);
EntityManager em = emf.createEntityManager();
+ em.getTransaction().begin();
new SamplePopulation().createNewEmployees(em, 25);
+ em.getTransaction().commit();
em.close();
emf.getCache().evictAll();
@@ -217,4 +214,27 @@
emf = null;
}
+ private EmployeeRepository repository;
+
+ @Before
+ public void setup() {
+ this.repository = new EmployeeRepository();
+ this.repository.setEntityManager(getEmf().createEntityManager());
+ this.repository.getEntityManager().getTransaction().begin();
+ }
+
+ @After
+ public void close() {
+ this.repository.getEntityManager().getTransaction().commit();
+ this.repository.getEntityManager().close();
+ }
+
+ public EmployeeRepository getRepository() {
+ return repository;
+ }
+
+ public Diagnostics getDiagnostics() {
+ return getRepository().getDiagnostics();
+ }
+
}
diff --git a/jpa/employee/employee.model/src/test/java/eclipselink/example/jpa/employee/test/services/PageIdsInEmployeesTest.java b/jpa/employee/employee.model/src/test/java/eclipselink/example/jpa/employee/test/services/PageIdsInEmployeesTest.java
index 5f7a6a5..5d3c448 100644
--- a/jpa/employee/employee.model/src/test/java/eclipselink/example/jpa/employee/test/services/PageIdsInEmployeesTest.java
+++ b/jpa/employee/employee.model/src/test/java/eclipselink/example/jpa/employee/test/services/PageIdsInEmployeesTest.java
@@ -17,8 +17,10 @@
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
+import org.junit.After;
import org.junit.AfterClass;
import org.junit.Assert;
+import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
@@ -27,7 +29,8 @@
import eclipselink.example.jpa.employee.services.Diagnostics;
import eclipselink.example.jpa.employee.services.Diagnostics.SQLTrace;
import eclipselink.example.jpa.employee.services.EmployeeCriteria;
-import eclipselink.example.jpa.employee.services.EntityPaging;
+import eclipselink.example.jpa.employee.services.EmployeeRepository;
+import eclipselink.example.jpa.employee.services.paging.EntityPaging;
import eclipselink.example.jpa.employee.test.PersistenceTesting;
/**
@@ -40,10 +43,8 @@
@Test
public void page5ByIndex() {
- EntityManager em = getEmf().createEntityManager();
- Diagnostics diagnostics = Diagnostics.getInstance(getEmf());
- SQLTrace start = diagnostics.start();
+ SQLTrace start = getDiagnostics().start();
Assert.assertTrue(start.getEntries().isEmpty());
EmployeeCriteria criteria = new EmployeeCriteria();
@@ -51,11 +52,12 @@
criteria.setLastName(null);
criteria.setPageSize(5);
criteria.setPagingType(EntityPaging.Type.PAGE_IN.name());
- EntityPaging<Employee> paging = criteria.getPaging(getEmf());
+
+ EntityPaging<Employee> paging = getRepository().getPaging(criteria);
Assert.assertEquals(25, paging.size());
- SQLTrace end = diagnostics.stop();
+ SQLTrace end = getDiagnostics().stop();
Assert.assertNotNull(end);
Assert.assertSame(start, end);
@@ -73,15 +75,11 @@
Assert.assertFalse(paging.hasNext());
- em.close();
}
@Test
public void page5ByNext() {
- EntityManager em = getEmf().createEntityManager();
- Diagnostics diagnostics = Diagnostics.getInstance(getEmf());
-
- SQLTrace start = diagnostics.start();
+ SQLTrace start = getDiagnostics().start();
Assert.assertTrue(start.getEntries().isEmpty());
EmployeeCriteria criteria = new EmployeeCriteria();
@@ -89,11 +87,11 @@
criteria.setLastName(null);
criteria.setPageSize(5);
criteria.setPagingType(EntityPaging.Type.PAGE_IN.name());
- EntityPaging<Employee> paging = criteria.getPaging(getEmf());
+ EntityPaging<Employee> paging = getRepository().getPaging(criteria);
Assert.assertEquals(25, paging.size());
- SQLTrace end = diagnostics.stop();
+ SQLTrace end = getDiagnostics().stop();
Assert.assertNotNull(end);
Assert.assertSame(start, end);
@@ -111,15 +109,11 @@
Assert.assertFalse(paging.hasNext());
- em.close();
}
@Test
public void page10ByIndex() {
- EntityManager em = getEmf().createEntityManager();
- Diagnostics diagnostics = Diagnostics.getInstance(getEmf());
-
- SQLTrace start = diagnostics.start();
+ SQLTrace start = getDiagnostics().start();
Assert.assertTrue(start.getEntries().isEmpty());
EmployeeCriteria criteria = new EmployeeCriteria();
@@ -127,11 +121,12 @@
criteria.setLastName(null);
criteria.setPageSize(10);
criteria.setPagingType(EntityPaging.Type.PAGE_IN.name());
- EntityPaging<Employee> paging = criteria.getPaging(getEmf());
+
+ EntityPaging<Employee> paging = getRepository().getPaging(criteria);
Assert.assertEquals(25, paging.size());
- SQLTrace end = diagnostics.stop();
+ SQLTrace end = getDiagnostics().stop();
Assert.assertNotNull(end);
Assert.assertSame(start, end);
@@ -150,15 +145,11 @@
Assert.assertFalse(paging.hasNext());
- em.close();
}
@Test
public void page10ByNext() {
- EntityManager em = getEmf().createEntityManager();
- Diagnostics diagnostics = Diagnostics.getInstance(getEmf());
-
- SQLTrace start = diagnostics.start();
+ SQLTrace start = getDiagnostics().start();
Assert.assertTrue(start.getEntries().isEmpty());
EmployeeCriteria criteria = new EmployeeCriteria();
@@ -166,11 +157,11 @@
criteria.setLastName(null);
criteria.setPageSize(10);
criteria.setPagingType(EntityPaging.Type.PAGE_IN.name());
- EntityPaging<Employee> paging = criteria.getPaging(getEmf());
+ EntityPaging<Employee> paging = getRepository().getPaging(criteria);
Assert.assertEquals(25, paging.size());
- SQLTrace end = diagnostics.stop();
+ SQLTrace end = getDiagnostics().stop();
Assert.assertNotNull(end);
Assert.assertSame(start, end);
@@ -189,7 +180,6 @@
Assert.assertFalse(paging.hasNext());
- em.close();
}
private static EntityManagerFactory emf;
@@ -203,7 +193,9 @@
emf = PersistenceTesting.createEMF(true);
EntityManager em = emf.createEntityManager();
+ em.getTransaction().begin();
new SamplePopulation().createNewEmployees(em, 25);
+ em.getTransaction().commit();
em.close();
emf.getCache().evictAll();
@@ -217,4 +209,27 @@
emf = null;
}
+ private EmployeeRepository repository;
+
+ @Before
+ public void setup() {
+ this.repository = new EmployeeRepository();
+ this.repository.setEntityManager(getEmf().createEntityManager());
+ this.repository.getEntityManager().getTransaction().begin();
+ }
+
+ @After
+ public void close() {
+ this.repository.getEntityManager().getTransaction().commit();
+ this.repository.getEntityManager().close();
+ }
+
+ public EmployeeRepository getRepository() {
+ return repository;
+ }
+
+ public Diagnostics getDiagnostics() {
+ return getRepository().getDiagnostics();
+ }
+
}
diff --git a/jpa/employee/employee.model/src/test/java/eclipselink/example/jpa/employee/test/services/StreamEmployeesTest.java b/jpa/employee/employee.model/src/test/java/eclipselink/example/jpa/employee/test/services/StreamEmployeesTest.java
index 51ad195..0b36c6e 100644
--- a/jpa/employee/employee.model/src/test/java/eclipselink/example/jpa/employee/test/services/StreamEmployeesTest.java
+++ b/jpa/employee/employee.model/src/test/java/eclipselink/example/jpa/employee/test/services/StreamEmployeesTest.java
@@ -18,8 +18,10 @@
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
+import org.junit.After;
import org.junit.AfterClass;
import org.junit.Assert;
+import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
@@ -28,7 +30,8 @@
import eclipselink.example.jpa.employee.services.Diagnostics;
import eclipselink.example.jpa.employee.services.Diagnostics.SQLTrace;
import eclipselink.example.jpa.employee.services.EmployeeCriteria;
-import eclipselink.example.jpa.employee.services.EntityPaging;
+import eclipselink.example.jpa.employee.services.EmployeeRepository;
+import eclipselink.example.jpa.employee.services.paging.EntityPaging;
import eclipselink.example.jpa.employee.test.PersistenceTesting;
/**
@@ -41,10 +44,7 @@
@Test
public void streamAllNext() {
- EntityManager em = getEmf().createEntityManager();
- Diagnostics diagnostics = Diagnostics.getInstance(getEmf());
-
- SQLTrace start = diagnostics.start();
+ SQLTrace start = getDiagnostics().start();
Assert.assertTrue(start.getEntries().isEmpty());
EmployeeCriteria criteria = new EmployeeCriteria();
@@ -52,11 +52,11 @@
criteria.setLastName(null);
criteria.setPageSize(5);
criteria.setPagingType(EntityPaging.Type.CURSOR.name());
- EntityPaging<Employee> stream = criteria.getPaging(getEmf());
+ EntityPaging<Employee> stream = getRepository().getPaging(criteria);
Assert.assertEquals(25, stream.size());
- SQLTrace end = diagnostics.stop();
+ SQLTrace end = getDiagnostics().stop();
Assert.assertNotNull(end);
Assert.assertSame(start, end);
@@ -87,19 +87,14 @@
stream.next();
} catch (IllegalStateException e) {
return;
- } finally {
- em.close();
- }
+ }
Assert.fail("IllegalStateException not thrown on next()");
}
@Test
public void streamAllNext10() {
- EntityManager em = getEmf().createEntityManager();
- Diagnostics diagnostics = Diagnostics.getInstance(getEmf());
-
- SQLTrace start = diagnostics.start();
+ SQLTrace start = getDiagnostics().start();
Assert.assertTrue(start.getEntries().isEmpty());
EmployeeCriteria criteria = new EmployeeCriteria();
@@ -107,11 +102,11 @@
criteria.setLastName(null);
criteria.setPageSize(10);
criteria.setPagingType(EntityPaging.Type.CURSOR.name());
- EntityPaging<Employee> stream = criteria.getPaging(getEmf());
+ EntityPaging<Employee> stream = getRepository().getPaging(criteria);
Assert.assertEquals(25, stream.size());
- SQLTrace end = diagnostics.stop();
+ SQLTrace end = getDiagnostics().stop();
Assert.assertNotNull(end);
Assert.assertSame(start, end);
@@ -146,19 +141,14 @@
stream.next();
} catch (IllegalStateException e) {
return;
- } finally {
- em.close();
- }
+ }
Assert.fail("IllegalStateException not thrown on next()");
}
@Test
public void streamAllPrevious() {
- EntityManager em = getEmf().createEntityManager();
- Diagnostics diagnostics = Diagnostics.getInstance(getEmf());
-
- SQLTrace start = diagnostics.start();
+ SQLTrace start = getDiagnostics().start();
Assert.assertTrue(start.getEntries().isEmpty());
EmployeeCriteria criteria = new EmployeeCriteria();
@@ -166,11 +156,11 @@
criteria.setLastName(null);
criteria.setPageSize(5);
criteria.setPagingType(EntityPaging.Type.CURSOR.name());
- EntityPaging<Employee> stream = criteria.getPaging(getEmf());
+ EntityPaging<Employee> stream = getRepository().getPaging(criteria);
Assert.assertEquals(25, stream.size());
- SQLTrace end = diagnostics.stop();
+ SQLTrace end = getDiagnostics().stop();
Assert.assertNotNull(end);
Assert.assertSame(start, end);
@@ -224,19 +214,14 @@
stream.previous();
} catch (IllegalStateException e) {
return;
- } finally {
- em.close();
- }
+ }
Assert.fail("IllegalStateException not thrown on previous()");
}
@Test
public void streamAllPreviousGet() {
- EntityManager em = getEmf().createEntityManager();
- Diagnostics diagnostics = Diagnostics.getInstance(getEmf());
-
- SQLTrace start = diagnostics.start();
+ SQLTrace start = getDiagnostics().start();
Assert.assertTrue(start.getEntries().isEmpty());
EmployeeCriteria criteria = new EmployeeCriteria();
@@ -244,11 +229,12 @@
criteria.setLastName(null);
criteria.setPageSize(5);
criteria.setPagingType(EntityPaging.Type.CURSOR.name());
- EntityPaging<Employee> stream = criteria.getPaging(getEmf());
+
+ EntityPaging<Employee> stream = getRepository().getPaging(criteria);
Assert.assertEquals(25, stream.size());
- SQLTrace end = diagnostics.stop();
+ SQLTrace end = getDiagnostics().stop();
Assert.assertNotNull(end);
Assert.assertSame(start, end);
@@ -302,9 +288,7 @@
stream.previous();
} catch (IllegalStateException e) {
return;
- } finally {
- em.close();
- }
+ }
Assert.fail("IllegalStateException not thrown on previous()");
}
@@ -320,11 +304,9 @@
emf = PersistenceTesting.createEMF(true);
EntityManager em = emf.createEntityManager();
+ em.getTransaction().begin();
new SamplePopulation().createNewEmployees(em, 25);
-
- Number count = em.createNamedQuery("Employee.count", Number.class).getSingleResult();
- Assert.assertEquals(25, count.intValue());
-
+ em.getTransaction().commit();
em.close();
emf.getCache().evictAll();
@@ -338,4 +320,27 @@
emf = null;
}
+ private EmployeeRepository repository;
+
+ @Before
+ public void setup() {
+ this.repository = new EmployeeRepository();
+ this.repository.setEntityManager(getEmf().createEntityManager());
+ this.repository.getEntityManager().getTransaction().begin();
+ }
+
+ @After
+ public void close() {
+ this.repository.getEntityManager().getTransaction().commit();
+ this.repository.getEntityManager().close();
+ }
+
+ public EmployeeRepository getRepository() {
+ return repository;
+ }
+
+ public Diagnostics getDiagnostics() {
+ return getRepository().getDiagnostics();
+ }
+
}
diff --git a/jpa/employee/employee.model/src/test/java/example/JavaSEExample.java b/jpa/employee/employee.model/src/test/java/example/JavaSEExample.java
index b715358..dca4972 100644
--- a/jpa/employee/employee.model/src/test/java/example/JavaSEExample.java
+++ b/jpa/employee/employee.model/src/test/java/example/JavaSEExample.java
@@ -20,8 +20,6 @@
import eclipselink.example.jpa.employee.model.Employee;
import eclipselink.example.jpa.employee.model.SamplePopulation;
-import eclipselink.example.jpa.employee.services.EmployeeCriteria;
-import eclipselink.example.jpa.employee.services.EntityPaging;
import eclipselink.example.jpa.employee.test.PersistenceTesting;
/**
@@ -42,7 +40,9 @@
try {
EntityManager em = emf.createEntityManager();
+ em.getTransaction().begin();
new SamplePopulation().createNewEmployees(em, 10);
+ em.getTransaction().commit();
em.clear();
example.queryAllEmployees(em);
@@ -57,8 +57,6 @@
example.deleteEmployee(em, 1);
em.clear();
- example.pagingIdIn(emf);
-
em.close();
} finally {
@@ -112,16 +110,4 @@
}
- public void pagingIdIn(EntityManagerFactory emf) {
- EmployeeCriteria criteria = new EmployeeCriteria();
- criteria.setFirstName(null);
- criteria.setLastName(null);
- criteria.setPagingType(EntityPaging.Type.PAGE.name());
-
- EntityPaging<Employee> paging = criteria.getPaging(emf);
-
- paging.get(1);
- paging.get(2);
- }
-
}
diff --git a/jpa/employee/employee.web/README.md b/jpa/employee/employee.web/README.md
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/jpa/employee/employee.web/README.md
diff --git a/jpa/employee/employee.web/pom.xml b/jpa/employee/employee.web/pom.xml
index 74c1cba..8dab3e2 100644
--- a/jpa/employee/employee.web/pom.xml
+++ b/jpa/employee/employee.web/pom.xml
@@ -14,26 +14,8 @@
<name>Employee Web App</name>
<dependencies>
- <dependency>
- <groupId>${eclipselink.groupid}</groupId>
- <artifactId>${eclipselink.artifactid}</artifactId>
- <version>${eclipselink.version}</version>
- <exclusions>
- <exclusion>
- <artifactId>commonj.sdo</artifactId>
- <groupId>commonj.sdo</groupId>
- </exclusion>
- </exclusions>
- <scope>provided</scope>
- </dependency>
<!-- EclipseLink JPA-RS Web Fragment -->
- <dependency>
- <groupId>${eclipselink.groupid}</groupId>
- <artifactId>org.eclipse.persistence.jpars</artifactId>
- <version>${eclipselink.version}</version>
- <scope>provided</scope>
- </dependency>
<dependency>
<groupId>junit</groupId>
@@ -42,12 +24,6 @@
<scope>test</scope>
</dependency>
- <dependency>
- <groupId>org.apache.derby</groupId>
- <artifactId>derby</artifactId>
- <version>10.9.1.0</version>
- <scope>test</scope>
- </dependency>
<dependency>
<groupId>eclipselink.example.jpa</groupId>
@@ -55,12 +31,6 @@
<version>2.4.2-SNAPSHOT</version>
</dependency>
- <dependency>
- <groupId>javax</groupId>
- <artifactId>javaee-api</artifactId>
- <version>6.0</version>
- <scope>provided</scope>
- </dependency>
<!--
<dependency>
<groupId>com.sun.jersey.jersey-test-framework</groupId>
@@ -69,6 +39,24 @@
<scope>test</scope>
</dependency>
-->
+ <dependency>
+ <groupId>javax.faces</groupId>
+ <artifactId>javax.faces-api</artifactId>
+ <version>2.1</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.glassfish</groupId>
+ <artifactId>javax.ejb</artifactId>
+ <version>3.1.1</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.persistence</groupId>
+ <artifactId>javax.persistence</artifactId>
+ <version>2.0.0</version>
+ <scope>provided</scope>
+ </dependency>
</dependencies>
<build>
diff --git a/jpa/employee/employee.web/src/main/java/eclipselink/example/jpa/employee/web/Admin.java b/jpa/employee/employee.web/src/main/java/eclipselink/example/jpa/employee/web/Admin.java
index 413d449..6267a30 100644
--- a/jpa/employee/employee.web/src/main/java/eclipselink/example/jpa/employee/web/Admin.java
+++ b/jpa/employee/employee.web/src/main/java/eclipselink/example/jpa/employee/web/Admin.java
@@ -12,16 +12,13 @@
******************************************************************************/
package eclipselink.example.jpa.employee.web;
+import java.util.List;
+
+import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
-import javax.persistence.EntityManager;
-import javax.persistence.EntityManagerFactory;
-import javax.persistence.PersistenceUnit;
-import org.eclipse.persistence.sessions.server.Server;
-import org.eclipse.persistence.tools.schemaframework.SchemaManager;
-
-import eclipselink.example.jpa.employee.model.SamplePopulation;
+import eclipselink.example.jpa.employee.services.AdminBean;
/**
* TODO
@@ -33,41 +30,58 @@
@RequestScoped
public class Admin {
- private EntityManagerFactory emf;
+ private AdminBean adminBean;
- public EntityManagerFactory getEmf() {
- return emf;
+ private List<String> typeNames;
+
+ private boolean displaySql = false;
+
+ public AdminBean getAdminBean() {
+ return adminBean;
}
- @PersistenceUnit(unitName = "employee")
- public void setEmf(EntityManagerFactory emf) {
- this.emf = emf;
+ @EJB
+ public void setAdminBean(AdminBean adminBean) {
+ this.adminBean = adminBean;
}
public String resetDatabase() {
- EntityManager em = getEmf().createEntityManager();
-
- try {
- SchemaManager sm = new SchemaManager(em.unwrap(Server.class));
- sm.replaceDefaultTables();
- sm.replaceSequences();
-
- em.unwrap(Server.class).getIdentityMapAccessor().initializeAllIdentityMaps();
- } finally {
- em.close();
- }
- return null;
+ return getAdminBean().resetDatabase();
}
public String populateDatabase() {
- EntityManager em = getEmf().createEntityManager();
+ return getAdminBean().populateDatabase(25);
+ }
- try {
- new SamplePopulation().createNewEmployees(em, 25);
- } finally {
- em.close();
+ public List<String> getTypeNames() {
+ if (this.typeNames == null) {
+ this.typeNames = getAdminBean().getTypes();
}
- return null;
+ return typeNames;
+ }
+
+ public boolean isDisplaySql() {
+ return displaySql;
+ }
+
+ public void setDisplaySql(boolean displaySql) {
+ this.displaySql = displaySql;
+ }
+
+ public void toggleSqlDisplay() {
+ this.displaySql = !this.displaySql;
+ }
+
+ public String getToggleSqlDisplayButton() {
+ return isDisplaySql() ? "Disable SQL Display" : "Enable SQL Display";
+ }
+
+ public String getCacheSize(String typeName) {
+ int size = getAdminBean().getCacheSize(typeName);
+ if (size < 0) {
+ return "Error";
+ }
+ return Integer.toString(size);
}
}
diff --git a/jpa/employee/employee.web/src/main/java/eclipselink/example/jpa/employee/web/BaseBean.java b/jpa/employee/employee.web/src/main/java/eclipselink/example/jpa/employee/web/BaseBean.java
deleted file mode 100644
index c94032f..0000000
--- a/jpa/employee/employee.web/src/main/java/eclipselink/example/jpa/employee/web/BaseBean.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2010-2013 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 - initial
- ******************************************************************************/
-package eclipselink.example.jpa.employee.web;
-
-import javax.faces.application.FacesMessage;
-import javax.faces.context.FacesContext;
-import javax.persistence.EntityManager;
-import javax.persistence.EntityManagerFactory;
-
-import org.eclipse.persistence.logging.SessionLogEntry;
-
-import eclipselink.example.jpa.employee.services.Diagnostics;
-import eclipselink.example.jpa.employee.services.Diagnostics.SQLTrace;
-
-/**
- * Return list of available Leagues from JAX-RS call to MySports Admin app.
- *
- * @author dclarke
- * @since EclipseLink 2.4.2
- */
-public abstract class BaseBean {
-
- private EntityManagerFactory emf;
-
- private Diagnostics diagnostics;
-
- public EntityManagerFactory getEmf() {
- return emf;
- }
-
- protected void setEmf(EntityManagerFactory emf) {
- this.emf = emf;
- this.diagnostics = Diagnostics.getInstance(emf);
- }
-
- protected EntityManager createEntityManager() {
- EntityManager em = getEmf().createEntityManager();
- startSqlCapture();
- return em;
- }
-
- protected void close(EntityManager em) {
- if (em.getTransaction().isActive()) {
- em.getTransaction().rollback();
- }
- em.close();
- stopSqlCapture();
- }
-
- protected void startSqlCapture() {
- this.diagnostics.start();
- }
-
- protected void stopSqlCapture() {
- addMessages(this.diagnostics.stop());
- }
-
- /**
- * Add each SQL string to the messages TODO: Allow this to be
- * enabled/disabled
- */
- private void addMessages(SQLTrace sqlTrace) {
- for (SessionLogEntry entry : sqlTrace.getEntries()) {
- FacesContext.getCurrentInstance().addMessage("SQL", new FacesMessage(entry.getMessage()));
- }
- }
-
-}
diff --git a/jpa/employee/employee.web/src/main/java/eclipselink/example/jpa/employee/web/Config.java b/jpa/employee/employee.web/src/main/java/eclipselink/example/jpa/employee/web/Config.java
deleted file mode 100644
index b5b230a..0000000
--- a/jpa/employee/employee.web/src/main/java/eclipselink/example/jpa/employee/web/Config.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2010-2013 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 - initial
- ******************************************************************************/
-package eclipselink.example.jpa.employee.web;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.faces.bean.ManagedBean;
-import javax.faces.bean.SessionScoped;
-import javax.persistence.EntityManager;
-import javax.persistence.EntityManagerFactory;
-import javax.persistence.PersistenceUnit;
-
-import org.eclipse.persistence.descriptors.ClassDescriptor;
-import org.eclipse.persistence.internal.sessions.IdentityMapAccessor;
-import org.eclipse.persistence.sessions.server.Server;
-
-/**
- * TODO
- *
- * @author dclarke
- * @since EclipseLink 2.4.2
- */
-@ManagedBean
-@SessionScoped
-public class Config {
-
- private List<String> typeNames;
-
- private boolean displaySql = false;
-
- public Config() {
- this.typeNames = new ArrayList<String>();
- this.typeNames.add("Employee");
- this.typeNames.add("Address");
- this.typeNames.add("PhoneNumber");
- this.typeNames.add("Project");
- }
-
- private EntityManagerFactory emf;
-
- public EntityManagerFactory getEmf() {
- return emf;
- }
-
- @PersistenceUnit(unitName = "employee")
- public void setEmf(EntityManagerFactory emf) {
- this.emf = emf;
- }
-
- public List<String> getTypeNames() {
- return typeNames;
- }
-
- public boolean isDisplaySql() {
- return displaySql;
- }
-
- public void setDisplaySql(boolean displaySql) {
- this.displaySql = displaySql;
- }
-
- public void toggleSqlDisplay() {
- this.displaySql = !this.displaySql;
- }
-
- public String getToggleSqlDisplayButton() {
- return isDisplaySql() ? "Disable SQL Display" : "Enable SQL Display";
- }
-
- public String getCacheSize(String typeName) {
- System.out.println("Config.getCacheSize('" + typeName + "')");
- EntityManager em = getEmf().createEntityManager();
- Server session = em.unwrap(Server.class);
- ClassDescriptor descriptor = session.getDescriptorForAlias(typeName);
- if (descriptor != null) {
- int size = ((IdentityMapAccessor) session.getIdentityMapAccessor()).getIdentityMap(descriptor.getJavaClass()).getSize();
- return Integer.toString(size);
- } else {
- return "N/A";
- }
- }
-}
diff --git a/jpa/employee/employee.web/src/main/java/eclipselink/example/jpa/employee/web/EditEmployee.java b/jpa/employee/employee.web/src/main/java/eclipselink/example/jpa/employee/web/EditEmployee.java
index 9976fb0..fdb6ba3 100644
--- a/jpa/employee/employee.web/src/main/java/eclipselink/example/jpa/employee/web/EditEmployee.java
+++ b/jpa/employee/employee.web/src/main/java/eclipselink/example/jpa/employee/web/EditEmployee.java
@@ -13,21 +13,20 @@
package eclipselink.example.jpa.employee.web;
import javax.annotation.PostConstruct;
+import javax.ejb.EJB;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;
import javax.faces.context.Flash;
-import javax.persistence.EntityManager;
-import javax.persistence.EntityManagerFactory;
-import javax.persistence.LockModeType;
import javax.persistence.OptimisticLockException;
-import javax.persistence.PersistenceUnit;
import javax.persistence.RollbackException;
import eclipselink.example.jpa.employee.model.Address;
import eclipselink.example.jpa.employee.model.Employee;
import eclipselink.example.jpa.employee.model.PhoneNumber;
+import eclipselink.example.jpa.employee.services.Diagnostics.SQLTrace;
+import eclipselink.example.jpa.employee.services.EmployeeRepository;
/**
* Backing bean to edit or create an {@link Employee}.
@@ -37,20 +36,28 @@
*/
@ManagedBean
@ViewScoped
-public class EditEmployee extends BaseBean {
+public class EditEmployee {
private Employee employee;
- /**
- * TODO
- */
private String type;
boolean create = false;
+ private EmployeeRepository repository;
+
protected static final String PAGE = "/employee/edit";
protected static final String PAGE_REDIRECT = "/employee/edit?faces-redirect=true";
+ public EmployeeRepository getRepository() {
+ return repository;
+ }
+
+ @EJB
+ public void setRepository(EmployeeRepository repository) {
+ this.repository = repository;
+ }
+
@PostConstruct
private void init() {
Flash flashScope = FacesContext.getCurrentInstance().getExternalContext().getFlash();
@@ -65,7 +72,7 @@
}
public Employee getEmployee() {
- return employee;
+ return this.employee;
}
public String getEmployeeId() {
@@ -87,72 +94,31 @@
return getEmployee() != null && getEmployee().getId() <= 0;
}
- @PersistenceUnit(unitName = "employee")
- public void setEmf(EntityManagerFactory emf) {
- super.setEmf(emf);
- }
-
/**
*
* @return
*/
public String save() {
- EntityManager em = createEntityManager();
-
try {
- em.getTransaction().begin();
- if (getEmployee().getAddress() != null) {
- // em.merge(getEmployee().getAddress());
- }
- this.employee = em.merge(getEmployee());
- // Ensure the Employee's lock value is incremented
- em.lock(this.employee, LockModeType.OPTIMISTIC_FORCE_INCREMENT);
-
- em.getTransaction().commit();
- if (isCreate()) {
- em.refresh(getEmployee());
- }
+ this.employee = getRepository().save(getEmployee());
} catch (RollbackException e) {
if (e.getCause() instanceof OptimisticLockException) {
FacesContext.getCurrentInstance().addMessage("OptimisticLockException", new FacesMessage("Commit Failed: Optimistic Lock Exception."));
} else {
throw e;
}
- } finally {
- close(em);
}
return null;
}
public String delete() {
- EntityManager em = createEntityManager();
- try {
- this.employee = em.find(Employee.class, getEmployee().getId());
- // TODO: Handle find failure
- em.getTransaction().begin();
- em.remove(getEmployee());
- em.getTransaction().commit();
-
- } finally {
- close(em);
- this.employee = null;
- }
- return cancel();
+ getRepository().delete(getEmployee());
+ return null;
}
public String refresh() {
- EntityManager em = createEntityManager();
-
- try {
- this.employee = em.find(Employee.class, getEmployee().getId());
- em.refresh(getEmployee());
- getEmployee().getAddress();
- getEmployee().getPhoneNumbers().size();
- em.detach(employee);
- } finally {
- close(em);
- }
+ this.employee = getRepository().refresh(getEmployee());
return null;
}
@@ -165,19 +131,7 @@
* operations will fail.
*/
public String updateVersion() {
- EntityManager em = createEntityManager();
- int newVersion = -1;
-
- try {
- em.getTransaction().begin();
- em.createNativeQuery("UPDATE EMPLOYEE SET VERSION = VERSION + 1 WHERE EMP_ID = " + getEmployee().getId()).executeUpdate();
- em.getTransaction().commit();
-
- Number result = (Number) em.createNativeQuery("SELECT VERSION FROM EMPLOYEE WHERE EMP_ID = " + getEmployee().getId()).getSingleResult();
- newVersion = result.intValue();
- } finally {
- close(em);
- }
+ int newVersion = getRepository().updateVersion(getEmployee());
FacesContext.getCurrentInstance().addMessage("Update version", new FacesMessage("DATABASE EMPLOYEE ID: " + getEmployee().getId() + " VERSION= " + newVersion));
@@ -208,5 +162,20 @@
getEmployee().removePhoneNumber(phone);
return null;
}
+
+ protected void stopSqlCapture() {
+ addMessages(getRepository().getDiagnostics().stop());
+ }
+
+ /**
+ * Add each SQL string to the messages TODO: Allow this to be
+ * enabled/disabled
+ */
+ private void addMessages(SQLTrace sqlTrace) {
+ for (String entry : sqlTrace.getEntries()) {
+ FacesContext.getCurrentInstance().addMessage("SQL", new FacesMessage(entry));
+ }
+ }
+
}
diff --git a/jpa/employee/employee.web/src/main/java/eclipselink/example/jpa/employee/web/EditEmployeeView.java b/jpa/employee/employee.web/src/main/java/eclipselink/example/jpa/employee/web/EditEmployeeView.java
index a41e814..ea47358 100644
--- a/jpa/employee/employee.web/src/main/java/eclipselink/example/jpa/employee/web/EditEmployeeView.java
+++ b/jpa/employee/employee.web/src/main/java/eclipselink/example/jpa/employee/web/EditEmployeeView.java
@@ -13,26 +13,20 @@
package eclipselink.example.jpa.employee.web;
import javax.annotation.PostConstruct;
-import javax.annotation.PreDestroy;
+import javax.ejb.EJB;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;
import javax.faces.context.Flash;
-import javax.persistence.EntityManagerFactory;
import javax.persistence.OptimisticLockException;
-import javax.persistence.PersistenceUnit;
-import javax.persistence.RollbackException;
-
-import org.eclipse.persistence.logging.SessionLogEntry;
import eclipselink.example.jpa.employee.model.Address;
import eclipselink.example.jpa.employee.model.Employee;
import eclipselink.example.jpa.employee.model.PhoneNumber;
import eclipselink.example.jpa.employee.services.Diagnostics;
import eclipselink.example.jpa.employee.services.Diagnostics.SQLTrace;
-import eclipselink.example.jpa.employee.services.EditEmployee;
-import eclipselink.example.jpa.employee.services.EditEmployeeBean;
+import eclipselink.example.jpa.employee.services.EmployeeRepository;
/**
* Backing bean to edit or create an {@link Employee}.
@@ -44,17 +38,15 @@
@ViewScoped
public class EditEmployeeView {
- private EditEmployee edit;
+ private EmployeeRepository repository;
+
+ private Employee employee;
/**
* Value used to create new unique {@link PhoneNumber}
*/
private String type;
- private EntityManagerFactory emf;
-
- private Diagnostics diagnostics;
-
protected static final String PAGE = "/employee/edit";
protected static final String PAGE_REDIRECT = "/employee/edit?faces-redirect=true";
@@ -65,18 +57,23 @@
setEmployee(id);
}
- public EditEmployee getEdit() {
- return edit;
+ @EJB
+ public EmployeeRepository getRepository() {
+ return repository;
+ }
+
+ public void setRepository(EmployeeRepository repository) {
+ this.repository = repository;
}
public Employee getEmployee() {
- return getEdit().getEmployee();
+ return this.employee;
}
public void setEmployee(int id) {
getDiagnostics().start();
- this.edit = new EditEmployeeBean(getEmf(), id);
- addMessages(getDiagnostics().stop());
+ this.employee = getRepository().find(id);
+
}
public String getEmployeeId() {
@@ -95,21 +92,11 @@
}
public boolean isCreate() {
- return getEdit().isNew();
- }
-
- @PersistenceUnit(unitName = "employee")
- public void setEmf(EntityManagerFactory emf) {
- this.emf = emf;
- this.diagnostics = Diagnostics.getInstance(emf);
- }
-
- public EntityManagerFactory getEmf() {
- return emf;
+ return getEmployee() != null && getEmployee().getId() <= 0;
}
public Diagnostics getDiagnostics() {
- return diagnostics;
+ return getRepository().getDiagnostics();
}
/**
@@ -119,30 +106,26 @@
public String save() {
try {
getDiagnostics().start();
- getEdit().save();
- } catch (RollbackException e) {
- if (e.getCause() instanceof OptimisticLockException) {
- FacesContext.getCurrentInstance().addMessage("EclipseLink", new FacesMessage("OptimisticLockException: Could not save changes"));
- } else {
- throw e;
- }
+ getRepository().save(getEmployee());
+ } catch (OptimisticLockException e) {
+ FacesContext.getCurrentInstance().addMessage("EclipseLink", new FacesMessage("OptimisticLockException: Could not save changes"));
} finally {
- addMessages(getDiagnostics().stop());
+ stopSqlCapture();
}
return null;
}
public String delete() {
getDiagnostics().start();
- getEdit().delete();
- addMessages(getDiagnostics().stop());
+ getRepository().delete(getEmployee());
+ stopSqlCapture();
return cancel();
}
public String refresh() {
getDiagnostics().start();
- getEdit().refresh();
- addMessages(getDiagnostics().stop());
+ this.employee = getRepository().refresh(getEmployee());
+ stopSqlCapture();
return null;
}
@@ -156,8 +139,8 @@
*/
public String updateVersion() {
getDiagnostics().start();
- getEdit().updateVersion();
- addMessages(getDiagnostics().stop());
+ getRepository().updateVersion(getEmployee());
+ stopSqlCapture();
return null;
}
@@ -176,7 +159,7 @@
}
public String addPhone() {
- PhoneNumber newPhone = getEdit().addPhone(getType());
+ PhoneNumber newPhone = getRepository().addPhone(getEmployee(), getType());
if (newPhone == null) {
FacesContext.getCurrentInstance().addMessage("input", new FacesMessage("Invalid type. Phone number could not be added"));
}
@@ -189,18 +172,13 @@
return null;
}
- @PreDestroy
- public void destroy() {
- getEdit().close();
+ protected void stopSqlCapture() {
+ addMessages(getRepository().getDiagnostics().stop());
}
- /**
- * Add each SQL string to the messages TODO: Allow this to be
- * enabled/disabled
- */
private void addMessages(SQLTrace sqlTrace) {
- for (SessionLogEntry entry : sqlTrace.getEntries()) {
- FacesContext.getCurrentInstance().addMessage("SQL", new FacesMessage(entry.getMessage()));
+ for (String entry : sqlTrace.getEntries()) {
+ FacesContext.getCurrentInstance().addMessage("SQL", new FacesMessage(entry));
}
}
diff --git a/jpa/employee/employee.web/src/main/java/eclipselink/example/jpa/employee/web/EmployeeResults.java b/jpa/employee/employee.web/src/main/java/eclipselink/example/jpa/employee/web/EmployeeResults.java
index b614d2b..ccd39c4 100644
--- a/jpa/employee/employee.web/src/main/java/eclipselink/example/jpa/employee/web/EmployeeResults.java
+++ b/jpa/employee/employee.web/src/main/java/eclipselink/example/jpa/employee/web/EmployeeResults.java
@@ -15,18 +15,18 @@
import java.util.List;
import javax.annotation.PostConstruct;
+import javax.ejb.EJB;
+import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;
import javax.faces.context.Flash;
-import javax.persistence.EntityManager;
-import javax.persistence.EntityManagerFactory;
-import javax.persistence.PersistenceUnit;
-import javax.persistence.criteria.CriteriaQuery;
import eclipselink.example.jpa.employee.model.Employee;
+import eclipselink.example.jpa.employee.services.Diagnostics.SQLTrace;
import eclipselink.example.jpa.employee.services.EmployeeCriteria;
-import eclipselink.example.jpa.employee.services.EntityPaging;
+import eclipselink.example.jpa.employee.services.EmployeeRepository;
+import eclipselink.example.jpa.employee.services.paging.EntityPaging;
/**
* Backing bean to manage search results for an Employee query. The results can
@@ -37,10 +37,12 @@
*/
@ManagedBean
@ViewScoped
-public class EmployeeResults extends BaseBean {
+public class EmployeeResults {
protected static final String PAGE = "/employee/results?faces-redirect=true";
+ private EmployeeRepository repository;
+
/**
* Current employees being shown
*/
@@ -50,9 +52,13 @@
private int currentPage = 1;
- @PersistenceUnit(unitName = "employee")
- public void setEmf(EntityManagerFactory emf) {
- super.setEmf(emf);
+ public EmployeeRepository getRepository() {
+ return repository;
+ }
+
+ @EJB
+ public void setRepository(EmployeeRepository repository) {
+ this.repository = repository;
}
public EntityPaging<Employee> getPaging() {
@@ -67,25 +73,19 @@
this.currentPage = 1;
this.employees = null;
- this.paging = criteria.getPaging(getEmf());
+ this.paging = getRepository().getPaging(criteria);
if (!hasPaging()) {
- EntityManager em = createEntityManager();
- try {
- startSqlCapture();
- CriteriaQuery<Employee> cq = criteria.createQuery(getEmf());
- this.employees = em.createQuery(cq).getResultList();
- } finally {
- close(em);
- }
+ getRepository().getDiagnostics().start();
+ this.employees = getRepository().getEmployees(criteria);
}
}
public List<Employee> getEmployees() {
if (this.employees == null && hasPaging()) {
- startSqlCapture();
+ getRepository().getDiagnostics().start();
this.employees = getPaging().get(this.currentPage);
- this.stopSqlCapture();
+ stopSqlCapture();
}
return this.employees;
}
@@ -142,5 +142,20 @@
return EditEmployee.PAGE;
}
+
+ protected void stopSqlCapture() {
+ addMessages(getRepository().getDiagnostics().stop());
+ }
+
+ /**
+ * Add each SQL string to the messages TODO: Allow this to be
+ * enabled/disabled
+ */
+ private void addMessages(SQLTrace sqlTrace) {
+ for (String entry : sqlTrace.getEntries()) {
+ FacesContext.getCurrentInstance().addMessage("SQL", new FacesMessage(entry));
+ }
+ }
+
}
diff --git a/jpa/employee/employee.web/src/main/webapp/WEB-INF/lib/org.eclipse.persistence.jpars-2.4.2-SNAPSHOT.jar b/jpa/employee/employee.web/src/main/webapp/WEB-INF/lib/org.eclipse.persistence.jpars-2.4.2-SNAPSHOT.jar
deleted file mode 100644
index 66a062d..0000000
--- a/jpa/employee/employee.web/src/main/webapp/WEB-INF/lib/org.eclipse.persistence.jpars-2.4.2-SNAPSHOT.jar
+++ /dev/null
Binary files differ
diff --git a/jpa/employee/employee.web/src/main/webapp/admin.xhtml b/jpa/employee/employee.web/src/main/webapp/admin.xhtml
index aff04c9..d4b226a 100644
--- a/jpa/employee/employee.web/src/main/webapp/admin.xhtml
+++ b/jpa/employee/employee.web/src/main/webapp/admin.xhtml
@@ -21,15 +21,15 @@
action="#{admin.populateDatabase}" class="menu-button"
style="width: 400" />
<p />
- <h:commandButton value="#{config.toggleSqlDisplayButton}"
- action="#{config.toggleSqlDisplay}" class="menu-button"
+ <h:commandButton value="#{admin.toggleSqlDisplayButton}"
+ action="#{admin.toggleSqlDisplay}" class="menu-button"
style="width: 400" />
<p />
</div>
</h:form>
<h2>Entity Status</h2>
<h:form>
- <h:dataTable var="type" value="#{config.typeNames}"
+ <h:dataTable var="type" value="#{admin.typeNames}"
class="table-design" width="500">
<h:column>
<f:facet name="header">Type</f:facet>
@@ -40,7 +40,7 @@
<div align="center">Cache Size</div>
</f:facet>
<div align="center">
- <h:outputLabel value="#{config.getCacheSize(type)}" />
+ <h:outputLabel value="#{admin.getCacheSize(type)}" />
</div>
</h:column>
</h:dataTable>
diff --git a/jpa/employee/employee.web/src/test/java/tests/MainTest.java b/jpa/employee/employee.web/src/test/java/tests/MainTest.java
deleted file mode 100644
index cf6540d..0000000
--- a/jpa/employee/employee.web/src/test/java/tests/MainTest.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package tests;
-import org.junit.Test;
-
-public class MainTest {
-
- public MainTest()throws Exception {
- //super("org.eclipse.persistence.jpa.rs.service");
- }
-
- @Test
- public void testHelloWorld() {
- /**
- WebResource webResource = resource();
- String responseMsg = webResource.path("persistence").get(String.class);
- assertEquals("Hello World", responseMsg);
- */
- }
-
-}
\ No newline at end of file
diff --git a/jpa/employee/pom.xml b/jpa/employee/pom.xml
index 1580b6d..557f286 100644
--- a/jpa/employee/pom.xml
+++ b/jpa/employee/pom.xml
@@ -49,15 +49,11 @@
</properties>
<repositories>
- <repository>
- <id>Java.Net</id>
- <url>http://download.java.net/maven/2/</url>
- </repository>
- <repository>
- <id>EclipseLink</id>
- <url>http://download.eclipse.org/rt/eclipselink/maven.repo</url>
- </repository>
- </repositories>
+ <repository>
+ <id>oss.sonatype.org</id>
+ <name>OSS Sonatype Staging</name>
+ <url>https://oss.sonatype.org/content/groups/staging</url>
+ </repository> </repositories>
<modules>
<module>employee.model</module>