[jboss-cvs] JBossAS SVN: r62705 - in branches/Branch_4_2/ejb3/src/main/org/jboss/ejb3: cache/tree and 1 other directory.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Tue May 1 16:45:20 EDT 2007


Author: bstansberry at jboss.com
Date: 2007-05-01 16:45:20 -0400 (Tue, 01 May 2007)
New Revision: 62705

Modified:
   branches/Branch_4_2/ejb3/src/main/org/jboss/ejb3/EJBContainer.java
   branches/Branch_4_2/ejb3/src/main/org/jboss/ejb3/cache/tree/StatefulTreeCache.java
Log:
[EJBTHREE-946] Use deployment-qualified EJB name to properly segregate SFSB cache

Modified: branches/Branch_4_2/ejb3/src/main/org/jboss/ejb3/EJBContainer.java
===================================================================
--- branches/Branch_4_2/ejb3/src/main/org/jboss/ejb3/EJBContainer.java	2007-05-01 20:16:04 UTC (rev 62704)
+++ branches/Branch_4_2/ejb3/src/main/org/jboss/ejb3/EJBContainer.java	2007-05-01 20:45:20 UTC (rev 62705)
@@ -185,7 +185,7 @@
          throw new RuntimeException(e);
       }
       this.ejbName = ejbName;
-      String on = Ejb3Module.BASE_EJB3_JMX_NAME + deployment.getScopeKernelName() + ",name=" + ejbName;
+      String on = Ejb3Module.BASE_EJB3_JMX_NAME + "," + getDeploymentQualifiedName();
       try
       {
          objectName = new ObjectName(on);
@@ -271,6 +271,31 @@
 //      return getDeploymentUnit().getRootFile();
 //   }
    
+   /**
+    * Returns a String identifier for this bean that is qualified by the
+    * deployment, and hence should be unique across deployments. Name is of the 
+    * form "ear=foo.ear,jar=foo.jar,name=Bar", where "Bar" is the value 
+    * returned by {@link #getEjbName()}. The "ear=foo.ear" portion is ommitted 
+    * if the bean is not packaged in an ear.
+    */
+   public String getDeploymentQualifiedName()
+   {
+      DeploymentScope ear = deployment.getEar();
+      DeploymentUnit unit = deployment.getDeploymentUnit();
+      StringBuilder sb = new StringBuilder();
+      if (ear != null)
+      {
+         sb.append("ear=");
+         sb.append(ear.getShortName());
+         sb.append(",");
+      }
+      sb.append("jar=");
+      sb.append(unit.getShortName());
+      sb.append(",name=");
+      sb.append(getEjbName());
+      return sb.toString();
+   }
+   
    public DeploymentUnit getDeploymentUnit()
    {
       return deployment.getDeploymentUnit();

Modified: branches/Branch_4_2/ejb3/src/main/org/jboss/ejb3/cache/tree/StatefulTreeCache.java
===================================================================
--- branches/Branch_4_2/ejb3/src/main/org/jboss/ejb3/cache/tree/StatefulTreeCache.java	2007-05-01 20:16:04 UTC (rev 62704)
+++ branches/Branch_4_2/ejb3/src/main/org/jboss/ejb3/cache/tree/StatefulTreeCache.java	2007-05-01 20:45:20 UTC (rev 62705)
@@ -44,7 +44,10 @@
 import org.jboss.cache.TreeCache;
 import org.jboss.cache.TreeCacheMBean;
 import org.jboss.ejb3.Container;
+import org.jboss.ejb3.DeploymentScope;
+import org.jboss.ejb3.DeploymentUnit;
 import org.jboss.ejb3.EJBContainer;
+import org.jboss.ejb3.Ejb3Deployment;
 import org.jboss.ejb3.Pool;
 import org.jboss.ejb3.cache.ClusteredStatefulCache;
 import org.jboss.ejb3.stateful.NestedStatefulBeanContext;
@@ -106,7 +109,7 @@
    protected RemovalTimeoutTask removalTask = null;
    protected boolean running = true;
    protected Map<Object, Long> beans = new ConcurrentHashMap<Object, Long>();
-   protected Container container;
+   protected EJBContainer container;
 
    public StatefulBeanContext create()
    {
@@ -290,9 +293,9 @@
    {
       log = Logger.getLogger(getClass().getName() + "." + container.getEjbName());
       
-      this.container = container;
+      this.container = (EJBContainer) container;
       this.pool = container.getPool();
-      ClassLoader cl = ((EJBContainer) container).getClassloader();
+      ClassLoader cl = this.container.getClassloader();
       this.classloader = new WeakReference<ClassLoader>(cl);
       
       Advisor advisor = (Advisor) container;
@@ -301,9 +304,9 @@
       ObjectName cacheON = new ObjectName(config.name());
       TreeCacheMBean mbean = (TreeCacheMBean) MBeanProxyExt.create(TreeCacheMBean.class, cacheON, server);
       cache = (TreeCache) mbean.getInstance();
+      
+      cacheNode = new Fqn(new Object[] { this.container.getDeploymentQualifiedName() });
 
-      cacheNode = Fqn.fromString("/" + container.getEjbName() + "/");
-
       // Try to create an eviction region per ejb
       evictRegionManager = cache.getEvictionRegionManager();
       Element element = getElementConfig(cacheNode.toString(), config.idleTimeoutSeconds(),




More information about the jboss-cvs-commits mailing list