From f11b40aa46aba7112bfdfb3f954408a1975466ea Mon Sep 17 00:00:00 2001 From: Musachy Barroso Date: Sat, 3 Jan 2009 19:36:36 +0000 Subject: [PATCH] WW-2947 Remove convention's "excludeJars" and add "includeJars" instead git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@731070 13f79535-47bb-0310-9956-ffa450edef68 --- .../PackageBasedActionConfigBuilder.java | 31 +++++++++---------- .../src/main/resources/struts-plugin.xml | 1 - .../PackageBasedActionConfigBuilderTest.java | 1 - 3 files changed, 14 insertions(+), 19 deletions(-) diff --git a/plugins/convention/src/main/java/org/apache/struts2/convention/PackageBasedActionConfigBuilder.java b/plugins/convention/src/main/java/org/apache/struts2/convention/PackageBasedActionConfigBuilder.java index bebf34f2e..9b1270214 100644 --- a/plugins/convention/src/main/java/org/apache/struts2/convention/PackageBasedActionConfigBuilder.java +++ b/plugins/convention/src/main/java/org/apache/struts2/convention/PackageBasedActionConfigBuilder.java @@ -82,7 +82,6 @@ public class PackageBasedActionConfigBuilder implements ActionConfigBuilder { private String[] packageLocators; private String[] includeJars; private String packageLocatorsBasePackage; - private boolean disableJarScanning = true; private boolean disableActionScanning = false; private boolean disablePackageLocatorsScanning = false; private String actionSuffix = "Action"; @@ -160,14 +159,6 @@ public class PackageBasedActionConfigBuilder implements ActionConfigBuilder { this.includeJars = includeJars.split("\\s*[,]\\s*"); } - /** - * @param disableJarScanning Disable scanning jar files for actions - */ - @Inject(value = "struts.convention.action.disableJarScanning", required = false) - public void setDisableJarScanning(String disableJarScanning) { - this.disableJarScanning = "true".equals(disableJarScanning); - } - /** * @param disableActionScanning If set to true, only the named packages will be scanned */ @@ -338,20 +329,26 @@ public class PackageBasedActionConfigBuilder implements ActionConfigBuilder { urlSet = urlSet.excludePaths(System.getProperty("sun.boot.class.path", "")); urlSet = urlSet.exclude(".*/JavaVM.framework/.*"); - if (disableJarScanning || includeJars == null) { + if (includeJars == null) { urlSet = urlSet.exclude(".*?jar(!/)?"); - } else if (includeJars != null) { + } else { + //jar urls regexes were specified //TODO: add this functionality to UrlSet in xwork for next release - List rawIncludedUrls = urlSet.getUrls(); Set includeUrls = new HashSet(); + for (URL url : rawIncludedUrls) { - //check if the url matches one of the "includeJars" - for (String includeJar : includeJars) { - if (Pattern.matches(includeJar, url.toExternalForm())) { - includeUrls.add(url); - break; + if ("jar".equalsIgnoreCase(url.getProtocol())) { + //it is a jar file, make sure it macthes at least a url regex + for (String includeJar : includeJars) { + if (Pattern.matches(includeJar, url.toExternalForm())) { + includeUrls.add(url); + break; + } } + } else { + //it is not a jar + includeUrls.add(url); } } diff --git a/plugins/convention/src/main/resources/struts-plugin.xml b/plugins/convention/src/main/resources/struts-plugin.xml index 8136015b7..20a2af268 100644 --- a/plugins/convention/src/main/resources/struts-plugin.xml +++ b/plugins/convention/src/main/resources/struts-plugin.xml @@ -42,7 +42,6 @@ - diff --git a/plugins/convention/src/test/java/org/apache/struts2/convention/PackageBasedActionConfigBuilderTest.java b/plugins/convention/src/test/java/org/apache/struts2/convention/PackageBasedActionConfigBuilderTest.java index 8ae26e7c6..b5e244466 100644 --- a/plugins/convention/src/test/java/org/apache/struts2/convention/PackageBasedActionConfigBuilderTest.java +++ b/plugins/convention/src/test/java/org/apache/struts2/convention/PackageBasedActionConfigBuilderTest.java @@ -279,7 +279,6 @@ public class PackageBasedActionConfigBuilderTest extends TestCase { interceptorBuilder.setConfiguration(configuration); PackageBasedActionConfigBuilder builder = new PackageBasedActionConfigBuilder(configuration, actionNameBuilder, resultMapBuilder, interceptorBuilder ,of, "false", "struts-default"); - builder.setDisableJarScanning("true"); if (actionPackages != null) { builder.setActionPackages(actionPackages); }