[jboss-cvs] JBossAS SVN: r99287 - in projects/reloaded/trunk/naming-deployers/src: main/java/org/jboss/reloaded/naming/deployers/mc and 1 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Tue Jan 12 10:39:10 EST 2010
Author: wolfc
Date: 2010-01-12 10:39:10 -0500 (Tue, 12 Jan 2010)
New Revision: 99287
Modified:
projects/reloaded/trunk/naming-deployers/src/main/java/org/jboss/reloaded/naming/deployers/AppNamingDeployer.java
projects/reloaded/trunk/naming-deployers/src/main/java/org/jboss/reloaded/naming/deployers/ComponentNamingDeployer.java
projects/reloaded/trunk/naming-deployers/src/main/java/org/jboss/reloaded/naming/deployers/ModuleNamingDeployer.java
projects/reloaded/trunk/naming-deployers/src/main/java/org/jboss/reloaded/naming/deployers/mc/MCJavaEEModule.java
projects/reloaded/trunk/naming-deployers/src/test/java/org/jboss/reloaded/naming/deployers/test/simple/SimpleTestCase.java
Log:
RELOADED-12: install uniquely named MC beans (because BeanMetaDataDeployer.undeploy doesn't take scope into account)
Modified: projects/reloaded/trunk/naming-deployers/src/main/java/org/jboss/reloaded/naming/deployers/AppNamingDeployer.java
===================================================================
--- projects/reloaded/trunk/naming-deployers/src/main/java/org/jboss/reloaded/naming/deployers/AppNamingDeployer.java 2010-01-12 15:24:50 UTC (rev 99286)
+++ projects/reloaded/trunk/naming-deployers/src/main/java/org/jboss/reloaded/naming/deployers/AppNamingDeployer.java 2010-01-12 15:39:10 UTC (rev 99287)
@@ -64,9 +64,12 @@
return;
String appName = informer.getApplicationName(deploymentUnit);
- BeanMetaDataBuilder builder = BeanMetaDataBuilderFactory.createBuilder("java:app", MCJavaEEApplication.class.getName())
+ // because BeanMetaDataDeployer.undeploy needs an unique name
+ String name = "jboss.naming:application=" + appName;
+ BeanMetaDataBuilder builder = BeanMetaDataBuilderFactory.createBuilder(name, MCJavaEEApplication.class.getName())
.addAnnotation(annotation(ApplicationScope.class, appName))
- .addConstructorParameter(String.class.getName(), appName);
+ .addConstructorParameter(String.class.getName(), appName)
+ .addAlias("java:app");
builder.addPropertyMetaData("nameSpaces", builder.createInject("NameSpaces"));
deploymentUnit.addAttachment("java:app:" + BeanMetaData.class, builder.getBeanMetaData());
}
Modified: projects/reloaded/trunk/naming-deployers/src/main/java/org/jboss/reloaded/naming/deployers/ComponentNamingDeployer.java
===================================================================
--- projects/reloaded/trunk/naming-deployers/src/main/java/org/jboss/reloaded/naming/deployers/ComponentNamingDeployer.java 2010-01-12 15:24:50 UTC (rev 99286)
+++ projects/reloaded/trunk/naming-deployers/src/main/java/org/jboss/reloaded/naming/deployers/ComponentNamingDeployer.java 2010-01-12 15:39:10 UTC (rev 99287)
@@ -64,13 +64,18 @@
String appName = informer.getApplicationName(unit);
String moduleName = informer.getModulePath(unit);
- String name = informer.getComponentName(unit);
+ String componentName = informer.getComponentName(unit);
// create JavaEEModule bean
- BeanMetaDataBuilder builder = BeanMetaDataBuilderFactory.createBuilder("java:comp", MCJavaEEComponent.class.getName())
+ String name = "jboss.naming:";
+ if(appName != null)
+ name += "application=" + appName + ",";
+ name += "module=" + moduleName + ",component=" + componentName;
+ BeanMetaDataBuilder builder = BeanMetaDataBuilderFactory.createBuilder(name, MCJavaEEComponent.class.getName())
.addAnnotation(annotation(DeploymentScope.class, moduleName))
- .addAnnotation(annotation(InstanceScope.class, name))
- .addConstructorParameter(String.class.getName(), name);
+ .addAnnotation(annotation(InstanceScope.class, componentName))
+ .addConstructorParameter(String.class.getName(), componentName)
+ .addAlias("java:comp");
if(appName != null)
builder.addAnnotation(annotation(ApplicationScope.class, appName));
AbstractInjectionValueMetaData javaModule = new AbstractInjectionValueMetaData("java:module");
@@ -79,7 +84,7 @@
builder.addPropertyMetaData("nameSpaces", builder.createInject("NameSpaces"));
// VDF can't do component composition, so each BMD must be in a separate component
- DeploymentUnit component = unit.getParent().addComponent(name + ".java:comp");
+ DeploymentUnit component = unit.getParent().addComponent(componentName + ".java:comp");
component.addAttachment(BeanMetaData.class, builder.getBeanMetaData());
}
Modified: projects/reloaded/trunk/naming-deployers/src/main/java/org/jboss/reloaded/naming/deployers/ModuleNamingDeployer.java
===================================================================
--- projects/reloaded/trunk/naming-deployers/src/main/java/org/jboss/reloaded/naming/deployers/ModuleNamingDeployer.java 2010-01-12 15:24:50 UTC (rev 99286)
+++ projects/reloaded/trunk/naming-deployers/src/main/java/org/jboss/reloaded/naming/deployers/ModuleNamingDeployer.java 2010-01-12 15:39:10 UTC (rev 99287)
@@ -68,13 +68,18 @@
// appName is either the name of the JavaEE application or null for a stand-alone JavaEE module
String appName = informer.getApplicationName(unit);
- String name = informer.getModulePath(unit);
+ String moduleName = informer.getModulePath(unit);
// create JavaEEModule bean
- BeanMetaDataBuilder builder = BeanMetaDataBuilderFactory.createBuilder("java:module", MCJavaEEModule.class.getName())
- .addAnnotation(annotation(DeploymentScope.class, name))
- .addConstructorParameter(String.class.getName(), name);
+ String name = "jboss.naming:";
if(appName != null)
+ name += "application=" + appName + ",";
+ name += "module=" + moduleName;
+ BeanMetaDataBuilder builder = BeanMetaDataBuilderFactory.createBuilder(name, MCJavaEEModule.class.getName())
+ .addAnnotation(annotation(DeploymentScope.class, moduleName))
+ .addConstructorParameter(String.class.getName(), moduleName)
+ .addAlias("java:module");
+ if(appName != null)
{
builder.addAnnotation(annotation(ApplicationScope.class, appName));
AbstractInjectionValueMetaData javaApp = new AbstractInjectionValueMetaData("java:app");
Modified: projects/reloaded/trunk/naming-deployers/src/main/java/org/jboss/reloaded/naming/deployers/mc/MCJavaEEModule.java
===================================================================
--- projects/reloaded/trunk/naming-deployers/src/main/java/org/jboss/reloaded/naming/deployers/mc/MCJavaEEModule.java 2010-01-12 15:24:50 UTC (rev 99286)
+++ projects/reloaded/trunk/naming-deployers/src/main/java/org/jboss/reloaded/naming/deployers/mc/MCJavaEEModule.java 2010-01-12 15:39:10 UTC (rev 99287)
@@ -54,7 +54,7 @@
{
parentContext = (application != null ? application.getContext() : nameSpaces.getGlobalContext());
context = Util.createSubcontext(parentContext, name);
- log.debug("Installed context " + context + " for JavaEE module " + name + ", parentContext = " + parentContext);
+ log.debug("Installed context " + context + " for JavaEE module " + name + ", application = " + application + ", parentContext = " + parentContext);
}
@Override
Modified: projects/reloaded/trunk/naming-deployers/src/test/java/org/jboss/reloaded/naming/deployers/test/simple/SimpleTestCase.java
===================================================================
--- projects/reloaded/trunk/naming-deployers/src/test/java/org/jboss/reloaded/naming/deployers/test/simple/SimpleTestCase.java 2010-01-12 15:24:50 UTC (rev 99286)
+++ projects/reloaded/trunk/naming-deployers/src/test/java/org/jboss/reloaded/naming/deployers/test/simple/SimpleTestCase.java 2010-01-12 15:39:10 UTC (rev 99287)
@@ -244,6 +244,36 @@
assertNameNotFound("java:global/standalone");
}
+ // make sure we don't undeploy the wrong module (because of BeanMetaDataDeployer.undeploy ignoring scope)
+ @Test
+ public void testStandaloneModule2() throws Exception
+ {
+ AssembledDirectory root1 = AssembledDirectory.createAssembledDirectory("standalone1", "standalone1.jar");
+ VFSDeployment deployment1 = new AbstractVFSDeployment(root1);
+ mainDeployer.deploy(deployment1);
+
+ AssembledDirectory root2 = AssembledDirectory.createAssembledDirectory("standalone2", "standalone2.jar");
+ VFSDeployment deployment2 = new AbstractVFSDeployment(root2);
+ mainDeployer.deploy(deployment2);
+
+ // basically the lookup is what really checks the functionality, not null is a bonus
+ assertNotNull(ctx.lookup("java:global/standalone1"));
+ assertNotNull(ctx.lookup("java:global/standalone2"));
+
+ mainDeployer.undeploy(deployment2);
+
+// assertNotNull(ctx.lookup("java:global/standalone1"));
+// assertNameNotFound("java:global/standalone2");
+
+ mainDeployer.deploy(deployment2);
+
+ assertNotNull(ctx.lookup("java:global/standalone1"));
+ assertNotNull(ctx.lookup("java:global/standalone2"));
+
+ mainDeployer.undeploy(deployment1);
+ mainDeployer.undeploy(deployment2);
+ }
+
protected static void validate() throws Exception
{
try
More information about the jboss-cvs-commits
mailing list