[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