[jboss-cvs] JBossAS SVN: r65920 - in projects/ejb3/branches/cluster-dev/ejb3-cache: src/main/java/org/jboss/ejb3/cache and 4 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Mon Oct 8 13:20:58 EDT 2007
Author: bstansberry at jboss.com
Date: 2007-10-08 13:20:58 -0400 (Mon, 08 Oct 2007)
New Revision: 65920
Modified:
projects/ejb3/branches/cluster-dev/ejb3-cache/.classpath
projects/ejb3/branches/cluster-dev/ejb3-cache/src/main/java/org/jboss/ejb3/cache/Cache.java
projects/ejb3/branches/cluster-dev/ejb3-cache/src/main/java/org/jboss/ejb3/cache/PassivatingCache.java
projects/ejb3/branches/cluster-dev/ejb3-cache/src/main/java/org/jboss/ejb3/cache/PassivationManager.java
projects/ejb3/branches/cluster-dev/ejb3-cache/src/main/java/org/jboss/ejb3/cache/grouped/GroupedPassivatingCache.java
projects/ejb3/branches/cluster-dev/ejb3-cache/src/main/java/org/jboss/ejb3/cache/impl/EntryStateCache.java
projects/ejb3/branches/cluster-dev/ejb3-cache/src/main/java/org/jboss/ejb3/cache/impl/GroupedPassivatingCacheImpl.java
projects/ejb3/branches/cluster-dev/ejb3-cache/src/main/java/org/jboss/ejb3/cache/impl/SimpleCache.java
projects/ejb3/branches/cluster-dev/ejb3-cache/src/main/java/org/jboss/ejb3/cache/impl/SimplePassivatingCache.java
projects/ejb3/branches/cluster-dev/ejb3-cache/src/test/java/org/jboss/ejb3/test/grouped/GroupedPassivatingUnitTestCache.java
projects/ejb3/branches/cluster-dev/ejb3-cache/src/test/java/org/jboss/ejb3/test/grouped/MockBeanContainer.java
projects/ejb3/branches/cluster-dev/ejb3-cache/src/test/java/org/jboss/ejb3/test/passivation/MockBeanContainer.java
Log:
First draft of clustering support
Modified: projects/ejb3/branches/cluster-dev/ejb3-cache/.classpath
===================================================================
--- projects/ejb3/branches/cluster-dev/ejb3-cache/.classpath 2007-10-08 16:43:21 UTC (rev 65919)
+++ projects/ejb3/branches/cluster-dev/ejb3-cache/.classpath 2007-10-08 17:20:58 UTC (rev 65920)
@@ -4,19 +4,19 @@
<classpathentry kind="src" path="src/test/resources" output="target/test-classes" excluding="**/*.java"/>
<classpathentry kind="output" path="target/classes"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
- <classpathentry kind="var" path="M2_REPO/junit/junit/3.8.1/junit-3.8.1.jar" sourcepath="M2_REPO/junit/junit/3.8.1/junit-3.8.1-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/jboss/jboss-common-core/2.0.4.GA/jboss-common-core-2.0.4.GA.jar" sourcepath="M2_REPO/jboss/jboss-common-core/2.0.4.GA/jboss-common-core-2.0.4.GA-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/oswego-concurrent/concurrent/1.3.4/concurrent-1.3.4.jar"/>
- <classpathentry kind="var" path="M2_REPO/apache-httpclient/commons-httpclient/2.0.2/commons-httpclient-2.0.2.jar"/>
- <classpathentry kind="var" path="M2_REPO/jboss/jboss-common-logging-spi/2.0.4.GA/jboss-common-logging-spi-2.0.4.GA.jar" sourcepath="M2_REPO/jboss/jboss-common-logging-spi/2.0.4.GA/jboss-common-logging-spi-2.0.4.GA-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/jboss/javaee/jboss-ejb-api/3.0.0.20070913080910/jboss-ejb-api-3.0.0.20070913080910.jar"/>
<classpathentry kind="var" path="M2_REPO/apache-xerces/xml-apis/2.7.1/xml-apis-2.7.1.jar"/>
+ <classpathentry kind="var" path="M2_REPO/jboss/jboss-common-core/2.0.4.GA/jboss-common-core-2.0.4.GA.jar"/>
+ <classpathentry kind="var" path="M2_REPO/jboss/jboss-common-logging-spi/2.0.4.GA/jboss-common-logging-spi-2.0.4.GA.jar"/>
<classpathentry kind="var" path="M2_REPO/apache-slide/webdavlib/2.0/webdavlib-2.0.jar"/>
- <classpathentry kind="var" path="M2_REPO/log4j/log4j/1.2.14/log4j-1.2.14.jar" sourcepath="M2_REPO/log4j/log4j/1.2.14/log4j-1.2.14-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/jboss/javaee/jboss-transaction-api/1.0.1.20070913080910/jboss-transaction-api-1.0.1.20070913080910.jar" sourcepath="M2_REPO/org/jboss/javaee/jboss-transaction-api/1.0.1.20070913080910/jboss-transaction-api-1.0.1.20070913080910-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/jboss/jboss-serialization/1.0.3.GA/jboss-serialization-1.0.3.GA.jar"/>
+ <classpathentry kind="var" path="M2_REPO/log4j/log4j/1.2.14/log4j-1.2.14.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/jboss/jboss-common-core/2.2.1.GA/jboss-common-core-2.2.1.GA.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/jboss/javaee/jboss-transaction-api/1.0.1.20070913080910/jboss-transaction-api-1.0.1.20070913080910.jar"/>
<classpathentry kind="var" path="M2_REPO/trove/trove/2.1.1/trove-2.1.1.jar"/>
- <classpathentry kind="var" path="M2_REPO/jboss/jboss-serialization/1.0.3.GA/jboss-serialization-1.0.3.GA.jar"/>
+ <classpathentry kind="var" path="M2_REPO/junit/junit/3.8.1/junit-3.8.1.jar"/>
+ <classpathentry kind="var" path="M2_REPO/jboss/jboss-common-logging-log4j/2.0.4.GA/jboss-common-logging-log4j-2.0.4.GA.jar"/>
<classpathentry kind="var" path="M2_REPO/jboss/jbossws/jboss-jaxrpc/1.0.4.GA/jboss-jaxrpc-1.0.4.GA.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/jboss/javaee/jboss-ejb-api/3.0.0.20070913080910/jboss-ejb-api-3.0.0.20070913080910.jar" sourcepath="M2_REPO/org/jboss/javaee/jboss-ejb-api/3.0.0.20070913080910/jboss-ejb-api-3.0.0.20070913080910-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/jboss/jboss-common-core/2.2.1.GA/jboss-common-core-2.2.1.GA.jar" sourcepath="M2_REPO/org/jboss/jboss-common-core/2.2.1.GA/jboss-common-core-2.2.1.GA-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/jboss/jboss-common-logging-log4j/2.0.4.GA/jboss-common-logging-log4j-2.0.4.GA.jar" sourcepath="M2_REPO/jboss/jboss-common-logging-log4j/2.0.4.GA/jboss-common-logging-log4j-2.0.4.GA-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/apache-httpclient/commons-httpclient/2.0.2/commons-httpclient-2.0.2.jar"/>
</classpath>
\ No newline at end of file
Modified: projects/ejb3/branches/cluster-dev/ejb3-cache/src/main/java/org/jboss/ejb3/cache/Cache.java
===================================================================
--- projects/ejb3/branches/cluster-dev/ejb3-cache/src/main/java/org/jboss/ejb3/cache/Cache.java 2007-10-08 16:43:21 UTC (rev 65919)
+++ projects/ejb3/branches/cluster-dev/ejb3-cache/src/main/java/org/jboss/ejb3/cache/Cache.java 2007-10-08 17:20:58 UTC (rev 65920)
@@ -78,6 +78,27 @@
void remove(Object key);
/**
+ * Gets whether this cache supports clustering functionality.
+ *
+ * @return <code>true</code> if clustering is supported, <code>false</code>
+ * otherwise
+ */
+ boolean isClustered();
+
+ /**
+ * Replicate the object. The object must not be in use.
+ *
+ * @param key the identifier of the object
+ *
+ * @throws ItemInUseException if the object, or another object in the
+ * same {@link SerializationGroup} as the object,
+ * is in use.
+ * @throws UnsupportedOperationException if {@link #isClustered()} returns
+ * <code>false</code>
+ */
+ void replicate(Object key);
+
+ /**
* Start the cache.
*/
void start();
Modified: projects/ejb3/branches/cluster-dev/ejb3-cache/src/main/java/org/jboss/ejb3/cache/PassivatingCache.java
===================================================================
--- projects/ejb3/branches/cluster-dev/ejb3-cache/src/main/java/org/jboss/ejb3/cache/PassivatingCache.java 2007-10-08 16:43:21 UTC (rev 65919)
+++ projects/ejb3/branches/cluster-dev/ejb3-cache/src/main/java/org/jboss/ejb3/cache/PassivatingCache.java 2007-10-08 17:20:58 UTC (rev 65920)
@@ -29,7 +29,7 @@
* callbacks on the object.
*
* @author <a href="mailto:carlo.dewolf at jboss.com">Carlo de Wolf</a>
- * @version $Revision: $
+ * @version $Revision$
*/
public interface PassivatingCache<T extends Identifiable> extends Cache<T>
{
@@ -37,6 +37,10 @@
* Force passivation of an object. The object must not be in use.
*
* @param key the identifier of the object
+ *
+ * @throws ItemInUseException if the object, or another object in the
+ * same {@link SerializationGroup} as the object,
+ * is in use.
*/
void passivate(Object key);
}
Modified: projects/ejb3/branches/cluster-dev/ejb3-cache/src/main/java/org/jboss/ejb3/cache/PassivationManager.java
===================================================================
--- projects/ejb3/branches/cluster-dev/ejb3-cache/src/main/java/org/jboss/ejb3/cache/PassivationManager.java 2007-10-08 16:43:21 UTC (rev 65919)
+++ projects/ejb3/branches/cluster-dev/ejb3-cache/src/main/java/org/jboss/ejb3/cache/PassivationManager.java 2007-10-08 17:20:58 UTC (rev 65920)
@@ -24,10 +24,10 @@
import java.io.Serializable;
/**
- * Manage passivation lifecycle callbacks on an object.
+ * Manage passivation and replication lifecycle callbacks on an object.
*
* @author <a href="mailto:carlo.dewolf at jboss.com">Carlo de Wolf</a>
- * @version $Revision: $
+ * @version $Revision$
*/
public interface PassivationManager<T extends Serializable>
{
@@ -44,6 +44,44 @@
* ObjectStore.
*
* @param obj the object
+ *
+ * @throws ItemInUseException if <code>obj</code>, or another object in the
+ * same {@link SerializationGroup} as
+ * <code>obj</code>, is in use.
*/
void prePassivate(T obj);
+
+ /**
+ * Gets whether this PassivationManager supports clustering functionality.
+ *
+ * @return <code>true</code> if clustering is supported, <code>false</code>
+ * otherwise
+ */
+ boolean isClustered();
+
+ /**
+ * This method is called after a previously replicated object has been
+ * retrieved from a clustered cache.
+ *
+ * @param obj the object.
+ *
+ * @throws UnsupportedOperationException if {@link #isClustered()} returns
+ * <code>false</code>
+ */
+ void postReplicate(T obj);
+
+ /**
+ * This method is called before an object is replicated by a clustered
+ * cache.
+ *
+ * @param obj the object
+ *
+ * @throws ItemInUseException if <code>obj</code>, or another object in the
+ * same {@link SerializationGroup} as
+ * <code>obj</code>, is in use. .
+ *
+ * @throws UnsupportedOperationException if {@link #isClustered()} returns
+ * <code>false</code>
+ */
+ void preReplicate(T obj);
}
Modified: projects/ejb3/branches/cluster-dev/ejb3-cache/src/main/java/org/jboss/ejb3/cache/grouped/GroupedPassivatingCache.java
===================================================================
--- projects/ejb3/branches/cluster-dev/ejb3-cache/src/main/java/org/jboss/ejb3/cache/grouped/GroupedPassivatingCache.java 2007-10-08 16:43:21 UTC (rev 65919)
+++ projects/ejb3/branches/cluster-dev/ejb3-cache/src/main/java/org/jboss/ejb3/cache/grouped/GroupedPassivatingCache.java 2007-10-08 17:20:58 UTC (rev 65920)
@@ -25,12 +25,24 @@
import org.jboss.ejb3.cache.PassivatingCache;
/**
- * Allows objects to the members of a PassivationGroup.
+ * Allows objects to be the members of a SerializationGroup.
*
* @author <a href="mailto:carlo.dewolf at jboss.com">Carlo de Wolf</a>
- * @version $Revision: $
+ * @version $Revision$
*/
public interface GroupedPassivatingCache<T extends Identifiable> extends PassivatingCache<T>
{
- void setGroup(T obj, PassivationGroup group);
+ /**
+ * Assign the given object to the given group. The group will be
+ * of the {@link SerializationGroup} implementation type returned
+ * by {@link #createGroup()}.
+ *
+ * @param obj
+ * @param group
+ *
+ * @throws IllegalArgumentException if the
+ * {@link SerializationGroup#isClustered() group's support for clustering}
+ * does not match {@link Cache#isClustered() our own}.
+ */
+ void setGroup(T obj, SerializationGroup group);
}
Modified: projects/ejb3/branches/cluster-dev/ejb3-cache/src/main/java/org/jboss/ejb3/cache/impl/EntryStateCache.java
===================================================================
--- projects/ejb3/branches/cluster-dev/ejb3-cache/src/main/java/org/jboss/ejb3/cache/impl/EntryStateCache.java 2007-10-08 16:43:21 UTC (rev 65919)
+++ projects/ejb3/branches/cluster-dev/ejb3-cache/src/main/java/org/jboss/ejb3/cache/impl/EntryStateCache.java 2007-10-08 17:20:58 UTC (rev 65920)
@@ -34,7 +34,7 @@
* Comment
*
* @author <a href="mailto:carlo.dewolf at jboss.com">Carlo de Wolf</a>
- * @version $Revision: $
+ * @version $Revision$
*/
public class EntryStateCache<T extends Identifiable> implements Cache<T>
{
@@ -140,5 +140,16 @@
// TODO Auto-generated method stub
}
+
+ public boolean isClustered()
+ {
+ return false;
+ }
+
+ public void replicate(Object key)
+ {
+ throw new UnsupportedOperationException("Clustering is not supported by " +
+ getClass().getName());
+ }
}
Modified: projects/ejb3/branches/cluster-dev/ejb3-cache/src/main/java/org/jboss/ejb3/cache/impl/GroupedPassivatingCacheImpl.java
===================================================================
--- projects/ejb3/branches/cluster-dev/ejb3-cache/src/main/java/org/jboss/ejb3/cache/impl/GroupedPassivatingCacheImpl.java 2007-10-08 16:43:21 UTC (rev 65919)
+++ projects/ejb3/branches/cluster-dev/ejb3-cache/src/main/java/org/jboss/ejb3/cache/impl/GroupedPassivatingCacheImpl.java 2007-10-08 17:20:58 UTC (rev 65920)
@@ -33,34 +33,36 @@
import org.jboss.ejb3.cache.PassivationManager;
import org.jboss.ejb3.cache.StatefulObjectFactory;
import org.jboss.ejb3.cache.grouped.GroupedPassivatingCache;
-import org.jboss.ejb3.cache.grouped.PassivationGroup;
+import org.jboss.ejb3.cache.grouped.SerializationGroup;
+import org.jboss.ejb3.cache.grouped.SerializationGroupMember;
import org.jboss.logging.Logger;
/**
* Comment
*
* @author <a href="mailto:carlo.dewolf at jboss.com">Carlo de Wolf</a>
- * @version $Revision: $
+ * @version $Revision$
*/
public class GroupedPassivatingCacheImpl<T extends Identifiable & Serializable> implements GroupedPassivatingCache<T>
{
private static final Logger log = Logger.getLogger(GroupedPassivatingCacheImpl.class);
- private PassivatingCache<PassivationGroup> groupCache;
+ private PassivatingCache<SerializationGroup> groupCache;
- private SimplePassivatingCache<Entry> delegate;
- private Map<Object, Entry> storage = new HashMap<Object, Entry>();
+ private SimplePassivatingCache<Entry<T>> delegate;
+ private Map<Object, Entry<T>> storage = new HashMap<Object, Entry<T>>();
- protected class Entry implements Identifiable, Serializable
+ protected class Entry<C extends Identifiable & Serializable>
+ implements SerializationGroupMember, Serializable
{
private static final long serialVersionUID = 1L;
Object id;
- T obj;
- PassivationGroupImpl group;
+ C obj;
+ SerializationGroup group;
Object groupId;
- Entry(T obj)
+ Entry(C obj)
{
assert obj != null : "obj is null";
@@ -73,8 +75,13 @@
return id;
}
- void passivate()
+ public C getSerializableObject()
{
+ return obj;
+ }
+
+ public void prePassivate()
+ {
// make sure we don't passivate the group twice
group = null;
@@ -83,6 +90,17 @@
obj = null;
}
+ public void preReplicate()
+ {
+ throw new UnsupportedOperationException("Clustering is not supported by " +
+ GroupedPassivatingCacheImpl.this.getClass().getName());
+ }
+
+ public boolean isClustered()
+ {
+ return false;
+ }
+
@Override
public String toString()
{
@@ -90,7 +108,7 @@
}
}
- private class EntryContainer implements StatefulObjectFactory<Entry>, PassivationManager<Entry>, ObjectStore<Entry>
+ private class EntryContainer implements StatefulObjectFactory<Entry<T>>, PassivationManager<Entry<T>>, ObjectStore<Entry<T>>
{
private StatefulObjectFactory<T> factory;
private PassivationManager<T> passivationManager;
@@ -103,19 +121,19 @@
this.store = store;
}
- public Entry create(Class<?>[] initTypes, Object[] initValues)
+ public Entry<T> create(Class<?>[] initTypes, Object[] initValues)
{
- return new Entry(factory.create(initTypes, initValues));
+ return new Entry<T>(factory.create(initTypes, initValues));
}
- public void destroy(Entry entry)
+ public void destroy(Entry<T> entry)
{
- factory.destroy(entry.obj);
+ factory.destroy(entry.getSerializableObject());
}
- public Entry load(Object key)
+ public Entry<T> load(Object key)
{
- Entry entry = storage.get(key);
+ Entry<T> entry = storage.get(key);
if(entry != null)
{
log.trace("entry = " + entry);
@@ -125,26 +143,27 @@
T obj = store.load(key);
if(obj == null)
return null;
- return new Entry(obj);
+ return new Entry<T>(obj);
}
@SuppressWarnings("unchecked")
- public void postActivate(Entry entry)
+ public void postActivate(Entry<T> entry)
{
log.trace("post activate " + entry);
- if(entry.obj == null)
+ if(entry.getSerializableObject() == null)
{
if(entry.group == null)
{
// TODO: peek or get?
- entry.group = (PassivationGroupImpl) groupCache.peek(entry.groupId);
+ entry.group = groupCache.peek(entry.groupId);
}
- entry.obj = (T) entry.group.getMember(entry.id);
+ entry.obj = (T) entry.group.getMemberObject(entry.id);
+ entry.group.addActive(entry);
}
passivationManager.postActivate(entry.obj);
}
- public void prePassivate(Entry entry)
+ public void prePassivate(Entry<T> entry)
{
log.trace("pre passivate " + entry);
passivationManager.prePassivate(entry.obj);
@@ -160,8 +179,25 @@
}
}
- public void store(Entry entry)
+ public boolean isClustered()
{
+ return false;
+ }
+
+ public void preReplicate(Entry<T> entry)
+ {
+ throw new UnsupportedOperationException("Clustering is not supported by " +
+ getClass().getName());
+ }
+
+ public void postReplicate(Entry<T> entry)
+ {
+ throw new UnsupportedOperationException("Clustering is not supported by " +
+ getClass().getName());
+ }
+
+ public void store(Entry<T> entry)
+ {
log.trace("store " + entry);
if(entry.groupId == null)
store.store(entry.obj);
@@ -170,16 +206,28 @@
}
}
- public GroupedPassivatingCacheImpl(StatefulObjectFactory<T> factory, PassivationManager<T> passivationManager, ObjectStore<T> store, PassivatingCache<PassivationGroup> groupCache)
+ public GroupedPassivatingCacheImpl(StatefulObjectFactory<T> factory, PassivationManager<T> passivationManager, ObjectStore<T> store, PassivatingCache<SerializationGroup> groupCache)
{
assert groupCache != null : "groupCache is null";
assert passivationManager != null : "passivationManager is null";
+ assert groupCache.isClustered() == false : "groupCache should not be clustered";
this.groupCache = groupCache;
EntryContainer container = new EntryContainer(factory, passivationManager, store);
- this.delegate = new SimplePassivatingCache<Entry>(container, container, container);
+ this.delegate = new SimplePassivatingCache<Entry<T>>(container, container, container);
}
+ public boolean isClustered()
+ {
+ return false;
+ }
+
+ public void replicate(Object key)
+ {
+ throw new UnsupportedOperationException("Clustering is not supported by " +
+ getClass().getName());
+ }
+
public void passivate(Object key)
{
delegate.passivate(key);
@@ -210,17 +258,21 @@
delegate.remove(key);
}
- public void setGroup(T obj, PassivationGroup group)
+
+ public void setGroup(T obj, SerializationGroup group)
{
- Entry entry;
+ if (group.isClustered())
+ {
+ throw new IllegalArgumentException(group + " is clustered; this cache does not support clustering");
+ }
Object key = obj.getId();
- entry = delegate.peek(key);
+ Entry<T>entry = delegate.peek(key);
if(entry.group != null)
throw new IllegalStateException("object " + key + " already associated with a passivation group");
- entry.group = (PassivationGroupImpl) group;
+ entry.group = group;
entry.groupId = group.getId();
// TODO: remove member at the appropriate time
- entry.group.addMember(key, entry);
+ entry.group.addMember(entry);
}
public void setName(String name)
Modified: projects/ejb3/branches/cluster-dev/ejb3-cache/src/main/java/org/jboss/ejb3/cache/impl/SimpleCache.java
===================================================================
--- projects/ejb3/branches/cluster-dev/ejb3-cache/src/main/java/org/jboss/ejb3/cache/impl/SimpleCache.java 2007-10-08 16:43:21 UTC (rev 65919)
+++ projects/ejb3/branches/cluster-dev/ejb3-cache/src/main/java/org/jboss/ejb3/cache/impl/SimpleCache.java 2007-10-08 17:20:58 UTC (rev 65920)
@@ -90,6 +90,17 @@
}
if(obj != null)
factory.destroy(obj);
+ }
+
+ public boolean isClustered()
+ {
+ return false;
+ }
+
+ public void replicate(Object key)
+ {
+ throw new UnsupportedOperationException("Clustering is not supported by " +
+ getClass().getName());
}
public void start()
Modified: projects/ejb3/branches/cluster-dev/ejb3-cache/src/main/java/org/jboss/ejb3/cache/impl/SimplePassivatingCache.java
===================================================================
--- projects/ejb3/branches/cluster-dev/ejb3-cache/src/main/java/org/jboss/ejb3/cache/impl/SimplePassivatingCache.java 2007-10-08 16:43:21 UTC (rev 65919)
+++ projects/ejb3/branches/cluster-dev/ejb3-cache/src/main/java/org/jboss/ejb3/cache/impl/SimplePassivatingCache.java 2007-10-08 17:20:58 UTC (rev 65920)
@@ -39,7 +39,7 @@
* Comment
*
* @author <a href="mailto:carlo.dewolf at jboss.com">Carlo de Wolf</a>
- * @version $Revision: $
+ * @version $Revision$
*/
public class SimplePassivatingCache<T extends Identifiable & Serializable> implements PassivatingCache<T>
{
@@ -140,6 +140,17 @@
this.cache = new HashMap<Object, Entry>();
}
+ public boolean isClustered()
+ {
+ return false;
+ }
+
+ public void replicate(Object key)
+ {
+ throw new UnsupportedOperationException("Clustering is not supported by " +
+ getClass().getName());
+ }
+
public T create(Class<?>[] initTypes, Object[] initValues)
{
T obj = factory.create(initTypes, initValues);
Modified: projects/ejb3/branches/cluster-dev/ejb3-cache/src/test/java/org/jboss/ejb3/test/grouped/GroupedPassivatingUnitTestCache.java
===================================================================
--- projects/ejb3/branches/cluster-dev/ejb3-cache/src/test/java/org/jboss/ejb3/test/grouped/GroupedPassivatingUnitTestCache.java 2007-10-08 16:43:21 UTC (rev 65919)
+++ projects/ejb3/branches/cluster-dev/ejb3-cache/src/test/java/org/jboss/ejb3/test/grouped/GroupedPassivatingUnitTestCache.java 2007-10-08 17:20:58 UTC (rev 65920)
@@ -27,9 +27,9 @@
import org.jboss.ejb3.cache.PassivationManager;
import org.jboss.ejb3.cache.StatefulObjectFactory;
-import org.jboss.ejb3.cache.grouped.PassivationGroup;
+import org.jboss.ejb3.cache.grouped.SerializationGroup;
import org.jboss.ejb3.cache.impl.FileObjectStore;
-import org.jboss.ejb3.cache.impl.PassivationGroupContainer;
+import org.jboss.ejb3.cache.impl.SerializationGroupContainer;
import org.jboss.ejb3.cache.impl.SimplePassivatingCache;
import org.jboss.logging.Logger;
@@ -37,7 +37,7 @@
* Comment
*
* @author <a href="mailto:carlo.dewolf at jboss.com">Carlo de Wolf</a>
- * @version $Revision: $
+ * @version $Revision$
*/
public class GroupedPassivatingUnitTestCache extends TestCase
{
@@ -57,13 +57,13 @@
public void test1()
{
- PassivationGroupContainer container = new PassivationGroupContainer();
- StatefulObjectFactory<PassivationGroup> factory = container;
- PassivationManager<PassivationGroup> passivationManager = container;
- FileObjectStore<PassivationGroup> store = new FileObjectStore<PassivationGroup>();
+ SerializationGroupContainer container = new SerializationGroupContainer();
+ StatefulObjectFactory<SerializationGroup> factory = container;
+ PassivationManager<SerializationGroup> passivationManager = container;
+ FileObjectStore<SerializationGroup> store = new FileObjectStore<SerializationGroup>();
store.setStorageDirectory("./target/tmp/groups");
store.start();
- SimplePassivatingCache<PassivationGroup> groupCache = new SimplePassivatingCache<PassivationGroup>(factory, passivationManager, store);
+ SimplePassivatingCache<SerializationGroup> groupCache = new SimplePassivatingCache<SerializationGroup>(factory, passivationManager, store);
groupCache.setName("PassivationGroupContainer");
groupCache.setSessionTimeout(0);
groupCache.start();
@@ -83,7 +83,7 @@
ctx2.shared = shared;
// TODO: how will passivation groups be created?
- PassivationGroup group = groupCache.create(null, null);
+ SerializationGroup group = groupCache.create(null, null);
container1.getCache().setGroup(ctx1, group);
container2.getCache().setGroup(ctx2, group);
// TODO: currently we need to release the group
Modified: projects/ejb3/branches/cluster-dev/ejb3-cache/src/test/java/org/jboss/ejb3/test/grouped/MockBeanContainer.java
===================================================================
--- projects/ejb3/branches/cluster-dev/ejb3-cache/src/test/java/org/jboss/ejb3/test/grouped/MockBeanContainer.java 2007-10-08 16:43:21 UTC (rev 65919)
+++ projects/ejb3/branches/cluster-dev/ejb3-cache/src/test/java/org/jboss/ejb3/test/grouped/MockBeanContainer.java 2007-10-08 17:20:58 UTC (rev 65920)
@@ -25,7 +25,7 @@
import org.jboss.ejb3.cache.PassivationManager;
import org.jboss.ejb3.cache.StatefulObjectFactory;
import org.jboss.ejb3.cache.grouped.GroupedPassivatingCache;
-import org.jboss.ejb3.cache.grouped.PassivationGroup;
+import org.jboss.ejb3.cache.grouped.SerializationGroup;
import org.jboss.ejb3.cache.impl.FileObjectStore;
import org.jboss.ejb3.cache.impl.GroupedPassivatingCacheImpl;
import org.jboss.logging.Logger;
@@ -34,7 +34,7 @@
* Comment
*
* @author <a href="mailto:carlo.dewolf at jboss.com">Carlo de Wolf</a>
- * @version $Revision: $
+ * @version $Revision$
*/
public class MockBeanContainer implements StatefulObjectFactory<MockBeanContext>, PassivationManager<MockBeanContext>
{
@@ -45,7 +45,7 @@
private GroupedPassivatingCache<MockBeanContext> cache;
- public MockBeanContainer(String name, int sessionTimeout, PassivatingCache<PassivationGroup> groupCache)
+ public MockBeanContainer(String name, int sessionTimeout, PassivatingCache<SerializationGroup> groupCache)
{
FileObjectStore<MockBeanContext> store = new FileObjectStore<MockBeanContext>();
store.setStorageDirectory("./target/tmp/" + name);
@@ -94,4 +94,20 @@
notifyAll();
}
}
+ public boolean isClustered()
+ {
+ // TODO Auto-generated method stub
+ return false;
}
+ public void postReplicate(MockBeanContext obj)
+ {
+ throw new UnsupportedOperationException("Clustering not supported");
+ }
+
+ public void preReplicate(MockBeanContext obj)
+ {
+ throw new UnsupportedOperationException("Clustering not supported");
+ }
+
+
+}
Modified: projects/ejb3/branches/cluster-dev/ejb3-cache/src/test/java/org/jboss/ejb3/test/passivation/MockBeanContainer.java
===================================================================
--- projects/ejb3/branches/cluster-dev/ejb3-cache/src/test/java/org/jboss/ejb3/test/passivation/MockBeanContainer.java 2007-10-08 16:43:21 UTC (rev 65919)
+++ projects/ejb3/branches/cluster-dev/ejb3-cache/src/test/java/org/jboss/ejb3/test/passivation/MockBeanContainer.java 2007-10-08 17:20:58 UTC (rev 65920)
@@ -29,7 +29,7 @@
* Comment
*
* @author <a href="mailto:carlo.dewolf at jboss.com">Carlo de Wolf</a>
- * @version $Revision: $
+ * @version $Revision$
*/
public class MockBeanContainer implements StatefulObjectFactory<MockBeanContext>, PassivationManager<MockBeanContext>
{
@@ -66,4 +66,18 @@
notifyAll();
}
}
+ public boolean isClustered()
+ {
+ // TODO Auto-generated method stub
+ return false;
}
+ public void postReplicate(MockBeanContext obj)
+ {
+ throw new UnsupportedOperationException("Clustering not supported");
+ }
+
+ public void preReplicate(MockBeanContext obj)
+ {
+ throw new UnsupportedOperationException("Clustering not supported");
+ }
+}
More information about the jboss-cvs-commits
mailing list