git commit: WW-4166 Uses .get instead [] to avoid potential security issues
Repository: struts Updated Branches: refs/heads/develop 16e240b4a -> 52481bd56 WW-4166 Uses .get instead [] to avoid potential security issues Project: http://git-wip-us.apache.org/repos/asf/struts/repo Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/52481bd5 Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/52481bd5 Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/52481bd5 Branch: refs/heads/develop Commit: 52481bd56dd70ddcb68a737c5724037ed9adbc83 Parents: 16e240b Author: Lukasz Lenart Authored: Wed Aug 6 12:36:54 2014 +0200 Committer: Lukasz Lenart Committed: Wed Aug 6 12:36:54 2014 +0200 -- core/src/main/resources/template/simple/dynamic-attributes.ftl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/struts/blob/52481bd5/core/src/main/resources/template/simple/dynamic-attributes.ftl -- diff --git a/core/src/main/resources/template/simple/dynamic-attributes.ftl b/core/src/main/resources/template/simple/dynamic-attributes.ftl index 485c20c..0c751b7 100644 --- a/core/src/main/resources/template/simple/dynamic-attributes.ftl +++ b/core/src/main/resources/template/simple/dynamic-attributes.ftl @@ -23,7 +23,7 @@ <#if (parameters.dynamicAttributes?? && parameters.dynamicAttributes?size > 0)><#rt/> <#assign aKeys = parameters.dynamicAttributes.keySet()><#rt/> <#list aKeys as aKey><#rt/> - <#assign keyValue = parameters.dynamicAttributes[aKey]/> + <#assign keyValue = parameters.dynamicAttributes.get(aKey)/> <#if keyValue?is_string> <#assign value = struts.translateVariables(keyValue)!keyValue/> <#else>
git commit: WW-4110 Adds special flag to use different logic when creating AOP beans
Repository: struts Updated Branches: refs/heads/develop 52481bd56 -> ae324c981 WW-4110 Adds special flag to use different logic when creating AOP beans Project: http://git-wip-us.apache.org/repos/asf/struts/repo Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/ae324c98 Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/ae324c98 Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/ae324c98 Branch: refs/heads/develop Commit: ae324c98119ecc44041f40fcb5828773c4f72e33 Parents: 52481bd Author: Lukasz Lenart Authored: Wed Aug 6 20:21:25 2014 +0200 Committer: Lukasz Lenart Committed: Wed Aug 6 20:21:25 2014 +0200 -- .../java/org/apache/struts2/StrutsConstants.java | 3 +++ .../resources/org/apache/struts2/default.properties | 5 + .../struts2/spring/StrutsSpringObjectFactory.java| 3 +++ .../spring/StrutsSpringObjectFactoryTest.java| 4 ++-- .../xwork2/spring/SpringObjectFactory.java | 15 +++ 5 files changed, 28 insertions(+), 2 deletions(-) -- http://git-wip-us.apache.org/repos/asf/struts/blob/ae324c98/core/src/main/java/org/apache/struts2/StrutsConstants.java -- diff --git a/core/src/main/java/org/apache/struts2/StrutsConstants.java b/core/src/main/java/org/apache/struts2/StrutsConstants.java index 7676f4c..03287d6 100644 --- a/core/src/main/java/org/apache/struts2/StrutsConstants.java +++ b/core/src/main/java/org/apache/struts2/StrutsConstants.java @@ -155,6 +155,9 @@ public final class StrutsConstants { /** Whether Spring should use its class cache or not */ public static final String STRUTS_OBJECTFACTORY_SPRING_USE_CLASS_CACHE = "struts.objectFactory.spring.useClassCache"; +/** Uses different logic to construct beans, see https://issues.apache.org/jira/browse/WW-4110 */ +public static final String STRUTS_OBJECTFACTORY_SPRING_ENABLE_AOP_SUPPORT = "struts.objectFactory.spring.enableAopSupport"; + /** Whether or not XSLT templates should not be cached */ public static final String STRUTS_XSLT_NOCACHE = "struts.xslt.nocache"; http://git-wip-us.apache.org/repos/asf/struts/blob/ae324c98/core/src/main/resources/org/apache/struts2/default.properties -- diff --git a/core/src/main/resources/org/apache/struts2/default.properties b/core/src/main/resources/org/apache/struts2/default.properties index df3e1d4..5618666 100644 --- a/core/src/main/resources/org/apache/struts2/default.properties +++ b/core/src/main/resources/org/apache/struts2/default.properties @@ -47,6 +47,11 @@ struts.objectFactory.spring.useClassCache = true ### valid values are: true, false (false is the default) struts.objectFactory.spring.autoWire.alwaysRespect = false +### By default SpringObjectFactory doesn't support AOP +### This flag was added just temporally to check if nothing is broken +### See https://issues.apache.org/jira/browse/WW-4110 +struts.objectFactory.spring.enableAopSupport = false + ### if specified, the default object type determiner can be overridden here ### Note: short-hand notation is supported in some cases, such as "tiger" or "notiger" ### Alternatively, you can provide a com.opensymphony.xwork2.util.ObjectTypeDeterminer implementation name here http://git-wip-us.apache.org/repos/asf/struts/blob/ae324c98/plugins/spring/src/main/java/org/apache/struts2/spring/StrutsSpringObjectFactory.java -- diff --git a/plugins/spring/src/main/java/org/apache/struts2/spring/StrutsSpringObjectFactory.java b/plugins/spring/src/main/java/org/apache/struts2/spring/StrutsSpringObjectFactory.java index a5ad82d..d95830a 100644 --- a/plugins/spring/src/main/java/org/apache/struts2/spring/StrutsSpringObjectFactory.java +++ b/plugins/spring/src/main/java/org/apache/struts2/spring/StrutsSpringObjectFactory.java @@ -67,6 +67,7 @@ public class StrutsSpringObjectFactory extends SpringObjectFactory { @Inject(value=StrutsConstants.STRUTS_OBJECTFACTORY_SPRING_AUTOWIRE,required=false) String autoWire, @Inject(value=StrutsConstants.STRUTS_OBJECTFACTORY_SPRING_AUTOWIRE_ALWAYS_RESPECT,required=false) String alwaysAutoWire, @Inject(value=StrutsConstants.STRUTS_OBJECTFACTORY_SPRING_USE_CLASS_CACHE,required=false) String useClassCacheStr, + @Inject(value=StrutsConstants.STRUTS_OBJECTFACTORY_SPRING_ENABLE_AOP_SUPPORT,required=false) String enableAopSupport, @Inject ServletContext servletContext, @Inject(StrutsConstants.STRUTS_DEVMODE) String devMode, @Inject Container container) { @@ -141,6 +142,8 @@ public class StrutsSpringObjectFactory extends SpringObjectFactory { this.setAlwaysResp
[CONF] Confluence Changes in the last 24 hours
Confluence Changes in the last 24 hours Apache Ambari Pages Page: Blueprints edited by Erik Bergenholtz [08:45 PM] (View Changes) Apache Buildr Pages Page: August 2014 Board Report created by Alex Boisvert [02:33 PM] Apache Camel Pages Page: Rest DSL edited by Claus Ibsen [01:06 PM] (View Changes) Apache Cloudstack Pages Page: CloudStack 4.4.1 BugFix Release created by Daan Hoogland [08:46 AM] Page: CloudStack 4.4 Release edited by Daan Hoogland [08:42 AM] (View Changes) Page: Git edited by Rajani Karuturi [06:22 AM] (View Changes) Apache CXF Documentation Pages Page: JAXRS Kerberos edited by Colm O hEigeartaigh [04:40 PM] (View Changes) Drill Wiki Pages Page: Data Types edited by Bridget Bevens [08:09 PM] (View Changes) Page: Connecting to Data Sources edited by Bridget Bevens [01:03 AM] (View Changes) Apache Flex Pages Page: 1.2 Setting up Manually edited by Tom Chiverton [08:10 AM] (View Changes) Apache Hive Pages Page: WebHCat Configure edited by Lefty Leverenz [06:12 AM] (View Changes) Page: Configuration Properties edited by Lefty Leverenz [04:39 AM] (View Changes) Page: HiveServer2 Clients edited by Lefty Leverenz [02:02 AM] (View Changes) KNOX Pages
[2/3] git commit: Adds proper logging dependency and configuration
Adds proper logging dependency and configuration Project: http://git-wip-us.apache.org/repos/asf/struts/repo Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/f1861adf Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/f1861adf Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/f1861adf Branch: refs/heads/develop Commit: f1861adff40e6c0784584cb8178db8c8eb0e04ec Parents: a2ba908 Author: Lukasz Lenart Authored: Thu Aug 7 07:42:15 2014 +0200 Committer: Lukasz Lenart Committed: Thu Aug 7 07:42:15 2014 +0200 -- apps/rest-showcase/pom.xml | 4 apps/rest-showcase/src/main/resources/log4j.properties | 13 + 2 files changed, 9 insertions(+), 8 deletions(-) -- http://git-wip-us.apache.org/repos/asf/struts/blob/f1861adf/apps/rest-showcase/pom.xml -- diff --git a/apps/rest-showcase/pom.xml b/apps/rest-showcase/pom.xml index 4d9507e..965b0d1 100644 --- a/apps/rest-showcase/pom.xml +++ b/apps/rest-showcase/pom.xml @@ -49,6 +49,10 @@ struts2-config-browser-plugin +log4j +log4j + + junit junit test http://git-wip-us.apache.org/repos/asf/struts/blob/f1861adf/apps/rest-showcase/src/main/resources/log4j.properties -- diff --git a/apps/rest-showcase/src/main/resources/log4j.properties b/apps/rest-showcase/src/main/resources/log4j.properties index a29a304..3c5af7c 100644 --- a/apps/rest-showcase/src/main/resources/log4j.properties +++ b/apps/rest-showcase/src/main/resources/log4j.properties @@ -11,19 +11,16 @@ # Set root logger level to WARN and append to stdout -log4j.rootLogger=WARN, stdout - +log4j.rootLogger=INFO, stdout log4j.appender.stdout=org.apache.log4j.ConsoleAppender +log4j.appender.stdout.Target=System.out log4j.appender.stdout.layout=org.apache.log4j.PatternLayout # Pattern to output the caller's file name and line number. log4j.appender.stdout.layout.ConversionPattern=%d %5p (%c:%L) - %m%n # Print only messages of level ERROR or above in the package noModule. -log4j.logger.noModule=ERROR - -# OpenSymphony Stuff -log4j.logger.com.opensymphony=INFO +log4j.logger.noModule=FATAL -# Struts2 Stuff -log4j.logger.org.apache.struts2=INFO +log4j.logger.com.opensymphony.xwork2=DEBUG +log4j.logger.org.apache.struts2=DEBUG
[1/3] git commit: Removes duplicated logging lib
Repository: struts Updated Branches: refs/heads/develop ae324c981 -> dfb2bd3db Removes duplicated logging lib Project: http://git-wip-us.apache.org/repos/asf/struts/repo Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/a2ba908f Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/a2ba908f Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/a2ba908f Branch: refs/heads/develop Commit: a2ba908fa7181e5a63c8bf14cfe9a3c635cfdbc6 Parents: ae324c9 Author: Lukasz Lenart Authored: Thu Aug 7 07:41:17 2014 +0200 Committer: Lukasz Lenart Committed: Thu Aug 7 07:41:17 2014 +0200 -- apps/blank/pom.xml | 5 - 1 file changed, 5 deletions(-) -- http://git-wip-us.apache.org/repos/asf/struts/blob/a2ba908f/apps/blank/pom.xml -- diff --git a/apps/blank/pom.xml b/apps/blank/pom.xml index 675de3f..83bec60 100644 --- a/apps/blank/pom.xml +++ b/apps/blank/pom.xml @@ -48,11 +48,6 @@ -commons-logging -commons-logging - - - log4j log4j
[3/3] git commit: WW-4055 Includes all jars by default
WW-4055 Includes all jars by default Project: http://git-wip-us.apache.org/repos/asf/struts/repo Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/dfb2bd3d Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/dfb2bd3d Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/dfb2bd3d Branch: refs/heads/develop Commit: dfb2bd3dbe8750ea9d98934cc5df1b61cac3516a Parents: f1861ad Author: Lukasz Lenart Authored: Thu Aug 7 07:42:58 2014 +0200 Committer: Lukasz Lenart Committed: Thu Aug 7 07:42:58 2014 +0200 -- .../PackageBasedActionConfigBuilder.java| 53 +--- 1 file changed, 23 insertions(+), 30 deletions(-) -- http://git-wip-us.apache.org/repos/asf/struts/blob/dfb2bd3d/plugins/convention/src/main/java/org/apache/struts2/convention/PackageBasedActionConfigBuilder.java -- 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 b9b1a25..f6a43a8 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 @@ -93,7 +93,7 @@ public class PackageBasedActionConfigBuilder implements ActionConfigBuilder { private String[] actionPackages; private String[] excludePackages; private String[] packageLocators; -private String[] includeJars; +private String[] includeJars = new String[] { ".*?\\.jar(!/|/)?" }; private String packageLocatorsBasePackage; private boolean disableActionScanning = false; private boolean disablePackageLocatorsScanning = false; @@ -458,42 +458,35 @@ public class PackageBasedActionConfigBuilder implements ActionConfigBuilder { urlSet = urlSet.excludePaths(System.getProperty("sun.boot.class.path", "")); urlSet = urlSet.exclude(".*/JavaVM.framework/.*"); -if (includeJars == null) { -urlSet = urlSet.exclude(".*?\\.jar(!/|/)?"); -} else { -//jar urls regexes were specified -List rawIncludedUrls = urlSet.getUrls(); -Set includeUrls = new HashSet(); -boolean[] patternUsed = new boolean[includeJars.length]; - -for (URL url : rawIncludedUrls) { -if (fileProtocols.contains(url.getProtocol())) { -//it is a jar file, make sure it macthes at least a url regex -for (int i = 0; i < includeJars.length; i++) { -String includeJar = includeJars[i]; -if (Pattern.matches(includeJar, url.toExternalForm())) { -includeUrls.add(url); -patternUsed[i] = true; -break; -} +List rawIncludedUrls = urlSet.getUrls(); +Set includeUrls = new HashSet(); +boolean[] patternUsed = new boolean[includeJars.length]; + +for (URL url : rawIncludedUrls) { +if (fileProtocols.contains(url.getProtocol())) { +//it is a jar file, make sure it macthes at least a url regex +for (int i = 0; i < includeJars.length; i++) { +String includeJar = includeJars[i]; +if (Pattern.matches(includeJar, url.toExternalForm())) { +includeUrls.add(url); +patternUsed[i] = true; +break; } -} else { -//it is not a jar -includeUrls.add(url); } +} else { +//it is not a jar +includeUrls.add(url); } +} -if (LOG.isWarnEnabled()) { -for (int i = 0; i < patternUsed.length; i++) { -if (!patternUsed[i]) { -LOG.warn("The includeJars pattern [#0] did not match any jars in the classpath", includeJars[i]); -} +if (LOG.isWarnEnabled()) { +for (int i = 0; i < patternUsed.length; i++) { +if (!patternUsed[i]) { +LOG.warn("The includeJars pattern [#0] did not match any jars in the classpath", includeJars[i]); } } -return new UrlSet(includeUrls); } - -return urlSet; +return new UrlSet(includeUrls); } /**