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
This commit is contained in:
Musachy Barroso
2009-01-03 19:36:36 +00:00
parent e2a7c4c183
commit f11b40aa46
3 changed files with 14 additions and 19 deletions
@@ -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<URL> rawIncludedUrls = urlSet.getUrls();
Set<URL> includeUrls = new HashSet<URL>();
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);
}
}
@@ -42,7 +42,6 @@
<constant name="struts.convention.result.flatLayout" value="true"/>
<constant name="struts.convention.action.suffix" value="Action"/>
<constant name="struts.convention.action.disableScanning" value="false"/>
<constant name="struts.convention.action.disableJarScanning" value="true"/>
<constant name="struts.convention.action.mapAllMatches" value="false"/>
<constant name="struts.convention.action.checkImplementsAction" value="true"/>
<constant name="struts.convention.default.parent.package" value="convention-default"/>
@@ -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);
}