[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