Index: resource/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/attributekey/instance.xml
===================================================================
--- resource/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/attributekey/instance.xml (revision 0)
+++ resource/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/attributekey/instance.xml (revision 0)
@@ -0,0 +1,34 @@
+
+
+
+ Joe Smith
+
+
+
+
+
+
+ Some Other St.
+ Anyothertown
+ Canada
+ X0X0X0
+
+
+ Some St.
+ Anytown
+ Canada
+ X0X0X0
+
+
+ Another St.
+ Anytown
+ Canada
+ Y0Y0Y0
+
+
+ Some St.
+ Sometown
+ Canada
+ X0X0X0
+
+
\ No newline at end of file
Index: resource/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/attributekey/instance.xml
===================================================================
--- resource/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/attributekey/instance.xml (revision 0)
+++ resource/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/attributekey/instance.xml (revision 0)
@@ -0,0 +1,34 @@
+
+
+
+ Joe Smith
+
+
+
+
+
+
+ Some Other St.
+ Anyothertown
+ Canada
+ X0X0X0
+
+
+ Some St.
+ Anytown
+ Canada
+ X0X0X0
+
+
+ Another St.
+ Anytown
+ Canada
+ Y0Y0Y0
+
+
+ Some St.
+ Sometown
+ Canada
+ X0X0X0
+
+
\ No newline at end of file
Index: resource/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/instance-ns.xml
===================================================================
--- resource/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/instance-ns.xml (revision 0)
+++ resource/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/instance-ns.xml (revision 0)
@@ -0,0 +1,46 @@
+
+
+
+ Joe Smith
+
+ Anyothertown
+ X0X0X0
+
+
+ Anytown
+ X0X0X0
+
+
+ Anytown
+ Y0Y0Y0
+
+
+ Sometown
+ X0X0X0
+
+
+
+ Some Other St.
+ Anyothertown
+ Canada
+ X0X0X0
+
+
+ Some St.
+ Anytown
+ Canada
+ X0X0X0
+
+
+ Another St.
+ Anytown
+ Canada
+ Y0Y0Y0
+
+
+ Some St.
+ Sometown
+ Canada
+ X0X0X0
+
+
\ No newline at end of file
Index: resource/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/instance.xml
===================================================================
--- resource/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/instance.xml (revision 0)
+++ resource/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/instance.xml (revision 0)
@@ -0,0 +1,46 @@
+
+
+
+ Joe Smith
+
+ Anyothertown
+ X0X0X0
+
+
+ Anytown
+ X0X0X0
+
+
+ Anytown
+ Y0Y0Y0
+
+
+ Sometown
+ X0X0X0
+
+
+
+ Some Other St.
+ Anyothertown
+ Canada
+ X0X0X0
+
+
+ Some St.
+ Anytown
+ Canada
+ X0X0X0
+
+
+ Another St.
+ Anytown
+ Canada
+ Y0Y0Y0
+
+
+ Some St.
+ Sometown
+ Canada
+ X0X0X0
+
+
\ No newline at end of file
Index: resource/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/instance-grouping-ns.xml
===================================================================
--- resource/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/instance-grouping-ns.xml (revision 0)
+++ resource/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/instance-grouping-ns.xml (revision 0)
@@ -0,0 +1,48 @@
+
+
+
+ Joe Smith
+
+
+ Anyothertown
+ X0X0X0
+
+
+ Anytown
+ X0X0X0
+
+
+ Anytown
+ Y0Y0Y0
+
+
+ Sometown
+ X0X0X0
+
+
+
+
+ Some Other St.
+ Anyothertown
+ Canada
+ X0X0X0
+
+
+ Some St.
+ Anytown
+ Canada
+ X0X0X0
+
+
+ Another St.
+ Anytown
+ Canada
+ Y0Y0Y0
+
+
+ Some St.
+ Sometown
+ Canada
+ X0X0X0
+
+
\ No newline at end of file
Index: resource/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/instance-grouping.xml
===================================================================
--- resource/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/instance-grouping.xml (revision 0)
+++ resource/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/instance-grouping.xml (revision 0)
@@ -0,0 +1,48 @@
+
+
+
+ Joe Smith
+
+
+ Anyothertown
+ X0X0X0
+
+
+ Anytown
+ X0X0X0
+
+
+ Anytown
+ Y0Y0Y0
+
+
+ Sometown
+ X0X0X0
+
+
+
+
+ Some Other St.
+ Anyothertown
+ Canada
+ X0X0X0
+
+
+ Some St.
+ Anytown
+ Canada
+ X0X0X0
+
+
+ Another St.
+ Anytown
+ Canada
+ Y0Y0Y0
+
+
+ Some St.
+ Sometown
+ Canada
+ X0X0X0
+
+
\ No newline at end of file
Index: resource/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/instance-grouping-ns.xml
===================================================================
--- resource/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/instance-grouping-ns.xml (revision 0)
+++ resource/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/instance-grouping-ns.xml (revision 0)
@@ -0,0 +1,48 @@
+
+
+
+ Joe Smith
+
+
+ Anyothertown
+ X0X0X0
+
+
+ Anytown
+ X0X0X0
+
+
+ Anytown
+ Y0Y0Y0
+
+
+ Sometown
+ X0X0X0
+
+
+
+
+ Some Other St.
+ Anyothertown
+ Canada
+ X0X0X0
+
+
+ Some St.
+ Anytown
+ Canada
+ X0X0X0
+
+
+ Another St.
+ Anytown
+ Canada
+ Y0Y0Y0
+
+
+ Some St.
+ Sometown
+ Canada
+ X0X0X0
+
+
\ No newline at end of file
Index: resource/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/instance-grouping.xml
===================================================================
--- resource/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/instance-grouping.xml (revision 0)
+++ resource/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/instance-grouping.xml (revision 0)
@@ -0,0 +1,48 @@
+
+
+
+ Joe Smith
+
+
+ Anyothertown
+ X0X0X0
+
+
+ Anytown
+ X0X0X0
+
+
+ Anytown
+ Y0Y0Y0
+
+
+ Sometown
+ X0X0X0
+
+
+
+
+ Some Other St.
+ Anyothertown
+ Canada
+ X0X0X0
+
+
+ Some St.
+ Anytown
+ Canada
+ X0X0X0
+
+
+ Another St.
+ Anytown
+ Canada
+ Y0Y0Y0
+
+
+ Some St.
+ Sometown
+ Canada
+ X0X0X0
+
+
\ No newline at end of file
Index: resource/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/instance-ns.xml
===================================================================
--- resource/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/instance-ns.xml (revision 0)
+++ resource/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/instance-ns.xml (revision 0)
@@ -0,0 +1,46 @@
+
+
+
+ Joe Smith
+
+ Anyothertown
+ X0X0X0
+
+
+ Anytown
+ X0X0X0
+
+
+ Anytown
+ Y0Y0Y0
+
+
+ Sometown
+ X0X0X0
+
+
+
+ Some Other St.
+ Anyothertown
+ Canada
+ X0X0X0
+
+
+ Some St.
+ Anytown
+ Canada
+ X0X0X0
+
+
+ Another St.
+ Anytown
+ Canada
+ Y0Y0Y0
+
+
+ Some St.
+ Sometown
+ Canada
+ X0X0X0
+
+
\ No newline at end of file
Index: resource/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/instance.xml
===================================================================
--- resource/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/instance.xml (revision 0)
+++ resource/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/instance.xml (revision 0)
@@ -0,0 +1,46 @@
+
+
+
+ Joe Smith
+
+ Anyothertown
+ X0X0X0
+
+
+ Anytown
+ X0X0X0
+
+
+ Anytown
+ Y0Y0Y0
+
+
+ Sometown
+ X0X0X0
+
+
+
+ Some Other St.
+ Anyothertown
+ Canada
+ X0X0X0
+
+
+ Some St.
+ Anytown
+ Canada
+ X0X0X0
+
+
+ Another St.
+ Anytown
+ Canada
+ Y0Y0Y0
+
+
+ Some St.
+ Sometown
+ Canada
+ X0X0X0
+
+
\ No newline at end of file
Index: resource/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/nestedattributekey/instance.xml
===================================================================
--- resource/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/nestedattributekey/instance.xml (revision 0)
+++ resource/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/nestedattributekey/instance.xml (revision 0)
@@ -0,0 +1,36 @@
+
+
+
+ Joe Smith
+
+
+
+
+
+
+
+
+ Some Other St.
+ Anyothertown
+ Canada
+ X0X0X0
+
+
+ Some St.
+ Anytown
+ Canada
+ X0X0X0
+
+
+ Another St.
+ Anytown
+ Canada
+ Y0Y0Y0
+
+
+ Some St.
+ Sometown
+ Canada
+ X0X0X0
+
+
\ No newline at end of file
Index: resource/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/nestedattributekey/instance.xml
===================================================================
--- resource/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/nestedattributekey/instance.xml (revision 0)
+++ resource/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/nestedattributekey/instance.xml (revision 0)
@@ -0,0 +1,36 @@
+
+
+
+ Joe Smith
+
+
+
+
+
+
+
+
+ Some Other St.
+ Anyothertown
+ Canada
+ X0X0X0
+
+
+ Some St.
+ Anytown
+ Canada
+ X0X0X0
+
+
+ Another St.
+ Anytown
+ Canada
+ Y0Y0Y0
+
+
+ Some St.
+ Sometown
+ Canada
+ X0X0X0
+
+
\ No newline at end of file
Index: src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/attributekey/CompositeAttributeKeysProject.java
===================================================================
--- src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/attributekey/CompositeAttributeKeysProject.java (revision 5626)
+++ src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/attributekey/CompositeAttributeKeysProject.java (working copy)
@@ -70,9 +70,8 @@
addressMapping.useCollectionClass(ArrayList.class);
addressMapping.setAttributeName("addresses");
addressMapping.setReferenceClass(Address.class);
- addressMapping.addSourceToTargetKeyFieldAssociation("@address-city", "city/text()");
- addressMapping.addSourceToTargetKeyFieldAssociation("@address-zip", "zip/text()");
- addressMapping.setUsesSingleNode(true);
+ addressMapping.addSourceToTargetKeyFieldAssociation("address/@id-city", "city/text()");
+ addressMapping.addSourceToTargetKeyFieldAssociation("address/@id-zip", "zip/text()");
descriptor.addMapping(addressMapping);
return descriptor;
}
Index: src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/attributekey/CompositeAttributeKeysTestCases.java
===================================================================
--- src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/attributekey/CompositeAttributeKeysTestCases.java (revision 5626)
+++ src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/attributekey/CompositeAttributeKeysTestCases.java (working copy)
@@ -29,7 +29,7 @@
}
protected Object getControlObject() {
- ArrayList addresses = new ArrayList();
+ ArrayList addresses = new ArrayList(4);
Address address = new Address();
address.id = CONTROL_ADD_ID_1;
@@ -55,63 +55,23 @@
address.zip = CONTROL_ADD_ZIP_3;
addresses.add(address);
- Employee employee = new Employee();
+ address = new Address();
+ address.id = CONTROL_ADD_ID_4;
+ address.street = CONTROL_ADD_STREET_4;
+ address.city = CONTROL_ADD_CITY_4;
+ address.country = CONTROL_ADD_COUNTRY_4;
+ address.zip = CONTROL_ADD_ZIP_4;
+ addresses.add(address);
+
+ Employee employee = new Employee();
employee.id = CONTROL_ID;
employee.name = CONTROL_NAME;
employee.addresses = addresses;
Root root = new Root();
root.employee = employee;
+ root.addresses = addresses;
return root;
}
- public Object getWriteControlObject() {
- ArrayList rootAddresses = new ArrayList();
- ArrayList empAddresses = new ArrayList();
-
- Address address = new Address();
- address.id = CONTROL_ADD_ID_1;
- address.street = CONTROL_ADD_STREET_1;
- address.city = CONTROL_ADD_CITY_1;
- address.country = CONTROL_ADD_COUNTRY_1;
- address.zip = CONTROL_ADD_ZIP_1;
- empAddresses.add(address);
- rootAddresses.add(address);
-
- address = new Address();
- address.id = CONTROL_ADD_ID_2;
- address.street = CONTROL_ADD_STREET_2;
- address.city = CONTROL_ADD_CITY_2;
- address.country = CONTROL_ADD_COUNTRY_2;
- address.zip = CONTROL_ADD_ZIP_2;
- empAddresses.add(address);
- rootAddresses.add(address);
-
- address = new Address();
- address.id = CONTROL_ADD_ID_3;
- address.street = CONTROL_ADD_STREET_3;
- address.city = CONTROL_ADD_CITY_3;
- address.country = CONTROL_ADD_COUNTRY_3;
- address.zip = CONTROL_ADD_ZIP_3;
- empAddresses.add(address);
- rootAddresses.add(address);
-
- address = new Address();
- address.id = CONTROL_ADD_ID_4;
- address.street = CONTROL_ADD_STREET_4;
- address.city = CONTROL_ADD_CITY_4;
- address.country = CONTROL_ADD_COUNTRY_4;
- address.zip = CONTROL_ADD_ZIP_4;
- rootAddresses.add(address);
-
- Employee employee = new Employee();
- employee.id = CONTROL_ID;
- employee.name = CONTROL_NAME;
- employee.addresses = empAddresses;
-
- Root root = new Root();
- root.employee = employee;
- root.addresses = rootAddresses;
- return root;
- }
-}
+}
\ No newline at end of file
Index: src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/CompositeKeyTestCases.java
===================================================================
--- src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/CompositeKeyTestCases.java (revision 5626)
+++ src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/CompositeKeyTestCases.java (working copy)
@@ -16,12 +16,22 @@
import junit.framework.TestCase;
import junit.framework.TestSuite;
import org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.compositekey.attributekey.CompositeAttributeKeysTestCases;
+import org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.compositekey.elementkey.CompositeElementKeyNSTestCases;
+import org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.compositekey.elementkey.CompositeElementKeyTestCases;
+import org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.compositekey.elementkey.CompositeElementKeyWithGroupingNSTestCases;
+import org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.compositekey.elementkey.CompositeElementKeyWithGroupingTestCases;
import org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.compositekey.nestedattributekey.NestedAttributeKeyTestCases;
+import org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.singlekey.elementkey.SingleElementKeyTestCases;
+import org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.singlekey.elementkey.SingleElementKeyWithGroupingTestCases;
public class CompositeKeyTestCases extends TestCase {
public static Test suite() {
TestSuite suite = new TestSuite("Multiple targets with composite key test suite");
suite.addTestSuite(CompositeAttributeKeysTestCases.class);
+ suite.addTestSuite(CompositeElementKeyTestCases.class);
+ suite.addTestSuite(CompositeElementKeyWithGroupingTestCases.class);
+ suite.addTestSuite(CompositeElementKeyNSTestCases.class);
+ suite.addTestSuite(CompositeElementKeyWithGroupingNSTestCases.class);
suite.addTestSuite(NestedAttributeKeyTestCases.class);
return suite;
}
Index: src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyWithGroupingProject.java
===================================================================
--- src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyWithGroupingProject.java (revision 0)
+++ src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyWithGroupingProject.java (revision 0)
@@ -0,0 +1,114 @@
+/*******************************************************************************
+* Copyright (c) 1998, 2009 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:
+* bdoughan - Oct 21/2009 - 2.0 - Initial implementation
+******************************************************************************/
+package org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.compositekey.elementkey;
+
+import java.util.ArrayList;
+
+import org.eclipse.persistence.oxm.XMLDescriptor;
+import org.eclipse.persistence.oxm.mappings.XMLCollectionReferenceMapping;
+import org.eclipse.persistence.oxm.mappings.XMLCompositeCollectionMapping;
+import org.eclipse.persistence.oxm.mappings.XMLCompositeObjectMapping;
+import org.eclipse.persistence.oxm.mappings.XMLDirectMapping;
+import org.eclipse.persistence.sessions.Project;
+import org.eclipse.persistence.testing.oxm.mappings.keybased.Address;
+import org.eclipse.persistence.testing.oxm.mappings.keybased.Root;
+import org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.Employee;
+
+public class CompositeElementKeyWithGroupingProject extends Project {
+
+ public CompositeElementKeyWithGroupingProject() {
+ addDescriptor(getRootDescriptor());
+ addDescriptor(getEmployeeDescriptor());
+ addDescriptor(getAddressDescriptor());
+ }
+
+ private XMLDescriptor getRootDescriptor() {
+ XMLDescriptor descriptor = new XMLDescriptor();
+ descriptor.setJavaClass(Root.class);
+ descriptor.setDefaultRootElement("root");
+ // create employee mapping
+ XMLCompositeObjectMapping empMapping = new XMLCompositeObjectMapping();
+ empMapping.setAttributeName("employee");
+ empMapping.setXPath("employee");
+ empMapping.setReferenceClass(Employee.class);
+ descriptor.addMapping(empMapping);
+ // create address mapping
+ XMLCompositeCollectionMapping addMapping = new XMLCompositeCollectionMapping();
+ addMapping.setAttributeName("addresses");
+ addMapping.setXPath("address");
+ addMapping.setReferenceClass(Address.class);
+ descriptor.addMapping(addMapping);
+ return descriptor;
+ }
+
+ private XMLDescriptor getEmployeeDescriptor() {
+ XMLDescriptor descriptor = new XMLDescriptor();
+ descriptor.setJavaClass(Employee.class);
+ descriptor.setDefaultRootElement("employee");
+ // create id mapping
+ XMLDirectMapping idMapping = new XMLDirectMapping();
+ idMapping.setAttributeName("id");
+ idMapping.setXPath("@id");
+ descriptor.addMapping(idMapping);
+ // create name mapping
+ XMLDirectMapping nameMapping = new XMLDirectMapping();
+ nameMapping.setAttributeName("name");
+ nameMapping.setXPath("name/text()");
+ descriptor.addMapping(nameMapping);
+ // create address mapping
+ XMLCollectionReferenceMapping addressMapping = new XMLCollectionReferenceMapping();
+ addressMapping.useCollectionClass(ArrayList.class);
+ addressMapping.setAttributeName("addresses");
+ addressMapping.setXPath("grouping-element");
+ addressMapping.setReferenceClass(Address.class);
+ addressMapping.addSourceToTargetKeyFieldAssociation("address/id-city/text()", "city/text()");
+ addressMapping.addSourceToTargetKeyFieldAssociation("address/id-zip/text()", "zip/text()");
+ descriptor.addMapping(addressMapping);
+ return descriptor;
+ }
+
+ private XMLDescriptor getAddressDescriptor() {
+ XMLDescriptor descriptor = new XMLDescriptor();
+ descriptor.setJavaClass(Address.class);
+ descriptor.addPrimaryKeyFieldName("city/text()");
+ descriptor.addPrimaryKeyFieldName("zip/text()");
+ descriptor.setDefaultRootElement("address");
+ // create id mapping
+ XMLDirectMapping idMapping = new XMLDirectMapping();
+ idMapping.setAttributeName("id");
+ idMapping.setXPath("@aid");
+ descriptor.addMapping(idMapping);
+ // create street mapping
+ XMLDirectMapping streetMapping = new XMLDirectMapping();
+ streetMapping.setAttributeName("street");
+ streetMapping.setXPath("street/text()");
+ descriptor.addMapping(streetMapping);
+ // create city mapping
+ XMLDirectMapping cityMapping = new XMLDirectMapping();
+ cityMapping.setAttributeName("city");
+ cityMapping.setXPath("city/text()");
+ descriptor.addMapping(cityMapping);
+ // create country mapping
+ XMLDirectMapping countryMapping = new XMLDirectMapping();
+ countryMapping.setAttributeName("country");
+ countryMapping.setXPath("country/text()");
+ descriptor.addMapping(countryMapping);
+ // create zip mapping
+ XMLDirectMapping zipMapping = new XMLDirectMapping();
+ zipMapping.setAttributeName("zip");
+ zipMapping.setXPath("zip/text()");
+ descriptor.addMapping(zipMapping);
+ return descriptor;
+ }
+
+}
\ No newline at end of file
Index: src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyTestCases.java
===================================================================
--- src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyTestCases.java (revision 0)
+++ src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyTestCases.java (revision 0)
@@ -0,0 +1,77 @@
+/*******************************************************************************
+* Copyright (c) 1998, 2009 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:
+* bdoughan - Oct 21/2009 - 2.0 - Initial implementation
+******************************************************************************/
+package org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.compositekey.elementkey;
+
+import java.util.ArrayList;
+
+import org.eclipse.persistence.testing.oxm.mappings.keybased.Address;
+import org.eclipse.persistence.testing.oxm.mappings.keybased.KeyBasedMappingTestCases;
+import org.eclipse.persistence.testing.oxm.mappings.keybased.Root;
+import org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.Employee;
+
+public class CompositeElementKeyTestCases extends KeyBasedMappingTestCases {
+ private final static String XML_RESOURCE = "org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/instance.xml";
+
+ public CompositeElementKeyTestCases(String name) throws Exception {
+ super(name);
+ setControlDocument(XML_RESOURCE);
+ setProject(new CompositeElementKeyProject());
+ }
+
+ protected Object getControlObject() {
+ ArrayList addresses = new ArrayList(4);
+
+ Address address = new Address();
+ address.id = CONTROL_ADD_ID_1;
+ address.street = CONTROL_ADD_STREET_1;
+ address.city = CONTROL_ADD_CITY_1;
+ address.country = CONTROL_ADD_COUNTRY_1;
+ address.zip = CONTROL_ADD_ZIP_1;
+ addresses.add(address);
+
+ address = new Address();
+ address.id = CONTROL_ADD_ID_2;
+ address.street = CONTROL_ADD_STREET_2;
+ address.city = CONTROL_ADD_CITY_2;
+ address.country = CONTROL_ADD_COUNTRY_2;
+ address.zip = CONTROL_ADD_ZIP_2;
+ addresses.add(address);
+
+ address = new Address();
+ address.id = CONTROL_ADD_ID_3;
+ address.street = CONTROL_ADD_STREET_3;
+ address.city = CONTROL_ADD_CITY_3;
+ address.country = CONTROL_ADD_COUNTRY_3;
+ address.zip = CONTROL_ADD_ZIP_3;
+ addresses.add(address);
+
+ address = new Address();
+ address.id = CONTROL_ADD_ID_4;
+ address.street = CONTROL_ADD_STREET_4;
+ address.city = CONTROL_ADD_CITY_4;
+ address.country = CONTROL_ADD_COUNTRY_4;
+ address.zip = CONTROL_ADD_ZIP_4;
+ addresses.add(address);
+
+ Employee employee = new Employee();
+ employee.id = CONTROL_ID;
+ employee.name = CONTROL_NAME;
+ employee.addresses = addresses;
+
+ Root root = new Root();
+ root.employee = employee;
+ root.addresses = addresses;
+ return root;
+ }
+
+}
\ No newline at end of file
Index: src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyWithGroupingNSProject.java
===================================================================
--- src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyWithGroupingNSProject.java (revision 0)
+++ src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyWithGroupingNSProject.java (revision 0)
@@ -0,0 +1,127 @@
+/*******************************************************************************
+* Copyright (c) 1998, 2009 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:
+* bdoughan - Oct 21/2009 - 2.0 - Initial implementation
+******************************************************************************/
+package org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.compositekey.elementkey;
+
+import java.util.ArrayList;
+
+import org.eclipse.persistence.oxm.NamespaceResolver;
+import org.eclipse.persistence.oxm.XMLDescriptor;
+import org.eclipse.persistence.oxm.mappings.XMLCollectionReferenceMapping;
+import org.eclipse.persistence.oxm.mappings.XMLCompositeCollectionMapping;
+import org.eclipse.persistence.oxm.mappings.XMLCompositeObjectMapping;
+import org.eclipse.persistence.oxm.mappings.XMLDirectMapping;
+import org.eclipse.persistence.sessions.Project;
+import org.eclipse.persistence.testing.oxm.mappings.keybased.Address;
+import org.eclipse.persistence.testing.oxm.mappings.keybased.Root;
+import org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.Employee;
+
+public class CompositeElementKeyWithGroupingNSProject extends Project {
+
+ public CompositeElementKeyWithGroupingNSProject() {
+ addDescriptor(getRootDescriptor());
+ addDescriptor(getEmployeeDescriptor());
+ addDescriptor(getAddressDescriptor());
+ }
+
+ private XMLDescriptor getRootDescriptor() {
+ XMLDescriptor descriptor = new XMLDescriptor();
+ descriptor.setJavaClass(Root.class);
+ descriptor.setDefaultRootElement("ns:root");
+ // create namespace resolver
+ NamespaceResolver nsResolver = new NamespaceResolver();
+ nsResolver.put("ns", "urn:example");
+ descriptor.setNamespaceResolver(nsResolver);
+ // create employee mapping
+ XMLCompositeObjectMapping empMapping = new XMLCompositeObjectMapping();
+ empMapping.setAttributeName("employee");
+ empMapping.setXPath("ns:employee");
+ empMapping.setReferenceClass(Employee.class);
+ descriptor.addMapping(empMapping);
+ // create address mapping
+ XMLCompositeCollectionMapping addMapping = new XMLCompositeCollectionMapping();
+ addMapping.setAttributeName("addresses");
+ addMapping.setXPath("ns:address");
+ addMapping.setReferenceClass(Address.class);
+ descriptor.addMapping(addMapping);
+ return descriptor;
+ }
+
+ private XMLDescriptor getEmployeeDescriptor() {
+ XMLDescriptor descriptor = new XMLDescriptor();
+ descriptor.setJavaClass(Employee.class);
+ descriptor.setDefaultRootElement("employee");
+ // create namespace resolver
+ NamespaceResolver nsResolver = new NamespaceResolver();
+ nsResolver.put("ns", "urn:example");
+ descriptor.setNamespaceResolver(nsResolver);
+ // create id mapping
+ XMLDirectMapping idMapping = new XMLDirectMapping();
+ idMapping.setAttributeName("id");
+ idMapping.setXPath("@id");
+ descriptor.addMapping(idMapping);
+ // create name mapping
+ XMLDirectMapping nameMapping = new XMLDirectMapping();
+ nameMapping.setAttributeName("name");
+ nameMapping.setXPath("ns:name/text()");
+ descriptor.addMapping(nameMapping);
+ // create address mapping
+ XMLCollectionReferenceMapping addressMapping = new XMLCollectionReferenceMapping();
+ addressMapping.useCollectionClass(ArrayList.class);
+ addressMapping.setAttributeName("addresses");
+ addressMapping.setXPath("ns:grouping-element");
+ addressMapping.setReferenceClass(Address.class);
+ addressMapping.addSourceToTargetKeyFieldAssociation("ns:address/ns:id-city/text()", "ns:city/text()");
+ addressMapping.addSourceToTargetKeyFieldAssociation("ns:address/ns:id-zip/text()", "ns:zip/text()");
+ descriptor.addMapping(addressMapping);
+ return descriptor;
+ }
+
+ private XMLDescriptor getAddressDescriptor() {
+ XMLDescriptor descriptor = new XMLDescriptor();
+ descriptor.setJavaClass(Address.class);
+ descriptor.addPrimaryKeyFieldName("ns:city/text()");
+ descriptor.addPrimaryKeyFieldName("ns:zip/text()");
+ descriptor.setDefaultRootElement("address");
+ // create namespace resolver
+ NamespaceResolver nsResolver = new NamespaceResolver();
+ nsResolver.put("ns", "urn:example");
+ descriptor.setNamespaceResolver(nsResolver);
+ // create id mapping
+ XMLDirectMapping idMapping = new XMLDirectMapping();
+ idMapping.setAttributeName("id");
+ idMapping.setXPath("@aid");
+ descriptor.addMapping(idMapping);
+ // create street mapping
+ XMLDirectMapping streetMapping = new XMLDirectMapping();
+ streetMapping.setAttributeName("street");
+ streetMapping.setXPath("ns:street/text()");
+ descriptor.addMapping(streetMapping);
+ // create city mapping
+ XMLDirectMapping cityMapping = new XMLDirectMapping();
+ cityMapping.setAttributeName("city");
+ cityMapping.setXPath("ns:city/text()");
+ descriptor.addMapping(cityMapping);
+ // create country mapping
+ XMLDirectMapping countryMapping = new XMLDirectMapping();
+ countryMapping.setAttributeName("country");
+ countryMapping.setXPath("ns:country/text()");
+ descriptor.addMapping(countryMapping);
+ // create zip mapping
+ XMLDirectMapping zipMapping = new XMLDirectMapping();
+ zipMapping.setAttributeName("zip");
+ zipMapping.setXPath("ns:zip/text()");
+ descriptor.addMapping(zipMapping);
+ return descriptor;
+ }
+
+}
\ No newline at end of file
Index: src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyNSTestCases.java
===================================================================
--- src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyNSTestCases.java (revision 0)
+++ src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyNSTestCases.java (revision 0)
@@ -0,0 +1,77 @@
+/*******************************************************************************
+* Copyright (c) 1998, 2009 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:
+* bdoughan - Oct 21/2009 - 2.0 - Initial implementation
+******************************************************************************/
+package org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.compositekey.elementkey;
+
+import java.util.ArrayList;
+
+import org.eclipse.persistence.testing.oxm.mappings.keybased.Address;
+import org.eclipse.persistence.testing.oxm.mappings.keybased.KeyBasedMappingTestCases;
+import org.eclipse.persistence.testing.oxm.mappings.keybased.Root;
+import org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.Employee;
+
+public class CompositeElementKeyNSTestCases extends KeyBasedMappingTestCases {
+ private final static String XML_RESOURCE = "org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/instance-ns.xml";
+
+ public CompositeElementKeyNSTestCases(String name) throws Exception {
+ super(name);
+ setControlDocument(XML_RESOURCE);
+ setProject(new CompositeElementKeyNSProject());
+ }
+
+ protected Object getControlObject() {
+ ArrayList addresses = new ArrayList(4);
+
+ Address address = new Address();
+ address.id = CONTROL_ADD_ID_1;
+ address.street = CONTROL_ADD_STREET_1;
+ address.city = CONTROL_ADD_CITY_1;
+ address.country = CONTROL_ADD_COUNTRY_1;
+ address.zip = CONTROL_ADD_ZIP_1;
+ addresses.add(address);
+
+ address = new Address();
+ address.id = CONTROL_ADD_ID_2;
+ address.street = CONTROL_ADD_STREET_2;
+ address.city = CONTROL_ADD_CITY_2;
+ address.country = CONTROL_ADD_COUNTRY_2;
+ address.zip = CONTROL_ADD_ZIP_2;
+ addresses.add(address);
+
+ address = new Address();
+ address.id = CONTROL_ADD_ID_3;
+ address.street = CONTROL_ADD_STREET_3;
+ address.city = CONTROL_ADD_CITY_3;
+ address.country = CONTROL_ADD_COUNTRY_3;
+ address.zip = CONTROL_ADD_ZIP_3;
+ addresses.add(address);
+
+ address = new Address();
+ address.id = CONTROL_ADD_ID_4;
+ address.street = CONTROL_ADD_STREET_4;
+ address.city = CONTROL_ADD_CITY_4;
+ address.country = CONTROL_ADD_COUNTRY_4;
+ address.zip = CONTROL_ADD_ZIP_4;
+ addresses.add(address);
+
+ Employee employee = new Employee();
+ employee.id = CONTROL_ID;
+ employee.name = CONTROL_NAME;
+ employee.addresses = addresses;
+
+ Root root = new Root();
+ root.employee = employee;
+ root.addresses = addresses;
+ return root;
+ }
+
+}
\ No newline at end of file
Index: src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyWithGroupingTestCases.java
===================================================================
--- src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyWithGroupingTestCases.java (revision 0)
+++ src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyWithGroupingTestCases.java (revision 0)
@@ -0,0 +1,77 @@
+/*******************************************************************************
+* Copyright (c) 1998, 2009 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:
+* bdoughan - Oct 21/2009 - 2.0 - Initial implementation
+******************************************************************************/
+package org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.compositekey.elementkey;
+
+import java.util.ArrayList;
+
+import org.eclipse.persistence.testing.oxm.mappings.keybased.Address;
+import org.eclipse.persistence.testing.oxm.mappings.keybased.KeyBasedMappingTestCases;
+import org.eclipse.persistence.testing.oxm.mappings.keybased.Root;
+import org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.Employee;
+
+public class CompositeElementKeyWithGroupingTestCases extends KeyBasedMappingTestCases {
+ private final static String XML_RESOURCE = "org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/instance-grouping.xml";
+
+ public CompositeElementKeyWithGroupingTestCases(String name) throws Exception {
+ super(name);
+ setControlDocument(XML_RESOURCE);
+ setProject(new CompositeElementKeyWithGroupingProject());
+ }
+
+ protected Object getControlObject() {
+ ArrayList addresses = new ArrayList(4);
+
+ Address address = new Address();
+ address.id = CONTROL_ADD_ID_1;
+ address.street = CONTROL_ADD_STREET_1;
+ address.city = CONTROL_ADD_CITY_1;
+ address.country = CONTROL_ADD_COUNTRY_1;
+ address.zip = CONTROL_ADD_ZIP_1;
+ addresses.add(address);
+
+ address = new Address();
+ address.id = CONTROL_ADD_ID_2;
+ address.street = CONTROL_ADD_STREET_2;
+ address.city = CONTROL_ADD_CITY_2;
+ address.country = CONTROL_ADD_COUNTRY_2;
+ address.zip = CONTROL_ADD_ZIP_2;
+ addresses.add(address);
+
+ address = new Address();
+ address.id = CONTROL_ADD_ID_3;
+ address.street = CONTROL_ADD_STREET_3;
+ address.city = CONTROL_ADD_CITY_3;
+ address.country = CONTROL_ADD_COUNTRY_3;
+ address.zip = CONTROL_ADD_ZIP_3;
+ addresses.add(address);
+
+ address = new Address();
+ address.id = CONTROL_ADD_ID_4;
+ address.street = CONTROL_ADD_STREET_4;
+ address.city = CONTROL_ADD_CITY_4;
+ address.country = CONTROL_ADD_COUNTRY_4;
+ address.zip = CONTROL_ADD_ZIP_4;
+ addresses.add(address);
+
+ Employee employee = new Employee();
+ employee.id = CONTROL_ID;
+ employee.name = CONTROL_NAME;
+ employee.addresses = addresses;
+
+ Root root = new Root();
+ root.employee = employee;
+ root.addresses = addresses;
+ return root;
+ }
+
+}
\ No newline at end of file
Index: src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyProject.java
===================================================================
--- src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyProject.java (revision 0)
+++ src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyProject.java (revision 0)
@@ -0,0 +1,113 @@
+/*******************************************************************************
+* Copyright (c) 1998, 2009 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:
+* bdoughan - Oct 21/2009 - 2.0 - Initial implementation
+******************************************************************************/
+package org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.compositekey.elementkey;
+
+import java.util.ArrayList;
+
+import org.eclipse.persistence.oxm.XMLDescriptor;
+import org.eclipse.persistence.oxm.mappings.XMLCollectionReferenceMapping;
+import org.eclipse.persistence.oxm.mappings.XMLCompositeCollectionMapping;
+import org.eclipse.persistence.oxm.mappings.XMLCompositeObjectMapping;
+import org.eclipse.persistence.oxm.mappings.XMLDirectMapping;
+import org.eclipse.persistence.sessions.Project;
+import org.eclipse.persistence.testing.oxm.mappings.keybased.Address;
+import org.eclipse.persistence.testing.oxm.mappings.keybased.Root;
+import org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.Employee;
+
+public class CompositeElementKeyProject extends Project {
+
+ public CompositeElementKeyProject() {
+ addDescriptor(getRootDescriptor());
+ addDescriptor(getEmployeeDescriptor());
+ addDescriptor(getAddressDescriptor());
+ }
+
+ private XMLDescriptor getRootDescriptor() {
+ XMLDescriptor descriptor = new XMLDescriptor();
+ descriptor.setJavaClass(Root.class);
+ descriptor.setDefaultRootElement("root");
+ // create employee mapping
+ XMLCompositeObjectMapping empMapping = new XMLCompositeObjectMapping();
+ empMapping.setAttributeName("employee");
+ empMapping.setXPath("employee");
+ empMapping.setReferenceClass(Employee.class);
+ descriptor.addMapping(empMapping);
+ // create address mapping
+ XMLCompositeCollectionMapping addMapping = new XMLCompositeCollectionMapping();
+ addMapping.setAttributeName("addresses");
+ addMapping.setXPath("address");
+ addMapping.setReferenceClass(Address.class);
+ descriptor.addMapping(addMapping);
+ return descriptor;
+ }
+
+ private XMLDescriptor getEmployeeDescriptor() {
+ XMLDescriptor descriptor = new XMLDescriptor();
+ descriptor.setJavaClass(Employee.class);
+ descriptor.setDefaultRootElement("employee");
+ // create id mapping
+ XMLDirectMapping idMapping = new XMLDirectMapping();
+ idMapping.setAttributeName("id");
+ idMapping.setXPath("@id");
+ descriptor.addMapping(idMapping);
+ // create name mapping
+ XMLDirectMapping nameMapping = new XMLDirectMapping();
+ nameMapping.setAttributeName("name");
+ nameMapping.setXPath("name/text()");
+ descriptor.addMapping(nameMapping);
+ // create address mapping
+ XMLCollectionReferenceMapping addressMapping = new XMLCollectionReferenceMapping();
+ addressMapping.useCollectionClass(ArrayList.class);
+ addressMapping.setAttributeName("addresses");
+ addressMapping.setReferenceClass(Address.class);
+ addressMapping.addSourceToTargetKeyFieldAssociation("address/id-city/text()", "city/text()");
+ addressMapping.addSourceToTargetKeyFieldAssociation("address/id-zip/text()", "zip/text()");
+ descriptor.addMapping(addressMapping);
+ return descriptor;
+ }
+
+ private XMLDescriptor getAddressDescriptor() {
+ XMLDescriptor descriptor = new XMLDescriptor();
+ descriptor.setJavaClass(Address.class);
+ descriptor.addPrimaryKeyFieldName("city/text()");
+ descriptor.addPrimaryKeyFieldName("zip/text()");
+ descriptor.setDefaultRootElement("address");
+ // create id mapping
+ XMLDirectMapping idMapping = new XMLDirectMapping();
+ idMapping.setAttributeName("id");
+ idMapping.setXPath("@aid");
+ descriptor.addMapping(idMapping);
+ // create street mapping
+ XMLDirectMapping streetMapping = new XMLDirectMapping();
+ streetMapping.setAttributeName("street");
+ streetMapping.setXPath("street/text()");
+ descriptor.addMapping(streetMapping);
+ // create city mapping
+ XMLDirectMapping cityMapping = new XMLDirectMapping();
+ cityMapping.setAttributeName("city");
+ cityMapping.setXPath("city/text()");
+ descriptor.addMapping(cityMapping);
+ // create country mapping
+ XMLDirectMapping countryMapping = new XMLDirectMapping();
+ countryMapping.setAttributeName("country");
+ countryMapping.setXPath("country/text()");
+ descriptor.addMapping(countryMapping);
+ // create zip mapping
+ XMLDirectMapping zipMapping = new XMLDirectMapping();
+ zipMapping.setAttributeName("zip");
+ zipMapping.setXPath("zip/text()");
+ descriptor.addMapping(zipMapping);
+ return descriptor;
+ }
+
+}
\ No newline at end of file
Index: src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyWithGroupingNSTestCases.java
===================================================================
--- src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyWithGroupingNSTestCases.java (revision 0)
+++ src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyWithGroupingNSTestCases.java (revision 0)
@@ -0,0 +1,77 @@
+/*******************************************************************************
+* Copyright (c) 1998, 2009 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:
+* bdoughan - Oct 21/2009 - 2.0 - Initial implementation
+******************************************************************************/
+package org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.compositekey.elementkey;
+
+import java.util.ArrayList;
+
+import org.eclipse.persistence.testing.oxm.mappings.keybased.Address;
+import org.eclipse.persistence.testing.oxm.mappings.keybased.KeyBasedMappingTestCases;
+import org.eclipse.persistence.testing.oxm.mappings.keybased.Root;
+import org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.Employee;
+
+public class CompositeElementKeyWithGroupingNSTestCases extends KeyBasedMappingTestCases {
+ private final static String XML_RESOURCE = "org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/instance-grouping-ns.xml";
+
+ public CompositeElementKeyWithGroupingNSTestCases(String name) throws Exception {
+ super(name);
+ setControlDocument(XML_RESOURCE);
+ setProject(new CompositeElementKeyWithGroupingNSProject());
+ }
+
+ protected Object getControlObject() {
+ ArrayList addresses = new ArrayList(4);
+
+ Address address = new Address();
+ address.id = CONTROL_ADD_ID_1;
+ address.street = CONTROL_ADD_STREET_1;
+ address.city = CONTROL_ADD_CITY_1;
+ address.country = CONTROL_ADD_COUNTRY_1;
+ address.zip = CONTROL_ADD_ZIP_1;
+ addresses.add(address);
+
+ address = new Address();
+ address.id = CONTROL_ADD_ID_2;
+ address.street = CONTROL_ADD_STREET_2;
+ address.city = CONTROL_ADD_CITY_2;
+ address.country = CONTROL_ADD_COUNTRY_2;
+ address.zip = CONTROL_ADD_ZIP_2;
+ addresses.add(address);
+
+ address = new Address();
+ address.id = CONTROL_ADD_ID_3;
+ address.street = CONTROL_ADD_STREET_3;
+ address.city = CONTROL_ADD_CITY_3;
+ address.country = CONTROL_ADD_COUNTRY_3;
+ address.zip = CONTROL_ADD_ZIP_3;
+ addresses.add(address);
+
+ address = new Address();
+ address.id = CONTROL_ADD_ID_4;
+ address.street = CONTROL_ADD_STREET_4;
+ address.city = CONTROL_ADD_CITY_4;
+ address.country = CONTROL_ADD_COUNTRY_4;
+ address.zip = CONTROL_ADD_ZIP_4;
+ addresses.add(address);
+
+ Employee employee = new Employee();
+ employee.id = CONTROL_ID;
+ employee.name = CONTROL_NAME;
+ employee.addresses = addresses;
+
+ Root root = new Root();
+ root.employee = employee;
+ root.addresses = addresses;
+ return root;
+ }
+
+}
\ No newline at end of file
Index: src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyNSProject.java
===================================================================
--- src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyNSProject.java (revision 0)
+++ src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyNSProject.java (revision 0)
@@ -0,0 +1,126 @@
+/*******************************************************************************
+* Copyright (c) 1998, 2009 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:
+* bdoughan - Oct 21/2009 - 2.0 - Initial implementation
+******************************************************************************/
+package org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.compositekey.elementkey;
+
+import java.util.ArrayList;
+
+import org.eclipse.persistence.oxm.NamespaceResolver;
+import org.eclipse.persistence.oxm.XMLDescriptor;
+import org.eclipse.persistence.oxm.mappings.XMLCollectionReferenceMapping;
+import org.eclipse.persistence.oxm.mappings.XMLCompositeCollectionMapping;
+import org.eclipse.persistence.oxm.mappings.XMLCompositeObjectMapping;
+import org.eclipse.persistence.oxm.mappings.XMLDirectMapping;
+import org.eclipse.persistence.sessions.Project;
+import org.eclipse.persistence.testing.oxm.mappings.keybased.Address;
+import org.eclipse.persistence.testing.oxm.mappings.keybased.Root;
+import org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.Employee;
+
+public class CompositeElementKeyNSProject extends Project {
+
+ public CompositeElementKeyNSProject() {
+ addDescriptor(getRootDescriptor());
+ addDescriptor(getEmployeeDescriptor());
+ addDescriptor(getAddressDescriptor());
+ }
+
+ private XMLDescriptor getRootDescriptor() {
+ XMLDescriptor descriptor = new XMLDescriptor();
+ descriptor.setJavaClass(Root.class);
+ descriptor.setDefaultRootElement("ns:root");
+ // create namespace resolver
+ NamespaceResolver nsResolver = new NamespaceResolver();
+ nsResolver.put("ns", "urn:example");
+ descriptor.setNamespaceResolver(nsResolver);
+ // create employee mapping
+ XMLCompositeObjectMapping empMapping = new XMLCompositeObjectMapping();
+ empMapping.setAttributeName("employee");
+ empMapping.setXPath("ns:employee");
+ empMapping.setReferenceClass(Employee.class);
+ descriptor.addMapping(empMapping);
+ // create address mapping
+ XMLCompositeCollectionMapping addMapping = new XMLCompositeCollectionMapping();
+ addMapping.setAttributeName("addresses");
+ addMapping.setXPath("ns:address");
+ addMapping.setReferenceClass(Address.class);
+ descriptor.addMapping(addMapping);
+ return descriptor;
+ }
+
+ private XMLDescriptor getEmployeeDescriptor() {
+ XMLDescriptor descriptor = new XMLDescriptor();
+ descriptor.setJavaClass(Employee.class);
+ descriptor.setDefaultRootElement("ns:employee");
+ // create namespace resolver
+ NamespaceResolver nsResolver = new NamespaceResolver();
+ nsResolver.put("ns", "urn:example");
+ descriptor.setNamespaceResolver(nsResolver);
+ // create id mapping
+ XMLDirectMapping idMapping = new XMLDirectMapping();
+ idMapping.setAttributeName("id");
+ idMapping.setXPath("@id");
+ descriptor.addMapping(idMapping);
+ // create name mapping
+ XMLDirectMapping nameMapping = new XMLDirectMapping();
+ nameMapping.setAttributeName("name");
+ nameMapping.setXPath("ns:name/text()");
+ descriptor.addMapping(nameMapping);
+ // create address mapping
+ XMLCollectionReferenceMapping addressMapping = new XMLCollectionReferenceMapping();
+ addressMapping.useCollectionClass(ArrayList.class);
+ addressMapping.setAttributeName("addresses");
+ addressMapping.setReferenceClass(Address.class);
+ addressMapping.addSourceToTargetKeyFieldAssociation("ns:address/ns:id-city/text()", "ns:city/text()");
+ addressMapping.addSourceToTargetKeyFieldAssociation("ns:address/ns:id-zip/text()", "ns:zip/text()");
+ descriptor.addMapping(addressMapping);
+ return descriptor;
+ }
+
+ private XMLDescriptor getAddressDescriptor() {
+ XMLDescriptor descriptor = new XMLDescriptor();
+ descriptor.setJavaClass(Address.class);
+ descriptor.addPrimaryKeyFieldName("ns:city/text()");
+ descriptor.addPrimaryKeyFieldName("ns:zip/text()");
+ descriptor.setDefaultRootElement("ns:address");
+ // create namespace resolver
+ NamespaceResolver nsResolver = new NamespaceResolver();
+ nsResolver.put("ns", "urn:example");
+ descriptor.setNamespaceResolver(nsResolver);
+ // create id mapping
+ XMLDirectMapping idMapping = new XMLDirectMapping();
+ idMapping.setAttributeName("id");
+ idMapping.setXPath("@aid");
+ descriptor.addMapping(idMapping);
+ // create street mapping
+ XMLDirectMapping streetMapping = new XMLDirectMapping();
+ streetMapping.setAttributeName("street");
+ streetMapping.setXPath("ns:street/text()");
+ descriptor.addMapping(streetMapping);
+ // create city mapping
+ XMLDirectMapping cityMapping = new XMLDirectMapping();
+ cityMapping.setAttributeName("city");
+ cityMapping.setXPath("ns:city/text()");
+ descriptor.addMapping(cityMapping);
+ // create country mapping
+ XMLDirectMapping countryMapping = new XMLDirectMapping();
+ countryMapping.setAttributeName("country");
+ countryMapping.setXPath("ns:country/text()");
+ descriptor.addMapping(countryMapping);
+ // create zip mapping
+ XMLDirectMapping zipMapping = new XMLDirectMapping();
+ zipMapping.setAttributeName("zip");
+ zipMapping.setXPath("ns:zip/text()");
+ descriptor.addMapping(zipMapping);
+ return descriptor;
+ }
+
+}
\ No newline at end of file
Index: src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyNSProject.java
===================================================================
--- src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyNSProject.java (revision 0)
+++ src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyNSProject.java (revision 0)
@@ -0,0 +1,126 @@
+/*******************************************************************************
+* Copyright (c) 1998, 2009 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:
+* bdoughan - Oct 21/2009 - 2.0 - Initial implementation
+******************************************************************************/
+package org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.compositekey.elementkey;
+
+import java.util.ArrayList;
+
+import org.eclipse.persistence.oxm.NamespaceResolver;
+import org.eclipse.persistence.oxm.XMLDescriptor;
+import org.eclipse.persistence.oxm.mappings.XMLCollectionReferenceMapping;
+import org.eclipse.persistence.oxm.mappings.XMLCompositeCollectionMapping;
+import org.eclipse.persistence.oxm.mappings.XMLCompositeObjectMapping;
+import org.eclipse.persistence.oxm.mappings.XMLDirectMapping;
+import org.eclipse.persistence.sessions.Project;
+import org.eclipse.persistence.testing.oxm.mappings.keybased.Address;
+import org.eclipse.persistence.testing.oxm.mappings.keybased.Root;
+import org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.Employee;
+
+public class CompositeElementKeyNSProject extends Project {
+
+ public CompositeElementKeyNSProject() {
+ addDescriptor(getRootDescriptor());
+ addDescriptor(getEmployeeDescriptor());
+ addDescriptor(getAddressDescriptor());
+ }
+
+ private XMLDescriptor getRootDescriptor() {
+ XMLDescriptor descriptor = new XMLDescriptor();
+ descriptor.setJavaClass(Root.class);
+ descriptor.setDefaultRootElement("ns:root");
+ // create namespace resolver
+ NamespaceResolver nsResolver = new NamespaceResolver();
+ nsResolver.put("ns", "urn:example");
+ descriptor.setNamespaceResolver(nsResolver);
+ // create employee mapping
+ XMLCompositeObjectMapping empMapping = new XMLCompositeObjectMapping();
+ empMapping.setAttributeName("employee");
+ empMapping.setXPath("ns:employee");
+ empMapping.setReferenceClass(Employee.class);
+ descriptor.addMapping(empMapping);
+ // create address mapping
+ XMLCompositeCollectionMapping addMapping = new XMLCompositeCollectionMapping();
+ addMapping.setAttributeName("addresses");
+ addMapping.setXPath("ns:address");
+ addMapping.setReferenceClass(Address.class);
+ descriptor.addMapping(addMapping);
+ return descriptor;
+ }
+
+ private XMLDescriptor getEmployeeDescriptor() {
+ XMLDescriptor descriptor = new XMLDescriptor();
+ descriptor.setJavaClass(Employee.class);
+ descriptor.setDefaultRootElement("ns:employee");
+ // create namespace resolver
+ NamespaceResolver nsResolver = new NamespaceResolver();
+ nsResolver.put("ns", "urn:example");
+ descriptor.setNamespaceResolver(nsResolver);
+ // create id mapping
+ XMLDirectMapping idMapping = new XMLDirectMapping();
+ idMapping.setAttributeName("id");
+ idMapping.setXPath("@id");
+ descriptor.addMapping(idMapping);
+ // create name mapping
+ XMLDirectMapping nameMapping = new XMLDirectMapping();
+ nameMapping.setAttributeName("name");
+ nameMapping.setXPath("ns:name/text()");
+ descriptor.addMapping(nameMapping);
+ // create address mapping
+ XMLCollectionReferenceMapping addressMapping = new XMLCollectionReferenceMapping();
+ addressMapping.useCollectionClass(ArrayList.class);
+ addressMapping.setAttributeName("addresses");
+ addressMapping.setReferenceClass(Address.class);
+ addressMapping.addSourceToTargetKeyFieldAssociation("ns:address/ns:id-city/text()", "ns:city/text()");
+ addressMapping.addSourceToTargetKeyFieldAssociation("ns:address/ns:id-zip/text()", "ns:zip/text()");
+ descriptor.addMapping(addressMapping);
+ return descriptor;
+ }
+
+ private XMLDescriptor getAddressDescriptor() {
+ XMLDescriptor descriptor = new XMLDescriptor();
+ descriptor.setJavaClass(Address.class);
+ descriptor.addPrimaryKeyFieldName("ns:city/text()");
+ descriptor.addPrimaryKeyFieldName("ns:zip/text()");
+ descriptor.setDefaultRootElement("ns:address");
+ // create namespace resolver
+ NamespaceResolver nsResolver = new NamespaceResolver();
+ nsResolver.put("ns", "urn:example");
+ descriptor.setNamespaceResolver(nsResolver);
+ // create id mapping
+ XMLDirectMapping idMapping = new XMLDirectMapping();
+ idMapping.setAttributeName("id");
+ idMapping.setXPath("@aid");
+ descriptor.addMapping(idMapping);
+ // create street mapping
+ XMLDirectMapping streetMapping = new XMLDirectMapping();
+ streetMapping.setAttributeName("street");
+ streetMapping.setXPath("ns:street/text()");
+ descriptor.addMapping(streetMapping);
+ // create city mapping
+ XMLDirectMapping cityMapping = new XMLDirectMapping();
+ cityMapping.setAttributeName("city");
+ cityMapping.setXPath("ns:city/text()");
+ descriptor.addMapping(cityMapping);
+ // create country mapping
+ XMLDirectMapping countryMapping = new XMLDirectMapping();
+ countryMapping.setAttributeName("country");
+ countryMapping.setXPath("ns:country/text()");
+ descriptor.addMapping(countryMapping);
+ // create zip mapping
+ XMLDirectMapping zipMapping = new XMLDirectMapping();
+ zipMapping.setAttributeName("zip");
+ zipMapping.setXPath("ns:zip/text()");
+ descriptor.addMapping(zipMapping);
+ return descriptor;
+ }
+
+}
\ No newline at end of file
Index: src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyNSTestCases.java
===================================================================
--- src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyNSTestCases.java (revision 0)
+++ src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyNSTestCases.java (revision 0)
@@ -0,0 +1,77 @@
+/*******************************************************************************
+* Copyright (c) 1998, 2009 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:
+* bdoughan - Oct 21/2009 - 2.0 - Initial implementation
+******************************************************************************/
+package org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.compositekey.elementkey;
+
+import java.util.ArrayList;
+
+import org.eclipse.persistence.testing.oxm.mappings.keybased.Address;
+import org.eclipse.persistence.testing.oxm.mappings.keybased.KeyBasedMappingTestCases;
+import org.eclipse.persistence.testing.oxm.mappings.keybased.Root;
+import org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.Employee;
+
+public class CompositeElementKeyNSTestCases extends KeyBasedMappingTestCases {
+ private final static String XML_RESOURCE = "org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/instance-ns.xml";
+
+ public CompositeElementKeyNSTestCases(String name) throws Exception {
+ super(name);
+ setControlDocument(XML_RESOURCE);
+ setProject(new CompositeElementKeyNSProject());
+ }
+
+ protected Object getControlObject() {
+ ArrayList addresses = new ArrayList(4);
+
+ Address address = new Address();
+ address.id = CONTROL_ADD_ID_1;
+ address.street = CONTROL_ADD_STREET_1;
+ address.city = CONTROL_ADD_CITY_1;
+ address.country = CONTROL_ADD_COUNTRY_1;
+ address.zip = CONTROL_ADD_ZIP_1;
+ addresses.add(address);
+
+ address = new Address();
+ address.id = CONTROL_ADD_ID_2;
+ address.street = CONTROL_ADD_STREET_2;
+ address.city = CONTROL_ADD_CITY_2;
+ address.country = CONTROL_ADD_COUNTRY_2;
+ address.zip = CONTROL_ADD_ZIP_2;
+ addresses.add(address);
+
+ address = new Address();
+ address.id = CONTROL_ADD_ID_3;
+ address.street = CONTROL_ADD_STREET_3;
+ address.city = CONTROL_ADD_CITY_3;
+ address.country = CONTROL_ADD_COUNTRY_3;
+ address.zip = CONTROL_ADD_ZIP_3;
+ addresses.add(address);
+
+ address = new Address();
+ address.id = CONTROL_ADD_ID_4;
+ address.street = CONTROL_ADD_STREET_4;
+ address.city = CONTROL_ADD_CITY_4;
+ address.country = CONTROL_ADD_COUNTRY_4;
+ address.zip = CONTROL_ADD_ZIP_4;
+ addresses.add(address);
+
+ Employee employee = new Employee();
+ employee.id = CONTROL_ID;
+ employee.name = CONTROL_NAME;
+ employee.addresses = addresses;
+
+ Root root = new Root();
+ root.employee = employee;
+ root.addresses = addresses;
+ return root;
+ }
+
+}
\ No newline at end of file
Index: src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyProject.java
===================================================================
--- src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyProject.java (revision 0)
+++ src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyProject.java (revision 0)
@@ -0,0 +1,113 @@
+/*******************************************************************************
+* Copyright (c) 1998, 2009 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:
+* bdoughan - Oct 21/2009 - 2.0 - Initial implementation
+******************************************************************************/
+package org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.compositekey.elementkey;
+
+import java.util.ArrayList;
+
+import org.eclipse.persistence.oxm.XMLDescriptor;
+import org.eclipse.persistence.oxm.mappings.XMLCollectionReferenceMapping;
+import org.eclipse.persistence.oxm.mappings.XMLCompositeCollectionMapping;
+import org.eclipse.persistence.oxm.mappings.XMLCompositeObjectMapping;
+import org.eclipse.persistence.oxm.mappings.XMLDirectMapping;
+import org.eclipse.persistence.sessions.Project;
+import org.eclipse.persistence.testing.oxm.mappings.keybased.Address;
+import org.eclipse.persistence.testing.oxm.mappings.keybased.Root;
+import org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.Employee;
+
+public class CompositeElementKeyProject extends Project {
+
+ public CompositeElementKeyProject() {
+ addDescriptor(getRootDescriptor());
+ addDescriptor(getEmployeeDescriptor());
+ addDescriptor(getAddressDescriptor());
+ }
+
+ private XMLDescriptor getRootDescriptor() {
+ XMLDescriptor descriptor = new XMLDescriptor();
+ descriptor.setJavaClass(Root.class);
+ descriptor.setDefaultRootElement("root");
+ // create employee mapping
+ XMLCompositeObjectMapping empMapping = new XMLCompositeObjectMapping();
+ empMapping.setAttributeName("employee");
+ empMapping.setXPath("employee");
+ empMapping.setReferenceClass(Employee.class);
+ descriptor.addMapping(empMapping);
+ // create address mapping
+ XMLCompositeCollectionMapping addMapping = new XMLCompositeCollectionMapping();
+ addMapping.setAttributeName("addresses");
+ addMapping.setXPath("address");
+ addMapping.setReferenceClass(Address.class);
+ descriptor.addMapping(addMapping);
+ return descriptor;
+ }
+
+ private XMLDescriptor getEmployeeDescriptor() {
+ XMLDescriptor descriptor = new XMLDescriptor();
+ descriptor.setJavaClass(Employee.class);
+ descriptor.setDefaultRootElement("employee");
+ // create id mapping
+ XMLDirectMapping idMapping = new XMLDirectMapping();
+ idMapping.setAttributeName("id");
+ idMapping.setXPath("@id");
+ descriptor.addMapping(idMapping);
+ // create name mapping
+ XMLDirectMapping nameMapping = new XMLDirectMapping();
+ nameMapping.setAttributeName("name");
+ nameMapping.setXPath("name/text()");
+ descriptor.addMapping(nameMapping);
+ // create address mapping
+ XMLCollectionReferenceMapping addressMapping = new XMLCollectionReferenceMapping();
+ addressMapping.useCollectionClass(ArrayList.class);
+ addressMapping.setAttributeName("addresses");
+ addressMapping.setReferenceClass(Address.class);
+ addressMapping.addSourceToTargetKeyFieldAssociation("address/id-city/text()", "city/text()");
+ addressMapping.addSourceToTargetKeyFieldAssociation("address/id-zip/text()", "zip/text()");
+ descriptor.addMapping(addressMapping);
+ return descriptor;
+ }
+
+ private XMLDescriptor getAddressDescriptor() {
+ XMLDescriptor descriptor = new XMLDescriptor();
+ descriptor.setJavaClass(Address.class);
+ descriptor.addPrimaryKeyFieldName("city/text()");
+ descriptor.addPrimaryKeyFieldName("zip/text()");
+ descriptor.setDefaultRootElement("address");
+ // create id mapping
+ XMLDirectMapping idMapping = new XMLDirectMapping();
+ idMapping.setAttributeName("id");
+ idMapping.setXPath("@aid");
+ descriptor.addMapping(idMapping);
+ // create street mapping
+ XMLDirectMapping streetMapping = new XMLDirectMapping();
+ streetMapping.setAttributeName("street");
+ streetMapping.setXPath("street/text()");
+ descriptor.addMapping(streetMapping);
+ // create city mapping
+ XMLDirectMapping cityMapping = new XMLDirectMapping();
+ cityMapping.setAttributeName("city");
+ cityMapping.setXPath("city/text()");
+ descriptor.addMapping(cityMapping);
+ // create country mapping
+ XMLDirectMapping countryMapping = new XMLDirectMapping();
+ countryMapping.setAttributeName("country");
+ countryMapping.setXPath("country/text()");
+ descriptor.addMapping(countryMapping);
+ // create zip mapping
+ XMLDirectMapping zipMapping = new XMLDirectMapping();
+ zipMapping.setAttributeName("zip");
+ zipMapping.setXPath("zip/text()");
+ descriptor.addMapping(zipMapping);
+ return descriptor;
+ }
+
+}
\ No newline at end of file
Index: src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyTestCases.java
===================================================================
--- src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyTestCases.java (revision 0)
+++ src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyTestCases.java (revision 0)
@@ -0,0 +1,77 @@
+/*******************************************************************************
+* Copyright (c) 1998, 2009 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:
+* bdoughan - Oct 21/2009 - 2.0 - Initial implementation
+******************************************************************************/
+package org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.compositekey.elementkey;
+
+import java.util.ArrayList;
+
+import org.eclipse.persistence.testing.oxm.mappings.keybased.Address;
+import org.eclipse.persistence.testing.oxm.mappings.keybased.KeyBasedMappingTestCases;
+import org.eclipse.persistence.testing.oxm.mappings.keybased.Root;
+import org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.Employee;
+
+public class CompositeElementKeyTestCases extends KeyBasedMappingTestCases {
+ private final static String XML_RESOURCE = "org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/instance.xml";
+
+ public CompositeElementKeyTestCases(String name) throws Exception {
+ super(name);
+ setControlDocument(XML_RESOURCE);
+ setProject(new CompositeElementKeyProject());
+ }
+
+ protected Object getControlObject() {
+ ArrayList addresses = new ArrayList(4);
+
+ Address address = new Address();
+ address.id = CONTROL_ADD_ID_1;
+ address.street = CONTROL_ADD_STREET_1;
+ address.city = CONTROL_ADD_CITY_1;
+ address.country = CONTROL_ADD_COUNTRY_1;
+ address.zip = CONTROL_ADD_ZIP_1;
+ addresses.add(address);
+
+ address = new Address();
+ address.id = CONTROL_ADD_ID_2;
+ address.street = CONTROL_ADD_STREET_2;
+ address.city = CONTROL_ADD_CITY_2;
+ address.country = CONTROL_ADD_COUNTRY_2;
+ address.zip = CONTROL_ADD_ZIP_2;
+ addresses.add(address);
+
+ address = new Address();
+ address.id = CONTROL_ADD_ID_3;
+ address.street = CONTROL_ADD_STREET_3;
+ address.city = CONTROL_ADD_CITY_3;
+ address.country = CONTROL_ADD_COUNTRY_3;
+ address.zip = CONTROL_ADD_ZIP_3;
+ addresses.add(address);
+
+ address = new Address();
+ address.id = CONTROL_ADD_ID_4;
+ address.street = CONTROL_ADD_STREET_4;
+ address.city = CONTROL_ADD_CITY_4;
+ address.country = CONTROL_ADD_COUNTRY_4;
+ address.zip = CONTROL_ADD_ZIP_4;
+ addresses.add(address);
+
+ Employee employee = new Employee();
+ employee.id = CONTROL_ID;
+ employee.name = CONTROL_NAME;
+ employee.addresses = addresses;
+
+ Root root = new Root();
+ root.employee = employee;
+ root.addresses = addresses;
+ return root;
+ }
+
+}
\ No newline at end of file
Index: src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyWithGroupingNSProject.java
===================================================================
--- src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyWithGroupingNSProject.java (revision 0)
+++ src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyWithGroupingNSProject.java (revision 0)
@@ -0,0 +1,127 @@
+/*******************************************************************************
+* Copyright (c) 1998, 2009 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:
+* bdoughan - Oct 21/2009 - 2.0 - Initial implementation
+******************************************************************************/
+package org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.compositekey.elementkey;
+
+import java.util.ArrayList;
+
+import org.eclipse.persistence.oxm.NamespaceResolver;
+import org.eclipse.persistence.oxm.XMLDescriptor;
+import org.eclipse.persistence.oxm.mappings.XMLCollectionReferenceMapping;
+import org.eclipse.persistence.oxm.mappings.XMLCompositeCollectionMapping;
+import org.eclipse.persistence.oxm.mappings.XMLCompositeObjectMapping;
+import org.eclipse.persistence.oxm.mappings.XMLDirectMapping;
+import org.eclipse.persistence.sessions.Project;
+import org.eclipse.persistence.testing.oxm.mappings.keybased.Address;
+import org.eclipse.persistence.testing.oxm.mappings.keybased.Root;
+import org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.Employee;
+
+public class CompositeElementKeyWithGroupingNSProject extends Project {
+
+ public CompositeElementKeyWithGroupingNSProject() {
+ addDescriptor(getRootDescriptor());
+ addDescriptor(getEmployeeDescriptor());
+ addDescriptor(getAddressDescriptor());
+ }
+
+ private XMLDescriptor getRootDescriptor() {
+ XMLDescriptor descriptor = new XMLDescriptor();
+ descriptor.setJavaClass(Root.class);
+ descriptor.setDefaultRootElement("ns:root");
+ // create namespace resolver
+ NamespaceResolver nsResolver = new NamespaceResolver();
+ nsResolver.put("ns", "urn:example");
+ descriptor.setNamespaceResolver(nsResolver);
+ // create employee mapping
+ XMLCompositeObjectMapping empMapping = new XMLCompositeObjectMapping();
+ empMapping.setAttributeName("employee");
+ empMapping.setXPath("ns:employee");
+ empMapping.setReferenceClass(Employee.class);
+ descriptor.addMapping(empMapping);
+ // create address mapping
+ XMLCompositeCollectionMapping addMapping = new XMLCompositeCollectionMapping();
+ addMapping.setAttributeName("addresses");
+ addMapping.setXPath("ns:address");
+ addMapping.setReferenceClass(Address.class);
+ descriptor.addMapping(addMapping);
+ return descriptor;
+ }
+
+ private XMLDescriptor getEmployeeDescriptor() {
+ XMLDescriptor descriptor = new XMLDescriptor();
+ descriptor.setJavaClass(Employee.class);
+ descriptor.setDefaultRootElement("employee");
+ // create namespace resolver
+ NamespaceResolver nsResolver = new NamespaceResolver();
+ nsResolver.put("ns", "urn:example");
+ descriptor.setNamespaceResolver(nsResolver);
+ // create id mapping
+ XMLDirectMapping idMapping = new XMLDirectMapping();
+ idMapping.setAttributeName("id");
+ idMapping.setXPath("@id");
+ descriptor.addMapping(idMapping);
+ // create name mapping
+ XMLDirectMapping nameMapping = new XMLDirectMapping();
+ nameMapping.setAttributeName("name");
+ nameMapping.setXPath("ns:name/text()");
+ descriptor.addMapping(nameMapping);
+ // create address mapping
+ XMLCollectionReferenceMapping addressMapping = new XMLCollectionReferenceMapping();
+ addressMapping.useCollectionClass(ArrayList.class);
+ addressMapping.setAttributeName("addresses");
+ addressMapping.setXPath("ns:grouping-element");
+ addressMapping.setReferenceClass(Address.class);
+ addressMapping.addSourceToTargetKeyFieldAssociation("ns:address/ns:id-city/text()", "ns:city/text()");
+ addressMapping.addSourceToTargetKeyFieldAssociation("ns:address/ns:id-zip/text()", "ns:zip/text()");
+ descriptor.addMapping(addressMapping);
+ return descriptor;
+ }
+
+ private XMLDescriptor getAddressDescriptor() {
+ XMLDescriptor descriptor = new XMLDescriptor();
+ descriptor.setJavaClass(Address.class);
+ descriptor.addPrimaryKeyFieldName("ns:city/text()");
+ descriptor.addPrimaryKeyFieldName("ns:zip/text()");
+ descriptor.setDefaultRootElement("address");
+ // create namespace resolver
+ NamespaceResolver nsResolver = new NamespaceResolver();
+ nsResolver.put("ns", "urn:example");
+ descriptor.setNamespaceResolver(nsResolver);
+ // create id mapping
+ XMLDirectMapping idMapping = new XMLDirectMapping();
+ idMapping.setAttributeName("id");
+ idMapping.setXPath("@aid");
+ descriptor.addMapping(idMapping);
+ // create street mapping
+ XMLDirectMapping streetMapping = new XMLDirectMapping();
+ streetMapping.setAttributeName("street");
+ streetMapping.setXPath("ns:street/text()");
+ descriptor.addMapping(streetMapping);
+ // create city mapping
+ XMLDirectMapping cityMapping = new XMLDirectMapping();
+ cityMapping.setAttributeName("city");
+ cityMapping.setXPath("ns:city/text()");
+ descriptor.addMapping(cityMapping);
+ // create country mapping
+ XMLDirectMapping countryMapping = new XMLDirectMapping();
+ countryMapping.setAttributeName("country");
+ countryMapping.setXPath("ns:country/text()");
+ descriptor.addMapping(countryMapping);
+ // create zip mapping
+ XMLDirectMapping zipMapping = new XMLDirectMapping();
+ zipMapping.setAttributeName("zip");
+ zipMapping.setXPath("ns:zip/text()");
+ descriptor.addMapping(zipMapping);
+ return descriptor;
+ }
+
+}
\ No newline at end of file
Index: src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyWithGroupingNSTestCases.java
===================================================================
--- src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyWithGroupingNSTestCases.java (revision 0)
+++ src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyWithGroupingNSTestCases.java (revision 0)
@@ -0,0 +1,77 @@
+/*******************************************************************************
+* Copyright (c) 1998, 2009 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:
+* bdoughan - Oct 21/2009 - 2.0 - Initial implementation
+******************************************************************************/
+package org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.compositekey.elementkey;
+
+import java.util.ArrayList;
+
+import org.eclipse.persistence.testing.oxm.mappings.keybased.Address;
+import org.eclipse.persistence.testing.oxm.mappings.keybased.KeyBasedMappingTestCases;
+import org.eclipse.persistence.testing.oxm.mappings.keybased.Root;
+import org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.Employee;
+
+public class CompositeElementKeyWithGroupingNSTestCases extends KeyBasedMappingTestCases {
+ private final static String XML_RESOURCE = "org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/instance-grouping-ns.xml";
+
+ public CompositeElementKeyWithGroupingNSTestCases(String name) throws Exception {
+ super(name);
+ setControlDocument(XML_RESOURCE);
+ setProject(new CompositeElementKeyWithGroupingNSProject());
+ }
+
+ protected Object getControlObject() {
+ ArrayList addresses = new ArrayList(4);
+
+ Address address = new Address();
+ address.id = CONTROL_ADD_ID_1;
+ address.street = CONTROL_ADD_STREET_1;
+ address.city = CONTROL_ADD_CITY_1;
+ address.country = CONTROL_ADD_COUNTRY_1;
+ address.zip = CONTROL_ADD_ZIP_1;
+ addresses.add(address);
+
+ address = new Address();
+ address.id = CONTROL_ADD_ID_2;
+ address.street = CONTROL_ADD_STREET_2;
+ address.city = CONTROL_ADD_CITY_2;
+ address.country = CONTROL_ADD_COUNTRY_2;
+ address.zip = CONTROL_ADD_ZIP_2;
+ addresses.add(address);
+
+ address = new Address();
+ address.id = CONTROL_ADD_ID_3;
+ address.street = CONTROL_ADD_STREET_3;
+ address.city = CONTROL_ADD_CITY_3;
+ address.country = CONTROL_ADD_COUNTRY_3;
+ address.zip = CONTROL_ADD_ZIP_3;
+ addresses.add(address);
+
+ address = new Address();
+ address.id = CONTROL_ADD_ID_4;
+ address.street = CONTROL_ADD_STREET_4;
+ address.city = CONTROL_ADD_CITY_4;
+ address.country = CONTROL_ADD_COUNTRY_4;
+ address.zip = CONTROL_ADD_ZIP_4;
+ addresses.add(address);
+
+ Employee employee = new Employee();
+ employee.id = CONTROL_ID;
+ employee.name = CONTROL_NAME;
+ employee.addresses = addresses;
+
+ Root root = new Root();
+ root.employee = employee;
+ root.addresses = addresses;
+ return root;
+ }
+
+}
\ No newline at end of file
Index: src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyWithGroupingProject.java
===================================================================
--- src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyWithGroupingProject.java (revision 0)
+++ src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyWithGroupingProject.java (revision 0)
@@ -0,0 +1,114 @@
+/*******************************************************************************
+* Copyright (c) 1998, 2009 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:
+* bdoughan - Oct 21/2009 - 2.0 - Initial implementation
+******************************************************************************/
+package org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.compositekey.elementkey;
+
+import java.util.ArrayList;
+
+import org.eclipse.persistence.oxm.XMLDescriptor;
+import org.eclipse.persistence.oxm.mappings.XMLCollectionReferenceMapping;
+import org.eclipse.persistence.oxm.mappings.XMLCompositeCollectionMapping;
+import org.eclipse.persistence.oxm.mappings.XMLCompositeObjectMapping;
+import org.eclipse.persistence.oxm.mappings.XMLDirectMapping;
+import org.eclipse.persistence.sessions.Project;
+import org.eclipse.persistence.testing.oxm.mappings.keybased.Address;
+import org.eclipse.persistence.testing.oxm.mappings.keybased.Root;
+import org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.Employee;
+
+public class CompositeElementKeyWithGroupingProject extends Project {
+
+ public CompositeElementKeyWithGroupingProject() {
+ addDescriptor(getRootDescriptor());
+ addDescriptor(getEmployeeDescriptor());
+ addDescriptor(getAddressDescriptor());
+ }
+
+ private XMLDescriptor getRootDescriptor() {
+ XMLDescriptor descriptor = new XMLDescriptor();
+ descriptor.setJavaClass(Root.class);
+ descriptor.setDefaultRootElement("root");
+ // create employee mapping
+ XMLCompositeObjectMapping empMapping = new XMLCompositeObjectMapping();
+ empMapping.setAttributeName("employee");
+ empMapping.setXPath("employee");
+ empMapping.setReferenceClass(Employee.class);
+ descriptor.addMapping(empMapping);
+ // create address mapping
+ XMLCompositeCollectionMapping addMapping = new XMLCompositeCollectionMapping();
+ addMapping.setAttributeName("addresses");
+ addMapping.setXPath("address");
+ addMapping.setReferenceClass(Address.class);
+ descriptor.addMapping(addMapping);
+ return descriptor;
+ }
+
+ private XMLDescriptor getEmployeeDescriptor() {
+ XMLDescriptor descriptor = new XMLDescriptor();
+ descriptor.setJavaClass(Employee.class);
+ descriptor.setDefaultRootElement("employee");
+ // create id mapping
+ XMLDirectMapping idMapping = new XMLDirectMapping();
+ idMapping.setAttributeName("id");
+ idMapping.setXPath("@id");
+ descriptor.addMapping(idMapping);
+ // create name mapping
+ XMLDirectMapping nameMapping = new XMLDirectMapping();
+ nameMapping.setAttributeName("name");
+ nameMapping.setXPath("name/text()");
+ descriptor.addMapping(nameMapping);
+ // create address mapping
+ XMLCollectionReferenceMapping addressMapping = new XMLCollectionReferenceMapping();
+ addressMapping.useCollectionClass(ArrayList.class);
+ addressMapping.setAttributeName("addresses");
+ addressMapping.setXPath("grouping-element");
+ addressMapping.setReferenceClass(Address.class);
+ addressMapping.addSourceToTargetKeyFieldAssociation("address/id-city/text()", "city/text()");
+ addressMapping.addSourceToTargetKeyFieldAssociation("address/id-zip/text()", "zip/text()");
+ descriptor.addMapping(addressMapping);
+ return descriptor;
+ }
+
+ private XMLDescriptor getAddressDescriptor() {
+ XMLDescriptor descriptor = new XMLDescriptor();
+ descriptor.setJavaClass(Address.class);
+ descriptor.addPrimaryKeyFieldName("city/text()");
+ descriptor.addPrimaryKeyFieldName("zip/text()");
+ descriptor.setDefaultRootElement("address");
+ // create id mapping
+ XMLDirectMapping idMapping = new XMLDirectMapping();
+ idMapping.setAttributeName("id");
+ idMapping.setXPath("@aid");
+ descriptor.addMapping(idMapping);
+ // create street mapping
+ XMLDirectMapping streetMapping = new XMLDirectMapping();
+ streetMapping.setAttributeName("street");
+ streetMapping.setXPath("street/text()");
+ descriptor.addMapping(streetMapping);
+ // create city mapping
+ XMLDirectMapping cityMapping = new XMLDirectMapping();
+ cityMapping.setAttributeName("city");
+ cityMapping.setXPath("city/text()");
+ descriptor.addMapping(cityMapping);
+ // create country mapping
+ XMLDirectMapping countryMapping = new XMLDirectMapping();
+ countryMapping.setAttributeName("country");
+ countryMapping.setXPath("country/text()");
+ descriptor.addMapping(countryMapping);
+ // create zip mapping
+ XMLDirectMapping zipMapping = new XMLDirectMapping();
+ zipMapping.setAttributeName("zip");
+ zipMapping.setXPath("zip/text()");
+ descriptor.addMapping(zipMapping);
+ return descriptor;
+ }
+
+}
\ No newline at end of file
Index: src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyWithGroupingTestCases.java
===================================================================
--- src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyWithGroupingTestCases.java (revision 0)
+++ src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/CompositeElementKeyWithGroupingTestCases.java (revision 0)
@@ -0,0 +1,77 @@
+/*******************************************************************************
+* Copyright (c) 1998, 2009 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:
+* bdoughan - Oct 21/2009 - 2.0 - Initial implementation
+******************************************************************************/
+package org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.compositekey.elementkey;
+
+import java.util.ArrayList;
+
+import org.eclipse.persistence.testing.oxm.mappings.keybased.Address;
+import org.eclipse.persistence.testing.oxm.mappings.keybased.KeyBasedMappingTestCases;
+import org.eclipse.persistence.testing.oxm.mappings.keybased.Root;
+import org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.Employee;
+
+public class CompositeElementKeyWithGroupingTestCases extends KeyBasedMappingTestCases {
+ private final static String XML_RESOURCE = "org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/elementkey/instance-grouping.xml";
+
+ public CompositeElementKeyWithGroupingTestCases(String name) throws Exception {
+ super(name);
+ setControlDocument(XML_RESOURCE);
+ setProject(new CompositeElementKeyWithGroupingProject());
+ }
+
+ protected Object getControlObject() {
+ ArrayList addresses = new ArrayList(4);
+
+ Address address = new Address();
+ address.id = CONTROL_ADD_ID_1;
+ address.street = CONTROL_ADD_STREET_1;
+ address.city = CONTROL_ADD_CITY_1;
+ address.country = CONTROL_ADD_COUNTRY_1;
+ address.zip = CONTROL_ADD_ZIP_1;
+ addresses.add(address);
+
+ address = new Address();
+ address.id = CONTROL_ADD_ID_2;
+ address.street = CONTROL_ADD_STREET_2;
+ address.city = CONTROL_ADD_CITY_2;
+ address.country = CONTROL_ADD_COUNTRY_2;
+ address.zip = CONTROL_ADD_ZIP_2;
+ addresses.add(address);
+
+ address = new Address();
+ address.id = CONTROL_ADD_ID_3;
+ address.street = CONTROL_ADD_STREET_3;
+ address.city = CONTROL_ADD_CITY_3;
+ address.country = CONTROL_ADD_COUNTRY_3;
+ address.zip = CONTROL_ADD_ZIP_3;
+ addresses.add(address);
+
+ address = new Address();
+ address.id = CONTROL_ADD_ID_4;
+ address.street = CONTROL_ADD_STREET_4;
+ address.city = CONTROL_ADD_CITY_4;
+ address.country = CONTROL_ADD_COUNTRY_4;
+ address.zip = CONTROL_ADD_ZIP_4;
+ addresses.add(address);
+
+ Employee employee = new Employee();
+ employee.id = CONTROL_ID;
+ employee.name = CONTROL_NAME;
+ employee.addresses = addresses;
+
+ Root root = new Root();
+ root.employee = employee;
+ root.addresses = addresses;
+ return root;
+ }
+
+}
\ No newline at end of file
Index: src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/nestedattributekey/NestedAttributeKeyProject.java
===================================================================
--- src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/nestedattributekey/NestedAttributeKeyProject.java (revision 5626)
+++ src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/nestedattributekey/NestedAttributeKeyProject.java (working copy)
@@ -69,9 +69,10 @@
XMLCollectionReferenceMapping addressMapping = new XMLCollectionReferenceMapping();
addressMapping.useCollectionClass(ArrayList.class);
addressMapping.setAttributeName("addresses");
+ addressMapping.setXPath("addresses");
addressMapping.setReferenceClass(Address.class);
- addressMapping.addSourceToTargetKeyFieldAssociation("addresses/address-ref/@address-city", "city/text()");
- addressMapping.addSourceToTargetKeyFieldAssociation("addresses/address-ref/@address-zip", "zip/text()");
+ addressMapping.addSourceToTargetKeyFieldAssociation("address-ref/@address-city", "city/text()");
+ addressMapping.addSourceToTargetKeyFieldAssociation("address-ref/@address-zip", "zip/text()");
addressMapping.setUsesSingleNode(false);
descriptor.addMapping(addressMapping);
return descriptor;
Index: src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/nestedattributekey/NestedAttributeKeyTestCases.java
===================================================================
--- src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/nestedattributekey/NestedAttributeKeyTestCases.java (revision 5626)
+++ src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/compositekey/nestedattributekey/NestedAttributeKeyTestCases.java (working copy)
@@ -55,16 +55,25 @@
address.zip = CONTROL_ADD_ZIP_3;
addresses.add(address);
- Employee employee = new Employee();
- employee.id = CONTROL_ID;
- employee.name = CONTROL_NAME;
- employee.addresses = addresses;
+ address = new Address();
+ address.id = CONTROL_ADD_ID_4;
+ address.street = CONTROL_ADD_STREET_4;
+ address.city = CONTROL_ADD_CITY_4;
+ address.country = CONTROL_ADD_COUNTRY_4;
+ address.zip = CONTROL_ADD_ZIP_4;
+ addresses.add(address);
- Root root = new Root();
+ Employee employee = new Employee();
+ employee.id = CONTROL_ID;
+ employee.name = CONTROL_NAME;
+ employee.addresses = addresses;
+
+ Root root = new Root();
root.employee = employee;
root.addresses = addresses;
return root;
}
+ /*
public Object getWriteControlObject() {
ArrayList rootAddresses = new ArrayList();
ArrayList empAddresses = new ArrayList();
@@ -107,4 +116,5 @@
root.addresses = rootAddresses;
return root;
}
+ */
}
Index: src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/MultipleTargetTestCases.java
===================================================================
--- src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/MultipleTargetTestCases.java (revision 5626)
+++ src/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/MultipleTargetTestCases.java (working copy)
@@ -15,6 +15,8 @@
import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;
+
+import org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.compositekey.CompositeKeyTestCases;
import org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.singlekey.SingleKeyTestCases;
//import org.eclipse.persistence.testing.oxm.mappings.keybased.multipletargets.compositekey.CompositeKeyTestCases;
@@ -22,8 +24,9 @@
public static Test suite() {
TestSuite suite = new TestSuite("Multiple target test suite");
suite.addTest(SingleKeyTestCases.suite());
- // Keep the composite key test suite commented out until bug# 5683210 is addressed
- //suite.addTest(CompositeKeyTestCases.suite());
+
+ // Testing fix for bug# 5683210
+ suite.addTest(CompositeKeyTestCases.suite());
return suite;
}