[jboss-cvs] JBossAS SVN: r61470 - in trunk: system-jmx/src/main/org/jboss/system/deployers and 1 other directory.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Mon Mar 19 18:19:11 EDT 2007


Author: thomas.diesler at jboss.com
Date: 2007-03-19 18:19:11 -0400 (Mon, 19 Mar 2007)
New Revision: 61470

Modified:
   trunk/server/src/main/org/jboss/deployment/AppParsingDeployer.java
   trunk/server/src/main/org/jboss/deployment/JBossAppParsingDeployer.java
   trunk/server/src/main/org/jboss/deployment/JBossApplicationObjectFactory.java
   trunk/system-jmx/src/main/org/jboss/system/deployers/ServiceClassLoaderDeployer.java
Log:
Fix EAR scoping with <loader-repository>

Modified: trunk/server/src/main/org/jboss/deployment/AppParsingDeployer.java
===================================================================
--- trunk/server/src/main/org/jboss/deployment/AppParsingDeployer.java	2007-03-19 21:55:49 UTC (rev 61469)
+++ trunk/server/src/main/org/jboss/deployment/AppParsingDeployer.java	2007-03-19 22:19:11 UTC (rev 61470)
@@ -24,6 +24,7 @@
 import org.jboss.deployers.plugins.deployers.helpers.ObjectModelFactoryDeployer;
 import org.jboss.deployers.spi.DeploymentException;
 import org.jboss.deployers.spi.deployer.DeploymentUnit;
+import org.jboss.mx.loading.LoaderRepositoryFactory.LoaderRepositoryConfig;
 import org.jboss.xb.binding.ObjectModelFactory;
 
 /**
@@ -66,8 +67,8 @@
    }
 
    /**
-    * Return WebMetaDataObjectFactory as our ObjectModelFactory.
-    * @return a new WebMetaDataObjectFactory instance
+    * Return J2eeApplicationObjectFactory as our ObjectModelFactory.
+    * @return a new J2eeApplicationObjectFactory instance
     */
    @Override
    protected ObjectModelFactory getObjectModelFactory(J2eeApplicationMetaData root)
@@ -76,13 +77,12 @@
    }
 
    /**
-    * Overriden to invoke createMetaData(unit, webXmlPath, null) to parse any
-    * webXmlPath descriptor into a WebMetaData instance.
+    * Overriden to invoke createMetaData(unit, appXmlPath, null) to parse any
+    * appXmlPath descriptor into a J2eeApplicationMetaData instance.
     */
    @Override
    public void deploy(DeploymentUnit unit) throws DeploymentException
    {
       createMetaData(unit, appXmlPath, null);
    }
-
 }

Modified: trunk/server/src/main/org/jboss/deployment/JBossAppParsingDeployer.java
===================================================================
--- trunk/server/src/main/org/jboss/deployment/JBossAppParsingDeployer.java	2007-03-19 21:55:49 UTC (rev 61469)
+++ trunk/server/src/main/org/jboss/deployment/JBossAppParsingDeployer.java	2007-03-19 22:19:11 UTC (rev 61470)
@@ -24,6 +24,7 @@
 import org.jboss.deployers.plugins.deployers.helpers.ObjectModelFactoryDeployer;
 import org.jboss.deployers.spi.DeploymentException;
 import org.jboss.deployers.spi.deployer.DeploymentUnit;
+import org.jboss.mx.loading.LoaderRepositoryFactory.LoaderRepositoryConfig;
 import org.jboss.xb.binding.ObjectModelFactory;
 
 /**
@@ -82,8 +83,8 @@
    }
 
    /**
-    * Return J2eeApplicationObjectFactory as our ObjectModelFactory.
-    * @return a new J2eeApplicationObjectFactory instance
+    * Return JBossApplicationObjectFactory as our ObjectModelFactory.
+    * @return a new JBossApplicationObjectFactory instance
     */
    @Override
    protected ObjectModelFactory getObjectModelFactory(J2eeApplicationMetaData root)
@@ -92,13 +93,20 @@
    }
 
    /**
-    * Overriden to invoke createMetaData(unit, webXmlPath, null) to parse any
-    * webXmlPath descriptor into a WebMetaData instance.
+    * Overriden to invoke createMetaData(unit, appXmlPath, null) to parse any
+    * appXmlPath descriptor into a J2eeApplicationMetaData instance.
     */
    @Override
    public void deploy(DeploymentUnit unit) throws DeploymentException
    {
       createMetaData(unit, appXmlPath, null);
+      
+      // Add the loader repository config
+      J2eeApplicationMetaData earMetaData = unit.getAttachment(J2eeApplicationMetaData.class);
+      if (earMetaData != null && earMetaData.getLoaderCfg() != null)
+      {
+         LoaderRepositoryConfig loaderCfg = earMetaData.getLoaderCfg();
+         unit.addAttachment(LoaderRepositoryConfig.class, loaderCfg);
+      }
    }
-
 }

Modified: trunk/server/src/main/org/jboss/deployment/JBossApplicationObjectFactory.java
===================================================================
--- trunk/server/src/main/org/jboss/deployment/JBossApplicationObjectFactory.java	2007-03-19 21:55:49 UTC (rev 61469)
+++ trunk/server/src/main/org/jboss/deployment/JBossApplicationObjectFactory.java	2007-03-19 22:19:11 UTC (rev 61470)
@@ -24,6 +24,7 @@
 import org.jboss.logging.Logger;
 import org.jboss.metadata.SecurityRoleMetaData;
 import org.jboss.mx.loading.LoaderRepositoryFactory;
+import org.jboss.mx.util.ObjectNameFactory;
 import org.jboss.xb.binding.ObjectModelFactory;
 import org.jboss.xb.binding.UnmarshallingContext;
 import org.xml.sax.Attributes;
@@ -191,8 +192,12 @@
          UnmarshallingContext navigator, String namespaceURI, String localName,
          String value)
    {
-      if( localName.equals("loader-repository-config") )
+      if( localName.equals("loader-repository") )
       {
+         cfg.repositoryName = ObjectNameFactory.create(value);
+      }
+      else if( localName.equals("loader-repository-config") )
+      {
          cfg.repositoryConfig = value;
       }
    }

Modified: trunk/system-jmx/src/main/org/jboss/system/deployers/ServiceClassLoaderDeployer.java
===================================================================
--- trunk/system-jmx/src/main/org/jboss/system/deployers/ServiceClassLoaderDeployer.java	2007-03-19 21:55:49 UTC (rev 61469)
+++ trunk/system-jmx/src/main/org/jboss/system/deployers/ServiceClassLoaderDeployer.java	2007-03-19 22:19:11 UTC (rev 61470)
@@ -53,7 +53,7 @@
 {
    /** The service controller */
    private final ServiceController controller;
-
+   
    /**
     * Create a new ServiceDeployer.
     * 
@@ -86,15 +86,32 @@
       }
 
       // Check the loader repository config
-      LoaderRepositoryConfig config = unit.getAttachment(LoaderRepositoryConfig.class);
-      if (config == null)
-         config = new LoaderRepositoryConfig();
-      LoaderRepositoryFactory.createLoaderRepository(server, config);
+      LoaderRepositoryConfig parentConfig = unit.getParent() != null ? unit.getParent().getAttachment(LoaderRepositoryConfig.class) : null;
+      LoaderRepositoryConfig loaderConfig = unit.getAttachment(LoaderRepositoryConfig.class);
+      if (parentConfig != null && parentConfig != loaderConfig)
+      {
+         log.info("Using parent loader repository config: " + parentConfig.repositoryName);
+         loaderConfig = parentConfig;
+      }
+      else if (loaderConfig != null)
+      {
+         log.debug("Using loader repository config: " + loaderConfig.repositoryName);
+      }
+      
+      // Create default loader repository config
+      if (loaderConfig == null)
+      {
+         loaderConfig = new LoaderRepositoryConfig();
+         unit.addAttachment(LoaderRepositoryConfig.class, loaderConfig);
+         log.trace("Using default loader repository config: " + loaderConfig.repositoryName);
+      }
 
+      LoaderRepositoryFactory.createLoaderRepository(server, loaderConfig);
+
       // Create the classloader
       Object[] args = { url, url, Boolean.TRUE };
       String[] sig =  { "java.net.URL", "java.net.URL", "boolean" };
-      RepositoryClassLoader ucl = (RepositoryClassLoader) server.invoke(config.repositoryName, "newClassLoader", args, sig);
+      RepositoryClassLoader ucl = (RepositoryClassLoader) server.invoke(loaderConfig.repositoryName, "newClassLoader", args, sig);
 
       // Add in the classpath
       try




More information about the jboss-cvs-commits mailing list