Author: mrdon Date: Sat Oct 20 08:08:15 2007 New Revision: 586740 URL: http://svn.apache.org/viewvc?rev=586740&view=rev Log: Making it easier to extend the classpath package provider WW-1715
Modified: struts/struts2/trunk/plugins/codebehind/src/main/java/org/apache/struts2/config/ClasspathPackageProvider.java Modified: struts/struts2/trunk/plugins/codebehind/src/main/java/org/apache/struts2/config/ClasspathPackageProvider.java URL: http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/codebehind/src/main/java/org/apache/struts2/config/ClasspathPackageProvider.java?rev=586740&r1=586739&r2=586740&view=diff ============================================================================== --- struts/struts2/trunk/plugins/codebehind/src/main/java/org/apache/struts2/config/ClasspathPackageProvider.java (original) +++ struts/struts2/trunk/plugins/codebehind/src/main/java/org/apache/struts2/config/ClasspathPackageProvider.java Sat Oct 20 08:08:15 2007 @@ -241,16 +241,7 @@ protected void loadPackages(String[] pkgs) { ResolverUtil<Class> resolver = new ResolverUtil<Class>(); - resolver.find(new ClassTest() { - // Match Action implementations and classes ending with "Action" - public boolean matches(Class type) { - // TODO: should also find annotated classes - return (Action.class.isAssignableFrom(type) || - type.getSimpleName().endsWith("Action") || - type.getAnnotation(org.apache.struts2.config.Action.class) != null); - } - - }, pkgs); + resolver.find(createActionClassTest(), pkgs); Set<? extends Class<? extends Class>> actionClasses = resolver.getClasses(); for (Object obj : actionClasses) { @@ -265,6 +256,23 @@ } } + protected ClassTest createActionClassTest() { + return new ClassTest() { + // Match Action implementations and classes ending with "Action" + public boolean matches(Class type) { + // TODO: should also find annotated classes + return (Action.class.isAssignableFrom(type) || + type.getSimpleName().endsWith(getClassSuffix()) || + type.getAnnotation(org.apache.struts2.config.Action.class) != null); + } + + }; + } + + protected String getClassSuffix() { + return ACTION; + } + /** * Create a default action mapping for a class instance. * @@ -310,8 +318,8 @@ } } // Truncate Action suffix if found - if (actionName.endsWith(ACTION)) { - actionName = actionName.substring(0, actionName.length() - ACTION.length()); + if (actionName.endsWith(getClassSuffix())) { + actionName = actionName.substring(0, actionName.length() - getClassSuffix().length()); } // Force initial letter of action to lowercase, if desired