svn commit: r1439137 - /struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java
Author: lukaszlenart Date: Sun Jan 27 18:41:57 2013 New Revision: 1439137 URL: http://svn.apache.org/viewvc?rev=1439137view=rev Log: WW-3664 extends Dispatcher to create directory tree defined as struts.multipart.saveDir Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java?rev=1439137r1=1439136r2=1439137view=diff == --- struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java (original) +++ struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java Sun Jan 27 18:41:57 2013 @@ -681,21 +681,20 @@ public class Dispatcher { File multipartSaveDir = new File(saveDir); if (!multipartSaveDir.exists()) { -if (!multipartSaveDir.mkdir()) { +if (!multipartSaveDir.mkdirs()) { String logMessage; - try { -logMessage = Could not find create multipart save directory '+multipartSaveDir.getCanonicalPath()+'.; - } catch (IOException e) { -logMessage = Could not find create multipart save directory '+multipartSaveDir.toString()+'.; - } - if(devMode) { +try { +logMessage = Could not find create multipart save directory ' + multipartSaveDir.getCanonicalPath() + '.; +} catch (IOException e) { +logMessage = Could not find create multipart save directory ' + multipartSaveDir.toString() + '.; +} +if (devMode) { LOG.error(logMessage); - } - else { +} else { if (LOG.isWarnEnabled()) { LOG.warn(logMessage); } - } +} } } }
svn commit: r1439156 - in /struts/struts2/trunk/core/src/main: java/org/apache/struts2/StrutsConstants.java java/org/apache/struts2/dispatcher/Dispatcher.java resources/struts-default.xml
Author: lukaszlenart Date: Sun Jan 27 19:48:59 2013 New Revision: 1439156 URL: http://svn.apache.org/viewvc?rev=1439156view=rev Log: WW-3363 removes struts.multipart.handler and reference only to struts.multipart.parser to be consistent with the docs Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/StrutsConstants.java struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java struts/struts2/trunk/core/src/main/resources/struts-default.xml Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/StrutsConstants.java URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/StrutsConstants.java?rev=1439156r1=1439155r2=1439156view=diff == --- struts/struts2/trunk/core/src/main/java/org/apache/struts2/StrutsConstants.java (original) +++ struts/struts2/trunk/core/src/main/java/org/apache/struts2/StrutsConstants.java Sun Jan 27 19:48:59 2013 @@ -126,11 +126,6 @@ public final class StrutsConstants { public static final String STRUTS_MULTIPART_SAVEDIR = struts.multipart.saveDir; /** - * The name of the bean that will handle multipart requests - */ -public static final String STRUTS_MULTIPART_HANDLER = struts.multipart.handler; - -/** * The org.apache.struts2.dispatcher.multipart.MultiPartRequest parser implementation * for a multipart request (file upload) */ Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java?rev=1439156r1=1439155r2=1439156view=diff == --- struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java (original) +++ struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java Sun Jan 27 19:48:59 2013 @@ -139,9 +139,9 @@ public class Dispatcher { private String multipartSaveDir; /** - * Stores the value of StrutsConstants.STRUTS_MULTIPART_HANDLER setting + * Stores reference to instance of {@link MultiPartRequest} implementation defined by {@link StrutsConstants#STRUTS_MULTIPART_PARSER} */ -private String multipartHandlerName; +private MultiPartRequest multipartHandler; /** * Provide list of default configuration files. @@ -252,9 +252,9 @@ public class Dispatcher { multipartSaveDir = val; } -@Inject(StrutsConstants.STRUTS_MULTIPART_HANDLER) -public void setMultipartHandler(String val) { -multipartHandlerName = val; +@Inject +public void setMultipartHandler(MultiPartRequest multiPartRequest) { +this.multipartHandler = multiPartRequest; } @Inject @@ -774,19 +774,8 @@ public class Dispatcher { String content_type = request.getContentType(); if (content_type != null content_type.contains(multipart/form-data)) { -MultiPartRequest mpr = null; -//check for alternate implementations of MultiPartRequest -SetString multiNames = getContainer().getInstanceNames(MultiPartRequest.class); -for (String multiName : multiNames) { -if (multiName.equals(multipartHandlerName)) { -mpr = getContainer().getInstance(MultiPartRequest.class, multiName); -} -} -if (mpr == null ) { -mpr = getContainer().getInstance(MultiPartRequest.class); -} LocaleProvider provider = getContainer().getInstance(LocaleProvider.class); -request = new MultiPartRequestWrapper(mpr, request, getSaveDir(servletContext), provider); +request = new MultiPartRequestWrapper(multipartHandler, request, getSaveDir(servletContext), provider); } else { request = new StrutsRequestWrapper(request); } Modified: struts/struts2/trunk/core/src/main/resources/struts-default.xml URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/resources/struts-default.xml?rev=1439156r1=1439155r2=1439156view=diff == --- struts/struts2/trunk/core/src/main/resources/struts-default.xml (original) +++ struts/struts2/trunk/core/src/main/resources/struts-default.xml Sun Jan 27 19:48:59 2013 @@ -52,7 +52,7 @@ bean type=org.apache.struts2.dispatcher.multipart.MultiPartRequest name=struts class=org.apache.struts2.dispatcher.multipart.JakartaMultiPartRequest scope=default/ bean type=org.apache.struts2.dispatcher.multipart.MultiPartRequest name=jakarta class=org.apache.struts2.dispatcher.multipart.JakartaMultiPartRequest scope=default / -constant name=struts.multipart.handler value=jakarta / +
svn commit: r1439169 - in /struts/struts2/trunk/plugins/rest/src: main/java/org/apache/struts2/rest/DefaultHttpHeaders.java test/java/org/apache/struts2/rest/DefaultHttpHeadersTest.java
Author: lukaszlenart Date: Sun Jan 27 20:23:06 2013 New Revision: 1439169 URL: http://svn.apache.org/viewvc?rev=1439169view=rev Log: WW-3492 adds proper handling of If-Modified-Since header Modified: struts/struts2/trunk/plugins/rest/src/main/java/org/apache/struts2/rest/DefaultHttpHeaders.java struts/struts2/trunk/plugins/rest/src/test/java/org/apache/struts2/rest/DefaultHttpHeadersTest.java Modified: struts/struts2/trunk/plugins/rest/src/main/java/org/apache/struts2/rest/DefaultHttpHeaders.java URL: http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/rest/src/main/java/org/apache/struts2/rest/DefaultHttpHeaders.java?rev=1439169r1=1439168r2=1439169view=diff == --- struts/struts2/trunk/plugins/rest/src/main/java/org/apache/struts2/rest/DefaultHttpHeaders.java (original) +++ struts/struts2/trunk/plugins/rest/src/main/java/org/apache/struts2/rest/DefaultHttpHeaders.java Sun Jan 27 20:23:06 2013 @@ -21,40 +21,55 @@ package org.apache.struts2.rest; +import com.opensymphony.xwork2.util.logging.Logger; +import com.opensymphony.xwork2.util.logging.LoggerFactory; + import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import static javax.servlet.http.HttpServletResponse.*; +import java.text.ParseException; +import java.text.SimpleDateFormat; import java.util.Date; +import static javax.servlet.http.HttpServletResponse.SC_CREATED; +import static javax.servlet.http.HttpServletResponse.SC_NOT_MODIFIED; +import static javax.servlet.http.HttpServletResponse.SC_OK; + /** * Default implementation of rest info that uses fluent-style construction */ public class DefaultHttpHeaders implements HttpHeaders { -String resultCode; -int status = SC_OK; -Object etag; -Object locationId; -String location; -boolean disableCaching; -boolean noETag = false; -Date lastModified; - -public DefaultHttpHeaders() {} - + +private static final Logger LOG = LoggerFactory.getLogger(DefaultHttpHeaders.class); + +private static final String IF_MODIFIED_SINCE_DATE_FORMAT = EEE, dd MMM HH:mm:ss zzz; +private static final SimpleDateFormat IF_MODIFIED_SINCE_FORMAT = new SimpleDateFormat(IF_MODIFIED_SINCE_DATE_FORMAT); + +private String resultCode; +private int status = SC_OK; +private Object etag; +private Object locationId; +private String location; +private boolean disableCaching; +private boolean noETag = false; +private Date lastModified; + +public DefaultHttpHeaders() { +} + public DefaultHttpHeaders(String result) { resultCode = result; } - + public DefaultHttpHeaders renderResult(String code) { this.resultCode = code; return this; } - + public DefaultHttpHeaders withStatus(int code) { this.status = code; return this; } - + public DefaultHttpHeaders withETag(Object etag) { this.etag = etag; return this; @@ -64,27 +79,27 @@ public class DefaultHttpHeaders implemen this.noETag = true; return this; } - + public DefaultHttpHeaders setLocationId(Object id) { this.locationId = id; return this; } - + public DefaultHttpHeaders setLocation(String loc) { this.location = loc; return this; } - + public DefaultHttpHeaders lastModified(Date date) { this.lastModified = date; return this; } - + public DefaultHttpHeaders disableCaching() { this.disableCaching = true; return this; } - + /* (non-Javadoc) * @see org.apache.struts2.rest.HttpHeaders#apply(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, java.lang.Object) */ @@ -108,9 +123,9 @@ public class DefaultHttpHeaders implemen int lastSlash = url.lastIndexOf(/); int lastDot = url.lastIndexOf(.); if (lastDot lastSlash lastDot -1) { -url = url.substring(0, lastDot)+/+locationId+url.substring(lastDot); +url = url.substring(0, lastDot) + / + locationId + url.substring(lastDot); } else { -url += /+locationId; +url += / + locationId; } response.setHeader(Location, url); status = SC_CREATED; @@ -130,16 +145,13 @@ public class DefaultHttpHeaders implemen } String reqLastModified = request.getHeader(If-Modified-Since); -if (lastModified != null) { -if (String.valueOf(lastModified.getTime()).equals(reqLastModified)) { -lastModifiedNotChanged = true; -} - +if (lastModified != null reqLastModified != null) { +lastModifiedNotChanged = compareIfModifiedSince(reqLastModified);
svn commit: r1439171 - /struts/struts2/trunk/plugins/jasperreports/src/main/java/org/apache/struts2/views/jasperreports/ValueStackDataSource.java
Author: lukaszlenart Date: Sun Jan 27 20:27:04 2013 New Revision: 1439171 URL: http://svn.apache.org/viewvc?rev=1439171view=rev Log: WW-3698 wraps value with ValueStackDataSource if no already wrapped Modified: struts/struts2/trunk/plugins/jasperreports/src/main/java/org/apache/struts2/views/jasperreports/ValueStackDataSource.java Modified: struts/struts2/trunk/plugins/jasperreports/src/main/java/org/apache/struts2/views/jasperreports/ValueStackDataSource.java URL: http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/jasperreports/src/main/java/org/apache/struts2/views/jasperreports/ValueStackDataSource.java?rev=1439171r1=1439170r2=1439171view=diff == --- struts/struts2/trunk/plugins/jasperreports/src/main/java/org/apache/struts2/views/jasperreports/ValueStackDataSource.java (original) +++ struts/struts2/trunk/plugins/jasperreports/src/main/java/org/apache/struts2/views/jasperreports/ValueStackDataSource.java Sun Jan 27 20:27:04 2013 @@ -104,8 +104,8 @@ public class ValueStackDataSource implem LOG.debug(field: + field.getName() + / + value); } -if (MakeIterator.isIterable(value)) { -//return new ValueStackDataSource(this.valueStack, field.getName()); +if ((!field.getValueClass().isInstance(value) MakeIterator.isIterable(value))) { +// wrap value with ValueStackDataSource if not already wrapped return new ValueStackDataSource(this.valueStack, expression); } else { return value;
[CONF] Confluence Changes in the last 24 hours
This is a daily summary of all recent changes in Confluence. - Updated Spaces: - Apache Bigtop (https://cwiki.apache.org/confluence/display/BIGTOP) Pages - Building Bigtop on Ubuntu edited by jagatsi...@gmail.com (11:35 PM) https://cwiki.apache.org/confluence/display/BIGTOP/Building+Bigtop+on+Ubuntu Apache Camel (https://cwiki.apache.org/confluence/display/CAMEL) Pages - Tutorial-Example-ReportIncident edited by davsclaus (06:20 AM) https://cwiki.apache.org/confluence/display/CAMEL/Tutorial-Example-ReportIncident Tutorial-Example-ReportIncident-Part5 edited by davsclaus (06:18 AM) https://cwiki.apache.org/confluence/display/CAMEL/Tutorial-Example-ReportIncident-Part5 Tutorial-Example-ReportIncident-Part4 edited by davsclaus (06:17 AM) https://cwiki.apache.org/confluence/display/CAMEL/Tutorial-Example-ReportIncident-Part4 Tutorial-Example-ReportIncident-Part3 edited by davsclaus (06:16 AM) https://cwiki.apache.org/confluence/display/CAMEL/Tutorial-Example-ReportIncident-Part3 Tutorial-Example-ReportIncident-Part2 edited by davsclaus (06:16 AM) https://cwiki.apache.org/confluence/display/CAMEL/Tutorial-Example-ReportIncident-Part2 Tutorial-Example-ReportIncident-Part1 edited by davsclaus (06:15 AM) https://cwiki.apache.org/confluence/display/CAMEL/Tutorial-Example-ReportIncident-Part1 Tutorial-Example-ReportIncident-Part6 created by davsclaus (05:56 AM) https://cwiki.apache.org/confluence/display/CAMEL/Tutorial-Example-ReportIncident-Part6 Apache Cloudstack (https://cwiki.apache.org/confluence/display/CLOUDSTACK) Pages - Using Spring in CloudStack created by kelveny (06:14 PM) https://cwiki.apache.org/confluence/display/CLOUDSTACK/Using+Spring+in+CloudStack Apache CloudStack Weekly News - 28 January 2013 edited by jzb (04:45 PM) https://cwiki.apache.org/confluence/display/CLOUDSTACK/Apache+CloudStack+Weekly+News+-+28+January+2013 Hyper-V 2012 (3.0) Support edited by dlafferty (02:38 PM) https://cwiki.apache.org/confluence/display/CLOUDSTACK/Hyper-V+2012+%283.0%29+Support IPv6 support edited by yasker (02:25 AM) https://cwiki.apache.org/confluence/display/CLOUDSTACK/IPv6+support Drill Wiki (https://cwiki.apache.org/confluence/display/DRILL) Pages - Q1 Report in Progress created by ellen_friedman (03:50 PM) https://cwiki.apache.org/confluence/display/DRILL/Q1+Report+in+Progress Apache Drill Wiki edited by ted.dunn...@gmail.com (01:09 AM) https://cwiki.apache.org/confluence/display/DRILL/Apache+Drill+Wiki Apache Flex (https://cwiki.apache.org/confluence/display/FLEX) Pages - FlexJS Status edited by bigosma...@gmail.com (04:54 PM) https://cwiki.apache.org/confluence/display/FLEX/FlexJS+Status Simulating AS3 language features in JavaScript using AMD and ES5 edited by fr...@jangaroo.net (09:32 AM) https://cwiki.apache.org/confluence/display/FLEX/Simulating+AS3+language+features+in+JavaScript+using+AMD+and+ES5 Apache OpenOffice Community (https://cwiki.apache.org/confluence/display/OOOUSERS) Pages - AOO 3.4.1 Respin for additional languages edited by pescetti (10:49 AM) https://cwiki.apache.org/confluence/display/OOOUSERS/AOO+3.4.1+Respin+for+additional+languages Apache Tapestry (https://cwiki.apache.org/confluence/display/TAPESTRY) Pages - Logging in Tapestry edited by bobharner (10:45 AM) https://cwiki.apache.org/confluence/display/TAPESTRY/Logging+in+Tapestry Logging edited by bobharner (10:20 AM) https://cwiki.apache.org/confluence/display/TAPESTRY/Logging Change your notification preferences: https://cwiki.apache.org/confluence/users/viewnotifications.action
svn commit: r1439265 - /struts/struts2/trunk/plugins/rest/src/test/java/org/apache/struts2/rest/RestWorkflowInterceptorTest.java
Author: lukaszlenart Date: Mon Jan 28 06:14:30 2013 New Revision: 1439265 URL: http://svn.apache.org/viewvc?rev=1439265view=rev Log: WW-3492 uses getter instead direct field access Modified: struts/struts2/trunk/plugins/rest/src/test/java/org/apache/struts2/rest/RestWorkflowInterceptorTest.java Modified: struts/struts2/trunk/plugins/rest/src/test/java/org/apache/struts2/rest/RestWorkflowInterceptorTest.java URL: http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/rest/src/test/java/org/apache/struts2/rest/RestWorkflowInterceptorTest.java?rev=1439265r1=1439264r2=1439265view=diff == --- struts/struts2/trunk/plugins/rest/src/test/java/org/apache/struts2/rest/RestWorkflowInterceptorTest.java (original) +++ struts/struts2/trunk/plugins/rest/src/test/java/org/apache/struts2/rest/RestWorkflowInterceptorTest.java Mon Jan 28 06:14:30 2013 @@ -50,12 +50,12 @@ public class RestWorkflowInterceptorTest mockContentTypeHandlerManager.expectAndReturn(handleResult, new AnyConstraintMatcher() { public boolean matches(Object[] args) { DefaultHttpHeaders headers = (DefaultHttpHeaders) args[1]; -return 666 == headers.status; +return 666 == headers.getStatus(); } }, null); wf.setContentTypeHandlerManager((ContentTypeHandlerManager) mockContentTypeHandlerManager.proxy()); -ActionContext.setContext(new ActionContext(new HashMap() {{ +ActionContext.setContext(new ActionContext(new HashMapString, Object() {{ put(ServletActionContext.ACTION_MAPPING, new ActionMapping()); }})); wf.doIntercept((ActionInvocation) mockActionInvocation.proxy());