[jboss-cvs] JBossAS SVN: r106187 - in trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer: jndi and 1 other directory.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Sat Jun 19 03:38:41 EDT 2010
Author: marius.bogoevici
Date: 2010-06-19 03:38:40 -0400 (Sat, 19 Jun 2010)
New Revision: 106187
Modified:
trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/env/WeldBootstrapDeployer.java
trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/jndi/JavaEEComponentJndiBinderDeployer.java
Log:
JBAS-8107 partial: Singleton beans are guaranteed to after before Weld is started and BeanManager is registered in JNDI
Modified: trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/env/WeldBootstrapDeployer.java
===================================================================
--- trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/env/WeldBootstrapDeployer.java 2010-06-19 00:20:57 UTC (rev 106186)
+++ trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/env/WeldBootstrapDeployer.java 2010-06-19 07:38:40 UTC (rev 106187)
@@ -84,7 +84,7 @@
install.addParameterMetaData(Object.class.getName(), bootstrapName);
install.addParameterMetaData(Iterable.class.getName(), bootstrap.createInject(ejbServicesValue.getUnderlyingValue(), "ejbContainerNames"));
install.addParameterMetaData(String.class.getName(), "Start");
- install.addParameterMetaData(String.class.getName(), "Start");
+ install.addParameterMetaData(String.class.getName(), "Create");
unit.addAttachment(DeployersUtils.getBootstrapBeanAttachmentName(unit), bootstrap.getBeanMetaData());
Modified: trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/jndi/JavaEEComponentJndiBinderDeployer.java
===================================================================
--- trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/jndi/JavaEEComponentJndiBinderDeployer.java 2010-06-19 00:20:57 UTC (rev 106186)
+++ trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/jndi/JavaEEComponentJndiBinderDeployer.java 2010-06-19 07:38:40 UTC (rev 106187)
@@ -21,13 +21,20 @@
*/
package org.jboss.weld.integration.deployer.jndi;
+import java.util.HashSet;
+import java.util.Set;
+
+import org.jboss.beans.metadata.plugins.AbstractBeanMetaData;
+import org.jboss.beans.metadata.plugins.AbstractDependencyMetaData;
import org.jboss.beans.metadata.plugins.AbstractInjectionValueMetaData;
import org.jboss.beans.metadata.spi.BeanMetaData;
+import org.jboss.beans.metadata.spi.DependencyMetaData;
import org.jboss.beans.metadata.spi.builder.BeanMetaDataBuilder;
import org.jboss.deployers.spi.DeploymentException;
import org.jboss.deployers.spi.deployer.helpers.AbstractSimpleRealDeployer;
import org.jboss.deployers.structure.spi.DeploymentUnit;
import org.jboss.metadata.ejb.jboss.JBossEnterpriseBeanMetaData;
+import org.jboss.metadata.ejb.jboss.JBossSessionBean31MetaData;
import org.jboss.reloaded.naming.deployers.javaee.JavaEEComponentInformer;
import org.jboss.reloaded.naming.spi.JavaEEComponent;
import org.jboss.weld.integration.deployer.DeployersUtils;
@@ -59,7 +66,26 @@
if (informer.getModuleType(deploymentUnit).equals(org.jboss.reloaded.naming.deployers.javaee.JavaEEModuleInformer.ModuleType.EJB))
{
- BeanMetaDataBuilder builder = BeanMetaDataBuilder.createBuilder(deploymentUnit.getName() + "_CompJndiBinder", JavaEEComponentJndiBinder.class.getName());
+ if (jBossEnterpriseBeanMetaData instanceof JBossSessionBean31MetaData &&
+ ((JBossSessionBean31MetaData)jBossEnterpriseBeanMetaData).isSingleton())
+ {
+ String containerName = jBossEnterpriseBeanMetaData.getContainerName() == null ?
+ jBossEnterpriseBeanMetaData.getGeneratedContainerName() :
+ jBossEnterpriseBeanMetaData.getContainerName();
+
+ AbstractBeanMetaData beanMetaData = (AbstractBeanMetaData) deploymentUnit.getParent().getAttachment(BeanMetaData.class + ":" + containerName, BeanMetaData.class);
+ Set<DependencyMetaData> dependencyMetaDatas = beanMetaData.getDepends();
+ if (null == dependencyMetaDatas)
+ {
+ dependencyMetaDatas = new HashSet<DependencyMetaData>();
+ beanMetaData.setDepends(dependencyMetaDatas);
+ }
+
+ dependencyMetaDatas.add(new AbstractDependencyMetaData(getJndiBinderName(deploymentUnit)));
+ dependencyMetaDatas.add(new AbstractDependencyMetaData(DeployersUtils.getBootstrapBeanName(deploymentUnit)));
+ }
+
+ BeanMetaDataBuilder builder = BeanMetaDataBuilder.createBuilder(getJndiBinderName(deploymentUnit), JavaEEComponentJndiBinder.class.getName());
AbstractInjectionValueMetaData javaComponent = new AbstractInjectionValueMetaData(getComponentBeanName(deploymentUnit));
builder.addConstructorParameter(JavaEEComponent.class.getName(), javaComponent);
builder.addConstructorParameter(String.class.getName(), deploymentUnit.getName());
@@ -68,6 +94,11 @@
}
}
+ private String getJndiBinderName(DeploymentUnit deploymentUnit)
+ {
+ return deploymentUnit.getName() + "_CompJndiBinder";
+ }
+
private BeanMetaData getBootstrapBeanAttachment(DeploymentUnit deploymentUnit)
{
String bootstrapName = DeployersUtils.getBootstrapBeanName(deploymentUnit.getTopLevel());
More information about the jboss-cvs-commits
mailing list