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/10/13 08:42:21 UTC
svn commit: r824605 [2/3] - in /wicket/trunk:
wicket-auth-roles/src/main/java/org/apache/wicket/authentication/pages/
wicket-auth-roles/src/main/java/org/apache/wicket/authentication/panel/
wicket-devutils/src/main/java/org/apache/wicket/devutils/ wick...
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/Session.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/Session.java?rev=824605&r1=824604&r2=824605&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/Session.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/Session.java Tue Oct 13 06:42:17 2009
@@ -33,7 +33,6 @@
import org.apache.wicket.authorization.IAuthorizationStrategy;
import org.apache.wicket.feedback.FeedbackMessage;
import org.apache.wicket.feedback.FeedbackMessages;
-import org.apache.wicket.ng.ThreadContext;
import org.apache.wicket.protocol.http.IgnoreAjaxRequestException;
import org.apache.wicket.request.ClientInfo;
import org.apache.wicket.session.ISessionStore;
@@ -162,6 +161,9 @@
/** Name of session attribute under which this session is stored */
public static final String SESSION_ATTRIBUTE_NAME = "session";
+ /** Thread-local current session. */
+ private static final ThreadLocal<Session> current = new ThreadLocal<Session>();
+
/** A store for dirty objects for one request */
private static final ThreadLocal<List<IClusterable>> dirtyObjects = new ThreadLocal<List<IClusterable>>();
@@ -187,7 +189,7 @@
*/
public static boolean exists()
{
- return ThreadContext.getSession() != null;
+ return current.get() != null;
}
/**
@@ -244,7 +246,7 @@
*/
public static Session get()
{
- Session session = ThreadContext.getSession();
+ Session session = current.get();
if (session == null)
{
session = findOrCreate();
@@ -267,7 +269,7 @@
throw new IllegalArgumentException("Argument session can not be null");
}
- ThreadContext.setSession(session);
+ current.set(session);
// execute any attach logic now
session.attach();
@@ -281,7 +283,7 @@
*/
public static void unset()
{
- ThreadContext.setSession(null);
+ current.set(null);
}
/** A number to generate names for auto create pagemaps */
@@ -340,7 +342,7 @@
* instance).
* </p>
*/
- private transient Map<String, Serializable> temporarySessionAttributes;
+ private transient Map<String, Object> temporarySessionAttributes;
/** A linked list for last used pagemap queue */
private final LinkedList/* <IPageMap> */<IPageMap> usedPageMaps = new LinkedList<IPageMap>();
@@ -398,7 +400,7 @@
if (temporarySessionAttributes != null)
{
- for (Entry<String, Serializable> entry : temporarySessionAttributes.entrySet())
+ for (Entry<String, Object> entry : temporarySessionAttributes.entrySet())
{
store.setAttribute(request, String.valueOf(entry.getKey()), entry.getValue());
}
@@ -1258,7 +1260,7 @@
* @param value
* The value of the attribute
*/
- protected final void setAttribute(String name, Serializable value)
+ protected final void setAttribute(String name, Object value)
{
if (!isTemporary())
{
@@ -1297,7 +1299,7 @@
// session instance gets shared across threads
if (temporarySessionAttributes == null)
{
- temporarySessionAttributes = new HashMap<String, Serializable>(3);
+ temporarySessionAttributes = new HashMap<String, Object>(3);
}
temporarySessionAttributes.put(name, value);
}
@@ -1394,7 +1396,7 @@
List<IClusterable> dirtyObjects = Session.dirtyObjects.get();
Session.dirtyObjects.set(null);
- Map<String, Serializable> tempMap = new HashMap<String, Serializable>();
+ Map<String, Object> tempMap = new HashMap<String, Object>();
// Go through all dirty entries, replicating any dirty objects
if (dirtyObjects != null)
@@ -1402,7 +1404,7 @@
for (final Iterator<IClusterable> iterator = dirtyObjects.iterator(); iterator.hasNext();)
{
String attribute = null;
- IClusterable object = iterator.next();
+ Object object = iterator.next();
if (object instanceof Page)
{
final Page page = (Page)object;
@@ -1435,7 +1437,7 @@
// in case we have dirty attributes, set them to session
if (tempMap.isEmpty() == false)
{
- for (Entry<String, Serializable> entry : tempMap.entrySet())
+ for (Entry<String, Object> entry : tempMap.entrySet())
{
setAttribute(entry.getKey(), entry.getValue());
}
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/WebPage.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/WebPage.java?rev=824605&r1=824604&r2=824605&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/WebPage.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/WebPage.java Tue Oct 13 06:42:17 2009
@@ -21,6 +21,7 @@
import org.apache.wicket.IPageMap;
import org.apache.wicket.IRequestTarget;
import org.apache.wicket.Page;
+import org.apache.wicket.PageParameters;
import org.apache.wicket.RequestCycle;
import org.apache.wicket.ResourceReference;
import org.apache.wicket.Response;
@@ -30,7 +31,6 @@
import org.apache.wicket.markup.html.link.BookmarkablePageLink;
import org.apache.wicket.markup.parser.filter.HtmlHeaderSectionHandler;
import org.apache.wicket.model.IModel;
-import org.apache.wicket.ng.request.component.PageParameters;
import org.apache.wicket.protocol.http.WebRequestCycle;
import org.apache.wicket.protocol.http.WebResponse;
import org.apache.wicket.protocol.http.request.urlcompressing.UrlCompressingWebRequestProcessor;
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/form/Form.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/form/Form.java?rev=824605&r1=824604&r2=824605&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/form/Form.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/form/Form.java Tue Oct 13 06:42:17 2009
@@ -27,6 +27,7 @@
import org.apache.wicket.Component;
import org.apache.wicket.IRequestTarget;
import org.apache.wicket.Page;
+import org.apache.wicket.PageParameters;
import org.apache.wicket.Request;
import org.apache.wicket.RequestCycle;
import org.apache.wicket.Response;
@@ -38,7 +39,6 @@
import org.apache.wicket.markup.html.form.validation.IFormValidator;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.Model;
-import org.apache.wicket.ng.request.component.PageParameters;
import org.apache.wicket.protocol.http.RequestUtils;
import org.apache.wicket.protocol.http.WebRequest;
import org.apache.wicket.protocol.http.WicketURLDecoder;
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/link/BookmarkablePageLink.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/link/BookmarkablePageLink.java?rev=824605&r1=824604&r2=824605&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/link/BookmarkablePageLink.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/link/BookmarkablePageLink.java Tue Oct 13 06:42:17 2009
@@ -23,8 +23,8 @@
import org.apache.wicket.IPageMap;
import org.apache.wicket.Page;
import org.apache.wicket.PageMap;
+import org.apache.wicket.PageParameters;
import org.apache.wicket.model.Model;
-import org.apache.wicket.ng.request.component.PageParameters;
import org.apache.wicket.util.collections.MiniMap;
import org.apache.wicket.util.lang.Classes;
@@ -68,8 +68,8 @@
{
if (parameters != null)
{
- MiniMap<String, Object> map = new MiniMap<String, Object>(
- parameters.getNamedParametersMap(), parameters.keySet().size());
+ MiniMap<String, Object> map = new MiniMap<String, Object>(parameters,
+ parameters.keySet().size());
return map;
}
else
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/link/InlineFrame.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/link/InlineFrame.java?rev=824605&r1=824604&r2=824605&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/link/InlineFrame.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/link/InlineFrame.java Tue Oct 13 06:42:17 2009
@@ -19,11 +19,11 @@
import org.apache.wicket.IPageMap;
import org.apache.wicket.Page;
import org.apache.wicket.PageMap;
+import org.apache.wicket.PageParameters;
import org.apache.wicket.RequestCycle;
import org.apache.wicket.Session;
import org.apache.wicket.markup.ComponentTag;
import org.apache.wicket.markup.html.WebMarkupContainer;
-import org.apache.wicket.ng.request.component.PageParameters;
import org.apache.wicket.request.RequestParameters;
import org.apache.wicket.util.string.Strings;
@@ -94,13 +94,11 @@
if (params == null)
{
// Create page using page factory
- // FIXME NG MIGRATION, REQUESTABLEPAGE->PAGE
- return (Page)Session.get().getPageFactory().newPage(c);
+ return Session.get().getPageFactory().newPage(c);
}
else
{
- // FIXME NG MIGRATION, REQUESTABLEPAGE->PAGE
- return (Page)Session.get().getPageFactory().newPage(c, params);
+ return Session.get().getPageFactory().newPage(c, params);
}
}
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/pages/BrowserInfoPage.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/pages/BrowserInfoPage.java?rev=824605&r1=824604&r2=824605&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/pages/BrowserInfoPage.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/pages/BrowserInfoPage.java Tue Oct 13 06:42:17 2009
@@ -19,12 +19,12 @@
import java.io.Serializable;
import org.apache.wicket.AttributeModifier;
+import org.apache.wicket.PageParameters;
import org.apache.wicket.RequestCycle;
import org.apache.wicket.markup.html.WebComponent;
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.WebPage;
import org.apache.wicket.model.Model;
-import org.apache.wicket.ng.request.component.PageParameters;
import org.apache.wicket.protocol.http.ClientProperties;
import org.apache.wicket.protocol.http.WebRequestCycle;
import org.apache.wicket.protocol.http.WebSession;
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/resolver/AutoLinkResolver.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/resolver/AutoLinkResolver.java?rev=824605&r1=824604&r2=824605&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/resolver/AutoLinkResolver.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/resolver/AutoLinkResolver.java Tue Oct 13 06:42:17 2009
@@ -24,6 +24,7 @@
import org.apache.wicket.Component;
import org.apache.wicket.MarkupContainer;
import org.apache.wicket.Page;
+import org.apache.wicket.PageParameters;
import org.apache.wicket.ResourceReference;
import org.apache.wicket.application.IClassResolver;
import org.apache.wicket.markup.ComponentTag;
@@ -33,7 +34,6 @@
import org.apache.wicket.markup.html.link.BookmarkablePageLink;
import org.apache.wicket.markup.html.link.ExternalLink;
import org.apache.wicket.markup.parser.filter.WicketLinkTagHandler;
-import org.apache.wicket.ng.request.component.PageParameters;
import org.apache.wicket.protocol.http.RequestUtils;
import org.apache.wicket.util.lang.Packages;
import org.apache.wicket.util.string.Strings;
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/ThreadContext.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/ThreadContext.java?rev=824605&r1=824604&r2=824605&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/ThreadContext.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/ThreadContext.java Tue Oct 13 06:42:17 2009
@@ -16,7 +16,6 @@
*/
package org.apache.wicket.ng;
-import org.apache.wicket.Session;
import org.apache.wicket.ng.request.cycle.RequestCycle;
public class ThreadContext
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=824605&r1=824604&r2=824605&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 Tue Oct 13 06:42:17 2009
@@ -16,7 +16,7 @@
*/
package org.apache.wicket.ng.markup.html.form;
-import org.apache.wicket.ng.Component2;
+import org.apache.wicket.ng.Component;
import org.apache.wicket.ng.request.Request;
import org.apache.wicket.ng.request.RequestHandler;
import org.apache.wicket.ng.request.cycle.RequestCycle;
@@ -25,7 +25,7 @@
import org.apache.wicket.ng.request.handler.impl.ListenerInterfaceRequestHandler;
import org.apache.wicket.ng.request.response.Response;
-public class Form extends Component2 implements IFormSubmitListener
+public class Form extends Component implements IFormSubmitListener
{
private static final long serialVersionUID = 1L;
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=824605&r1=824604&r2=824605&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 Tue Oct 13 06:42:17 2009
@@ -16,7 +16,7 @@
*/
package org.apache.wicket.ng.markup.html.link;
-import org.apache.wicket.ng.Component2;
+import org.apache.wicket.ng.Component;
import org.apache.wicket.ng.request.RequestHandler;
import org.apache.wicket.ng.request.cycle.RequestCycle;
import org.apache.wicket.ng.request.handler.PageAndComponentProvider;
@@ -27,7 +27,7 @@
@SuppressWarnings("serial")
// Very simple and naive link component
-public abstract class Link extends Component2 implements ILinkListener
+public abstract class Link extends Component implements ILinkListener
{
public Link(String id)
{
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/mock/MockApplication.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/mock/MockApplication.java?rev=824605&r1=824604&r2=824605&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/mock/MockApplication.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/mock/MockApplication.java Tue Oct 13 06:42:17 2009
@@ -25,7 +25,7 @@
import org.apache.wicket.ng.request.mapper.BookmarkableMapper;
import org.apache.wicket.ng.request.mapper.PageInstanceMapper;
import org.apache.wicket.ng.request.mapper.ResourceReferenceMapper;
-import org.apache.wicket.session.ISessionStore;
+import org.apache.wicket.ng.session.SessionStore;
public class MockApplication extends Application
{
@@ -68,7 +68,7 @@
}
@Override
- public ISessionStore newSessionStore()
+ protected SessionStore newSessionStore()
{
return new MockSessionStore();
}
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/mock/MockSessionStore.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/mock/MockSessionStore.java?rev=824605&r1=824604&r2=824605&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/mock/MockSessionStore.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/mock/MockSessionStore.java Tue Oct 13 06:42:17 2009
@@ -17,28 +17,23 @@
package org.apache.wicket.ng.mock;
import java.io.Serializable;
-import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
-import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.UUID;
import java.util.concurrent.CopyOnWriteArraySet;
-import org.apache.wicket.IPageMap;
-import org.apache.wicket.Page;
-import org.apache.wicket.Session;
+import org.apache.wicket.ng.Session;
import org.apache.wicket.ng.request.Request;
-import org.apache.wicket.session.ISessionStore;
-import org.apache.wicket.version.IPageVersionManager;
+import org.apache.wicket.ng.session.SessionStore;
/**
* Session store that holds one session.
*
* @author Matej Knopp
*/
-public class MockSessionStore implements ISessionStore
+public class MockSessionStore implements SessionStore
{
public MockSessionStore()
@@ -123,70 +118,4 @@
unboundListeners.remove(listener);
}
- // EVERYTHING BELOW WAS AUTOMATICALLY STUBBED OUT////////////////////////////////
-
- public void bind(org.apache.wicket.Request request, Session newSession)
- {
- }
-
- public IPageMap createPageMap(String name)
- {
- return null;
- }
-
- public Serializable getAttribute(org.apache.wicket.Request request, String name)
- {
- return null;
- }
-
- public List<String> getAttributeNames(org.apache.wicket.Request request)
- {
- return null;
- }
-
- public String getSessionId(org.apache.wicket.Request request, boolean create)
- {
- return null;
- }
-
- public Collection<UnboundListener> getUnboundListeners()
- {
- return null;
- }
-
- public void invalidate(org.apache.wicket.Request request)
- {
- }
-
- public Session lookup(org.apache.wicket.Request request)
- {
- return null;
- }
-
- public IPageVersionManager newVersionManager(Page page)
- {
- return null;
- }
-
- public void onBeginRequest(org.apache.wicket.Request request)
- {
- }
-
- public void onEndRequest(org.apache.wicket.Request request)
- {
- }
-
- public void removeAttribute(org.apache.wicket.Request request, String name)
- {
- }
-
- public void setAttribute(org.apache.wicket.Request request, String name, Serializable value)
- {
- }
-
- public void unbind(String sessionId)
- {
- }
-
-
}
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/page/persistent/DefaultPageStore.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/page/persistent/DefaultPageStore.java?rev=824605&r1=824604&r2=824605&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/page/persistent/DefaultPageStore.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/page/persistent/DefaultPageStore.java Tue Oct 13 06:42:17 2009
@@ -22,7 +22,7 @@
import java.util.Iterator;
import java.util.List;
-import org.apache.wicket.ng.Page2;
+import org.apache.wicket.ng.Page;
import org.apache.wicket.ng.page.ManageablePage;
import org.apache.wicket.util.lang.Checks;
import org.apache.wicket.util.lang.Objects;
@@ -214,7 +214,7 @@
public Object restoreAfterSerialization(Serializable serializable)
{
- if (!storeAfterSessionReplication() || serializable instanceof Page2)
+ if (!storeAfterSessionReplication() || serializable instanceof Page)
{
return serializable;
}
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=824605&r1=824604&r2=824605&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 Tue Oct 13 06:42:17 2009
@@ -29,8 +29,8 @@
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.protocol.http.HttpSessionStore;
-import org.apache.wicket.session.ISessionStore;
+import org.apache.wicket.ng.session.HttpSessionStore;
+import org.apache.wicket.ng.session.SessionStore;
/**
*
@@ -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 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 ISessionStore 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 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/request/component/PageParameters.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/component/PageParameters.java?rev=824605&r1=824604&r2=824605&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/component/PageParameters.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/component/PageParameters.java Tue Oct 13 06:42:17 2009
@@ -19,22 +19,15 @@
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
-import java.util.Map;
import java.util.Set;
import java.util.TreeSet;
-import org.apache.wicket.RequestCycle;
import org.apache.wicket.ng.request.RequestMapper;
import org.apache.wicket.util.lang.Checks;
import org.apache.wicket.util.lang.Objects;
-import org.apache.wicket.util.string.IStringIterator;
-import org.apache.wicket.util.string.StringList;
import org.apache.wicket.util.string.StringValue;
-import org.apache.wicket.util.value.ValueMap;
/**
* Mutable class that holds parameters of a Page. Page parameters consist of indexed parameters and
@@ -44,7 +37,6 @@
* How those parameters are populated depends on the {@link RequestMapper}s
*
* @author Matej Knopp
- * @author Igor Vaynberg
*/
public class PageParameters implements Serializable
{
@@ -75,7 +67,6 @@
namedParameters = new ArrayList<Entry>(copy.namedParameters);
}
-
private List<String> indexedParameters = null;
private static class Entry implements Serializable
@@ -413,390 +404,4 @@
{
return getIndexedParamsCount() == 0 && getNamedParameterKeys().isEmpty();
}
-
-
- /**
- * Removes a named parameter
- *
- * TODO NG MIGRATION
- *
- * @deprecated compatibility with old pageparameters
- * @param parameterName
- * @return old value if any or <code>null</code>
- */
- @Deprecated
- public String put(String parameterName, Object value)
- {
- String old = getNamedParameter(parameterName).toString();
- if (old != null)
- {
- removeNamedParameter(parameterName);
- }
- setNamedParameter(parameterName, value);
- return old;
- }
-
- /**
- * Removes a named parameter
- *
- * TODO NG MIGRATION
- *
- * @deprecated compatibility with old pageparameters
- * @param parameterName
- * @return old value if any or <code>null</code>
- */
- @Deprecated
- public String remove(String parameterName)
- {
- String old = getNamedParameter(parameterName).toString();
- removeNamedParameter(parameterName);
- return old;
- }
-
- /**
- * Constructor
- *
- * TODO NG MIGRATION
- *
- * @deprecated compatibility with old pageparameters
- *
- * @param params
- */
- @Deprecated
- public PageParameters(Map<String, ?> parameters)
- {
- this(new ValueMap(parameters));
- }
-
-
- /**
- * Constructor
- *
- * TODO NG MIGRATION
- *
- * @deprecated compatibility with old pageparameters
- *
- * @param params
- */
- @Deprecated
- public PageParameters(ValueMap params)
- {
- for (Map.Entry<String, Object> param : params.entrySet())
- {
- if (param.getValue() instanceof String[])
- {
- for (String value : (String[])param.getValue())
- {
- addNamedParameter(param.getKey(), value);
- }
- }
- else
- {
- addNamedParameter(param.getKey(), param.getValue());
- }
- }
- }
-
-
- public PageParameters(String string)
- {
- setOnRequestCycle();
-
- // We can not use ValueMaps constructor as it uses
- // VariableAssignmentParser which is more suitable for markup
- // attributes, rather than URL parameters. URL param keys for
- // examples are allowed to start with a digit (e.g. 0=xxx)
- // and quotes are not "quotes".
-
- // Get list of strings separated by the delimiter
- final StringList pairs = StringList.tokenize(string, ",");
-
- // Go through each string in the list
- for (IStringIterator iterator = pairs.iterator(); iterator.hasNext();)
- {
- // Get the next key value pair
- final String pair = iterator.next();
-
- final int pos = pair.indexOf('=');
- if (pos == 0)
- {
- throw new IllegalArgumentException("URL parameter is missing the lvalue: " + pair);
- }
- else if (pos != -1)
- {
- final String key = pair.substring(0, pos).trim();
- final String value = pair.substring(pos + 1).trim();
-
- add(key, value);
- }
- else
- {
- final String key = pair.trim();
- final String value = null;
-
- add(key, value);
- }
- }
- }
-
- /**
- * Creates a named-parameter map
- *
- * TODO NG MIGRATION
- *
- * @deprecated compatibility with old pageparameters
- *
- */
- @Deprecated
- public Map<String, String[]> getNamedParametersMap()
- {
- Map<String, String[]> map = new HashMap<String, String[]>();
- for (String name : getNamedParameterKeys())
- {
- List<String> vals = new ArrayList<String>();
- for (StringValue sv : getNamedParameters(name))
- {
- vals.add(sv.toString());
- }
- map.put(name, vals.toArray(new String[0]));
- }
- return map;
- }
-
- /**
- * Adds named parameter
- *
- * TODO NG MIGRATION
- *
- * @deprecated compatibility with old pageparameters
- *
- */
- @Deprecated
- public void add(String name, Object value)
- {
- addNamedParameter(name, value);
- }
-
-
- /**
- * Gets keyset of named parameters
- *
- * TODO NG MIGRATION
- *
- * @deprecated compatibility with old pageparameters
- *
- */
- @Deprecated
- public Set<String> keySet()
- {
- return new HashSet<String>(getNamedParameterKeys());
- }
-
- /**
- * Gets named parameter
- *
- * TODO NG MIGRATION
- *
- * @deprecated compatibility with old pageparameters
- *
- */
- @Deprecated
- public Object get(String name)
- {
- return getNamedParameter(name).toString();
- }
-
- /**
- * Gets named parameter value array
- *
- * TODO NG MIGRATION
- *
- * @deprecated compatibility with old pageparameters
- *
- */
- @Deprecated
- public String[] getStringArray(String name)
- {
- List<String> vals = new ArrayList<String>();
- for (StringValue value : getNamedParameters(name))
- {
- vals.add(value.toString());
- }
- return vals.toArray(new String[0]);
- }
-
- /**
- * Gets number of named parameters
- *
- * TODO NG MIGRATION
- *
- * @deprecated compatibility with old pageparameters
- *
- */
- @Deprecated
- public int size()
- {
- return getNamedParameterKeys().size();
- }
-
- /**
- * TODO NG MIGRATION
- *
- * @deprecated compatibility with old pageparameters
- *
- */
- @Deprecated
- public boolean containsKey(String key)
- {
- return getNamedParameterKeys().contains(key);
- }
-
- /**
- * TODO NG MIGRATION
- *
- * @deprecated compatibility with old pageparameters
- *
- */
- @Deprecated
- public String getString(String uri)
- {
- return getNamedParameter(uri).toString();
- }
-
- /**
- * TODO NG MIGRATION
- *
- * @deprecated compatibility with old pageparameters
- *
- */
- @Deprecated
- public ValueMap toValueMap()
- {
- return new ValueMap(getNamedParametersMap());
- }
-
- public void putAll(Map<String, ?> urlParameters)
- {
- for (Map.Entry<String, ?> param : urlParameters.entrySet())
- {
- add(param.getKey(), param.getValue());
- }
- }
-
- /**
- * Converts page parameters to servlet request parameters
- *
- * TODO NG MIGRATION
- *
- * @deprecated compatibility with old pageparameters
- * @return request parameters map
- */
- @Deprecated
- public Map<String, String[]> toRequestParameters()
- {
- Map<String, String[]> params = new HashMap<String, String[]>(size());
- for (Map.Entry<String, Object> entry : toValueMap().entrySet())
- {
- if (entry.getValue() == null)
- {
- params.put(entry.getKey(), null);
- }
- else if (entry.getValue().getClass().isArray())
- {
- final Object[] arr = (Object[])entry.getValue();
- final String[] str = new String[arr.length];
- for (int i = 0; i < arr.length; i++)
- {
- str[i] = arr[i].toString();
- }
- params.put(entry.getKey(), str);
- }
- else
- {
- params.put(entry.getKey(), new String[] { entry.getValue().toString() });
- }
- }
- return params;
- }
-
- /**
- * Set this on request cycle. The RequestCycle will decide whether to keep it as a reference or
- * not.
- *
- * @see RequestCycle#setPageParameters(PageParameters)
- */
- private void setOnRequestCycle()
- {
- RequestCycle cycle = RequestCycle.get();
- if (cycle != null)
- {
- cycle.setPageParameters(this);
- }
- }
-
- /**
- * TODO NG MIGRATION
- *
- * @deprecated compatibility with old pageparameters
- *
- *
- * @param string
- * @param b
- * @return
- */
- @Deprecated
- public boolean getAsBoolean(String string, boolean def)
- {
- return getNamedParameter(string).toBoolean();
- }
-
- /**
- * TODO NG MIGRATION
- *
- * @deprecated compatibility with old pageparameters
- *
- *
- * @param string
- * @param b
- * @return
- */
- @Deprecated
- public boolean getBoolean(String string)
- {
- return getNamedParameter(string).toBoolean();
- }
-
- /**
- * TODO NG MIGRATION
- *
- * @deprecated compatibility with old pageparameters
- *
- *
- * @param string
- * @param b
- * @return
- */
- @Deprecated
- public int getInt(String string)
- {
- return getNamedParameter(string).toInt();
- }
-
- /**
- * TODO NG MIGRATION
- *
- * @deprecated compatibility with old pageparameters
- *
- *
- * @param string
- * @param b
- * @return
- */
- @Deprecated
- public long getLong(String string)
- {
- return getNamedParameter(string).toLong();
- }
-
-
}
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/component/RequestablePage.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/component/RequestablePage.java?rev=824605&r1=824604&r2=824605&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/component/RequestablePage.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/component/RequestablePage.java Tue Oct 13 06:42:17 2009
@@ -28,50 +28,47 @@
public interface RequestablePage extends RequestableComponent, ManageablePage
{
- /**
- * Renders the page
- */
- public void renderPage();
-
- /**
- * Bookmarkable page can be instantiated using a bookmarkable URL.
- *
- * @return Returns true if the page is bookmarkable.
- */
- public boolean isBookmarkable();
-
- /**
- * Returns the number of times this page has been rendered. The number will be appended to
- * listener interface links in order to prevent invoking listeners from staled page version.
- * <p>
- * For example a same page might have been rendered in two separate tabs. Page render doesn't
- * change page id but it can modify component hierarchy. Listener interface links on such page
- * should only work in tab where the page was rendered most recently.
- *
- * @return render count
- */
- public int getRenderCount();
-
- /**
- * Returns whether the page instance was created by a bookmarkable URL. Non mounted pages have
- * to be created using bookmarkable URL in order to have hybrid URLs later. Otherwise it would
- * be a potential security risk.
- *
- * @return <code>true</code> if this page has been created by a bookmarkable URL,
- * <code>false</code> otherwise.
- */
- public boolean wasCreatedBookmarkable();
-
-
- /**
- * Returns the {@link PageParameters} for the page. Each bookmarkable page instance should have
- * {@link PageParameters} associated with it. The page parameters are initialized from URL when
- * page is created and are updated on every page render request.
- *
- * @return page parameters or <code>null</code>
- */
- public PageParameters getPageParameters();
-
- /** TODO javadoc */
- public void setWasCreatedBookmarkable(boolean b);
+ /**
+ * Renders the page
+ */
+ public void renderPage();
+
+ /**
+ * Bookmarkable page can be instantiated using a bookmarkable URL.
+ *
+ * @return Returns true if the page is bookmarkable.
+ */
+ public boolean isBookmarkable();
+
+ /**
+ * Returns the number of times this page has been rendered. The number will be appended to
+ * listener interface links in order to prevent invoking listeners from staled page version.
+ * <p>
+ * For example a same page might have been rendered in two separate tabs. Page render doesn't
+ * change page id but it can modify component hierarchy. Listener interface links on such page
+ * should only work in tab where the page was rendered most recently.
+ *
+ * @return render count
+ */
+ public int getRenderCount();
+
+ /**
+ * Returns whether the page instance was created by a bookmarkable URL. Non mounted pages have
+ * to be created using bookmarkable URL in order to have hybrid URLs later. Otherwise it would
+ * be a potential security risk.
+ *
+ * @return <code>true</code> if this page has been created by a bookmarkable URL,
+ * <code>false</code> otherwise.
+ */
+ public boolean wasCreatedBookmarkable();
+
+
+ /**
+ * Returns the {@link PageParameters} for the page. Each bookmarkable page instance should have
+ * {@link PageParameters} associated with it. The page parameters are initialized from URL when
+ * page is created and are updated on every page render request.
+ *
+ * @return page parameters or <code>null</code>
+ */
+ public PageParameters getPageParameters();
}
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/handler/PageProvider.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/handler/PageProvider.java?rev=824605&r1=824604&r2=824605&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/handler/PageProvider.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/handler/PageProvider.java Tue Oct 13 06:42:17 2009
@@ -17,7 +17,7 @@
package org.apache.wicket.ng.request.handler;
import org.apache.wicket.ng.Application;
-import org.apache.wicket.ng.Page2;
+import org.apache.wicket.ng.Page;
import org.apache.wicket.ng.page.PageManager;
import org.apache.wicket.ng.request.RequestHandler;
import org.apache.wicket.ng.request.RequestMapper;
@@ -246,9 +246,9 @@
{
page = getPageSource().newPageInstance(pageClass, pageParameters);
freshCreated = true;
- if (prepareForRenderNewPage() && page instanceof Page2)
+ if (prepareForRenderNewPage() && page instanceof Page)
{
- ((Page2)page).prepareForRender(false);
+ ((Page)page).prepareForRender(false);
}
}
}
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=824605&r1=824604&r2=824605&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 Tue Oct 13 06:42:17 2009
@@ -17,7 +17,7 @@
package org.apache.wicket.ng.request.handler.impl.render;
import org.apache.wicket.ng.Application;
-import org.apache.wicket.ng.ThreadContext;
+import org.apache.wicket.ng.Session;
import org.apache.wicket.ng.protocol.http.WebApplication;
import org.apache.wicket.ng.request.Url;
import org.apache.wicket.ng.request.component.RequestablePage;
@@ -66,12 +66,12 @@
protected String getSessionId()
{
- return ThreadContext.getSession().getId();
+ return Session.get().getId();
}
protected boolean isSessionTemporary()
{
- return ThreadContext.getSession().isTemporary();
+ return Session.get().isTemporary();
}
protected BufferedWebResponse getAndRemoveBufferedResponse(Url url)
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=824605&r1=824604&r2=824605&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 Tue Oct 13 06:42:17 2009
@@ -16,7 +16,7 @@
*/
package org.apache.wicket.ng.request.mapper;
-import org.apache.wicket.ng.ThreadContext;
+import org.apache.wicket.ng.Session;
import org.apache.wicket.ng.protocol.http.WebApplication;
import org.apache.wicket.ng.request.Request;
import org.apache.wicket.ng.request.RequestHandler;
@@ -40,7 +40,7 @@
protected String getSessionId()
{
- return ThreadContext.getSession().getId();
+ return Session.get().getId();
}
protected boolean hasBufferedResponse(Url url)
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/settings/ApplicationSettings.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/settings/ApplicationSettings.java?rev=824605&r1=824604&r2=824605&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/settings/ApplicationSettings.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/settings/ApplicationSettings.java Tue Oct 13 06:42:17 2009
@@ -16,7 +16,7 @@
*/
package org.apache.wicket.ng.settings;
-import org.apache.wicket.application.IClassResolver;
+import org.apache.wicket.ng.application.ClassResolver;
public interface ApplicationSettings
{
@@ -25,7 +25,7 @@
*
* @return Default class resolver
*/
- IClassResolver getClassResolver();
+ ClassResolver getClassResolver();
/**
* Sets the default class resolver to use when finding classes and resources
@@ -33,5 +33,5 @@
* @param defaultClassResolver
* The default class resolver
*/
- void setClassResolver(final IClassResolver defaultClassResolver);
+ void setClassResolver(final ClassResolver defaultClassResolver);
}
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/AbstractHttpSessionStore.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/AbstractHttpSessionStore.java?rev=824605&r1=824604&r2=824605&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/AbstractHttpSessionStore.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/AbstractHttpSessionStore.java Tue Oct 13 06:42:17 2009
@@ -17,10 +17,6 @@
package org.apache.wicket.protocol.http;
import java.io.Serializable;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Set;
-import java.util.concurrent.CopyOnWriteArraySet;
import javax.servlet.http.HttpSession;
import javax.servlet.http.HttpSessionBindingEvent;
@@ -98,13 +94,7 @@
Application application = Application.get(applicationKey);
if (application != null)
{
- ISessionStore sessionStore = application.getSessionStore();
- sessionStore.unbind(sessionId);
-
- for (UnboundListener listener : sessionStore.getUnboundListeners())
- {
- listener.sessionUnbound(sessionId);
- }
+ application.getSessionStore().unbind(sessionId);
}
}
}
@@ -339,25 +329,4 @@
}
return (WebRequest)request;
}
-
- /** TODO javadoc */
- private final Set<UnboundListener> unboundListeners = new CopyOnWriteArraySet<UnboundListener>();
-
- /** TODO javadoc */
- public void registerUnboundListener(UnboundListener listener)
- {
- unboundListeners.add(listener);
- }
-
- /** TODO javadoc */
- public void unregisterUnboundListener(UnboundListener listener)
- {
- unboundListeners.remove(listener);
- }
-
- /** TODO javadoc */
- public Collection<org.apache.wicket.session.ISessionStore.UnboundListener> getUnboundListeners()
- {
- return Collections.unmodifiableCollection(unboundListeners);
- }
}
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/HttpSessionStore.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/HttpSessionStore.java?rev=824605&r1=824604&r2=824605&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/HttpSessionStore.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/HttpSessionStore.java Tue Oct 13 06:42:17 2009
@@ -16,7 +16,6 @@
*/
package org.apache.wicket.protocol.http;
-import java.io.Serializable;
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.List;
@@ -28,8 +27,6 @@
import org.apache.wicket.IPageMap;
import org.apache.wicket.Request;
import org.apache.wicket.Session;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
/**
@@ -37,15 +34,9 @@
* {@link javax.servlet.http.HttpSession} to store its attributes.
*
* @author Eelco Hillenius
- * @author Matej Knopp
- * @author Igor Vaynberg
*/
public class HttpSessionStore extends AbstractHttpSessionStore
{
-
- /** log. */
- private static Logger logger = LoggerFactory.getLogger(HttpSessionStore.class);
-
/**
* Construct.
*
@@ -66,16 +57,16 @@
}
/**
- * @{inheritDoc
+ * @see org.apache.wicket.session.ISessionStore#getAttribute(org.apache.wicket.Request,
+ * java.lang.String)
*/
- public Serializable getAttribute(Request request, String name)
+ public Object getAttribute(Request request, String name)
{
WebRequest webRequest = toWebRequest(request);
HttpSession httpSession = getHttpSession(webRequest);
if (httpSession != null)
{
- return (Serializable)httpSession.getAttribute(getSessionAttributePrefix(webRequest) +
- name);
+ return httpSession.getAttribute(getSessionAttributePrefix(webRequest) + name);
}
return null;
}
@@ -138,7 +129,7 @@
* @see org.apache.wicket.session.ISessionStore#setAttribute(Request,java.lang.String,
* java.lang.Object)
*/
- public void setAttribute(Request request, String name, Serializable value)
+ public void setAttribute(Request request, String name, Object value)
{
// ignore call if the session was marked invalid
if (!isSessionValid())
@@ -199,6 +190,4 @@
return true; // we simply don't know, so play safe and rely on
// servlet container's code to check availability
}
-
-
}
\ No newline at end of file
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/MockWebApplication.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/MockWebApplication.java?rev=824605&r1=824604&r2=824605&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/MockWebApplication.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/MockWebApplication.java Tue Oct 13 06:42:17 2009
@@ -35,9 +35,9 @@
import org.apache.wicket.IPageMap;
import org.apache.wicket.IRequestTarget;
import org.apache.wicket.Page;
+import org.apache.wicket.PageParameters;
import org.apache.wicket.Session;
import org.apache.wicket.markup.html.pages.ExceptionErrorPage;
-import org.apache.wicket.ng.request.component.PageParameters;
import org.apache.wicket.protocol.http.request.WebErrorCodeResponseTarget;
import org.apache.wicket.protocol.http.request.WebRequestCodingStrategy;
import org.apache.wicket.request.target.coding.WebRequestEncoder;
@@ -595,15 +595,13 @@
PageParameters parameters = pageClassRequestTarget.getPageParameters();
if (parameters == null || parameters.size() == 0)
{
- // FIXME NG MIGRATION, REQUESTABLEPAGE->PAGE
- newLastRenderedPage = (Page)application.getSessionSettings()
+ newLastRenderedPage = application.getSessionSettings()
.getPageFactory()
.newPage(pageClass);
}
else
{
- // FIXME NG MIGRATION, REQUESTABLEPAGE->PAGE
- newLastRenderedPage = (Page)application.getSessionSettings()
+ newLastRenderedPage = application.getSessionSettings()
.getPageFactory()
.newPage(pageClass, parameters);
}
@@ -764,6 +762,4 @@
{
this.createAjaxRequest = createAjaxRequest;
}
-
-
}
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/RequestUtils.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/RequestUtils.java?rev=824605&r1=824604&r2=824605&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/RequestUtils.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/RequestUtils.java Tue Oct 13 06:42:17 2009
@@ -25,7 +25,6 @@
import javax.servlet.http.HttpServletRequest;
import org.apache.wicket.RequestCycle;
-import org.apache.wicket.ng.request.component.PageParameters;
import org.apache.wicket.util.string.Strings;
import org.apache.wicket.util.value.ValueMap;
@@ -63,41 +62,6 @@
}
/**
- * Decode the provided queryString as a series of key/ value pairs and set them in the provided
- * value map.
- *
- * TODO NG MIGRATION
- *
- * @param queryString
- * string to decode, uses '&' to separate parameters and '=' to separate key from
- * value
- * @param params
- * parameters map to write the found key/ value pairs to
- *
- *
- * @deprecated
- *
- */
- @Deprecated
- public static void decodeParameters(String queryString, PageParameters params)
- {
- final String[] paramTuples = queryString.split("&");
- for (int t = 0; t < paramTuples.length; t++)
- {
- final String[] bits = paramTuples[t].split("=");
- if (bits.length == 2)
- {
- params.add(WicketURLDecoder.QUERY_INSTANCE.decode(bits[0]),
- WicketURLDecoder.QUERY_INSTANCE.decode(bits[1]));
- }
- else
- {
- params.add(WicketURLDecoder.QUERY_INSTANCE.decode(bits[0]), "");
- }
- }
- }
-
- /**
* decores url parameters form <code>queryString</code> into <code>parameters</code> map
*
* @param queryString
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/SecondLevelCacheSessionStore.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/SecondLevelCacheSessionStore.java?rev=824605&r1=824604&r2=824605&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/SecondLevelCacheSessionStore.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/SecondLevelCacheSessionStore.java Tue Oct 13 06:42:17 2009
@@ -747,7 +747,7 @@
* java.lang.String, java.lang.Object)
*/
@Override
- public void setAttribute(Request request, String name, Serializable value)
+ public void setAttribute(Request request, String name, Object value)
{
// ignore all pages, they are stored through the pagemap
if (!(value instanceof Page))
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/request/WebRequestCodingStrategy.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/request/WebRequestCodingStrategy.java?rev=824605&r1=824604&r2=824605&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/request/WebRequestCodingStrategy.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/request/WebRequestCodingStrategy.java Tue Oct 13 06:42:17 2009
@@ -32,6 +32,7 @@
import org.apache.wicket.IResourceListener;
import org.apache.wicket.Page;
import org.apache.wicket.PageMap;
+import org.apache.wicket.PageParameters;
import org.apache.wicket.PageReference;
import org.apache.wicket.Request;
import org.apache.wicket.RequestContext;
@@ -43,7 +44,6 @@
import org.apache.wicket.behavior.IActivePageBehaviorListener;
import org.apache.wicket.behavior.IBehavior;
import org.apache.wicket.behavior.IBehaviorListener;
-import org.apache.wicket.ng.request.component.PageParameters;
import org.apache.wicket.protocol.http.WebRequestCycle;
import org.apache.wicket.protocol.http.portlet.PortletRequestContext;
import org.apache.wicket.request.IRequestCodingStrategy;
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/request/AbstractRequestCycleProcessor.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/request/AbstractRequestCycleProcessor.java?rev=824605&r1=824604&r2=824605&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/request/AbstractRequestCycleProcessor.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/request/AbstractRequestCycleProcessor.java Tue Oct 13 06:42:17 2009
@@ -23,6 +23,7 @@
import org.apache.wicket.IRedirectListener;
import org.apache.wicket.IRequestTarget;
import org.apache.wicket.Page;
+import org.apache.wicket.PageParameters;
import org.apache.wicket.RequestContext;
import org.apache.wicket.RequestCycle;
import org.apache.wicket.RequestListenerInterface;
@@ -35,7 +36,6 @@
import org.apache.wicket.markup.MarkupException;
import org.apache.wicket.markup.html.INewBrowserWindowListener;
import org.apache.wicket.markup.html.pages.ExceptionErrorPage;
-import org.apache.wicket.ng.request.component.PageParameters;
import org.apache.wicket.protocol.http.PageExpiredException;
import org.apache.wicket.protocol.http.WebResponse;
import org.apache.wicket.protocol.http.request.WebErrorCodeResponseTarget;
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/request/target/basic/URIRequestTargetUrlCodingStrategy.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/request/target/basic/URIRequestTargetUrlCodingStrategy.java?rev=824605&r1=824604&r2=824605&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/request/target/basic/URIRequestTargetUrlCodingStrategy.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/request/target/basic/URIRequestTargetUrlCodingStrategy.java Tue Oct 13 06:42:17 2009
@@ -23,7 +23,7 @@
import javax.servlet.http.HttpServletRequest;
import org.apache.wicket.IRequestTarget;
-import org.apache.wicket.ng.request.component.PageParameters;
+import org.apache.wicket.PageParameters;
import org.apache.wicket.protocol.http.request.WebRequestCodingStrategy;
import org.apache.wicket.request.RequestParameters;
import org.apache.wicket.request.target.coding.AbstractRequestTargetUrlCodingStrategy;
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/request/target/coding/AbstractRequestTargetUrlCodingStrategy.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/request/target/coding/AbstractRequestTargetUrlCodingStrategy.java?rev=824605&r1=824604&r2=824605&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/request/target/coding/AbstractRequestTargetUrlCodingStrategy.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/request/target/coding/AbstractRequestTargetUrlCodingStrategy.java Tue Oct 13 06:42:17 2009
@@ -20,7 +20,6 @@
import java.util.Map;
import java.util.Map.Entry;
-import org.apache.wicket.ng.request.component.PageParameters;
import org.apache.wicket.protocol.http.WicketURLDecoder;
import org.apache.wicket.protocol.http.WicketURLEncoder;
import org.apache.wicket.protocol.http.servlet.AbortWithWebErrorCodeException;
@@ -111,24 +110,6 @@
}
}
- /**
- * Encodes PageParameters into a url fragment and append that to the provided url buffer.
- *
- * @param url
- * url so far
- *
- * @param parameters
- * Map object to be encoded
- *
- * @deprecated NG MIGRATION
- */
- @Deprecated
- protected void appendParameters(AppendingStringBuffer url, PageParameters parameters)
- {
- appendParameters(url, parameters.getNamedParametersMap());
- }
-
-
private void appendValue(AppendingStringBuffer url, String key, String value)
{
String escapedValue = urlEncodePathComponent(value);
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/request/target/coding/BookmarkablePageRequestTargetUrlCodingStrategy.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/request/target/coding/BookmarkablePageRequestTargetUrlCodingStrategy.java?rev=824605&r1=824604&r2=824605&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/request/target/coding/BookmarkablePageRequestTargetUrlCodingStrategy.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/request/target/coding/BookmarkablePageRequestTargetUrlCodingStrategy.java Tue Oct 13 06:42:17 2009
@@ -20,7 +20,7 @@
import org.apache.wicket.IRequestTarget;
import org.apache.wicket.Page;
-import org.apache.wicket.ng.request.component.PageParameters;
+import org.apache.wicket.PageParameters;
import org.apache.wicket.protocol.http.request.WebRequestCodingStrategy;
import org.apache.wicket.request.RequestParameters;
import org.apache.wicket.request.target.component.BookmarkableListenerInterfaceRequestTarget;
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/request/target/coding/HybridUrlCodingStrategy.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/request/target/coding/HybridUrlCodingStrategy.java?rev=824605&r1=824604&r2=824605&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/request/target/coding/HybridUrlCodingStrategy.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/request/target/coding/HybridUrlCodingStrategy.java Tue Oct 13 06:42:17 2009
@@ -23,9 +23,9 @@
import org.apache.wicket.IRequestTarget;
import org.apache.wicket.MetaDataKey;
import org.apache.wicket.Page;
+import org.apache.wicket.PageParameters;
import org.apache.wicket.RequestCycle;
import org.apache.wicket.Session;
-import org.apache.wicket.ng.request.component.PageParameters;
import org.apache.wicket.protocol.http.PageExpiredException;
import org.apache.wicket.protocol.http.WebRequest;
import org.apache.wicket.protocol.http.request.WebRequestCodingStrategy;
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/request/target/coding/IndexedHybridUrlCodingStrategy.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/request/target/coding/IndexedHybridUrlCodingStrategy.java?rev=824605&r1=824604&r2=824605&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/request/target/coding/IndexedHybridUrlCodingStrategy.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/request/target/coding/IndexedHybridUrlCodingStrategy.java Tue Oct 13 06:42:17 2009
@@ -18,8 +18,8 @@
import java.util.Map;
+import org.apache.wicket.PageParameters;
import org.apache.wicket.WicketRuntimeException;
-import org.apache.wicket.ng.request.component.PageParameters;
import org.apache.wicket.protocol.http.request.WebRequestCodingStrategy;
import org.apache.wicket.util.string.AppendingStringBuffer;
import org.apache.wicket.util.value.ValueMap;
@@ -87,7 +87,7 @@
PageParameters params = new PageParameters();
if (urlFragment == null)
{
- return params.toValueMap();
+ return params;
}
if (urlFragment.startsWith("/"))
{
@@ -115,7 +115,7 @@
}
}
}
- return params.toValueMap();
+ return params;
}
}
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/request/target/coding/IndexedParamUrlCodingStrategy.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/request/target/coding/IndexedParamUrlCodingStrategy.java?rev=824605&r1=824604&r2=824605&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/request/target/coding/IndexedParamUrlCodingStrategy.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/request/target/coding/IndexedParamUrlCodingStrategy.java Tue Oct 13 06:42:17 2009
@@ -19,8 +19,8 @@
import java.util.Map;
import org.apache.wicket.PageMap;
+import org.apache.wicket.PageParameters;
import org.apache.wicket.WicketRuntimeException;
-import org.apache.wicket.ng.request.component.PageParameters;
import org.apache.wicket.protocol.http.request.WebRequestCodingStrategy;
import org.apache.wicket.util.string.AppendingStringBuffer;
import org.apache.wicket.util.value.ValueMap;
@@ -132,7 +132,7 @@
PageParameters params = new PageParameters();
if (urlFragment == null)
{
- return params.toValueMap();
+ return params;
}
if (urlFragment.startsWith("/"))
{
@@ -167,7 +167,7 @@
}
}
}
- return params.toValueMap();
+ return params;
}
}
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/request/target/coding/MixedParamHybridUrlCodingStrategy.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/request/target/coding/MixedParamHybridUrlCodingStrategy.java?rev=824605&r1=824604&r2=824605&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/request/target/coding/MixedParamHybridUrlCodingStrategy.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/request/target/coding/MixedParamHybridUrlCodingStrategy.java Tue Oct 13 06:42:17 2009
@@ -23,8 +23,8 @@
import javax.servlet.http.HttpServletRequest;
import org.apache.wicket.Page;
+import org.apache.wicket.PageParameters;
import org.apache.wicket.RequestCycle;
-import org.apache.wicket.ng.request.component.PageParameters;
import org.apache.wicket.protocol.http.WebRequest;
import org.apache.wicket.util.string.AppendingStringBuffer;
import org.apache.wicket.util.string.Strings;
@@ -34,8 +34,8 @@
/**
* Url coding strategy for bookmarkable pages with Ajax components that encodes a set of given
- * parameters in the url's path and the rest in the query-string. In addition, the page version is
- * added to the end of the url's path.
+ * parameters in the url's path and the rest in the query-string. In addition, the page version
+ * is added to the end of the url's path.
* <p/>
* Strategy looks for path-parameters whose name is read from an array of names e.g. ["param0",
* "param1"]. Found parameters will be appended to the url in the form
@@ -48,195 +48,179 @@
* encode. For example, the names for the path parameters are: "a", "b" and "c". When "b" is not
* specified upon encoding, but "c" is, upon a decode "b" will get the empty string as value. When
* both "b" and "c" are missing on encode, the will not get a value during decode.
- *
+ *
* @author erik.van.oosten
* @see MixedParamUrlCodingStrategy
*/
public class MixedParamHybridUrlCodingStrategy extends HybridUrlCodingStrategy
{
- private static Logger logger = LoggerFactory.getLogger(MixedParamHybridUrlCodingStrategy.class);
+ private static Logger logger = LoggerFactory.getLogger(MixedParamHybridUrlCodingStrategy.class);
- private final String[] parameterNames;
- private boolean ignoreUndeclaredParameters = true;
+ private final String[] parameterNames;
+ private boolean ignoreUndeclaredParameters = true;
- /**
- * Construct.
- *
- * @param mountPath
- * mount path
- * @param pageClass
- * class of mounted page
- * @param redirectOnBookmarkableRequest
- * whether after hitting the page with URL in bookmarkable form it should be
- * redirected to hybrid URL - needed for ajax to work properly after page refresh
- * @param parameterNames
- * the parameter names (not null)
- */
- public MixedParamHybridUrlCodingStrategy(String mountPath, Class<? extends Page> pageClass,
- boolean redirectOnBookmarkableRequest, String[] parameterNames)
- {
- super(mountPath, pageClass, redirectOnBookmarkableRequest);
- this.parameterNames = parameterNames;
- }
-
- /**
- * Construct.
- *
- * @param mountPath
- * mount path
- * @param pageClass
- * class of mounted page
- * @param parameterNames
- * the parameter names (not null)
- */
- public MixedParamHybridUrlCodingStrategy(String mountPath, Class<? extends Page> pageClass,
- String[] parameterNames)
- {
- super(mountPath, pageClass);
- this.parameterNames = parameterNames;
- }
-
- /**
- * @param ignoreUndeclaredParameters
- * true to ignore undeclared parameters in the URL (still logged), false to throw an
- * exception when this happens (default is true)
- * @return this
- */
- public MixedParamHybridUrlCodingStrategy setIgnoreUndeclaredParameters(
- boolean ignoreUndeclaredParameters)
- {
- this.ignoreUndeclaredParameters = ignoreUndeclaredParameters;
- return this;
- }
-
- /** {@inheritDoc} */
- @Override
- protected void appendParameters(AppendingStringBuffer url, Map<String, ?> parameters)
- {
- if (!url.endsWith("/"))
- {
- url.append("/");
- }
-
- Set<String> parameterNamesToAdd = new HashSet<String>(parameters.keySet());
-
- // Find index of last specified parameter
- boolean foundParameter = false;
- int lastSpecifiedParameter = parameterNames.length;
- while (lastSpecifiedParameter != 0 && !foundParameter)
- {
- foundParameter = parameters.containsKey(parameterNames[--lastSpecifiedParameter]);
- }
-
- if (foundParameter)
- {
- for (int i = 0; i <= lastSpecifiedParameter; i++)
- {
- String parameterName = parameterNames[i];
- final Object param = parameters.get(parameterName);
- String value = param instanceof String[] ? ((String[])param)[0] : (String)param;
- if (value == null)
- {
- value = "";
- }
- if (!url.endsWith("/"))
- {
- url.append("/");
- }
- url.append(urlEncodePathComponent(value));
- parameterNamesToAdd.remove(parameterName);
- }
- }
-
- if (!parameterNamesToAdd.isEmpty())
- {
- boolean first = true;
- for (String parameterName : parameterNamesToAdd)
- {
- url.append(first ? '?' : '&');
- final Object param = parameters.get(parameterName);
- String value = param instanceof String[] ? ((String[])param)[0]
- : String.valueOf(param);
- url.append(urlEncodeQueryComponent(parameterName)).append("=").append(
- urlEncodeQueryComponent(value));
- first = false;
- }
- }
- }
-
- /** {@inheritDoc} */
- @Override
- protected String addPageInfo(String url, PageInfo pageInfo)
- {
- if (pageInfo == null)
- {
- return url;
- }
- else
- {
- // Insert the page info at the and of the path and before the querystring.
- if (url.indexOf('?') == -1)
- {
- return url + getBeginSeparator() + pageInfo.toString() + getEndSeparator();
- }
- else
- {
- return Strings.firstPathComponent(url, '?') + getBeginSeparator() +
- pageInfo.toString() + getEndSeparator() + '?' +
- Strings.afterFirstPathComponent(url, '?');
- }
- }
- }
-
- /** {@inheritDoc} */
- @Override
- protected ValueMap decodeParameters(String urlFragment, Map<String, ?> urlParameters)
- {
- PageParameters params = new PageParameters();
- // Add all url parameters
- params.putAll(urlParameters);
- String urlPath = urlFragment;
- if (urlPath.startsWith("/"))
- {
- urlPath = urlPath.substring(1);
- }
-
- if (urlPath.length() > 0)
- {
- String[] pathParts = urlPath.split("/");
- if (pathParts.length > parameterNames.length)
- {
- // Some known causes of this situation:
- // - user edits the URL manually
- // - a javascript requests resources relative to the current page instead of to the
- // web context
- String msg = String.format(
- "Found more URL path parts then expected, these will be ignored. Url: '%s', mountpath: '%s', urlPath: '%s', expected %d parameters was %d",
- getRequestUrl(), getMountPath(), urlPath, parameterNames.length,
- pathParts.length);
- if (ignoreUndeclaredParameters)
- {
- logger.info(msg);
- }
- else
- {
- throw new IllegalArgumentException(msg);
- }
- }
-
- int actualParameterCount = Math.min(pathParts.length, parameterNames.length);
- for (int i = 0; i < actualParameterCount; i++)
- {
- params.put(parameterNames[i], urlDecodePathComponent(pathParts[i]));
- }
- }
-
- return params.toValueMap();
- }
-
- private String getRequestUrl()
- {
- HttpServletRequest request = ((WebRequest)RequestCycle.get().getRequest()).getHttpServletRequest();
- return request.getRequestURL().toString();
- }
+ /**
+ * Construct.
+ *
+ * @param mountPath mount path
+ * @param pageClass class of mounted page
+ * @param redirectOnBookmarkableRequest
+ * whether after hitting the page with URL in bookmarkable form it should be
+ * redirected to hybrid URL - needed for ajax to work properly after page refresh
+ * @param parameterNames the parameter names (not null)
+ */
+ public MixedParamHybridUrlCodingStrategy(
+ String mountPath, Class<? extends Page> pageClass,
+ boolean redirectOnBookmarkableRequest, String[] parameterNames)
+ {
+ super(mountPath, pageClass, redirectOnBookmarkableRequest);
+ this.parameterNames = parameterNames;
+ }
+
+ /**
+ * Construct.
+ *
+ * @param mountPath mount path
+ * @param pageClass class of mounted page
+ * @param parameterNames the parameter names (not null)
+ */
+ public MixedParamHybridUrlCodingStrategy(String mountPath, Class<? extends Page> pageClass, String[] parameterNames)
+ {
+ super(mountPath, pageClass);
+ this.parameterNames = parameterNames;
+ }
+
+ /**
+ * @param ignoreUndeclaredParameters true to ignore undeclared parameters in
+ * the URL (still logged), false to throw an exception when this
+ * happens (default is true)
+ * @return this
+ */
+ public MixedParamHybridUrlCodingStrategy setIgnoreUndeclaredParameters(boolean ignoreUndeclaredParameters)
+ {
+ this.ignoreUndeclaredParameters = ignoreUndeclaredParameters;
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ protected void appendParameters(AppendingStringBuffer url, Map<String, ?> parameters)
+ {
+ if (!url.endsWith("/"))
+ {
+ url.append("/");
+ }
+
+ Set<String> parameterNamesToAdd = new HashSet<String>(parameters.keySet());
+
+ // Find index of last specified parameter
+ boolean foundParameter = false;
+ int lastSpecifiedParameter = parameterNames.length;
+ while (lastSpecifiedParameter != 0 && !foundParameter)
+ {
+ foundParameter = parameters.containsKey(parameterNames[--lastSpecifiedParameter]);
+ }
+
+ if (foundParameter) {
+ for (int i = 0; i <= lastSpecifiedParameter; i++)
+ {
+ String parameterName = parameterNames[i];
+ final Object param = parameters.get(parameterName);
+ String value = param instanceof String[] ? ((String[])param)[0] : (String)param;
+ if (value == null)
+ {
+ value = "";
+ }
+ if (!url.endsWith("/"))
+ {
+ url.append("/");
+ }
+ url.append(urlEncodePathComponent(value));
+ parameterNamesToAdd.remove(parameterName);
+ }
+ }
+
+ if (!parameterNamesToAdd.isEmpty())
+ {
+ boolean first = true;
+ for (String parameterName : parameterNamesToAdd)
+ {
+ url.append(first ? '?' : '&');
+ final Object param = parameters.get(parameterName);
+ String value = param instanceof String[] ? ((String[])param)[0] : String.valueOf(param);
+ url.append(urlEncodeQueryComponent(parameterName)).append("=").append(urlEncodeQueryComponent(value));
+ first = false;
+ }
+ }
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ protected String addPageInfo(String url, PageInfo pageInfo)
+ {
+ if (pageInfo == null)
+ {
+ return url;
+ }
+ else
+ {
+ // Insert the page info at the and of the path and before the querystring.
+ if (url.indexOf('?') == -1)
+ {
+ return url + getBeginSeparator() + pageInfo.toString() + getEndSeparator();
+ }
+ else
+ {
+ return Strings.firstPathComponent(url, '?') + getBeginSeparator() + pageInfo.toString() + getEndSeparator() + '?' + Strings.afterFirstPathComponent(url, '?');
+ }
+ }
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ protected ValueMap decodeParameters(String urlFragment, Map<String, ?> urlParameters)
+ {
+ PageParameters params = new PageParameters();
+ // Add all url parameters
+ params.putAll(urlParameters);
+ String urlPath = urlFragment;
+ if (urlPath.startsWith("/"))
+ {
+ urlPath = urlPath.substring(1);
+ }
+
+ if (urlPath.length() > 0)
+ {
+ String[] pathParts = urlPath.split("/");
+ if (pathParts.length > parameterNames.length)
+ {
+ // Some known causes of this situation:
+ // - user edits the URL manually
+ // - a javascript requests resources relative to the current page instead of to the web context
+ String msg = String.format("Found more URL path parts then expected, these will be ignored. Url: '%s', mountpath: '%s', urlPath: '%s', expected %d parameters was %d", getRequestUrl(), getMountPath(), urlPath, parameterNames.length, pathParts.length);
+ if (ignoreUndeclaredParameters)
+ {
+ logger.info(msg);
+ }
+ else
+ {
+ throw new IllegalArgumentException(msg);
+ }
+ }
+
+ int actualParameterCount = Math.min(pathParts.length, parameterNames.length);
+ for (int i = 0; i < actualParameterCount; i++)
+ {
+ params.put(parameterNames[i], urlDecodePathComponent(pathParts[i]));
+ }
+ }
+
+ return params;
+ }
+
+ private String getRequestUrl()
+ {
+ HttpServletRequest request = ((WebRequest) RequestCycle.get().getRequest()).getHttpServletRequest();
+ return request.getRequestURL().toString();
+ }
}
\ No newline at end of file
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/request/target/coding/MixedParamUrlCodingStrategy.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/request/target/coding/MixedParamUrlCodingStrategy.java?rev=824605&r1=824604&r2=824605&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/request/target/coding/MixedParamUrlCodingStrategy.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/request/target/coding/MixedParamUrlCodingStrategy.java Tue Oct 13 06:42:17 2009
@@ -24,8 +24,8 @@
import org.apache.wicket.Page;
import org.apache.wicket.PageMap;
+import org.apache.wicket.PageParameters;
import org.apache.wicket.RequestCycle;
-import org.apache.wicket.ng.request.component.PageParameters;
import org.apache.wicket.protocol.http.WebRequest;
import org.apache.wicket.util.string.AppendingStringBuffer;
import org.apache.wicket.util.value.ValueMap;
@@ -52,10 +52,10 @@
*/
public class MixedParamUrlCodingStrategy extends BookmarkablePageRequestTargetUrlCodingStrategy
{
- private static Logger logger = LoggerFactory.getLogger(MixedParamUrlCodingStrategy.class);
+ private static Logger logger = LoggerFactory.getLogger(MixedParamUrlCodingStrategy.class);
- private final String[] parameterNames;
- private boolean ignoreUndeclaredParameters = true;
+ private final String[] parameterNames;
+ private boolean ignoreUndeclaredParameters = true;
/**
* Construct.
@@ -95,18 +95,17 @@
this.parameterNames = parameterNames;
}
- /**
- * @param ignoreUndeclaredParameters
- * true to ignore undeclared parameters in the URL (still logged), false to throw an
- * exception when this happens (default is true)
- * @return this
- */
- public MixedParamUrlCodingStrategy setIgnoreUndeclaredParameters(
- boolean ignoreUndeclaredParameters)
- {
- this.ignoreUndeclaredParameters = ignoreUndeclaredParameters;
- return this;
- }
+ /**
+ * @param ignoreUndeclaredParameters true to ignore undeclared parameters in
+ * the URL (still logged), false to throw an exception when this
+ * happens (default is true)
+ * @return this
+ */
+ public MixedParamUrlCodingStrategy setIgnoreUndeclaredParameters(boolean ignoreUndeclaredParameters)
+ {
+ this.ignoreUndeclaredParameters = ignoreUndeclaredParameters;
+ return this;
+ }
/**
* @see org.apache.wicket.request.target.coding.AbstractRequestTargetUrlCodingStrategy#appendParameters(org.apache.wicket.util.string.AppendingStringBuffer,
@@ -157,8 +156,7 @@
{
url.append(first ? '?' : '&');
final Object param = parameters.get(parameterName);
- String value = param instanceof String[] ? ((String[])param)[0]
- : String.valueOf(param);
+ String value = param instanceof String[] ? ((String[])param)[0] : String.valueOf(param);
url.append(urlEncodeQueryComponent(parameterName)).append("=").append(
urlEncodeQueryComponent(value));
first = false;
@@ -187,37 +185,29 @@
String[] pathParts = urlPath.split("/");
if (pathParts.length > parameterNames.length)
{
- // Some known causes of this situation:
- // - user edits the URL manually
- // - a javascript requests resources relative to the current page instead of to the
- // web context
- String msg = String.format(
- "Found more URL path parts then expected, these will be ignored. Url: '%s', mountpath: '%s', urlPath: '%s', expected %d parameters was %d",
- getRequestUrl(), getMountPath(), urlPath, parameterNames.length,
- pathParts.length);
- if (ignoreUndeclaredParameters)
- {
- logger.info(msg);
- }
- else
- {
- throw new IllegalArgumentException(msg);
- }
+ // Some known causes of this situation:
+ // - user edits the URL manually
+ // - a javascript requests resources relative to the current page instead of to the web context
+ String msg = String.format("Found more URL path parts then expected, these will be ignored. Url: '%s', mountpath: '%s', urlPath: '%s', expected %d parameters was %d", getRequestUrl(), getMountPath(), urlPath, parameterNames.length, pathParts.length);
+ if (ignoreUndeclaredParameters) {
+ logger.info(msg);
+ } else {
+ throw new IllegalArgumentException(msg);
+ }
}
- int actualParameterCount = Math.min(pathParts.length, parameterNames.length);
- for (int i = 0; i < actualParameterCount; i++)
- {
- params.put(parameterNames[i], urlDecodePathComponent(pathParts[i]));
- }
+ int actualParameterCount = Math.min(pathParts.length, parameterNames.length);
+ for (int i = 0; i < actualParameterCount; i++) {
+ params.put(parameterNames[i], urlDecodePathComponent(pathParts[i]));
+ }
}
- return params.toValueMap();
+ return params;
}
- private String getRequestUrl()
- {
- HttpServletRequest request = ((WebRequest)RequestCycle.get().getRequest()).getHttpServletRequest();
- return request.getRequestURL().toString();
- }
+ private String getRequestUrl()
+ {
+ HttpServletRequest request = ((WebRequest) RequestCycle.get().getRequest()).getHttpServletRequest();
+ return request.getRequestURL().toString();
+ }
}
\ No newline at end of file
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/request/target/coding/PackageRequestTargetUrlCodingStrategy.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/request/target/coding/PackageRequestTargetUrlCodingStrategy.java?rev=824605&r1=824604&r2=824605&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/request/target/coding/PackageRequestTargetUrlCodingStrategy.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/request/target/coding/PackageRequestTargetUrlCodingStrategy.java Tue Oct 13 06:42:17 2009
@@ -17,8 +17,8 @@
package org.apache.wicket.request.target.coding;
import org.apache.wicket.IRequestTarget;
+import org.apache.wicket.PageParameters;
import org.apache.wicket.Session;
-import org.apache.wicket.ng.request.component.PageParameters;
import org.apache.wicket.protocol.http.request.WebRequestCodingStrategy;
import org.apache.wicket.request.RequestParameters;
import org.apache.wicket.request.target.component.BookmarkableListenerInterfaceRequestTarget;
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/request/target/coding/QueryStringUrlCodingStrategy.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/request/target/coding/QueryStringUrlCodingStrategy.java?rev=824605&r1=824604&r2=824605&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/request/target/coding/QueryStringUrlCodingStrategy.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/request/target/coding/QueryStringUrlCodingStrategy.java Tue Oct 13 06:42:17 2009
@@ -22,7 +22,7 @@
import org.apache.wicket.IRequestTarget;
import org.apache.wicket.PageMap;
-import org.apache.wicket.ng.request.component.PageParameters;
+import org.apache.wicket.PageParameters;
import org.apache.wicket.request.RequestParameters;
import org.apache.wicket.request.target.component.BookmarkableListenerInterfaceRequestTarget;
import org.apache.wicket.request.target.component.BookmarkablePageRequestTarget;
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/request/target/component/BookmarkableListenerInterfaceRequestTarget.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/request/target/component/BookmarkableListenerInterfaceRequestTarget.java?rev=824605&r1=824604&r2=824605&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/request/target/component/BookmarkableListenerInterfaceRequestTarget.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/request/target/component/BookmarkableListenerInterfaceRequestTarget.java Tue Oct 13 06:42:17 2009
@@ -18,11 +18,11 @@
import org.apache.wicket.Component;
import org.apache.wicket.Page;
+import org.apache.wicket.PageParameters;
import org.apache.wicket.RequestCycle;
import org.apache.wicket.RequestListenerInterface;
import org.apache.wicket.Session;
import org.apache.wicket.WicketRuntimeException;
-import org.apache.wicket.ng.request.component.PageParameters;
import org.apache.wicket.protocol.http.PageExpiredException;
import org.apache.wicket.protocol.http.request.WebRequestCodingStrategy;
import org.apache.wicket.util.string.AppendingStringBuffer;
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/request/target/component/BookmarkablePageRequestTarget.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/request/target/component/BookmarkablePageRequestTarget.java?rev=824605&r1=824604&r2=824605&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/request/target/component/BookmarkablePageRequestTarget.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/request/target/component/BookmarkablePageRequestTarget.java Tue Oct 13 06:42:17 2009
@@ -21,8 +21,8 @@
import org.apache.wicket.IPageFactory;
import org.apache.wicket.Page;
+import org.apache.wicket.PageParameters;
import org.apache.wicket.RequestCycle;
-import org.apache.wicket.ng.request.component.PageParameters;
import org.apache.wicket.request.IRequestCycleProcessor;
import org.apache.wicket.settings.IRequestCycleSettings;
@@ -296,14 +296,14 @@
if (pageParameters == null || pageParameters.size() == 0)
{
- return (Page)pageFactory.newPage(pageClass);
+ return pageFactory.newPage(pageClass);
}
else
{
// Add bookmarkable params in for WICKET-400.
final Map<String, String[]> requestMap = requestCycle.getRequest().getParameterMap();
requestMap.putAll(pageParameters.toRequestParameters());
- return (Page)pageFactory.newPage(pageClass, pageParameters);
+ return pageFactory.newPage(pageClass, pageParameters);
}
}