Author: nlebas
Date: Tue Aug 21 20:05:58 2012
New Revision: 1375743
URL: http://svn.apache.org/viewvc?rev=1375743&view=rev
Log:
Merge branch 'trunk' into TREQ_1_0_X
Modified:
tiles/request/branches/TREQ_1_0_X/tiles-request-api/src/main/java/org/apache/tiles/request/AbstractRequest.java
tiles/request/branches/TREQ_1_0_X/tiles-request-api/src/main/java/org/apache/tiles/request/DispatchRequestWrapper.java
tiles/request/branches/TREQ_1_0_X/tiles-request-api/src/main/java/org/apache/tiles/request/Request.java
tiles/request/branches/TREQ_1_0_X/tiles-request-api/src/main/java/org/apache/tiles/request/render/DispatchRenderer.java
tiles/request/branches/TREQ_1_0_X/tiles-request-api/src/test/java/org/apache/tiles/request/AbstractClientRequestTest.java
tiles/request/branches/TREQ_1_0_X/tiles-request-api/src/test/java/org/apache/tiles/request/AbstractRequestTest.java
tiles/request/branches/TREQ_1_0_X/tiles-request-api/src/test/java/org/apache/tiles/request/AbstractViewRequestTest.java
tiles/request/branches/TREQ_1_0_X/tiles-request-freemarker/src/test/java/org/apache/tiles/request/freemarker/FreemarkerRequestTest.java
tiles/request/branches/TREQ_1_0_X/tiles-request-jsp/src/main/java/org/apache/tiles/request/jsp/JspRequest.java
tiles/request/branches/TREQ_1_0_X/tiles-request-mustache/src/test/java/org/apache/tiles/request/mustache/MustacheRendererTest.java
tiles/request/branches/TREQ_1_0_X/tiles-request-portlet/src/main/java/org/apache/tiles/request/portlet/PortletRequest.java
tiles/request/branches/TREQ_1_0_X/tiles-request-servlet/src/main/java/org/apache/tiles/request/servlet/ServletRequest.java
tiles/request/branches/TREQ_1_0_X/tiles-request-servlet/src/main/java/org/apache/tiles/request/servlet/ServletUtil.java
Modified:
tiles/request/branches/TREQ_1_0_X/tiles-request-api/src/main/java/org/apache/tiles/request/AbstractRequest.java
URL:
http://svn.apache.org/viewvc/tiles/request/branches/TREQ_1_0_X/tiles-request-api/src/main/java/org/apache/tiles/request/AbstractRequest.java?rev=1375743&r1=1375742&r2=1375743&view=diff
==============================================================================
---
tiles/request/branches/TREQ_1_0_X/tiles-request-api/src/main/java/org/apache/tiles/request/AbstractRequest.java
(original)
+++
tiles/request/branches/TREQ_1_0_X/tiles-request-api/src/main/java/org/apache/tiles/request/AbstractRequest.java
Tue Aug 21 20:05:58 2012
@@ -41,7 +41,7 @@ public abstract class AbstractRequest im
* will be included and never forwarded.
*/
protected void setForceInclude(boolean forceInclude) {
- getContext("request").put(FORCE_INCLUDE_ATTRIBUTE_NAME, forceInclude);
+ getContext(REQUEST_SCOPE).put(FORCE_INCLUDE_ATTRIBUTE_NAME,
forceInclude);
}
/**
@@ -51,7 +51,7 @@ public abstract class AbstractRequest im
* @return <code>true</code> if inclusion is forced.
*/
protected boolean isForceInclude() {
- Boolean forceInclude = (Boolean) getContext("request").get(
+ Boolean forceInclude = (Boolean) getContext(REQUEST_SCOPE).get(
FORCE_INCLUDE_ATTRIBUTE_NAME);
if (forceInclude != null) {
return forceInclude;
Modified:
tiles/request/branches/TREQ_1_0_X/tiles-request-api/src/main/java/org/apache/tiles/request/DispatchRequestWrapper.java
URL:
http://svn.apache.org/viewvc/tiles/request/branches/TREQ_1_0_X/tiles-request-api/src/main/java/org/apache/tiles/request/DispatchRequestWrapper.java?rev=1375743&r1=1375742&r2=1375743&view=diff
==============================================================================
---
tiles/request/branches/TREQ_1_0_X/tiles-request-api/src/main/java/org/apache/tiles/request/DispatchRequestWrapper.java
(original)
+++
tiles/request/branches/TREQ_1_0_X/tiles-request-api/src/main/java/org/apache/tiles/request/DispatchRequestWrapper.java
Tue Aug 21 20:05:58 2012
@@ -34,8 +34,10 @@ import org.apache.tiles.request.attribut
/**
* Delegate for ease of customization.
*
+ * @deprecated prefer RequestWrapper which is more general in purpose, unless
you want to override dispatch() or include().
* @version $Rev: 1215009 $ $Date: 2011-12-16 01:32:31 +0100 (Fri, 16 Dec
2011) $
*/
+@Deprecated
public class DispatchRequestWrapper extends AbstractRequest implements
RequestWrapper {
Modified:
tiles/request/branches/TREQ_1_0_X/tiles-request-api/src/main/java/org/apache/tiles/request/Request.java
URL:
http://svn.apache.org/viewvc/tiles/request/branches/TREQ_1_0_X/tiles-request-api/src/main/java/org/apache/tiles/request/Request.java?rev=1375743&r1=1375742&r2=1375743&view=diff
==============================================================================
---
tiles/request/branches/TREQ_1_0_X/tiles-request-api/src/main/java/org/apache/tiles/request/Request.java
(original)
+++
tiles/request/branches/TREQ_1_0_X/tiles-request-api/src/main/java/org/apache/tiles/request/Request.java
Tue Aug 21 20:05:58 2012
@@ -38,6 +38,12 @@ import org.apache.tiles.request.attribut
*/
public interface Request {
+ /** the name of the (mandatory) "application" scope */
+ static String APPLICATION_SCOPE = "application";
+
+ /** the name of the "request" context */
+ static String REQUEST_SCOPE = "request";
+
/**
* Return an immutable Map that maps header names to the first (or only)
* header value (as a String).
@@ -64,6 +70,9 @@ public interface Request {
/**
* Returns a context map, given the scope name.
+ * This method always return a map for all the scope names returned by
+ * getAvailableScopes(). That map may be writable, or immutable, depending
+ * on the implementation.
*
* @param scope The name of the scope.
* @return The context.
@@ -71,8 +80,12 @@ public interface Request {
Map<String, Object> getContext(String scope);
/**
- * Returns all available scopes, that are the ones returned by
- * {@link #getNativeScopes()} plus derivative scopes (e.g. flash scope).
+ * Returns all available scopes.
+ * The scopes are ordered according to their lifetime,
+ * the innermost, shorter lived scope appears first,
+ * and the outermost, longer lived scope appears last.
+ * Besides, the scopes "request" and "application" always included
+ * in the list.
*
* @return All the available scopes.
*/
Modified:
tiles/request/branches/TREQ_1_0_X/tiles-request-api/src/main/java/org/apache/tiles/request/render/DispatchRenderer.java
URL:
http://svn.apache.org/viewvc/tiles/request/branches/TREQ_1_0_X/tiles-request-api/src/main/java/org/apache/tiles/request/render/DispatchRenderer.java?rev=1375743&r1=1375742&r2=1375743&view=diff
==============================================================================
---
tiles/request/branches/TREQ_1_0_X/tiles-request-api/src/main/java/org/apache/tiles/request/render/DispatchRenderer.java
(original)
+++
tiles/request/branches/TREQ_1_0_X/tiles-request-api/src/main/java/org/apache/tiles/request/render/DispatchRenderer.java
Tue Aug 21 20:05:58 2012
@@ -24,6 +24,7 @@ import java.io.IOException;
import org.apache.tiles.request.Request;
import org.apache.tiles.request.DispatchRequest;
+import org.apache.tiles.request.RequestWrapper;
/**
* Renders an attribute that contains a reference to a template.
@@ -38,15 +39,27 @@ public class DispatchRenderer implements
if (path == null) {
throw new CannotRenderException("Cannot dispatch a null path");
}
- if (!(request instanceof DispatchRequest)) {
+ DispatchRequest dispatchRequest = getDispatchRequest(request);
+ if (dispatchRequest == null) {
throw new CannotRenderException("Cannot dispatch outside of a web
environment");
}
- ((DispatchRequest) request).dispatch(path);
+ dispatchRequest.dispatch(path);
}
/** {@inheritDoc} */
public boolean isRenderable(String path, Request request) {
- return path != null && path.startsWith("/");
+ return path != null && getDispatchRequest(request) != null &&
path.startsWith("/");
+ }
+
+ private DispatchRequest getDispatchRequest(Request request) {
+ Request result = request;
+ while (!(result instanceof DispatchRequest) && result instanceof
RequestWrapper) {
+ result = ((RequestWrapper) result).getWrappedRequest();
+ }
+ if (!(result instanceof DispatchRequest)) {
+ result = null;
+ }
+ return (DispatchRequest) result;
}
}
Modified:
tiles/request/branches/TREQ_1_0_X/tiles-request-api/src/test/java/org/apache/tiles/request/AbstractClientRequestTest.java
URL:
http://svn.apache.org/viewvc/tiles/request/branches/TREQ_1_0_X/tiles-request-api/src/test/java/org/apache/tiles/request/AbstractClientRequestTest.java?rev=1375743&r1=1375742&r2=1375743&view=diff
==============================================================================
---
tiles/request/branches/TREQ_1_0_X/tiles-request-api/src/test/java/org/apache/tiles/request/AbstractClientRequestTest.java
(original)
+++
tiles/request/branches/TREQ_1_0_X/tiles-request-api/src/test/java/org/apache/tiles/request/AbstractClientRequestTest.java
Tue Aug 21 20:05:58 2012
@@ -74,7 +74,7 @@ public class AbstractClientRequestTest {
public void testDispatch() throws IOException {
Map<String, Object> requestScope = new HashMap<String, Object>();
-
expect(request.getContext("request")).andReturn(requestScope).anyTimes();
+
expect(request.getContext(Request.REQUEST_SCOPE)).andReturn(requestScope).anyTimes();
request.doForward("/my/path.html");
request.doInclude("/my/path2.html");
@@ -92,12 +92,12 @@ public class AbstractClientRequestTest {
public void testInclude() throws IOException {
Map<String, Object> requestScope = new HashMap<String, Object>();
-
expect(request.getContext("request")).andReturn(requestScope).anyTimes();
+
expect(request.getContext(Request.REQUEST_SCOPE)).andReturn(requestScope).anyTimes();
request.doInclude("/my/path2.html");
replay(request, applicationContext);
request.include("/my/path2.html");
-
assertTrue((Boolean)request.getContext("request").get(AbstractRequest.FORCE_INCLUDE_ATTRIBUTE_NAME));
+
assertTrue((Boolean)request.getContext(Request.REQUEST_SCOPE).get(AbstractRequest.FORCE_INCLUDE_ATTRIBUTE_NAME));
verify(request, applicationContext);
}
Modified:
tiles/request/branches/TREQ_1_0_X/tiles-request-api/src/test/java/org/apache/tiles/request/AbstractRequestTest.java
URL:
http://svn.apache.org/viewvc/tiles/request/branches/TREQ_1_0_X/tiles-request-api/src/test/java/org/apache/tiles/request/AbstractRequestTest.java?rev=1375743&r1=1375742&r2=1375743&view=diff
==============================================================================
---
tiles/request/branches/TREQ_1_0_X/tiles-request-api/src/test/java/org/apache/tiles/request/AbstractRequestTest.java
(original)
+++
tiles/request/branches/TREQ_1_0_X/tiles-request-api/src/test/java/org/apache/tiles/request/AbstractRequestTest.java
Tue Aug 21 20:05:58 2012
@@ -43,7 +43,7 @@ public class AbstractRequestTest {
AbstractRequest request =
createMockBuilder(AbstractRequest.class).createMock();
Map<String, Object> scope = new HashMap<String, Object>();
- expect(request.getContext("request")).andReturn(scope).anyTimes();
+
expect(request.getContext(Request.REQUEST_SCOPE)).andReturn(scope).anyTimes();
replay(request);
assertFalse(request.isForceInclude());
Modified:
tiles/request/branches/TREQ_1_0_X/tiles-request-api/src/test/java/org/apache/tiles/request/AbstractViewRequestTest.java
URL:
http://svn.apache.org/viewvc/tiles/request/branches/TREQ_1_0_X/tiles-request-api/src/test/java/org/apache/tiles/request/AbstractViewRequestTest.java?rev=1375743&r1=1375742&r2=1375743&view=diff
==============================================================================
---
tiles/request/branches/TREQ_1_0_X/tiles-request-api/src/test/java/org/apache/tiles/request/AbstractViewRequestTest.java
(original)
+++
tiles/request/branches/TREQ_1_0_X/tiles-request-api/src/test/java/org/apache/tiles/request/AbstractViewRequestTest.java
Tue Aug 21 20:05:58 2012
@@ -80,7 +80,7 @@ public class AbstractViewRequestTest {
public void testDispatch() throws IOException {
Map<String, Object> requestScope = new HashMap<String, Object>();
- expect(request.getContext("request")).andReturn(requestScope);
+
expect(request.getContext(Request.REQUEST_SCOPE)).andReturn(requestScope);
wrappedRequest.include("/my/path.html");
replay(wrappedRequest, request, applicationContext);
@@ -97,7 +97,7 @@ public class AbstractViewRequestTest {
public void testInclude() throws IOException {
Map<String, Object> requestScope = new HashMap<String, Object>();
- expect(request.getContext("request")).andReturn(requestScope);
+
expect(request.getContext(Request.REQUEST_SCOPE)).andReturn(requestScope);
wrappedRequest.include("/my/path.html");
replay(wrappedRequest, request, applicationContext);
Modified:
tiles/request/branches/TREQ_1_0_X/tiles-request-freemarker/src/test/java/org/apache/tiles/request/freemarker/FreemarkerRequestTest.java
URL:
http://svn.apache.org/viewvc/tiles/request/branches/TREQ_1_0_X/tiles-request-freemarker/src/test/java/org/apache/tiles/request/freemarker/FreemarkerRequestTest.java?rev=1375743&r1=1375742&r2=1375743&view=diff
==============================================================================
---
tiles/request/branches/TREQ_1_0_X/tiles-request-freemarker/src/test/java/org/apache/tiles/request/freemarker/FreemarkerRequestTest.java
(original)
+++
tiles/request/branches/TREQ_1_0_X/tiles-request-freemarker/src/test/java/org/apache/tiles/request/freemarker/FreemarkerRequestTest.java
Tue Aug 21 20:05:58 2012
@@ -36,6 +36,7 @@ import javax.servlet.http.HttpServletReq
import javax.servlet.http.HttpServletResponse;
import org.apache.tiles.request.ApplicationContext;
+import org.apache.tiles.request.Request;
import org.apache.tiles.request.DispatchRequest;
import org.apache.tiles.request.servlet.ServletRequest;
import org.junit.Before;
@@ -136,7 +137,7 @@ public class FreemarkerRequestTest {
enclosedRequest.include(path);
expect(enclosedRequest.getAvailableScopes()).andReturn(Collections.singletonList("parent"));
- expect(enclosedRequest.getContext("request")).andReturn(requestScope);
+
expect(enclosedRequest.getContext(Request.REQUEST_SCOPE)).andReturn(requestScope);
replay(enclosedRequest, applicationContext);
context = new FreemarkerRequest(enclosedRequest, env);
context.dispatch(path);
Modified:
tiles/request/branches/TREQ_1_0_X/tiles-request-jsp/src/main/java/org/apache/tiles/request/jsp/JspRequest.java
URL:
http://svn.apache.org/viewvc/tiles/request/branches/TREQ_1_0_X/tiles-request-jsp/src/main/java/org/apache/tiles/request/jsp/JspRequest.java?rev=1375743&r1=1375742&r2=1375743&view=diff
==============================================================================
---
tiles/request/branches/TREQ_1_0_X/tiles-request-jsp/src/main/java/org/apache/tiles/request/jsp/JspRequest.java
(original)
+++
tiles/request/branches/TREQ_1_0_X/tiles-request-jsp/src/main/java/org/apache/tiles/request/jsp/JspRequest.java
Tue Aug 21 20:05:58 2012
@@ -54,7 +54,7 @@ public class JspRequest extends Abstract
* The native available scopes.
*/
private static final List<String> SCOPES
- = Collections.unmodifiableList(Arrays.asList("page", "request",
"session", "application"));
+ = Collections.unmodifiableList(Arrays.asList("page",
REQUEST_SCOPE, "session", APPLICATION_SCOPE));
/**
* The current page context.
@@ -203,11 +203,11 @@ public class JspRequest extends Abstract
public Map<String, Object> getContext(String scope) {
if("page".equals(scope)){
return getPageScope();
- }else if("request".equals(scope)){
+ }else if(REQUEST_SCOPE.equals(scope)){
return getRequestScope();
}else if("session".equals(scope)){
return getSessionScope();
- }else if("application".equals(scope)){
+ }else if(APPLICATION_SCOPE.equals(scope)){
return getApplicationScope();
}
throw new IllegalArgumentException(scope + " does not exist. Call
getAvailableScopes() first to check.");
Modified:
tiles/request/branches/TREQ_1_0_X/tiles-request-mustache/src/test/java/org/apache/tiles/request/mustache/MustacheRendererTest.java
URL:
http://svn.apache.org/viewvc/tiles/request/branches/TREQ_1_0_X/tiles-request-mustache/src/test/java/org/apache/tiles/request/mustache/MustacheRendererTest.java?rev=1375743&r1=1375742&r2=1375743&view=diff
==============================================================================
---
tiles/request/branches/TREQ_1_0_X/tiles-request-mustache/src/test/java/org/apache/tiles/request/mustache/MustacheRendererTest.java
(original)
+++
tiles/request/branches/TREQ_1_0_X/tiles-request-mustache/src/test/java/org/apache/tiles/request/mustache/MustacheRendererTest.java
Tue Aug 21 20:05:58 2012
@@ -63,10 +63,10 @@ public final class MustacheRendererTest
expect(request.getApplicationContext()).andReturn(applicationContext);
expect(applicationContext.getResource(isA(String.class))).andReturn(applicationResource).anyTimes();
-
expect(request.getAvailableScopes()).andReturn(Arrays.asList("request",
"session", "application"));
- expect(request.getContext("request")).andReturn(context);
+
expect(request.getAvailableScopes()).andReturn(Arrays.asList(Request.REQUEST_SCOPE,
"session", Request.APPLICATION_SCOPE));
+ expect(request.getContext(Request.REQUEST_SCOPE)).andReturn(context);
expect(request.getContext("session")).andReturn(Collections.<String,Object>emptyMap());
-
expect(request.getContext("application")).andReturn(Collections.<String,Object>emptyMap());
+
expect(request.getContext(Request.APPLICATION_SCOPE)).andReturn(Collections.<String,Object>emptyMap());
expect(request.getWriter()).andReturn(writer);
writer.write("test template with test value");
writer.flush();
Modified:
tiles/request/branches/TREQ_1_0_X/tiles-request-portlet/src/main/java/org/apache/tiles/request/portlet/PortletRequest.java
URL:
http://svn.apache.org/viewvc/tiles/request/branches/TREQ_1_0_X/tiles-request-portlet/src/main/java/org/apache/tiles/request/portlet/PortletRequest.java?rev=1375743&r1=1375742&r2=1375743&view=diff
==============================================================================
---
tiles/request/branches/TREQ_1_0_X/tiles-request-portlet/src/main/java/org/apache/tiles/request/portlet/PortletRequest.java
(original)
+++
tiles/request/branches/TREQ_1_0_X/tiles-request-portlet/src/main/java/org/apache/tiles/request/portlet/PortletRequest.java
Tue Aug 21 20:05:58 2012
@@ -59,7 +59,7 @@ public class PortletRequest extends Abst
* The native available scopes.
*/
private static final List<String> SCOPES
- = Collections.unmodifiableList(Arrays.asList("request",
"portletSession", "session", "application"));
+ = Collections.unmodifiableList(Arrays.asList(REQUEST_SCOPE,
"portletSession", "session", APPLICATION_SCOPE));
/**
* <p>The lazily instantiated <code>Map</code> of header name-value
@@ -323,13 +323,13 @@ public class PortletRequest extends Abst
@Override
public Map<String, Object> getContext(String scope) {
- if("request".equals(scope)){
+ if(REQUEST_SCOPE.equals(scope)){
return getRequestScope();
- }else if("application".equals(scope)){
- return getApplicationScope();
+ }else if("session".equals(scope)){
+ return getSessionScope();
}else if("portletSession".equals(scope)){
return getPortletSessionScope();
- }else if("application".equals(scope)){
+ }else if(APPLICATION_SCOPE.equals(scope)){
return getApplicationScope();
}
throw new IllegalArgumentException(scope + " does not exist. Call
getAvailableScopes() first to check.");
Modified:
tiles/request/branches/TREQ_1_0_X/tiles-request-servlet/src/main/java/org/apache/tiles/request/servlet/ServletRequest.java
URL:
http://svn.apache.org/viewvc/tiles/request/branches/TREQ_1_0_X/tiles-request-servlet/src/main/java/org/apache/tiles/request/servlet/ServletRequest.java?rev=1375743&r1=1375742&r2=1375743&view=diff
==============================================================================
---
tiles/request/branches/TREQ_1_0_X/tiles-request-servlet/src/main/java/org/apache/tiles/request/servlet/ServletRequest.java
(original)
+++
tiles/request/branches/TREQ_1_0_X/tiles-request-servlet/src/main/java/org/apache/tiles/request/servlet/ServletRequest.java
Tue Aug 21 20:05:58 2012
@@ -57,7 +57,7 @@ public class ServletRequest extends Abst
* The native available scopes: request, session and application.
*/
private static final List<String> SCOPES
- = Collections.unmodifiableList(Arrays.asList("request", "session",
"application"));
+ = Collections.unmodifiableList(Arrays.asList(REQUEST_SCOPE,
"session", APPLICATION_SCOPE));
/**
* The request object to use.
@@ -184,11 +184,11 @@ public class ServletRequest extends Abst
@Override
public Map<String, Object> getContext(String scope) {
- if("request".equals(scope)){
+ if(REQUEST_SCOPE.equals(scope)){
return getRequestScope();
}else if("session".equals(scope)){
return getSessionScope();
- }else if("application".equals(scope)){
+ }else if(APPLICATION_SCOPE.equals(scope)){
return getApplicationScope();
}
throw new IllegalArgumentException(scope + " does not exist. Call
getAvailableScopes() first to check.");
Modified:
tiles/request/branches/TREQ_1_0_X/tiles-request-servlet/src/main/java/org/apache/tiles/request/servlet/ServletUtil.java
URL:
http://svn.apache.org/viewvc/tiles/request/branches/TREQ_1_0_X/tiles-request-servlet/src/main/java/org/apache/tiles/request/servlet/ServletUtil.java?rev=1375743&r1=1375742&r2=1375743&view=diff
==============================================================================
---
tiles/request/branches/TREQ_1_0_X/tiles-request-servlet/src/main/java/org/apache/tiles/request/servlet/ServletUtil.java
(original)
+++
tiles/request/branches/TREQ_1_0_X/tiles-request-servlet/src/main/java/org/apache/tiles/request/servlet/ServletUtil.java
Tue Aug 21 20:05:58 2012
@@ -28,7 +28,7 @@ import javax.servlet.ServletException;
import org.apache.tiles.request.ApplicationContext;
import org.apache.tiles.request.ApplicationAccess;
-import org.apache.tiles.request.DispatchRequestWrapper;
+import org.apache.tiles.request.RequestWrapper;
import org.apache.tiles.request.Request;
/**
@@ -97,10 +97,10 @@ public final class ServletUtil {
if (currentRequest instanceof ServletRequest) {
return (ServletRequest) currentRequest;
}
- if (!(currentRequest instanceof DispatchRequestWrapper)) {
+ if (!(currentRequest instanceof RequestWrapper)) {
throw new NotAServletEnvironmentException("Not a Servlet
environment, not supported");
}
- currentRequest = ((DispatchRequestWrapper)
currentRequest).getWrappedRequest();
+ currentRequest = ((RequestWrapper)
currentRequest).getWrappedRequest();
}
}