[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