Git Push Summary

2014-06-27 Thread lukaszlenart
Repository: struts
Updated Branches:
  refs/heads/feature/exclude-object-class [deleted] 965428711


[12/12] git commit: Extends test to use the new attribute

2014-06-27 Thread lukaszlenart
Extends test to use the new attribute


Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/d67fce1f
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/d67fce1f
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/d67fce1f

Branch: refs/heads/feature/WW-4295-localization
Commit: d67fce1f2577229139938d4588bb970c3f869078
Parents: ed8a0b8
Author: Lukasz Lenart 
Authored: Fri Jun 27 12:56:01 2014 +0200
Committer: Lukasz Lenart 
Committed: Fri Jun 27 12:56:01 2014 +0200

--
 .../struts2/views/jsp/ui/OptGroupTest.java  | 41 
 .../apache/struts2/views/jsp/ui/OptGroup-6.txt  | 40 +++
 2 files changed, 81 insertions(+)
--


http://git-wip-us.apache.org/repos/asf/struts/blob/d67fce1f/core/src/test/java/org/apache/struts2/views/jsp/ui/OptGroupTest.java
--
diff --git 
a/core/src/test/java/org/apache/struts2/views/jsp/ui/OptGroupTest.java 
b/core/src/test/java/org/apache/struts2/views/jsp/ui/OptGroupTest.java
index c11f511..038cb6a 100644
--- a/core/src/test/java/org/apache/struts2/views/jsp/ui/OptGroupTest.java
+++ b/core/src/test/java/org/apache/struts2/views/jsp/ui/OptGroupTest.java
@@ -23,6 +23,7 @@ package org.apache.struts2.views.jsp.ui;
 
 import java.util.LinkedHashMap;
 
+import com.opensymphony.xwork2.Action;
 import org.apache.struts2.TestAction;
 import org.apache.struts2.views.jsp.AbstractUITagTest;
 
@@ -190,4 +191,44 @@ public class OptGroupTest extends AbstractUITagTest {
 //System.out.println(writer.toString());
 verify(SelectTag.class.getResource("OptGroup-5.txt"));
 }
+
+public void testOptGroupWithValueKey() throws Exception {
+SelectTag selectTag = new SelectTag();
+selectTag.setName("mySelection");
+selectTag.setLabel("My Selection");
+selectTag.setList("%{#{'ONE':'one','TWO':'two','THREE':'three'}}");
+selectTag.setListValueKey("valueKey");
+
+stack.push(new Action() {
+public String execute() throws Exception {
+return SUCCESS;
+}
+
+public String getValueKey() { return "MyValue"; }
+});
+
+OptGroupTag optGroupTag1 = new OptGroupTag();
+optGroupTag1.setLabel("My Label 1");
+optGroupTag1.setList("%{#{'AAA':'aaa','BBB':'bbb','CCC':'ccc'}}");
+
+OptGroupTag optGroupTag2 = new OptGroupTag();
+optGroupTag2.setLabel("My Label 2");
+optGroupTag2.setList("%{#{'DDD':'ddd','EEE':'eee','FFF':'fff'}}");
+
+selectTag.setPageContext(pageContext);
+selectTag.doStartTag();
+optGroupTag1.setPageContext(pageContext);
+optGroupTag1.doStartTag();
+optGroupTag1.doEndTag();
+optGroupTag2.setPageContext(pageContext);
+optGroupTag2.doStartTag();
+optGroupTag2.doEndTag();
+selectTag.doEndTag();
+
+
+//System.out.println(writer.toString());
+verify(SelectTag.class.getResource("OptGroup-6.txt"));
+}
+
+
 }

http://git-wip-us.apache.org/repos/asf/struts/blob/d67fce1f/core/src/test/resources/org/apache/struts2/views/jsp/ui/OptGroup-6.txt
--
diff --git 
a/core/src/test/resources/org/apache/struts2/views/jsp/ui/OptGroup-6.txt 
b/core/src/test/resources/org/apache/struts2/views/jsp/ui/OptGroup-6.txt
new file mode 100644
index 000..401ef44
--- /dev/null
+++ b/core/src/test/resources/org/apache/struts2/views/jsp/ui/OptGroup-6.txt
@@ -0,0 +1,40 @@
+
+My 
Selection:
+
+
+MyValue
+MyValue
+MyValue
+
+
+
+   aaa
+   
+   bbb
+   
+   ccc
+   
+
+
+
+   ddd
+   
+   eee
+   
+   fff
+   
+
+
+
+
+
\ No newline at end of file



[02/12] git commit: Adds additional field to allow set label key used in I18N lookup

2014-06-27 Thread lukaszlenart
Adds additional field to allow set label key used in I18N lookup


Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/90189362
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/90189362
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/90189362

Branch: refs/heads/feature/WW-4295-localization
Commit: 901893628b31ee3b38b2fc9196045a097a0f4217
Parents: 7f586d3
Author: Lukasz Lenart 
Authored: Thu Mar 20 08:08:03 2014 +0100
Committer: Lukasz Lenart 
Committed: Thu Mar 20 08:08:03 2014 +0100

--
 .../java/org/apache/struts2/components/ListUIBean.java   | 11 +++
 .../org/apache/struts2/views/jsp/ui/AbstractListTag.java |  6 ++
 2 files changed, 17 insertions(+)
--


http://git-wip-us.apache.org/repos/asf/struts/blob/90189362/core/src/main/java/org/apache/struts2/components/ListUIBean.java
--
diff --git a/core/src/main/java/org/apache/struts2/components/ListUIBean.java 
b/core/src/main/java/org/apache/struts2/components/ListUIBean.java
index b1a4493..11e59aa 100644
--- a/core/src/main/java/org/apache/struts2/components/ListUIBean.java
+++ b/core/src/main/java/org/apache/struts2/components/ListUIBean.java
@@ -49,6 +49,7 @@ public abstract class ListUIBean extends UIBean {
 protected Object list;
 protected String listKey;
 protected String listValue;
+protected String listLabelKey;
 protected String listCssClass;
 protected String listCssStyle;
 protected String listTitle;
@@ -115,6 +116,11 @@ public abstract class ListUIBean extends UIBean {
 addParameter("listValue", "value");
 }
 
+if (listLabelKey != null) {
+listLabelKey = stripExpressionIfAltSyntax(listLabelKey);
+addParameter("listLabelKey", listLabelKey);
+}
+
 if (listCssClass != null && listCssClass.trim().length() > 0) {
 addParameter("listCssClass", listCssClass);
 }
@@ -152,6 +158,11 @@ public abstract class ListUIBean extends UIBean {
 this.listValue = listValue;
 }
 
+@StrutsTagAttribute(description = "Property of list objects to be used to 
lookup for localised version of field label")
+public void setListLabelKey(String listLabelKey) {
+this.listLabelKey = listLabelKey;
+}
+
 @StrutsTagAttribute(description = "Property of list objects to get css 
class from")
 public void setListCssClass(String listCssClass) {
 this.listCssClass = listCssClass;

http://git-wip-us.apache.org/repos/asf/struts/blob/90189362/core/src/main/java/org/apache/struts2/views/jsp/ui/AbstractListTag.java
--
diff --git 
a/core/src/main/java/org/apache/struts2/views/jsp/ui/AbstractListTag.java 
b/core/src/main/java/org/apache/struts2/views/jsp/ui/AbstractListTag.java
index 1f2ebb4..4972ff0 100644
--- a/core/src/main/java/org/apache/struts2/views/jsp/ui/AbstractListTag.java
+++ b/core/src/main/java/org/apache/struts2/views/jsp/ui/AbstractListTag.java
@@ -29,6 +29,7 @@ public abstract class AbstractListTag extends AbstractUITag {
 protected String list;
 protected String listKey;
 protected String listValue;
+protected String listLabelKey;
 protected String listCssClass;
 protected String listCssStyle;
 protected String listTitle;
@@ -40,6 +41,7 @@ public abstract class AbstractListTag extends AbstractUITag {
 listUIBean.setList(list);
 listUIBean.setListKey(listKey);
 listUIBean.setListValue(listValue);
+listUIBean.setListLabelKey(listLabelKey);
 listUIBean.setListCssClass(listCssClass);
 listUIBean.setListCssStyle(listCssStyle);
 listUIBean.setListTitle(listTitle);
@@ -57,6 +59,10 @@ public abstract class AbstractListTag extends AbstractUITag {
 this.listValue = listValue;
 }
 
+public void setListLabelKey(String listLabelKey) {
+this.listLabelKey = listLabelKey;
+}
+
 public void setListCssClass(String listCssClass) {
 this.listCssClass = listCssClass;
 }



[10/12] git commit: Removes optional valueKey to keep backward compatibility

2014-06-27 Thread lukaszlenart
Removes optional valueKey to keep backward compatibility


Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/a2791a83
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/a2791a83
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/a2791a83

Branch: refs/heads/feature/WW-4295-localization
Commit: a2791a8305666859d6484098fb597f93c94908bc
Parents: 13269fa
Author: Lukasz Lenart 
Authored: Fri Jun 27 12:55:13 2014 +0200
Committer: Lukasz Lenart 
Committed: Fri Jun 27 12:55:13 2014 +0200

--
 core/src/main/java/org/apache/struts2/components/ListUIBean.java | 2 --
 1 file changed, 2 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/struts/blob/a2791a83/core/src/main/java/org/apache/struts2/components/ListUIBean.java
--
diff --git a/core/src/main/java/org/apache/struts2/components/ListUIBean.java 
b/core/src/main/java/org/apache/struts2/components/ListUIBean.java
index c9f704a..1adfc2e 100644
--- a/core/src/main/java/org/apache/struts2/components/ListUIBean.java
+++ b/core/src/main/java/org/apache/struts2/components/ListUIBean.java
@@ -113,8 +113,6 @@ public abstract class ListUIBean extends UIBean {
 if (listValueKey != null) {
 listValueKey = stripExpressionIfAltSyntax(listValueKey);
 addParameter("listValueKey", listValueKey);
-} else if (value instanceof Map) {
-addParameter("listValueKey", "valueKey");
 }
 
 if (listValue != null) {



[07/12] git commit: Merge remote-tracking branch 'abrin/feature-WW-4295-localization' into feature/WW-4295-localization

2014-06-27 Thread lukaszlenart
Merge remote-tracking branch 'abrin/feature-WW-4295-localization' into 
feature/WW-4295-localization


Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/23498a33
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/23498a33
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/23498a33

Branch: refs/heads/feature/WW-4295-localization
Commit: 23498a332119486a043e852366dfb73495a510d9
Parents: b78349a 6def514
Author: Lukasz Lenart 
Authored: Fri Jun 27 08:40:49 2014 +0200
Committer: Lukasz Lenart 
Committed: Fri Jun 27 08:40:49 2014 +0200

--
 .../java/org/apache/struts2/components/ListUIBean.java | 13 +
 1 file changed, 13 insertions(+)
--


http://git-wip-us.apache.org/repos/asf/struts/blob/23498a33/core/src/main/java/org/apache/struts2/components/ListUIBean.java
--
diff --cc core/src/main/java/org/apache/struts2/components/ListUIBean.java
index 11e59aa,69deae4..c9f704a
--- a/core/src/main/java/org/apache/struts2/components/ListUIBean.java
+++ b/core/src/main/java/org/apache/struts2/components/ListUIBean.java
@@@ -48,8 -48,8 +48,9 @@@ import java.util.Map
  public abstract class ListUIBean extends UIBean {
  protected Object list;
  protected String listKey;
+ protected String listValueKey;
  protected String listValue;
 +protected String listLabelKey;
  protected String listCssClass;
  protected String listCssStyle;
  protected String listTitle;



[05/12] git commit: Extends blank app to demonstrate the new possibilities

2014-06-27 Thread lukaszlenart
Extends blank app to demonstrate the new possibilities


Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/b78349ad
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/b78349ad
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/b78349ad

Branch: refs/heads/feature/WW-4295-localization
Commit: b78349ad5dade8a47fb335f6ef18c13a36101842
Parents: 7e98fe7
Author: Lukasz Lenart 
Authored: Thu Mar 20 08:12:13 2014 +0100
Committer: Lukasz Lenart 
Committed: Thu Mar 20 08:12:13 2014 +0100

--
 apps/blank/src/main/java/example/HelloWorld.java  | 7 +++
 apps/blank/src/main/java/example/YesNo.java   | 5 +
 apps/blank/src/main/resources/example/package.properties  | 2 ++
 apps/blank/src/main/webapp/WEB-INF/jsp/example/HelloWorld.jsp | 2 ++
 4 files changed, 16 insertions(+)
--


http://git-wip-us.apache.org/repos/asf/struts/blob/b78349ad/apps/blank/src/main/java/example/HelloWorld.java
--
diff --git a/apps/blank/src/main/java/example/HelloWorld.java 
b/apps/blank/src/main/java/example/HelloWorld.java
index d5268ca..73a5221 100644
--- a/apps/blank/src/main/java/example/HelloWorld.java
+++ b/apps/blank/src/main/java/example/HelloWorld.java
@@ -21,6 +21,9 @@
 
 package example;
 
+import java.util.Arrays;
+import java.util.List;
+
 /**
  * Set welcome message.
  */
@@ -58,4 +61,8 @@ public class HelloWorld extends ExampleSupport {
 public void setMessage(String message) {
 this.message = message;
 }
+
+public List getValues() {
+return Arrays.asList(YesNo.values());
+}
 }

http://git-wip-us.apache.org/repos/asf/struts/blob/b78349ad/apps/blank/src/main/java/example/YesNo.java
--
diff --git a/apps/blank/src/main/java/example/YesNo.java 
b/apps/blank/src/main/java/example/YesNo.java
new file mode 100644
index 000..d27ed7c
--- /dev/null
+++ b/apps/blank/src/main/java/example/YesNo.java
@@ -0,0 +1,5 @@
+package example;
+
+public enum YesNo {
+YES, NO
+}

http://git-wip-us.apache.org/repos/asf/struts/blob/b78349ad/apps/blank/src/main/resources/example/package.properties
--
diff --git a/apps/blank/src/main/resources/example/package.properties 
b/apps/blank/src/main/resources/example/package.properties
index c1f4b33..1ac0e71 100644
--- a/apps/blank/src/main/resources/example/package.properties
+++ b/apps/blank/src/main/resources/example/package.properties
@@ -3,3 +3,5 @@ requiredstring = ${getText(fieldName)} is required.
 password = Password
 username = User Name
 Missing.message =  This feature is under construction. Please try again in the 
next interation.
+test-yes=Yo
+test-no=Nein

http://git-wip-us.apache.org/repos/asf/struts/blob/b78349ad/apps/blank/src/main/webapp/WEB-INF/jsp/example/HelloWorld.jsp
--
diff --git a/apps/blank/src/main/webapp/WEB-INF/jsp/example/HelloWorld.jsp 
b/apps/blank/src/main/webapp/WEB-INF/jsp/example/HelloWorld.jsp
index 938c761..f10fc02 100644
--- a/apps/blank/src/main/webapp/WEB-INF/jsp/example/HelloWorld.jsp
+++ b/apps/blank/src/main/webapp/WEB-INF/jsp/example/HelloWorld.jsp
@@ -24,5 +24,7 @@
 
 
 
+
+
 
 



[04/12] git commit: Adds autogenerated files

2014-06-27 Thread lukaszlenart
Adds autogenerated files


Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/7e98fe7a
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/7e98fe7a
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/7e98fe7a

Branch: refs/heads/feature/WW-4295-localization
Commit: 7e98fe7a731b44bb85375f9363465838803a0a16
Parents: 69df870
Author: Lukasz Lenart 
Authored: Thu Mar 20 08:08:50 2014 +0100
Committer: Lukasz Lenart 
Committed: Thu Mar 20 08:08:50 2014 +0100

--
 core/src/site/resources/tags/checkboxlist.html | 8 
 core/src/site/resources/tags/doubleselect.html | 8 
 core/src/site/resources/tags/inputtransferselect.html  | 8 
 core/src/site/resources/tags/optiontransferselect.html | 8 
 core/src/site/resources/tags/radio.html| 8 
 core/src/site/resources/tags/select.html   | 8 
 core/src/site/resources/tags/updownselect.html | 8 
 7 files changed, 56 insertions(+)
--


http://git-wip-us.apache.org/repos/asf/struts/blob/7e98fe7a/core/src/site/resources/tags/checkboxlist.html
--
diff --git a/core/src/site/resources/tags/checkboxlist.html 
b/core/src/site/resources/tags/checkboxlist.html
index 0ad3225..95e2e97 100644
--- a/core/src/site/resources/tags/checkboxlist.html
+++ b/core/src/site/resources/tags/checkboxlist.html
@@ -170,6 +170,14 @@ Please do not edit it directly.
 Property 
of list objects to get field value from


+   listLabelKey
+   false
+   
+   false
+   String
+   Property 
of list objects to be used to lookup for localised version of field label
+   
+   
listTitle
false


http://git-wip-us.apache.org/repos/asf/struts/blob/7e98fe7a/core/src/site/resources/tags/doubleselect.html
--
diff --git a/core/src/site/resources/tags/doubleselect.html 
b/core/src/site/resources/tags/doubleselect.html
index 00a1558..becaf8b 100644
--- a/core/src/site/resources/tags/doubleselect.html
+++ b/core/src/site/resources/tags/doubleselect.html
@@ -458,6 +458,14 @@ Please do not edit it directly.
 Property 
of list objects to get field value from


+   listLabelKey
+   false
+   
+   false
+   String
+   Property 
of list objects to be used to lookup for localised version of field label
+   
+   
listTitle
false


http://git-wip-us.apache.org/repos/asf/struts/blob/7e98fe7a/core/src/site/resources/tags/inputtransferselect.html
--
diff --git a/core/src/site/resources/tags/inputtransferselect.html 
b/core/src/site/resources/tags/inputtransferselect.html
index 4c33f7c..9f1a1e1 100644
--- a/core/src/site/resources/tags/inputtransferselect.html
+++ b/core/src/site/resources/tags/inputtransferselect.html
@@ -242,6 +242,14 @@ Please do not edit it directly.
 Property 
of list objects to get field value from


+   listLabelKey
+   false
+   
+   false
+   String
+   Property 
of list objects to be used to lookup for localised version of field label
+   
+   
listTitle
false


http://git-wip-us.apache.org/repos/asf/struts/blob/7e98fe7a/core/src/site/resources/tags/optiontransferselect.html
-

[03/12] git commit: Extends template to use the new field to localise value's label

2014-06-27 Thread lukaszlenart
Extends template to use the new field to localise value's label


Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/69df8704
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/69df8704
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/69df8704

Branch: refs/heads/feature/WW-4295-localization
Commit: 69df87047ab2a72c339a0ee320459757ba439f40
Parents: 9018936
Author: Lukasz Lenart 
Authored: Thu Mar 20 08:08:27 2014 +0100
Committer: Lukasz Lenart 
Committed: Thu Mar 20 08:08:27 2014 +0100

--
 core/src/main/resources/template/simple/checkboxlist.ftl | 10 --
 1 file changed, 4 insertions(+), 6 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/struts/blob/69df8704/core/src/main/resources/template/simple/checkboxlist.ftl
--
diff --git a/core/src/main/resources/template/simple/checkboxlist.ftl 
b/core/src/main/resources/template/simple/checkboxlist.ftl
index 9662e42..e2e569c 100644
--- a/core/src/main/resources/template/simple/checkboxlist.ftl
+++ b/core/src/main/resources/template/simple/checkboxlist.ftl
@@ -29,16 +29,14 @@
 <#else>
 <#assign itemKey = stack.findValue('top')/>
 
-  <#if parameters.listValueKey??>
+<#if parameters.listLabelKey??>
 <#-- checks the valueStack for the 'valueKey.' The valueKey is then 
looked-up in the locale 
file for it's localized value.  This is then used as a label -->
-<#assign itemValue = stack.findString(parameters.listValueKey)/>
-<#-- FIXME: find a better way to get the value than a call to @s.text -->
-<#assign itemValue><@s.text name="${itemValue}"/>
+<#assign itemValue = 
struts.getText(stack.findString(parameters.listLabelKey))/>
 <#elseif parameters.listValue??>
 <#assign itemValue = 
stack.findString(parameters.listValue)?default("")/>
-<#else>
-<#assign itemValue = stack.findString('top')/>
+<#else>
+ <#assign itemValue = stack.findString('top')/>
 
 <#if parameters.listCssClass??>
 <#if stack.findString(parameters.listCssClass)??>



[09/12] git commit: Adds missing tag attribute field

2014-06-27 Thread lukaszlenart
Adds missing tag attribute field


Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/13269fa1
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/13269fa1
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/13269fa1

Branch: refs/heads/feature/WW-4295-localization
Commit: 13269fa15f02409732ca51545141a40ae2f4680c
Parents: ca230ab
Author: Lukasz Lenart 
Authored: Fri Jun 27 12:54:44 2014 +0200
Committer: Lukasz Lenart 
Committed: Fri Jun 27 12:54:44 2014 +0200

--
 .../java/org/apache/struts2/views/jsp/ui/AbstractListTag.java  | 6 ++
 1 file changed, 6 insertions(+)
--


http://git-wip-us.apache.org/repos/asf/struts/blob/13269fa1/core/src/main/java/org/apache/struts2/views/jsp/ui/AbstractListTag.java
--
diff --git 
a/core/src/main/java/org/apache/struts2/views/jsp/ui/AbstractListTag.java 
b/core/src/main/java/org/apache/struts2/views/jsp/ui/AbstractListTag.java
index 4972ff0..9b96f4a 100644
--- a/core/src/main/java/org/apache/struts2/views/jsp/ui/AbstractListTag.java
+++ b/core/src/main/java/org/apache/struts2/views/jsp/ui/AbstractListTag.java
@@ -29,6 +29,7 @@ public abstract class AbstractListTag extends AbstractUITag {
 protected String list;
 protected String listKey;
 protected String listValue;
+protected String listValueKey;
 protected String listLabelKey;
 protected String listCssClass;
 protected String listCssStyle;
@@ -41,6 +42,7 @@ public abstract class AbstractListTag extends AbstractUITag {
 listUIBean.setList(list);
 listUIBean.setListKey(listKey);
 listUIBean.setListValue(listValue);
+listUIBean.setListValueKey(listValueKey);
 listUIBean.setListLabelKey(listLabelKey);
 listUIBean.setListCssClass(listCssClass);
 listUIBean.setListCssStyle(listCssStyle);
@@ -59,6 +61,10 @@ public abstract class AbstractListTag extends AbstractUITag {
 this.listValue = listValue;
 }
 
+public void setListValueKey(String listValueKey) {
+this.listValueKey = listValueKey;
+}
+
 public void setListLabelKey(String listLabelKey) {
 this.listLabelKey = listLabelKey;
 }



[11/12] git commit: Checks is ListValueKey was defined and returns value

2014-06-27 Thread lukaszlenart
Checks is ListValueKey was defined and returns value


Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/ed8a0b87
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/ed8a0b87
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/ed8a0b87

Branch: refs/heads/feature/WW-4295-localization
Commit: ed8a0b87b29114ac5c99838e7d4cfc819ad71e43
Parents: a2791a8
Author: Lukasz Lenart 
Authored: Fri Jun 27 12:55:43 2014 +0200
Committer: Lukasz Lenart 
Committed: Fri Jun 27 12:55:43 2014 +0200

--
 core/src/main/resources/template/simple/select.ftl | 9 ++---
 1 file changed, 6 insertions(+), 3 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/struts/blob/ed8a0b87/core/src/main/resources/template/simple/select.ftl
--
diff --git a/core/src/main/resources/template/simple/select.ftl 
b/core/src/main/resources/template/simple/select.ftl
index f4f27bf..dcb4b97 100644
--- a/core/src/main/resources/template/simple/select.ftl
+++ b/core/src/main/resources/template/simple/select.ftl
@@ -72,9 +72,12 @@
 <#if parameters.listValueKey??>
   <#-- checks the valueStack for the 'valueKey.' The valueKey is then 
looked-up in the locale file for it's 
  localized value.  This is then used as a label -->
-  <#assign itemValue = stack.findString(parameters.listValueKey)/>
-  <#-- FIXME: find a better way to get the value than a call to 
@s.text -->
-  <#assign itemValue><@s.text name="${itemValue}"/>
+  <#assign valueKey = stack.findString(parameters.listValueKey) />
+  <#if valueKey??>
+  <#assign itemValue = struts.getText(valueKey) />
+  <#else>
+  <#assign itemValue = parameters.listValueKey />
+  
 <#elseif parameters.listValue??>
 <#if stack.findString(parameters.listValue)??>
   <#assign itemValue = stack.findString(parameters.listValue)/>



[06/12] git commit: updating ListUIBean

2014-06-27 Thread lukaszlenart
updating ListUIBean

updating java-backed bean


Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/6def5145
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/6def5145
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/6def5145

Branch: refs/heads/feature/WW-4295-localization
Commit: 6def514524e81c4af188b47b6694384eea3a46c6
Parents: 7f586d3
Author: adam brin 
Authored: Mon Mar 24 07:31:54 2014 -0700
Committer: adam brin 
Committed: Mon Mar 24 07:31:54 2014 -0700

--
 .../java/org/apache/struts2/components/ListUIBean.java | 13 +
 1 file changed, 13 insertions(+)
--


http://git-wip-us.apache.org/repos/asf/struts/blob/6def5145/core/src/main/java/org/apache/struts2/components/ListUIBean.java
--
diff --git a/core/src/main/java/org/apache/struts2/components/ListUIBean.java 
b/core/src/main/java/org/apache/struts2/components/ListUIBean.java
index b1a4493..69deae4 100644
--- a/core/src/main/java/org/apache/struts2/components/ListUIBean.java
+++ b/core/src/main/java/org/apache/struts2/components/ListUIBean.java
@@ -48,6 +48,7 @@ import java.util.Map;
 public abstract class ListUIBean extends UIBean {
 protected Object list;
 protected String listKey;
+protected String listValueKey;
 protected String listValue;
 protected String listCssClass;
 protected String listCssStyle;
@@ -108,6 +109,13 @@ public abstract class ListUIBean extends UIBean {
 addParameter("listKey", "key");
 }
 
+if (listValueKey != null) {
+listValueKey = stripExpressionIfAltSyntax(listValueKey);
+addParameter("listValueKey", listValueKey);
+} else if (value instanceof Map) {
+addParameter("listValueKey", "valueKey");
+}
+
 if (listValue != null) {
 listValue = stripExpressionIfAltSyntax(listValue);
 addParameter("listValue", listValue);
@@ -147,6 +155,11 @@ public abstract class ListUIBean extends UIBean {
 this.listKey = listKey;
 }
 
+@StrutsTagAttribute(description = " Property of list objects to get field 
value label from")
+public void setListValueKey(String listValueKey) {
+this.listValueKey = listValueKey;
+}
+
 @StrutsTagAttribute(description = "Property of list objects to get field 
content from")
 public void setListValue(String listValue) {
 this.listValue = listValue;



[01/12] git commit: [PATCH] First attempt at enabling value-labels to be pulled from Locale Files. Adding listValueKey attribute to checkboxList, radioMap, and select tags.

2014-06-27 Thread lukaszlenart
Repository: struts
Updated Branches:
  refs/heads/feature/WW-4295-localization [created] d67fce1f2


[PATCH] First attempt at enabling value-labels to be pulled from
 Locale Files.  Adding listValueKey attribute to checkboxList, radioMap, and
 select tags.

Issues:
This implementation uses the <@s.text> tag to handle the localization with an 
assignment. I presume this is less than idea, but I lack the knowledge of the 
Struts2 tag model that would suggest where to check for this on the valueStack 
or elsewhere.

Example:

public enum yesno {
YES, NO;
}

<@s.radio name="yes no" list="#{yesno.values()}" valueKey="name()" />


+<#assign itemValue = stack.findString(parameters.listValueKey)/>
+<#-- FIXME: find a better way to get the value than a call to @s.text -->
+<#assign itemValue><@s.text name="${itemValue}"/>
+<#elseif parameters.listValue??>
 <#assign itemValue = 
stack.findString(parameters.listValue)?default("")/>
 <#else>
 <#assign itemValue = stack.findString('top')/>

http://git-wip-us.apache.org/repos/asf/struts/blob/7f586d39/core/src/main/resources/template/simple/radiomap.ftl
--
diff --git a/core/src/main/resources/template/simple/radiomap.ftl 
b/core/src/main/resources/template/simple/radiomap.ftl
index ab6d42c..183fd57 100644
--- a/core/src/main/resources/template/simple/radiomap.ftl
+++ b/core/src/main/resources/template/simple/radiomap.ftl
@@ -27,7 +27,13 @@
 <#assign itemKey = stack.findValue('top')/>
 
 <#assign itemKeyStr = itemKey.toString() />
-<#if parameters.listValue??>
+<#if parameters.listValueKey??>
+<#-- checks the valueStack for the 'valueKey.' The valueKey is then 
looked-up in the locale 
+ file for it's localized value.  This is then used as a label -->
+<#assign itemValue = stack.findString(parameters.listValueKey)/>
+<#-- FIXME: find a better way to get the value than a call to @s.text 
-->
+<#assign itemValue><@s.text name="${itemValue}"/>
+<#elseif parameters.listValue??>
 <#assign itemValue = stack.findString(parameters.listValue)/>
 <#else>
 <#assign itemValue = stack.findString('top')/>

http://git-wip-us.apache.org/repos/asf/struts/blob/7f586d39/core/src/main/resources/template/simple/select.ftl
--
diff --git a/core/src/main/resources/template/simple/select.ftl 
b/core/src/main/resources/template/simple/select.ftl
index 74277e6..f4f27bf 100644
--- a/core/src/main/resources/template/simple/select.ftl
+++ b/core/src/main/resources/template/simple/select.ftl
@@ -69,7 +69,13 @@
 <#assign itemKey = stack.findValue('top')/>
 <#assign itemKeyStr = stack.findString('top')>
 
-<#if parameters.listValue??>
+<#if parameters.listValueKey??>
+  <#-- checks the valueStack for the 'valueKey.' The valueKey is then 
looked-up in the locale file for it's 
+ localized value.  This is then used as a label -->
+  <#assign itemValue = stack.findString(parameters.listValueKey)/>
+  <#-- FIXME: find a better way to get the value than a call to 
@s.text -->
+  <#assign itemValue><@s.text name="${itemValue}"/>
+<#elseif parameters.listValue??>
 <#if stack.findString(parameters.listValue)??>
   <#assign itemValue = stack.findString(parameters.listValue)/>
 <#else>



[08/12] git commit: Adds auto-generated tags' info

2014-06-27 Thread lukaszlenart
Adds auto-generated tags' info


Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/ca230ab3
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/ca230ab3
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/ca230ab3

Branch: refs/heads/feature/WW-4295-localization
Commit: ca230ab30fde249d8af17cc5f2ba83ebe142d364
Parents: 23498a3
Author: Lukasz Lenart 
Authored: Fri Jun 27 12:54:26 2014 +0200
Committer: Lukasz Lenart 
Committed: Fri Jun 27 12:54:26 2014 +0200

--
 core/src/site/resources/tags/checkboxlist.html | 8 
 core/src/site/resources/tags/doubleselect.html | 8 
 core/src/site/resources/tags/inputtransferselect.html  | 8 
 core/src/site/resources/tags/optiontransferselect.html | 8 
 core/src/site/resources/tags/radio.html| 8 
 core/src/site/resources/tags/select.html   | 8 
 core/src/site/resources/tags/updownselect.html | 8 
 7 files changed, 56 insertions(+)
--


http://git-wip-us.apache.org/repos/asf/struts/blob/ca230ab3/core/src/site/resources/tags/checkboxlist.html
--
diff --git a/core/src/site/resources/tags/checkboxlist.html 
b/core/src/site/resources/tags/checkboxlist.html
index 95e2e97..1bcb2ea 100644
--- a/core/src/site/resources/tags/checkboxlist.html
+++ b/core/src/site/resources/tags/checkboxlist.html
@@ -194,6 +194,14 @@ Please do not edit it directly.
Property 
of list objects to get field content from


+   listValueKey
+   false
+   
+   false
+   String
+Property 
of list objects to get field value label from
+   
+   
name
false


http://git-wip-us.apache.org/repos/asf/struts/blob/ca230ab3/core/src/site/resources/tags/doubleselect.html
--
diff --git a/core/src/site/resources/tags/doubleselect.html 
b/core/src/site/resources/tags/doubleselect.html
index becaf8b..674ecc2 100644
--- a/core/src/site/resources/tags/doubleselect.html
+++ b/core/src/site/resources/tags/doubleselect.html
@@ -482,6 +482,14 @@ Please do not edit it directly.
Property 
of list objects to get field content from


+   listValueKey
+   false
+   
+   false
+   String
+Property 
of list objects to get field value label from
+   
+   
multiple
false


http://git-wip-us.apache.org/repos/asf/struts/blob/ca230ab3/core/src/site/resources/tags/inputtransferselect.html
--
diff --git a/core/src/site/resources/tags/inputtransferselect.html 
b/core/src/site/resources/tags/inputtransferselect.html
index 9f1a1e1..176e915 100644
--- a/core/src/site/resources/tags/inputtransferselect.html
+++ b/core/src/site/resources/tags/inputtransferselect.html
@@ -266,6 +266,14 @@ Please do not edit it directly.
Property 
of list objects to get field content from


+   listValueKey
+   false
+   
+   false
+   String
+Property 
of list objects to get field value label from
+   
+   
multiple
false


http://git-wip-us.apache.org/repos/asf/struts/blob/ca230ab3/core/src/site/resources/tags/optiontransferselect.html
--
diff --git a/core/src/site/resources/tags/optiontransferselect.html 
b/co

[30/50] git commit: Adds additional methods needed by ParametersInterceptor

2014-06-27 Thread lukaszlenart
Adds additional methods needed by ParametersInterceptor


Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/3d77c348
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/3d77c348
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/3d77c348

Branch: refs/heads/feature/WW-4295-localization
Commit: 3d77c348b15f438c5dcab9790daacfd4d43cd02b
Parents: e8e5b51
Author: Lukasz Lenart 
Authored: Wed May 14 08:25:22 2014 +0200
Committer: Lukasz Lenart 
Committed: Wed May 14 08:25:22 2014 +0200

--
 .../xwork2/DefaultExcludedPatternsChecker.java  | 19 +++
 .../xwork2/ExcludedPatternsChecker.java | 35 
 2 files changed, 39 insertions(+), 15 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/struts/blob/3d77c348/xwork-core/src/main/java/com/opensymphony/xwork2/DefaultExcludedPatternsChecker.java
--
diff --git 
a/xwork-core/src/main/java/com/opensymphony/xwork2/DefaultExcludedPatternsChecker.java
 
b/xwork-core/src/main/java/com/opensymphony/xwork2/DefaultExcludedPatternsChecker.java
index 3860e57..eabd621 100644
--- 
a/xwork-core/src/main/java/com/opensymphony/xwork2/DefaultExcludedPatternsChecker.java
+++ 
b/xwork-core/src/main/java/com/opensymphony/xwork2/DefaultExcludedPatternsChecker.java
@@ -46,29 +46,14 @@ public class DefaultExcludedPatternsChecker implements 
ExcludedPatternsChecker {
 }
 }
 
-/**
- * Allows add additional excluded patterns during runtime
- *
- * @param commaDelimitedPatterns comma delimited string with patterns
- */
 public void addExcludedPatterns(String commaDelimitedPatterns) {
 
addExcludedPatterns(TextParseUtil.commaDelimitedStringToSet(commaDelimitedPatterns));
 }
 
-/**
- * Allows add additional excluded patterns during runtime
- *
- * @param additionalPatterns array of additional excluded patterns
- */
 public void addExcludedPatterns(String[] additionalPatterns) {
 addExcludedPatterns(new 
HashSet(Arrays.asList(additionalPatterns)));
 }
 
-/**
- * Allows add additional excluded patterns during runtime
- *
- * @param additionalPatterns set of additional patterns
- */
 public void addExcludedPatterns(Set additionalPatterns) {
 if (LOG.isTraceEnabled()) {
 LOG.trace("Adding additional excluded patterns [#0]", 
additionalPatterns);
@@ -90,4 +75,8 @@ public class DefaultExcludedPatternsChecker implements 
ExcludedPatternsChecker {
 return IsExcluded.no();
 }
 
+public Set getExcludedPatterns() {
+return excludedPatterns;
+}
+
 }

http://git-wip-us.apache.org/repos/asf/struts/blob/3d77c348/xwork-core/src/main/java/com/opensymphony/xwork2/ExcludedPatternsChecker.java
--
diff --git 
a/xwork-core/src/main/java/com/opensymphony/xwork2/ExcludedPatternsChecker.java 
b/xwork-core/src/main/java/com/opensymphony/xwork2/ExcludedPatternsChecker.java
index c4730ea..ac0ff6e 100644
--- 
a/xwork-core/src/main/java/com/opensymphony/xwork2/ExcludedPatternsChecker.java
+++ 
b/xwork-core/src/main/java/com/opensymphony/xwork2/ExcludedPatternsChecker.java
@@ -1,5 +1,6 @@
 package com.opensymphony.xwork2;
 
+import java.util.Set;
 import java.util.regex.Pattern;
 
 /**
@@ -7,8 +8,42 @@ import java.util.regex.Pattern;
  */
 public interface ExcludedPatternsChecker {
 
+/**
+ * Checks if value matches any of patterns on exclude list
+ *
+ * @param value to check
+ * @return object containing result of matched pattern and pattern itself
+ */
 public IsExcluded isExcluded(String value);
 
+/**
+ * Allows add additional excluded patterns during runtime
+ *
+ * @param commaDelimitedPatterns comma delimited string with patterns
+ */
+public void addExcludedPatterns(String commaDelimitedPatterns);
+
+/**
+ * Allows add additional excluded patterns during runtime
+ *
+ * @param additionalPatterns array of additional excluded patterns
+ */
+public void addExcludedPatterns(String[] additionalPatterns);
+
+/**
+ * Allows add additional excluded patterns during runtime
+ *
+ * @param additionalPatterns set of additional patterns
+ */
+public void addExcludedPatterns(Set additionalPatterns);
+
+/**
+ * Allow access list of all defined excluded patterns
+ *
+ * @return set of excluded patterns
+ */
+public Set getExcludedPatterns();
+
 public final static class IsExcluded {
 
 private final boolean excluded;



[39/50] git commit: Adds ability to exclude whole packages based on regex

2014-06-27 Thread lukaszlenart
Adds ability to exclude whole packages based on regex


Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/dba9da3a
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/dba9da3a
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/dba9da3a

Branch: refs/heads/feature/WW-4295-localization
Commit: dba9da3abf1b5e6f59251b5a6d948c5bc502c9af
Parents: 8a93df1
Author: Lukasz Lenart 
Authored: Fri May 23 09:20:07 2014 +0200
Committer: Lukasz Lenart 
Committed: Fri May 23 09:20:07 2014 +0200

--
 .../xwork2/ognl/SecurityMemberAccess.java   | 20 
 .../xwork2/ognl/SecurityMemberAccessTest.java   | 19 +++
 2 files changed, 39 insertions(+)
--


http://git-wip-us.apache.org/repos/asf/struts/blob/dba9da3a/xwork-core/src/main/java/com/opensymphony/xwork2/ognl/SecurityMemberAccess.java
--
diff --git 
a/xwork-core/src/main/java/com/opensymphony/xwork2/ognl/SecurityMemberAccess.java
 
b/xwork-core/src/main/java/com/opensymphony/xwork2/ognl/SecurityMemberAccess.java
index c14d8b9..39f882a 100644
--- 
a/xwork-core/src/main/java/com/opensymphony/xwork2/ognl/SecurityMemberAccess.java
+++ 
b/xwork-core/src/main/java/com/opensymphony/xwork2/ognl/SecurityMemberAccess.java
@@ -40,6 +40,7 @@ public class SecurityMemberAccess extends DefaultMemberAccess 
{
 private Set excludeProperties = Collections.emptySet();
 private Set acceptProperties = Collections.emptySet();
 private Set> excludedClasses = Collections.emptySet();
+private Set excludedPackageNamePatterns = Collections.emptySet();
 
 public SecurityMemberAccess(boolean method) {
 super(false);
@@ -52,6 +53,13 @@ public class SecurityMemberAccess extends 
DefaultMemberAccess {
 
 @Override
 public boolean isAccessible(Map context, Object target, Member member, 
String propertyName) {
+if (isPackageExcluded(target.getClass().getPackage(), 
member.getDeclaringClass().getPackage())) {
+if (LOG.isDebugEnabled()) {
+LOG.debug("Target package [#0] and member package [#1] are 
excluded!", target, member);
+}
+return false;
+}
+
 if (isClassExcluded(target.getClass(), member.getDeclaringClass())) {
 if (LOG.isDebugEnabled()) {
 LOG.debug("Target class [#0] and member type [#1] are 
excluded!", target, member);
@@ -84,6 +92,15 @@ public class SecurityMemberAccess extends 
DefaultMemberAccess {
 return isAcceptableProperty(propertyName);
 }
 
+protected boolean isPackageExcluded(Package targetPackage, Package 
memberPackage) {
+for (Pattern pattern : excludedPackageNamePatterns) {
+if (pattern.matcher(targetPackage.getName()).matches() || 
pattern.matcher(memberPackage.getName()).matches()) {
+return true;
+}
+}
+return false;
+}
+
 protected boolean isClassExcluded(Class targetClass, Class 
declaringClass) {
 if (targetClass == Object.class || declaringClass == Object.class) {
 return true;
@@ -141,4 +158,7 @@ public class SecurityMemberAccess extends 
DefaultMemberAccess {
 this.excludedClasses = excludedClasses;
 }
 
+public void setExcludedPackageNamePatterns(Set 
excludedPackageNamePatterns) {
+this.excludedPackageNamePatterns = excludedPackageNamePatterns;
+}
 }

http://git-wip-us.apache.org/repos/asf/struts/blob/dba9da3a/xwork-core/src/test/java/com/opensymphony/xwork2/ognl/SecurityMemberAccessTest.java
--
diff --git 
a/xwork-core/src/test/java/com/opensymphony/xwork2/ognl/SecurityMemberAccessTest.java
 
b/xwork-core/src/test/java/com/opensymphony/xwork2/ognl/SecurityMemberAccessTest.java
index 1c14cb2..748d5a9 100644
--- 
a/xwork-core/src/test/java/com/opensymphony/xwork2/ognl/SecurityMemberAccessTest.java
+++ 
b/xwork-core/src/test/java/com/opensymphony/xwork2/ognl/SecurityMemberAccessTest.java
@@ -7,6 +7,7 @@ import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Map;
 import java.util.Set;
+import java.util.regex.Pattern;
 
 public class SecurityMemberAccessTest extends TestCase {
 
@@ -171,6 +172,24 @@ public class SecurityMemberAccessTest extends TestCase {
 assertFalse("barLogic() from BarInterface is accessible!!!", 
accessible);
 }
 
+public void testPackageExclusion() throws Exception {
+// given
+SecurityMemberAccess sma = new SecurityMemberAccess(false);
+
+Set excluded = new HashSet();
+excluded.add(Pattern.compile("^" + 
FooBar.class.getPackage().getName().replaceAll("\\.", ".") + ".*"));
+sma.setExcludedPackageNamePatterns(excluded);
+
+  

[36/50] git commit: Cleans up after moving to package

2014-06-27 Thread lukaszlenart
Cleans up after moving to package


Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/97ef7b50
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/97ef7b50
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/97ef7b50

Branch: refs/heads/feature/WW-4295-localization
Commit: 97ef7b50bbf12dcc3e4127c71487ec37f5b7132d
Parents: ec98c8a
Author: Lukasz Lenart 
Authored: Mon May 19 10:58:45 2014 +0200
Committer: Lukasz Lenart 
Committed: Mon May 19 10:58:45 2014 +0200

--
 .../org/apache/struts2/config/DefaultBeanSelectionProvider.java   | 2 +-
 .../java/org/apache/struts2/interceptor/CookieInterceptor.java| 3 +--
 core/src/main/resources/struts-default.xml| 2 +-
 .../test/java/org/apache/struts2/TestConfigurationProvider.java   | 2 +-
 .../src/main/java/com/opensymphony/xwork2/XWorkConstants.java | 2 ++
 .../xwork2/config/providers/XWorkConfigurationProvider.java   | 2 +-
 .../opensymphony/xwork2/interceptor/ParametersInterceptor.java| 2 +-
 7 files changed, 8 insertions(+), 7 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/struts/blob/97ef7b50/core/src/main/java/org/apache/struts2/config/DefaultBeanSelectionProvider.java
--
diff --git 
a/core/src/main/java/org/apache/struts2/config/DefaultBeanSelectionProvider.java
 
b/core/src/main/java/org/apache/struts2/config/DefaultBeanSelectionProvider.java
index 5c29e78..be4fa82 100644
--- 
a/core/src/main/java/org/apache/struts2/config/DefaultBeanSelectionProvider.java
+++ 
b/core/src/main/java/org/apache/struts2/config/DefaultBeanSelectionProvider.java
@@ -22,7 +22,7 @@
 package org.apache.struts2.config;
 
 import com.opensymphony.xwork2.ActionProxyFactory;
-import com.opensymphony.xwork2.ExcludedPatternsChecker;
+import com.opensymphony.xwork2.security.ExcludedPatternsChecker;
 import com.opensymphony.xwork2.FileManager;
 import com.opensymphony.xwork2.FileManagerFactory;
 import com.opensymphony.xwork2.LocaleProvider;

http://git-wip-us.apache.org/repos/asf/struts/blob/97ef7b50/core/src/main/java/org/apache/struts2/interceptor/CookieInterceptor.java
--
diff --git 
a/core/src/main/java/org/apache/struts2/interceptor/CookieInterceptor.java 
b/core/src/main/java/org/apache/struts2/interceptor/CookieInterceptor.java
index dbe47ce..ca195fa 100644
--- a/core/src/main/java/org/apache/struts2/interceptor/CookieInterceptor.java
+++ b/core/src/main/java/org/apache/struts2/interceptor/CookieInterceptor.java
@@ -25,13 +25,12 @@ import com.opensymphony.xwork2.ActionContext;
 import com.opensymphony.xwork2.ActionInvocation;
 import com.opensymphony.xwork2.inject.Inject;
 import com.opensymphony.xwork2.interceptor.AbstractInterceptor;
-import com.opensymphony.xwork2.ExcludedPatternsChecker;
+import com.opensymphony.xwork2.security.ExcludedPatternsChecker;
 import com.opensymphony.xwork2.util.TextParseUtil;
 import com.opensymphony.xwork2.util.ValueStack;
 import com.opensymphony.xwork2.util.logging.Logger;
 import com.opensymphony.xwork2.util.logging.LoggerFactory;
 import org.apache.struts2.ServletActionContext;
-import org.apache.struts2.StrutsConstants;
 
 import javax.servlet.http.Cookie;
 import java.util.Collections;

http://git-wip-us.apache.org/repos/asf/struts/blob/97ef7b50/core/src/main/resources/struts-default.xml
--
diff --git a/core/src/main/resources/struts-default.xml 
b/core/src/main/resources/struts-default.xml
index ecfa5cf..2fc16c9 100644
--- a/core/src/main/resources/struts-default.xml
+++ b/core/src/main/resources/struts-default.xml
@@ -144,7 +144,7 @@
 
 
 
-
+
 
 
 

http://git-wip-us.apache.org/repos/asf/struts/blob/97ef7b50/core/src/test/java/org/apache/struts2/TestConfigurationProvider.java
--
diff --git 
a/core/src/test/java/org/apache/struts2/TestConfigurationProvider.java 
b/core/src/test/java/org/apache/struts2/TestConfigurationProvider.java
index d9da6c4..f9eb4c7 100644
--- a/core/src/test/java/org/apache/struts2/TestConfigurationProvider.java
+++ b/core/src/test/java/org/apache/struts2/TestConfigurationProvider.java
@@ -25,7 +25,7 @@ import com.opensymphony.xwork2.Action;
 import com.opensymphony.xwork2.ActionProxyFactory;
 import com.opensymphony.xwork2.DefaultActionProxyFactory;
 import com.opensymphony.xwork2.security.DefaultExcludedPatternsChecker;
-import com.opensymphony.xwork2.ExcludedPatternsChecker;
+import com.opensymphony.xwork2.security.ExcludedPatternsChecker;
 import com.opensymphony.xwork2.ObjectFactory;
 import com.opensymphony.xwork2.config.Configuration;
 import com.opensymphony

[16/50] git commit: Adds logging of excluded classes

2014-06-27 Thread lukaszlenart
Adds logging of excluded classes


Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/62ee6b10
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/62ee6b10
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/62ee6b10

Branch: refs/heads/feature/WW-4295-localization
Commit: 62ee6b104ae871807ff073eb206b5f3ec549a302
Parents: a5946d0
Author: Lukasz Lenart 
Authored: Mon May 5 21:33:16 2014 +0200
Committer: Lukasz Lenart 
Committed: Mon May 5 21:33:16 2014 +0200

--
 .../com/opensymphony/xwork2/ognl/SecurityMemberAccess.java   | 8 +++-
 1 file changed, 7 insertions(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/struts/blob/62ee6b10/xwork-core/src/main/java/com/opensymphony/xwork2/ognl/SecurityMemberAccess.java
--
diff --git 
a/xwork-core/src/main/java/com/opensymphony/xwork2/ognl/SecurityMemberAccess.java
 
b/xwork-core/src/main/java/com/opensymphony/xwork2/ognl/SecurityMemberAccess.java
index a35f68b..c14d8b9 100644
--- 
a/xwork-core/src/main/java/com/opensymphony/xwork2/ognl/SecurityMemberAccess.java
+++ 
b/xwork-core/src/main/java/com/opensymphony/xwork2/ognl/SecurityMemberAccess.java
@@ -15,13 +15,14 @@
  */
 package com.opensymphony.xwork2.ognl;
 
+import com.opensymphony.xwork2.util.logging.Logger;
+import com.opensymphony.xwork2.util.logging.LoggerFactory;
 import ognl.DefaultMemberAccess;
 
 import java.lang.reflect.Member;
 import java.lang.reflect.Method;
 import java.lang.reflect.Modifier;
 import java.util.Collections;
-import java.util.HashSet;
 import java.util.Map;
 import java.util.Set;
 import java.util.regex.Matcher;
@@ -33,6 +34,8 @@ import java.util.regex.Pattern;
  */
 public class SecurityMemberAccess extends DefaultMemberAccess {
 
+private static final Logger LOG = 
LoggerFactory.getLogger(SecurityMemberAccess.class);
+
 private final boolean allowStaticMethodAccess;
 private Set excludeProperties = Collections.emptySet();
 private Set acceptProperties = Collections.emptySet();
@@ -50,6 +53,9 @@ public class SecurityMemberAccess extends DefaultMemberAccess 
{
 @Override
 public boolean isAccessible(Map context, Object target, Member member, 
String propertyName) {
 if (isClassExcluded(target.getClass(), member.getDeclaringClass())) {
+if (LOG.isDebugEnabled()) {
+LOG.debug("Target class [#0] and member type [#1] are 
excluded!", target, member);
+}
 return false;
 }
 



[20/50] git commit: Merge branch 'master' into develop

2014-06-27 Thread lukaszlenart
Merge branch 'master' into develop

Conflicts:
apps/blank/pom.xml
apps/jboss-blank/pom.xml
apps/mailreader/pom.xml
apps/pom.xml
apps/portlet/pom.xml
apps/rest-showcase/pom.xml
apps/showcase/pom.xml
archetypes/pom.xml
archetypes/struts2-archetype-angularjs/pom.xml
archetypes/struts2-archetype-blank/pom.xml
archetypes/struts2-archetype-convention/pom.xml
archetypes/struts2-archetype-dbportlet/pom.xml
archetypes/struts2-archetype-plugin/pom.xml
archetypes/struts2-archetype-portlet/pom.xml
archetypes/struts2-archetype-starter/pom.xml
assembly/pom.xml
bundles/admin/pom.xml
bundles/demo/pom.xml
bundles/pom.xml
core/pom.xml
plugins/cdi/pom.xml
plugins/codebehind/pom.xml
plugins/config-browser/pom.xml
plugins/convention/pom.xml
plugins/dojo/pom.xml
plugins/dwr/pom.xml
plugins/embeddedjsp/pom.xml
plugins/gxp/pom.xml
plugins/jasperreports/pom.xml
plugins/javatemplates/pom.xml
plugins/jfreechart/pom.xml
plugins/jsf/pom.xml
plugins/json/pom.xml
plugins/junit/pom.xml
plugins/osgi/pom.xml
plugins/oval/pom.xml
plugins/pell-multipart/pom.xml
plugins/plexus/pom.xml
plugins/pom.xml
plugins/portlet-tiles/pom.xml
plugins/portlet/pom.xml
plugins/rest/pom.xml
plugins/sitegraph/pom.xml
plugins/sitemesh/pom.xml
plugins/spring/pom.xml
plugins/struts1/pom.xml
plugins/testng/pom.xml
plugins/tiles/pom.xml
plugins/tiles3/pom.xml
pom.xml
xwork-core/pom.xml


Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/63897e83
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/63897e83
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/63897e83

Branch: refs/heads/feature/WW-4295-localization
Commit: 63897e83d98b4844982c2d96c3d20b4216ece28a
Parents: 086c0a0 d2663ce
Author: Lukasz Lenart 
Authored: Thu May 8 22:06:00 2014 +0200
Committer: Lukasz Lenart 
Committed: Thu May 8 22:06:00 2014 +0200

--
 .../struts2/interceptor/CookieInterceptor.java  | 45 +++--
 .../interceptor/CookieInterceptorTest.java  | 53 
 2 files changed, 82 insertions(+), 16 deletions(-)
--




[24/50] git commit: Cleans up imports

2014-06-27 Thread lukaszlenart
Cleans up imports


Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/9884c49f
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/9884c49f
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/9884c49f

Branch: refs/heads/feature/WW-4295-localization
Commit: 9884c49fd0d4683d3376070bc75d88a4afcb6a25
Parents: 4577e5e
Author: Lukasz Lenart 
Authored: Mon May 12 08:26:50 2014 +0200
Committer: Lukasz Lenart 
Committed: Mon May 12 08:26:50 2014 +0200

--
 .../xwork2/interceptor/ParametersInterceptorTest.java | 3 ---
 1 file changed, 3 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/struts/blob/9884c49f/xwork-core/src/test/java/com/opensymphony/xwork2/interceptor/ParametersInterceptorTest.java
--
diff --git 
a/xwork-core/src/test/java/com/opensymphony/xwork2/interceptor/ParametersInterceptorTest.java
 
b/xwork-core/src/test/java/com/opensymphony/xwork2/interceptor/ParametersInterceptorTest.java
index 359618f..a2aa92b 100644
--- 
a/xwork-core/src/test/java/com/opensymphony/xwork2/interceptor/ParametersInterceptorTest.java
+++ 
b/xwork-core/src/test/java/com/opensymphony/xwork2/interceptor/ParametersInterceptorTest.java
@@ -18,7 +18,6 @@ package com.opensymphony.xwork2.interceptor;
 import com.opensymphony.xwork2.Action;
 import com.opensymphony.xwork2.ActionContext;
 import com.opensymphony.xwork2.ActionProxy;
-import com.opensymphony.xwork2.ExcludedPatterns;
 import com.opensymphony.xwork2.ModelDrivenAction;
 import com.opensymphony.xwork2.SimpleAction;
 import com.opensymphony.xwork2.TestBean;
@@ -47,12 +46,10 @@ import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.HashMap;
-import java.util.HashSet;
 import java.util.LinkedHashMap;
 import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
-import java.util.regex.Pattern;
 
 
 /**



[22/50] git commit: Converts class with patterns into Struts bean

2014-06-27 Thread lukaszlenart
Converts class with patterns into Struts bean


Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/65c023b6
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/65c023b6
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/65c023b6

Branch: refs/heads/feature/WW-4295-localization
Commit: 65c023b6f3e848fae13135ee90c101a0d0e2f262
Parents: 08b44fd
Author: Lukasz Lenart 
Authored: Mon May 12 08:26:12 2014 +0200
Committer: Lukasz Lenart 
Committed: Mon May 12 08:26:12 2014 +0200

--
 core/src/main/resources/struts-default.xml  |   4 +
 .../opensymphony/xwork2/ExcludedPatterns.java   |  22 ---
 .../xwork2/ExcludedPatternsChecker.java | 135 +++
 3 files changed, 139 insertions(+), 22 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/struts/blob/65c023b6/core/src/main/resources/struts-default.xml
--
diff --git a/core/src/main/resources/struts-default.xml 
b/core/src/main/resources/struts-default.xml
index 1f37ea2..554a8ba 100644
--- a/core/src/main/resources/struts-default.xml
+++ b/core/src/main/resources/struts-default.xml
@@ -144,6 +144,10 @@
 
 
 
+
+
+
+
 
 
 

http://git-wip-us.apache.org/repos/asf/struts/blob/65c023b6/xwork-core/src/main/java/com/opensymphony/xwork2/ExcludedPatterns.java
--
diff --git 
a/xwork-core/src/main/java/com/opensymphony/xwork2/ExcludedPatterns.java 
b/xwork-core/src/main/java/com/opensymphony/xwork2/ExcludedPatterns.java
deleted file mode 100644
index b618a52..000
--- a/xwork-core/src/main/java/com/opensymphony/xwork2/ExcludedPatterns.java
+++ /dev/null
@@ -1,22 +0,0 @@
-package com.opensymphony.xwork2;
-
-/**
- * ExcludedPatterns contains hard-coded patterns that must be rejected by 
{@link com.opensymphony.xwork2.interceptor.ParametersInterceptor}
- * and partially in CookInterceptor
- */
-public class ExcludedPatterns {
-
-public static final String CLASS_ACCESS_PATTERN = 
"(.*\\.|^|.*|\\[('|\"))class(\\.|('|\")]|\\[).*";
-
-public static final String[] EXCLUDED_PATTERNS = {
-CLASS_ACCESS_PATTERN,
-"^dojo\\..*",
-"^struts\\..*",
-"^session\\..*",
-"^request\\..*",
-"^application\\..*",
-"^servlet(Request|Response)\\..*",
-"^parameters\\..*"
-};
-
-}

http://git-wip-us.apache.org/repos/asf/struts/blob/65c023b6/xwork-core/src/main/java/com/opensymphony/xwork2/ExcludedPatternsChecker.java
--
diff --git 
a/xwork-core/src/main/java/com/opensymphony/xwork2/ExcludedPatternsChecker.java 
b/xwork-core/src/main/java/com/opensymphony/xwork2/ExcludedPatternsChecker.java
new file mode 100644
index 000..ee3eea6
--- /dev/null
+++ 
b/xwork-core/src/main/java/com/opensymphony/xwork2/ExcludedPatternsChecker.java
@@ -0,0 +1,135 @@
+package com.opensymphony.xwork2;
+
+import com.opensymphony.xwork2.inject.Inject;
+import com.opensymphony.xwork2.util.TextParseUtil;
+import com.opensymphony.xwork2.util.logging.Logger;
+import com.opensymphony.xwork2.util.logging.LoggerFactory;
+
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.Set;
+import java.util.regex.Pattern;
+
+/**
+ * Used across different interceptors to check if given string matches one of 
the excluded patterns.
+ * User has two options to change its behaviour:
+ * - define new set of patterns with 
+ * - override this class and use then extension point 
+ *   to inject it in appropriated places
+ */
+public class ExcludedPatternsChecker {
+
+private static final Logger LOG = 
LoggerFactory.getLogger(ExcludedPatternsChecker.class);
+
+public static final String[] EXCLUDED_PATTERNS = {
+"(.*\\.|^|.*|\\[('|\"))class(\\.|('|\")]|\\[).*",
+"^dojo\\..*",
+"^struts\\..*",
+"^session\\..*",
+"^request\\..*",
+"^application\\..*",
+"^servlet(Request|Response)\\..*",
+"^parameters\\..*"
+};
+
+private Set excludedPatterns;
+
+public ExcludedPatternsChecker() {
+excludedPatterns = new HashSet();
+for (String pattern : EXCLUDED_PATTERNS) {
+excludedPatterns.add(Pattern.compile(pattern));
+}
+}
+
+@Inject(value = XWorkConstants.OVERRIDE_EXCLUDED_PATTERNS, required = 
false)
+public void setOverrideExcludePatterns(String excludePatterns) {
+if (LOG.isWarnEnabled()) {
+LOG.warn("Overriding [#0] with [#1], be aware that this can affect 
safety of your application!",
+XWorkConstants.OVERRIDE_EXCLUDED_PATTERNS, 
excludePatterns);
+   

[34/50] git commit: Moves security related classes to security package

2014-06-27 Thread lukaszlenart
Moves security related classes to security package


Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/7faf91ab
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/7faf91ab
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/7faf91ab

Branch: refs/heads/feature/WW-4295-localization
Commit: 7faf91abe1987aa812655860b4e7ef1ad2f93644
Parents: 83b76b0
Author: Lukasz Lenart 
Authored: Mon May 19 09:59:23 2014 +0200
Committer: Lukasz Lenart 
Committed: Mon May 19 09:59:23 2014 +0200

--
 core/src/main/resources/struts-default.xml  |  2 +-
 .../struts2/TestConfigurationProvider.java  |  2 +-
 .../interceptor/CookieInterceptorTest.java  |  2 +-
 .../xwork2/DefaultExcludedPatternsChecker.java  | 82 ---
 .../providers/XWorkConfigurationProvider.java   |  2 +-
 .../DefaultExcludedPatternsChecker.java | 83 
 .../security/ExcludedPatternsChecker.java   | 82 +++
 7 files changed, 169 insertions(+), 86 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/struts/blob/7faf91ab/core/src/main/resources/struts-default.xml
--
diff --git a/core/src/main/resources/struts-default.xml 
b/core/src/main/resources/struts-default.xml
index 2d74b4f..ecfa5cf 100644
--- a/core/src/main/resources/struts-default.xml
+++ b/core/src/main/resources/struts-default.xml
@@ -144,7 +144,7 @@
 
 
 
-
+
 
 
 

http://git-wip-us.apache.org/repos/asf/struts/blob/7faf91ab/core/src/test/java/org/apache/struts2/TestConfigurationProvider.java
--
diff --git 
a/core/src/test/java/org/apache/struts2/TestConfigurationProvider.java 
b/core/src/test/java/org/apache/struts2/TestConfigurationProvider.java
index 9323f02..d9da6c4 100644
--- a/core/src/test/java/org/apache/struts2/TestConfigurationProvider.java
+++ b/core/src/test/java/org/apache/struts2/TestConfigurationProvider.java
@@ -24,7 +24,7 @@ package org.apache.struts2;
 import com.opensymphony.xwork2.Action;
 import com.opensymphony.xwork2.ActionProxyFactory;
 import com.opensymphony.xwork2.DefaultActionProxyFactory;
-import com.opensymphony.xwork2.DefaultExcludedPatternsChecker;
+import com.opensymphony.xwork2.security.DefaultExcludedPatternsChecker;
 import com.opensymphony.xwork2.ExcludedPatternsChecker;
 import com.opensymphony.xwork2.ObjectFactory;
 import com.opensymphony.xwork2.config.Configuration;

http://git-wip-us.apache.org/repos/asf/struts/blob/7faf91ab/core/src/test/java/org/apache/struts2/interceptor/CookieInterceptorTest.java
--
diff --git 
a/core/src/test/java/org/apache/struts2/interceptor/CookieInterceptorTest.java 
b/core/src/test/java/org/apache/struts2/interceptor/CookieInterceptorTest.java
index 1f642f5..a531a69 100644
--- 
a/core/src/test/java/org/apache/struts2/interceptor/CookieInterceptorTest.java
+++ 
b/core/src/test/java/org/apache/struts2/interceptor/CookieInterceptorTest.java
@@ -27,7 +27,7 @@ import java.util.Map;
 
 import javax.servlet.http.Cookie;
 
-import com.opensymphony.xwork2.DefaultExcludedPatternsChecker;
+import com.opensymphony.xwork2.security.DefaultExcludedPatternsChecker;
 import com.opensymphony.xwork2.mock.MockActionInvocation;
 import org.easymock.MockControl;
 import org.springframework.mock.web.MockHttpServletRequest;

http://git-wip-us.apache.org/repos/asf/struts/blob/7faf91ab/xwork-core/src/main/java/com/opensymphony/xwork2/DefaultExcludedPatternsChecker.java
--
diff --git 
a/xwork-core/src/main/java/com/opensymphony/xwork2/DefaultExcludedPatternsChecker.java
 
b/xwork-core/src/main/java/com/opensymphony/xwork2/DefaultExcludedPatternsChecker.java
deleted file mode 100644
index eabd621..000
--- 
a/xwork-core/src/main/java/com/opensymphony/xwork2/DefaultExcludedPatternsChecker.java
+++ /dev/null
@@ -1,82 +0,0 @@
-package com.opensymphony.xwork2;
-
-import com.opensymphony.xwork2.inject.Inject;
-import com.opensymphony.xwork2.util.TextParseUtil;
-import com.opensymphony.xwork2.util.logging.Logger;
-import com.opensymphony.xwork2.util.logging.LoggerFactory;
-
-import java.util.Arrays;
-import java.util.HashSet;
-import java.util.Set;
-import java.util.regex.Pattern;
-
-public class DefaultExcludedPatternsChecker implements ExcludedPatternsChecker 
{
-
-private static final Logger LOG = 
LoggerFactory.getLogger(DefaultExcludedPatternsChecker.class);
-
-public static final String[] EXCLUDED_PATTERNS = {
-"(.*\\.|^|.*|\\[('|\"))class(\\.|('|\")]|\\[).*",
-"^dojo\\..*",
-"^struts\\..*",
-"^session\\..*",
-   

[13/50] git commit: Adds more use cases

2014-06-27 Thread lukaszlenart
Adds more use cases


Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/ba0ac0df
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/ba0ac0df
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/ba0ac0df

Branch: refs/heads/feature/WW-4295-localization
Commit: ba0ac0dfd47c768661fcd5fa12bb00af851eb548
Parents: b3ca9ea
Author: Lukasz Lenart 
Authored: Sun May 4 11:58:08 2014 +0200
Committer: Lukasz Lenart 
Committed: Sun May 4 11:58:08 2014 +0200

--
 .../xwork2/ognl/SecurityMemberAccess.java   |  4 +-
 .../xwork2/ognl/SecurityMemberAccessTest.java   | 84 +++-
 2 files changed, 83 insertions(+), 5 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/struts/blob/ba0ac0df/xwork-core/src/main/java/com/opensymphony/xwork2/ognl/SecurityMemberAccess.java
--
diff --git 
a/xwork-core/src/main/java/com/opensymphony/xwork2/ognl/SecurityMemberAccess.java
 
b/xwork-core/src/main/java/com/opensymphony/xwork2/ognl/SecurityMemberAccess.java
index 7fe77c3..a35f68b 100644
--- 
a/xwork-core/src/main/java/com/opensymphony/xwork2/ognl/SecurityMemberAccess.java
+++ 
b/xwork-core/src/main/java/com/opensymphony/xwork2/ognl/SecurityMemberAccess.java
@@ -49,10 +49,10 @@ public class SecurityMemberAccess extends 
DefaultMemberAccess {
 
 @Override
 public boolean isAccessible(Map context, Object target, Member member, 
String propertyName) {
-
 if (isClassExcluded(target.getClass(), member.getDeclaringClass())) {
 return false;
 }
+
 boolean allow = true;
 int modifiers = member.getModifiers();
 if (Modifier.isStatic(modifiers)) {
@@ -83,7 +83,7 @@ public class SecurityMemberAccess extends DefaultMemberAccess 
{
 return true;
 }
 for (Class excludedClass : excludedClasses) {
-if (excludedClass.isAssignableFrom(targetClass) || 
declaringClass.isAssignableFrom(excludedClass)) {
+if (targetClass.isAssignableFrom(excludedClass) || 
declaringClass.isAssignableFrom(excludedClass)) {
 return true;
 }
 }

http://git-wip-us.apache.org/repos/asf/struts/blob/ba0ac0df/xwork-core/src/test/java/com/opensymphony/xwork2/ognl/SecurityMemberAccessTest.java
--
diff --git 
a/xwork-core/src/test/java/com/opensymphony/xwork2/ognl/SecurityMemberAccessTest.java
 
b/xwork-core/src/test/java/com/opensymphony/xwork2/ognl/SecurityMemberAccessTest.java
index 4ccc831..1c14cb2 100644
--- 
a/xwork-core/src/test/java/com/opensymphony/xwork2/ognl/SecurityMemberAccessTest.java
+++ 
b/xwork-core/src/test/java/com/opensymphony/xwork2/ognl/SecurityMemberAccessTest.java
@@ -84,7 +84,7 @@ public class SecurityMemberAccessTest extends TestCase {
 SecurityMemberAccess sma = new SecurityMemberAccess(false);
 
 String propertyName = "barLogic";
-Member member = FooBar.class.getMethod("barLogic");
+Member member = BarInterface.class.getMethod(propertyName);
 
 Set> excluded = new HashSet>();
 excluded.add(BarInterface.class);
@@ -97,9 +97,83 @@ public class SecurityMemberAccessTest extends TestCase {
 assertFalse("barLogic() from BarInterface is accessible!!!", 
accessible);
 }
 
+public void testMiddleOfInheritanceExclusion1() throws Exception {
+// given
+SecurityMemberAccess sma = new SecurityMemberAccess(false);
+
+String propertyName = "fooLogic";
+Member member = FooBar.class.getMethod(propertyName);
+
+Set> excluded = new HashSet>();
+excluded.add(BarInterface.class);
+sma.setExcludedClasses(excluded);
+
+// when
+boolean accessible = sma.isAccessible(context, target, member, 
propertyName);
+
+// then
+assertTrue("fooLogic() from FooInterface isn't accessible!!!", 
accessible);
+}
+
+public void testMiddleOfInheritanceExclusion2() throws Exception {
+// given
+SecurityMemberAccess sma = new SecurityMemberAccess(false);
+
+String propertyName = "barLogic";
+Member member = BarInterface.class.getMethod(propertyName);
+
+Set> excluded = new HashSet>();
+excluded.add(BarInterface.class);
+sma.setExcludedClasses(excluded);
+
+// when
+boolean accessible = sma.isAccessible(context, target, member, 
propertyName);
+
+// then
+assertFalse("barLogic() from BarInterface is accessible!!!", 
accessible);
+}
+
+public void testMiddleOfInheritanceExclusion3() throws Exception {
+// given
+SecurityMemberAccess sma = new SecurityMemberAccess(false);
+
+String propertyName = "barLogic";
+Me

[27/50] git commit: Extracts interface to simplify implementation by users

2014-06-27 Thread lukaszlenart
Extracts interface to simplify implementation by users


Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/bfbc4c04
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/bfbc4c04
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/bfbc4c04

Branch: refs/heads/feature/WW-4295-localization
Commit: bfbc4c04e007393986f374a02dfb7ded23bc9a05
Parents: ba1850a
Author: Lukasz Lenart 
Authored: Tue May 13 20:29:21 2014 +0200
Committer: Lukasz Lenart 
Committed: Tue May 13 20:29:21 2014 +0200

--
 core/src/main/resources/struts-default.xml  |  2 +-
 .../interceptor/CookieInterceptorTest.java  | 20 ++---
 .../xwork2/DefaultExcludedPatternsChecker.java  | 93 
 .../xwork2/ExcludedPatternsChecker.java | 92 +--
 4 files changed, 106 insertions(+), 101 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/struts/blob/bfbc4c04/core/src/main/resources/struts-default.xml
--
diff --git a/core/src/main/resources/struts-default.xml 
b/core/src/main/resources/struts-default.xml
index 554a8ba..f2fb922 100644
--- a/core/src/main/resources/struts-default.xml
+++ b/core/src/main/resources/struts-default.xml
@@ -144,7 +144,7 @@
 
 
 
-
+
 
 
 

http://git-wip-us.apache.org/repos/asf/struts/blob/bfbc4c04/core/src/test/java/org/apache/struts2/interceptor/CookieInterceptorTest.java
--
diff --git 
a/core/src/test/java/org/apache/struts2/interceptor/CookieInterceptorTest.java 
b/core/src/test/java/org/apache/struts2/interceptor/CookieInterceptorTest.java
index 2bbaef9..1f642f5 100644
--- 
a/core/src/test/java/org/apache/struts2/interceptor/CookieInterceptorTest.java
+++ 
b/core/src/test/java/org/apache/struts2/interceptor/CookieInterceptorTest.java
@@ -27,7 +27,7 @@ import java.util.Map;
 
 import javax.servlet.http.Cookie;
 
-import com.opensymphony.xwork2.ExcludedPatternsChecker;
+import com.opensymphony.xwork2.DefaultExcludedPatternsChecker;
 import com.opensymphony.xwork2.mock.MockActionInvocation;
 import org.easymock.MockControl;
 import org.springframework.mock.web.MockHttpServletRequest;
@@ -66,7 +66,7 @@ public class CookieInterceptorTest extends 
StrutsInternalTestCase {
 
 // by default the interceptor doesn't accept any cookies
 CookieInterceptor interceptor = new CookieInterceptor();
-interceptor.setExcludedPatternsChecker(new ExcludedPatternsChecker());
+interceptor.setExcludedPatternsChecker(new 
DefaultExcludedPatternsChecker());
 
 interceptor.intercept(invocation);
 
@@ -102,7 +102,7 @@ public class CookieInterceptorTest extends 
StrutsInternalTestCase {
 actionInvocationControl.replay();
 
 CookieInterceptor interceptor = new CookieInterceptor();
-interceptor.setExcludedPatternsChecker(new ExcludedPatternsChecker());
+interceptor.setExcludedPatternsChecker(new 
DefaultExcludedPatternsChecker());
 interceptor.setCookiesName("*");
 interceptor.setCookiesValue("*");
 interceptor.intercept(invocation);
@@ -144,7 +144,7 @@ public class CookieInterceptorTest extends 
StrutsInternalTestCase {
 actionInvocationControl.replay();
 
 CookieInterceptor interceptor = new CookieInterceptor();
-interceptor.setExcludedPatternsChecker(new ExcludedPatternsChecker());
+interceptor.setExcludedPatternsChecker(new 
DefaultExcludedPatternsChecker());
 interceptor.setCookiesName("cookie1, cookie2, cookie3");
 interceptor.setCookiesValue("cookie1value, cookie2value, 
cookie3value");
 interceptor.intercept(invocation);
@@ -185,7 +185,7 @@ public class CookieInterceptorTest extends 
StrutsInternalTestCase {
 actionInvocationControl.replay();
 
 CookieInterceptor interceptor = new CookieInterceptor();
-interceptor.setExcludedPatternsChecker(new ExcludedPatternsChecker());
+interceptor.setExcludedPatternsChecker(new 
DefaultExcludedPatternsChecker());
 interceptor.setCookiesName("cookie1, cookie3");
 interceptor.setCookiesValue("cookie1value, cookie2value, 
cookie3value");
 interceptor.intercept(invocation);
@@ -226,7 +226,7 @@ public class CookieInterceptorTest extends 
StrutsInternalTestCase {
 actionInvocationControl.replay();
 
 CookieInterceptor interceptor = new CookieInterceptor();
-interceptor.setExcludedPatternsChecker(new ExcludedPatternsChecker());
+interceptor.setExcludedPatternsChecker(new 
DefaultExcludedPatternsChecker());
 interceptor.setCookiesName("cookie1, cookie3");
 interceptor.setCookiesValue("*");
 interceptor.intercept(invocation);
@@ -267,7 +267,7 

[04/50] git commit: Renames excluded properties to excluded classes

2014-06-27 Thread lukaszlenart
Renames excluded properties to excluded classes


Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/d5bd607c
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/d5bd607c
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/d5bd607c

Branch: refs/heads/feature/WW-4295-localization
Commit: d5bd607c6fd0cbbf12e75492e7333439758446ea
Parents: c778297
Author: Lukasz Lenart 
Authored: Sat May 3 20:13:10 2014 +0200
Committer: Lukasz Lenart 
Committed: Sat May 3 20:13:10 2014 +0200

--
 .../src/main/java/com/opensymphony/xwork2/XWorkConstants.java  | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/struts/blob/d5bd607c/xwork-core/src/main/java/com/opensymphony/xwork2/XWorkConstants.java
--
diff --git 
a/xwork-core/src/main/java/com/opensymphony/xwork2/XWorkConstants.java 
b/xwork-core/src/main/java/com/opensymphony/xwork2/XWorkConstants.java
index 1894372..dfbf6d5 100644
--- a/xwork-core/src/main/java/com/opensymphony/xwork2/XWorkConstants.java
+++ b/xwork-core/src/main/java/com/opensymphony/xwork2/XWorkConstants.java
@@ -17,6 +17,6 @@ public final class XWorkConstants {
 public static final String RELOAD_XML_CONFIGURATION = 
"reloadXmlConfiguration";
 public static final String ALLOW_STATIC_METHOD_ACCESS = 
"allowStaticMethodAccess";
 public static final String XWORK_LOGGER_FACTORY = "xwork.loggerFactory";
-public static final String OGNL_EXCLUDED_PROPERTIES = 
"ognlExcludedProperties";
+public static final String OGNL_EXCLUDED_CLASSES = "ognlExcludedClasses";
 
 }



[40/50] git commit: Ties excluding packages into Struts DI mechanism

2014-06-27 Thread lukaszlenart
Ties excluding packages into Struts DI mechanism


Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/4ee18f96
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/4ee18f96
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/4ee18f96

Branch: refs/heads/feature/WW-4295-localization
Commit: 4ee18f96bc2d401f9007c5fd458c47b7ae4ff35d
Parents: dba9da3
Author: Lukasz Lenart 
Authored: Fri May 23 09:58:33 2014 +0200
Committer: Lukasz Lenart 
Committed: Fri May 23 09:58:33 2014 +0200

--
 .../java/org/apache/struts2/StrutsConstants.java   |  3 ++-
 .../config/DefaultBeanSelectionProvider.java   |  3 +++
 core/src/main/resources/struts-default.xml |  2 ++
 .../com/opensymphony/xwork2/XWorkConstants.java|  2 ++
 .../com/opensymphony/xwork2/ognl/OgnlUtil.java | 17 -
 .../opensymphony/xwork2/ognl/OgnlValueStack.java   |  1 +
 6 files changed, 26 insertions(+), 2 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/struts/blob/4ee18f96/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 8c0c5ce..dd08993 100644
--- a/core/src/main/java/org/apache/struts2/StrutsConstants.java
+++ b/core/src/main/java/org/apache/struts2/StrutsConstants.java
@@ -282,8 +282,9 @@ public final class StrutsConstants {
 /** Allows override default DispatcherErrorHandler **/
 public static final String STRUTS_DISPATCHER_ERROR_HANDLER = 
"struts.dispatcher.errorHandler";
 
-/** Comma delimited set of excluded classes which cannot be accessed via 
expressions **/
+/** Comma delimited set of excluded classes and package names which cannot 
be accessed via expressions **/
 public static final String STRUTS_EXCLUDED_CLASSES = 
"struts.excludedClasses";
+public static final String STRUTS_EXCLUDED_PACKAGE_NAME_PATTERNS = 
"struts.excludedPackageNamePatterns";
 
 /** Dedicated services to check if passed string is excluded/accepted **/
 public static final String STRUTS_EXCLUDED_PATTERNS_CHECKER = 
"struts.excludedPatterns.checker";

http://git-wip-us.apache.org/repos/asf/struts/blob/4ee18f96/core/src/main/java/org/apache/struts2/config/DefaultBeanSelectionProvider.java
--
diff --git 
a/core/src/main/java/org/apache/struts2/config/DefaultBeanSelectionProvider.java
 
b/core/src/main/java/org/apache/struts2/config/DefaultBeanSelectionProvider.java
index 4334d3c..a671133 100644
--- 
a/core/src/main/java/org/apache/struts2/config/DefaultBeanSelectionProvider.java
+++ 
b/core/src/main/java/org/apache/struts2/config/DefaultBeanSelectionProvider.java
@@ -403,7 +403,10 @@ public class DefaultBeanSelectionProvider extends 
AbstractBeanSelectionProvider
 convertIfExist(props, 
StrutsConstants.STRUTS_ENABLE_OGNL_EVAL_EXPRESSION, 
XWorkConstants.ENABLE_OGNL_EVAL_EXPRESSION);
 convertIfExist(props, 
StrutsConstants.STRUTS_ALLOW_STATIC_METHOD_ACCESS, 
XWorkConstants.ALLOW_STATIC_METHOD_ACCESS);
 convertIfExist(props, StrutsConstants.STRUTS_CONFIGURATION_XML_RELOAD, 
XWorkConstants.RELOAD_XML_CONFIGURATION);
+
 convertIfExist(props, StrutsConstants.STRUTS_EXCLUDED_CLASSES, 
XWorkConstants.OGNL_EXCLUDED_CLASSES);
+convertIfExist(props, 
StrutsConstants.STRUTS_EXCLUDED_PACKAGE_NAME_PATTERNS, 
XWorkConstants.OGNL_EXCLUDED_PACKAGE_NAME_PATTERNS);
+
 convertIfExist(props, 
StrutsConstants.STRUTS_OVERRIDE_EXCLUDED_PATTERNS, 
XWorkConstants.OVERRIDE_EXCLUDED_PATTERNS);
 convertIfExist(props, 
StrutsConstants.STRUTS_OVERRIDE_ACCEPTED_PATTERNS, 
XWorkConstants.OVERRIDE_ACCEPTED_PATTERNS);
 

http://git-wip-us.apache.org/repos/asf/struts/blob/4ee18f96/core/src/main/resources/struts-default.xml
--
diff --git a/core/src/main/resources/struts-default.xml 
b/core/src/main/resources/struts-default.xml
index a1aa63f..0275a48 100644
--- a/core/src/main/resources/struts-default.xml
+++ b/core/src/main/resources/struts-default.xml
@@ -39,6 +39,8 @@
 
 
 
+
+
 
 
 

http://git-wip-us.apache.org/repos/asf/struts/blob/4ee18f96/xwork-core/src/main/java/com/opensymphony/xwork2/XWorkConstants.java
--
diff --git 
a/xwork-core/src/main/java/com/opensymphony/xwork2/XWorkConstants.java 
b/xwork-core/src/main/java/com/opensymphony/xwork2/XWorkConstants.java
index b846ac0..830df78 100644
--- a/xwork-core/src/main/java/com/opensymphony/xwork2/XWorkConstants.java
+++ b/xwork-core/src/main/java/com/opensymphony/xwork2/XWorkConstant

[41/50] git commit: Uses WARN to report if package or class is excluded

2014-06-27 Thread lukaszlenart
Uses WARN to report if package or class is excluded


Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/5a5af1b5
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/5a5af1b5
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/5a5af1b5

Branch: refs/heads/feature/WW-4295-localization
Commit: 5a5af1b5879a9865aca03c70ae5bd6f7a3473f7b
Parents: 4ee18f9
Author: Lukasz Lenart 
Authored: Fri May 23 09:58:52 2014 +0200
Committer: Lukasz Lenart 
Committed: Fri May 23 09:58:52 2014 +0200

--
 .../com/opensymphony/xwork2/ognl/SecurityMemberAccess.java   | 8 
 1 file changed, 4 insertions(+), 4 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/struts/blob/5a5af1b5/xwork-core/src/main/java/com/opensymphony/xwork2/ognl/SecurityMemberAccess.java
--
diff --git 
a/xwork-core/src/main/java/com/opensymphony/xwork2/ognl/SecurityMemberAccess.java
 
b/xwork-core/src/main/java/com/opensymphony/xwork2/ognl/SecurityMemberAccess.java
index 39f882a..d0862e7 100644
--- 
a/xwork-core/src/main/java/com/opensymphony/xwork2/ognl/SecurityMemberAccess.java
+++ 
b/xwork-core/src/main/java/com/opensymphony/xwork2/ognl/SecurityMemberAccess.java
@@ -54,15 +54,15 @@ public class SecurityMemberAccess extends 
DefaultMemberAccess {
 @Override
 public boolean isAccessible(Map context, Object target, Member member, 
String propertyName) {
 if (isPackageExcluded(target.getClass().getPackage(), 
member.getDeclaringClass().getPackage())) {
-if (LOG.isDebugEnabled()) {
-LOG.debug("Target package [#0] and member package [#1] are 
excluded!", target, member);
+if (LOG.isWarnEnabled()) {
+LOG.warn("Package of target [#0] or package of member [#1] are 
excluded!", target, member);
 }
 return false;
 }
 
 if (isClassExcluded(target.getClass(), member.getDeclaringClass())) {
-if (LOG.isDebugEnabled()) {
-LOG.debug("Target class [#0] and member type [#1] are 
excluded!", target, member);
+if (LOG.isWarnEnabled()) {
+LOG.warn("Target class [#0] or declaring class of member type 
[#1] are excluded!", target, member);
 }
 return false;
 }



[15/50] git commit: Merge branch 'develop' into feature/exclude-object-class

2014-06-27 Thread lukaszlenart
Merge branch 'develop' into feature/exclude-object-class

Conflicts:

xwork-core/src/main/java/com/opensymphony/xwork2/interceptor/ParametersInterceptor.java


Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/a5946d08
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/a5946d08
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/a5946d08

Branch: refs/heads/feature/WW-4295-localization
Commit: a5946d0814b6245f1e83e4ff8e5f337b045991ae
Parents: ba0ac0d 086c0a0
Author: Lukasz Lenart 
Authored: Mon May 5 06:43:31 2014 +0200
Committer: Lukasz Lenart 
Committed: Mon May 5 06:43:31 2014 +0200

--
 .../struts2/interceptor/CookieInterceptor.java  | 74 +++-
 core/src/main/resources/struts-default.xml  |  8 +--
 .../interceptor/CookieInterceptorTest.java  | 66 +
 plugins/rest/pom.xml|  2 +-
 pom.xml |  3 +-
 src/site/resources/archetype-catalog.xml| 12 ++--
 .../opensymphony/xwork2/ExcludedPatterns.java   | 22 ++
 .../interceptor/ParametersInterceptor.java  |  2 +-
 .../opensymphony/xwork2/mock/MockResult.java|  2 +
 .../interceptor/ParametersInterceptorTest.java  | 68 ++
 10 files changed, 242 insertions(+), 17 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/struts/blob/a5946d08/core/src/main/resources/struts-default.xml
--

http://git-wip-us.apache.org/repos/asf/struts/blob/a5946d08/xwork-core/src/main/java/com/opensymphony/xwork2/interceptor/ParametersInterceptor.java
--
diff --cc 
xwork-core/src/main/java/com/opensymphony/xwork2/interceptor/ParametersInterceptor.java
index e09ab54,c73b057..6de6aad
--- 
a/xwork-core/src/main/java/com/opensymphony/xwork2/interceptor/ParametersInterceptor.java
+++ 
b/xwork-core/src/main/java/com/opensymphony/xwork2/interceptor/ParametersInterceptor.java
@@@ -485,9 -507,8 +485,9 @@@ public class ParametersInterceptor exte
  public void setExcludeParams(String commaDelim) {
  Collection excludePatterns = 
ArrayUtils.asCollection(commaDelim);
  if (excludePatterns != null) {
 +excludeParams = new HashSet();
  for (String pattern : excludePatterns) {
- excludeParams.add(Pattern.compile(pattern));
+ excludeParams.add(Pattern.compile(pattern, 
Pattern.CASE_INSENSITIVE));
  }
  }
  }

http://git-wip-us.apache.org/repos/asf/struts/blob/a5946d08/xwork-core/src/test/java/com/opensymphony/xwork2/interceptor/ParametersInterceptorTest.java
--



[32/50] git commit: Adds new dependency to allow tests pass

2014-06-27 Thread lukaszlenart
Adds new dependency to allow tests pass


Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/d1d81f8a
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/d1d81f8a
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/d1d81f8a

Branch: refs/heads/feature/WW-4295-localization
Commit: d1d81f8a77e05ade18d67571816510d6655cee1e
Parents: 5ec47b1
Author: Lukasz Lenart 
Authored: Wed May 14 08:26:27 2014 +0200
Committer: Lukasz Lenart 
Committed: Wed May 14 08:26:27 2014 +0200

--
 .../xwork2/config/providers/XWorkConfigurationProvider.java  | 8 +++-
 1 file changed, 7 insertions(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/struts/blob/d1d81f8a/xwork-core/src/main/java/com/opensymphony/xwork2/config/providers/XWorkConfigurationProvider.java
--
diff --git 
a/xwork-core/src/main/java/com/opensymphony/xwork2/config/providers/XWorkConfigurationProvider.java
 
b/xwork-core/src/main/java/com/opensymphony/xwork2/config/providers/XWorkConfigurationProvider.java
index 0d48999..c341d98 100644
--- 
a/xwork-core/src/main/java/com/opensymphony/xwork2/config/providers/XWorkConfigurationProvider.java
+++ 
b/xwork-core/src/main/java/com/opensymphony/xwork2/config/providers/XWorkConfigurationProvider.java
@@ -2,9 +2,11 @@ package com.opensymphony.xwork2.config.providers;
 
 import com.opensymphony.xwork2.ActionProxyFactory;
 import com.opensymphony.xwork2.DefaultActionProxyFactory;
+import com.opensymphony.xwork2.DefaultExcludedPatternsChecker;
 import com.opensymphony.xwork2.DefaultLocaleProvider;
 import com.opensymphony.xwork2.DefaultTextProvider;
 import com.opensymphony.xwork2.DefaultUnknownHandlerManager;
+import com.opensymphony.xwork2.ExcludedPatternsChecker;
 import com.opensymphony.xwork2.FileManager;
 import com.opensymphony.xwork2.FileManagerFactory;
 import com.opensymphony.xwork2.LocaleProvider;
@@ -168,7 +170,11 @@ public class XWorkConfigurationProvider implements 
ConfigurationProvider {
 .factory(ArrayConverter.class, Scope.SINGLETON)
 .factory(DateConverter.class, Scope.SINGLETON)
 .factory(NumberConverter.class, Scope.SINGLETON)
-.factory(StringConverter.class, Scope.SINGLETON);
+.factory(StringConverter.class, Scope.SINGLETON)
+
+.factory(ExcludedPatternsChecker.class, 
DefaultExcludedPatternsChecker.class, Scope.DEFAULT)
+;
+
 props.setProperty(XWorkConstants.DEV_MODE, Boolean.FALSE.toString());
 props.setProperty(XWorkConstants.LOG_MISSING_PROPERTIES, 
Boolean.FALSE.toString());
 props.setProperty(XWorkConstants.ENABLE_OGNL_EXPRESSION_CACHE, 
Boolean.TRUE.toString());



[10/50] git commit: Defines excluded classes

2014-06-27 Thread lukaszlenart
Defines excluded classes


Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/f84efa5f
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/f84efa5f
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/f84efa5f

Branch: refs/heads/feature/WW-4295-localization
Commit: f84efa5f42a31ecbcbe3eba28653a57829e598b8
Parents: cdfb94d
Author: Lukasz Lenart 
Authored: Sat May 3 20:18:44 2014 +0200
Committer: Lukasz Lenart 
Committed: Sat May 3 20:18:44 2014 +0200

--
 core/src/main/resources/struts-default.xml | 2 +-
 xwork-core/src/test/resources/xwork-param-test.xml | 2 +-
 xwork-core/src/test/resources/xwork-test-beans.xml | 8 
 3 files changed, 6 insertions(+), 6 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/struts/blob/f84efa5f/core/src/main/resources/struts-default.xml
--
diff --git a/core/src/main/resources/struts-default.xml 
b/core/src/main/resources/struts-default.xml
index 7cb687e..0e4c419 100644
--- a/core/src/main/resources/struts-default.xml
+++ b/core/src/main/resources/struts-default.xml
@@ -38,7 +38,7 @@
 
 
 
-
+
 
 
 

http://git-wip-us.apache.org/repos/asf/struts/blob/f84efa5f/xwork-core/src/test/resources/xwork-param-test.xml
--
diff --git a/xwork-core/src/test/resources/xwork-param-test.xml 
b/xwork-core/src/test/resources/xwork-param-test.xml
index 3ca616a..01787f7 100644
--- a/xwork-core/src/test/resources/xwork-param-test.xml
+++ b/xwork-core/src/test/resources/xwork-param-test.xml
@@ -4,5 +4,5 @@
 
 

-
+
 
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/struts/blob/f84efa5f/xwork-core/src/test/resources/xwork-test-beans.xml
--
diff --git a/xwork-core/src/test/resources/xwork-test-beans.xml 
b/xwork-core/src/test/resources/xwork-test-beans.xml
index 3fa5b28..7268ef7 100644
--- a/xwork-core/src/test/resources/xwork-test-beans.xml
+++ b/xwork-core/src/test/resources/xwork-test-beans.xml
@@ -3,11 +3,11 @@
 "http://struts.apache.org/dtds/xwork-2.0.dtd";>
 
 
-
 
-

[25/50] git commit: Uses newly defined Struts bean instead duplicating logic

2014-06-27 Thread lukaszlenart
Uses newly defined Struts bean instead duplicating logic


Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/735fd961
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/735fd961
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/735fd961

Branch: refs/heads/feature/WW-4295-localization
Commit: 735fd96114413181defb17cd49aa75da232a7040
Parents: 9884c49
Author: Lukasz Lenart 
Authored: Mon May 12 08:27:30 2014 +0200
Committer: Lukasz Lenart 
Committed: Mon May 12 08:27:30 2014 +0200

--
 .../struts2/interceptor/CookieInterceptor.java  | 49 
 .../interceptor/CookieInterceptorTest.java  | 11 +
 2 files changed, 30 insertions(+), 30 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/struts/blob/735fd961/core/src/main/java/org/apache/struts2/interceptor/CookieInterceptor.java
--
diff --git 
a/core/src/main/java/org/apache/struts2/interceptor/CookieInterceptor.java 
b/core/src/main/java/org/apache/struts2/interceptor/CookieInterceptor.java
index 340b57f..8998c5c 100644
--- a/core/src/main/java/org/apache/struts2/interceptor/CookieInterceptor.java
+++ b/core/src/main/java/org/apache/struts2/interceptor/CookieInterceptor.java
@@ -23,17 +23,18 @@ package org.apache.struts2.interceptor;
 
 import com.opensymphony.xwork2.ActionContext;
 import com.opensymphony.xwork2.ActionInvocation;
+import com.opensymphony.xwork2.inject.Inject;
 import com.opensymphony.xwork2.interceptor.AbstractInterceptor;
-import com.opensymphony.xwork2.ExcludedPatterns;
+import com.opensymphony.xwork2.ExcludedPatternsChecker;
 import com.opensymphony.xwork2.util.TextParseUtil;
 import com.opensymphony.xwork2.util.ValueStack;
 import com.opensymphony.xwork2.util.logging.Logger;
 import com.opensymphony.xwork2.util.logging.LoggerFactory;
 import org.apache.struts2.ServletActionContext;
+import org.apache.struts2.StrutsConstants;
 
 import javax.servlet.http.Cookie;
 import java.util.Collections;
-import java.util.HashSet;
 import java.util.LinkedHashMap;
 import java.util.Map;
 import java.util.Set;
@@ -176,12 +177,12 @@ public class CookieInterceptor extends 
AbstractInterceptor {
 
 // Allowed names of cookies
 private Pattern acceptedPattern = Pattern.compile(ACCEPTED_PATTERN, 
Pattern.CASE_INSENSITIVE);
-private Set excludedPatterns = new HashSet();
 
-public CookieInterceptor() {
-for (String pattern : ExcludedPatterns.EXCLUDED_PATTERNS) {
-excludedPatterns.add(Pattern.compile(pattern, 
Pattern.CASE_INSENSITIVE));
-}
+private ExcludedPatternsChecker excludedPatternsChecker;
+
+@Inject(StrutsConstants.STRUTS_EXCLUDED_PATTERNS_CHECKER)
+public void setExcludedPatternsChecker(ExcludedPatternsChecker 
excludedPatternsChecker) {
+this.excludedPatternsChecker = excludedPatternsChecker;
 }
 
 /**
@@ -260,16 +261,7 @@ public class CookieInterceptor extends AbstractInterceptor 
{
  * @return true|false
  */
 protected boolean isAcceptableValue(String value) {
-for (Pattern excludedPattern : excludedPatterns) {
-boolean matches = !excludedPattern.matcher(value).matches();
-if (!matches) {
-if (LOG.isTraceEnabled()) {
-LOG.trace("Cookie value [#0] matches excludedPattern 
[#1]", value, excludedPattern.toString());
-}
-return false;
-}
-}
-return true;
+return !isExcluded(value) && isAccepted(value);
 }
 
 /**
@@ -283,7 +275,7 @@ public class CookieInterceptor extends AbstractInterceptor {
 }
 
 /**
- * Checks if name of Cookie match {@link #acceptedPattern}
+ * Checks if name/value of Cookie is acceptable
  *
  * @param name of Cookie
  * @return true|false
@@ -303,24 +295,21 @@ public class CookieInterceptor extends 
AbstractInterceptor {
 }
 
 /**
- * Checks if name of Cookie match {@link #excludedPatterns}
+ * Checks if name/value of Cookie is excluded
  *
  * @param name of Cookie
  * @return true|false
  */
 protected boolean isExcluded(String name) {
-for (Pattern excludedPattern : excludedPatterns) {
-boolean matches = excludedPattern.matcher(name).matches();
-if (matches) {
-if (LOG.isTraceEnabled()) {
-LOG.trace("Cookie [#0] matches excludedPattern [#1]", 
name, excludedPattern.toString());
-}
-return true;
-} else {
-if (LOG.isTraceEnabled()) {
-LOG.trace("Cookie [#0] doesn't match excludedPattern 
[#1]", name, excludedPattern.toString());
-}
+ExcludedPatternsChecker.IsExcl

[12/50] git commit: Adds special treatment of Object class and unit test

2014-06-27 Thread lukaszlenart
Adds special treatment of Object class and unit test


Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/b3ca9ea5
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/b3ca9ea5
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/b3ca9ea5

Branch: refs/heads/feature/WW-4295-localization
Commit: b3ca9ea5e31fc9b6c0a5e644e833874bb7cc62fa
Parents: cb59074
Author: Lukasz Lenart 
Authored: Sun May 4 11:18:00 2014 +0200
Committer: Lukasz Lenart 
Committed: Sun May 4 11:18:00 2014 +0200

--
 .../xwork2/ognl/SecurityMemberAccess.java   |  11 +-
 .../xwork2/ognl/SecurityMemberAccessTest.java   | 139 +++
 2 files changed, 146 insertions(+), 4 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/struts/blob/b3ca9ea5/xwork-core/src/main/java/com/opensymphony/xwork2/ognl/SecurityMemberAccess.java
--
diff --git 
a/xwork-core/src/main/java/com/opensymphony/xwork2/ognl/SecurityMemberAccess.java
 
b/xwork-core/src/main/java/com/opensymphony/xwork2/ognl/SecurityMemberAccess.java
index 9d84702..7fe77c3 100644
--- 
a/xwork-core/src/main/java/com/opensymphony/xwork2/ognl/SecurityMemberAccess.java
+++ 
b/xwork-core/src/main/java/com/opensymphony/xwork2/ognl/SecurityMemberAccess.java
@@ -21,6 +21,7 @@ import java.lang.reflect.Member;
 import java.lang.reflect.Method;
 import java.lang.reflect.Modifier;
 import java.util.Collections;
+import java.util.HashSet;
 import java.util.Map;
 import java.util.Set;
 import java.util.regex.Matcher;
@@ -47,8 +48,7 @@ public class SecurityMemberAccess extends DefaultMemberAccess 
{
 }
 
 @Override
-public boolean isAccessible(Map context, Object target, Member member,
-String propertyName) {
+public boolean isAccessible(Map context, Object target, Member member, 
String propertyName) {
 
 if (isClassExcluded(target.getClass(), member.getDeclaringClass())) {
 return false;
@@ -79,8 +79,11 @@ public class SecurityMemberAccess extends 
DefaultMemberAccess {
 }
 
 protected boolean isClassExcluded(Class targetClass, Class 
declaringClass) {
-for (Class excludedClass : excludedClasses) {
-if (targetClass.isAssignableFrom(excludedClass) || 
declaringClass.isAssignableFrom(excludedClass)) {
+if (targetClass == Object.class || declaringClass == Object.class) {
+return true;
+}
+for (Class excludedClass : excludedClasses) {
+if (excludedClass.isAssignableFrom(targetClass) || 
declaringClass.isAssignableFrom(excludedClass)) {
 return true;
 }
 }

http://git-wip-us.apache.org/repos/asf/struts/blob/b3ca9ea5/xwork-core/src/test/java/com/opensymphony/xwork2/ognl/SecurityMemberAccessTest.java
--
diff --git 
a/xwork-core/src/test/java/com/opensymphony/xwork2/ognl/SecurityMemberAccessTest.java
 
b/xwork-core/src/test/java/com/opensymphony/xwork2/ognl/SecurityMemberAccessTest.java
new file mode 100644
index 000..4ccc831
--- /dev/null
+++ 
b/xwork-core/src/test/java/com/opensymphony/xwork2/ognl/SecurityMemberAccessTest.java
@@ -0,0 +1,139 @@
+package com.opensymphony.xwork2.ognl;
+
+import junit.framework.TestCase;
+
+import java.lang.reflect.Member;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Set;
+
+public class SecurityMemberAccessTest extends TestCase {
+
+private Map context;
+private FooBar target;
+
+@Override
+public void setUp() throws Exception {
+context = new HashMap();
+target = new FooBar();
+}
+
+public void testWithoutClassExclusion() throws Exception {
+// given
+SecurityMemberAccess sma = new SecurityMemberAccess(false);
+
+String propertyName = "stringField";
+Member member = FooBar.class.getMethod("get" + 
propertyName.substring(0, 1).toUpperCase() + propertyName.substring(1));
+
+// when
+boolean accessible = sma.isAccessible(context, target, member, 
propertyName);
+
+// then
+assertTrue(accessible);
+}
+
+public void testClassExclusion() throws Exception {
+// given
+SecurityMemberAccess sma = new SecurityMemberAccess(false);
+
+String propertyName = "stringField";
+Member member = FooBar.class.getDeclaredMethod("get" + 
propertyName.substring(0, 1).toUpperCase() + propertyName.substring(1));
+
+Set> excluded = new HashSet>();
+excluded.add(FooBar.class);
+sma.setExcludedClasses(excluded);
+
+// when
+boolean accessible = sma.isAccessible(context, target, member, 
propertyName);
+
+// then
+asser

[01/50] git commit: [maven-release-plugin] prepare release STRUTS_2_3_16_3

2014-06-27 Thread lukaszlenart
Repository: struts
Updated Branches:
  refs/heads/feature/WW-4295-localization d67fce1f2 -> d20c2f10b


[maven-release-plugin] prepare release STRUTS_2_3_16_3


Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/e03ff728
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/e03ff728
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/e03ff728

Branch: refs/heads/feature/WW-4295-localization
Commit: e03ff728618f5bf551083fc3a52d43c07434bbc9
Parents: 0761909
Author: Lukasz Lenart 
Authored: Fri May 2 17:10:41 2014 +0200
Committer: Lukasz Lenart 
Committed: Fri May 2 17:10:41 2014 +0200

--
 apps/blank/pom.xml  | 2 +-
 apps/jboss-blank/pom.xml| 2 +-
 apps/mailreader/pom.xml | 2 +-
 apps/pom.xml| 2 +-
 apps/portlet/pom.xml| 2 +-
 apps/rest-showcase/pom.xml  | 4 ++--
 apps/showcase/pom.xml   | 2 +-
 archetypes/pom.xml  | 2 +-
 archetypes/struts2-archetype-angularjs/pom.xml  | 4 ++--
 archetypes/struts2-archetype-blank/pom.xml  | 4 ++--
 archetypes/struts2-archetype-convention/pom.xml | 4 ++--
 archetypes/struts2-archetype-dbportlet/pom.xml  | 4 ++--
 archetypes/struts2-archetype-plugin/pom.xml | 4 ++--
 archetypes/struts2-archetype-portlet/pom.xml| 4 ++--
 archetypes/struts2-archetype-starter/pom.xml| 4 ++--
 assembly/pom.xml| 2 +-
 bundles/admin/pom.xml   | 2 +-
 bundles/demo/pom.xml| 2 +-
 bundles/pom.xml | 2 +-
 core/pom.xml| 2 +-
 plugins/cdi/pom.xml | 2 +-
 plugins/codebehind/pom.xml  | 2 +-
 plugins/config-browser/pom.xml  | 2 +-
 plugins/convention/pom.xml  | 2 +-
 plugins/dojo/pom.xml| 2 +-
 plugins/dwr/pom.xml | 2 +-
 plugins/embeddedjsp/pom.xml | 2 +-
 plugins/gxp/pom.xml | 2 +-
 plugins/jasperreports/pom.xml   | 2 +-
 plugins/javatemplates/pom.xml   | 2 +-
 plugins/jfreechart/pom.xml  | 2 +-
 plugins/jsf/pom.xml | 2 +-
 plugins/json/pom.xml| 2 +-
 plugins/junit/pom.xml   | 2 +-
 plugins/osgi/pom.xml| 2 +-
 plugins/oval/pom.xml| 2 +-
 plugins/pell-multipart/pom.xml  | 2 +-
 plugins/plexus/pom.xml  | 2 +-
 plugins/pom.xml | 2 +-
 plugins/portlet-tiles/pom.xml   | 2 +-
 plugins/portlet/pom.xml | 2 +-
 plugins/rest/pom.xml| 4 ++--
 plugins/sitegraph/pom.xml   | 2 +-
 plugins/sitemesh/pom.xml| 2 +-
 plugins/spring/pom.xml  | 2 +-
 plugins/struts1/pom.xml | 2 +-
 plugins/testng/pom.xml  | 2 +-
 plugins/tiles/pom.xml   | 2 +-
 plugins/tiles3/pom.xml  | 2 +-
 pom.xml | 4 ++--
 xwork-core/pom.xml  | 2 +-
 51 files changed, 61 insertions(+), 61 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/struts/blob/e03ff728/apps/blank/pom.xml
--
diff --git a/apps/blank/pom.xml b/apps/blank/pom.xml
index 81a88d5..b7343c6 100644
--- a/apps/blank/pom.xml
+++ b/apps/blank/pom.xml
@@ -26,7 +26,7 @@
 
 org.apache.struts
 struts2-apps
-2.3.16.3-SNAPSHOT
+2.3.16.3
 
 
 struts2-blank

http://git-wip-us.apache.org/repos/asf/struts/blob/e03ff728/apps/jboss-blank/pom.xml
--
diff --git a/apps/jboss-blank/pom.xml b/apps/jboss-blank/pom.xml
index b77c977..62c6803 100644
--- a/apps/jboss-blank/pom.xml
+++ b/apps/jboss-blank/pom.xml
@@ -26,7 +26,7 @@
 
 org.apache.struts
 struts2-apps
-2.3.16.3-SNAPSHOT
+2.3.16.3
 
 
 struts2-jboss-blank

http://git-wip-us.apache.org/repos/asf/struts/blob/e03ff728/apps/mailreader/pom.xml
--
diff --git a/apps/mailreader/pom.xml b/apps/mailreader/pom.xml
index bb7ae7c..c41bb76 100644
--- a/apps/mailreader/pom.xml
+++ b/apps/mailreader/pom.xml
@@ -26,7 +26,7 @@
 
   org.apache.struts
  

[18/50] git commit: Merge branch 'hotfix/2.3.16.3'

2014-06-27 Thread lukaszlenart
Merge branch 'hotfix/2.3.16.3'

Conflicts:
apps/rest-showcase/pom.xml
archetypes/struts2-archetype-angularjs/pom.xml
archetypes/struts2-archetype-blank/pom.xml
archetypes/struts2-archetype-convention/pom.xml
archetypes/struts2-archetype-dbportlet/pom.xml
archetypes/struts2-archetype-plugin/pom.xml
archetypes/struts2-archetype-portlet/pom.xml
archetypes/struts2-archetype-starter/pom.xml
assembly/src/main/assembly/docs.xml


Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/38a3f8bf
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/38a3f8bf
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/38a3f8bf

Branch: refs/heads/feature/WW-4295-localization
Commit: 38a3f8bfb6b226db3adb44a8fc4ad0850feee54f
Parents: c9fd44f bcffc25
Author: Lukasz Lenart 
Authored: Thu May 8 21:55:35 2014 +0200
Committer: Lukasz Lenart 
Committed: Thu May 8 21:55:35 2014 +0200

--
 apps/blank/pom.xml  |  2 +-
 apps/jboss-blank/pom.xml|  2 +-
 apps/mailreader/pom.xml |  2 +-
 apps/pom.xml|  2 +-
 apps/portlet/pom.xml|  2 +-
 apps/rest-showcase/pom.xml  |  4 +-
 apps/showcase/pom.xml   |  2 +-
 archetypes/pom.xml  |  2 +-
 archetypes/struts2-archetype-angularjs/pom.xml  |  3 +-
 archetypes/struts2-archetype-blank/pom.xml  |  3 +-
 archetypes/struts2-archetype-convention/pom.xml |  3 +-
 archetypes/struts2-archetype-dbportlet/pom.xml  |  3 +-
 archetypes/struts2-archetype-plugin/pom.xml |  3 +-
 archetypes/struts2-archetype-portlet/pom.xml|  3 +-
 archetypes/struts2-archetype-starter/pom.xml|  3 +-
 assembly/pom.xml|  2 +-
 bundles/admin/pom.xml   |  2 +-
 bundles/demo/pom.xml|  2 +-
 bundles/pom.xml |  2 +-
 core/pom.xml|  2 +-
 .../struts2/interceptor/CookieInterceptor.java  | 45 +++--
 .../interceptor/CookieInterceptorTest.java  | 53 
 plugins/cdi/pom.xml |  2 +-
 plugins/codebehind/pom.xml  |  2 +-
 plugins/config-browser/pom.xml  |  2 +-
 plugins/convention/pom.xml  |  2 +-
 plugins/dojo/pom.xml|  2 +-
 plugins/dwr/pom.xml |  2 +-
 plugins/embeddedjsp/pom.xml |  2 +-
 plugins/gxp/pom.xml |  2 +-
 plugins/jasperreports/pom.xml   |  2 +-
 plugins/javatemplates/pom.xml   |  2 +-
 plugins/jfreechart/pom.xml  |  2 +-
 plugins/jsf/pom.xml |  2 +-
 plugins/json/pom.xml|  2 +-
 plugins/junit/pom.xml   |  2 +-
 plugins/osgi/pom.xml|  2 +-
 plugins/oval/pom.xml|  2 +-
 plugins/pell-multipart/pom.xml  |  2 +-
 plugins/plexus/pom.xml  |  2 +-
 plugins/pom.xml |  2 +-
 plugins/portlet-tiles/pom.xml   |  2 +-
 plugins/portlet/pom.xml |  2 +-
 plugins/rest/pom.xml|  4 +-
 plugins/sitegraph/pom.xml   |  2 +-
 plugins/sitemesh/pom.xml|  2 +-
 plugins/spring/pom.xml  |  2 +-
 plugins/struts1/pom.xml |  2 +-
 plugins/testng/pom.xml  |  2 +-
 plugins/tiles/pom.xml   |  2 +-
 plugins/tiles3/pom.xml  |  2 +-
 pom.xml |  2 +-
 xwork-core/pom.xml  |  2 +-
 53 files changed, 142 insertions(+), 69 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/struts/blob/38a3f8bf/apps/blank/pom.xml
--

http://git-wip-us.apache.org/repos/asf/struts/blob/38a3f8bf/apps/jboss-blank/pom.xml
--

http://git-wip-us.apache.org/repos/asf/struts/blob/38a3f8bf/apps/mailreader/pom.xml
--

http://git-wip-us.apache.org/repos/asf/struts/blob/38a3f8bf/apps/pom.xml
--
diff --cc apps/pom.xml
index ac06753,d0a24d0..5860c18
--- a/apps/pom.xml
+++ b/apps/pom.xml
@@@ -26,11 -26,12 +26,11 @@@
   

[26/50] git commit: Adds description about new extension point

2014-06-27 Thread lukaszlenart
Adds description about new extension point


Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/ba1850a1
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/ba1850a1
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/ba1850a1

Branch: refs/heads/feature/WW-4295-localization
Commit: ba1850a1382765eb51c58103a8c5ee7c0d9417f4
Parents: 735fd96
Author: Lukasz Lenart 
Authored: Tue May 13 20:28:26 2014 +0200
Committer: Lukasz Lenart 
Committed: Tue May 13 20:28:26 2014 +0200

--
 .../apache/struts2/config/DefaultBeanSelectionProvider.java| 6 ++
 1 file changed, 6 insertions(+)
--


http://git-wip-us.apache.org/repos/asf/struts/blob/ba1850a1/core/src/main/java/org/apache/struts2/config/DefaultBeanSelectionProvider.java
--
diff --git 
a/core/src/main/java/org/apache/struts2/config/DefaultBeanSelectionProvider.java
 
b/core/src/main/java/org/apache/struts2/config/DefaultBeanSelectionProvider.java
index 5304910..5296b41 100644
--- 
a/core/src/main/java/org/apache/struts2/config/DefaultBeanSelectionProvider.java
+++ 
b/core/src/main/java/org/apache/struts2/config/DefaultBeanSelectionProvider.java
@@ -313,6 +313,12 @@ import java.util.StringTokenizer;
  * Used to parse expressions like ${foo.bar} or %{bar.foo} but it is 
up tp the TextParser's
  * implementation what kind of opening char to use (#, $, %, etc)
  *   
+ *   
+ * com.opensymphony.xwork2.ExcludedPatternsChecker
+ * struts.excludedPatterns.checker
+ * request
+ * Used across different interceptors to check if given string matches 
one of the excluded patterns
+ *   
  * 
  *
  * 



[06/50] git commit: Sets excluded classes during injecting OgnlUtil

2014-06-27 Thread lukaszlenart
Sets excluded classes during injecting OgnlUtil


Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/2180b06f
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/2180b06f
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/2180b06f

Branch: refs/heads/feature/WW-4295-localization
Commit: 2180b06f7d1d38e7701e72123e57208feb4cb444
Parents: 2798057
Author: Lukasz Lenart 
Authored: Sat May 3 20:16:33 2014 +0200
Committer: Lukasz Lenart 
Committed: Sat May 3 20:16:33 2014 +0200

--
 .../main/java/com/opensymphony/xwork2/ognl/OgnlValueStack.java| 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/struts/blob/2180b06f/xwork-core/src/main/java/com/opensymphony/xwork2/ognl/OgnlValueStack.java
--
diff --git 
a/xwork-core/src/main/java/com/opensymphony/xwork2/ognl/OgnlValueStack.java 
b/xwork-core/src/main/java/com/opensymphony/xwork2/ognl/OgnlValueStack.java
index 76f0d3f..83be3ed 100644
--- a/xwork-core/src/main/java/com/opensymphony/xwork2/ognl/OgnlValueStack.java
+++ b/xwork-core/src/main/java/com/opensymphony/xwork2/ognl/OgnlValueStack.java
@@ -79,6 +79,7 @@ public class OgnlValueStack implements Serializable, 
ValueStack, ClearableValueS
 @Inject
 public void setOgnlUtil(OgnlUtil ognlUtil) {
 this.ognlUtil = ognlUtil;
+securityMemberAccess.setExcludedClasses(ognlUtil.getExcludedClasses());
 }
 
 protected void setRoot(XWorkConverter xworkConverter, CompoundRootAccessor 
accessor, CompoundRoot compoundRoot,
@@ -446,7 +447,7 @@ public class OgnlValueStack implements Serializable, 
ValueStack, ClearableValueS
 XWorkConverter xworkConverter = cont.getInstance(XWorkConverter.class);
 CompoundRootAccessor accessor = (CompoundRootAccessor) 
cont.getInstance(PropertyAccessor.class, CompoundRoot.class.getName());
 TextProvider prov = cont.getInstance(TextProvider.class, "system");
-boolean allow = "true".equals(cont.getInstance(String.class, 
"allowStaticMethodAccess"));
+boolean allow = "true".equals(cont.getInstance(String.class, 
XWorkConstants.ALLOW_STATIC_METHOD_ACCESS));
 OgnlValueStack aStack = new OgnlValueStack(xworkConverter, accessor, 
prov, allow);
 aStack.setOgnlUtil(cont.getInstance(OgnlUtil.class));
 aStack.setRoot(xworkConverter, accessor, this.root, allow);



[33/50] git commit: Updates tests to match new requirements

2014-06-27 Thread lukaszlenart
Updates tests to match new requirements


Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/83b76b0f
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/83b76b0f
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/83b76b0f

Branch: refs/heads/feature/WW-4295-localization
Commit: 83b76b0fe83411d93dc2c534c8c47dc53f0dca82
Parents: d1d81f8
Author: Lukasz Lenart 
Authored: Wed May 14 08:26:43 2014 +0200
Committer: Lukasz Lenart 
Committed: Wed May 14 08:26:43 2014 +0200

--
 .../org/apache/struts2/TestConfigurationProvider.java|  5 +
 xwork-core/src/test/resources/xwork-class-param-test.xml | 11 +++
 2 files changed, 16 insertions(+)
--


http://git-wip-us.apache.org/repos/asf/struts/blob/83b76b0f/core/src/test/java/org/apache/struts2/TestConfigurationProvider.java
--
diff --git 
a/core/src/test/java/org/apache/struts2/TestConfigurationProvider.java 
b/core/src/test/java/org/apache/struts2/TestConfigurationProvider.java
index cd42ed5..9323f02 100644
--- a/core/src/test/java/org/apache/struts2/TestConfigurationProvider.java
+++ b/core/src/test/java/org/apache/struts2/TestConfigurationProvider.java
@@ -24,6 +24,8 @@ package org.apache.struts2;
 import com.opensymphony.xwork2.Action;
 import com.opensymphony.xwork2.ActionProxyFactory;
 import com.opensymphony.xwork2.DefaultActionProxyFactory;
+import com.opensymphony.xwork2.DefaultExcludedPatternsChecker;
+import com.opensymphony.xwork2.ExcludedPatternsChecker;
 import com.opensymphony.xwork2.ObjectFactory;
 import com.opensymphony.xwork2.config.Configuration;
 import com.opensymphony.xwork2.config.ConfigurationException;
@@ -164,5 +166,8 @@ public class TestConfigurationProvider implements 
ConfigurationProvider {
 if (!builder.contains(ActionProxyFactory.class)) {
 builder.factory(ActionProxyFactory.class, 
DefaultActionProxyFactory.class);
 }
+if (!builder.contains(ExcludedPatternsChecker.class)) {
+builder.factory(ExcludedPatternsChecker.class, 
DefaultExcludedPatternsChecker.class);
+}
 }
 }

http://git-wip-us.apache.org/repos/asf/struts/blob/83b76b0f/xwork-core/src/test/resources/xwork-class-param-test.xml
--
diff --git a/xwork-core/src/test/resources/xwork-class-param-test.xml 
b/xwork-core/src/test/resources/xwork-class-param-test.xml
new file mode 100644
index 000..f12c083
--- /dev/null
+++ b/xwork-core/src/test/resources/xwork-class-param-test.xml
@@ -0,0 +1,11 @@
+http://struts.apache.org/dtds/xwork-2.0.dtd";>
+
+
+
+
+
+
+
+
\ No newline at end of file



[17/50] git commit: Removes override which isn't used anymore

2014-06-27 Thread lukaszlenart
Removes override which isn't used anymore


Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/7857b869
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/7857b869
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/7857b869

Branch: refs/heads/feature/WW-4295-localization
Commit: 7857b869a05b12779e35bfe8751828dfbf328fff
Parents: 62ee6b1
Author: Lukasz Lenart 
Authored: Mon May 5 21:33:44 2014 +0200
Committer: Lukasz Lenart 
Committed: Mon May 5 21:33:44 2014 +0200

--
 .../xwork2/interceptor/ParametersInterceptorTest.java | 14 --
 1 file changed, 14 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/struts/blob/7857b869/xwork-core/src/test/java/com/opensymphony/xwork2/interceptor/ParametersInterceptorTest.java
--
diff --git 
a/xwork-core/src/test/java/com/opensymphony/xwork2/interceptor/ParametersInterceptorTest.java
 
b/xwork-core/src/test/java/com/opensymphony/xwork2/interceptor/ParametersInterceptorTest.java
index 6ffb3ff..359618f 100644
--- 
a/xwork-core/src/test/java/com/opensymphony/xwork2/interceptor/ParametersInterceptorTest.java
+++ 
b/xwork-core/src/test/java/com/opensymphony/xwork2/interceptor/ParametersInterceptorTest.java
@@ -187,10 +187,6 @@ public class ParametersInterceptorTest extends 
XWorkTestCase {
 return result;
 }
 
-@Override
-protected void initializeHardCodedExcludePatterns() {
-excludeParams = new HashSet();
-}
 };
 
 container.inject(pi);
@@ -307,11 +303,6 @@ public class ParametersInterceptorTest extends 
XWorkTestCase {
 ParametersInterceptor pi = new ParametersInterceptor() {
 
 @Override
-protected void initializeHardCodedExcludePatterns() {
-this.excludeParams = new HashSet();
-}
-
-@Override
 protected boolean isExcluded(String paramName) {
 boolean result = super.isExcluded(paramName);
 excluded.put(paramName, result);
@@ -744,11 +735,6 @@ public class ParametersInterceptorTest extends 
XWorkTestCase {
 assertEquals(expected, actual);
 }
 
-public void testExcludedPatternsGetInitialized() throws Exception {
-ParametersInterceptor parametersInterceptor = new 
ParametersInterceptor();
-assertEquals(ExcludedPatterns.EXCLUDED_PATTERNS.length, 
parametersInterceptor.excludeParams.size());
-}
-
 private ValueStack injectValueStack(Map actual) {
 ValueStack stack = createStubValueStack(actual);
 container.inject(stack);



[37/50] git commit: Defines new service to check accepted patterns

2014-06-27 Thread lukaszlenart
Defines new service to check accepted patterns


Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/b140faad
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/b140faad
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/b140faad

Branch: refs/heads/feature/WW-4295-localization
Commit: b140faad2813809c132ef75e4459f6dbbee664b8
Parents: 97ef7b5
Author: Lukasz Lenart 
Authored: Wed May 21 09:03:30 2014 +0200
Committer: Lukasz Lenart 
Committed: Wed May 21 09:03:30 2014 +0200

--
 .../security/AcceptedPatternsChecker.java   | 82 ++
 .../DefaultAcceptedPatternsChecker.java | 88 
 2 files changed, 170 insertions(+)
--


http://git-wip-us.apache.org/repos/asf/struts/blob/b140faad/xwork-core/src/main/java/com/opensymphony/xwork2/security/AcceptedPatternsChecker.java
--
diff --git 
a/xwork-core/src/main/java/com/opensymphony/xwork2/security/AcceptedPatternsChecker.java
 
b/xwork-core/src/main/java/com/opensymphony/xwork2/security/AcceptedPatternsChecker.java
new file mode 100644
index 000..6ea9ec9
--- /dev/null
+++ 
b/xwork-core/src/main/java/com/opensymphony/xwork2/security/AcceptedPatternsChecker.java
@@ -0,0 +1,82 @@
+package com.opensymphony.xwork2.security;
+
+import java.util.Set;
+import java.util.regex.Pattern;
+
+/**
+ * Used across different interceptors to check if given string matches one of 
the excluded patterns.
+ */
+public interface AcceptedPatternsChecker {
+
+/**
+ * Checks if value matches any of patterns on exclude list
+ *
+ * @param value to check
+ * @return object containing result of matched pattern and pattern itself
+ */
+public IsAccepted isAccepted(String value);
+
+/**
+ * Allows add additional excluded patterns during runtime
+ *
+ * @param commaDelimitedPatterns comma delimited string with patterns
+ */
+public void addAcceptedPatterns(String commaDelimitedPatterns);
+
+/**
+ * Allows add additional excluded patterns during runtime
+ *
+ * @param additionalPatterns array of additional excluded patterns
+ */
+public void addAcceptedPatterns(String[] additionalPatterns);
+
+/**
+ * Allows add additional excluded patterns during runtime
+ *
+ * @param additionalPatterns set of additional patterns
+ */
+public void addAcceptedPatterns(Set additionalPatterns);
+
+/**
+ * Allow access list of all defined excluded patterns
+ *
+ * @return set of excluded patterns
+ */
+public Set getAcceptedPatterns();
+
+public final static class IsAccepted {
+
+private final boolean accepted;
+private final Pattern acceptedPattern;
+
+public static IsAccepted yes(Pattern acceptedPattern) {
+return new IsAccepted(true, acceptedPattern);
+}
+
+public static IsAccepted no() {
+return new IsAccepted(false, null);
+}
+
+private IsAccepted(boolean accepted, Pattern acceptedPattern) {
+this.accepted = accepted;
+this.acceptedPattern = acceptedPattern;
+}
+
+public boolean isAccepted() {
+return accepted;
+}
+
+public Pattern getAcceptedPattern() {
+return acceptedPattern;
+}
+
+@Override
+public String toString() {
+return "IsAccepted {" +
+"accepted=" + accepted +
+", acceptedPattern=" + acceptedPattern +
+" }";
+}
+}
+
+}

http://git-wip-us.apache.org/repos/asf/struts/blob/b140faad/xwork-core/src/main/java/com/opensymphony/xwork2/security/DefaultAcceptedPatternsChecker.java
--
diff --git 
a/xwork-core/src/main/java/com/opensymphony/xwork2/security/DefaultAcceptedPatternsChecker.java
 
b/xwork-core/src/main/java/com/opensymphony/xwork2/security/DefaultAcceptedPatternsChecker.java
new file mode 100644
index 000..fa1b8e1
--- /dev/null
+++ 
b/xwork-core/src/main/java/com/opensymphony/xwork2/security/DefaultAcceptedPatternsChecker.java
@@ -0,0 +1,88 @@
+package com.opensymphony.xwork2.security;
+
+import com.opensymphony.xwork2.XWorkConstants;
+import com.opensymphony.xwork2.inject.Inject;
+import com.opensymphony.xwork2.util.TextParseUtil;
+import com.opensymphony.xwork2.util.logging.Logger;
+import com.opensymphony.xwork2.util.logging.LoggerFactory;
+
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.Set;
+import java.util.regex.Pattern;
+
+public class DefaultAcceptedPatternsChecker implements AcceptedPatternsChecker 
{
+
+private static final Logger LOG = 
LoggerFactory.getLogger(DefaultAcceptedP

[19/50] git commit: Sets correct version in poms to match actually released version

2014-06-27 Thread lukaszlenart
Sets correct version in poms to match actually released version


Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/d2663ced
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/d2663ced
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/d2663ced

Branch: refs/heads/feature/WW-4295-localization
Commit: d2663cedd264a5b26bc1b12035aff7b32e138f78
Parents: 38a3f8b
Author: Lukasz Lenart 
Authored: Thu May 8 21:57:25 2014 +0200
Committer: Lukasz Lenart 
Committed: Thu May 8 21:57:25 2014 +0200

--
 apps/blank/pom.xml  | 2 +-
 apps/jboss-blank/pom.xml| 2 +-
 apps/mailreader/pom.xml | 2 +-
 apps/pom.xml| 2 +-
 apps/portlet/pom.xml| 2 +-
 apps/rest-showcase/pom.xml  | 4 ++--
 apps/showcase/pom.xml   | 2 +-
 archetypes/pom.xml  | 2 +-
 archetypes/struts2-archetype-angularjs/pom.xml  | 4 ++--
 archetypes/struts2-archetype-blank/pom.xml  | 4 ++--
 archetypes/struts2-archetype-convention/pom.xml | 4 ++--
 archetypes/struts2-archetype-dbportlet/pom.xml  | 4 ++--
 archetypes/struts2-archetype-plugin/pom.xml | 4 ++--
 archetypes/struts2-archetype-portlet/pom.xml| 4 ++--
 archetypes/struts2-archetype-starter/pom.xml| 4 ++--
 assembly/pom.xml| 2 +-
 bundles/admin/pom.xml   | 2 +-
 bundles/demo/pom.xml| 2 +-
 bundles/pom.xml | 2 +-
 core/pom.xml| 2 +-
 plugins/cdi/pom.xml | 2 +-
 plugins/codebehind/pom.xml  | 2 +-
 plugins/config-browser/pom.xml  | 2 +-
 plugins/convention/pom.xml  | 2 +-
 plugins/dojo/pom.xml| 2 +-
 plugins/dwr/pom.xml | 2 +-
 plugins/embeddedjsp/pom.xml | 2 +-
 plugins/gxp/pom.xml | 2 +-
 plugins/jasperreports/pom.xml   | 2 +-
 plugins/javatemplates/pom.xml   | 2 +-
 plugins/jfreechart/pom.xml  | 2 +-
 plugins/jsf/pom.xml | 2 +-
 plugins/json/pom.xml| 2 +-
 plugins/junit/pom.xml   | 2 +-
 plugins/osgi/pom.xml| 2 +-
 plugins/oval/pom.xml| 2 +-
 plugins/pell-multipart/pom.xml  | 2 +-
 plugins/plexus/pom.xml  | 2 +-
 plugins/pom.xml | 2 +-
 plugins/portlet-tiles/pom.xml   | 2 +-
 plugins/portlet/pom.xml | 2 +-
 plugins/rest/pom.xml| 4 ++--
 plugins/sitegraph/pom.xml   | 2 +-
 plugins/sitemesh/pom.xml| 2 +-
 plugins/spring/pom.xml  | 2 +-
 plugins/struts1/pom.xml | 2 +-
 plugins/testng/pom.xml  | 2 +-
 plugins/tiles/pom.xml   | 2 +-
 plugins/tiles3/pom.xml  | 2 +-
 pom.xml | 2 +-
 xwork-core/pom.xml  | 2 +-
 51 files changed, 60 insertions(+), 60 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/struts/blob/d2663ced/apps/blank/pom.xml
--
diff --git a/apps/blank/pom.xml b/apps/blank/pom.xml
index 99de588..f56bf90 100644
--- a/apps/blank/pom.xml
+++ b/apps/blank/pom.xml
@@ -26,7 +26,7 @@
 
 org.apache.struts
 struts2-apps
-2.3.16.4-SNAPSHOT
+2.3.16.3
 
 
 struts2-blank

http://git-wip-us.apache.org/repos/asf/struts/blob/d2663ced/apps/jboss-blank/pom.xml
--
diff --git a/apps/jboss-blank/pom.xml b/apps/jboss-blank/pom.xml
index 283ccb4..f9e0b8c 100644
--- a/apps/jboss-blank/pom.xml
+++ b/apps/jboss-blank/pom.xml
@@ -26,7 +26,7 @@
 
 org.apache.struts
 struts2-apps
-2.3.16.4-SNAPSHOT
+2.3.16.3
 
 
 struts2-jboss-blank

http://git-wip-us.apache.org/repos/asf/struts/blob/d2663ced/apps/mailreader/pom.xml
--
diff --git a/apps/mailreader/pom.xml b/apps/mailreader/pom.xml
index fc1307a..b6281b1 100644
--- a/apps/mailreader/pom.xml
+++ b/apps/mailreader/pom.xml
@@ -26,7 +26,7 @@
 
   org.apache.struts
   struts2-apps
-  2.3.16.4-SNAPSHOT
+  2.3.16.3
 
 
 struts2-mailreader

http://gi

[44/50] git commit: Adds additional method to check if value of param isn't excluded

2014-06-27 Thread lukaszlenart
Adds additional method to check if value of param isn't excluded


Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/5ebc0643
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/5ebc0643
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/5ebc0643

Branch: refs/heads/feature/WW-4295-localization
Commit: 5ebc0643b55d728a6713a82559a594d875452cd8
Parents: 89cbe13
Author: Lukasz Lenart 
Authored: Sun Jun 1 10:49:20 2014 +0200
Committer: Lukasz Lenart 
Committed: Sun Jun 1 10:49:20 2014 +0200

--
 .../interceptor/ParametersInterceptor.java  | 30 +++-
 1 file changed, 29 insertions(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/struts/blob/5ebc0643/xwork-core/src/main/java/com/opensymphony/xwork2/interceptor/ParametersInterceptor.java
--
diff --git 
a/xwork-core/src/main/java/com/opensymphony/xwork2/interceptor/ParametersInterceptor.java
 
b/xwork-core/src/main/java/com/opensymphony/xwork2/interceptor/ParametersInterceptor.java
index c1b2f3d..d95c2a7 100644
--- 
a/xwork-core/src/main/java/com/opensymphony/xwork2/interceptor/ParametersInterceptor.java
+++ 
b/xwork-core/src/main/java/com/opensymphony/xwork2/interceptor/ParametersInterceptor.java
@@ -273,7 +273,8 @@ public class ParametersInterceptor extends 
MethodFilterInterceptor {
 
 for (Map.Entry entry : params.entrySet()) {
 String name = entry.getKey();
-if (isAcceptableParameter(name, action)) {
+Object value = entry.getValue();
+if (isAcceptableParameter(name, action) && 
isAcceptableValue(value)) {
 acceptableParameters.put(name, entry.getValue());
 }
 }
@@ -349,6 +350,33 @@ public class ParametersInterceptor extends 
MethodFilterInterceptor {
 }
 
 /**
+ * Checks if given value doesn't match global excluded patterns to avoid 
passing malicious code
+ *
+ * @param value incoming parameter's value
+ * @return true if value is safe
+ *
+ * FIXME: can be removed when parameters won't be represented as simple 
Strings
+ */
+protected boolean isAcceptableValue(Object value) {
+if (value == null) {
+return true;
+}
+Object[] values;
+if (value.getClass().isArray()) {
+values = (Object[]) value;
+} else {
+values = new Object[] { value };
+}
+boolean result = true;
+for (Object obj : values) {
+if (isExcluded(obj.toString())) {
+result = false;
+}
+}
+return result;
+}
+
+/**
  * Gets an instance of the comparator to use for the ordered sorting.  
Override this
  * method to customize the ordering of the parameters as they are set to 
the
  * action.



[03/50] git commit: Extends SecurityMemberAccess to included excluded classes

2014-06-27 Thread lukaszlenart
Extends SecurityMemberAccess to included excluded classes


Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/c778297e
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/c778297e
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/c778297e

Branch: refs/heads/feature/WW-4295-localization
Commit: c778297e80e19c7e16389e5c5bb3487512695c0a
Parents: ee3c8d5
Author: Lukasz Lenart 
Authored: Sat May 3 20:12:14 2014 +0200
Committer: Lukasz Lenart 
Committed: Sat May 3 20:12:14 2014 +0200

--
 .../xwork2/ognl/SecurityMemberAccess.java  | 17 +
 1 file changed, 17 insertions(+)
--


http://git-wip-us.apache.org/repos/asf/struts/blob/c778297e/xwork-core/src/main/java/com/opensymphony/xwork2/ognl/SecurityMemberAccess.java
--
diff --git 
a/xwork-core/src/main/java/com/opensymphony/xwork2/ognl/SecurityMemberAccess.java
 
b/xwork-core/src/main/java/com/opensymphony/xwork2/ognl/SecurityMemberAccess.java
index 7bbcbda..9d84702 100644
--- 
a/xwork-core/src/main/java/com/opensymphony/xwork2/ognl/SecurityMemberAccess.java
+++ 
b/xwork-core/src/main/java/com/opensymphony/xwork2/ognl/SecurityMemberAccess.java
@@ -35,6 +35,7 @@ public class SecurityMemberAccess extends DefaultMemberAccess 
{
 private final boolean allowStaticMethodAccess;
 private Set excludeProperties = Collections.emptySet();
 private Set acceptProperties = Collections.emptySet();
+private Set> excludedClasses = Collections.emptySet();
 
 public SecurityMemberAccess(boolean method) {
 super(false);
@@ -49,6 +50,9 @@ public class SecurityMemberAccess extends DefaultMemberAccess 
{
 public boolean isAccessible(Map context, Object target, Member member,
 String propertyName) {
 
+if (isClassExcluded(target.getClass(), member.getDeclaringClass())) {
+return false;
+}
 boolean allow = true;
 int modifiers = member.getModifiers();
 if (Modifier.isStatic(modifiers)) {
@@ -74,6 +78,15 @@ public class SecurityMemberAccess extends 
DefaultMemberAccess {
 return isAcceptableProperty(propertyName);
 }
 
+protected boolean isClassExcluded(Class targetClass, Class 
declaringClass) {
+for (Class excludedClass : excludedClasses) {
+if (targetClass.isAssignableFrom(excludedClass) || 
declaringClass.isAssignableFrom(excludedClass)) {
+return true;
+}
+}
+return false;
+}
+
 protected boolean isAcceptableProperty(String name) {
 return name == null || ((!isExcluded(name)) && isAccepted(name));
 }
@@ -115,4 +128,8 @@ public class SecurityMemberAccess extends 
DefaultMemberAccess {
 this.acceptProperties = acceptedProperties;
 }
 
+public void setExcludedClasses(Set> excludedClasses) {
+this.excludedClasses = excludedClasses;
+}
+
 }



[29/50] git commit: Cleans up new extension point

2014-06-27 Thread lukaszlenart
Cleans up new extension point


Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/e8e5b51b
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/e8e5b51b
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/e8e5b51b

Branch: refs/heads/feature/WW-4295-localization
Commit: e8e5b51bc64e71cc7645c1083b33e1942bf4a03d
Parents: 833a07e
Author: Lukasz Lenart 
Authored: Wed May 14 08:25:00 2014 +0200
Committer: Lukasz Lenart 
Committed: Wed May 14 08:25:00 2014 +0200

--
 .../org/apache/struts2/config/DefaultBeanSelectionProvider.java  | 4 ++--
 .../java/org/apache/struts2/interceptor/CookieInterceptor.java   | 2 +-
 core/src/main/resources/struts-default.xml   | 4 +---
 3 files changed, 4 insertions(+), 6 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/struts/blob/e8e5b51b/core/src/main/java/org/apache/struts2/config/DefaultBeanSelectionProvider.java
--
diff --git 
a/core/src/main/java/org/apache/struts2/config/DefaultBeanSelectionProvider.java
 
b/core/src/main/java/org/apache/struts2/config/DefaultBeanSelectionProvider.java
index 5296b41..5c29e78 100644
--- 
a/core/src/main/java/org/apache/struts2/config/DefaultBeanSelectionProvider.java
+++ 
b/core/src/main/java/org/apache/struts2/config/DefaultBeanSelectionProvider.java
@@ -390,8 +390,8 @@ public class DefaultBeanSelectionProvider extends 
AbstractBeanSelectionProvider
 
 alias(DispatcherErrorHandler.class, 
StrutsConstants.STRUTS_DISPATCHER_ERROR_HANDLER, builder, props);
 
-/** Checker is used mostly in interceptors, so there be one instance 
of checker per interceptor with Scope.REQUEST **/
-alias(ExcludedPatternsChecker.class, 
StrutsConstants.STRUTS_EXCLUDED_PATTERNS_CHECKER, builder, props, 
Scope.REQUEST);
+/** Checker is used mostly in interceptors, so there be one instance 
of checker per interceptor with Scope.DEFAULT **/
+alias(ExcludedPatternsChecker.class, 
StrutsConstants.STRUTS_EXCLUDED_PATTERNS_CHECKER, builder, props, 
Scope.DEFAULT);
 
 switchDevMode(props);
 

http://git-wip-us.apache.org/repos/asf/struts/blob/e8e5b51b/core/src/main/java/org/apache/struts2/interceptor/CookieInterceptor.java
--
diff --git 
a/core/src/main/java/org/apache/struts2/interceptor/CookieInterceptor.java 
b/core/src/main/java/org/apache/struts2/interceptor/CookieInterceptor.java
index 8998c5c..dbe47ce 100644
--- a/core/src/main/java/org/apache/struts2/interceptor/CookieInterceptor.java
+++ b/core/src/main/java/org/apache/struts2/interceptor/CookieInterceptor.java
@@ -180,7 +180,7 @@ public class CookieInterceptor extends AbstractInterceptor {
 
 private ExcludedPatternsChecker excludedPatternsChecker;
 
-@Inject(StrutsConstants.STRUTS_EXCLUDED_PATTERNS_CHECKER)
+@Inject
 public void setExcludedPatternsChecker(ExcludedPatternsChecker 
excludedPatternsChecker) {
 this.excludedPatternsChecker = excludedPatternsChecker;
 }

http://git-wip-us.apache.org/repos/asf/struts/blob/e8e5b51b/core/src/main/resources/struts-default.xml
--
diff --git a/core/src/main/resources/struts-default.xml 
b/core/src/main/resources/struts-default.xml
index f2fb922..2d74b4f 100644
--- a/core/src/main/resources/struts-default.xml
+++ b/core/src/main/resources/struts-default.xml
@@ -144,9 +144,7 @@
 
 
 
-
-
-
+
 
 
 



[48/50] git commit: Merge branch 'feature/exclude-object-class' into develop This adds new security mechanism to prevent access particular classes and packages

2014-06-27 Thread lukaszlenart
Merge branch 'feature/exclude-object-class' into develop
This adds new security mechanism to prevent access particular classes and 
packages


Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/21ef4e34
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/21ef4e34
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/21ef4e34

Branch: refs/heads/feature/WW-4295-localization
Commit: 21ef4e3487f5dbf46f9b6bdff7eceb057da28bdd
Parents: 63897e8 9654287
Author: Lukasz Lenart 
Authored: Wed Jun 18 08:48:22 2014 +0200
Committer: Lukasz Lenart 
Committed: Wed Jun 18 08:48:22 2014 +0200

--
 .../org/apache/struts2/StrutsConstants.java |  16 ++
 .../config/DefaultBeanSelectionProvider.java|  22 +-
 .../struts2/interceptor/CookieInterceptor.java  |  48 ++--
 core/src/main/resources/struts-default.xml  |  20 ++
 .../struts2/TestConfigurationProvider.java  |   5 +
 .../interceptor/CookieInterceptorTest.java  |  11 +
 .../ExecuteAndWaitInterceptorTest.java  |   2 +
 .../struts2/views/jsp/PropertyTagTest.java  |  30 ++-
 .../apache/struts2/views/jsp/ui/SelectTest.java |   2 +-
 .../struts2/rest/RestActionInvocationTest.java  |   2 +
 .../xwork2/DefaultActionInvocation.java |  54 ++---
 .../opensymphony/xwork2/ExcludedPatterns.java   |  22 --
 .../com/opensymphony/xwork2/XWorkConstants.java |  10 +
 .../providers/XWorkConfigurationProvider.java   |  11 +-
 .../interceptor/ParametersInterceptor.java  | 138 +--
 .../com/opensymphony/xwork2/ognl/OgnlUtil.java  |  77 +-
 .../xwork2/ognl/OgnlValueStack.java |   6 +-
 .../xwork2/ognl/SecurityMemberAccess.java   |  50 +++-
 .../security/AcceptedPatternsChecker.java   |  82 +++
 .../DefaultAcceptedPatternsChecker.java |  86 +++
 .../DefaultExcludedPatternsChecker.java |  95 
 .../security/ExcludedPatternsChecker.java   |  82 +++
 .../xwork2/DefaultActionInvocationTest.java |   8 +
 .../impl/AnnotationXWorkConverterTest.java  |  10 +-
 .../interceptor/ParametersInterceptorTest.java  |  47 ++--
 .../opensymphony/xwork2/ognl/OgnlUtilTest.java  | 164 +++--
 .../xwork2/ognl/OgnlValueStackTest.java |   1 +
 .../xwork2/ognl/SecurityMemberAccessTest.java   | 236 +++
 .../DefaultAcceptedPatternsCheckerTest.java |  56 +
 .../DefaultExcludedPatternsCheckerTest.java |  60 +
 .../test/resources/xwork-class-param-test.xml   |  11 +
 .../src/test/resources/xwork-param-test.xml |   1 +
 .../src/test/resources/xwork-test-beans.xml |  24 +-
 33 files changed, 1226 insertions(+), 263 deletions(-)
--




[46/50] git commit: Excludes ActionContext from Ognl evaluation

2014-06-27 Thread lukaszlenart
Excludes ActionContext from Ognl evaluation


Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/bbcc6014
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/bbcc6014
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/bbcc6014

Branch: refs/heads/feature/WW-4295-localization
Commit: bbcc6014f61e4d751114051605e8041474e5b496
Parents: eb8aae8
Author: Lukasz Lenart 
Authored: Thu Jun 5 08:25:44 2014 +0200
Committer: Lukasz Lenart 
Committed: Thu Jun 5 08:25:44 2014 +0200

--
 core/src/main/resources/struts-default.xml | 10 +-
 1 file changed, 9 insertions(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/struts/blob/bbcc6014/core/src/main/resources/struts-default.xml
--
diff --git a/core/src/main/resources/struts-default.xml 
b/core/src/main/resources/struts-default.xml
index 0fe8e68..49eba90 100644
--- a/core/src/main/resources/struts-default.xml
+++ b/core/src/main/resources/struts-default.xml
@@ -38,7 +38,15 @@
 
 
 
-
+
 
 
 



[42/50] git commit: Adds javax.* to excluded packages

2014-06-27 Thread lukaszlenart
Adds javax.* to excluded packages


Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/2df72b94
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/2df72b94
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/2df72b94

Branch: refs/heads/feature/WW-4295-localization
Commit: 2df72b941186b9c0a2a7fdc84cbf6d3001ec30e9
Parents: 5a5af1b
Author: Lukasz Lenart 
Authored: Fri May 23 17:36:45 2014 +0200
Committer: Lukasz Lenart 
Committed: Fri May 23 17:36:45 2014 +0200

--
 core/src/main/resources/struts-default.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/struts/blob/2df72b94/core/src/main/resources/struts-default.xml
--
diff --git a/core/src/main/resources/struts-default.xml 
b/core/src/main/resources/struts-default.xml
index 0275a48..0fe8e68 100644
--- a/core/src/main/resources/struts-default.xml
+++ b/core/src/main/resources/struts-default.xml
@@ -40,7 +40,7 @@
 
 
 
-
+
 
 
 



[49/50] git commit: WW-4146 caches only valid OGNL expressions, closes #12

2014-06-27 Thread lukaszlenart
WW-4146 caches only valid OGNL expressions, closes #12


Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/63de7730
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/63de7730
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/63de7730

Branch: refs/heads/feature/WW-4295-localization
Commit: 63de7730ee2be146e90227ed067ed108f4a2a534
Parents: 21ef4e3
Author: Lukasz Lenart 
Authored: Wed Jun 18 10:33:21 2014 +0200
Committer: Lukasz Lenart 
Committed: Wed Jun 18 10:33:21 2014 +0200

--
 .../src/main/java/com/opensymphony/xwork2/ognl/OgnlUtil.java   | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/struts/blob/63de7730/xwork-core/src/main/java/com/opensymphony/xwork2/ognl/OgnlUtil.java
--
diff --git 
a/xwork-core/src/main/java/com/opensymphony/xwork2/ognl/OgnlUtil.java 
b/xwork-core/src/main/java/com/opensymphony/xwork2/ognl/OgnlUtil.java
index b0345fc..63c45fe 100644
--- a/xwork-core/src/main/java/com/opensymphony/xwork2/ognl/OgnlUtil.java
+++ b/xwork-core/src/main/java/com/opensymphony/xwork2/ognl/OgnlUtil.java
@@ -331,17 +331,17 @@ public class OgnlUtil {
 if (tree == null) {
 tree = Ognl.parseExpression(expression);
 checkEnableEvalExpression(tree, context);
-expressions.putIfAbsent(expression, tree);
 }
 } else {
 tree = Ognl.parseExpression(expression);
 checkEnableEvalExpression(tree, context);
 }
 
-
 final T exec = task.execute(tree);
-if(enableExpressionCache)
+// if cache is enabled and it's a valid expression, puts it in
+if(enableExpressionCache) {
 expressions.putIfAbsent(expression, tree);
+}
 return exec;
 }
 



[09/50] git commit: Updates test to use new excluded classes

2014-06-27 Thread lukaszlenart
Updates test to use new excluded classes


Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/cdfb94d7
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/cdfb94d7
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/cdfb94d7

Branch: refs/heads/feature/WW-4295-localization
Commit: cdfb94d712e2b71bcf42f87f6c1b7d02d784dd87
Parents: afb5af1
Author: Lukasz Lenart 
Authored: Sat May 3 20:17:19 2014 +0200
Committer: Lukasz Lenart 
Committed: Sat May 3 20:17:19 2014 +0200

--
 .../impl/AnnotationXWorkConverterTest.java  |  10 +-
 .../opensymphony/xwork2/ognl/OgnlUtilTest.java  | 115 ---
 .../xwork2/ognl/OgnlValueStackTest.java |   1 +
 3 files changed, 54 insertions(+), 72 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/struts/blob/cdfb94d7/xwork-core/src/test/java/com/opensymphony/xwork2/conversion/impl/AnnotationXWorkConverterTest.java
--
diff --git 
a/xwork-core/src/test/java/com/opensymphony/xwork2/conversion/impl/AnnotationXWorkConverterTest.java
 
b/xwork-core/src/test/java/com/opensymphony/xwork2/conversion/impl/AnnotationXWorkConverterTest.java
index 4a7f517..14d9be1 100644
--- 
a/xwork-core/src/test/java/com/opensymphony/xwork2/conversion/impl/AnnotationXWorkConverterTest.java
+++ 
b/xwork-core/src/test/java/com/opensymphony/xwork2/conversion/impl/AnnotationXWorkConverterTest.java
@@ -374,8 +374,8 @@ public class AnnotationXWorkConverterTest extends 
XWorkTestCase {
 stack.setValue("genericMap[456.12]", "42");
 
 assertEquals(2, gb.getGenericMap().size());
-assertEquals(Integer.class, 
stack.findValue("genericMap.get(123.12).class"));
-assertEquals(Integer.class, 
stack.findValue("genericMap.get(456.12).class"));
+assertEquals("66", 
stack.findValue("genericMap.get(123.12).toString()"));
+assertEquals("42", 
stack.findValue("genericMap.get(456.12).toString()"));
 assertEquals(66, stack.findValue("genericMap.get(123.12)"));
 assertEquals(42, stack.findValue("genericMap.get(456.12)"));
 assertEquals(true, stack.findValue("genericMap.containsValue(66)"));
@@ -393,8 +393,8 @@ public class AnnotationXWorkConverterTest extends 
XWorkTestCase {
 stack.setValue("genericMap[456.12]", "42");
 
 assertEquals(2, gb.getGenericMap().size());
-assertEquals(Integer.class, 
stack.findValue("genericMap.get(123.12).class"));
-assertEquals(Integer.class, 
stack.findValue("genericMap.get(456.12).class"));
+assertEquals("66", 
stack.findValue("genericMap.get(123.12).toString()"));
+assertEquals("42", 
stack.findValue("genericMap.get(456.12).toString()"));
 assertEquals(66, stack.findValue("genericMap.get(123.12)"));
 assertEquals(42, stack.findValue("genericMap.get(456.12)"));
 assertEquals(true, stack.findValue("genericMap.containsValue(66)"));
@@ -409,7 +409,7 @@ public class AnnotationXWorkConverterTest extends 
XWorkTestCase {
 stack.push(gb);
 
 assertEquals(1, gb.getGetterList().size());
-assertEquals(Double.class, stack.findValue("getterList.get(0).class"));
+assertEquals("42.42", stack.findValue("getterList.get(0).toString()"));
 assertEquals(new Double(42.42), stack.findValue("getterList.get(0)"));
 assertEquals(new Double(42.42), gb.getGetterList().get(0));
 

http://git-wip-us.apache.org/repos/asf/struts/blob/cdfb94d7/xwork-core/src/test/java/com/opensymphony/xwork2/ognl/OgnlUtilTest.java
--
diff --git 
a/xwork-core/src/test/java/com/opensymphony/xwork2/ognl/OgnlUtilTest.java 
b/xwork-core/src/test/java/com/opensymphony/xwork2/ognl/OgnlUtilTest.java
index 98ff671..e8733d6 100644
--- a/xwork-core/src/test/java/com/opensymphony/xwork2/ognl/OgnlUtilTest.java
+++ b/xwork-core/src/test/java/com/opensymphony/xwork2/ognl/OgnlUtilTest.java
@@ -82,7 +82,7 @@ public class OgnlUtilTest extends XWorkTestCase {
 });
 
 Owner owner = new Owner();
-Map context = Ognl.createDefaultContext(owner);
+Map context = ognlUtil.createDefaultContext(owner);
 Map props = new HashMap();
 props.put("dog.name", dogName);
 
@@ -107,7 +107,7 @@ public class OgnlUtilTest extends XWorkTestCase {
 
 public void testCanSetDependentObjectArray() {
 EmailAction action = new EmailAction();
-Map context = Ognl.createDefaultContext(action);
+Map context = ognlUtil.createDefaultContext(action);
 
 Map props = new HashMap();
 props.put("email[0].address", "addr1");
@@ -125,7 +125,7 @@ public class OgnlUtilTest extends XWorkTestCase {
 Foo foo1 = new Foo();
 Foo foo2 = new Foo();
 

[45/50] git commit: Adds additional default exclude patterns to avoid access to #context

2014-06-27 Thread lukaszlenart
Adds additional default exclude patterns to avoid access to #context


Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/eb8aae87
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/eb8aae87
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/eb8aae87

Branch: refs/heads/feature/WW-4295-localization
Commit: eb8aae87521e627d3cd333e4dc351390bf1e80dc
Parents: 5ebc064
Author: Lukasz Lenart 
Authored: Thu Jun 5 08:25:24 2014 +0200
Committer: Lukasz Lenart 
Committed: Thu Jun 5 08:25:24 2014 +0200

--
 .../xwork2/security/DefaultExcludedPatternsChecker.java| 4 +++-
 .../xwork2/interceptor/ParametersInterceptorTest.java  | 6 ++
 .../xwork2/security/DefaultExcludedPatternsCheckerTest.java| 4 
 3 files changed, 9 insertions(+), 5 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/struts/blob/eb8aae87/xwork-core/src/main/java/com/opensymphony/xwork2/security/DefaultExcludedPatternsChecker.java
--
diff --git 
a/xwork-core/src/main/java/com/opensymphony/xwork2/security/DefaultExcludedPatternsChecker.java
 
b/xwork-core/src/main/java/com/opensymphony/xwork2/security/DefaultExcludedPatternsChecker.java
index f0a3d62..983ce63 100644
--- 
a/xwork-core/src/main/java/com/opensymphony/xwork2/security/DefaultExcludedPatternsChecker.java
+++ 
b/xwork-core/src/main/java/com/opensymphony/xwork2/security/DefaultExcludedPatternsChecker.java
@@ -23,7 +23,9 @@ public class DefaultExcludedPatternsChecker implements 
ExcludedPatternsChecker {
 "(^|.*#)request(\\.|\\[).*",
 "(^|.*#)application(\\.|\\[).*",
 "(^|.*#)servlet(Request|Response)(\\.|\\[).*",
-"(^|.*#)parameters(\\.|\\[).*"
+"(^|.*#)parameters(\\.|\\[).*",
+"(^|.*#)context(\\.|\\[).*",
+"(^|.*#)_memberAccess(\\.|\\[).*"
 };
 
 private Set excludedPatterns;

http://git-wip-us.apache.org/repos/asf/struts/blob/eb8aae87/xwork-core/src/test/java/com/opensymphony/xwork2/interceptor/ParametersInterceptorTest.java
--
diff --git 
a/xwork-core/src/test/java/com/opensymphony/xwork2/interceptor/ParametersInterceptorTest.java
 
b/xwork-core/src/test/java/com/opensymphony/xwork2/interceptor/ParametersInterceptorTest.java
index ce86051..d6fc7c5 100644
--- 
a/xwork-core/src/test/java/com/opensymphony/xwork2/interceptor/ParametersInterceptorTest.java
+++ 
b/xwork-core/src/test/java/com/opensymphony/xwork2/interceptor/ParametersInterceptorTest.java
@@ -110,13 +110,11 @@ public class ParametersInterceptorTest extends 
XWorkTestCase {
 pi.setParameters(action, vs, params);
 
 // then
-assertEquals(2, action.getActionMessages().size());
+assertEquals(1, action.getActionMessages().size());
 
 String msg1 = action.getActionMessage(0);
-String msg2 = action.getActionMessage(1);
 
-assertTrue(msg1.contains("Error setting expression 'name' with value 
'(#context[\"xwork.MethodAccessor.denyMethodExecution\"]= new 
java.lang.Boolean(false), #_memberAccess[\"allowStaticMethodAccess\"]= new 
java.lang.Boolean(true), @java.lang.Runtime@getRuntime().exec('mkdir 
/tmp/PWNAGE'))(meh)'"));
-assertTrue(msg2.contains("Error setting expression 'top['name'](0)' 
with value 'true'"));
+assertTrue(msg1.contains("Error setting expression 'top['name'](0)' 
with value 'true'"));
 assertNull(action.getName());
 }
 

http://git-wip-us.apache.org/repos/asf/struts/blob/eb8aae87/xwork-core/src/test/java/com/opensymphony/xwork2/security/DefaultExcludedPatternsCheckerTest.java
--
diff --git 
a/xwork-core/src/test/java/com/opensymphony/xwork2/security/DefaultExcludedPatternsCheckerTest.java
 
b/xwork-core/src/test/java/com/opensymphony/xwork2/security/DefaultExcludedPatternsCheckerTest.java
index 32121b9..6125521 100644
--- 
a/xwork-core/src/test/java/com/opensymphony/xwork2/security/DefaultExcludedPatternsCheckerTest.java
+++ 
b/xwork-core/src/test/java/com/opensymphony/xwork2/security/DefaultExcludedPatternsCheckerTest.java
@@ -39,6 +39,10 @@ public class DefaultExcludedPatternsCheckerTest extends 
XWorkTestCase {
 add("%{#parameters.test}");
 add("%{#Parameters['test']}");
 add("%{#Parameters.test}");
+
add("#context.get('com.opensymphony.xwork2.dispatcher.HttpServletResponse')");
+
add("%{#context.get('com.opensymphony.xwork2.dispatcher.HttpServletResponse')}");
+add("#_memberAccess[\"allowStaticMethodAccess\"]= new 
java.lang.Boolean(true)");
+add("%{#_memberAccess[\"allowStaticMethodAccess\"

[14/50] git commit: Adds default param to reduce noise in the logs during building

2014-06-27 Thread lukaszlenart
Adds default param to reduce noise in the logs during building


Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/086c0a0d
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/086c0a0d
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/086c0a0d

Branch: refs/heads/feature/WW-4295-localization
Commit: 086c0a0d5200acb04fe62eb86f5462d23d5891ba
Parents: d35072c
Author: Lukasz Lenart 
Authored: Mon May 5 06:41:07 2014 +0200
Committer: Lukasz Lenart 
Committed: Mon May 5 06:41:07 2014 +0200

--
 .../src/main/java/com/opensymphony/xwork2/mock/MockResult.java | 2 ++
 1 file changed, 2 insertions(+)
--


http://git-wip-us.apache.org/repos/asf/struts/blob/086c0a0d/xwork-core/src/main/java/com/opensymphony/xwork2/mock/MockResult.java
--
diff --git 
a/xwork-core/src/main/java/com/opensymphony/xwork2/mock/MockResult.java 
b/xwork-core/src/main/java/com/opensymphony/xwork2/mock/MockResult.java
index 53eac63..d988df5 100644
--- a/xwork-core/src/main/java/com/opensymphony/xwork2/mock/MockResult.java
+++ b/xwork-core/src/main/java/com/opensymphony/xwork2/mock/MockResult.java
@@ -26,6 +26,8 @@ import com.opensymphony.xwork2.Result;
  */
 public class MockResult implements Result {
 
+public static final String DEFAULT_PARAM = null;
+
 @Override
 public boolean equals(Object o) {
 if (this == o) {



[28/50] git commit: Extends logging with more information

2014-06-27 Thread lukaszlenart
Extends logging with more information


Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/833a07e7
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/833a07e7
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/833a07e7

Branch: refs/heads/feature/WW-4295-localization
Commit: 833a07e7fa1143f2a09786d561da70f144954c60
Parents: bfbc4c0
Author: Lukasz Lenart 
Authored: Wed May 14 08:24:03 2014 +0200
Committer: Lukasz Lenart 
Committed: Wed May 14 08:24:03 2014 +0200

--
 .../src/main/java/com/opensymphony/xwork2/ognl/OgnlValueStack.java | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/struts/blob/833a07e7/xwork-core/src/main/java/com/opensymphony/xwork2/ognl/OgnlValueStack.java
--
diff --git 
a/xwork-core/src/main/java/com/opensymphony/xwork2/ognl/OgnlValueStack.java 
b/xwork-core/src/main/java/com/opensymphony/xwork2/ognl/OgnlValueStack.java
index 83be3ed..1e4a576 100644
--- a/xwork-core/src/main/java/com/opensymphony/xwork2/ognl/OgnlValueStack.java
+++ b/xwork-core/src/main/java/com/opensymphony/xwork2/ognl/OgnlValueStack.java
@@ -198,7 +198,7 @@ public class OgnlValueStack implements Serializable, 
ValueStack, ClearableValueS
 throw new XWorkException(message, re);
 } else {
 if (LOG.isWarnEnabled()) {
-LOG.warn("Error setting value", re);
+LOG.warn("Error setting value [#0] with expression [#1]", re, 
value.toString(), expr);
 }
 }
 }



[50/50] git commit: Merge branch 'develop' into feature/WW-4295-localization

2014-06-27 Thread lukaszlenart
Merge branch 'develop' into feature/WW-4295-localization

Conflicts:
core/src/site/resources/tags/checkboxlist.html


Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/d20c2f10
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/d20c2f10
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/d20c2f10

Branch: refs/heads/feature/WW-4295-localization
Commit: d20c2f10b7ccb2830eb255062b45941684b55336
Parents: d67fce1 63de773
Author: Lukasz Lenart 
Authored: Fri Jun 27 13:15:10 2014 +0200
Committer: Lukasz Lenart 
Committed: Fri Jun 27 13:15:10 2014 +0200

--
 apps/blank/pom.xml  |   2 +-
 apps/jboss-blank/pom.xml|   2 +-
 apps/mailreader/pom.xml |   2 +-
 apps/pom.xml|   2 +-
 apps/portlet/pom.xml|   2 +-
 apps/rest-showcase/pom.xml  |   4 +-
 apps/showcase/pom.xml   |   2 +-
 archetypes/pom.xml  |   2 +-
 archetypes/struts2-archetype-angularjs/pom.xml  |   2 +-
 archetypes/struts2-archetype-blank/pom.xml  |   2 +-
 .../src/main/resources/example.xml  |   6 +-
 .../main/webapp/WEB-INF/example/HelloWorld.jsp  |  28 ++
 .../src/main/webapp/WEB-INF/example/Login.jsp   |  15 +
 .../src/main/webapp/WEB-INF/example/Menu.jsp|   3 +
 .../src/main/webapp/WEB-INF/example/Missing.jsp |  11 +
 .../main/webapp/WEB-INF/example/Register.jsp|   3 +
 .../src/main/webapp/WEB-INF/example/Welcome.jsp |  18 +
 .../src/main/webapp/example/HelloWorld.jsp  |  28 --
 .../src/main/webapp/example/Login.jsp   |  15 -
 .../src/main/webapp/example/Menu.jsp|   3 -
 .../src/main/webapp/example/Missing.jsp |  11 -
 .../src/main/webapp/example/Register.jsp|   3 -
 .../src/main/webapp/example/Welcome.jsp |  18 -
 archetypes/struts2-archetype-convention/pom.xml |   2 +-
 archetypes/struts2-archetype-dbportlet/pom.xml  |   2 +-
 archetypes/struts2-archetype-plugin/pom.xml |   2 +-
 archetypes/struts2-archetype-portlet/pom.xml|   2 +-
 archetypes/struts2-archetype-starter/pom.xml|   2 +-
 .../src/main/resources/struts.xml   |   4 +-
 .../src/main/webapp/WEB-INF/jsp/helloWorld.jsp  |  16 +
 .../src/main/webapp/WEB-INF/jsp/index.jsp   |  20 +
 .../src/main/webapp/jsp/helloWorld.jsp  |  16 -
 .../src/main/webapp/jsp/index.jsp   |  20 -
 assembly/pom.xml|  88 ++---
 assembly/src/main/assembly/all.xml  |  12 +-
 assembly/src/main/assembly/docs.xml |   2 +-
 bundles/admin/pom.xml   |   2 +-
 bundles/demo/pom.xml|   2 +-
 bundles/pom.xml |   2 +-
 core/pom.xml|   2 +-
 .../org/apache/struts2/StrutsConstants.java |  16 +
 .../struts2/components/DateTextField.java   |  51 +++
 .../struts2/components/GenericUIBean.java   |   5 +-
 .../org/apache/struts2/components/UIBean.java   |   9 +-
 .../config/DefaultBeanSelectionProvider.java|  22 +-
 .../dispatcher/ServletRedirectResult.java   |  48 ++-
 .../struts2/dispatcher/StrutsResultSupport.java |  75 +++-
 .../struts2/interceptor/CookieInterceptor.java  |  75 +++-
 .../interceptor/DateTextFieldInterceptor.java   | 128 +++
 .../views/freemarker/FreemarkerResult.java  |  18 +-
 .../struts2/views/jsp/ui/DateTextFieldTag.java  |  35 ++
 .../org/apache/struts2/default.properties   |   6 +-
 .../struts2/interceptor/debugging/browser.ftl   |  21 +-
 .../struts2/interceptor/debugging/console.ftl   |   4 +-
 .../interceptor/debugging/webconsole.html   |  30 +-
 .../struts2/interceptor/debugging/webconsole.js |  99 +++--
 core/src/main/resources/struts-default.xml  |  32 +-
 .../resources/template/css_xhtml/checkbox.ftl   |  17 +-
 .../template/css_xhtml/controlfooter.ftl|   7 +-
 .../template/css_xhtml/controlheader-core.ftl   |   9 +-
 .../template/css_xhtml/controlheader.ftl|   7 +-
 .../main/resources/template/css_xhtml/reset.ftl |   9 +-
 .../template/css_xhtml/submit-close.ftl |   7 +-
 .../resources/template/css_xhtml/submit.ftl |   7 +-
 .../resources/template/simple/checkboxlist.ftl  |  14 +-
 .../main/resources/template/simple/radiomap.ftl |   8 -
 .../main/resources/template/xhtml/checkbox.ftl  |  15 +-
 .../template/xhtml/controlheader-core.ftl   |   9 +-
 core/src/site/resources/tags/datetextfield.html | 376 +++
 .../struts2/TestConfigurationProvider.java  |   5 +
 .../dispatcher/ServletRedirectResultTest.java   | 109 --
 .../dispatcher/StrutsResultSupportTest.java |  31 ++
 .../interceptor/CookieInterceptorTest.java  | 130 +++
 .../DateTextFieldInterc

[35/50] git commit: Cleans up after moving to package

2014-06-27 Thread lukaszlenart
Cleans up after moving to package


Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/ec98c8a9
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/ec98c8a9
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/ec98c8a9

Branch: refs/heads/feature/WW-4295-localization
Commit: ec98c8a95beb58fface26371b5ae3829493259f5
Parents: 7faf91a
Author: Lukasz Lenart 
Authored: Mon May 19 10:08:30 2014 +0200
Committer: Lukasz Lenart 
Committed: Mon May 19 10:08:30 2014 +0200

--
 .../xwork2/ExcludedPatternsChecker.java | 82 
 .../DefaultExcludedPatternsChecker.java |  2 +-
 2 files changed, 1 insertion(+), 83 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/struts/blob/ec98c8a9/xwork-core/src/main/java/com/opensymphony/xwork2/ExcludedPatternsChecker.java
--
diff --git 
a/xwork-core/src/main/java/com/opensymphony/xwork2/ExcludedPatternsChecker.java 
b/xwork-core/src/main/java/com/opensymphony/xwork2/ExcludedPatternsChecker.java
deleted file mode 100644
index ac0ff6e..000
--- 
a/xwork-core/src/main/java/com/opensymphony/xwork2/ExcludedPatternsChecker.java
+++ /dev/null
@@ -1,82 +0,0 @@
-package com.opensymphony.xwork2;
-
-import java.util.Set;
-import java.util.regex.Pattern;
-
-/**
- * Used across different interceptors to check if given string matches one of 
the excluded patterns.
- */
-public interface ExcludedPatternsChecker {
-
-/**
- * Checks if value matches any of patterns on exclude list
- *
- * @param value to check
- * @return object containing result of matched pattern and pattern itself
- */
-public IsExcluded isExcluded(String value);
-
-/**
- * Allows add additional excluded patterns during runtime
- *
- * @param commaDelimitedPatterns comma delimited string with patterns
- */
-public void addExcludedPatterns(String commaDelimitedPatterns);
-
-/**
- * Allows add additional excluded patterns during runtime
- *
- * @param additionalPatterns array of additional excluded patterns
- */
-public void addExcludedPatterns(String[] additionalPatterns);
-
-/**
- * Allows add additional excluded patterns during runtime
- *
- * @param additionalPatterns set of additional patterns
- */
-public void addExcludedPatterns(Set additionalPatterns);
-
-/**
- * Allow access list of all defined excluded patterns
- *
- * @return set of excluded patterns
- */
-public Set getExcludedPatterns();
-
-public final static class IsExcluded {
-
-private final boolean excluded;
-private final Pattern excludedPattern;
-
-public static IsExcluded yes(Pattern excludedPattern) {
-return new IsExcluded(true, excludedPattern);
-}
-
-public static IsExcluded no() {
-return new IsExcluded(false, null);
-}
-
-private IsExcluded(boolean excluded, Pattern excludedPattern) {
-this.excluded = excluded;
-this.excludedPattern = excludedPattern;
-}
-
-public boolean isExcluded() {
-return excluded;
-}
-
-public Pattern getExcludedPattern() {
-return excludedPattern;
-}
-
-@Override
-public String toString() {
-return "IsExcluded { " +
-"excluded=" + excluded +
-", excludedPattern=" + excludedPattern +
-" }";
-}
-}
-
-}

http://git-wip-us.apache.org/repos/asf/struts/blob/ec98c8a9/xwork-core/src/main/java/com/opensymphony/xwork2/security/DefaultExcludedPatternsChecker.java
--
diff --git 
a/xwork-core/src/main/java/com/opensymphony/xwork2/security/DefaultExcludedPatternsChecker.java
 
b/xwork-core/src/main/java/com/opensymphony/xwork2/security/DefaultExcludedPatternsChecker.java
index f2abed6..53854d3 100644
--- 
a/xwork-core/src/main/java/com/opensymphony/xwork2/security/DefaultExcludedPatternsChecker.java
+++ 
b/xwork-core/src/main/java/com/opensymphony/xwork2/security/DefaultExcludedPatternsChecker.java
@@ -11,7 +11,7 @@ import java.util.HashSet;
 import java.util.Set;
 import java.util.regex.Pattern;
 
-public class DefaultExcludedPatternsChecker implements 
com.opensymphony.xwork2.ExcludedPatternsChecker {
+public class DefaultExcludedPatternsChecker implements ExcludedPatternsChecker 
{
 
 private static final Logger LOG = 
LoggerFactory.getLogger(DefaultExcludedPatternsChecker.class);
 



[38/50] git commit: Uses new service to check if param matches accepted patterns

2014-06-27 Thread lukaszlenart
Uses new service to check if param matches accepted patterns


Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/8a93df10
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/8a93df10
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/8a93df10

Branch: refs/heads/feature/WW-4295-localization
Commit: 8a93df10c4f5f3f22f1837c47b4ca9b4facc4f94
Parents: b140faa
Author: Lukasz Lenart 
Authored: Wed May 21 09:03:51 2014 +0200
Committer: Lukasz Lenart 
Committed: Wed May 21 09:03:51 2014 +0200

--
 .../org/apache/struts2/StrutsConstants.java |  4 +-
 .../config/DefaultBeanSelectionProvider.java|  3 ++
 core/src/main/resources/struts-default.xml  |  1 +
 .../providers/XWorkConfigurationProvider.java   |  3 ++
 .../interceptor/ParametersInterceptor.java  | 56 +---
 .../interceptor/ParametersInterceptorTest.java  | 11 +---
 6 files changed, 37 insertions(+), 41 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/struts/blob/8a93df10/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 d173add..8c0c5ce 100644
--- a/core/src/main/java/org/apache/struts2/StrutsConstants.java
+++ b/core/src/main/java/org/apache/struts2/StrutsConstants.java
@@ -285,10 +285,12 @@ public final class StrutsConstants {
 /** Comma delimited set of excluded classes which cannot be accessed via 
expressions **/
 public static final String STRUTS_EXCLUDED_CLASSES = 
"struts.excludedClasses";
 
-/** Dedicated service to check if passed string is excluded or not **/
+/** Dedicated services to check if passed string is excluded/accepted **/
 public static final String STRUTS_EXCLUDED_PATTERNS_CHECKER = 
"struts.excludedPatterns.checker";
+public static final String STRUTS_ACCEPTED_PATTERNS_CHECKER = 
"struts.acceptedPatterns.checker";
 
 /** Constant is used to override framework's default excluded patterns **/
 public static final String STRUTS_OVERRIDE_EXCLUDED_PATTERNS = 
"struts.override.excludedPatterns";
+public static final String STRUTS_OVERRIDE_ACCEPTED_PATTERNS = 
"struts.override.acceptedPatterns";
 
 }

http://git-wip-us.apache.org/repos/asf/struts/blob/8a93df10/core/src/main/java/org/apache/struts2/config/DefaultBeanSelectionProvider.java
--
diff --git 
a/core/src/main/java/org/apache/struts2/config/DefaultBeanSelectionProvider.java
 
b/core/src/main/java/org/apache/struts2/config/DefaultBeanSelectionProvider.java
index be4fa82..4334d3c 100644
--- 
a/core/src/main/java/org/apache/struts2/config/DefaultBeanSelectionProvider.java
+++ 
b/core/src/main/java/org/apache/struts2/config/DefaultBeanSelectionProvider.java
@@ -22,6 +22,7 @@
 package org.apache.struts2.config;
 
 import com.opensymphony.xwork2.ActionProxyFactory;
+import com.opensymphony.xwork2.security.AcceptedPatternsChecker;
 import com.opensymphony.xwork2.security.ExcludedPatternsChecker;
 import com.opensymphony.xwork2.FileManager;
 import com.opensymphony.xwork2.FileManagerFactory;
@@ -392,6 +393,7 @@ public class DefaultBeanSelectionProvider extends 
AbstractBeanSelectionProvider
 
 /** Checker is used mostly in interceptors, so there be one instance 
of checker per interceptor with Scope.DEFAULT **/
 alias(ExcludedPatternsChecker.class, 
StrutsConstants.STRUTS_EXCLUDED_PATTERNS_CHECKER, builder, props, 
Scope.DEFAULT);
+alias(AcceptedPatternsChecker.class, 
StrutsConstants.STRUTS_ACCEPTED_PATTERNS_CHECKER, builder, props, 
Scope.DEFAULT);
 
 switchDevMode(props);
 
@@ -403,6 +405,7 @@ public class DefaultBeanSelectionProvider extends 
AbstractBeanSelectionProvider
 convertIfExist(props, StrutsConstants.STRUTS_CONFIGURATION_XML_RELOAD, 
XWorkConstants.RELOAD_XML_CONFIGURATION);
 convertIfExist(props, StrutsConstants.STRUTS_EXCLUDED_CLASSES, 
XWorkConstants.OGNL_EXCLUDED_CLASSES);
 convertIfExist(props, 
StrutsConstants.STRUTS_OVERRIDE_EXCLUDED_PATTERNS, 
XWorkConstants.OVERRIDE_EXCLUDED_PATTERNS);
+convertIfExist(props, 
StrutsConstants.STRUTS_OVERRIDE_ACCEPTED_PATTERNS, 
XWorkConstants.OVERRIDE_ACCEPTED_PATTERNS);
 
 
LocalizedTextUtil.addDefaultResourceBundle("org/apache/struts2/struts-messages");
 loadCustomResourceBundles(props);

http://git-wip-us.apache.org/repos/asf/struts/blob/8a93df10/core/src/main/resources/struts-default.xml
--
diff --git a/core/src/main/resources/struts-default.xml 
b/core/src/main/resources/struts-default.xml
index 2fc16c9..a1aa63f 1006

[02/50] git commit: [maven-release-plugin] prepare for next development iteration

2014-06-27 Thread lukaszlenart
[maven-release-plugin] prepare for next development iteration


Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/bcffc256
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/bcffc256
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/bcffc256

Branch: refs/heads/feature/WW-4295-localization
Commit: bcffc256fa27506588628a4df51977677c8d24aa
Parents: e03ff72
Author: Lukasz Lenart 
Authored: Fri May 2 17:10:54 2014 +0200
Committer: Lukasz Lenart 
Committed: Fri May 2 17:10:54 2014 +0200

--
 apps/blank/pom.xml  | 2 +-
 apps/jboss-blank/pom.xml| 2 +-
 apps/mailreader/pom.xml | 2 +-
 apps/pom.xml| 2 +-
 apps/portlet/pom.xml| 2 +-
 apps/rest-showcase/pom.xml  | 4 ++--
 apps/showcase/pom.xml   | 2 +-
 archetypes/pom.xml  | 2 +-
 archetypes/struts2-archetype-angularjs/pom.xml  | 4 ++--
 archetypes/struts2-archetype-blank/pom.xml  | 4 ++--
 archetypes/struts2-archetype-convention/pom.xml | 4 ++--
 archetypes/struts2-archetype-dbportlet/pom.xml  | 4 ++--
 archetypes/struts2-archetype-plugin/pom.xml | 4 ++--
 archetypes/struts2-archetype-portlet/pom.xml| 4 ++--
 archetypes/struts2-archetype-starter/pom.xml| 4 ++--
 assembly/pom.xml| 2 +-
 bundles/admin/pom.xml   | 2 +-
 bundles/demo/pom.xml| 2 +-
 bundles/pom.xml | 2 +-
 core/pom.xml| 2 +-
 plugins/cdi/pom.xml | 2 +-
 plugins/codebehind/pom.xml  | 2 +-
 plugins/config-browser/pom.xml  | 2 +-
 plugins/convention/pom.xml  | 2 +-
 plugins/dojo/pom.xml| 2 +-
 plugins/dwr/pom.xml | 2 +-
 plugins/embeddedjsp/pom.xml | 2 +-
 plugins/gxp/pom.xml | 2 +-
 plugins/jasperreports/pom.xml   | 2 +-
 plugins/javatemplates/pom.xml   | 2 +-
 plugins/jfreechart/pom.xml  | 2 +-
 plugins/jsf/pom.xml | 2 +-
 plugins/json/pom.xml| 2 +-
 plugins/junit/pom.xml   | 2 +-
 plugins/osgi/pom.xml| 2 +-
 plugins/oval/pom.xml| 2 +-
 plugins/pell-multipart/pom.xml  | 2 +-
 plugins/plexus/pom.xml  | 2 +-
 plugins/pom.xml | 2 +-
 plugins/portlet-tiles/pom.xml   | 2 +-
 plugins/portlet/pom.xml | 2 +-
 plugins/rest/pom.xml| 4 ++--
 plugins/sitegraph/pom.xml   | 2 +-
 plugins/sitemesh/pom.xml| 2 +-
 plugins/spring/pom.xml  | 2 +-
 plugins/struts1/pom.xml | 2 +-
 plugins/testng/pom.xml  | 2 +-
 plugins/tiles/pom.xml   | 2 +-
 plugins/tiles3/pom.xml  | 2 +-
 pom.xml | 4 ++--
 xwork-core/pom.xml  | 2 +-
 51 files changed, 61 insertions(+), 61 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/struts/blob/bcffc256/apps/blank/pom.xml
--
diff --git a/apps/blank/pom.xml b/apps/blank/pom.xml
index b7343c6..317a2b4 100644
--- a/apps/blank/pom.xml
+++ b/apps/blank/pom.xml
@@ -26,7 +26,7 @@
 
 org.apache.struts
 struts2-apps
-2.3.16.3
+2.3.16.4-SNAPSHOT
 
 
 struts2-blank

http://git-wip-us.apache.org/repos/asf/struts/blob/bcffc256/apps/jboss-blank/pom.xml
--
diff --git a/apps/jboss-blank/pom.xml b/apps/jboss-blank/pom.xml
index 62c6803..1454f7b 100644
--- a/apps/jboss-blank/pom.xml
+++ b/apps/jboss-blank/pom.xml
@@ -26,7 +26,7 @@
 
 org.apache.struts
 struts2-apps
-2.3.16.3
+2.3.16.4-SNAPSHOT
 
 
 struts2-jboss-blank

http://git-wip-us.apache.org/repos/asf/struts/blob/bcffc256/apps/mailreader/pom.xml
--
diff --git a/apps/mailreader/pom.xml b/apps/mailreader/pom.xml
index c41bb76..7814520 100644
--- a/apps/mailreader/pom.xml
+++ b/apps/mailreader/pom.xml
@@ -26,7 +26,7 @@
 
   org.apache.struts
   struts2-apps
-  2.3.16.3
+  2.3.16.4-SNAPSHOT
 
 
 struts2-mailreader

http://gi

[47/50] git commit: Adds additional classes to be excluded

2014-06-27 Thread lukaszlenart
Adds additional classes to be excluded


Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/96542871
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/96542871
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/96542871

Branch: refs/heads/feature/WW-4295-localization
Commit: 965428711572ad52d3713b3432ff38e1dd3e9dae
Parents: bbcc601
Author: Lukasz Lenart 
Authored: Wed Jun 18 08:45:56 2014 +0200
Committer: Lukasz Lenart 
Committed: Wed Jun 18 08:45:56 2014 +0200

--
 core/src/main/resources/struts-default.xml | 6 +-
 1 file changed, 5 insertions(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/struts/blob/96542871/core/src/main/resources/struts-default.xml
--
diff --git a/core/src/main/resources/struts-default.xml 
b/core/src/main/resources/struts-default.xml
index 49eba90..ea2a631 100644
--- a/core/src/main/resources/struts-default.xml
+++ b/core/src/main/resources/struts-default.xml
@@ -42,13 +42,17 @@
   value="
 java.lang.Object,
 java.lang.Runtime,
+java.lang.System,
+java.lang.Class,
+java.lang.ClassLoader,
+java.lang.Shutdown,
 ognl.OgnlContext,
 ognl.MemberAccess,
 ognl.ClassResolver,
 ognl.TypeConverter,
 com.opensymphony.xwork2.ActionContext" />
 
-
+
 
 
 



[43/50] git commit: Adds option to define additional accepted/excluded patterns Also all patterns are by default case insensitive

2014-06-27 Thread lukaszlenart
Adds option to define additional accepted/excluded patterns
Also all patterns are by default case insensitive


Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/89cbe138
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/89cbe138
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/89cbe138

Branch: refs/heads/feature/WW-4295-localization
Commit: 89cbe13853a849340d740d45685e6fd14da93d9b
Parents: 2df72b9
Author: Lukasz Lenart 
Authored: Sun Jun 1 10:33:39 2014 +0200
Committer: Lukasz Lenart 
Committed: Sun Jun 1 10:33:39 2014 +0200

--
 .../org/apache/struts2/StrutsConstants.java |  3 ++
 .../config/DefaultBeanSelectionProvider.java|  2 +
 .../com/opensymphony/xwork2/XWorkConstants.java |  3 ++
 .../DefaultAcceptedPatternsChecker.java | 18 +++
 .../DefaultExcludedPatternsChecker.java | 28 ++
 .../DefaultAcceptedPatternsCheckerTest.java | 56 
 .../DefaultExcludedPatternsCheckerTest.java | 56 
 7 files changed, 147 insertions(+), 19 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/struts/blob/89cbe138/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 dd08993..918f91b 100644
--- a/core/src/main/java/org/apache/struts2/StrutsConstants.java
+++ b/core/src/main/java/org/apache/struts2/StrutsConstants.java
@@ -294,4 +294,7 @@ public final class StrutsConstants {
 public static final String STRUTS_OVERRIDE_EXCLUDED_PATTERNS = 
"struts.override.excludedPatterns";
 public static final String STRUTS_OVERRIDE_ACCEPTED_PATTERNS = 
"struts.override.acceptedPatterns";
 
+public static final String STRUTS_ADDITIONAL_EXCLUDED_PATTERNS = 
"struts.additional.excludedPatterns";
+public static final String STRUTS_ADDITIONAL_ACCEPTED_PATTERNS = 
"struts.additional.acceptedPatterns";
+
 }

http://git-wip-us.apache.org/repos/asf/struts/blob/89cbe138/core/src/main/java/org/apache/struts2/config/DefaultBeanSelectionProvider.java
--
diff --git 
a/core/src/main/java/org/apache/struts2/config/DefaultBeanSelectionProvider.java
 
b/core/src/main/java/org/apache/struts2/config/DefaultBeanSelectionProvider.java
index a671133..06b7302 100644
--- 
a/core/src/main/java/org/apache/struts2/config/DefaultBeanSelectionProvider.java
+++ 
b/core/src/main/java/org/apache/struts2/config/DefaultBeanSelectionProvider.java
@@ -407,6 +407,8 @@ public class DefaultBeanSelectionProvider extends 
AbstractBeanSelectionProvider
 convertIfExist(props, StrutsConstants.STRUTS_EXCLUDED_CLASSES, 
XWorkConstants.OGNL_EXCLUDED_CLASSES);
 convertIfExist(props, 
StrutsConstants.STRUTS_EXCLUDED_PACKAGE_NAME_PATTERNS, 
XWorkConstants.OGNL_EXCLUDED_PACKAGE_NAME_PATTERNS);
 
+convertIfExist(props, 
StrutsConstants.STRUTS_ADDITIONAL_EXCLUDED_PATTERNS, 
XWorkConstants.ADDITIONAL_EXCLUDED_PATTERNS);
+convertIfExist(props, 
StrutsConstants.STRUTS_ADDITIONAL_ACCEPTED_PATTERNS, 
XWorkConstants.ADDITIONAL_ACCEPTED_PATTERNS);
 convertIfExist(props, 
StrutsConstants.STRUTS_OVERRIDE_EXCLUDED_PATTERNS, 
XWorkConstants.OVERRIDE_EXCLUDED_PATTERNS);
 convertIfExist(props, 
StrutsConstants.STRUTS_OVERRIDE_ACCEPTED_PATTERNS, 
XWorkConstants.OVERRIDE_ACCEPTED_PATTERNS);
 

http://git-wip-us.apache.org/repos/asf/struts/blob/89cbe138/xwork-core/src/main/java/com/opensymphony/xwork2/XWorkConstants.java
--
diff --git 
a/xwork-core/src/main/java/com/opensymphony/xwork2/XWorkConstants.java 
b/xwork-core/src/main/java/com/opensymphony/xwork2/XWorkConstants.java
index 830df78..433b005 100644
--- a/xwork-core/src/main/java/com/opensymphony/xwork2/XWorkConstants.java
+++ b/xwork-core/src/main/java/com/opensymphony/xwork2/XWorkConstants.java
@@ -21,6 +21,9 @@ public final class XWorkConstants {
 public static final String OGNL_EXCLUDED_CLASSES = "ognlExcludedClasses";
 public static final String OGNL_EXCLUDED_PACKAGE_NAME_PATTERNS = 
"ognlExcludedPackageNamePatterns";
 
+public static final String ADDITIONAL_EXCLUDED_PATTERNS = 
"additionalExcludedPatterns";
+public static final String ADDITIONAL_ACCEPTED_PATTERNS = 
"additionalAcceptedPatterns";
+
 public static final String OVERRIDE_EXCLUDED_PATTERNS = 
"overrideExcludedPatterns";
 public static final String OVERRIDE_ACCEPTED_PATTERNS = 
"overrideAcceptedPatterns";
 

http://git-wip-us.apache.org/repos/asf/struts/blob/89cbe138/xwork-core/src/main/java/com/opensymphony/xwork2/security/DefaultAcceptedPatternsC

[08/50] git commit: Uses excluded classes to

2014-06-27 Thread lukaszlenart
Uses excluded classes to


Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/afb5af1c
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/afb5af1c
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/afb5af1c

Branch: refs/heads/feature/WW-4295-localization
Commit: afb5af1cc45aed1ee0404541279cb7f7853fc98b
Parents: f0799fd
Author: Lukasz Lenart 
Authored: Sat May 3 20:17:05 2014 +0200
Committer: Lukasz Lenart 
Committed: Sat May 3 20:17:05 2014 +0200

--
 core/src/main/java/org/apache/struts2/StrutsConstants.java | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/struts/blob/afb5af1c/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 6be58ad..d508373 100644
--- a/core/src/main/java/org/apache/struts2/StrutsConstants.java
+++ b/core/src/main/java/org/apache/struts2/StrutsConstants.java
@@ -282,7 +282,7 @@ public final class StrutsConstants {
 /** Allows override default DispatcherErrorHandler **/
 public static final String STRUTS_DISPATCHER_ERROR_HANDLER = 
"struts.dispatcher.errorHandler";
 
-/** Comma delimited set of excluded properties which cannot be accessed 
via expressions **/
-public static final String STRUTS_EXCLUDED_PROPERTIES = 
"struts.excludedProperties";
+/** Comma delimited set of excluded classes which cannot be accessed via 
expressions **/
+public static final String STRUTS_EXCLUDED_CLASSES = 
"struts.excludedClasses";
 
 }



[31/50] git commit: Uses checker instead set of patterns to check if param is excluded

2014-06-27 Thread lukaszlenart
Uses checker instead set of patterns to check if param is excluded


Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/5ec47b1e
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/5ec47b1e
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/5ec47b1e

Branch: refs/heads/feature/WW-4295-localization
Commit: 5ec47b1e6df6c59ff3fa466d20f28fda46b60254
Parents: 3d77c34
Author: Lukasz Lenart 
Authored: Wed May 14 08:25:50 2014 +0200
Committer: Lukasz Lenart 
Committed: Wed May 14 08:25:50 2014 +0200

--
 .../interceptor/ParametersInterceptor.java  | 43 +++-
 .../interceptor/ParametersInterceptorTest.java  |  4 +-
 2 files changed, 16 insertions(+), 31 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/struts/blob/5ec47b1e/xwork-core/src/main/java/com/opensymphony/xwork2/interceptor/ParametersInterceptor.java
--
diff --git 
a/xwork-core/src/main/java/com/opensymphony/xwork2/interceptor/ParametersInterceptor.java
 
b/xwork-core/src/main/java/com/opensymphony/xwork2/interceptor/ParametersInterceptor.java
index 6de6aad..460aae2 100644
--- 
a/xwork-core/src/main/java/com/opensymphony/xwork2/interceptor/ParametersInterceptor.java
+++ 
b/xwork-core/src/main/java/com/opensymphony/xwork2/interceptor/ParametersInterceptor.java
@@ -17,6 +17,7 @@ package com.opensymphony.xwork2.interceptor;
 
 import com.opensymphony.xwork2.ActionContext;
 import com.opensymphony.xwork2.ActionInvocation;
+import com.opensymphony.xwork2.ExcludedPatternsChecker;
 import com.opensymphony.xwork2.ValidationAware;
 import com.opensymphony.xwork2.XWorkConstants;
 import com.opensymphony.xwork2.conversion.impl.InstantiatingNullHandler;
@@ -143,12 +144,13 @@ public class ParametersInterceptor extends 
MethodFilterInterceptor {
 
 protected static final int PARAM_NAME_MAX_LENGTH = 100;
 
+private ExcludedPatternsChecker excludedPatterns;
+
 private int paramNameMaxLength = PARAM_NAME_MAX_LENGTH;
 private boolean devMode = false;
 
 protected boolean ordered = false;
 
-protected Set excludeParams = Collections.emptySet();
 protected Set acceptParams = Collections.emptySet();
 
 private ValueStackFactory valueStackFactory;
@@ -163,7 +165,12 @@ public class ParametersInterceptor extends 
MethodFilterInterceptor {
 devMode = "true".equalsIgnoreCase(mode);
 }
 
-   /**
+@Inject
+public void setExcludedPatterns(ExcludedPatternsChecker excludedPatterns) {
+this.excludedPatterns = excludedPatterns;
+}
+
+/**
 * Sets a comma-delimited list of regular expressions to match
 * parameters that are allowed in the parameter map (aka whitelist).
 * 
@@ -306,7 +313,7 @@ public class ParametersInterceptor extends 
MethodFilterInterceptor {
 //see WW-2761 for more details
 MemberAccessValueStack accessValueStack = (MemberAccessValueStack) 
newStack;
 accessValueStack.setAcceptProperties(acceptParams);
-accessValueStack.setExcludeProperties(excludeParams);
+
accessValueStack.setExcludeProperties(excludedPatterns.getExcludedPatterns());
 }
 
 for (Map.Entry entry : 
acceptableParameters.entrySet()) {
@@ -426,14 +433,10 @@ public class ParametersInterceptor extends 
MethodFilterInterceptor {
 }
 
 protected boolean isExcluded(String paramName) {
-if (!this.excludeParams.isEmpty()) {
-for (Pattern pattern : excludeParams) {
-Matcher matcher = pattern.matcher(paramName);
-if (matcher.matches()) {
-notifyDeveloper("Parameter [#0] is on the excludeParams 
list of patterns!", paramName);
-return true;
-}
-}
+ExcludedPatternsChecker.IsExcluded result = 
excludedPatterns.isExcluded(paramName);
+if (result.isExcluded()) {
+notifyDeveloper("Parameter [#0] is on the excludeParams list of 
patterns!", paramName);
+return true;
 }
 return false;
 }
@@ -467,29 +470,13 @@ public class ParametersInterceptor extends 
MethodFilterInterceptor {
 }
 
 /**
- * Gets a set of regular expressions of parameters to remove
- * from the parameter map
- *
- * @return A set of compiled regular expression patterns
- */
-protected Set getExcludeParamsSet() {
-return excludeParams;
-}
-
-/**
  * Sets a comma-delimited list of regular expressions to match
  * parameters that should be removed from the parameter map.
  *
  * @param commaDelim A comma-delimited list of regular expressions
  */
 public void setExcludeParams(String commaDelim) {
-Collection excludePatterns

[07/50] git commit: Adds mapping of excluded classes key

2014-06-27 Thread lukaszlenart
Adds mapping of excluded classes key


Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/f0799fd9
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/f0799fd9
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/f0799fd9

Branch: refs/heads/feature/WW-4295-localization
Commit: f0799fd99bff78f0c984922ac358d7cf3eede0ba
Parents: 2180b06
Author: Lukasz Lenart 
Authored: Sat May 3 20:16:58 2014 +0200
Committer: Lukasz Lenart 
Committed: Sat May 3 20:16:58 2014 +0200

--
 .../org/apache/struts2/config/DefaultBeanSelectionProvider.java| 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/struts/blob/f0799fd9/core/src/main/java/org/apache/struts2/config/DefaultBeanSelectionProvider.java
--
diff --git 
a/core/src/main/java/org/apache/struts2/config/DefaultBeanSelectionProvider.java
 
b/core/src/main/java/org/apache/struts2/config/DefaultBeanSelectionProvider.java
index 4cc2d61..dedbce5 100644
--- 
a/core/src/main/java/org/apache/struts2/config/DefaultBeanSelectionProvider.java
+++ 
b/core/src/main/java/org/apache/struts2/config/DefaultBeanSelectionProvider.java
@@ -391,7 +391,7 @@ public class DefaultBeanSelectionProvider extends 
AbstractBeanSelectionProvider
 convertIfExist(props, 
StrutsConstants.STRUTS_ENABLE_OGNL_EVAL_EXPRESSION, 
XWorkConstants.ENABLE_OGNL_EVAL_EXPRESSION);
 convertIfExist(props, 
StrutsConstants.STRUTS_ALLOW_STATIC_METHOD_ACCESS, 
XWorkConstants.ALLOW_STATIC_METHOD_ACCESS);
 convertIfExist(props, StrutsConstants.STRUTS_CONFIGURATION_XML_RELOAD, 
XWorkConstants.RELOAD_XML_CONFIGURATION);
-convertIfExist(props, StrutsConstants.STRUTS_EXCLUDED_PROPERTIES, 
XWorkConstants.OGNL_EXCLUDED_PROPERTIES);
+convertIfExist(props, StrutsConstants.STRUTS_EXCLUDED_CLASSES, 
XWorkConstants.OGNL_EXCLUDED_CLASSES);
 
 
LocalizedTextUtil.addDefaultResourceBundle("org/apache/struts2/struts-messages");
 loadCustomResourceBundles(props);



[23/50] git commit: Defines new extension point

2014-06-27 Thread lukaszlenart
Defines new extension point


Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/4577e5ee
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/4577e5ee
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/4577e5ee

Branch: refs/heads/feature/WW-4295-localization
Commit: 4577e5eefb057e80bbdd740b0c56120c15469827
Parents: 65c023b
Author: Lukasz Lenart 
Authored: Mon May 12 08:26:33 2014 +0200
Committer: Lukasz Lenart 
Committed: Mon May 12 08:26:33 2014 +0200

--
 core/src/main/java/org/apache/struts2/StrutsConstants.java| 6 ++
 .../apache/struts2/config/DefaultBeanSelectionProvider.java   | 7 ++-
 .../src/main/java/com/opensymphony/xwork2/XWorkConstants.java | 1 +
 3 files changed, 13 insertions(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/struts/blob/4577e5ee/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 d508373..d173add 100644
--- a/core/src/main/java/org/apache/struts2/StrutsConstants.java
+++ b/core/src/main/java/org/apache/struts2/StrutsConstants.java
@@ -285,4 +285,10 @@ public final class StrutsConstants {
 /** Comma delimited set of excluded classes which cannot be accessed via 
expressions **/
 public static final String STRUTS_EXCLUDED_CLASSES = 
"struts.excludedClasses";
 
+/** Dedicated service to check if passed string is excluded or not **/
+public static final String STRUTS_EXCLUDED_PATTERNS_CHECKER = 
"struts.excludedPatterns.checker";
+
+/** Constant is used to override framework's default excluded patterns **/
+public static final String STRUTS_OVERRIDE_EXCLUDED_PATTERNS = 
"struts.override.excludedPatterns";
+
 }

http://git-wip-us.apache.org/repos/asf/struts/blob/4577e5ee/core/src/main/java/org/apache/struts2/config/DefaultBeanSelectionProvider.java
--
diff --git 
a/core/src/main/java/org/apache/struts2/config/DefaultBeanSelectionProvider.java
 
b/core/src/main/java/org/apache/struts2/config/DefaultBeanSelectionProvider.java
index dedbce5..5304910 100644
--- 
a/core/src/main/java/org/apache/struts2/config/DefaultBeanSelectionProvider.java
+++ 
b/core/src/main/java/org/apache/struts2/config/DefaultBeanSelectionProvider.java
@@ -22,6 +22,7 @@
 package org.apache.struts2.config;
 
 import com.opensymphony.xwork2.ActionProxyFactory;
+import com.opensymphony.xwork2.ExcludedPatternsChecker;
 import com.opensymphony.xwork2.FileManager;
 import com.opensymphony.xwork2.FileManagerFactory;
 import com.opensymphony.xwork2.LocaleProvider;
@@ -343,7 +344,7 @@ public class DefaultBeanSelectionProvider extends 
AbstractBeanSelectionProvider
 alias(ResultFactory.class, 
StrutsConstants.STRUTS_OBJECTFACTORY_RESULTFACTORY, builder, props);
 alias(ConverterFactory.class, 
StrutsConstants.STRUTS_OBJECTFACTORY_CONVERTERFACTORY, builder, props);
 alias(InterceptorFactory.class, 
StrutsConstants.STRUTS_OBJECTFACTORY_INTERCEPTORFACTORY, builder, props);
-alias(ValidatorFactory.class, 
StrutsConstants.STRUTS_OBJECTFACTORY_INTERCEPTORFACTORY, builder, props);
+alias(ValidatorFactory.class, 
StrutsConstants.STRUTS_OBJECTFACTORY_VALIDATORFACTORY, builder, props);
 
 alias(FileManagerFactory.class, 
StrutsConstants.STRUTS_FILE_MANAGER_FACTORY, builder, props, Scope.SINGLETON);
 
@@ -383,6 +384,9 @@ public class DefaultBeanSelectionProvider extends 
AbstractBeanSelectionProvider
 
 alias(DispatcherErrorHandler.class, 
StrutsConstants.STRUTS_DISPATCHER_ERROR_HANDLER, builder, props);
 
+/** Checker is used mostly in interceptors, so there be one instance 
of checker per interceptor with Scope.REQUEST **/
+alias(ExcludedPatternsChecker.class, 
StrutsConstants.STRUTS_EXCLUDED_PATTERNS_CHECKER, builder, props, 
Scope.REQUEST);
+
 switchDevMode(props);
 
 // Convert Struts properties into XWork properties
@@ -392,6 +396,7 @@ public class DefaultBeanSelectionProvider extends 
AbstractBeanSelectionProvider
 convertIfExist(props, 
StrutsConstants.STRUTS_ALLOW_STATIC_METHOD_ACCESS, 
XWorkConstants.ALLOW_STATIC_METHOD_ACCESS);
 convertIfExist(props, StrutsConstants.STRUTS_CONFIGURATION_XML_RELOAD, 
XWorkConstants.RELOAD_XML_CONFIGURATION);
 convertIfExist(props, StrutsConstants.STRUTS_EXCLUDED_CLASSES, 
XWorkConstants.OGNL_EXCLUDED_CLASSES);
+convertIfExist(props, 
StrutsConstants.STRUTS_OVERRIDE_EXCLUDED_PATTERNS, 
XWorkConstants.OVERRIDE_EXCLUDED_PATTERNS);
 
 
LocalizedTextUtil.addDefaultResourceBundle("org/apache/struts2/struts-messages");
 l

[21/50] git commit: Merge branch 'develop' into feature/exclude-object-class

2014-06-27 Thread lukaszlenart
Merge branch 'develop' into feature/exclude-object-class


Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/08b44fda
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/08b44fda
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/08b44fda

Branch: refs/heads/feature/WW-4295-localization
Commit: 08b44fdad666c78e4a7a96c57bbe896eff896829
Parents: 7857b86 63897e8
Author: Lukasz Lenart 
Authored: Thu May 8 22:07:22 2014 +0200
Committer: Lukasz Lenart 
Committed: Thu May 8 22:07:22 2014 +0200

--
 .../struts2/interceptor/CookieInterceptor.java  | 45 +++--
 .../interceptor/CookieInterceptorTest.java  | 53 
 2 files changed, 82 insertions(+), 16 deletions(-)
--




[05/50] git commit: Creates default context with excluded classes

2014-06-27 Thread lukaszlenart
Creates default context with excluded classes


Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/27980572
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/27980572
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/27980572

Branch: refs/heads/feature/WW-4295-localization
Commit: 279805721d6223673b5cb93e29fa91a4bbe0ea90
Parents: d5bd607
Author: Lukasz Lenart 
Authored: Sat May 3 20:15:53 2014 +0200
Committer: Lukasz Lenart 
Committed: Sat May 3 20:15:53 2014 +0200

--
 .../com/opensymphony/xwork2/ognl/OgnlUtil.java  | 78 +---
 1 file changed, 51 insertions(+), 27 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/struts/blob/27980572/xwork-core/src/main/java/com/opensymphony/xwork2/ognl/OgnlUtil.java
--
diff --git 
a/xwork-core/src/main/java/com/opensymphony/xwork2/ognl/OgnlUtil.java 
b/xwork-core/src/main/java/com/opensymphony/xwork2/ognl/OgnlUtil.java
index 5e06977..1c17eca 100644
--- a/xwork-core/src/main/java/com/opensymphony/xwork2/ognl/OgnlUtil.java
+++ b/xwork-core/src/main/java/com/opensymphony/xwork2/ognl/OgnlUtil.java
@@ -16,13 +16,18 @@
 package com.opensymphony.xwork2.ognl;
 
 import com.opensymphony.xwork2.XWorkConstants;
+import com.opensymphony.xwork2.XWorkException;
+import com.opensymphony.xwork2.config.ConfigurationException;
 import com.opensymphony.xwork2.conversion.impl.XWorkConverter;
+import com.opensymphony.xwork2.inject.Container;
 import com.opensymphony.xwork2.inject.Inject;
+import com.opensymphony.xwork2.ognl.accessor.CompoundRootAccessor;
 import com.opensymphony.xwork2.util.CompoundRoot;
 import com.opensymphony.xwork2.util.TextParseUtil;
 import com.opensymphony.xwork2.util.logging.Logger;
 import com.opensymphony.xwork2.util.logging.LoggerFactory;
 import com.opensymphony.xwork2.util.reflection.ReflectionException;
+import ognl.ClassResolver;
 import ognl.Ognl;
 import ognl.OgnlContext;
 import ognl.OgnlException;
@@ -61,7 +66,9 @@ public class OgnlUtil {
 private boolean enableExpressionCache = true;
 private boolean enableEvalExpression;
 
-private Set excludedProperties = new HashSet();
+private Set> excludedClasses = new HashSet>();
+private Container container;
+private boolean allowStaticMethodAccess;
 
 @Inject
 public void setXWorkConverter(XWorkConverter conv) {
@@ -87,15 +94,32 @@ public class OgnlUtil {
 }
 }
 
-@Inject(value = XWorkConstants.OGNL_EXCLUDED_PROPERTIES, required = false)
-public void setExcludedProperties(String commaDelimitedProperties) {
-Set props = 
TextParseUtil.commaDelimitedStringToSet(commaDelimitedProperties);
-for (String prop : props) {
-excludedProperties.add(prop);
-excludedProperties.add(prop + "()");
+@Inject(value = XWorkConstants.OGNL_EXCLUDED_CLASSES, required = false)
+public void setExcludedClasses(String commaDelimitedClasses) {
+Set classes = 
TextParseUtil.commaDelimitedStringToSet(commaDelimitedClasses);
+for (String className : classes) {
+try {
+excludedClasses.add(Class.forName(className));
+} catch (ClassNotFoundException e) {
+throw new ConfigurationException("Cannot load excluded class: 
" + className, e);
+}
 }
 }
 
+public Set> getExcludedClasses() {
+return excludedClasses;
+}
+
+@Inject
+public void setContainer(Container container) {
+this.container = container;
+}
+
+@Inject(value = XWorkConstants.ALLOW_STATIC_METHOD_ACCESS, required = 
false)
+public void setAllowStaticMethodAccess(String allowStaticMethodAccess) {
+this.allowStaticMethodAccess = 
Boolean.parseBoolean(allowStaticMethodAccess);
+}
+
 /**
  * Sets the object's properties using the default type converter, 
defaulting to not throw
  * exceptions for problems setting the properties.
@@ -155,7 +179,7 @@ public class OgnlUtil {
  *problems setting the properties
  */
 public void setProperties(Map properties, Object o, boolean 
throwPropertyExceptions) {
-Map context = Ognl.createDefaultContext(o);
+Map context = createDefaultContext(o, null);
 setProperties(properties, o, context, throwPropertyExceptions);
 }
 
@@ -293,13 +317,11 @@ public class OgnlUtil {
 if (tree == null) {
 tree = Ognl.parseExpression(expression);
 checkEnableEvalExpression(tree, context);
-checkExcludedPropertiesAccess(tree, null);
 expressions.putIfAbsent(expression, tree);
 }
 } else {
 tree = Ognl.parseExpression(expression);
 

[11/50] git commit: Removes hardcoded excluded params

2014-06-27 Thread lukaszlenart
Removes hardcoded excluded params


Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/cb590742
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/cb590742
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/cb590742

Branch: refs/heads/feature/WW-4295-localization
Commit: cb590742892c39dc6abb84f6a85d87235d555f32
Parents: f84efa5
Author: Lukasz Lenart 
Authored: Sun May 4 10:48:09 2014 +0200
Committer: Lukasz Lenart 
Committed: Sun May 4 10:48:09 2014 +0200

--
 .../interceptor/ParametersInterceptor.java  | 16 +++---
 .../interceptor/ParametersInterceptorTest.java  | 16 ++
 .../src/test/resources/xwork-test-beans.xml | 22 ++--
 3 files changed, 17 insertions(+), 37 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/struts/blob/cb590742/xwork-core/src/main/java/com/opensymphony/xwork2/interceptor/ParametersInterceptor.java
--
diff --git 
a/xwork-core/src/main/java/com/opensymphony/xwork2/interceptor/ParametersInterceptor.java
 
b/xwork-core/src/main/java/com/opensymphony/xwork2/interceptor/ParametersInterceptor.java
index cb38d57..e09ab54 100644
--- 
a/xwork-core/src/main/java/com/opensymphony/xwork2/interceptor/ParametersInterceptor.java
+++ 
b/xwork-core/src/main/java/com/opensymphony/xwork2/interceptor/ParametersInterceptor.java
@@ -141,21 +141,16 @@ public class ParametersInterceptor extends 
MethodFilterInterceptor {
 
 private static final Logger LOG = 
LoggerFactory.getLogger(ParametersInterceptor.class);
 
-public static final String ACCEPTED_PARAM_NAMES = 
"\\w+((\\.\\w+)|(\\[\\d+\\])|(\\(\\d+\\))|(\\['(\\w|[\\u4e00-\\u9fa5])+'\\])|(\\('(\\w|[\\u4e00-\\u9fa5])+'\\)))*";
-
 protected static final int PARAM_NAME_MAX_LENGTH = 100;
 
 private int paramNameMaxLength = PARAM_NAME_MAX_LENGTH;
+private boolean devMode = false;
 
 protected boolean ordered = false;
+
 protected Set excludeParams = Collections.emptySet();
 protected Set acceptParams = Collections.emptySet();
 
-private boolean devMode = false;
-
-// Allowed names of parameters
-private Pattern acceptedPattern = Pattern.compile(ACCEPTED_PARAM_NAMES);
-
 private ValueStackFactory valueStackFactory;
 
 @Inject
@@ -426,13 +421,8 @@ public class ParametersInterceptor extends 
MethodFilterInterceptor {
 }
 notifyDeveloper("Parameter [#0] didn't match acceptParams list of 
patterns!", paramName);
 return false;
-} else {
-boolean matches = acceptedPattern.matcher(paramName).matches();
-if (!matches) {
-notifyDeveloper("Parameter [#0] didn't match acceptedPattern 
pattern!", paramName);
-}
-return matches;
 }
+return true;
 }
 
 protected boolean isExcluded(String paramName) {

http://git-wip-us.apache.org/repos/asf/struts/blob/cb590742/xwork-core/src/test/java/com/opensymphony/xwork2/interceptor/ParametersInterceptorTest.java
--
diff --git 
a/xwork-core/src/test/java/com/opensymphony/xwork2/interceptor/ParametersInterceptorTest.java
 
b/xwork-core/src/test/java/com/opensymphony/xwork2/interceptor/ParametersInterceptorTest.java
index f0adf02..79f46e6 100644
--- 
a/xwork-core/src/test/java/com/opensymphony/xwork2/interceptor/ParametersInterceptorTest.java
+++ 
b/xwork-core/src/test/java/com/opensymphony/xwork2/interceptor/ParametersInterceptorTest.java
@@ -32,11 +32,13 @@ import 
com.opensymphony.xwork2.conversion.impl.XWorkConverter;
 import com.opensymphony.xwork2.mock.MockActionInvocation;
 import com.opensymphony.xwork2.ognl.OgnlValueStack;
 import com.opensymphony.xwork2.ognl.OgnlValueStackFactory;
+import com.opensymphony.xwork2.ognl.SecurityMemberAccess;
 import com.opensymphony.xwork2.ognl.accessor.CompoundRootAccessor;
 import com.opensymphony.xwork2.util.CompoundRoot;
 import com.opensymphony.xwork2.util.ValueStack;
 import com.opensymphony.xwork2.util.ValueStackFactory;
 import junit.framework.Assert;
+import ognl.OgnlContext;
 import ognl.PropertyAccessor;
 
 import java.io.File;
@@ -293,9 +295,8 @@ public class ParametersInterceptorTest extends 
XWorkTestCase {
 
 //then
 assertEquals("This is blah", ((SimpleAction) 
proxy.getAction()).getBlah());
-Object allowMethodAccess = 
stack.findValue("\u0023_memberAccess['allowStaticMethodAccess']");
-assertNotNull(allowMethodAccess);
-assertEquals(Boolean.FALSE, allowMethodAccess);
+boolean allowMethodAccess = ((SecurityMemberAccess) ((OgnlContext) 
stack.getContext()).getMemberAccess()).getAllowStaticMethodAccess();
+assertFalse(allowMethodAccess);
 }
 
 p

[1/3] git commit: get correct full field name in visitor field validator

2014-06-27 Thread lukaszlenart
Repository: struts
Updated Branches:
  refs/heads/develop 63de7730e -> 3a07c3177


get correct full field name in visitor field validator


Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/2b8a805e
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/2b8a805e
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/2b8a805e

Branch: refs/heads/develop
Commit: 2b8a805eb0794abd5c804c0bc9059e56b72c985f
Parents: 63897e8
Author: Aleksandr Mashchenko 
Authored: Wed May 14 20:22:29 2014 +0300
Committer: Aleksandr Mashchenko 
Committed: Wed May 14 20:22:29 2014 +0300

--
 .../AnnotationActionValidatorManager.java   | 42 +
 .../DefaultActionValidatorManager.java  | 49 +---
 .../validators/VisitorFieldValidator.java   | 13 --
 3 files changed, 10 insertions(+), 94 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/struts/blob/2b8a805e/xwork-core/src/main/java/com/opensymphony/xwork2/validator/AnnotationActionValidatorManager.java
--
diff --git 
a/xwork-core/src/main/java/com/opensymphony/xwork2/validator/AnnotationActionValidatorManager.java
 
b/xwork-core/src/main/java/com/opensymphony/xwork2/validator/AnnotationActionValidatorManager.java
index 6f1d548..9b6beb3 100644
--- 
a/xwork-core/src/main/java/com/opensymphony/xwork2/validator/AnnotationActionValidatorManager.java
+++ 
b/xwork-core/src/main/java/com/opensymphony/xwork2/validator/AnnotationActionValidatorManager.java
@@ -154,7 +154,7 @@ public class AnnotationActionValidatorManager implements 
ActionValidatorManager
 
 if (validator instanceof FieldValidator) {
 fValidator = (FieldValidator) validator;
-fullFieldName = new 
InternalValidatorContextWrapper(fValidator.getValidatorContext()).getFullFieldName(fValidator.getFieldName());
+fullFieldName = 
fValidator.getValidatorContext().getFullFieldName(fValidator.getFieldName());
 
 if ((shortcircuitedFields != null) && 
shortcircuitedFields.contains(fullFieldName)) {
 if (LOG.isDebugEnabled()) {
@@ -412,44 +412,4 @@ public class AnnotationActionValidatorManager implements 
ActionValidatorManager
 
 return retList;
 }
-
-
-/**
- * An {@link com.opensymphony.xwork2.validator.ValidatorContext} wrapper 
that
- * returns the full field name
- * {@link 
AnnotationActionValidatorManager.InternalValidatorContextWrapper#getFullFieldName(String)}
- * by consulting it's parent if its an {@link 
com.opensymphony.xwork2.validator.validators.VisitorFieldValidator.AppendingValidatorContext}.
- * 
- * Eg. if we have nested Visitor
- * AddressVisitor nested inside PersonVisitor, when using the normal 
#getFullFieldName, we will get
- * "address.somefield", we lost the parent, with this wrapper, we will get 
"person.address.somefield".
- * This is so that the key is used to register errors, so that we don't 
screw up short-curcuit feature
- * when using nested visitor. See XW-571 (nested visitor validators break 
short-circuit functionality)
- * at http://jira.opensymphony.com/browse/XW-571
- */
-protected class InternalValidatorContextWrapper {
-private ValidatorContext validatorContext = null;
-
-InternalValidatorContextWrapper(ValidatorContext validatorContext) {
-this.validatorContext = validatorContext;
-}
-
-/**
- * Get the full field name by consulting the parent, so that when we 
are using nested visitors (
- * visitor nested inside visitor etc.) we still get the full field 
name including its parents.
- * See XW-571 for more details.
- *
- * @param field
- * @return String
- */
-public String getFullFieldName(String field) {
-if (validatorContext instanceof 
VisitorFieldValidator.AppendingValidatorContext) {
-VisitorFieldValidator.AppendingValidatorContext 
appendingValidatorContext =
-(VisitorFieldValidator.AppendingValidatorContext) 
validatorContext;
-return 
appendingValidatorContext.getFullFieldNameFromParent(field);
-}
-return validatorContext.getFullFieldName(field);
-}
-
-}
 }

http://git-wip-us.apache.org/repos/asf/struts/blob/2b8a805e/xwork-core/src/main/java/com/opensymphony/xwork2/validator/DefaultActionValidatorManager.java
--
diff --git 
a/xwork-core/src/main/java/com/opensymphony/xwork2/validator/DefaultActionValidatorManager.java
 
b/xwork-core/src/main/java/com/opensymphony/xwork2/validator/DefaultActionValidator

[2/3] git commit: tests for AppendingValidatorContext and nested visitor conversion validation

2014-06-27 Thread lukaszlenart
tests for AppendingValidatorContext and nested visitor conversion validation


Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/46f7f6c7
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/46f7f6c7
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/46f7f6c7

Branch: refs/heads/develop
Commit: 46f7f6c7a87cbf70e89c5d30e1155e897f759b09
Parents: 2b8a805
Author: Aleksandr Mashchenko 
Authored: Fri May 16 23:57:29 2014 +0300
Committer: Aleksandr Mashchenko 
Committed: Fri May 16 23:57:29 2014 +0300

--
 .../validator/VisitorFieldValidatorTest.java| 27 ++-
 .../AppendingValidatorContextTest.java  | 47 
 .../xwork2/TestChildBean-validation.xml | 21 +
 3 files changed, 86 insertions(+), 9 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/struts/blob/46f7f6c7/xwork-core/src/test/java/com/opensymphony/xwork2/validator/VisitorFieldValidatorTest.java
--
diff --git 
a/xwork-core/src/test/java/com/opensymphony/xwork2/validator/VisitorFieldValidatorTest.java
 
b/xwork-core/src/test/java/com/opensymphony/xwork2/validator/VisitorFieldValidatorTest.java
index 3c47725..ad5c1b6 100644
--- 
a/xwork-core/src/test/java/com/opensymphony/xwork2/validator/VisitorFieldValidatorTest.java
+++ 
b/xwork-core/src/test/java/com/opensymphony/xwork2/validator/VisitorFieldValidatorTest.java
@@ -179,7 +179,32 @@ public class VisitorFieldValidatorTest extends 
XWorkTestCase {
 //the error from the action should be there too
 assertTrue(fieldErrors.containsKey("context"));
 }
-
+
+public void testVisitorChildConversionValidation() throws Exception {
+//add conversion error
+Map conversionErrors = new HashMap();
+conversionErrors.put("bean.child.count", "bar");
+ActionContext.getContext().setConversionErrors(conversionErrors);
+
+validate("visitorChildValidation");
+assertTrue(action.hasFieldErrors());
+
+Map> fieldErrors = action.getFieldErrors();
+assertEquals(6, fieldErrors.size());
+assertTrue(!fieldErrors.containsKey("bean.count"));
+assertTrue(fieldErrors.containsKey("bean.name"));
+assertTrue(fieldErrors.containsKey("bean.birth"));
+
+assertTrue(fieldErrors.containsKey("bean.child.name"));
+assertTrue(fieldErrors.containsKey("bean.child.birth"));
+
+//the error from the action should be there too
+assertTrue(fieldErrors.containsKey("context"));
+
+//nested visitor conversion error
+assertTrue(fieldErrors.containsKey("bean.child.count"));
+}
+
 @Override
 protected void tearDown() throws Exception {
 super.tearDown();

http://git-wip-us.apache.org/repos/asf/struts/blob/46f7f6c7/xwork-core/src/test/java/com/opensymphony/xwork2/validator/validators/AppendingValidatorContextTest.java
--
diff --git 
a/xwork-core/src/test/java/com/opensymphony/xwork2/validator/validators/AppendingValidatorContextTest.java
 
b/xwork-core/src/test/java/com/opensymphony/xwork2/validator/validators/AppendingValidatorContextTest.java
new file mode 100644
index 000..8ce3fb8
--- /dev/null
+++ 
b/xwork-core/src/test/java/com/opensymphony/xwork2/validator/validators/AppendingValidatorContextTest.java
@@ -0,0 +1,47 @@
+package com.opensymphony.xwork2.validator.validators;
+
+import java.util.List;
+import java.util.Map;
+
+import com.opensymphony.xwork2.XWorkTestCase;
+import com.opensymphony.xwork2.validator.DelegatingValidatorContext;
+import com.opensymphony.xwork2.validator.ValidatorContext;
+import com.opensymphony.xwork2.validator.VisitorValidatorTestAction;
+import 
com.opensymphony.xwork2.validator.validators.VisitorFieldValidator.AppendingValidatorContext;
+
+public class AppendingValidatorContextTest extends XWorkTestCase {
+
+private static final String FIRST_NAME = "first";
+private static final String SECOND_NAME = "second";
+private static final String FIELD_NAME = "fieldName";
+private static final String FULL_FIELD_NAME = FIRST_NAME + "." + 
SECOND_NAME + "." + FIELD_NAME;
+
+private VisitorValidatorTestAction action;
+private VisitorFieldValidator.AppendingValidatorContext validatorContext;
+
+@Override
+protected void setUp() throws Exception {
+super.setUp();
+
+action = new VisitorValidatorTestAction();
+ValidatorContext vc1 = new DelegatingValidatorContext(action);
+
+VisitorFieldValidator.AppendingValidatorContext vc2 = new 
AppendingValidatorContext(
+vc1, "value", FIRST_NAME, "");
+validatorContext = new AppendingValidatorContext(vc2, "value", 
SECOND_NAME, "");
+

[3/3] git commit: WW-4346 Solves problem with nested visitor validator returns wrong full field name

2014-06-27 Thread lukaszlenart
WW-4346 Solves problem with nested visitor validator returns wrong full field 
name

Closes #13


Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/3a07c317
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/3a07c317
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/3a07c317

Branch: refs/heads/develop
Commit: 3a07c317724c1f8017be93f0e1bae23392c08fc6
Parents: 63de773 46f7f6c
Author: Lukasz Lenart 
Authored: Fri Jun 27 13:39:25 2014 +0200
Committer: Lukasz Lenart 
Committed: Fri Jun 27 13:39:25 2014 +0200

--
 .../AnnotationActionValidatorManager.java   | 42 +
 .../DefaultActionValidatorManager.java  | 49 +---
 .../validators/VisitorFieldValidator.java   | 13 --
 .../validator/VisitorFieldValidatorTest.java| 27 ++-
 .../AppendingValidatorContextTest.java  | 47 +++
 .../xwork2/TestChildBean-validation.xml | 21 +
 6 files changed, 96 insertions(+), 103 deletions(-)
--




[CONF] Confluence Changes in the last 24 hours

2014-06-27 Thread Anonymous (Confluence)
















  Confluence Changes in the last 24 hours  




 Apache BookKeeper 

Pages

 Page: Metrics created by Matthieu Morel [03:43 PM] 
 Page: Building documentation edited by Ivan Kelly [03:24 PM] (View Changes) 


 Apache Camel 

Pages

 Page: Camel 2.14.0 Release edited by Claus Ibsen [04:00 PM] (View Changes) 
 Page: Component List edited by Claus Ibsen [03:58 PM] (View Changes) 
 Page: Spark created by Claus Ibsen [03:56 PM] 
 Page: JMS edited by Bilgin Ibryam [11:48 AM] (View Changes) 


 Apache Cloudstack 

Pages

 Page: Baremetal Advanced Networking Support edited by frank.zhang [10:35 PM] (View Changes) 
 Page: Brocade Network Plugin to Orchestrate Brocade VDX Switches edited by Ritu Sabharwal [07:10 PM] (View Changes) 
 Page: API changes edited by Demetrius Tsitrelis [05:58 PM] (View Changes) 
 Page: Granular Global Configuration Parameters edited by prashant kumar mishra [04:56 AM] (View Changes) 
 Page: Dynamic compute offering edited by prashant kumar mishra [04:53 AM] (View Changes) 
 Page: Configurable setting to use linked clones or full clones on VMware edited by prashant kumar mishra [04:46 AM] (View Changes) 
 Page: Scaling up CPU and RAM for running VMs edited by prashant kumar mishra [04:42 AM] (View Changes) 
 Page: Bind and PowerDNS integration by Globo DNSAPI edited by Silvano Buback [01:02 AM] (View Changes) 


 Drill Wiki 

Pages

 Page: Connecting Apache Drill to Data Sources edited by Bridget Bevens [11:33 PM] (View Changes) 


 Apache Hive 

Pages

 Home page: Home edited by Lefty Leverenz [11:42 PM] (View Changes) 
 Page: DeveloperDocs created by Lefty Leverenz [11:38 PM] 
 Page: Parquet edited by Lefty Leverenz [07:06 AM] (View Changes) 
 Page: Configuration Properties edited by Lefty Leverenz [06:25 AM] (View Changes) 
 Page: LanguageManual Select edited by Lefty Leverenz [05:37 AM] (View Changes) 


 Apache Mesos