You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@struts.apache.org by mu...@apache.org on 2009/09/25 20:52:26 UTC

svn commit: r818953 - /struts/struts2/trunk/plugins/convention/src/main/java/org/apache/struts2/convention/PackageBasedActionConfigBuilder.java

Author: musachy
Date: Fri Sep 25 18:52:26 2009
New Revision: 818953

URL: http://svn.apache.org/viewvc?rev=818953&view=rev
Log:
WW-3263 Convention does not check for "struts.enable.SlashesInActionNames"

Modified:
    struts/struts2/trunk/plugins/convention/src/main/java/org/apache/struts2/convention/PackageBasedActionConfigBuilder.java

Modified: struts/struts2/trunk/plugins/convention/src/main/java/org/apache/struts2/convention/PackageBasedActionConfigBuilder.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/convention/src/main/java/org/apache/struts2/convention/PackageBasedActionConfigBuilder.java?rev=818953&r1=818952&r2=818953&view=diff
==============================================================================
--- struts/struts2/trunk/plugins/convention/src/main/java/org/apache/struts2/convention/PackageBasedActionConfigBuilder.java (original)
+++ struts/struts2/trunk/plugins/convention/src/main/java/org/apache/struts2/convention/PackageBasedActionConfigBuilder.java Fri Sep 25 18:52:26 2009
@@ -101,6 +101,7 @@
     private Set<String> fileProtocols;
     private boolean alwaysMapExecute;
     private boolean excludeParentClassLoader;
+    private boolean slashesInActionNames;
 
     private static final String DEFAULT_METHOD = "execute";
 
@@ -150,6 +151,12 @@
     public void setReload(String reload) {
         this.reload = "true".equals(reload);
     }
+    
+    
+    @Inject(StrutsConstants.STRUTS_ENABLE_SLASHES_IN_ACTION_NAMES)
+    public void setSlashesInActionNames(String slashesInActionNames) {
+        this.slashesInActionNames = "true".equals(slashesInActionNames);
+    }
 
     /**
      * Exclude URLs found by the parent class loader. Defaults to "true", set to true for JBoss
@@ -578,7 +585,7 @@
                     List<Action> actions = map.get(method);
                     for (Action action : actions) {
                         PackageConfig.Builder pkgCfg = defaultPackageConfig;
-                        if (action.value().contains("/")) {
+                        if (action.value().contains("/") && !slashesInActionNames) {
                             pkgCfg = getPackageConfig(packageConfigs, namespace, actionPackage,
                                     actionClass, action);
                         }
@@ -780,7 +787,7 @@
         if (annotation != null) {
             actionName = annotation.value() != null && annotation.value().equals(Action.DEFAULT_VALUE) ?
                     actionName : annotation.value();
-            actionName = StringUtils.contains(actionName, "/") ? StringUtils.substringAfterLast(actionName, "/") : actionName;
+            actionName = StringUtils.contains(actionName, "/") && !slashesInActionNames ? StringUtils.substringAfterLast(actionName, "/") : actionName;
         }
 
         ActionConfig.Builder actionConfig = new ActionConfig.Builder(pkgCfg.getName(),