You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by aa...@apache.org on 2010/08/29 16:03:22 UTC
svn commit: r990579 - in /cayenne/main/trunk:
framework/cayenne-di-unpublished/src/main/java/org/apache/cayenne/di/
framework/cayenne-di-unpublished/src/test/java/org/apache/cayenne/di/spi/
framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/...
Author: aadamchik
Date: Sun Aug 29 14:03:22 2010
New Revision: 990579
URL: http://svn.apache.org/viewvc?rev=990579&view=rev
Log:
CAY-1479 EntitySorter refactoring: make it DI-based, internalize Ashowood lib
* removed EntitySorter from DataNode (there was no clean refactoring path that would not require a creation of a bunch of extra objects)
* (unrelated refactoring) deprecated DataDomain addMap,removeMap, replacing them with properly named addDataMap, removeDataMap
* injectable EntitySorter
* preventing direct injection into DataDomain ... This seems to be an anti-pattern with our DI implementation, as using 'injectMembers'
inside a provider code causes double injection
TODO: no Ashwood internalizing is done in this commit
Modified:
cayenne/main/trunk/framework/cayenne-di-unpublished/src/main/java/org/apache/cayenne/di/Injector.java
cayenne/main/trunk/framework/cayenne-di-unpublished/src/test/java/org/apache/cayenne/di/spi/DefaultInjectorTest.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/DataDomain.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/DataNode.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/configuration/server/DataDomainProvider.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/configuration/server/ServerModule.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/map/AshwoodEntitySorter.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/util/NamedObjectFactory.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataDomainTest.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DbGeneratorTest.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/MockDataNode.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/configuration/server/DataDomainProviderTest.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/dba/oracle/OracleAdapterTest.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/map/EntityResolverTest.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/merge/MergeCase.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/unit/SimpleAccessStack.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/unit/jira/CAY_207Test.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/unit/jira/CAY_743Test.java
cayenne/main/trunk/itests/cayenne-runtime-itest/src/test/java/org/apache/cayenne/configuration/server/ServerRuntimeIntegrationTest.java
Modified: cayenne/main/trunk/framework/cayenne-di-unpublished/src/main/java/org/apache/cayenne/di/Injector.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-di-unpublished/src/main/java/org/apache/cayenne/di/Injector.java?rev=990579&r1=990578&r2=990579&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-di-unpublished/src/main/java/org/apache/cayenne/di/Injector.java (original)
+++ cayenne/main/trunk/framework/cayenne-di-unpublished/src/main/java/org/apache/cayenne/di/Injector.java Sun Aug 29 14:03:22 2010
@@ -49,8 +49,12 @@ public interface Injector {
/**
* Performs field injection on a given object, ignoring constructor injection. Since
* Cayenne DI injector returns fully injected objects, this method is rarely used
- * directly. One possible use is in custom DI providers, another is in unit tests to
- * initialize tested objects that are relying on field injecton.
+ * directly.
+ * <p>
+ * Note that using this method inside a custom DI {@link Provider} will most likely
+ * result in double injection, as custom provider is wrapped in a field-injecting
+ * provider by the DI container. Instead custom providers must initialize object
+ * properties manually, obtaining dependencies from Injector.
*/
void injectMembers(Object object);
Modified: cayenne/main/trunk/framework/cayenne-di-unpublished/src/test/java/org/apache/cayenne/di/spi/DefaultInjectorTest.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-di-unpublished/src/test/java/org/apache/cayenne/di/spi/DefaultInjectorTest.java?rev=990579&r1=990578&r2=990579&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-di-unpublished/src/test/java/org/apache/cayenne/di/spi/DefaultInjectorTest.java (original)
+++ cayenne/main/trunk/framework/cayenne-di-unpublished/src/test/java/org/apache/cayenne/di/spi/DefaultInjectorTest.java Sun Aug 29 14:03:22 2010
@@ -22,7 +22,6 @@ import junit.framework.TestCase;
import org.apache.cayenne.di.Binder;
import org.apache.cayenne.di.Module;
-import org.apache.cayenne.di.BeforeScopeEnd;
import org.apache.cayenne.di.mock.MockImplementation1_EventAnnotations;
import org.apache.cayenne.di.mock.MockInterface1;
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/DataDomain.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/DataDomain.java?rev=990579&r1=990578&r2=990579&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/DataDomain.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/DataDomain.java Sun Aug 29 14:03:22 2010
@@ -36,11 +36,9 @@ import org.apache.cayenne.cache.MapQuery
import org.apache.cayenne.cache.QueryCache;
import org.apache.cayenne.cache.QueryCacheFactory;
import org.apache.cayenne.configuration.ObjectContextFactory;
-import org.apache.cayenne.di.Inject;
import org.apache.cayenne.event.EventManager;
import org.apache.cayenne.graph.CompoundDiff;
import org.apache.cayenne.graph.GraphDiff;
-import org.apache.cayenne.map.AshwoodEntitySorter;
import org.apache.cayenne.map.DataMap;
import org.apache.cayenne.map.EntityResolver;
import org.apache.cayenne.map.EntitySorter;
@@ -100,7 +98,6 @@ public class DataDomain implements Query
/**
* @since 1.2
*/
- @Inject
protected EventManager eventManager;
/**
@@ -158,22 +155,10 @@ public class DataDomain implements Query
* @since 3.1
*/
public EntitySorter getEntitySorter() {
-
- if (entitySorter == null) {
- synchronized (this) {
- if (entitySorter == null) {
- entitySorter = new AshwoodEntitySorter(getDataMaps());
- }
- }
- }
-
return entitySorter;
}
/**
- * Exists as a backdoor to override domain sorter until the sorter API is moved from
- * DataNode.
- *
* @since 3.1
*/
public void setEntitySorter(EntitySorter entitySorter) {
@@ -427,23 +412,54 @@ public class DataDomain implements Query
}
}
- /** Registers new DataMap with this domain. */
+ /**
+ * Registers new DataMap with this domain.
+ *
+ * @deprecated since 3.1 use a more consistently named {@link #addDataMap(DataMap)}.
+ */
public void addMap(DataMap map) {
- getEntityResolver().addDataMap(map);
- entitySorter = null;
+ addDataMap(map);
+ }
+
+ public void addDataMap(DataMap dataMap) {
+ getEntityResolver().addDataMap(dataMap);
+ refreshEntitySorter();
}
- /** Returns DataMap matching <code>name</code> parameter. */
+ /**
+ * Returns DataMap matching <code>name</code> parameter.
+ *
+ * @deprecated since 3.1 use a more consistently named {@link #getDataMap(String)}.
+ */
public DataMap getMap(String mapName) {
return getEntityResolver().getDataMap(mapName);
}
/**
+ * @since 3.1
+ */
+ public DataMap getDataMap(String mapName) {
+ return getEntityResolver().getDataMap(mapName);
+ }
+
+ /**
+ * Removes named DataMap from this DataDomain and any underlying DataNodes that
+ * include it.
+ *
+ * @deprecated since 3.1 use a more consistently named {@link #removeDataMap(String)}.
+ */
+ public void removeMap(String mapName) {
+ removeDataMap(mapName);
+ }
+
+ /**
* Removes named DataMap from this DataDomain and any underlying DataNodes that
* include it.
+ *
+ * @since 3.1
*/
- public synchronized void removeMap(String mapName) {
- DataMap map = getMap(mapName);
+ public synchronized void removeDataMap(String mapName) {
+ DataMap map = getDataMap(mapName);
if (map == null) {
return;
}
@@ -455,10 +471,10 @@ public class DataDomain implements Query
// remove from EntityResolver
getEntityResolver().removeDataMap(map);
- entitySorter = null;
// reindex nodes to remove references on removed map entities
reindexNodes();
+ refreshEntitySorter();
}
/**
@@ -524,15 +540,13 @@ public class DataDomain implements Query
// add node to name->node map
nodes.put(node.getName(), node);
- node.setEntityResolver(this.getEntityResolver());
+ node.setEntityResolver(getEntityResolver());
// add node to "ent name->node" map
for (DataMap map : node.getDataMaps()) {
- this.addMap(map);
- this.nodesByDataMapName.put(map.getName(), node);
+ addDataMap(map);
+ nodesByDataMapName.put(map.getName(), node);
}
-
- entitySorter = null;
}
/**
@@ -604,7 +618,7 @@ public class DataDomain implements Query
for (DataNode node : getDataNodes()) {
for (DataMap map : node.getDataMaps()) {
- addMap(map);
+ addDataMap(map);
nodesByDataMapName.put(map.getName(), node);
}
}
@@ -901,4 +915,10 @@ public class DataDomain implements Query
public BatchQueryBuilderFactory getQueryBuilderFactory() {
return queryBuilderFactory;
}
+
+ void refreshEntitySorter() {
+ if(entitySorter != null) {
+ entitySorter.setDataMaps(getDataMaps());
+ }
+ }
}
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/DataNode.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/DataNode.java?rev=990579&r1=990578&r2=990579&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/DataNode.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/DataNode.java Sun Aug 29 14:03:22 2010
@@ -34,10 +34,8 @@ import org.apache.cayenne.access.dbsync.
import org.apache.cayenne.access.dbsync.SkipSchemaUpdateStrategy;
import org.apache.cayenne.conn.PoolManager;
import org.apache.cayenne.dba.DbAdapter;
-import org.apache.cayenne.map.AshwoodEntitySorter;
import org.apache.cayenne.map.DataMap;
import org.apache.cayenne.map.EntityResolver;
-import org.apache.cayenne.map.EntitySorter;
import org.apache.cayenne.query.Query;
/**
@@ -54,11 +52,6 @@ public class DataNode implements QueryEn
protected String schemaUpdateStrategyName;
protected EntityResolver entityResolver;
protected SchemaUpdateStrategy schemaUpdateStrategy;
-
- /**
- * @deprecated since 3.1 EntitySorter is located at the DataDomain level.
- */
- protected EntitySorter entitySorter;
protected Map<String, DataMap> dataMaps;
TransactionDataSource readThroughDataSource;
@@ -108,11 +101,6 @@ public class DataNode implements QueryEn
this.name = name;
this.dataMaps = new HashMap<String, DataMap>();
this.readThroughDataSource = new TransactionDataSource();
-
- // since 1.2 we always implement entity sorting, regardless of the underlying DB
- // as the right order is needed for deferred PK propagation (and maybe other
- // things too?)
- this.entitySorter = new AshwoodEntitySorter(Collections.EMPTY_LIST);
}
/**
@@ -167,8 +155,6 @@ public class DataNode implements QueryEn
for (DataMap map : dataMaps) {
this.dataMaps.put(map.getName(), map);
}
-
- entitySorter.setDataMaps(dataMaps);
}
/**
@@ -176,15 +162,10 @@ public class DataNode implements QueryEn
*/
public void addDataMap(DataMap map) {
this.dataMaps.put(map.getName(), map);
-
- entitySorter.setDataMaps(getDataMaps());
}
public void removeDataMap(String mapName) {
- DataMap map = dataMaps.remove(mapName);
- if (map != null) {
- entitySorter.setDataMaps(getDataMaps());
- }
+ dataMaps.remove(mapName);
}
/**
@@ -315,25 +296,6 @@ public class DataNode implements QueryEn
}
/**
- * Returns EntitySorter used by the DataNode.
- *
- * @deprecated since 3.1 EntitySorter only exists at the DataDomain level.
- */
- public EntitySorter getEntitySorter() {
- return entitySorter;
- }
-
- /**
- * Sets an EntitySorter that is used to order objects on commit.
- *
- * @since 1.2
- * @deprecated since 3.1 EntitySorter only exists at the DataDomain level.
- */
- public void setEntitySorter(EntitySorter entitySorter) {
- this.entitySorter = entitySorter;
- }
-
- /**
* Tries to close JDBC connections opened by this node's data source.
*/
public synchronized void shutdown() {
@@ -361,7 +323,7 @@ public class DataNode implements QueryEn
schemaUpdateStrategy.updateSchema(DataNode.this);
}
Transaction t = Transaction.getThreadTransaction();
-
+
if (t != null) {
String key = CONNECTION_RESOURCE_PREFIX + name;
Connection c = t.getConnection(key);
@@ -377,7 +339,6 @@ public class DataNode implements QueryEn
return new TransactionConnectionDecorator(c);
}
-
return dataSource.getConnection();
}
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/configuration/server/DataDomainProvider.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/configuration/server/DataDomainProvider.java?rev=990579&r1=990578&r2=990579&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/configuration/server/DataDomainProvider.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/configuration/server/DataDomainProvider.java Sun Aug 29 14:03:22 2010
@@ -36,7 +36,9 @@ import org.apache.cayenne.configuration.
import org.apache.cayenne.di.Inject;
import org.apache.cayenne.di.Injector;
import org.apache.cayenne.di.Provider;
+import org.apache.cayenne.event.EventManager;
import org.apache.cayenne.map.DataMap;
+import org.apache.cayenne.map.EntitySorter;
import org.apache.cayenne.resource.Resource;
import org.apache.cayenne.resource.ResourceLocator;
import org.apache.commons.logging.Log;
@@ -149,12 +151,14 @@ public class DataDomainProvider implemen
DataChannelDescriptor descriptor = tree.getRootNode();
DataDomain dataDomain = createDataDomain(descriptor.getName());
- injector.injectMembers(dataDomain);
+
+ dataDomain.setEntitySorter(injector.getInstance(EntitySorter.class));
+ dataDomain.setEventManager(injector.getInstance(EventManager.class));
dataDomain.initWithProperties(descriptor.getProperties());
for (DataMap dataMap : descriptor.getDataMaps()) {
- dataDomain.addMap(dataMap);
+ dataDomain.addDataMap(dataMap);
}
for (DataNodeDescriptor nodeDescriptor : descriptor.getNodeDescriptors()) {
@@ -193,7 +197,7 @@ public class DataDomainProvider implemen
// DataMaps
for (String dataMapName : nodeDescriptor.getDataMapNames()) {
- dataNode.addDataMap(dataDomain.getMap(dataMapName));
+ dataNode.addDataMap(dataDomain.getDataMap(dataMapName));
}
dataDomain.addNode(dataNode);
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/configuration/server/ServerModule.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/configuration/server/ServerModule.java?rev=990579&r1=990578&r2=990579&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/configuration/server/ServerModule.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/configuration/server/ServerModule.java Sun Aug 29 14:03:22 2010
@@ -50,6 +50,8 @@ import org.apache.cayenne.di.Binder;
import org.apache.cayenne.di.Module;
import org.apache.cayenne.event.DefaultEventManager;
import org.apache.cayenne.event.EventManager;
+import org.apache.cayenne.map.AshwoodEntitySorter;
+import org.apache.cayenne.map.EntitySorter;
import org.apache.cayenne.resource.ClassLoaderResourceLocator;
import org.apache.cayenne.resource.ResourceLocator;
@@ -133,5 +135,9 @@ public class ServerModule implements Mod
// a default DBAdapterFactory used to load custom and automatic DbAdapters
binder.bind(DbAdapterFactory.class).to(DefaultDbAdapterFactory.class);
+
+ // binding AshwoodEntitySorter without scope, as this is a stateful object and is
+ // configured by the owning domain
+ binder.bind(EntitySorter.class).to(AshwoodEntitySorter.class).withoutScope();
}
}
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/map/AshwoodEntitySorter.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/map/AshwoodEntitySorter.java?rev=990579&r1=990578&r2=990579&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/map/AshwoodEntitySorter.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/map/AshwoodEntitySorter.java Sun Aug 29 14:03:22 2010
@@ -70,11 +70,16 @@ public class AshwoodEntitySorter impleme
// used for lazy initialization
protected boolean dirty;
- public AshwoodEntitySorter(Collection<DataMap> dataMaps) {
+ public AshwoodEntitySorter() {
tableComparator = new TableComparator();
dbEntityComparator = new DbEntityComparator();
objEntityComparator = new ObjEntityComparator();
+ dirty = true;
+ dataMaps = Collections.EMPTY_LIST;
+ }
+ public AshwoodEntitySorter(Collection<DataMap> dataMaps) {
+ this();
setDataMaps(dataMaps);
}
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/util/NamedObjectFactory.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/util/NamedObjectFactory.java?rev=990579&r1=990578&r2=990579&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/util/NamedObjectFactory.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/util/NamedObjectFactory.java Sun Aug 29 14:03:22 2010
@@ -230,7 +230,7 @@ public abstract class NamedObjectFactory
if (namingContext instanceof DataDomain) {
DataDomain domain = (DataDomain) namingContext;
- return domain.getMap(name) != null;
+ return domain.getDataMap(name) != null;
}
if (namingContext instanceof DataChannelDescriptor) {
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataDomainTest.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataDomainTest.java?rev=990579&r1=990578&r2=990579&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataDomainTest.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataDomainTest.java Sun Aug 29 14:03:22 2010
@@ -45,7 +45,7 @@ public class DataDomainTest extends Caye
assertEquals("tst_name", domain.getName());
}
- public void testNodes() throws java.lang.Exception {
+ public void testNodes() throws Exception {
DataDomain domain = new DataDomain("dom1");
assertEquals(0, domain.getDataNodes().size());
domain.addNode(new DataNode("1"));
@@ -54,26 +54,26 @@ public class DataDomainTest extends Caye
assertEquals(2, domain.getDataNodes().size());
}
- public void testNodeMaps() throws java.lang.Exception {
+ public void testNodeMaps() throws Exception {
DataDomain domain = new DataDomain("dom1");
- assertNull(domain.getMap("map"));
+ assertNull(domain.getDataMap("map"));
DataNode node = new DataNode("1");
node.addDataMap(new DataMap("map"));
domain.addNode(node);
- assertNotNull(domain.getMap("map"));
+ assertNotNull(domain.getDataMap("map"));
}
- public void testMaps() throws java.lang.Exception {
+ public void testMaps() throws Exception {
DataDomain d1 = new DataDomain("dom1");
DataMap m1 = new DataMap("m1");
- d1.addMap(m1);
- assertSame(m1, d1.getMap(m1.getName()));
+ d1.addDataMap(m1);
+ assertSame(m1, d1.getDataMap(m1.getName()));
- d1.removeMap(m1.getName());
- assertNull(d1.getMap(m1.getName()));
+ d1.removeDataMap(m1.getName());
+ assertNull(d1.getDataMap(m1.getName()));
}
public void testReindexNodes() throws Exception {
@@ -102,7 +102,7 @@ public class DataDomainTest extends Caye
ObjEntity entity = new ObjEntity("TestEntity");
map.addObjEntity(entity);
- domain.addMap(map);
+ domain.addDataMap(map);
assertSame(entity, resolver.getObjEntity("TestEntity"));
}
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DbGeneratorTest.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DbGeneratorTest.java?rev=990579&r1=990578&r2=990579&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DbGeneratorTest.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DbGeneratorTest.java Sun Aug 29 14:03:22 2010
@@ -35,7 +35,7 @@ public class DbGeneratorTest extends Cay
public void setUp() throws Exception {
super.setUp();
- gen = new DbGenerator(getNode().getAdapter(), getDomain().getMap("testmap"));
+ gen = new DbGenerator(getNode().getAdapter(), getDomain().getDataMap("testmap"));
}
public void testAdapter() throws Exception {
@@ -43,7 +43,7 @@ public class DbGeneratorTest extends Cay
}
public void testPkFilteringLogic() throws Exception {
- DataMap map = getDomain().getMap("testmap");
+ DataMap map = getDomain().getDataMap("testmap");
DbEntity artistExhibit = map.getDbEntity("ARTIST_EXHIBIT");
DbEntity exhibit = map.getDbEntity("EXHIBIT");
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/MockDataNode.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/MockDataNode.java?rev=990579&r1=990578&r2=990579&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/MockDataNode.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/MockDataNode.java Sun Aug 29 14:03:22 2010
@@ -30,7 +30,6 @@ import javax.sql.DataSource;
import org.apache.cayenne.dba.DbAdapter;
import org.apache.cayenne.map.DataMap;
import org.apache.cayenne.map.EntityResolver;
-import org.apache.cayenne.map.EntitySorter;
import org.apache.cayenne.query.Query;
public class MockDataNode extends DataNode {
@@ -150,14 +149,6 @@ public class MockDataNode extends DataNo
return node.getEntityResolver();
}
- /**
- * @deprecated since 3.1
- */
- @Override
- public EntitySorter getEntitySorter() {
- return node.getEntitySorter();
- }
-
@Override
public String getName() {
return node.getName();
@@ -199,11 +190,6 @@ public class MockDataNode extends DataNo
}
@Override
- public void setEntitySorter(EntitySorter entitySorter) {
- node.setEntitySorter(entitySorter);
- }
-
- @Override
public void setName(String name) {
node.setName(name);
}
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/configuration/server/DataDomainProviderTest.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/configuration/server/DataDomainProviderTest.java?rev=990579&r1=990578&r2=990579&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/configuration/server/DataDomainProviderTest.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/configuration/server/DataDomainProviderTest.java Sun Aug 29 14:03:22 2010
@@ -54,7 +54,9 @@ import org.apache.cayenne.di.Injector;
import org.apache.cayenne.di.Module;
import org.apache.cayenne.event.EventManager;
import org.apache.cayenne.event.MockEventManager;
+import org.apache.cayenne.map.AshwoodEntitySorter;
import org.apache.cayenne.map.DataMap;
+import org.apache.cayenne.map.EntitySorter;
import org.apache.cayenne.resource.Resource;
import org.apache.cayenne.resource.ResourceLocator;
import org.apache.cayenne.resource.mock.MockResource;
@@ -117,6 +119,7 @@ public class DataDomainProviderTest exte
public void configure(Binder binder) {
binder.bind(EventManager.class).toInstance(eventManager);
+ binder.bind(EntitySorter.class).toInstance(new AshwoodEntitySorter());
binder.bind(ResourceLocator.class).toInstance(locator);
binder.bind(RuntimeProperties.class).toInstance(testProperties);
binder.bind(ConfigurationNameMapper.class).to(
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/dba/oracle/OracleAdapterTest.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/dba/oracle/OracleAdapterTest.java?rev=990579&r1=990578&r2=990579&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/dba/oracle/OracleAdapterTest.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/dba/oracle/OracleAdapterTest.java Sun Aug 29 14:03:22 2010
@@ -28,7 +28,7 @@ import org.apache.cayenne.unit.CayenneCa
public class OracleAdapterTest extends CayenneCase {
public void testUpdatesLOBColumns() throws Exception {
- DataMap map = getDomain().getMap("testmap");
+ DataMap map = getDomain().getDataMap("testmap");
assertTrue(OracleAdapter.updatesLOBColumns(new InsertBatchQuery(map
.getDbEntity("BLOB_TEST"), 1)));
assertTrue(OracleAdapter.updatesLOBColumns(new InsertBatchQuery(map
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/map/EntityResolverTest.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/map/EntityResolverTest.java?rev=990579&r1=990578&r2=990579&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/map/EntityResolverTest.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/map/EntityResolverTest.java Sun Aug 29 14:03:22 2010
@@ -42,7 +42,7 @@ public class EntityResolverTest extends
.getResources()
.getAccessStack("GenericStack");
- DataMap generic = stack.getDataDomain().getMap("generic");
+ DataMap generic = stack.getDataDomain().getDataMap("generic");
EntityResolver resolver = new EntityResolver(Collections.singleton(generic));
ObjEntity g1 = resolver.getObjEntity("Generic1");
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/merge/MergeCase.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/merge/MergeCase.java?rev=990579&r1=990578&r2=990579&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/merge/MergeCase.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/merge/MergeCase.java Sun Aug 29 14:03:22 2010
@@ -34,6 +34,7 @@ import org.apache.cayenne.access.DataDom
import org.apache.cayenne.access.DataNode;
import org.apache.cayenne.access.QueryLogger;
import org.apache.cayenne.dba.DbAdapter;
+import org.apache.cayenne.map.AshwoodEntitySorter;
import org.apache.cayenne.map.DataMap;
import org.apache.cayenne.map.DbAttribute;
import org.apache.cayenne.map.DbEntity;
@@ -46,7 +47,7 @@ import org.xml.sax.InputSource;
public class MergeCase extends CayenneCase {
- protected DataDomain dom;
+ protected DataDomain domain;
protected DataNode node;
protected DataMap map;
@@ -83,7 +84,7 @@ public class MergeCase extends CayenneCa
// clone DataMap by saving and loading from XML as to avoid modifying shared test
// DataMap
- DataMap originalMap = getDomain().getMap("testmap");
+ DataMap originalMap = getDomain().getDataMap("testmap");
StringWriter out = new StringWriter();
PrintWriter outWriter = new PrintWriter(out);
originalMap.encodeAsXML(outWriter);
@@ -100,8 +101,9 @@ public class MergeCase extends CayenneCa
node.setDataSource(orgNode.getDataSource());
node.addDataMap(map);
- dom = new DataDomain("mergetestdomain");
- dom.addNode(node);
+ domain = new DataDomain("mergetestdomain");
+ domain.setEntitySorter(new AshwoodEntitySorter());
+ domain.addNode(node);
filterDataMap(node, map);
@@ -258,7 +260,7 @@ public class MergeCase extends CayenneCa
@Override
protected DataContext createDataContext() {
- return dom.createDataContext();
+ return domain.createDataContext();
}
@Override
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/unit/SimpleAccessStack.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/unit/SimpleAccessStack.java?rev=990579&r1=990578&r2=990579&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/unit/SimpleAccessStack.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/unit/SimpleAccessStack.java Sun Aug 29 14:03:22 2010
@@ -42,6 +42,7 @@ import org.apache.cayenne.access.dbsync.
import org.apache.cayenne.dba.DbAdapter;
import org.apache.cayenne.dba.QuotingStrategy;
import org.apache.cayenne.event.DefaultEventManager;
+import org.apache.cayenne.map.AshwoodEntitySorter;
import org.apache.cayenne.map.DataMap;
import org.apache.cayenne.map.DbAttribute;
import org.apache.cayenne.map.DbEntity;
@@ -75,6 +76,8 @@ public class SimpleAccessStack implement
this.resources = resources;
this.domain = new UnitTestDomain("domain");
domain.setEventManager(new DefaultEventManager(2));
+ domain.setEntitySorter(new AshwoodEntitySorter());
+
for (DataMap map : maps) {
initNode(map);
}
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/unit/jira/CAY_207Test.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/unit/jira/CAY_207Test.java?rev=990579&r1=990578&r2=990579&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/unit/jira/CAY_207Test.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/unit/jira/CAY_207Test.java Sun Aug 29 14:03:22 2010
@@ -19,10 +19,6 @@
package org.apache.cayenne.unit.jira;
-import java.util.List;
-import java.util.Map;
-
-import org.apache.cayenne.DataObjectUtils;
import org.apache.cayenne.access.DataContext;
import org.apache.cayenne.access.DataDomain;
import org.apache.cayenne.access.DataNode;
@@ -31,7 +27,6 @@ import org.apache.cayenne.exp.Expression
import org.apache.cayenne.map.DataMap;
import org.apache.cayenne.map.ObjAttribute;
import org.apache.cayenne.map.ObjEntity;
-import org.apache.cayenne.query.SQLTemplate;
import org.apache.cayenne.testdo.inherit.Manager;
import org.apache.cayenne.unit.PeopleCase;
@@ -172,7 +167,7 @@ public class CAY_207Test extends PeopleC
prepareDataMap();
DataDomain domain = getDomain();
- DataNode node = domain.lookupDataNode(domain.getMap("people"));
+ DataNode node = domain.lookupDataNode(domain.getDataMap("people"));
domain.removeDataNode(node.getName());
node.addDataMap(testMap);
@@ -185,8 +180,8 @@ public class CAY_207Test extends PeopleC
protected void cleanup(DataContext context) {
DataDomain domain = getDomain();
- domain.removeMap(testMap.getName());
- DataNode node = domain.lookupDataNode(domain.getMap("people"));
+ domain.removeDataMap(testMap.getName());
+ DataNode node = domain.lookupDataNode(domain.getDataMap("people"));
ExtendedTypeMap map = node.getAdapter().getExtendedTypes();
map.unregisterType(CAY_207String1.class.getName());
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/unit/jira/CAY_743Test.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/unit/jira/CAY_743Test.java?rev=990579&r1=990578&r2=990579&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/unit/jira/CAY_743Test.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/unit/jira/CAY_743Test.java Sun Aug 29 14:03:22 2010
@@ -37,8 +37,8 @@ public class CAY_743Test extends TestCas
DataDomain domain = injector.getInstance(DataDomain.class);
assertEquals(2, domain.getDataMaps().size());
- DataMap m1 = domain.getMap("map1");
- DataMap m2 = domain.getMap("map2");
+ DataMap m1 = domain.getDataMap("map1");
+ DataMap m2 = domain.getDataMap("map2");
ObjEntity oe11 = m1.getObjEntity("Entity11");
ObjEntity oe12 = m1.getObjEntity("Entity12");
Modified: cayenne/main/trunk/itests/cayenne-runtime-itest/src/test/java/org/apache/cayenne/configuration/server/ServerRuntimeIntegrationTest.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/itests/cayenne-runtime-itest/src/test/java/org/apache/cayenne/configuration/server/ServerRuntimeIntegrationTest.java?rev=990579&r1=990578&r2=990579&view=diff
==============================================================================
--- cayenne/main/trunk/itests/cayenne-runtime-itest/src/test/java/org/apache/cayenne/configuration/server/ServerRuntimeIntegrationTest.java (original)
+++ cayenne/main/trunk/itests/cayenne-runtime-itest/src/test/java/org/apache/cayenne/configuration/server/ServerRuntimeIntegrationTest.java Sun Aug 29 14:03:22 2010
@@ -20,12 +20,12 @@ package org.apache.cayenne.configuration
import org.apache.cayenne.Cayenne;
import org.apache.cayenne.ObjectContext;
+import org.apache.cayenne.access.DataContext;
import org.apache.cayenne.access.DataDomain;
-import org.apache.cayenne.configuration.server.ServerRuntimeCase;
-import org.apache.cayenne.configuration.server.RuntimeName;
import org.apache.cayenne.event.DefaultEventManager;
import org.apache.cayenne.event.EventManager;
import org.apache.cayenne.itest.di_stack.Table1;
+import org.apache.cayenne.map.EntitySorter;
import org.apache.cayenne.query.SelectQuery;
import org.apache.cayenne.test.jdbc.DBHelper;
@@ -41,21 +41,48 @@ public class ServerRuntimeIntegrationTes
DataDomain domain1 = runtime.getDataDomain();
assertNotNull(domain1);
+ EventManager eventManager1 = domain1.getEventManager();
+ assertNotNull(eventManager1);
+
+ EntitySorter sorter1 = domain1.getEntitySorter();
+ assertNotNull(sorter1);
+
DataDomain domain2 = runtime.getDataDomain();
assertNotNull(domain2);
+ EventManager eventManager2 = domain2.getEventManager();
+ assertNotNull(eventManager2);
+
+ EntitySorter sorter2 = domain2.getEntitySorter();
+ assertNotNull(sorter2);
+
assertSame(domain1, domain2);
+ assertSame(eventManager1, eventManager2);
+ assertSame(sorter1, sorter2);
}
- public void testNewContext_notSingleton() {
+ public void testContext_notSingleton() {
ObjectContext context1 = runtime.getContext();
assertNotNull(context1);
+ assertTrue(context1 instanceof DataContext);
+
+ DataDomain domain1 = (DataDomain) context1.getChannel();
+ EventManager eventManager1 = domain1.getEventManager();
+ EntitySorter sorter1 = domain1.getEntitySorter();
ObjectContext context2 = runtime.getContext();
assertNotNull(context2);
+ assertTrue(context2 instanceof DataContext);
+ DataDomain domain2 = (DataDomain) context2.getChannel();
+ EventManager eventManager2 = domain2.getEventManager();
+ EntitySorter sorter2 = domain2.getEntitySorter();
assertNotSame(context1, context2);
+
+ assertSame(domain1, domain2);
+ assertSame(eventManager1, eventManager2);
+ assertSame(sorter1, sorter2);
}
public void testNewContext_separateObjects() throws Exception {
@@ -77,7 +104,6 @@ public class ServerRuntimeIntegrationTes
assertEquals("Abc", o1.getName());
assertNotSame(o1, o2);
assertEquals(o1.getObjectId(), o2.getObjectId());
-
}
public void testShutdown() throws Exception {