You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by kw...@apache.org on 2006/02/21 04:43:46 UTC
svn commit: r379321 - in /incubator/tuscany/java/das/rdb/src:
main/java/org/apache/tuscany/das/rdb/config/wrapper/
main/java/org/apache/tuscany/das/rdb/generator/impl/
main/java/org/apache/tuscany/das/rdb/graphbuilder/schema/
main/java/org/apache/tusca...
Author: kwilliams
Date: Mon Feb 20 19:43:44 2006
New Revision: 379321
URL: http://svn.apache.org/viewcvs?rev=379321&view=rev
Log:
Application of Brent's patch for TUSCANY-28
"DAS fails to recognize addition of new child to parent DataObject"
Modified:
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/config/wrapper/MappingWrapper.java
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/generator/impl/CudGenerator.java
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/generator/impl/InsertGenerator.java
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/generator/impl/UpdateGenerator.java
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/graphbuilder/schema/ESchemaMaker.java
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/ChangeFactory.java
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/ReadCommandImpl.java
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/merge/impl/GraphMerger.java
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/util/DataObjectUtil.java
incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/OperationOrderingTests.java
Modified: incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/config/wrapper/MappingWrapper.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/config/wrapper/MappingWrapper.java?rev=379321&r1=379320&r2=379321&view=diff
==============================================================================
--- incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/config/wrapper/MappingWrapper.java (original)
+++ incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/config/wrapper/MappingWrapper.java Mon Feb 20 19:43:44 2006
@@ -375,7 +375,7 @@
if ( name.equals (r.getName()))
return r;
}
- return null;
+ throw new RuntimeException("Could not find relationship " + name + " in the configuration");
}
}
Modified: incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/generator/impl/CudGenerator.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/generator/impl/CudGenerator.java?rev=379321&r1=379320&r2=379321&view=diff
==============================================================================
--- incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/generator/impl/CudGenerator.java (original)
+++ incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/generator/impl/CudGenerator.java Mon Feb 20 19:43:44 2006
@@ -42,13 +42,13 @@
return deleteGenerator.getDeleteParameters(table);
}
- public Collection getCreateParameters(DataObject changedObject, Table table) {
- return insertGenerator.getInsertParameters(changedObject, table);
+ public Collection getCreateParameters(MappingWrapper mapping, DataObject changedObject, Table table) {
+ return insertGenerator.getInsertParameters(mapping, changedObject, table);
}
- public InsertCommandImpl getInsertCommand(DataObject changedObject,
+ public InsertCommandImpl getInsertCommand(MappingWrapper mapping, DataObject changedObject,
Table table) {
- return insertGenerator.getInsertCommand(changedObject, table);
+ return insertGenerator.getInsertCommand(mapping, changedObject, table);
}
public WriteCommandImpl getUpdateCommand(MappingWrapper mapping,
Modified: incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/generator/impl/InsertGenerator.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/generator/impl/InsertGenerator.java?rev=379321&r1=379320&r2=379321&view=diff
==============================================================================
--- incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/generator/impl/InsertGenerator.java (original)
+++ incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/generator/impl/InsertGenerator.java Mon Feb 20 19:43:44 2006
@@ -23,13 +23,14 @@
import org.apache.tuscany.das.rdb.Converter;
import org.apache.tuscany.das.rdb.Parameter;
+import org.apache.tuscany.das.rdb.config.Relationship;
import org.apache.tuscany.das.rdb.config.Table;
+import org.apache.tuscany.das.rdb.config.wrapper.MappingWrapper;
+import org.apache.tuscany.das.rdb.config.wrapper.RelationshipWrapper;
import org.apache.tuscany.das.rdb.config.wrapper.TableWrapper;
import org.apache.tuscany.das.rdb.impl.InsertCommandImpl;
import org.apache.tuscany.das.rdb.impl.ParameterImpl;
import org.apache.tuscany.das.rdb.util.DebugUtil;
-import org.apache.tuscany.sdo.impl.AttributeImpl;
-import org.eclipse.emf.ecore.EObject;
import commonj.sdo.DataObject;
import commonj.sdo.Property;
@@ -44,19 +45,19 @@
super();
}
- public InsertCommandImpl getInsertCommand(DataObject changedObject, Table t) {
+ public InsertCommandImpl getInsertCommand(MappingWrapper config,
+ DataObject changedObject, Table t) {
ArrayList parameters = new ArrayList();
TableWrapper table = new TableWrapper(t);
StringBuffer statement = new StringBuffer("insert into ");
statement.append(t.getName());
- Iterator i = getAttributeProperties(changedObject).iterator();
+ Iterator i = getAttributeProperties(changedObject, config).iterator();
ArrayList attributes = new ArrayList();
while (i.hasNext()) {
- AttributeImpl attr = (AttributeImpl) i.next();
- if ((!table.isGeneratedColumnProperty(attr.getName())) &&
- ((EObject)changedObject).eIsSet(attr)) {
+ Property attr = (Property) i.next();
+ if (!table.isGeneratedColumnProperty(attr.getName())) {
attributes.add(attr.getName());
parameters.add(changedObject.getType().getProperty(
attr.getName()));
@@ -76,7 +77,7 @@
}
statement.append(" values (");
- for ( int idx=1; idx <= attributes.size(); idx++) {
+ for (int idx = 1; idx <= attributes.size(); idx++) {
statement.append('?');
if (idx < attributes.size())
statement.append(", ");
@@ -86,7 +87,7 @@
InsertCommandImpl cmd = new InsertCommandImpl(statement.toString());
Iterator params = parameters.iterator();
- for (int idx=1; params.hasNext(); idx++ ) {
+ for (int idx = 1; params.hasNext(); idx++) {
Property property = (Property) params.next();
Parameter p = new ParameterImpl();
p.setName(property.getName());
@@ -94,13 +95,13 @@
p.setConverter(getConverter(table, property.getName()));
p.setIndex(idx);
cmd.addParameter(p);
-
+
}
DebugUtil.debugln(getClass(), debug, statement.toString());
return cmd;
}
-
+
private Converter getConverter(TableWrapper tw, String name) {
String converter = tw.getConverter(name);
if ( converter != null ) {
@@ -113,27 +114,45 @@
return null;
}
- private List getAttributeProperties(DataObject obj) {
+ private List getAttributeProperties(DataObject obj, MappingWrapper config) {
ArrayList fields = new ArrayList();
Iterator i = obj.getType().getProperties().iterator();
- while ( i.hasNext()) {
+ while (i.hasNext()) {
Property p = (Property) i.next();
- if ( p.getType().isDataType())
- fields.add(p);
+ if (p.getType().isDataType()) {
+ if (obj.isSet(p))
+ fields.add(p);
+ } else {
+ if (!p.isMany() && obj.isSet(p)) {
+ Relationship relationship = config.getRelationshipByName(p
+ .getOpposite().getName());
+
+ RelationshipWrapper r = new RelationshipWrapper(
+ relationship);
+ Iterator keys = r.getForeignKeys().iterator();
+ while (keys.hasNext()) {
+ String key = (String) keys.next();
+ Property keyProp = obj.getType().getProperty(key);
+ fields.add(keyProp);
+ }
+
+ }
+ }
}
-
+
return fields;
-
+
}
- public Collection getInsertParameters(DataObject changedObject, Table table) {
+ public Collection getInsertParameters(MappingWrapper config,
+ DataObject changedObject, Table table) {
ArrayList parameters = new ArrayList();
TableWrapper wrapper = new TableWrapper(table);
- Iterator i = getAttributeProperties(changedObject).iterator();
+ Iterator i = getAttributeProperties(changedObject, config).iterator();
while (i.hasNext()) {
- AttributeImpl attr = (AttributeImpl) i.next();
+ Property attr = (Property) i.next();
if (!wrapper.isGeneratedColumnProperty(attr.getName()))
parameters.add(changedObject.getType().getProperty(
attr.getName()));
@@ -142,6 +161,4 @@
return parameters;
}
-
}
-
Modified: incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/generator/impl/UpdateGenerator.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/generator/impl/UpdateGenerator.java?rev=379321&r1=379320&r2=379321&view=diff
==============================================================================
--- incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/generator/impl/UpdateGenerator.java (original)
+++ incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/generator/impl/UpdateGenerator.java Mon Feb 20 19:43:44 2006
@@ -33,10 +33,6 @@
import org.apache.tuscany.das.rdb.impl.UpdateCommandImpl;
import org.apache.tuscany.das.rdb.impl.WriteCommandImpl;
import org.apache.tuscany.das.rdb.util.DebugUtil;
-import org.apache.tuscany.sdo.impl.AttributeImpl;
-import org.apache.tuscany.sdo.impl.ChangeSummarySettingImpl;
-import org.apache.tuscany.sdo.impl.ReferenceImpl;
-import org.eclipse.emf.ecore.ETypedElement;
import commonj.sdo.ChangeSummary;
import commonj.sdo.DataObject;
@@ -66,7 +62,7 @@
Iterator i = getChangedFields(mapping, summary, changedObject).iterator();
while (i.hasNext()) {
- AttributeImpl attr = (AttributeImpl) i.next();
+ Property attr = (Property) i.next();
Column c = t.getColumnByPropertyName(attr.getName());
if ((c != null) && (c.isCollision() || c.isPrimaryKey())) {
// get rid of comma if OCC or PK is last field
@@ -75,7 +71,7 @@
.delete(statement.length() - 2, statement.length());
}
} else {
- parameters.add(type.getProperty(attr.getName()));
+ parameters.add(attr);
statement.append(c == null ? attr.getName() : c.getName());
statement.append(" = ?");
if (i.hasNext())
@@ -141,17 +137,17 @@
ArrayList changes = new ArrayList();
Iterator i = summary.getOldValues(obj).iterator();
while (i.hasNext()) {
- ChangeSummarySettingImpl setting = (ChangeSummarySettingImpl) i.next();
- if (setting.getFeature() instanceof AttributeImpl)
- changes.add(setting.getFeature());
- else if ( setting.getFeature() instanceof ReferenceImpl) {
- ReferenceImpl ref = (ReferenceImpl) setting.getFeature();
- if ( ref.getUpperBound() != ETypedElement.UNBOUNDED_MULTIPLICITY ) {
- RelationshipWrapper r = new RelationshipWrapper(mapping.getRelationshipByName(ref.getEOpposite().getName()));
+ ChangeSummary.Setting setting = (ChangeSummary.Setting) i.next();
+ if (setting.getProperty().getType().isDataType()) {
+ changes.add(setting.getProperty());
+ } else {
+ Property ref = setting.getProperty();
+ if ( !ref.isMany() ) {
+ RelationshipWrapper r = new RelationshipWrapper(mapping.getRelationshipByName(ref.getOpposite().getName()));
Iterator keys = r.getForeignKeys().iterator();
while ( keys.hasNext()) {
String key = (String) keys.next();
- AttributeImpl p = (AttributeImpl) obj.getType().getProperty(key);
+ Property p = obj.getType().getProperty(key);
changes.add(p);
}
}
@@ -183,7 +179,7 @@
Iterator i = getAttributeProperties(changedObject).iterator();
while (i.hasNext()) {
- AttributeImpl attr = (AttributeImpl) i.next();
+ Property attr = (Property) i.next();
String field = attr.getName();
Parameter p = getParameter(wrapper, type.getProperty(field));
Modified: incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/graphbuilder/schema/ESchemaMaker.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/graphbuilder/schema/ESchemaMaker.java?rev=379321&r1=379320&r2=379321&view=diff
==============================================================================
--- incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/graphbuilder/schema/ESchemaMaker.java (original)
+++ incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/graphbuilder/schema/ESchemaMaker.java Mon Feb 20 19:43:44 2006
@@ -16,8 +16,6 @@
*/
package org.apache.tuscany.das.rdb.graphbuilder.schema;
-import java.io.IOException;
-import java.io.OutputStream;
import java.util.Iterator;
import org.apache.tuscany.das.rdb.config.Relationship;
@@ -33,12 +31,10 @@
import org.apache.tuscany.sdo.util.DataObjectUtil;
import org.apache.tuscany.sdo.util.SDOUtil;
import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.ENamedElement;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.EPackage;
import org.eclipse.emf.ecore.EcoreFactory;
import org.eclipse.emf.ecore.impl.EFactoryImpl;
-import org.eclipse.emf.ecore.xmi.impl.XMLResourceImpl;
import commonj.sdo.Type;
import commonj.sdo.helper.TypeHelper;
@@ -228,34 +224,6 @@
return EAttributeMaker.singleton();
}
- /**
- * Internal method to save a schema to a file
- *
- * @param eclass
- * The EClass to save (usually just the root EClass)
- * @param name
- * The name of the file
- * @throws IOException
- */
- private void save(ENamedElement eclass, OutputStream stream)
- throws IOException {
-
- XMLResourceImpl resource = new XMLResourceImpl();
- resource.getContents().add(eclass);
- resource.save(stream, null);
-
- }
-
- /**
- * Used by Metadata.saveToEcore() to save the schema to a file
- *
- * @param name
- * the file name
- * @throws IOException
- */
- public void save(OutputStream stream) throws IOException {
- save(getEPackage(), stream);
- }
/**
* @return the EPackage for this schema
Modified: incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/ChangeFactory.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/ChangeFactory.java?rev=379321&r1=379320&r2=379321&view=diff
==============================================================================
--- incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/ChangeFactory.java (original)
+++ incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/ChangeFactory.java Mon Feb 20 19:43:44 2006
@@ -105,10 +105,10 @@
String createStatement = table.getCreate();
if ( createStatement == null ) {
- createCommand = getCudGenerator().getInsertCommand(changedObject, table);
+ createCommand = getCudGenerator().getInsertCommand(mapping, changedObject, table);
} else {
createCommand = new InsertCommandImpl(createStatement);
- Iterator i = getCudGenerator().getCreateParameters(changedObject, table).iterator();
+ Iterator i = getCudGenerator().getCreateParameters(mapping, changedObject, table).iterator();
while (i.hasNext()) {
Property p = (Property)i.next();
createCommand.addParameter(p.getName(), p.getType());
Modified: incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/ReadCommandImpl.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/ReadCommandImpl.java?rev=379321&r1=379320&r2=379321&view=diff
==============================================================================
--- incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/ReadCommandImpl.java (original)
+++ incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/ReadCommandImpl.java Mon Feb 20 19:43:44 2006
@@ -32,7 +32,6 @@
import org.apache.tuscany.das.rdb.config.wrapper.MappingWrapper;
import org.apache.tuscany.das.rdb.graphbuilder.impl.GraphBuilderMetadata;
import org.apache.tuscany.das.rdb.graphbuilder.impl.ResultSetProcessor;
-import org.apache.tuscany.sdo.impl.ChangeSummaryImpl;
import org.apache.tuscany.sdo.util.DataObjectUtil;
import org.apache.tuscany.sdo.util.SDOUtil;
import org.eclipse.emf.common.util.URI;
@@ -42,9 +41,11 @@
import org.eclipse.emf.ecore.xmi.XMLResource;
import org.eclipse.emf.ecore.xmi.impl.XMLResourceImpl;
+import commonj.sdo.ChangeSummary;
import commonj.sdo.DataGraph;
import commonj.sdo.DataObject;
import commonj.sdo.Type;
+import commonj.sdo.helper.XMLHelper;
public class ReadCommandImpl extends CommandImpl {
@@ -109,7 +110,7 @@
getSchema(), mappingModel.getConfig(), resultSetShape);
DataGraph g = createEDataGraph(gbmd.getSchema());
- ChangeSummaryImpl summary = (ChangeSummaryImpl) g.getChangeSummary();
+ ChangeSummary summary = g.getChangeSummary();
ResultSetProcessor rsp = new ResultSetProcessor(g.getRootObject(), gbmd);
rsp.processResults(getStartRow(), getEndRow());
@@ -173,13 +174,15 @@
ConfigPackageImpl.eNS_URI);
map.put(XMLResource.OPTION_EXTENDED_META_DATA, metadata);
- try {
- resource.load(stream, map);
+ try {
+ Config config = (Config) XMLHelper.INSTANCE.load(stream, ConfigPackageImpl.eNS_URI,map).getRootObject();
+ mappingModel = new MappingWrapper(config);
+ // resource.load(stream, map);
} catch (IOException e) {
throw new RuntimeException(e);
}
- mappingModel = new MappingWrapper((Config) resource.getContents().get(
- 0));
+// mappingModel = new MappingWrapper((Config) resource.getContents().get(
+// 0));
if (mappingModel.getConfig().getConnectionProperties() != null)
setConnection(mappingModel.getConfig().getConnectionProperties());
Modified: incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/merge/impl/GraphMerger.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/merge/impl/GraphMerger.java?rev=379321&r1=379320&r2=379321&view=diff
==============================================================================
--- incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/merge/impl/GraphMerger.java (original)
+++ incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/merge/impl/GraphMerger.java Mon Feb 20 19:43:44 2006
@@ -27,9 +27,10 @@
import org.apache.tuscany.das.rdb.graphbuilder.impl.TableRegistry;
import org.apache.tuscany.sdo.impl.AttributeImpl;
import org.apache.tuscany.sdo.impl.ChangeSummaryImpl;
+import org.apache.tuscany.sdo.impl.ReferenceImpl;
import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EReference;
+import commonj.sdo.ChangeSummary;
import commonj.sdo.DataObject;
import commonj.sdo.Property;
@@ -62,7 +63,7 @@
public DataObject merge(DataObject primary, DataObject secondary) {
addGraphToRegistry(primary);
- ChangeSummaryImpl summary = (ChangeSummaryImpl) primary
+ ChangeSummary summary = primary
.getDataGraph().getChangeSummary();
summary.endLogging();
Iterator i = secondary.getType().getProperties().iterator();
@@ -76,7 +77,7 @@
createObjectWithSubtree(primary, p, object);
}
}
- summary.resumeLogging();
+ ((ChangeSummaryImpl)summary).resumeLogging();
return primary;
}
@@ -103,7 +104,7 @@
Iterator refs = eObjectToCopy.eClass().getEAllReferences()
.iterator();
while (refs.hasNext()) {
- EReference ref = (EReference) refs.next();
+ ReferenceImpl ref = (ReferenceImpl) refs.next();
List refObjects;
if (!ref.isMany()) {
refObjects = Collections.singletonList(eObjectToCopy
Modified: incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/util/DataObjectUtil.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/util/DataObjectUtil.java?rev=379321&r1=379320&r2=379321&view=diff
==============================================================================
--- incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/util/DataObjectUtil.java (original)
+++ incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/util/DataObjectUtil.java Mon Feb 20 19:43:44 2006
@@ -19,13 +19,11 @@
import java.util.Iterator;
import java.util.List;
-import org.eclipse.emf.ecore.EFactory;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EStructuralFeature;
-
import commonj.sdo.ChangeSummary;
import commonj.sdo.DataObject;
+import commonj.sdo.Property;
import commonj.sdo.ChangeSummary.Setting;
+import commonj.sdo.helper.DataFactory;
/**
*/
@@ -40,18 +38,15 @@
public static DataObject getCopy(DataObject original) {
- //Drop to "E" land and create a new instance
- EObject eOriginal = (EObject) original;
- EFactory factory = eOriginal.eClass().getEPackage().getEFactoryInstance();
- EObject eCopy = factory.create(eOriginal.eClass());
+ DataObject copy = DataFactory.INSTANCE.create(original.getType());
//Fill in values
- Iterator i = eOriginal.eClass().getEAllStructuralFeatures().iterator();
+ Iterator i = original.getType().getProperties().iterator();
while (i.hasNext()) {
- EStructuralFeature feature = (EStructuralFeature) i.next();
- eCopy.eSet(feature, eOriginal.eGet(feature));
+ Property feature = (Property) i.next();
+ copy.set(feature, original.get(feature));
}
- return (DataObject) eCopy;
+ return copy;
}
/**
Modified: incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/OperationOrderingTests.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/OperationOrderingTests.java?rev=379321&r1=379320&r2=379321&view=diff
==============================================================================
--- incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/OperationOrderingTests.java (original)
+++ incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/OperationOrderingTests.java Mon Feb 20 19:43:44 2006
@@ -31,50 +31,55 @@
CityData city = new CityData(getAutoConnection());
StateData state = new StateData(getAutoConnection());
-
+
city.doDeletes();
state.doDeletes();
state.doInserts();
city.doInserts();
-
}
protected void tearDown() throws Exception {
super.tearDown();
}
-
+
public OperationOrderingTests() {
super();
}
-
+
public void testInsert() throws Exception {
- Command select = Command.FACTORY.createCommand("Select * from STATES inner join CITIES on STATES.ID = CITIES.STATE_ID", getConfig("cityStates.xml"));
+ Command select = Command.FACTORY
+ .createCommand(
+ "Select * from STATES inner join CITIES on STATES.ID = CITIES.STATE_ID",
+ getConfig("cityStates.xml"));
select.setConnection(getConnection());
DataObject root = select.executeQuery();
+ int numberOfStates = root.getList("STATES").size();
+ int numberOfCities = root.getList("CITIES").size();
+
DataObject atlanta = root.createDataObject("CITIES");
atlanta.setString("NAME", "Atlanta");
atlanta.setInt("ID", 6);
-
+
// Create a new Company
DataObject georgia = root.createDataObject("STATES");
georgia.setInt("ID", 4);
georgia.setString("NAME", "GA");
-
+
georgia.getList("cities").add(atlanta);
// Create apply command
- ApplyChangesCommand apply = Command.FACTORY.createApplyChangesCommand();
+ ApplyChangesCommand apply = Command.FACTORY.createApplyChangesCommand(getConfig("cityStates.xml"));
apply.setConnection(getConnection());
- // Programatically set minimum metadata necessary
- apply.addPrimaryKey("STATES.ID");
- apply.addPrimaryKey("CITIES.ID");
- apply.addRelationship("STATES.ID", "CITIES.STATE_ID");
-
// Flush changes
apply.execute(root);
+
+ select.setConnection(getConnection());
+ root = select.executeQuery();
+ assertEquals(numberOfCities + 1, root.getList("CITIES").size());
+ assertEquals(numberOfStates + 1, root.getList("STATES").size());
}
}