struts-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From lukaszlen...@apache.org
Subject [11/14] struts git commit: Extracts one base class
Date Fri, 25 Nov 2016 18:18:06 GMT
Extracts one base class


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

Branch: refs/heads/master
Commit: 4de8309d0aebb75d409119f2d4a6d06491dda2b4
Parents: de51e79
Author: Lukasz Lenart <lukaszlenart@apache.org>
Authored: Tue Nov 22 20:02:22 2016 +0100
Committer: Lukasz Lenart <lukaszlenart@apache.org>
Committed: Tue Nov 22 20:02:22 2016 +0100

----------------------------------------------------------------------
 .../multipart/AbstractMultiPartRequest.java     | 112 +++++++++++++++++++
 .../multipart/JakartaMultiPartRequest.java      |  45 +-------
 .../JakartaStreamMultiPartRequest.java          |  90 +--------------
 .../multipart/PellMultiPartRequest.java         |  27 +----
 4 files changed, 118 insertions(+), 156 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/struts/blob/4de8309d/core/src/main/java/org/apache/struts2/dispatcher/multipart/AbstractMultiPartRequest.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/dispatcher/multipart/AbstractMultiPartRequest.java
b/core/src/main/java/org/apache/struts2/dispatcher/multipart/AbstractMultiPartRequest.java
new file mode 100644
index 0000000..a8037ed
--- /dev/null
+++ b/core/src/main/java/org/apache/struts2/dispatcher/multipart/AbstractMultiPartRequest.java
@@ -0,0 +1,112 @@
+package org.apache.struts2.dispatcher.multipart;
+
+import com.opensymphony.xwork2.LocaleProvider;
+import com.opensymphony.xwork2.inject.Inject;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+import org.apache.struts2.StrutsConstants;
+import org.apache.struts2.dispatcher.LocalizedMessage;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Locale;
+
+/**
+ * Abstract class with some helper methods, it should be used
+ * when starting development of another implementation of {@link MultiPartRequest}
+ */
+public abstract class AbstractMultiPartRequest implements MultiPartRequest {
+
+    private static final Logger LOG = LogManager.getLogger(AbstractMultiPartRequest.class);
+
+    /**
+     * Defines the internal buffer size used during streaming operations.
+     */
+    public static final int BUFFER_SIZE = 10240;
+
+    /**
+     * Internal list of raised errors to be passed to the the Struts2 framework.
+     */
+    protected List<LocalizedMessage> errors = new ArrayList<>();
+
+    /**
+     * Specifies the maximum size of the entire request.
+     */
+    protected int maxSize;
+    protected boolean maxSizeProvided;
+
+    /**
+     * Specifies the buffer size to use during streaming.
+     */
+    protected int bufferSize = BUFFER_SIZE;
+
+    protected String defaultEncoding;
+
+    /**
+     * Localization to be used regarding errors.
+     */
+    protected Locale defaultLocale = Locale.ENGLISH;
+
+    /**
+     * @param bufferSize Sets the buffer size to be used.
+     */
+    @Inject(value = StrutsConstants.STRUTS_MULTIPART_BUFFERSIZE, required = false)
+    public void setBufferSize(String bufferSize) {
+        this.bufferSize = Integer.parseInt(bufferSize);
+    }
+
+    @Inject(StrutsConstants.STRUTS_I18N_ENCODING)
+    public void setDefaultEncoding(String enc) {
+        this.defaultEncoding = enc;
+    }
+
+    /**
+     * @param maxSize Injects the Struts multiple part maximum size.
+     */
+    @Inject(StrutsConstants.STRUTS_MULTIPART_MAXSIZE)
+    public void setMaxSize(String maxSize) {
+        this.maxSizeProvided = true;
+        this.maxSize = Integer.parseInt(maxSize);
+    }
+
+    /**
+     * @param provider Injects the Struts locale provider.
+     */
+    @Inject
+    public void setLocaleProvider(LocaleProvider provider) {
+        defaultLocale = provider.getLocale();
+    }
+
+    /**
+     * @param request Inspect the servlet request and set the locale if one wasn't provided
by
+     * the Struts2 framework.
+     */
+    protected void setLocale(HttpServletRequest request) {
+        if (defaultLocale == null) {
+            defaultLocale = request.getLocale();
+        }
+    }
+
+    /**
+     * Build error message.
+     *
+     * @param e the Throwable/Exception
+     * @param args arguments
+     * @return error message
+     */
+    protected LocalizedMessage buildErrorMessage(Throwable e, Object[] args) {
+        String errorKey = "struts.messages.upload.error." + e.getClass().getSimpleName();
+        LOG.debug("Preparing error message for key: [{}]", errorKey);
+
+        return new LocalizedMessage(this.getClass(), errorKey, e.getMessage(), args);
+    }
+
+    /* (non-Javadoc)
+     * @see org.apache.struts2.dispatcher.multipart.MultiPartRequest#getErrors()
+    */
+    public List<LocalizedMessage> getErrors() {
+        return errors;
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/struts/blob/4de8309d/core/src/main/java/org/apache/struts2/dispatcher/multipart/JakartaMultiPartRequest.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/dispatcher/multipart/JakartaMultiPartRequest.java
b/core/src/main/java/org/apache/struts2/dispatcher/multipart/JakartaMultiPartRequest.java
index 30ec33d..02de7f2 100644
--- a/core/src/main/java/org/apache/struts2/dispatcher/multipart/JakartaMultiPartRequest.java
+++ b/core/src/main/java/org/apache/struts2/dispatcher/multipart/JakartaMultiPartRequest.java
@@ -21,8 +21,6 @@
 
 package org.apache.struts2.dispatcher.multipart;
 
-import com.opensymphony.xwork2.LocaleProvider;
-import com.opensymphony.xwork2.inject.Inject;
 import com.opensymphony.xwork2.util.LocalizedTextUtil;
 import org.apache.commons.fileupload.FileItem;
 import org.apache.commons.fileupload.FileUploadBase;
@@ -33,7 +31,6 @@ import org.apache.commons.fileupload.disk.DiskFileItemFactory;
 import org.apache.commons.fileupload.servlet.ServletFileUpload;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
-import org.apache.struts2.StrutsConstants;
 import org.apache.struts2.dispatcher.LocalizedMessage;
 
 import javax.servlet.http.HttpServletRequest;
@@ -46,7 +43,7 @@ import java.util.*;
 /**
  * Multipart form data request adapter for Jakarta Commons Fileupload package.
  */
-public class JakartaMultiPartRequest implements MultiPartRequest {
+public class JakartaMultiPartRequest extends AbstractMultiPartRequest {
 
     static final Logger LOG = LogManager.getLogger(JakartaMultiPartRequest.class);
 
@@ -56,22 +53,6 @@ public class JakartaMultiPartRequest implements MultiPartRequest {
     // maps parameter name -> List of param values
     protected Map<String, List<String>> params = new HashMap<>();
 
-    // any errors while processing this request
-    protected List<LocalizedMessage> errors = new ArrayList<>();
-
-    protected long maxSize;
-    private Locale defaultLocale = Locale.ENGLISH;
-
-    @Inject(StrutsConstants.STRUTS_MULTIPART_MAXSIZE)
-    public void setMaxSize(String maxSize) {
-        this.maxSize = Long.parseLong(maxSize);
-    }
-
-    @Inject
-    public void setLocaleProvider(LocaleProvider provider) {
-        defaultLocale = provider.getLocale();
-    }
-
     /**
      * Creates a new request wrapper to handle multi-part data using methods adapted from
Jason Pell's
      * multipart classes (see class description).
@@ -86,15 +67,14 @@ public class JakartaMultiPartRequest implements MultiPartRequest {
             processUpload(request, saveDir);
         } catch (FileUploadException e) {
             LOG.warn("Request exceeded size limit!", e);
-            LocalizedMessage errorMessage = null;
-            
+            LocalizedMessage errorMessage;
             if(e instanceof FileUploadBase.SizeLimitExceededException) {
                 FileUploadBase.SizeLimitExceededException ex = (FileUploadBase.SizeLimitExceededException)
e;
                 errorMessage = buildErrorMessage(e, new Object[]{ex.getPermittedSize(), ex.getActualSize()});
             } else {
                 errorMessage = buildErrorMessage(e, new Object[]{});
             }
-            
+
             if (!errors.contains(errorMessage)) {
                 errors.add(errorMessage);
             }
@@ -107,18 +87,6 @@ public class JakartaMultiPartRequest implements MultiPartRequest {
         }
     }
 
-    protected void setLocale(HttpServletRequest request) {
-        if (defaultLocale == null) {
-            defaultLocale = request.getLocale();
-        }
-    }
-
-    protected LocalizedMessage buildErrorMessage(Throwable e, Object[] args) {
-        String errorKey = "struts.messages.upload.error." + e.getClass().getSimpleName();
-        LOG.debug("Preparing error message for key: [{}]", errorKey);
-        return new LocalizedMessage(this.getClass(), errorKey, e.getMessage(), args);
-    }
-
     protected void processUpload(HttpServletRequest request, String saveDir) throws FileUploadException,
UnsupportedEncodingException {
         for (FileItem item : parseRequest(request, saveDir)) {
             LOG.debug("Found file item: [{}]", item.getFieldName());
@@ -313,13 +281,6 @@ public class JakartaMultiPartRequest implements MultiPartRequest {
         return null;
     }
 
-    /* (non-Javadoc)
-     * @see org.apache.struts2.dispatcher.multipart.MultiPartRequest#getErrors()
-     */
-    public List<LocalizedMessage> getErrors() {
-        return errors;
-    }
-
     /**
      * Returns the canonical name of the given file.
      *

http://git-wip-us.apache.org/repos/asf/struts/blob/4de8309d/core/src/main/java/org/apache/struts2/dispatcher/multipart/JakartaStreamMultiPartRequest.java
----------------------------------------------------------------------
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 63760e6..11b5a0d 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
@@ -1,8 +1,5 @@
 package org.apache.struts2.dispatcher.multipart;
 
-import com.opensymphony.xwork2.LocaleProvider;
-import com.opensymphony.xwork2.inject.Inject;
-import com.opensymphony.xwork2.util.LocalizedTextUtil;
 import org.apache.commons.fileupload.FileItemIterator;
 import org.apache.commons.fileupload.FileItemStream;
 import org.apache.commons.fileupload.FileUploadBase;
@@ -11,7 +8,6 @@ import org.apache.commons.fileupload.servlet.ServletFileUpload;
 import org.apache.commons.fileupload.util.Streams;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
-import org.apache.struts2.StrutsConstants;
 import org.apache.struts2.dispatcher.LocalizedMessage;
 
 import javax.servlet.http.HttpServletRequest;
@@ -27,16 +23,11 @@ import java.util.*;
  * @author Chris Cranford
  * @since 2.3.18
  */
-public class JakartaStreamMultiPartRequest implements MultiPartRequest {
+public class JakartaStreamMultiPartRequest extends AbstractMultiPartRequest {
 
     static final Logger LOG = LogManager.getLogger(JakartaStreamMultiPartRequest.class);
 
     /**
-     * Defines the internal buffer size used during streaming operations.
-     */
-    private static final int BUFFER_SIZE = 10240;
-
-    /**
      * Map between file fields and file data.
      */
     private Map<String, List<FileInfo>> fileInfos = new HashMap<>();
@@ -46,55 +37,6 @@ public class JakartaStreamMultiPartRequest implements MultiPartRequest
{
      */
     private Map<String, List<String>> parameters = new HashMap<>();
 
-    /**
-     * Internal list of raised errors to be passed to the the Struts2 framework.
-     */
-    private List<LocalizedMessage> errors = new ArrayList<>();
-
-    /**
-     * Internal list of non-critical messages to be passed to the Struts2 framework.
-     */
-    private List<String> messages = new ArrayList<>();
-
-    /**
-     * Specifies the maximum size of the entire request.
-     */
-    private Long maxSize;
-
-    /**
-     * Specifies the buffer size to use during streaming.
-     */
-    private int bufferSize = BUFFER_SIZE;
-
-    /**
-     * Localization to be used regarding errors.
-     */
-    private Locale defaultLocale = Locale.ENGLISH;
-
-    /**
-     * @param maxSize Injects the Struts multiple part maximum size.
-     */
-    @Inject(StrutsConstants.STRUTS_MULTIPART_MAXSIZE)
-    public void setMaxSize(String maxSize) {
-        this.maxSize = Long.parseLong(maxSize);
-    }
-
-    /**
-     * @param bufferSize Sets the buffer size to be used.
-     */
-    @Inject(value = StrutsConstants.STRUTS_MULTIPART_BUFFERSIZE, required = false)
-    public void setBufferSize(String bufferSize) {
-        this.bufferSize = Integer.parseInt(bufferSize);
-    }
-
-    /**
-     * @param provider Injects the Struts locale provider.
-     */
-    @Inject
-    public void setLocaleProvider(LocaleProvider provider) {
-        defaultLocale = provider.getLocale();
-    }
-
     /* (non-Javadoc)
      * @see org.apache.struts2.dispatcher.multipart.MultiPartRequest#cleanUp()
      */
@@ -129,13 +71,6 @@ public class JakartaStreamMultiPartRequest implements MultiPartRequest
{
     }
 
     /* (non-Javadoc)
-     * @see org.apache.struts2.dispatcher.multipart.MultiPartRequest#getErrors()
-     */
-    public List<LocalizedMessage> getErrors() {
-        return errors;
-    }
-
-    /* (non-Javadoc)
      * @see org.apache.struts2.dispatcher.multipart.MultiPartRequest#getFile(java.lang.String)
      */
     public UploadedFile[] getFile(String fieldName) {
@@ -239,16 +174,6 @@ public class JakartaStreamMultiPartRequest implements MultiPartRequest
{
     }
 
     /**
-      * @param request Inspect the servlet request and set the locale if one wasn't provided
by
-     * the Struts2 framework.
-     */
-    protected void setLocale(HttpServletRequest request) {
-        if (defaultLocale == null) {
-            defaultLocale = request.getLocale();
-        }
-    }
-
-    /**
      * Processes the upload.
      *
      * @param request the servlet request
@@ -493,19 +418,6 @@ public class JakartaStreamMultiPartRequest implements MultiPartRequest
{
     }
 
     /**
-     * Build error message.
-     *
-     * @param e the Throwable/Exception
-     * @param args arguments
-     * @return error message
-     */
-    private LocalizedMessage buildErrorMessage(Throwable e, Object[] args) {
-        String errorKey = "struts.message.upload.error." + e.getClass().getSimpleName();
-        LOG.debug("Preparing error message for key: [{}]", errorKey);
-        return new LocalizedMessage(this.getClass(), errorKey, e.getMessage(), args);
-    }
-
-    /**
      * Internal data structure used to store a reference to information needed
      * to later pass post processing data to the <code>FileUploadInterceptor</code>.
      *

http://git-wip-us.apache.org/repos/asf/struts/blob/4de8309d/plugins/pell-multipart/src/main/java/org/apache/struts2/dispatcher/multipart/PellMultiPartRequest.java
----------------------------------------------------------------------
diff --git a/plugins/pell-multipart/src/main/java/org/apache/struts2/dispatcher/multipart/PellMultiPartRequest.java
b/plugins/pell-multipart/src/main/java/org/apache/struts2/dispatcher/multipart/PellMultiPartRequest.java
index 40526e0..18bce32 100644
--- a/plugins/pell-multipart/src/main/java/org/apache/struts2/dispatcher/multipart/PellMultiPartRequest.java
+++ b/plugins/pell-multipart/src/main/java/org/apache/struts2/dispatcher/multipart/PellMultiPartRequest.java
@@ -21,20 +21,15 @@
 
 package org.apache.struts2.dispatcher.multipart;
 
-import com.opensymphony.xwork2.inject.Inject;
 import com.opensymphony.xwork2.util.LocalizedTextUtil;
 import org.apache.logging.log4j.Logger;
 import org.apache.logging.log4j.LogManager;
 import http.utils.multipartrequest.ServletMultipartRequest;
-import org.apache.struts2.StrutsConstants;
-import org.apache.struts2.dispatcher.LocalizedMessage;
 
 import javax.servlet.http.HttpServletRequest;
-import java.io.File;
 import java.io.IOException;
 import java.io.UnsupportedEncodingException;
 import java.util.ArrayList;
-import java.util.Collections;
 import java.util.Enumeration;
 import java.util.List;
 import java.util.Locale;
@@ -44,26 +39,12 @@ import java.util.Locale;
  * Multipart form data request adapter for Jason Pell's multipart utils package.
  *
  */
-public class PellMultiPartRequest implements MultiPartRequest {
+public class PellMultiPartRequest extends AbstractMultiPartRequest {
 
     private static final Logger LOG = LogManager.getLogger(PellMultiPartRequest.class);
+
     private ServletMultipartRequest multi;
 
-    private String defaultEncoding;
-    private boolean maxSizeProvided;
-    private int maxSize;
-    
-    @Inject(StrutsConstants.STRUTS_I18N_ENCODING)
-    public void setDefaultEncoding(String enc) {
-        this.defaultEncoding = enc;
-    }
-    
-    @Inject(StrutsConstants.STRUTS_MULTIPART_MAXSIZE)
-    public void setMaxSize(String maxSize) {
-    	this.maxSizeProvided = true;
-        this.maxSize = Integer.parseInt(maxSize);
-    }
-    
     /**
      * Creates a new request wrapper to handle multi-part data using methods adapted from
Jason Pell's
      * multipart classes (see class description).
@@ -132,10 +113,6 @@ public class PellMultiPartRequest implements MultiPartRequest {
         return values.toArray(new String[values.size()]);
     }
 
-    public List<LocalizedMessage> getErrors() {
-        return Collections.emptyList();
-    }
-
     /**
      * Sets the encoding for the uploaded params.  This needs to be set if you are using
character sets other than
      * ASCII.


Mime
View raw message