Initial stab at removing ContextResolver
http://article.gmane.org/gmane.comp.apache.tiles.devel/341
http://article.gmane.org/gmane.comp.apache.tiles.devel/371
git-svn-id: https://svn.apache.org/repos/asf/tiles/framework/trunk@1291847 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/tiles-parent/tiles-core/src/main/java/org/apache/tiles/startup/AbstractTilesInitializer.java b/tiles-parent/tiles-core/src/main/java/org/apache/tiles/startup/AbstractTilesInitializer.java
index b844d88..ea70b1d 100644
--- a/tiles-parent/tiles-core/src/main/java/org/apache/tiles/startup/AbstractTilesInitializer.java
+++ b/tiles-parent/tiles-core/src/main/java/org/apache/tiles/startup/AbstractTilesInitializer.java
@@ -61,7 +61,6 @@
public void initialize(ApplicationContext applicationContext) {
this.applicationContext = createTilesApplicationContext(applicationContext);
ApplicationAccess.register(applicationContext);
- ApplicationAccess.registerContextResolver(new ReflectionContextResolver(), applicationContext);
String key = getContainerKey(this.applicationContext);
container = createContainer(this.applicationContext);
TilesAccess.setContainer(this.applicationContext, container, key);
diff --git a/tiles-parent/tiles-core/src/test/java/org/apache/tiles/startup/AbstractTilesInitializerTest.java b/tiles-parent/tiles-core/src/test/java/org/apache/tiles/startup/AbstractTilesInitializerTest.java
index 4fab66d..edb82e9 100644
--- a/tiles-parent/tiles-core/src/test/java/org/apache/tiles/startup/AbstractTilesInitializerTest.java
+++ b/tiles-parent/tiles-core/src/test/java/org/apache/tiles/startup/AbstractTilesInitializerTest.java
@@ -82,8 +82,6 @@
expect(context.getApplicationScope()).andReturn(scope).anyTimes();
expect(scope.put(ApplicationAccess.APPLICATION_CONTEXT_ATTRIBUTE,
context)).andReturn(null);
- expect(scope.put(eq(ApplicationAccess.CONTEXT_RESOLVER_ATTRIBUTE),
- isA(ReflectionContextResolver.class))).andReturn(null);
expect(scope.put(TilesAccess.CONTAINER_ATTRIBUTE, container)).andReturn(null);
expect(scope.remove(TilesAccess.CONTAINER_ATTRIBUTE)).andReturn(container);
diff --git a/tiles-parent/tiles-el/src/main/java/org/apache/tiles/el/TilesContextBeanELResolver.java b/tiles-parent/tiles-el/src/main/java/org/apache/tiles/el/TilesContextBeanELResolver.java
index e03e4a0..1cd3e1b 100644
--- a/tiles-parent/tiles-el/src/main/java/org/apache/tiles/el/TilesContextBeanELResolver.java
+++ b/tiles-parent/tiles-el/src/main/java/org/apache/tiles/el/TilesContextBeanELResolver.java
@@ -155,7 +155,7 @@
String prop = property.toString();
- String[] scopes = request.getAvailableScopes();
+ String[] scopes = request.getAvailableScopes().toArray(new String[0]);
int i = 0;
do {
retValue = getObject(request.getContext(scopes[i]), prop);
diff --git a/tiles-parent/tiles-el/src/test/java/org/apache/tiles/el/ELAttributeEvaluatorTest.java b/tiles-parent/tiles-el/src/test/java/org/apache/tiles/el/ELAttributeEvaluatorTest.java
index b7822d3..82a4745 100644
--- a/tiles-parent/tiles-el/src/test/java/org/apache/tiles/el/ELAttributeEvaluatorTest.java
+++ b/tiles-parent/tiles-el/src/test/java/org/apache/tiles/el/ELAttributeEvaluatorTest.java
@@ -20,6 +20,7 @@
*/
package org.apache.tiles.el;
+import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
@@ -77,7 +78,7 @@
EasyMock.expect(request.getContext("application")).andReturn(
applicationScope).anyTimes();
EasyMock.expect(request.getAvailableScopes()).andReturn(
- new String[] { "request", "session", "application" }).anyTimes();
+ Arrays.asList(new String[] { "request", "session", "application" })).anyTimes();
ApplicationContext applicationContext = EasyMock
.createMock(ApplicationContext.class);
EasyMock.expect(request.getApplicationContext()).andReturn(
diff --git a/tiles-parent/tiles-el/src/test/java/org/apache/tiles/el/ScopeELResolverTest.java b/tiles-parent/tiles-el/src/test/java/org/apache/tiles/el/ScopeELResolverTest.java
index 84a4bd2..4a3ca12 100644
--- a/tiles-parent/tiles-el/src/test/java/org/apache/tiles/el/ScopeELResolverTest.java
+++ b/tiles-parent/tiles-el/src/test/java/org/apache/tiles/el/ScopeELResolverTest.java
@@ -24,6 +24,7 @@
import static org.junit.Assert.*;
import java.beans.FeatureDescriptor;
+import java.util.Arrays;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
@@ -76,7 +77,7 @@
Request request = createMock(Request.class);
expect(elContext.getContext(Request.class)).andReturn(request);
- expect(request.getAvailableScopes()).andReturn(new String[] {"one", "two"});
+ expect(request.getAvailableScopes()).andReturn(Arrays.asList(new String[] {"one", "two"}));
replay(elContext, request);
assertFalse(resolver.getFeatureDescriptors(elContext, new Integer(1)).hasNext());
diff --git a/tiles-parent/tiles-el/src/test/java/org/apache/tiles/el/TilesContextBeanELResolverTest.java b/tiles-parent/tiles-el/src/test/java/org/apache/tiles/el/TilesContextBeanELResolverTest.java
index 86a92ad..b282528 100644
--- a/tiles-parent/tiles-el/src/test/java/org/apache/tiles/el/TilesContextBeanELResolverTest.java
+++ b/tiles-parent/tiles-el/src/test/java/org/apache/tiles/el/TilesContextBeanELResolverTest.java
@@ -25,6 +25,7 @@
import java.beans.FeatureDescriptor;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
@@ -90,7 +91,7 @@
expect(request.getContext("application")).andReturn(
applicationScope).anyTimes();
expect(request.getAvailableScopes()).andReturn(
- new String[] { "request", "session", "application" })
+ Arrays.asList(new String[] { "request", "session", "application" }))
.anyTimes();
replay(request, applicationContext);
@@ -151,7 +152,7 @@
expect(request.getContext("application")).andReturn(
applicationScope).anyTimes();
expect(request.getAvailableScopes()).andReturn(
- new String[] { "request", "session", "application" })
+ Arrays.asList(new String[] { "request", "session", "application" }))
.anyTimes();
replay(request, applicationContext);
@@ -191,7 +192,7 @@
expect(request.getContext("application")).andReturn(
applicationScope).anyTimes();
expect(request.getAvailableScopes()).andReturn(
- new String[] { "request", "session", "application" })
+ Arrays.asList(new String[] { "request", "session", "application" }))
.anyTimes();
replay(request, applicationContext);
@@ -258,7 +259,7 @@
expect(request.getContext("application")).andReturn(
applicationScope).anyTimes();
expect(request.getAvailableScopes()).andReturn(
- new String[] { "request", "session", "application" })
+ Arrays.asList(new String[] { "request", "session", "application" }))
.anyTimes();
replay(request, applicationContext);
diff --git a/tiles-parent/tiles-jsp/src/test/java/org/apache/tiles/jsp/taglib/UseAttributeTagTest.java b/tiles-parent/tiles-jsp/src/test/java/org/apache/tiles/jsp/taglib/UseAttributeTagTest.java
index 5985678..0720618 100644
--- a/tiles-parent/tiles-jsp/src/test/java/org/apache/tiles/jsp/taglib/UseAttributeTagTest.java
+++ b/tiles-parent/tiles-jsp/src/test/java/org/apache/tiles/jsp/taglib/UseAttributeTagTest.java
@@ -89,7 +89,6 @@
ApplicationAccess.APPLICATION_CONTEXT_ATTRIBUTE,
PageContext.APPLICATION_SCOPE)).andReturn(applicationContext);
expect(applicationContext.getApplicationScope()).andReturn(applicationScope).anyTimes();
- expect(applicationScope.get(ApplicationAccess.CONTEXT_RESOLVER_ATTRIBUTE)).andReturn(new ReflectionContextResolver()).anyTimes();
expect(pageContext.getRequest()).andReturn(httpServletRequest);
expect(pageContext.getResponse()).andReturn(httpServletResponse);
expect(pageContext.getAttribute(TilesAccess.CURRENT_CONTAINER_ATTRIBUTE_NAME, PageContext.REQUEST_SCOPE)).andReturn(container);
diff --git a/tiles-parent/tiles-mvel/src/test/java/org/apache/tiles/mvel/MVELAttributeEvaluatorTest.java b/tiles-parent/tiles-mvel/src/test/java/org/apache/tiles/mvel/MVELAttributeEvaluatorTest.java
index 1878209..96a3370 100644
--- a/tiles-parent/tiles-mvel/src/test/java/org/apache/tiles/mvel/MVELAttributeEvaluatorTest.java
+++ b/tiles-parent/tiles-mvel/src/test/java/org/apache/tiles/mvel/MVELAttributeEvaluatorTest.java
@@ -20,6 +20,7 @@
*/
package org.apache.tiles.mvel;
+import java.util.Arrays;
import static org.easymock.classextension.EasyMock.*;
import static org.junit.Assert.*;
@@ -88,7 +89,7 @@
expect(request.getContext("application")).andReturn(applicationScope)
.anyTimes();
expect(request.getAvailableScopes()).andReturn(
- new String[] { "request", "session", "application" }).anyTimes();
+ Arrays.asList(new String[] { "request", "session", "application" })).anyTimes();
applicationContext = createMock(ApplicationContext.class);
expect(request.getApplicationContext()).andReturn(
applicationContext).anyTimes();
diff --git a/tiles-parent/tiles-mvel/src/test/java/org/apache/tiles/mvel/ReadOnlyVariableResolverFactoryTest.java b/tiles-parent/tiles-mvel/src/test/java/org/apache/tiles/mvel/ReadOnlyVariableResolverFactoryTest.java
index 0d63bf3..a1a7e79 100644
--- a/tiles-parent/tiles-mvel/src/test/java/org/apache/tiles/mvel/ReadOnlyVariableResolverFactoryTest.java
+++ b/tiles-parent/tiles-mvel/src/test/java/org/apache/tiles/mvel/ReadOnlyVariableResolverFactoryTest.java
@@ -20,6 +20,7 @@
*/
package org.apache.tiles.mvel;
+import java.util.Arrays;
import static org.easymock.EasyMock.*;
import static org.easymock.classextension.EasyMock.*;
import static org.junit.Assert.*;
@@ -62,8 +63,8 @@
@Before
public void setUp() {
request = createMock(Request.class);
- expect(request.getAvailableScopes()).andReturn(new String[]{"request",
- "session", "application"}).anyTimes();
+ expect(request.getAvailableScopes()).andReturn(
+ Arrays.asList(new String[]{"request", "session", "application"})).anyTimes();
TilesRequestContextHolder holder = new TilesRequestContextHolder();
holder.setTilesRequestContext(request);
applicationContext = createMock(ApplicationContext.class);
diff --git a/tiles-parent/tiles-mvel/src/test/java/org/apache/tiles/mvel/ScopeVariableResolverFactoryTest.java b/tiles-parent/tiles-mvel/src/test/java/org/apache/tiles/mvel/ScopeVariableResolverFactoryTest.java
index e6011c0..bb3693c 100644
--- a/tiles-parent/tiles-mvel/src/test/java/org/apache/tiles/mvel/ScopeVariableResolverFactoryTest.java
+++ b/tiles-parent/tiles-mvel/src/test/java/org/apache/tiles/mvel/ScopeVariableResolverFactoryTest.java
@@ -20,6 +20,7 @@
*/
package org.apache.tiles.mvel;
+import java.util.Arrays;
import static org.easymock.EasyMock.*;
import static org.easymock.classextension.EasyMock.*;
import static org.junit.Assert.*;
@@ -63,8 +64,8 @@
@Before
public void setUp() {
request = createMock(Request.class);
- expect(request.getAvailableScopes()).andReturn(new String[]{"request",
- "session", "application"}).anyTimes();
+ expect(request.getAvailableScopes()).andReturn(
+ Arrays.asList(new String[]{"request", "session", "application"})).anyTimes();
TilesRequestContextHolder holder = new TilesRequestContextHolder();
holder.setTilesRequestContext(request);
applicationContext = createMock(ApplicationContext.class);
diff --git a/tiles-parent/tiles-mvel/src/test/java/org/apache/tiles/mvel/TilesContextBeanVariableResolverFactoryTest.java b/tiles-parent/tiles-mvel/src/test/java/org/apache/tiles/mvel/TilesContextBeanVariableResolverFactoryTest.java
index 8307327..290125e 100644
--- a/tiles-parent/tiles-mvel/src/test/java/org/apache/tiles/mvel/TilesContextBeanVariableResolverFactoryTest.java
+++ b/tiles-parent/tiles-mvel/src/test/java/org/apache/tiles/mvel/TilesContextBeanVariableResolverFactoryTest.java
@@ -21,6 +21,7 @@
package org.apache.tiles.mvel;
+import java.util.Arrays;
import static org.easymock.EasyMock.*;
import static org.junit.Assert.*;
@@ -93,7 +94,7 @@
sessionScope.put("three", "three");
expect(request.getContext("session")).andReturn(sessionScope).anyTimes();
expect(request.getAvailableScopes()).andReturn(
- new String[] { "request", "session", "application" })
+ Arrays.asList(new String[] { "request", "session", "application" }))
.anyTimes();
expect(request.getContext("application")).andReturn(applicationScope).anyTimes();
replay(request, applicationContext);
@@ -127,7 +128,7 @@
expect(request.getContext("session")).andReturn(sessionScope).times(
EXPECTED_SESSION_CALLS);
expect(request.getAvailableScopes()).andReturn(
- new String[] { "request", "session", "application" })
+ Arrays.asList(new String[] { "request", "session", "application" }))
.anyTimes();
expect(request.getContext("application")).andReturn(applicationScope).anyTimes();
replay(request, applicationContext);
diff --git a/tiles-parent/tiles-ognl/src/main/java/org/apache/tiles/ognl/AnyScopePropertyAccessor.java b/tiles-parent/tiles-ognl/src/main/java/org/apache/tiles/ognl/AnyScopePropertyAccessor.java
index 1c806b2..e572f6a 100644
--- a/tiles-parent/tiles-ognl/src/main/java/org/apache/tiles/ognl/AnyScopePropertyAccessor.java
+++ b/tiles-parent/tiles-ognl/src/main/java/org/apache/tiles/ognl/AnyScopePropertyAccessor.java
@@ -66,7 +66,7 @@
Object index) {
Request request = (Request) target;
String attributeName = (String) index;
- String[] availableScopes = request.getAvailableScopes();
+ String[] availableScopes = request.getAvailableScopes().toArray(new String[0]);
for (String scopeName : availableScopes) {
Map<String, Object> scope = request.getContext(scopeName);
if (scope.containsKey(attributeName)) {
@@ -81,7 +81,7 @@
Object value) {
Request request = (Request) target;
String attributeName = (String) name;
- String[] availableScopes = request.getAvailableScopes();
+ String[] availableScopes = request.getAvailableScopes().toArray(new String[0]);
for (String scopeName : availableScopes) {
Map<String, Object> scope = request.getContext(scopeName);
if (scope.containsKey(attributeName)) {
diff --git a/tiles-parent/tiles-ognl/src/test/java/org/apache/tiles/ognl/AnyScopePropertyAccessorTest.java b/tiles-parent/tiles-ognl/src/test/java/org/apache/tiles/ognl/AnyScopePropertyAccessorTest.java
index e129e72..fb60fac 100644
--- a/tiles-parent/tiles-ognl/src/test/java/org/apache/tiles/ognl/AnyScopePropertyAccessorTest.java
+++ b/tiles-parent/tiles-ognl/src/test/java/org/apache/tiles/ognl/AnyScopePropertyAccessorTest.java
@@ -20,6 +20,7 @@
*/
package org.apache.tiles.ognl;
+import java.util.Arrays;
import static org.easymock.classextension.EasyMock.*;
import static org.junit.Assert.*;
@@ -59,7 +60,7 @@
Map<String, Object> oneScope = createMock(Map.class);
Map<String, Object> twoScope = createMock(Map.class);
- expect(request.getAvailableScopes()).andReturn(new String[] {"one", "two"}).anyTimes();
+ expect(request.getAvailableScopes()).andReturn(Arrays.asList(new String[] {"one", "two"})).anyTimes();
expect(request.getContext("one")).andReturn(oneScope).anyTimes();
expect(request.getContext("two")).andReturn(twoScope).anyTimes();
expect(oneScope.containsKey("name1")).andReturn(true);
@@ -87,7 +88,7 @@
Map<String, Object> oneScope = createMock(Map.class);
Map<String, Object> twoScope = createMock(Map.class);
- expect(request.getAvailableScopes()).andReturn(new String[] {"one", "two"}).anyTimes();
+ expect(request.getAvailableScopes()).andReturn(Arrays.asList(new String[] {"one", "two"})).anyTimes();
expect(request.getContext("one")).andReturn(oneScope).anyTimes();
expect(request.getContext("two")).andReturn(twoScope).anyTimes();
expect(oneScope.containsKey("name1")).andReturn(true);
@@ -113,7 +114,7 @@
Map<String, Object> oneScope = createMock(Map.class);
Map<String, Object> twoScope = createMock(Map.class);
- expect(request.getAvailableScopes()).andReturn(new String[] {"one", "two"}).anyTimes();
+ expect(request.getAvailableScopes()).andReturn(Arrays.asList(new String[] {"one", "two"})).anyTimes();
expect(request.getContext("one")).andReturn(oneScope).anyTimes();
expect(request.getContext("two")).andReturn(twoScope).anyTimes();
expect(oneScope.containsKey("name1")).andReturn(true);
@@ -139,7 +140,7 @@
Map<String, Object> oneScope = createMock(Map.class);
Map<String, Object> twoScope = createMock(Map.class);
- expect(request.getAvailableScopes()).andReturn(new String[] {"one", "two"}).anyTimes();
+ expect(request.getAvailableScopes()).andReturn(Arrays.asList(new String[] {"one", "two"})).anyTimes();
expect(request.getContext("one")).andReturn(oneScope).anyTimes();
expect(request.getContext("two")).andReturn(twoScope).anyTimes();
expect(oneScope.containsKey("name1")).andReturn(true);
diff --git a/tiles-parent/tiles-ognl/src/test/java/org/apache/tiles/ognl/OGNLAttributeEvaluatorTest.java b/tiles-parent/tiles-ognl/src/test/java/org/apache/tiles/ognl/OGNLAttributeEvaluatorTest.java
index 1b48e45..520b9c4 100644
--- a/tiles-parent/tiles-ognl/src/test/java/org/apache/tiles/ognl/OGNLAttributeEvaluatorTest.java
+++ b/tiles-parent/tiles-ognl/src/test/java/org/apache/tiles/ognl/OGNLAttributeEvaluatorTest.java
@@ -20,6 +20,7 @@
*/
package org.apache.tiles.ognl;
+import java.util.Arrays;
import static org.easymock.EasyMock.*;
import static org.easymock.classextension.EasyMock.*;
import static org.junit.Assert.*;
@@ -97,7 +98,7 @@
expect(request.getContext("application")).andReturn(applicationScope)
.anyTimes();
expect(request.getAvailableScopes()).andReturn(
- new String[] { "request", "session", "application" }).anyTimes();
+ Arrays.asList(new String[] { "request", "session", "application" })).anyTimes();
applicationContext = createMock(ApplicationContext.class);
expect(request.getApplicationContext()).andReturn(
applicationContext).anyTimes();
diff --git a/tiles-parent/tiles-template/src/main/java/org/apache/tiles/template/ImportAttributeModel.java b/tiles-parent/tiles-template/src/main/java/org/apache/tiles/template/ImportAttributeModel.java
index 24c97af..eec6405 100644
--- a/tiles-parent/tiles-template/src/main/java/org/apache/tiles/template/ImportAttributeModel.java
+++ b/tiles-parent/tiles-template/src/main/java/org/apache/tiles/template/ImportAttributeModel.java
@@ -71,7 +71,7 @@
Map<String, Object> attributes = getImportedAttributes(
name, toName, ignore, request);
if (scope == null) {
- scope = request.getAvailableScopes()[0];
+ scope = request.getAvailableScopes().get(0);
}
request.getContext(scope).putAll(attributes);
}
diff --git a/tiles-parent/tiles-velocity/src/test/java/org/apache/tiles/velocity/template/VelocityStyleTilesToolTest.java b/tiles-parent/tiles-velocity/src/test/java/org/apache/tiles/velocity/template/VelocityStyleTilesToolTest.java
index 3d819b9..cfb4f53 100644
--- a/tiles-parent/tiles-velocity/src/test/java/org/apache/tiles/velocity/template/VelocityStyleTilesToolTest.java
+++ b/tiles-parent/tiles-velocity/src/test/java/org/apache/tiles/velocity/template/VelocityStyleTilesToolTest.java
@@ -46,7 +46,6 @@
import org.apache.tiles.access.TilesAccess;
import org.apache.tiles.request.ApplicationAccess;
import org.apache.tiles.request.ApplicationContext;
-import org.apache.tiles.request.scope.ContextResolver;
import org.apache.tiles.request.velocity.VelocityRequest;
import org.apache.velocity.context.Context;
import org.apache.velocity.context.InternalContextAdapter;
@@ -110,15 +109,12 @@
AttributeContext attributeContext = createMock(AttributeContext.class);
ApplicationContext applicationContext = createMock(ApplicationContext.class);
Attribute attribute = new Attribute("myValue");
- ContextResolver resolver = createMock(ContextResolver.class);
Map<String, Object> requestScope = new HashMap<String, Object>();
Map<String, Object> applicationScope = new HashMap<String, Object>();
requestScope.put(TilesAccess.CURRENT_CONTAINER_ATTRIBUTE_NAME, container);
- applicationScope.put(ApplicationAccess.CONTEXT_RESOLVER_ATTRIBUTE, resolver);
+ expect(request.getAttribute(TilesAccess.CURRENT_CONTAINER_ATTRIBUTE_NAME)).andReturn(container);
expect(applicationContext.getApplicationScope()).andReturn(applicationScope).anyTimes();
- expect(resolver.getContext(isA(VelocityRequest.class),
- eq("request"))).andReturn(requestScope).anyTimes();
expect(servletContext.getAttribute(ApplicationAccess
.APPLICATION_CONTEXT_ATTRIBUTE)).andReturn(applicationContext)
.anyTimes();
@@ -127,11 +123,11 @@
expect(attributeContext.getAttribute("myAttribute")).andReturn(attribute);
replay(velocityContext, request, response, servletContext, container,
- attributeContext, applicationContext, resolver);
+ attributeContext, applicationContext);
initializeTool();
assertEquals(attribute, tool.get("myAttribute"));
verify(velocityContext, request, response, servletContext, container,
- attributeContext, applicationContext, resolver);
+ attributeContext, applicationContext);
}
/**
@@ -190,27 +186,25 @@
ApplicationContext applicationContext = createMock(ApplicationContext.class);
StringWriter writer = new StringWriter();
Attribute attribute = new Attribute("myValue");
- ContextResolver resolver = createMock(ContextResolver.class);
+
Map<String, Object> requestScope = new HashMap<String, Object>();
Map<String, Object> applicationScope = new HashMap<String, Object>();
requestScope.put(TilesAccess.CURRENT_CONTAINER_ATTRIBUTE_NAME, container);
- applicationScope.put(ApplicationAccess.CONTEXT_RESOLVER_ATTRIBUTE, resolver);
+ expect(request.getAttribute(TilesAccess.CURRENT_CONTAINER_ATTRIBUTE_NAME)).andReturn(container);
expect(applicationContext.getApplicationScope()).andReturn(applicationScope).anyTimes();
- expect(resolver.getContext(isA(VelocityRequest.class),
- eq("request"))).andReturn(requestScope).anyTimes();
expect(servletContext.getAttribute(ApplicationAccess
.APPLICATION_CONTEXT_ATTRIBUTE)).andReturn(applicationContext)
.anyTimes();
container.render(eq(attribute), isA(VelocityRequest.class));
replay(velocityContext, request, response, servletContext, container,
- internalContextAdapter, applicationContext, resolver);
+ internalContextAdapter, applicationContext);
initializeTool();
Renderable renderable = tool.render(attribute);
renderable.render(internalContextAdapter, writer);
verify(velocityContext, request, response, servletContext, container,
- internalContextAdapter, applicationContext, resolver);
+ internalContextAdapter, applicationContext);
}
/**
@@ -224,27 +218,25 @@
InternalContextAdapter internalContextAdapter = createMock(InternalContextAdapter.class);
ApplicationContext applicationContext = createMock(ApplicationContext.class);
StringWriter writer = new StringWriter();
- ContextResolver resolver = createMock(ContextResolver.class);
+
Map<String, Object> requestScope = new HashMap<String, Object>();
Map<String, Object> applicationScope = new HashMap<String, Object>();
requestScope.put(TilesAccess.CURRENT_CONTAINER_ATTRIBUTE_NAME, container);
- applicationScope.put(ApplicationAccess.CONTEXT_RESOLVER_ATTRIBUTE, resolver);
+ expect(request.getAttribute(TilesAccess.CURRENT_CONTAINER_ATTRIBUTE_NAME)).andReturn(container);
expect(applicationContext.getApplicationScope()).andReturn(applicationScope).anyTimes();
- expect(resolver.getContext(isA(VelocityRequest.class),
- eq("request"))).andReturn(requestScope).anyTimes();
expect(servletContext.getAttribute(ApplicationAccess
.APPLICATION_CONTEXT_ATTRIBUTE)).andReturn(applicationContext)
.anyTimes();
container.render(eq("myDefinition"), isA(VelocityRequest.class));
replay(velocityContext, request, response, servletContext, container,
- internalContextAdapter, applicationContext, resolver);
+ internalContextAdapter, applicationContext);
initializeTool();
Renderable renderable = tool.renderDefinition("myDefinition");
renderable.render(internalContextAdapter, writer);
verify(velocityContext, request, response, servletContext, container,
- internalContextAdapter, applicationContext, resolver);
+ internalContextAdapter, applicationContext);
}
/**
@@ -257,27 +249,25 @@
InternalContextAdapter internalContextAdapter = createMock(InternalContextAdapter.class);
ApplicationContext applicationContext = createMock(ApplicationContext.class);
StringWriter writer = new StringWriter();
- ContextResolver resolver = createMock(ContextResolver.class);
+
Map<String, Object> requestScope = new HashMap<String, Object>();
Map<String, Object> applicationScope = new HashMap<String, Object>();
requestScope.put(TilesAccess.CURRENT_CONTAINER_ATTRIBUTE_NAME, container);
- applicationScope.put(ApplicationAccess.CONTEXT_RESOLVER_ATTRIBUTE, resolver);
+ expect(request.getAttribute(TilesAccess.CURRENT_CONTAINER_ATTRIBUTE_NAME)).andReturn(container);
expect(applicationContext.getApplicationScope()).andReturn(applicationScope).anyTimes();
- expect(resolver.getContext(isA(VelocityRequest.class),
- eq("request"))).andReturn(requestScope).anyTimes();
expect(servletContext.getAttribute(ApplicationAccess
.APPLICATION_CONTEXT_ATTRIBUTE)).andReturn(applicationContext)
.anyTimes();
container.renderContext(isA(VelocityRequest.class));
replay(velocityContext, request, response, servletContext, container,
- internalContextAdapter, applicationContext, resolver);
+ internalContextAdapter, applicationContext);
initializeTool();
Renderable renderable = tool.renderAttributeContext();
renderable.render(internalContextAdapter, writer);
verify(velocityContext, request, response, servletContext, container,
- internalContextAdapter, applicationContext, resolver);
+ internalContextAdapter, applicationContext);
}
/**
@@ -288,15 +278,13 @@
TilesContainer container = createMock(TilesContainer.class);
AttributeContext attributeContext = createMock(AttributeContext.class);
ApplicationContext applicationContext = createMock(ApplicationContext.class);
- ContextResolver resolver = createMock(ContextResolver.class);
+
Map<String, Object> requestScope = new HashMap<String, Object>();
Map<String, Object> applicationScope = new HashMap<String, Object>();
requestScope.put(TilesAccess.CURRENT_CONTAINER_ATTRIBUTE_NAME, container);
- applicationScope.put(ApplicationAccess.CONTEXT_RESOLVER_ATTRIBUTE, resolver);
+ expect(request.getAttribute(TilesAccess.CURRENT_CONTAINER_ATTRIBUTE_NAME)).andReturn(container);
expect(applicationContext.getApplicationScope()).andReturn(applicationScope).anyTimes();
- expect(resolver.getContext(isA(VelocityRequest.class),
- eq("request"))).andReturn(requestScope).anyTimes();
expect(servletContext.getAttribute(ApplicationAccess
.APPLICATION_CONTEXT_ATTRIBUTE)).andReturn(applicationContext)
.anyTimes();
@@ -304,11 +292,11 @@
.andReturn(attributeContext);
replay(velocityContext, request, response, servletContext, container,
- attributeContext, applicationContext, resolver);
+ attributeContext, applicationContext);
initializeTool();
assertEquals(attributeContext, tool.startAttributeContext());
verify(velocityContext, request, response, servletContext, container,
- attributeContext, applicationContext, resolver);
+ attributeContext, applicationContext);
}
/**
@@ -319,26 +307,24 @@
TilesContainer container = createMock(TilesContainer.class);
AttributeContext attributeContext = createMock(AttributeContext.class);
ApplicationContext applicationContext = createMock(ApplicationContext.class);
- ContextResolver resolver = createMock(ContextResolver.class);
+
Map<String, Object> requestScope = new HashMap<String, Object>();
Map<String, Object> applicationScope = new HashMap<String, Object>();
requestScope.put(TilesAccess.CURRENT_CONTAINER_ATTRIBUTE_NAME, container);
- applicationScope.put(ApplicationAccess.CONTEXT_RESOLVER_ATTRIBUTE, resolver);
+ expect(request.getAttribute(TilesAccess.CURRENT_CONTAINER_ATTRIBUTE_NAME)).andReturn(container);
expect(applicationContext.getApplicationScope()).andReturn(applicationScope).anyTimes();
- expect(resolver.getContext(isA(VelocityRequest.class),
- eq("request"))).andReturn(requestScope).anyTimes();
expect(servletContext.getAttribute(ApplicationAccess
.APPLICATION_CONTEXT_ATTRIBUTE)).andReturn(applicationContext)
.anyTimes();
container.endContext(isA(VelocityRequest.class));
replay(velocityContext, request, response, servletContext, container,
- attributeContext, applicationContext, resolver);
+ attributeContext, applicationContext);
initializeTool();
tool.endAttributeContext();
verify(velocityContext, request, response, servletContext, container,
- attributeContext, applicationContext, resolver);
+ attributeContext, applicationContext);
}
/**
@@ -349,15 +335,13 @@
TilesContainer container = createMock(TilesContainer.class);
AttributeContext attributeContext = createMock(AttributeContext.class);
ApplicationContext applicationContext = createMock(ApplicationContext.class);
- ContextResolver resolver = createMock(ContextResolver.class);
+
Map<String, Object> requestScope = new HashMap<String, Object>();
Map<String, Object> applicationScope = new HashMap<String, Object>();
requestScope.put(TilesAccess.CURRENT_CONTAINER_ATTRIBUTE_NAME, container);
- applicationScope.put(ApplicationAccess.CONTEXT_RESOLVER_ATTRIBUTE, resolver);
+ expect(request.getAttribute(TilesAccess.CURRENT_CONTAINER_ATTRIBUTE_NAME)).andReturn(container);
expect(applicationContext.getApplicationScope()).andReturn(applicationScope).anyTimes();
- expect(resolver.getContext(isA(VelocityRequest.class),
- eq("request"))).andReturn(requestScope).anyTimes();
expect(servletContext.getAttribute(ApplicationAccess
.APPLICATION_CONTEXT_ATTRIBUTE)).andReturn(applicationContext)
.anyTimes();
@@ -365,11 +349,11 @@
.andReturn(attributeContext);
replay(velocityContext, request, response, servletContext, container,
- attributeContext, applicationContext, resolver);
+ attributeContext, applicationContext);
initializeTool();
assertEquals(attributeContext, tool.getAttributeContext());
verify(velocityContext, request, response, servletContext, container,
- attributeContext, applicationContext, resolver);
+ attributeContext, applicationContext);
}
/**
@@ -382,22 +366,21 @@
ApplicationContext applicationContext = createMock(ApplicationContext.class);
Map<String, Object> applicationScope = new HashMap<String, Object>();
applicationScope.put("myKey", container);
- ContextResolver resolver = createMock(ContextResolver.class);
- Map<String, Object> requestScope = new HashMap<String, Object>();
- applicationScope.put(ApplicationAccess.CONTEXT_RESOLVER_ATTRIBUTE, resolver);
+ Map<String, Object> requestScope = new HashMap<String, Object>();
+ requestScope.put(TilesAccess.CURRENT_CONTAINER_ATTRIBUTE_NAME, container);
+ request.setAttribute(TilesAccess.CURRENT_CONTAINER_ATTRIBUTE_NAME, container);
+ expect(request.getAttribute(TilesAccess.CURRENT_CONTAINER_ATTRIBUTE_NAME)).andReturn(container);
expect(applicationContext.getApplicationScope()).andReturn(applicationScope).anyTimes();
- expect(resolver.getContext(isA(VelocityRequest.class),
- eq("request"))).andReturn(requestScope).anyTimes();
expect(servletContext.getAttribute(ApplicationAccess
.APPLICATION_CONTEXT_ATTRIBUTE)).andReturn(applicationContext)
.anyTimes();
- replay(velocityContext, request, response, servletContext, container, applicationContext, resolver);
+ replay(velocityContext, request, response, servletContext, container, applicationContext);
initializeTool();
assertEquals(tool, tool.setCurrentContainer("myKey"));
assertEquals(container, requestScope.get(TilesAccess.CURRENT_CONTAINER_ATTRIBUTE_NAME));
- verify(velocityContext, request, response, servletContext, container, applicationContext, resolver);
+ verify(velocityContext, request, response, servletContext, container, applicationContext);
}
/**
diff --git a/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/AbstractClientRequest.java b/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/AbstractClientRequest.java
index 23efd77..f74087e 100644
--- a/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/AbstractClientRequest.java
+++ b/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/AbstractClientRequest.java
@@ -21,9 +21,9 @@
package org.apache.tiles.request;
import java.io.IOException;
+import java.util.List;
import java.util.Map;
-import org.apache.tiles.request.scope.ContextResolver;
/**
* Base class for "client" requests, i.e. requests that come unchanged by the
@@ -70,15 +70,8 @@
}
@Override
- public Map<String, Object> getContext(String scope) {
- ContextResolver resolver = ApplicationAccess.getContextResolver(applicationContext);
- return resolver.getContext(this, scope);
- }
-
- @Override
- public String[] getAvailableScopes() {
- ContextResolver resolver = ApplicationAccess.getContextResolver(applicationContext);
- return resolver.getAvailableScopes(this);
+ public List<String> getAvailableScopes() {
+ return getNativeScopes();
}
/**
diff --git a/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/ApplicationAccess.java b/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/ApplicationAccess.java
index ba69e19..260e791 100644
--- a/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/ApplicationAccess.java
+++ b/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/ApplicationAccess.java
@@ -20,7 +20,6 @@
*/
package org.apache.tiles.request;
-import org.apache.tiles.request.scope.ContextResolver;
/**
* Entry point to get information about the application.
@@ -36,12 +35,6 @@
ApplicationContext.class.getName() + ".ATTRIBUTE";
/**
- * The attribute name containing the context resolver.
- */
- public static final String CONTEXT_RESOLVER_ATTRIBUTE =
- ContextResolver.class.getName() + ".ATTRIBUTE";
-
- /**
* Constructor.
*/
private ApplicationAccess() {
@@ -58,28 +51,4 @@
APPLICATION_CONTEXT_ATTRIBUTE, applicationContext);
}
- /**
- * Registers a context resolver. It will be registered into application context as an
- * attribute, using the {@link #CONTEXT_RESOLVER_ATTRIBUTE} name.
- *
- * @param contextResolver The context resolver to register.
- * @param applicationContext The application context to register.
- */
- public static void registerContextResolver(ContextResolver contextResolver,
- ApplicationContext applicationContext) {
- applicationContext.getApplicationScope().put(
- CONTEXT_RESOLVER_ATTRIBUTE, contextResolver);
- }
-
- /**
- * Returns the context resolver.
- *
- * @param applicationContext The application context.
- * @return The context resolver.
- */
- public static ContextResolver getContextResolver(
- ApplicationContext applicationContext) {
- return (ContextResolver) applicationContext.getApplicationScope().get(
- CONTEXT_RESOLVER_ATTRIBUTE);
- }
}
diff --git a/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/DefaultRequestWrapper.java b/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/DefaultRequestWrapper.java
index 89a4ecf..e36b979 100644
--- a/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/DefaultRequestWrapper.java
+++ b/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/DefaultRequestWrapper.java
@@ -25,11 +25,12 @@
import java.io.OutputStream;
import java.io.PrintWriter;
import java.io.Writer;
+import java.util.Collections;
+import java.util.List;
import java.util.Locale;
import java.util.Map;
import org.apache.tiles.request.attribute.Addable;
-import org.apache.tiles.request.scope.ContextResolver;
/**
* Delegate for ease of customization.
@@ -121,20 +122,16 @@
/** {@inheritDoc} */
public Map<String, Object> getContext(String scope) {
- ContextResolver resolver = ApplicationAccess.getContextResolver(context
- .getApplicationContext());
- return resolver.getContext(this, scope);
+ return context.getContext(scope);
}
/** {@inheritDoc} */
- public String[] getNativeScopes() {
- return null;
+ public List<String> getNativeScopes() {
+ return Collections.<String>emptyList();
}
/** {@inheritDoc} */
- public String[] getAvailableScopes() {
- ContextResolver resolver = ApplicationAccess.getContextResolver(context
- .getApplicationContext());
- return resolver.getAvailableScopes(this);
+ public List<String> getAvailableScopes() {
+ return context.getAvailableScopes();
}
}
diff --git a/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/DispatchRequestWrapper.java b/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/DispatchRequestWrapper.java
index 58d7fc8..6ccb779 100644
--- a/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/DispatchRequestWrapper.java
+++ b/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/DispatchRequestWrapper.java
@@ -24,11 +24,12 @@
import java.io.OutputStream;
import java.io.PrintWriter;
import java.io.Writer;
+import java.util.Collections;
+import java.util.List;
import java.util.Locale;
import java.util.Map;
import org.apache.tiles.request.attribute.Addable;
-import org.apache.tiles.request.scope.ContextResolver;
/**
* Delegate for ease of customization.
@@ -75,21 +76,17 @@
/** {@inheritDoc} */
public Map<String, Object> getContext(String scope) {
- ContextResolver resolver = ApplicationAccess.getContextResolver(context
- .getApplicationContext());
- return resolver.getContext(this, scope);
+ return context.getContext(scope);
}
/** {@inheritDoc} */
- public String[] getNativeScopes() {
- return null;
+ public List<String> getNativeScopes() {
+ return Collections.<String>emptyList();
}
/** {@inheritDoc} */
- public String[] getAvailableScopes() {
- ContextResolver resolver = ApplicationAccess.getContextResolver(context
- .getApplicationContext());
- return resolver.getAvailableScopes(this);
+ public List<String> getAvailableScopes() {
+ return context.getAvailableScopes();
}
/** {@inheritDoc} */
diff --git a/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/Request.java b/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/Request.java
index a81a087..3ce93c9 100644
--- a/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/Request.java
+++ b/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/Request.java
@@ -24,6 +24,7 @@
import java.io.OutputStream;
import java.io.PrintWriter;
import java.io.Writer;
+import java.util.List;
import java.util.Locale;
import java.util.Map;
@@ -77,7 +78,7 @@
*
* @return The native scopes.
*/
- String[] getNativeScopes();
+ List<String> getNativeScopes();
/**
* Returns all available scopes, that are the ones returned by
@@ -85,7 +86,7 @@
*
* @return All the available scopes.
*/
- String[] getAvailableScopes();
+ List<String> getAvailableScopes();
/**
* Returns the associated application context.
diff --git a/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/scope/ContextResolver.java b/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/scope/ContextResolver.java
deleted file mode 100644
index 3005fe2..0000000
--- a/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/scope/ContextResolver.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.scope;
-
-import java.util.Map;
-
-import org.apache.tiles.request.Request;
-
-/**
- * Allows to retrieve scopes managed into a request.
- *
- * @version $Rev$ $Date$
- */
-public interface ContextResolver {
-
- /**
- * Returns a scope map (context) given the request and the scope name.
- *
- * @param request The request.
- * @param scope The name of the scope.
- * @return The context, if present.
- */
- Map<String, Object> getContext(Request request, String scope);
-
- /**
- * Returns the name of all available scopes.
- *
- * @param request The request.
- * @return All the available scopes.
- */
- String[] getAvailableScopes(Request request);
-}
diff --git a/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/scope/NoSuchScopeException.java b/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/scope/NoSuchScopeException.java
deleted file mode 100644
index e6eaf07..0000000
--- a/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/scope/NoSuchScopeException.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.scope;
-
-import org.apache.tiles.request.RequestException;
-
-/**
- * Thrown when a scope cannot be found.
- *
- * @version $Rev$ $Date$
- */
-public class NoSuchScopeException extends RequestException {
-
- /**
- * Constructor.
- */
- public NoSuchScopeException() {
- }
-
- /**
- * Constructor.
- *
- * @param message The message of the exception.
- */
- public NoSuchScopeException(String message) {
- super(message);
- }
-
- /**
- * Constructor.
- *
- * @param cause The cause.
- */
- public NoSuchScopeException(Throwable cause) {
- super(cause);
- }
-
- /**
- * Constructor.
- *
- * @param message The message of the exception.
- * @param cause The cause.
- */
- public NoSuchScopeException(String message, Throwable cause) {
- super(message, cause);
- }
-
-}
diff --git a/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/scope/ReflectionContextResolver.java b/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/scope/ReflectionContextResolver.java
index 1d6fcaa..0cfdc29 100644
--- a/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/scope/ReflectionContextResolver.java
+++ b/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/scope/ReflectionContextResolver.java
@@ -37,7 +37,7 @@
*
* @version $Rev$ $Date$
*/
-public class ReflectionContextResolver implements ContextResolver {
+public final class ReflectionContextResolver{
/**
* Maps a request class to all available scopes.
@@ -45,8 +45,6 @@
private Map<Class<? extends Request>, Set<String>> class2scopes =
new HashMap<Class<? extends Request>, Set<String>>();
- @SuppressWarnings("unchecked")
- @Override
public Map<String, Object> getContext(Request request, String scope) {
String methodName = "get" + Character.toUpperCase(scope.charAt(0))
+ scope.substring(1) + "Scope";
@@ -58,31 +56,30 @@
RequestWrapper wrapper = (RequestWrapper) request;
return getContext(wrapper.getWrappedRequest(), scope);
}
- throw new NoSuchScopeException("No accessor method for '" + scope
+ throw new IllegalArgumentException("No accessor method for '" + scope
+ "' scope.", e);
}
try {
return (Map<String, Object>) method.invoke(request);
} catch (IllegalAccessException e) {
// Should not ever happen, since method is public.
- throw new NoSuchScopeException("No accessible method for '" + scope
+ throw new IllegalArgumentException("No accessible method for '" + scope
+ "' scope.", e);
} catch (InvocationTargetException e) {
- throw new NoSuchScopeException(
+ throw new IllegalArgumentException(
"Exception during execution of accessor method for '"
+ scope + "' scope.", e);
}
}
- @Override
- public String[] getAvailableScopes(Request request) {
+ public String[] getAvailableScopes(Request r) {
+ Request request = r;
Set<String> scopes = new LinkedHashSet<String>();
boolean finished = false;
do {
scopes.addAll(getSpecificScopeSet(request));
if (request instanceof RequestWrapper) {
- request = ((RequestWrapper) request)
- .getWrappedRequest();
+ request = ((RequestWrapper) request).getWrappedRequest();
} else {
finished = true;
}
@@ -102,11 +99,8 @@
Set<String> scopes = class2scopes.get(request.getClass());
if (scopes == null) {
scopes = new LinkedHashSet<String>();
- String[] nativeScopes = request.getNativeScopes();
- if (nativeScopes != null) {
- for (String scopeName : nativeScopes) {
- scopes.add(scopeName);
- }
+ for (String scopeName : request.getNativeScopes()) {
+ scopes.add(scopeName);
}
class2scopes.put(request.getClass(), scopes);
}
diff --git a/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/AbstractClientRequestTest.java b/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/AbstractClientRequestTest.java
index 1d11153..9a62e8a 100644
--- a/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/AbstractClientRequestTest.java
+++ b/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/AbstractClientRequestTest.java
@@ -24,10 +24,10 @@
import static org.junit.Assert.*;
import java.io.IOException;
+import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
-import org.apache.tiles.request.scope.ContextResolver;
import org.junit.Before;
import org.junit.Test;
@@ -54,19 +54,12 @@
private Map<String, Object> applicationScope;
/**
- * The context resolver.
- */
- private ContextResolver contextResolver;
-
- /**
* Sets up the test.
*/
@Before
public void setUp() {
applicationContext = createMock(ApplicationContext.class);
applicationScope = new HashMap<String, Object>();
- contextResolver = createMock(ContextResolver.class);
- applicationScope.put(ApplicationAccess.CONTEXT_RESOLVER_ATTRIBUTE, contextResolver);
request = createMockBuilder(AbstractClientRequest.class)
.withConstructor(applicationContext).createMock();
@@ -81,15 +74,14 @@
public void testDispatch() throws IOException {
Map<String, Object> requestScope = new HashMap<String, Object>();
- expect(contextResolver.getContext(request, "request")).andReturn(
- requestScope).anyTimes();
+ expect(request.getContext("request")).andReturn(requestScope).anyTimes();
request.doForward("/my/path.html");
request.doInclude("/my/path2.html");
- replay(request, applicationContext, contextResolver);
+ replay(request, applicationContext);
request.dispatch("/my/path.html");
request.dispatch("/my/path2.html");
- verify(request, applicationContext, contextResolver);
+ verify(request, applicationContext);
}
/**
@@ -100,14 +92,13 @@
public void testInclude() throws IOException {
Map<String, Object> requestScope = new HashMap<String, Object>();
- expect(contextResolver.getContext(request, "request")).andReturn(
- requestScope).anyTimes();
+ expect(request.getContext("request")).andReturn(requestScope).anyTimes();
request.doInclude("/my/path2.html");
- replay(request, applicationContext, contextResolver);
+ replay(request, applicationContext);
request.include("/my/path2.html");
- assertTrue((Boolean) requestScope.get(AbstractRequest.FORCE_INCLUDE_ATTRIBUTE_NAME));
- verify(request, applicationContext, contextResolver);
+ assertTrue((Boolean)request.getContext("request").get(AbstractRequest.FORCE_INCLUDE_ATTRIBUTE_NAME));
+ verify(request, applicationContext);
}
/**
@@ -115,9 +106,9 @@
*/
@Test
public void testGetApplicationContext() {
- replay(request, applicationContext, contextResolver);
+ replay(request, applicationContext);
assertEquals(applicationContext, request.getApplicationContext());
- verify(request, applicationContext, contextResolver);
+ verify(request, applicationContext);
}
/**
@@ -128,11 +119,11 @@
public void testGetContext() {
Map<String, Object> scope = createMock(Map.class);
- expect(contextResolver.getContext(request, "myScope")).andReturn(scope);
+ expect(request.getContext("myScope")).andReturn(scope);
- replay(request, applicationContext, contextResolver, scope);
+ replay(request, applicationContext, scope);
assertEquals(scope, request.getContext("myScope"));
- verify(request, applicationContext, contextResolver, scope);
+ verify(request, applicationContext, scope);
}
/**
@@ -142,11 +133,11 @@
public void testGetAvailableScopes() {
String[] scopes = new String[] {"one", "two", "three"};
- expect(contextResolver.getAvailableScopes(request)).andReturn(scopes);
+ expect(request.getAvailableScopes()).andReturn(Arrays.asList(scopes));
- replay(request, applicationContext, contextResolver);
- assertArrayEquals(scopes, request.getAvailableScopes());
- verify(request, applicationContext, contextResolver);
+ replay(request, applicationContext);
+ assertArrayEquals(scopes, request.getAvailableScopes().toArray());
+ verify(request, applicationContext);
}
/**
@@ -154,9 +145,9 @@
*/
@Test
public void testGetApplicationScope() {
- replay(request, applicationContext, contextResolver);
+ replay(request, applicationContext);
assertEquals(applicationScope, request.getApplicationScope());
- verify(request, applicationContext, contextResolver);
+ verify(request, applicationContext);
}
}
diff --git a/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/AbstractViewRequestTest.java b/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/AbstractViewRequestTest.java
index 26e3a30..283648d 100644
--- a/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/AbstractViewRequestTest.java
+++ b/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/AbstractViewRequestTest.java
@@ -27,7 +27,6 @@
import java.util.HashMap;
import java.util.Map;
-import org.apache.tiles.request.scope.ContextResolver;
import org.junit.Before;
import org.junit.Test;
@@ -54,11 +53,6 @@
private ApplicationContext applicationContext;
/**
- * The context resolver.
- */
- private ContextResolver contextResolver;
-
- /**
* The application scope.
*/
private Map<String, Object> applicationScope;
@@ -73,8 +67,6 @@
wrappedRequest).createMock();
applicationContext = createMock(ApplicationContext.class);
applicationScope = new HashMap<String, Object>();
- contextResolver = createMock(ContextResolver.class);
- applicationScope.put(ApplicationAccess.CONTEXT_RESOLVER_ATTRIBUTE, contextResolver);
expect(wrappedRequest.getApplicationContext()).andReturn(applicationContext).anyTimes();
expect(applicationContext.getApplicationScope()).andReturn(applicationScope).anyTimes();
@@ -88,13 +80,13 @@
public void testDispatch() throws IOException {
Map<String, Object> requestScope = new HashMap<String, Object>();
- expect(contextResolver.getContext(isA(Request.class), eq("request"))).andReturn(requestScope);
+ expect(request.getContext("request")).andReturn(requestScope);
wrappedRequest.include("/my/path.html");
- replay(wrappedRequest, request, applicationContext, contextResolver);
+ replay(wrappedRequest, request, applicationContext);
request.dispatch("/my/path.html");
assertTrue((Boolean) requestScope.get(AbstractRequest.FORCE_INCLUDE_ATTRIBUTE_NAME));
- verify(wrappedRequest, request, applicationContext, contextResolver);
+ verify(wrappedRequest, request, applicationContext);
}
/**
@@ -105,13 +97,13 @@
public void testInclude() throws IOException {
Map<String, Object> requestScope = new HashMap<String, Object>();
- expect(contextResolver.getContext(isA(Request.class), eq("request"))).andReturn(requestScope);
+ expect(request.getContext("request")).andReturn(requestScope);
wrappedRequest.include("/my/path.html");
- replay(wrappedRequest, request, applicationContext, contextResolver);
+ replay(wrappedRequest, request, applicationContext);
request.include("/my/path.html");
assertTrue((Boolean) requestScope.get(AbstractRequest.FORCE_INCLUDE_ATTRIBUTE_NAME));
- verify(wrappedRequest, request, applicationContext, contextResolver);
+ verify(wrappedRequest, request, applicationContext);
}
/**
@@ -122,9 +114,9 @@
public void testDoInclude() throws IOException {
wrappedRequest.include("/my/path.html");
- replay(wrappedRequest, request, applicationContext, contextResolver);
+ replay(wrappedRequest, request, applicationContext);
request.doInclude("/my/path.html");
- verify(wrappedRequest, request, applicationContext, contextResolver);
+ verify(wrappedRequest, request, applicationContext);
}
}
diff --git a/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/ApplicationAccessTest.java b/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/ApplicationAccessTest.java
index 5ca56c2..4d4de4c 100644
--- a/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/ApplicationAccessTest.java
+++ b/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/ApplicationAccessTest.java
@@ -20,14 +20,11 @@
*/
package org.apache.tiles.request;
-import org.apache.tiles.request.ApplicationAccess;
import static org.junit.Assert.*;
import static org.easymock.EasyMock.*;
import java.util.Map;
-import org.apache.tiles.request.ApplicationContext;
-import org.apache.tiles.request.scope.ContextResolver;
import org.junit.Test;
/**
@@ -55,42 +52,4 @@
verify(applicationContext, applicationScope);
}
- /**
- * Test method for {@link ApplicationAccess#registerContextResolver(ContextResolver, ApplicationContext)}.
- */
- @SuppressWarnings("unchecked")
- @Test
- public void testRegisterContextResolver() {
- ApplicationContext applicationContext = createMock(ApplicationContext.class);
- Map<String, Object> applicationScope = createMock(Map.class);
- ContextResolver contextResolver = createMock(ContextResolver.class);
-
- expect(applicationContext.getApplicationScope()).andReturn(applicationScope);
- expect(applicationScope.put(ApplicationAccess
- .CONTEXT_RESOLVER_ATTRIBUTE, contextResolver)).andReturn(null);
-
- replay(applicationContext, applicationScope, contextResolver);
- ApplicationAccess.registerContextResolver(contextResolver, applicationContext);
- verify(applicationContext, applicationScope, contextResolver);
- }
-
- /**
- * Test method for {@link ApplicationAccess#getContextResolver(ApplicationContext)}.
- */
- @SuppressWarnings("unchecked")
- @Test
- public void testGetContextResolver() {
- ApplicationContext applicationContext = createMock(ApplicationContext.class);
- Map<String, Object> applicationScope = createMock(Map.class);
- ContextResolver contextResolver = createMock(ContextResolver.class);
-
- expect(applicationContext.getApplicationScope()).andReturn(applicationScope);
- expect(applicationScope.get(ApplicationAccess
- .CONTEXT_RESOLVER_ATTRIBUTE)).andReturn(contextResolver);
-
- replay(applicationContext, applicationScope, contextResolver);
- assertEquals(contextResolver, ApplicationAccess.getContextResolver(applicationContext));
- verify(applicationContext, applicationScope, contextResolver);
- }
-
}
diff --git a/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/ApplicationContextWrapperTest.java b/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/ApplicationContextWrapperTest.java
index 4f896f6..4eabedb 100644
--- a/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/ApplicationContextWrapperTest.java
+++ b/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/ApplicationContextWrapperTest.java
@@ -20,7 +20,6 @@
*/
package org.apache.tiles.request;
-import org.apache.tiles.request.ApplicationContextWrapper;
import static org.easymock.EasyMock.*;
import static org.easymock.classextension.EasyMock.*;
import static org.junit.Assert.*;
@@ -30,7 +29,6 @@
import java.util.Map;
import java.util.Set;
-import org.apache.tiles.request.ApplicationContext;
import org.junit.Test;
/**
diff --git a/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/DefaultRequestWrapperTest.java b/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/DefaultRequestWrapperTest.java
index 90e4a55..58b7439 100644
--- a/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/DefaultRequestWrapperTest.java
+++ b/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/DefaultRequestWrapperTest.java
@@ -20,9 +20,6 @@
*/
package org.apache.tiles.request;
-import org.apache.tiles.request.RequestWrapper;
-import org.apache.tiles.request.ApplicationAccess;
-import org.apache.tiles.request.DefaultRequestWrapper;
import static org.easymock.EasyMock.expect;
import static org.easymock.classextension.EasyMock.createMock;
import static org.easymock.classextension.EasyMock.replay;
@@ -36,13 +33,11 @@
import java.io.OutputStream;
import java.io.PrintWriter;
import java.io.Writer;
+import java.util.Arrays;
import java.util.Locale;
import java.util.Map;
-import org.apache.tiles.request.ApplicationContext;
-import org.apache.tiles.request.Request;
import org.apache.tiles.request.attribute.Addable;
-import org.apache.tiles.request.scope.ContextResolver;
import org.junit.Test;
/**
@@ -145,20 +140,14 @@
public void testGetContext() {
Request wrappedRequest = createMockRequest();
Map<String, Object> context = createMock(Map.class);
- ApplicationContext applicationContext = createMock(ApplicationContext.class);
- ContextResolver resolver = createMock(ContextResolver.class);
- Map<String, Object> applicationScope = createMock(Map.class);
RequestWrapper request = createRequestWrapper(wrappedRequest);
- expect(wrappedRequest.getApplicationContext()).andReturn(applicationContext);
- expect(applicationContext.getApplicationScope()).andReturn(applicationScope);
- expect(applicationScope.get(ApplicationAccess.CONTEXT_RESOLVER_ATTRIBUTE)).andReturn(resolver);
- expect(resolver.getContext(request, "one")).andReturn(context);
+ expect(wrappedRequest.getContext("one")).andReturn(context);
- replay(wrappedRequest, context, applicationContext, resolver, applicationScope);
+ replay(wrappedRequest, context);
assertEquals(context, request.getContext("one"));
- verify(wrappedRequest, context, applicationContext, resolver, applicationScope);
+ verify(wrappedRequest, context);
}
/**
@@ -170,7 +159,7 @@
replay(wrappedRequest);
RequestWrapper request = createRequestWrapper(wrappedRequest);
- assertNull(request.getNativeScopes());
+ assertTrue(0 == request.getNativeScopes().size());
verify(wrappedRequest);
}
@@ -182,21 +171,15 @@
public void testGetAvailableScopes() {
Request wrappedRequest = createMockRequest();
Map<String, Object> context = createMock(Map.class);
- ApplicationContext applicationContext = createMock(ApplicationContext.class);
- ContextResolver resolver = createMock(ContextResolver.class);
- Map<String, Object> applicationScope = createMock(Map.class);
RequestWrapper request = createRequestWrapper(wrappedRequest);
- expect(wrappedRequest.getApplicationContext()).andReturn(applicationContext);
- expect(applicationContext.getApplicationScope()).andReturn(applicationScope);
- expect(applicationScope.get(ApplicationAccess.CONTEXT_RESOLVER_ATTRIBUTE)).andReturn(resolver);
String[] scopes = new String[] {"one", "two", "three"};
- expect(resolver.getAvailableScopes(request)).andReturn(scopes);
+ expect(wrappedRequest.getAvailableScopes()).andReturn(Arrays.asList(scopes));
- replay(wrappedRequest, context, applicationContext, resolver, applicationScope);
- assertArrayEquals(scopes, request.getAvailableScopes());
- verify(wrappedRequest, context, applicationContext, resolver, applicationScope);
+ replay(wrappedRequest, context);
+ assertArrayEquals(scopes, request.getAvailableScopes().toArray());
+ verify(wrappedRequest, context);
}
/**
diff --git a/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/DispatchRequestWrapperTest.java b/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/DispatchRequestWrapperTest.java
index dae1cfc..a9b05ad 100644
--- a/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/DispatchRequestWrapperTest.java
+++ b/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/DispatchRequestWrapperTest.java
@@ -20,15 +20,12 @@
*/
package org.apache.tiles.request;
-import org.apache.tiles.request.DispatchRequestWrapper;
import static org.easymock.classextension.EasyMock.createMock;
import static org.easymock.classextension.EasyMock.replay;
import static org.easymock.classextension.EasyMock.verify;
import java.io.IOException;
-import org.apache.tiles.request.Request;
-import org.apache.tiles.request.DispatchRequest;
import org.junit.Test;
/**
diff --git a/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/scope/NoSuchScopeExceptionTest.java b/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/scope/NoSuchScopeExceptionTest.java
deleted file mode 100644
index e5eceb4..0000000
--- a/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/scope/NoSuchScopeExceptionTest.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.tiles.request.scope;
-
-import static org.junit.Assert.*;
-
-import org.junit.Test;
-
-/**
- * Tests {@link NoSuchScopeException}.
- *
- * @version $Rev$ $Date$
- */
-public class NoSuchScopeExceptionTest {
-
- /**
- * Test method for {@link org.apache.tiles.request.scope.NoSuchScopeException#NoSuchScopeException()}.
- */
- @Test
- public void testNoSuchScopeException() {
- NoSuchScopeException exception = new NoSuchScopeException();
- assertNull(exception.getMessage());
- assertNull(exception.getCause());
- }
-
- /**
- * Test method for {@link NoSuchScopeException#NoSuchScopeException(String)}.
- */
- @Test
- public void testNoSuchScopeExceptionString() {
- NoSuchScopeException exception = new NoSuchScopeException("my message");
- assertEquals("my message", exception.getMessage());
- assertNull(exception.getCause());
- }
-
- /**
- * Test method for {@link NoSuchScopeException#NoSuchScopeException(Throwable)}.
- */
- @Test
- public void testNoSuchScopeExceptionThrowable() {
- Throwable cause = new Throwable();
- NoSuchScopeException exception = new NoSuchScopeException(cause);
- assertEquals(cause.toString(), exception.getMessage());
- assertEquals(cause, exception.getCause());
- }
-
- /**
- * Test method for {@link NoSuchScopeException#NoSuchScopeException(String, Throwable)}.
- */
- @Test
- public void testNoSuchScopeExceptionStringThrowable() {
- Throwable cause = new Throwable();
- NoSuchScopeException exception = new NoSuchScopeException("my message", cause);
- assertEquals("my message", exception.getMessage());
- assertEquals(cause, exception.getCause());
- }
-
-}
diff --git a/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/scope/ReflectionContextResolverTest.java b/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/scope/ReflectionContextResolverTest.java
deleted file mode 100644
index 24ec077..0000000
--- a/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/scope/ReflectionContextResolverTest.java
+++ /dev/null
@@ -1,308 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.scope;
-
-import static org.junit.Assert.*;
-import static org.easymock.EasyMock.*;
-
-import java.io.OutputStream;
-import java.io.PrintWriter;
-import java.io.Writer;
-import java.util.Locale;
-import java.util.Map;
-
-import org.apache.tiles.request.ApplicationContext;
-import org.apache.tiles.request.Request;
-import org.apache.tiles.request.attribute.Addable;
-import org.apache.tiles.request.DefaultRequestWrapper;
-import org.apache.tiles.request.RequestWrapper;
-import org.junit.Before;
-import org.junit.Test;
-
-/**
- * Tests {@link ReflectionContextResolver}.
- *
- * @version $Rev$ $Date$
- */
-public class ReflectionContextResolverTest {
-
- /**
- * The scopes.
- */
- private static final String [] SCOPES = new String[] {"one", "two", "three"};
-
- /**
- * The resolver to test.
- */
- private ReflectionContextResolver resolver;
-
- /**
- * One scope.
- */
- private Map<String, Object> oneScope;
- /**
- * Two scope.
- */
- private Map<String, Object> twoScope;
- /**
- * Three scope.
- */
- private Map<String, Object> threeScope;
-
- /**
- * The request.
- */
- private Request request;
-
- /**
- * Initializes the test.
- */
- @SuppressWarnings("unchecked")
- @Before
- public void setUp() {
- resolver = new ReflectionContextResolver();
- oneScope = createMock(Map.class);
- twoScope = createMock(Map.class);
- threeScope = createMock(Map.class);
- request = new SampleRequest(oneScope, twoScope, threeScope);
- }
-
- /**
- * Test method for {@link ReflectionContextResolver#getContext(org.apache.tiles.request.Request, java.lang.String)}.
- */
- @Test
- public void testGetContext() {
- replay(oneScope, twoScope, threeScope);
- assertEquals(oneScope, resolver.getContext(request, "one"));
- assertEquals(twoScope, resolver.getContext(request, "two"));
- assertEquals(threeScope, resolver.getContext(request, "three"));
- verify(oneScope, twoScope, threeScope);
- }
-
- /**
- * Test method for {@link ReflectionContextResolver#getContext(org.apache.tiles.request.Request, java.lang.String)}.
- */
- @Test
- public void testGetContextWrapped() {
- replay(oneScope, twoScope, threeScope);
- RequestWrapper wrapper = new DefaultRequestWrapper(request);
- assertEquals(oneScope, resolver.getContext(wrapper, "one"));
- assertEquals(twoScope, resolver.getContext(wrapper, "two"));
- assertEquals(threeScope, resolver.getContext(wrapper, "three"));
- verify(oneScope, twoScope, threeScope);
- }
-
- /**
- * Test method for {@link ReflectionContextResolver#getContext(org.apache.tiles.request.Request, java.lang.String)}.
- */
- @Test(expected = NoSuchScopeException.class)
- public void testGetContextException() {
- resolver.getContext(request, "none");
- }
-
- /**
- * Test method for {@link ReflectionContextResolver#getContext(org.apache.tiles.request.Request, java.lang.String)}.
- */
- @Test(expected = NoSuchScopeException.class)
- public void testGetContextException2() {
- resolver.getContext(request, "private");
- }
-
- /**
- * Test method for {@link ReflectionContextResolver#getContext(org.apache.tiles.request.Request, java.lang.String)}.
- */
- @Test(expected = NoSuchScopeException.class)
- public void testGetContextException3() {
- resolver.getContext(request, "unavailable");
- }
-
- /**
- * Test method for {@link ReflectionContextResolver#getAvailableScopes(org.apache.tiles.request.Request)}.
- */
- @Test
- public void testGetAvailableScopes() {
- replay(oneScope, twoScope, threeScope);
- assertArrayEquals(SCOPES, resolver.getAvailableScopes(request));
- verify(oneScope, twoScope, threeScope);
- }
-
- /**
- * Test method for {@link ReflectionContextResolver#getAvailableScopes(org.apache.tiles.request.Request)}.
- */
- @Test
- public void testGetAvailableScopesWrapped() {
- replay(oneScope, twoScope, threeScope);
- RequestWrapper wrapper = new DefaultRequestWrapper(request);
- assertArrayEquals(SCOPES, resolver.getAvailableScopes(wrapper));
- verify(oneScope, twoScope, threeScope);
- }
-
- /**
- * A sample request.
- */
- public static class SampleRequest implements Request {
-
- /**
- * The scopes.
- */
- private static final String [] SCOPES = new String[] {"one", "two", "three"};
-
- /**
- * The scope maps.
- */
- private Map<String, Object> oneScope, twoScope, threeScope;
-
- /**
- * Constructor.
- *
- * @param oneScope Scope one.
- * @param twoScope Scope two.
- * @param threeScope Scope three.
- */
- public SampleRequest(Map<String, Object> oneScope,
- Map<String, Object> twoScope, Map<String, Object> threeScope) {
- this.oneScope = oneScope;
- this.twoScope = twoScope;
- this.threeScope = threeScope;
- }
-
- @Override
- public String[] getNativeScopes() {
- return SCOPES;
- }
-
- @Override
- public String[] getAvailableScopes() {
- return SCOPES;
- }
-
- /**
- * Returns one scope.
- *
- * @return One scope.
- */
- public Map<String, Object> getOneScope() {
- return oneScope;
- }
-
- /**
- * Returns two scope.
- *
- * @return Two scope.
- */
- public Map<String, Object> getTwoScope() {
- return twoScope;
- }
-
- /**
- * Returns three scope.
- *
- * @return Three scope.
- */
- public Map<String, Object> getThreeScope() {
- return threeScope;
- }
-
- /**
- * Returns a private scope.
- *
- * @return A private, unused, scope.
- */
- @SuppressWarnings("unused")
- private Map<String, Object> getPrivateScope() {
- return null;
- }
-
- /**
- * Returns an unavailable scope.
- *
- * @return The unavailable scope, raising exception.
- */
- public Map<String, Object> getUnavailableScope() {
- throw new UnsupportedOperationException("No way!");
- }
-
- @Override
- public ApplicationContext getApplicationContext() {
- return null;
- }
-
- @Override
- public Map<String, Object> getContext(String scope) {
- return null;
- }
-
- @Override
- public Map<String, String> getHeader() {
- return null;
- }
-
- @Override
- public Map<String, String[]> getHeaderValues() {
- return null;
- }
-
- @Override
- public Addable<String> getResponseHeaders() {
- return null;
- }
-
- @Override
- public OutputStream getOutputStream() {
- return null;
- }
-
- @Override
- public Map<String, String> getParam() {
- return null;
- }
-
- @Override
- public Map<String, String[]> getParamValues() {
- return null;
- }
-
- @Override
- public PrintWriter getPrintWriter() {
- return null;
- }
-
- @Override
- public Locale getRequestLocale() {
- return null;
- }
-
- @Override
- public Writer getWriter() {
- return null;
- }
-
- @Override
- public boolean isResponseCommitted() {
- return false;
- }
-
- @Override
- public boolean isUserInRole(String role) {
- return false;
- }
- }
-}
diff --git a/tiles-request/tiles-request-freemarker/src/main/java/org/apache/tiles/request/freemarker/FreemarkerRequest.java b/tiles-request/tiles-request-freemarker/src/main/java/org/apache/tiles/request/freemarker/FreemarkerRequest.java
index 883ac26..8812882 100644
--- a/tiles-request/tiles-request-freemarker/src/main/java/org/apache/tiles/request/freemarker/FreemarkerRequest.java
+++ b/tiles-request/tiles-request-freemarker/src/main/java/org/apache/tiles/request/freemarker/FreemarkerRequest.java
@@ -23,6 +23,8 @@
import java.io.PrintWriter;
import java.io.Writer;
+import java.util.Collections;
+import java.util.List;
import java.util.Locale;
import java.util.Map;
@@ -48,7 +50,7 @@
/**
* The natively available scopes. In fact, only "page".
*/
- private static final String[] SCOPES = {"page"};
+ private static final List<String> SCOPES = Collections.singletonList("page");
/**
* The FreeMarker current environment.
@@ -121,7 +123,7 @@
}
@Override
- public String[] getNativeScopes() {
+ public List<String> getNativeScopes() {
return SCOPES;
}
@@ -140,4 +142,10 @@
public Writer getWriter() {
return env.getOut();
}
+
+ @Override
+ public Map<String, Object> getContext(String scope) {
+ return "page".equals(scope) ? getPageScope() : super.getContext(scope);
+ }
+
}
diff --git a/tiles-request/tiles-request-freemarker/src/test/java/org/apache/tiles/request/freemarker/FreemarkerRequestTest.java b/tiles-request/tiles-request-freemarker/src/test/java/org/apache/tiles/request/freemarker/FreemarkerRequestTest.java
index 0b20632..972456c 100644
--- a/tiles-request/tiles-request-freemarker/src/test/java/org/apache/tiles/request/freemarker/FreemarkerRequestTest.java
+++ b/tiles-request/tiles-request-freemarker/src/test/java/org/apache/tiles/request/freemarker/FreemarkerRequestTest.java
@@ -38,7 +38,6 @@
import org.apache.tiles.request.ApplicationContext;
import org.apache.tiles.request.Request;
import org.apache.tiles.request.DispatchRequest;
-import org.apache.tiles.request.scope.ContextResolver;
import org.apache.tiles.request.servlet.ServletRequest;
import org.apache.tiles.request.ApplicationAccess;
import org.junit.Before;
@@ -135,20 +134,14 @@
String path = "this way";
DispatchRequest enclosedRequest = createMock(DispatchRequest.class);
ApplicationContext applicationContext = createMock(ApplicationContext.class);
- ContextResolver resolver = createMock(ContextResolver.class);
- Map<String, Object> applicationScope = new HashMap<String, Object>();
Map<String, Object> requestScope = new HashMap<String, Object>();
- applicationScope.put(ApplicationAccess.CONTEXT_RESOLVER_ATTRIBUTE, resolver);
enclosedRequest.include(path);
- expect(enclosedRequest.getApplicationContext()).andReturn(applicationContext);
- expect(applicationContext.getApplicationScope()).andReturn(applicationScope);
- replay(enclosedRequest, applicationContext);
context = new FreemarkerRequest(enclosedRequest, env);
- expect(resolver.getContext(isA(Request.class), eq("request"))).andReturn(requestScope);
- replay(resolver);
+ expect(enclosedRequest.getContext("request")).andReturn(requestScope);
+ replay(enclosedRequest, applicationContext);
context.dispatch(path);
- verify(enclosedRequest, applicationContext, resolver);
+ verify(enclosedRequest, applicationContext);
}
/**
@@ -171,7 +164,7 @@
DispatchRequest enclosedRequest = createMock(DispatchRequest.class);
replay(enclosedRequest);
context = new FreemarkerRequest(enclosedRequest, env);
- assertArrayEquals(new String[] {"page"}, context.getNativeScopes());
+ assertArrayEquals(new String[] {"page"}, context.getNativeScopes().toArray());
verify(enclosedRequest);
}
diff --git a/tiles-request/tiles-request-jsp/src/main/java/org/apache/tiles/request/jsp/JspRequest.java b/tiles-request/tiles-request-jsp/src/main/java/org/apache/tiles/request/jsp/JspRequest.java
index bfc5a86..f3bb0ae 100644
--- a/tiles-request/tiles-request-jsp/src/main/java/org/apache/tiles/request/jsp/JspRequest.java
+++ b/tiles-request/tiles-request-jsp/src/main/java/org/apache/tiles/request/jsp/JspRequest.java
@@ -23,6 +23,9 @@
import java.io.IOException;
import java.io.PrintWriter;
import java.io.Writer;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
import java.util.Map;
import javax.servlet.ServletException;
@@ -50,7 +53,8 @@
/**
* The native available scopes.
*/
- private static final String[] SCOPES = {"page", "request", "session", "application"};
+ private static final List<String> SCOPES
+ = Collections.unmodifiableList(Arrays.asList("page", "request", "session", "application"));
/**
* The current page context.
@@ -108,7 +112,7 @@
}
@Override
- public String[] getNativeScopes() {
+ public List<String> getNativeScopes() {
return SCOPES;
}
@@ -194,4 +198,18 @@
public PageContext getPageContext() {
return pageContext;
}
+
+ @Override
+ public Map<String, Object> getContext(String scope) {
+ if("page".equals(scope)){
+ return getPageScope();
+ }else if("request".equals(scope)){
+ return getRequestScope();
+ }else if("session".equals(scope)){
+ return getSessionScope();
+ }else if("application".equals(scope)){
+ return getApplicationScope();
+ }
+ throw new IllegalArgumentException(scope + " does not exist. Call getAvailableScopes() first to check.");
+ }
}
diff --git a/tiles-request/tiles-request-jsp/src/test/java/org/apache/tiles/request/jsp/JspRequestTest.java b/tiles-request/tiles-request-jsp/src/test/java/org/apache/tiles/request/jsp/JspRequestTest.java
index 1b44242..ea7e907 100644
--- a/tiles-request/tiles-request-jsp/src/test/java/org/apache/tiles/request/jsp/JspRequestTest.java
+++ b/tiles-request/tiles-request-jsp/src/test/java/org/apache/tiles/request/jsp/JspRequestTest.java
@@ -78,7 +78,7 @@
public void testGetNativeScopes() {
replay(context, enclosedRequest);
assertArrayEquals(new String[] { "page", "request", "session",
- "application" }, request.getNativeScopes());
+ "application" }, request.getNativeScopes().toArray());
verify(context, enclosedRequest);
}
diff --git a/tiles-request/tiles-request-portlet/src/main/java/org/apache/tiles/request/portlet/PortletRequest.java b/tiles-request/tiles-request-portlet/src/main/java/org/apache/tiles/request/portlet/PortletRequest.java
index 2201574..fae7d42 100644
--- a/tiles-request/tiles-request-portlet/src/main/java/org/apache/tiles/request/portlet/PortletRequest.java
+++ b/tiles-request/tiles-request-portlet/src/main/java/org/apache/tiles/request/portlet/PortletRequest.java
@@ -24,6 +24,9 @@
import java.io.OutputStream;
import java.io.PrintWriter;
import java.io.Writer;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
import java.util.Locale;
import java.util.Map;
@@ -55,7 +58,8 @@
/**
* The native available scopes.
*/
- private static final String[] SCOPES = {"request", "portletSession", "session", "application"};
+ private static final List<String> SCOPES
+ = Collections.unmodifiableList(Arrays.asList("request", "portletSession", "session", "application"));
/**
* <p>The lazily instantiated <code>Map</code> of header name-value
@@ -226,7 +230,7 @@
}
@Override
- public String[] getNativeScopes() {
+ public List<String> getNativeScopes() {
return SCOPES;
}
@@ -317,4 +321,18 @@
+ path + "'.", e);
}
}
+
+ @Override
+ public Map<String, Object> getContext(String scope) {
+ if("request".equals(scope)){
+ return getRequestScope();
+ }else if("application".equals(scope)){
+ return getApplicationScope();
+ }else if("portletSession".equals(scope)){
+ return getPortletSessionScope();
+ }else if("application".equals(scope)){
+ return getApplicationScope();
+ }
+ throw new IllegalArgumentException(scope + " does not exist. Call getAvailableScopes() first to check.");
+ }
}
diff --git a/tiles-request/tiles-request-portlet/src/test/java/org/apache/tiles/request/portlet/PortletRequestTest.java b/tiles-request/tiles-request-portlet/src/test/java/org/apache/tiles/request/portlet/PortletRequestTest.java
index 37cbc29..d0c953a 100644
--- a/tiles-request/tiles-request-portlet/src/test/java/org/apache/tiles/request/portlet/PortletRequestTest.java
+++ b/tiles-request/tiles-request-portlet/src/test/java/org/apache/tiles/request/portlet/PortletRequestTest.java
@@ -315,7 +315,7 @@
@Test
public void testGetNativeScopes() {
assertArrayEquals(new String[] { "request", "portletSession",
- "session", "application" }, req.getNativeScopes());
+ "session", "application" }, req.getNativeScopes().toArray());
}
/**
diff --git a/tiles-request/tiles-request-servlet/src/main/java/org/apache/tiles/request/servlet/ServletRequest.java b/tiles-request/tiles-request-servlet/src/main/java/org/apache/tiles/request/servlet/ServletRequest.java
index 83afdad..3e95339 100644
--- a/tiles-request/tiles-request-servlet/src/main/java/org/apache/tiles/request/servlet/ServletRequest.java
+++ b/tiles-request/tiles-request-servlet/src/main/java/org/apache/tiles/request/servlet/ServletRequest.java
@@ -24,6 +24,9 @@
import java.io.OutputStream;
import java.io.PrintWriter;
import java.io.Writer;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
import java.util.Locale;
import java.util.Map;
@@ -53,7 +56,8 @@
/**
* The native available scopes: request, session and application.
*/
- private static final String[] SCOPES = {"request", "session", "application"};
+ private static final List<String> SCOPES
+ = Collections.unmodifiableList(Arrays.asList("request", "session", "application"));
/**
* The request object to use.
@@ -179,6 +183,17 @@
return request.getParameterMap();
}
+ @Override
+ public Map<String, Object> getContext(String scope) {
+ if("request".equals(scope)){
+ return getRequestScope();
+ }else if("session".equals(scope)){
+ return getSessionScope();
+ }else if("application".equals(scope)){
+ return getApplicationScope();
+ }
+ throw new IllegalArgumentException(scope + " does not exist. Call getAvailableScopes() first to check.");
+ }
/** {@inheritDoc} */
public Map<String, Object> getRequestScope() {
@@ -202,7 +217,7 @@
}
@Override
- public String[] getNativeScopes() {
+ public List<String> getNativeScopes() {
return SCOPES;
}
@@ -291,12 +306,10 @@
return request.getLocale();
}
- /** {@inheritDoc} */
public HttpServletRequest getRequest() {
return request;
}
- /** {@inheritDoc} */
public HttpServletResponse getResponse() {
return response;
}
diff --git a/tiles-request/tiles-request-servlet/src/test/java/org/apache/tiles/request/servlet/ServletRequestTest.java b/tiles-request/tiles-request-servlet/src/test/java/org/apache/tiles/request/servlet/ServletRequestTest.java
index 00b41c6..809de57 100644
--- a/tiles-request/tiles-request-servlet/src/test/java/org/apache/tiles/request/servlet/ServletRequestTest.java
+++ b/tiles-request/tiles-request-servlet/src/test/java/org/apache/tiles/request/servlet/ServletRequestTest.java
@@ -278,7 +278,7 @@
*/
@Test
public void testGetNativeScopes() {
- assertArrayEquals(new String[] {"request", "session", "application"}, req.getNativeScopes());
+ assertArrayEquals(new String[] {"request", "session", "application"}, req.getNativeScopes().toArray());
}
/**
diff --git a/tiles-request/tiles-request-velocity/src/main/java/org/apache/tiles/request/velocity/VelocityRequest.java b/tiles-request/tiles-request-velocity/src/main/java/org/apache/tiles/request/velocity/VelocityRequest.java
index 6b165c5..cd3bd54 100644
--- a/tiles-request/tiles-request-velocity/src/main/java/org/apache/tiles/request/velocity/VelocityRequest.java
+++ b/tiles-request/tiles-request-velocity/src/main/java/org/apache/tiles/request/velocity/VelocityRequest.java
@@ -24,6 +24,8 @@
import java.io.IOException;
import java.io.PrintWriter;
import java.io.Writer;
+import java.util.Collections;
+import java.util.List;
import java.util.Map;
import javax.servlet.RequestDispatcher;
@@ -50,7 +52,7 @@
/**
* The native available scopes, in fact only "page".
*/
- private static final String[] SCOPES = {"page"};
+ private static final List<String> SCOPES = Collections.singletonList("page");
/**
* The Velocity current context.
@@ -103,7 +105,7 @@
}
@Override
- public String[] getNativeScopes() {
+ public List<String> getNativeScopes() {
return SCOPES;
}
@@ -164,4 +166,10 @@
}
return pageScope;
}
+
+ @Override
+ public Map<String, Object> getContext(String scope) {
+ return "page".equals(scope) ? getPageScope() : super.getContext(scope);
+ }
+
}
diff --git a/tiles-request/tiles-request-velocity/src/test/java/org/apache/tiles/request/velocity/VelocityRequestTest.java b/tiles-request/tiles-request-velocity/src/test/java/org/apache/tiles/request/velocity/VelocityRequestTest.java
index 6c4979e..70d8fb8 100644
--- a/tiles-request/tiles-request-velocity/src/test/java/org/apache/tiles/request/velocity/VelocityRequestTest.java
+++ b/tiles-request/tiles-request-velocity/src/test/java/org/apache/tiles/request/velocity/VelocityRequestTest.java
@@ -98,7 +98,7 @@
DispatchRequest enclosedRequest = createMock(DispatchRequest.class);
replay(enclosedRequest);
context = new VelocityRequest(enclosedRequest, velocityContext, writer);
- assertArrayEquals(new String[] {"page"}, context.getNativeScopes());
+ assertArrayEquals(new String[] {"page"}, context.getNativeScopes().toArray());
verify(enclosedRequest);
}