You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@struts.apache.org by lu...@apache.org on 2014/02/19 07:30:02 UTC
[01/14] git commit: Removes duplicated ServletContext passed via
parameters
Repository: struts
Updated Branches:
refs/heads/develop ad58c0eff -> c9d01e220
refs/heads/feature/WW-4292-dont-use-servletcontext 4da2ec65c -> c7ca91446
Removes duplicated ServletContext passed via parameters
Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/01d401ea
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/01d401ea
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/01d401ea
Branch: refs/heads/develop
Commit: 01d401ea1498671458ac59ef1e7f84961a5cdcc9
Parents: ad58c0e
Author: Lukasz Lenart <lu...@apache.org>
Authored: Mon Feb 17 09:29:40 2014 +0100
Committer: Lukasz Lenart <lu...@apache.org>
Committed: Mon Feb 17 09:29:40 2014 +0100
----------------------------------------------------------------------
.../apache/struts2/dispatcher/Dispatcher.java | 77 ++++++++++++++++----
1 file changed, 61 insertions(+), 16 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/struts/blob/01d401ea/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java b/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java
index 032df36..863c94b 100644
--- a/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java
+++ b/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java
@@ -495,6 +495,16 @@ public class Dispatcher {
}
/**
+ * @deprecated use version without ServletContext param
+ */
+ @Deprecated
+ public void serviceAction(HttpServletRequest request, HttpServletResponse response, ServletContext context,
+ ActionMapping mapping) throws ServletException {
+
+ serviceAction(request, response, mapping);
+ }
+
+ /**
* Load Action class for mapping and invoke the appropriate Action method, or go directly to the Result.
* <p/>
* This method first creates the action context from the given parameters,
@@ -509,12 +519,13 @@ public class Dispatcher {
* @param mapping the action mapping object
* @throws ServletException when an unknown error occurs (not a 404, but typically something that
* would end up as a 5xx by the servlet container)
- * @param context Our ServletContext object
+ *
+ * @since 2.3.17
*/
- public void serviceAction(HttpServletRequest request, HttpServletResponse response, ServletContext context,
- ActionMapping mapping) throws ServletException {
+ public void serviceAction(HttpServletRequest request, HttpServletResponse response, ActionMapping mapping)
+ throws ServletException {
- Map<String, Object> extraContext = createContextMap(request, response, mapping, context);
+ Map<String, Object> extraContext = createContextMap(request, response, mapping);
// If there was a previous value stack, then create a new copy and pass it in to be used by the new Action
ValueStack stack = (ValueStack) request.getAttribute(ServletActionContext.STRUTS_VALUESTACK_KEY);
@@ -587,16 +598,27 @@ public class Dispatcher {
}
/**
+ * @deprecated use version without servletContext param
+ */
+ @Deprecated
+ public Map<String,Object> createContextMap(HttpServletRequest request, HttpServletResponse response,
+ ActionMapping mapping, ServletContext context) {
+
+ return createContextMap(request, response, mapping);
+ }
+
+ /**
* Create a context map containing all the wrapped request objects
*
* @param request The servlet request
* @param response The servlet response
* @param mapping The action mapping
- * @param context The servlet context
* @return A map of context objects
+ *
+ * @since 2.3.17
*/
public Map<String,Object> createContextMap(HttpServletRequest request, HttpServletResponse response,
- ActionMapping mapping, ServletContext context) {
+ ActionMapping mapping) {
// request map wrapping the http request objects
Map requestMap = new RequestMap(request);
@@ -608,9 +630,9 @@ public class Dispatcher {
Map session = new SessionMap(request);
// application map wrapping the ServletContext
- Map application = new ApplicationMap(context);
+ Map application = new ApplicationMap(servletContext);
- Map<String,Object> extraContext = createContextMap(requestMap, params, session, application, request, response, context);
+ Map<String,Object> extraContext = createContextMap(requestMap, params, session, application, request, response);
if (mapping != null) {
extraContext.put(ServletActionContext.ACTION_MAPPING, mapping);
@@ -619,6 +641,21 @@ public class Dispatcher {
}
/**
+ * @deprecated use version without ServletContext param
+ */
+ @Deprecated
+ public HashMap<String,Object> createContextMap(Map requestMap,
+ Map parameterMap,
+ Map sessionMap,
+ Map applicationMap,
+ HttpServletRequest request,
+ HttpServletResponse response,
+ ServletContext servletContext) {
+
+ return createContextMap(requestMap, parameterMap, sessionMap, applicationMap, request, response);
+ }
+
+ /**
* Merge all application and servlet attributes into a single <tt>HashMap</tt> to represent the entire
* <tt>Action</tt> context.
*
@@ -628,16 +665,16 @@ public class Dispatcher {
* @param applicationMap a Map of all servlet context attributes.
* @param request the HttpServletRequest object.
* @param response the HttpServletResponse object.
- * @param servletContext the ServletContextmapping object.
* @return a HashMap representing the <tt>Action</tt> context.
+ *
+ * @since 2.3.17
*/
public HashMap<String,Object> createContextMap(Map requestMap,
Map parameterMap,
Map sessionMap,
Map applicationMap,
HttpServletRequest request,
- HttpServletResponse response,
- ServletContext servletContext) {
+ HttpServletResponse response) {
HashMap<String,Object> extraContext = new HashMap<String,Object>();
extraContext.put(ActionContext.PARAMETERS, new HashMap(parameterMap));
extraContext.put(ActionContext.SESSION, sessionMap);
@@ -672,9 +709,8 @@ public class Dispatcher {
* Return the path to save uploaded files to (this is configurable).
*
* @return the path to save uploaded files to
- * @param servletContext Our ServletContext
*/
- private String getSaveDir(ServletContext servletContext) {
+ private String getSaveDir() {
String saveDir = multipartSaveDir.trim();
if (saveDir.equals("")) {
@@ -763,6 +799,14 @@ public class Dispatcher {
}
/**
+ * @deprecated use version without ServletContext param
+ */
+ @Deprecated
+ public HttpServletRequest wrapRequest(HttpServletRequest request, ServletContext servletContext) throws IOException {
+ return wrapRequest(request);
+ }
+
+ /**
* Wrap and return the given request or return the original request object.
* </p>
* This method transparently handles multipart data as a wrapped class around the given request.
@@ -771,12 +815,13 @@ public class Dispatcher {
* flexible - look first to that object before overriding this method to handle multipart data.
*
* @param request the HttpServletRequest object.
- * @param servletContext Our ServletContext object
* @return a wrapped request or original request.
* @see org.apache.struts2.dispatcher.multipart.MultiPartRequestWrapper
* @throws java.io.IOException on any error.
+ *
+ * @since 2.3.17
*/
- public HttpServletRequest wrapRequest(HttpServletRequest request, ServletContext servletContext) throws IOException {
+ public HttpServletRequest wrapRequest(HttpServletRequest request) throws IOException {
// don't wrap more than once
if (request instanceof StrutsRequestWrapper) {
return request;
@@ -786,7 +831,7 @@ public class Dispatcher {
if (content_type != null && content_type.contains("multipart/form-data")) {
MultiPartRequest mpr = getMultiPartRequest();
LocaleProvider provider = getContainer().getInstance(LocaleProvider.class);
- request = new MultiPartRequestWrapper(mpr, request, getSaveDir(servletContext), provider);
+ request = new MultiPartRequestWrapper(mpr, request, getSaveDir(), provider);
} else {
request = new StrutsRequestWrapper(request, disableRequestAttributeValueStackLookup);
}
[10/14] git commit: Removes commented out if statment
Posted by lu...@apache.org.
Removes commented out if statment
Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/8be797fc
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/8be797fc
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/8be797fc
Branch: refs/heads/feature/WW-4292-dont-use-servletcontext
Commit: 8be797fccdd97cb53206892fe34862f3e7cf77d6
Parents: 4da2ec6
Author: Lukasz Lenart <lu...@apache.org>
Authored: Tue Feb 18 07:58:26 2014 +0100
Committer: Lukasz Lenart <lu...@apache.org>
Committed: Tue Feb 18 07:58:26 2014 +0100
----------------------------------------------------------------------
core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/struts/blob/8be797fc/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java b/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java
index 863c94b..d45f706 100644
--- a/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java
+++ b/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java
@@ -479,9 +479,7 @@ public class Dispatcher {
l.dispatcherInitialized(this);
}
}
- //if (servletContext != null) {
- errorHandler.init(servletContext);
- //}
+ errorHandler.init(servletContext);
} catch (Exception ex) {
if (LOG.isErrorEnabled())
[13/14] git commit: Increases ServletContext visibility
Posted by lu...@apache.org.
Increases ServletContext visibility
Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/c7ca9144
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/c7ca9144
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/c7ca9144
Branch: refs/heads/develop
Commit: c7ca91446b33689913aaab7243f1d6fc2c520220
Parents: 8be797f
Author: Lukasz Lenart <lu...@apache.org>
Authored: Tue Feb 18 08:52:39 2014 +0100
Committer: Lukasz Lenart <lu...@apache.org>
Committed: Tue Feb 18 08:52:39 2014 +0100
----------------------------------------------------------------------
.../main/java/org/apache/struts2/dispatcher/Dispatcher.java | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/struts/blob/c7ca9144/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java b/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java
index d45f706..2cdf260 100644
--- a/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java
+++ b/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java
@@ -186,12 +186,15 @@ public class Dispatcher {
dispatcherListeners.remove(listener);
}
- private ServletContext servletContext;
- private Map<String, String> initParams;
-
private ValueStackFactory valueStackFactory;
/**
+ * Keeps current reference to external world and must be protected to support class inheritance
+ */
+ protected ServletContext servletContext;
+ protected Map<String, String> initParams;
+
+ /**
* Create the Dispatcher instance for a given ServletContext and set of initialization parameters.
*
* @param servletContext Our servlet context
[14/14] git commit: WW-4292 Finishes refactoring Dispatcher to avoid
passing ServletContext as it is available via field reference
Posted by lu...@apache.org.
WW-4292 Finishes refactoring Dispatcher to avoid passing ServletContext
as it is available via field reference
Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/c9d01e22
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/c9d01e22
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/c9d01e22
Branch: refs/heads/develop
Commit: c9d01e220cb6c2102c741d1e89bca06f61233b32
Parents: ad58c0e c7ca914
Author: Lukasz Lenart <lu...@apache.org>
Authored: Wed Feb 19 07:23:37 2014 +0100
Committer: Lukasz Lenart <lu...@apache.org>
Committed: Wed Feb 19 07:23:37 2014 +0100
----------------------------------------------------------------------
.../struts2/components/ActionComponent.java | 41 ++-
.../apache/struts2/dispatcher/Dispatcher.java | 90 +++++--
.../struts2/dispatcher/FilterDispatcher.java | 4 +-
.../dispatcher/ng/ExecuteOperations.java | 10 +-
.../dispatcher/ng/PrepareOperations.java | 11 +-
.../ng/filter/StrutsExecuteFilter.java | 4 +-
.../filter/StrutsPrepareAndExecuteFilter.java | 4 +-
.../ng/filter/StrutsPrepareFilter.java | 2 +-
.../dispatcher/ng/listener/StrutsListener.java | 2 +-
.../dispatcher/ng/servlet/StrutsServlet.java | 4 +-
.../org/apache/struts2/views/jsp/TagUtils.java | 23 +-
.../dispatcher/FilterDispatcherTest.java | 4 +-
.../apache/struts2/dispatcher/FilterTest.java | 4 +-
.../views/freemarker/FreeMarkerResultTest.java | 204 +--------------
.../freemarker/FreemarkerResultMockedTest.java | 262 +++++++++++++++++++
.../struts2/views/jsp/AbstractTagTest.java | 3 +-
.../apache/struts2/views/jsp/URLTagTest.java | 3 +-
.../dojo/views/jsp/ui/AbstractTagTest.java | 3 +-
.../apache/struts2/validators/DWRValidator.java | 12 +-
.../apache/struts2/StrutsJUnit4TestCase.java | 2 +-
.../java/org/apache/struts2/StrutsTestCase.java | 2 +-
.../portlet/dispatcher/Jsr168Dispatcher.java | 7 +-
.../OldDecorator2NewStrutsDecorator.java | 2 +-
23 files changed, 411 insertions(+), 292 deletions(-)
----------------------------------------------------------------------
[11/14] git commit: Removes commented out if statment
Posted by lu...@apache.org.
Removes commented out if statment
Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/8be797fc
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/8be797fc
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/8be797fc
Branch: refs/heads/develop
Commit: 8be797fccdd97cb53206892fe34862f3e7cf77d6
Parents: 4da2ec6
Author: Lukasz Lenart <lu...@apache.org>
Authored: Tue Feb 18 07:58:26 2014 +0100
Committer: Lukasz Lenart <lu...@apache.org>
Committed: Tue Feb 18 07:58:26 2014 +0100
----------------------------------------------------------------------
core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/struts/blob/8be797fc/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java b/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java
index 863c94b..d45f706 100644
--- a/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java
+++ b/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java
@@ -479,9 +479,7 @@ public class Dispatcher {
l.dispatcherInitialized(this);
}
}
- //if (servletContext != null) {
- errorHandler.init(servletContext);
- //}
+ errorHandler.init(servletContext);
} catch (Exception ex) {
if (LOG.isErrorEnabled())
[02/14] git commit: Deprecates constructors based on ServletContext
and introduces new one instead
Posted by lu...@apache.org.
Deprecates constructors based on ServletContext and introduces new one instead
Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/8746fd1f
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/8746fd1f
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/8746fd1f
Branch: refs/heads/develop
Commit: 8746fd1f1cc2d4998663687115f5d04629f5786d
Parents: 01d401e
Author: Lukasz Lenart <lu...@apache.org>
Authored: Mon Feb 17 09:31:56 2014 +0100
Committer: Lukasz Lenart <lu...@apache.org>
Committed: Mon Feb 17 09:31:56 2014 +0100
----------------------------------------------------------------------
.../apache/struts2/dispatcher/ng/ExecuteOperations.java | 10 +++++++---
.../apache/struts2/dispatcher/ng/PrepareOperations.java | 11 +++++++----
2 files changed, 14 insertions(+), 7 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/struts/blob/8746fd1f/core/src/main/java/org/apache/struts2/dispatcher/ng/ExecuteOperations.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/dispatcher/ng/ExecuteOperations.java b/core/src/main/java/org/apache/struts2/dispatcher/ng/ExecuteOperations.java
index 7ca3d6a..0c94249 100644
--- a/core/src/main/java/org/apache/struts2/dispatcher/ng/ExecuteOperations.java
+++ b/core/src/main/java/org/apache/struts2/dispatcher/ng/ExecuteOperations.java
@@ -35,12 +35,16 @@ import java.io.IOException;
* Contains execution operations for filters
*/
public class ExecuteOperations {
- private ServletContext servletContext;
+
private Dispatcher dispatcher;
+ @Deprecated
public ExecuteOperations(ServletContext servletContext, Dispatcher dispatcher) {
this.dispatcher = dispatcher;
- this.servletContext = servletContext;
+ }
+
+ public ExecuteOperations(Dispatcher dispatcher) {
+ this.dispatcher = dispatcher;
}
/**
@@ -74,6 +78,6 @@ public class ExecuteOperations {
* @throws ServletException
*/
public void executeAction(HttpServletRequest request, HttpServletResponse response, ActionMapping mapping) throws ServletException {
- dispatcher.serviceAction(request, response, servletContext, mapping);
+ dispatcher.serviceAction(request, response, mapping);
}
}
http://git-wip-us.apache.org/repos/asf/struts/blob/8746fd1f/core/src/main/java/org/apache/struts2/dispatcher/ng/PrepareOperations.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/dispatcher/ng/PrepareOperations.java b/core/src/main/java/org/apache/struts2/dispatcher/ng/PrepareOperations.java
index a26a8b2..ccf21c7 100644
--- a/core/src/main/java/org/apache/struts2/dispatcher/ng/PrepareOperations.java
+++ b/core/src/main/java/org/apache/struts2/dispatcher/ng/PrepareOperations.java
@@ -47,15 +47,18 @@ public class PrepareOperations {
private static final Logger LOG = LoggerFactory.getLogger(PrepareOperations.class);
- private ServletContext servletContext;
private Dispatcher dispatcher;
private static final String STRUTS_ACTION_MAPPING_KEY = "struts.actionMapping";
public static final String CLEANUP_RECURSION_COUNTER = "__cleanup_recursion_counter";
private Logger log = LoggerFactory.getLogger(PrepareOperations.class);
+ @Deprecated
public PrepareOperations(ServletContext servletContext, Dispatcher dispatcher) {
this.dispatcher = dispatcher;
- this.servletContext = servletContext;
+ }
+
+ public PrepareOperations(Dispatcher dispatcher) {
+ this.dispatcher = dispatcher;
}
/**
@@ -75,7 +78,7 @@ public class PrepareOperations {
ctx = new ActionContext(new HashMap<String, Object>(oldContext.getContextMap()));
} else {
ValueStack stack = dispatcher.getContainer().getInstance(ValueStackFactory.class).createValueStack();
- stack.getContext().putAll(dispatcher.createContextMap(request, response, null, servletContext));
+ stack.getContext().putAll(dispatcher.createContextMap(request, response, null));
ctx = new ActionContext(stack.getContext());
}
request.setAttribute(CLEANUP_RECURSION_COUNTER, counter);
@@ -131,7 +134,7 @@ public class PrepareOperations {
try {
// Wrap request first, just in case it is multipart/form-data
// parameters might not be accessible through before encoding (ww-1278)
- request = dispatcher.wrapRequest(request, servletContext);
+ request = dispatcher.wrapRequest(request);
} catch (IOException e) {
throw new ServletException("Could not wrap servlet request with MultipartRequestWrapper!", e);
}
[03/14] git commit: Uses new constructors of Prepare and Execution
without ServletContext
Posted by lu...@apache.org.
Uses new constructors of Prepare and Execution without ServletContext
Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/ba0eda0c
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/ba0eda0c
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/ba0eda0c
Branch: refs/heads/develop
Commit: ba0eda0c5469dabb4b48461a2a013397ee633302
Parents: 8746fd1
Author: Lukasz Lenart <lu...@apache.org>
Authored: Mon Feb 17 09:32:19 2014 +0100
Committer: Lukasz Lenart <lu...@apache.org>
Committed: Mon Feb 17 09:32:19 2014 +0100
----------------------------------------------------------------------
.../apache/struts2/dispatcher/ng/filter/StrutsExecuteFilter.java | 4 ++--
.../dispatcher/ng/filter/StrutsPrepareAndExecuteFilter.java | 4 ++--
.../apache/struts2/dispatcher/ng/filter/StrutsPrepareFilter.java | 2 +-
.../apache/struts2/dispatcher/ng/listener/StrutsListener.java | 2 +-
.../org/apache/struts2/dispatcher/ng/servlet/StrutsServlet.java | 4 ++--
5 files changed, 8 insertions(+), 8 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/struts/blob/ba0eda0c/core/src/main/java/org/apache/struts2/dispatcher/ng/filter/StrutsExecuteFilter.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/dispatcher/ng/filter/StrutsExecuteFilter.java b/core/src/main/java/org/apache/struts2/dispatcher/ng/filter/StrutsExecuteFilter.java
index bd522bb..7f8164f 100644
--- a/core/src/main/java/org/apache/struts2/dispatcher/ng/filter/StrutsExecuteFilter.java
+++ b/core/src/main/java/org/apache/struts2/dispatcher/ng/filter/StrutsExecuteFilter.java
@@ -57,8 +57,8 @@ public class StrutsExecuteFilter implements StrutsStatics, Filter {
Dispatcher dispatcher = init.findDispatcherOnThread();
init.initStaticContentLoader(new FilterHostConfig(filterConfig), dispatcher);
- prepare = new PrepareOperations(filterConfig.getServletContext(), dispatcher);
- execute = new ExecuteOperations(filterConfig.getServletContext(), dispatcher);
+ prepare = new PrepareOperations(dispatcher);
+ execute = new ExecuteOperations(dispatcher);
}
}
http://git-wip-us.apache.org/repos/asf/struts/blob/ba0eda0c/core/src/main/java/org/apache/struts2/dispatcher/ng/filter/StrutsPrepareAndExecuteFilter.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/dispatcher/ng/filter/StrutsPrepareAndExecuteFilter.java b/core/src/main/java/org/apache/struts2/dispatcher/ng/filter/StrutsPrepareAndExecuteFilter.java
index 1c3d3b4..970d8e7 100644
--- a/core/src/main/java/org/apache/struts2/dispatcher/ng/filter/StrutsPrepareAndExecuteFilter.java
+++ b/core/src/main/java/org/apache/struts2/dispatcher/ng/filter/StrutsPrepareAndExecuteFilter.java
@@ -57,8 +57,8 @@ public class StrutsPrepareAndExecuteFilter implements StrutsStatics, Filter {
dispatcher = init.initDispatcher(config);
init.initStaticContentLoader(config, dispatcher);
- prepare = new PrepareOperations(filterConfig.getServletContext(), dispatcher);
- execute = new ExecuteOperations(filterConfig.getServletContext(), dispatcher);
+ prepare = new PrepareOperations(dispatcher);
+ execute = new ExecuteOperations(dispatcher);
this.excludedPatterns = init.buildExcludedPatternsList(dispatcher);
postInit(dispatcher, filterConfig);
http://git-wip-us.apache.org/repos/asf/struts/blob/ba0eda0c/core/src/main/java/org/apache/struts2/dispatcher/ng/filter/StrutsPrepareFilter.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/dispatcher/ng/filter/StrutsPrepareFilter.java b/core/src/main/java/org/apache/struts2/dispatcher/ng/filter/StrutsPrepareFilter.java
index ea0e510..27ce17e 100644
--- a/core/src/main/java/org/apache/struts2/dispatcher/ng/filter/StrutsPrepareFilter.java
+++ b/core/src/main/java/org/apache/struts2/dispatcher/ng/filter/StrutsPrepareFilter.java
@@ -55,7 +55,7 @@ public class StrutsPrepareFilter implements StrutsStatics, Filter {
init.initLogging(config);
dispatcher = init.initDispatcher(config);
- prepare = new PrepareOperations(filterConfig.getServletContext(), dispatcher);
+ prepare = new PrepareOperations(dispatcher);
this.excludedPatterns = init.buildExcludedPatternsList(dispatcher);
postInit(dispatcher, filterConfig);
http://git-wip-us.apache.org/repos/asf/struts/blob/ba0eda0c/core/src/main/java/org/apache/struts2/dispatcher/ng/listener/StrutsListener.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/dispatcher/ng/listener/StrutsListener.java b/core/src/main/java/org/apache/struts2/dispatcher/ng/listener/StrutsListener.java
index 113d026..92c49ac 100644
--- a/core/src/main/java/org/apache/struts2/dispatcher/ng/listener/StrutsListener.java
+++ b/core/src/main/java/org/apache/struts2/dispatcher/ng/listener/StrutsListener.java
@@ -46,7 +46,7 @@ public class StrutsListener implements ServletContextListener {
dispatcher = init.initDispatcher(config);
init.initStaticContentLoader(config, dispatcher);
- prepare = new PrepareOperations(config.getServletContext(), dispatcher);
+ prepare = new PrepareOperations(dispatcher);
sce.getServletContext().setAttribute(StrutsStatics.SERVLET_DISPATCHER, dispatcher);
} finally {
if (dispatcher != null) {
http://git-wip-us.apache.org/repos/asf/struts/blob/ba0eda0c/core/src/main/java/org/apache/struts2/dispatcher/ng/servlet/StrutsServlet.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/dispatcher/ng/servlet/StrutsServlet.java b/core/src/main/java/org/apache/struts2/dispatcher/ng/servlet/StrutsServlet.java
index 9ea669f..19c8c73 100644
--- a/core/src/main/java/org/apache/struts2/dispatcher/ng/servlet/StrutsServlet.java
+++ b/core/src/main/java/org/apache/struts2/dispatcher/ng/servlet/StrutsServlet.java
@@ -54,8 +54,8 @@ public class StrutsServlet extends HttpServlet {
dispatcher = init.initDispatcher(config);
init.initStaticContentLoader(config, dispatcher);
- prepare = new PrepareOperations(filterConfig.getServletContext(), dispatcher);
- execute = new ExecuteOperations(filterConfig.getServletContext(), dispatcher);
+ prepare = new PrepareOperations(dispatcher);
+ execute = new ExecuteOperations(dispatcher);
} finally {
if (dispatcher != null) {
dispatcher.cleanUpAfterInit();
[04/14] git commit: Uses the new versions of methods without
ServletContext
Posted by lu...@apache.org.
Uses the new versions of methods without ServletContext
Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/a2e97a9c
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/a2e97a9c
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/a2e97a9c
Branch: refs/heads/develop
Commit: a2e97a9ca41aeb9b6c8be68744dccb0b8c67f81d
Parents: ba0eda0
Author: Lukasz Lenart <lu...@apache.org>
Authored: Mon Feb 17 09:32:42 2014 +0100
Committer: Lukasz Lenart <lu...@apache.org>
Committed: Mon Feb 17 09:32:42 2014 +0100
----------------------------------------------------------------------
.../java/org/apache/struts2/dispatcher/FilterDispatcher.java | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/struts/blob/a2e97a9c/core/src/main/java/org/apache/struts2/dispatcher/FilterDispatcher.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/dispatcher/FilterDispatcher.java b/core/src/main/java/org/apache/struts2/dispatcher/FilterDispatcher.java
index 970311c..22fc051 100644
--- a/core/src/main/java/org/apache/struts2/dispatcher/FilterDispatcher.java
+++ b/core/src/main/java/org/apache/struts2/dispatcher/FilterDispatcher.java
@@ -361,7 +361,7 @@ public class FilterDispatcher implements StrutsStatics, Filter {
try {
// Wrap request first, just in case it is multipart/form-data
// parameters might not be accessible through before encoding (ww-1278)
- request = dispatcher.wrapRequest(request, getServletContext());
+ request = dispatcher.wrapRequest(request);
} catch (IOException e) {
String message = "Could not wrap servlet request with MultipartRequestWrapper!";
log.error(message, e);
@@ -431,7 +431,7 @@ public class FilterDispatcher implements StrutsStatics, Filter {
return;
}
- dispatcher.serviceAction(request, response, servletContext, mapping);
+ dispatcher.serviceAction(request, response, mapping);
} finally {
dispatcher.cleanUpRequest(request);
[05/14] git commit: Uses the new versions of methods without
ServletContext
Posted by lu...@apache.org.
Uses the new versions of methods without ServletContext
Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/4a4d0416
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/4a4d0416
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/4a4d0416
Branch: refs/heads/develop
Commit: 4a4d04164a31dc5b905eca1f345c6d2a26472c30
Parents: a2e97a9
Author: Lukasz Lenart <lu...@apache.org>
Authored: Mon Feb 17 09:33:38 2014 +0100
Committer: Lukasz Lenart <lu...@apache.org>
Committed: Mon Feb 17 09:33:38 2014 +0100
----------------------------------------------------------------------
.../struts2/components/ActionComponent.java | 41 +++++++++-----------
.../org/apache/struts2/views/jsp/TagUtils.java | 23 +++++------
2 files changed, 28 insertions(+), 36 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/struts/blob/4a4d0416/core/src/main/java/org/apache/struts2/components/ActionComponent.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/components/ActionComponent.java b/core/src/main/java/org/apache/struts2/components/ActionComponent.java
index 5eb7035..f184454 100644
--- a/core/src/main/java/org/apache/struts2/components/ActionComponent.java
+++ b/core/src/main/java/org/apache/struts2/components/ActionComponent.java
@@ -21,17 +21,15 @@
package org.apache.struts2.components;
-import java.io.IOException;
-import java.io.Writer;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-
-import javax.servlet.ServletContext;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import javax.servlet.jsp.PageContext;
-
+import com.opensymphony.xwork2.ActionContext;
+import com.opensymphony.xwork2.ActionInvocation;
+import com.opensymphony.xwork2.ActionProxy;
+import com.opensymphony.xwork2.ActionProxyFactory;
+import com.opensymphony.xwork2.inject.Inject;
+import com.opensymphony.xwork2.util.ValueStack;
+import com.opensymphony.xwork2.util.ValueStackFactory;
+import com.opensymphony.xwork2.util.logging.Logger;
+import com.opensymphony.xwork2.util.logging.LoggerFactory;
import org.apache.struts2.ServletActionContext;
import org.apache.struts2.StrutsException;
import org.apache.struts2.StrutsStatics;
@@ -43,15 +41,14 @@ import org.apache.struts2.views.annotations.StrutsTag;
import org.apache.struts2.views.annotations.StrutsTagAttribute;
import org.apache.struts2.views.jsp.TagUtils;
-import com.opensymphony.xwork2.ActionContext;
-import com.opensymphony.xwork2.ActionProxy;
-import com.opensymphony.xwork2.ActionProxyFactory;
-import com.opensymphony.xwork2.ActionInvocation;
-import com.opensymphony.xwork2.inject.Inject;
-import com.opensymphony.xwork2.util.ValueStack;
-import com.opensymphony.xwork2.util.ValueStackFactory;
-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 javax.servlet.jsp.PageContext;
+import java.io.IOException;
+import java.io.Writer;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
/**
* <!-- START SNIPPET: javadoc -->
@@ -188,7 +185,6 @@ public class ActionComponent extends ContextBean {
Map newParams = createParametersForContext();
ActionContext ctx = new ActionContext(stack.getContext());
- ServletContext servletContext = (ServletContext) ctx.get(ServletActionContext.SERVLET_CONTEXT);
PageContext pageContext = (PageContext) ctx.get(ServletActionContext.PAGE_CONTEXT);
Map session = ctx.getSession();
Map application = ctx.getApplication();
@@ -199,8 +195,7 @@ public class ActionComponent extends ContextBean {
session,
application,
req,
- res,
- servletContext);
+ res);
ValueStack newStack = valueStackFactory.createValueStack(stack);
extraContext.put(ActionContext.VALUE_STACK, newStack);
http://git-wip-us.apache.org/repos/asf/struts/blob/4a4d0416/core/src/main/java/org/apache/struts2/views/jsp/TagUtils.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/views/jsp/TagUtils.java b/core/src/main/java/org/apache/struts2/views/jsp/TagUtils.java
index a4a2848..ab7abea 100644
--- a/core/src/main/java/org/apache/struts2/views/jsp/TagUtils.java
+++ b/core/src/main/java/org/apache/struts2/views/jsp/TagUtils.java
@@ -21,12 +21,11 @@
package org.apache.struts2.views.jsp;
-import java.util.Map;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import javax.servlet.jsp.PageContext;
-
+import com.opensymphony.xwork2.ActionContext;
+import com.opensymphony.xwork2.ActionInvocation;
+import com.opensymphony.xwork2.config.ConfigurationException;
+import com.opensymphony.xwork2.util.ValueStack;
+import com.opensymphony.xwork2.util.ValueStackFactory;
import org.apache.struts2.RequestUtils;
import org.apache.struts2.ServletActionContext;
import org.apache.struts2.dispatcher.ApplicationMap;
@@ -37,11 +36,10 @@ import org.apache.struts2.dispatcher.mapper.ActionMapper;
import org.apache.struts2.dispatcher.mapper.ActionMapping;
import org.apache.struts2.util.AttributeMap;
-import com.opensymphony.xwork2.ActionContext;
-import com.opensymphony.xwork2.ActionInvocation;
-import com.opensymphony.xwork2.config.ConfigurationException;
-import com.opensymphony.xwork2.util.ValueStack;
-import com.opensymphony.xwork2.util.ValueStackFactory;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.servlet.jsp.PageContext;
+import java.util.Map;
/**
@@ -67,8 +65,7 @@ public class TagUtils {
new SessionMap(req),
new ApplicationMap(pageContext.getServletContext()),
req,
- res,
- pageContext.getServletContext());
+ res);
extraContext.put(ServletActionContext.PAGE_CONTEXT, pageContext);
stack.getContext().putAll(extraContext);
req.setAttribute(ServletActionContext.STRUTS_VALUESTACK_KEY, stack);
[07/14] git commit: Updates tests to new version of methods without
ServletContext
Posted by lu...@apache.org.
Updates tests to new version of methods without ServletContext
Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/ddd27197
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/ddd27197
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/ddd27197
Branch: refs/heads/develop
Commit: ddd27197f5155f6089e2d5e3b82363f44752c57d
Parents: d4ddd74
Author: Lukasz Lenart <lu...@apache.org>
Authored: Mon Feb 17 09:34:10 2014 +0100
Committer: Lukasz Lenart <lu...@apache.org>
Committed: Mon Feb 17 09:34:10 2014 +0100
----------------------------------------------------------------------
.../org/apache/struts2/dojo/views/jsp/ui/AbstractTagTest.java | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/struts/blob/ddd27197/plugins/dojo/src/test/java/org/apache/struts2/dojo/views/jsp/ui/AbstractTagTest.java
----------------------------------------------------------------------
diff --git a/plugins/dojo/src/test/java/org/apache/struts2/dojo/views/jsp/ui/AbstractTagTest.java b/plugins/dojo/src/test/java/org/apache/struts2/dojo/views/jsp/ui/AbstractTagTest.java
index e20722f..a3bf453 100644
--- a/plugins/dojo/src/test/java/org/apache/struts2/dojo/views/jsp/ui/AbstractTagTest.java
+++ b/plugins/dojo/src/test/java/org/apache/struts2/dojo/views/jsp/ui/AbstractTagTest.java
@@ -119,8 +119,7 @@ public abstract class AbstractTagTest extends StrutsTestCase {
session,
new ApplicationMap(pageContext.getServletContext()),
request,
- response,
- pageContext.getServletContext());
+ response);
// let's not set the locale -- there is a test that checks if Dispatcher actually picks this up...
// ... but generally we want to just use no locale (let it stay system default)
extraContext.remove(ActionContext.LOCALE);
[12/14] git commit: Increases ServletContext visibility
Posted by lu...@apache.org.
Increases ServletContext visibility
Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/c7ca9144
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/c7ca9144
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/c7ca9144
Branch: refs/heads/feature/WW-4292-dont-use-servletcontext
Commit: c7ca91446b33689913aaab7243f1d6fc2c520220
Parents: 8be797f
Author: Lukasz Lenart <lu...@apache.org>
Authored: Tue Feb 18 08:52:39 2014 +0100
Committer: Lukasz Lenart <lu...@apache.org>
Committed: Tue Feb 18 08:52:39 2014 +0100
----------------------------------------------------------------------
.../main/java/org/apache/struts2/dispatcher/Dispatcher.java | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/struts/blob/c7ca9144/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java b/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java
index d45f706..2cdf260 100644
--- a/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java
+++ b/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java
@@ -186,12 +186,15 @@ public class Dispatcher {
dispatcherListeners.remove(listener);
}
- private ServletContext servletContext;
- private Map<String, String> initParams;
-
private ValueStackFactory valueStackFactory;
/**
+ * Keeps current reference to external world and must be protected to support class inheritance
+ */
+ protected ServletContext servletContext;
+ protected Map<String, String> initParams;
+
+ /**
* Create the Dispatcher instance for a given ServletContext and set of initialization parameters.
*
* @param servletContext Our servlet context
[06/14] git commit: Updates tests to new version of methods without
ServletContext
Posted by lu...@apache.org.
Updates tests to new version of methods without ServletContext
Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/d4ddd74e
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/d4ddd74e
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/d4ddd74e
Branch: refs/heads/develop
Commit: d4ddd74ebed3a68fab70ddb9bb86ce5efa9ea65b
Parents: 4a4d041
Author: Lukasz Lenart <lu...@apache.org>
Authored: Mon Feb 17 09:34:03 2014 +0100
Committer: Lukasz Lenart <lu...@apache.org>
Committed: Mon Feb 17 09:34:03 2014 +0100
----------------------------------------------------------------------
.../dispatcher/FilterDispatcherTest.java | 4 +-
.../apache/struts2/dispatcher/FilterTest.java | 4 +-
.../views/freemarker/FreeMarkerResultTest.java | 204 +--------------
.../freemarker/FreemarkerResultMockedTest.java | 262 +++++++++++++++++++
.../struts2/views/jsp/AbstractTagTest.java | 3 +-
.../apache/struts2/views/jsp/URLTagTest.java | 3 +-
6 files changed, 280 insertions(+), 200 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/struts/blob/d4ddd74e/core/src/test/java/org/apache/struts2/dispatcher/FilterDispatcherTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/struts2/dispatcher/FilterDispatcherTest.java b/core/src/test/java/org/apache/struts2/dispatcher/FilterDispatcherTest.java
index 2c2d747..4449e40 100644
--- a/core/src/test/java/org/apache/struts2/dispatcher/FilterDispatcherTest.java
+++ b/core/src/test/java/org/apache/struts2/dispatcher/FilterDispatcherTest.java
@@ -122,7 +122,7 @@ public class FilterDispatcherTest extends StrutsInternalTestCase {
return request;
}
- public void serviceAction(HttpServletRequest request, HttpServletResponse response, ServletContext context, ActionMapping mapping) throws ServletException {
+ public void serviceAction(HttpServletRequest request, HttpServletResponse response, ActionMapping mapping) throws ServletException {
serviceRequest = true;
}
@@ -152,7 +152,7 @@ public class FilterDispatcherTest extends StrutsInternalTestCase {
return request;
}
- public void serviceAction(HttpServletRequest request, HttpServletResponse response, ServletContext context, ActionMapping mapping) throws ServletException {
+ public void serviceAction(HttpServletRequest request, HttpServletResponse response, ActionMapping mapping) throws ServletException {
serviceRequest = true;
// if we set the chracter encoding AFTER we do wrap request, we will get
// a failing test
http://git-wip-us.apache.org/repos/asf/struts/blob/d4ddd74e/core/src/test/java/org/apache/struts2/dispatcher/FilterTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/struts2/dispatcher/FilterTest.java b/core/src/test/java/org/apache/struts2/dispatcher/FilterTest.java
index 04b5c94..12f9a64 100644
--- a/core/src/test/java/org/apache/struts2/dispatcher/FilterTest.java
+++ b/core/src/test/java/org/apache/struts2/dispatcher/FilterTest.java
@@ -313,10 +313,10 @@ public class FilterTest extends StrutsInternalTestCase {
}
@Override
- public void serviceAction(HttpServletRequest request, HttpServletResponse response, ServletContext context, ActionMapping mapping) throws ServletException {
+ public void serviceAction(HttpServletRequest request, HttpServletResponse response, ActionMapping mapping) throws ServletException {
service = true;
}
-
+
@Override
public void cleanup() {
cleanUp = true;
http://git-wip-us.apache.org/repos/asf/struts/blob/d4ddd74e/core/src/test/java/org/apache/struts2/views/freemarker/FreeMarkerResultTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/struts2/views/freemarker/FreeMarkerResultTest.java b/core/src/test/java/org/apache/struts2/views/freemarker/FreeMarkerResultTest.java
index 62ab0ee..d721826 100644
--- a/core/src/test/java/org/apache/struts2/views/freemarker/FreeMarkerResultTest.java
+++ b/core/src/test/java/org/apache/struts2/views/freemarker/FreeMarkerResultTest.java
@@ -43,12 +43,14 @@ import javax.servlet.ServletContext;
import java.io.File;
import java.io.PrintWriter;
import java.io.StringWriter;
+import java.net.MalformedURLException;
+import java.net.URISyntaxException;
+import java.util.HashMap;
import static org.apache.struts2.views.jsp.AbstractUITagTest.normalize;
/**
* Test case for FreeMarkerResult.
- *
*/
public class FreeMarkerResultTest extends StrutsInternalTestCase {
@@ -62,54 +64,6 @@ public class FreeMarkerResultTest extends StrutsInternalTestCase {
private FreemarkerManager mgr;
private MockHttpServletRequest request;
- public void testActionThatThrowsExceptionTag() throws Exception {
- //get fm config to use it in mock servlet context
- FreemarkerManager freemarkerManager = container.getInstance(FreemarkerManager.class);
- Configuration freemarkerConfig = freemarkerManager.getConfiguration(ServletActionContext.getServletContext());
- freemarkerConfig.setTemplateExceptionHandler(TemplateExceptionHandler.RETHROW_HANDLER);
-
- ServletContext servletContext = EasyMock.createNiceMock(ServletContext.class);
- File file = new File(FreeMarkerResultTest.class.getResource("callActionFreeMarker2.ftl").toURI());
- EasyMock.expect(servletContext.getRealPath("/tutorial/org/apache/struts2/views/freemarker/callActionFreeMarker.ftl")).andReturn(file.getAbsolutePath());
- file = new File(FreeMarkerResultTest.class.getResource("nested.ftl").toURI());
- EasyMock.expect(servletContext.getRealPath("/tutorial/org/apache/struts2/views/freemarker/nested.ftl")).andReturn(file.getAbsolutePath());
- EasyMock.expect(servletContext.getAttribute(FreemarkerManager.CONFIG_SERVLET_CONTEXT_KEY)).andReturn(freemarkerConfig).anyTimes();
- EasyMock.replay(servletContext);
-
- freemarkerConfig.setServletContextForTemplateLoading(servletContext, null);
- ServletActionContext.setServletContext(servletContext);
-
-
- request.setRequestURI("/tutorial/test2.action");
- ActionMapping mapping = container.getInstance(ActionMapper.class).getMapping(request, configurationManager);
- dispatcher.serviceAction(request, response, servletContext, mapping);
- assertEquals("beforenestedafter", stringWriter.toString());
- }
-
- public void testActionThatSucceedsTag() throws Exception {
- //get fm config to use it in mock servlet context
- FreemarkerManager freemarkerManager = container.getInstance(FreemarkerManager.class);
- Configuration freemarkerConfig = freemarkerManager.getConfiguration(ServletActionContext.getServletContext());
- freemarkerConfig.setTemplateExceptionHandler(TemplateExceptionHandler.RETHROW_HANDLER);
-
- ServletContext servletContext = EasyMock.createNiceMock(ServletContext.class);
- File file = new File(FreeMarkerResultTest.class.getResource("callActionFreeMarker2.ftl").toURI());
- EasyMock.expect(servletContext.getRealPath("/tutorial/org/apache/struts2/views/freemarker/callActionFreeMarker2.ftl")).andReturn(file.getAbsolutePath());
- file = new File(FreeMarkerResultTest.class.getResource("nested.ftl").toURI());
- EasyMock.expect(servletContext.getRealPath("/tutorial/org/apache/struts2/views/freemarker/nested.ftl")).andReturn(file.getAbsolutePath());
- EasyMock.expect(servletContext.getAttribute(FreemarkerManager.CONFIG_SERVLET_CONTEXT_KEY)).andReturn(freemarkerConfig).anyTimes();
- EasyMock.replay(servletContext);
-
- freemarkerConfig.setServletContextForTemplateLoading(servletContext, null);
- ServletActionContext.setServletContext(servletContext);
-
-
- request.setRequestURI("/tutorial/test5.action");
- ActionMapping mapping = container.getInstance(ActionMapper.class).getMapping(request, configurationManager);
- dispatcher.serviceAction(request, response, servletContext, mapping);
- assertEquals("beforenestedafter", stringWriter.toString());
- }
-
public void testWriteIfCompleted() throws Exception {
FreemarkerResult result = new FreemarkerResult();
result.setLocation("someFreeMarkerFile.ftl");
@@ -138,21 +92,21 @@ public class FreeMarkerResultTest extends StrutsInternalTestCase {
}
public void testContentTypeIsNotOverwritten() throws Exception {
- servletContext.setRealPath(new File(FreeMarkerResultTest.class.getResource(
- "nested.ftl").toURI()).toURL().getFile());
+ servletContext.setRealPath(new File(FreeMarkerResultTest.class.getResource(
+ "nested.ftl").toURI()).toURL().getFile());
FreemarkerResult result = new FreemarkerResult();
result.setLocation("nested.ftl");
result.setFreemarkerManager(mgr);
-
- response.setContentType("contenttype");
+
+ response.setContentType("contenttype");
result.execute(invocation);
assertEquals("contenttype", response.getContentType());
}
public void testDefaultContentType() throws Exception {
- servletContext.setRealPath(new File(FreeMarkerResultTest.class.getResource(
- "nested.ftl").toURI()).toURL().getFile());
+ servletContext.setRealPath(new File(FreeMarkerResultTest.class.getResource(
+ "nested.ftl").toURI()).toURL().getFile());
FreemarkerResult result = new FreemarkerResult();
result.setLocation("nested.ftl");
@@ -164,8 +118,8 @@ public class FreeMarkerResultTest extends StrutsInternalTestCase {
}
public void testContentTypeFromTemplate() throws Exception {
- servletContext.setRealPath(new File(FreeMarkerResultTest.class.getResource(
- "something.ftl").toURI()).toURL().getFile());
+ servletContext.setRealPath(new File(FreeMarkerResultTest.class.getResource(
+ "something.ftl").toURI()).toURL().getFile());
FreemarkerResult result = new FreemarkerResult();
result.setLocation("something.ftl");
@@ -176,140 +130,6 @@ public class FreeMarkerResultTest extends StrutsInternalTestCase {
assertEquals("text/xml", response.getContentType());
}
- public void testDynamicAttributesSupport() throws Exception {
- //get fm config to use it in mock servlet context
- FreemarkerManager freemarkerManager = container.getInstance(FreemarkerManager.class);
- Configuration freemarkerConfig = freemarkerManager.getConfiguration(ServletActionContext.getServletContext());
- freemarkerConfig.setTemplateExceptionHandler(TemplateExceptionHandler.RETHROW_HANDLER);
-
- ServletContext servletContext = EasyMock.createNiceMock(ServletContext.class);
-
- File file = new File(FreeMarkerResultTest.class.getResource("dynaAttributes.ftl").toURI());
- EasyMock.expect(servletContext.getRealPath("/tutorial/org/apache/struts2/views/freemarker/dynaAttributes.ftl")).andReturn(file.getAbsolutePath());
-
- file = new File(ClassLoaderUtil.getResource("template/simple/text.ftl", getClass()).toURI());
- EasyMock.expect(servletContext.getRealPath("/template/simple/text.ftl")).andReturn(file.getAbsolutePath());
-
- file = new File(ClassLoaderUtil.getResource("template/simple/css.ftl", getClass()).toURI());
- EasyMock.expect(servletContext.getRealPath("/template/simple/css.ftl")).andReturn(file.getAbsolutePath());
- EasyMock.expect(servletContext.getRealPath("/template/~~~simple/css.ftl")).andReturn(file.getAbsolutePath());
-
- file = new File(ClassLoaderUtil.getResource("template/simple/scripting-events.ftl", getClass()).toURI());
- EasyMock.expect(servletContext.getRealPath("/template/simple/scripting-events.ftl")).andReturn(file.getAbsolutePath());
- EasyMock.expect(servletContext.getRealPath("/template/~~~simple/scripting-events.ftl")).andReturn(file.getAbsolutePath());
-
- file = new File(ClassLoaderUtil.getResource("template/simple/common-attributes.ftl", getClass()).toURI());
- EasyMock.expect(servletContext.getRealPath("/template/simple/common-attributes.ftl")).andReturn(file.getAbsolutePath());
- EasyMock.expect(servletContext.getRealPath("/template/~~~simple/common-attributes.ftl")).andReturn(file.getAbsolutePath());
-
- file = new File(ClassLoaderUtil.getResource("template/simple/dynamic-attributes.ftl", getClass()).toURI());
- EasyMock.expect(servletContext.getRealPath("/template/simple/dynamic-attributes.ftl")).andReturn(file.getAbsolutePath());
- EasyMock.expect(servletContext.getRealPath("/template/~~~simple/dynamic-attributes.ftl")).andReturn(file.getAbsolutePath());
-
- EasyMock.expect(servletContext.getAttribute(FreemarkerManager.CONFIG_SERVLET_CONTEXT_KEY)).andReturn(freemarkerConfig).anyTimes();
- EasyMock.replay(servletContext);
-
- freemarkerConfig.setServletContextForTemplateLoading(servletContext, null);
- ServletActionContext.setServletContext(servletContext);
-
-
- request.setRequestURI("/tutorial/test6.action");
- ActionMapping mapping = container.getInstance(ActionMapper.class).getMapping(request, configurationManager);
- dispatcher.serviceAction(request, response, servletContext, mapping);
-
- // TODO lukaszlenart: remove expectedJDK15 and if() after switching to Java 1.6
- String expectedJDK15 =
- "<input type=\"text\" name=\"test\" value=\"\" id=\"test\" foo=\"bar\" placeholder=\"input\"/>"
- + "<input type=\"text\" name=\"test\" value=\"\" id=\"test\" foo=\"bar\" placeholder=\"input\"/>"
- + "<input type=\"text\" name=\"test\" value=\"\" id=\"test\" break=\"true\"/>";
- String expectedJDK16 =
- "<input type=\"text\" name=\"test\" value=\"\" id=\"test\" placeholder=\"input\" foo=\"bar\"/>"
- + "<input type=\"text\" name=\"test\" value=\"\" id=\"test\" placeholder=\"input\" foo=\"bar\"/>"
- + "<input type=\"text\" name=\"test\" value=\"\" id=\"test\" break=\"true\"/>"
- + "<input type=\"text\" name=\"required\" value=\"\" id=\"required\" required=\"true\"/>";
-
- String result = stringWriter.toString();
-
- if (result.contains("foo=\"bar\" placeholder=\"input\"")) {
- assertEquals(expectedJDK15, result);
- } else {
- assertEquals(expectedJDK16, result);
- }
- }
-
- public void testManualListInTemplate() throws Exception {
- FreemarkerManager freemarkerManager = container.getInstance(FreemarkerManager.class);
- Configuration freemarkerConfig = freemarkerManager.getConfiguration(ServletActionContext.getServletContext());
- freemarkerConfig.setTemplateExceptionHandler(TemplateExceptionHandler.RETHROW_HANDLER);
-
- ServletContext servletContext = EasyMock.createNiceMock(ServletContext.class);
-
- File file = new File(FreeMarkerResultTest.class.getResource("manual-list.ftl").toURI());
- EasyMock.expect(servletContext.getRealPath("/tutorial/org/apache/struts2/views/freemarker/manual-list.ftl")).andReturn(file.getAbsolutePath());
-
- file = new File(ClassLoaderUtil.getResource("template/simple/radiomap.ftl", getClass()).toURI());
- EasyMock.expect(servletContext.getRealPath("/template/simple/radiomap.ftl")).andReturn(file.getAbsolutePath());
-
- file = new File(ClassLoaderUtil.getResource("template/simple/css.ftl", getClass()).toURI());
- EasyMock.expect(servletContext.getRealPath("/template/simple/css.ftl")).andReturn(file.getAbsolutePath());
- EasyMock.expect(servletContext.getRealPath("/template/~~~simple/css.ftl")).andReturn(file.getAbsolutePath());
-
- file = new File(ClassLoaderUtil.getResource("template/simple/scripting-events.ftl", getClass()).toURI());
- EasyMock.expect(servletContext.getRealPath("/template/simple/scripting-events.ftl")).andReturn(file.getAbsolutePath());
- EasyMock.expect(servletContext.getRealPath("/template/~~~simple/scripting-events.ftl")).andReturn(file.getAbsolutePath());
-
- file = new File(ClassLoaderUtil.getResource("template/simple/common-attributes.ftl", getClass()).toURI());
- EasyMock.expect(servletContext.getRealPath("/template/simple/common-attributes.ftl")).andReturn(file.getAbsolutePath());
- EasyMock.expect(servletContext.getRealPath("/template/~~~simple/common-attributes.ftl")).andReturn(file.getAbsolutePath());
-
- file = new File(ClassLoaderUtil.getResource("template/simple/dynamic-attributes.ftl", getClass()).toURI());
- EasyMock.expect(servletContext.getRealPath("/template/simple/dynamic-attributes.ftl")).andReturn(file.getAbsolutePath());
- EasyMock.expect(servletContext.getRealPath("/template/~~~simple/dynamic-attributes.ftl")).andReturn(file.getAbsolutePath());
-
- EasyMock.expect(servletContext.getAttribute(FreemarkerManager.CONFIG_SERVLET_CONTEXT_KEY)).andReturn(freemarkerConfig).anyTimes();
- EasyMock.replay(servletContext);
-
- freemarkerConfig.setServletContextForTemplateLoading(servletContext, null);
- ServletActionContext.setServletContext(servletContext);
-
-
- request.setRequestURI("/tutorial/test7.action");
- ActionMapping mapping = container.getInstance(ActionMapper.class).getMapping(request, configurationManager);
- dispatcher.serviceAction(request, response, servletContext, mapping);
- String expected = "<input type=\"radio\" name=\"client\" id=\"client_foo\" value=\"foo\"/><label for=\"client_foo\">foo</label>\n"
- + "<input type=\"radio\" name=\"client\" id=\"client_bar\" value=\"bar\"/><label for=\"client_bar\">bar</label>\n"
- + "\n"
- + "<input type=\"radio\" name=\"car\" id=\"carford\" value=\"ford\"/><label for=\"carford\">Ford Motor Co</label>\n"
- + "<input type=\"radio\" name=\"car\" id=\"cartoyota\" value=\"toyota\"/><label for=\"cartoyota\">Toyota</label>\n";
- assertEquals(normalize(expected), normalize(stringWriter.toString()));
- }
-
- public void testDynamicAttributesInTheme() throws Exception {
- FreemarkerManager freemarkerManager = container.getInstance(FreemarkerManager.class);
- Configuration freemarkerConfig = freemarkerManager.getConfiguration(ServletActionContext.getServletContext());
- freemarkerConfig.setTemplateExceptionHandler(TemplateExceptionHandler.RETHROW_HANDLER);
-
- ServletContext servletContext = EasyMock.createNiceMock(ServletContext.class);
-
- File file = new File(FreeMarkerResultTest.class.getResource("customTextField.ftl").toURI());
- EasyMock.expect(servletContext.getRealPath("/tutorial/org/apache/struts2/views/freemarker/customTextField.ftl")).andReturn(file.getAbsolutePath());
-
- file = new File(ClassLoaderUtil.getResource("template/test/text.ftl", getClass()).toURI());
- EasyMock.expect(servletContext.getRealPath("/template/test/text.ftl")).andReturn(file.getAbsolutePath());
-
- EasyMock.expect(servletContext.getAttribute(FreemarkerManager.CONFIG_SERVLET_CONTEXT_KEY)).andReturn(freemarkerConfig).anyTimes();
- EasyMock.replay(servletContext);
-
- freemarkerConfig.setServletContextForTemplateLoading(servletContext, null);
- ServletActionContext.setServletContext(servletContext);
-
- request.setRequestURI("/tutorial/test8.action");
- ActionMapping mapping = container.getInstance(ActionMapper.class).getMapping(request, configurationManager);
- dispatcher.serviceAction(request, response, servletContext, mapping);
- String expected = "<input type=\"text\"autofocus=\"autofocus\"/>";
- assertEquals(expected, stringWriter.toString());
- }
-
protected void setUp() throws Exception {
super.setUp();
mgr = new FreemarkerManager();
@@ -345,7 +165,7 @@ public class FreeMarkerResultTest extends StrutsInternalTestCase {
invocation.setStack(stack);
invocation.setInvocationContext(context);
servletContext.setRealPath(new File(FreeMarkerResultTest.class.getResource(
- "someFreeMarkerFile.ftl").toURI()).toURL().getFile());
+ "someFreeMarkerFile.ftl").toURI()).toURL().getFile());
}
protected void tearDown() throws Exception {
http://git-wip-us.apache.org/repos/asf/struts/blob/d4ddd74e/core/src/test/java/org/apache/struts2/views/freemarker/FreemarkerResultMockedTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/struts2/views/freemarker/FreemarkerResultMockedTest.java b/core/src/test/java/org/apache/struts2/views/freemarker/FreemarkerResultMockedTest.java
new file mode 100644
index 0000000..9a9584a
--- /dev/null
+++ b/core/src/test/java/org/apache/struts2/views/freemarker/FreemarkerResultMockedTest.java
@@ -0,0 +1,262 @@
+package org.apache.struts2.views.freemarker;
+
+import com.opensymphony.xwork2.ActionContext;
+import com.opensymphony.xwork2.mock.MockActionInvocation;
+import com.opensymphony.xwork2.util.ClassLoaderUtil;
+import com.opensymphony.xwork2.util.ValueStack;
+import com.opensymphony.xwork2.util.fs.DefaultFileManagerFactory;
+import freemarker.template.Configuration;
+import freemarker.template.TemplateExceptionHandler;
+import org.apache.struts2.ServletActionContext;
+import org.apache.struts2.StrutsInternalTestCase;
+import org.apache.struts2.StrutsStatics;
+import org.apache.struts2.dispatcher.mapper.ActionMapper;
+import org.apache.struts2.dispatcher.mapper.ActionMapping;
+import org.apache.struts2.views.jsp.StrutsMockHttpServletResponse;
+import org.easymock.EasyMock;
+import org.springframework.mock.web.MockHttpServletRequest;
+
+import javax.servlet.ServletContext;
+import java.io.File;
+import java.io.PrintWriter;
+import java.io.StringWriter;
+import java.net.MalformedURLException;
+import java.net.URISyntaxException;
+
+import static org.apache.struts2.views.jsp.AbstractUITagTest.normalize;
+
+public class FreemarkerResultMockedTest extends StrutsInternalTestCase {
+
+ ValueStack stack;
+ MockActionInvocation invocation;
+ ActionContext context;
+ StrutsMockHttpServletResponse response;
+ PrintWriter writer;
+ StringWriter stringWriter;
+ ServletContext servletContext;
+ FreemarkerManager mgr;
+ MockHttpServletRequest request;
+
+ public void testActionThatThrowsExceptionTag() throws Exception {
+ //get fm config to use it in mock servlet context
+ FreemarkerManager freemarkerManager = container.getInstance(FreemarkerManager.class);
+ Configuration freemarkerConfig = freemarkerManager.getConfiguration(ServletActionContext.getServletContext());
+ freemarkerConfig.setTemplateExceptionHandler(TemplateExceptionHandler.RETHROW_HANDLER);
+
+ servletContext = EasyMock.createNiceMock(ServletContext.class);
+ File file = new File(FreeMarkerResultTest.class.getResource("callActionFreeMarker2.ftl").toURI());
+ EasyMock.expect(servletContext.getRealPath("/tutorial/org/apache/struts2/views/freemarker/callActionFreeMarker.ftl")).andReturn(file.getAbsolutePath());
+ file = new File(FreeMarkerResultTest.class.getResource("nested.ftl").toURI());
+ EasyMock.expect(servletContext.getRealPath("/tutorial/org/apache/struts2/views/freemarker/nested.ftl")).andReturn(file.getAbsolutePath());
+ EasyMock.expect(servletContext.getAttribute(FreemarkerManager.CONFIG_SERVLET_CONTEXT_KEY)).andReturn(freemarkerConfig).anyTimes();
+ EasyMock.replay(servletContext);
+
+ freemarkerConfig.setServletContextForTemplateLoading(servletContext, null);
+ ServletActionContext.setServletContext(servletContext);
+
+ init();
+
+ request.setRequestURI("/tutorial/test2.action");
+ ActionMapping mapping = container.getInstance(ActionMapper.class).getMapping(request, configurationManager);
+ dispatcher.serviceAction(request, response, mapping);
+ assertEquals("beforenestedafter", stringWriter.toString());
+ }
+
+ public void testActionThatSucceedsTag() throws Exception {
+ //get fm config to use it in mock servlet context
+ FreemarkerManager freemarkerManager = container.getInstance(FreemarkerManager.class);
+ Configuration freemarkerConfig = freemarkerManager.getConfiguration(ServletActionContext.getServletContext());
+ freemarkerConfig.setTemplateExceptionHandler(TemplateExceptionHandler.RETHROW_HANDLER);
+
+ servletContext = EasyMock.createNiceMock(ServletContext.class);
+ File file = new File(FreeMarkerResultTest.class.getResource("callActionFreeMarker2.ftl").toURI());
+ EasyMock.expect(servletContext.getRealPath("/tutorial/org/apache/struts2/views/freemarker/callActionFreeMarker2.ftl")).andReturn(file.getAbsolutePath());
+ file = new File(FreeMarkerResultTest.class.getResource("nested.ftl").toURI());
+ EasyMock.expect(servletContext.getRealPath("/tutorial/org/apache/struts2/views/freemarker/nested.ftl")).andReturn(file.getAbsolutePath());
+ EasyMock.expect(servletContext.getAttribute(FreemarkerManager.CONFIG_SERVLET_CONTEXT_KEY)).andReturn(freemarkerConfig).anyTimes();
+ EasyMock.replay(servletContext);
+
+ freemarkerConfig.setServletContextForTemplateLoading(servletContext, null);
+ ServletActionContext.setServletContext(servletContext);
+
+ init();
+
+ request.setRequestURI("/tutorial/test5.action");
+ ActionMapping mapping = container.getInstance(ActionMapper.class).getMapping(request, configurationManager);
+ dispatcher.serviceAction(request, response, mapping);
+ assertEquals("beforenestedafter", stringWriter.toString());
+ }
+
+ public void testDynamicAttributesSupport() throws Exception {
+ //get fm config to use it in mock servlet context
+ FreemarkerManager freemarkerManager = container.getInstance(FreemarkerManager.class);
+ Configuration freemarkerConfig = freemarkerManager.getConfiguration(ServletActionContext.getServletContext());
+ freemarkerConfig.setTemplateExceptionHandler(TemplateExceptionHandler.RETHROW_HANDLER);
+
+ servletContext = EasyMock.createNiceMock(ServletContext.class);
+
+ File file = new File(FreeMarkerResultTest.class.getResource("dynaAttributes.ftl").toURI());
+ EasyMock.expect(servletContext.getRealPath("/tutorial/org/apache/struts2/views/freemarker/dynaAttributes.ftl")).andReturn(file.getAbsolutePath());
+
+ file = new File(ClassLoaderUtil.getResource("template/simple/text.ftl", getClass()).toURI());
+ EasyMock.expect(servletContext.getRealPath("/template/simple/text.ftl")).andReturn(file.getAbsolutePath());
+
+ file = new File(ClassLoaderUtil.getResource("template/simple/css.ftl", getClass()).toURI());
+ EasyMock.expect(servletContext.getRealPath("/template/simple/css.ftl")).andReturn(file.getAbsolutePath());
+ EasyMock.expect(servletContext.getRealPath("/template/~~~simple/css.ftl")).andReturn(file.getAbsolutePath());
+
+ file = new File(ClassLoaderUtil.getResource("template/simple/scripting-events.ftl", getClass()).toURI());
+ EasyMock.expect(servletContext.getRealPath("/template/simple/scripting-events.ftl")).andReturn(file.getAbsolutePath());
+ EasyMock.expect(servletContext.getRealPath("/template/~~~simple/scripting-events.ftl")).andReturn(file.getAbsolutePath());
+
+ file = new File(ClassLoaderUtil.getResource("template/simple/common-attributes.ftl", getClass()).toURI());
+ EasyMock.expect(servletContext.getRealPath("/template/simple/common-attributes.ftl")).andReturn(file.getAbsolutePath());
+ EasyMock.expect(servletContext.getRealPath("/template/~~~simple/common-attributes.ftl")).andReturn(file.getAbsolutePath());
+
+ file = new File(ClassLoaderUtil.getResource("template/simple/dynamic-attributes.ftl", getClass()).toURI());
+ EasyMock.expect(servletContext.getRealPath("/template/simple/dynamic-attributes.ftl")).andReturn(file.getAbsolutePath());
+ EasyMock.expect(servletContext.getRealPath("/template/~~~simple/dynamic-attributes.ftl")).andReturn(file.getAbsolutePath());
+
+ EasyMock.expect(servletContext.getAttribute(FreemarkerManager.CONFIG_SERVLET_CONTEXT_KEY)).andReturn(freemarkerConfig).anyTimes();
+ EasyMock.replay(servletContext);
+
+ freemarkerConfig.setServletContextForTemplateLoading(servletContext, null);
+ ServletActionContext.setServletContext(servletContext);
+
+ init();
+
+ request.setRequestURI("/tutorial/test6.action");
+ ActionMapping mapping = container.getInstance(ActionMapper.class).getMapping(request, configurationManager);
+ dispatcher.serviceAction(request, response, mapping);
+
+ // TODO lukaszlenart: remove expectedJDK15 and if() after switching to Java 1.6
+ String expectedJDK15 =
+ "<input type=\"text\" name=\"test\" value=\"\" id=\"test\" foo=\"bar\" placeholder=\"input\"/>"
+ + "<input type=\"text\" name=\"test\" value=\"\" id=\"test\" foo=\"bar\" placeholder=\"input\"/>"
+ + "<input type=\"text\" name=\"test\" value=\"\" id=\"test\" break=\"true\"/>";
+ String expectedJDK16 =
+ "<input type=\"text\" name=\"test\" value=\"\" id=\"test\" placeholder=\"input\" foo=\"bar\"/>"
+ + "<input type=\"text\" name=\"test\" value=\"\" id=\"test\" placeholder=\"input\" foo=\"bar\"/>"
+ + "<input type=\"text\" name=\"test\" value=\"\" id=\"test\" break=\"true\"/>"
+ + "<input type=\"text\" name=\"required\" value=\"\" id=\"required\" required=\"true\"/>";
+
+ String result = stringWriter.toString();
+
+ if (result.contains("foo=\"bar\" placeholder=\"input\"")) {
+ assertEquals(expectedJDK15, result);
+ } else {
+ assertEquals(expectedJDK16, result);
+ }
+ }
+
+ public void testManualListInTemplate() throws Exception {
+ FreemarkerManager freemarkerManager = container.getInstance(FreemarkerManager.class);
+ Configuration freemarkerConfig = freemarkerManager.getConfiguration(ServletActionContext.getServletContext());
+ freemarkerConfig.setTemplateExceptionHandler(TemplateExceptionHandler.RETHROW_HANDLER);
+
+ servletContext = EasyMock.createNiceMock(ServletContext.class);
+
+ File file = new File(FreeMarkerResultTest.class.getResource("manual-list.ftl").toURI());
+ EasyMock.expect(servletContext.getRealPath("/tutorial/org/apache/struts2/views/freemarker/manual-list.ftl")).andReturn(file.getAbsolutePath());
+
+ file = new File(ClassLoaderUtil.getResource("template/simple/radiomap.ftl", getClass()).toURI());
+ EasyMock.expect(servletContext.getRealPath("/template/simple/radiomap.ftl")).andReturn(file.getAbsolutePath());
+
+ file = new File(ClassLoaderUtil.getResource("template/simple/css.ftl", getClass()).toURI());
+ EasyMock.expect(servletContext.getRealPath("/template/simple/css.ftl")).andReturn(file.getAbsolutePath());
+ EasyMock.expect(servletContext.getRealPath("/template/~~~simple/css.ftl")).andReturn(file.getAbsolutePath());
+
+ file = new File(ClassLoaderUtil.getResource("template/simple/scripting-events.ftl", getClass()).toURI());
+ EasyMock.expect(servletContext.getRealPath("/template/simple/scripting-events.ftl")).andReturn(file.getAbsolutePath());
+ EasyMock.expect(servletContext.getRealPath("/template/~~~simple/scripting-events.ftl")).andReturn(file.getAbsolutePath());
+
+ file = new File(ClassLoaderUtil.getResource("template/simple/common-attributes.ftl", getClass()).toURI());
+ EasyMock.expect(servletContext.getRealPath("/template/simple/common-attributes.ftl")).andReturn(file.getAbsolutePath());
+ EasyMock.expect(servletContext.getRealPath("/template/~~~simple/common-attributes.ftl")).andReturn(file.getAbsolutePath());
+
+ file = new File(ClassLoaderUtil.getResource("template/simple/dynamic-attributes.ftl", getClass()).toURI());
+ EasyMock.expect(servletContext.getRealPath("/template/simple/dynamic-attributes.ftl")).andReturn(file.getAbsolutePath());
+ EasyMock.expect(servletContext.getRealPath("/template/~~~simple/dynamic-attributes.ftl")).andReturn(file.getAbsolutePath());
+
+ EasyMock.expect(servletContext.getAttribute(FreemarkerManager.CONFIG_SERVLET_CONTEXT_KEY)).andReturn(freemarkerConfig).anyTimes();
+ EasyMock.replay(servletContext);
+
+ freemarkerConfig.setServletContextForTemplateLoading(servletContext, null);
+ ServletActionContext.setServletContext(servletContext);
+
+ init();
+
+ request.setRequestURI("/tutorial/test7.action");
+ ActionMapping mapping = container.getInstance(ActionMapper.class).getMapping(request, configurationManager);
+ dispatcher.serviceAction(request, response, mapping);
+ String expected = "<input type=\"radio\" name=\"client\" id=\"client_foo\" value=\"foo\"/><label for=\"client_foo\">foo</label>\n"
+ + "<input type=\"radio\" name=\"client\" id=\"client_bar\" value=\"bar\"/><label for=\"client_bar\">bar</label>\n"
+ + "\n"
+ + "<input type=\"radio\" name=\"car\" id=\"carford\" value=\"ford\"/><label for=\"carford\">Ford Motor Co</label>\n"
+ + "<input type=\"radio\" name=\"car\" id=\"cartoyota\" value=\"toyota\"/><label for=\"cartoyota\">Toyota</label>\n";
+ assertEquals(normalize(expected), normalize(stringWriter.toString()));
+ }
+
+ public void testDynamicAttributesInTheme() throws Exception {
+ FreemarkerManager freemarkerManager = container.getInstance(FreemarkerManager.class);
+ Configuration freemarkerConfig = freemarkerManager.getConfiguration(ServletActionContext.getServletContext());
+ freemarkerConfig.setTemplateExceptionHandler(TemplateExceptionHandler.RETHROW_HANDLER);
+
+ servletContext = EasyMock.createNiceMock(ServletContext.class);
+
+ File file = new File(FreeMarkerResultTest.class.getResource("customTextField.ftl").toURI());
+ EasyMock.expect(servletContext.getRealPath("/tutorial/org/apache/struts2/views/freemarker/customTextField.ftl")).andReturn(file.getAbsolutePath());
+
+ file = new File(ClassLoaderUtil.getResource("template/test/text.ftl", getClass()).toURI());
+ EasyMock.expect(servletContext.getRealPath("/template/test/text.ftl")).andReturn(file.getAbsolutePath());
+
+ EasyMock.expect(servletContext.getAttribute(FreemarkerManager.CONFIG_SERVLET_CONTEXT_KEY)).andReturn(freemarkerConfig).anyTimes();
+ EasyMock.replay(servletContext);
+
+ freemarkerConfig.setServletContextForTemplateLoading(servletContext, null);
+ ServletActionContext.setServletContext(servletContext);
+
+ init();
+
+ request.setRequestURI("/tutorial/test8.action");
+ ActionMapping mapping = container.getInstance(ActionMapper.class).getMapping(request, configurationManager);
+ dispatcher.serviceAction(request, response, mapping);
+ String expected = "<input type=\"text\"autofocus=\"autofocus\"/>";
+ assertEquals(expected, stringWriter.toString());
+ }
+
+ private void init() throws MalformedURLException, URISyntaxException {
+ mgr = new FreemarkerManager();
+ mgr.setEncoding("UTF-8");
+
+ DefaultFileManagerFactory factory = new DefaultFileManagerFactory();
+ container.inject(factory);
+ mgr.setFileManagerFactory(factory);
+
+ FreemarkerThemeTemplateLoader themeLoader = new FreemarkerThemeTemplateLoader();
+ container.inject(themeLoader);
+ mgr.setThemeTemplateLoader(themeLoader);
+
+ stringWriter = new StringWriter();
+ writer = new PrintWriter(stringWriter);
+ response = new StrutsMockHttpServletResponse();
+ response.setWriter(writer);
+ request = new MockHttpServletRequest();
+ stack = ActionContext.getContext().getValueStack();
+
+ context = new ActionContext(stack.getContext());
+ context.put(StrutsStatics.HTTP_RESPONSE, response);
+ context.put(StrutsStatics.HTTP_REQUEST, request);
+ context.put(StrutsStatics.SERVLET_CONTEXT, servletContext);
+
+ ServletActionContext.setServletContext(servletContext);
+ ServletActionContext.setRequest(request);
+ ServletActionContext.setResponse(response);
+ servletContext.setAttribute(FreemarkerManager.CONFIG_SERVLET_CONTEXT_KEY, null);
+
+ invocation = new MockActionInvocation();
+ invocation.setStack(stack);
+ invocation.setInvocationContext(context);
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/struts/blob/d4ddd74e/core/src/test/java/org/apache/struts2/views/jsp/AbstractTagTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/struts2/views/jsp/AbstractTagTest.java b/core/src/test/java/org/apache/struts2/views/jsp/AbstractTagTest.java
index 98eadb6..36b04fa 100644
--- a/core/src/test/java/org/apache/struts2/views/jsp/AbstractTagTest.java
+++ b/core/src/test/java/org/apache/struts2/views/jsp/AbstractTagTest.java
@@ -120,8 +120,7 @@ public abstract class AbstractTagTest extends StrutsInternalTestCase {
session,
new ApplicationMap(pageContext.getServletContext()),
request,
- response,
- pageContext.getServletContext());
+ response);
// let's not set the locale -- there is a test that checks if Dispatcher actually picks this up...
// ... but generally we want to just use no locale (let it stay system default)
extraContext.remove(ActionContext.LOCALE);
http://git-wip-us.apache.org/repos/asf/struts/blob/d4ddd74e/core/src/test/java/org/apache/struts2/views/jsp/URLTagTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/struts2/views/jsp/URLTagTest.java b/core/src/test/java/org/apache/struts2/views/jsp/URLTagTest.java
index 1a970ee..50bf576 100644
--- a/core/src/test/java/org/apache/struts2/views/jsp/URLTagTest.java
+++ b/core/src/test/java/org/apache/struts2/views/jsp/URLTagTest.java
@@ -555,8 +555,7 @@ public class URLTagTest extends AbstractUITagTest {
session,
new ApplicationMap(pageContext.getServletContext()),
request,
- response,
- pageContext.getServletContext());
+ response);
// let's not set the locale -- there is a test that checks if Dispatcher actually picks this up...
// ... but generally we want to just use no locale (let it stay system default)
extraContext.remove(ActionContext.LOCALE);
[08/14] git commit: Updates tests to new version of methods without
ServletContext
Posted by lu...@apache.org.
Updates tests to new version of methods without ServletContext
Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/9ff04d17
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/9ff04d17
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/9ff04d17
Branch: refs/heads/develop
Commit: 9ff04d17a5edfeb9805d1485b29eda8d0dfa3ce8
Parents: ddd2719
Author: Lukasz Lenart <lu...@apache.org>
Authored: Mon Feb 17 09:34:47 2014 +0100
Committer: Lukasz Lenart <lu...@apache.org>
Committed: Mon Feb 17 09:34:47 2014 +0100
----------------------------------------------------------------------
.../src/main/java/org/apache/struts2/StrutsJUnit4TestCase.java | 2 +-
plugins/junit/src/main/java/org/apache/struts2/StrutsTestCase.java | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/struts/blob/9ff04d17/plugins/junit/src/main/java/org/apache/struts2/StrutsJUnit4TestCase.java
----------------------------------------------------------------------
diff --git a/plugins/junit/src/main/java/org/apache/struts2/StrutsJUnit4TestCase.java b/plugins/junit/src/main/java/org/apache/struts2/StrutsJUnit4TestCase.java
index 02fd69b..7bf18b7 100644
--- a/plugins/junit/src/main/java/org/apache/struts2/StrutsJUnit4TestCase.java
+++ b/plugins/junit/src/main/java/org/apache/struts2/StrutsJUnit4TestCase.java
@@ -137,7 +137,7 @@ public abstract class StrutsJUnit4TestCase<T> extends XWorkJUnit4TestCase {
ActionMapping mapping = getActionMapping(request);
assertNotNull(mapping);
- Dispatcher.getInstance().serviceAction(request, response, servletContext, mapping);
+ Dispatcher.getInstance().serviceAction(request, response, mapping);
if (response.getStatus() != HttpServletResponse.SC_OK)
throw new ServletException("Error code [" + response.getStatus() + "], Error: ["
http://git-wip-us.apache.org/repos/asf/struts/blob/9ff04d17/plugins/junit/src/main/java/org/apache/struts2/StrutsTestCase.java
----------------------------------------------------------------------
diff --git a/plugins/junit/src/main/java/org/apache/struts2/StrutsTestCase.java b/plugins/junit/src/main/java/org/apache/struts2/StrutsTestCase.java
index 3a14545..de6f477 100644
--- a/plugins/junit/src/main/java/org/apache/struts2/StrutsTestCase.java
+++ b/plugins/junit/src/main/java/org/apache/struts2/StrutsTestCase.java
@@ -115,7 +115,7 @@ public abstract class StrutsTestCase extends XWorkTestCase {
ActionMapping mapping = getActionMapping(request);
assertNotNull(mapping);
- Dispatcher.getInstance().serviceAction(request, response, servletContext, mapping);
+ Dispatcher.getInstance().serviceAction(request, response, mapping);
if (response.getStatus() != HttpServletResponse.SC_OK) {
throw new ServletException("Error code [" + response.getStatus() + "], Error: [" + response.getErrorMessage() + "]");
[09/14] git commit: Updates classes to use the new version of
Dispatcher's methods without ServletContext
Posted by lu...@apache.org.
Updates classes to use the new version of Dispatcher's methods without ServletContext
Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/4da2ec65
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/4da2ec65
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/4da2ec65
Branch: refs/heads/develop
Commit: 4da2ec65c706e1029b827f2ca36242e05d99fb63
Parents: 9ff04d1
Author: Lukasz Lenart <lu...@apache.org>
Authored: Mon Feb 17 09:35:20 2014 +0100
Committer: Lukasz Lenart <lu...@apache.org>
Committed: Mon Feb 17 09:35:20 2014 +0100
----------------------------------------------------------------------
.../org/apache/struts2/validators/DWRValidator.java | 12 +++---------
.../struts2/portlet/dispatcher/Jsr168Dispatcher.java | 7 ++++---
.../sitemesh/OldDecorator2NewStrutsDecorator.java | 2 +-
3 files changed, 8 insertions(+), 13 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/struts/blob/4da2ec65/plugins/dwr/src/main/java/org/apache/struts2/validators/DWRValidator.java
----------------------------------------------------------------------
diff --git a/plugins/dwr/src/main/java/org/apache/struts2/validators/DWRValidator.java b/plugins/dwr/src/main/java/org/apache/struts2/validators/DWRValidator.java
index 8c9a2eb..9d6f750 100644
--- a/plugins/dwr/src/main/java/org/apache/struts2/validators/DWRValidator.java
+++ b/plugins/dwr/src/main/java/org/apache/struts2/validators/DWRValidator.java
@@ -32,22 +32,16 @@ import org.apache.struts2.dispatcher.ApplicationMap;
import org.apache.struts2.dispatcher.Dispatcher;
import org.apache.struts2.dispatcher.RequestMap;
import org.apache.struts2.dispatcher.SessionMap;
-import org.apache.struts2.dispatcher.mapper.ActionMapper;
-import org.apache.struts2.dispatcher.mapper.ActionMapping;
import uk.ltd.getahead.dwr.WebContextFactory;
import com.opensymphony.xwork2.Action;
-import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.ActionProxy;
import com.opensymphony.xwork2.ActionProxyFactory;
import com.opensymphony.xwork2.DefaultActionInvocation;
import com.opensymphony.xwork2.ValidationAware;
import com.opensymphony.xwork2.ValidationAwareSupport;
-import com.opensymphony.xwork2.config.Configuration;
import com.opensymphony.xwork2.config.entities.ActionConfig;
-import com.opensymphony.xwork2.config.entities.PackageConfig;
-import com.opensymphony.xwork2.inject.Inject;
import com.opensymphony.xwork2.util.logging.Logger;
import com.opensymphony.xwork2.util.logging.LoggerFactory;
@@ -69,8 +63,9 @@ import com.opensymphony.xwork2.util.logging.LoggerFactory;
* </pre>
*/
public class DWRValidator {
+
private static final Logger LOG = LoggerFactory.getLogger(DWRValidator.class);
-
+
public ValidationAwareSupport doPost(String namespace, String actionName, Map params) throws Exception {
HttpServletRequest req = WebContextFactory.get().getHttpServletRequest();
ServletContext servletContext = WebContextFactory.get().getServletContext();
@@ -91,8 +86,7 @@ public class DWRValidator {
session,
application,
req,
- res,
- servletContext);
+ res);
try {
ActionProxyFactory actionProxyFactory = du.getContainer().getInstance(ActionProxyFactory.class);
http://git-wip-us.apache.org/repos/asf/struts/blob/4da2ec65/plugins/portlet/src/main/java/org/apache/struts2/portlet/dispatcher/Jsr168Dispatcher.java
----------------------------------------------------------------------
diff --git a/plugins/portlet/src/main/java/org/apache/struts2/portlet/dispatcher/Jsr168Dispatcher.java b/plugins/portlet/src/main/java/org/apache/struts2/portlet/dispatcher/Jsr168Dispatcher.java
index 349d819..99da301 100644
--- a/plugins/portlet/src/main/java/org/apache/struts2/portlet/dispatcher/Jsr168Dispatcher.java
+++ b/plugins/portlet/src/main/java/org/apache/struts2/portlet/dispatcher/Jsr168Dispatcher.java
@@ -184,6 +184,7 @@ public class Jsr168Dispatcher extends GenericPortlet implements StrutsStatics {
private Dispatcher dispatcherUtils;
private ActionMapper actionMapper;
private Container container;
+ private ServletContext servletContext;
/**
* Initialize the portlet with the init parameters from <tt>portlet.xml</tt>
@@ -201,7 +202,8 @@ public class Jsr168Dispatcher extends GenericPortlet implements StrutsStatics {
params.put(name, value);
}
- dispatcherUtils = new Dispatcher(new PortletServletContext(cfg.getPortletContext()), params);
+ servletContext = new PortletServletContext(cfg.getPortletContext());
+ dispatcherUtils = new Dispatcher(servletContext, params);
dispatcherUtils.init();
// For testability
@@ -428,11 +430,10 @@ public class Jsr168Dispatcher extends GenericPortlet implements StrutsStatics {
String actionName = null;
String namespace;
try {
- ServletContext servletContext = new PortletServletContext(getPortletContext());
HttpServletRequest servletRequest = new PortletServletRequest(request, getPortletContext());
HttpServletResponse servletResponse = createPortletServletResponse(response);
if (phase.isAction()) {
- servletRequest = dispatcherUtils.wrapRequest(servletRequest, servletContext);
+ servletRequest = dispatcherUtils.wrapRequest(servletRequest);
if (servletRequest instanceof MultiPartRequestWrapper) {
// Multipart request. Request parameters are encoded in the multipart data,
// so we need to manually add them to the parameter map.
http://git-wip-us.apache.org/repos/asf/struts/blob/4da2ec65/plugins/sitemesh/src/main/java/org/apache/struts2/sitemesh/OldDecorator2NewStrutsDecorator.java
----------------------------------------------------------------------
diff --git a/plugins/sitemesh/src/main/java/org/apache/struts2/sitemesh/OldDecorator2NewStrutsDecorator.java b/plugins/sitemesh/src/main/java/org/apache/struts2/sitemesh/OldDecorator2NewStrutsDecorator.java
index 740095e..9b86adb 100644
--- a/plugins/sitemesh/src/main/java/org/apache/struts2/sitemesh/OldDecorator2NewStrutsDecorator.java
+++ b/plugins/sitemesh/src/main/java/org/apache/struts2/sitemesh/OldDecorator2NewStrutsDecorator.java
@@ -97,7 +97,7 @@ public abstract class OldDecorator2NewStrutsDecorator extends BaseWebAppDecorato
if (ctx == null) {
// ok, one isn't associated with the request, so let's create one using the current Dispatcher
ValueStack vs = Dispatcher.getInstance().getContainer().getInstance(ValueStackFactory.class).createValueStack();
- vs.getContext().putAll(Dispatcher.getInstance().createContextMap(request, response, null, servletContext));
+ vs.getContext().putAll(Dispatcher.getInstance().createContextMap(request, response, null));
ctx = new ActionContext(vs.getContext());
if (ctx.getActionInvocation() == null) {
// put in a dummy ActionSupport so basic functionality still works