[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