(struts) branch master updated (f684effd9 -> f4501846c)

2023-12-15 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 f684effd9 Merge pull request #807 from apache/feature/http-params-case
 add 0bc0217b9 WW-5371 Implements action based file upload
 add dc4103bcb WW-5371 Uses the new upload mechanism in Showcase app
 add 3ce3f8264 WW-5371 Simplifies file upload logic and extracts constants
 add 3ef9ade89 WW-5371 Document how to use the new file upload logic
 add 64c13cc74 WW-5370 Simplifies error handling logic
 new f4501846c Merge pull request #808 from 
apache/feature/WW-5371-modern-upload

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:
 .../showcase/fileupload/FileUploadAction.java  | 122 ---
 .../webapp/WEB-INF/fileupload/upload-success.jsp   |   9 +-
 .../{SessionAware.java => UploadedFilesAware.java} |  22 +-
 .../multipart/JakartaMultiPartRequest.java |   6 +-
 .../multipart/JakartaStreamMultiPartRequest.java   |  42 +--
 .../dispatcher/multipart/StrutsUploadedFile.java   |  64 +++-
 .../struts2/dispatcher/multipart/UploadedFile.java |   8 +-
 .../interceptor/AbstractFileUploadInterceptor.java | 263 +++
 .../interceptor/ActionFileUploadInterceptor.java   | 191 +++
 .../struts2/interceptor/FileUploadInterceptor.java | 265 ++-
 .../apache/struts2/struts-messages_en.properties   |  27 +-
 core/src/main/resources/struts-default.xml |   9 +
 .../conversion/UploadedFileConverterTest.java  |  19 +-
 ...t.java => ActionFileUploadInterceptorTest.java} | 369 ++---
 .../interceptor/FileUploadInterceptorTest.java | 182 +-
 .../dispatcher/multipart/PellMultiPartRequest.java |  13 +-
 16 files changed, 976 insertions(+), 635 deletions(-)
 copy core/src/main/java/org/apache/struts2/action/{SessionAware.java => 
UploadedFilesAware.java} (57%)
 create mode 100644 
core/src/main/java/org/apache/struts2/interceptor/AbstractFileUploadInterceptor.java
 create mode 100644 
core/src/main/java/org/apache/struts2/interceptor/ActionFileUploadInterceptor.java
 copy 
core/src/test/java/org/apache/struts2/interceptor/{FileUploadInterceptorTest.java
 => ActionFileUploadInterceptorTest.java} (56%)



(struts) 01/01: Merge pull request #808 from apache/feature/WW-5371-modern-upload

2023-12-15 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 f4501846c6e0edb1318823e0368d048c1f41608a
Merge: f684effd9 64c13cc74
Author: Lukasz Lenart 
AuthorDate: Fri Dec 15 10:06:35 2023 +0100

Merge pull request #808 from apache/feature/WW-5371-modern-upload

[WW-5371] Modern upload

 .../showcase/fileupload/FileUploadAction.java  | 122 ---
 .../webapp/WEB-INF/fileupload/upload-success.jsp   |   9 +-
 .../UploadedFilesAware.java}   |  32 +-
 .../multipart/JakartaMultiPartRequest.java |   6 +-
 .../multipart/JakartaStreamMultiPartRequest.java   |  42 +--
 .../dispatcher/multipart/StrutsUploadedFile.java   |  64 +++-
 .../struts2/dispatcher/multipart/UploadedFile.java |   8 +-
 .../interceptor/AbstractFileUploadInterceptor.java | 263 +++
 .../interceptor/ActionFileUploadInterceptor.java   | 191 +++
 .../struts2/interceptor/FileUploadInterceptor.java | 265 ++-
 .../apache/struts2/struts-messages_en.properties   |  27 +-
 core/src/main/resources/struts-default.xml |   9 +
 .../conversion/UploadedFileConverterTest.java  |  19 +-
 ...t.java => ActionFileUploadInterceptorTest.java} | 369 ++---
 .../interceptor/FileUploadInterceptorTest.java | 182 +-
 .../dispatcher/multipart/PellMultiPartRequest.java |  13 +-
 16 files changed, 982 insertions(+), 639 deletions(-)



(struts) branch feature/WW-5371-modern-upload deleted (was 64c13cc74)

2023-12-15 Thread lukaszlenart
This is an automated email from the ASF dual-hosted git repository.

lukaszlenart pushed a change to branch feature/WW-5371-modern-upload
in repository https://gitbox.apache.org/repos/asf/struts.git


 was 64c13cc74 WW-5370 Simplifies error handling logic

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-5371-modern-upload updated: WW-5370 Simplifies error handling logic

2023-12-15 Thread lukaszlenart
This is an automated email from the ASF dual-hosted git repository.

lukaszlenart pushed a commit to branch feature/WW-5371-modern-upload
in repository https://gitbox.apache.org/repos/asf/struts.git


The following commit(s) were added to refs/heads/feature/WW-5371-modern-upload 
by this push:
 new 64c13cc74 WW-5370 Simplifies error handling logic
64c13cc74 is described below

commit 64c13cc746082de62d8c1fe95879491c6cb3094d
Author: Lukasz Lenart 
AuthorDate: Fri Dec 15 09:38:43 2023 +0100

WW-5370 Simplifies error handling logic
---
 .../multipart/JakartaStreamMultiPartRequest.java   |  1 -
 .../interceptor/AbstractFileUploadInterceptor.java | 74 --
 .../apache/struts2/struts-messages_en.properties   | 27 +++-
 .../ActionFileUploadInterceptorTest.java   | 12 ++--
 .../interceptor/FileUploadInterceptorTest.java | 12 ++--
 5 files changed, 83 insertions(+), 43 deletions(-)

diff --git 
a/core/src/main/java/org/apache/struts2/dispatcher/multipart/JakartaStreamMultiPartRequest.java
 
b/core/src/main/java/org/apache/struts2/dispatcher/multipart/JakartaStreamMultiPartRequest.java
index 763b5d634..428ae112f 100644
--- 
a/core/src/main/java/org/apache/struts2/dispatcher/multipart/JakartaStreamMultiPartRequest.java
+++ 
b/core/src/main/java/org/apache/struts2/dispatcher/multipart/JakartaStreamMultiPartRequest.java
@@ -44,7 +44,6 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.UUID;
-import java.util.stream.Collectors;
 
 /**
  * Multi-part form data request adapter for Jakarta Commons FileUpload package 
that
diff --git 
a/core/src/main/java/org/apache/struts2/interceptor/AbstractFileUploadInterceptor.java
 
b/core/src/main/java/org/apache/struts2/interceptor/AbstractFileUploadInterceptor.java
index c8da384d2..1113f4491 100644
--- 
a/core/src/main/java/org/apache/struts2/interceptor/AbstractFileUploadInterceptor.java
+++ 
b/core/src/main/java/org/apache/struts2/interceptor/AbstractFileUploadInterceptor.java
@@ -39,6 +39,7 @@ import java.util.Arrays;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.HashMap;
+import java.util.HashSet;
 import java.util.Set;
 
 public abstract class AbstractFileUploadInterceptor extends 
AbstractInterceptor {
@@ -53,9 +54,9 @@ public abstract class AbstractFileUploadInterceptor extends 
AbstractInterceptor
 public static final String 
STRUTS_MESSAGES_ERROR_CONTENT_TYPE_NOT_ALLOWED_KEY = 
"struts.messages.error.content.type.not.allowed";
 public static final String 
STRUTS_MESSAGES_ERROR_FILE_EXTENSION_NOT_ALLOWED_KEY = 
"struts.messages.error.file.extension.not.allowed";
 
-protected Long maximumSize;
-protected Set allowedTypesSet = Collections.emptySet();
-protected Set allowedExtensionsSet = Collections.emptySet();
+private Long maximumSize;
+private Set allowedTypesSet = Collections.emptySet();
+private Set allowedExtensionsSet = Collections.emptySet();
 
 private ContentTypeMatcher matcher;
 private Container container;
@@ -100,15 +101,15 @@ public abstract class AbstractFileUploadInterceptor 
extends AbstractInterceptor
 /**
  * Override for added functionality. Checks if the proposed file is 
acceptable based on contentType and size.
  *
- * @param action  - uploading action for message retrieval.
- * @param file- proposed upload file.
- * @param filename- name of the file.
- * @param contentType - contentType of the file.
- * @param inputName   - inputName of the file.
+ * @param action   - uploading action for message retrieval.
+ * @param file - proposed upload file.
+ * @param originalFilename - name of the file.
+ * @param contentType  - contentType of the file.
+ * @param inputName- inputName of the file.
  * @return true if the proposed file is acceptable by contentType and size.
  */
-protected boolean acceptFile(Object action, UploadedFile file, String 
filename, String contentType, String inputName) {
-boolean fileIsAcceptable = false;
+protected boolean acceptFile(Object action, UploadedFile file, String 
originalFilename, String contentType, String inputName) {
+Set errorMessages = new HashSet<>();
 
 ValidationAware validation = null;
 if (action instanceof ValidationAware) {
@@ -122,35 +123,42 @@ public abstract class AbstractFileUploadInterceptor 
extends AbstractInterceptor
 validation.addFieldError(inputName, errMsg);
 }
 LOG.warn(errMsg);
-} else if (file.getContent() == null) {
-String errMsg = getTextMessage(action, 
STRUTS_MESSAGES_ERROR_UPLOADING_KEY, new String[]{filename});
-if (validation != null) {
-validation.addFieldError(inputName, errMsg);
-}
+return false;
+}
+
+if (file.getContent() == null) {
+String