(struts-site) branch asf-staging updated: Updates stage by Jenkins

2024-03-24 Thread git-site-role
This is an automated email from the ASF dual-hosted git repository.

git-site-role pushed a commit to branch asf-staging
in repository https://gitbox.apache.org/repos/asf/struts-site.git


The following commit(s) were added to refs/heads/asf-staging by this push:
 new 3b462cfe3 Updates stage by Jenkins
3b462cfe3 is described below

commit 3b462cfe3cee3c805333496d98967c2493419cf0
Author: jenkins 
AuthorDate: Sun Mar 24 20:48:29 2024 +

Updates stage by Jenkins
---
 content/core-developers/action-file-upload-interceptor.html | 2 ++
 content/core-developers/file-upload-interceptor.html| 2 ++
 2 files changed, 4 insertions(+)

diff --git a/content/core-developers/action-file-upload-interceptor.html 
b/content/core-developers/action-file-upload-interceptor.html
index b1f048d09..74cefb55b 100644
--- a/content/core-developers/action-file-upload-interceptor.html
+++ b/content/core-developers/action-file-upload-interceptor.html
@@ -200,6 +200,8 @@ and which are not.
 
 Examples
 
+See this page for more examples and 
advanced configuration.
+
 Example action mapping:
 
  
diff --git a/content/core-developers/file-upload-interceptor.html 
b/content/core-developers/file-upload-interceptor.html
index 5986154e4..f7f65df88 100644
--- a/content/core-developers/file-upload-interceptor.html
+++ b/content/core-developers/file-upload-interceptor.html
@@ -208,6 +208,8 @@ and which are not.
 
 Examples
 
+See this page for more examples and advanced 
configuration.
+
 Example action mapping:
 
  



(struts-examples) branch dependabot/maven/io.quarkus-quarkus-universe-bom-3.8.3 created (now bb89475)

2024-03-24 Thread github-bot
This is an automated email from the ASF dual-hosted git repository.

github-bot pushed a change to branch 
dependabot/maven/io.quarkus-quarkus-universe-bom-3.8.3
in repository https://gitbox.apache.org/repos/asf/struts-examples.git


  at bb89475  Bump io.quarkus:quarkus-universe-bom from 3.7.3 to 3.8.3

No new revisions were added by this update.



(struts-examples) branch dependabot/maven/io.quarkus-quarkus-universe-bom-3.8.2 deleted (was ba443e4)

2024-03-24 Thread github-bot
This is an automated email from the ASF dual-hosted git repository.

github-bot pushed a change to branch 
dependabot/maven/io.quarkus-quarkus-universe-bom-3.8.2
in repository https://gitbox.apache.org/repos/asf/struts-examples.git


 was ba443e4  Bump io.quarkus:quarkus-universe-bom from 3.7.3 to 3.8.2

The revisions that were on this branch are still contained in
other references; therefore, this change does not discard any commits
from the repository.



(struts-examples) branch dependabot/github_actions/actions/cache-4.0.2 created (now 2be5be5)

2024-03-24 Thread github-bot
This is an automated email from the ASF dual-hosted git repository.

github-bot pushed a change to branch 
dependabot/github_actions/actions/cache-4.0.2
in repository https://gitbox.apache.org/repos/asf/struts-examples.git


  at 2be5be5  Bump actions/cache from 4.0.0 to 4.0.2

No new revisions were added by this update.



(struts-examples) branch dependabot/github_actions/actions/cache-4.0.1 deleted (was df7bb32)

2024-03-24 Thread github-bot
This is an automated email from the ASF dual-hosted git repository.

github-bot pushed a change to branch 
dependabot/github_actions/actions/cache-4.0.1
in repository https://gitbox.apache.org/repos/asf/struts-examples.git


 was df7bb32  Bump actions/cache from 4.0.0 to 4.0.1

The revisions that were on this branch are still contained in
other references; therefore, this change does not discard any commits
from the repository.



(struts) branch feature/WW-5402-autoload-classptah updated (0f4ef3c2f -> a8a9e6d73)

2024-03-24 Thread lukaszlenart
This is an automated email from the ASF dual-hosted git repository.

lukaszlenart pushed a change to branch feature/WW-5402-autoload-classptah
in repository https://gitbox.apache.org/repos/asf/struts.git


 discard 0f4ef3c2f WW-5402 Auto loads Tiles definitions from classpath
 new a8a9e6d73 WW-5402 Auto loads Tiles definitions from classpath

This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version.  This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:

 * -- * -- B -- O -- O -- O   (0f4ef3c2f)
\
 N -- N -- N   refs/heads/feature/WW-5402-autoload-classptah 
(a8a9e6d73)

You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.

Any revisions marked "omit" are not gone; other references still
refer to them.  Any revisions marked "discard" are gone forever.

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../org/apache/struts2/tiles/StrutsTilesContainerFactoryTest.java   | 6 --
 1 file changed, 4 insertions(+), 2 deletions(-)



(struts) 01/01: WW-5402 Auto loads Tiles definitions from classpath

2024-03-24 Thread lukaszlenart
This is an automated email from the ASF dual-hosted git repository.

lukaszlenart pushed a commit to branch feature/WW-5402-autoload-classptah
in repository https://gitbox.apache.org/repos/asf/struts.git

commit a8a9e6d73078f90c4dab0f44ae2300dc136d61c4
Author: Lukasz Lenart 
AuthorDate: Sun Mar 24 11:29:12 2024 +0100

WW-5402 Auto loads Tiles definitions from classpath
---
 plugins/tiles/pom.xml  |   3 -
 .../struts2/tiles/StrutsTilesContainerFactory.java |  25 ++--
 .../tiles/StrutsTilesContainerFactoryTest.java | 127 +
 3 files changed, 145 insertions(+), 10 deletions(-)

diff --git a/plugins/tiles/pom.xml b/plugins/tiles/pom.xml
index 440f6ee79..1a6caf2c1 100644
--- a/plugins/tiles/pom.xml
+++ b/plugins/tiles/pom.xml
@@ -35,9 +35,6 @@
 
 
 build-autotags
-
-true
-
 
 
 
diff --git 
a/plugins/tiles/src/main/java/org/apache/struts2/tiles/StrutsTilesContainerFactory.java
 
b/plugins/tiles/src/main/java/org/apache/struts2/tiles/StrutsTilesContainerFactory.java
index 205476467..aba4e5985 100644
--- 
a/plugins/tiles/src/main/java/org/apache/struts2/tiles/StrutsTilesContainerFactory.java
+++ 
b/plugins/tiles/src/main/java/org/apache/struts2/tiles/StrutsTilesContainerFactory.java
@@ -25,11 +25,6 @@ import ognl.PropertyAccessor;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
 import org.apache.tiles.api.TilesContainer;
-import org.apache.tiles.request.ApplicationContext;
-import org.apache.tiles.request.ApplicationResource;
-import org.apache.tiles.request.Request;
-import org.apache.tiles.request.render.BasicRendererFactory;
-import org.apache.tiles.request.render.ChainedDelegateRenderer;
 import org.apache.tiles.core.definition.DefinitionsFactory;
 import 
org.apache.tiles.core.definition.pattern.DefinitionPatternMatcherFactory;
 import org.apache.tiles.core.definition.pattern.PatternDefinitionResolver;
@@ -57,6 +52,11 @@ import org.apache.tiles.ognl.PropertyAccessorDelegateFactory;
 import org.apache.tiles.ognl.ScopePropertyAccessor;
 import org.apache.tiles.ognl.TilesApplicationContextNestedObjectExtractor;
 import org.apache.tiles.ognl.TilesContextPropertyAccessorDelegateFactory;
+import org.apache.tiles.request.ApplicationContext;
+import org.apache.tiles.request.ApplicationResource;
+import org.apache.tiles.request.Request;
+import org.apache.tiles.request.render.BasicRendererFactory;
+import org.apache.tiles.request.render.ChainedDelegateRenderer;
 import org.apache.tiles.request.render.Renderer;
 
 import javax.el.ArrayELResolver;
@@ -69,6 +69,7 @@ import javax.el.ResourceBundleELResolver;
 import javax.servlet.jsp.JspFactory;
 import java.util.ArrayList;
 import java.util.Collection;
+import java.util.HashSet;
 import java.util.List;
 import java.util.Locale;
 import java.util.Map;
@@ -100,10 +101,20 @@ public class StrutsTilesContainerFactory extends 
BasicTilesContainerFactory {
 public static final String PATTERN_WILDCARD = "WILDCARD";
 public static final String PATTERN_REGEXP = "REGEXP";
 
+/**
+ * Default pattern to be used to collect Tiles definitions if user didn't 
configure any
+ * @deprecated use {@link #TILES_DEFAULT_PATTERNS} instead
+ */
+@Deprecated
+public static final String TILES_DEFAULT_PATTERN = 
"/WEB-INF/**/tiles*.xml,classpath*:META-INF/**/tiles*.xml";
+
 /**
  * Default pattern to be used to collect Tiles definitions if user didn't 
configure any
  */
-public static final String TILES_DEFAULT_PATTERN = "tiles*.xml";
+public static final Set TILES_DEFAULT_PATTERNS = new 
HashSet() {{
+add("/WEB-INF/**/tiles*.xml");
+add("classpath*:META-INF/**/tiles*.xml");
+}};
 
 /**
  * Supported expression languages
@@ -213,7 +224,7 @@ public class StrutsTilesContainerFactory extends 
BasicTilesContainerFactory {
 if (params.containsKey(DefinitionsFactory.DEFINITIONS_CONFIG)) {
 return 
TextParseUtil.commaDelimitedStringToSet(params.get(DefinitionsFactory.DEFINITIONS_CONFIG));
 }
-return TextParseUtil.commaDelimitedStringToSet(TILES_DEFAULT_PATTERN);
+return TILES_DEFAULT_PATTERNS;
 }
 
 protected ELAttributeEvaluator createELEvaluator(ApplicationContext 
applicationContext) {
diff --git 
a/plugins/tiles/src/test/java/org/apache/struts2/tiles/StrutsTilesContainerFactoryTest.java
 
b/plugins/tiles/src/test/java/org/apache/struts2/tiles/StrutsTilesContainerFactoryTest.java
new file mode 100644
index 0..58029f964
--- /dev/null
+++ 
b/plugins/tiles/src/test/java/org/apache/struts2/tiles/StrutsTilesContainerFactoryTest.java
@@ -0,0 +1,127 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright owner

(struts) branch feature/WW-5402-autoload-classptah updated (a8a9e6d73 -> fcde5a25a)

2024-03-24 Thread lukaszlenart
This is an automated email from the ASF dual-hosted git repository.

lukaszlenart pushed a change to branch feature/WW-5402-autoload-classptah
in repository https://gitbox.apache.org/repos/asf/struts.git


 discard a8a9e6d73 WW-5402 Auto loads Tiles definitions from classpath
 new fcde5a25a WW-5402 Auto loads Tiles definitions from classpath

This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version.  This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:

 * -- * -- B -- O -- O -- O   (a8a9e6d73)
\
 N -- N -- N   refs/heads/feature/WW-5402-autoload-classptah 
(fcde5a25a)

You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.

Any revisions marked "omit" are not gone; other references still
refer to them.  Any revisions marked "discard" are gone forever.

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../org/apache/struts2/tiles/StrutsTilesContainerFactoryTest.java  | 7 +++
 1 file changed, 7 insertions(+)



(struts) 01/01: WW-5402 Auto loads Tiles definitions from classpath

2024-03-24 Thread lukaszlenart
This is an automated email from the ASF dual-hosted git repository.

lukaszlenart pushed a commit to branch feature/WW-5402-autoload-classptah
in repository https://gitbox.apache.org/repos/asf/struts.git

commit fcde5a25a82caf937cc505d06fc33641bc68b177
Author: Lukasz Lenart 
AuthorDate: Sun Mar 24 11:29:12 2024 +0100

WW-5402 Auto loads Tiles definitions from classpath
---
 plugins/tiles/pom.xml  |   3 -
 .../struts2/tiles/StrutsTilesContainerFactory.java |  25 ++--
 .../tiles/StrutsTilesContainerFactoryTest.java | 134 +
 3 files changed, 152 insertions(+), 10 deletions(-)

diff --git a/plugins/tiles/pom.xml b/plugins/tiles/pom.xml
index 440f6ee79..1a6caf2c1 100644
--- a/plugins/tiles/pom.xml
+++ b/plugins/tiles/pom.xml
@@ -35,9 +35,6 @@
 
 
 build-autotags
-
-true
-
 
 
 
diff --git 
a/plugins/tiles/src/main/java/org/apache/struts2/tiles/StrutsTilesContainerFactory.java
 
b/plugins/tiles/src/main/java/org/apache/struts2/tiles/StrutsTilesContainerFactory.java
index 205476467..aba4e5985 100644
--- 
a/plugins/tiles/src/main/java/org/apache/struts2/tiles/StrutsTilesContainerFactory.java
+++ 
b/plugins/tiles/src/main/java/org/apache/struts2/tiles/StrutsTilesContainerFactory.java
@@ -25,11 +25,6 @@ import ognl.PropertyAccessor;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
 import org.apache.tiles.api.TilesContainer;
-import org.apache.tiles.request.ApplicationContext;
-import org.apache.tiles.request.ApplicationResource;
-import org.apache.tiles.request.Request;
-import org.apache.tiles.request.render.BasicRendererFactory;
-import org.apache.tiles.request.render.ChainedDelegateRenderer;
 import org.apache.tiles.core.definition.DefinitionsFactory;
 import 
org.apache.tiles.core.definition.pattern.DefinitionPatternMatcherFactory;
 import org.apache.tiles.core.definition.pattern.PatternDefinitionResolver;
@@ -57,6 +52,11 @@ import org.apache.tiles.ognl.PropertyAccessorDelegateFactory;
 import org.apache.tiles.ognl.ScopePropertyAccessor;
 import org.apache.tiles.ognl.TilesApplicationContextNestedObjectExtractor;
 import org.apache.tiles.ognl.TilesContextPropertyAccessorDelegateFactory;
+import org.apache.tiles.request.ApplicationContext;
+import org.apache.tiles.request.ApplicationResource;
+import org.apache.tiles.request.Request;
+import org.apache.tiles.request.render.BasicRendererFactory;
+import org.apache.tiles.request.render.ChainedDelegateRenderer;
 import org.apache.tiles.request.render.Renderer;
 
 import javax.el.ArrayELResolver;
@@ -69,6 +69,7 @@ import javax.el.ResourceBundleELResolver;
 import javax.servlet.jsp.JspFactory;
 import java.util.ArrayList;
 import java.util.Collection;
+import java.util.HashSet;
 import java.util.List;
 import java.util.Locale;
 import java.util.Map;
@@ -100,10 +101,20 @@ public class StrutsTilesContainerFactory extends 
BasicTilesContainerFactory {
 public static final String PATTERN_WILDCARD = "WILDCARD";
 public static final String PATTERN_REGEXP = "REGEXP";
 
+/**
+ * Default pattern to be used to collect Tiles definitions if user didn't 
configure any
+ * @deprecated use {@link #TILES_DEFAULT_PATTERNS} instead
+ */
+@Deprecated
+public static final String TILES_DEFAULT_PATTERN = 
"/WEB-INF/**/tiles*.xml,classpath*:META-INF/**/tiles*.xml";
+
 /**
  * Default pattern to be used to collect Tiles definitions if user didn't 
configure any
  */
-public static final String TILES_DEFAULT_PATTERN = "tiles*.xml";
+public static final Set TILES_DEFAULT_PATTERNS = new 
HashSet() {{
+add("/WEB-INF/**/tiles*.xml");
+add("classpath*:META-INF/**/tiles*.xml");
+}};
 
 /**
  * Supported expression languages
@@ -213,7 +224,7 @@ public class StrutsTilesContainerFactory extends 
BasicTilesContainerFactory {
 if (params.containsKey(DefinitionsFactory.DEFINITIONS_CONFIG)) {
 return 
TextParseUtil.commaDelimitedStringToSet(params.get(DefinitionsFactory.DEFINITIONS_CONFIG));
 }
-return TextParseUtil.commaDelimitedStringToSet(TILES_DEFAULT_PATTERN);
+return TILES_DEFAULT_PATTERNS;
 }
 
 protected ELAttributeEvaluator createELEvaluator(ApplicationContext 
applicationContext) {
diff --git 
a/plugins/tiles/src/test/java/org/apache/struts2/tiles/StrutsTilesContainerFactoryTest.java
 
b/plugins/tiles/src/test/java/org/apache/struts2/tiles/StrutsTilesContainerFactoryTest.java
new file mode 100644
index 0..890403e8a
--- /dev/null
+++ 
b/plugins/tiles/src/test/java/org/apache/struts2/tiles/StrutsTilesContainerFactoryTest.java
@@ -0,0 +1,134 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright owner

(struts) branch feature/WW-5402-autoload-classptah updated (fcde5a25a -> 67b26901d)

2024-03-24 Thread lukaszlenart
This is an automated email from the ASF dual-hosted git repository.

lukaszlenart pushed a change to branch feature/WW-5402-autoload-classptah
in repository https://gitbox.apache.org/repos/asf/struts.git


 discard fcde5a25a WW-5402 Auto loads Tiles definitions from classpath
 new 67b26901d WW-5402 Auto loads Tiles definitions from classpath

This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version.  This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:

 * -- * -- B -- O -- O -- O   (fcde5a25a)
\
 N -- N -- N   refs/heads/feature/WW-5402-autoload-classptah 
(67b26901d)

You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.

Any revisions marked "omit" are not gone; other references still
refer to them.  Any revisions marked "discard" are gone forever.

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../java/org/apache/struts2/tiles/StrutsTilesContainerFactoryTest.java | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)



(struts) 01/01: WW-5402 Auto loads Tiles definitions from classpath

2024-03-24 Thread lukaszlenart
This is an automated email from the ASF dual-hosted git repository.

lukaszlenart pushed a commit to branch feature/WW-5402-autoload-classptah
in repository https://gitbox.apache.org/repos/asf/struts.git

commit 67b26901dfc303c47a54f2296adbdcdb2146614f
Author: Lukasz Lenart 
AuthorDate: Sun Mar 24 11:29:12 2024 +0100

WW-5402 Auto loads Tiles definitions from classpath
---
 plugins/tiles/pom.xml  |   3 -
 .../struts2/tiles/StrutsTilesContainerFactory.java |  25 ++--
 .../tiles/StrutsTilesContainerFactoryTest.java | 135 +
 3 files changed, 153 insertions(+), 10 deletions(-)

diff --git a/plugins/tiles/pom.xml b/plugins/tiles/pom.xml
index 440f6ee79..1a6caf2c1 100644
--- a/plugins/tiles/pom.xml
+++ b/plugins/tiles/pom.xml
@@ -35,9 +35,6 @@
 
 
 build-autotags
-
-true
-
 
 
 
diff --git 
a/plugins/tiles/src/main/java/org/apache/struts2/tiles/StrutsTilesContainerFactory.java
 
b/plugins/tiles/src/main/java/org/apache/struts2/tiles/StrutsTilesContainerFactory.java
index 205476467..aba4e5985 100644
--- 
a/plugins/tiles/src/main/java/org/apache/struts2/tiles/StrutsTilesContainerFactory.java
+++ 
b/plugins/tiles/src/main/java/org/apache/struts2/tiles/StrutsTilesContainerFactory.java
@@ -25,11 +25,6 @@ import ognl.PropertyAccessor;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
 import org.apache.tiles.api.TilesContainer;
-import org.apache.tiles.request.ApplicationContext;
-import org.apache.tiles.request.ApplicationResource;
-import org.apache.tiles.request.Request;
-import org.apache.tiles.request.render.BasicRendererFactory;
-import org.apache.tiles.request.render.ChainedDelegateRenderer;
 import org.apache.tiles.core.definition.DefinitionsFactory;
 import 
org.apache.tiles.core.definition.pattern.DefinitionPatternMatcherFactory;
 import org.apache.tiles.core.definition.pattern.PatternDefinitionResolver;
@@ -57,6 +52,11 @@ import org.apache.tiles.ognl.PropertyAccessorDelegateFactory;
 import org.apache.tiles.ognl.ScopePropertyAccessor;
 import org.apache.tiles.ognl.TilesApplicationContextNestedObjectExtractor;
 import org.apache.tiles.ognl.TilesContextPropertyAccessorDelegateFactory;
+import org.apache.tiles.request.ApplicationContext;
+import org.apache.tiles.request.ApplicationResource;
+import org.apache.tiles.request.Request;
+import org.apache.tiles.request.render.BasicRendererFactory;
+import org.apache.tiles.request.render.ChainedDelegateRenderer;
 import org.apache.tiles.request.render.Renderer;
 
 import javax.el.ArrayELResolver;
@@ -69,6 +69,7 @@ import javax.el.ResourceBundleELResolver;
 import javax.servlet.jsp.JspFactory;
 import java.util.ArrayList;
 import java.util.Collection;
+import java.util.HashSet;
 import java.util.List;
 import java.util.Locale;
 import java.util.Map;
@@ -100,10 +101,20 @@ public class StrutsTilesContainerFactory extends 
BasicTilesContainerFactory {
 public static final String PATTERN_WILDCARD = "WILDCARD";
 public static final String PATTERN_REGEXP = "REGEXP";
 
+/**
+ * Default pattern to be used to collect Tiles definitions if user didn't 
configure any
+ * @deprecated use {@link #TILES_DEFAULT_PATTERNS} instead
+ */
+@Deprecated
+public static final String TILES_DEFAULT_PATTERN = 
"/WEB-INF/**/tiles*.xml,classpath*:META-INF/**/tiles*.xml";
+
 /**
  * Default pattern to be used to collect Tiles definitions if user didn't 
configure any
  */
-public static final String TILES_DEFAULT_PATTERN = "tiles*.xml";
+public static final Set TILES_DEFAULT_PATTERNS = new 
HashSet() {{
+add("/WEB-INF/**/tiles*.xml");
+add("classpath*:META-INF/**/tiles*.xml");
+}};
 
 /**
  * Supported expression languages
@@ -213,7 +224,7 @@ public class StrutsTilesContainerFactory extends 
BasicTilesContainerFactory {
 if (params.containsKey(DefinitionsFactory.DEFINITIONS_CONFIG)) {
 return 
TextParseUtil.commaDelimitedStringToSet(params.get(DefinitionsFactory.DEFINITIONS_CONFIG));
 }
-return TextParseUtil.commaDelimitedStringToSet(TILES_DEFAULT_PATTERN);
+return TILES_DEFAULT_PATTERNS;
 }
 
 protected ELAttributeEvaluator createELEvaluator(ApplicationContext 
applicationContext) {
diff --git 
a/plugins/tiles/src/test/java/org/apache/struts2/tiles/StrutsTilesContainerFactoryTest.java
 
b/plugins/tiles/src/test/java/org/apache/struts2/tiles/StrutsTilesContainerFactoryTest.java
new file mode 100644
index 0..5b033b493
--- /dev/null
+++ 
b/plugins/tiles/src/test/java/org/apache/struts2/tiles/StrutsTilesContainerFactoryTest.java
@@ -0,0 +1,135 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright owner

(struts) 01/01: WW-5402 Auto loads Tiles definitions from classpath

2024-03-24 Thread lukaszlenart
This is an automated email from the ASF dual-hosted git repository.

lukaszlenart pushed a commit to branch feature/WW-5402-autoload-classptah
in repository https://gitbox.apache.org/repos/asf/struts.git

commit 7c69765ddb26ca2585ee91ba08f05ca7bbdc70cc
Author: Lukasz Lenart 
AuthorDate: Sun Mar 24 11:29:12 2024 +0100

WW-5402 Auto loads Tiles definitions from classpath
---
 plugins/tiles/pom.xml  |   3 -
 .../struts2/tiles/StrutsTilesContainerFactory.java |  25 ++--
 .../tiles/StrutsTilesContainerFactoryTest.java | 134 +
 3 files changed, 152 insertions(+), 10 deletions(-)

diff --git a/plugins/tiles/pom.xml b/plugins/tiles/pom.xml
index 440f6ee79..1a6caf2c1 100644
--- a/plugins/tiles/pom.xml
+++ b/plugins/tiles/pom.xml
@@ -35,9 +35,6 @@
 
 
 build-autotags
-
-true
-
 
 
 
diff --git 
a/plugins/tiles/src/main/java/org/apache/struts2/tiles/StrutsTilesContainerFactory.java
 
b/plugins/tiles/src/main/java/org/apache/struts2/tiles/StrutsTilesContainerFactory.java
index 205476467..d1b1a4f52 100644
--- 
a/plugins/tiles/src/main/java/org/apache/struts2/tiles/StrutsTilesContainerFactory.java
+++ 
b/plugins/tiles/src/main/java/org/apache/struts2/tiles/StrutsTilesContainerFactory.java
@@ -25,11 +25,6 @@ import ognl.PropertyAccessor;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
 import org.apache.tiles.api.TilesContainer;
-import org.apache.tiles.request.ApplicationContext;
-import org.apache.tiles.request.ApplicationResource;
-import org.apache.tiles.request.Request;
-import org.apache.tiles.request.render.BasicRendererFactory;
-import org.apache.tiles.request.render.ChainedDelegateRenderer;
 import org.apache.tiles.core.definition.DefinitionsFactory;
 import 
org.apache.tiles.core.definition.pattern.DefinitionPatternMatcherFactory;
 import org.apache.tiles.core.definition.pattern.PatternDefinitionResolver;
@@ -57,6 +52,11 @@ import org.apache.tiles.ognl.PropertyAccessorDelegateFactory;
 import org.apache.tiles.ognl.ScopePropertyAccessor;
 import org.apache.tiles.ognl.TilesApplicationContextNestedObjectExtractor;
 import org.apache.tiles.ognl.TilesContextPropertyAccessorDelegateFactory;
+import org.apache.tiles.request.ApplicationContext;
+import org.apache.tiles.request.ApplicationResource;
+import org.apache.tiles.request.Request;
+import org.apache.tiles.request.render.BasicRendererFactory;
+import org.apache.tiles.request.render.ChainedDelegateRenderer;
 import org.apache.tiles.request.render.Renderer;
 
 import javax.el.ArrayELResolver;
@@ -69,6 +69,7 @@ import javax.el.ResourceBundleELResolver;
 import javax.servlet.jsp.JspFactory;
 import java.util.ArrayList;
 import java.util.Collection;
+import java.util.HashSet;
 import java.util.List;
 import java.util.Locale;
 import java.util.Map;
@@ -100,10 +101,20 @@ public class StrutsTilesContainerFactory extends 
BasicTilesContainerFactory {
 public static final String PATTERN_WILDCARD = "WILDCARD";
 public static final String PATTERN_REGEXP = "REGEXP";
 
+/**
+ * Default pattern to be used to collect Tiles definitions if user didn't 
configure any
+ * @deprecated since Struts 6.4.0, use {@link #TILES_DEFAULT_PATTERNS} 
instead
+ */
+@Deprecated
+public static final String TILES_DEFAULT_PATTERN = 
"/WEB-INF/**/tiles*.xml,classpath*:META-INF/**/tiles*.xml";
+
 /**
  * Default pattern to be used to collect Tiles definitions if user didn't 
configure any
  */
-public static final String TILES_DEFAULT_PATTERN = "tiles*.xml";
+public static final Set TILES_DEFAULT_PATTERNS = new 
HashSet() {{
+add("/WEB-INF/**/tiles*.xml");
+add("classpath*:META-INF/**/tiles*.xml");
+}};
 
 /**
  * Supported expression languages
@@ -213,7 +224,7 @@ public class StrutsTilesContainerFactory extends 
BasicTilesContainerFactory {
 if (params.containsKey(DefinitionsFactory.DEFINITIONS_CONFIG)) {
 return 
TextParseUtil.commaDelimitedStringToSet(params.get(DefinitionsFactory.DEFINITIONS_CONFIG));
 }
-return TextParseUtil.commaDelimitedStringToSet(TILES_DEFAULT_PATTERN);
+return TILES_DEFAULT_PATTERNS;
 }
 
 protected ELAttributeEvaluator createELEvaluator(ApplicationContext 
applicationContext) {
diff --git 
a/plugins/tiles/src/test/java/org/apache/struts2/tiles/StrutsTilesContainerFactoryTest.java
 
b/plugins/tiles/src/test/java/org/apache/struts2/tiles/StrutsTilesContainerFactoryTest.java
new file mode 100644
index 0..bc4fd7331
--- /dev/null
+++ 
b/plugins/tiles/src/test/java/org/apache/struts2/tiles/StrutsTilesContainerFactoryTest.java
@@ -0,0 +1,134 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * rega

(struts) branch feature/WW-5402-autoload-classptah updated (67b26901d -> 7c69765dd)

2024-03-24 Thread lukaszlenart
This is an automated email from the ASF dual-hosted git repository.

lukaszlenart pushed a change to branch feature/WW-5402-autoload-classptah
in repository https://gitbox.apache.org/repos/asf/struts.git


 discard 67b26901d WW-5402 Auto loads Tiles definitions from classpath
 new 7c69765dd WW-5402 Auto loads Tiles definitions from classpath

This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version.  This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:

 * -- * -- B -- O -- O -- O   (67b26901d)
\
 N -- N -- N   refs/heads/feature/WW-5402-autoload-classptah 
(7c69765dd)

You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.

Any revisions marked "omit" are not gone; other references still
refer to them.  Any revisions marked "discard" are gone forever.

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../java/org/apache/struts2/tiles/StrutsTilesContainerFactory.java   | 2 +-
 .../org/apache/struts2/tiles/StrutsTilesContainerFactoryTest.java| 5 ++---
 2 files changed, 3 insertions(+), 4 deletions(-)



(struts) branch master updated (86aee4b0e -> cdc931e26)

2024-03-24 Thread lukaszlenart
This is an automated email from the ASF dual-hosted git repository.

lukaszlenart pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/struts.git


from 86aee4b0e Merge pull request #894 from apache/WW-5364-npe
 add db0bd4385 Converts multiple file uploads example to use Action based 
upload
 new cdc931e26 Merge pull request #895 from apache/fix/file-uploads

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../MultipleFileUploadUsingArrayAction.java| 82 +---
 .../MultipleFileUploadUsingListAction.java | 88 ++
 2 files changed, 76 insertions(+), 94 deletions(-)



(struts) 01/01: Merge pull request #895 from apache/fix/file-uploads

2024-03-24 Thread lukaszlenart
This is an automated email from the ASF dual-hosted git repository.

lukaszlenart pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/struts.git

commit cdc931e26f3fc467e7d29fa43477f137922bfe08
Merge: 86aee4b0e db0bd4385
Author: Lukasz Lenart 
AuthorDate: Sun Mar 24 09:06:46 2024 +0100

Merge pull request #895 from apache/fix/file-uploads

Converts multiple file uploads example to use Action based upload

 .../MultipleFileUploadUsingArrayAction.java| 82 +---
 .../MultipleFileUploadUsingListAction.java | 88 ++
 2 files changed, 76 insertions(+), 94 deletions(-)



(struts) branch fix/file-uploads deleted (was db0bd4385)

2024-03-24 Thread lukaszlenart
This is an automated email from the ASF dual-hosted git repository.

lukaszlenart pushed a change to branch fix/file-uploads
in repository https://gitbox.apache.org/repos/asf/struts.git


 was db0bd4385 Converts multiple file uploads example to use Action based 
upload

The revisions that were on this branch are still contained in
other references; therefore, this change does not discard any commits
from the repository.



(struts) 01/01: WW-5402 Auto loads Tiles definitions from classpath

2024-03-24 Thread lukaszlenart
This is an automated email from the ASF dual-hosted git repository.

lukaszlenart pushed a commit to branch feature/WW-5402-autoload-classptah
in repository https://gitbox.apache.org/repos/asf/struts.git

commit a3fbb7ce80f68f94fbb1e304f2a1956b6831b9de
Author: Lukasz Lenart 
AuthorDate: Sun Mar 24 11:29:12 2024 +0100

WW-5402 Auto loads Tiles definitions from classpath
---
 .../struts2/tiles/StrutsTilesContainerFactory.java |  25 +++--
 .../tiles/StrutsTilesContainerFactoryTest.java | 106 +
 2 files changed, 124 insertions(+), 7 deletions(-)

diff --git 
a/plugins/tiles/src/main/java/org/apache/struts2/tiles/StrutsTilesContainerFactory.java
 
b/plugins/tiles/src/main/java/org/apache/struts2/tiles/StrutsTilesContainerFactory.java
index 205476467..aba4e5985 100644
--- 
a/plugins/tiles/src/main/java/org/apache/struts2/tiles/StrutsTilesContainerFactory.java
+++ 
b/plugins/tiles/src/main/java/org/apache/struts2/tiles/StrutsTilesContainerFactory.java
@@ -25,11 +25,6 @@ import ognl.PropertyAccessor;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
 import org.apache.tiles.api.TilesContainer;
-import org.apache.tiles.request.ApplicationContext;
-import org.apache.tiles.request.ApplicationResource;
-import org.apache.tiles.request.Request;
-import org.apache.tiles.request.render.BasicRendererFactory;
-import org.apache.tiles.request.render.ChainedDelegateRenderer;
 import org.apache.tiles.core.definition.DefinitionsFactory;
 import 
org.apache.tiles.core.definition.pattern.DefinitionPatternMatcherFactory;
 import org.apache.tiles.core.definition.pattern.PatternDefinitionResolver;
@@ -57,6 +52,11 @@ import org.apache.tiles.ognl.PropertyAccessorDelegateFactory;
 import org.apache.tiles.ognl.ScopePropertyAccessor;
 import org.apache.tiles.ognl.TilesApplicationContextNestedObjectExtractor;
 import org.apache.tiles.ognl.TilesContextPropertyAccessorDelegateFactory;
+import org.apache.tiles.request.ApplicationContext;
+import org.apache.tiles.request.ApplicationResource;
+import org.apache.tiles.request.Request;
+import org.apache.tiles.request.render.BasicRendererFactory;
+import org.apache.tiles.request.render.ChainedDelegateRenderer;
 import org.apache.tiles.request.render.Renderer;
 
 import javax.el.ArrayELResolver;
@@ -69,6 +69,7 @@ import javax.el.ResourceBundleELResolver;
 import javax.servlet.jsp.JspFactory;
 import java.util.ArrayList;
 import java.util.Collection;
+import java.util.HashSet;
 import java.util.List;
 import java.util.Locale;
 import java.util.Map;
@@ -100,10 +101,20 @@ public class StrutsTilesContainerFactory extends 
BasicTilesContainerFactory {
 public static final String PATTERN_WILDCARD = "WILDCARD";
 public static final String PATTERN_REGEXP = "REGEXP";
 
+/**
+ * Default pattern to be used to collect Tiles definitions if user didn't 
configure any
+ * @deprecated use {@link #TILES_DEFAULT_PATTERNS} instead
+ */
+@Deprecated
+public static final String TILES_DEFAULT_PATTERN = 
"/WEB-INF/**/tiles*.xml,classpath*:META-INF/**/tiles*.xml";
+
 /**
  * Default pattern to be used to collect Tiles definitions if user didn't 
configure any
  */
-public static final String TILES_DEFAULT_PATTERN = "tiles*.xml";
+public static final Set TILES_DEFAULT_PATTERNS = new 
HashSet() {{
+add("/WEB-INF/**/tiles*.xml");
+add("classpath*:META-INF/**/tiles*.xml");
+}};
 
 /**
  * Supported expression languages
@@ -213,7 +224,7 @@ public class StrutsTilesContainerFactory extends 
BasicTilesContainerFactory {
 if (params.containsKey(DefinitionsFactory.DEFINITIONS_CONFIG)) {
 return 
TextParseUtil.commaDelimitedStringToSet(params.get(DefinitionsFactory.DEFINITIONS_CONFIG));
 }
-return TextParseUtil.commaDelimitedStringToSet(TILES_DEFAULT_PATTERN);
+return TILES_DEFAULT_PATTERNS;
 }
 
 protected ELAttributeEvaluator createELEvaluator(ApplicationContext 
applicationContext) {
diff --git 
a/plugins/tiles/src/test/java/org/apache/struts2/tiles/StrutsTilesContainerFactoryTest.java
 
b/plugins/tiles/src/test/java/org/apache/struts2/tiles/StrutsTilesContainerFactoryTest.java
new file mode 100644
index 0..f9859d34e
--- /dev/null
+++ 
b/plugins/tiles/src/test/java/org/apache/struts2/tiles/StrutsTilesContainerFactoryTest.java
@@ -0,0 +1,106 @@
+package org.apache.struts2.tiles;
+
+import org.apache.tiles.api.TilesContainer;
+import org.apache.tiles.core.evaluator.AttributeEvaluatorFactory;
+import org.apache.tiles.core.evaluator.impl.DirectAttributeEvaluator;
+import org.apache.tiles.core.locale.LocaleResolver;
+import org.apache.tiles.core.prepare.factory.BasicPreparerFactory;
+import org.apache.tiles.core.prepare.factory.PreparerFactory;
+import org.apache.tiles.ognl.OGNLAttributeEvaluator;
+import org.apache.tiles.request.ApplicationContext;
+import org.apache.tiles.request.ApplicationResource;
+import org.apache.tiles.requ

(struts) branch feature/WW-5402-autoload-classptah created (now a3fbb7ce8)

2024-03-24 Thread lukaszlenart
This is an automated email from the ASF dual-hosted git repository.

lukaszlenart pushed a change to branch feature/WW-5402-autoload-classptah
in repository https://gitbox.apache.org/repos/asf/struts.git


  at a3fbb7ce8 WW-5402 Auto loads Tiles definitions from classpath

This branch includes the following new commits:

 new a3fbb7ce8 WW-5402 Auto loads Tiles definitions from classpath

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.




(struts) branch feature/WW-5402-autoload-classptah updated (a3fbb7ce8 -> cce69476e)

2024-03-24 Thread lukaszlenart
This is an automated email from the ASF dual-hosted git repository.

lukaszlenart pushed a change to branch feature/WW-5402-autoload-classptah
in repository https://gitbox.apache.org/repos/asf/struts.git


 discard a3fbb7ce8 WW-5402 Auto loads Tiles definitions from classpath
 new cce69476e WW-5402 Auto loads Tiles definitions from classpath

This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version.  This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:

 * -- * -- B -- O -- O -- O   (a3fbb7ce8)
\
 N -- N -- N   refs/heads/feature/WW-5402-autoload-classptah 
(cce69476e)

You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.

Any revisions marked "omit" are not gone; other references still
refer to them.  Any revisions marked "discard" are gone forever.

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../struts2/tiles/StrutsTilesContainerFactoryTest.java   | 16 +++-
 1 file changed, 7 insertions(+), 9 deletions(-)



(struts) 01/01: WW-5402 Auto loads Tiles definitions from classpath

2024-03-24 Thread lukaszlenart
This is an automated email from the ASF dual-hosted git repository.

lukaszlenart pushed a commit to branch feature/WW-5402-autoload-classptah
in repository https://gitbox.apache.org/repos/asf/struts.git

commit cce69476e188d35163fa1a3e439311c341a56fff
Author: Lukasz Lenart 
AuthorDate: Sun Mar 24 11:29:12 2024 +0100

WW-5402 Auto loads Tiles definitions from classpath
---
 .../struts2/tiles/StrutsTilesContainerFactory.java |  25 +++--
 .../tiles/StrutsTilesContainerFactoryTest.java | 104 +
 2 files changed, 122 insertions(+), 7 deletions(-)

diff --git 
a/plugins/tiles/src/main/java/org/apache/struts2/tiles/StrutsTilesContainerFactory.java
 
b/plugins/tiles/src/main/java/org/apache/struts2/tiles/StrutsTilesContainerFactory.java
index 205476467..aba4e5985 100644
--- 
a/plugins/tiles/src/main/java/org/apache/struts2/tiles/StrutsTilesContainerFactory.java
+++ 
b/plugins/tiles/src/main/java/org/apache/struts2/tiles/StrutsTilesContainerFactory.java
@@ -25,11 +25,6 @@ import ognl.PropertyAccessor;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
 import org.apache.tiles.api.TilesContainer;
-import org.apache.tiles.request.ApplicationContext;
-import org.apache.tiles.request.ApplicationResource;
-import org.apache.tiles.request.Request;
-import org.apache.tiles.request.render.BasicRendererFactory;
-import org.apache.tiles.request.render.ChainedDelegateRenderer;
 import org.apache.tiles.core.definition.DefinitionsFactory;
 import 
org.apache.tiles.core.definition.pattern.DefinitionPatternMatcherFactory;
 import org.apache.tiles.core.definition.pattern.PatternDefinitionResolver;
@@ -57,6 +52,11 @@ import org.apache.tiles.ognl.PropertyAccessorDelegateFactory;
 import org.apache.tiles.ognl.ScopePropertyAccessor;
 import org.apache.tiles.ognl.TilesApplicationContextNestedObjectExtractor;
 import org.apache.tiles.ognl.TilesContextPropertyAccessorDelegateFactory;
+import org.apache.tiles.request.ApplicationContext;
+import org.apache.tiles.request.ApplicationResource;
+import org.apache.tiles.request.Request;
+import org.apache.tiles.request.render.BasicRendererFactory;
+import org.apache.tiles.request.render.ChainedDelegateRenderer;
 import org.apache.tiles.request.render.Renderer;
 
 import javax.el.ArrayELResolver;
@@ -69,6 +69,7 @@ import javax.el.ResourceBundleELResolver;
 import javax.servlet.jsp.JspFactory;
 import java.util.ArrayList;
 import java.util.Collection;
+import java.util.HashSet;
 import java.util.List;
 import java.util.Locale;
 import java.util.Map;
@@ -100,10 +101,20 @@ public class StrutsTilesContainerFactory extends 
BasicTilesContainerFactory {
 public static final String PATTERN_WILDCARD = "WILDCARD";
 public static final String PATTERN_REGEXP = "REGEXP";
 
+/**
+ * Default pattern to be used to collect Tiles definitions if user didn't 
configure any
+ * @deprecated use {@link #TILES_DEFAULT_PATTERNS} instead
+ */
+@Deprecated
+public static final String TILES_DEFAULT_PATTERN = 
"/WEB-INF/**/tiles*.xml,classpath*:META-INF/**/tiles*.xml";
+
 /**
  * Default pattern to be used to collect Tiles definitions if user didn't 
configure any
  */
-public static final String TILES_DEFAULT_PATTERN = "tiles*.xml";
+public static final Set TILES_DEFAULT_PATTERNS = new 
HashSet() {{
+add("/WEB-INF/**/tiles*.xml");
+add("classpath*:META-INF/**/tiles*.xml");
+}};
 
 /**
  * Supported expression languages
@@ -213,7 +224,7 @@ public class StrutsTilesContainerFactory extends 
BasicTilesContainerFactory {
 if (params.containsKey(DefinitionsFactory.DEFINITIONS_CONFIG)) {
 return 
TextParseUtil.commaDelimitedStringToSet(params.get(DefinitionsFactory.DEFINITIONS_CONFIG));
 }
-return TextParseUtil.commaDelimitedStringToSet(TILES_DEFAULT_PATTERN);
+return TILES_DEFAULT_PATTERNS;
 }
 
 protected ELAttributeEvaluator createELEvaluator(ApplicationContext 
applicationContext) {
diff --git 
a/plugins/tiles/src/test/java/org/apache/struts2/tiles/StrutsTilesContainerFactoryTest.java
 
b/plugins/tiles/src/test/java/org/apache/struts2/tiles/StrutsTilesContainerFactoryTest.java
new file mode 100644
index 0..017839bb7
--- /dev/null
+++ 
b/plugins/tiles/src/test/java/org/apache/struts2/tiles/StrutsTilesContainerFactoryTest.java
@@ -0,0 +1,104 @@
+package org.apache.struts2.tiles;
+
+import org.apache.tiles.api.TilesContainer;
+import org.apache.tiles.core.evaluator.AttributeEvaluatorFactory;
+import org.apache.tiles.core.evaluator.impl.DirectAttributeEvaluator;
+import org.apache.tiles.core.locale.LocaleResolver;
+import org.apache.tiles.core.prepare.factory.BasicPreparerFactory;
+import org.apache.tiles.core.prepare.factory.PreparerFactory;
+import org.apache.tiles.ognl.OGNLAttributeEvaluator;
+import org.apache.tiles.request.ApplicationContext;
+import org.apache.tiles.request.ApplicationResource;
+import org.apache.tiles.requ

(struts) 01/01: WW-5402 Auto loads Tiles definitions from classpath

2024-03-24 Thread lukaszlenart
This is an automated email from the ASF dual-hosted git repository.

lukaszlenart pushed a commit to branch feature/WW-5402-autoload-classptah
in repository https://gitbox.apache.org/repos/asf/struts.git

commit f958d87e8e1cb1d694b4dbdd92d775abfd5528c5
Author: Lukasz Lenart 
AuthorDate: Sun Mar 24 11:29:12 2024 +0100

WW-5402 Auto loads Tiles definitions from classpath
---
 .../struts2/tiles/StrutsTilesContainerFactory.java |  25 +++--
 .../tiles/StrutsTilesContainerFactoryTest.java | 122 +
 2 files changed, 140 insertions(+), 7 deletions(-)

diff --git 
a/plugins/tiles/src/main/java/org/apache/struts2/tiles/StrutsTilesContainerFactory.java
 
b/plugins/tiles/src/main/java/org/apache/struts2/tiles/StrutsTilesContainerFactory.java
index 205476467..aba4e5985 100644
--- 
a/plugins/tiles/src/main/java/org/apache/struts2/tiles/StrutsTilesContainerFactory.java
+++ 
b/plugins/tiles/src/main/java/org/apache/struts2/tiles/StrutsTilesContainerFactory.java
@@ -25,11 +25,6 @@ import ognl.PropertyAccessor;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
 import org.apache.tiles.api.TilesContainer;
-import org.apache.tiles.request.ApplicationContext;
-import org.apache.tiles.request.ApplicationResource;
-import org.apache.tiles.request.Request;
-import org.apache.tiles.request.render.BasicRendererFactory;
-import org.apache.tiles.request.render.ChainedDelegateRenderer;
 import org.apache.tiles.core.definition.DefinitionsFactory;
 import 
org.apache.tiles.core.definition.pattern.DefinitionPatternMatcherFactory;
 import org.apache.tiles.core.definition.pattern.PatternDefinitionResolver;
@@ -57,6 +52,11 @@ import org.apache.tiles.ognl.PropertyAccessorDelegateFactory;
 import org.apache.tiles.ognl.ScopePropertyAccessor;
 import org.apache.tiles.ognl.TilesApplicationContextNestedObjectExtractor;
 import org.apache.tiles.ognl.TilesContextPropertyAccessorDelegateFactory;
+import org.apache.tiles.request.ApplicationContext;
+import org.apache.tiles.request.ApplicationResource;
+import org.apache.tiles.request.Request;
+import org.apache.tiles.request.render.BasicRendererFactory;
+import org.apache.tiles.request.render.ChainedDelegateRenderer;
 import org.apache.tiles.request.render.Renderer;
 
 import javax.el.ArrayELResolver;
@@ -69,6 +69,7 @@ import javax.el.ResourceBundleELResolver;
 import javax.servlet.jsp.JspFactory;
 import java.util.ArrayList;
 import java.util.Collection;
+import java.util.HashSet;
 import java.util.List;
 import java.util.Locale;
 import java.util.Map;
@@ -100,10 +101,20 @@ public class StrutsTilesContainerFactory extends 
BasicTilesContainerFactory {
 public static final String PATTERN_WILDCARD = "WILDCARD";
 public static final String PATTERN_REGEXP = "REGEXP";
 
+/**
+ * Default pattern to be used to collect Tiles definitions if user didn't 
configure any
+ * @deprecated use {@link #TILES_DEFAULT_PATTERNS} instead
+ */
+@Deprecated
+public static final String TILES_DEFAULT_PATTERN = 
"/WEB-INF/**/tiles*.xml,classpath*:META-INF/**/tiles*.xml";
+
 /**
  * Default pattern to be used to collect Tiles definitions if user didn't 
configure any
  */
-public static final String TILES_DEFAULT_PATTERN = "tiles*.xml";
+public static final Set TILES_DEFAULT_PATTERNS = new 
HashSet() {{
+add("/WEB-INF/**/tiles*.xml");
+add("classpath*:META-INF/**/tiles*.xml");
+}};
 
 /**
  * Supported expression languages
@@ -213,7 +224,7 @@ public class StrutsTilesContainerFactory extends 
BasicTilesContainerFactory {
 if (params.containsKey(DefinitionsFactory.DEFINITIONS_CONFIG)) {
 return 
TextParseUtil.commaDelimitedStringToSet(params.get(DefinitionsFactory.DEFINITIONS_CONFIG));
 }
-return TextParseUtil.commaDelimitedStringToSet(TILES_DEFAULT_PATTERN);
+return TILES_DEFAULT_PATTERNS;
 }
 
 protected ELAttributeEvaluator createELEvaluator(ApplicationContext 
applicationContext) {
diff --git 
a/plugins/tiles/src/test/java/org/apache/struts2/tiles/StrutsTilesContainerFactoryTest.java
 
b/plugins/tiles/src/test/java/org/apache/struts2/tiles/StrutsTilesContainerFactoryTest.java
new file mode 100644
index 0..d8c7e6916
--- /dev/null
+++ 
b/plugins/tiles/src/test/java/org/apache/struts2/tiles/StrutsTilesContainerFactoryTest.java
@@ -0,0 +1,122 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License

(struts) branch feature/WW-5402-autoload-classptah updated (cce69476e -> f958d87e8)

2024-03-24 Thread lukaszlenart
This is an automated email from the ASF dual-hosted git repository.

lukaszlenart pushed a change to branch feature/WW-5402-autoload-classptah
in repository https://gitbox.apache.org/repos/asf/struts.git


 discard cce69476e WW-5402 Auto loads Tiles definitions from classpath
 new f958d87e8 WW-5402 Auto loads Tiles definitions from classpath

This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version.  This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:

 * -- * -- B -- O -- O -- O   (cce69476e)
\
 N -- N -- N   refs/heads/feature/WW-5402-autoload-classptah 
(f958d87e8)

You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.

Any revisions marked "omit" are not gone; other references still
refer to them.  Any revisions marked "discard" are gone forever.

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../struts2/tiles/StrutsTilesContainerFactoryTest.java | 18 ++
 1 file changed, 18 insertions(+)



(struts) 01/01: WW-5402 Auto loads Tiles definitions from classpath

2024-03-24 Thread lukaszlenart
This is an automated email from the ASF dual-hosted git repository.

lukaszlenart pushed a commit to branch feature/WW-5402-autoload-classptah
in repository https://gitbox.apache.org/repos/asf/struts.git

commit 0f4ef3c2f689e901955989913232ab47eae7b0cf
Author: Lukasz Lenart 
AuthorDate: Sun Mar 24 11:29:12 2024 +0100

WW-5402 Auto loads Tiles definitions from classpath
---
 plugins/tiles/pom.xml  |   3 -
 .../struts2/tiles/StrutsTilesContainerFactory.java |  25 +++--
 .../tiles/StrutsTilesContainerFactoryTest.java | 125 +
 3 files changed, 143 insertions(+), 10 deletions(-)

diff --git a/plugins/tiles/pom.xml b/plugins/tiles/pom.xml
index 440f6ee79..1a6caf2c1 100644
--- a/plugins/tiles/pom.xml
+++ b/plugins/tiles/pom.xml
@@ -35,9 +35,6 @@
 
 
 build-autotags
-
-true
-
 
 
 
diff --git 
a/plugins/tiles/src/main/java/org/apache/struts2/tiles/StrutsTilesContainerFactory.java
 
b/plugins/tiles/src/main/java/org/apache/struts2/tiles/StrutsTilesContainerFactory.java
index 205476467..aba4e5985 100644
--- 
a/plugins/tiles/src/main/java/org/apache/struts2/tiles/StrutsTilesContainerFactory.java
+++ 
b/plugins/tiles/src/main/java/org/apache/struts2/tiles/StrutsTilesContainerFactory.java
@@ -25,11 +25,6 @@ import ognl.PropertyAccessor;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
 import org.apache.tiles.api.TilesContainer;
-import org.apache.tiles.request.ApplicationContext;
-import org.apache.tiles.request.ApplicationResource;
-import org.apache.tiles.request.Request;
-import org.apache.tiles.request.render.BasicRendererFactory;
-import org.apache.tiles.request.render.ChainedDelegateRenderer;
 import org.apache.tiles.core.definition.DefinitionsFactory;
 import 
org.apache.tiles.core.definition.pattern.DefinitionPatternMatcherFactory;
 import org.apache.tiles.core.definition.pattern.PatternDefinitionResolver;
@@ -57,6 +52,11 @@ import org.apache.tiles.ognl.PropertyAccessorDelegateFactory;
 import org.apache.tiles.ognl.ScopePropertyAccessor;
 import org.apache.tiles.ognl.TilesApplicationContextNestedObjectExtractor;
 import org.apache.tiles.ognl.TilesContextPropertyAccessorDelegateFactory;
+import org.apache.tiles.request.ApplicationContext;
+import org.apache.tiles.request.ApplicationResource;
+import org.apache.tiles.request.Request;
+import org.apache.tiles.request.render.BasicRendererFactory;
+import org.apache.tiles.request.render.ChainedDelegateRenderer;
 import org.apache.tiles.request.render.Renderer;
 
 import javax.el.ArrayELResolver;
@@ -69,6 +69,7 @@ import javax.el.ResourceBundleELResolver;
 import javax.servlet.jsp.JspFactory;
 import java.util.ArrayList;
 import java.util.Collection;
+import java.util.HashSet;
 import java.util.List;
 import java.util.Locale;
 import java.util.Map;
@@ -100,10 +101,20 @@ public class StrutsTilesContainerFactory extends 
BasicTilesContainerFactory {
 public static final String PATTERN_WILDCARD = "WILDCARD";
 public static final String PATTERN_REGEXP = "REGEXP";
 
+/**
+ * Default pattern to be used to collect Tiles definitions if user didn't 
configure any
+ * @deprecated use {@link #TILES_DEFAULT_PATTERNS} instead
+ */
+@Deprecated
+public static final String TILES_DEFAULT_PATTERN = 
"/WEB-INF/**/tiles*.xml,classpath*:META-INF/**/tiles*.xml";
+
 /**
  * Default pattern to be used to collect Tiles definitions if user didn't 
configure any
  */
-public static final String TILES_DEFAULT_PATTERN = "tiles*.xml";
+public static final Set TILES_DEFAULT_PATTERNS = new 
HashSet() {{
+add("/WEB-INF/**/tiles*.xml");
+add("classpath*:META-INF/**/tiles*.xml");
+}};
 
 /**
  * Supported expression languages
@@ -213,7 +224,7 @@ public class StrutsTilesContainerFactory extends 
BasicTilesContainerFactory {
 if (params.containsKey(DefinitionsFactory.DEFINITIONS_CONFIG)) {
 return 
TextParseUtil.commaDelimitedStringToSet(params.get(DefinitionsFactory.DEFINITIONS_CONFIG));
 }
-return TextParseUtil.commaDelimitedStringToSet(TILES_DEFAULT_PATTERN);
+return TILES_DEFAULT_PATTERNS;
 }
 
 protected ELAttributeEvaluator createELEvaluator(ApplicationContext 
applicationContext) {
diff --git 
a/plugins/tiles/src/test/java/org/apache/struts2/tiles/StrutsTilesContainerFactoryTest.java
 
b/plugins/tiles/src/test/java/org/apache/struts2/tiles/StrutsTilesContainerFactoryTest.java
new file mode 100644
index 0..f40a17413
--- /dev/null
+++ 
b/plugins/tiles/src/test/java/org/apache/struts2/tiles/StrutsTilesContainerFactoryTest.java
@@ -0,0 +1,125 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright owne

(struts) branch feature/WW-5402-autoload-classptah updated (f958d87e8 -> 0f4ef3c2f)

2024-03-24 Thread lukaszlenart
This is an automated email from the ASF dual-hosted git repository.

lukaszlenart pushed a change to branch feature/WW-5402-autoload-classptah
in repository https://gitbox.apache.org/repos/asf/struts.git


 discard f958d87e8 WW-5402 Auto loads Tiles definitions from classpath
 new 0f4ef3c2f WW-5402 Auto loads Tiles definitions from classpath

This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version.  This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:

 * -- * -- B -- O -- O -- O   (f958d87e8)
\
 N -- N -- N   refs/heads/feature/WW-5402-autoload-classptah 
(0f4ef3c2f)

You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.

Any revisions marked "omit" are not gone; other references still
refer to them.  Any revisions marked "discard" are gone forever.

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 plugins/tiles/pom.xml  | 3 ---
 .../java/org/apache/struts2/tiles/StrutsTilesContainerFactoryTest.java | 3 +++
 2 files changed, 3 insertions(+), 3 deletions(-)



(struts-site) branch fix/file-upload-navigation updated (3dfff5792 -> bb53f2be5)

2024-03-24 Thread lukaszlenart
This is an automated email from the ASF dual-hosted git repository.

lukaszlenart pushed a change to branch fix/file-upload-navigation
in repository https://gitbox.apache.org/repos/asf/struts-site.git


 discard 3dfff5792 Adds example with supporting multiple file uploads
 new bb53f2be5 Adds example with supporting multiple file uploads

This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version.  This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:

 * -- * -- B -- O -- O -- O   (3dfff5792)
\
 N -- N -- N   refs/heads/fix/file-upload-navigation (bb53f2be5)

You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.

Any revisions marked "omit" are not gone; other references still
refer to them.  Any revisions marked "discard" are gone forever.

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 source/core-developers/action-file-upload-interceptor.md | 2 ++
 source/core-developers/file-upload-interceptor.md| 2 ++
 2 files changed, 4 insertions(+)



(struts-site) 01/01: Adds example with supporting multiple file uploads

2024-03-24 Thread lukaszlenart
This is an automated email from the ASF dual-hosted git repository.

lukaszlenart pushed a commit to branch fix/file-upload-navigation
in repository https://gitbox.apache.org/repos/asf/struts-site.git

commit bb53f2be57d8f6428f46e0b97b60ea83aadacd9d
Author: Lukasz Lenart 
AuthorDate: Sun Mar 17 17:44:44 2024 +0100

Adds example with supporting multiple file uploads
---
 .../action-file-upload-interceptor.md  |  2 +
 source/core-developers/action-file-upload.md   | 63 ++
 source/core-developers/file-upload-interceptor.md  |  2 +
 3 files changed, 56 insertions(+), 11 deletions(-)

diff --git a/source/core-developers/action-file-upload-interceptor.md 
b/source/core-developers/action-file-upload-interceptor.md
index 0096c07ae..aa3a89d73 100644
--- a/source/core-developers/action-file-upload-interceptor.md
+++ b/source/core-developers/action-file-upload-interceptor.md
@@ -51,6 +51,8 @@ and which are not.
 
 ## Examples
 
+See [this page](action-file-upload) for more examples and advanced 
configuration.
+
 **Example action mapping:**
 
 ```xml
diff --git a/source/core-developers/action-file-upload.md 
b/source/core-developers/action-file-upload.md
index 94f93950d..511cd440c 100644
--- a/source/core-developers/action-file-upload.md
+++ b/source/core-developers/action-file-upload.md
@@ -53,8 +53,8 @@ example:
 
 ```
 
-The actionFileUpload interceptor will use a dedicated interface 
`org.apache.struts2.action.UploadedFilesAware` to transfer
-information and content of uploaded file. Your action should implement the 
interface to receive the uploaded file:
+The **actionFileUpload** interceptor will use a dedicated interface 
`org.apache.struts2.action.UploadedFilesAware` 
+to transfer information and content of uploaded file. Your action should 
implement the interface to receive the uploaded file:
 
 ```java
 public class UploadAction extends ActionSupport implements UploadedFilesAware {
@@ -86,16 +86,13 @@ public class UploadAction extends ActionSupport implements 
UploadedFilesAware {
 As mentioned in the previous section one technique for uploading multiple 
files would be to simply have multiple form
 input elements of type file all with different names. This would require a 
number of setter methods that was equal to 3
 times the number of files being uploaded. Another option is to use Arrays or 
java.util.Lists. The following examples are
-taken from the Showcase example application that is part sample applications 
you can download
-at 
[http://struts.apache.org/download.cgi](http://struts.apache.org/download.cgi). 
For the Action mapping details
-see `struts-fileupload.xml` in the sample application download.
+taken from the Showcase example application that is part sample applications 
you can download at [download](http://struts.apache.org/download.cgi).
+For the Action mapping details  see `struts-fileupload.xml` in the sample 
application download.
 
-### Uploading Multiple Files using Arrays
-
-`multipleUploadUsingArray.jsp` Notice all file input types have the same name.
+`multipleUploadUsingList.jsp` Notice all file input types have the same name.
 
 ```html
-
+
 
 
 
@@ -103,8 +100,52 @@ see `struts-fileupload.xml` in the sample application 
download.
 
 ```
 
-The `org.apache.struts2.action.UploadedFilesAware` interface already supports 
uploading multiple files, you do not need 
-to  follow the below example.
+The `org.apache.struts2.action.UploadedFilesAware` interface already supports 
uploading multiple files:
+
+```java
+public class MultipleFileUploadUsingListAction extends ActionSupport 
implements UploadedFilesAware {
+
+private List uploads = new ArrayList<>();
+
+public List getUpload() {
+return this.uploads;
+}
+
+@Override
+public void withUploadedFiles(List uploads) {
+this.uploads = uploads;
+}
+
+private List getUploadFileNames() {
+return this.uploads.stream()
+.map(UploadedFile::getOriginalName)
+.collect(Collectors.toList());
+}
+
+private List getUploadContentTypes() {
+return this.uploads.stream()
+.map(UploadedFile::getContentType)
+.collect(Collectors.toList());
+}
+
+public String execute() throws Exception {
+System.out.println("files:");
+for (UploadedFile u : uploads) {
+System.out.println("*** " + u + "\t" + u.length());
+}
+System.out.println("filenames:");
+for (String n : getUploadFileNames()) {
+System.out.println("*** " + n);
+}
+System.out.println("content types:");
+for (String c : getUploadContentTypes()) {
+System.out.println("*** " + c);
+}
+System.out.println("\n\n");
+return SUCCESS;
+}
+}
+```
 
 ## Advanced Configuration
 
diff --git a/source/core-developers/file-upload-interceptor.md 
b/source/core-developers/file-upload-interceptor.md
ind