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/02 19:33:53 UTC

svn commit: r821107 [1/2] - in /wicket/sandbox/knopp/experimental/wicket-ng/src: main/java/org/apache/wicket/ main/java/org/apache/wicket/markup/html/form/ main/java/org/apache/wicket/markup/html/link/ main/java/org/apache/wicket/mock/ main/java/org/ap...

Author: ivaynberg
Date: Fri Oct  2 17:33:50 2009
New Revision: 821107

URL: http://svn.apache.org/viewvc?rev=821107&view=rev
Log:
cleanup of ipage and icomponent. i am not 100% happy with this, maybe not even 80%, but it will do for now

Added:
    wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/page/IManageablePage.java   (with props)
    wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/component/
    wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/component/IRequestableComponent.java   (contents, props changed)
      - copied, changed from r821086, wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/IComponent.java
    wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/component/IRequestablePage.java   (contents, props changed)
      - copied, changed from r821086, wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/IPage.java
    wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/component/PageExpiredException.java   (contents, props changed)
      - copied, changed from r821086, wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/PageExpiredException.java
    wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/component/PageFactory.java   (contents, props changed)
      - copied, changed from r821086, wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/PageFactory.java
    wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/component/PageParameters.java   (contents, props changed)
      - copied, changed from r821086, wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/PageParameters.java
    wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/listener/
    wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/listener/IRequestListener.java   (contents, props changed)
      - copied, changed from r821086, wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/IRequestListener.java
    wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/listener/RequestListenerInterface.java   (contents, props changed)
      - copied, changed from r821086, wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/RequestListenerInterface.java
Removed:
    wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/IComponent.java
    wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/IPage.java
    wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/IRequestListener.java
    wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/PageExpiredException.java
    wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/PageFactory.java
    wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/PageParameters.java
    wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/RequestListenerInterface.java
Modified:
    wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/Application.java
    wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/Component.java
    wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/DefaultPageFactory.java
    wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/Page.java
    wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/markup/html/form/IFormSubmitListener.java
    wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/markup/html/link/ILinkListener.java
    wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/mock/MockApplication.java
    wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/mock/MockPageManager.java
    wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/page/PageManager.java
    wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/page/common/AbstractPageManager.java
    wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/page/common/RequestAdapter.java
    wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/page/persistent/DefaultPageStore.java
    wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/page/persistent/PageStore.java
    wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/page/persistent/PersistentPageManager.java
    wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/cycle/RequestCycle.java
    wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/handler/ComponentRequestHandler.java
    wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/handler/PageAndComponentProvider.java
    wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/handler/PageClassRequestHandler.java
    wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/handler/PageProvider.java
    wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/handler/PageRequestHandler.java
    wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/handler/impl/BookmarkableListenerInterfaceRequestHandler.java
    wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/handler/impl/BookmarkablePageRequestHandler.java
    wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/handler/impl/ListenerInterfaceRequestHandler.java
    wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/handler/impl/RenderPageRequestHandler.java
    wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/handler/impl/render/WebRenderPageRequestHandlerDelegate.java
    wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/handler/resource/ResourceReferenceRequestHandler.java
    wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/handler/resource/ResourceRequestHandler.java
    wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/mapper/AbstractBookmarkableMapper.java
    wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/mapper/AbstractMapper.java
    wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/mapper/BookmarkableMapper.java
    wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/mapper/IPageSource.java
    wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/mapper/MapperContext.java
    wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/mapper/MountedMapper.java
    wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/mapper/PageInstanceMapper.java
    wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/mapper/ResourceReferenceMapper.java
    wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/mapper/StalePageException.java
    wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/mapper/info/PageInfo.java
    wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/mapper/parameters/PageParametersEncoder.java
    wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/mapper/parameters/SimplePageParametersEncoder.java
    wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/resource/Resource.java
    wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/util/io/SerializableChecker.java
    wicket/sandbox/knopp/experimental/wicket-ng/src/test/java/org/apache/wicket/MockComponent.java
    wicket/sandbox/knopp/experimental/wicket-ng/src/test/java/org/apache/wicket/MockPage.java
    wicket/sandbox/knopp/experimental/wicket-ng/src/test/java/org/apache/wicket/request/mapper/AbstractEncoderTest.java
    wicket/sandbox/knopp/experimental/wicket-ng/src/test/java/org/apache/wicket/request/mapper/BookmarkableEncoderTest.java
    wicket/sandbox/knopp/experimental/wicket-ng/src/test/java/org/apache/wicket/request/mapper/MountedMapperTest.java
    wicket/sandbox/knopp/experimental/wicket-ng/src/test/java/org/apache/wicket/request/mapper/PageInstanceMapperTest.java
    wicket/sandbox/knopp/experimental/wicket-ng/src/test/java/org/apache/wicket/request/mapper/ResourceReferenceEncoderTest.java
    wicket/sandbox/knopp/experimental/wicket-ng/src/test/java/org/apache/wicket/request/mapper/TestMapperContext.java

Modified: wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/Application.java
URL: http://svn.apache.org/viewvc/wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/Application.java?rev=821107&r1=821106&r2=821107&view=diff
==============================================================================
--- wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/Application.java (original)
+++ wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/Application.java Fri Oct  2 17:33:50 2009
@@ -17,10 +17,14 @@
 import org.apache.wicket.request.IRequestMapper;
 import org.apache.wicket.request.Request;
 import org.apache.wicket.request.Url;
+import org.apache.wicket.request.component.IRequestablePage;
+import org.apache.wicket.request.component.PageFactory;
+import org.apache.wicket.request.component.PageParameters;
 import org.apache.wicket.request.cycle.IRequestCycleContext;
 import org.apache.wicket.request.cycle.RequestCycle;
 import org.apache.wicket.request.handler.impl.RenderPageRequestHandler;
 import org.apache.wicket.request.handler.impl.render.RenderPageRequestHandlerDelegate;
+import org.apache.wicket.request.listener.RequestListenerInterface;
 import org.apache.wicket.request.mapper.CompoundRequestMapper;
 import org.apache.wicket.request.mapper.MapperContext;
 import org.apache.wicket.request.response.Response;
@@ -462,7 +466,7 @@
 	 * 
 	 * @return Home page class for this application
 	 */
-	public abstract Class<? extends IPage> getHomePage();
+	public abstract Class<? extends IRequestablePage> getHomePage();
 
 	private CompoundRequestMapper requestHandlerEncoderRegistry;
 
@@ -567,7 +571,7 @@
 			return listenerInterface.getName();
 		}
 
-		public IPage newPageInstance(Class<? extends IPage> pageClass, PageParameters pageParameters)
+		public IRequestablePage newPageInstance(Class<? extends IRequestablePage> pageClass, PageParameters pageParameters)
 		{
 			if (pageParameters == null)
 			{
@@ -579,12 +583,12 @@
 			}
 		}
 
-		public IPage getPageInstance(int pageId)
+		public IRequestablePage getPageInstance(int pageId)
 		{
 			return Page.get(pageId);
 		}
 
-		public Class<? extends IPage> getHomePageClass()
+		public Class<? extends IRequestablePage> getHomePageClass()
 		{
 			return Application.this.getHomePage();
 		}

Modified: wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/Component.java
URL: http://svn.apache.org/viewvc/wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/Component.java?rev=821107&r1=821106&r2=821107&view=diff
==============================================================================
--- wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/Component.java (original)
+++ wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/Component.java Fri Oct  2 17:33:50 2009
@@ -5,6 +5,8 @@
 import java.util.List;
 
 import org.apache.wicket.behavior.IBehavior;
+import org.apache.wicket.request.component.IRequestableComponent;
+import org.apache.wicket.request.component.IRequestablePage;
 import org.apache.wicket.util.string.Strings;
 
 /**
@@ -12,7 +14,7 @@
  * 
  * @author Matej Knopp
  */
-public class Component implements IComponent
+public class Component implements IRequestableComponent
 {
 	private static final long serialVersionUID = 1L;
 
@@ -163,7 +165,7 @@
 
 	public String getPath()
 	{
-		if (getParent() instanceof IPage)
+		if (getParent() instanceof IRequestablePage)
 		{
 			return getId();
 		}

Modified: wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/DefaultPageFactory.java
URL: http://svn.apache.org/viewvc/wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/DefaultPageFactory.java?rev=821107&r1=821106&r2=821107&view=diff
==============================================================================
--- wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/DefaultPageFactory.java (original)
+++ wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/DefaultPageFactory.java Fri Oct  2 17:33:50 2009
@@ -20,6 +20,9 @@
 import java.lang.reflect.InvocationTargetException;
 import java.util.Map;
 
+import org.apache.wicket.request.component.IRequestablePage;
+import org.apache.wicket.request.component.PageFactory;
+import org.apache.wicket.request.component.PageParameters;
 import org.apache.wicket.util.lang.Generics;
 
 
@@ -40,13 +43,13 @@
 	/**
 	 * @see PageFactory#newPage(Class)
 	 */
-	public final <C extends IPage> Page newPage(final Class<C> pageClass)
+	public final <C extends IRequestablePage> Page newPage(final Class<C> pageClass)
 	{
 		try
 		{
 			// throw an exception in case default constructor is missing
 			// => improved error message
-			final Constructor<? extends IPage> constructor = pageClass.getConstructor((Class[])null);
+			final Constructor<? extends IRequestablePage> constructor = pageClass.getConstructor((Class[])null);
 
 			return processPage(newPage(constructor, null), null);
 		}
@@ -69,7 +72,7 @@
 	/**
 	 * @see PageFactory#newPage(Class, PageParameters)
 	 */
-	public final <C extends IPage> Page newPage(final Class<C> pageClass,
+	public final <C extends IRequestablePage> Page newPage(final Class<C> pageClass,
 		final PageParameters parameters)
 	{
 		// Try to get constructor that takes PageParameters
@@ -98,7 +101,7 @@
 	 * @return The page constructor, or null if no one-arg constructor can be found taking the given
 	 *         argument type.
 	 */
-	private final <C extends IPage> Constructor<?> constructor(final Class<C> pageClass,
+	private final <C extends IRequestablePage> Constructor<?> constructor(final Class<C> pageClass,
 		final Class<PageParameters> argumentType)
 	{
 		// Get constructor for page class from cache

Modified: wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/Page.java
URL: http://svn.apache.org/viewvc/wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/Page.java?rev=821107&r1=821106&r2=821107&view=diff
==============================================================================
--- wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/Page.java (original)
+++ wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/Page.java Fri Oct  2 17:33:50 2009
@@ -1,9 +1,11 @@
 package org.apache.wicket;
 
+import org.apache.wicket.request.component.IRequestablePage;
+import org.apache.wicket.request.component.PageParameters;
 import org.apache.wicket.request.cycle.RequestCycle;
 import org.apache.wicket.request.response.Response;
 
-public class Page extends Component implements IPage
+public class Page extends Component implements IRequestablePage
 {
 	private static final long serialVersionUID = 1L;
 

Modified: wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/markup/html/form/IFormSubmitListener.java
URL: http://svn.apache.org/viewvc/wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/markup/html/form/IFormSubmitListener.java?rev=821107&r1=821106&r2=821107&view=diff
==============================================================================
--- wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/markup/html/form/IFormSubmitListener.java (original)
+++ wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/markup/html/form/IFormSubmitListener.java Fri Oct  2 17:33:50 2009
@@ -16,8 +16,8 @@
  */
 package org.apache.wicket.markup.html.form;
 
-import org.apache.wicket.IRequestListener;
-import org.apache.wicket.RequestListenerInterface;
+import org.apache.wicket.request.listener.IRequestListener;
+import org.apache.wicket.request.listener.RequestListenerInterface;
 
 /**
  * Listener interface that is called when a form is submitted.

Modified: wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/markup/html/link/ILinkListener.java
URL: http://svn.apache.org/viewvc/wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/markup/html/link/ILinkListener.java?rev=821107&r1=821106&r2=821107&view=diff
==============================================================================
--- wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/markup/html/link/ILinkListener.java (original)
+++ wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/markup/html/link/ILinkListener.java Fri Oct  2 17:33:50 2009
@@ -16,8 +16,8 @@
  */
 package org.apache.wicket.markup.html.link;
 
-import org.apache.wicket.IRequestListener;
-import org.apache.wicket.RequestListenerInterface;
+import org.apache.wicket.request.listener.IRequestListener;
+import org.apache.wicket.request.listener.RequestListenerInterface;
 
 /**
  * Listener method for link clicks.

Modified: wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/mock/MockApplication.java
URL: http://svn.apache.org/viewvc/wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/mock/MockApplication.java?rev=821107&r1=821106&r2=821107&view=diff
==============================================================================
--- wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/mock/MockApplication.java (original)
+++ wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/mock/MockApplication.java Fri Oct  2 17:33:50 2009
@@ -1,9 +1,9 @@
 package org.apache.wicket.mock;
 
 import org.apache.wicket.Application;
-import org.apache.wicket.IPage;
 import org.apache.wicket.page.PageManager;
 import org.apache.wicket.request.Request;
+import org.apache.wicket.request.component.IRequestablePage;
 import org.apache.wicket.request.handler.impl.RenderPageRequestHandler;
 import org.apache.wicket.request.handler.impl.render.RenderPageRequestHandlerDelegate;
 import org.apache.wicket.request.mapper.BookmarkableMapper;
@@ -28,7 +28,7 @@
 	}
 
 	@Override
-	public Class<? extends IPage> getHomePage()
+	public Class<? extends IRequestablePage> getHomePage()
 	{
 		return null;
 	}

Modified: wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/mock/MockPageManager.java
URL: http://svn.apache.org/viewvc/wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/mock/MockPageManager.java?rev=821107&r1=821106&r2=821107&view=diff
==============================================================================
--- wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/mock/MockPageManager.java (original)
+++ wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/mock/MockPageManager.java Fri Oct  2 17:33:50 2009
@@ -5,10 +5,11 @@
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
 
-import org.apache.wicket.IPage;
+import org.apache.wicket.page.IManageablePage;
 import org.apache.wicket.page.PageManagerContext;
 import org.apache.wicket.page.common.AbstractPageManager;
 import org.apache.wicket.page.common.RequestAdapter;
+import org.apache.wicket.request.component.IRequestablePage;
 
 public class MockPageManager extends AbstractPageManager
 {
@@ -17,7 +18,7 @@
 	{
 	}
 
-	private Map<String, Map<Integer, IPage>> sessionMap = new ConcurrentHashMap<String, Map<Integer, IPage>>();
+	private Map<String, Map<Integer, IManageablePage>> sessionMap = new ConcurrentHashMap<String, Map<Integer, IManageablePage>>();
 
 	private class MockRequestAdapter extends RequestAdapter
 	{
@@ -27,9 +28,9 @@
 		}
 
 		@Override
-		protected IPage getPage(int id)
+		protected IManageablePage getPage(int id)
 		{
-			Map<Integer, IPage> pages = sessionMap.get(getSessionId());
+			Map<Integer, IManageablePage> pages = sessionMap.get(getSessionId());
 			return pages != null ? pages.get(id) : null;
 		}
 
@@ -40,16 +41,16 @@
 		}
 
 		@Override
-		protected void storeTouchedPages(List<IPage> touchedPages)
+		protected void storeTouchedPages(List<IManageablePage> touchedPages)
 		{
 			bind();
-			Map<Integer, IPage> pages = sessionMap.get(getSessionId());
+			Map<Integer, IManageablePage> pages = sessionMap.get(getSessionId());
 			if (pages == null)
 			{
-				pages = new HashMap<Integer, IPage>();
+				pages = new HashMap<Integer, IManageablePage>();
 				sessionMap.put(getSessionId(), pages);
 			}
-			for (IPage page : touchedPages)
+			for (IManageablePage page : touchedPages)
 			{
 				pages.put(page.getPageId(), page);
 			}

Added: wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/page/IManageablePage.java
URL: http://svn.apache.org/viewvc/wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/page/IManageablePage.java?rev=821107&view=auto
==============================================================================
--- wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/page/IManageablePage.java (added)
+++ wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/page/IManageablePage.java Fri Oct  2 17:33:50 2009
@@ -0,0 +1,23 @@
+package org.apache.wicket.page;
+
+import org.apache.wicket.model.IDetachable;
+
+public interface IManageablePage extends IDetachable
+{
+    /**
+     * Gets whether the page is stateless. Components on stateless page must not render any stateful
+     * urls. Stateful urls are urls, which refer to a certain (current) page instance and don't
+     * contain enough information to reconstruct page if it's not available (page class).
+     * 
+     * @return Whether this page is stateless
+     */
+    // note that this has different semantics than Component#isStateless()
+    public boolean isPageStateless();
+
+    /**
+     * @return A unique identifier for this page map entry
+     */
+    public int getPageId();
+
+
+}

Propchange: wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/page/IManageablePage.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/page/PageManager.java
URL: http://svn.apache.org/viewvc/wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/page/PageManager.java?rev=821107&r1=821106&r2=821107&view=diff
==============================================================================
--- wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/page/PageManager.java (original)
+++ wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/page/PageManager.java Fri Oct  2 17:33:50 2009
@@ -17,7 +17,6 @@
 package org.apache.wicket.page;
 
 
-import org.apache.wicket.IPage;
 
 /**
  * Page manager.
@@ -39,14 +38,14 @@
 	 * @param id
 	 * @return page instance or <code>null</code>
 	 */
-	public IPage getPage(int id);
+	public IManageablePage getPage(int id);
 
 	/**
 	 * Marks page as changed.
 	 * 
 	 * @param page
 	 */
-	public void touchPage(IPage page);
+	public void touchPage(IManageablePage page);
 
 	/**
 	 * Returns whether this manager supports versioning. Managers that support versioning must

Modified: wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/page/common/AbstractPageManager.java
URL: http://svn.apache.org/viewvc/wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/page/common/AbstractPageManager.java?rev=821107&r1=821106&r2=821107&view=diff
==============================================================================
--- wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/page/common/AbstractPageManager.java (original)
+++ wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/page/common/AbstractPageManager.java Fri Oct  2 17:33:50 2009
@@ -1,7 +1,7 @@
 package org.apache.wicket.page.common;
 
 
-import org.apache.wicket.IPage;
+import org.apache.wicket.page.IManageablePage;
 import org.apache.wicket.page.PageManager;
 import org.apache.wicket.page.PageManagerContext;
 import org.slf4j.Logger;
@@ -18,71 +18,71 @@
  */
 public abstract class AbstractPageManager implements PageManager
 {
-	private PageManagerContext context;
-	
-	public AbstractPageManager()
-	{
-	}
-	
-	protected abstract RequestAdapter newRequestAdapter(PageManagerContext context);
-
-	public abstract boolean supportsVersioning();
-	
-	public abstract void sessionExpired(String sessionId);
-	
-	public void setContext(PageManagerContext context)
-	{
-		this.context = context;
-	}
-	
-	public PageManagerContext getContext()
-	{
-		return context;
-	};
-	
-	protected RequestAdapter getRequestAdapter()
-	{
-		RequestAdapter adapter = (RequestAdapter) getContext().getRequestData();
-		if (adapter == null)
-		{
-			adapter = newRequestAdapter(getContext());
-			getContext().setRequestData(adapter);
-		}
-		return adapter;
-	}
-
-	public void commitRequest()
-	{
-		RequestAdapter adapter = getRequestAdapter();
-		adapter.commitRequest();
-	}
-
-	public IPage getPage(int id)
-	{
-		RequestAdapter adapter = getRequestAdapter();
-		IPage page = adapter.getPage(id);
-		if (page != null)
-		{
-			touchPage(page);
-		}
-		return page;
-	}
-
-	public void newSessionCreated()
-	{
-		RequestAdapter adapter = getRequestAdapter();
-		adapter.newSessionCreated();
-	}
-
-	public void touchPage(IPage page)
-	{
-		if (!page.isPageStateless())
-		{
-			getContext().bind();
-		}
-		RequestAdapter adapter = getRequestAdapter();
-		adapter.touch(page);
-	}
+    private PageManagerContext context;
 
-	static Logger logger = LoggerFactory.getLogger(AbstractPageManager.class);
+    public AbstractPageManager()
+    {
+    }
+
+    protected abstract RequestAdapter newRequestAdapter(PageManagerContext context);
+
+    public abstract boolean supportsVersioning();
+
+    public abstract void sessionExpired(String sessionId);
+
+    public void setContext(PageManagerContext context)
+    {
+        this.context = context;
+    }
+
+    public PageManagerContext getContext()
+    {
+        return context;
+    };
+
+    protected RequestAdapter getRequestAdapter()
+    {
+        RequestAdapter adapter = (RequestAdapter)getContext().getRequestData();
+        if (adapter == null)
+        {
+            adapter = newRequestAdapter(getContext());
+            getContext().setRequestData(adapter);
+        }
+        return adapter;
+    }
+
+    public void commitRequest()
+    {
+        RequestAdapter adapter = getRequestAdapter();
+        adapter.commitRequest();
+    }
+
+    public IManageablePage getPage(int id)
+    {
+        RequestAdapter adapter = getRequestAdapter();
+        IManageablePage page = adapter.getPage(id);
+        if (page != null)
+        {
+            touchPage(page);
+        }
+        return page;
+    }
+
+    public void newSessionCreated()
+    {
+        RequestAdapter adapter = getRequestAdapter();
+        adapter.newSessionCreated();
+    }
+
+    public void touchPage(IManageablePage page)
+    {
+        if (!page.isPageStateless())
+        {
+            getContext().bind();
+        }
+        RequestAdapter adapter = getRequestAdapter();
+        adapter.touch(page);
+    }
+
+    static Logger logger = LoggerFactory.getLogger(AbstractPageManager.class);
 }

Modified: wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/page/common/RequestAdapter.java
URL: http://svn.apache.org/viewvc/wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/page/common/RequestAdapter.java?rev=821107&r1=821106&r2=821107&view=diff
==============================================================================
--- wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/page/common/RequestAdapter.java (original)
+++ wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/page/common/RequestAdapter.java Fri Oct  2 17:33:50 2009
@@ -4,9 +4,10 @@
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.wicket.IPage;
+import org.apache.wicket.page.IManageablePage;
 import org.apache.wicket.page.PageManager;
 import org.apache.wicket.page.PageManagerContext;
+import org.apache.wicket.request.component.IRequestablePage;
 
 /**
  * Request scoped helper class for {@link PageManager}.
@@ -29,14 +30,14 @@
 	 * @param id
 	 * @return page instance or <code>null</code> if the page does not exist.
 	 */
-	protected abstract IPage getPage(int id);
+	protected abstract IManageablePage getPage(int id);
 
 	/**
 	 * Store the list of pages.
 	 * 
 	 * @param touchedPages
 	 */
-	protected abstract void storeTouchedPages(List<IPage> touchedPages);
+	protected abstract void storeTouchedPages(List<IManageablePage> touchedPages);
 	
 	/**
 	 * Notification on new session being created.
@@ -66,9 +67,9 @@
 		return context.getSessionId();
 	}
 
-	protected final IPage getPageInternal(int id)
+	protected final IManageablePage getPageInternal(int id)
 	{
-		IPage page = findPage(id);
+		IManageablePage page = findPage(id);
 		if (page == null)
 		{
 			page = getPage(id);
@@ -80,9 +81,9 @@
 		return page;
 	}
 
-	private IPage findPage(int id)
+	private IManageablePage findPage(int id)
 	{
-		for (IPage page : pages)
+		for (IManageablePage page : pages)
 		{
 			if (page.getPageId() == id)
 			{
@@ -92,13 +93,13 @@
 		return null;
 	}
 
-	protected void touch(IPage page)
+	protected void touch(IManageablePage page)
 	{
 		if (findPage(page.getPageId()) == null)
 		{
 			pages.add(page);
 		}
-		for (IPage p : touchedPages)
+		for (IManageablePage p : touchedPages)
 		{
 			if (p.getPageId() == page.getPageId())
 			{
@@ -110,7 +111,7 @@
 
 	protected void commitRequest()
 	{
-		for (IPage page : pages)
+		for (IManageablePage page : pages)
 		{
 			try
 			{
@@ -123,8 +124,8 @@
 		}
 		
 		// store pages that are not stateless
-		List<IPage> statefulPages = new ArrayList<IPage>(touchedPages.size());
-		for (IPage page : touchedPages)
+		List<IManageablePage> statefulPages = new ArrayList<IManageablePage>(touchedPages.size());
+		for (IManageablePage page : touchedPages)
 		{
 			if (!page.isPageStateless())
 			{
@@ -134,6 +135,6 @@
 		storeTouchedPages(statefulPages);
 	}
 
-	List<IPage> touchedPages = new ArrayList<IPage>();
-	List<IPage> pages = new ArrayList<IPage>();
+	List<IManageablePage> touchedPages = new ArrayList<IManageablePage>();
+	List<IManageablePage> pages = new ArrayList<IManageablePage>();
 }
\ No newline at end of file

Modified: wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/page/persistent/DefaultPageStore.java
URL: http://svn.apache.org/viewvc/wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/page/persistent/DefaultPageStore.java?rev=821107&r1=821106&r2=821107&view=diff
==============================================================================
--- wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/page/persistent/DefaultPageStore.java (original)
+++ wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/page/persistent/DefaultPageStore.java Fri Oct  2 17:33:50 2009
@@ -6,8 +6,8 @@
 import java.util.Iterator;
 import java.util.List;
 
-import org.apache.wicket.IPage;
 import org.apache.wicket.Page;
+import org.apache.wicket.page.IManageablePage;
 import org.apache.wicket.util.lang.Check;
 import org.apache.wicket.util.lang.Objects;
 
@@ -59,7 +59,7 @@
 		return applicationName;
 	}
 
-	public IPage getPage(String sessionId, int id)
+	public IManageablePage getPage(String sessionId, int id)
 	{
 		SerializedPage fromCache = serializedPagesCache.getPage(sessionId, id);
 		if (fromCache != null)
@@ -86,7 +86,7 @@
 		removePageData(sessionId, id);
 	}
 
-	public void storePage(String sessionId, IPage page)
+	public void storePage(String sessionId, IManageablePage page)
 	{
 		SerializedPage serialized = serializePage(sessionId, page);
 		serializedPagesCache.storePage(serialized);
@@ -99,11 +99,11 @@
 		serializedPagesCache.removePages(sessionId);
 	}
 
-	public IPage convertToPage(Object object)
+	public IManageablePage convertToPage(Object object)
 	{
-		if (object instanceof IPage)
+		if (object instanceof IManageablePage)
 		{
-			return (IPage)object;
+			return (IManageablePage)object;
 		}
 		else if (object instanceof SerializedPage)
 		{
@@ -156,9 +156,9 @@
 		
 		SerializedPage result = null;
 		
-		if (object instanceof IPage)
+		if (object instanceof IManageablePage)
 		{
-			IPage page = (IPage) object;
+			IManageablePage page = (IManageablePage) object;
 			result = serializedPagesCache.getPage(sessionId, page.getPageId());
 			if (result == null)
 			{
@@ -277,7 +277,7 @@
 		}
 	};
 
-	protected SerializedPage serializePage(String sessionId, IPage page)
+	protected SerializedPage serializePage(String sessionId, IManageablePage page)
 	{
 		Check.argumentNotNull(sessionId, "sessionId");
 		Check.argumentNotNull(page, "page");
@@ -286,9 +286,9 @@
 		return new SerializedPage(sessionId, page.getPageId(), data);
 	}
 
-	protected IPage deserializePage(byte data[])
+	protected IManageablePage deserializePage(byte data[])
 	{
-		return (IPage) Objects.byteArrayToObject(data);
+		return (IManageablePage) Objects.byteArrayToObject(data);
 	}
 
 	/**

Modified: wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/page/persistent/PageStore.java
URL: http://svn.apache.org/viewvc/wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/page/persistent/PageStore.java?rev=821107&r1=821106&r2=821107&view=diff
==============================================================================
--- wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/page/persistent/PageStore.java (original)
+++ wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/page/persistent/PageStore.java Fri Oct  2 17:33:50 2009
@@ -2,7 +2,7 @@
 
 import java.io.Serializable;
 
-import org.apache.wicket.IPage;
+import org.apache.wicket.page.IManageablePage;
 
 public interface PageStore
 {
@@ -18,7 +18,7 @@
 	 * @param id
 	 * @return The page
 	 */
-	IPage getPage(String sessionId, int id);
+	IManageablePage getPage(String sessionId, int id);
 
 	/**
 	 * Removes a page from the persistent layer.
@@ -37,7 +37,7 @@
 	 * @param sessionId
 	 * @param page
 	 */
-	void storePage(String sessionId, IPage page);
+	void storePage(String sessionId, IManageablePage page);
 
 	/**
 	 * The pagestore should cleanup all the pages for that sessionid.
@@ -78,5 +78,5 @@
 	 * @param page
 	 * @return page
 	 */
-	public IPage convertToPage(Object page);
+	public IManageablePage convertToPage(Object page);
 }

Modified: wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/page/persistent/PersistentPageManager.java
URL: http://svn.apache.org/viewvc/wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/page/persistent/PersistentPageManager.java?rev=821107&r1=821106&r2=821107&view=diff
==============================================================================
--- wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/page/persistent/PersistentPageManager.java (original)
+++ wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/page/persistent/PersistentPageManager.java Fri Oct  2 17:33:50 2009
@@ -7,253 +7,255 @@
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
 
-import org.apache.wicket.IPage;
+import org.apache.wicket.page.IManageablePage;
 import org.apache.wicket.page.PageManagerContext;
 import org.apache.wicket.page.common.AbstractPageManager;
 import org.apache.wicket.page.common.RequestAdapter;
 
 public class PersistentPageManager extends AbstractPageManager
 {
-	private final PageStore pageStore;
-	private final String applicationName;
+    private final PageStore pageStore;
+    private final String applicationName;
 
-	public PersistentPageManager(String applicationName, PageStore pageStore)
-	{
-		this.applicationName = applicationName;
-		this.pageStore = pageStore;
-		managers.put(applicationName, this);
-	}
-
-	private static Map<String, PersistentPageManager> managers = new ConcurrentHashMap<String, PersistentPageManager>();
-
-	/**
-	 * Represents entry for single session. This is stored as session attribute and caches pages
-	 * between requests.
-	 * 
-	 * @author Matej Knopp
-	 */
-	private static class SessionEntry implements Serializable
-	{
-		private static final long serialVersionUID = 1L;
-
-		private final String applicationName;
-		private final String sessionId;
-
-		public SessionEntry(String applicationName, String sessionId)
-		{
-			this.applicationName = applicationName;
-			this.sessionId = sessionId;
-		}
-
-		private PageStore getPageStore()
-		{
-			PersistentPageManager manager = managers.get(applicationName);
-			if (manager == null)
-			{
-				throw new IllegalStateException("PageManager for application " + applicationName + " not registered.");
-			}
-			return manager.pageStore;
-		}
-
-		/**
-		 * Add the page to cached pages if page with same id is not already there 
-		 * 
-		 * @param page
-		 */
-		private void addPage(IPage page)
-		{
-			if (page != null)
-			{
-				for (IPage p : pages)
-				{
-					if (p.getId() == page.getId())
-					{
-						return;
-					}
-				}
-			}
-			pages.add(page);
-		}
-
-		/**
-		 * If the pages are stored in temporary state (after deserialization) this method
-		 * convert them to list of "real" pages 
-		 */
-		private void convertAfterReadObjects()
-		{
-			if (pages == null)
-			{
-				pages = new ArrayList<IPage>();
-			}
-
-			for (Object o : afterReadObject)
-			{
-				IPage page = getPageStore().convertToPage(o);
-				addPage(page);
-			}
-
-			afterReadObject = null;
-		}
-
-		public synchronized IPage getPage(int id)
-		{
-			// check if pages are in deserialized state
-			if (afterReadObject != null && afterReadObject.isEmpty() == false)
-			{
-				convertAfterReadObjects();
-			}
-			
-			// try to find page with same id
-			if (pages != null)
-			{
-				for (IPage page : pages)
-				{
-					if (page.getPageId() == id)
-					{
-						return page;
-					}
-				}
-			}
-			
-			// not found, ask pagestore for the page
-			return getPageStore().getPage(sessionId, id);
-		}
-
-		// set the list of pages to remember after the request
-		public synchronized void setPages(List<IPage> pages)
-		{
-			this.pages = new ArrayList<IPage>(pages);
-			afterReadObject = null;
-		}
-
-		private transient List<IPage> pages;
-		private transient List<Object> afterReadObject;
-
-		private void writeObject(java.io.ObjectOutputStream s) throws IOException
-		{
-			s.defaultWriteObject();
-			
-			// prepare for serialization and store the pages
-			List<Serializable> l = new ArrayList<Serializable>();
-			for (IPage p : pages)
-			{
-				l.add(getPageStore().prepareForSerialization(sessionId, p));
-			}
-			s.writeObject(l);
-		}
-
-		@SuppressWarnings("unchecked")
-		private void readObject(java.io.ObjectInputStream s) throws IOException, ClassNotFoundException
-		{
-			s.defaultReadObject();
-
-			List<Serializable> l = (List<Serializable>) s.readObject();
-
-			// convert to temporary state after deserialization (will need to be processed
-			// by convertAfterReadObject before the pages can be accessed)
-			for (Serializable ser : l)
-			{
-				afterReadObject.add(getPageStore().restoreAfterSerialization(ser));
-			}
-
-			afterReadObject = new ArrayList<Object>();
-		}
-	};
-
-	/**
-	 * {@link RequestAdapter} for {@link PersistentPageManager}
-	 * 
-	 * @author Matej Knopp
-	 */
-	protected class PersitentRequestAdapter extends RequestAdapter
-	{
-		public PersitentRequestAdapter(PageManagerContext context)
-		{
-			super(context);
-		}
-
-		@Override
-		protected IPage getPage(int id)
-		{
-			// try to get session entry for this session
-			SessionEntry entry = getSessionEntry(false);
-			
-			if (entry != null)
-			{
-				return entry.getPage(id);
-			}
-			else
-			{
-				return null;
-			}
-		}
-
-		private static final String ATTRIBUTE_NAME = "wicket:persistentPageManagerData";
-
-		private SessionEntry getSessionEntry(boolean create)
-		{
-			SessionEntry entry = (SessionEntry) getSessionAttribute(ATTRIBUTE_NAME);
-			if (entry == null && create)
-			{
-				bind();
-				entry = new SessionEntry(applicationName, getSessionId());
-			}
-			if (entry != null)
-			{
-				synchronized (entry)
-				{
-					setSessionAttribute(ATTRIBUTE_NAME, null);
-					setSessionAttribute(ATTRIBUTE_NAME, entry);
-				}
-			}
-			return entry;
-		}
-
-		@Override
-		protected void newSessionCreated()
-		{
-			// if the session is not temporary bind a session entry to it
-			if (getSessionId() != null)
-			{
-				getSessionEntry(true);
-			}
-		}
-
-		@Override
-		protected void storeTouchedPages(List<IPage> touchedPages)
-		{
-			if (!touchedPages.isEmpty())
-			{
-				SessionEntry entry = getSessionEntry(true);
-				entry.setPages(touchedPages);
-				for (IPage page : touchedPages)
-				{
-					pageStore.storePage(getSessionId(), page);
-				}
-			}
-		}
-	};
-
-	@Override
-	protected RequestAdapter newRequestAdapter(PageManagerContext context)
-	{
-		return new PersitentRequestAdapter(context);
-	}
-
-	@Override
-	public boolean supportsVersioning()
-	{
-		return true;
-	}
-
-	public void sessionExpired(String sessionId)
-	{
-		pageStore.unbind(sessionId);
-	}
-
-	public void destroy()
-	{
-		managers.remove(applicationName);
-	}
+    public PersistentPageManager(String applicationName, PageStore pageStore)
+    {
+        this.applicationName = applicationName;
+        this.pageStore = pageStore;
+        managers.put(applicationName, this);
+    }
+
+    private static Map<String, PersistentPageManager> managers = new ConcurrentHashMap<String, PersistentPageManager>();
+
+    /**
+     * Represents entry for single session. This is stored as session attribute and caches pages
+     * between requests.
+     * 
+     * @author Matej Knopp
+     */
+    private static class SessionEntry implements Serializable
+    {
+        private static final long serialVersionUID = 1L;
+
+        private final String applicationName;
+        private final String sessionId;
+
+        public SessionEntry(String applicationName, String sessionId)
+        {
+            this.applicationName = applicationName;
+            this.sessionId = sessionId;
+        }
+
+        private PageStore getPageStore()
+        {
+            PersistentPageManager manager = managers.get(applicationName);
+            if (manager == null)
+            {
+                throw new IllegalStateException("PageManager for application " + applicationName +
+                        " not registered.");
+            }
+            return manager.pageStore;
+        }
+
+        /**
+         * Add the page to cached pages if page with same id is not already there
+         * 
+         * @param page
+         */
+        private void addPage(IManageablePage page)
+        {
+            if (page != null)
+            {
+                for (IManageablePage p : pages)
+                {
+                    if (p.getPageId() == page.getPageId())
+                    {
+                        return;
+                    }
+                }
+            }
+            pages.add(page);
+        }
+
+        /**
+         * If the pages are stored in temporary state (after deserialization) this method convert
+         * them to list of "real" pages
+         */
+        private void convertAfterReadObjects()
+        {
+            if (pages == null)
+            {
+                pages = new ArrayList<IManageablePage>();
+            }
+
+            for (Object o : afterReadObject)
+            {
+                IManageablePage page = getPageStore().convertToPage(o);
+                addPage(page);
+            }
+
+            afterReadObject = null;
+        }
+
+        public synchronized IManageablePage getPage(int id)
+        {
+            // check if pages are in deserialized state
+            if (afterReadObject != null && afterReadObject.isEmpty() == false)
+            {
+                convertAfterReadObjects();
+            }
+
+            // try to find page with same id
+            if (pages != null)
+            {
+                for (IManageablePage page : pages)
+                {
+                    if (page.getPageId() == id)
+                    {
+                        return page;
+                    }
+                }
+            }
+
+            // not found, ask pagestore for the page
+            return getPageStore().getPage(sessionId, id);
+        }
+
+        // set the list of pages to remember after the request
+        public synchronized void setPages(List<IManageablePage> pages)
+        {
+            this.pages = new ArrayList<IManageablePage>(pages);
+            afterReadObject = null;
+        }
+
+        private transient List<IManageablePage> pages;
+        private transient List<Object> afterReadObject;
+
+        private void writeObject(java.io.ObjectOutputStream s) throws IOException
+        {
+            s.defaultWriteObject();
+
+            // prepare for serialization and store the pages
+            List<Serializable> l = new ArrayList<Serializable>();
+            for (IManageablePage p : pages)
+            {
+                l.add(getPageStore().prepareForSerialization(sessionId, p));
+            }
+            s.writeObject(l);
+        }
+
+        @SuppressWarnings("unchecked")
+        private void readObject(java.io.ObjectInputStream s) throws IOException,
+                ClassNotFoundException
+        {
+            s.defaultReadObject();
+
+            List<Serializable> l = (List<Serializable>)s.readObject();
+
+            // convert to temporary state after deserialization (will need to be processed
+            // by convertAfterReadObject before the pages can be accessed)
+            for (Serializable ser : l)
+            {
+                afterReadObject.add(getPageStore().restoreAfterSerialization(ser));
+            }
+
+            afterReadObject = new ArrayList<Object>();
+        }
+    };
+
+    /**
+     * {@link RequestAdapter} for {@link PersistentPageManager}
+     * 
+     * @author Matej Knopp
+     */
+    protected class PersitentRequestAdapter extends RequestAdapter
+    {
+        public PersitentRequestAdapter(PageManagerContext context)
+        {
+            super(context);
+        }
+
+        @Override
+        protected IManageablePage getPage(int id)
+        {
+            // try to get session entry for this session
+            SessionEntry entry = getSessionEntry(false);
+
+            if (entry != null)
+            {
+                return entry.getPage(id);
+            }
+            else
+            {
+                return null;
+            }
+        }
+
+        private static final String ATTRIBUTE_NAME = "wicket:persistentPageManagerData";
+
+        private SessionEntry getSessionEntry(boolean create)
+        {
+            SessionEntry entry = (SessionEntry)getSessionAttribute(ATTRIBUTE_NAME);
+            if (entry == null && create)
+            {
+                bind();
+                entry = new SessionEntry(applicationName, getSessionId());
+            }
+            if (entry != null)
+            {
+                synchronized (entry)
+                {
+                    setSessionAttribute(ATTRIBUTE_NAME, null);
+                    setSessionAttribute(ATTRIBUTE_NAME, entry);
+                }
+            }
+            return entry;
+        }
+
+        @Override
+        protected void newSessionCreated()
+        {
+            // if the session is not temporary bind a session entry to it
+            if (getSessionId() != null)
+            {
+                getSessionEntry(true);
+            }
+        }
+
+        @Override
+        protected void storeTouchedPages(List<IManageablePage> touchedPages)
+        {
+            if (!touchedPages.isEmpty())
+            {
+                SessionEntry entry = getSessionEntry(true);
+                entry.setPages(touchedPages);
+                for (IManageablePage page : touchedPages)
+                {
+                    pageStore.storePage(getSessionId(), page);
+                }
+            }
+        }
+    };
+
+    @Override
+    protected RequestAdapter newRequestAdapter(PageManagerContext context)
+    {
+        return new PersitentRequestAdapter(context);
+    }
+
+    @Override
+    public boolean supportsVersioning()
+    {
+        return true;
+    }
+
+    public void sessionExpired(String sessionId)
+    {
+        pageStore.unbind(sessionId);
+    }
+
+    public void destroy()
+    {
+        managers.remove(applicationName);
+    }
 
 }

Copied: wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/component/IRequestableComponent.java (from r821086, wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/IComponent.java)
URL: http://svn.apache.org/viewvc/wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/component/IRequestableComponent.java?p2=wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/component/IRequestableComponent.java&p1=wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/IComponent.java&r1=821086&r2=821107&rev=821107&view=diff
==============================================================================
--- wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/IComponent.java (original)
+++ wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/component/IRequestableComponent.java Fri Oct  2 17:33:50 2009
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.wicket;
+package org.apache.wicket.request.component;
 
 import java.util.List;
 
@@ -27,8 +27,7 @@
  * 
  * @author Matej Knopp
  */
-// TODO: Better name would be nice
-public interface IComponent extends IDetachable
+public interface IRequestableComponent extends IDetachable
 {
 	/**
 	 * Gets this component's path.
@@ -43,33 +42,13 @@
 	 * @return The id of this component
 	 */
 	public String getId();
-
-	/**
-	 * Retrieves id by which this component is represented within the markup. This is either the id
-	 * attribute set explicitly via a call to {@link #setMarkupId(String)}, id attribute defined in
-	 * the markup, or an automatically generated id - in that order.
-	 * <p>
-	 * If no id is set and <code>createIfDoesNotExist</code> is false, this method will return
-	 * null. Otherwise it will generate an id value that will be unique in the page. This is the
-	 * preferred way as there is no chance of id collision.
-	 * <p>
-	 * Note: This method should only be called after the component or its parent have been added to
-	 * the page.
-	 * 
-	 * @param createIfDoesNotExist
-	 *            When there is no existing markup id, determines whether it should be generated or
-	 *            whether <code>null</code> should be returned.
-	 * 
-	 * @return markup id of the component
-	 */
-	public String getMarkupId(boolean createIfDoesNotExist);
 	
 	/**
 	 * Returns page this component belongs to.
 	 * 
 	 * @return page instance or <code>null</code>
 	 */
-	public IPage getPage();
+	public IRequestablePage getPage();
 	
 	/**
 	 * Gets the component at the given path.
@@ -78,7 +57,7 @@
 	 *            Path to component
 	 * @return The component at the path
 	 */
-	public IComponent get(String path);
+	public IRequestableComponent get(String path);
 	
 	/**
 	 * Returns true if the listener interface method can be called on this component. Normally

Propchange: wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/component/IRequestableComponent.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Copied: wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/component/IRequestablePage.java (from r821086, wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/IPage.java)
URL: http://svn.apache.org/viewvc/wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/component/IRequestablePage.java?p2=wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/component/IRequestablePage.java&p1=wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/IPage.java&r1=821086&r2=821107&rev=821107&view=diff
==============================================================================
--- wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/IPage.java (original)
+++ wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/component/IRequestablePage.java Fri Oct  2 17:33:50 2009
@@ -14,7 +14,10 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.wicket;
+package org.apache.wicket.request.component;
+
+import org.apache.wicket.page.IManageablePage;
+
 
 /**
  * Base interface for pages. The purpose of this interface is to make certain parts of Wicket easier
@@ -22,65 +25,50 @@
  * 
  * @author Matej Knopp
  */
-// TODO: Better name would be nice
-public interface IPage extends IComponent
+public interface IRequestablePage extends IRequestableComponent, IManageablePage
 {
-	/**
-	 * @return A unique identifier for this page map entry
-	 */
-	public int getPageId();
-
-	/**
-	 * 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();
-	
-	/**
-	 * Gets whether the page is stateless. Components on stateless page must not render any
-	 * stateful urls.
-	 * Stateful urls are urls, which refer to a certain (current) page instance and don't contain
-	 * enough information to reconstruct page if it's not available (page class).
-	 * 
-	 * @return Whether this page is stateless
-	 */
-	// note that this has different semantics than Component#isStateless()
-	public boolean isPageStateless();
-
-	/**
-	 * 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();
+
+    /**
+     * 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();
 }

Propchange: wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/component/IRequestablePage.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Copied: wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/component/PageExpiredException.java (from r821086, wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/PageExpiredException.java)
URL: http://svn.apache.org/viewvc/wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/component/PageExpiredException.java?p2=wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/component/PageExpiredException.java&p1=wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/PageExpiredException.java&r1=821086&r2=821107&rev=821107&view=diff
==============================================================================
--- wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/PageExpiredException.java (original)
+++ wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/component/PageExpiredException.java Fri Oct  2 17:33:50 2009
@@ -14,7 +14,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.wicket;
+package org.apache.wicket.request.component;
+
+import org.apache.wicket.WicketRuntimeException;
 
 
 /**

Propchange: wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/component/PageExpiredException.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Copied: wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/component/PageFactory.java (from r821086, wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/PageFactory.java)
URL: http://svn.apache.org/viewvc/wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/component/PageFactory.java?p2=wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/component/PageFactory.java&p1=wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/PageFactory.java&r1=821086&r2=821107&rev=821107&view=diff
==============================================================================
--- wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/PageFactory.java (original)
+++ wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/component/PageFactory.java Fri Oct  2 17:33:50 2009
@@ -14,7 +14,11 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.wicket;
+package org.apache.wicket.request.component;
+
+import org.apache.wicket.Page;
+import org.apache.wicket.Session;
+import org.apache.wicket.WicketRuntimeException;
 
 
 /**
@@ -45,7 +49,7 @@
 	 * @throws WicketRuntimeException
 	 *             Thrown if the page cannot be constructed
 	 */
-	<C extends IPage> IPage newPage(final Class<C> pageClass);
+	<C extends IRequestablePage> IRequestablePage newPage(final Class<C> pageClass);
 
 	/**
 	 * Creates a new Page, passing PageParameters to the Page constructor if such a constructor
@@ -62,5 +66,5 @@
 	 * @throws WicketRuntimeException
 	 *             Thrown if the page cannot be constructed
 	 */
-	<C extends IPage> IPage newPage(final Class<C> pageClass, final PageParameters parameters);
+	<C extends IRequestablePage> IRequestablePage newPage(final Class<C> pageClass, final PageParameters parameters);
 }

Propchange: wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/component/PageFactory.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Copied: wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/component/PageParameters.java (from r821086, wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/PageParameters.java)
URL: http://svn.apache.org/viewvc/wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/component/PageParameters.java?p2=wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/component/PageParameters.java&p1=wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/PageParameters.java&r1=821086&r2=821107&rev=821107&view=diff
==============================================================================
--- wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/PageParameters.java (original)
+++ wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/component/PageParameters.java Fri Oct  2 17:33:50 2009
@@ -1,4 +1,4 @@
-package org.apache.wicket;
+package org.apache.wicket.request.component;
 
 import java.io.Serializable;
 import java.util.ArrayList;

Propchange: wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/component/PageParameters.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/cycle/RequestCycle.java
URL: http://svn.apache.org/viewvc/wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/cycle/RequestCycle.java?rev=821107&r1=821106&r2=821107&view=diff
==============================================================================
--- wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/cycle/RequestCycle.java (original)
+++ wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/cycle/RequestCycle.java Fri Oct  2 17:33:50 2009
@@ -19,14 +19,14 @@
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.wicket.IPage;
 import org.apache.wicket.MetaDataEntry;
 import org.apache.wicket.MetaDataKey;
-import org.apache.wicket.PageParameters;
 import org.apache.wicket.ThreadContext;
 import org.apache.wicket.request.IRequestHandler;
 import org.apache.wicket.request.Request;
 import org.apache.wicket.request.Url;
+import org.apache.wicket.request.component.IRequestablePage;
+import org.apache.wicket.request.component.PageParameters;
 import org.apache.wicket.request.handler.PageProvider;
 import org.apache.wicket.request.handler.impl.RenderPageRequestHandler;
 import org.apache.wicket.request.response.Response;
@@ -380,13 +380,13 @@
 		ThreadContext.setRequestCycle(requestCycle);
 	}
 
-	public void setResponsePage(IPage page)
+	public void setResponsePage(IRequestablePage page)
 	{
 		replaceCurrentRequestHandler(new RenderPageRequestHandler(new PageProvider(page),
 				RenderPageRequestHandler.RedirectPolicy.AUTO_REDIRECT));
 	}
 
-	public void setResponsePage(Class<? extends IPage> pageClass, PageParameters parameters)
+	public void setResponsePage(Class<? extends IRequestablePage> pageClass, PageParameters parameters)
 	{
 		PageProvider provider = new PageProvider(pageClass);
 		replaceCurrentRequestHandler(new RenderPageRequestHandler(provider,

Modified: wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/handler/ComponentRequestHandler.java
URL: http://svn.apache.org/viewvc/wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/handler/ComponentRequestHandler.java?rev=821107&r1=821106&r2=821107&view=diff
==============================================================================
--- wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/handler/ComponentRequestHandler.java (original)
+++ wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/handler/ComponentRequestHandler.java Fri Oct  2 17:33:50 2009
@@ -16,8 +16,8 @@
  */
 package org.apache.wicket.request.handler;
 
-import org.apache.wicket.IComponent;
 import org.apache.wicket.request.IRequestHandler;
+import org.apache.wicket.request.component.IRequestableComponent;
 
 /**
  * Request handler that works with a component.
@@ -31,5 +31,5 @@
 	 * 
 	 * @return component instance
 	 */
-	public IComponent getComponent();
+	public IRequestableComponent getComponent();
 }

Modified: wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/handler/PageAndComponentProvider.java
URL: http://svn.apache.org/viewvc/wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/handler/PageAndComponentProvider.java?rev=821107&r1=821106&r2=821107&view=diff
==============================================================================
--- wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/handler/PageAndComponentProvider.java (original)
+++ wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/handler/PageAndComponentProvider.java Fri Oct  2 17:33:50 2009
@@ -1,8 +1,8 @@
 package org.apache.wicket.request.handler;
 
-import org.apache.wicket.IComponent;
-import org.apache.wicket.IPage;
-import org.apache.wicket.PageParameters;
+import org.apache.wicket.request.component.IRequestableComponent;
+import org.apache.wicket.request.component.IRequestablePage;
+import org.apache.wicket.request.component.PageParameters;
 import org.apache.wicket.util.lang.Check;
 
 /**
@@ -15,28 +15,28 @@
  */
 public class PageAndComponentProvider extends PageProvider
 {
-	private IComponent component;
+	private IRequestableComponent component;
 	private String componentPath;
 
 	/**
-	 * @see PageProvider#PageProvider(IPage)
+	 * @see PageProvider#PageProvider(IRequestablePage)
 	 * 
 	 * @param page
 	 * @param componentPath
 	 */
-	public PageAndComponentProvider(IPage page, String componentPath)
+	public PageAndComponentProvider(IRequestablePage page, String componentPath)
 	{
 		super(page);
 		setComponentPath(componentPath);
 	}
 
 	/**
-	 * @see PageProvider#PageProvider(IPage)
+	 * @see PageProvider#PageProvider(IRequestablePage)
 	 * 
 	 * @param page
 	 * @param component
 	 */
-	public PageAndComponentProvider(IPage page, IComponent component)
+	public PageAndComponentProvider(IRequestablePage page, IRequestableComponent component)
 	{
 		super(page);		
 		
@@ -52,7 +52,7 @@
 	 * @param pageParameters
 	 * @param componentPath
 	 */
-	public PageAndComponentProvider(Class<? extends IPage> pageClass,
+	public PageAndComponentProvider(Class<? extends IRequestablePage> pageClass,
 			PageParameters pageParameters, String componentPath)
 	{
 		super(pageClass, pageParameters);
@@ -65,7 +65,7 @@
 	 * @param pageClass
 	 * @param componentPath
 	 */
-	public PageAndComponentProvider(Class<? extends IPage> pageClass, String componentPath)
+	public PageAndComponentProvider(Class<? extends IRequestablePage> pageClass, String componentPath)
 	{
 		super(pageClass);
 		setComponentPath(componentPath);
@@ -79,7 +79,7 @@
 	 * @param renderCount
 	 * @param componentPath
 	 */
-	public PageAndComponentProvider(int pageId, Class<? extends IPage> pageClass,
+	public PageAndComponentProvider(int pageId, Class<? extends IRequestablePage> pageClass,
 			Integer renderCount, String componentPath)
 	{
 		super(pageId, pageClass, renderCount);
@@ -95,7 +95,7 @@
 	 * @param renderCount
 	 * @param componentPath
 	 */
-	public PageAndComponentProvider(int pageId, Class<? extends IPage> pageClass,
+	public PageAndComponentProvider(int pageId, Class<? extends IRequestablePage> pageClass,
 			PageParameters pageParameters, Integer renderCount, String componentPath)
 	{
 		super(pageId, pageClass, pageParameters, renderCount);
@@ -126,11 +126,11 @@
 	 * 
 	 * @return component
 	 */
-	public IComponent getComponent()
+	public IRequestableComponent getComponent()
 	{
 		if (component == null)
 		{
-			IPage page = getPageInstance();
+			IRequestablePage page = getPageInstance();
 			component = page.get(componentPath);
 		}
 		if (component == null)

Modified: wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/handler/PageClassRequestHandler.java
URL: http://svn.apache.org/viewvc/wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/handler/PageClassRequestHandler.java?rev=821107&r1=821106&r2=821107&view=diff
==============================================================================
--- wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/handler/PageClassRequestHandler.java (original)
+++ wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/handler/PageClassRequestHandler.java Fri Oct  2 17:33:50 2009
@@ -16,9 +16,9 @@
  */
 package org.apache.wicket.request.handler;
 
-import org.apache.wicket.IPage;
-import org.apache.wicket.PageParameters;
 import org.apache.wicket.request.IRequestHandler;
+import org.apache.wicket.request.component.IRequestablePage;
+import org.apache.wicket.request.component.PageParameters;
 
 /**
  * Request handler that works with page class.
@@ -32,7 +32,7 @@
 	 * 
 	 * @return page class
 	 */
-	public Class<? extends IPage> getPageClass();
+	public Class<? extends IRequestablePage> getPageClass();
 	
 	/**
 	 * @return page parameters

Modified: wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/handler/PageProvider.java
URL: http://svn.apache.org/viewvc/wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/handler/PageProvider.java?rev=821107&r1=821106&r2=821107&view=diff
==============================================================================
--- wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/handler/PageProvider.java (original)
+++ wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/handler/PageProvider.java Fri Oct  2 17:33:50 2009
@@ -1,13 +1,13 @@
 package org.apache.wicket.request.handler;
 
 import org.apache.wicket.Application;
-import org.apache.wicket.IPage;
 import org.apache.wicket.Page;
-import org.apache.wicket.PageExpiredException;
-import org.apache.wicket.PageParameters;
 import org.apache.wicket.page.PageManager;
 import org.apache.wicket.request.IRequestHandler;
 import org.apache.wicket.request.IRequestMapper;
+import org.apache.wicket.request.component.IRequestablePage;
+import org.apache.wicket.request.component.PageExpiredException;
+import org.apache.wicket.request.component.PageParameters;
 import org.apache.wicket.request.mapper.IPageSource;
 import org.apache.wicket.request.mapper.StalePageException;
 import org.apache.wicket.util.lang.Check;
@@ -33,8 +33,8 @@
 {
 	private Integer renderCount;
 	private IPageSource pageSource;
-	private IPage pageInstance;
-	private Class<? extends IPage> pageClass;
+	private IRequestablePage pageInstance;
+	private Class<? extends IRequestablePage> pageClass;
 	private Integer pageId;
 	private PageParameters pageParameters;
 
@@ -62,7 +62,7 @@
 	 * @param renderCount
 	 *            optional argument
 	 */
-	public PageProvider(int pageId, Class<? extends IPage> pageClass, Integer renderCount)
+	public PageProvider(int pageId, Class<? extends IRequestablePage> pageClass, Integer renderCount)
 	{
 		this(pageId, pageClass, new PageParameters(), renderCount);
 	}
@@ -78,7 +78,7 @@
 	 * @param renderCount
 	 *            optional argument
 	 */
-	public PageProvider(int pageId, Class<? extends IPage> pageClass, PageParameters pageParameters, Integer renderCount)
+	public PageProvider(int pageId, Class<? extends IRequestablePage> pageClass, PageParameters pageParameters, Integer renderCount)
 	{
 		this.pageId = pageId;
 		setPageClass(pageClass);
@@ -93,7 +93,7 @@
 	 * @param pageClass
 	 * @param pageParameters
 	 */
-	public PageProvider(Class<? extends IPage> pageClass, PageParameters pageParameters)
+	public PageProvider(Class<? extends IRequestablePage> pageClass, PageParameters pageParameters)
 	{
 		setPageClass(pageClass);
 		setPageParameters(pageParameters);
@@ -105,7 +105,7 @@
 	 * 
 	 * @param pageClass
 	 */
-	public PageProvider(Class<? extends IPage> pageClass)
+	public PageProvider(Class<? extends IRequestablePage> pageClass)
 	{
 		this(pageClass, new PageParameters());
 	}
@@ -116,7 +116,7 @@
 	 * 
 	 * @param page
 	 */
-	public PageProvider(IPage page)
+	public PageProvider(IRequestablePage page)
 	{
 		Check.argumentNotNull(page, "page");
 
@@ -133,7 +133,7 @@
 	 * @throw {@link PageExpiredException} if the specified page could not have been found and the
 	 *        constructor used did not provide enough information to create new page instance
 	 */
-	public IPage getPageInstance()
+	public IRequestablePage getPageInstance()
 	{
 		if (pageInstance == null)
 		{
@@ -169,7 +169,7 @@
 	 * 
 	 * @return page class
 	 */
-	public Class<? extends IPage> getPageClass()
+	public Class<? extends IRequestablePage> getPageClass()
 	{
 		if (pageClass != null)
 		{
@@ -203,10 +203,10 @@
 		}
 	}
 
-	private IPage getPageInstance(Integer pageId, Class<? extends IPage> pageClass, PageParameters pageParameters,
+	private IRequestablePage getPageInstance(Integer pageId, Class<? extends IRequestablePage> pageClass, PageParameters pageParameters,
 			Integer renderCount)
 	{
-		IPage page = null;
+		IRequestablePage page = null;
 
 		boolean freshCreated = false;
 
@@ -247,7 +247,7 @@
 	}
 
 	/**
-	 * Detaches the page if it has been loaded (that means either {@link #PageProvider(IPage)}
+	 * Detaches the page if it has been loaded (that means either {@link #PageProvider(IRequestablePage)}
 	 * constructor has been used or {@link #getPageInstance()} has been called).
 	 */
 	public void detach()
@@ -270,7 +270,7 @@
 		this.pageSource = pageSource;
 	}
 
-	private void setPageClass(Class<? extends IPage> pageClass)
+	private void setPageClass(Class<? extends IRequestablePage> pageClass)
 	{
 		Check.argumentNotNull(pageClass, "pageClass");
 

Modified: wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/handler/PageRequestHandler.java
URL: http://svn.apache.org/viewvc/wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/handler/PageRequestHandler.java?rev=821107&r1=821106&r2=821107&view=diff
==============================================================================
--- wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/handler/PageRequestHandler.java (original)
+++ wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/handler/PageRequestHandler.java Fri Oct  2 17:33:50 2009
@@ -16,7 +16,7 @@
  */
 package org.apache.wicket.request.handler;
 
-import org.apache.wicket.IPage;
+import org.apache.wicket.request.component.IRequestablePage;
 
 /**
  * Request handler that works with a page instance.
@@ -30,5 +30,5 @@
 	 * 
 	 * @return page instance
 	 */
-	public IPage getPage();
+	public IRequestablePage getPage();
 }

Modified: wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/handler/impl/BookmarkableListenerInterfaceRequestHandler.java
URL: http://svn.apache.org/viewvc/wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/handler/impl/BookmarkableListenerInterfaceRequestHandler.java?rev=821107&r1=821106&r2=821107&view=diff
==============================================================================
--- wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/handler/impl/BookmarkableListenerInterfaceRequestHandler.java (original)
+++ wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/handler/impl/BookmarkableListenerInterfaceRequestHandler.java Fri Oct  2 17:33:50 2009
@@ -16,14 +16,14 @@
  */
 package org.apache.wicket.request.handler.impl;
 
-import org.apache.wicket.IComponent;
-import org.apache.wicket.IPage;
-import org.apache.wicket.PageParameters;
-import org.apache.wicket.RequestListenerInterface;
+import org.apache.wicket.request.component.IRequestableComponent;
+import org.apache.wicket.request.component.IRequestablePage;
+import org.apache.wicket.request.component.PageParameters;
 import org.apache.wicket.request.cycle.RequestCycle;
 import org.apache.wicket.request.handler.ComponentRequestHandler;
 import org.apache.wicket.request.handler.PageAndComponentProvider;
 import org.apache.wicket.request.handler.PageRequestHandler;
+import org.apache.wicket.request.listener.RequestListenerInterface;
 import org.apache.wicket.util.lang.Check;
 
 /**
@@ -72,17 +72,17 @@
 		this(pageComponentProvider, listenerInterface, null);
 	}
 
-	public IComponent getComponent()
+	public IRequestableComponent getComponent()
 	{
 		return pageComponentProvider.getComponent();
 	}
 
-	public IPage getPage()
+	public IRequestablePage getPage()
 	{
 		return pageComponentProvider.getPageInstance();
 	}
 
-	public Class<? extends IPage> getPageClass()
+	public Class<? extends IRequestablePage> getPageClass()
 	{
 		return pageComponentProvider.getPageClass();
 	}

Modified: wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/handler/impl/BookmarkablePageRequestHandler.java
URL: http://svn.apache.org/viewvc/wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/handler/impl/BookmarkablePageRequestHandler.java?rev=821107&r1=821106&r2=821107&view=diff
==============================================================================
--- wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/handler/impl/BookmarkablePageRequestHandler.java (original)
+++ wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/handler/impl/BookmarkablePageRequestHandler.java Fri Oct  2 17:33:50 2009
@@ -16,8 +16,8 @@
  */
 package org.apache.wicket.request.handler.impl;
 
-import org.apache.wicket.IPage;
-import org.apache.wicket.PageParameters;
+import org.apache.wicket.request.component.IRequestablePage;
+import org.apache.wicket.request.component.PageParameters;
 import org.apache.wicket.request.cycle.RequestCycle;
 import org.apache.wicket.request.handler.PageClassRequestHandler;
 import org.apache.wicket.request.handler.PageProvider;
@@ -46,7 +46,7 @@
 		this.pageProvider = pageProvider;
 	}
 
-	public Class<? extends IPage> getPageClass()
+	public Class<? extends IRequestablePage> getPageClass()
 	{
 		return pageProvider.getPageClass();
 	}

Modified: wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/handler/impl/ListenerInterfaceRequestHandler.java
URL: http://svn.apache.org/viewvc/wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/handler/impl/ListenerInterfaceRequestHandler.java?rev=821107&r1=821106&r2=821107&view=diff
==============================================================================
--- wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/handler/impl/ListenerInterfaceRequestHandler.java (original)
+++ wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/handler/impl/ListenerInterfaceRequestHandler.java Fri Oct  2 17:33:50 2009
@@ -16,18 +16,18 @@
  */
 package org.apache.wicket.request.handler.impl;
 
-import org.apache.wicket.IComponent;
-import org.apache.wicket.IPage;
-import org.apache.wicket.PageParameters;
-import org.apache.wicket.RequestListenerInterface;
 import org.apache.wicket.WicketRuntimeException;
 import org.apache.wicket.behavior.IBehavior;
+import org.apache.wicket.request.component.IRequestableComponent;
+import org.apache.wicket.request.component.IRequestablePage;
+import org.apache.wicket.request.component.PageParameters;
 import org.apache.wicket.request.cycle.RequestCycle;
 import org.apache.wicket.request.handler.ComponentRequestHandler;
 import org.apache.wicket.request.handler.PageAndComponentProvider;
 import org.apache.wicket.request.handler.PageProvider;
 import org.apache.wicket.request.handler.PageRequestHandler;
 import org.apache.wicket.request.handler.impl.RenderPageRequestHandler.RedirectPolicy;
+import org.apache.wicket.request.listener.RequestListenerInterface;
 import org.apache.wicket.util.lang.Check;
 
 /**
@@ -71,17 +71,17 @@
 		this(pageComponentProvider, listenerInterface, null);
 	}
 
-	public IComponent getComponent()
+	public IRequestableComponent getComponent()
 	{
 		return pageComponentProvider.getComponent();
 	}
 
-	public IPage getPage()
+	public IRequestablePage getPage()
 	{
 		return pageComponentProvider.getPageInstance();
 	}
 
-	public Class<? extends IPage> getPageClass()
+	public Class<? extends IRequestablePage> getPageClass()
 	{
 		return pageComponentProvider.getPageClass();
 	}

Modified: wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/handler/impl/RenderPageRequestHandler.java
URL: http://svn.apache.org/viewvc/wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/handler/impl/RenderPageRequestHandler.java?rev=821107&r1=821106&r2=821107&view=diff
==============================================================================
--- wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/handler/impl/RenderPageRequestHandler.java (original)
+++ wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/handler/impl/RenderPageRequestHandler.java Fri Oct  2 17:33:50 2009
@@ -17,9 +17,9 @@
 package org.apache.wicket.request.handler.impl;
 
 import org.apache.wicket.Application;
-import org.apache.wicket.IPage;
-import org.apache.wicket.PageParameters;
 import org.apache.wicket.request.IRequestHandler;
+import org.apache.wicket.request.component.IRequestablePage;
+import org.apache.wicket.request.component.PageParameters;
 import org.apache.wicket.request.cycle.RequestCycle;
 import org.apache.wicket.request.handler.PageClassRequestHandler;
 import org.apache.wicket.request.handler.PageProvider;
@@ -104,7 +104,7 @@
 		return redirectPolicy;
 	}
 
-	public Class<? extends IPage> getPageClass()
+	public Class<? extends IRequestablePage> getPageClass()
 	{
 		return pageProvider.getPageClass();		
 	}
@@ -119,7 +119,7 @@
 		pageProvider.detach();
 	}
 	
-	public IPage getPage()
+	public IRequestablePage getPage()
 	{
 		return pageProvider.getPageInstance();
 	}

Modified: wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/handler/impl/render/WebRenderPageRequestHandlerDelegate.java
URL: http://svn.apache.org/viewvc/wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/handler/impl/render/WebRenderPageRequestHandlerDelegate.java?rev=821107&r1=821106&r2=821107&view=diff
==============================================================================
--- wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/handler/impl/render/WebRenderPageRequestHandlerDelegate.java (original)
+++ wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/handler/impl/render/WebRenderPageRequestHandlerDelegate.java Fri Oct  2 17:33:50 2009
@@ -1,10 +1,10 @@
 package org.apache.wicket.request.handler.impl.render;
 
 import org.apache.wicket.Application;
-import org.apache.wicket.IPage;
 import org.apache.wicket.Session;
 import org.apache.wicket.protocol.http.WebApplication;
 import org.apache.wicket.request.Url;
+import org.apache.wicket.request.component.IRequestablePage;
 import org.apache.wicket.request.cycle.RequestCycle;
 import org.apache.wicket.request.handler.impl.RenderPageRequestHandler;
 import org.apache.wicket.request.handler.impl.RenderPageRequestHandler.RedirectPolicy;
@@ -23,7 +23,7 @@
 		super(renderPageRequestHandler);
 	}
 
-	public IPage getPage()
+	public IRequestablePage getPage()
 	{
 		return getPageProvider().getPageInstance();
 	}

Modified: wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/handler/resource/ResourceReferenceRequestHandler.java
URL: http://svn.apache.org/viewvc/wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/handler/resource/ResourceReferenceRequestHandler.java?rev=821107&r1=821106&r2=821107&view=diff
==============================================================================
--- wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/handler/resource/ResourceReferenceRequestHandler.java (original)
+++ wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/handler/resource/ResourceReferenceRequestHandler.java Fri Oct  2 17:33:50 2009
@@ -16,8 +16,8 @@
  */
 package org.apache.wicket.request.handler.resource;
 
-import org.apache.wicket.PageParameters;
 import org.apache.wicket.request.IRequestHandler;
+import org.apache.wicket.request.component.PageParameters;
 import org.apache.wicket.request.cycle.RequestCycle;
 import org.apache.wicket.resource.ResourceReference;
 import org.apache.wicket.util.lang.Check;

Modified: wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/handler/resource/ResourceRequestHandler.java
URL: http://svn.apache.org/viewvc/wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/handler/resource/ResourceRequestHandler.java?rev=821107&r1=821106&r2=821107&view=diff
==============================================================================
--- wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/handler/resource/ResourceRequestHandler.java (original)
+++ wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/handler/resource/ResourceRequestHandler.java Fri Oct  2 17:33:50 2009
@@ -18,8 +18,8 @@
 
 import java.util.Locale;
 
-import org.apache.wicket.PageParameters;
 import org.apache.wicket.request.IRequestHandler;
+import org.apache.wicket.request.component.PageParameters;
 import org.apache.wicket.request.cycle.RequestCycle;
 import org.apache.wicket.resource.Resource;
 import org.apache.wicket.util.lang.Check;