Merge branch 'master' of ssh://git.eclipse.org/gitroot/eclipselink/examples
diff --git a/dbws/dbws.simple/.classpath b/dbws/dbws.simple/.classpath
index a687a38..649ae0c 100644
--- a/dbws/dbws.simple/.classpath
+++ b/dbws/dbws.simple/.classpath
@@ -6,7 +6,7 @@
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
- <classpathentry kind="src" output="target/classes" path="src/main/java">
+ <classpathentry including="/Users/djclarke/GIT/eclipselink/examples/dbws/dbws.simple/target/generated-src/java/**/*.java" kind="src" output="target/classes" path="src/main/java">
<attributes>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
diff --git a/dbws/dbws.simple/pom.xml b/dbws/dbws.simple/pom.xml
index 493bba3..02855da 100644
--- a/dbws/dbws.simple/pom.xml
+++ b/dbws/dbws.simple/pom.xml
@@ -112,7 +112,7 @@
<version>1.6.2</version>
<scope>provided</scope>
</dependency>
-
+
<dependency>
<groupId>org.eclipse.persistence</groupId>
<artifactId>javax.servlet</artifactId>
@@ -162,7 +162,7 @@
<argument>-builderFile</argument>
<argument>${project.basedir}/dbws-builder.xml</argument>
<argument>-stageDir</argument>
- <argument>${project.basedir}/src/main/</argument>
+ <argument>${project.basedir}/target/generated-src</argument>
<argument>-packageAs</argument>
<argument>maven</argument>
</arguments>
@@ -171,6 +171,26 @@
</executions>
</plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <configuration>
+ <includes>
+ <include>${project.basedir}/target/generated-src/java/**/*.java</include>
+ </includes>
+ </configuration>
+ </plugin>
</plugins>
+
+ <resources>
+ <resource>
+ <directory>${project.basedir}/target/generated-src/java/</directory>
+ </resource>
+ <resource>
+ <directory>${project.basedir}/target/generated-src/webapp/</directory>
+ </resource>
+ </resources>
+
+
</build>
</project>
diff --git "a/jpa/employee/employee.model/src/JavaSEExampleTest \0501\051.launch" b/jpa/employee/employee.model/src/PessimisticLockTest.launch
similarity index 88%
rename from "jpa/employee/employee.model/src/JavaSEExampleTest \0501\051.launch"
rename to jpa/employee/employee.model/src/PessimisticLockTest.launch
index 386e13c..4231fbb 100644
--- "a/jpa/employee/employee.model/src/JavaSEExampleTest \0501\051.launch"
+++ b/jpa/employee/employee.model/src/PessimisticLockTest.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/test/JavaSEExampleTest.java"/>
+<listEntry value="/employee.model/src/test/java/test/PessimisticLockTest.java"/>
</listAttribute>
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
<listEntry value="1"/>
@@ -11,8 +11,8 @@
<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.JavaSEExampleTest"/>
-<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="Employee Example - model"/>
+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="test.PessimisticLockTest"/>
+<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/Employee.java b/jpa/employee/employee.model/src/main/java/eclipselink/example/jpa/employee/model/Employee.java
index 19c0df7..a641b6f 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
@@ -94,6 +94,7 @@
@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>();
diff --git a/jpa/employee/employee.model/src/test/java/test/PessimisticLockTest.java b/jpa/employee/employee.model/src/test/java/test/PessimisticLockTest.java
new file mode 100644
index 0000000..7bbeeb2
--- /dev/null
+++ b/jpa/employee/employee.model/src/test/java/test/PessimisticLockTest.java
@@ -0,0 +1,101 @@
+/*******************************************************************************
+ * 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 - Employee Demo 2.4
+ ******************************************************************************/
+package test;
+
+import javax.persistence.EntityManager;
+import javax.persistence.EntityManagerFactory;
+import javax.persistence.LockModeType;
+
+import org.junit.AfterClass;
+import org.junit.Assert;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+import eclipselink.example.jpa.employee.model.Address;
+import eclipselink.example.jpa.employee.model.SamplePopulation;
+import eclipselink.example.jpa.employee.services.Diagnostics;
+import example.PersistenceTesting;
+
+/**
+ * Simple test case illustrating pessimistic lock usage.
+ *
+ * @author dclarke
+ * @since EclispeLink 2.4.2
+ */
+public class PessimisticLockTest {
+
+ @Test
+ public void test() {
+ EntityManager em = getEmf().createEntityManager();
+
+ int id = em.createQuery("SELECT a.id FROM Address a", Number.class).getSingleResult().intValue();
+
+ em.getTransaction().begin();
+
+ Address addr = em.find(Address.class, id, LockModeType.PESSIMISTIC_WRITE);
+
+ Assert.assertNotNull(addr);
+ Assert.assertNull(addr.getCity());
+ Assert.assertEquals(em.getLockMode(addr), LockModeType.PESSIMISTIC_WRITE);
+
+ addr.setCity("Ottawa");
+
+ Assert.assertNotNull(addr.getCity());
+
+ em.lock(addr, LockModeType.PESSIMISTIC_WRITE);
+
+ Assert.assertEquals(em.getLockMode(addr), LockModeType.PESSIMISTIC_WRITE);
+ Assert.assertNotNull(addr.getCity());
+
+ em.getTransaction().rollback();
+
+ em.close();
+ }
+
+ private static EntityManagerFactory emf;
+
+ private static Diagnostics diagnostics;
+
+ public static EntityManagerFactory getEmf() {
+ return emf;
+ }
+
+ public static Diagnostics getDiagnostics() {
+ return diagnostics;
+ }
+
+ @BeforeClass
+ public static void createEMF() {
+ emf = PersistenceTesting.createEMF(true);
+ diagnostics = Diagnostics.getInstance(emf);
+
+ EntityManager em = emf.createEntityManager();
+ new SamplePopulation().createNewEmployees(em, 1);
+
+ Number count = em.createNamedQuery("Employee.count", Number.class).getSingleResult();
+ Assert.assertEquals(1, count.intValue());
+
+ em.close();
+
+ emf.getCache().evictAll();
+ }
+
+ @AfterClass
+ public static void closeEMF() {
+ if (emf != null && emf.isOpen()) {
+ emf.close();
+ }
+ emf = null;
+ }
+
+}