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/06/11 02:38:08 UTC
svn commit: r953516 - in /cayenne/main/trunk: docs/doc/src/main/resources/
framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/
framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/configuration/
framework/caye...
Author: aadamchik
Date: Fri Jun 11 00:38:07 2010
New Revision: 953516
URL: http://svn.apache.org/viewvc?rev=953516&view=rev
Log:
CAY-1446 Remove DataContextFactory, replace it with DI-enabled ObjectContextFactory
* removed DCF, added an internal one provided via DI
* deprecate DD.createDataContext factory method as this should be done via injection
* cleaning up unit tests to remove calls to deprecated methods... CayenneCase superclass is still using the deprecated method
for context creation until we figure out unit test injection
Added:
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/configuration/ObjectContextFactory.java
- copied, changed from r953514, cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/DataContextFactory.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/configuration/server/DataContextFactory.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/configuration/server/DataContextFactoryTest.java
Removed:
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/DataContextFactory.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/configuration/server/DataContextProvider.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/MockDataContextFactory.java
Modified:
cayenne/main/trunk/docs/doc/src/main/resources/RELEASE-NOTES.txt
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/ClientServerChannel.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/DataContext.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/configuration/CayenneRuntime.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/configuration/server/CayenneServerModule.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/remote/hessian/service/HessianService.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/remote/service/BaseRemoteService.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/remote/service/HttpRemoteService.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/CayenneDataObjectInCtxtTest.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/CayenneDataObjectRelTest.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextDataChannelEventsTest.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextDelegateSharedCacheTest.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextDelegateTest.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextDeleteRulesTest.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextEJBQLDeleteTest.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextEntityWithMeaningfulPKTest.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextPerformQueryAPITest.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextQueryCachingTest.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextSerializationTest.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextSharedCacheTest.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/InheritanceTest.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/NestedDataContextParentPeerEventsTest.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/jdbc/BindDirectiveTest.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/jdbc/SelectActionTest.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/configuration/server/CayenneServerRuntimeTest.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/remote/hessian/service/HessianServiceTest.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/remote/service/BaseRemoteServiceTest.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/unit/CayenneCase.java
cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/DataDomainView.java
Modified: cayenne/main/trunk/docs/doc/src/main/resources/RELEASE-NOTES.txt
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/docs/doc/src/main/resources/RELEASE-NOTES.txt?rev=953516&r1=953515&r2=953516&view=diff
==============================================================================
--- cayenne/main/trunk/docs/doc/src/main/resources/RELEASE-NOTES.txt (original)
+++ cayenne/main/trunk/docs/doc/src/main/resources/RELEASE-NOTES.txt Fri Jun 11 00:38:07 2010
@@ -44,6 +44,7 @@ CAY-1425 Remove Configuration sharedConf
CAY-1433 Change #chunk behaviour to skipe only null arguments (don't skip 0 or false)
CAY-1438 refactoring EntityInheritanceTree lookups
CAY-1439 ClassDescriptor refactoring - replacing returned iterators with collections
+CAY-1446 Remove DataContextFactory, replace it with DI-enabled ObjectContextFactory
Bug Fixes Since 3.0:
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/ClientServerChannel.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/ClientServerChannel.java?rev=953516&r1=953515&r2=953516&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/ClientServerChannel.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/ClientServerChannel.java Fri Jun 11 00:38:07 2010
@@ -38,6 +38,10 @@ public class ClientServerChannel impleme
protected DataContext serverContext;
+ /**
+ * @deprecated since 3.1 as context creation is now factory based.
+ */
+ @Deprecated
public ClientServerChannel(DataDomain domain) {
this(domain.createDataContext());
}
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/DataContext.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/DataContext.java?rev=953516&r1=953515&r2=953516&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/DataContext.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/DataContext.java Fri Jun 11 00:38:07 2010
@@ -142,15 +142,12 @@ public class DataContext extends BaseCon
* @since 3.0
*/
public ObjectContext createChildContext() {
- DataContextFactory factory = getParentDataDomain().getDataContextFactory();
// child ObjectStore should not have direct access to snapshot cache, so do not
// pass it in constructor.
ObjectStore objectStore = new ObjectStore();
- DataContext child = factory != null
- ? factory.createDataContext(this, objectStore)
- : new DataContext(this, objectStore);
+ DataContext child = new DataContext(this, objectStore);
child.setValidatingObjectsOnCommit(isValidatingObjectsOnCommit());
child.usingSharedSnaphsotCache = isUsingSharedSnapshotCache();
@@ -1071,6 +1068,13 @@ public class DataContext extends BaseCon
public boolean isUsingSharedSnapshotCache() {
return usingSharedSnaphsotCache;
}
+
+ /**
+ * @since 3.1
+ */
+ public void setUsingSharedSnapshotCache(boolean flag) {
+ this.usingSharedSnaphsotCache = flag;
+ }
/**
* Returns whether this DataContext performs object validation before commit is
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=953516&r1=953515&r2=953516&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 Fri Jun 11 00:38:07 2010
@@ -35,6 +35,8 @@ import org.apache.cayenne.access.jdbc.Ba
import org.apache.cayenne.cache.MapQueryCacheFactory;
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;
@@ -45,7 +47,6 @@ import org.apache.cayenne.map.EntitySort
import org.apache.cayenne.query.Query;
import org.apache.cayenne.query.QueryChain;
import org.apache.cayenne.util.ToStringBuilder;
-import org.apache.cayenne.util.Util;
import org.apache.commons.collections.Transformer;
/**
@@ -66,13 +67,6 @@ public class DataDomain implements Query
public static final boolean USING_EXTERNAL_TRANSACTIONS_DEFAULT = false;
/**
- * Defines a property name for storing an optional DataContextFactory.
- *
- * @since 1.2
- */
- public static final String DATA_CONTEXT_FACTORY_PROPERTY = "cayenne.DataDomain.dataContextFactory";
-
- /**
* Defines a property name for storing optional {@link QueryCacheFactory}.
*
* @since 3.0
@@ -89,12 +83,12 @@ public class DataDomain implements Query
* Properties configured for DataDomain. These include properties of the DataRowStore
* and remote notifications.
*/
- protected Map<String, String> properties = Collections.synchronizedMap(new TreeMap<String, String>());
+ protected Map<String, String> properties = Collections
+ .synchronizedMap(new TreeMap<String, String>());
protected EntityResolver entityResolver;
protected DataRowStore sharedSnapshotCache;
protected TransactionDelegate transactionDelegate;
- protected DataContextFactory dataContextFactory;
protected QueryCacheFactory queryCacheFactory;
protected String name;
@@ -106,6 +100,7 @@ public class DataDomain implements Query
/**
* @since 1.2
*/
+ @Inject
protected EventManager eventManager;
/**
@@ -119,9 +114,9 @@ public class DataDomain implements Query
protected QueryCache queryCache;
protected boolean stopped;
-
+
/**
- * Factory for creating QueryBuilders. Might be null, then default one will be used.
+ * Factory for creating QueryBuilders. Might be null, then default one will be used.
* Server-only.
*/
private BatchQueryBuilderFactory queryBuilderFactory;
@@ -207,7 +202,6 @@ public class DataDomain implements Query
sharedCacheEnabled = SHARED_CACHE_ENABLED_DEFAULT;
validatingObjectsOnCommit = VALIDATING_OBJECTS_ON_COMMIT_DEFAULT;
usingExternalTransactions = USING_EXTERNAL_TRANSACTIONS_DEFAULT;
- dataContextFactory = null;
}
/**
@@ -230,7 +224,6 @@ public class DataDomain implements Query
String usingExternalTransactions = localMap
.get(USING_EXTERNAL_TRANSACTIONS_PROPERTY);
- String dataContextFactory = localMap.get(DATA_CONTEXT_FACTORY_PROPERTY);
String queryCacheFactoryName = localMap.get(QUERY_CACHE_FACTORY_PROPERTY);
// init ivars from properties
@@ -243,18 +236,7 @@ public class DataDomain implements Query
? "true".equalsIgnoreCase(usingExternalTransactions)
: USING_EXTERNAL_TRANSACTIONS_DEFAULT;
- if (dataContextFactory != null && !Util.isEmptyString(dataContextFactory)) {
- this.dataContextFactory = createInstance(
- dataContextFactory,
- DataContextFactory.class);
- }
- else {
- this.dataContextFactory = null;
- }
-
- if (queryCacheFactoryName != null
- && dataContextFactory != null
- && !Util.isEmptyString(dataContextFactory)) {
+ if (queryCacheFactoryName != null) {
queryCacheFactory = createInstance(
queryCacheFactoryName,
QueryCacheFactory.class);
@@ -456,14 +438,6 @@ public class DataDomain implements Query
}
}
- public DataContextFactory getDataContextFactory() {
- return dataContextFactory;
- }
-
- public void setDataContextFactory(DataContextFactory dataContextFactory) {
- this.dataContextFactory = dataContextFactory;
- }
-
/** Registers new DataMap with this domain. */
public void addMap(DataMap map) {
getEntityResolver().addDataMap(map);
@@ -576,7 +550,11 @@ public class DataDomain implements Query
* Creates and returns a new DataContext. If this DataDomain is configured to use
* shared cache, returned DataContext will use shared cache as well. Otherwise a new
* instance of DataRowStore will be used as its local cache.
+ *
+ * @deprecated since 3.1 as context creation is done via {@link ObjectContextFactory}
+ * and injection.
*/
+ @Deprecated
public DataContext createDataContext() {
return createDataContext(isSharedCacheEnabled());
}
@@ -588,7 +566,10 @@ public class DataDomain implements Query
* vs. local cache. This setting overrides default behavior configured for
* this DataDomain via {@link #SHARED_CACHE_ENABLED_PROPERTY}.
* @since 1.1
+ * @deprecated since 3.1 as context creation is done via {@link ObjectContextFactory}
+ * and injection.
*/
+ @Deprecated
public DataContext createDataContext(boolean useSharedCache) {
// for new dataRowStores use the same name for all stores
// it makes it easier to track the event subject
@@ -596,14 +577,8 @@ public class DataDomain implements Query
? nonNullSharedSnapshotCache()
: new DataRowStore(name, properties, eventManager);
- DataContext context;
- if (null == dataContextFactory) {
- context = new DataContext(this, new ObjectStore(snapshotCache));
- }
- else {
- context = dataContextFactory.createDataContext(this, new ObjectStore(
- snapshotCache));
- }
+ DataContext context = new DataContext(this, new ObjectStore(snapshotCache));
+
context.setValidatingObjectsOnCommit(isValidatingObjectsOnCommit());
return context;
}
@@ -923,14 +898,14 @@ public class DataDomain implements Query
QueryCache getQueryCacheInternal() {
return queryCache;
}
-
+
/**
* Sets factory for creating QueryBuilders
*/
public void setQueryBuilderFactory(BatchQueryBuilderFactory queryBuilderFactory) {
this.queryBuilderFactory = queryBuilderFactory;
}
-
+
/**
* @return factory for creating QueryBuilders. Might be null
*/
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/configuration/CayenneRuntime.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/configuration/CayenneRuntime.java?rev=953516&r1=953515&r2=953516&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/configuration/CayenneRuntime.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/configuration/CayenneRuntime.java Fri Jun 11 00:38:07 2010
@@ -92,9 +92,19 @@ public abstract class CayenneRuntime {
/**
* Returns an ObjectContext based on the runtime DataChannel. Default configuration
* will return a new instance of the ObjectContext on every call, as the corresponding
- * factory is bound using NO_SCOPE scope. Custom modules may change this behavior.
+ * factory is bound using "no scope" scope. Custom modules may change this behavior.
*/
public ObjectContext getContext() {
- return injector.getInstance(ObjectContext.class);
+ return injector.getInstance(ObjectContextFactory.class).createContext();
+ }
+
+ /**
+ * Returns an ObjectContext based on the runtime DataChannel. Default configuration
+ * will return a new instance of the ObjectContext on every call, as the corresponding
+ * factory is bound using "no scope" scope. Custom modules may change this behavior.
+ */
+ public ObjectContext getContext(DataChannel parentChannel) {
+ return injector.getInstance(ObjectContextFactory.class).createContext(
+ parentChannel);
}
}
Copied: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/configuration/ObjectContextFactory.java (from r953514, cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/DataContextFactory.java)
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/configuration/ObjectContextFactory.java?p2=cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/configuration/ObjectContextFactory.java&p1=cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/DataContextFactory.java&r1=953514&r2=953516&rev=953516&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/DataContextFactory.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/configuration/ObjectContextFactory.java Fri Jun 11 00:38:07 2010
@@ -16,24 +16,26 @@
* specific language governing permissions and limitations
* under the License.
****************************************************************/
-
-package org.apache.cayenne.access;
+package org.apache.cayenne.configuration;
import org.apache.cayenne.DataChannel;
+import org.apache.cayenne.ObjectContext;
/**
- * An interface for creating DataContexts.
+ * A factory for regular and nested contexts.
*
- * @since 1.2
+ * @since 3.1
*/
-public interface DataContextFactory {
+public interface ObjectContextFactory {
+
+ /**
+ * Creates an ObjectContext attached to a default DataChannel.
+ */
+ ObjectContext createContext();
+
/**
- * Creates a DataContext with parent QueryEngine and a DataRowStore that should be
- * used by the ObjectStore.
- *
- * @since 1.2
- * @param parent parent QueryEngine used to communicate with the data source.
- * @param objectStore ObjectStore used by DataContext.
+ * Creates an ObjectContext attached to a provided channel. This is often used for
+ * nested context creation.
*/
- DataContext createDataContext(DataChannel parent, ObjectStore objectStore);
+ ObjectContext createContext(DataChannel parent);
}
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/configuration/server/CayenneServerModule.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/configuration/server/CayenneServerModule.java?rev=953516&r1=953515&r2=953516&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/configuration/server/CayenneServerModule.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/configuration/server/CayenneServerModule.java Fri Jun 11 00:38:07 2010
@@ -19,7 +19,6 @@
package org.apache.cayenne.configuration.server;
import org.apache.cayenne.DataChannel;
-import org.apache.cayenne.ObjectContext;
import org.apache.cayenne.access.DataDomain;
import org.apache.cayenne.access.dbsync.SchemaUpdateStrategy;
import org.apache.cayenne.access.dbsync.SkipSchemaUpdateStrategy;
@@ -31,6 +30,7 @@ import org.apache.cayenne.configuration.
import org.apache.cayenne.configuration.DefaultAdhocObjectFactory;
import org.apache.cayenne.configuration.DefaultConfigurationNameMapper;
import org.apache.cayenne.configuration.DefaultRuntimeProperties;
+import org.apache.cayenne.configuration.ObjectContextFactory;
import org.apache.cayenne.configuration.RuntimeProperties;
import org.apache.cayenne.configuration.XMLDataChannelDescriptorLoader;
import org.apache.cayenne.configuration.XMLDataMapLoader;
@@ -105,10 +105,7 @@ public class CayenneServerModule impleme
// will return DataDomain for request for a DataChannel
binder.bind(DataChannel.class).toProvider(DomainDataChannelProvider.class);
- binder
- .bind(ObjectContext.class)
- .toProvider(DataContextProvider.class)
- .withoutScope();
+ binder.bind(ObjectContextFactory.class).to(DataContextFactory.class);
// a service to load project XML descriptors
binder.bind(DataChannelDescriptorLoader.class).to(
Added: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/configuration/server/DataContextFactory.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/configuration/server/DataContextFactory.java?rev=953516&view=auto
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/configuration/server/DataContextFactory.java (added)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/configuration/server/DataContextFactory.java Fri Jun 11 00:38:07 2010
@@ -0,0 +1,113 @@
+/*****************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ ****************************************************************/
+package org.apache.cayenne.configuration.server;
+
+import org.apache.cayenne.DataChannel;
+import org.apache.cayenne.ObjectContext;
+import org.apache.cayenne.access.DataContext;
+import org.apache.cayenne.access.DataDomain;
+import org.apache.cayenne.access.DataRowStore;
+import org.apache.cayenne.access.ObjectStore;
+import org.apache.cayenne.configuration.ObjectContextFactory;
+import org.apache.cayenne.di.Inject;
+import org.apache.cayenne.di.Injector;
+import org.apache.cayenne.event.EventManager;
+
+/**
+ * @since 3.1
+ */
+public class DataContextFactory implements ObjectContextFactory {
+
+ @Inject
+ protected DataDomain dataDomain;
+
+ @Inject
+ protected EventManager eventManager;
+
+ @Inject
+ protected Injector injector;
+
+ public ObjectContext createContext() {
+ return createdFromDataDomain(dataDomain);
+ }
+
+ public ObjectContext createContext(DataChannel parent) {
+
+ // this switch may go away once we figure out clean property configuration...
+ if (parent instanceof DataDomain) {
+ return createdFromDataDomain((DataDomain) parent);
+ }
+ else if (parent instanceof DataContext) {
+ return createFromDataContext((DataContext) parent);
+ }
+ else {
+ return createFromGenericChannel(parent);
+ }
+ }
+
+ protected ObjectContext createFromGenericChannel(DataChannel parent) {
+
+ // for new dataRowStores use the same name for all stores
+ // it makes it easier to track the event subject
+ DataRowStore snapshotCache = (dataDomain.isSharedCacheEnabled()) ? dataDomain
+ .getSharedSnapshotCache() : new DataRowStore(
+ dataDomain.getName(),
+ dataDomain.getProperties(),
+ eventManager);
+
+ DataContext context = new DataContext(parent, new ObjectStore(snapshotCache));
+ context.setValidatingObjectsOnCommit(dataDomain.isValidatingObjectsOnCommit());
+
+ injector.injectMembers(context);
+
+ return context;
+ }
+
+ protected ObjectContext createFromDataContext(DataContext parent) {
+ // child ObjectStore should not have direct access to snapshot cache, so do not
+ // pass it in constructor.
+ ObjectStore objectStore = new ObjectStore();
+
+ DataContext context = new DataContext(parent, objectStore);
+
+ context.setValidatingObjectsOnCommit(parent.isValidatingObjectsOnCommit());
+ context.setUsingSharedSnapshotCache(parent.isUsingSharedSnapshotCache());
+
+ injector.injectMembers(context);
+
+ return context;
+ }
+
+ protected ObjectContext createdFromDataDomain(DataDomain parent) {
+
+ // for new dataRowStores use the same name for all stores
+ // it makes it easier to track the event subject
+ DataRowStore snapshotCache = (parent.isSharedCacheEnabled()) ? parent
+ .getSharedSnapshotCache() : new DataRowStore(parent.getName(), parent
+ .getProperties(), eventManager);
+
+ DataContext context = new DataContext(parent, new ObjectStore(snapshotCache));
+ context.setValidatingObjectsOnCommit(parent.isValidatingObjectsOnCommit());
+
+ injector.injectMembers(context);
+
+ return context;
+ }
+
+}
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=953516&r1=953515&r2=953516&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 Fri Jun 11 00:38:07 2010
@@ -34,8 +34,8 @@ import org.apache.cayenne.configuration.
import org.apache.cayenne.configuration.DataNodeDescriptor;
import org.apache.cayenne.configuration.RuntimeProperties;
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.resource.Resource;
import org.apache.cayenne.resource.ResourceLocator;
@@ -72,9 +72,9 @@ public class DataDomainProvider implemen
@Inject
protected AdhocObjectFactory objectFactory;
-
+
@Inject
- protected EventManager eventManager;
+ protected Injector injector;
protected volatile DataDomain dataDomain;
@@ -158,7 +158,8 @@ public class DataDomainProvider implemen
DataChannelDescriptor descriptor = tree.getRootNode();
DataDomain dataDomain = new DataDomain(descriptor.getName());
- dataDomain.setEventManager(eventManager);
+ injector.injectMembers(dataDomain);
+
dataDomain.initWithProperties(descriptor.getProperties());
for (DataMap dataMap : descriptor.getDataMaps()) {
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/remote/hessian/service/HessianService.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/remote/hessian/service/HessianService.java?rev=953516&r1=953515&r2=953516&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/remote/hessian/service/HessianService.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/remote/hessian/service/HessianService.java Fri Jun 11 00:38:07 2010
@@ -24,7 +24,7 @@ import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
-import org.apache.cayenne.access.DataDomain;
+import org.apache.cayenne.configuration.ObjectContextFactory;
import org.apache.cayenne.di.Inject;
import org.apache.cayenne.remote.service.HttpRemoteService;
@@ -46,9 +46,9 @@ public class HessianService extends Http
/**
* @since 3.1
*/
- public HessianService(@Inject DataDomain domain,
+ public HessianService(@Inject ObjectContextFactory contextFactory,
@Inject(EVENT_BRIDGE_PROPERTIES_MAP) Map<String, String> eventBridgeProperties) {
- super(domain, eventBridgeProperties);
+ super(contextFactory, eventBridgeProperties);
}
@Override
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/remote/service/BaseRemoteService.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/remote/service/BaseRemoteService.java?rev=953516&r1=953515&r2=953516&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/remote/service/BaseRemoteService.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/remote/service/BaseRemoteService.java Fri Jun 11 00:38:07 2010
@@ -26,7 +26,8 @@ import java.util.Map;
import org.apache.cayenne.CayenneRuntimeException;
import org.apache.cayenne.DataChannel;
import org.apache.cayenne.access.ClientServerChannel;
-import org.apache.cayenne.access.DataDomain;
+import org.apache.cayenne.access.DataContext;
+import org.apache.cayenne.configuration.ObjectContextFactory;
import org.apache.cayenne.remote.ClientMessage;
import org.apache.cayenne.remote.RemoteService;
import org.apache.cayenne.remote.RemoteSession;
@@ -47,21 +48,22 @@ public abstract class BaseRemoteService
// keep logger non-static so that it could be garbage collected with this instance.
protected final Log logger;
- protected DataDomain domain;
+ protected ObjectContextFactory contextFactory;
protected String eventBridgeFactoryName;
protected Map<String, String> eventBridgeParameters;
/**
* @since 3.1
*/
- public BaseRemoteService(DataDomain domain, Map<String, String> eventBridgeProperties) {
+ public BaseRemoteService(ObjectContextFactory contextFactory,
+ Map<String, String> eventBridgeProperties) {
logger = LogFactory.getLog(getClass());
// start Cayenne service
logger.debug("ROP service is starting");
- this.domain = domain;
+ this.contextFactory = contextFactory;
initEventBridgeParameters(eventBridgeProperties);
logger.debug(getClass().getName() + " started");
@@ -77,15 +79,6 @@ public abstract class BaseRemoteService
}
/**
- * Returns a DataChannel that is a parent of all session DataChannels.
- *
- * @deprecated unused since 3.1
- */
- public DataChannel getRootChannel() {
- return domain;
- }
-
- /**
* Creates a new ServerSession with a dedicated DataChannel.
*/
protected abstract ServerSession createServerSession();
@@ -184,7 +177,7 @@ public abstract class BaseRemoteService
* security.
*/
protected DataChannel createChannel() {
- return new ClientServerChannel(domain);
+ return new ClientServerChannel((DataContext) contextFactory.createContext());
}
/**
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/remote/service/HttpRemoteService.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/remote/service/HttpRemoteService.java?rev=953516&r1=953515&r2=953516&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/remote/service/HttpRemoteService.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/remote/service/HttpRemoteService.java Fri Jun 11 00:38:07 2010
@@ -26,7 +26,7 @@ import java.util.Map;
import javax.servlet.http.HttpSession;
import org.apache.cayenne.DataChannel;
-import org.apache.cayenne.access.DataDomain;
+import org.apache.cayenne.configuration.ObjectContextFactory;
import org.apache.cayenne.remote.RemoteSession;
/**
@@ -45,8 +45,9 @@ public abstract class HttpRemoteService
/**
* @since 3.1
*/
- public HttpRemoteService(DataDomain domain, Map<String, String> eventBridgeProperties) {
- super(domain, eventBridgeProperties);
+ public HttpRemoteService(ObjectContextFactory contextFactory,
+ Map<String, String> eventBridgeProperties) {
+ super(contextFactory, eventBridgeProperties);
this.sharedChannels = new HashMap<String, WeakReference<DataChannel>>();
}
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/CayenneDataObjectInCtxtTest.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/CayenneDataObjectInCtxtTest.java?rev=953516&r1=953515&r2=953516&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/CayenneDataObjectInCtxtTest.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/CayenneDataObjectInCtxtTest.java Fri Jun 11 00:38:07 2010
@@ -256,7 +256,7 @@ public class CayenneDataObjectInCtxtTest
getDomain().getEventManager().removeAllListeners(
getDomain().getSharedSnapshotCache().getSnapshotEventSubject());
getDomain().getSharedSnapshotCache().clear();
- context = getDomain().createDataContext();
+ context = createDataContext();
List artists = context.performQuery(new SelectQuery(Artist.class));
Artist artist = (Artist) artists.get(0);
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/CayenneDataObjectRelTest.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/CayenneDataObjectRelTest.java?rev=953516&r1=953515&r2=953516&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/CayenneDataObjectRelTest.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/CayenneDataObjectRelTest.java Fri Jun 11 00:38:07 2010
@@ -210,7 +210,7 @@ public class CayenneDataObjectRelTest ex
}
public void testCrossContextRelationshipException() {
- DataContext otherContext = getDomain().createDataContext();
+ DataContext otherContext = createDataContext();
// Create this object in one context...
Artist artist = (Artist) ctxt.newObject("Artist");
// ...and this object in another context
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextDataChannelEventsTest.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextDataChannelEventsTest.java?rev=953516&r1=953515&r2=953516&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextDataChannelEventsTest.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextDataChannelEventsTest.java Fri Jun 11 00:38:07 2010
@@ -101,7 +101,7 @@ public class DataContextDataChannelEvent
final MockChannelListener listener = new MockChannelListener();
EventUtil.listenForChannelEvents(context, listener);
- DataContext peer = context.getParentDataDomain().createDataContext();
+ DataContext peer = createDataContextWithSharedCache(false);
Artist a1 = (Artist) peer.localObject(a.getObjectId(), a);
a1.setArtistName("Y");
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextDelegateSharedCacheTest.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextDelegateSharedCacheTest.java?rev=953516&r1=953515&r2=953516&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextDelegateSharedCacheTest.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextDelegateSharedCacheTest.java Fri Jun 11 00:38:07 2010
@@ -39,7 +39,7 @@ public class DataContextDelegateSharedCa
protected void setUp() throws Exception {
super.setUp();
- context = createDataContextWithSharedCache();
+ context = createDataContextWithSharedCache(true);
// prepare a single artist record
artist = (Artist) context.newObject("Artist");
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextDelegateTest.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextDelegateTest.java?rev=953516&r1=953515&r2=953516&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextDelegateTest.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextDelegateTest.java Fri Jun 11 00:38:07 2010
@@ -44,7 +44,7 @@ public class DataContextDelegateTest ext
protected void setUp() throws Exception {
super.setUp();
- context = createDataContextWithSharedCache();
+ context = createDataContextWithSharedCache(true);
// prepare a single gallery record
gallery = (Gallery) context.newObject("Gallery");
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextDeleteRulesTest.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextDeleteRulesTest.java?rev=953516&r1=953515&r2=953516&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextDeleteRulesTest.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextDeleteRulesTest.java Fri Jun 11 00:38:07 2010
@@ -44,7 +44,7 @@ public class DataContextDeleteRulesTest
super.setUp();
deleteTestData();
- context = getDomain().createDataContext();
+ context = createDataContext();
}
public void testNullifyToOne() {
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextEJBQLDeleteTest.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextEJBQLDeleteTest.java?rev=953516&r1=953515&r2=953516&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextEJBQLDeleteTest.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextEJBQLDeleteTest.java Fri Jun 11 00:38:07 2010
@@ -34,7 +34,7 @@ public class DataContextEJBQLDeleteTest
@Override
protected void setUp() throws Exception {
deleteTestData();
- context = getDomain().createDataContext();
+ context = createDataContext();
}
public void testDeleteNoIdVar() throws Exception {
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextEntityWithMeaningfulPKTest.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextEntityWithMeaningfulPKTest.java?rev=953516&r1=953515&r2=953516&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextEntityWithMeaningfulPKTest.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextEntityWithMeaningfulPKTest.java Fri Jun 11 00:38:07 2010
@@ -41,7 +41,7 @@ public class DataContextEntityWithMeanin
super.setUp();
deleteTestData();
- context = getDomain().createDataContext();
+ context = createDataContext();
}
public void testInsertWithMeaningfulPK() throws Exception {
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextPerformQueryAPITest.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextPerformQueryAPITest.java?rev=953516&r1=953515&r2=953516&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextPerformQueryAPITest.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextPerformQueryAPITest.java Fri Jun 11 00:38:07 2010
@@ -17,7 +17,6 @@
* under the License.
****************************************************************/
-
package org.apache.cayenne.access;
import java.math.BigDecimal;
@@ -63,7 +62,7 @@ public class DataContextPerformQueryAPIT
33018), null);
Map parameters = Collections.singletonMap("artist", a);
- List paintings = createDataContext()
+ List paintings = createDataContextWithSharedCache(false)
.performQuery("ObjectQuery", parameters, true);
assertNotNull(paintings);
assertEquals(1, paintings.size());
@@ -190,10 +189,9 @@ public class DataContextPerformQueryAPIT
blockQueries();
try {
- List artists1 = context
- .getParentDataDomain()
- .createDataContext()
- .performQuery("QueryWithSharedCache", false);
+ List artists1 = createDataContextWithSharedCache(false).performQuery(
+ "QueryWithSharedCache",
+ false);
assertEquals(25, artists1.size());
}
finally {
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextQueryCachingTest.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextQueryCachingTest.java?rev=953516&r1=953515&r2=953516&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextQueryCachingTest.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextQueryCachingTest.java Fri Jun 11 00:38:07 2010
@@ -30,8 +30,6 @@ import org.apache.cayenne.query.QueryMet
import org.apache.cayenne.query.SelectQuery;
import org.apache.cayenne.unit.CayenneCase;
-/**
- */
public class DataContextQueryCachingTest extends CayenneCase {
protected DataContext context;
@@ -40,11 +38,7 @@ public class DataContextQueryCachingTest
protected void setUp() throws Exception {
super.setUp();
- context = createDataContextWithSharedCache();
- }
-
- protected DataContext createDataContextNoCacheClear() {
- return getDomain().createDataContext();
+ context = createDataContextWithSharedCache(true);
}
public void testLocalCacheDataRowsRefresh() throws Exception {
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextSerializationTest.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextSerializationTest.java?rev=953516&r1=953515&r2=953516&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextSerializationTest.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextSerializationTest.java Fri Jun 11 00:38:07 2010
@@ -45,7 +45,7 @@ public class DataContextSerializationTes
public void testSerializeResolver() throws Exception {
- DataContext context = createDataContextWithSharedCache();
+ DataContext context = createDataContextWithSharedCache(true);
DataContext deserializedContext = (DataContext) Util
.cloneViaSerialization(context);
@@ -56,7 +56,7 @@ public class DataContextSerializationTes
public void testSerializeChannel() throws Exception {
- DataContext context = createDataContextWithSharedCache();
+ DataContext context = createDataContextWithSharedCache(true);
DataContext deserializedContext = (DataContext) Util
.cloneViaSerialization(context);
@@ -66,7 +66,7 @@ public class DataContextSerializationTes
}
public void testSerializeNestedChannel() throws Exception {
- DataContext context = createDataContextWithSharedCache();
+ DataContext context = createDataContextWithSharedCache(true);
ObjectContext child = context.createChildContext();
ObjectContext deserializedContext = (ObjectContext) Util
@@ -80,7 +80,7 @@ public class DataContextSerializationTes
createTestData("prepare");
- DataContext context = createDataContextWithSharedCache();
+ DataContext context = createDataContextWithSharedCache(true);
DataContext deserializedContext = (DataContext) Util
.cloneViaSerialization(context);
@@ -140,7 +140,7 @@ public class DataContextSerializationTes
public void testSerializeNew() throws Exception {
- DataContext context = createDataContextWithSharedCache();
+ DataContext context = createDataContextWithSharedCache(true);
Artist artist = (Artist) context.newObject("Artist");
artist.setArtistName("artist1");
@@ -166,7 +166,7 @@ public class DataContextSerializationTes
public void testSerializeCommitted() throws Exception {
- DataContext context = createDataContextWithSharedCache();
+ DataContext context = createDataContextWithSharedCache(true);
Artist artist = (Artist) context.newObject("Artist");
artist.setArtistName("artist1");
@@ -201,7 +201,7 @@ public class DataContextSerializationTes
public void testSerializeModified() throws Exception {
- DataContext context = createDataContextWithSharedCache();
+ DataContext context = createDataContextWithSharedCache(true);
Artist artist = (Artist) context.newObject("Artist");
artist.setArtistName("artist1");
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextSharedCacheTest.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextSharedCacheTest.java?rev=953516&r1=953515&r2=953516&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextSharedCacheTest.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextSharedCacheTest.java Fri Jun 11 00:38:07 2010
@@ -52,7 +52,7 @@ public class DataContextSharedCacheTest
protected void setUp() throws Exception {
super.setUp();
- context = createDataContextWithSharedCache();
+ context = createDataContextWithSharedCache(true);
// prepare a single artist record
artist = (Artist) context.newObject("Artist");
@@ -70,8 +70,8 @@ public class DataContextSharedCacheTest
final String newName = "version2";
// create alternative context making sure that no cache is flushed
- DataContext altContext = context.getParentDataDomain().createDataContext(true);
-
+ DataContext altContext = createDataContextWithSharedCache(false);
+
// update artist using raw SQL
SQLTemplate query = getSQLTemplateBuilder().createSQLTemplate(
Artist.class,
@@ -345,7 +345,7 @@ public class DataContextSharedCacheTest
assertEquals(PersistenceState.COMMITTED, altArtist.getPersistenceState());
// create independent context and fetch artist in it
- DataContext context3 = getDomain().createDataContext(false);
+ DataContext context3 = createDataContextWithDedicatedCache();
List artists = context3.performQuery(new ObjectIdQuery(id));
assertEquals(1, artists.size());
Artist artist3 = (Artist) artists.get(0);
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=953516&r1=953515&r2=953516&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 Fri Jun 11 00:38:07 2010
@@ -23,8 +23,6 @@ import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
-import org.apache.cayenne.CayenneRuntimeException;
-import org.apache.cayenne.DataChannel;
import org.apache.cayenne.cache.MapQueryCacheFactory;
import org.apache.cayenne.cache.MockQueryCache;
import org.apache.cayenne.cache.MockQueryCacheFactory;
@@ -37,7 +35,6 @@ import org.apache.cayenne.unit.CayenneCa
/**
* DataDomain unit tests.
- *
*/
public class DataDomainTest extends CayenneCase {
@@ -48,48 +45,6 @@ public class DataDomainTest extends Caye
assertEquals("tst_name", domain.getName());
}
- public void testDataContextFactory() throws Exception {
- DataDomain domain = new DataDomain("dom1");
- DataContextFactory dataContextFactory = new DataContextFactory() {
-
- public DataContext createDataContext(
- DataChannel parent,
- ObjectStore objectStore) {
- return null;
- }
- };
- domain.setDataContextFactory(null);
- assertNull(domain.getDataContextFactory());
- domain.setDataContextFactory(dataContextFactory);
- assertSame(dataContextFactory, domain.getDataContextFactory());
- }
-
- public void testCreateDataContextWithDefaultDataContextFactory() throws Exception {
- DataDomain domain = new DataDomain("dom1");
- assertNotNull(domain.createDataContext());
- }
-
- public void testCreateDataContextWithNullDataContextFactory() throws Exception {
- DataDomain domain = new DataDomain("dom1");
- domain.setDataContextFactory(null);
- assertNotNull(domain.createDataContext());
- }
-
- public void testCreateDataContextWithCustomDataContextFactory() throws Exception {
- DataDomain domain = new DataDomain("dom1");
- final DataContext dataContext = new DataContext();
- DataContextFactory dataContextFactory = new DataContextFactory() {
-
- public DataContext createDataContext(
- DataChannel parent,
- ObjectStore objectStore) {
- return dataContext;
- }
- };
- domain.setDataContextFactory(dataContextFactory);
- assertEquals(dataContext, domain.createDataContext());
- }
-
public void testNodes() throws java.lang.Exception {
DataDomain domain = new DataDomain("dom1");
assertEquals(0, domain.getDataNodes().size());
@@ -159,79 +114,39 @@ public class DataDomainTest extends Caye
assertNotNull(domain.getEntityResolver());
}
- public void testCreateDataContextWithSharedCache() throws Exception {
+ public void testInitDataDomainWithSharedCache() throws Exception {
Map properties = new HashMap();
properties.put(DataDomain.SHARED_CACHE_ENABLED_PROPERTY, Boolean.TRUE.toString());
DataDomain domain = new DataDomain("d1", properties);
assertTrue(domain.isSharedCacheEnabled());
-
- DataContext c1 = domain.createDataContext();
- assertSame(c1.getObjectStore().getDataRowCache(), domain.getSharedSnapshotCache());
-
- DataContext c2 = domain.createDataContext(true);
- assertSame(c2.getObjectStore().getDataRowCache(), domain.getSharedSnapshotCache());
-
- DataContext c3 = domain.createDataContext(false);
- assertNotSame(c3.getObjectStore().getDataRowCache(), domain
- .getSharedSnapshotCache());
}
- public void testCreateDataContextWithDedicatedCache() throws Exception {
+ public void testInitDataDomainWithDedicatedCache() throws Exception {
Map properties = new HashMap();
properties
.put(DataDomain.SHARED_CACHE_ENABLED_PROPERTY, Boolean.FALSE.toString());
DataDomain domain = new DataDomain("d1", properties);
assertFalse(domain.isSharedCacheEnabled());
- assertNull(domain.getSharedSnapshotCache());
-
- DataContext c3 = domain.createDataContext(false);
- assertNotNull(c3.getObjectStore().getDataRowCache());
- assertNull(domain.getSharedSnapshotCache());
- assertNotSame(c3.getObjectStore().getDataRowCache(), domain
- .getSharedSnapshotCache());
-
- DataContext c1 = domain.createDataContext();
- assertNotNull(c1.getObjectStore().getDataRowCache());
- assertNull(domain.getSharedSnapshotCache());
- assertNotSame(c1.getObjectStore().getDataRowCache(), domain
- .getSharedSnapshotCache());
-
- // this should trigger shared cache creation
- DataContext c2 = domain.createDataContext(true);
- assertNotNull(c2.getObjectStore().getDataRowCache());
- assertNotNull(domain.getSharedSnapshotCache());
- assertSame(c2.getObjectStore().getDataRowCache(), domain.getSharedSnapshotCache());
-
- DataContext c4 = domain.createDataContext();
- assertNotSame(c4.getObjectStore().getDataRowCache(), c1
- .getObjectStore()
- .getDataRowCache());
}
- public void testCreateDataContextValidation() throws Exception {
+ public void testInitDataDomainValidation() throws Exception {
Map properties = new HashMap();
properties.put(DataDomain.VALIDATING_OBJECTS_ON_COMMIT_PROPERTY, Boolean.TRUE
.toString());
DataDomain domain = new DataDomain("d1", properties);
assertTrue(domain.isValidatingObjectsOnCommit());
-
- DataContext c1 = domain.createDataContext(true);
- assertTrue(c1.isValidatingObjectsOnCommit());
}
- public void testCreateDataContextNoValidation() throws Exception {
+ public void testInitDataDomainNoValidation() throws Exception {
Map properties = new HashMap();
properties.put(DataDomain.VALIDATING_OBJECTS_ON_COMMIT_PROPERTY, Boolean.FALSE
.toString());
DataDomain domain = new DataDomain("d1", properties);
assertFalse(domain.isValidatingObjectsOnCommit());
-
- DataContext c1 = domain.createDataContext(true);
- assertFalse(c1.isValidatingObjectsOnCommit());
}
public void testDataDomainInternalTransactions() throws Exception {
@@ -258,33 +173,6 @@ public class DataDomainTest extends Caye
assertTrue(transaction instanceof ExternalTransaction);
}
- public void testDataDomainDataContextFactory() {
-
- // null
- DataDomain d1 = new DataDomain("d1", new HashMap());
- assertNull(d1.getDataContextFactory());
-
- // not null
- DataDomain d2 = new DataDomain("d2", Collections.singletonMap(
- DataDomain.DATA_CONTEXT_FACTORY_PROPERTY,
- MockDataContextFactory.class.getName()));
-
- assertNotNull(d2.getDataContextFactory());
- assertTrue(d2.getDataContextFactory() instanceof MockDataContextFactory);
-
- // invalid
-
- try {
- new DataDomain("d2", Collections.singletonMap(
- DataDomain.DATA_CONTEXT_FACTORY_PROPERTY,
- Object.class.getName()));
- fail("Bogus DataContextFactrory went through unnoticed...");
- }
- catch (CayenneRuntimeException e) {
- // expected
- }
- }
-
public void testQueryCache() {
DataDomain domain = new DataDomain("X");
QueryCache cache = domain.getQueryCache();
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/InheritanceTest.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/InheritanceTest.java?rev=953516&r1=953515&r2=953516&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/InheritanceTest.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/InheritanceTest.java Fri Jun 11 00:38:07 2010
@@ -268,7 +268,7 @@ public class InheritanceTest extends Peo
// CAY-592 - make sure modification of the address in a parallel context
// doesn't mess up the Manager
- DataContext c2 = context.getParentDataDomain().createDataContext();
+ DataContext c2 = createDataContext();
e = (Employee) Cayenne.objectForPK(c2, e.getObjectId());
address = e.getAddresses().get(0);
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/NestedDataContextParentPeerEventsTest.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/NestedDataContextParentPeerEventsTest.java?rev=953516&r1=953515&r2=953516&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/NestedDataContextParentPeerEventsTest.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/NestedDataContextParentPeerEventsTest.java Fri Jun 11 00:38:07 2010
@@ -34,7 +34,7 @@ public class NestedDataContextParentPeer
a.setArtistName("X");
context.commitChanges();
- DataContext parentPeer = context.getParentDataDomain().createDataContext();
+ DataContext parentPeer = createDataContextWithSharedCache(false);
Artist a1 = (Artist) parentPeer.localObject(a.getObjectId(), a);
final ObjectContext peer2 = context.createChildContext();
@@ -70,7 +70,7 @@ public class NestedDataContextParentPeer
altA.setArtistName("Y");
context.commitChanges();
- DataContext parentPeer = context.getParentDataDomain().createDataContext();
+ DataContext parentPeer = createDataContextWithSharedCache(false);
Painting p1 = (Painting) parentPeer.localObject(p.getObjectId(), p);
Artist altA1 = (Artist) parentPeer.localObject(altA.getObjectId(), altA);
@@ -111,7 +111,7 @@ public class NestedDataContextParentPeer
context.commitChanges();
- DataContext parentPeer = context.getParentDataDomain().createDataContext();
+ DataContext parentPeer = createDataContextWithSharedCache(false);
Painting py1 = (Painting) parentPeer.localObject(py.getObjectId(), py);
Artist a1 = (Artist) parentPeer.localObject(a.getObjectId(), a);
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/jdbc/BindDirectiveTest.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/jdbc/BindDirectiveTest.java?rev=953516&r1=953515&r2=953516&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/jdbc/BindDirectiveTest.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/jdbc/BindDirectiveTest.java Fri Jun 11 00:38:07 2010
@@ -117,7 +117,7 @@ public class BindDirectiveTest extends C
SQLTemplate query = new SQLTemplate(Artist.class, sql);
query.setColumnNamesCapitalization(CapsStrategy.UPPER);
query.setParameters(Collections.singletonMap("ARTISTNAMES", artistNames));
- List<DataRow> result = getDomain().createDataContext().performQuery(query);
+ List<DataRow> result = createDataContext().performQuery(query);
assertEquals(2, result.size());
}
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/jdbc/SelectActionTest.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/jdbc/SelectActionTest.java?rev=953516&r1=953515&r2=953516&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/jdbc/SelectActionTest.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/jdbc/SelectActionTest.java Fri Jun 11 00:38:07 2010
@@ -36,7 +36,7 @@ public class SelectActionTest extends Ca
protected void setUp() throws Exception {
super.setUp();
deleteTestData();
- context = getDomain().createDataContext();
+ context = createDataContext();
}
public void testFetchLimit_DistinctResultIterator() throws Exception {
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/configuration/server/CayenneServerRuntimeTest.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/configuration/server/CayenneServerRuntimeTest.java?rev=953516&r1=953515&r2=953516&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/configuration/server/CayenneServerRuntimeTest.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/configuration/server/CayenneServerRuntimeTest.java Fri Jun 11 00:38:07 2010
@@ -24,6 +24,7 @@ import org.apache.cayenne.DataChannel;
import org.apache.cayenne.ObjectContext;
import org.apache.cayenne.QueryResponse;
import org.apache.cayenne.access.DataContext;
+import org.apache.cayenne.configuration.ObjectContextFactory;
import org.apache.cayenne.configuration.RuntimeProperties;
import org.apache.cayenne.configuration.server.CayenneServerRuntime;
import org.apache.cayenne.di.Binder;
@@ -112,11 +113,21 @@ public class CayenneServerRuntimeTest ex
public void testGetObjectContext() {
final ObjectContext context = new DataContext();
+ final ObjectContextFactory factory = new ObjectContextFactory() {
+
+ public ObjectContext createContext(DataChannel parent) {
+ return context;
+ }
+
+ public ObjectContext createContext() {
+ return context;
+ }
+ };
Module module = new Module() {
public void configure(Binder binder) {
- binder.bind(ObjectContext.class).toInstance(context);
+ binder.bind(ObjectContextFactory.class).toInstance(factory);
}
};
Added: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/configuration/server/DataContextFactoryTest.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/configuration/server/DataContextFactoryTest.java?rev=953516&view=auto
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/configuration/server/DataContextFactoryTest.java (added)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/configuration/server/DataContextFactoryTest.java Fri Jun 11 00:38:07 2010
@@ -0,0 +1,89 @@
+/*****************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ ****************************************************************/
+package org.apache.cayenne.configuration.server;
+
+import junit.framework.TestCase;
+
+import org.apache.cayenne.access.DataContext;
+import org.apache.cayenne.access.DataDomain;
+import org.apache.cayenne.di.Binder;
+import org.apache.cayenne.di.DIBootstrap;
+import org.apache.cayenne.di.Injector;
+import org.apache.cayenne.di.Module;
+import org.apache.cayenne.event.EventManager;
+import org.apache.cayenne.event.MockEventManager;
+
+public class DataContextFactoryTest extends TestCase {
+
+ public void testCreateDataContextWithDedicatedCache() throws Exception {
+
+ final EventManager eventManager = new MockEventManager();
+ final DataDomain domain = new DataDomain("d1");
+
+ domain.setSharedCacheEnabled(false);
+
+ Module testModule = new Module() {
+
+ public void configure(Binder binder) {
+ binder.bind(DataDomain.class).toInstance(domain);
+ binder.bind(EventManager.class).toInstance(eventManager);
+ }
+ };
+
+ Injector injector = DIBootstrap.createInjector(testModule);
+
+ DataContextFactory factory = new DataContextFactory();
+ injector.injectMembers(factory);
+
+ DataContext c3 = (DataContext) factory.createContext();
+ assertNotNull(c3.getObjectStore().getDataRowCache());
+ assertNull(domain.getSharedSnapshotCache());
+ assertNotSame(c3.getObjectStore().getDataRowCache(), domain
+ .getSharedSnapshotCache());
+ }
+
+ public void testCreateDataContextValidation() throws Exception {
+ final EventManager eventManager = new MockEventManager();
+ final DataDomain domain = new DataDomain("d1");
+
+ domain.setValidatingObjectsOnCommit(true);
+
+ Module testModule = new Module() {
+
+ public void configure(Binder binder) {
+ binder.bind(DataDomain.class).toInstance(domain);
+ binder.bind(EventManager.class).toInstance(eventManager);
+ }
+ };
+
+ Injector injector = DIBootstrap.createInjector(testModule);
+
+ DataContextFactory factory = new DataContextFactory();
+ injector.injectMembers(factory);
+
+ DataContext c1 = (DataContext) factory.createContext();
+ assertTrue(c1.isValidatingObjectsOnCommit());
+
+ domain.setValidatingObjectsOnCommit(false);
+
+ DataContext c2 = (DataContext) factory.createContext();
+ assertFalse(c2.isValidatingObjectsOnCommit());
+ }
+
+}
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/remote/hessian/service/HessianServiceTest.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/remote/hessian/service/HessianServiceTest.java?rev=953516&r1=953515&r2=953516&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/remote/hessian/service/HessianServiceTest.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/remote/hessian/service/HessianServiceTest.java Fri Jun 11 00:38:07 2010
@@ -24,15 +24,17 @@ import java.util.Map;
import javax.servlet.http.HttpSession;
-import org.apache.cayenne.access.DataDomain;
+import junit.framework.TestCase;
+
+import org.apache.cayenne.DataChannel;
+import org.apache.cayenne.ObjectContext;
+import org.apache.cayenne.configuration.ObjectContextFactory;
import org.apache.cayenne.event.MockEventBridgeFactory;
import com.caucho.services.server.ServiceContext;
import com.mockrunner.mock.web.MockHttpServletRequest;
import com.mockrunner.mock.web.MockHttpSession;
-import junit.framework.TestCase;
-
public class HessianServiceTest extends TestCase {
public void testGetSession() throws Exception {
@@ -42,9 +44,17 @@ public class HessianServiceTest extends
HessianService.EVENT_BRIDGE_FACTORY_PROPERTY,
MockEventBridgeFactory.class.getName());
- DataDomain domain = new DataDomain("test");
+ ObjectContextFactory factory = new ObjectContextFactory() {
- HessianService service = new HessianService(domain, map);
+ public ObjectContext createContext(DataChannel parent) {
+ return null;
+ }
+
+ public ObjectContext createContext() {
+ return null;
+ }
+ };
+ HessianService service = new HessianService(factory, map);
MockHttpServletRequest request = new MockHttpServletRequest();
HttpSession session = new MockHttpSession();
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/remote/service/BaseRemoteServiceTest.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/remote/service/BaseRemoteServiceTest.java?rev=953516&r1=953515&r2=953516&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/remote/service/BaseRemoteServiceTest.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/remote/service/BaseRemoteServiceTest.java Fri Jun 11 00:38:07 2010
@@ -24,7 +24,9 @@ import java.util.Map;
import junit.framework.TestCase;
import org.apache.cayenne.CayenneRuntimeException;
-import org.apache.cayenne.access.DataDomain;
+import org.apache.cayenne.DataChannel;
+import org.apache.cayenne.ObjectContext;
+import org.apache.cayenne.configuration.ObjectContextFactory;
import org.apache.cayenne.event.MockEventBridgeFactory;
import org.apache.cayenne.query.Query;
import org.apache.cayenne.remote.QueryMessage;
@@ -41,8 +43,17 @@ public class BaseRemoteServiceTest exten
HessianService.EVENT_BRIDGE_FACTORY_PROPERTY,
MockEventBridgeFactory.class.getName());
- DataDomain domain = new DataDomain("test");
- BaseRemoteService service = new BaseRemoteService(domain, map) {
+ ObjectContextFactory factory = new ObjectContextFactory() {
+
+ public ObjectContext createContext(DataChannel parent) {
+ return null;
+ }
+
+ public ObjectContext createContext() {
+ return null;
+ }
+ };
+ BaseRemoteService service = new BaseRemoteService(factory, map) {
@Override
protected ServerSession createServerSession() {
@@ -61,16 +72,24 @@ public class BaseRemoteServiceTest exten
};
assertEquals(MockEventBridgeFactory.class.getName(), service
.getEventBridgeFactoryName());
- assertSame(domain, service.domain);
+ assertSame(factory, service.contextFactory);
}
public void testProcessMessageExceptionSerializability() throws Throwable {
Map<String, String> map = new HashMap<String, String>();
- DataDomain domain = new DataDomain("test");
+ ObjectContextFactory factory = new ObjectContextFactory() {
- BaseRemoteService service = new BaseRemoteService(domain, map) {
+ public ObjectContext createContext(DataChannel parent) {
+ return null;
+ }
+
+ public ObjectContext createContext() {
+ return null;
+ }
+ };
+ BaseRemoteService service = new BaseRemoteService(factory, map) {
@Override
protected ServerSession createServerSession() {
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/unit/CayenneCase.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/unit/CayenneCase.java?rev=953516&r1=953515&r2=953516&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/unit/CayenneCase.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/unit/CayenneCase.java Fri Jun 11 00:38:07 2010
@@ -119,21 +119,23 @@ public abstract class CayenneCase extend
}
protected DataContext createDataContext() {
- return createDataContextWithSharedCache();
+ return createDataContextWithSharedCache(true);
}
/**
* Creates a DataContext that uses shared snapshot cache and is based on default test
* domain.
*/
- protected DataContext createDataContextWithSharedCache() {
+ protected DataContext createDataContextWithSharedCache(boolean clearCache) {
// remove listeners for snapshot events
- getDomain().getEventManager().removeAllListeners(
- getDomain().getSharedSnapshotCache().getSnapshotEventSubject());
-
- // clear cache...
- getDomain().getSharedSnapshotCache().clear();
- getDomain().getQueryCache().clear();
+ if (clearCache) {
+ getDomain().getEventManager().removeAllListeners(
+ getDomain().getSharedSnapshotCache().getSnapshotEventSubject());
+
+ // clear cache...
+ getDomain().getSharedSnapshotCache().clear();
+ getDomain().getQueryCache().clear();
+ }
DataContext context = getDomain().createDataContext(true);
assertSame(getDomain().getSharedSnapshotCache(), context
Modified: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/DataDomainView.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/DataDomainView.java?rev=953516&r1=953515&r2=953516&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/DataDomainView.java (original)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/DataDomainView.java Fri Jun 11 00:38:07 2010
@@ -36,8 +36,8 @@ import org.apache.cayenne.access.DataDom
import org.apache.cayenne.access.DataRowStore;
import org.apache.cayenne.cache.MapQueryCacheFactory;
import org.apache.cayenne.cache.OSQueryCacheFactory;
-import org.apache.cayenne.configuration.event.DomainEvent;
import org.apache.cayenne.configuration.DataChannelDescriptor;
+import org.apache.cayenne.configuration.event.DomainEvent;
import org.apache.cayenne.modeler.Application;
import org.apache.cayenne.modeler.ProjectController;
import org.apache.cayenne.modeler.dialog.datadomain.CacheSyncConfigController;
@@ -69,7 +69,6 @@ public class DataDomainView extends JPan
protected TextAdapter cacheSize;
protected JCheckBox objectValidation;
protected JCheckBox externalTransactions;
- protected TextAdapter dataContextFactory;
protected JComboBox queryCacheFactory;
protected JCheckBox sharedCache;
protected JCheckBox remoteUpdates;
@@ -102,13 +101,6 @@ public class DataDomainView extends JPan
}
};
- this.dataContextFactory = new TextAdapter(new JTextField()) {
-
- protected void updateModel(String text) {
- setDomainProperty(DataDomain.DATA_CONTEXT_FACTORY_PROPERTY, text, null);
- }
- };
-
this.objectValidation = new JCheckBox();
this.externalTransactions = new JCheckBox();
@@ -123,7 +115,7 @@ public class DataDomainView extends JPan
CellConstraints cc = new CellConstraints();
FormLayout layout = new FormLayout(
"right:pref, 3dlu, fill:50dlu, 3dlu, fill:47dlu, 3dlu, fill:100",
- "p, 3dlu, p, 3dlu, p, 3dlu, p, 3dlu, p, 3dlu, p, 3dlu, p, 3dlu, p, 3dlu, p, 3dlu, p");
+ "p, 3dlu, p, 3dlu, p, 3dlu, p, 3dlu, p, 3dlu, p, 3dlu, p, 3dlu, p, 3dlu, p");
PanelBuilder builder = new PanelBuilder(layout);
builder.setDefaultDialogBorder();
@@ -132,28 +124,25 @@ public class DataDomainView extends JPan
builder.addLabel("DataDomain Name:", cc.xy(1, 3));
builder.add(name.getComponent(), cc.xywh(3, 3, 5, 1));
- builder.addLabel("DataContext Factory:", cc.xy(1, 5));
- builder.add(dataContextFactory.getComponent(), cc.xywh(3, 5, 5, 1));
-
- builder.addLabel("Object Validation:", cc.xy(1, 7));
- builder.add(objectValidation, cc.xy(3, 7));
+ builder.addLabel("Object Validation:", cc.xy(1, 5));
+ builder.add(objectValidation, cc.xy(3, 5));
- builder.addLabel("Container-Managed Transactions:", cc.xy(1, 9));
- builder.add(externalTransactions, cc.xy(3, 9));
+ builder.addLabel("Container-Managed Transactions:", cc.xy(1, 7));
+ builder.add(externalTransactions, cc.xy(3, 7));
- builder.addSeparator("Cache Configuration", cc.xywh(1, 11, 7, 1));
- builder.addLabel("Query Cache Factory:", cc.xy(1, 13));
- builder.add(queryCacheFactory, cc.xywh(3, 13, 5, 1));
+ builder.addSeparator("Cache Configuration", cc.xywh(1, 9, 7, 1));
+ builder.addLabel("Query Cache Factory:", cc.xy(1, 11));
+ builder.add(queryCacheFactory, cc.xywh(3, 11, 5, 1));
- builder.addLabel("Size of Object Cache:", cc.xy(1, 15));
- builder.add(cacheSize.getComponent(), cc.xy(3, 15));
+ builder.addLabel("Size of Object Cache:", cc.xy(1, 13));
+ builder.add(cacheSize.getComponent(), cc.xy(3, 13));
- builder.addLabel("Use Shared Cache:", cc.xy(1, 17));
- builder.add(sharedCache, cc.xy(3, 17));
+ builder.addLabel("Use Shared Cache:", cc.xy(1, 15));
+ builder.add(sharedCache, cc.xy(3, 15));
- builder.addLabel("Remote Change Notifications:", cc.xy(1, 19));
- builder.add(remoteUpdates, cc.xy(3, 19));
- builder.add(configRemoteUpdates, cc.xy(7, 19));
+ builder.addLabel("Remote Change Notifications:", cc.xy(1, 17));
+ builder.add(remoteUpdates, cc.xy(3, 17));
+ builder.add(configRemoteUpdates, cc.xy(7, 17));
this.setLayout(new BorderLayout());
this.add(builder.getPanel(), BorderLayout.CENTER);
@@ -325,9 +314,6 @@ public class DataDomainView extends JPan
externalTransactions.setSelected(getDomainBooleanProperty(
DataDomain.USING_EXTERNAL_TRANSACTIONS_PROPERTY,
Boolean.toString(DataDomain.USING_EXTERNAL_TRANSACTIONS_DEFAULT)));
- dataContextFactory.setText(getDomainProperty(
- DataDomain.DATA_CONTEXT_FACTORY_PROPERTY,
- null));
sharedCache.setSelected(getDomainBooleanProperty(
DataDomain.SHARED_CACHE_ENABLED_PROPERTY,