You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by iv...@apache.org on 2009/12/04 06:24:50 UTC
svn commit: r887067 - in /wicket/trunk/wicket/src:
main/java/org/apache/wicket/ main/java/org/apache/wicket/ng/
main/java/org/apache/wicket/ng/markup/html/form/
main/java/org/apache/wicket/ng/markup/html/link/
main/java/org/apache/wicket/ng/mock/ main/...
Author: ivaynberg
Date: Fri Dec 4 05:24:46 2009
New Revision: 887067
URL: http://svn.apache.org/viewvc?rev=887067&view=rev
Log:
wip: wicket-ng merging
Removed:
wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/DefaultPageFactory.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/component/PageFactory.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/response/
Modified:
wicket/trunk/wicket/src/main/java/org/apache/wicket/IPageFactory.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/Response.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/Application.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/markup/html/form/Form.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/markup/html/link/Link.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/mock/MockWebResponse.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/protocol/http/WebApplication.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/protocol/http/WicketFilter.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/cycle/RequestCycle.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/cycle/RequestCycleContext.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/cycle/RequestHandlerStack.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/handler/impl/BufferedResponseRequestHandler.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/handler/impl/render/WebRenderPageRequestHandlerDelegate.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/mapper/BufferedResponseMapper.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/resource/Resource.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/BufferedWebResponse.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/WebResponse.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/response/ConsoleResponse.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/response/FileResponse.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/response/NullResponse.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/response/StringResponse.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/session/DefaultPageFactory.java
wicket/trunk/wicket/src/test/java/org/apache/wicket/ng/request/cycle/RequestHandlerStackTest.java
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/IPageFactory.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/IPageFactory.java?rev=887067&r1=887066&r2=887067&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/IPageFactory.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/IPageFactory.java Fri Dec 4 05:24:46 2009
@@ -16,6 +16,10 @@
*/
package org.apache.wicket;
+import org.apache.wicket.ng.WicketRuntimeException;
+import org.apache.wicket.ng.request.component.PageParametersNg;
+import org.apache.wicket.ng.request.component.RequestablePage;
+
/**
* A factory class that creates Pages. A Page can be created by Class, with or without a
@@ -31,6 +35,7 @@
* @author Juergen Donnerstag
* @author Jonathan Locke
*/
+// TODO WICKET-NG change Page to RequestablePage
public interface IPageFactory
{
/**
@@ -60,6 +65,26 @@
* @return The new page
* @throws WicketRuntimeException
* Thrown if the page cannot be constructed
+ * @deprecated
*/
+ @Deprecated
<C extends Page> Page newPage(final Class<C> pageClass, final PageParameters parameters);
+
+ /**
+ * Creates a new Page, passing PageParameters to the Page constructor if such a constructor
+ * exists. If no such constructor exists and the parameters argument is null or empty, then any
+ * available default constructor will be used.
+ *
+ * @param <C>
+ *
+ * @param pageClass
+ * The class of Page to create
+ * @param parameters
+ * Any parameters to pass to the Page's constructor
+ * @return The new page
+ * @throws WicketRuntimeException
+ * Thrown if the page cannot be constructed
+ */
+ <C extends Page> RequestablePage newPage(final Class<C> pageClass,
+ final PageParametersNg parameters);
}
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/Response.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/Response.java?rev=887067&r1=887066&r2=887067&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/Response.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/Response.java Fri Dec 4 05:24:46 2009
@@ -239,6 +239,15 @@
public abstract void write(final CharSequence string);
/**
+ * Writes the buffer to output.
+ *
+ * @param array
+ * @throws IllegalStateException
+ * if {@link #write(CharSequence)} has already been called on this instance
+ */
+ public abstract void write(byte[] array);
+
+ /**
* Writes the given strings to the Response subclass output destination.
*
* @param string
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/Application.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/Application.java?rev=887067&r1=887066&r2=887067&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/Application.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/Application.java Fri Dec 4 05:24:46 2009
@@ -20,8 +20,10 @@
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
+import org.apache.wicket.IPageFactory;
import org.apache.wicket.MetaDataKey;
import org.apache.wicket.Page;
+import org.apache.wicket.Response;
import org.apache.wicket.application.DefaultClassResolver;
import org.apache.wicket.application.IClassResolver;
import org.apache.wicket.ng.page.PageManager;
@@ -33,7 +35,6 @@
import org.apache.wicket.ng.page.persistent.disk.DiskDataStore;
import org.apache.wicket.ng.request.Request;
import org.apache.wicket.ng.request.RequestMapper;
-import org.apache.wicket.ng.request.component.PageFactory;
import org.apache.wicket.ng.request.component.PageParametersNg;
import org.apache.wicket.ng.request.component.RequestablePage;
import org.apache.wicket.ng.request.cycle.RequestCycle;
@@ -43,12 +44,12 @@
import org.apache.wicket.ng.request.listener.RequestListenerInterface;
import org.apache.wicket.ng.request.mapper.MapperContext;
import org.apache.wicket.ng.request.mapper.ThreadsafeCompoundRequestMapper;
-import org.apache.wicket.ng.request.response.Response;
import org.apache.wicket.ng.resource.ResourceReferenceRegistry;
import org.apache.wicket.ng.session.SessionStore;
import org.apache.wicket.ng.session.SessionStore.UnboundListener;
import org.apache.wicket.ng.settings.ApplicationSettings;
import org.apache.wicket.ng.settings.RequestCycleSettings;
+import org.apache.wicket.session.DefaultPageFactory;
import org.apache.wicket.util.lang.Checks;
/**
@@ -508,14 +509,14 @@
return resourceReferenceRegistry;
}
- private PageFactory pageFactory;
+ private IPageFactory pageFactory;
/**
* Override to create custom {@link PageFactory}
*
* @return new {@link PageFactory} instance.
*/
- protected PageFactory newPageFactory()
+ protected IPageFactory newPageFactory()
{
return new DefaultPageFactory();
}
@@ -525,7 +526,7 @@
*
* @return
*/
- public final PageFactory getPageFactory()
+ public final IPageFactory getPageFactory()
{
return pageFactory;
}
@@ -572,11 +573,11 @@
{
if (pageParameters == null)
{
- return getPageFactory().newPage(pageClass);
+ return getPageFactory().newPage((Class<? extends Page>)pageClass);
}
else
{
- return getPageFactory().newPage(pageClass, pageParameters);
+ return getPageFactory().newPage((Class<? extends Page>)pageClass, pageParameters);
}
}
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/markup/html/form/Form.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/markup/html/form/Form.java?rev=887067&r1=887066&r2=887067&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/markup/html/form/Form.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/markup/html/form/Form.java Fri Dec 4 05:24:46 2009
@@ -17,13 +17,13 @@
package org.apache.wicket.ng.markup.html.form;
import org.apache.wicket.Component;
+import org.apache.wicket.Response;
import org.apache.wicket.ng.request.Request;
import org.apache.wicket.ng.request.RequestHandler;
import org.apache.wicket.ng.request.cycle.RequestCycle;
import org.apache.wicket.ng.request.handler.PageAndComponentProvider;
import org.apache.wicket.ng.request.handler.impl.BookmarkableListenerInterfaceRequestHandler;
import org.apache.wicket.ng.request.handler.impl.ListenerInterfaceRequestHandler;
-import org.apache.wicket.ng.request.response.Response;
public class Form extends Component implements IFormSubmitListener
{
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/markup/html/link/Link.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/markup/html/link/Link.java?rev=887067&r1=887066&r2=887067&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/markup/html/link/Link.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/markup/html/link/Link.java Fri Dec 4 05:24:46 2009
@@ -18,12 +18,12 @@
import org.apache.wicket.Component;
+import org.apache.wicket.Response;
import org.apache.wicket.ng.request.RequestHandler;
import org.apache.wicket.ng.request.cycle.RequestCycle;
import org.apache.wicket.ng.request.handler.PageAndComponentProvider;
import org.apache.wicket.ng.request.handler.impl.BookmarkableListenerInterfaceRequestHandler;
import org.apache.wicket.ng.request.handler.impl.ListenerInterfaceRequestHandler;
-import org.apache.wicket.ng.request.response.Response;
import org.apache.wicket.util.string.Strings;
@SuppressWarnings("serial")
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/mock/MockWebResponse.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/mock/MockWebResponse.java?rev=887067&r1=887066&r2=887067&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/mock/MockWebResponse.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/mock/MockWebResponse.java Fri Dec 4 05:24:46 2009
@@ -18,6 +18,7 @@
import java.io.ByteArrayOutputStream;
import java.io.IOException;
+import java.io.OutputStream;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
@@ -28,10 +29,10 @@
import javax.servlet.http.Cookie;
import org.apache.wicket.ng.WicketRuntimeException;
-import org.apache.wicket.ng.request.response.WebResponse;
+import org.apache.wicket.protocol.http.WebResponse;
/**
- * Mocked {@link WebResponse}.
+ * Mocked {@link WebResponse2}.
*
* @author Matej Knopp
*/
@@ -70,7 +71,7 @@
private String redirectUrl;
@Override
- public void sendRedirect(String url)
+ public void redirect(String url)
{
redirectUrl = url;
}
@@ -86,6 +87,7 @@
/**
* @return <code>true</code> if redirect URL was set, <code>false</code> otherwise.
*/
+ @Override
public boolean isRedirect()
{
return redirectUrl != null;
@@ -205,9 +207,9 @@
}
@Override
- public String encodeURL(String url)
+ public String encodeURL(CharSequence url)
{
- return url;
+ return url.toString();
}
private StringBuilder textResponse;
@@ -269,4 +271,10 @@
return binaryResponse.toByteArray();
}
}
+
+ @Override
+ public OutputStream getOutputStream()
+ {
+ throw new UnsupportedOperationException();
+ }
}
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/protocol/http/WebApplication.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/protocol/http/WebApplication.java?rev=887067&r1=887066&r2=887067&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/protocol/http/WebApplication.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/protocol/http/WebApplication.java Fri Dec 4 05:24:46 2009
@@ -28,9 +28,9 @@
import org.apache.wicket.ng.request.handler.impl.render.RenderPageRequestHandlerDelegate;
import org.apache.wicket.ng.request.handler.impl.render.WebRenderPageRequestHandlerDelegate;
import org.apache.wicket.ng.request.mapper.SystemMapper;
-import org.apache.wicket.ng.request.response.BufferedWebResponse;
import org.apache.wicket.ng.session.HttpSessionStore;
import org.apache.wicket.ng.session.SessionStore;
+import org.apache.wicket.protocol.http.BufferedWebResponse;
/**
*
@@ -40,82 +40,82 @@
public abstract class WebApplication extends Application
{
- public WebApplication()
- {
- super();
- }
-
- @Override
- protected void registerDefaultEncoders()
- {
- registerEncoder(new SystemMapper());
- }
-
- public void mount(RequestMapper encoder)
- {
- registerEncoder(encoder);
- }
-
- // TODO: Do this properly
- private Map<String, BufferedWebResponse> storedResponses = new ConcurrentHashMap<String, BufferedWebResponse>();
-
- public boolean hasBufferedResponse(String sessionId, Url url)
- {
- String key = sessionId + url.toString();
- return storedResponses.containsKey(key);
- }
-
- public BufferedWebResponse getAndRemoveBufferedResponse(String sessionId, Url url)
- {
- String key = sessionId + url.toString();
- return storedResponses.remove(key);
- }
-
- public void storeBufferedResponse(String sessionId, Url url, BufferedWebResponse response)
- {
- String key = sessionId + url.toString();
- storedResponses.put(key, response);
- }
-
- @Override
- protected SessionStore newSessionStore()
- {
- return new HttpSessionStore(this);
- }
-
- /**
- * Gets the servlet context for this application. Use this to get references to absolute paths,
- * global web.xml parameters (<context-param>), etc.
- *
- * @return The servlet context for this application
- */
- public ServletContext getServletContext()
- {
- if (wicketFilter != null)
- {
- return wicketFilter.getFilterConfig().getServletContext();
- }
- throw new IllegalStateException("servletContext is not set yet. Any code in your"
- + " Application object that uses the wicket filter instance should be put"
- + " in the init() method instead of your constructor");
- }
-
- public void setWicketFilter(WicketFilter wicketFilter)
- {
- this.wicketFilter = wicketFilter;
- }
-
- private WicketFilter wicketFilter;
-
- @Override
- public RenderPageRequestHandlerDelegate getRenderPageRequestHandlerDelegate(
- RenderPageRequestHandler renderPageRequestHandler)
- {
- return new WebRenderPageRequestHandlerDelegate(renderPageRequestHandler);
- }
-
- public static WebApplication get()
- {
- return (WebApplication)Application.get();
- }
+ public WebApplication()
+ {
+ super();
+ }
+
+ @Override
+ protected void registerDefaultEncoders()
+ {
+ registerEncoder(new SystemMapper());
+ }
+
+ public void mount(RequestMapper encoder)
+ {
+ registerEncoder(encoder);
+ }
+
+ // TODO: Do this properly
+ private final Map<String, BufferedWebResponse> storedResponses = new ConcurrentHashMap<String, BufferedWebResponse>();
+
+ public boolean hasBufferedResponse(String sessionId, Url url)
+ {
+ String key = sessionId + url.toString();
+ return storedResponses.containsKey(key);
+ }
+
+ public BufferedWebResponse getAndRemoveBufferedResponse(String sessionId, Url url)
+ {
+ String key = sessionId + url.toString();
+ return storedResponses.remove(key);
+ }
+
+ public void storeBufferedResponse(String sessionId, Url url, BufferedWebResponse response)
+ {
+ String key = sessionId + url.toString();
+ storedResponses.put(key, response);
+ }
+
+ @Override
+ protected SessionStore newSessionStore()
+ {
+ return new HttpSessionStore(this);
+ }
+
+ /**
+ * Gets the servlet context for this application. Use this to get references to absolute paths,
+ * global web.xml parameters (<context-param>), etc.
+ *
+ * @return The servlet context for this application
+ */
+ public ServletContext getServletContext()
+ {
+ if (wicketFilter != null)
+ {
+ return wicketFilter.getFilterConfig().getServletContext();
+ }
+ throw new IllegalStateException("servletContext is not set yet. Any code in your"
+ + " Application object that uses the wicket filter instance should be put"
+ + " in the init() method instead of your constructor");
+ }
+
+ public void setWicketFilter(WicketFilter wicketFilter)
+ {
+ this.wicketFilter = wicketFilter;
+ }
+
+ private WicketFilter wicketFilter;
+
+ @Override
+ public RenderPageRequestHandlerDelegate getRenderPageRequestHandlerDelegate(
+ RenderPageRequestHandler renderPageRequestHandler)
+ {
+ return new WebRenderPageRequestHandlerDelegate(renderPageRequestHandler);
+ }
+
+ public static WebApplication get()
+ {
+ return (WebApplication)Application.get();
+ }
}
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/protocol/http/WicketFilter.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/protocol/http/WicketFilter.java?rev=887067&r1=887066&r2=887067&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/protocol/http/WicketFilter.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/protocol/http/WicketFilter.java Fri Dec 4 05:24:46 2009
@@ -33,7 +33,7 @@
import org.apache.wicket.ng.ThreadContext;
import org.apache.wicket.ng.WicketRuntimeException;
import org.apache.wicket.ng.request.cycle.RequestCycle;
-import org.apache.wicket.ng.request.response.ServletWebResponse;
+import org.apache.wicket.protocol.http.WebResponse;
import org.apache.wicket.protocol.http.WicketServlet;
import org.apache.wicket.util.string.Strings;
import org.slf4j.Logger;
@@ -136,7 +136,7 @@
if (checkForTrailingSlash(httpServletRequest, httpServletResponse, filterPath))
{
ServletWebRequest req = new ServletWebRequest(httpServletRequest, filterPath);
- ServletWebResponse resp = new ServletWebResponse(httpServletResponse);
+ WebResponse resp = new WebResponse(httpServletResponse);
RequestCycle requestCycle = webApplication.createRequestCycle(req, resp);
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/cycle/RequestCycle.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/cycle/RequestCycle.java?rev=887067&r1=887066&r2=887067&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/cycle/RequestCycle.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/cycle/RequestCycle.java Fri Dec 4 05:24:46 2009
@@ -21,6 +21,7 @@
import org.apache.wicket.MetaDataEntry;
import org.apache.wicket.MetaDataKey;
+import org.apache.wicket.Response;
import org.apache.wicket.ng.ThreadContext;
import org.apache.wicket.ng.request.Request;
import org.apache.wicket.ng.request.RequestHandler;
@@ -31,7 +32,6 @@
import org.apache.wicket.ng.request.handler.DefaultPageProvider;
import org.apache.wicket.ng.request.handler.PageProvider;
import org.apache.wicket.ng.request.handler.impl.RenderPageRequestHandler;
-import org.apache.wicket.ng.request.response.Response;
import org.apache.wicket.util.lang.Checks;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/cycle/RequestCycleContext.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/cycle/RequestCycleContext.java?rev=887067&r1=887066&r2=887067&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/cycle/RequestCycleContext.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/cycle/RequestCycleContext.java Fri Dec 4 05:24:46 2009
@@ -16,9 +16,10 @@
*/
package org.apache.wicket.ng.request.cycle;
+import org.apache.wicket.Response;
import org.apache.wicket.ng.request.Request;
import org.apache.wicket.ng.request.RequestMapper;
-import org.apache.wicket.ng.request.response.Response;
+
/**
* Represents the context for the request cycle. This class is mainly a grouping parameter for the
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/cycle/RequestHandlerStack.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/cycle/RequestHandlerStack.java?rev=887067&r1=887066&r2=887067&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/cycle/RequestHandlerStack.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/cycle/RequestHandlerStack.java Fri Dec 4 05:24:46 2009
@@ -20,8 +20,8 @@
import java.util.LinkedList;
import java.util.List;
+import org.apache.wicket.Response;
import org.apache.wicket.ng.request.RequestHandler;
-import org.apache.wicket.ng.request.response.Response;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/handler/impl/BufferedResponseRequestHandler.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/handler/impl/BufferedResponseRequestHandler.java?rev=887067&r1=887066&r2=887067&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/handler/impl/BufferedResponseRequestHandler.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/handler/impl/BufferedResponseRequestHandler.java Fri Dec 4 05:24:46 2009
@@ -18,8 +18,8 @@
import org.apache.wicket.ng.request.RequestHandler;
import org.apache.wicket.ng.request.cycle.RequestCycle;
-import org.apache.wicket.ng.request.response.BufferedWebResponse;
-import org.apache.wicket.ng.request.response.WebResponse;
+import org.apache.wicket.protocol.http.BufferedWebResponse;
+import org.apache.wicket.protocol.http.WebResponse;
/**
* Handler that renders a {@link BufferedWebResponse}.
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/handler/impl/render/WebRenderPageRequestHandlerDelegate.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/handler/impl/render/WebRenderPageRequestHandlerDelegate.java?rev=887067&r1=887066&r2=887067&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/handler/impl/render/WebRenderPageRequestHandlerDelegate.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/handler/impl/render/WebRenderPageRequestHandlerDelegate.java Fri Dec 4 05:24:46 2009
@@ -16,6 +16,7 @@
*/
package org.apache.wicket.ng.request.handler.impl.render;
+import org.apache.wicket.Response;
import org.apache.wicket.ng.Application;
import org.apache.wicket.ng.Session;
import org.apache.wicket.ng.protocol.http.WebApplication;
@@ -24,10 +25,9 @@
import org.apache.wicket.ng.request.cycle.RequestCycle;
import org.apache.wicket.ng.request.handler.impl.RenderPageRequestHandler;
import org.apache.wicket.ng.request.handler.impl.RenderPageRequestHandler.RedirectPolicy;
-import org.apache.wicket.ng.request.response.BufferedWebResponse;
-import org.apache.wicket.ng.request.response.Response;
-import org.apache.wicket.ng.request.response.WebResponse;
import org.apache.wicket.ng.settings.RequestCycleSettings;
+import org.apache.wicket.protocol.http.BufferedWebResponse;
+import org.apache.wicket.protocol.http.WebResponse;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -114,9 +114,9 @@
BufferedWebResponse response = new BufferedWebResponse()
{
@Override
- public String encodeURL(String url)
+ public String encodeURL(CharSequence url)
{
- return originalResponse.encodeURL(url);
+ return originalResponse.encodeURL(url).toString();
}
};
@@ -141,7 +141,7 @@
{
WebResponse response = (WebResponse)requestCycle.getResponse();
String relativeUrl = requestCycle.getUrlRenderer().renderUrl(url);
- response.sendRedirect(relativeUrl);
+ response.redirect(relativeUrl);
}
@Override
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/mapper/BufferedResponseMapper.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/mapper/BufferedResponseMapper.java?rev=887067&r1=887066&r2=887067&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/mapper/BufferedResponseMapper.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/mapper/BufferedResponseMapper.java Fri Dec 4 05:24:46 2009
@@ -24,7 +24,7 @@
import org.apache.wicket.ng.request.Url;
import org.apache.wicket.ng.request.cycle.RequestCycle;
import org.apache.wicket.ng.request.handler.impl.BufferedResponseRequestHandler;
-import org.apache.wicket.ng.request.response.BufferedWebResponse;
+import org.apache.wicket.protocol.http.BufferedWebResponse;
/**
* Encoder that intercepts requests for which there is already stored buffer with rendered data.
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/resource/Resource.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/resource/Resource.java?rev=887067&r1=887066&r2=887067&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/resource/Resource.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/resource/Resource.java Fri Dec 4 05:24:46 2009
@@ -19,10 +19,10 @@
import java.io.Serializable;
import java.util.Locale;
+import org.apache.wicket.Response;
import org.apache.wicket.ng.request.Request;
import org.apache.wicket.ng.request.component.PageParametersNg;
import org.apache.wicket.ng.request.handler.resource.ResourceRequestHandler;
-import org.apache.wicket.ng.request.response.Response;
import org.apache.wicket.util.lang.Checks;
/**
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/BufferedWebResponse.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/BufferedWebResponse.java?rev=887067&r1=887066&r2=887067&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/BufferedWebResponse.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/BufferedWebResponse.java Fri Dec 4 05:24:46 2009
@@ -16,9 +16,19 @@
*/
package org.apache.wicket.protocol.http;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletResponse;
import org.apache.wicket.WicketRuntimeException;
+import org.apache.wicket.util.lang.Checks;
import org.apache.wicket.util.string.AppendingStringBuffer;
@@ -29,112 +39,230 @@
*/
public class BufferedWebResponse extends WebResponse
{
- /** URL to redirect to when response is flushed, if any */
- private String redirectURL;
-
- /** Buffer to hold page */
- private AppendingStringBuffer buffer = new AppendingStringBuffer(4096);
-
/**
- * Constructor for testing harness.
+ * Construct.
*/
- BufferedWebResponse()
+ public BufferedWebResponse()
{
}
- /**
- * Package private constructor.
- *
- * @param httpServletResponse
- * The servlet response object
- */
- public BufferedWebResponse(final HttpServletResponse httpServletResponse)
+ public BufferedWebResponse(HttpServletResponse httpServletResponse)
{
super(httpServletResponse);
}
- /**
- * Flushes the response buffer by doing a redirect or writing out the buffer. NOTE: The servlet
- * container will close the response output stream.
- */
+
+ private static class CookieEntry
+ {
+ Cookie cookie;
+ boolean add;
+ }
+
+ private final List<CookieEntry> cookieEntries = new ArrayList<CookieEntry>();
+
@Override
- public void close()
+ public void addCookie(Cookie cookie)
{
- // If a redirection was specified
- if (redirectURL != null)
+ CookieEntry entry = new CookieEntry();
+ entry.cookie = cookie;
+ entry.add = true;
+ cookieEntries.add(entry);
+ }
+
+ @Override
+ public void clearCookie(Cookie cookie)
+ {
+ CookieEntry entry = new CookieEntry();
+ entry.cookie = cookie;
+ entry.add = false;
+ cookieEntries.add(entry);
+ }
+
+ private Long contentLength = null;
+
+ @Override
+ public void setContentLength(long length)
+ {
+ contentLength = length;
+ }
+
+ private String contentType = null;
+
+ @Override
+ public void setContentType(String mimeType)
+ {
+ contentType = mimeType;
+ }
+
+ private final Map<String, Long> dateHeaders = new HashMap<String, Long>();
+
+ @Override
+ public void setDateHeader(String name, long date)
+ {
+ dateHeaders.put(name, date);
+ }
+
+ private final Map<String, String> headers = new HashMap<String, String>();
+
+ @Override
+ public void setHeader(String name, String value)
+ {
+ headers.put(name, value);
+ }
+
+ private StringBuilder builder;
+ private ByteArrayOutputStream stream;
+
+ @Override
+ public void write(CharSequence sequence)
+ {
+ if (stream != null)
{
- // actually redirect
- super.redirect(redirectURL);
+ throw new IllegalStateException(
+ "Can't call write(CharSequence) after write(byte[]) has been called.");
}
- else
+
+ if (builder == null)
{
- // Write the buffer to the response stream
- if (buffer.length() != 0)
- {
- super.write(buffer);
- }
+ builder = new StringBuilder(4096);
}
+
+ builder.append(sequence);
}
- /**
- * @see org.apache.wicket.Response#reset()
- */
@Override
- public void reset()
+ public void write(byte[] array)
{
- redirectURL = null;
- buffer.clear();
+ if (builder != null)
+ {
+ throw new IllegalStateException(
+ "Can't call write(byte[]) after write(CharSequence) has been called.");
+ }
+ if (stream == null)
+ {
+ stream = new ByteArrayOutputStream(array.length);
+ }
+ try
+ {
+ stream.write(array);
+ }
+ catch (IOException e)
+ {
+ throw new WicketRuntimeException(e);
+ }
}
- /**
- * Saves url to redirect to when buffered response is flushed. Implementations should encode the
- * URL to make sure cookie-less operation is supported in case clients forgot.
- *
- * @param url
- * The URL to redirect to
- */
+ private String redirectUrl = null;
+
@Override
- public final void redirect(final String url)
+ public void redirect(String url)
{
- if (redirectURL != null)
- {
- throw new WicketRuntimeException("Already redirecting to '" + redirectURL +
- "'. Cannot redirect more than once");
- }
- // encode to make sure no caller forgot this
- redirectURL = encodeURL(url).toString();
+ redirectUrl = url;
}
- /**
- * Writes string to response output.
- *
- * @param string
- * The string to write
- */
+ private Integer statusCode = null;
+
@Override
- public void write(final CharSequence string)
+ public void setStatus(int sc)
{
- buffer.append(string);
+ statusCode = sc;
}
/**
- * THIS METHOD IS NOT PART OF THE WICKET PUBLIC API.
+ * Writes the content of the buffer to the specified response. Also sets the properties and and
+ * headers.
+ *
+ * @param response
*/
- public final void filter()
+ public void writeTo(final WebResponse response)
{
- if (redirectURL == null && buffer.length() != 0)
+ Checks.argumentNotNull(response, "response");
+
+ for (CookieEntry e : cookieEntries)
{
- buffer = filter(buffer);
+ if (e.add)
+ {
+ response.addCookie(e.cookie);
+ }
+ else
+ {
+ response.clearCookie(e.cookie);
+ }
+ }
+ if (contentLength != null)
+ {
+ response.setContentLength(contentLength);
+ }
+ if (contentType != null)
+ {
+ response.setContentType(contentType);
+ }
+ for (String s : dateHeaders.keySet())
+ {
+ response.setDateHeader(s, dateHeaders.get(s));
+ }
+ for (String s : headers.keySet())
+ {
+ response.setHeader(s, headers.get(s));
+ }
+ if (statusCode != null)
+ {
+ response.setStatus(statusCode);
+ }
+ if (redirectUrl != null)
+ {
+ response.redirect(redirectUrl);
+ }
+ if (builder != null)
+ {
+ response.write(builder);
+ }
+ else if (stream != null)
+ {
+ final boolean copied[] = { false };
+ try
+ {
+ // try to avoid copying the array
+ stream.writeTo(new OutputStream()
+ {
+ @Override
+ public void write(int b) throws IOException
+ {
+
+ }
+
+ @Override
+ public void write(byte[] b, int off, int len) throws IOException
+ {
+ if (off == 0 && len == b.length)
+ {
+ response.write(b);
+ copied[0] = true;
+ }
+ }
+ });
+ }
+ catch (IOException e1)
+ {
+ throw new WicketRuntimeException(e1);
+ }
+ if (copied[0] == false)
+ {
+ response.write(stream.toByteArray());
+ }
}
}
/**
- *
- * @see java.lang.Object#toString()
+ * THIS METHOD IS NOT PART OF THE WICKET PUBLIC API.
*/
- @Override
- public String toString()
+ public final void filter()
{
- return buffer.toString();
+ if (redirectUrl == null && builder.length() != 0)
+ { // TODO WICKET-NG clean up this conversion
+ builder = new StringBuilder(
+ filter(new AppendingStringBuffer(builder.toString())).toString());
+ }
}
+
}
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/WebResponse.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/WebResponse.java?rev=887067&r1=887066&r2=887067&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/WebResponse.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/WebResponse.java Fri Dec 4 05:24:46 2009
@@ -184,7 +184,7 @@
* @return True if this response is going to redirect the user agent
*/
@Override
- public final boolean isRedirect()
+ public boolean isRedirect()
{
return redirect;
}
@@ -275,7 +275,7 @@
* The mime type
*/
@Override
- public final void setContentType(final String mimeType)
+ public void setContentType(final String mimeType)
{
if (httpServletResponse != null)
{
@@ -330,6 +330,20 @@
}
}
+
+ @Override
+ public void write(byte[] array)
+ {
+ try
+ {
+ httpServletResponse.getOutputStream().write(array);
+ }
+ catch (IOException e)
+ {
+ throw new WicketRuntimeException(e);
+ }
+ }
+
/**
* Writes string to response output.
*
@@ -432,6 +446,20 @@
}
/**
+ * Convenience method for setting the content-disposition:in;ine header. This header is used if
+ * the response should be shown embedded in browser window while having custom file name when
+ * user saves the response. browser.
+ *
+ * @param filename
+ * file name of the attachment
+ */
+ public void setInlineHeader(String filename)
+ {
+ setHeader("Content-Disposition", "inline" +
+ ((!Strings.isEmpty(filename)) ? ("; filename=\"" + filename + "\"") : ""));
+ }
+
+ /**
* Is the request, which matches this response an ajax request.
*
* @return True if the request is an ajax request.
@@ -451,4 +479,16 @@
{
this.ajax = ajax;
}
+
+ /**
+ * Sets the status code for this response.
+ *
+ * @param sc
+ * status code
+ */
+ public void setStatus(int sc)
+ {
+ httpServletResponse.setStatus(sc);
+ }
+
}
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/response/ConsoleResponse.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/response/ConsoleResponse.java?rev=887067&r1=887066&r2=887067&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/response/ConsoleResponse.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/response/ConsoleResponse.java Fri Dec 4 05:24:46 2009
@@ -63,4 +63,10 @@
{
return System.out;
}
+
+ @Override
+ public void write(byte[] array)
+ {
+ throw new UnsupportedOperationException();
+ }
}
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/response/FileResponse.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/response/FileResponse.java?rev=887067&r1=887066&r2=887067&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/response/FileResponse.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/response/FileResponse.java Fri Dec 4 05:24:46 2009
@@ -125,4 +125,17 @@
}
return printWriter;
}
+
+ @Override
+ public void write(byte[] array)
+ {
+ try
+ {
+ out.write(array);
+ }
+ catch (IOException e)
+ {
+ throw new WicketRuntimeException("Unable to write to file " + file, e);
+ }
+ }
}
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/response/NullResponse.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/response/NullResponse.java?rev=887067&r1=887066&r2=887067&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/response/NullResponse.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/response/NullResponse.java Fri Dec 4 05:24:46 2009
@@ -70,4 +70,9 @@
}
};
}
+
+ @Override
+ public void write(byte[] array)
+ {
+ }
}
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/response/StringResponse.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/response/StringResponse.java?rev=887067&r1=887066&r2=887067&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/response/StringResponse.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/response/StringResponse.java Fri Dec 4 05:24:46 2009
@@ -86,4 +86,10 @@
{
throw new UnsupportedOperationException("Cannot get output stream on StringResponse");
}
+
+ @Override
+ public void write(byte[] array)
+ {
+ throw new UnsupportedOperationException();
+ }
}
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/session/DefaultPageFactory.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/session/DefaultPageFactory.java?rev=887067&r1=887066&r2=887067&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/session/DefaultPageFactory.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/session/DefaultPageFactory.java Fri Dec 4 05:24:46 2009
@@ -27,6 +27,8 @@
import org.apache.wicket.WicketRuntimeException;
import org.apache.wicket.authorization.AuthorizationException;
import org.apache.wicket.markup.MarkupException;
+import org.apache.wicket.ng.request.component.PageParametersNg;
+import org.apache.wicket.ng.request.component.RequestablePage;
import org.apache.wicket.util.lang.Generics;
@@ -71,7 +73,9 @@
/**
* @see IPageFactory#newPage(Class, PageParameters)
+ * @deprecated
*/
+ @Deprecated
public final <C extends Page> Page newPage(final Class<C> pageClass, PageParameters parameters)
{
// If no parameters are provided, try the default constructor first, than the PageParameter
@@ -179,7 +183,7 @@
* argument.
*/
private final Page createPage(final Constructor<? extends Page> constructor,
- final PageParameters argument)
+ final Object argument)
{
try
{
@@ -219,8 +223,7 @@
* @param argument
* @return description
*/
- private String createDescription(Constructor<? extends Page> constructor,
- PageParameters argument)
+ private String createDescription(Constructor<? extends Page> constructor, Object argument)
{
if (argument != null)
{
@@ -232,4 +235,33 @@
return "Can't instantiate page using constructor " + constructor;
}
}
+
+ public <C extends Page> RequestablePage newPage(Class<C> pageClass, PageParametersNg parameters)
+ {
+ // If no parameters are provided, try the default constructor first, than the PageParameter
+ // constructor with empty parameter list.
+ if (parameters == null)
+ {
+ return newPage(pageClass);
+ }
+
+ // If parameters not null, than try to get constructor that takes PageParameters
+ Constructor<? extends Page> constructor = constructor(pageClass, PageParameters.class);
+ if (constructor != null)
+ {
+ // return new Page(parameters)
+ return createPage(constructor, parameters);
+ }
+
+ // No constructor with PageParameters found. Try default constructor.
+ constructor = constructor(pageClass);
+ if (constructor != null)
+ {
+ // return new Page()
+ return createPage(constructor, null);
+ }
+
+ throw new WicketRuntimeException("Unable to create page from " + pageClass +
+ ". Class does neither have a constructor with PageParameter nor a default constructor");
+ }
}
\ No newline at end of file
Modified: wicket/trunk/wicket/src/test/java/org/apache/wicket/ng/request/cycle/RequestHandlerStackTest.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/test/java/org/apache/wicket/ng/request/cycle/RequestHandlerStackTest.java?rev=887067&r1=887066&r2=887067&view=diff
==============================================================================
--- wicket/trunk/wicket/src/test/java/org/apache/wicket/ng/request/cycle/RequestHandlerStackTest.java (original)
+++ wicket/trunk/wicket/src/test/java/org/apache/wicket/ng/request/cycle/RequestHandlerStackTest.java Fri Dec 4 05:24:46 2009
@@ -16,10 +16,12 @@
*/
package org.apache.wicket.ng.request.cycle;
+import java.io.OutputStream;
+
import junit.framework.TestCase;
+import org.apache.wicket.Response;
import org.apache.wicket.ng.request.RequestHandler;
-import org.apache.wicket.ng.request.response.Response;
/**
*
@@ -28,338 +30,344 @@
public class RequestHandlerStackTest extends TestCase
{
- /**
- * Construct.
- */
- public RequestHandlerStackTest()
- {
- }
-
- private Response newResponse()
- {
- return new Response()
- {
- @Override
- public void write(byte[] array)
- {
- }
-
- @Override
- public void write(CharSequence sequence)
- {
- }
-
- @Override
- public String encodeURL(String url)
- {
- return null;
- }
- };
- }
-
- private RequestHandlerStack newStack(Response response)
- {
- return new RequestHandlerStack(response)
- {
- @Override
- protected RequestCycle getRequestCycle()
- {
- return null;
- }
- };
- }
-
- private boolean testFlag1;
- private boolean testFlag2;
- private boolean testFlag3;
- private boolean testFlag4;
-
- private boolean detachedFlag1;
- private boolean detachedFlag2;
- private boolean detachedFlag3;
- private boolean detachedFlag4;
-
- private void initFlags()
- {
- testFlag1 = true;
- testFlag2 = true;
- testFlag3 = true;
- testFlag4 = true;
-
- detachedFlag1 = false;
- detachedFlag2 = false;
- detachedFlag3 = false;
- detachedFlag4 = false;
- }
+ /**
+ * Construct.
+ */
+ public RequestHandlerStackTest()
+ {
+ }
+
+ private Response newResponse()
+ {
+ return new Response()
+ {
+ @Override
+ public void write(byte[] array)
+ {
+ }
+
+ @Override
+ public void write(CharSequence sequence)
+ {
+ }
+
+ @Override
+ public CharSequence encodeURL(final CharSequence url)
+ {
+ return null;
+ }
+
+ @Override
+ public OutputStream getOutputStream()
+ {
+ return null;
+ }
+ };
+ }
+
+ private RequestHandlerStack newStack(Response response)
+ {
+ return new RequestHandlerStack(response)
+ {
+ @Override
+ protected RequestCycle getRequestCycle()
+ {
+ return null;
+ }
+ };
+ }
+
+ private boolean testFlag1;
+ private boolean testFlag2;
+ private boolean testFlag3;
+ private boolean testFlag4;
+
+ private boolean detachedFlag1;
+ private boolean detachedFlag2;
+ private boolean detachedFlag3;
+ private boolean detachedFlag4;
+
+ private void initFlags()
+ {
+ testFlag1 = true;
+ testFlag2 = true;
+ testFlag3 = true;
+ testFlag4 = true;
+
+ detachedFlag1 = false;
+ detachedFlag2 = false;
+ detachedFlag3 = false;
+ detachedFlag4 = false;
+ }
- /**
+ /**
*
*/
- public void test1()
- {
- initFlags();
-
- final Response originalResponse = newResponse();
-
- final RequestHandlerStack stack = newStack(originalResponse);
-
- final RequestHandler handler3 = new RequestHandler()
- {
- public void respond(RequestCycle requestCycle)
- {
- testFlag3 = false;
- }
-
- public void detach(RequestCycle requestCycle)
- {
- detachedFlag3 = true;
- }
- };
-
- final RequestHandler handler2 = new RequestHandler()
- {
- public void respond(RequestCycle requestCycle)
- {
- testFlag2 = false;
-
- stack.replaceCurrentRequestHandler(handler3);
-
- // this code must not be executed
- testFlag2 = true;
- }
-
- public void detach(RequestCycle requestCycle)
- {
- detachedFlag2 = true;
- }
- };
-
- final RequestHandler handler1 = new RequestHandler()
- {
- public void respond(RequestCycle requestCycle)
- {
- testFlag1 = false;
-
- Response resp = newResponse();
- stack.setResponse(resp);
- stack.executeRequestHandler(handler2);
- assertEquals(stack.getResponse(), resp);
-
- // this code must be executed
- testFlag1 = true;
- }
-
- public void detach(RequestCycle requestCycle)
- {
- detachedFlag1 = true;
- }
- };
-
- stack.executeRequestHandler(handler1);
-
- assertEquals(stack.getResponse(), originalResponse);
-
- stack.detach();
-
- assertTrue(testFlag1);
- assertFalse(testFlag2);
- assertFalse(testFlag3);
-
- assertTrue(detachedFlag1);
- assertTrue(detachedFlag2);
- assertTrue(detachedFlag3);
- }
+ public void test1()
+ {
+ initFlags();
+
+ final Response originalResponse = newResponse();
+
+ final RequestHandlerStack stack = newStack(originalResponse);
+
+ final RequestHandler handler3 = new RequestHandler()
+ {
+ public void respond(RequestCycle requestCycle)
+ {
+ testFlag3 = false;
+ }
+
+ public void detach(RequestCycle requestCycle)
+ {
+ detachedFlag3 = true;
+ }
+ };
+
+ final RequestHandler handler2 = new RequestHandler()
+ {
+ public void respond(RequestCycle requestCycle)
+ {
+ testFlag2 = false;
+
+ stack.replaceCurrentRequestHandler(handler3);
+
+ // this code must not be executed
+ testFlag2 = true;
+ }
+
+ public void detach(RequestCycle requestCycle)
+ {
+ detachedFlag2 = true;
+ }
+ };
+
+ final RequestHandler handler1 = new RequestHandler()
+ {
+ public void respond(RequestCycle requestCycle)
+ {
+ testFlag1 = false;
+
+ Response resp = newResponse();
+ stack.setResponse(resp);
+ stack.executeRequestHandler(handler2);
+ assertEquals(stack.getResponse(), resp);
+
+ // this code must be executed
+ testFlag1 = true;
+ }
+
+ public void detach(RequestCycle requestCycle)
+ {
+ detachedFlag1 = true;
+ }
+ };
+
+ stack.executeRequestHandler(handler1);
+
+ assertEquals(stack.getResponse(), originalResponse);
+
+ stack.detach();
+
+ assertTrue(testFlag1);
+ assertFalse(testFlag2);
+ assertFalse(testFlag3);
+
+ assertTrue(detachedFlag1);
+ assertTrue(detachedFlag2);
+ assertTrue(detachedFlag3);
+ }
- /**
+ /**
*
*/
- public void test2()
- {
- initFlags();
-
- final Response originalResponse = newResponse();
- final RequestHandlerStack stack = newStack(originalResponse);
-
- final RequestHandler handler4 = new RequestHandler()
- {
- public void respond(RequestCycle requestCycle)
- {
- testFlag4 = false;
-
- assertEquals(stack.getResponse(), originalResponse);
-
- stack.setResponse(newResponse());
- }
-
- public void detach(RequestCycle requestCycle)
- {
- detachedFlag4 = true;
- }
- };
-
- final RequestHandler handler3 = new RequestHandler()
- {
- public void respond(RequestCycle requestCycle)
- {
- testFlag3 = false;
- stack.setResponse(newResponse());
- stack.replaceAllRequestHandlers(handler4);
- // code must not be reached
- testFlag3 = true;
- }
-
- public void detach(RequestCycle requestCycle)
- {
- detachedFlag3 = true;
- }
- };
-
- final RequestHandler handler2 = new RequestHandler()
- {
- public void respond(RequestCycle requestCycle)
- {
- testFlag2 = false;
- stack.setResponse(newResponse());
- stack.executeRequestHandler(handler3);
- // code must not be reached
- testFlag2 = true;
- }
-
- public void detach(RequestCycle requestCycle)
- {
- detachedFlag2 = true;
- }
- };
-
- RequestHandler handler1 = new RequestHandler()
- {
- public void respond(RequestCycle requestCycle)
- {
- testFlag1 = false;
- stack.setResponse(newResponse());
- stack.executeRequestHandler(handler2);
-
- // code must not be reached
- testFlag1 = true;
- }
-
- public void detach(RequestCycle requestCycle)
- {
- detachedFlag1 = true;
- }
- };
-
- stack.executeRequestHandler(handler1);
-
- assertEquals(stack.getResponse(), originalResponse);
-
- stack.detach();
-
- assertFalse(testFlag1);
- assertFalse(testFlag2);
- assertFalse(testFlag3);
- assertFalse(testFlag4);
-
- assertTrue(detachedFlag1);
- assertTrue(detachedFlag2);
- assertTrue(detachedFlag3);
- assertTrue(detachedFlag4);
- }
-
-
- /**
+ public void test2()
+ {
+ initFlags();
+
+ final Response originalResponse = newResponse();
+ final RequestHandlerStack stack = newStack(originalResponse);
+
+ final RequestHandler handler4 = new RequestHandler()
+ {
+ public void respond(RequestCycle requestCycle)
+ {
+ testFlag4 = false;
+
+ assertEquals(stack.getResponse(), originalResponse);
+
+ stack.setResponse(newResponse());
+ }
+
+ public void detach(RequestCycle requestCycle)
+ {
+ detachedFlag4 = true;
+ }
+ };
+
+ final RequestHandler handler3 = new RequestHandler()
+ {
+ public void respond(RequestCycle requestCycle)
+ {
+ testFlag3 = false;
+ stack.setResponse(newResponse());
+ stack.replaceAllRequestHandlers(handler4);
+ // code must not be reached
+ testFlag3 = true;
+ }
+
+ public void detach(RequestCycle requestCycle)
+ {
+ detachedFlag3 = true;
+ }
+ };
+
+ final RequestHandler handler2 = new RequestHandler()
+ {
+ public void respond(RequestCycle requestCycle)
+ {
+ testFlag2 = false;
+ stack.setResponse(newResponse());
+ stack.executeRequestHandler(handler3);
+ // code must not be reached
+ testFlag2 = true;
+ }
+
+ public void detach(RequestCycle requestCycle)
+ {
+ detachedFlag2 = true;
+ }
+ };
+
+ RequestHandler handler1 = new RequestHandler()
+ {
+ public void respond(RequestCycle requestCycle)
+ {
+ testFlag1 = false;
+ stack.setResponse(newResponse());
+ stack.executeRequestHandler(handler2);
+
+ // code must not be reached
+ testFlag1 = true;
+ }
+
+ public void detach(RequestCycle requestCycle)
+ {
+ detachedFlag1 = true;
+ }
+ };
+
+ stack.executeRequestHandler(handler1);
+
+ assertEquals(stack.getResponse(), originalResponse);
+
+ stack.detach();
+
+ assertFalse(testFlag1);
+ assertFalse(testFlag2);
+ assertFalse(testFlag3);
+ assertFalse(testFlag4);
+
+ assertTrue(detachedFlag1);
+ assertTrue(detachedFlag2);
+ assertTrue(detachedFlag3);
+ assertTrue(detachedFlag4);
+ }
+
+
+ /**
*
*/
- public void test3()
- {
- initFlags();
-
- final Response originalResponse = newResponse();
- final RequestHandlerStack stack = newStack(originalResponse);
-
- final RequestHandler handler4 = new RequestHandler()
- {
- public void respond(RequestCycle requestCycle)
- {
- testFlag4 = true;
-
- stack.setResponse(newResponse());
- }
-
- public void detach(RequestCycle requestCycle)
- {
- detachedFlag4 = true;
- }
- };
-
- final RequestHandler handler3 = new RequestHandler()
- {
- public void respond(RequestCycle requestCycle)
- {
- testFlag3 = false;
- stack.scheduleRequestHandlerAfterCurrent(handler4);
-
- // make sure that handler4's respond method is fired after this one ends
- testFlag4 = false;
-
-
- // code must be be reached
- testFlag3 = true;
- }
-
- public void detach(RequestCycle requestCycle)
- {
- detachedFlag3 = true;
- }
- };
-
- final RequestHandler handler2 = new RequestHandler()
- {
- public void respond(RequestCycle requestCycle)
- {
- testFlag2 = false;
- stack.executeRequestHandler(handler3);
- // code must be reached
- testFlag2 = true;
- }
-
- public void detach(RequestCycle requestCycle)
- {
- detachedFlag2 = true;
- }
- };
-
- RequestHandler handler1 = new RequestHandler()
- {
- public void respond(RequestCycle requestCycle)
- {
- testFlag1 = false;
- stack.executeRequestHandler(handler2);
-
- // code must be reached
- testFlag1 = true;
- }
-
- public void detach(RequestCycle requestCycle)
- {
- detachedFlag1 = true;
- }
- };
-
- stack.executeRequestHandler(handler1);
-
- assertEquals(stack.getResponse(), originalResponse);
-
- stack.detach();
-
- assertTrue(testFlag1);
- assertTrue(testFlag2);
- assertTrue(testFlag3);
- assertTrue(testFlag4);
-
- assertTrue(detachedFlag1);
- assertTrue(detachedFlag2);
- assertTrue(detachedFlag3);
- assertTrue(detachedFlag4);
- }
+ public void test3()
+ {
+ initFlags();
+
+ final Response originalResponse = newResponse();
+ final RequestHandlerStack stack = newStack(originalResponse);
+
+ final RequestHandler handler4 = new RequestHandler()
+ {
+ public void respond(RequestCycle requestCycle)
+ {
+ testFlag4 = true;
+
+ stack.setResponse(newResponse());
+ }
+
+ public void detach(RequestCycle requestCycle)
+ {
+ detachedFlag4 = true;
+ }
+ };
+
+ final RequestHandler handler3 = new RequestHandler()
+ {
+ public void respond(RequestCycle requestCycle)
+ {
+ testFlag3 = false;
+ stack.scheduleRequestHandlerAfterCurrent(handler4);
+
+ // make sure that handler4's respond method is fired after this one ends
+ testFlag4 = false;
+
+
+ // code must be be reached
+ testFlag3 = true;
+ }
+
+ public void detach(RequestCycle requestCycle)
+ {
+ detachedFlag3 = true;
+ }
+ };
+
+ final RequestHandler handler2 = new RequestHandler()
+ {
+ public void respond(RequestCycle requestCycle)
+ {
+ testFlag2 = false;
+ stack.executeRequestHandler(handler3);
+ // code must be reached
+ testFlag2 = true;
+ }
+
+ public void detach(RequestCycle requestCycle)
+ {
+ detachedFlag2 = true;
+ }
+ };
+
+ RequestHandler handler1 = new RequestHandler()
+ {
+ public void respond(RequestCycle requestCycle)
+ {
+ testFlag1 = false;
+ stack.executeRequestHandler(handler2);
+
+ // code must be reached
+ testFlag1 = true;
+ }
+
+ public void detach(RequestCycle requestCycle)
+ {
+ detachedFlag1 = true;
+ }
+ };
+
+ stack.executeRequestHandler(handler1);
+
+ assertEquals(stack.getResponse(), originalResponse);
+
+ stack.detach();
+
+ assertTrue(testFlag1);
+ assertTrue(testFlag2);
+ assertTrue(testFlag3);
+ assertTrue(testFlag4);
+
+ assertTrue(detachedFlag1);
+ assertTrue(detachedFlag2);
+ assertTrue(detachedFlag3);
+ assertTrue(detachedFlag4);
+ }
}