Author: musachy
Date: Thu May 22 08:43:10 2008
New Revision: 659138
URL: http://svn.apache.org/viewvc?rev=659138&view=rev
Log:
Add @Namespaces annotation
set svn:keywords in files that are missing it
Added:
struts/sandbox/trunk/struts2-convention-plugin/src/main/java/org/apache/struts2/convention/annotation/Namespaces.java
(with props)
struts/sandbox/trunk/struts2-convention-plugin/src/test/java/org/apache/struts2/convention/actions/namespace3/
struts/sandbox/trunk/struts2-convention-plugin/src/test/java/org/apache/struts2/convention/actions/namespace3/ActionLevelNamespacesAction.java
(with props)
struts/sandbox/trunk/struts2-convention-plugin/src/test/java/org/apache/struts2/convention/actions/namespace4/
struts/sandbox/trunk/struts2-convention-plugin/src/test/java/org/apache/struts2/convention/actions/namespace4/ActionAndPackageLevelNamespacesAction.java
(with props)
struts/sandbox/trunk/struts2-convention-plugin/src/test/java/org/apache/struts2/convention/actions/namespace4/package-info.java
(with props)
Modified:
struts/sandbox/trunk/struts2-convention-plugin/src/main/java/org/apache/struts2/convention/DefaultInterceptorMapBuilder.java
(contents, props changed)
struts/sandbox/trunk/struts2-convention-plugin/src/main/java/org/apache/struts2/convention/InterceptorMapBuilder.java
(contents, props changed)
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/ExceptionMapping.java
(contents, props changed)
struts/sandbox/trunk/struts2-convention-plugin/src/main/java/org/apache/struts2/convention/annotation/ExceptionMappings.java
(contents, props changed)
struts/sandbox/trunk/struts2-convention-plugin/src/main/java/org/apache/struts2/convention/annotation/InterceptorRef.java
(props changed)
struts/sandbox/trunk/struts2-convention-plugin/src/main/java/org/apache/struts2/convention/annotation/InterceptorRefs.java
(props changed)
struts/sandbox/trunk/struts2-convention-plugin/src/test/java/org/apache/struts2/convention/PackageBasedActionConfigBuilderTest.java
struts/sandbox/trunk/struts2-convention-plugin/src/test/java/org/apache/struts2/convention/actions/exception/ExceptionsActionLevelAction.java
(contents, props changed)
struts/sandbox/trunk/struts2-convention-plugin/src/test/java/org/apache/struts2/convention/actions/exception/ExceptionsMethodLevelAction.java
(contents, props changed)
struts/sandbox/trunk/struts2-convention-plugin/src/test/java/org/apache/struts2/convention/actions/params/ActionParamsMethodLevelAction.java
(contents, props changed)
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=659138&r1=659137&r2=659138&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
Thu May 22 08:43:10 2008
@@ -1,5 +1,5 @@
/*
- * $ID$
+ * $Id$
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
Propchange:
struts/sandbox/trunk/struts2-convention-plugin/src/main/java/org/apache/struts2/convention/DefaultInterceptorMapBuilder.java
------------------------------------------------------------------------------
svn:keywords = Id
Modified:
struts/sandbox/trunk/struts2-convention-plugin/src/main/java/org/apache/struts2/convention/InterceptorMapBuilder.java
URL:
http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2-convention-plugin/src/main/java/org/apache/struts2/convention/InterceptorMapBuilder.java?rev=659138&r1=659137&r2=659138&view=diff
==============================================================================
---
struts/sandbox/trunk/struts2-convention-plugin/src/main/java/org/apache/struts2/convention/InterceptorMapBuilder.java
(original)
+++
struts/sandbox/trunk/struts2-convention-plugin/src/main/java/org/apache/struts2/convention/InterceptorMapBuilder.java
Thu May 22 08:43:10 2008
@@ -1,5 +1,5 @@
/*
- * $ID$
+ * $Id$
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
Propchange:
struts/sandbox/trunk/struts2-convention-plugin/src/main/java/org/apache/struts2/convention/InterceptorMapBuilder.java
------------------------------------------------------------------------------
svn:keywords = Id
Modified:
struts/sandbox/trunk/struts2-convention-plugin/src/main/java/org/apache/struts2/convention/PackageBasedActionConfigBuilder.java
URL:
http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2-convention-plugin/src/main/java/org/apache/struts2/convention/PackageBasedActionConfigBuilder.java?rev=659138&r1=659137&r2=659138&view=diff
==============================================================================
---
struts/sandbox/trunk/struts2-convention-plugin/src/main/java/org/apache/struts2/convention/PackageBasedActionConfigBuilder.java
(original)
+++
struts/sandbox/trunk/struts2-convention-plugin/src/main/java/org/apache/struts2/convention/PackageBasedActionConfigBuilder.java
Thu May 22 08:43:10 2008
@@ -39,6 +39,7 @@
import org.apache.struts2.convention.annotation.ExceptionMappings;
import org.apache.struts2.convention.annotation.InterceptorRef;
import org.apache.struts2.convention.annotation.Namespace;
+import org.apache.struts2.convention.annotation.Namespaces;
import org.apache.struts2.convention.annotation.ParentPackage;
import com.opensymphony.xwork2.ObjectFactory;
@@ -291,64 +292,66 @@
}
// Determine the default namespace and action name
- String defaultActionNamespace =
determineActionNamespace(actionClass);
- String defaultActionName = determineActionName(actionClass);
- String defaultActionMethod = "execute";
- PackageConfig.Builder defaultPackageConfig =
getPackageConfig(packageConfigs, defaultActionNamespace,
- actionPackage, actionClass, null);
-
- // Verify that the annotations have no errors and also determine
if the default action
- // configuration should still be built or not.
- Map<String, List<Action>> map = getActionAnnotations(actionClass);
- Set<String> actionNames = new HashSet<String>();
- if (!map.containsKey(defaultActionMethod) &&
ReflectionTools.containsMethod(actionClass, defaultActionMethod)) {
- boolean found = false;
- for (String method : map.keySet()) {
- List<Action> actions = map.get(method);
- for (Action action : actions) {
-
- // Check if there are duplicate action names in the
annotations.
- String actionName =
action.value().equals(Action.DEFAULT_VALUE) ? defaultActionName :
action.value();
- if (actionNames.contains(actionName)) {
- throw new ConfigurationException("The action class
[" + actionClass +
- "] contains two methods with an action name
annotation whose value " +
- "is the same (they both might be empty as
well).");
- } else {
- actionNames.add(actionName);
+ List<String> namespaces = determineActionNamespace(actionClass);
+ for (String namespace : namespaces) {
+ String defaultActionName = determineActionName(actionClass);
+ String defaultActionMethod = "execute";
+ PackageConfig.Builder defaultPackageConfig =
getPackageConfig(packageConfigs, namespace,
+ actionPackage, actionClass, null);
+
+ // Verify that the annotations have no errors and also
determine if the default action
+ // configuration should still be built or not.
+ Map<String, List<Action>> map =
getActionAnnotations(actionClass);
+ Set<String> actionNames = new HashSet<String>();
+ if (!map.containsKey(defaultActionMethod) &&
ReflectionTools.containsMethod(actionClass, defaultActionMethod)) {
+ boolean found = false;
+ for (String method : map.keySet()) {
+ List<Action> actions = map.get(method);
+ for (Action action : actions) {
+
+ // Check if there are duplicate action names in
the annotations.
+ String actionName =
action.value().equals(Action.DEFAULT_VALUE) ? defaultActionName :
action.value();
+ if (actionNames.contains(actionName)) {
+ throw new ConfigurationException("The action
class [" + actionClass +
+ "] contains two methods with an action
name annotation whose value " +
+ "is the same (they both might be empty as
well).");
+ } else {
+ actionNames.add(actionName);
+ }
+
+ // Check this annotation is the default action
+ if (action.value().equals(Action.DEFAULT_VALUE)) {
+ found = true;
+ }
}
+ }
- // Check this annotation is the default action
- if (action.value().equals(Action.DEFAULT_VALUE)) {
- found = true;
- }
+ // Build the default
+ if (!found) {
+ createActionConfig(defaultPackageConfig, actionClass,
defaultActionName, defaultActionMethod, null);
}
}
- // Build the default
- if (!found) {
- createActionConfig(defaultPackageConfig, actionClass,
defaultActionName, defaultActionMethod, null);
- }
- }
+ // Build the actions for the annotations
+ for (String method : map.keySet()) {
+ List<Action> actions = map.get(method);
+ for (Action action : actions) {
+ PackageConfig.Builder pkgCfg = defaultPackageConfig;
+ if (action.value().contains("/")) {
+ pkgCfg = getPackageConfig(packageConfigs,
namespace, actionPackage,
+ actionClass, action);
+ }
- // Build the actions for the annotations
- for (String method : map.keySet()) {
- List<Action> actions = map.get(method);
- for (Action action : actions) {
- PackageConfig.Builder pkgCfg = defaultPackageConfig;
- if (action.value().contains("/")) {
- pkgCfg = getPackageConfig(packageConfigs,
defaultActionNamespace, actionPackage,
- actionClass, action);
+ createActionConfig(pkgCfg, actionClass,
defaultActionName, method, action);
}
-
- createActionConfig(pkgCfg, actionClass, defaultActionName,
method, action);
}
- }
- // some actions will not have any @Action or a default method,
like the rest actions
- // where the action mapper is the one that finds the right method
at runtime
- if (map.isEmpty() && mapAllMatches) {
- Action actionAnnotation =
actionClass.getAnnotation(Action.class);
- createActionConfig(defaultPackageConfig, actionClass,
defaultActionName, null, actionAnnotation);
+ // some actions will not have any @Action or a default method,
like the rest actions
+ // where the action mapper is the one that finds the right
method at runtime
+ if (map.isEmpty() && mapAllMatches) {
+ Action actionAnnotation =
actionClass.getAnnotation(Action.class);
+ createActionConfig(defaultPackageConfig, actionClass,
defaultActionName, null, actionAnnotation);
+ }
}
}
@@ -362,7 +365,7 @@
}
/**
- * Determines the namespace for the action based on the action class. If
there is a [EMAIL PROTECTED] Namespace}
+ * Determines the namespace(s) for the action based on the action class.
If there is a [EMAIL PROTECTED] Namespace}
* annotation on the class (including parent classes) or on the package
that the class is in, than
* it is used. Otherwise, the Java package name that the class is in is
used in conjunction with
* either the <b>struts.convention.action.packages</b> or
<b>struts.convention.package.locators</b>
@@ -372,17 +375,39 @@
* @param actionClass The action class.
* @return The namespace or an empty string.
*/
- protected String determineActionNamespace(Class<?> actionClass) {
+ protected List<String> determineActionNamespace(Class<?> actionClass) {
+ List<String> namespaces = new ArrayList<String>();
+
// Check if there is a class or package level annotation for the
namespace
- Namespace ns = AnnotationTools.findAnnotation(actionClass,
Namespace.class);
- if (ns != null) {
+ //single namespace
+ Namespace namespaceAnnotation =
AnnotationTools.findAnnotation(actionClass, Namespace.class);
+ if (namespaceAnnotation != null) {
if (LOG.isTraceEnabled()) {
- LOG.trace("Using non-default action namespace from Namespace
annotation of [#0]", ns.value());
+ LOG.trace("Using non-default action namespace from Namespace
annotation of [#0]", namespaceAnnotation.value());
}
- return ns.value();
+ namespaces.add(namespaceAnnotation.value());
}
+ //multiple annotations
+ Namespaces namespacesAnnotation =
AnnotationTools.findAnnotation(actionClass, Namespaces.class);
+ if (namespacesAnnotation != null) {
+ if (LOG.isTraceEnabled()) {
+ StringBuilder sb = new StringBuilder();
+ for (Namespace namespace : namespacesAnnotation.value())
+ sb.append(namespace.value()).append(",");
+ sb.deleteCharAt(sb.length() - 1);
+ LOG.trace("Using non-default action namespaces from Namespaces
annotation of [#0]", sb.toString());
+ }
+
+ for (Namespace namespace : namespacesAnnotation.value())
+ namespaces.add(namespace.value());
+ }
+
+ //don't use default if there are annotations
+ if (!namespaces.isEmpty())
+ return namespaces;
+
String pkg = actionClass.getPackage().getName();
String pkgPart = null;
if (actionPackages != null) {
@@ -409,11 +434,13 @@
final int indexOfDot = pkgPart.lastIndexOf('.');
if (indexOfDot >= 0) {
String convertedNamespace =
actionNameBuilder.build(pkgPart.substring(0, indexOfDot));
- return "/" + convertedNamespace.replace('.', '/');
+ namespaces.add("/" + convertedNamespace.replace('.', '/'));
+ return namespaces;
}
}
- return "";
+ namespaces.add("");
+ return namespaces;
}
/**
Modified:
struts/sandbox/trunk/struts2-convention-plugin/src/main/java/org/apache/struts2/convention/annotation/ExceptionMapping.java
URL:
http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2-convention-plugin/src/main/java/org/apache/struts2/convention/annotation/ExceptionMapping.java?rev=659138&r1=659137&r2=659138&view=diff
==============================================================================
---
struts/sandbox/trunk/struts2-convention-plugin/src/main/java/org/apache/struts2/convention/annotation/ExceptionMapping.java
(original)
+++
struts/sandbox/trunk/struts2-convention-plugin/src/main/java/org/apache/struts2/convention/annotation/ExceptionMapping.java
Thu May 22 08:43:10 2008
@@ -1,5 +1,5 @@
/*
- * $ID$
+ * $Id$
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
Propchange:
struts/sandbox/trunk/struts2-convention-plugin/src/main/java/org/apache/struts2/convention/annotation/ExceptionMapping.java
------------------------------------------------------------------------------
svn:keywords = Id
Modified:
struts/sandbox/trunk/struts2-convention-plugin/src/main/java/org/apache/struts2/convention/annotation/ExceptionMappings.java
URL:
http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2-convention-plugin/src/main/java/org/apache/struts2/convention/annotation/ExceptionMappings.java?rev=659138&r1=659137&r2=659138&view=diff
==============================================================================
---
struts/sandbox/trunk/struts2-convention-plugin/src/main/java/org/apache/struts2/convention/annotation/ExceptionMappings.java
(original)
+++
struts/sandbox/trunk/struts2-convention-plugin/src/main/java/org/apache/struts2/convention/annotation/ExceptionMappings.java
Thu May 22 08:43:10 2008
@@ -1,5 +1,5 @@
/*
- * $ID$
+ * $Id$
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
Propchange:
struts/sandbox/trunk/struts2-convention-plugin/src/main/java/org/apache/struts2/convention/annotation/ExceptionMappings.java
------------------------------------------------------------------------------
svn:keywords = Id
Propchange:
struts/sandbox/trunk/struts2-convention-plugin/src/main/java/org/apache/struts2/convention/annotation/InterceptorRef.java
------------------------------------------------------------------------------
svn:keywords = Id
Propchange:
struts/sandbox/trunk/struts2-convention-plugin/src/main/java/org/apache/struts2/convention/annotation/InterceptorRefs.java
------------------------------------------------------------------------------
svn:keywords = Id
Added:
struts/sandbox/trunk/struts2-convention-plugin/src/main/java/org/apache/struts2/convention/annotation/Namespaces.java
URL:
http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2-convention-plugin/src/main/java/org/apache/struts2/convention/annotation/Namespaces.java?rev=659138&view=auto
==============================================================================
---
struts/sandbox/trunk/struts2-convention-plugin/src/main/java/org/apache/struts2/convention/annotation/Namespaces.java
(added)
+++
struts/sandbox/trunk/struts2-convention-plugin/src/main/java/org/apache/struts2/convention/annotation/Namespaces.java
Thu May 22 08:43:10 2008
@@ -0,0 +1,39 @@
+/*
+ * $Id$
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.struts2.convention.annotation;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * <!-- START SNIPPET: javadoc -->
+ * <p>
+ * This annotation allows actions to be defined in more than one [EMAIL
PROTECTED] Namespace}
+ * </p>
+ * <!-- END SNIPPET: javadoc -->
+ */
[EMAIL PROTECTED]({ElementType.PACKAGE, ElementType.TYPE})
[EMAIL PROTECTED](value = RetentionPolicy.RUNTIME)
+public @interface Namespaces {
+ Namespace[] value();
+}
Propchange:
struts/sandbox/trunk/struts2-convention-plugin/src/main/java/org/apache/struts2/convention/annotation/Namespaces.java
------------------------------------------------------------------------------
svn:keywords = Id
Modified:
struts/sandbox/trunk/struts2-convention-plugin/src/test/java/org/apache/struts2/convention/PackageBasedActionConfigBuilderTest.java
URL:
http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2-convention-plugin/src/test/java/org/apache/struts2/convention/PackageBasedActionConfigBuilderTest.java?rev=659138&r1=659137&r2=659138&view=diff
==============================================================================
---
struts/sandbox/trunk/struts2-convention-plugin/src/test/java/org/apache/struts2/convention/PackageBasedActionConfigBuilderTest.java
(original)
+++
struts/sandbox/trunk/struts2-convention-plugin/src/test/java/org/apache/struts2/convention/PackageBasedActionConfigBuilderTest.java
Thu May 22 08:43:10 2008
@@ -51,6 +51,8 @@
import
org.apache.struts2.convention.actions.namespace.ClassLevelNamespaceAction;
import
org.apache.struts2.convention.actions.namespace.PackageLevelNamespaceAction;
import org.apache.struts2.convention.actions.namespace2.DefaultNamespaceAction;
+import
org.apache.struts2.convention.actions.namespace3.ActionLevelNamespacesAction;
+import
org.apache.struts2.convention.actions.namespace4.ActionAndPackageLevelNamespacesAction;
import
org.apache.struts2.convention.actions.params.ActionParamsMethodLevelAction;
import
org.apache.struts2.convention.actions.parentpackage.ClassLevelParentPackageAction;
import
org.apache.struts2.convention.actions.parentpackage.PackageLevelParentPackageAction;
@@ -144,6 +146,14 @@
"/action-level", strutsDefault, null);
PackageConfig defaultNamespacePkg =
makePackageConfig("org.apache.struts2.convention.actions.namespace2#struts-default#/namespace2",
"/namespace2", strutsDefault, null);
+ PackageConfig namespaces1Pkg =
makePackageConfig("org.apache.struts2.convention.actions.namespace3#struts-default#/namespaces1",
+ "/namespaces1", strutsDefault, null);
+ PackageConfig namespaces2Pkg =
makePackageConfig("org.apache.struts2.convention.actions.namespace3#struts-default#/namespaces2",
+ "/namespaces2", strutsDefault, null);
+ PackageConfig namespaces3Pkg =
makePackageConfig("org.apache.struts2.convention.actions.namespace4#struts-default#/namespaces3",
+ "/namespaces3", strutsDefault, null);
+ PackageConfig namespaces4Pkg =
makePackageConfig("org.apache.struts2.convention.actions.namespace4#struts-default#/namespaces4",
+ "/namespaces4", strutsDefault, null);
PackageConfig resultPkg =
makePackageConfig("org.apache.struts2.convention.actions.result#struts-default#/result",
"/result", strutsDefault, null);
PackageConfig resultPathPkg =
makePackageConfig("org.apache.struts2.convention.actions.resultpath#struts-default#/resultpath",
@@ -196,6 +206,14 @@
/* org.apache.struts2.convention.actions.namespace2 */
expect(resultMapBuilder.build(DefaultNamespaceAction.class, null,
"default-namespace", defaultNamespacePkg)).andReturn(results);
+ /* org.apache.struts2.convention.actions.namespace3 */
+ expect(resultMapBuilder.build(ActionLevelNamespacesAction.class, null,
"action-level-namespaces", namespaces1Pkg)).andReturn(results);
+ expect(resultMapBuilder.build(ActionLevelNamespacesAction.class, null,
"action-level-namespaces", namespaces2Pkg)).andReturn(results);
+
+ /* org.apache.struts2.convention.actions.namespace4 */
+
expect(resultMapBuilder.build(ActionAndPackageLevelNamespacesAction.class,
null, "action-and-package-level-namespaces",
namespaces3Pkg)).andReturn(results);
+
expect(resultMapBuilder.build(ActionAndPackageLevelNamespacesAction.class,
null, "action-and-package-level-namespaces",
namespaces4Pkg)).andReturn(results);
+
/* org.apache.struts2.convention.actions.parentpackage */
expect(resultMapBuilder.build(PackageLevelParentPackageAction.class,
null, "package-level-parent-package", packageLevelPkg)).andReturn(results);
expect(resultMapBuilder.build(ClassLevelParentPackageAction.class,
null, "class-level-parent-package", differentPkg)).andReturn(results);
@@ -262,6 +280,34 @@
verifyActionConfig(pkgConfig, "action", SingleActionNameAction.class,
"run", pkgConfig.getName());
verifyActionConfig(pkgConfig, "test", TestAction.class, "execute",
pkgConfig.getName());
+ /* org.apache.struts2.convention.actions.namespace3 */
+ //action on namespace1 (action level)
+ pkgConfig =
configuration.getPackageConfig("org.apache.struts2.convention.actions.namespace3#struts-default#/namespaces1");
+ assertNotNull(pkgConfig);
+ assertEquals(1, pkgConfig.getActionConfigs().size());
+ verifyActionConfig(pkgConfig, "action-level-namespaces",
ActionLevelNamespacesAction.class, "execute", pkgConfig.getName());
+
+ //action on namespace2 (action level)
+ pkgConfig =
configuration.getPackageConfig("org.apache.struts2.convention.actions.namespace3#struts-default#/namespaces2");
+ assertNotNull(pkgConfig);
+ assertEquals(1, pkgConfig.getActionConfigs().size());
+ verifyActionConfig(pkgConfig, "action-level-namespaces",
ActionLevelNamespacesAction.class, "execute", pkgConfig.getName());
+
+ /* org.apache.struts2.convention.actions.namespace4 */
+ //action on namespace3 (action level)
+ pkgConfig =
configuration.getPackageConfig("org.apache.struts2.convention.actions.namespace4#struts-default#/namespaces3");
+ assertNotNull(pkgConfig);
+ assertEquals(1, pkgConfig.getActionConfigs().size());
+ verifyActionConfig(pkgConfig, "action-and-package-level-namespaces",
ActionAndPackageLevelNamespacesAction.class, "execute", pkgConfig.getName());
+
+ //action on namespace4 (package level)
+ pkgConfig =
configuration.getPackageConfig("org.apache.struts2.convention.actions.namespace4#struts-default#/namespaces4");
+ assertNotNull(pkgConfig);
+ assertEquals(1, pkgConfig.getActionConfigs().size());
+ verifyActionConfig(pkgConfig, "action-and-package-level-namespaces",
ActionAndPackageLevelNamespacesAction.class, "execute", pkgConfig.getName());
+
+
+
/* org.apache.struts2.convention.actions.params */
pkgConfig =
configuration.getPackageConfig("org.apache.struts2.convention.actions.params#struts-default#/params");
assertNotNull(pkgConfig);
Modified:
struts/sandbox/trunk/struts2-convention-plugin/src/test/java/org/apache/struts2/convention/actions/exception/ExceptionsActionLevelAction.java
URL:
http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2-convention-plugin/src/test/java/org/apache/struts2/convention/actions/exception/ExceptionsActionLevelAction.java?rev=659138&r1=659137&r2=659138&view=diff
==============================================================================
---
struts/sandbox/trunk/struts2-convention-plugin/src/test/java/org/apache/struts2/convention/actions/exception/ExceptionsActionLevelAction.java
(original)
+++
struts/sandbox/trunk/struts2-convention-plugin/src/test/java/org/apache/struts2/convention/actions/exception/ExceptionsActionLevelAction.java
Thu May 22 08:43:10 2008
@@ -1,5 +1,5 @@
/*
- * $ID$
+ * $Id$
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
Propchange:
struts/sandbox/trunk/struts2-convention-plugin/src/test/java/org/apache/struts2/convention/actions/exception/ExceptionsActionLevelAction.java
------------------------------------------------------------------------------
svn:keywords = Id
Modified:
struts/sandbox/trunk/struts2-convention-plugin/src/test/java/org/apache/struts2/convention/actions/exception/ExceptionsMethodLevelAction.java
URL:
http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2-convention-plugin/src/test/java/org/apache/struts2/convention/actions/exception/ExceptionsMethodLevelAction.java?rev=659138&r1=659137&r2=659138&view=diff
==============================================================================
---
struts/sandbox/trunk/struts2-convention-plugin/src/test/java/org/apache/struts2/convention/actions/exception/ExceptionsMethodLevelAction.java
(original)
+++
struts/sandbox/trunk/struts2-convention-plugin/src/test/java/org/apache/struts2/convention/actions/exception/ExceptionsMethodLevelAction.java
Thu May 22 08:43:10 2008
@@ -1,5 +1,5 @@
/*
- * $ID$
+ * $Id$
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
Propchange:
struts/sandbox/trunk/struts2-convention-plugin/src/test/java/org/apache/struts2/convention/actions/exception/ExceptionsMethodLevelAction.java
------------------------------------------------------------------------------
svn:keywords = Id
Added:
struts/sandbox/trunk/struts2-convention-plugin/src/test/java/org/apache/struts2/convention/actions/namespace3/ActionLevelNamespacesAction.java
URL:
http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2-convention-plugin/src/test/java/org/apache/struts2/convention/actions/namespace3/ActionLevelNamespacesAction.java?rev=659138&view=auto
==============================================================================
---
struts/sandbox/trunk/struts2-convention-plugin/src/test/java/org/apache/struts2/convention/actions/namespace3/ActionLevelNamespacesAction.java
(added)
+++
struts/sandbox/trunk/struts2-convention-plugin/src/test/java/org/apache/struts2/convention/actions/namespace3/ActionLevelNamespacesAction.java
Thu May 22 08:43:10 2008
@@ -0,0 +1,34 @@
+/*
+ * $Id$
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.struts2.convention.actions.namespace3;
+
+import org.apache.struts2.convention.annotation.Namespace;
+import org.apache.struts2.convention.annotation.Namespaces;
+
[EMAIL PROTECTED]({
+ @Namespace("/namespaces1"),
+ @Namespace("/namespaces2")
+})
+public class ActionLevelNamespacesAction {
+ public String execute() {
+ return null;
+ }
+}
Propchange:
struts/sandbox/trunk/struts2-convention-plugin/src/test/java/org/apache/struts2/convention/actions/namespace3/ActionLevelNamespacesAction.java
------------------------------------------------------------------------------
svn:keywords = Id
Added:
struts/sandbox/trunk/struts2-convention-plugin/src/test/java/org/apache/struts2/convention/actions/namespace4/ActionAndPackageLevelNamespacesAction.java
URL:
http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2-convention-plugin/src/test/java/org/apache/struts2/convention/actions/namespace4/ActionAndPackageLevelNamespacesAction.java?rev=659138&view=auto
==============================================================================
---
struts/sandbox/trunk/struts2-convention-plugin/src/test/java/org/apache/struts2/convention/actions/namespace4/ActionAndPackageLevelNamespacesAction.java
(added)
+++
struts/sandbox/trunk/struts2-convention-plugin/src/test/java/org/apache/struts2/convention/actions/namespace4/ActionAndPackageLevelNamespacesAction.java
Thu May 22 08:43:10 2008
@@ -0,0 +1,33 @@
+/*
+ * $Id$
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.struts2.convention.actions.namespace4;
+
+import org.apache.struts2.convention.annotation.Namespace;
+import org.apache.struts2.convention.annotation.Namespaces;
+
[EMAIL PROTECTED]({
+ @Namespace("/namespaces3"),
+})
+public class ActionAndPackageLevelNamespacesAction {
+ public String execute() {
+ return null;
+ }
+}
Propchange:
struts/sandbox/trunk/struts2-convention-plugin/src/test/java/org/apache/struts2/convention/actions/namespace4/ActionAndPackageLevelNamespacesAction.java
------------------------------------------------------------------------------
svn:keywords = Id
Added:
struts/sandbox/trunk/struts2-convention-plugin/src/test/java/org/apache/struts2/convention/actions/namespace4/package-info.java
URL:
http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2-convention-plugin/src/test/java/org/apache/struts2/convention/actions/namespace4/package-info.java?rev=659138&view=auto
==============================================================================
---
struts/sandbox/trunk/struts2-convention-plugin/src/test/java/org/apache/struts2/convention/actions/namespace4/package-info.java
(added)
+++
struts/sandbox/trunk/struts2-convention-plugin/src/test/java/org/apache/struts2/convention/actions/namespace4/package-info.java
Thu May 22 08:43:10 2008
@@ -0,0 +1,22 @@
+/*
+ * $Id$
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
[EMAIL PROTECTED]("/namespaces4")
+package org.apache.struts2.convention.actions.namespace4;
\ No newline at end of file
Propchange:
struts/sandbox/trunk/struts2-convention-plugin/src/test/java/org/apache/struts2/convention/actions/namespace4/package-info.java
------------------------------------------------------------------------------
svn:keywords = Id
Modified:
struts/sandbox/trunk/struts2-convention-plugin/src/test/java/org/apache/struts2/convention/actions/params/ActionParamsMethodLevelAction.java
URL:
http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2-convention-plugin/src/test/java/org/apache/struts2/convention/actions/params/ActionParamsMethodLevelAction.java?rev=659138&r1=659137&r2=659138&view=diff
==============================================================================
---
struts/sandbox/trunk/struts2-convention-plugin/src/test/java/org/apache/struts2/convention/actions/params/ActionParamsMethodLevelAction.java
(original)
+++
struts/sandbox/trunk/struts2-convention-plugin/src/test/java/org/apache/struts2/convention/actions/params/ActionParamsMethodLevelAction.java
Thu May 22 08:43:10 2008
@@ -1,5 +1,5 @@
/*
- * $ID$
+ * $Id$
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
Propchange:
struts/sandbox/trunk/struts2-convention-plugin/src/test/java/org/apache/struts2/convention/actions/params/ActionParamsMethodLevelAction.java
------------------------------------------------------------------------------
svn:keywords = Id