[jboss-cvs] JBossAS SVN: r93949 - in trunk: server/src/main/org/jboss/web/deployers and 1 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Wed Sep 23 07:21:40 EDT 2009
Author: remy.maucherat at jboss.com
Date: 2009-09-23 07:21:40 -0400 (Wed, 23 Sep 2009)
New Revision: 93949
Modified:
trunk/server/src/main/org/jboss/deployment/AnnotationMetaDataDeployer.java
trunk/server/src/main/org/jboss/deployment/OptAnnotationMetaDataDeployer.java
trunk/server/src/main/org/jboss/web/deployers/MergedJBossWebMetaDataDeployer.java
trunk/tomcat/src/resources/war-deployers-jboss-beans.xml
Log:
- Handle annotations from "classes". I guess the order stuff made me forget about that.
- Add the old AnnotationMetaDataDeployer in the web deployer config for now.
- Mark OptAnnotationMetaDataDeployer as needing an update to support Servlet 3.0.
Modified: trunk/server/src/main/org/jboss/deployment/AnnotationMetaDataDeployer.java
===================================================================
--- trunk/server/src/main/org/jboss/deployment/AnnotationMetaDataDeployer.java 2009-09-23 11:11:26 UTC (rev 93948)
+++ trunk/server/src/main/org/jboss/deployment/AnnotationMetaDataDeployer.java 2009-09-23 11:21:40 UTC (rev 93949)
@@ -149,7 +149,6 @@
ApplicationClientMetaData clientMetaData = unit.getAttachment(ApplicationClientMetaData.class);
if(clientMetaData != null)
isComplete |= clientMetaData.isMetadataComplete();
-
if(isComplete)
{
log.debug("Deployment is metadata-complete, skipping annotation processing"
@@ -160,7 +159,6 @@
);
return;
}
-
VirtualFile root = unit.getRoot();
boolean isLeaf = true;
try
@@ -177,8 +175,7 @@
if(classpath == null || classpath.isEmpty())
return;
- boolean trace = log.isTraceEnabled();
- if (trace)
+ if (log.isTraceEnabled())
log.trace("Deploying annotations for unit: " + unit + ", classpath: " + classpath);
try
@@ -291,13 +288,15 @@
for (VirtualFile path : classes.keySet())
{
WebMetaData annotationMetaData = creator.create(classes.get(path));
+ log.debug("Add annotations: " + WEB_ANNOTATED_ATTACHMENT_NAME + ":" + path.getName());
if (annotationMetaData != null)
{
unit.addAttachment(WEB_ANNOTATED_ATTACHMENT_NAME + ":" + path.getName(), annotationMetaData, WebMetaData.class);
metaData = true;
}
}
- unit.addAttachment(WEB_ANNOTATED_ATTACHMENT_NAME, Boolean.TRUE);
+ if (metaData)
+ unit.addAttachment(WEB_ANNOTATED_ATTACHMENT_NAME, Boolean.TRUE);
}
/**
Modified: trunk/server/src/main/org/jboss/deployment/OptAnnotationMetaDataDeployer.java
===================================================================
--- trunk/server/src/main/org/jboss/deployment/OptAnnotationMetaDataDeployer.java 2009-09-23 11:11:26 UTC (rev 93948)
+++ trunk/server/src/main/org/jboss/deployment/OptAnnotationMetaDataDeployer.java 2009-09-23 11:21:40 UTC (rev 93949)
@@ -51,6 +51,7 @@
/**
* A POST_CLASSLOADER deployer which generates metadata from annotations.
* Optimized option to its super class.
+ * TODO: Will need to support per JAR annotations for Servlet 3.0
*
* @author Ales.Justin at jboss.org
*/
Modified: trunk/server/src/main/org/jboss/web/deployers/MergedJBossWebMetaDataDeployer.java
===================================================================
--- trunk/server/src/main/org/jboss/web/deployers/MergedJBossWebMetaDataDeployer.java 2009-09-23 11:11:26 UTC (rev 93948)
+++ trunk/server/src/main/org/jboss/web/deployers/MergedJBossWebMetaDataDeployer.java 2009-09-23 11:21:40 UTC (rev 93949)
@@ -324,6 +324,16 @@
if (!isComplete)
{
WebCommonMetaData mergedFragmentMetaData = new WebCommonMetaData();
+ if (specMetaData == null)
+ specMetaData = new WebMetaData();
+ String key = AnnotationMetaDataDeployer.WEB_ANNOTATED_ATTACHMENT_NAME + ":classes";
+ WebMetaData annotatedMetaData = unit.getAttachment(key, WebMetaData.class);
+ if (annotatedMetaData != null)
+ {
+ WebMetaData specMerged = new WebMetaData();
+ AnnotationMergedView.merge(specMerged, specMetaData, annotatedMetaData);
+ specMetaData.augment(specMerged, null, true);
+ }
for (String jar : order)
{
WebFragmentMetaData webFragmentMetaData = webFragments.get(jar);
@@ -332,8 +342,8 @@
{
webFragmentMetaData = new WebFragmentMetaData();
}
- String key = AnnotationMetaDataDeployer.WEB_ANNOTATED_ATTACHMENT_NAME + ":" + jar;
- WebMetaData annotatedMetaData = unit.getAttachment(key, WebMetaData.class);
+ key = AnnotationMetaDataDeployer.WEB_ANNOTATED_ATTACHMENT_NAME + ":" + jar;
+ annotatedMetaData = unit.getAttachment(key, WebMetaData.class);
if (!webFragmentMetaData.isMetadataComplete() && annotatedMetaData != null)
{
// Merge annotation corresponding to the JAR
@@ -353,8 +363,6 @@
DeploymentException.rethrowAsDeploymentException("Deployment error processing fragment for JAR: " + jar, e);
}
}
- if (specMetaData == null)
- specMetaData = new WebMetaData();
specMetaData.augment(mergedFragmentMetaData, null, true);
}
Modified: trunk/tomcat/src/resources/war-deployers-jboss-beans.xml
===================================================================
--- trunk/tomcat/src/resources/war-deployers-jboss-beans.xml 2009-09-23 11:11:26 UTC (rev 93948)
+++ trunk/tomcat/src/resources/war-deployers-jboss-beans.xml 2009-09-23 11:21:40 UTC (rev 93949)
@@ -18,7 +18,6 @@
<property name="contextInfoOrder">1000</property>
</bean>
- <!-- web.xml parsing deployer -->
<bean name="WebAppParsingDeployer" class="org.jboss.deployment.WebAppParsingDeployer">
<property name="relativeOrder">2000</property>
</bean>
@@ -31,6 +30,14 @@
<bean name="JBossWebAppParsingDeployer" class="org.jboss.deployment.JBossWebAppParsingDeployer">
<property name="relativeOrder">2003</property>
</bean>
+ <bean name="ServletContainerInitializerDeployer" class="org.jboss.deployment.ServletContainerInitializerDeployer">
+ <property name="relativeOrder">2004</property>
+ </bean>
+ <!-- Temporary for Servlet 3.0 annotation support, large performance drop ... -->
+ <bean name="WebAnnotationMetaDataDeployer" class="org.jboss.deployment.AnnotationMetaDataDeployer">
+ <property name="relativeOrder">2005</property>
+ <property name="metaDataCompleteIsDefault">false</property>
+ </bean>
<!-- See JBAS-6062 -->
<bean name="WebXmlLessDeployer" class="org.jboss.deployment.LegacyWebXmlLessDeployer"/>
More information about the jboss-cvs-commits
mailing list