[jboss-cvs] JBossAS SVN: r95986 - in trunk/server/src/main/java/org/jboss: web/deployers and 1 other directory.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Tue Nov 3 23:39:21 EST 2009


Author: remy.maucherat at jboss.com
Date: 2009-11-03 23:39:21 -0500 (Tue, 03 Nov 2009)
New Revision: 95986

Modified:
   trunk/server/src/main/java/org/jboss/deployment/WebAppFragmentParsingDeployer.java
   trunk/server/src/main/java/org/jboss/web/deployers/MergedJBossWebMetaDataDeployer.java
Log:
- Persuade SchemaResolverDeployer to parse more than the first found file when a name is specified (rather than a suffix).
- Fix JAR name extraction (which caused the order algorithms to produce incorrect result, correct input is needed).
- Add an additional exception for absolute ordering.

Modified: trunk/server/src/main/java/org/jboss/deployment/WebAppFragmentParsingDeployer.java
===================================================================
--- trunk/server/src/main/java/org/jboss/deployment/WebAppFragmentParsingDeployer.java	2009-11-04 03:40:33 UTC (rev 95985)
+++ trunk/server/src/main/java/org/jboss/deployment/WebAppFragmentParsingDeployer.java	2009-11-04 04:39:21 UTC (rev 95986)
@@ -21,6 +21,10 @@
  */
 package org.jboss.deployment;
 
+import java.util.Set;
+
+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.web.spec.WebFragmentMetaData;
@@ -70,5 +74,30 @@
    {
       unit.addAttachment(file.toURL().toString(), metaData, getOutput());
    }
+   
+   protected void createMetaData(DeploymentUnit unit, Set<String> names, String suffix, String key) throws DeploymentException
+   {
+      // First see whether it already exists
+      WebFragmentMetaData result = getMetaData(unit, key);
+      if (result != null && allowsReparse() == false)
+         return;
 
+      // Create it
+      try
+      {
+         result = parse(unit, getName(), suffix, result);
+      }
+      catch (Exception e)
+      {
+         throw DeploymentException.rethrowAsDeploymentException("Error creating managed object for " + unit.getName(), e);
+      }
+
+      // Doesn't exist
+      if (result == null)
+         return;
+      
+      // Register it
+      unit.getTransientManagedObjects().addAttachment(key, result, getOutput());
+   }
+
 }

Modified: trunk/server/src/main/java/org/jboss/web/deployers/MergedJBossWebMetaDataDeployer.java
===================================================================
--- trunk/server/src/main/java/org/jboss/web/deployers/MergedJBossWebMetaDataDeployer.java	2009-11-04 03:40:33 UTC (rev 95985)
+++ trunk/server/src/main/java/org/jboss/web/deployers/MergedJBossWebMetaDataDeployer.java	2009-11-04 04:39:21 UTC (rev 95986)
@@ -188,6 +188,9 @@
                   if (relativeLocation.startsWith("/WEB-INF/lib/"))
                   {
                      jarName = relativeLocation.substring("/WEB-INF/lib/".length());
+                     pos = jarName.indexOf('/');
+                     if (pos > 0)
+                        jarName = jarName.substring(0, pos);
                   }
                   if (jarName == null)
                   {
@@ -270,19 +273,23 @@
             {
                if (otherPos >= 0) {
                   throw new DeploymentException("Duplicate others in absolute ordering"); 
-              }
-              otherPos = i;
+               }
+               otherPos = i;
             }
             else
             {
+               boolean found = false; 
                for (WebOrdering ordering : orderings)
                {
-                  if (ordering.getName().equals(orderingElementMetaData.getName())) {
+                  if (orderingElementMetaData.getName().equals(ordering.getName())) {
                      order.add(ordering.getJar());
                      jarsSet.remove(ordering.getJar());
+                     found = true;
                      break;
-                 }
+                  }
                }
+               if (!found)
+                  throw new DeploymentException("Could not resolve name in absolute ordering: " + orderingElementMetaData.getName()); 
             }
             i++;
          }




More information about the jboss-cvs-commits mailing list