Added JPA-MOXy example.
diff --git a/jpa-moxy/round-trip/.classpath b/jpa-moxy/round-trip/.classpath
new file mode 100644
index 0000000..698778f
--- /dev/null
+++ b/jpa-moxy/round-trip/.classpath
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" output="target/classes" path="src/main/java">
+ <attributes>
+ <attribute name="optional" value="true"/>
+ <attribute name="maven.pomderived" value="true"/>
+ </attributes>
+ </classpathentry>
+ <classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources">
+ <attributes>
+ <attribute name="maven.pomderived" value="true"/>
+ </attributes>
+ </classpathentry>
+ <classpathentry kind="src" output="target/test-classes" path="src/test/java">
+ <attributes>
+ <attribute name="optional" value="true"/>
+ <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.7">
+ <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"/>
+ </attributes>
+ </classpathentry>
+ <classpathentry kind="output" path="target/classes"/>
+</classpath>
diff --git a/jpa-moxy/round-trip/.project b/jpa-moxy/round-trip/.project
new file mode 100644
index 0000000..15966b8
--- /dev/null
+++ b/jpa-moxy/round-trip/.project
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>round-trip</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.m2e.core.maven2Builder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.m2e.core.maven2Nature</nature>
+ </natures>
+</projectDescription>
diff --git a/jpa-moxy/round-trip/.settings/org.eclipse.core.resources.prefs b/jpa-moxy/round-trip/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..839d647
--- /dev/null
+++ b/jpa-moxy/round-trip/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,5 @@
+eclipse.preferences.version=1
+encoding//src/main/java=UTF-8
+encoding//src/main/resources=UTF-8
+encoding//src/test/java=UTF-8
+encoding/<project>=UTF-8
diff --git a/jpa-moxy/round-trip/.settings/org.eclipse.jdt.core.prefs b/jpa-moxy/round-trip/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..ec4300d
--- /dev/null
+++ b/jpa-moxy/round-trip/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +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.problem.forbiddenReference=warning
+org.eclipse.jdt.core.compiler.source=1.7
diff --git a/jpa-moxy/round-trip/.settings/org.eclipse.m2e.core.prefs b/jpa-moxy/round-trip/.settings/org.eclipse.m2e.core.prefs
new file mode 100644
index 0000000..f897a7f
--- /dev/null
+++ b/jpa-moxy/round-trip/.settings/org.eclipse.m2e.core.prefs
@@ -0,0 +1,4 @@
+activeProfiles=
+eclipse.preferences.version=1
+resolveWorkspaceProjects=true
+version=1
diff --git a/jpa-moxy/round-trip/README.md b/jpa-moxy/round-trip/README.md
new file mode 100644
index 0000000..1a6f92b
--- /dev/null
+++ b/jpa-moxy/round-trip/README.md
@@ -0,0 +1,39 @@
+This example illustrates JPA-JAXB fidelity with EclipseLink JPA and MOXy:
+
+It demonstrates the use of XmlInverseReference to manage the ManyToOne 'backpointer' of a
+ManyToOne relationship. EclipseLink MOXy will marshall a cyclical JPA entity graph to
+XML or JSON and upon unmarshall, will restore the backpointer.
+
+It also demonstrates how EclipseLink MOXy and JPA can be used to
+obtain database data in either XML or JSON format and how that data can be modified and
+any changes returned to the database. This ability underlies JPA-RS.
+
+Running the Example
+-------------------
+
+Using Maven, create and populate the sample database with:
+
+ mvn exec:java -P initdb
+
+You can run the Marshall class to produce either an XML or JSON version of the sole
+Customer object in the database with either:
+
+ mvn exec:java -P marshall-json
+
+or
+
+ mvn exec:java -P marshall-xml
+
+The result will be a customer.[xml|json] file in the target folder. Feel free to edit
+the contents of the file to say, change the name of the customer.
+
+To apply your changes to the database run the appropriate command, either:
+
+ mvn exec:java -P unmarshall-json
+
+or
+
+ mvn exec:java -P unmarshall-xml
+
+With EclipseLink logging set to FINE in the example you'll see UPDATE statements that
+correspond to the changes you made to the XML or JSON file.
\ No newline at end of file
diff --git a/jpa-moxy/round-trip/pom.xml b/jpa-moxy/round-trip/pom.xml
new file mode 100644
index 0000000..78beb4b
--- /dev/null
+++ b/jpa-moxy/round-trip/pom.xml
@@ -0,0 +1,209 @@
+<?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>
+ <groupId>eclipselink.example.jpa-moxy</groupId>
+ <artifactId>round-trip</artifactId>
+ <version>2.4.2-SNAPSHOT</version>
+ <packaging>jar</packaging>
+
+ <name>JPA-MOXy Example</name>
+
+ <scm>
+ <connection>git://git.eclipse.org/gitroot/eclipselink/examples.git</connection>
+ <url>http://git.eclipse.org/c/eclipselink/examples.git/</url>
+ </scm>
+
+ <licenses>
+ <license>
+ <name>EPL: Eclipse Public License</name>
+ <url>http://www.eclipse.org/legal/epl-v10.html</url>
+ </license>
+ <license>
+ <name>EDL: Eclipse Distribution License</name>
+ <url>http://www.eclipse.org/org/documents/edl-v10.php</url>
+ </license>
+ </licenses>
+
+ <developers>
+ <developer>
+ <name>Shaun Smith</name>
+ <organization>Oracle</organization>
+ <email>shaun.smith@oracle.com</email>
+ <url>onpersistence.blogspot.com</url>
+ </developer>
+ </developers>
+
+ <properties>
+ <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+ <eclipselink.groupid>org.eclipse.persistence</eclipselink.groupid>
+ <eclipselink.version>2.4.2-SNAPSHOT</eclipselink.version>
+ </properties>
+
+ <repositories>
+ <repository>
+ <id>Java.Net</id>
+ <url>http://download.java.net/maven/2/</url>
+ </repository>
+ <repository>
+ <id>EclipseLink</id>
+ <url>http://download.eclipse.org/rt/eclipselink/maven.repo</url>
+ </repository>
+ </repositories>
+
+ <dependencies>
+ <dependency>
+ <groupId>${eclipselink.groupid}</groupId>
+ <artifactId>javax.persistence</artifactId>
+ <version>2.0.5</version>
+ </dependency>
+ <dependency>
+ <groupId>${eclipselink.groupid}</groupId>
+ <artifactId>eclipselink</artifactId>
+ <version>${eclipselink.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.derby</groupId>
+ <artifactId>derby</artifactId>
+ <version>10.9.1.0</version>
+ </dependency>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>4.11</version>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <defaultGoal>test</defaultGoal>
+
+ <!-- ensure jaxb.properties copied to target/classes -->
+ <resources>
+ <resource>
+ <directory>src/main/java</directory>
+ <excludes>
+ <exclude>**/*.java</exclude>
+ </excludes>
+ </resource>
+ <resource>
+ <directory>src/main/resources</directory>
+ </resource>
+ </resources>
+
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>exec-maven-plugin</artifactId>
+ <version>1.2.1</version>
+ <configuration>
+ <systemProperties>
+ <property>
+ <key>derby.stream.error.file</key>
+ <value>target/derby.log</value>
+ </property>
+ </systemProperties>
+ </configuration>
+ </plugin>
+ <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>initdb</id>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>exec-maven-plugin</artifactId>
+ <version>1.2.1</version>
+ <configuration>
+ <mainClass>eclipselink.example.jpamoxy.roundtrip.InitDB</mainClass>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ <profile>
+ <id>marshall-xml</id>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>exec-maven-plugin</artifactId>
+ <version>1.2.1</version>
+ <configuration>
+ <mainClass>eclipselink.example.jpamoxy.roundtrip.Marshall</mainClass>
+ <arguments>
+ <argument>xml</argument>
+ </arguments>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ <profile>
+ <id>marshall-json</id>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>exec-maven-plugin</artifactId>
+ <version>1.2.1</version>
+ <configuration>
+ <mainClass>eclipselink.example.jpamoxy.roundtrip.Marshall</mainClass>
+ <arguments>
+ <argument>json</argument>
+ </arguments>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ <profile>
+ <id>unmarshall-xml</id>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>exec-maven-plugin</artifactId>
+ <version>1.2.1</version>
+ <configuration>
+ <mainClass>eclipselink.example.jpamoxy.roundtrip.Unmarshall</mainClass>
+ <arguments>
+ <argument>xml</argument>
+ </arguments>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ <profile>
+ <id>unmarshall-json</id>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>exec-maven-plugin</artifactId>
+ <version>1.2.1</version>
+ <configuration>
+ <mainClass>eclipselink.example.jpamoxy.roundtrip.Unmarshall</mainClass>
+ <arguments>
+ <argument>json</argument>
+ </arguments>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ </profiles>
+
+</project>
diff --git a/jpa-moxy/round-trip/src/main/java/eclipselink/example/jpamoxy/roundtrip/InitDB.java b/jpa-moxy/round-trip/src/main/java/eclipselink/example/jpamoxy/roundtrip/InitDB.java
new file mode 100755
index 0000000..3b034a0
--- /dev/null
+++ b/jpa-moxy/round-trip/src/main/java/eclipselink/example/jpamoxy/roundtrip/InitDB.java
@@ -0,0 +1,48 @@
+package eclipselink.example.jpamoxy.roundtrip;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.persistence.EntityManager;
+import javax.persistence.EntityManagerFactory;
+import javax.persistence.Persistence;
+
+import eclipselink.example.jpamoxy.roundtrip.model.Address;
+import eclipselink.example.jpamoxy.roundtrip.model.Customer;
+import eclipselink.example.jpamoxy.roundtrip.model.PhoneNumber;
+
+public class InitDB {
+
+ public static void main(String[] args) {
+ Map<String, Object> properties = new HashMap<String, Object>();
+ properties.put("eclipselink.ddl-generation", "drop-and-create-tables");
+ properties.put("eclipselink.ddl-generation.output-mode", "database");
+ properties.put("eclipselink.logging.level", "FINE");
+ EntityManagerFactory emf = Persistence
+ .createEntityManagerFactory("customer", properties);
+ EntityManager em = emf.createEntityManager();
+ em.getTransaction().begin();
+ Customer customer = new Customer();
+ customer.setId(1);
+ em.persist(customer);
+ customer.setFirstName("Woody");
+ customer.setLastName("Allen");
+ Address address = new Address();
+ address.setCity("New York");
+ address.setStreet("Central Park East");
+ customer.setAddress(address);
+ address.setCustomer(customer);
+ PhoneNumber phone1 = new PhoneNumber();
+ phone1.setType("home");
+ phone1.setNum("512-555-1234");
+ customer.addPhoneNumber(phone1);
+ PhoneNumber phone2 = new PhoneNumber();
+ phone2.setType("mobile");
+ phone2.setNum("512-555-9999");
+ customer.addPhoneNumber(phone2);
+ em.getTransaction().commit();
+ em.close();
+ emf.close();
+ }
+
+}
diff --git a/jpa-moxy/round-trip/src/main/java/eclipselink/example/jpamoxy/roundtrip/Marshall.java b/jpa-moxy/round-trip/src/main/java/eclipselink/example/jpamoxy/roundtrip/Marshall.java
new file mode 100755
index 0000000..9c4956b
--- /dev/null
+++ b/jpa-moxy/round-trip/src/main/java/eclipselink/example/jpamoxy/roundtrip/Marshall.java
@@ -0,0 +1,43 @@
+package eclipselink.example.jpamoxy.roundtrip;
+
+import java.io.File;
+
+import javax.persistence.EntityManager;
+import javax.persistence.EntityManagerFactory;
+import javax.persistence.Persistence;
+import javax.xml.bind.JAXBContext;
+import javax.xml.bind.JAXBException;
+import javax.xml.bind.Marshaller;
+
+import eclipselink.example.jpamoxy.roundtrip.model.Customer;
+
+
+public class Marshall {
+
+ public static void main(String[] args) throws JAXBException {
+ if (args.length != 1) {
+ System.out.println("Error media type not specified. Should be either 'json' or 'xml'");
+ }
+ String mediaType = args[0];
+
+ // JPA Query
+ EntityManagerFactory emf = Persistence
+ .createEntityManagerFactory("customer");
+ EntityManager em = emf.createEntityManager();
+ Customer customer = em.find(Customer.class, 1l);
+ em.close();
+ emf.close();
+
+ // JAXB Marshall
+ JAXBContext context = JAXBContext.newInstance(Customer.class);
+ Marshaller marshaller = context.createMarshaller();
+ marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, new Boolean(true));
+ marshaller.setProperty("eclipselink.media-type", "application/" + mediaType);
+ marshaller.setProperty("eclipselink.json.include-root", false);
+ marshaller.setProperty("eclipselink.json.wrapper-as-array-name", true);
+ File file = new File("target/customer." + mediaType);
+ marshaller.marshal(customer, file);
+
+ }
+
+}
diff --git a/jpa-moxy/round-trip/src/main/java/eclipselink/example/jpamoxy/roundtrip/Unmarshall.java b/jpa-moxy/round-trip/src/main/java/eclipselink/example/jpamoxy/roundtrip/Unmarshall.java
new file mode 100755
index 0000000..5aba444
--- /dev/null
+++ b/jpa-moxy/round-trip/src/main/java/eclipselink/example/jpamoxy/roundtrip/Unmarshall.java
@@ -0,0 +1,49 @@
+package eclipselink.example.jpamoxy.roundtrip;
+
+import java.io.File;
+
+import javax.persistence.EntityManager;
+import javax.persistence.EntityManagerFactory;
+import javax.persistence.Persistence;
+import javax.xml.bind.JAXBContext;
+import javax.xml.bind.JAXBElement;
+import javax.xml.bind.JAXBException;
+import javax.xml.bind.Unmarshaller;
+import javax.xml.transform.stream.StreamSource;
+
+import eclipselink.example.jpamoxy.roundtrip.model.Customer;
+
+
+public class Unmarshall {
+
+ public static void main(String[] args) throws JAXBException {
+ if (args.length != 1) {
+ System.out.println("Error media type not specified. Should be either 'json' or 'xml'");
+ }
+
+ String mediaType = args[0];
+ // JAXB Unmarshall
+ JAXBContext context = JAXBContext.newInstance(Customer.class);
+ Unmarshaller unmarshaller = context.createUnmarshaller();
+ unmarshaller.setProperty("eclipselink.media-type", "application/" + mediaType);
+ unmarshaller.setProperty("eclipselink.json.include-root", false);
+ unmarshaller.setProperty("eclipselink.json.wrapper-as-array-name", true);
+ File file = new File("target/customer." + mediaType);
+ StreamSource source = new StreamSource(file);
+ JAXBElement<Customer> jaxbElement = unmarshaller.unmarshal(source, Customer.class);
+
+ Customer customer = jaxbElement.getValue();
+
+ EntityManagerFactory emf = Persistence
+ .createEntityManagerFactory("customer");
+ EntityManager em = emf.createEntityManager();
+
+ em.getTransaction().begin();
+ em.merge(customer);
+ em.getTransaction().commit();
+
+ em.close();
+ emf.close();
+ }
+
+}
diff --git a/jpa-moxy/round-trip/src/main/java/eclipselink/example/jpamoxy/roundtrip/model/Address.java b/jpa-moxy/round-trip/src/main/java/eclipselink/example/jpamoxy/roundtrip/model/Address.java
new file mode 100755
index 0000000..5343d00
--- /dev/null
+++ b/jpa-moxy/round-trip/src/main/java/eclipselink/example/jpamoxy/roundtrip/model/Address.java
@@ -0,0 +1,67 @@
+package eclipselink.example.jpamoxy.roundtrip.model;
+
+import java.io.Serializable;
+import javax.persistence.*;
+
+import org.eclipse.persistence.oxm.annotations.XmlInverseReference;
+
+
+/**
+ * The persistent class for the ADDRESS database table.
+ *
+ */
+@Entity
+public class Address implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ @Id
+ @GeneratedValue
+ private long id;
+
+ private String city;
+
+ private String street;
+
+ //bi-directional one-to-one association to Customer
+ @OneToOne
+ @JoinColumn(name="ID")
+ @MapsId
+ @XmlInverseReference(mappedBy="address")
+ private Customer customer;
+
+ public Address() {
+ }
+
+ public long getId() {
+ return this.id;
+ }
+
+ public void setId(long id) {
+ this.id = id;
+ }
+
+ public String getCity() {
+ return this.city;
+ }
+
+ public void setCity(String city) {
+ this.city = city;
+ }
+
+ public String getStreet() {
+ return this.street;
+ }
+
+ public void setStreet(String street) {
+ this.street = street;
+ }
+
+ public Customer getCustomer() {
+ return this.customer;
+ }
+
+ public void setCustomer(Customer customer) {
+ this.customer = customer;
+ }
+
+}
\ No newline at end of file
diff --git a/jpa-moxy/round-trip/src/main/java/eclipselink/example/jpamoxy/roundtrip/model/Customer.java b/jpa-moxy/round-trip/src/main/java/eclipselink/example/jpamoxy/roundtrip/model/Customer.java
new file mode 100755
index 0000000..a910ffb
--- /dev/null
+++ b/jpa-moxy/round-trip/src/main/java/eclipselink/example/jpamoxy/roundtrip/model/Customer.java
@@ -0,0 +1,103 @@
+package eclipselink.example.jpamoxy.roundtrip.model;
+
+import static javax.persistence.CascadeType.*;
+
+import java.io.Serializable;
+import java.util.HashSet;
+import java.util.Set;
+
+import javax.persistence.CascadeType;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+import javax.persistence.NamedQuery;
+import javax.persistence.OneToMany;
+import javax.persistence.OneToOne;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlElementWrapper;
+import javax.xml.bind.annotation.XmlRootElement;
+
+
+/**
+ * The persistent class for the CUSTOMER database table.
+ *
+ */
+@Entity
+@NamedQuery(name = "findCustomerByName",
+ query = "SELECT c " +
+ "FROM Customer c " +
+ "WHERE c.firstName = :firstName AND " +
+ " c.lastName = :lastName")
+@XmlRootElement
+public class Customer implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ @Id
+ @GeneratedValue
+ private long id;
+
+ @Column(name="FIRST_NAME")
+ private String firstName;
+
+ @Column(name="LAST_NAME")
+ private String lastName;
+
+ //bi-directional one-to-one association to Address
+ @OneToOne(mappedBy="customer", cascade = ALL)
+ private Address address;
+
+ @XmlElementWrapper(name="phone-numbers")
+ @XmlElement(name="phone-number")
+ //bi-directional many-to-one association to PhoneNumber
+ @OneToMany(mappedBy="customer", cascade = ALL)
+ private Set<PhoneNumber> phoneNumbers = new HashSet<PhoneNumber>();
+
+ public Customer() {
+ }
+
+ public long getId() {
+ return this.id;
+ }
+
+ public void setId(long id) {
+ this.id = id;
+ }
+
+ public String getFirstName() {
+ return this.firstName;
+ }
+
+ public void setFirstName(String firstName) {
+ this.firstName = firstName;
+ }
+
+ public String getLastName() {
+ return this.lastName;
+ }
+
+ public void setLastName(String lastName) {
+ this.lastName = lastName;
+ }
+
+ public Address getAddress() {
+ return this.address;
+ }
+
+ public void setAddress(Address address) {
+ this.address = address;
+ }
+
+ public Set<PhoneNumber> getPhoneNumbers() {
+ return this.phoneNumbers;
+ }
+
+ public void setPhoneNumbers(Set<PhoneNumber> phoneNumbers) {
+ this.phoneNumbers = phoneNumbers;
+ }
+
+ public void addPhoneNumber(PhoneNumber phoneNumber) {
+ this.phoneNumbers.add(phoneNumber);
+ phoneNumber.setCustomer(this);
+ }
+}
\ No newline at end of file
diff --git a/jpa-moxy/round-trip/src/main/java/eclipselink/example/jpamoxy/roundtrip/model/PhoneNumber.java b/jpa-moxy/round-trip/src/main/java/eclipselink/example/jpamoxy/roundtrip/model/PhoneNumber.java
new file mode 100755
index 0000000..0db0bf0
--- /dev/null
+++ b/jpa-moxy/round-trip/src/main/java/eclipselink/example/jpamoxy/roundtrip/model/PhoneNumber.java
@@ -0,0 +1,67 @@
+package eclipselink.example.jpamoxy.roundtrip.model;
+
+import java.io.Serializable;
+import javax.persistence.*;
+
+import org.eclipse.persistence.oxm.annotations.XmlInverseReference;
+
+
+/**
+ * The persistent class for the PHONE_NUMBER database table.
+ *
+ */
+@Entity
+@Table(name="PHONE_NUMBER")
+public class PhoneNumber implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ @Id
+ @GeneratedValue
+ private long id;
+
+ private String num;
+
+ private String type;
+
+ //bi-directional many-to-one association to Customer
+ @ManyToOne
+ @JoinColumn(name="ID_CUSTOMER")
+ @XmlInverseReference(mappedBy="phoneNumbers")
+ private Customer customer;
+
+ public PhoneNumber() {
+ }
+
+ public long getId() {
+ return this.id;
+ }
+
+ public void setId(long id) {
+ this.id = id;
+ }
+
+ public String getNum() {
+ return this.num;
+ }
+
+ public void setNum(String num) {
+ this.num = num;
+ }
+
+ public String getType() {
+ return this.type;
+ }
+
+ public void setType(String type) {
+ this.type = type;
+ }
+
+ public Customer getCustomer() {
+ return this.customer;
+ }
+
+ public void setCustomer(Customer customer) {
+ this.customer = customer;
+ }
+
+}
\ No newline at end of file
diff --git a/jpa-moxy/round-trip/src/main/java/eclipselink/example/jpamoxy/roundtrip/model/jaxb.properties b/jpa-moxy/round-trip/src/main/java/eclipselink/example/jpamoxy/roundtrip/model/jaxb.properties
new file mode 100755
index 0000000..5837a4c
--- /dev/null
+++ b/jpa-moxy/round-trip/src/main/java/eclipselink/example/jpamoxy/roundtrip/model/jaxb.properties
@@ -0,0 +1 @@
+javax.xml.bind.context.factory=org.eclipse.persistence.jaxb.JAXBContextFactory
\ No newline at end of file
diff --git a/jpa-moxy/round-trip/src/main/resources/META-INF/persistence.xml b/jpa-moxy/round-trip/src/main/resources/META-INF/persistence.xml
new file mode 100755
index 0000000..6ce230e
--- /dev/null
+++ b/jpa-moxy/round-trip/src/main/resources/META-INF/persistence.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
+ <persistence-unit name="customer" transaction-type="RESOURCE_LOCAL">
+ <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
+ <class>eclipselink.example.jpamoxy.roundtrip.model.Address</class>
+ <class>eclipselink.example.jpamoxy.roundtrip.model.Customer</class>
+ <class>eclipselink.example.jpamoxy.roundtrip.model.PhoneNumber</class>
+ <properties>
+ <property name="javax.persistence.jdbc.url" value="jdbc:derby:target/derby/test;create=true" />
+ <property name="javax.persistence.jdbc.user" value="app" />
+ <property name="javax.persistence.jdbc.password" value="app" />
+ <property name="javax.persistence.jdbc.driver" value="org.apache.derby.jdbc.EmbeddedDriver" />
+ <property name="eclipselink.jdbc.read-connections.min" value="1"/>
+ <property name="eclipselink.jdbc.write-connections.min" value="1"/>
+ <property name="eclipselink.logging.thread" value="false"/>
+ <property name="eclipselink.logging.timestamp" 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" value="FINE"/>
+ </properties>
+ </persistence-unit>
+</persistence>
diff --git a/jpa/polyglot/client/.classpath b/jpa/polyglot/client/.classpath
index e43402f..2dd4731 100644
--- a/jpa/polyglot/client/.classpath
+++ b/jpa/polyglot/client/.classpath
@@ -6,22 +6,6 @@
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
- <classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources">
- <attributes>
- <attribute name="maven.pomderived" value="true"/>
- </attributes>
- </classpathentry>
- <classpathentry kind="src" output="target/test-classes" path="src/test/java">
- <attributes>
- <attribute name="optional" value="true"/>
- <attribute name="maven.pomderived" value="true"/>
- </attributes>
- </classpathentry>
- <classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources">
- <attributes>
- <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.7">
<attributes>
<attribute name="maven.pomderived" value="true"/>
diff --git a/jpa/polyglot/composite-pu/.classpath b/jpa/polyglot/composite-pu/.classpath
index e43402f..5d012a0 100644
--- a/jpa/polyglot/composite-pu/.classpath
+++ b/jpa/polyglot/composite-pu/.classpath
@@ -1,27 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
- <classpathentry kind="src" output="target/classes" path="src/main/java">
- <attributes>
- <attribute name="optional" value="true"/>
- <attribute name="maven.pomderived" value="true"/>
- </attributes>
- </classpathentry>
<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
- <classpathentry kind="src" output="target/test-classes" path="src/test/java">
- <attributes>
- <attribute name="optional" value="true"/>
- <attribute name="maven.pomderived" value="true"/>
- </attributes>
- </classpathentry>
- <classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources">
- <attributes>
- <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.7">
<attributes>
<attribute name="maven.pomderived" value="true"/>
diff --git a/jpa/polyglot/nosql-pu/pom.xml b/jpa/polyglot/nosql-pu/pom.xml
index e5de559..f2b61d4 100644
--- a/jpa/polyglot/nosql-pu/pom.xml
+++ b/jpa/polyglot/nosql-pu/pom.xml
@@ -32,8 +32,8 @@
</dependency>
<dependency>
<groupId>javax.resource</groupId>
- <artifactId>connector</artifactId>
- <version>1.0</version>
+ <artifactId>connector-api</artifactId>
+ <version>1.5</version>
</dependency>
</dependencies>
</project>
\ No newline at end of file