mirror of
https://github.com/apache/struts.git
synced 2026-08-11 01:27:14 +00:00
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:
+14
-17
@@ -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"/>
|
||||
|
||||
-1
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user