[2/3] git commit: WW-4266 Adds support for IBM JVM to reload resources

2014-03-02 Thread lukaszlenart
WW-4266 Adds support for IBM JVM to reload resources


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

Branch: refs/heads/feature/move-jsps-under-webinf
Commit: 9c5177c961fb850b80089ef4113a17d361c23fa6
Parents: 5d0cf8b
Author: Lukasz Lenart 
Authored: Fri Feb 28 10:11:46 2014 +0100
Committer: Lukasz Lenart 
Committed: Fri Feb 28 10:11:46 2014 +0100

--
 .../com/opensymphony/xwork2/util/LocalizedTextUtil.java | 9 -
 1 file changed, 8 insertions(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/struts/blob/9c5177c9/xwork-core/src/main/java/com/opensymphony/xwork2/util/LocalizedTextUtil.java
--
diff --git 
a/xwork-core/src/main/java/com/opensymphony/xwork2/util/LocalizedTextUtil.java 
b/xwork-core/src/main/java/com/opensymphony/xwork2/util/LocalizedTextUtil.java
index 1f77428..8256cfb 100644
--- 
a/xwork-core/src/main/java/com/opensymphony/xwork2/util/LocalizedTextUtil.java
+++ 
b/xwork-core/src/main/java/com/opensymphony/xwork2/util/LocalizedTextUtil.java
@@ -791,7 +791,14 @@ public class LocalizedTextUtil {
 }
 if (!reloaded) {
 bundlesMap.clear();
-clearMap(ResourceBundle.class, null, "cacheList");
+try {
+clearMap(ResourceBundle.class, null, "cacheList");
+} catch (NoSuchFieldException e) {
+// happens in IBM JVM, that has a different 
ResourceBundle impl
+// it has a 'cache' member
+clearMap(ResourceBundle.class, null, "cache");
+}
+
 // now, for the true and utter hack, if we're running in 
tomcat, clear
 // it's class loader resource cache as well.
 clearTomcatCache();



[3/3] git commit: Merge branch 'develop' into feature/move-jsps-under-webinf

2014-03-02 Thread lukaszlenart
Merge branch 'develop' into feature/move-jsps-under-webinf


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

Branch: refs/heads/feature/move-jsps-under-webinf
Commit: 4360a06662dcdb3c08d4ba9c3f8e2679eecddad1
Parents: 6f43464 9c5177c
Author: Lukasz Lenart 
Authored: Fri Feb 28 10:17:19 2014 +0100
Committer: Lukasz Lenart 
Committed: Fri Feb 28 10:17:19 2014 +0100

--
 .../xwork2/interceptor/ParametersInterceptor.java  |  8 
 .../com/opensymphony/xwork2/ognl/OgnlValueStack.java   |  4 
 .../com/opensymphony/xwork2/ognl/PropertiesJudge.java  |  7 ---
 .../opensymphony/xwork2/ognl/SecurityMemberAccess.java | 13 +
 .../opensymphony/xwork2/util/LocalizedTextUtil.java|  9 -
 .../xwork2/util/MemberAccessValueStack.java|  4 
 6 files changed, 9 insertions(+), 36 deletions(-)
--




[1/3] git commit: Reverts validation of properties via dedicated SecurityJudge interface

2014-03-02 Thread lukaszlenart
Repository: struts
Updated Branches:
  refs/heads/feature/move-jsps-under-webinf 6f43464fc -> 4360a0666


Reverts validation of properties via dedicated SecurityJudge interface


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

Branch: refs/heads/feature/move-jsps-under-webinf
Commit: 5d0cf8baca45594ca7b6b4e7160e03f59cb258de
Parents: 7d383d6
Author: Lukasz Lenart 
Authored: Tue Feb 25 11:08:29 2014 +0100
Committer: Lukasz Lenart 
Committed: Tue Feb 25 11:08:29 2014 +0100

--
 .../xwork2/interceptor/ParametersInterceptor.java  |  8 
 .../com/opensymphony/xwork2/ognl/OgnlValueStack.java   |  4 
 .../com/opensymphony/xwork2/ognl/PropertiesJudge.java  |  7 ---
 .../opensymphony/xwork2/ognl/SecurityMemberAccess.java | 13 +
 .../xwork2/util/MemberAccessValueStack.java|  4 
 5 files changed, 1 insertion(+), 35 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/struts/blob/5d0cf8ba/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 9dfae95..75911a8 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
@@ -22,7 +22,6 @@ import com.opensymphony.xwork2.XWorkConstants;
 import com.opensymphony.xwork2.conversion.impl.InstantiatingNullHandler;
 import com.opensymphony.xwork2.conversion.impl.XWorkConverter;
 import com.opensymphony.xwork2.inject.Inject;
-import com.opensymphony.xwork2.ognl.PropertiesJudge;
 import com.opensymphony.xwork2.util.ArrayUtils;
 import com.opensymphony.xwork2.util.ClearableValueStack;
 import com.opensymphony.xwork2.util.LocalizedTextUtil;
@@ -313,13 +312,6 @@ public class ParametersInterceptor extends 
MethodFilterInterceptor {
 MemberAccessValueStack accessValueStack = (MemberAccessValueStack) 
newStack;
 accessValueStack.setAcceptProperties(acceptParams);
 accessValueStack.setExcludeProperties(excludeParams);
-if (action instanceof ParameterNameAware) {
-accessValueStack.setPropertiesJudge(new PropertiesJudge() {
-public boolean acceptProperty(String propertyName) {
-return ((ParameterNameAware) 
action).acceptableParameterName(propertyName);
-}
-});
-}
 }
 
 for (Map.Entry entry : 
acceptableParameters.entrySet()) {

http://git-wip-us.apache.org/repos/asf/struts/blob/5d0cf8ba/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 138db58..76f0d3f 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
@@ -465,10 +465,6 @@ public class OgnlValueStack implements Serializable, 
ValueStack, ClearableValueS
 securityMemberAccess.setAcceptProperties(acceptedProperties);
 }
 
-public void setPropertiesJudge(PropertiesJudge judge) {
-securityMemberAccess.setPropertiesJudge(judge);
-}
-
 public void setExcludeProperties(Set excludeProperties) {
 securityMemberAccess.setExcludeProperties(excludeProperties);
 }

http://git-wip-us.apache.org/repos/asf/struts/blob/5d0cf8ba/xwork-core/src/main/java/com/opensymphony/xwork2/ognl/PropertiesJudge.java
--
diff --git 
a/xwork-core/src/main/java/com/opensymphony/xwork2/ognl/PropertiesJudge.java 
b/xwork-core/src/main/java/com/opensymphony/xwork2/ognl/PropertiesJudge.java
deleted file mode 100644
index ed27c0f..000
--- a/xwork-core/src/main/java/com/opensymphony/xwork2/ognl/PropertiesJudge.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package com.opensymphony.xwork2.ognl;
-
-public interface PropertiesJudge {
-
-boolean acceptProperty(String propertyName);
-
-}

http://git-wip-us.apache.org/repos/asf/struts/blob/5d0cf8ba/xwork-core/src/main/java/com/opensymphony/xwork2/ognl/SecurityMemberAccess.java
--
diff --git 
a

[1/2] git commit: Adds security constraints to web.xml to block access to pure JSP files

2014-03-02 Thread lukaszlenart
Repository: struts
Updated Branches:
  refs/heads/feature/move-jsps-under-webinf 4360a0666 -> d07e8044b


Adds security constraints to web.xml to block access to pure JSP files


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

Branch: refs/heads/feature/move-jsps-under-webinf
Commit: 95b309a9b93eebadb589a335947598d815add80b
Parents: 4360a06
Author: Lukasz Lenart 
Authored: Sun Mar 2 21:13:38 2014 +0100
Committer: Lukasz Lenart 
Committed: Sun Mar 2 21:13:38 2014 +0100

--
 apps/blank/src/main/webapp/WEB-INF/web.xml |  5 +
 apps/jboss-blank/src/main/webapp/WEB-INF/web.xml   |  3 ---
 apps/mailreader/src/main/webapp/WEB-INF/web.xml| 17 +
 apps/portlet/src/main/webapp/WEB-INF/web.xml   | 17 +
 apps/rest-showcase/src/main/webapp/WEB-INF/web.xml | 17 +
 apps/showcase/src/main/webapp/WEB-INF/web.xml  | 17 +
 6 files changed, 73 insertions(+), 3 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/struts/blob/95b309a9/apps/blank/src/main/webapp/WEB-INF/web.xml
--
diff --git a/apps/blank/src/main/webapp/WEB-INF/web.xml 
b/apps/blank/src/main/webapp/WEB-INF/web.xml
index e8c0f46..f15252b 100644
--- a/apps/blank/src/main/webapp/WEB-INF/web.xml
+++ b/apps/blank/src/main/webapp/WEB-INF/web.xml
@@ -31,4 +31,9 @@
 
 
 
+
+Don't assign users to this role
+no-users
+
+
 

http://git-wip-us.apache.org/repos/asf/struts/blob/95b309a9/apps/jboss-blank/src/main/webapp/WEB-INF/web.xml
--
diff --git a/apps/jboss-blank/src/main/webapp/WEB-INF/web.xml 
b/apps/jboss-blank/src/main/webapp/WEB-INF/web.xml
index 88c6fc8..d1cf020 100644
--- a/apps/jboss-blank/src/main/webapp/WEB-INF/web.xml
+++ b/apps/jboss-blank/src/main/webapp/WEB-INF/web.xml
@@ -27,9 +27,6 @@
 
 no-users
 
-
-NONE
-
 
 
 

http://git-wip-us.apache.org/repos/asf/struts/blob/95b309a9/apps/mailreader/src/main/webapp/WEB-INF/web.xml
--
diff --git a/apps/mailreader/src/main/webapp/WEB-INF/web.xml 
b/apps/mailreader/src/main/webapp/WEB-INF/web.xml
index 9b35ec3..b01d864 100644
--- a/apps/mailreader/src/main/webapp/WEB-INF/web.xml
+++ b/apps/mailreader/src/main/webapp/WEB-INF/web.xml
@@ -27,4 +27,21 @@
 index.html
 
 
+
+
+No direct JSP access
+
+No-JSP
+*.jsp
+
+
+no-users
+
+
+
+
+Don't assign users to this role
+no-users
+
+
 

http://git-wip-us.apache.org/repos/asf/struts/blob/95b309a9/apps/portlet/src/main/webapp/WEB-INF/web.xml
--
diff --git a/apps/portlet/src/main/webapp/WEB-INF/web.xml 
b/apps/portlet/src/main/webapp/WEB-INF/web.xml
index f424419..d4a3c79 100644
--- a/apps/portlet/src/main/webapp/WEB-INF/web.xml
+++ b/apps/portlet/src/main/webapp/WEB-INF/web.xml
@@ -28,4 +28,21 @@

 
 
+
+
+No direct JSP access
+
+No-JSP
+*.jsp
+
+
+no-users
+
+
+
+
+Don't assign users to this role
+no-users
+
+
 

http://git-wip-us.apache.org/repos/asf/struts/blob/95b309a9/apps/rest-showcase/src/main/webapp/WEB-INF/web.xml
--
diff --git a/apps/rest-showcase/src/main/webapp/WEB-INF/web.xml 
b/apps/rest-showcase/src/main/webapp/WEB-INF/web.xml
index d10c214..694c349 100644
--- a/apps/rest-showcase/src/main/webapp/WEB-INF/web.xml
+++ b/apps/rest-showcase/src/main/webapp/WEB-INF/web.xml
@@ -26,4 +26,21 @@
 index.jsp
 
 
+
+
+No direct JSP access
+
+No-JSP
+*.jsp
+
+
+no-users
+
+
+
+
+Don't assign users to this role
+no-users
+
+
 

http://git-wip-us.apache.org/repos/asf/struts/blob/95b309a9/apps/showcase/src/main/webapp/WEB-INF/web.xml
--
diff --git a/apps/showcase/src/main/webapp/WEB-INF/web.xml 
b/apps/showcase/src/main/webapp/WEB-INF/web.xml
index 62335a4..f3b88e9 100644
--- a/apps/showcase/src/main/webapp/WEB-INF/web.xml
+++ b/apps/showcase/src/main/webapp/WEB-INF/web.xml
@@ -194,4 +194,21 @@
 index.html
 
 
+
+
+No direct JSP access
+
+  

[2/2] git commit: Moves mailreader related JSPs under WEB-INF

2014-03-02 Thread lukaszlenart
Moves mailreader related JSPs under WEB-INF


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

Branch: refs/heads/feature/move-jsps-under-webinf
Commit: d07e8044beef98222f0140adb0b4e2892b6bf166
Parents: 95b309a
Author: Lukasz Lenart 
Authored: Sun Mar 2 21:17:30 2014 +0100
Committer: Lukasz Lenart 
Committed: Sun Mar 2 21:17:30 2014 +0100

--
 .../src/main/java/mailreader-support.xml|  10 +-
 .../src/main/webapp/ChangePassword.jsp  |  25 
 apps/mailreader/src/main/webapp/Error.jsp   |  40 ---
 apps/mailreader/src/main/webapp/Footer.jsp  |   6 -
 apps/mailreader/src/main/webapp/Login.jsp   |  30 -
 apps/mailreader/src/main/webapp/MainMenu.jsp|  25 
 .../mailreader/src/main/webapp/Registration.jsp | 115 ---
 .../mailreader/src/main/webapp/Subscription.jsp |  60 --
 .../main/webapp/WEB-INF/jsp/ChangePassword.jsp  |  25 
 .../src/main/webapp/WEB-INF/jsp/Error.jsp   |  40 +++
 .../src/main/webapp/WEB-INF/jsp/Footer.jsp  |   6 +
 .../src/main/webapp/WEB-INF/jsp/Login.jsp   |  30 +
 .../src/main/webapp/WEB-INF/jsp/MainMenu.jsp|  25 
 .../main/webapp/WEB-INF/jsp/Registration.jsp| 115 +++
 .../main/webapp/WEB-INF/jsp/Subscription.jsp|  60 ++
 .../src/main/webapp/WEB-INF/jsp/Welcome.jsp |  55 +
 apps/mailreader/src/main/webapp/Welcome.jsp |  55 -
 17 files changed, 361 insertions(+), 361 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/struts/blob/d07e8044/apps/mailreader/src/main/java/mailreader-support.xml
--
diff --git a/apps/mailreader/src/main/java/mailreader-support.xml 
b/apps/mailreader/src/main/java/mailreader-support.xml
index a699543..2438cb4 100644
--- a/apps/mailreader/src/main/java/mailreader-support.xml
+++ b/apps/mailreader/src/main/java/mailreader-support.xml
@@ -12,7 +12,7 @@
 
 
 
-/Welcome.jsp
+/WEB-INF/jsp/Welcome.jsp
 
 
 
@@ -21,7 +21,7 @@
 
 
 
-/Login.jsp
+/WEB-INF/jsp/Login.jsp
 Welcome
 MainMenu
 ChangePassword
@@ -32,7 +32,7 @@
 
 
 
-/Registration.jsp
+/WEB-INF/jsp/Registration.jsp
 MainMenu
 
 
@@ -41,7 +41,7 @@
 
 
 
-/Subscription.jsp
+/WEB-INF/jsp/Subscription.jsp
 Registration_input
 
 
@@ -56,7 +56,7 @@
 
 
 
-/{1}.jsp
+/WEB-INF/jsp/{1}.jsp
 
 
 

http://git-wip-us.apache.org/repos/asf/struts/blob/d07e8044/apps/mailreader/src/main/webapp/ChangePassword.jsp
--
diff --git a/apps/mailreader/src/main/webapp/ChangePassword.jsp 
b/apps/mailreader/src/main/webapp/ChangePassword.jsp
deleted file mode 100644
index ce543d7..000
--- a/apps/mailreader/src/main/webapp/ChangePassword.jsp
+++ /dev/null
@@ -1,25 +0,0 @@
-<%@ page contentType="text/html; charset=UTF-8" %>
-<%@ taglib uri="/struts-tags" prefix="s" %>
-http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd";>
-http://www.w3.org/1999/xhtml"; xml:lang="en" lang="en">
-
-
-" rel="stylesheet"
-  type="text/css"/>
-
-
-
-
-
-
-
-
-
-">
-
-
-
-
-
-

http://git-wip-us.apache.org/repos/asf/struts/blob/d07e8044/apps/mailreader/src/main/webapp/Error.jsp
--
diff --git a/apps/mailreader/src/main/webapp/Error.jsp 
b/apps/mailreader/src/main/webapp/Error.jsp
deleted file mode 100644
index 05ab5e0..000
--- a/apps/mailreader/src/main/webapp/Error.jsp
+++ /dev/null
@@ -1,40 +0,0 @@
-<%@ page contentType="text/html; charset=UTF-8" %>
-<%@ taglib uri="/struts-tags" prefix="s" %>
-http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd";>
-http://www.w3.org/1999/xhtml"; xml:lang="en" lang="en">
-
-Unexpected Error
-
-
-
-An unexpected error has occured
-
-
-Please report this error to your system administrator
-or appropriate technical support personnel.
-Thank you for your cooperation.
-
-
-
-
-Error Message
-
-
-
-
-
-
-
-
-
-Technical Details
-
-
-
-
-
-
-
-
-

http://git-wip-us.apache.org/repos/asf/struts/blob/d07e8044/apps/mailreader/src/main/webapp/Footer.jsp
--
diff --git a/apps/mailreader/src/main/webapp/Footer.jsp 
b/apps/mailreader/src/main/webapp/Footer.jsp
deleted file mode 100644
inde

[10/10] git commit: Reverts security constraint

2014-03-02 Thread lukaszlenart
Reverts security constraint


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

Branch: refs/heads/feature/move-jsps-under-webinf
Commit: c0a312a82209a5dae219e10245b3a55c0408aadf
Parents: 65eb975
Author: Lukasz Lenart 
Authored: Sun Mar 2 22:17:12 2014 +0100
Committer: Lukasz Lenart 
Committed: Sun Mar 2 22:17:12 2014 +0100

--
 apps/portlet/src/main/webapp/WEB-INF/web.xml | 17 -
 1 file changed, 17 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/struts/blob/c0a312a8/apps/portlet/src/main/webapp/WEB-INF/web.xml
--
diff --git a/apps/portlet/src/main/webapp/WEB-INF/web.xml 
b/apps/portlet/src/main/webapp/WEB-INF/web.xml
index d4a3c79..f424419 100644
--- a/apps/portlet/src/main/webapp/WEB-INF/web.xml
+++ b/apps/portlet/src/main/webapp/WEB-INF/web.xml
@@ -28,21 +28,4 @@

 
 
-
-
-No direct JSP access
-
-No-JSP
-*.jsp
-
-
-no-users
-
-
-
-
-Don't assign users to this role
-no-users
-
-
 



[CONF] Confluence Changes in the last 24 hours

2014-03-02 Thread Anonymous (Confluence)
















  Confluence Changes in the last 24 hours  




 Apache Camel 

Pages

 Page: Couchbase edited by Ugo Landini [02:13 PM] (View Changes) 
 Page: Camel 2.13.0 Release edited by Claus Ibsen [11:02 AM] (View Changes) 
 Page: Infinispan edited by Ugo Landini [12:35 AM] (View Changes) 


 CouchDB 

Pages

 Page: Committer First Steps created by Andy Wenk [10:13 PM] 
 Page: Election instructions created by Andy Wenk [10:13 PM] 
 Page: Git workflow created by Andy Wenk [10:12 PM] 
 Page: Developers Guide created by Andy Wenk [10:11 PM] 
 Page: Documentation Guide created by Andy Wenk [10:11 PM] 
 Page: Translation Guide created by Andy Wenk [10:10 PM] 
 Page: Contribution Guide created by Andy Wenk [10:08 PM] 
 Page: HTTP clients created by Andy Wenk [10:07 PM] 
 Page: CouchDB clients created by Andy Wenk [10:07 PM] 
 Page: Useful utilities created by Andy Wenk [10:06 PM] 
 Page: Media stuff created by Andy Wenk [10:04 PM] 
 Page: Books created by Andy Wenk [10:04 PM] 
 Page: Whom to follow created by Andy Wenk [10:04 PM] 
 Page: News sources created by Andy Wenk [10:03 PM] 
 Page: Blogs about CouchDB created by Andy Wenk [10:03 PM] 
 Page: How to get promoted created by Andy Wenk [10:02 PM] 
 Page: ASF reports created by Andy Wenk [10:00 PM] 
 Page: Friends of the Couch created by Andy Wenk [09:59 PM] 
 Page: Meetups created by Andy Wenk [09:58 PM] 
 Page: CouchConfs / CouchHacks notes created by Andy Wenk [09:58 PM] 
 Page: Weekly meeting notes created by Andy Wenk [09:57 PM] 
 Page: Meetings created by Andy Wenk [09:55 PM] 
 Page: People on the Couch created by Andy Wenk [09:54 PM] 
 Page: CouchDB Team created by Andy Wenk [09:29 PM] 
 Page: Useful Links created by Andy Wenk [09:40 PM] 
 Page: Official Ressources created by Andy Wenk [09:31 PM] 
 Page: Introduction created by Andy Wenk [09:27 PM] 
 Page: Project affairs created by Andy Wenk [09:17 PM] 
 Page: CouchDB Enhancement Proposals created by Andy Wenk [09:16 PM] 
 Page: Development created by Andy Wenk [09:15 PM] 
 Page: Libraries and Tools created by Andy Wenk [09:14 PM] 
 Page