[Jboss-cvs] JBossAS SVN: r55496 - in trunk/server/src/main/org/jboss: metadata metamodel/descriptor web

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Thu Aug 10 15:09:42 EDT 2006


Author: bill.burke at jboss.com
Date: 2006-08-10 15:09:37 -0400 (Thu, 10 Aug 2006)
New Revision: 55496

Modified:
   trunk/server/src/main/org/jboss/metadata/WebMetaData.java
   trunk/server/src/main/org/jboss/metamodel/descriptor/DDObjectFactory.java
   trunk/server/src/main/org/jboss/web/AbstractWebContainer.java
   trunk/server/src/main/org/jboss/web/AbstractWebDeployer.java
Log:
implementation and some testing of injeciton annotations for WAR components

Modified: trunk/server/src/main/org/jboss/metadata/WebMetaData.java
===================================================================
--- trunk/server/src/main/org/jboss/metadata/WebMetaData.java	2006-08-10 19:08:52 UTC (rev 55495)
+++ trunk/server/src/main/org/jboss/metadata/WebMetaData.java	2006-08-10 19:09:37 UTC (rev 55496)
@@ -117,6 +117,12 @@
    /** ArrayList<ObjectName> of the web app dependencies */
    private ArrayList depends = new ArrayList();
 
+   /**
+    * this is really a hack for new injection code  so that we can reparse web.xml/jbossweb.xml for JavaEE 5 injections
+    * todo remove this when we clean up
+    */
+   private HashMap arbitraryMetadata = new HashMap();
+
    public static final int SESSION_INVALIDATE_ACCESS =0;
    public static final int SESSION_INVALIDATE_SET_AND_GET =1;
    public static final int SESSION_INVALIDATE_SET_AND_NON_PRIMITIVE_GET =2;
@@ -183,6 +189,11 @@
    /** The ClassLoader to load additional resources */
    private URLClassLoader resourceCl;
 
+   public HashMap getArbitraryMetadata()
+   {
+      return arbitraryMetadata;
+   }
+
    /** Set the ClassLoader to load additional resources */
    public void setResourceClassLoader(URLClassLoader resourceCl)
    {

Modified: trunk/server/src/main/org/jboss/metamodel/descriptor/DDObjectFactory.java
===================================================================
--- trunk/server/src/main/org/jboss/metamodel/descriptor/DDObjectFactory.java	2006-08-10 19:08:52 UTC (rev 55495)
+++ trunk/server/src/main/org/jboss/metamodel/descriptor/DDObjectFactory.java	2006-08-10 19:09:37 UTC (rev 55496)
@@ -184,7 +184,7 @@
       {
          ref.setEjbLink(value);
       }
-      else if (localName.equals("mapped-name") || localName.equals("local-jndi-name"))
+      else if (localName.equals("mapped-name") || localName.equals("local-jndi-name") || localName.equals("jndi-name"))
       {
          ref.setMappedName(value);
       }

Modified: trunk/server/src/main/org/jboss/web/AbstractWebContainer.java
===================================================================
--- trunk/server/src/main/org/jboss/web/AbstractWebContainer.java	2006-08-10 19:08:52 UTC (rev 55495)
+++ trunk/server/src/main/org/jboss/web/AbstractWebContainer.java	2006-08-10 19:09:37 UTC (rev 55496)
@@ -436,6 +436,7 @@
          AbstractWebDeployer deployer = getDeployer(di);
          di.context.put(DEPLOYER, deployer);
          WebMetaData metaData = (WebMetaData) di.metaData;
+         processMetaData(di);
          Collection depends = metaData.getDepends();
          WebModule module = new WebModule(di, this, deployer);
          ObjectName jmxName = new ObjectName("jboss.web.deployment:war="
@@ -452,6 +453,18 @@
       }
    }
 
+   /**
+    * This allows the container to perform any specific metadata processing before the WebModule is deployed
+    * The container can analyze dependencies on PUs, datasources, eJBs, etc... and add to the depends list of Metadata
+    *
+    * @param di
+    * @param metadata
+    */
+   protected void processMetaData(DeploymentInfo di)
+   {
+      // complete
+   }
+
    /** Invokes the ServiceController.start(jmxName) to start the WebModule
     after its dependencies are satisfied. 
 

Modified: trunk/server/src/main/org/jboss/web/AbstractWebDeployer.java
===================================================================
--- trunk/server/src/main/org/jboss/web/AbstractWebDeployer.java	2006-08-10 19:08:52 UTC (rev 55495)
+++ trunk/server/src/main/org/jboss/web/AbstractWebDeployer.java	2006-08-10 19:09:37 UTC (rev 55496)
@@ -331,7 +331,8 @@
       {
          // Create a classloader for the war to ensure a unique ENC
          URL[] empty = {};
-         URLClassLoader warLoader = URLClassLoader.newInstance(empty, di.ucl);
+         URLClassLoader warLoader1 = URLClassLoader.newInstance(empty, di.ucl);
+         URLClassLoader warLoader = warLoader1;
          thread.setContextClassLoader(warLoader);
          WebDescriptorParser webAppParser = new DescriptorParser(di);
          String webContext = di.webContext;
@@ -419,7 +420,7 @@
     * namespace.
     */
    protected abstract void performDeploy(WebApplication webApp, String warUrl,
-      WebDescriptorParser webAppParser) throws Exception;
+                                         WebDescriptorParser webAppParser) throws Exception;
 
    /**
     * A template pattern implementation of the undeploy() method. This method
@@ -528,12 +529,22 @@
          envCtx.bind("UserTransaction", new LinkRef("UserTransaction"));
          log.debug("Linked java:comp/UserTransaction to JNDI name: UserTransaction");
          envCtx = envCtx.createSubcontext("env");
+         processEncReferences(metaData, envCtx, di);
       }
       finally
       {
          currentThread.setContextClassLoader(currentLoader);
       }
 
+      String securityDomain = metaData.getSecurityDomain();
+      log.debug("linkSecurityDomain");
+      linkSecurityDomain(securityDomain, envCtx);
+      log.debug("AbstractWebContainer.parseWebAppDescriptors, End");
+   }
+
+   protected void processEncReferences(WebMetaData metaData, Context envCtx, DeploymentInfo di)
+           throws ClassNotFoundException, NamingException, DeploymentException
+   {
       Iterator envEntries = metaData.getEnvironmentEntries();
       log.debug("addEnvEntries");
       addEnvEntries(envEntries, envCtx);
@@ -554,10 +565,6 @@
       Iterator serviceRefs = metaData.getServiceReferences();
       log.debug("linkServiceRefs");
       WebServiceClientHandler.setupServiceRefEnvironment(envCtx, serviceRefs, di);
-      String securityDomain = metaData.getSecurityDomain();
-      log.debug("linkSecurityDomain");
-      linkSecurityDomain(securityDomain, envCtx);
-      log.debug("AbstractWebContainer.parseWebAppDescriptors, End");
    }
 
    protected void addEnvEntries(Iterator envEntries, Context envCtx)




More information about the jboss-cvs-commits mailing list