[jboss-cvs] JBossAS SVN: r72227 - trunk/server/src/main/org/jboss/deployment.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Tue Apr 15 09:16:45 EDT 2008


Author: alex.loubyansky at jboss.com
Date: 2008-04-15 09:16:45 -0400 (Tue, 15 Apr 2008)
New Revision: 72227

Modified:
   trunk/server/src/main/org/jboss/deployment/AppParsingDeployer.java
Log:
JBAS-5445; tests for the app client and connector still need to be added and the web-app tests and alt-dd-related code should be reviewed

Modified: trunk/server/src/main/org/jboss/deployment/AppParsingDeployer.java
===================================================================
--- trunk/server/src/main/org/jboss/deployment/AppParsingDeployer.java	2008-04-15 13:13:22 UTC (rev 72226)
+++ trunk/server/src/main/org/jboss/deployment/AppParsingDeployer.java	2008-04-15 13:16:45 UTC (rev 72227)
@@ -21,8 +21,17 @@
  */
 package org.jboss.deployment;
 
+import java.util.List;
+
+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.client.spec.ApplicationClientMetaData;
 import org.jboss.metadata.ear.spec.EarMetaData;
+import org.jboss.metadata.ear.spec.ModuleMetaData;
+import org.jboss.metadata.ejb.spec.EjbJarMetaData;
+import org.jboss.metadata.web.spec.WebMetaData;
+import org.jboss.virtual.VirtualFile;
 
 
 /**
@@ -64,4 +73,41 @@
       setName(appXmlPath);
    }
 
+   protected EarMetaData parse(VFSDeploymentUnit unit, VirtualFile file, EarMetaData root) throws Exception
+   {
+      EarMetaData ear = super.parse(unit,file, root);
+      List<DeploymentUnit> children = unit.getChildren();
+      if(children != null)
+      {
+         for(DeploymentUnit child : children)
+         {
+            String moduleName = child.getSimpleName();
+            ModuleMetaData module = ear.getModules().get(moduleName);
+            if(module != null && module.getAlternativeDD() != null)
+            {
+               VirtualFile altDDFile = unit.getRoot().getChild(module.getAlternativeDD());
+               if(altDDFile == null)
+                  throw new IllegalStateException("Failed to locate alternative DD '" + module.getAlternativeDD() + "' in " + unit.getRoot().getPathName());
+               
+               String attachmentName;
+               if(module.getType() == ModuleMetaData.ModuleType.Ejb)
+                  attachmentName = EjbJarMetaData.class.getName();
+               else if(module.getType() == ModuleMetaData.ModuleType.Web)
+                  attachmentName = WebMetaData.class.getName();
+               else if(module.getType() == ModuleMetaData.ModuleType.Client)
+                  attachmentName = ApplicationClientMetaData.class.getName();
+               else if(module.getType() == ModuleMetaData.ModuleType.Connector)
+                  attachmentName = "org.jboss.resource.metadata.mcf.ManagedConnectionFactoryDeploymentGroup";
+               else
+                  throw new IllegalStateException("Expected module types in an EAR are ejb, web, java and connector but got " + module.getType() + " for " + child.getName() + " in " + unit.getName());
+               
+               child.addAttachment(attachmentName + ".altDD", altDDFile);
+               if(log.isTraceEnabled())
+                  log.trace("attached alt-dd " + altDDFile + " for module " + child.getSimpleName());
+            }
+         }
+      }
+      
+      return ear;
+   }
 }




More information about the jboss-cvs-commits mailing list