diff --git a/jpa/employee.dynamic/.classpath b/jpa/employee.dynamic/.classpath
index d76c977..6125775 100644
--- a/jpa/employee.dynamic/.classpath
+++ b/jpa/employee.dynamic/.classpath
@@ -14,12 +14,12 @@
 		</attributes>
 	</classpathentry>
 	<classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/4"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6">
+	<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
 		<attributes>
 			<attribute name="maven.pomderived" value="true"/>
 		</attributes>
 	</classpathentry>
-	<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8">
 		<attributes>
 			<attribute name="maven.pomderived" value="true"/>
 		</attributes>
diff --git a/jpa/employee.dynamic/.project b/jpa/employee.dynamic/.project
index 73017bf..8cdb39d 100644
--- a/jpa/employee.dynamic/.project
+++ b/jpa/employee.dynamic/.project
@@ -16,12 +16,12 @@
 			</arguments>
 		</buildCommand>
 		<buildCommand>
-			<name>org.eclipse.m2e.core.maven2Builder</name>
+			<name>org.eclipse.wst.validation.validationbuilder</name>
 			<arguments>
 			</arguments>
 		</buildCommand>
 		<buildCommand>
-			<name>org.eclipse.wst.validation.validationbuilder</name>
+			<name>org.eclipse.m2e.core.maven2Builder</name>
 			<arguments>
 			</arguments>
 		</buildCommand>
diff --git a/jpa/employee.dynamic/.settings/org.eclipse.jdt.core.prefs b/jpa/employee.dynamic/.settings/org.eclipse.jdt.core.prefs
index 107056a..13b3428 100644
--- a/jpa/employee.dynamic/.settings/org.eclipse.jdt.core.prefs
+++ b/jpa/employee.dynamic/.settings/org.eclipse.jdt.core.prefs
@@ -1,12 +1,13 @@
 eclipse.preferences.version=1
 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
+org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.compliance=1.8
 org.eclipse.jdt.core.compiler.debug.lineNumber=generate
 org.eclipse.jdt.core.compiler.debug.localVariable=generate
 org.eclipse.jdt.core.compiler.debug.sourceFile=generate
 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
 org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
-org.eclipse.jdt.core.compiler.source=1.6
+org.eclipse.jdt.core.compiler.source=1.8
diff --git a/jpa/employee.dynamic/pom.xml b/jpa/employee.dynamic/pom.xml
index 219f7d0..95d64e8 100644
--- a/jpa/employee.dynamic/pom.xml
+++ b/jpa/employee.dynamic/pom.xml
@@ -6,7 +6,7 @@
 		<relativePath>..</relativePath>
 		<groupId>eclipselink.example.jpa</groupId>
 		<artifactId>parent</artifactId>
-		<version>2.4.2</version>
+		<version>2.6.0</version>
 	</parent>
 
 	<artifactId>employee.dynamic</artifactId>
@@ -18,7 +18,13 @@
 		<dependency>
 			<groupId>${eclipselink.groupid}</groupId>
 			<artifactId>${eclipselink.artifactid}</artifactId>
-			<version>${eclipselink.version}</version>
+                        <!-- *******************************************
+			 Build 2.6.0-RC1 introduced an issue that forces
+                         this example to remain on build 2.6.0-M3. The
+                         issue will be addressed in a 2.6.x+ release.
+                        ************************************************
+                        version>${eclipselink.version}</version-->
+			<version>2.6.0-M3</version>
 			<exclusions>
 				<exclusion>
 					<artifactId>commonj.sdo</artifactId>
@@ -31,7 +37,7 @@
 		<dependency>
 			<groupId>${eclipselink.groupid}</groupId>
 			<artifactId>javax.persistence</artifactId>
-			<version>2.0.5</version>
+			<version>2.1.0</version>
 			<exclusions>
 				<exclusion>
 					<artifactId>commonj.sdo</artifactId>
@@ -44,7 +50,7 @@
 		<dependency>
 			<groupId>org.apache.derby</groupId>
 			<artifactId>derby</artifactId>
-			<version>10.9.1.0</version>
+			<version>10.11.1.1</version>
 			<scope>test</scope>
 		</dependency>
 
@@ -58,12 +64,17 @@
 		<dependency>
 			<groupId>javax.validation</groupId>
 			<artifactId>validation-api</artifactId>
-			<version>1.0.0.GA</version>
+			<version>1.1.0.Final</version>
 		</dependency>
 		<dependency>
 			<groupId>org.hibernate</groupId>
 			<artifactId>hibernate-validator</artifactId>
-			<version>4.0.2.GA</version>
+			<version>5.1.3.Final</version>
+		</dependency>
+		<dependency>
+		   <groupId>javax.el</groupId>
+		   <artifactId>javax.el-api</artifactId>
+		   <version>2.2.4</version>
 		</dependency>
 		<dependency>
 			<groupId>org.slf4j</groupId>
@@ -86,8 +97,8 @@
 				<artifactId>maven-compiler-plugin</artifactId>
 				<version>2.5.1</version>
 				<configuration>
-					<source>1.7</source>
-					<target>1.7</target>
+					<source>1.8</source>
+					<target>1.8</target>
 				</configuration>
 			</plugin>
 
diff --git a/jpa/employee.dynamic/src/main/resources/META-INF/employee-orm.xml b/jpa/employee.dynamic/src/main/resources/META-INF/employee-orm.xml
index 920e862..6af220f 100644
--- a/jpa/employee.dynamic/src/main/resources/META-INF/employee-orm.xml
+++ b/jpa/employee.dynamic/src/main/resources/META-INF/employee-orm.xml
@@ -5,11 +5,9 @@
 
 	<package>example.jpa.dynamic.model.employee</package>
 
-	<object-type-converter name="gender-converter"
-		object-type="String" data-type="String">
-		<conversion-value object-value="Male" data-value="M" />
-		<conversion-value object-value="Female" data-value="F" />
-	</object-type-converter>
+	<!--object-type-converter name="gender-converter" object-type="String" data-type="String">
+		<conversion-value object-value="Male" data-value="M" /> <conversion-value
+		object-value="Female" data-value="F" /> </object-type-converter -->
 
 	<named-query name="Employee.findAll">
 		<query>SELECT e FROM Employee e ORDER BY e.lastName, e.firstName
@@ -18,7 +16,8 @@
 	</named-query>
 
 	<named-query name="Employee.findMin">
-		<query>SELECT e FROM Employee e WHERE e.id IN (SELECT MIN(ee.id) FROM Employee ee)
+		<query>SELECT e FROM Employee e WHERE e.id IN (SELECT MIN(ee.id) FROM
+			Employee ee)
 		</query>
 	</named-query>
 
@@ -85,8 +84,11 @@
 			</basic>
 			<basic name="gender" attribute-type="String">
 				<column name="GENDER" />
-				<convert>gender-converter</convert>
 			</basic>
+			<entity class="eclipselink.example.jpa.employee.model.Employee">
+				<convert converter="eclipselink.example.jpa.employee.model.GenderConverter"
+					attribute-name="gender" />
+			</entity>
 			<basic name="salary" attribute-type="Integer">
 				<column table="SALARY" />
 			</basic>
@@ -126,4 +128,4 @@
 		</attributes>
 	</entity>
 
-</entity-mappings>
\ No newline at end of file
+</entity-mappings>
diff --git a/jpa/employee.dynamic/src/main/resources/META-INF/persistence.xml b/jpa/employee.dynamic/src/main/resources/META-INF/persistence.xml
index c0b0e5d..4ac7127 100644
--- a/jpa/employee.dynamic/src/main/resources/META-INF/persistence.xml
+++ b/jpa/employee.dynamic/src/main/resources/META-INF/persistence.xml
@@ -1,5 +1,8 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
+<persistence version="2.1"
+             xmlns="http://xmlns.jcp.org/xml/ns/persistence"
+             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+             xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">
 	<persistence-unit name="employee-xml" transaction-type="RESOURCE_LOCAL">
 		<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
 		<mapping-file>META-INF/employee-orm.xml</mapping-file>
diff --git a/jpa/employee.dynamic/src/main/resources/META-INF/validation.xml b/jpa/employee.dynamic/src/main/resources/META-INF/validation.xml
index 415d775..4b943c8 100644
--- a/jpa/employee.dynamic/src/main/resources/META-INF/validation.xml
+++ b/jpa/employee.dynamic/src/main/resources/META-INF/validation.xml
@@ -3,8 +3,8 @@
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://jboss.org/xml/ns/javax/validation/configuration">
     <default-provider>org.hibernate.validator.HibernateValidator</default-provider>
-    <message-interpolator>org.hibernate.validator.engine.ResourceBundleMessageInterpolator</message-interpolator>
-    <traversable-resolver>org.hibernate.validator.engine.resolver.DefaultTraversableResolver</traversable-resolver>
-    <constraint-validator-factory>org.hibernate.validator.engine.ConstraintValidatorFactoryImpl</constraint-validator-factory>
+    <message-interpolator>org.hibernate.validator.messageinterpolation.ResourceBundleMessageInterpolator</message-interpolator>
+    <traversable-resolver>org.hibernate.validator.internal.engine.resolver.DefaultTraversableResolver</traversable-resolver>
+    <constraint-validator-factory>org.hibernate.validator.internal.engine.constraintvalidation.ConstraintValidatorFactoryImpl</constraint-validator-factory>
     <constraint-mapping>/META-INF/employee-constraints.xml</constraint-mapping>
-</validation-config>
\ No newline at end of file
+</validation-config>
diff --git a/jpa/employee/employee.model/.classpath b/jpa/employee/employee.model/.classpath
index 50a092e..3200c29 100644
--- a/jpa/employee/employee.model/.classpath
+++ b/jpa/employee/employee.model/.classpath
@@ -24,7 +24,7 @@
 			<attribute name="org.eclipse.jst.component.nondependency" value=""/>
 		</attributes>
 	</classpathentry>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7">
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8">
 		<attributes>
 			<attribute name="owner.project.facets" value="java"/>
 		</attributes>
diff --git a/jpa/employee/employee.model/.settings/org.eclipse.jdt.core.prefs b/jpa/employee/employee.model/.settings/org.eclipse.jdt.core.prefs
index 443e085..6e80039 100644
--- a/jpa/employee/employee.model/.settings/org.eclipse.jdt.core.prefs
+++ b/jpa/employee/employee.model/.settings/org.eclipse.jdt.core.prefs
@@ -1,8 +1,8 @@
 eclipse.preferences.version=1
 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
-org.eclipse.jdt.core.compiler.compliance=1.7
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.compliance=1.8
 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
 org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
-org.eclipse.jdt.core.compiler.source=1.7
+org.eclipse.jdt.core.compiler.source=1.8
diff --git a/jpa/employee/employee.model/.settings/org.eclipse.wst.common.project.facet.core.xml b/jpa/employee/employee.model/.settings/org.eclipse.wst.common.project.facet.core.xml
index 0bcc5bd..646ae4e 100644
--- a/jpa/employee/employee.model/.settings/org.eclipse.wst.common.project.facet.core.xml
+++ b/jpa/employee/employee.model/.settings/org.eclipse.wst.common.project.facet.core.xml
@@ -2,5 +2,5 @@
 <faceted-project>
   <installed facet="jpt.jpa" version="2.0"/>
   <installed facet="jst.utility" version="1.0"/>
-  <installed facet="java" version="1.7"/>
+  <installed facet="java" version="1.8"/>
 </faceted-project>
diff --git a/jpa/employee/employee.model/pom.xml b/jpa/employee/employee.model/pom.xml
index 70a4806..258f742 100644
--- a/jpa/employee/employee.model/pom.xml
+++ b/jpa/employee/employee.model/pom.xml
@@ -1,195 +1,195 @@
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-	<modelVersion>4.0.0</modelVersion>
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
 
-	<parent>
-		<relativePath>..</relativePath>
-		<groupId>eclipselink.example.jpa</groupId>
-		<artifactId>employee.parent</artifactId>
-		<version>2.4.2</version>
-	</parent>
+    <parent>
+        <relativePath>..</relativePath>
+        <groupId>eclipselink.example.jpa</groupId>
+        <artifactId>employee.parent</artifactId>
+        <version>2.6.0</version>
+    </parent>
 
-	<artifactId>employee.model</artifactId>
-	<packaging>jar</packaging>
-	<name>Employee Model</name>
+    <artifactId>employee.model</artifactId>
+    <packaging>jar</packaging>
+    <name>Employee Model</name>
 
-	<dependencies>
-		<dependency>
-			<groupId>${eclipselink.groupid}</groupId>
-			<artifactId>${eclipselink.artifactid}</artifactId>
-			<version>${eclipselink.version}</version>
-			<exclusions>
-				<exclusion>
-					<artifactId>commonj.sdo</artifactId>
-					<groupId>commonj.sdo</groupId>
-				</exclusion>
-			</exclusions>
-			<scope>provided</scope>
-		</dependency>
+    <dependencies>
+        <dependency>
+            <groupId>${eclipselink.groupid}</groupId>
+            <artifactId>${eclipselink.artifactid}</artifactId>
+            <version>${eclipselink.version}</version>
+            <exclusions>
+                <exclusion>
+                    <artifactId>commonj.sdo</artifactId>
+                    <groupId>commonj.sdo</groupId>
+                </exclusion>
+            </exclusions>
+            <scope>provided</scope>
+        </dependency>
 
-		<dependency>
-			<groupId>junit</groupId>
-			<artifactId>junit</artifactId>
-			<version>4.11</version>
-			<scope>test</scope>
-		</dependency>
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <version>4.11</version>
+            <scope>test</scope>
+        </dependency>
 
-		<dependency>
-			<groupId>org.apache.derby</groupId>
-			<artifactId>derby</artifactId>
-			<version>10.9.1.0</version>
-			<scope>test</scope>
-		</dependency>
+        <dependency>
+            <groupId>org.apache.derby</groupId>
+            <artifactId>derby</artifactId>
+            <version>10.11.1.1</version>
+            <scope>test</scope>
+        </dependency>
 
-		<dependency>
-			<groupId>org.glassfish</groupId>
-			<artifactId>javax.ejb</artifactId>
-			<version>3.1.1</version>
-			<scope>provided</scope>
-		</dependency>
+        <dependency>
+            <groupId>javax.ejb</groupId>
+            <artifactId>javax.ejb-api</artifactId>
+            <version>3.2</version>
+            <scope>provided</scope>
+        </dependency>
 
-	</dependencies>
+    </dependencies>
 
-	<build>
-		<defaultGoal>test</defaultGoal>
+    <build>
+        <defaultGoal>test</defaultGoal>
 
-		<plugins>
-			<plugin>
-				<groupId>org.apache.maven.plugins</groupId>
-				<artifactId>maven-surefire-plugin</artifactId>
-				<version>2.12.4</version>
-				<configuration>
-					<systemProperties>
-						<property>
-							<name>derby.stream.error.file</name>
-							<value>target/derby.log</value>
-						</property>
-					</systemProperties>
-					<argLine>"-javaagent:${settings.localRepository}/org/eclipse/persistence/eclipselink/${eclipselink.version}/eclipselink-${eclipselink.version}.jar"</argLine>
-				</configuration>
-			</plugin>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-surefire-plugin</artifactId>
+                <version>2.18</version>
+                <configuration>
+                    <systemProperties>
+                        <property>
+                            <name>derby.stream.error.file</name>
+                            <value>target/derby.log</value>
+                        </property>
+                    </systemProperties>
+                    <argLine>"-javaagent:${settings.localRepository}/org/eclipse/persistence/eclipselink/${eclipselink.version}/eclipselink-${eclipselink.version}.jar"</argLine>
+                </configuration>
+            </plugin>
 
-			<plugin>
-				<groupId>org.codehaus.mojo</groupId>
-				<artifactId>build-helper-maven-plugin</artifactId>
-				<version>1.1</version>
-				<executions>
-					<execution>
-						<id>add-source</id>
-						<phase>generate-sources</phase>
-						<goals>
-							<goal>add-source</goal>
-						</goals>
-						<configuration>
-							<sources>
-								<source>src/main/jpa-model</source>
-							</sources>
-						</configuration>
-					</execution>
-				</executions>
-			</plugin>
+            <plugin>
+                <groupId>org.codehaus.mojo</groupId>
+                <artifactId>build-helper-maven-plugin</artifactId>
+                <version>1.9.1</version>
+                <executions>
+                    <execution>
+                        <id>add-source</id>
+                        <phase>generate-sources</phase>
+                        <goals>
+                            <goal>add-source</goal>
+                        </goals>
+                        <configuration>
+                            <sources>
+                                <source>src/main/jpa-model</source>
+                            </sources>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
 
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-jar-plugin</artifactId>
+                <version>2.5</version>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>test-jar</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+        <pluginManagement>
+            <plugins>
+                <!--This plugin's configuration is used to store Eclipse m2e settings
+                only. It has no influence on the Maven build itself. -->
+                <plugin>
+                    <groupId>org.eclipse.m2e</groupId>
+                    <artifactId>lifecycle-mapping</artifactId>
+                    <version>1.0.0</version>
+                    <configuration>
+                        <lifecycleMappingMetadata>
+                            <pluginExecutions>
+                                <pluginExecution>
+                                    <pluginExecutionFilter>
+                                        <groupId>
+                                            org.codehaus.mojo
+                                        </groupId>
+                                        <artifactId>
+                                            build-helper-maven-plugin
+                                        </artifactId>
+                                        <versionRange>
+                                            [1.1,)
+                                        </versionRange>
+                                        <goals>
+                                            <goal>add-source</goal>
+                                        </goals>
+                                    </pluginExecutionFilter>
+                                    <action>
+                                        <ignore></ignore>
+                                    </action>
+                                </pluginExecution>
+                            </pluginExecutions>
+                        </lifecycleMappingMetadata>
+                    </configuration>
+                </plugin>
+            </plugins>
+        </pluginManagement>
+    </build>
+
+    <!-- Profile to demonstrate how an additional database can be configured
+    for use in testing. Also useful in populating the target database your container's
+    data source will be using. USAGE: mvn -P mysql -->
+    <profiles>
+        <profile>
+            <id>mysql</id>
+            <activation>
+                <property>
+                    <name>mysql</name>
+                </property>
+            </activation>
+            <dependencies>
+                <dependency>
+                    <groupId>mysql</groupId>
+                    <artifactId>mysql-connector-java</artifactId>
+                    <version>5.1.34</version>
+                    <scope>test</scope>
+                </dependency>
+            </dependencies>
+
+            <build>
+                <plugins>
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
-                        <artifactId>maven-jar-plugin</artifactId>
-                        <version>2.4</version>
-                        <executions>
-                            <execution>
-                                <goals>
-                                    <goal>test-jar</goal>
-                                </goals>
-                            </execution>
-                        </executions>
+                        <artifactId>maven-surefire-plugin</artifactId>
+                        <version>2.18</version>
+                        <configuration>
+                            <systemProperties>
+                                <property>
+                                    <name>javax.persistence.jdbc.url</name>
+                                    <value>jdbc:mysql://localhost:3306/employee</value>
+                                </property>
+                                <property>
+                                    <name>javax.persistence.jdbc.driver</name>
+                                    <value>com.mysql.jdbc.Driver</value>
+                                </property>
+                                <property>
+                                    <name>javax.persistence.jdbc.user</name>
+                                    <value>employee</value>
+                                </property>
+                                <property>
+                                    <name>javax.persistence.jdbc.password</name>
+                                    <value>employee</value>
+                                </property>
+                            </systemProperties>
+                        </configuration>
                     </plugin>
-		</plugins>
-		<pluginManagement>
-			<plugins>
-				<!--This plugin's configuration is used to store Eclipse m2e settings 
-					only. It has no influence on the Maven build itself. -->
-				<plugin>
-					<groupId>org.eclipse.m2e</groupId>
-					<artifactId>lifecycle-mapping</artifactId>
-					<version>1.0.0</version>
-					<configuration>
-						<lifecycleMappingMetadata>
-							<pluginExecutions>
-								<pluginExecution>
-									<pluginExecutionFilter>
-										<groupId>
-											org.codehaus.mojo
-										</groupId>
-										<artifactId>
-											build-helper-maven-plugin
-										</artifactId>
-										<versionRange>
-											[1.1,)
-										</versionRange>
-										<goals>
-											<goal>add-source</goal>
-										</goals>
-									</pluginExecutionFilter>
-									<action>
-										<ignore></ignore>
-									</action>
-								</pluginExecution>
-							</pluginExecutions>
-						</lifecycleMappingMetadata>
-					</configuration>
-				</plugin>
-			</plugins>
-		</pluginManagement>
-	</build>
-
-	<!-- Profile to demonstrate how an additional database can be configured 
-		for use in testing. Also useful in populating the target database your container's 
-		data source will be using. USAGE: mvn -P mysql -->
-	<profiles>
-		<profile>
-			<id>mysql</id>
-			<activation>
-				<property>
-					<name>mysql</name>
-				</property>
-			</activation>
-			<dependencies>
-				<dependency>
-					<groupId>mysql</groupId>
-					<artifactId>mysql-connector-java</artifactId>
-					<version>5.1.22</version>
-					<scope>test</scope>
-				</dependency>
-			</dependencies>
-
-			<build>
-				<plugins>
-					<plugin>
-						<groupId>org.apache.maven.plugins</groupId>
-						<artifactId>maven-surefire-plugin</artifactId>
-						<version>2.12.4</version>
-						<configuration>
-							<systemProperties>
-								<property>
-									<name>javax.persistence.jdbc.url</name>
-									<value>jdbc:mysql://localhost:3306/employee</value>
-								</property>
-								<property>
-									<name>javax.persistence.jdbc.driver</name>
-									<value>com.mysql.jdbc.Driver</value>
-								</property>
-								<property>
-									<name>javax.persistence.jdbc.user</name>
-									<value>employee</value>
-								</property>
-								<property>
-									<name>javax.persistence.jdbc.password</name>
-									<value>employee</value>
-								</property>
-							</systemProperties>
-						</configuration>
-					</plugin>
-				</plugins>
-			</build>
-		</profile>
-	</profiles>
+                </plugins>
+            </build>
+        </profile>
+    </profiles>
 
 </project>
diff --git a/jpa/employee/employee.model/src/main/java/eclipselink/example/jpa/employee/model/Employee.java b/jpa/employee/employee.model/src/main/java/eclipselink/example/jpa/employee/model/Employee.java
index a10b241..03f960e 100644
--- a/jpa/employee/employee.model/src/main/java/eclipselink/example/jpa/employee/model/Employee.java
+++ b/jpa/employee/employee.model/src/main/java/eclipselink/example/jpa/employee/model/Employee.java
@@ -10,6 +10,7 @@
  * Contributors:
  *              dclarke - initial JPA Employee example using XML (bug 217884)
  *              mbraeuer - annotated version, transformation
+ *              jclingan - Updated to use JPA 2.1 Attribute Converters
  ******************************************************************************/
 package eclipselink.example.jpa.employee.model;
 
@@ -22,6 +23,7 @@
 import javax.persistence.CascadeType;
 import javax.persistence.CollectionTable;
 import javax.persistence.Column;
+import javax.persistence.Convert;
 import javax.persistence.ElementCollection;
 import javax.persistence.Embedded;
 import javax.persistence.Entity;
@@ -38,9 +40,6 @@
 import javax.persistence.SecondaryTable;
 import javax.persistence.Version;
 
-import org.eclipse.persistence.annotations.ConversionValue;
-import org.eclipse.persistence.annotations.Convert;
-import org.eclipse.persistence.annotations.ObjectTypeConverter;
 import org.eclipse.persistence.annotations.PrivateOwned;
 import org.eclipse.persistence.config.HintValues;
 import org.eclipse.persistence.config.QueryHints;
@@ -49,11 +48,11 @@
  * TODO
  * 
  * @author dclarke
- * @since EclipseLink 1.1
+ * @author jclingan
+ * @since EclipseLink 2.5.2
  */
 @Entity
 @SecondaryTable(name = "SALARY")
-@ObjectTypeConverter(name = "gender", objectType = Gender.class, dataType = String.class, conversionValues = { @ConversionValue(dataValue = "M", objectValue = "Male"), @ConversionValue(dataValue = "F", objectValue = "Female") })
 @NamedQueries({ 
 	@NamedQuery(name = "Employee.findAll", query = "SELECT e FROM Employee e ORDER BY e.id"),
 	@NamedQuery(name = "Employee.findByName", query = "SELECT e FROM Employee e WHERE e.firstName LIKE :firstName AND e.lastName LIKE :lastName"),
@@ -80,7 +79,7 @@
      */
     @Basic
     @Column(name = "GENDER")
-    @Convert("gender")
+    @Convert(converter = GenderConverter.class)
     private Gender gender = Gender.Male;
 
     @Column(name = "L_NAME")
diff --git a/jpa/employee/employee.model/src/main/java/eclipselink/example/jpa/employee/model/GenderConverter.java b/jpa/employee/employee.model/src/main/java/eclipselink/example/jpa/employee/model/GenderConverter.java
new file mode 100644
index 0000000..751d127
--- /dev/null
+++ b/jpa/employee/employee.model/src/main/java/eclipselink/example/jpa/employee/model/GenderConverter.java
@@ -0,0 +1,57 @@
+/*******************************************************************************
+ * Copyright (c) 1998, 2011, 2014 Oracle. All rights reserved.
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0
+ * which accompanies this distribution.
+ * The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html
+ * and the Eclipse Distribution License is available at
+ * http://www.eclipse.org/org/documents/edl-v10.php.
+ *
+ * Contributors:
+ * 	dclarke - initial JPA Employee example using XML (bug 217884)
+ *      jclingan - Updated to support JPA 2.1 Attribute Converters
+ ******************************************************************************/
+package eclipselink.example.jpa.employee.model;
+
+import javax.persistence.AttributeConverter;
+import javax.persistence.Converter;
+
+/**
+ * Simple enum used in an ObjectTypeConverter
+ *
+ * @see Employee#gender
+ * @author jclingan
+ * @since 2.5.2
+ */
+
+@Converter(autoApply = true)
+public class GenderConverter implements AttributeConverter<Gender, String> {
+
+	@Override
+	public String convertToDatabaseColumn(Gender gender) {
+		switch (gender) {
+		case Male:
+			return "M";
+
+		case Female:
+			return "F";
+
+		default:
+			throw new IllegalArgumentException("Invalid gender: " + gender);
+		}
+	}
+
+	@Override
+	public Gender convertToEntityAttribute(String gender) {
+		switch (gender) {
+		case "M":
+			return Gender.Male;
+
+		case "F":
+			return Gender.Female;
+
+		default:
+			throw new IllegalArgumentException("Invalid gender code: " + gender);
+		}
+	}
+}
diff --git a/jpa/employee/employee.model/src/main/jpa-model/eclipselink/example/jpa/employee/model/GenderConverter_.java b/jpa/employee/employee.model/src/main/jpa-model/eclipselink/example/jpa/employee/model/GenderConverter_.java
new file mode 100644
index 0000000..98462c4
--- /dev/null
+++ b/jpa/employee/employee.model/src/main/jpa-model/eclipselink/example/jpa/employee/model/GenderConverter_.java
@@ -0,0 +1,9 @@
+package eclipselink.example.jpa.employee.model;
+
+import javax.annotation.Generated;
+import javax.persistence.metamodel.StaticMetamodel;
+
+@Generated(value="Dali", date="2014-11-25T17:42:48.314-0800")
+@StaticMetamodel(GenderConverter.class)
+public class GenderConverter_ {
+}
diff --git a/jpa/employee/employee.model/src/main/resources/META-INF/persistence.xml b/jpa/employee/employee.model/src/main/resources/META-INF/persistence.xml
index 202a0f6..278f3d8 100644
--- a/jpa/employee/employee.model/src/main/resources/META-INF/persistence.xml
+++ b/jpa/employee/employee.model/src/main/resources/META-INF/persistence.xml
@@ -1,21 +1,27 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
+<persistence version="2.1"
+             xmlns="http://xmlns.jcp.org/xml/ns/persistence"
+             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+             xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">
+
 	<persistence-unit name="employee" transaction-type="JTA">
 		<jta-data-source>jdbc/employeeDS</jta-data-source>
 		<class>eclipselink.example.jpa.employee.model.Address</class>
 		<class>eclipselink.example.jpa.employee.model.Employee</class>
 		<class>eclipselink.example.jpa.employee.model.PhoneNumber</class>
 		<class>eclipselink.example.jpa.employee.model.EmploymentPeriod</class>
+		<class>eclipselink.example.jpa.employee.model.GenderConverter</class>
 		<properties>
-			<property name="eclipselink.logging.level" value="FINE"/>
-			<property name="eclipselink.logging.timestamp" value="false"/>
-			<property name="eclipselink.logging.thread" value="false"/>
-			<property name="eclipselink.logging.session" value="false"/>
-			<property name="eclipselink.logging.exceptions" value="false"/>
-			<property name="eclipselink.logging.connection" value="false"/>
-			<property name="eclipselink.logging.level.metadata" value="WARNING"/>
-			<property name="eclipselink.logging.parameters" value="true"/>
-			<property name="eclipselink.logging.logger" value="DefaultLogger"/>
+			<property name="eclipselink.ddl-generation" value="drop-and-create-tables" />
+			<property name="eclipselink.logging.level" value="FINE" />
+			<property name="eclipselink.logging.timestamp" value="false" />
+			<property name="eclipselink.logging.thread" value="false" />
+			<property name="eclipselink.logging.session" value="false" />
+			<property name="eclipselink.logging.exceptions" value="false" />
+			<property name="eclipselink.logging.connection" value="false" />
+			<property name="eclipselink.logging.level.metadata" value="WARNING" />
+			<property name="eclipselink.logging.parameters" value="true" />
+			<property name="eclipselink.logging.logger" value="DefaultLogger" />
 		</properties>
 	</persistence-unit>
 </persistence>
diff --git a/jpa/employee/employee.model/src/test/java/example/JavaSEExample.java b/jpa/employee/employee.model/src/test/java/example/JavaSEExample.java
index dca4972..35d2315 100644
--- a/jpa/employee/employee.model/src/test/java/example/JavaSEExample.java
+++ b/jpa/employee/employee.model/src/test/java/example/JavaSEExample.java
@@ -19,6 +19,7 @@
 import javax.persistence.TypedQuery;
 
 import eclipselink.example.jpa.employee.model.Employee;
+import eclipselink.example.jpa.employee.model.Gender;
 import eclipselink.example.jpa.employee.model.SamplePopulation;
 import eclipselink.example.jpa.employee.test.PersistenceTesting;
 
@@ -42,6 +43,15 @@
 
             em.getTransaction().begin();
             new SamplePopulation().createNewEmployees(em, 10);
+
+            // Add employee with 555 area code to satisfy a test query
+            Employee e = new Employee();
+            e.setFirstName("John");
+            e.setLastName("Doe");
+            e.setGender(Gender.Male);
+            e.addPhoneNumber("HOME", "555", "5552222");
+            em.persist(e);
+
             em.getTransaction().commit();
             em.clear();
 
@@ -68,9 +78,8 @@
         List<Employee> results = em.createQuery("SELECT e FROM Employee e", Employee.class).getResultList();
 
         System.out.println("Query All Results: " + results.size());
-        for (Employee emp : results) {
-            System.out.println("\t> " + emp);
-        }
+
+        results.forEach(e -> System.out.println("\t>" + e));
     }
 
     public void queryEmployeeLikeAreaCode55(EntityManager em) {
@@ -79,9 +88,7 @@
         TypedQuery<Employee> query = em.createQuery("SELECT e FROM Employee e JOIN e.phoneNumbers phones WHERE phones.areaCode LIKE '55%'", Employee.class);
         List<Employee> emps = query.getResultList();
 
-        for (Employee e : emps) {
-            System.out.println("> " + e);
-        }
+        emps.forEach(e -> System.out.println("> " + e));
     }
 
     public void modifyEmployee(EntityManager em, int id) {
diff --git a/jpa/employee/employee.web-js/.classpath b/jpa/employee/employee.web-js/.classpath
index 6ffea0a..53d2672 100644
--- a/jpa/employee/employee.web-js/.classpath
+++ b/jpa/employee/employee.web-js/.classpath
@@ -18,7 +18,7 @@
 			<attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/>
 		</attributes>
 	</classpathentry>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7">
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8">
 		<attributes>
 			<attribute name="owner.project.facets" value="java"/>
 		</attributes>
diff --git a/jpa/employee/employee.web-js/.settings/org.eclipse.jdt.core.prefs b/jpa/employee/employee.web-js/.settings/org.eclipse.jdt.core.prefs
index 443e085..6e80039 100644
--- a/jpa/employee/employee.web-js/.settings/org.eclipse.jdt.core.prefs
+++ b/jpa/employee/employee.web-js/.settings/org.eclipse.jdt.core.prefs
@@ -1,8 +1,8 @@
 eclipse.preferences.version=1
 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
-org.eclipse.jdt.core.compiler.compliance=1.7
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.compliance=1.8
 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
 org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
-org.eclipse.jdt.core.compiler.source=1.7
+org.eclipse.jdt.core.compiler.source=1.8
diff --git a/jpa/employee/employee.web-js/.settings/org.eclipse.wst.common.component b/jpa/employee/employee.web-js/.settings/org.eclipse.wst.common.component
index 35a337b..882c79e 100644
--- a/jpa/employee/employee.web-js/.settings/org.eclipse.wst.common.component
+++ b/jpa/employee/employee.web-js/.settings/org.eclipse.wst.common.component
@@ -3,7 +3,7 @@
         <wb-resource deploy-path="/" source-path="/target/m2e-wtp/web-resources"/>
         <wb-resource deploy-path="/" source-path="/src/main/webapp" tag="defaultRootSource"/>
         <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/java"/>
-        <dependent-module archiveName="employee.model-2.4.2.jar" deploy-path="/WEB-INF/lib" handle="module:/resource/employee.model/employee.model">
+        <dependent-module archiveName="employee.model-2.6.0-M3.jar" deploy-path="/WEB-INF/lib" handle="module:/resource/employee.model/employee.model">
             <dependency-type>uses</dependency-type>
         </dependent-module>
         <property name="java-output-path" value="/Employee Example - web - js/target/classes"/>
diff --git a/jpa/employee/employee.web-js/.settings/org.eclipse.wst.common.project.facet.core.xml b/jpa/employee/employee.web-js/.settings/org.eclipse.wst.common.project.facet.core.xml
index 87eed3e..c962a68 100644
--- a/jpa/employee/employee.web-js/.settings/org.eclipse.wst.common.project.facet.core.xml
+++ b/jpa/employee/employee.web-js/.settings/org.eclipse.wst.common.project.facet.core.xml
@@ -5,5 +5,5 @@
   <installed facet="jst.jaxrs" version="1.1"/>
   <installed facet="jst.web" version="3.0"/>
   <installed facet="jst.jsf" version="2.0"/>
-  <installed facet="java" version="1.7"/>
+  <installed facet="java" version="1.8"/>
 </faceted-project>
diff --git a/jpa/employee/employee.web-js/pom.xml b/jpa/employee/employee.web-js/pom.xml
index e8add37..39454d2 100644
--- a/jpa/employee/employee.web-js/pom.xml
+++ b/jpa/employee/employee.web-js/pom.xml
@@ -6,7 +6,7 @@
 		<relativePath>..</relativePath>
 		<groupId>eclipselink.example.jpa</groupId>
 		<artifactId>employee.parent</artifactId>
-		<version>2.4.2</version>
+		<version>2.6.0</version>
 	</parent>
 
 	<artifactId>employee.web-js</artifactId>
diff --git a/jpa/employee/employee.web/.classpath b/jpa/employee/employee.web/.classpath
index 4152630..638129d 100644
--- a/jpa/employee/employee.web/.classpath
+++ b/jpa/employee/employee.web/.classpath
@@ -13,16 +13,16 @@
 			<attribute name="maven.pomderived" value="true"/>
 		</attributes>
 	</classpathentry>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6">
-		<attributes>
-			<attribute name="maven.pomderived" value="true"/>
-		</attributes>
-	</classpathentry>
 	<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
 		<attributes>
 			<attribute name="maven.pomderived" value="true"/>
 			<attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/>
 		</attributes>
 	</classpathentry>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8">
+		<attributes>
+			<attribute name="owner.project.facets" value="java"/>
+		</attributes>
+	</classpathentry>
 	<classpathentry kind="output" path="target/classes"/>
 </classpath>
diff --git a/jpa/employee/employee.web/.settings/org.eclipse.jdt.core.prefs b/jpa/employee/employee.web/.settings/org.eclipse.jdt.core.prefs
index 107056a..672496e 100644
--- a/jpa/employee/employee.web/.settings/org.eclipse.jdt.core.prefs
+++ b/jpa/employee/employee.web/.settings/org.eclipse.jdt.core.prefs
@@ -1,12 +1,12 @@
 eclipse.preferences.version=1
 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.compliance=1.8
 org.eclipse.jdt.core.compiler.debug.lineNumber=generate
 org.eclipse.jdt.core.compiler.debug.localVariable=generate
 org.eclipse.jdt.core.compiler.debug.sourceFile=generate
 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
 org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
-org.eclipse.jdt.core.compiler.source=1.6
+org.eclipse.jdt.core.compiler.source=1.8
diff --git a/jpa/employee/employee.web/.settings/org.eclipse.wst.common.component b/jpa/employee/employee.web/.settings/org.eclipse.wst.common.component
index 8c51fb6..3583a7f 100644
--- a/jpa/employee/employee.web/.settings/org.eclipse.wst.common.component
+++ b/jpa/employee/employee.web/.settings/org.eclipse.wst.common.component
@@ -4,7 +4,7 @@
         <wb-resource deploy-path="/" source-path="/src/main/webapp" tag="defaultRootSource"/>
         <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/java"/>
         <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/resources"/>
-        <dependent-module archiveName="employee.model-2.4.2.jar" deploy-path="/WEB-INF/lib" handle="module:/resource/employee.model/employee.model">
+        <dependent-module archiveName="employee.model-2.6.0-M3.jar" deploy-path="/WEB-INF/lib" handle="module:/resource/employee.model/employee.model">
             <dependency-type>uses</dependency-type>
         </dependent-module>
         <property name="java-output-path" value="/Employee Example - web/target/classes"/>
diff --git a/jpa/employee/employee.web/.settings/org.eclipse.wst.common.project.facet.core.xml b/jpa/employee/employee.web/.settings/org.eclipse.wst.common.project.facet.core.xml
index 894549e..543e7af 100644
--- a/jpa/employee/employee.web/.settings/org.eclipse.wst.common.project.facet.core.xml
+++ b/jpa/employee/employee.web/.settings/org.eclipse.wst.common.project.facet.core.xml
@@ -3,6 +3,6 @@
   <installed facet="jst.web" version="3.0"/>
   <installed facet="wst.jsdt.web" version="1.0"/>
   <installed facet="jst.jsf" version="2.1"/>
-  <installed facet="java" version="1.6"/>
   <installed facet="jst.jaxrs" version="1.1"/>
+  <installed facet="java" version="1.8"/>
 </faceted-project>
diff --git a/jpa/employee/employee.web/.settings/org.eclipse.wst.validation.prefs b/jpa/employee/employee.web/.settings/org.eclipse.wst.validation.prefs
new file mode 100644
index 0000000..04cad8c
--- /dev/null
+++ b/jpa/employee/employee.web/.settings/org.eclipse.wst.validation.prefs
@@ -0,0 +1,2 @@
+disabled=06target
+eclipse.preferences.version=1
diff --git a/jpa/employee/employee.web/pom.xml b/jpa/employee/employee.web/pom.xml
index f925aa8..734e4da 100644
--- a/jpa/employee/employee.web/pom.xml
+++ b/jpa/employee/employee.web/pom.xml
@@ -6,7 +6,7 @@
 		<relativePath>..</relativePath>
 		<groupId>eclipselink.example.jpa</groupId>
 		<artifactId>employee.parent</artifactId>
-		<version>2.4.2</version>
+		<version>2.6.0</version>
 	</parent>
 
 	<artifactId>employee.web</artifactId>
@@ -52,7 +52,7 @@
                 <dependency>
                     <groupId>org.apache.derby</groupId>
                     <artifactId>derby</artifactId>
-                    <version>10.9.1.0</version>
+                    <version>10.11.1.1</version>
                     <scope>test</scope>
                 </dependency>
 
@@ -63,18 +63,11 @@
 			<scope>provided</scope>
 		</dependency>
 		<dependency>
-			<groupId>org.glassfish</groupId>
-			<artifactId>javax.ejb</artifactId>
-			<version>3.1.1</version>
+			<groupId>javax.ejb</groupId>
+			<artifactId>javax.ejb-api</artifactId>
+			<version>3.2</version>
 			<scope>provided</scope>
 		</dependency>
-		<dependency>
-			<groupId>org.eclipse.persistence</groupId>
-			<artifactId>javax.persistence</artifactId>
-			<version>2.0.0</version>
-			<scope>provided</scope>
-		</dependency>
-
 	</dependencies>
 
 
@@ -87,7 +80,7 @@
 			<plugin>
 				<groupId>org.apache.maven.plugins</groupId>
 				<artifactId>maven-surefire-plugin</artifactId>
-				<version>2.12.4</version>
+				<version>2.18</version>
 				<configuration>
 					<systemProperties>
 						<property>
diff --git a/jpa/employee/employee.web/src/main/java/eclipselink/example/jpa/employee/web/Admin.java b/jpa/employee/employee.web/src/main/java/eclipselink/example/jpa/employee/web/Admin.java
index 6be0b7f..bffcf7e 100644
--- a/jpa/employee/employee.web/src/main/java/eclipselink/example/jpa/employee/web/Admin.java
+++ b/jpa/employee/employee.web/src/main/java/eclipselink/example/jpa/employee/web/Admin.java
@@ -84,10 +84,10 @@
             // Truncate at 5 messages
             trace.truncate(5, "... SQL trace truncated");
 
-            for (String entry : trace.getEntries()) {
+            trace.getEntries().forEach(entry -> {
                 FacesMessage msg = new FacesMessage(entry);
                 FacesContext.getCurrentInstance().addMessage("SQL", msg);
-            }
+            });
         }
         return null;
     }
diff --git a/jpa/employee/employee.web/src/test/java/eclipselink/example/jpa/employee/test/services/PageEmployeesTest.java b/jpa/employee/employee.web/src/test/java/eclipselink/example/jpa/employee/test/services/PageEmployeesTest.java
index 92d50c2..be8ffa1 100644
--- a/jpa/employee/employee.web/src/test/java/eclipselink/example/jpa/employee/test/services/PageEmployeesTest.java
+++ b/jpa/employee/employee.web/src/test/java/eclipselink/example/jpa/employee/test/services/PageEmployeesTest.java
@@ -69,9 +69,8 @@
         for (int index = 0; index < 5; index++) {
             List<Employee> emps = paging.get(index + 1);
             Assert.assertEquals(5, emps.size());
-            for (Employee e : emps) {
-                System.out.println("> " + e);
-            }
+            emps.forEach(e -> System.out.println("> " + e));
+
         }
 
         Assert.assertFalse(paging.hasNext());
@@ -105,9 +104,7 @@
         for (int index = 0; index < 5; index++) {
             List<Employee> emps = paging.next();
             Assert.assertEquals(5, emps.size());
-            for (Employee e : emps) {
-                System.out.println("> " + e);
-            }
+            emps.forEach(e -> System.out.println("> " + e));
         }
 
         Assert.assertFalse(paging.hasNext());
@@ -142,9 +139,7 @@
         for (int index = 0; index < paging.getNumPages(); index++) {
             List<Employee> emps = paging.get(index + 1);
             Assert.assertEquals(index < 2 ? 10 : 5, emps.size());
-            for (Employee e : emps) {
-                System.out.println("> " + e);
-            }
+            emps.forEach(e -> System.out.println("> " + e));
         }
 
         Assert.assertFalse(paging.hasNext());
@@ -179,9 +174,7 @@
         for (int index = 0; index < paging.getNumPages(); index++) {
             List<Employee> emps = paging.next();
             Assert.assertEquals(index < 2 ? 10 : 5, emps.size());
-            for (Employee e : emps) {
-                System.out.println("> " + e);
-            }
+            emps.forEach(e -> System.out.println("> " + e));
         }
 
         Assert.assertFalse(paging.hasNext());
diff --git a/jpa/employee/employee.web/src/test/java/eclipselink/example/jpa/employee/test/services/PageIdsInEmployeesTest.java b/jpa/employee/employee.web/src/test/java/eclipselink/example/jpa/employee/test/services/PageIdsInEmployeesTest.java
index 4f05bb3..023b3fb 100644
--- a/jpa/employee/employee.web/src/test/java/eclipselink/example/jpa/employee/test/services/PageIdsInEmployeesTest.java
+++ b/jpa/employee/employee.web/src/test/java/eclipselink/example/jpa/employee/test/services/PageIdsInEmployeesTest.java
@@ -68,9 +68,8 @@
         for (int index = 0; index < 5; index++) {
             List<Employee> emps = paging.get(index + 1);
             Assert.assertEquals(5, emps.size());
-            for (Employee e : emps) {
-                System.out.println("> " + e);
-            }
+            System.out.println("Page 5 by Index:");
+            emps.forEach(e -> System.out.println("> " + e));
         }
 
         Assert.assertFalse(paging.hasNext());
@@ -101,9 +100,7 @@
         for (int index = 0; index < 5; index++) {
             List<Employee> emps = paging.next();
             Assert.assertEquals(5, emps.size());
-            for (Employee e : emps) {
-                System.out.println("> " + e);
-            }
+            emps.forEach(e -> System.out.println("> " + e));
         }
 
         Assert.assertFalse(paging.hasNext());
@@ -136,9 +133,7 @@
         for (int index = 0; index < paging.getNumPages(); index++) {
             List<Employee> emps = paging.get(index + 1);
             Assert.assertEquals(index < 2 ? 10 : 5, emps.size());
-            for (Employee e : emps) {
-                System.out.println("> " + e);
-            }
+            emps.forEach(e -> System.out.println("> " + e));
         }
 
         Assert.assertFalse(paging.hasNext());
@@ -170,9 +165,7 @@
         for (int index = 0; index < paging.getNumPages(); index++) {
             List<Employee> emps = paging.next();
             Assert.assertEquals(index < 2 ? 10 : 5, emps.size());
-            for (Employee e : emps) {
-                System.out.println("> " + e);
-            }
+            emps.forEach(e -> System.out.println("> " + e));
         }
 
         Assert.assertFalse(paging.hasNext());
diff --git a/jpa/employee/pom.xml b/jpa/employee/pom.xml
index 0985198..13274f5 100644
--- a/jpa/employee/pom.xml
+++ b/jpa/employee/pom.xml
@@ -1,54 +1,40 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-	<modelVersion>4.0.0</modelVersion>
-    
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
     <parent>
-		<relativePath>..</relativePath>
-		<groupId>eclipselink.example.jpa</groupId>
-		<artifactId>parent</artifactId>
-		<version>2.4.2</version>
-	</parent>
-    
-	<artifactId>employee.parent</artifactId>
-	<packaging>pom</packaging>
+        <relativePath>..</relativePath>
+        <groupId>eclipselink.example.jpa</groupId>
+        <artifactId>parent</artifactId>
+        <version>2.6.0</version>
+    </parent>
 
-	<name>Employee Example</name>
-	<url>http://wiki.eclipse.org/EclipseLink/Examples/Employee</url>
+    <artifactId>employee.parent</artifactId>
+    <packaging>pom</packaging>
 
+    <name>Employee Example</name>
+    <url>http://wiki.eclipse.org/EclipseLink/Examples/Employee</url>
+    <properties>
+        <eclipselink.version>2.6.0</eclipselink.version>
+    </properties>
 
-	<modules>
+    <modules>
         <module>employee.model</module>
         <module>employee.web-js</module>
         <module>employee.web</module>
-	</modules>
+    </modules>
 
-	<build>
-		<defaultGoal>install</defaultGoal>
-        
-        <plugins>
-            <plugin>
-				<groupId>org.apache.maven.plugins</groupId>
-				<artifactId>maven-compiler-plugin</artifactId>
-				<version>2.3.2</version>
-				<configuration>
-					<source>1.7</source>
-					<target>1.7</target>
-				</configuration>
-			</plugin>
-        </plugins>
-	</build>
-    
     <profiles>
         <profile>
             <id>weblogic</id>
-            
+
             <build>
                 <plugins>
                     <plugin>
                         <groupId>com.oracle.weblogic</groupId>
                         <artifactId>weblogic-maven-plugin</artifactId>
-                        <version>12.1.2</version>
+                        <version>12.1.3</version>
                         <configuration>
                             <adminurl>t3://localhost:7001</adminurl>
                             <user>weblogic</user>
@@ -60,14 +46,14 @@
                             <source>${project.build.directory}/${project.build.finalName}.${project.packaging}</source>
                             <name>${project.build.finalName}</name>
                         </configuration>
-                         <executions> 
-                         <execution> 
-                         <phase>install</phase> 
-                         <goals> 
-                         <goal>deploy</goal> 
-                         </goals> 
-                         </execution> 
-                         </executions> 
+                        <executions>
+                            <execution>
+                                <phase>install</phase>
+                                <goals>
+                                    <goal>deploy</goal>
+                                </goals>
+                            </execution>
+                        </executions>
                     </plugin>
                 </plugins>
             </build>
diff --git a/jpa/polyglot/polyglot.client/.settings/org.eclipse.jdt.core.prefs b/jpa/polyglot/polyglot.client/.settings/org.eclipse.jdt.core.prefs
index ec4300d..714351a 100644
--- a/jpa/polyglot/polyglot.client/.settings/org.eclipse.jdt.core.prefs
+++ b/jpa/polyglot/polyglot.client/.settings/org.eclipse.jdt.core.prefs
@@ -1,5 +1,5 @@
 eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
-org.eclipse.jdt.core.compiler.compliance=1.7
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.compliance=1.8
 org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
-org.eclipse.jdt.core.compiler.source=1.7
+org.eclipse.jdt.core.compiler.source=1.8
diff --git a/jpa/polyglot/polyglot.client/pom.xml b/jpa/polyglot/polyglot.client/pom.xml
index 28d3f3e..823347c 100644
--- a/jpa/polyglot/polyglot.client/pom.xml
+++ b/jpa/polyglot/polyglot.client/pom.xml
@@ -5,7 +5,7 @@
 		<relativePath>..</relativePath>
 		<groupId>eclipselink.example.polyglot</groupId>
 		<artifactId>parent</artifactId>
-		<version>2.4.2</version>
+		<version>2.6.0</version>
 	</parent>
 
 	<artifactId>polyglot.client</artifactId>
@@ -24,7 +24,7 @@
 			<plugin>
 				<groupId>org.apache.maven.plugins</groupId>
 				<artifactId>maven-dependency-plugin</artifactId>
-				<version>2.1</version>
+				<version>2.9</version>
 				<executions>
 					<execution>
 						<id>copy-dependencies</id>
@@ -81,4 +81,4 @@
 			</plugins>
 		</pluginManagement>
 	</build>
-</project>
\ No newline at end of file
+</project>
diff --git a/jpa/polyglot/polyglot.composite/.settings/org.eclipse.jdt.core.prefs b/jpa/polyglot/polyglot.composite/.settings/org.eclipse.jdt.core.prefs
index 443e085..6e80039 100644
--- a/jpa/polyglot/polyglot.composite/.settings/org.eclipse.jdt.core.prefs
+++ b/jpa/polyglot/polyglot.composite/.settings/org.eclipse.jdt.core.prefs
@@ -1,8 +1,8 @@
 eclipse.preferences.version=1
 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
-org.eclipse.jdt.core.compiler.compliance=1.7
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.compliance=1.8
 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
 org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
-org.eclipse.jdt.core.compiler.source=1.7
+org.eclipse.jdt.core.compiler.source=1.8
diff --git a/jpa/polyglot/polyglot.composite/pom.xml b/jpa/polyglot/polyglot.composite/pom.xml
index fd08913..5a3ad17 100644
--- a/jpa/polyglot/polyglot.composite/pom.xml
+++ b/jpa/polyglot/polyglot.composite/pom.xml
@@ -6,7 +6,7 @@
 		<relativePath>..</relativePath>
 		<groupId>eclipselink.example.polyglot</groupId>
 		<artifactId>parent</artifactId>
-		<version>2.4.2</version>
+		<version>2.6.0</version>
 	</parent>
 
 	<artifactId>polyglot.composite</artifactId>
@@ -24,4 +24,4 @@
 			<version>${project.version}</version>
 		</dependency>
 	</dependencies>
-</project>
\ No newline at end of file
+</project>
diff --git a/jpa/polyglot/polyglot.nosql/.settings/org.eclipse.jdt.core.prefs b/jpa/polyglot/polyglot.nosql/.settings/org.eclipse.jdt.core.prefs
index 77dd058..c80fe67 100644
--- a/jpa/polyglot/polyglot.nosql/.settings/org.eclipse.jdt.core.prefs
+++ b/jpa/polyglot/polyglot.nosql/.settings/org.eclipse.jdt.core.prefs
@@ -5,8 +5,8 @@
 org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
 org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
-org.eclipse.jdt.core.compiler.compliance=1.7
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.compliance=1.8
 org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
 org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
@@ -88,4 +88,4 @@
 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.7
+org.eclipse.jdt.core.compiler.source=1.8
diff --git a/jpa/polyglot/polyglot.nosql/pom.xml b/jpa/polyglot/polyglot.nosql/pom.xml
index cee90ba..a16205a 100644
--- a/jpa/polyglot/polyglot.nosql/pom.xml
+++ b/jpa/polyglot/polyglot.nosql/pom.xml
@@ -5,7 +5,7 @@
 		<relativePath>..</relativePath>
 		<groupId>eclipselink.example.polyglot</groupId>
 		<artifactId>parent</artifactId>
-		<version>2.4.2</version>
+		<version>2.6.0</version>
 	</parent>
 
     <artifactId>polyglot.nosql</artifactId>
@@ -36,4 +36,4 @@
 			<version>1.5</version>
 		</dependency>
 	</dependencies>
-</project>
\ No newline at end of file
+</project>
diff --git a/jpa/polyglot/polyglot.relational/.settings/org.eclipse.jdt.core.prefs b/jpa/polyglot/polyglot.relational/.settings/org.eclipse.jdt.core.prefs
index 443e085..6e80039 100644
--- a/jpa/polyglot/polyglot.relational/.settings/org.eclipse.jdt.core.prefs
+++ b/jpa/polyglot/polyglot.relational/.settings/org.eclipse.jdt.core.prefs
@@ -1,8 +1,8 @@
 eclipse.preferences.version=1
 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
-org.eclipse.jdt.core.compiler.compliance=1.7
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.compliance=1.8
 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
 org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
-org.eclipse.jdt.core.compiler.source=1.7
+org.eclipse.jdt.core.compiler.source=1.8
diff --git a/jpa/polyglot/polyglot.relational/pom.xml b/jpa/polyglot/polyglot.relational/pom.xml
index 661cce7..c15bf84 100644
--- a/jpa/polyglot/polyglot.relational/pom.xml
+++ b/jpa/polyglot/polyglot.relational/pom.xml
@@ -1,12 +1,11 @@
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 	<modelVersion>4.0.0</modelVersion>
-	
     <parent>
 		<relativePath>..</relativePath>
 		<groupId>eclipselink.example.polyglot</groupId>
 		<artifactId>parent</artifactId>
-		<version>2.4.2</version>
+		<version>2.6.0</version>
 	</parent>
     
     <artifactId>polyglot.relational</artifactId>
@@ -16,7 +15,7 @@
 		<dependency>
 			<groupId>${eclipselink.groupid}</groupId>
 			<artifactId>javax.persistence</artifactId>
-			<version>2.0.5</version>
+			<version>2.1.0</version>
 		</dependency>
 		<dependency>
 			<groupId>${eclipselink.groupid}</groupId>
@@ -25,7 +24,7 @@
         <dependency>
             <groupId>org.apache.derby</groupId>
             <artifactId>derby</artifactId>
-            <version>10.9.1.0</version>
+            <version>10.11.1.1</version>
         </dependency>
 	</dependencies>
-</project>
\ No newline at end of file
+</project>
diff --git a/jpa/polyglot/pom.xml b/jpa/polyglot/pom.xml
index 1ac8aaa..6259c1a 100644
--- a/jpa/polyglot/pom.xml
+++ b/jpa/polyglot/pom.xml
@@ -7,20 +7,20 @@
             <relativePath>..</relativePath>
             <groupId>eclipselink.example.jpa</groupId>
             <artifactId>parent</artifactId>
-            <version>2.4.2</version>
+            <version>2.6.0</version>
         </parent>
 
     <groupId>eclipselink.example.polyglot</groupId>
 	<artifactId>parent</artifactId>
 	<packaging>pom</packaging>
-    <version>2.4.2</version>
+    <version>2.6.0</version>
 
 	<name>Polyglot Example</name>
 
     <properties>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
         <eclipselink.groupid>org.eclipse.persistence</eclipselink.groupid>
-        <eclipselink.version>2.4.2</eclipselink.version>
+        <eclipselink.version>2.6.0</eclipselink.version>
     </properties>
 
         <dependencyManagement>
@@ -48,7 +48,7 @@
 	<build>
 		<defaultGoal>install</defaultGoal>
         
-        <plugins>
+        <!--plugins>
             <plugin>
 				<groupId>org.apache.maven.plugins</groupId>
 				<artifactId>maven-compiler-plugin</artifactId>
@@ -58,15 +58,15 @@
 					<target>1.7</target>
 				</configuration>
 			</plugin>
-        </plugins>
+        </plugins-->
 	</build>
     
-    <repositories>
+    <!--repositories>
         <repository>
             <id>oss.sonatype.org</id>
             <name>OSS Sonatype Staging</name>
             <url>https://oss.sonatype.org/content/groups/staging</url>
         </repository>
-    </repositories>
+    </repositories-->
     
 </project>
diff --git a/jpa/pom.xml b/jpa/pom.xml
index c9e198c..049de96 100644
--- a/jpa/pom.xml
+++ b/jpa/pom.xml
@@ -1,46 +1,46 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-	<modelVersion>4.0.0</modelVersion>
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
 
     <parent>
-		<relativePath>..</relativePath>
-		<groupId>eclipselink.example</groupId>
-		<artifactId>parent</artifactId>
-		<version>2.4.2</version>
-	</parent>
+        <relativePath>..</relativePath>
+        <groupId>eclipselink.example</groupId>
+        <artifactId>parent</artifactId>
+        <version>2.4.2</version>
+    </parent>
     
     <groupId>eclipselink.example.jpa</groupId>
-	<artifactId>parent</artifactId>
-	<packaging>pom</packaging>
+    <artifactId>parent</artifactId>
+    <version>2.6.0</version>
+    <packaging>pom</packaging>
 
-	<name>JPA Examples</name>
-	<url>http://wiki.eclipse.org/EclipseLink/Examples/JPA</url>
+    <name>JPA Examples</name>
+    <url>http://wiki.eclipse.org/EclipseLink/Examples/JPA</url>
 
-	<properties>
-		<jpa.version>2.0.5</jpa.version>
-	</properties>
+    <properties>
+        <jpa.version>2.1.0</jpa.version>
+    </properties>
 	
-	<modules>
+    <modules>
         <module>employee</module>
         <module>employee.dynamic</module>
         <module>polyglot</module>
-	</modules>
+    </modules>
 
-	<build>
-		<defaultGoal>install</defaultGoal>
+    <build>
+        <defaultGoal>install</defaultGoal>
         
         <plugins>
             <plugin>
-				<groupId>org.apache.maven.plugins</groupId>
-				<artifactId>maven-compiler-plugin</artifactId>
-				<version>2.3.2</version>
-				<configuration>
-					<source>1.7</source>
-					<target>1.7</target>
-				</configuration>
-			</plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <version>2.3.2</version>
+                <configuration>
+                    <source>1.8</source>
+                    <target>1.8</target>
+                </configuration>
+            </plugin>
         </plugins>
-	</build>
-    
+    </build>
 </project>
