diff --git a/jpa/cachecoordination/.classpath b/jpa/cachecoordination/.classpath
new file mode 100755
index 0000000..907a117
--- /dev/null
+++ b/jpa/cachecoordination/.classpath
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/EclipseLink 1.2"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/Oracle JDBC"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/EJB"/>
+	<classpathentry kind="output" path="classes"/>
+</classpath>
diff --git a/jpa/cachecoordination/.project b/jpa/cachecoordination/.project
new file mode 100755
index 0000000..77fbdde
--- /dev/null
+++ b/jpa/cachecoordination/.project
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.persistence.example.jpa.server.cachecoordination</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.wst.common.project.facet.core.builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.wst.validation.validationbuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.wst.common.project.facet.core.nature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
+		<nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
+	</natures>
+</projectDescription>
diff --git a/jpa/cachecoordination/.settings/com.bea.workshop.common.upgrade.log.xml b/jpa/cachecoordination/.settings/com.bea.workshop.common.upgrade.log.xml
new file mode 100755
index 0000000..36b9b74
--- /dev/null
+++ b/jpa/cachecoordination/.settings/com.bea.workshop.common.upgrade.log.xml
@@ -0,0 +1,8 @@
+<upgrade-log>
+  <entry time="2008-12-01 17:06:43 UTC">
+    <upgrade-participant pluginId="com.bea.workshop.common.wtp.core" pluginVersion="2.1.0.20080808135653" class="com.bea.workshop.common.wtp.core.upgrade.internal.WtpComponentFileUpgradeParticipant"/>
+  </entry>
+  <entry time="2009-02-12 07:58:46 UTC">
+    <upgrade-participant pluginId="com.bea.workshop.common.wtp.core" pluginVersion="2.1.0.20080808135653" class="com.bea.workshop.common.wtp.core.upgrade.internal.WtpComponentFileUpgradeParticipant"/>
+  </entry>
+</upgrade-log>
diff --git a/jpa/cachecoordination/.settings/org.eclipse.jdt.core.prefs b/jpa/cachecoordination/.settings/org.eclipse.jdt.core.prefs
new file mode 100755
index 0000000..598ee66
--- /dev/null
+++ b/jpa/cachecoordination/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,65 @@
+#Mon Dec 01 11:47:05 EST 2008
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
+org.eclipse.jdt.core.compiler.problem.deprecation=warning
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
+org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
+org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=ignore
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
+org.eclipse.jdt.core.compiler.problem.nullReference=warning
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=ignore
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=ignore
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.unusedImport=warning
+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
+org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
+org.eclipse.jdt.core.compiler.source=1.5
diff --git a/jpa/cachecoordination/.settings/org.eclipse.jpt.core.prefs b/jpa/cachecoordination/.settings/org.eclipse.jpt.core.prefs
new file mode 100755
index 0000000..7a9ecac
--- /dev/null
+++ b/jpa/cachecoordination/.settings/org.eclipse.jpt.core.prefs
@@ -0,0 +1,4 @@
+#Thu Nov 26 14:30:03 EST 2009
+eclipse.preferences.version=1
+org.eclipse.jpt.core.discoverAnnotatedClasses=false
+org.eclipse.jpt.core.platform=eclipselink1_1
diff --git a/jpa/cachecoordination/.settings/org.eclipse.wst.common.component b/jpa/cachecoordination/.settings/org.eclipse.wst.common.component
new file mode 100755
index 0000000..0ef2f97
--- /dev/null
+++ b/jpa/cachecoordination/.settings/org.eclipse.wst.common.component
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project-modules id="moduleCoreId" project-version="1.5.0">
+    <wb-module deploy-name="org.eclipse.persistence.example.jpa.20.employee.annotations">
+        <wb-resource deploy-path="/" source-path="/src"/>
+    </wb-module>
+</project-modules>
diff --git a/jpa/cachecoordination/.settings/org.eclipse.wst.common.project.facet.core.prefs.xml b/jpa/cachecoordination/.settings/org.eclipse.wst.common.project.facet.core.prefs.xml
new file mode 100755
index 0000000..62ac925
--- /dev/null
+++ b/jpa/cachecoordination/.settings/org.eclipse.wst.common.project.facet.core.prefs.xml
@@ -0,0 +1,7 @@
+<root>
+  <facet id="jpt.jpa">
+    <node name="libprov">
+      <attribute name="provider-id" value="jpa-eclipselink1_1-user-library-provider"/>
+    </node>
+  </facet>
+</root>
diff --git a/jpa/cachecoordination/.settings/org.eclipse.wst.common.project.facet.core.xml b/jpa/cachecoordination/.settings/org.eclipse.wst.common.project.facet.core.xml
new file mode 100755
index 0000000..e4cea7d
--- /dev/null
+++ b/jpa/cachecoordination/.settings/org.eclipse.wst.common.project.facet.core.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<faceted-project>
+  <fixed facet="jpt.jpa"/>
+  <fixed facet="jst.java"/>
+  <fixed facet="jst.utility"/>
+  <installed facet="jst.java" version="5.0"/>
+  <installed facet="jst.utility" version="1.0"/>
+  <installed facet="jpt.jpa" version="1.0"/>
+</faceted-project>
diff --git a/jpa/cachecoordination/build-wls-cluster.xml b/jpa/cachecoordination/build-wls-cluster.xml
new file mode 100755
index 0000000..9109639
--- /dev/null
+++ b/jpa/cachecoordination/build-wls-cluster.xml
@@ -0,0 +1,370 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- This build file configures and runs the example on a WebLogic Cluster. -->
+<project basedir="." default="build" name="org.eclipse.persistence.example.jpa.server.cachecoordination">
+    <property environment="env"/>
+    <property name="JEE_HOME" value="/scratch/wls/12.1.3"/>
+    <property name="WEBLOGIC_HOME" value="${JEE_HOME}/wlserver"/>
+    <property name="JEE_SERVER" value="${WEBLOGIC_HOME}/server"/>
+    <!-- localhost may not work, machine name/ip my be required. -->
+    <property name="JEE_HOST" value="localhost"/>
+    <!-- These ports are also in the Transaction.java and persistence.xml files. -->
+    <property name="JEE_PORT1" value="7021"/>
+    <property name="JEE_PORT2" value="7031"/>
+    <property name="JEE_PORT3" value="7041"/>
+    <property name="JEE_DOMAIN" value="./domain"/>
+    <!-- These also need to be defined in the jndi.properties file. -->
+    <property name="JEE_USER" value="weblogic"/>
+    <property name="JEE_PASSWORD" value="welcome1"/>
+    <!-- These need to be updated with your database settings. -->
+    <property name="DB_DRIVER" value="oracle.jdbc.OracleDriver"/>
+    <property name="DB_URL" value="jdbc:oracle:thin:@localhost:1521:orcl"/>
+    <property name="DB_USER" value="scott"/>
+    <property name="DB_PASSWORD" value="tiger"/>
+    <!-- These will differ depending on the version of WebLogic. -->
+    <property name="JPA_LIB" value="${JEE_HOME}/oracle_common/modules/javax.persistence_2.2.0.0_1-0-2.jar"/>
+    <property name="EJB_LIB" value="${JEE_HOME}/oracle_common/modules/javax.ejb_3.3.0.jar"/>
+    <property name="ECLIPSELINK_LIB" value="${JEE_HOME}/oracle_common/modules/oracle.toplink_12.1.3/eclipselink.jar"/>
+    <property name="debuglevel" value="source,lines,vars"/>
+    <path id="example.classpath">
+        <pathelement location="classes"/>
+        <pathelement location="${JPA_LIB}"/>
+        <pathelement location="${EJB_LIB}"/>
+        <pathelement location="${ECLIPSELINK_LIB}"/>
+        <pathelement location="${JEE_SERVER}/lib/weblogic.jar"/>
+    </path>
+    <target name="init" depends="clean">
+        <mkdir dir="classes"/>
+    </target>
+    <target name="clean">
+        <delete dir="classes"/>
+    </target>
+
+    <target depends="init" name="build">
+        <echo message="${ant.project.name}: ${ant.file}"/>
+        <javac debug="true" debuglevel="${debuglevel}" destdir="classes">
+            <src path="src"/>
+            <exclude name="**/.svn/**"/>
+            <classpath refid="example.classpath"/>
+        </javac>
+        <copy todir="classes/META-INF">
+            <fileset dir="src/META-INF" includes="*"/>
+        </copy>
+        <copy todir="classes/">
+            <fileset dir="./" includes="jndi.properties"/>
+        </copy>
+        <jar jarfile="employee.jar">
+           <fileset dir="classes" includes="**"/>
+        </jar>
+        <ear destfile="employee.ear" appxml="src/META-INF/application.xml">
+            <fileset dir="." includes ="employee.jar"/>
+        </ear>
+    </target>
+
+    <!-- WebLogic ant tasks -->
+    <taskdef name="wlserver" classname="weblogic.ant.taskdefs.management.WLServer">
+        <classpath>
+            <pathelement location="${JEE_SERVER}/lib/weblogic.jar"/>
+        </classpath>
+    </taskdef>
+    <taskdef name="wlconfig" classname="weblogic.ant.taskdefs.management.WLConfig">
+        <classpath>
+            <pathelement location="${JEE_SERVER}/lib/weblogic.jar"/>
+        </classpath>
+    </taskdef>
+    <taskdef name="wldeploy" classname="weblogic.ant.taskdefs.management.WLDeploy">
+        <classpath>
+            <pathelement location="${JEE_SERVER}/lib/weblogic.jar"/>
+        </classpath>
+    </taskdef>
+
+    <!-- This creates the server domain. -->
+    <target name="create-cluster">
+        <delete dir="${JEE_DOMAIN}"/>
+        <mkdir dir="${JEE_DOMAIN}"/>
+        <wlserver fork="true" spawn="true" weblogichome="${WEBLOGIC_HOME}"
+                dir="${JEE_DOMAIN}" host="${JEE_HOST}" servername="admin" generateConfig="true" verbose="true"
+                username="${JEE_USER}" password="${JEE_PASSWORD}" action="start">
+            <classpath>
+                <fileset dir="${JEE_SERVER}/lib" includes="weblogic.jar,weblogic_sp.jar"/>
+                <pathelement location="${env.JAVA_HOME}/lib/tools.jar"/>
+            </classpath>
+            <jvmarg value="-Xms512m"/>
+            <jvmarg value="-Xmx1024m"/>
+            <jvmarg value="-XX:MaxPermSize=128m"/>
+        </wlserver>
+        <wlconfig url="t3://${JEE_HOST}:7001" username="${JEE_USER}" password="${JEE_PASSWORD}">
+            <create type="Cluster" name="employee-cluster"/>
+            <query domain="mydomain" type="Cluster" name="employee-cluster" property="cluster"/>
+            <create type="Server" name="server1">
+                <set attribute="ListenPort" value="${JEE_PORT1}"/>
+                <set attribute="Cluster" value="${cluster}"/>
+            </create>
+            <create type="Server" name="server2">
+                <set attribute="ListenPort" value="${JEE_PORT2}"/>
+                <set attribute="Cluster" value="${cluster}"/>
+            </create>
+            <create type="Server" name="server3">
+                <set attribute="ListenPort" value="${JEE_PORT3}"/>
+                <set attribute="Cluster" value="${cluster}"/>
+            </create>
+        </wlconfig>
+        <wlserver fork="true" failonerror="false" weblogichome="${WEBLOGIC_HOME}"
+            dir="${JEE_DOMAIN}" host="${JEE_HOST}" port="7001" servername="admin"
+            username="${JEE_USER}" password="${JEE_PASSWORD}" action="shutdown">
+        </wlserver>
+    </target>
+    
+    <!--
+        This target is to create connection pool and managed datasource required for running this JPA example.
+        Note: WLS server must be running.
+    -->
+    <target name="setup-cluster">
+        <wlconfig url="t3://${JEE_HOST}:7001" username="${JEE_USER}" password="${JEE_PASSWORD}">
+            <query domain="mydomain" type="JDBCConnectionPool" name="employeePool">
+                <delete/>
+            </query>
+            <query domain="mydomain" type="JDBCTxDataSource" name="EmployeeDS">
+                <delete/>
+            </query>
+            <query domain="mydomain" type="JDBCDataSource" name="EmployeeLocalDS">
+                <delete/>
+            </query>
+            <query domain="mydomain" type="JMSTopic" name="EmployeeTopic">
+                <delete/>
+            </query>
+            <query domain="mydomain" type="JMSConnectionFactory" name="EmployeeTopicConnectionFactory">
+                <delete/>
+            </query>
+            <query domain="mydomain" type="JMSServer" name="EmployeeJMSServer">
+                <delete/>
+            </query>
+            <query domain="mydomain" type="Cluster" name="*" property="cluster"/>
+            <query domain="mydomain" type="Server" name="server1" property="server1"/>
+            <create type="JDBCConnectionPool" name="employeePool">
+                <set attribute="CapacityIncrement" value="2"/>
+                <set attribute="DriverName" value="${DB_DRIVER}"/>
+                <set attribute="InitialCapacity" value="1"/>
+                <set attribute="MaxCapacity" value="50"/>
+                <set attribute="Password" value="${DB_PASSWORD}"/>
+                <set attribute="Properties" value="user=${DB_USER}"/>
+                <set attribute="URL" value="${DB_URL}"/>
+                <set attribute="Targets" value="${cluster}"/>
+            </create>
+            <create type="JDBCTxDataSource" name="EmployeeDS">
+                <set attribute="JNDIName" value="jdbc/EmployeeDS"/>
+                <set attribute="PoolName" value="employeePool"/>
+                <set attribute="Targets" value="${cluster}"/>
+            </create>
+            <create type="JDBCDataSource" name="EmployeeLocalDS">
+                <set attribute="JNDIName" value="jdbc/EmployeeLocalDS"/>
+                <set attribute="PoolName" value="employeePool"/>
+                <set attribute="Targets" value="${cluster}"/>
+            </create>
+
+            <create type="JMSConnectionFactory" name="EmployeeTopicConnectionFactory">
+              <set attribute="JNDIName" value="jms/EmployeeTopicConnectionFactory"/>
+              <set attribute="XAServerEnabled" value="false"/>
+              <set attribute="Targets" value="${cluster}"/>
+           </create>
+           <create type="JMSServer" name="EmployeeJMSServer">
+              <set attribute="Targets" value="${server1}"/>
+               <create type="JMSTopic" name="EmployeeTopic">
+                  <set attribute="JNDIName" value="jms/EmployeeTopic"/>
+               </create>
+           </create>
+
+        </wlconfig>
+    </target>
+
+    <!-- This start the servers. -->
+    <target name="start-cluster">
+        <!--wlserver fork="true" spawn="true" weblogichome="${JEE_SERVER}"
+                dir="${JEE_DOMAIN}" host="${JEE_HOST}" port="${JEE_PORT1}" servername="server1" generateConfig="true" verbose="true"
+                username="${JEE_USER}" password="${JEE_PASSWORD}" action="start">
+            <classpath>
+                <fileset dir="${JEE_SERVER}/lib" includes="weblogic.jar,weblogic_sp.jar"/>
+                <pathelement location="${env.JAVA_HOME}/lib/tools.jar"/>
+            </classpath>
+            <jvmarg value="-Xms512m"/>
+            <jvmarg value="-Xmx960m"/>
+        </wlserver>
+        <sleep seconds="30"/>
+        <wlserver fork="true" spawn="true" weblogichome="${JEE_SERVER}"
+                dir="${JEE_DOMAIN}" host="${JEE_HOST}" port="${JEE_PORT2}" servername="server2" generateConfig="true" verbose="true"
+                username="${JEE_USER}" password="${JEE_PASSWORD}" action="start">
+            <classpath>
+                <fileset dir="${JEE_SERVER}/lib" includes="weblogic.jar,weblogic_sp.jar"/>
+                <pathelement location="${env.JAVA_HOME}/lib/tools.jar"/>
+            </classpath>
+            <jvmarg value="-Xms512m"/>
+            <jvmarg value="-Xmx960m"/>
+        </wlserver>
+        <wlserver fork="true" spawn="true" weblogichome="${JEE_SERVER}"
+                dir="${JEE_DOMAIN}" host="${JEE_HOST}" port="${JEE_PORT3}" servername="server3" generateConfig="true" verbose="true"
+                username="${JEE_USER}" password="${JEE_PASSWORD}" action="start">
+            <classpath>
+                <fileset dir="${JEE_SERVER}/lib" includes="weblogic.jar,weblogic_sp.jar"/>
+                <pathelement location="${env.JAVA_HOME}/lib/tools.jar"/>
+            </classpath>
+            <jvmarg value="-Xms512m"/>
+            <jvmarg value="-Xmx960m"/>
+        </wlserver-->
+        <!-- There is probably a more eligent way to start the cluster, but for now this works -->
+        <!-- Where as using wlserver above did not seem to -->
+        <delete>
+            <fileset dir="./" includes="server*.log,server*.err"/>
+        </delete>
+        <parallel>
+            <echo message="*** starting WebLogic admin server"/>
+            <java classname="weblogic.Server" 
+                fork="true"
+                failonerror="true">
+                <jvmarg value="-server"/>
+                <jvmarg value="-Xms512m"/>
+                <jvmarg value="-Xmx1024m"/>
+                <jvmarg value="-XX:MaxPermSize=128m"/>
+                <env key="PATH" value="${env.JAVA_HOME}/bin:${env.PATH}"/>
+                <sysproperty key="weblogic.Name" value="admin"/>
+                <sysproperty key="bea.home" value="${JEE_HOME}"/>
+                <sysproperty key="weblogic.management.username" value="${JEE_USER}"/>
+                <sysproperty key="weblogic.management.password" value="${JEE_PASSWORD}"/>
+                <sysproperty key="java.security.police" value='"${JEE_SERVER}/lib/weblogic.policy"'/>
+                <sysproperty key="weblogic.RootDirectory" value="${JEE_DOMAIN}"/>
+                <sysproperty key="weblogic.Stdout" value="admin.log"/>
+                <sysproperty key="weblogic.Stderr" value="admin.err"/>
+                <classpath>
+                    <fileset dir="${JEE_SERVER}/lib" includes="weblogic.jar,weblogic_sp.jar"/>
+                    <pathelement location="${env.JAVA_HOME}/lib/tools.jar"/>
+                </classpath>
+            </java>
+            <sequential>
+                <waitfor>
+                    <socket server="${JEE_HOST}" port="7001"/>
+                </waitfor>
+                <parallel>
+                    <echo message="*** starting managed server: server1 "/>
+                    <java classname="weblogic.Server" 
+                        fork="true"
+                        failonerror="true">
+                        <jvmarg value="-server"/>
+                        <jvmarg value="-Xms512m"/>
+                        <jvmarg value="-Xmx1024m"/>
+                        <jvmarg value="-XX:MaxPermSize=128m"/>
+                        <env key="PATH" value="${env.JAVA_HOME}/bin:${env.PATH}"/>
+                        <sysproperty key="weblogic.Name" value="server1"/>
+                        <sysproperty key="bea.home" value="${JEE_HOME}"/>
+                        <sysproperty key="weblogic.management.server" value="${JEE_HOST}:7001"/>
+                        <sysproperty key="weblogic.management.username" value="${JEE_USER}"/>
+                        <sysproperty key="weblogic.management.password" value="${JEE_PASSWORD}"/>
+                        <sysproperty key="java.security.police" value='"${JEE_SERVER}/lib/weblogic.policy"'/>
+                        <sysproperty key="weblogic.RootDirectory" value="${JEE_DOMAIN}"/>
+                        <sysproperty key="weblogic.Stdout" value="server1.log"/>
+                        <sysproperty key="weblogic.Stderr" value="server1.err"/>
+                        <classpath>
+                            <fileset dir="${JEE_SERVER}/lib" includes="weblogic.jar,weblogic_sp.jar"/>
+                            <pathelement location="${env.JAVA_HOME}/lib/tools.jar"/>
+                        </classpath>
+                    </java>
+                    <echo message="*** starting managed server: server2 "/>
+                    <java classname="weblogic.Server" 
+                        fork="true"
+                        failonerror="true">
+                        <jvmarg value="-server"/>
+                        <jvmarg value="-Xms512m"/>
+                        <jvmarg value="-Xmx1024m"/>
+                        <jvmarg value="-XX:MaxPermSize=128m"/>
+                        <env key="PATH" value="${env.JAVA_HOME}/bin:${env.PATH}"/>
+                        <sysproperty key="weblogic.Name" value="server2"/>
+                        <sysproperty key="bea.home" value="${JEE_HOME}"/>
+                        <sysproperty key="weblogic.management.server" value="${JEE_HOST}:7001"/>
+                        <sysproperty key="weblogic.management.username" value="${JEE_USER}"/>
+                        <sysproperty key="weblogic.management.password" value="${JEE_PASSWORD}"/>
+                        <sysproperty key="java.security.police" value='"${JEE_SERVER}/lib/weblogic.policy"'/>
+                        <sysproperty key="weblogic.RootDirectory" value="${JEE_DOMAIN}"/>
+                        <sysproperty key="weblogic.Stdout" value="server2.log"/>
+                        <sysproperty key="weblogic.Stderr" value="server2.err"/>
+                        <classpath>
+                            <fileset dir="${JEE_SERVER}/lib" includes="weblogic.jar,weblogic_sp.jar"/>
+                            <pathelement location="${env.JAVA_HOME}/lib/tools.jar"/>
+                        </classpath>
+                    </java>
+                    <echo message="*** starting managed server: server3 "/>
+                    <java classname="weblogic.Server" 
+                        fork="true"
+                        failonerror="true">
+                        <jvmarg value="-server"/>
+                        <jvmarg value="-Xms512m"/>
+                        <jvmarg value="-Xmx1024m"/>
+                        <jvmarg value="-XX:MaxPermSize=128m"/>
+                        <env key="PATH" value="${env.JAVA_HOME}/bin:${env.PATH}"/>
+                        <sysproperty key="weblogic.Name" value="server3"/>
+                        <sysproperty key="bea.home" value="${JEE_HOME}"/>
+                        <sysproperty key="weblogic.management.server" value="${JEE_HOST}:7001"/>
+                        <sysproperty key="weblogic.management.username" value="${JEE_USER}"/>
+                        <sysproperty key="weblogic.management.password" value="${JEE_PASSWORD}"/>
+                        <sysproperty key="java.security.police" value='"${JEE_SERVER}/lib/weblogic.policy"'/>
+                        <sysproperty key="weblogic.RootDirectory" value="${JEE_DOMAIN}"/>
+                        <sysproperty key="weblogic.Stdout" value="server3.log"/>
+                        <sysproperty key="weblogic.Stderr" value="server3.err"/>
+                        <classpath>
+                            <fileset dir="${JEE_SERVER}/lib" includes="weblogic.jar,weblogic_sp.jar"/>
+                            <pathelement location="${env.JAVA_HOME}/lib/tools.jar"/>
+                        </classpath>
+                    </java>
+                    <sequential>
+                        <waitfor>
+                            <and>
+                                <socket server="${JEE_HOST}" port="${JEE_PORT1}"/>
+                                <socket server="${JEE_HOST}" port="${JEE_PORT2}"/>
+                                <socket server="${JEE_HOST}" port="${JEE_PORT3}"/>
+                            </and>
+                        </waitfor>
+                        <sleep seconds="30"/>
+                        <echo message="*** done, do not close/break prompt "/>
+                    </sequential>
+                </parallel>
+            </sequential>
+        </parallel>
+    </target>
+
+    <!-- Stop the servers. -->
+    <target name="stop-cluster">
+        <wlserver fork="true" failonerror="false" weblogichome="${WEBLOGIC_HOME}"
+            dir="${JEE_DOMAIN}" host="${JEE_HOST}" port="7001" servername="admin"
+            username="${JEE_USER}" password="${JEE_PASSWORD}" action="shutdown">
+        </wlserver>
+        <wlserver fork="true" failonerror="false" weblogichome="${WEBLOGIC_HOME}"
+            dir="${JEE_DOMAIN}" host="${JEE_HOST}" port="${JEE_PORT1}" servername="server1"
+            username="${JEE_USER}" password="${JEE_PASSWORD}" action="shutdown">
+        </wlserver>
+        <wlserver fork="true" failonerror="false" weblogichome="${WEBLOGIC_HOME}"
+            dir="${JEE_DOMAIN}" host="${JEE_HOST}" port="${JEE_PORT2}" servername="server2"
+            username="${JEE_USER}" password="${JEE_PASSWORD}" action="shutdown">
+        </wlserver>
+        <wlserver fork="true" failonerror="false" weblogichome="${WEBLOGIC_HOME}"
+            dir="${JEE_DOMAIN}" host="${JEE_HOST}" port="${JEE_PORT3}" servername="server3"
+            username="${JEE_USER}" password="${JEE_PASSWORD}" action="shutdown">
+        </wlserver>
+    </target>
+
+    <!--
+        Deploy the application ear to the servers.
+        Note: WLS server must be running.
+    -->
+    <target name="deploy">
+        <wldeploy action="deploy"
+            name="employee" source="employee.ear"
+            user="${JEE_USER}" password="${JEE_PASSWORD}"
+            adminurl="t3://${JEE_HOST}:7001"
+            failonerror="false" targets="employee-cluster">
+        </wldeploy>
+    </target>
+
+    <target name="example">
+        <java classname="example.Transactions" fork="true">
+            <!--jvmarg value="${AGENT}"/-->
+            <classpath refid="example.classpath"/>
+        </java>
+    </target>
+</project>
+
diff --git a/jpa/cachecoordination/build-wls-jgroups-cluster.xml b/jpa/cachecoordination/build-wls-jgroups-cluster.xml
new file mode 100755
index 0000000..3b2f2d9
--- /dev/null
+++ b/jpa/cachecoordination/build-wls-jgroups-cluster.xml
@@ -0,0 +1,376 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- This build file configures and runs the example on a WebLogic Cluster using JGroups for cache coordination. -->
+<project basedir="." default="build" name="org.eclipse.persistence.example.jpa.server.cachecoordination">
+    <property environment="env"/>
+    <property name="JEE_HOME" value="/path/to/wls/12.1.3"/>
+    <property name="WEBLOGIC_HOME" value="${JEE_HOME}/wlserver"/>
+    <property name="JEE_SERVER" value="${WEBLOGIC_HOME}/server"/>
+    <!-- localhost may not work, machine name/ip my be required. -->
+    <property name="JEE_HOST" value="localhost"/>
+    <!-- These ports are also in the Transaction.java and persistence.xml files. -->
+    <property name="JEE_PORT1" value="7021"/>
+    <property name="JEE_PORT2" value="7031"/>
+    <property name="JEE_PORT3" value="7041"/>
+    <property name="JEE_DOMAIN" value="./domain"/>
+    <!-- These also need to be defined in the jndi.properties file. -->
+    <property name="JEE_USER" value="weblogic"/>
+    <property name="JEE_PASSWORD" value="welcome1"/>
+    <!-- These need to be updated with your database settings. -->
+    <property name="DB_DRIVER" value="oracle.jdbc.OracleDriver"/>
+    <property name="DB_URL" value="jdbc:oracle:thin:@localhost:1521:orcl"/>
+    <property name="DB_USER" value="scott"/>
+    <property name="DB_PASSWORD" value="tiger"/>
+    <!-- These will differ depending on the version of WebLogic. -->
+    <property name="JPA_LIB" value="${JEE_HOME}/oracle_common/modules/javax.persistence_2.2.0.0_1-0-2.jar"/>
+    <property name="EJB_LIB" value="${JEE_HOME}/oracle_common/modules/javax.ejb_3.3.0.jar"/>
+    <property name="ECLIPSELINK_LIB" value="${JEE_HOME}/oracle_common/modules/oracle.toplink_12.1.3/eclipselink.jar"/>
+    <property name="ECLIPSELINK_EXTENSION_LIB" value="/path/to/org.eclipse.persistence.extension_2.7.0.qualifier.jar"/>
+    <property name="JGROUPS_LIB" value="/path/to/jgroups.jar"/>
+    <property name="debuglevel" value="source,lines,vars"/>
+    <path id="example.classpath">
+        <pathelement location="classes"/>
+        <pathelement location="${JPA_LIB}"/>
+        <pathelement location="${EJB_LIB}"/>
+        <pathelement location="${JGROUPS_LIB}"/>
+        <pathelement location="${ECLIPSELINK_LIB}"/>
+        <pathelement location="${ECLIPSELINK_EXTENSION_LIB}"/>
+        <pathelement location="${JEE_SERVER}/lib/weblogic.jar"/>
+    </path>
+    <target name="init" depends="clean">
+        <mkdir dir="classes"/>
+    </target>
+    <target name="clean">
+        <delete dir="classes"/>
+    </target>
+
+    <target depends="init" name="build">
+        <echo message="${ant.project.name}: ${ant.file}"/>
+        <javac debug="true" debuglevel="${debuglevel}" destdir="classes">
+            <src path="src"/>
+            <exclude name="**/.svn/**"/>
+            <classpath refid="example.classpath"/>
+        </javac>
+        <copy todir="classes/META-INF">
+            <fileset dir="src/META-INF" includes="*"/>
+        </copy>
+        <copy todir="classes/">
+            <fileset dir="./" includes="jndi.properties"/>
+        </copy>
+        <jar jarfile="employee.jar">
+           <fileset dir="classes" includes="**"/>
+        </jar>
+        <ear destfile="employee.ear" appxml="src/META-INF/application.xml">
+            <fileset dir="." includes ="employee.jar"/>
+        </ear>
+    </target>
+
+    <!-- WebLogic ant tasks -->
+    <taskdef name="wlserver" classname="weblogic.ant.taskdefs.management.WLServer">
+        <classpath>
+            <pathelement location="${JEE_SERVER}/lib/weblogic.jar"/>
+        </classpath>
+    </taskdef>
+    <taskdef name="wlconfig" classname="weblogic.ant.taskdefs.management.WLConfig">
+        <classpath>
+            <pathelement location="${JEE_SERVER}/lib/weblogic.jar"/>
+        </classpath>
+    </taskdef>
+    <taskdef name="wldeploy" classname="weblogic.ant.taskdefs.management.WLDeploy">
+        <classpath>
+            <pathelement location="${JEE_SERVER}/lib/weblogic.jar"/>
+        </classpath>
+    </taskdef>
+
+    <!-- This creates the server domain. -->
+    <target name="create-cluster">
+        <delete dir="${JEE_DOMAIN}"/>
+        <mkdir dir="${JEE_DOMAIN}"/>
+        <wlserver fork="true" spawn="true" weblogichome="${WEBLOGIC_HOME}"
+                dir="${JEE_DOMAIN}" host="${JEE_HOST}" servername="admin" generateConfig="true" verbose="true"
+                username="${JEE_USER}" password="${JEE_PASSWORD}" action="start">
+            <classpath>
+                <fileset dir="${JEE_SERVER}/lib" includes="weblogic.jar,weblogic_sp.jar"/>
+                <pathelement location="${env.JAVA_HOME}/lib/tools.jar"/>
+            </classpath>
+            <jvmarg value="-Xms512m"/>
+            <jvmarg value="-Xmx1024m"/>
+            <jvmarg value="-XX:MaxPermSize=128m"/>
+        </wlserver>
+        <wlconfig url="t3://${JEE_HOST}:7001" username="${JEE_USER}" password="${JEE_PASSWORD}">
+            <create type="Cluster" name="employee-cluster"/>
+            <query domain="mydomain" type="Cluster" name="employee-cluster" property="cluster"/>
+            <create type="Server" name="server1">
+                <set attribute="ListenPort" value="${JEE_PORT1}"/>
+                <set attribute="Cluster" value="${cluster}"/>
+            </create>
+            <create type="Server" name="server2">
+                <set attribute="ListenPort" value="${JEE_PORT2}"/>
+                <set attribute="Cluster" value="${cluster}"/>
+            </create>
+            <create type="Server" name="server3">
+                <set attribute="ListenPort" value="${JEE_PORT3}"/>
+                <set attribute="Cluster" value="${cluster}"/>
+            </create>
+        </wlconfig>
+        <wlserver fork="true" failonerror="false" weblogichome="${WEBLOGIC_HOME}"
+            dir="${JEE_DOMAIN}" host="${JEE_HOST}" port="7001" servername="admin"
+            username="${JEE_USER}" password="${JEE_PASSWORD}" action="shutdown">
+        </wlserver>
+        <copy todir="${JEE_DOMAIN}/lib/" file="${JGROUPS_LIB}"/>
+        <copy todir="${JEE_DOMAIN}/lib/" file="${ECLIPSELINK_EXTENSION_LIB}"/>
+    </target>
+    
+    <!--
+        This target is to create connection pool and managed datasource required for running this JPA example.
+        Note: WLS server must be running.
+    -->
+    <target name="setup-cluster">
+        <wlconfig url="t3://${JEE_HOST}:7001" username="${JEE_USER}" password="${JEE_PASSWORD}">
+            <query domain="mydomain" type="JDBCConnectionPool" name="employeePool">
+                <delete/>
+            </query>
+            <query domain="mydomain" type="JDBCTxDataSource" name="EmployeeDS">
+                <delete/>
+            </query>
+            <query domain="mydomain" type="JDBCDataSource" name="EmployeeLocalDS">
+                <delete/>
+            </query>
+            <query domain="mydomain" type="JMSTopic" name="EmployeeTopic">
+                <delete/>
+            </query>
+            <query domain="mydomain" type="JMSConnectionFactory" name="EmployeeTopicConnectionFactory">
+                <delete/>
+            </query>
+            <query domain="mydomain" type="JMSServer" name="EmployeeJMSServer">
+                <delete/>
+            </query>
+            <query domain="mydomain" type="Cluster" name="*" property="cluster"/>
+            <query domain="mydomain" type="Server" name="server1" property="server1"/>
+            <create type="JDBCConnectionPool" name="employeePool">
+                <set attribute="CapacityIncrement" value="2"/>
+                <set attribute="DriverName" value="${DB_DRIVER}"/>
+                <set attribute="InitialCapacity" value="1"/>
+                <set attribute="MaxCapacity" value="50"/>
+                <set attribute="Password" value="${DB_PASSWORD}"/>
+                <set attribute="Properties" value="user=${DB_USER}"/>
+                <set attribute="URL" value="${DB_URL}"/>
+                <set attribute="Targets" value="${cluster}"/>
+            </create>
+            <create type="JDBCTxDataSource" name="EmployeeDS">
+                <set attribute="JNDIName" value="jdbc/EmployeeDS"/>
+                <set attribute="PoolName" value="employeePool"/>
+                <set attribute="Targets" value="${cluster}"/>
+            </create>
+            <create type="JDBCDataSource" name="EmployeeLocalDS">
+                <set attribute="JNDIName" value="jdbc/EmployeeLocalDS"/>
+                <set attribute="PoolName" value="employeePool"/>
+                <set attribute="Targets" value="${cluster}"/>
+            </create>
+
+            <create type="JMSConnectionFactory" name="EmployeeTopicConnectionFactory">
+              <set attribute="JNDIName" value="jms/EmployeeTopicConnectionFactory"/>
+              <set attribute="XAServerEnabled" value="false"/>
+              <set attribute="Targets" value="${cluster}"/>
+           </create>
+           <create type="JMSServer" name="EmployeeJMSServer">
+              <set attribute="Targets" value="${server1}"/>
+               <create type="JMSTopic" name="EmployeeTopic">
+                  <set attribute="JNDIName" value="jms/EmployeeTopic"/>
+               </create>
+           </create>
+
+        </wlconfig>
+    </target>
+
+    <!-- This start the servers. -->
+    <target name="start-cluster">
+        <!--wlserver fork="true" spawn="true" weblogichome="${JEE_SERVER}"
+                dir="${JEE_DOMAIN}" host="${JEE_HOST}" port="${JEE_PORT1}" servername="server1" generateConfig="true" verbose="true"
+                username="${JEE_USER}" password="${JEE_PASSWORD}" action="start">
+            <classpath>
+                <fileset dir="${JEE_SERVER}/lib" includes="weblogic.jar,weblogic_sp.jar"/>
+                <pathelement location="${env.JAVA_HOME}/lib/tools.jar"/>
+            </classpath>
+            <jvmarg value="-Xms512m"/>
+            <jvmarg value="-Xmx960m"/>
+        </wlserver>
+        <sleep seconds="30"/>
+        <wlserver fork="true" spawn="true" weblogichome="${JEE_SERVER}"
+                dir="${JEE_DOMAIN}" host="${JEE_HOST}" port="${JEE_PORT2}" servername="server2" generateConfig="true" verbose="true"
+                username="${JEE_USER}" password="${JEE_PASSWORD}" action="start">
+            <classpath>
+                <fileset dir="${JEE_SERVER}/lib" includes="weblogic.jar,weblogic_sp.jar"/>
+                <pathelement location="${env.JAVA_HOME}/lib/tools.jar"/>
+            </classpath>
+            <jvmarg value="-Xms512m"/>
+            <jvmarg value="-Xmx960m"/>
+        </wlserver>
+        <wlserver fork="true" spawn="true" weblogichome="${JEE_SERVER}"
+                dir="${JEE_DOMAIN}" host="${JEE_HOST}" port="${JEE_PORT3}" servername="server3" generateConfig="true" verbose="true"
+                username="${JEE_USER}" password="${JEE_PASSWORD}" action="start">
+            <classpath>
+                <fileset dir="${JEE_SERVER}/lib" includes="weblogic.jar,weblogic_sp.jar"/>
+                <pathelement location="${env.JAVA_HOME}/lib/tools.jar"/>
+            </classpath>
+            <jvmarg value="-Xms512m"/>
+            <jvmarg value="-Xmx960m"/>
+        </wlserver-->
+        <!-- There is probably a more eligent way to start the cluster, but for now this works -->
+        <!-- Where as using wlserver above did not seem to -->
+        <delete>
+            <fileset dir="./" includes="server*.log,server*.err"/>
+        </delete>
+        <parallel>
+            <echo message="*** starting WebLogic admin server"/>
+            <java classname="weblogic.Server" 
+                fork="true"
+                failonerror="true">
+                <jvmarg value="-server"/>
+                <jvmarg value="-Xms512m"/>
+                <jvmarg value="-Xmx1024m"/>
+                <jvmarg value="-XX:MaxPermSize=128m"/>
+                <env key="PATH" value="${env.JAVA_HOME}/bin:${env.PATH}"/>
+                <sysproperty key="weblogic.Name" value="admin"/>
+                <sysproperty key="bea.home" value="${JEE_HOME}"/>
+                <sysproperty key="weblogic.management.username" value="${JEE_USER}"/>
+                <sysproperty key="weblogic.management.password" value="${JEE_PASSWORD}"/>
+                <sysproperty key="java.security.police" value='"${JEE_SERVER}/lib/weblogic.policy"'/>
+                <sysproperty key="weblogic.RootDirectory" value="${JEE_DOMAIN}"/>
+                <sysproperty key="weblogic.Stdout" value="admin.log"/>
+                <sysproperty key="weblogic.Stderr" value="admin.err"/>
+                <classpath>
+                    <fileset dir="${JEE_SERVER}/lib" includes="weblogic.jar,weblogic_sp.jar"/>
+                    <pathelement location="${env.JAVA_HOME}/lib/tools.jar"/>
+                </classpath>
+            </java>
+            <sequential>
+                <waitfor>
+                    <socket server="${JEE_HOST}" port="7001"/>
+                </waitfor>
+                <parallel>
+                    <echo message="*** starting managed server: server1 "/>
+                    <java classname="weblogic.Server" 
+                        fork="true"
+                        failonerror="true">
+                        <jvmarg value="-server"/>
+                        <jvmarg value="-Xms512m"/>
+                        <jvmarg value="-Xmx1024m"/>
+                        <jvmarg value="-XX:MaxPermSize=128m"/>
+                        <env key="PATH" value="${env.JAVA_HOME}/bin:${env.PATH}"/>
+                        <sysproperty key="weblogic.Name" value="server1"/>
+                        <sysproperty key="bea.home" value="${JEE_HOME}"/>
+                        <sysproperty key="weblogic.management.server" value="${JEE_HOST}:7001"/>
+                        <sysproperty key="weblogic.management.username" value="${JEE_USER}"/>
+                        <sysproperty key="weblogic.management.password" value="${JEE_PASSWORD}"/>
+                        <sysproperty key="java.security.police" value='"${JEE_SERVER}/lib/weblogic.policy"'/>
+                        <sysproperty key="weblogic.RootDirectory" value="${JEE_DOMAIN}"/>
+                        <sysproperty key="weblogic.Stdout" value="server1.log"/>
+                        <sysproperty key="weblogic.Stderr" value="server1.err"/>
+                        <classpath>
+                            <fileset dir="${JEE_SERVER}/lib" includes="weblogic.jar,weblogic_sp.jar"/>
+                            <pathelement location="${env.JAVA_HOME}/lib/tools.jar"/>
+                        </classpath>
+                    </java>
+                    <echo message="*** starting managed server: server2 "/>
+                    <java classname="weblogic.Server" 
+                        fork="true"
+                        failonerror="true">
+                        <jvmarg value="-server"/>
+                        <jvmarg value="-Xms512m"/>
+                        <jvmarg value="-Xmx1024m"/>
+                        <jvmarg value="-XX:MaxPermSize=128m"/>
+                        <env key="PATH" value="${env.JAVA_HOME}/bin:${env.PATH}"/>
+                        <sysproperty key="weblogic.Name" value="server2"/>
+                        <sysproperty key="bea.home" value="${JEE_HOME}"/>
+                        <sysproperty key="weblogic.management.server" value="${JEE_HOST}:7001"/>
+                        <sysproperty key="weblogic.management.username" value="${JEE_USER}"/>
+                        <sysproperty key="weblogic.management.password" value="${JEE_PASSWORD}"/>
+                        <sysproperty key="java.security.police" value='"${JEE_SERVER}/lib/weblogic.policy"'/>
+                        <sysproperty key="weblogic.RootDirectory" value="${JEE_DOMAIN}"/>
+                        <sysproperty key="weblogic.Stdout" value="server2.log"/>
+                        <sysproperty key="weblogic.Stderr" value="server2.err"/>
+                        <classpath>
+                            <fileset dir="${JEE_SERVER}/lib" includes="weblogic.jar,weblogic_sp.jar"/>
+                            <pathelement location="${env.JAVA_HOME}/lib/tools.jar"/>
+                        </classpath>
+                    </java>
+                    <echo message="*** starting managed server: server3 "/>
+                    <java classname="weblogic.Server" 
+                        fork="true"
+                        failonerror="true">
+                        <jvmarg value="-server"/>
+                        <jvmarg value="-Xms512m"/>
+                        <jvmarg value="-Xmx1024m"/>
+                        <jvmarg value="-XX:MaxPermSize=128m"/>
+                        <env key="PATH" value="${env.JAVA_HOME}/bin:${env.PATH}"/>
+                        <sysproperty key="weblogic.Name" value="server3"/>
+                        <sysproperty key="bea.home" value="${JEE_HOME}"/>
+                        <sysproperty key="weblogic.management.server" value="${JEE_HOST}:7001"/>
+                        <sysproperty key="weblogic.management.username" value="${JEE_USER}"/>
+                        <sysproperty key="weblogic.management.password" value="${JEE_PASSWORD}"/>
+                        <sysproperty key="java.security.police" value='"${JEE_SERVER}/lib/weblogic.policy"'/>
+                        <sysproperty key="weblogic.RootDirectory" value="${JEE_DOMAIN}"/>
+                        <sysproperty key="weblogic.Stdout" value="server3.log"/>
+                        <sysproperty key="weblogic.Stderr" value="server3.err"/>
+                        <classpath>
+                            <fileset dir="${JEE_SERVER}/lib" includes="weblogic.jar,weblogic_sp.jar"/>
+                            <pathelement location="${env.JAVA_HOME}/lib/tools.jar"/>
+                        </classpath>
+                    </java>
+                    <sequential>
+                        <waitfor>
+                            <and>
+                                <socket server="${JEE_HOST}" port="${JEE_PORT1}"/>
+                                <socket server="${JEE_HOST}" port="${JEE_PORT2}"/>
+                                <socket server="${JEE_HOST}" port="${JEE_PORT3}"/>
+                            </and>
+                        </waitfor>
+                        <sleep seconds="30"/>
+                        <echo message="*** done, do not close/break prompt "/>
+                    </sequential>
+                </parallel>
+            </sequential>
+        </parallel>
+    </target>
+
+    <!-- Stop the servers. -->
+    <target name="stop-cluster">
+        <wlserver fork="true" failonerror="false" weblogichome="${WEBLOGIC_HOME}"
+            dir="${JEE_DOMAIN}" host="${JEE_HOST}" port="7001" servername="admin"
+            username="${JEE_USER}" password="${JEE_PASSWORD}" action="shutdown">
+        </wlserver>
+        <wlserver fork="true" failonerror="false" weblogichome="${WEBLOGIC_HOME}"
+            dir="${JEE_DOMAIN}" host="${JEE_HOST}" port="${JEE_PORT1}" servername="server1"
+            username="${JEE_USER}" password="${JEE_PASSWORD}" action="shutdown">
+        </wlserver>
+        <wlserver fork="true" failonerror="false" weblogichome="${WEBLOGIC_HOME}"
+            dir="${JEE_DOMAIN}" host="${JEE_HOST}" port="${JEE_PORT2}" servername="server2"
+            username="${JEE_USER}" password="${JEE_PASSWORD}" action="shutdown">
+        </wlserver>
+        <wlserver fork="true" failonerror="false" weblogichome="${WEBLOGIC_HOME}"
+            dir="${JEE_DOMAIN}" host="${JEE_HOST}" port="${JEE_PORT3}" servername="server3"
+            username="${JEE_USER}" password="${JEE_PASSWORD}" action="shutdown">
+        </wlserver>
+    </target>
+
+    <!--
+        Deploy the application ear to the servers.
+        Note: WLS server must be running.
+    -->
+    <target name="deploy">
+        <wldeploy action="deploy"
+            name="employee" source="employee.ear"
+            user="${JEE_USER}" password="${JEE_PASSWORD}"
+            adminurl="t3://${JEE_HOST}:7001"
+            failonerror="false" targets="employee-cluster">
+        </wldeploy>
+    </target>
+
+    <target name="example">
+        <java classname="example.Transactions" fork="true">
+            <!--jvmarg value="${AGENT}"/-->
+            <classpath refid="example.classpath"/>
+        </java>
+    </target>
+</project>
+
diff --git a/jpa/cachecoordination/build-wls-jms-cluster.xml b/jpa/cachecoordination/build-wls-jms-cluster.xml
new file mode 100755
index 0000000..b53c82c
--- /dev/null
+++ b/jpa/cachecoordination/build-wls-jms-cluster.xml
@@ -0,0 +1,387 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- This build file configures and runs the example on a WebLogic Cluster using a clustered JMS topic. -->
+<project basedir="." default="build" name="org.eclipse.persistence.example.jpa.server.cachecoordination">
+    <property environment="env"/>
+    <property name="JEE_HOME" value="/scratch/wls/12.1.3"/>
+    <property name="WEBLOGIC_HOME" value="${JEE_HOME}/wlserver"/>
+    <property name="JEE_SERVER" value="${WEBLOGIC_HOME}/server"/>
+    <!-- localhost may not work, machine name/ip my be required. -->
+    <property name="JEE_HOST" value="localhost"/>
+    <!-- These ports are also in the Transaction.java and persistence.xml files. -->
+    <property name="JEE_PORT1" value="7021"/>
+    <property name="JEE_PORT2" value="7031"/>
+    <property name="JEE_PORT3" value="7041"/>
+    <property name="JEE_DOMAIN" value="./domain"/>
+    <!-- These also need to be defined in the jndi.properties file. -->
+    <property name="JEE_USER" value="weblogic"/>
+    <property name="JEE_PASSWORD" value="welcome1"/>
+    <!-- These need to be updated with your database settings. -->
+    <property name="DB_DRIVER" value="oracle.jdbc.OracleDriver"/>
+    <property name="DB_URL" value="jdbc:oracle:thin:@localhost:1521:orcl"/>
+    <property name="DB_USER" value="scott"/>
+    <property name="DB_PASSWORD" value="tiger"/>
+    <!-- These will differ depending on the version of WebLogic. -->
+    <property name="JPA_LIB" value="${JEE_HOME}/oracle_common/modules/javax.persistence_2.2.0.0_1-0-2.jar"/>
+    <property name="EJB_LIB" value="${JEE_HOME}/oracle_common/modules/javax.ejb_3.3.0.jar"/>
+    <property name="ECLIPSELINK_LIB" value="${JEE_HOME}/oracle_common/modules/oracle.toplink_12.1.3/eclipselink.jar"/>
+    <property name="debuglevel" value="source,lines,vars"/>
+    <path id="example.classpath">
+        <pathelement location="classes"/>
+        <pathelement location="${JPA_LIB}"/>
+        <pathelement location="${EJB_LIB}"/>
+        <pathelement location="${ECLIPSELINK_LIB}"/>
+        <pathelement location="${JEE_SERVER}/lib/weblogic.jar"/>
+    </path>
+    <target name="init" depends="clean">
+        <mkdir dir="classes"/>
+    </target>
+    <target name="clean">
+        <delete dir="classes"/>
+    </target>
+
+    <target depends="init" name="build">
+        <echo message="${ant.project.name}: ${ant.file}"/>
+        <javac debug="true" debuglevel="${debuglevel}" destdir="classes">
+            <src path="src"/>
+            <exclude name="**/.svn/**"/>
+            <classpath refid="example.classpath"/>
+        </javac>
+        <copy todir="classes/META-INF">
+            <fileset dir="src/META-INF" includes="*"/>
+        </copy>
+        <copy todir="classes/">
+            <fileset dir="./" includes="jndi.properties"/>
+        </copy>
+        <jar jarfile="employee.jar">
+           <fileset dir="classes" includes="**"/>
+        </jar>
+        <ear destfile="employee.ear" appxml="src/META-INF/application.xml">
+            <fileset dir="." includes ="employee.jar"/>
+        </ear>
+    </target>
+
+    <!-- WebLogic ant tasks -->
+    <taskdef name="wlserver" classname="weblogic.ant.taskdefs.management.WLServer">
+        <classpath>
+            <pathelement location="${JEE_SERVER}/lib/weblogic.jar"/>
+        </classpath>
+    </taskdef>
+    <taskdef name="wlconfig" classname="weblogic.ant.taskdefs.management.WLConfig">
+        <classpath>
+            <pathelement location="${JEE_SERVER}/lib/weblogic.jar"/>
+        </classpath>
+    </taskdef>
+    <taskdef name="wldeploy" classname="weblogic.ant.taskdefs.management.WLDeploy">
+        <classpath>
+            <pathelement location="${JEE_SERVER}/lib/weblogic.jar"/>
+        </classpath>
+    </taskdef>
+
+    <!-- This creates the server domain. -->
+    <target name="create-cluster">
+        <delete dir="${JEE_DOMAIN}"/>
+        <mkdir dir="${JEE_DOMAIN}"/>
+        <wlserver fork="true" spawn="true" weblogichome="${WEBLOGIC_HOME}"
+                dir="${JEE_DOMAIN}" host="${JEE_HOST}" servername="admin" generateConfig="true" verbose="true"
+                username="${JEE_USER}" password="${JEE_PASSWORD}" action="start">
+            <classpath>
+                <fileset dir="${JEE_SERVER}/lib" includes="weblogic.jar,weblogic_sp.jar"/>
+                <pathelement location="${env.JAVA_HOME}/lib/tools.jar"/>
+            </classpath>
+            <jvmarg value="-Xms512m"/>
+            <jvmarg value="-Xmx1024m"/>
+            <jvmarg value="-XX:MaxPermSize=128m"/>
+        </wlserver>
+        <wlconfig url="t3://${JEE_HOST}:7001" username="${JEE_USER}" password="${JEE_PASSWORD}">
+            <create type="Cluster" name="employee-cluster"/>
+            <query domain="mydomain" type="Cluster" name="employee-cluster" property="cluster"/>
+            <create type="Server" name="server1">
+                <set attribute="ListenPort" value="${JEE_PORT1}"/>
+                <set attribute="Cluster" value="${cluster}"/>
+            </create>
+            <create type="Server" name="server2">
+                <set attribute="ListenPort" value="${JEE_PORT2}"/>
+                <set attribute="Cluster" value="${cluster}"/>
+            </create>
+            <create type="Server" name="server3">
+                <set attribute="ListenPort" value="${JEE_PORT3}"/>
+                <set attribute="Cluster" value="${cluster}"/>
+            </create>
+        </wlconfig>
+        <wlserver fork="true" failonerror="false" weblogichome="${WEBLOGIC_HOME}"
+            dir="${JEE_DOMAIN}" host="${JEE_HOST}" port="${JEE_PORT1}" servername="server1"
+            username="${JEE_USER}" password="${JEE_PASSWORD}" action="shutdown">
+        </wlserver>
+    </target>
+    
+    <!--
+        This target is to create connection pool and managed datasource required for running this JPA example.
+        Note: WLS server must be running.
+    -->
+    <target name="setup-cluster">
+        <wlconfig url="t3://${JEE_HOST}:7001" username="${JEE_USER}" password="${JEE_PASSWORD}">
+            <query domain="mydomain" type="JDBCConnectionPool" name="employeePool">
+                <delete/>
+            </query>
+            <query domain="mydomain" type="JDBCTxDataSource" name="EmployeeDS">
+                <delete/>
+            </query>
+            <query domain="mydomain" type="JDBCDataSource" name="EmployeeLocalDS">
+                <delete/>
+            </query>
+            <query domain="mydomain" type="JMSDistributedTopic" name="EmployeeTopic">
+                <delete/>
+            </query>
+            <query domain="mydomain" type="JMSConnectionFactory" name="EmployeeTopicConnectionFactory">
+                <delete/>
+            </query>
+            <query domain="mydomain" type="JMSServer" name="EmployeeJMSServer1">
+                <delete/>
+            </query>
+            <query domain="mydomain" type="JMSServer" name="EmployeeJMSServer2">
+                <delete/>
+            </query>
+            <query domain="mydomain" type="JMSServer" name="EmployeeJMSServer3">
+                <delete/>
+            </query>
+            <query domain="mydomain" type="Cluster" name="*" property="cluster"/>
+            <query domain="mydomain" type="Server" name="server1" property="server1"/>
+            <query domain="mydomain" type="Server" name="server2" property="server2"/>
+            <query domain="mydomain" type="Server" name="server3" property="server3"/>
+
+            <create type="JDBCConnectionPool" name="employeePool">
+                <set attribute="CapacityIncrement" value="2"/>
+                <set attribute="DriverName" value="${DB_DRIVER}"/>
+                <set attribute="InitialCapacity" value="1"/>
+                <set attribute="MaxCapacity" value="50"/>
+                <set attribute="Password" value="${DB_PASSWORD}"/>
+                <set attribute="Properties" value="user=${DB_USER}"/>
+                <set attribute="URL" value="${DB_URL}"/>
+                <set attribute="Targets" value="${cluster}"/>
+            </create>
+            <create type="JDBCTxDataSource" name="EmployeeDS">
+                <set attribute="JNDIName" value="jdbc/EmployeeDS"/>
+                <set attribute="PoolName" value="employeePool"/>
+                <set attribute="Targets" value="${cluster}"/>
+            </create>
+            <create type="JDBCDataSource" name="EmployeeLocalDS">
+                <set attribute="JNDIName" value="jdbc/EmployeeLocalDS"/>
+                <set attribute="PoolName" value="employeePool"/>
+                <set attribute="Targets" value="${cluster}"/>
+            </create>
+
+            <create type="JMSConnectionFactory" name="EmployeeTopicConnectionFactory">
+                <set attribute="JNDIName" value="jms/EmployeeTopicConnectionFactory"/>
+                <set attribute="XAServerEnabled" value="false"/>
+                <set attribute="Targets" value="${cluster}"/>
+            </create>
+            <create type="JMSServer" name="EmployeeJMSServer1">
+                <set attribute="Targets" value="${server1}"/>
+            </create>
+            <create type="JMSServer" name="EmployeeJMSServer2">
+                <set attribute="Targets" value="${server2}"/>
+            </create>
+            <create type="JMSServer" name="EmployeeJMSServer3">
+                <set attribute="Targets" value="${server3}"/>
+             </create>
+            <create type="JMSDistributedTopic" name="EmployeeTopic">
+                <set attribute="JNDIName" value="jms/EmployeeTopic"/>
+                <set attribute="LoadBalancingPolicy" value="Random"/>
+                <set attribute="Targets" value="${cluster}"/>
+            </create>
+
+        </wlconfig>
+    </target>
+
+    <!-- This start the servers. -->
+    <target name="start-cluster">
+        <!--wlserver fork="true" spawn="true" weblogichome="${JEE_SERVER}"
+                dir="${JEE_DOMAIN}" host="${JEE_HOST}" port="${JEE_PORT1}" servername="server1" generateConfig="true" verbose="true"
+                username="${JEE_USER}" password="${JEE_PASSWORD}" action="start">
+            <classpath>
+                <fileset dir="${JEE_SERVER}/lib" includes="weblogic.jar,weblogic_sp.jar"/>
+                <pathelement location="${env.JAVA_HOME}/lib/tools.jar"/>
+            </classpath>
+            <jvmarg value="-Xms512m"/>
+            <jvmarg value="-Xmx960m"/>
+        </wlserver>
+        <sleep seconds="30"/>
+        <wlserver fork="true" spawn="true" weblogichome="${JEE_SERVER}"
+                dir="${JEE_DOMAIN}" host="${JEE_HOST}" port="${JEE_PORT2}" servername="server2" generateConfig="true" verbose="true"
+                username="${JEE_USER}" password="${JEE_PASSWORD}" action="start">
+            <classpath>
+                <fileset dir="${JEE_SERVER}/lib" includes="weblogic.jar,weblogic_sp.jar"/>
+                <pathelement location="${env.JAVA_HOME}/lib/tools.jar"/>
+            </classpath>
+            <jvmarg value="-Xms512m"/>
+            <jvmarg value="-Xmx960m"/>
+        </wlserver>
+        <wlserver fork="true" spawn="true" weblogichome="${JEE_SERVER}"
+                dir="${JEE_DOMAIN}" host="${JEE_HOST}" port="${JEE_PORT3}" servername="server3" generateConfig="true" verbose="true"
+                username="${JEE_USER}" password="${JEE_PASSWORD}" action="start">
+            <classpath>
+                <fileset dir="${JEE_SERVER}/lib" includes="weblogic.jar,weblogic_sp.jar"/>
+                <pathelement location="${env.JAVA_HOME}/lib/tools.jar"/>
+            </classpath>
+            <jvmarg value="-Xms512m"/>
+            <jvmarg value="-Xmx960m"/>
+        </wlserver-->
+        <!-- There is probably a more eligent way to start the cluster, but for now this works -->
+        <!-- Where as using wlserver above did not seem to -->
+        <delete>
+            <fileset dir="./" includes="server*.log,server*.err"/>
+        </delete>
+        <parallel>
+            <echo message="*** starting WebLogic admin server"/>
+            <java classname="weblogic.Server" 
+                fork="true"
+                failonerror="true">
+                <jvmarg value="-server"/>
+                <jvmarg value="-Xms512m"/>
+                <jvmarg value="-Xmx1024m"/>
+                <jvmarg value="-XX:MaxPermSize=128m"/>
+                <env key="PATH" value="${env.JAVA_HOME}/bin:${env.PATH}"/>
+                <sysproperty key="weblogic.Name" value="admin"/>
+                <sysproperty key="bea.home" value="${JEE_HOME}"/>
+                <sysproperty key="weblogic.management.username" value="${JEE_USER}"/>
+                <sysproperty key="weblogic.management.password" value="${JEE_PASSWORD}"/>
+                <sysproperty key="java.security.police" value='"${JEE_SERVER}/lib/weblogic.policy"'/>
+                <sysproperty key="weblogic.RootDirectory" value="${JEE_DOMAIN}"/>
+                <sysproperty key="weblogic.Stdout" value="admin.log"/>
+                <sysproperty key="weblogic.Stderr" value="admin.err"/>
+                <classpath>
+                    <fileset dir="${JEE_SERVER}/lib" includes="weblogic.jar,weblogic_sp.jar"/>
+                    <pathelement location="${env.JAVA_HOME}/lib/tools.jar"/>
+                </classpath>
+            </java>
+            <sequential>
+                <waitfor>
+                    <socket server="${JEE_HOST}" port="7001"/>
+                </waitfor>
+                <parallel>
+                    <echo message="*** starting managed server: server1 "/>
+                    <java classname="weblogic.Server" 
+                        fork="true"
+                        failonerror="true">
+                        <jvmarg value="-server"/>
+                        <jvmarg value="-Xms512m"/>
+                        <jvmarg value="-Xmx1024m"/>
+                        <jvmarg value="-XX:MaxPermSize=128m"/>
+                        <env key="PATH" value="${env.JAVA_HOME}/bin:${env.PATH}"/>
+                        <sysproperty key="weblogic.Name" value="server1"/>
+                        <sysproperty key="bea.home" value="${JEE_HOME}"/>
+                        <sysproperty key="weblogic.management.server" value="${JEE_HOST}:7001"/>
+                        <sysproperty key="weblogic.management.username" value="${JEE_USER}"/>
+                        <sysproperty key="weblogic.management.password" value="${JEE_PASSWORD}"/>
+                        <sysproperty key="java.security.police" value='"${JEE_SERVER}/lib/weblogic.policy"'/>
+                        <sysproperty key="weblogic.RootDirectory" value="${JEE_DOMAIN}"/>
+                        <sysproperty key="weblogic.Stdout" value="server1.log"/>
+                        <sysproperty key="weblogic.Stderr" value="server1.err"/>
+                        <classpath>
+                            <fileset dir="${JEE_SERVER}/lib" includes="weblogic.jar,weblogic_sp.jar"/>
+                            <pathelement location="${env.JAVA_HOME}/lib/tools.jar"/>
+                        </classpath>
+                    </java>
+                    <echo message="*** starting managed server: server2 "/>
+                    <java classname="weblogic.Server" 
+                        fork="true"
+                        failonerror="true">
+                        <jvmarg value="-server"/>
+                        <jvmarg value="-Xms512m"/>
+                        <jvmarg value="-Xmx1024m"/>
+                        <jvmarg value="-XX:MaxPermSize=128m"/>
+                        <env key="PATH" value="${env.JAVA_HOME}/bin:${env.PATH}"/>
+                        <sysproperty key="weblogic.Name" value="server2"/>
+                        <sysproperty key="bea.home" value="${JEE_HOME}"/>
+                        <sysproperty key="weblogic.management.server" value="${JEE_HOST}:7001"/>
+                        <sysproperty key="weblogic.management.username" value="${JEE_USER}"/>
+                        <sysproperty key="weblogic.management.password" value="${JEE_PASSWORD}"/>
+                        <sysproperty key="java.security.police" value='"${JEE_SERVER}/lib/weblogic.policy"'/>
+                        <sysproperty key="weblogic.RootDirectory" value="${JEE_DOMAIN}"/>
+                        <sysproperty key="weblogic.Stdout" value="server2.log"/>
+                        <sysproperty key="weblogic.Stderr" value="server2.err"/>
+                        <classpath>
+                            <fileset dir="${JEE_SERVER}/lib" includes="weblogic.jar,weblogic_sp.jar"/>
+                            <pathelement location="${env.JAVA_HOME}/lib/tools.jar"/>
+                        </classpath>
+                    </java>
+                    <echo message="*** starting managed server: server3 "/>
+                    <java classname="weblogic.Server" 
+                        fork="true"
+                        failonerror="true">
+                        <jvmarg value="-server"/>
+                        <jvmarg value="-Xms512m"/>
+                        <jvmarg value="-Xmx1024m"/>
+                        <jvmarg value="-XX:MaxPermSize=128m"/>
+                        <env key="PATH" value="${env.JAVA_HOME}/bin:${env.PATH}"/>
+                        <sysproperty key="weblogic.Name" value="server3"/>
+                        <sysproperty key="bea.home" value="${JEE_HOME}"/>
+                        <sysproperty key="weblogic.management.server" value="${JEE_HOST}:7001"/>
+                        <sysproperty key="weblogic.management.username" value="${JEE_USER}"/>
+                        <sysproperty key="weblogic.management.password" value="${JEE_PASSWORD}"/>
+                        <sysproperty key="java.security.police" value='"${JEE_SERVER}/lib/weblogic.policy"'/>
+                        <sysproperty key="weblogic.RootDirectory" value="${JEE_DOMAIN}"/>
+                        <sysproperty key="weblogic.Stdout" value="server3.log"/>
+                        <sysproperty key="weblogic.Stderr" value="server3.err"/>
+                        <classpath>
+                            <fileset dir="${JEE_SERVER}/lib" includes="weblogic.jar,weblogic_sp.jar"/>
+                            <pathelement location="${env.JAVA_HOME}/lib/tools.jar"/>
+                        </classpath>
+                    </java>
+                    <sequential>
+                        <waitfor>
+                            <and>
+                                <socket server="${JEE_HOST}" port="${JEE_PORT1}"/>
+                                <socket server="${JEE_HOST}" port="${JEE_PORT2}"/>
+                                <socket server="${JEE_HOST}" port="${JEE_PORT3}"/>
+                            </and>
+                        </waitfor>
+                        <sleep seconds="30"/>
+                        <echo message="*** done, do not close/break prompt "/>
+                    </sequential>
+                </parallel>
+            </sequential>
+        </parallel>
+    </target>
+
+    <!-- Stop the servers. -->
+    <target name="stop-cluster">
+        <wlserver fork="true" failonerror="false" weblogichome="${WEBLOGIC_HOME}"
+            dir="${JEE_DOMAIN}" host="${JEE_HOST}" port="7001" servername="admin"
+            username="${JEE_USER}" password="${JEE_PASSWORD}" action="shutdown">
+        </wlserver>
+        <wlserver fork="true" failonerror="false" weblogichome="${WEBLOGIC_HOME}"
+            dir="${JEE_DOMAIN}" host="${JEE_HOST}" port="${JEE_PORT1}" servername="server1"
+            username="${JEE_USER}" password="${JEE_PASSWORD}" action="shutdown">
+        </wlserver>
+        <wlserver fork="true" failonerror="false" weblogichome="${WEBLOGIC_HOME}"
+            dir="${JEE_DOMAIN}" host="${JEE_HOST}" port="${JEE_PORT2}" servername="server2"
+            username="${JEE_USER}" password="${JEE_PASSWORD}" action="shutdown">
+        </wlserver>
+        <wlserver fork="true" failonerror="false" weblogichome="${WEBLOGIC_HOME}"
+            dir="${JEE_DOMAIN}" host="${JEE_HOST}" port="${JEE_PORT3}" servername="server3"
+            username="${JEE_USER}" password="${JEE_PASSWORD}" action="shutdown">
+        </wlserver>
+    </target>
+
+    <!--
+        Deploy the application ear to the servers.
+        Note: WLS server must be running.
+    -->
+    <target name="deploy">
+        <wldeploy action="deploy"
+            name="employee" source="employee.ear"
+            user="${JEE_USER}" password="${JEE_PASSWORD}"
+            adminurl="t3://${JEE_HOST}:7001"
+            failonerror="false" targets="employee-cluster">
+        </wldeploy>
+    </target>
+
+    <target name="example">
+        <java classname="example.Transactions" fork="true">
+            <!--jvmarg value="${AGENT}"/-->
+            <classpath refid="example.classpath"/>
+        </java>
+    </target>
+</project>
+
diff --git a/jpa/cachecoordination/build-wls-servers.xml b/jpa/cachecoordination/build-wls-servers.xml
new file mode 100755
index 0000000..af0c1ce
--- /dev/null
+++ b/jpa/cachecoordination/build-wls-servers.xml
@@ -0,0 +1,374 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- This build file configures and runs the example on a WebLogic domain with independent servers (no clustering). -->
+<project basedir="." default="build" name="org.eclipse.persistence.example.jpa.server.cachecoordination">
+    <property environment="env"/>
+    <property name="JEE_HOME" value="/scratch/wls/12.1.3"/>
+    <property name="WEBLOGIC_HOME" value="${JEE_HOME}/wlserver"/>
+    <property name="JEE_SERVER" value="${WEBLOGIC_HOME}/server"/>
+    <!-- localhost may not work, machine name/ip my be required. -->
+    <property name="JEE_HOST" value="localhost"/>
+    <!-- These ports are also in the Transaction.java and persistence.xml files. -->
+    <property name="JEE_PORT1" value="7021"/>
+    <property name="JEE_PORT2" value="7031"/>
+    <property name="JEE_PORT3" value="7041"/>
+    <property name="JEE_DOMAIN" value="./domain"/>
+    <!-- These also need to be defined in the jndi.properties file. -->
+    <property name="JEE_USER" value="weblogic"/>
+    <property name="JEE_PASSWORD" value="welcome1"/>
+    <!-- These need to be updated with your database settings. -->
+    <property name="DB_DRIVER" value="oracle.jdbc.OracleDriver"/>
+    <property name="DB_URL" value="jdbc:oracle:thin:@localhost:1521:orcl"/>
+    <property name="DB_USER" value="scott"/>
+    <property name="DB_PASSWORD" value="tiger"/>
+    <!-- These will differ depending on the version of WebLogic. -->
+    <property name="JPA_LIB" value="${JEE_HOME}/oracle_common/modules/javax.persistence_2.2.0.0_1-0-2.jar"/>
+    <property name="EJB_LIB" value="${JEE_HOME}/oracle_common/modules/javax.ejb_3.3.0.jar"/>
+    <property name="ECLIPSELINK_LIB" value="${JEE_HOME}/oracle_common/modules/oracle.toplink_12.1.3/eclipselink.jar"/>
+    <property name="debuglevel" value="source,lines,vars"/>
+    <path id="example.classpath">
+        <pathelement location="classes"/>
+        <pathelement location="${JPA_LIB}"/>
+        <pathelement location="${EJB_LIB}"/>
+        <pathelement location="${ECLIPSELINK_LIB}"/>
+        <pathelement location="${JEE_SERVER}/lib/weblogic.jar"/>
+    </path>
+    <target name="init" depends="clean">
+        <mkdir dir="classes"/>
+    </target>
+    <target name="clean">
+        <delete dir="classes"/>
+    </target>
+
+    <target depends="init" name="build">
+        <echo message="${ant.project.name}: ${ant.file}"/>
+        <javac debug="true" debuglevel="${debuglevel}" destdir="classes">
+            <src path="src"/>
+            <exclude name="**/.svn/**"/>
+            <classpath refid="example.classpath"/>
+        </javac>
+        <copy todir="classes/META-INF">
+            <fileset dir="src/META-INF" includes="*"/>
+        </copy>
+        <copy todir="classes/">
+            <fileset dir="./" includes="jndi.properties"/>
+        </copy>
+        <jar jarfile="employee.jar">
+           <fileset dir="classes" includes="**"/>
+        </jar>
+        <ear destfile="employee.ear" appxml="src/META-INF/application.xml">
+            <fileset dir="." includes ="employee.jar"/>
+        </ear>
+    </target>
+
+    <!-- WebLogic ant tasks -->
+    <taskdef name="wlserver" classname="weblogic.ant.taskdefs.management.WLServer">
+        <classpath>
+            <pathelement location="${JEE_SERVER}/lib/weblogic.jar"/>
+        </classpath>
+    </taskdef>
+    <taskdef name="wlconfig" classname="weblogic.ant.taskdefs.management.WLConfig">
+        <classpath>
+            <pathelement location="${JEE_SERVER}/lib/weblogic.jar"/>
+        </classpath>
+    </taskdef>
+    <taskdef name="wldeploy" classname="weblogic.ant.taskdefs.management.WLDeploy">
+        <classpath>
+            <pathelement location="${JEE_SERVER}/lib/weblogic.jar"/>
+        </classpath>
+    </taskdef>
+
+    <!-- This creates the server domain. -->
+    <target name="create-cluster">
+        <delete dir="${JEE_DOMAIN}"/>
+        <mkdir dir="${JEE_DOMAIN}"/>
+        <wlserver fork="true" spawn="true" weblogichome="${WEBLOGIC_HOME}"
+                dir="${JEE_DOMAIN}" host="${JEE_HOST}" servername="admin" generateConfig="true" verbose="true"
+                username="${JEE_USER}" password="${JEE_PASSWORD}" action="start">
+            <classpath>
+                <fileset dir="${JEE_SERVER}/lib" includes="weblogic.jar,weblogic_sp.jar"/>
+                <pathelement location="${env.JAVA_HOME}/lib/tools.jar"/>
+            </classpath>
+            <jvmarg value="-Xms512m"/>
+            <jvmarg value="-Xmx1024m"/>
+            <jvmarg value="-XX:MaxPermSize=128m"/>
+        </wlserver>
+        <wlconfig url="t3://${JEE_HOST}:7001" username="${JEE_USER}" password="${JEE_PASSWORD}">
+            <create type="Server" name="server1">
+                <set attribute="ListenPort" value="${JEE_PORT1}"/>
+            </create>
+            <create type="Server" name="server2">
+                <set attribute="ListenPort" value="${JEE_PORT2}"/>
+            </create>
+            <create type="Server" name="server3">
+                <set attribute="ListenPort" value="${JEE_PORT3}"/>
+            </create>
+        </wlconfig>
+        <wlserver fork="true" failonerror="false" weblogichome="${WEBLOGIC_HOME}"
+            dir="${JEE_DOMAIN}" host="${JEE_HOST}" port="7001" servername="admin"
+            username="${JEE_USER}" password="${JEE_PASSWORD}" action="shutdown">
+        </wlserver>
+    </target>
+    
+    <!--
+        This target is to create connection pool and managed datasource required for running this JPA example.
+        Note: WLS server must be running.
+    -->
+    <target name="setup-cluster">
+        <wlconfig url="t3://${JEE_HOST}:7001" username="${JEE_USER}" password="${JEE_PASSWORD}">
+            <query domain="mydomain" type="JDBCConnectionPool" name="employeePool">
+                <delete/>
+            </query>
+            <query domain="mydomain" type="JDBCTxDataSource" name="EmployeeDS">
+                <delete/>
+            </query>
+            <query domain="mydomain" type="JDBCDataSource" name="EmployeeLocalDS">
+                <delete/>
+            </query>
+            <query domain="mydomain" type="JMSTopic" name="EmployeeTopic">
+                <delete/>
+            </query>
+            <query domain="mydomain" type="JMSConnectionFactory" name="EmployeeTopicConnectionFactory">
+                <delete/>
+            </query>
+            <query domain="mydomain" type="JMSServer" name="EmployeeJMSServer">
+                <delete/>
+            </query>
+            <query domain="mydomain" type="Server" name="*" property="cluster"/>
+            <query domain="mydomain" type="Server" name="server1" property="server1"/>
+            <create type="JDBCConnectionPool" name="employeePool">
+                <set attribute="CapacityIncrement" value="2"/>
+                <set attribute="DriverName" value="${DB_DRIVER}"/>
+                <set attribute="InitialCapacity" value="1"/>
+                <set attribute="MaxCapacity" value="50"/>
+                <set attribute="Password" value="${DB_PASSWORD}"/>
+                <set attribute="Properties" value="user=${DB_USER}"/>
+                <set attribute="URL" value="${DB_URL}"/>
+                <set attribute="Targets" value="${cluster}"/>
+            </create>
+            <create type="JDBCTxDataSource" name="EmployeeDS">
+                <set attribute="JNDIName" value="jdbc/EmployeeDS"/>
+                <set attribute="PoolName" value="employeePool"/>
+                <set attribute="Targets" value="${cluster}"/>
+            </create>
+            <create type="JDBCDataSource" name="EmployeeLocalDS">
+                <set attribute="JNDIName" value="jdbc/EmployeeLocalDS"/>
+                <set attribute="PoolName" value="employeePool"/>
+                <set attribute="Targets" value="${cluster}"/>
+            </create>
+
+            <create type="JMSConnectionFactory" name="EmployeeTopicConnectionFactory">
+              <set attribute="JNDIName" value="jms/EmployeeTopicConnectionFactory"/>
+              <set attribute="XAServerEnabled" value="false"/>
+              <set attribute="Targets" value="${cluster}"/>
+           </create>
+           <create type="JMSServer" name="EmployeeJMSServer">
+              <set attribute="Targets" value="${server1}"/>
+               <create type="JMSTopic" name="EmployeeTopic">
+                  <set attribute="JNDIName" value="jms/EmployeeTopic"/>
+               </create>
+           </create>
+
+        </wlconfig>
+    </target>
+
+    <!-- This start the servers. -->
+    <target name="start-cluster">
+        <!--wlserver fork="true" spawn="true" weblogichome="${JEE_SERVER}"
+                dir="${JEE_DOMAIN}" host="${JEE_HOST}" port="${JEE_PORT1}" servername="server1" generateConfig="true" verbose="true"
+                username="${JEE_USER}" password="${JEE_PASSWORD}" action="start">
+            <classpath>
+                <fileset dir="${JEE_SERVER}/lib" includes="weblogic.jar,weblogic_sp.jar"/>
+                <pathelement location="${env.JAVA_HOME}/lib/tools.jar"/>
+            </classpath>
+            <jvmarg value="-Xms512m"/>
+            <jvmarg value="-Xmx960m"/>
+        </wlserver>
+        <sleep seconds="30"/>
+        <wlserver fork="true" spawn="true" weblogichome="${JEE_SERVER}"
+                dir="${JEE_DOMAIN}" host="${JEE_HOST}" port="${JEE_PORT2}" servername="server2" generateConfig="true" verbose="true"
+                username="${JEE_USER}" password="${JEE_PASSWORD}" action="start">
+            <classpath>
+                <fileset dir="${JEE_SERVER}/lib" includes="weblogic.jar,weblogic_sp.jar"/>
+                <pathelement location="${env.JAVA_HOME}/lib/tools.jar"/>
+            </classpath>
+            <jvmarg value="-Xms512m"/>
+            <jvmarg value="-Xmx960m"/>
+        </wlserver>
+        <wlserver fork="true" spawn="true" weblogichome="${JEE_SERVER}"
+                dir="${JEE_DOMAIN}" host="${JEE_HOST}" port="${JEE_PORT3}" servername="server3" generateConfig="true" verbose="true"
+                username="${JEE_USER}" password="${JEE_PASSWORD}" action="start">
+            <classpath>
+                <fileset dir="${JEE_SERVER}/lib" includes="weblogic.jar,weblogic_sp.jar"/>
+                <pathelement location="${env.JAVA_HOME}/lib/tools.jar"/>
+            </classpath>
+            <jvmarg value="-Xms512m"/>
+            <jvmarg value="-Xmx960m"/>
+        </wlserver-->
+        <!-- There is probably a more eligent way to start the cluster, but for now this works -->
+        <!-- Where as using wlserver above did not seem to -->
+        <delete>
+            <fileset dir="./" includes="server*.log,server*.err"/>
+        </delete>
+        <parallel>
+            <echo message="*** starting WebLogic admin server"/>
+            <java classname="weblogic.Server" 
+                fork="true"
+                failonerror="true">
+                <jvmarg value="-server"/>
+                <jvmarg value="-Xms512m"/>
+                <jvmarg value="-Xmx1024m"/>
+                <jvmarg value="-XX:MaxPermSize=128m"/>
+                <env key="PATH" value="${env.JAVA_HOME}/bin:${env.PATH}"/>
+                <sysproperty key="weblogic.Name" value="admin"/>
+                <sysproperty key="bea.home" value="${JEE_HOME}"/>
+                <sysproperty key="weblogic.management.username" value="${JEE_USER}"/>
+                <sysproperty key="weblogic.management.password" value="${JEE_PASSWORD}"/>
+                <sysproperty key="java.security.police" value='"${JEE_SERVER}/lib/weblogic.policy"'/>
+                <sysproperty key="weblogic.RootDirectory" value="${JEE_DOMAIN}"/>
+                <sysproperty key="weblogic.Stdout" value="admin.log"/>
+                <sysproperty key="weblogic.Stderr" value="admin.err"/>
+                <classpath>
+                    <fileset dir="${JEE_SERVER}/lib" includes="weblogic.jar,weblogic_sp.jar"/>
+                    <pathelement location="${env.JAVA_HOME}/lib/tools.jar"/>
+                </classpath>
+            </java>
+            <sequential>
+                <waitfor>
+                    <socket server="${JEE_HOST}" port="7001"/>
+                </waitfor>
+                <parallel>
+                    <echo message="*** starting managed server: server1 "/>
+                    <java classname="weblogic.Server" 
+                        fork="true"
+                        failonerror="true">
+                        <jvmarg value="-server"/>
+                        <jvmarg value="-Xms512m"/>
+                        <jvmarg value="-Xmx1024m"/>
+                        <jvmarg value="-XX:MaxPermSize=128m"/>
+                        <env key="PATH" value="${env.JAVA_HOME}/bin:${env.PATH}"/>
+                        <sysproperty key="weblogic.Name" value="server1"/>
+                        <sysproperty key="bea.home" value="${JEE_HOME}"/>
+                        <sysproperty key="weblogic.management.server" value="${JEE_HOST}:7001"/>
+                        <sysproperty key="weblogic.management.username" value="${JEE_USER}"/>
+                        <sysproperty key="weblogic.management.password" value="${JEE_PASSWORD}"/>
+                        <sysproperty key="java.security.police" value='"${JEE_SERVER}/lib/weblogic.policy"'/>
+                        <sysproperty key="weblogic.RootDirectory" value="${JEE_DOMAIN}"/>
+                        <sysproperty key="weblogic.Stdout" value="server1.log"/>
+                        <sysproperty key="weblogic.Stderr" value="server1.err"/>
+                        <!-- When using RMI outside of a cluster, the host URL must be defined, either as a system property, -->
+                        <!-- in the persistence.xml or in code in a SessionCustomizer -->
+                        <sysproperty key="eclipselink.cache.coordination.rmi.url" value="t3://${JEE_HOST}:${JEE_PORT1}/" />
+                        <classpath>
+                            <fileset dir="${JEE_SERVER}/lib" includes="weblogic.jar,weblogic_sp.jar"/>
+                            <pathelement location="${env.JAVA_HOME}/lib/tools.jar"/>
+                        </classpath>
+                    </java>
+                    <echo message="*** starting managed server: server2 "/>
+                    <java classname="weblogic.Server" 
+                        fork="true"
+                        failonerror="true">
+                        <jvmarg value="-server"/>
+                        <jvmarg value="-Xms512m"/>
+                        <jvmarg value="-Xmx1024m"/>
+                        <jvmarg value="-XX:MaxPermSize=128m"/>
+                        <env key="PATH" value="${env.JAVA_HOME}/bin:${env.PATH}"/>
+                        <sysproperty key="weblogic.Name" value="server2"/>
+                        <sysproperty key="bea.home" value="${JEE_HOME}"/>
+                        <sysproperty key="weblogic.management.server" value="${JEE_HOST}:7001"/>
+                        <sysproperty key="weblogic.management.username" value="${JEE_USER}"/>
+                        <sysproperty key="weblogic.management.password" value="${JEE_PASSWORD}"/>
+                        <sysproperty key="java.security.police" value='"${JEE_SERVER}/lib/weblogic.policy"'/>
+                        <sysproperty key="weblogic.RootDirectory" value="${JEE_DOMAIN}"/>
+                        <sysproperty key="weblogic.Stdout" value="server2.log"/>
+                        <sysproperty key="weblogic.Stderr" value="server2.err"/>
+                        <!-- When using RMI outside of a cluster, the host URL must be defined, either as a system property, -->
+                        <!-- in the persistence.xml or in code in a SessionCustomizer -->
+                        <sysproperty key="eclipselink.cache.coordination.rmi.url" value="t3://${JEE_HOST}:${JEE_PORT2}/" />
+                        <classpath>
+                            <fileset dir="${JEE_SERVER}/lib" includes="weblogic.jar,weblogic_sp.jar"/>
+                            <pathelement location="${env.JAVA_HOME}/lib/tools.jar"/>
+                        </classpath>
+                    </java>
+                    <echo message="*** starting managed server: server3 "/>
+                    <java classname="weblogic.Server" 
+                        fork="true"
+                        failonerror="true">
+                        <jvmarg value="-server"/>
+                        <jvmarg value="-Xms512m"/>
+                        <jvmarg value="-Xmx1024m"/>
+                        <jvmarg value="-XX:MaxPermSize=128m"/>
+                        <env key="PATH" value="${env.JAVA_HOME}/bin:${env.PATH}"/>
+                        <sysproperty key="weblogic.Name" value="server3"/>
+                        <sysproperty key="bea.home" value="${JEE_HOME}"/>
+                        <sysproperty key="weblogic.management.server" value="${JEE_HOST}:7001"/>
+                        <sysproperty key="weblogic.management.username" value="${JEE_USER}"/>
+                        <sysproperty key="weblogic.management.password" value="${JEE_PASSWORD}"/>
+                        <sysproperty key="java.security.police" value='"${JEE_SERVER}/lib/weblogic.policy"'/>
+                        <sysproperty key="weblogic.RootDirectory" value="${JEE_DOMAIN}"/>
+                        <sysproperty key="weblogic.Stdout" value="server3.log"/>
+                        <sysproperty key="weblogic.Stderr" value="server3.err"/>
+                        <!-- When using RMI outside of a cluster, the host URL must be defined, either as a system property, -->
+                        <!-- in the persistence.xml or in code in a SessionCustomizer -->
+                        <sysproperty key="eclipselink.cache.coordination.rmi.url" value="t3://${JEE_HOST}:${JEE_PORT3}/" />
+                        <classpath>
+                            <fileset dir="${JEE_SERVER}/lib" includes="weblogic.jar,weblogic_sp.jar"/>
+                            <pathelement location="${env.JAVA_HOME}/lib/tools.jar"/>
+                        </classpath>
+                    </java>
+                    <sequential>
+                        <waitfor>
+                            <and>
+                                <socket server="${JEE_HOST}" port="${JEE_PORT1}"/>
+                                <socket server="${JEE_HOST}" port="${JEE_PORT2}"/>
+                                <socket server="${JEE_HOST}" port="${JEE_PORT3}"/>
+                            </and>
+                        </waitfor>
+                        <sleep seconds="30"/>
+                        <echo message="*** done, do not close/break prompt "/>
+                    </sequential>
+                </parallel>
+            </sequential>
+        </parallel>
+    </target>
+
+    <!-- Stop the servers. -->
+    <target name="stop-cluster">
+        <wlserver fork="true" failonerror="false" weblogichome="${WEBLOGIC_HOME}"
+            dir="${JEE_DOMAIN}" host="${JEE_HOST}" port="7001" servername="admin"
+            username="${JEE_USER}" password="${JEE_PASSWORD}" action="shutdown">
+        </wlserver>
+        <wlserver fork="true" failonerror="false" weblogichome="${WEBLOGIC_HOME}"
+            dir="${JEE_DOMAIN}" host="${JEE_HOST}" port="${JEE_PORT1}" servername="server1"
+            username="${JEE_USER}" password="${JEE_PASSWORD}" action="shutdown">
+        </wlserver>
+        <wlserver fork="true" failonerror="false" weblogichome="${WEBLOGIC_HOME}"
+            dir="${JEE_DOMAIN}" host="${JEE_HOST}" port="${JEE_PORT2}" servername="server2"
+            username="${JEE_USER}" password="${JEE_PASSWORD}" action="shutdown">
+        </wlserver>
+        <wlserver fork="true" failonerror="false" weblogichome="${WEBLOGIC_HOME}"
+            dir="${JEE_DOMAIN}" host="${JEE_HOST}" port="${JEE_PORT3}" servername="server3"
+            username="${JEE_USER}" password="${JEE_PASSWORD}" action="shutdown">
+        </wlserver>
+    </target>
+
+    <!--
+        Deploy the application ear to the servers.
+        Note: WLS server must be running.
+    -->
+    <target name="deploy">
+        <wldeploy action="deploy"
+            name="employee" source="employee.ear"
+            user="${JEE_USER}" password="${JEE_PASSWORD}"
+            adminurl="t3://${JEE_HOST}:7001"
+            failonerror="false" targets="server1,server2,server3">
+        </wldeploy>
+    </target>
+
+    <target name="example">
+        <java classname="example.Transactions" fork="true">
+            <!--jvmarg value="${AGENT}"/-->
+            <classpath refid="example.classpath"/>
+        </java>
+    </target>
+</project>
+
diff --git a/jpa/cachecoordination/build.xml b/jpa/cachecoordination/build.xml
new file mode 100755
index 0000000..7d28972
--- /dev/null
+++ b/jpa/cachecoordination/build.xml
@@ -0,0 +1,370 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- This build file configures and runs the example on a WebLogic Cluster. -->
+<project basedir="." default="build" name="org.eclipse.persistence.example.jpa.server.cachecoordination">
+    <property environment="env"/>
+    <property name="JEE_HOME" value="/scratch/wls/12.1.3"/>
+    <property name="WEBLOGIC_HOME" value="${JEE_HOME}/wlserver"/>
+    <property name="JEE_SERVER" value="${WEBLOGIC_HOME}/server"/>
+    <!-- localhost may not work, machine name/ip my be required. -->
+    <property name="JEE_HOST" value="localhost"/>
+    <!-- These ports are also in the Transaction.java and persistence.xml files. -->
+    <property name="JEE_PORT1" value="7021"/>
+    <property name="JEE_PORT2" value="7031"/>
+    <property name="JEE_PORT3" value="7041"/>
+    <property name="JEE_DOMAIN" value="./domain"/>
+    <!-- These also need to be defined in the jndi.properties file. -->
+    <property name="JEE_USER" value="weblogic"/>
+    <property name="JEE_PASSWORD" value="welcome1"/>
+    <!-- These need to be updated with your database settings. -->
+    <property name="DB_DRIVER" value="oracle.jdbc.OracleDriver"/>
+    <property name="DB_URL" value="jdbc:oracle:thin:@localhost:1521:orcl"/>
+    <property name="DB_USER" value="scott"/>
+    <property name="DB_PASSWORD" value="tiger"/>
+    <!-- These will differ depending on the version of WebLogic. -->
+    <property name="JPA_LIB" value="${JEE_HOME}/oracle_common/modules/javax.persistence_2.2.0.0_1-0-2.jar"/>
+    <property name="EJB_LIB" value="${JEE_HOME}/oracle_common/modules/javax.ejb_3.3.0.jar"/>
+    <property name="ECLIPSELINK_LIB" value="${JEE_HOME}/oracle_common/modules/oracle.toplink_12.1.3/eclipselink.jar"/>
+    <property name="debuglevel" value="source,lines,vars"/>
+    <path id="example.classpath">
+        <pathelement location="classes"/>
+        <pathelement location="${JPA_LIB}"/>
+        <pathelement location="${EJB_LIB}"/>
+        <pathelement location="${ECLIPSELINK_LIB}"/>
+        <pathelement location="${JEE_SERVER}/lib/weblogic.jar"/>
+    </path>
+    <target name="init" depends="clean">
+        <mkdir dir="classes"/>
+    </target>
+    <target name="clean">
+        <delete dir="classes"/>
+    </target>
+
+    <target depends="init" name="build">
+        <echo message="${ant.project.name}: ${ant.file}"/>
+        <javac debug="true" debuglevel="${debuglevel}" destdir="classes">
+            <src path="src"/>
+            <exclude name="**/.svn/**"/>
+            <classpath refid="example.classpath"/>
+        </javac>
+        <copy todir="classes/META-INF">
+            <fileset dir="src/META-INF" includes="*"/>
+        </copy>
+        <copy todir="classes/">
+            <fileset dir="./" includes="jndi.properties"/>
+        </copy>
+        <jar jarfile="employee.jar">
+            <fileset dir="classes" includes="**"/>
+        </jar>
+        <ear destfile="employee.ear" appxml="src/META-INF/application.xml">
+            <fileset dir="." includes ="employee.jar"/>
+        </ear>
+    </target>
+
+    <!-- WebLogic ant tasks -->
+    <taskdef name="wlserver" classname="weblogic.ant.taskdefs.management.WLServer">
+        <classpath>
+            <pathelement location="${JEE_SERVER}/lib/weblogic.jar"/>
+        </classpath>
+    </taskdef>
+    <taskdef name="wlconfig" classname="weblogic.ant.taskdefs.management.WLConfig">
+        <classpath>
+            <pathelement location="${JEE_SERVER}/lib/weblogic.jar"/>
+        </classpath>
+    </taskdef>
+    <taskdef name="wldeploy" classname="weblogic.ant.taskdefs.management.WLDeploy">
+        <classpath>
+            <pathelement location="${JEE_SERVER}/lib/weblogic.jar"/>
+        </classpath>
+    </taskdef>
+
+    <!-- This creates the server domain. -->
+    <target name="create-cluster">
+        <delete dir="${JEE_DOMAIN}"/>
+        <mkdir dir="${JEE_DOMAIN}"/>
+        <wlserver fork="true" spawn="true" weblogichome="${WEBLOGIC_HOME}"
+                  dir="${JEE_DOMAIN}" host="${JEE_HOST}" servername="admin" generateConfig="true" verbose="true"
+                  username="${JEE_USER}" password="${JEE_PASSWORD}" action="start">
+            <classpath>
+                <fileset dir="${JEE_SERVER}/lib" includes="weblogic.jar,weblogic_sp.jar"/>
+                <pathelement location="${env.JAVA_HOME}/lib/tools.jar"/>
+            </classpath>
+            <jvmarg value="-Xms512m"/>
+            <jvmarg value="-Xmx1024m"/>
+            <jvmarg value="-XX:MaxPermSize=128m"/>
+        </wlserver>
+        <wlconfig url="t3://${JEE_HOST}:7001" username="${JEE_USER}" password="${JEE_PASSWORD}">
+            <create type="Cluster" name="employee-cluster"/>
+            <query domain="mydomain" type="Cluster" name="employee-cluster" property="cluster"/>
+            <create type="Server" name="server1">
+                <set attribute="ListenPort" value="${JEE_PORT1}"/>
+                <set attribute="Cluster" value="${cluster}"/>
+            </create>
+            <create type="Server" name="server2">
+                <set attribute="ListenPort" value="${JEE_PORT2}"/>
+                <set attribute="Cluster" value="${cluster}"/>
+            </create>
+            <create type="Server" name="server3">
+                <set attribute="ListenPort" value="${JEE_PORT3}"/>
+                <set attribute="Cluster" value="${cluster}"/>
+            </create>
+        </wlconfig>
+        <wlserver fork="true" failonerror="false" weblogichome="${WEBLOGIC_HOME}"
+                  dir="${JEE_DOMAIN}" host="${JEE_HOST}" port="7001" servername="admin"
+                  username="${JEE_USER}" password="${JEE_PASSWORD}" action="shutdown">
+        </wlserver>
+    </target>
+
+    <!--
+        This target is to create connection pool and managed datasource required for running this JPA example.
+        Note: WLS server must be running.
+    -->
+    <target name="setup-cluster">
+        <wlconfig url="t3://${JEE_HOST}:7001" username="${JEE_USER}" password="${JEE_PASSWORD}">
+            <query domain="mydomain" type="JDBCConnectionPool" name="employeePool">
+                <delete/>
+            </query>
+            <query domain="mydomain" type="JDBCTxDataSource" name="EmployeeDS">
+                <delete/>
+            </query>
+            <query domain="mydomain" type="JDBCDataSource" name="EmployeeLocalDS">
+                <delete/>
+            </query>
+            <query domain="mydomain" type="JMSTopic" name="EmployeeTopic">
+                <delete/>
+            </query>
+            <query domain="mydomain" type="JMSConnectionFactory" name="EmployeeTopicConnectionFactory">
+                <delete/>
+            </query>
+            <query domain="mydomain" type="JMSServer" name="EmployeeJMSServer">
+                <delete/>
+            </query>
+            <query domain="mydomain" type="Cluster" name="*" property="cluster"/>
+            <query domain="mydomain" type="Server" name="server1" property="server1"/>
+            <create type="JDBCConnectionPool" name="employeePool">
+                <set attribute="CapacityIncrement" value="2"/>
+                <set attribute="DriverName" value="${DB_DRIVER}"/>
+                <set attribute="InitialCapacity" value="1"/>
+                <set attribute="MaxCapacity" value="50"/>
+                <set attribute="Password" value="${DB_PASSWORD}"/>
+                <set attribute="Properties" value="user=${DB_USER}"/>
+                <set attribute="URL" value="${DB_URL}"/>
+                <set attribute="Targets" value="${cluster}"/>
+            </create>
+            <create type="JDBCTxDataSource" name="EmployeeDS">
+                <set attribute="JNDIName" value="jdbc/EmployeeDS"/>
+                <set attribute="PoolName" value="employeePool"/>
+                <set attribute="Targets" value="${cluster}"/>
+            </create>
+            <create type="JDBCDataSource" name="EmployeeLocalDS">
+                <set attribute="JNDIName" value="jdbc/EmployeeLocalDS"/>
+                <set attribute="PoolName" value="employeePool"/>
+                <set attribute="Targets" value="${cluster}"/>
+            </create>
+
+            <create type="JMSConnectionFactory" name="EmployeeTopicConnectionFactory">
+                <set attribute="JNDIName" value="jms/EmployeeTopicConnectionFactory"/>
+                <set attribute="XAServerEnabled" value="false"/>
+                <set attribute="Targets" value="${cluster}"/>
+            </create>
+            <create type="JMSServer" name="EmployeeJMSServer">
+                <set attribute="Targets" value="${server1}"/>
+                <create type="JMSTopic" name="EmployeeTopic">
+                    <set attribute="JNDIName" value="jms/EmployeeTopic"/>
+                </create>
+            </create>
+
+        </wlconfig>
+    </target>
+
+    <!-- This start the servers. -->
+    <target name="start-cluster">
+        <!--wlserver fork="true" spawn="true" weblogichome="${JEE_SERVER}"
+                dir="${JEE_DOMAIN}" host="${JEE_HOST}" port="${JEE_PORT1}" servername="server1" generateConfig="true" verbose="true"
+                username="${JEE_USER}" password="${JEE_PASSWORD}" action="start">
+            <classpath>
+                <fileset dir="${JEE_SERVER}/lib" includes="weblogic.jar,weblogic_sp.jar"/>
+                <pathelement location="${env.JAVA_HOME}/lib/tools.jar"/>
+            </classpath>
+            <jvmarg value="-Xms512m"/>
+            <jvmarg value="-Xmx960m"/>
+        </wlserver>
+        <sleep seconds="30"/>
+        <wlserver fork="true" spawn="true" weblogichome="${JEE_SERVER}"
+                dir="${JEE_DOMAIN}" host="${JEE_HOST}" port="${JEE_PORT2}" servername="server2" generateConfig="true" verbose="true"
+                username="${JEE_USER}" password="${JEE_PASSWORD}" action="start">
+            <classpath>
+                <fileset dir="${JEE_SERVER}/lib" includes="weblogic.jar,weblogic_sp.jar"/>
+                <pathelement location="${env.JAVA_HOME}/lib/tools.jar"/>
+            </classpath>
+            <jvmarg value="-Xms512m"/>
+            <jvmarg value="-Xmx960m"/>
+        </wlserver>
+        <wlserver fork="true" spawn="true" weblogichome="${JEE_SERVER}"
+                dir="${JEE_DOMAIN}" host="${JEE_HOST}" port="${JEE_PORT3}" servername="server3" generateConfig="true" verbose="true"
+                username="${JEE_USER}" password="${JEE_PASSWORD}" action="start">
+            <classpath>
+                <fileset dir="${JEE_SERVER}/lib" includes="weblogic.jar,weblogic_sp.jar"/>
+                <pathelement location="${env.JAVA_HOME}/lib/tools.jar"/>
+            </classpath>
+            <jvmarg value="-Xms512m"/>
+            <jvmarg value="-Xmx960m"/>
+        </wlserver-->
+        <!-- There is probably a more eligent way to start the cluster, but for now this works -->
+        <!-- Where as using wlserver above did not seem to -->
+        <delete>
+            <fileset dir="./" includes="server*.log,server*.err"/>
+        </delete>
+        <parallel>
+            <echo message="*** starting WebLogic admin server"/>
+            <java classname="weblogic.Server"
+                  fork="true"
+                  failonerror="true">
+                <jvmarg value="-server"/>
+                <jvmarg value="-Xms512m"/>
+                <jvmarg value="-Xmx1024m"/>
+                <jvmarg value="-XX:MaxPermSize=128m"/>
+                <env key="PATH" value="${env.JAVA_HOME}/bin:${env.PATH}"/>
+                <sysproperty key="weblogic.Name" value="admin"/>
+                <sysproperty key="bea.home" value="${JEE_HOME}"/>
+                <sysproperty key="weblogic.management.username" value="${JEE_USER}"/>
+                <sysproperty key="weblogic.management.password" value="${JEE_PASSWORD}"/>
+                <sysproperty key="java.security.police" value='"${JEE_SERVER}/lib/weblogic.policy"'/>
+                <sysproperty key="weblogic.RootDirectory" value="${JEE_DOMAIN}"/>
+                <sysproperty key="weblogic.Stdout" value="admin.log"/>
+                <sysproperty key="weblogic.Stderr" value="admin.err"/>
+                <classpath>
+                    <fileset dir="${JEE_SERVER}/lib" includes="weblogic.jar,weblogic_sp.jar"/>
+                    <pathelement location="${env.JAVA_HOME}/lib/tools.jar"/>
+                </classpath>
+            </java>
+            <sequential>
+                <waitfor>
+                    <socket server="${JEE_HOST}" port="7001"/>
+                </waitfor>
+                <parallel>
+                    <echo message="*** starting managed server: server1 "/>
+                    <java classname="weblogic.Server"
+                          fork="true"
+                          failonerror="true">
+                        <jvmarg value="-server"/>
+                        <jvmarg value="-Xms512m"/>
+                        <jvmarg value="-Xmx1024m"/>
+                        <jvmarg value="-XX:MaxPermSize=128m"/>
+                        <env key="PATH" value="${env.JAVA_HOME}/bin:${env.PATH}"/>
+                        <sysproperty key="weblogic.Name" value="server1"/>
+                        <sysproperty key="bea.home" value="${JEE_HOME}"/>
+                        <sysproperty key="weblogic.management.server" value="${JEE_HOST}:7001"/>
+                        <sysproperty key="weblogic.management.username" value="${JEE_USER}"/>
+                        <sysproperty key="weblogic.management.password" value="${JEE_PASSWORD}"/>
+                        <sysproperty key="java.security.police" value='"${JEE_SERVER}/lib/weblogic.policy"'/>
+                        <sysproperty key="weblogic.RootDirectory" value="${JEE_DOMAIN}"/>
+                        <sysproperty key="weblogic.Stdout" value="server1.log"/>
+                        <sysproperty key="weblogic.Stderr" value="server1.err"/>
+                        <classpath>
+                            <fileset dir="${JEE_SERVER}/lib" includes="weblogic.jar,weblogic_sp.jar"/>
+                            <pathelement location="${env.JAVA_HOME}/lib/tools.jar"/>
+                        </classpath>
+                    </java>
+                    <echo message="*** starting managed server: server2 "/>
+                    <java classname="weblogic.Server"
+                          fork="true"
+                          failonerror="true">
+                        <jvmarg value="-server"/>
+                        <jvmarg value="-Xms512m"/>
+                        <jvmarg value="-Xmx1024m"/>
+                        <jvmarg value="-XX:MaxPermSize=128m"/>
+                        <env key="PATH" value="${env.JAVA_HOME}/bin:${env.PATH}"/>
+                        <sysproperty key="weblogic.Name" value="server2"/>
+                        <sysproperty key="bea.home" value="${JEE_HOME}"/>
+                        <sysproperty key="weblogic.management.server" value="${JEE_HOST}:7001"/>
+                        <sysproperty key="weblogic.management.username" value="${JEE_USER}"/>
+                        <sysproperty key="weblogic.management.password" value="${JEE_PASSWORD}"/>
+                        <sysproperty key="java.security.police" value='"${JEE_SERVER}/lib/weblogic.policy"'/>
+                        <sysproperty key="weblogic.RootDirectory" value="${JEE_DOMAIN}"/>
+                        <sysproperty key="weblogic.Stdout" value="server2.log"/>
+                        <sysproperty key="weblogic.Stderr" value="server2.err"/>
+                        <classpath>
+                            <fileset dir="${JEE_SERVER}/lib" includes="weblogic.jar,weblogic_sp.jar"/>
+                            <pathelement location="${env.JAVA_HOME}/lib/tools.jar"/>
+                        </classpath>
+                    </java>
+                    <echo message="*** starting managed server: server3 "/>
+                    <java classname="weblogic.Server"
+                          fork="true"
+                          failonerror="true">
+                        <jvmarg value="-server"/>
+                        <jvmarg value="-Xms512m"/>
+                        <jvmarg value="-Xmx1024m"/>
+                        <jvmarg value="-XX:MaxPermSize=128m"/>
+                        <env key="PATH" value="${env.JAVA_HOME}/bin:${env.PATH}"/>
+                        <sysproperty key="weblogic.Name" value="server3"/>
+                        <sysproperty key="bea.home" value="${JEE_HOME}"/>
+                        <sysproperty key="weblogic.management.server" value="${JEE_HOST}:7001"/>
+                        <sysproperty key="weblogic.management.username" value="${JEE_USER}"/>
+                        <sysproperty key="weblogic.management.password" value="${JEE_PASSWORD}"/>
+                        <sysproperty key="java.security.police" value='"${JEE_SERVER}/lib/weblogic.policy"'/>
+                        <sysproperty key="weblogic.RootDirectory" value="${JEE_DOMAIN}"/>
+                        <sysproperty key="weblogic.Stdout" value="server3.log"/>
+                        <sysproperty key="weblogic.Stderr" value="server3.err"/>
+                        <classpath>
+                            <fileset dir="${JEE_SERVER}/lib" includes="weblogic.jar,weblogic_sp.jar"/>
+                            <pathelement location="${env.JAVA_HOME}/lib/tools.jar"/>
+                        </classpath>
+                    </java>
+                    <sequential>
+                        <waitfor>
+                            <and>
+                                <socket server="${JEE_HOST}" port="${JEE_PORT1}"/>
+                                <socket server="${JEE_HOST}" port="${JEE_PORT2}"/>
+                                <socket server="${JEE_HOST}" port="${JEE_PORT3}"/>
+                            </and>
+                        </waitfor>
+                        <sleep seconds="30"/>
+                        <echo message="*** done, do not close/break prompt "/>
+                    </sequential>
+                </parallel>
+            </sequential>
+        </parallel>
+    </target>
+
+    <!-- Stop the servers. -->
+    <target name="stop-cluster">
+        <wlserver fork="true" failonerror="false" weblogichome="${WEBLOGIC_HOME}"
+                  dir="${JEE_DOMAIN}" host="${JEE_HOST}" port="7001" servername="admin"
+                  username="${JEE_USER}" password="${JEE_PASSWORD}" action="shutdown">
+        </wlserver>
+        <wlserver fork="true" failonerror="false" weblogichome="${WEBLOGIC_HOME}"
+                  dir="${JEE_DOMAIN}" host="${JEE_HOST}" port="${JEE_PORT1}" servername="server1"
+                  username="${JEE_USER}" password="${JEE_PASSWORD}" action="shutdown">
+        </wlserver>
+        <wlserver fork="true" failonerror="false" weblogichome="${WEBLOGIC_HOME}"
+                  dir="${JEE_DOMAIN}" host="${JEE_HOST}" port="${JEE_PORT2}" servername="server2"
+                  username="${JEE_USER}" password="${JEE_PASSWORD}" action="shutdown">
+        </wlserver>
+        <wlserver fork="true" failonerror="false" weblogichome="${WEBLOGIC_HOME}"
+                  dir="${JEE_DOMAIN}" host="${JEE_HOST}" port="${JEE_PORT3}" servername="server3"
+                  username="${JEE_USER}" password="${JEE_PASSWORD}" action="shutdown">
+        </wlserver>
+    </target>
+
+    <!--
+        Deploy the application ear to the servers.
+        Note: WLS server must be running.
+    -->
+    <target name="deploy">
+        <wldeploy action="deploy"
+                  name="employee" source="employee.ear"
+                  user="${JEE_USER}" password="${JEE_PASSWORD}"
+                  adminurl="t3://${JEE_HOST}:7001"
+                  failonerror="false" targets="employee-cluster">
+        </wldeploy>
+    </target>
+
+    <target name="example">
+        <java classname="example.Transactions" fork="true">
+            <!--jvmarg value="${AGENT}"/-->
+            <classpath refid="example.classpath"/>
+        </java>
+    </target>
+</project>
+
diff --git a/jpa/cachecoordination/jndi.properties b/jpa/cachecoordination/jndi.properties
new file mode 100755
index 0000000..a182a38
--- /dev/null
+++ b/jpa/cachecoordination/jndi.properties
@@ -0,0 +1,7 @@
+java.naming.factory.initial=weblogic.jndi.WLInitialContextFactory
+java.naming.security.principal=weblogic
+java.naming.security.credentials=welcome1
+java.naming.security.authentication=none
+
+
+
diff --git a/jpa/cachecoordination/src/META-INF/application.xml b/jpa/cachecoordination/src/META-INF/application.xml
new file mode 100755
index 0000000..31e27b1
--- /dev/null
+++ b/jpa/cachecoordination/src/META-INF/application.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<application xmlns="http://java.sun.com/xml/ns/javaee"
+          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+          xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
+        http://java.sun.com/xml/ns/javaee/application_5.xsd"
+          version="5">
+    <description>employee</description>
+    <display-name>employee</display-name>
+    <module>
+        <ejb>employee.jar</ejb>
+    </module>
+</application>
diff --git a/jpa/cachecoordination/src/META-INF/jgroups-udp-config.xml b/jpa/cachecoordination/src/META-INF/jgroups-udp-config.xml
new file mode 100755
index 0000000..b15be2f
--- /dev/null
+++ b/jpa/cachecoordination/src/META-INF/jgroups-udp-config.xml
@@ -0,0 +1,78 @@
+
+<!--
+  Default stack using IP multicasting. It is similar to the "udp"
+  stack in stacks.xml, but doesn't use streaming state transfer and flushing
+  author: Bela Ban
+-->
+
+<config xmlns="urn:org:jgroups"
+        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+        xsi:schemaLocation="urn:org:jgroups http://www.jgroups.org/schema/jgroups.xsd">
+    <UDP
+         mcast_port="${jgroups.udp.mcast_port:45588}"
+         ip_ttl="0"
+         tos="8"
+         ucast_recv_buf_size="5M"
+         ucast_send_buf_size="5M"
+         mcast_recv_buf_size="5M"
+         mcast_send_buf_size="5M"
+         max_bundle_size="64K"
+         max_bundle_timeout="30"
+         enable_diagnostics="true"
+         thread_naming_pattern="cl"
+
+         timer_type="new3"
+         timer.min_threads="2"
+         timer.max_threads="4"
+         timer.keep_alive_time="3000"
+         timer.queue_max_size="500"
+
+         thread_pool.enabled="true"
+         thread_pool.min_threads="2"
+         thread_pool.max_threads="8"
+         thread_pool.keep_alive_time="5000"
+         thread_pool.queue_enabled="true"
+         thread_pool.queue_max_size="10000"
+         thread_pool.rejection_policy="discard"
+
+         oob_thread_pool.enabled="true"
+         oob_thread_pool.min_threads="1"
+         oob_thread_pool.max_threads="8"
+         oob_thread_pool.keep_alive_time="5000"
+         oob_thread_pool.queue_enabled="false"
+         oob_thread_pool.queue_max_size="100"
+         oob_thread_pool.rejection_policy="discard"/>
+
+    <PING />
+    <MERGE3 max_interval="30000"
+            min_interval="10000"/>
+    <FD_SOCK/>
+    <FD_ALL/>
+    <VERIFY_SUSPECT timeout="1500"  />
+    <BARRIER />
+    <pbcast.NAKACK2 xmit_interval="500"
+                    xmit_table_num_rows="100"
+                    xmit_table_msgs_per_row="2000"
+                    xmit_table_max_compaction_time="30000"
+                    max_msg_batch_size="500"
+                    use_mcast_xmit="false"
+                    discard_delivered_msgs="true"/>
+    <UNICAST3 xmit_interval="500"
+              xmit_table_num_rows="100"
+              xmit_table_msgs_per_row="2000"
+              xmit_table_max_compaction_time="60000"
+              conn_expiry_timeout="0"
+              max_msg_batch_size="500"/>
+    <pbcast.STABLE stability_delay="1000" desired_avg_gossip="50000"
+                   max_bytes="4M"/>
+    <pbcast.GMS print_local_addr="true" join_timeout="2000"
+                view_bundling="true"/>
+    <UFC max_credits="2M"
+         min_threshold="0.4"/>
+    <MFC max_credits="2M"
+         min_threshold="0.4"/>
+    <FRAG2 frag_size="60K"  />
+    <RSVP resend_interval="2000" timeout="10000"/>
+    <pbcast.STATE_TRANSFER />
+    <!-- pbcast.FLUSH  /-->
+</config>
diff --git a/jpa/cachecoordination/src/META-INF/orm.xml b/jpa/cachecoordination/src/META-INF/orm.xml
new file mode 100755
index 0000000..71d5f0f
--- /dev/null
+++ b/jpa/cachecoordination/src/META-INF/orm.xml
@@ -0,0 +1,165 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<entity-mappings version="1.0" xmlns="http://java.sun.com/xml/ns/persistence/orm" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence/orm orm_1_0.xsd">
+    <description>Employee model</description>
+    <entity name="Employee" class="model.Employee" access="FIELD">
+        <table name="P_EMPLOYEE"/>
+        <sequence-generator name="EMP_SEQ" sequence-name="EMP_SEQ" allocation-size="48"/>
+        <attributes>
+            <id name="id">
+                <column name="EMP_ID"/>
+                <generated-value strategy="SEQUENCE" generator="EMP_SEQ"/>
+            </id>
+            <basic name="firstName">
+                <column name="F_NAME"/>
+            </basic>
+            <basic name="lastName">
+                <column name="L_NAME"/>
+            </basic>
+            <basic name="gender">
+                <column name="GENDER"/>
+            </basic>
+            <basic name="salary">
+                <column name="SALARY"/>
+            </basic>
+            <version name="version">
+                <column name="VERSION"/>
+            </version>
+            <many-to-one name="manager" target-entity="model.Employee" fetch="LAZY">
+                <join-column name="MANAGER_ID" referenced-column-name="EMP_ID"/>
+                <cascade>
+                    <cascade-persist/>
+                </cascade>
+            </many-to-one>
+            <one-to-many name="phoneNumbers" target-entity="model.PhoneNumber" mapped-by="owner">
+                <cascade>
+                    <cascade-all/>
+                </cascade>
+            </one-to-many>
+            <one-to-many name="managedEmployees" target-entity="model.Employee" mapped-by="manager">
+                <cascade>
+                    <cascade-persist/>
+                </cascade>
+            </one-to-many>
+            <one-to-one name="address" target-entity="model.Address" fetch="LAZY">
+                <join-column name="ADDR_ID"/>
+                <cascade>
+                    <cascade-all/>
+                </cascade>
+            </one-to-one>
+            <many-to-many name="projects" target-entity="model.Project">
+                <join-table name="P_PROJ_EMP">
+                    <join-column name="EMP_ID" referenced-column-name="EMP_ID"/>
+                    <inverse-join-column name="PROJ_ID" referenced-column-name="PROJ_ID"/>
+                </join-table>
+                <cascade>
+                    <cascade-persist/>
+                </cascade>
+            </many-to-many>
+            <embedded name="period"/>
+        </attributes>
+    </entity>
+    <entity name="Address" class="model.Address" access="FIELD">
+        <table name="P_ADDRESS"/>
+        <sequence-generator name="ADDRESS_SEQ" sequence-name="ADDRESS_SEQ" allocation-size="48"/>
+        <named-query name="findAddressByCity">
+            <query>Select a from Address a where a.city = :city</query>
+        </named-query>
+        <named-query name="findAddressByStreet">
+            <query>Select a from Address a where a.street = :street</query>
+        </named-query>
+        <attributes>
+            <id name="id">
+                <column name="ADDRESS_ID"/>
+                <generated-value strategy="SEQUENCE" generator="ADDRESS_SEQ"/>
+            </id>
+            <basic name="postalCode">
+                <column name="P_CODE"/>
+            </basic>
+            <basic name="street">
+                <column name="STREET"/>
+            </basic>
+            <basic name="city">
+                <column name="CITY"/>
+            </basic>
+            <basic name="province">
+                <column name="PROVINCE"/>
+            </basic>
+            <basic name="country">
+                <column name="COUNTRY"/>
+            </basic>
+        </attributes>
+    </entity>
+    <entity name="PhoneNumber" class="model.PhoneNumber" access="FIELD">
+        <table name="P_PHONE"/>
+        <sequence-generator name="PHONE_SEQ" sequence-name="PHONE_SEQ" allocation-size="48"/>
+        <attributes>
+            <id name="id">
+                <column name="PHONE_ID"/>
+                <generated-value strategy="SEQUENCE" generator="PHONE_SEQ"/>
+            </id>
+            <basic name="type">
+                <column name="TYPE"/>
+            </basic>
+            <basic name="number">
+                <column name="P_NUMBER"/>
+            </basic>
+            <basic name="areaCode">
+                <column name="AREA_CODE"/>
+            </basic>
+            <many-to-one name="owner" target-entity="model.Employee" fetch="LAZY">
+                <join-column name="EMP_ID" referenced-column-name="EMP_ID"/>
+            </many-to-one>
+        </attributes>
+    </entity>
+    <entity name="LargeProject" class="model.LargeProject" access="FIELD">
+        <table name="P_LPROJECT"/>
+        <discriminator-value>L</discriminator-value>
+        <attributes>
+            <basic name="budget">
+                <column name="BUDGET"/>
+            </basic>
+            <basic name="milestoneVersion">
+                <column name="MILESTONE"/>
+            </basic>
+        </attributes>
+    </entity>
+    <entity name="SmallProject" class="model.SmallProject" access="FIELD">
+        <table name="P_SPROJECT"/>
+        <discriminator-value>S</discriminator-value>
+    </entity>
+    <entity name="Project" class="model.Project" access="FIELD">
+        <table name="P_PROJECT"/>
+        <inheritance strategy="JOINED"/>
+        <discriminator-value>P</discriminator-value>
+        <discriminator-column name="PROJ_TYPE"/>
+        <sequence-generator name="PROJ_SEQ" sequence-name="PROJ_SEQ" allocation-size="48"/>
+        <attributes>
+            <id name="id">
+                <column name="PROJ_ID"/>
+                <generated-value strategy="SEQUENCE" generator="PROJ_SEQ"/>
+            </id>
+            <basic name="name">
+                <column name="PROJ_NAME"/>
+            </basic>
+            <basic name="description">
+                <column name="DESCRIP"/>
+            </basic>
+            <version name="version">
+                <column name="VERSION"/>
+            </version>
+            <many-to-one name="teamLeader" target-entity="model.Employee" fetch="LAZY">
+                <join-column name="LEADER_ID"/>
+            </many-to-one>
+        </attributes>
+    </entity>
+    <embeddable class="model.EmploymentPeriod" access="FIELD">
+        <attributes>
+            <basic name="startDate">
+                <column name="START_DATE"/>
+            </basic>
+            <basic name="endDate">
+                <column name="END_DATE"/>
+            </basic>
+        </attributes>
+    </embeddable>
+</entity-mappings>
diff --git a/jpa/cachecoordination/src/META-INF/persistence-wls-jgroups.xml b/jpa/cachecoordination/src/META-INF/persistence-wls-jgroups.xml
new file mode 100755
index 0000000..fe8cbf9
--- /dev/null
+++ b/jpa/cachecoordination/src/META-INF/persistence-wls-jgroups.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<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"
+        version="2.0" xmlns="http://java.sun.com/xml/ns/persistence">
+    <persistence-unit name="employee" transaction-type="JTA">
+        <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
+        <jta-data-source>jdbc/EmployeeDS</jta-data-source>
+        <properties>
+            <!-- Configure the JEE server platform. -->
+            <property name="eclipselink.target-server" value="weblogic" />
+
+            <!-- The database platform is auto-detected by default,
+                 if you want to set a specific platform this can be set. -->
+            <!-- property name=""eclipselink.target-database" value="Oracle" / -->
+
+            <!-- Configure cache size. -->
+            <!--
+                Full is used for this example to ensure nothing garbage collects,
+                but is not a good practice in general Soft, SoftCache or HardCache are best
+            -->
+            <property name="eclipselink.cache.type.default" value="Full" />
+            <property name="eclipselink.cache.size.default" value="1000" />
+
+            <property name="eclipselink.cache.coordination.protocol" value="jgroups" />
+            
+            <!-- additional JGroups configuration may be passed if needed -->
+            <property name="eclipselink.cache.coordination.jgroups.config" value="META-INF/jgroups-udp-config.xml" />
+
+            <!-- Configure database to be created on startup if not already existing. -->
+            <property name="eclipselink.ddl-generation" value="create-tables" />
+
+            <!-- Configure logging for demonstration. -->
+            <property name="eclipselink.logging.logger" value="DefaultLogger" />
+            <property name="eclipselink.logging.level" value="FINEST" />
+        </properties>
+    </persistence-unit>
+</persistence>
diff --git a/jpa/cachecoordination/src/META-INF/persistence-wls-jms-cluster.xml b/jpa/cachecoordination/src/META-INF/persistence-wls-jms-cluster.xml
new file mode 100755
index 0000000..488adde
--- /dev/null
+++ b/jpa/cachecoordination/src/META-INF/persistence-wls-jms-cluster.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<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"
+        version="2.0" xmlns="http://java.sun.com/xml/ns/persistence">
+    <persistence-unit name="employee" transaction-type="JTA">
+        <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
+        <jta-data-source>jdbc/EmployeeDS</jta-data-source>
+        <properties>
+            <!-- Configure the JEE server platform. -->
+            <property name="eclipselink.target-server" value="weblogic" />
+
+            <!-- The database platform is auto-detected by default,
+                 if you want to set a specific platform this can be set. -->
+            <!-- property name=""eclipselink.target-database" value="Oracle" / -->
+
+            <!-- Configure cache size. -->
+            <!--
+                Full is used for this example to ensure nothing garbage collects,
+                but is not a good practice in general Soft, SoftCache or HardCache are best
+            -->
+            <property name="eclipselink.cache.type.default" value="Full" />
+            <property name="eclipselink.cache.size.default" value="1000" />
+
+            <property name="eclipselink.cache.coordination.protocol" value="jms" />
+            <property name="eclipselink.cache.coordination.jms.topic" value="jms/EmployeeTopic" />
+            <property name="eclipselink.cache.coordination.jms.factory" value="jms/EmployeeTopicConnectionFactory" />
+            <!-- As of EclipseLink 2.2 the url is not required for a cluster with a distrubted topic. -->
+            <!-- Outside of a cluster, or previous to EclipseLink 2.2, a url must be given.
+                 localhost may not work, machine name/ip may be required.
+            -->
+            <!--property name="eclipselink.cache.coordination.jms.host" value="t3://localhost:7021/" /-->
+            <!-- user/password should not be required -->
+            <!--property name="eclipselink.cache.coordination.jndi.user" value="weblogic" />
+            <property name="eclipselink.cache.coordination.jndi.password" value="welcome1" /-->
+
+            <!-- Configure database to be created on startup if not already existing. -->
+            <property name="eclipselink.ddl-generation" value="create-tables" />
+
+            <!-- Configure logging for demonstration. -->
+            <property name="eclipselink.logging.logger" value="DefaultLogger" />
+            <property name="eclipselink.logging.level" value="FINEST" />
+        </properties>
+    </persistence-unit>
+</persistence>
diff --git a/jpa/cachecoordination/src/META-INF/persistence-wls-jms.xml b/jpa/cachecoordination/src/META-INF/persistence-wls-jms.xml
new file mode 100755
index 0000000..5ee40c5
--- /dev/null
+++ b/jpa/cachecoordination/src/META-INF/persistence-wls-jms.xml
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<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"
+        version="2.0" xmlns="http://java.sun.com/xml/ns/persistence">
+    <persistence-unit name="employee" transaction-type="JTA">
+        <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
+        <jta-data-source>jdbc/EmployeeDS</jta-data-source>
+        <properties>
+            <!-- Configure the JEE server platform. -->
+            <property name="eclipselink.target-server" value="weblogic" />
+
+            <!-- The database platform is auto-detected by default,
+                 if you want to set a specific platform this can be set. -->
+            <!-- property name=""eclipselink.target-database" value="Oracle" / -->
+
+            <!-- Configure cache size. -->
+            <!--
+                Full is used for this example to ensure nothing garbage collects,
+                but is not a good practice in general Soft, SoftCache or HardCache are best
+            -->
+            <property name="eclipselink.cache.type.default" value="Full" />
+            <property name="eclipselink.cache.size.default" value="1000" />
+
+            <property name="eclipselink.cache.coordination.protocol" value="jms" />
+            <property name="eclipselink.cache.coordination.jms.topic" value="jms/EmployeeTopic" />
+            <property name="eclipselink.cache.coordination.jms.factory" value="jms/EmployeeTopicConnectionFactory" />
+            <!-- localhost may not work, full machine name or ip my be required, as is required if running on multiple machines -->
+            <property name="eclipselink.cache.coordination.jms.host" value="t3://localhost:7021/" />
+            <!-- user/password should not be required -->
+            <!--property name="eclipselink.cache.coordination.jndi.user" value="weblogic" />
+            <property name="eclipselink.cache.coordination.jndi.password" value="welcome1" /-->
+
+            <!-- Configure database to be created on startup if not already existing. -->
+            <property name="eclipselink.ddl-generation" value="create-tables" />
+
+            <!-- Configure logging for demonstration. -->
+            <property name="eclipselink.logging.logger" value="DefaultLogger" />
+            <property name="eclipselink.logging.level" value="FINEST" />
+        </properties>
+    </persistence-unit>
+</persistence>
diff --git a/jpa/cachecoordination/src/META-INF/persistence-wls-rmi.xml b/jpa/cachecoordination/src/META-INF/persistence-wls-rmi.xml
new file mode 100755
index 0000000..20c70d9
--- /dev/null
+++ b/jpa/cachecoordination/src/META-INF/persistence-wls-rmi.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<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"
+        version="2.0" xmlns="http://java.sun.com/xml/ns/persistence">
+    <persistence-unit name="employee" transaction-type="JTA">
+        <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
+        <jta-data-source>jdbc/EmployeeDS</jta-data-source>
+        <properties>
+            <!-- Configure the JEE server platform. -->
+            <property name="eclipselink.target-server" value="weblogic" />
+
+            <!-- 
+                 The database platform is auto-detected by default,
+                 if you want to set a specific platform this can be set.
+            -->
+            <!-- property name=""eclipselink.target-database" value="Oracle" / -->
+
+            <!-- Configure cache size. -->
+            <!--
+                Full is used for this example to ensure nothing garbage collects,
+                but is not a good practice in general Soft, SoftCache or HardCache are best
+            -->
+            <property name="eclipselink.cache.type.default" value="Full" />
+            <property name="eclipselink.cache.size.default" value="1000" />
+
+            <property name="eclipselink.cache.coordination.protocol" value="rmi" />
+            <!-- As of EclipseLink 2.2 the url is not required for a cluster, as JNDI is replicated in a WLS cluster, so the local JNDI is sufficient -->
+            <!-- Outside of a cluster, or previous to EclipseLink 2.2, a url must be given,
+                 this should be the local server's url, but in a cluster could be any server's url, or use localhost (because JNDI is replicated).
+                 This can also be set as a System property, or using a SessionCustomizer, which avoids having a persistence.xml per server.
+                 localhost may not work, machine name/ip may be required.
+            -->
+            <!--property name="eclipselink.cache.coordination.rmi.url" value="t3://localhost:7021/" /-->
+
+            <!-- user/password should not be required -->
+            <!--property name="eclipselink.cache.coordination.jndi.user" value="weblogic" />
+            <property name="eclipselink.cache.coordination.jndi.password" value="welcome1" /-->
+
+            <!-- The following properties are not required, these are the defaults, but they could be configured if required. -->
+            <!--property name="eclipselink.cache.coordination.rmi.announcement-delay" value="1000" />
+            <property name="eclipselink.cache.coordination.rmi.multicast-group" value="239.192.0.0" />
+            <property name="eclipselink.cache.coordination.rmi.multicast-group.port" value="3121" />
+            <property name="eclipselink.cache.coordination.packet-time-to-live" value="2" /-->
+
+            <!-- Configure database to be created on startup if not already existing. -->
+            <property name="eclipselink.ddl-generation" value="create-tables" />
+
+            <!-- Configure logging for demonstration. -->
+            <property name="eclipselink.logging.logger" value="DefaultLogger" />
+            <property name="eclipselink.logging.level" value="FINEST" />
+        </properties>
+    </persistence-unit>
+</persistence>
diff --git a/jpa/cachecoordination/src/META-INF/persistence.xml b/jpa/cachecoordination/src/META-INF/persistence.xml
new file mode 100755
index 0000000..0362949
--- /dev/null
+++ b/jpa/cachecoordination/src/META-INF/persistence.xml
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<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"
+             version="2.0" xmlns="http://java.sun.com/xml/ns/persistence">
+    <persistence-unit name="employee" transaction-type="JTA">
+        <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
+        <jta-data-source>jdbc/EmployeeDS</jta-data-source>
+        <properties>
+            <!-- Configure the JEE server platform. -->
+            <property name="eclipselink.target-server" value="weblogic" />
+
+            <!-- The database platform is auto-detected by default,
+                 if you want to set a specific platform this can be set. -->
+            <!-- property name=""eclipselink.target-database" value="Oracle" / -->
+
+            <!-- Configure cache size. -->
+            <!--
+                Full is used for this example to ensure nothing garbage collects,
+                but is not a good practice in general Soft, SoftCache or HardCache are best
+            -->
+            <property name="eclipselink.cache.type.default" value="Full" />
+            <property name="eclipselink.cache.size.default" value="1000" />
+
+            <property name="eclipselink.cache.coordination.protocol" value="jms" />
+            <property name="eclipselink.cache.coordination.jms.topic" value="jms/EmployeeTopic" />
+            <property name="eclipselink.cache.coordination.jms.factory" value="jms/EmployeeTopicConnectionFactory" />
+            <!-- localhost may not work, full machine name or ip my be required, as is required if running on multiple machines -->
+            <property name="eclipselink.cache.coordination.jms.host" value="t3://localhost:7021/" />
+            <!-- user/password should not be required -->
+            <!--property name="eclipselink.cache.coordination.jndi.user" value="weblogic" />
+            <property name="eclipselink.cache.coordination.jndi.password" value="welcome1" /-->
+
+            <!-- Configure database to be created on startup if not already existing. -->
+            <property name="eclipselink.ddl-generation" value="create-tables" />
+
+            <!-- Configure logging for demonstration. -->
+            <property name="eclipselink.logging.logger" value="DefaultLogger" />
+            <property name="eclipselink.logging.level" value="FINEST" />
+        </properties>
+    </persistence-unit>
+</persistence>
diff --git a/jpa/cachecoordination/src/example/Transactions.java b/jpa/cachecoordination/src/example/Transactions.java
new file mode 100755
index 0000000..5d37963
--- /dev/null
+++ b/jpa/cachecoordination/src/example/Transactions.java
@@ -0,0 +1,118 @@
+/*******************************************************************************
+ * Copyright (c) 1998, 2012 Oracle and/or its affiliates. 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:
+ *     James Sutherland - initial impl
+ ******************************************************************************/  
+ package example;
+
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Properties;
+
+import javax.naming.Context;
+import javax.naming.InitialContext;
+import javax.rmi.PortableRemoteObject;
+
+import model.*;
+
+/**
+ * This example processes updates to the same employee on different nodes in the cluster.
+ */
+public class Transactions {
+    private List<String> serverURLs;
+    private int server = 0;
+
+    public static void main(String[] args) throws Exception {
+        Transactions transactions = new Transactions();
+        transactions.updateEmployee();
+    }
+    
+    public Transactions() {
+        this.serverURLs = new ArrayList<String>();
+        // localhost may not work, machine name/ip may be required.
+        this.serverURLs.add("t3://localhost:7021/");
+        this.serverURLs.add("t3://localhost:7031/");
+        this.serverURLs.add("t3://localhost:7041/");
+    }
+
+    /**
+     * Return the next server index to use.
+     * This cycles through the servers.
+     */
+    public int nextServer() {
+        this.server++;
+        if (this.server >= this.serverURLs.size()) {
+            this.server = 0;
+        }
+        return this.server;
+    }
+
+    public EmployeeService nextEmployeeService() {
+        EmployeeService service = null;
+        int server = nextServer();
+        Properties properties = new Properties();
+        String url = this.serverURLs.get(server);
+        properties.put("java.naming.provider.url", url);
+        System.out.println("Connecting to server:" + url);
+        try {
+            Context context = new InitialContext(properties);
+            service = (EmployeeService)PortableRemoteObject.narrow(context.lookup("EmployeeService#model.EmployeeService"), EmployeeService.class);
+        } catch (Exception notFoundException) {
+            throw new Error("Lookup failed, verify lookup string is correct for your JEE server, and that deploy was successful.", notFoundException);
+        }
+        return service;
+    }
+
+    /**
+     * Update the same employee on each server.
+     */
+    public void updateEmployee() throws Exception {
+        try {
+            Employee employee = null;
+            System.out.println("Populating database.");
+            EmployeeService service = nextEmployeeService();
+            service.setup();
+            System.out.println("Preloading cache on all servers.");
+            for (int index = 0; index < 3; index++) {
+                System.out.println("Looking up next EmployeeServer.");
+                service = nextEmployeeService();
+                System.out.println("Loading all Employees into cache.");
+                employee = service.findAll().get(0);
+            }
+            System.out.println("Preloading done.");
+            Thread.sleep(5000);
+            System.out.println("Updating employee on each server.");
+            for (int index = 0; index < 10; index++) {
+                System.out.println("Looking up next EmployeeServer.");
+                service = nextEmployeeService();
+                int random = (int)(Math.random() * 1000000);
+                System.out.println("Finding employee: " + employee.getId());
+                employee = service.findById(employee.getId());
+                System.out.println("Employee name was: " + employee.getFirstName() + " " + employee.getLastName());
+                employee.setFirstName(String.valueOf(random));
+                employee.setLastName(String.valueOf(random));
+                employee.setSalary(random);
+                try {
+                    System.out.println("Updating employee: " + employee.getId());
+                    service.update(employee);
+                    System.out.println("Employee name updated to: " + employee.getFirstName() + " " + employee.getLastName());
+                    Thread.sleep(500);
+                } catch (Exception exception) {
+                    System.out.println("Updating failed (cache coordination has not yet occurred, increase sleep time).");
+                    System.out.println(exception.toString());
+                }
+            }
+        } catch (Exception error) {
+            error.printStackTrace();
+            throw error;
+        }
+    }
+}
diff --git a/jpa/cachecoordination/src/model/Address.java b/jpa/cachecoordination/src/model/Address.java
new file mode 100755
index 0000000..27799cf
--- /dev/null
+++ b/jpa/cachecoordination/src/model/Address.java
@@ -0,0 +1,112 @@
+/*******************************************************************************
+ * Copyright (c) 1998, 2012 Oracle and/or its affiliates. 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:
+ *     Oracle - initial API and implementation
+ ******************************************************************************/  
+package model;
+
+import java.io.*;
+
+/**
+ * <p><b>Purpose</b>: Represents the mailing address on an Employee
+ * <p><b>Description</b>: Held in a private 1:1 relationship from Employee
+ * @see Employee
+ */
+public class Address implements Serializable {
+    protected long id;
+    protected String street;
+    protected String city;
+    protected String province;
+    protected String postalCode;
+    protected String country;
+
+    public Address() {
+        this.city = "";
+        this.province = "";
+        this.postalCode = "";
+        this.street = "";
+        this.country = "";
+    }
+
+    public String getCity() {
+        return city;
+    }
+
+    public String getCountry() {
+        return country;
+    }
+
+    /**
+     * Return the persistent identifier of the receiver.
+     */
+    public long getId() {
+        return id;
+    }
+
+    public String getPostalCode() {
+        return postalCode;
+    }
+
+    public String getProvince() {
+        return province;
+    }
+
+    public String getStreet() {
+        return street;
+    }
+
+    public void setCity(String city) {
+        this.city = city;
+    }
+
+    public void setCountry(String country) {
+        this.country = country;
+    }
+
+    /**
+     * Set the persistent identifier of the receiver.
+     */
+    public void setId(long id) {
+        this.id = id;
+    }
+
+    public void setPostalCode(String postalCode) {
+        this.postalCode = postalCode;
+    }
+
+    public void setProvince(String province) {
+        this.province = province;
+    }
+
+    public void internalSetStreet(String street) {
+        this.street = street;
+    }
+    
+    public void setStreet(String street) {
+        this.street = street;
+    }
+
+    /**
+     * Print the address city and province.
+     */
+    public String toString() {
+        StringWriter writer = new StringWriter();
+
+        writer.write("Address: ");
+        writer.write(getStreet());
+        writer.write(", ");
+        writer.write(getCity());
+        writer.write(", ");
+        writer.write(getProvince());
+        writer.write(", ");
+        writer.write(getCountry());
+        return writer.toString();
+    }
+}
diff --git a/jpa/cachecoordination/src/model/Employee.java b/jpa/cachecoordination/src/model/Employee.java
new file mode 100755
index 0000000..8b0da14
--- /dev/null
+++ b/jpa/cachecoordination/src/model/Employee.java
@@ -0,0 +1,216 @@
+/*******************************************************************************
+ * Copyright (c) 1998, 2012 Oracle and/or its affiliates. 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:
+ *     Oracle - initial API and implementation
+ ******************************************************************************/  
+package model;
+
+import java.util.*;
+import java.io.*;
+
+import javax.persistence.NamedQueries;
+import javax.persistence.NamedQuery;
+import javax.persistence.QueryHint;
+
+import org.eclipse.persistence.config.QueryHints;
+
+/**
+ * <p><b>Purpose</b>: Represent a employee of an organization.
+ * <p><b>Description</b>: An Employee is a root object in the Employee Demo.
+ * It maintains relationships to all of the other objects in the system.
+ */
+public class Employee implements Serializable {
+
+    protected long id;    
+    protected long version;
+    protected String firstName;
+    protected String lastName;
+    protected String gender;
+    protected EmploymentPeriod period;
+    protected Address address;
+    protected Employee manager;
+    protected Collection managedEmployees;
+    protected Collection phoneNumbers;
+    protected Collection projects;
+    protected int salary;
+
+    public Employee() {
+        this.firstName = "";
+        this.lastName = "";
+        this.managedEmployees = new HashSet();
+        this.projects = new HashSet();
+        this.phoneNumbers = new HashSet();
+    }
+
+    /**
+     * For bi-directional relationships, it is important to maintain both sides of the relationship when changing it.
+     */
+    public void addManagedEmployee(Employee employee) {
+        getManagedEmployees().add(employee);
+        employee.setManager(this);
+    }
+
+    /**
+     * For bi-directional relationships, it is important to maintain both sides of the relationship when changing it.
+     */
+    public void addPhoneNumber(PhoneNumber phoneNumber) {
+        getPhoneNumbers().add(phoneNumber);
+        phoneNumber.setOwner(this);
+    }
+
+    public void addProject(Project project) {
+        getProjects().add(project);
+    }
+
+    public Address getAddress() {
+        return address;
+    }
+
+    public String getFirstName() {
+        return firstName;
+    }
+
+    public String getGender() {
+        return gender;
+    }
+
+    /**
+     * Return the persistent identifier of the receiver.
+     */
+    public long getId() {
+        return id;
+    }
+
+    public String getLastName() {
+        return lastName;
+    }
+
+    public Collection getManagedEmployees() {
+        return managedEmployees;
+    }
+
+    public Employee getManager() {
+        return manager;
+    }
+
+    public EmploymentPeriod getPeriod() {
+        return period;
+    }
+
+    public Collection getPhoneNumbers() {
+        return phoneNumbers;
+    }
+
+    public Collection getProjects() {
+        return projects;
+    }
+
+    public int getSalary() {
+        return salary;
+    }
+    
+    public long getVersion() {
+        return version;
+    }
+
+    public void removeManagedEmployee(Employee employee) {
+        getManagedEmployees().remove(employee);
+        employee.setManager(null);
+    }
+
+    /**
+     * Remove the phone number.
+     * The phone number's owner must not be set to null as it is part of it primary key,
+     * and you can never change the primary key of an existing object.
+     * Only in independent relationships should you null out the back reference.
+     */
+    public void removePhoneNumber(PhoneNumber phoneNumber) {
+        getPhoneNumbers().remove(phoneNumber);
+    }
+
+    public void removeProject(Project project) {
+        getProjects().remove(project);
+    }
+
+    public void setAddress(Address address) {
+        this.address = address;
+    }
+
+    public void setFemale() {
+        setGender("Female");
+    }
+
+    public void setFirstName(String firstName) {
+        this.firstName = firstName;
+    }
+
+    public void setGender(String gender) {
+        this.gender = gender;
+    }
+
+    /**
+     * Set the persistent identifier of the receiver.
+     * Note this should never be changed.
+     * Consider making the primary key set methods protected or not having them.
+     * In this demo the setId is required for testing purposes.
+     */
+    public void setId(long id) {
+        this.id = id;
+    }
+
+    public void setLastName(String lastName) {
+        this.lastName = lastName;
+    }
+
+    public void setMale() {
+        setGender("Male");
+    }
+
+    public void setManagedEmployees(Collection managedEmployees) {
+        this.managedEmployees = managedEmployees;
+    }
+
+    public void setManager(Employee manager) {
+        this.manager = manager;
+    }
+
+    public void setPeriod(EmploymentPeriod period) {
+        this.period = period;
+    }
+
+    public void setPhoneNumbers(Collection phoneNumbers) {
+        this.phoneNumbers = phoneNumbers;
+    }
+
+    public void setProjects(Collection projects) {
+        this.projects = projects;
+    }
+
+    public void setSalary(int salary) {
+        this.salary = salary;
+    }
+    
+    public void setVersion(long version) {
+        this.version = version;
+    }
+
+    /**
+     * Print the first & last name
+     */
+    public String toString() {
+        StringWriter writer = new StringWriter();
+
+        writer.write("Employee: ");
+        writer.write(getFirstName());
+        writer.write(" ");
+        writer.write(getLastName());
+        return writer.toString();
+    }
+}
diff --git a/jpa/cachecoordination/src/model/EmployeeService.java b/jpa/cachecoordination/src/model/EmployeeService.java
new file mode 100755
index 0000000..1670f87
--- /dev/null
+++ b/jpa/cachecoordination/src/model/EmployeeService.java
@@ -0,0 +1,32 @@
+/*******************************************************************************
+ * Copyright (c) 1998, 2012 Oracle and/or its affiliates. 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:
+ *     James Sutherland - initial impl
+ ******************************************************************************/  
+ package model;
+
+import java.util.List;
+
+/**
+ * EmployeeService session bean interface.
+ */
+public interface EmployeeService {
+    List<Employee> findAll();
+    
+    Employee findById(long id);
+    
+    Employee fetchById(long id);
+    
+    void update(Employee employee);
+    
+    long insert(Employee employee);
+    
+    void setup();
+}
diff --git a/jpa/cachecoordination/src/model/EmployeeServiceBean.java b/jpa/cachecoordination/src/model/EmployeeServiceBean.java
new file mode 100755
index 0000000..a3dab63
--- /dev/null
+++ b/jpa/cachecoordination/src/model/EmployeeServiceBean.java
@@ -0,0 +1,97 @@
+/*******************************************************************************
+ * Copyright (c) 1998, 2012 Oracle and/or its affiliates. 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:
+ *     James Sutherland - initial impl
+ ******************************************************************************/  
+ package model;
+
+import java.util.List;
+
+import javax.ejb.Remote;
+import javax.ejb.Stateless;
+
+import javax.persistence.EntityManager;
+import javax.persistence.PersistenceContext;
+import javax.persistence.Query;
+
+/**
+ * EmployeeService session bean.
+ */
+@Stateless(mappedName="EmployeeService")
+@Remote(EmployeeService.class)
+public class EmployeeServiceBean implements EmployeeService {
+    @PersistenceContext(name="employee")
+    protected EntityManager entityManager;
+
+    public List<Employee> findAll() {
+        Query query = this.entityManager.createQuery("Select e from Employee e");
+        return query.getResultList();
+    }
+    
+    public Employee findById(long id) {
+        Employee employee = this.entityManager.find(Employee.class, id);
+        employee.getAddress();
+        return employee;
+    }
+    
+    public Employee fetchById(long id) {
+        Employee employee = this.entityManager.find(Employee.class, id);
+        employee.getAddress();
+        employee.getManager();
+        return employee;
+    }
+    
+    public void update(Employee employee) {
+        this.entityManager.merge(employee);
+    }
+    
+    public long insert(Employee employee) {
+        this.entityManager.persist(employee);
+        this.entityManager.flush();
+        return employee.getId();
+    }
+    
+    public void setup() {
+        // Populate database.
+        // First delete all old records.
+        this.entityManager.createQuery("Delete from PhoneNumber p").executeUpdate();
+        this.entityManager.createQuery("Delete from Employee e").executeUpdate();
+        this.entityManager.createQuery("Delete from Address a").executeUpdate();
+        for (int j = 0; j < 100; j++) {
+            Employee empInsert = new Employee();
+            empInsert.setFirstName("Brendan");
+            empInsert.setMale();
+            empInsert.setLastName("" + j + "");
+            empInsert.setSalary(100000);
+            EmploymentPeriod employmentPeriod = new EmploymentPeriod();
+            java.sql.Date startDate = new java.sql.Date(new java.util.Date().getTime());
+            employmentPeriod.setStartDate(startDate);
+            empInsert.setPeriod(employmentPeriod);
+            empInsert.setAddress(new Address());
+            empInsert.getAddress().setCity("Nepean");
+            empInsert.getAddress().setPostalCode("N5J2N5");
+            empInsert.getAddress().setProvince("ON");
+            empInsert.getAddress().setStreet("1111 Mountain Blvd. Floor 13, suite " + j);
+            empInsert.getAddress().setCountry("Canada");
+            empInsert.addPhoneNumber(new PhoneNumber("Work Fax", "613", "2255943"));
+            empInsert.addPhoneNumber(new PhoneNumber("Home", "613", "2224599"));
+            this.entityManager.persist(empInsert);
+        }
+
+        for (int j = 0; j < 50; j++) {
+            Project project = new SmallProject();
+            project.setName("Tracker");
+            this.entityManager.persist(project);
+            project = new LargeProject();
+            project.setName("Tracker");
+            this.entityManager.persist(project);
+        }
+    }
+}
diff --git a/jpa/cachecoordination/src/model/EmploymentPeriod.java b/jpa/cachecoordination/src/model/EmploymentPeriod.java
new file mode 100755
index 0000000..cc09146
--- /dev/null
+++ b/jpa/cachecoordination/src/model/EmploymentPeriod.java
@@ -0,0 +1,76 @@
+/*******************************************************************************
+ * Copyright (c) 1998, 2012 Oracle and/or its affiliates. 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:
+ *     Oracle - initial API and implementation
+ ******************************************************************************/  
+package model;
+
+import java.sql.Date;
+import java.io.*;
+
+/**
+ * <p><b>Purpose</b>: Defines the period an Employee worked for the organization
+ * <p><b>Description</b>: The period holds the start date and optionally the end date if the employee has left (null otherwise).
+ * Maintained in an aggregate relationship of Employee
+ * @see Employee
+ */
+public class EmploymentPeriod implements Serializable {
+    protected Date startDate;
+    protected Date endDate;
+
+    public EmploymentPeriod() {
+    }
+
+    /**
+     * Return a new employment period instance.
+     * The constructor's purpose is to allow only valid instances of a class to be created.
+     * Valid means that the get/set and clone/toString methods should work on the instance.
+     * Arguments to constructors should be avoided unless those arguments are required to put
+     * the instance into a valid state, or represent the entire instance definition.
+     */
+    public EmploymentPeriod(Date startDate, Date endDate) {
+        this.startDate = startDate;
+        this.endDate = endDate;
+
+    }
+
+    public Date getEndDate() {
+        return endDate;
+    }
+
+    public Date getStartDate() {
+        return startDate;
+    }
+
+    public void setEndDate(Date endDate) {
+        this.endDate = endDate;
+    }
+
+    public void setStartDate(Date startDate) {
+        this.startDate = startDate;
+    }
+
+    /**
+     * Print the start & end date
+     */
+    public String toString() {
+        StringWriter writer = new StringWriter();
+
+        writer.write("EmploymentPeriod: ");
+        if (getStartDate() != null) {
+            writer.write(getStartDate().toString());
+        }
+        writer.write("-");
+        if (getEndDate() != null) {
+            writer.write(getEndDate().toString());
+        }
+        return writer.toString();
+    }
+}
diff --git a/jpa/cachecoordination/src/model/LargeProject.java b/jpa/cachecoordination/src/model/LargeProject.java
new file mode 100755
index 0000000..d17ff25
--- /dev/null
+++ b/jpa/cachecoordination/src/model/LargeProject.java
@@ -0,0 +1,63 @@
+/*******************************************************************************
+ * Copyright (c) 1998, 2012 Oracle and/or its affiliates. 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:
+ *     Oracle - initial API and implementation
+ ******************************************************************************/  
+package model;
+
+import java.io.*;
+import java.sql.Timestamp;
+
+/**
+ * <b>Purpose</b>: Larger scale projects within the Employee Demo
+ * <p><b>Description</b>: LargeProject is a concrete subclass of Project. It is instantiated for Projects with type = 'L'. The additional
+ * information (budget, & milestoneVersion) are mapped from the LPROJECT table.
+ * @see Project
+ */
+public class LargeProject extends Project {
+    protected double budget;
+    protected Timestamp milestoneVersion;
+
+    public LargeProject() {
+        this.budget = 0.0;
+    }
+
+    public double getBudget() {
+        return budget;
+    }
+
+    public Timestamp getMilestoneVersion() {
+        return milestoneVersion;
+    }
+
+    public void setBudget(double budget) {
+        this.budget = budget;
+    }
+
+    public void setMilestoneVersion(Timestamp milestoneVersion) {
+        this.milestoneVersion = milestoneVersion;
+    }
+
+    /**
+     * Print the project's data.
+     */
+    public String toString() {
+        StringWriter writer = new StringWriter();
+
+        writer.write("Large Project: ");
+        writer.write(getName());
+        writer.write(" ");
+        writer.write(getDescription());
+        writer.write(" " + getBudget());
+        writer.write(" ");
+        writer.write(String.valueOf(getMilestoneVersion()));
+        return writer.toString();
+    }
+}
diff --git a/jpa/cachecoordination/src/model/PhoneNumber.java b/jpa/cachecoordination/src/model/PhoneNumber.java
new file mode 100755
index 0000000..cfcad61
--- /dev/null
+++ b/jpa/cachecoordination/src/model/PhoneNumber.java
@@ -0,0 +1,131 @@
+/*******************************************************************************
+ * Copyright (c) 1998, 2012 Oracle and/or its affiliates. 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:
+ *     Oracle - initial API and implementation
+ ******************************************************************************/  
+package model;
+
+import java.io.*;
+
+/**
+ * <p><b>Purpose</b>: Describes an Employee's phone number.
+ * <p><b>Description</b>: Used in a 1:M relationship from an employee. Since many people have various numbers
+ * they can be contacted at the type describes where the phone number could reach the Employee.
+ */
+public class PhoneNumber implements Serializable {
+
+    /** Sequence id, added for Hibernate as it has issues with composite ids and caching. */
+    protected long id;
+    
+    /** Holds values such as Home, Work, Cellular, Pager, Fax, etc.  Since the combination of the Employee's ID and
+    the type field are what makes the entry in the database unique the type fields must be unique within an
+    Employee's Vector of PhoneNumbers.*/
+    protected String type;
+    protected String areaCode;
+
+    /** 7 digit number with no hyphen, this is added during toString() only*/
+    protected String number;
+
+    /** Owner maintains the 1:1 mapping to an Employee (required for 1:M relationship in Employee) */
+    protected Employee owner;
+
+    public PhoneNumber() {
+        this("home", "###", "#######");
+    }
+
+    public PhoneNumber(String type, String theAreaCode, String theNumber) {
+        this.type = type;
+        this.areaCode = theAreaCode;
+        this.number = theNumber;
+    }
+
+    public String getAreaCode() {
+        return areaCode;
+    }
+
+    public String getNumber() {
+        return number;
+    }
+
+    public Employee getOwner() {
+        return owner;
+    }
+
+    public String getType() {
+        return type;
+    }
+    
+    public long getId() {
+        return id;
+    }
+
+    public void setAreaCode(String areaCode) {
+        this.areaCode = areaCode;
+    }
+
+    public void setNumber(String number) {
+        this.number = number;
+    }
+
+    public void setOwner(Employee owner) {
+        this.owner = owner;
+    }
+
+    public void setType(String type) {
+        this.type = type;
+    }
+    
+    public void setId(long id) {
+        this.id = id;
+    }
+
+    /**
+     * Required for Hibernate cache to work.
+     */
+    public int hashCode() {
+        return getType().hashCode();
+    }
+
+    /**
+     * Required for Hibernate cache to work.
+     */
+    public boolean equals(Object object) {
+        if (object instanceof PhoneNumber) {
+            PhoneNumber phone = (PhoneNumber)object;
+            if (! getType().equals(phone.getType())) {
+                return false;
+            }
+            if ((getOwner() == null) || (phone.getOwner() == null) || (getOwner().getId() != phone.getOwner().getId())) {
+                return false;
+            }
+            return true;
+        } else {
+            return false;
+        }
+    }
+    
+    /**
+     * Print the phone.
+     * Example: Phone[Work]: (613) 225-8812
+     */
+    public String toString() {
+        StringWriter writer = new StringWriter();
+
+        writer.write("PhoneNumber [");
+        writer.write(getType());
+        writer.write("]: (");
+        writer.write(this.getAreaCode());
+        writer.write(")");
+        writer.write(this.getNumber().substring(0, 3));
+        writer.write("-");
+        writer.write(this.getNumber().substring(3, 7));
+        return writer.toString();
+    }
+}
diff --git a/jpa/cachecoordination/src/model/Project.java b/jpa/cachecoordination/src/model/Project.java
new file mode 100755
index 0000000..e435010
--- /dev/null
+++ b/jpa/cachecoordination/src/model/Project.java
@@ -0,0 +1,83 @@
+/*******************************************************************************
+ * Copyright (c) 1998, 2012 Oracle and/or its affiliates. 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:
+ *     Oracle - initial API and implementation
+ ******************************************************************************/  
+package model;
+
+import java.io.*;
+
+/**
+ * <b>Purpose</b>: Abstract superclass for Large & Small projects in Employee Demo
+ * <p><b>Description</b>:     Project is an example of an abstract superclass. It demonstrates how class inheritance can be mapped to database tables.
+ * It's subclasses are concrete and may or may not add columns through additional tables. The PROJ_TYPE field in the
+ * database table indicates which subclass to instantiate. Projects are involved in a M:M relationship with employees.
+ * The Employee classs maintains the definition of the relation table.
+ * @see LargeProject
+ * @see SmallProject
+ */
+public abstract class Project implements Serializable {
+    protected long id;
+    protected long version;
+    protected String name;
+    protected String description;
+    protected Employee teamLeader;
+
+    public Project() {
+        this.name = "";
+        this.description = "";
+    }
+
+    public String getDescription() {
+        return description;
+    }
+
+    /**
+     * Return the persistent identifier of the receiver.
+     */
+    public long getId() {
+        return id;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public Employee getTeamLeader() {
+        return teamLeader;
+    }
+    
+    public long getVersion() {
+        return version;
+    }
+
+    public void setDescription(String description) {
+        this.description = description;
+    }
+
+    /**
+     * Set the persistent identifier of the receiver.
+     */
+    public void setId(long id) {
+        this.id = id;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public void setTeamLeader(Employee teamLeader) {
+        this.teamLeader = teamLeader;
+    }
+    
+    public void setVersion(long version) {
+        this.version = version;
+    }
+}
diff --git a/jpa/cachecoordination/src/model/SmallProject.java b/jpa/cachecoordination/src/model/SmallProject.java
new file mode 100755
index 0000000..f80a837
--- /dev/null
+++ b/jpa/cachecoordination/src/model/SmallProject.java
@@ -0,0 +1,35 @@
+/*******************************************************************************
+ * Copyright (c) 1998, 2012 Oracle and/or its affiliates. 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:
+ *     Oracle - initial API and implementation
+ ******************************************************************************/  
+package model;
+
+/**
+ * <p><b>Purpose</b>: SmallProject is a concrete subclass of Project which adds no additional attributes.
+ * <p><b>Description</b>: When the PROJ_TYPE is set to 'S' in the PROJECT table a SmallProject is instantiated.
+ * No table definition is required and the descriptor is very simple.
+ */
+public class SmallProject extends Project {
+
+    /**
+     * Print the SmallProject's information.
+     */
+    public String toString() {
+        java.io.StringWriter writer = new java.io.StringWriter();
+
+        writer.write("Small Project: ");
+        writer.write(getName());
+        writer.write(" ");
+        writer.write(getDescription());
+        writer.write("");
+        return writer.toString();
+    }
+}
