[jboss-cvs] JBossAS SVN: r66384 - trunk/server/src/main/org/jboss/deployment.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Wed Oct 24 08:36:56 EDT 2007
Author: thomas.diesler at jboss.com
Date: 2007-10-24 08:36:56 -0400 (Wed, 24 Oct 2007)
New Revision: 66384
Modified:
trunk/server/src/main/org/jboss/deployment/JBossEjbParsingDeployer.java
trunk/server/src/main/org/jboss/deployment/JBossWebAppParsingDeployer.java
Log:
Make sure we always have a JBossMetaData object attached, even if there is no jboss.xml in the deployment
Modified: trunk/server/src/main/org/jboss/deployment/JBossEjbParsingDeployer.java
===================================================================
--- trunk/server/src/main/org/jboss/deployment/JBossEjbParsingDeployer.java 2007-10-24 12:19:47 UTC (rev 66383)
+++ trunk/server/src/main/org/jboss/deployment/JBossEjbParsingDeployer.java 2007-10-24 12:36:56 UTC (rev 66384)
@@ -21,10 +21,14 @@
*/
package org.jboss.deployment;
+import java.net.URL;
+
import org.jboss.deployers.spi.DeploymentException;
+import org.jboss.deployers.structure.spi.DeploymentUnit;
import org.jboss.deployers.vfs.spi.deployer.SchemaResolverDeployer;
import org.jboss.deployers.vfs.spi.structure.VFSDeploymentUnit;
import org.jboss.metadata.ApplicationMetaData;
+import org.jboss.metadata.ejb.jboss.JBossEnterpriseBeansMetaData;
import org.jboss.metadata.ejb.jboss.JBossMetaData;
import org.jboss.metadata.ejb.jboss.JBossMetaDataWrapper;
import org.jboss.metadata.ejb.spec.EjbJarMetaData;
@@ -72,37 +76,70 @@
* override.
*/
@Override
- protected JBossMetaData parse(VFSDeploymentUnit unit, VirtualFile file, JBossMetaData root)
- throws Exception
+ protected JBossMetaData parse(VFSDeploymentUnit unit, VirtualFile file, JBossMetaData root) throws Exception
{
// Wolf: hack to get to old EJB3 deployer, once that one is gone
// this should be removed.
// FIXME: unify the deployers (JBAS-4506)
{
EjbJarMetaData ejbJar = unit.getAttachment(EjbJarMetaData.class);
- if(ejbJar == null || ejbJar.isEJB3x())
+ if (ejbJar == null || ejbJar.isEJB3x())
return null;
}
-
+
JBossMetaData metaData = super.parse(unit, file, root);
// Delegate to any spec ejb-jar metadata
EjbJarMetaData specMetaData = unit.getAttachment(EjbJarMetaData.class);
if (specMetaData != null)
metaData.setOverridenMetaData(specMetaData);
+
// Wrap in the standardjboss.xml
+ JBossMetaDataWrapper wrapper = new JBossMetaDataWrapper(metaData, getStandardMetaData(unit));
+ return wrapper;
+ }
+
+ private JBossMetaData getStandardMetaData(VFSDeploymentUnit unit) throws DeploymentException
+ {
if (standardMetaData == null)
{
- String configPath = System.getProperty(ServerConfig.SERVER_CONFIG_URL);
- java.net.URL configUrl = new java.net.URL(configPath);
- VirtualFile stdJBoss = VFS.getVirtualFile(configUrl, "standardjboss.xml");
- if(stdJBoss == null)
+ try
{
- throw new DeploymentException("standardjboss.xml not found in config dir: " + configPath);
+ String configPath = System.getProperty(ServerConfig.SERVER_CONFIG_URL);
+ URL configUrl = new URL(configPath);
+ VirtualFile stdJBoss = VFS.getVirtualFile(configUrl, "standardjboss.xml");
+ if (stdJBoss == null)
+ {
+ throw new DeploymentException("standardjboss.xml not found in config dir: " + configPath);
+ }
+ standardMetaData = super.parse(unit, stdJBoss, null);
}
- standardMetaData = super.parse(unit, stdJBoss, null);
+ catch (Exception ex)
+ {
+ DeploymentException.rethrowAsDeploymentException(ex.getMessage(), ex);
+ }
}
- JBossMetaDataWrapper wrapper = new JBossMetaDataWrapper(metaData, standardMetaData);
- return wrapper;
+ return standardMetaData;
}
+ /**
+ * Make sure we always have a JBossMetaData object attached, even if there is no jboss.xml
+ * in the deployment
+ */
+ @Override
+ protected void createMetaData(DeploymentUnit unit, String name, String suffix, String key) throws DeploymentException
+ {
+ super.createMetaData(unit, name, suffix, key);
+
+ EjbJarMetaData ejbmd = unit.getTransientManagedObjects().getAttachment(EjbJarMetaData.class);
+ JBossMetaData result = unit.getTransientManagedObjects().getAttachment(getOutput());
+ if (result == null && ejbmd != null && unit instanceof VFSDeploymentUnit)
+ {
+ result = new JBossMetaDataWrapper(new JBossMetaData(), getStandardMetaData((VFSDeploymentUnit)unit));
+ result.setOverridenMetaData(ejbmd);
+ JBossEnterpriseBeansMetaData jbBeans = new JBossEnterpriseBeansMetaData();
+ jbBeans.setOverridenMetaData(ejbmd.getEnterpriseBeans());
+ result.setEnterpriseBeans(jbBeans);
+ unit.getTransientManagedObjects().addAttachment(key, result, getOutput());
+ }
+ }
}
Modified: trunk/server/src/main/org/jboss/deployment/JBossWebAppParsingDeployer.java
===================================================================
--- trunk/server/src/main/org/jboss/deployment/JBossWebAppParsingDeployer.java 2007-10-24 12:19:47 UTC (rev 66383)
+++ trunk/server/src/main/org/jboss/deployment/JBossWebAppParsingDeployer.java 2007-10-24 12:36:56 UTC (rev 66384)
@@ -26,9 +26,7 @@
import javax.management.ObjectName;
import org.jboss.deployers.spi.DeploymentException;
-import org.jboss.deployers.spi.deployer.helpers.AttachmentLocator;
import org.jboss.deployers.structure.spi.DeploymentUnit;
-import org.jboss.deployers.vfs.spi.deployer.ObjectModelFactoryDeployer;
import org.jboss.deployers.vfs.spi.deployer.SchemaResolverDeployer;
import org.jboss.deployers.vfs.spi.structure.VFSDeploymentUnit;
import org.jboss.metadata.common.jboss.LoaderRepositoryConfigMetaData;
@@ -37,7 +35,6 @@
import org.jboss.metadata.web.spec.WebMetaData;
import org.jboss.mx.loading.LoaderRepositoryFactory.LoaderRepositoryConfig;
import org.jboss.virtual.VirtualFile;
-import org.jboss.xb.binding.ObjectModelFactory;
/**
* An ObjectModelFactoryDeployer for translating jboss-web.xml descriptors into
@@ -133,9 +130,7 @@
{
result = new JBossWebMetaData();
result.setOverridenMetaData(wmd);
+ unit.getTransientManagedObjects().addAttachment(key, result, getOutput());
}
-
- // Register it
- unit.getTransientManagedObjects().addAttachment(key, result, getOutput());
}
}
More information about the jboss-cvs-commits
mailing list