Author: musachy
Date: Wed May 14 13:24:35 2008
New Revision: 656410
URL: http://svn.apache.org/viewvc?rev=656410&view=rev
Log:
Add @InterceptorRefs, which can be applied at the class level
Added:
struts/sandbox/trunk/struts2-convention-plugin/src/main/java/org/apache/struts2/convention/annotation/InterceptorRefs.java
struts/sandbox/trunk/struts2-convention-plugin/src/test/java/org/apache/struts2/convention/actions/interceptor/ActionLevelInterceptor2Action.java
struts/sandbox/trunk/struts2-convention-plugin/src/test/java/org/apache/struts2/convention/actions/interceptor/ActionLevelInterceptor3Action.java
struts/sandbox/trunk/struts2-convention-plugin/src/test/java/org/apache/struts2/convention/actions/interceptor/ActionLevelInterceptorAction.java
Modified:
struts/sandbox/trunk/struts2-convention-plugin/src/main/java/org/apache/struts2/convention/DefaultInterceptorMapBuilder.java
struts/sandbox/trunk/struts2-convention-plugin/src/main/java/org/apache/struts2/convention/InterceptorMapBuilder.java
struts/sandbox/trunk/struts2-convention-plugin/src/main/java/org/apache/struts2/convention/PackageBasedActionConfigBuilder.java
struts/sandbox/trunk/struts2-convention-plugin/src/main/java/org/apache/struts2/convention/annotation/InterceptorRef.java
struts/sandbox/trunk/struts2-convention-plugin/src/test/java/org/apache/struts2/convention/PackageBasedActionConfigBuilderTest.java
Modified:
struts/sandbox/trunk/struts2-convention-plugin/src/main/java/org/apache/struts2/convention/DefaultInterceptorMapBuilder.java
URL:
http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2-convention-plugin/src/main/java/org/apache/struts2/convention/DefaultInterceptorMapBuilder.java?rev=656410&r1=656409&r2=656410&view=diff
==
---
struts/sandbox/trunk/struts2-convention-plugin/src/main/java/org/apache/struts2/convention/DefaultInterceptorMapBuilder.java
(original)
+++
struts/sandbox/trunk/struts2-convention-plugin/src/main/java/org/apache/struts2/convention/DefaultInterceptorMapBuilder.java
Wed May 14 13:24:35 2008
@@ -26,7 +26,9 @@
import java.util.Map;
import org.apache.struts2.convention.annotation.Action;
+import org.apache.struts2.convention.annotation.AnnotationTools;
import org.apache.struts2.convention.annotation.InterceptorRef;
+import org.apache.struts2.convention.annotation.InterceptorRefs;
import com.opensymphony.xwork2.ObjectFactory;
import com.opensymphony.xwork2.config.Configuration;
@@ -35,6 +37,7 @@
import com.opensymphony.xwork2.config.entities.PackageConfig;
import com.opensymphony.xwork2.config.providers.InterceptorBuilder;
import com.opensymphony.xwork2.inject.Inject;
+import com.opensymphony.xwork2.util.AnnotationUtils;
import com.opensymphony.xwork2.util.logging.Logger;
import com.opensymphony.xwork2.util.logging.LoggerFactory;
@@ -49,29 +52,48 @@
private Configuration configuration;
- public List build(PackageConfig.Builder builder,
+ public List build(Class actionClass,
PackageConfig.Builder builder,
String actionName, Action annotation) {
List interceptorList = new
ArrayList(
10);
+ //from @InterceptorRefs annotation
+InterceptorRefs interceptorRefs =
AnnotationTools.findAnnotation(actionClass, InterceptorRefs.class);
+if (interceptorRefs != null)
+interceptorList.addAll(build(interceptorRefs.value(), actionName,
builder));
+
+//from @InterceptorRef annotation
+InterceptorRef interceptorRef =
AnnotationTools.findAnnotation(actionClass, InterceptorRef.class);
+if (interceptorRef != null)
+interceptorList.addAll(build(new InterceptorRef[]
{interceptorRef}, actionName, builder));
+
+ //from @Action annotation
if (annotation != null) {
InterceptorRef[] interceptors =
annotation.interceptorRefs();
if (interceptors != null) {
- for (InterceptorRef interceptor : interceptors)
{
- if (LOG.isTraceEnabled())
- LOG.trace("Adding interceptor
[#0] to [#1]",
-
interceptor.value(), actionName);
- Map params =
createParameterMap(interceptor
- .params());
-
interceptorList.addAll(buildInterceptorList(builder,
- interceptor, params));
- }
+ interceptorList.addAll(build(interceptors,
actionName, builder));
}
}
return interceptorList;
}
+ pro