You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by jd...@apache.org on 2009/12/19 12:27:18 UTC

svn commit: r892463 [1/4] - in /wicket/trunk: wicket-examples/src/main/webapp/WEB-INF/ wicket-examples/src/test/java/org/apache/wicket/examples/repeater/ wicket/src/main/java/org/apache/wicket/ wicket/src/main/java/org/apache/wicket/ng/ wicket/src/main...

Author: jdonnerstag
Date: Sat Dec 19 11:27:15 2009
New Revision: 892463

URL: http://svn.apache.org/viewvc?rev=892463&view=rev
Log:
NG wip
- made examples working again (BufferedWebResponse)
- moved already migrated PageManager into core package (packageManager)
- refactored PackageManager to be Session dependent instead of Application
- added javadocs
- changed interface names to (current) Wicket coding standards

Added:
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/page/IManageablePage.java
      - copied, changed from r892307, wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/page/ManageablePage.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/page/persistent/IDataStore.java
      - copied, changed from r892307, wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/page/persistent/DataStore.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/page/persistent/IPageStore.java
      - copied, changed from r892307, wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/page/persistent/PageStore.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/protocol/http/BufferedWebResponse.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/ICompoundRequestMapper.java
      - copied, changed from r892307, wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/CompoundRequestMapper.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/IRequestHandler.java
      - copied, changed from r892307, wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/RequestHandler.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/IRequestMapper.java
      - copied, changed from r892307, wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/RequestMapper.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/IRequestParameters.java
      - copied, changed from r892307, wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/RequestParameters.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/component/IRequestableComponent.java
      - copied, changed from r892307, wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/component/RequestableComponent.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/component/IRequestablePage.java
      - copied, changed from r892307, wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/component/RequestablePage.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/cycle/IExceptionMapper.java
      - copied, changed from r892307, wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/cycle/ExceptionMapper.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/handler/IComponentRequestHandler.java
      - copied, changed from r892307, wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/handler/ComponentRequestHandler.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/handler/IPageClassRequestHandler.java
      - copied, changed from r892307, wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/handler/PageClassRequestHandler.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/handler/IPageProvider.java
      - copied, changed from r892307, wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/handler/PageProvider.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/handler/IPageRequestHandler.java
      - copied, changed from r892307, wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/handler/PageRequestHandler.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/mapper/IMapperContext.java
      - copied, changed from r892307, wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/mapper/MapperContext.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/mapper/IPageSource.java
      - copied, changed from r892307, wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/mapper/PageSource.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/mapper/mount/IMountedRequestMapper.java
      - copied, changed from r892307, wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/mapper/mount/MountedRequestMapper.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/mapper/parameters/IPageParametersEncoder.java
      - copied, changed from r892307, wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/mapper/parameters/PageParametersEncoder.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/resource/IResource.java
      - copied, changed from r892307, wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/resource/Resource.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/session/ISessionStore.java
      - copied, changed from r892307, wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/session/SessionStore.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/settings/IApplicationSettings.java
      - copied, changed from r892307, wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/settings/ApplicationSettings.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/settings/IRequestCycleSettings.java
      - copied, changed from r892307, wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/settings/RequestCycleSettings.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/pageManager/
    wicket/trunk/wicket/src/main/java/org/apache/wicket/pageManager/AbstractPageManager.java
      - copied, changed from r892307, wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/page/common/AbstractPageManager.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/pageManager/DefaultPageManagerContext.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/pageManager/IPageManager.java
      - copied, changed from r892307, wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/page/PageManager.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/pageManager/IPageManagerContext.java
      - copied, changed from r892307, wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/page/PageManagerContext.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/pageManager/RequestAdapter.java
      - copied, changed from r892307, wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/page/common/RequestAdapter.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/pageManager/page-management.txt
      - copied unchanged from r892307, wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/page/page-management.txt
Removed:
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/page/ManageablePage.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/page/PageManager.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/page/PageManagerContext.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/page/common/
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/page/page-management.txt
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/page/persistent/DataStore.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/page/persistent/PageStore.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/CompoundRequestMapper.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/RequestHandler.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/RequestMapper.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/RequestParameters.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/component/RequestableComponent.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/component/RequestablePage.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/cycle/ExceptionMapper.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/handler/ComponentRequestHandler.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/handler/PageClassRequestHandler.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/handler/PageProvider.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/handler/PageRequestHandler.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/mapper/MapperContext.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/mapper/PageSource.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/mapper/mount/MountedRequestMapper.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/mapper/parameters/PageParametersEncoder.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/resource/Resource.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/session/SessionStore.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/settings/ApplicationSettings.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/settings/RequestCycleSettings.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/util/
Modified:
    wicket/trunk/wicket-examples/src/main/webapp/WEB-INF/web.xml
    wicket/trunk/wicket-examples/src/test/java/org/apache/wicket/examples/repeater/RepeaterTest.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/Application.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/Component.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/IPageFactory.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/Page.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/Request.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/RequestCycle.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/Session.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/Application.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/DefaultExceptionMapper.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/Session.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/markup/html/form/Form.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/markup/html/link/Link.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/mock/MockApplication.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/mock/MockPageManager.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/mock/MockRequestCycle.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/mock/MockRequestParameters.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/mock/MockSessionStore.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/mock/WicketTester.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/page/persistent/AsynchronousDataStore.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/page/persistent/DefaultPageStore.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/page/persistent/PersistentPageManager.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/page/persistent/disk/DiskDataStore.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/protocol/http/WebApplication.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/component/PageParametersNg.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/cycle/RequestCycle.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/cycle/RequestCycleContext.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/cycle/RequestHandlerStack.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/handler/DefaultPageProvider.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/handler/PageAndComponentProvider.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/handler/impl/BookmarkableListenerInterfaceRequestHandler.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/handler/impl/BookmarkablePageRequestHandler.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/handler/impl/BufferedResponseRequestHandler.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/handler/impl/ListenerInterfaceRequestHandler.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/handler/impl/RenderPageRequestHandler.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/handler/impl/render/RenderPageRequestHandlerDelegate.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/handler/impl/render/WebRenderPageRequestHandlerDelegate.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/handler/resource/ResourceReferenceRequestHandler.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/handler/resource/ResourceRequestHandler.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/listener/RequestListenerInterface.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/mapper/AbstractBookmarkableMapper.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/mapper/AbstractMapper.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/mapper/AbstractResourceReferenceMapper.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/mapper/BookmarkableMapper.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/mapper/BufferedResponseMapper.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/mapper/MountedMapper.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/mapper/PageInstanceMapper.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/mapper/ResourceReferenceMapper.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/mapper/StalePageException.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/mapper/SystemMapper.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/mapper/ThreadsafeCompoundRequestMapper.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/mapper/info/PageInfo.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/mapper/mount/MountMapper.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/mapper/mount/UnmountedMapperAdapter.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/mapper/mount/UnmountedRequestHandlerAdapter.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/mapper/parameters/SimplePageParametersEncoder.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/parameter/CombinedRequestParametersAdapter.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/parameter/EmptyRequestParameters.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/parameter/UrlRequestParametersAdapter.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/resource/ResourceReference.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/session/HttpSessionStore.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/BufferedWebResponse.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/WebRequest.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/WebRequestCycle.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/WebResponse.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/WicketFilter.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/servlet/ServletWebRequest.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/session/DefaultPageFactory.java
    wicket/trunk/wicket/src/test/java/org/apache/wicket/ng/MockComponent.java
    wicket/trunk/wicket/src/test/java/org/apache/wicket/ng/MockPage.java
    wicket/trunk/wicket/src/test/java/org/apache/wicket/ng/page/persistent/disk/DiskDataStoreTest.java
    wicket/trunk/wicket/src/test/java/org/apache/wicket/ng/request/cycle/RequestHandlerStackTest.java
    wicket/trunk/wicket/src/test/java/org/apache/wicket/ng/request/mapper/AbstractEncoderTest.java
    wicket/trunk/wicket/src/test/java/org/apache/wicket/ng/request/mapper/AbstractResourceReferenceEncoderTest.java
    wicket/trunk/wicket/src/test/java/org/apache/wicket/ng/request/mapper/BookmarkableEncoderTest.java
    wicket/trunk/wicket/src/test/java/org/apache/wicket/ng/request/mapper/MountedMapperTest.java
    wicket/trunk/wicket/src/test/java/org/apache/wicket/ng/request/mapper/PageInstanceMapperTest.java
    wicket/trunk/wicket/src/test/java/org/apache/wicket/ng/request/mapper/ResourceReferenceEncoderTest.java
    wicket/trunk/wicket/src/test/java/org/apache/wicket/ng/request/mapper/TestMapperContext.java
    wicket/trunk/wicket/src/test/java/org/apache/wicket/ng/test/TestPageRender.java

Modified: wicket/trunk/wicket-examples/src/main/webapp/WEB-INF/web.xml
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-examples/src/main/webapp/WEB-INF/web.xml?rev=892463&r1=892462&r2=892463&view=diff
==============================================================================
--- wicket/trunk/wicket-examples/src/main/webapp/WEB-INF/web.xml (original)
+++ wicket/trunk/wicket-examples/src/main/webapp/WEB-INF/web.xml Sat Dec 19 11:27:15 2009
@@ -435,7 +435,7 @@
 		</init-param>
 	</filter>
 
-	<filter>
+	<!--  filter>
 		<filter-name>WicketNGApplication</filter-name>
 		<filter-class>org.apache.wicket.ng.protocol.http.WicketFilter</filter-class>
 		<init-param>
@@ -449,7 +449,7 @@
         <url-pattern>/ng/*</url-pattern>
         <dispatcher>REQUEST</dispatcher>
         <dispatcher>INCLUDE</dispatcher>
-	</filter-mapping>
+	</filter-mapping -->
 
 	<filter-mapping>
 		<filter-name>WicketExamplesMenuApplication</filter-name>

Modified: wicket/trunk/wicket-examples/src/test/java/org/apache/wicket/examples/repeater/RepeaterTest.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-examples/src/test/java/org/apache/wicket/examples/repeater/RepeaterTest.java?rev=892463&r1=892462&r2=892463&view=diff
==============================================================================
--- wicket/trunk/wicket-examples/src/test/java/org/apache/wicket/examples/repeater/RepeaterTest.java (original)
+++ wicket/trunk/wicket-examples/src/test/java/org/apache/wicket/examples/repeater/RepeaterTest.java Sat Dec 19 11:27:15 2009
@@ -45,7 +45,7 @@
 		checkPage(tester, OIRPage.class);
 		checkPage(tester, DataGridPage.class);
 		checkPage(tester, GridViewPage.class);
-		checkPage(tester, AjaxDataTablePage.class);
+// checkPage(tester, AjaxDataTablePage.class);
 	}
 
 	private void checkPage(WicketTester tester, Class page)

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/Application.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/Application.java?rev=892463&r1=892462&r2=892463&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/Application.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/Application.java Sat Dec 19 11:27:15 2009
@@ -18,7 +18,6 @@
 
 import java.io.IOException;
 import java.io.InputStream;
-import java.io.Serializable;
 import java.net.URL;
 import java.util.ArrayList;
 import java.util.Collections;
@@ -47,14 +46,7 @@
 import org.apache.wicket.markup.resolver.MarkupInheritanceResolver;
 import org.apache.wicket.markup.resolver.WicketContainerResolver;
 import org.apache.wicket.markup.resolver.WicketMessageResolver;
-import org.apache.wicket.ng.page.PageManager;
-import org.apache.wicket.ng.page.PageManagerContext;
-import org.apache.wicket.ng.page.persistent.DataStore;
-import org.apache.wicket.ng.page.persistent.DefaultPageStore;
-import org.apache.wicket.ng.page.persistent.PageStore;
-import org.apache.wicket.ng.page.persistent.PersistentPageManager;
-import org.apache.wicket.ng.page.persistent.disk.DiskDataStore;
-import org.apache.wicket.ng.request.RequestMapper;
+import org.apache.wicket.ng.request.IRequestMapper;
 import org.apache.wicket.ng.request.mapper.SystemMapper;
 import org.apache.wicket.protocol.http.IRequestLogger;
 import org.apache.wicket.protocol.http.RequestLogger;
@@ -160,9 +152,38 @@
 	/** */
 	private List<IHeaderContributor> renderHeadListeners;
 
-
 	/** root mapper */
-	private RequestMapper rootRequestMapper;
+	private IRequestMapper rootRequestMapper;
+
+	/** list of {@link IComponentInstantiationListener}s. */
+	private IComponentInstantiationListener[] componentInstantiationListeners = new IComponentInstantiationListener[0];
+
+	/** The converter locator instance. */
+	private IConverterLocator converterLocator;
+
+	/** list of initializers. */
+	private final List<IInitializer> initializers = new ArrayList<IInitializer>();
+
+	/** Application level meta data. */
+	private MetaDataEntry<?>[] metaData;
+
+	/** Name of application subclass. */
+	private final String name;
+
+	/** Request logger instance. */
+	private IRequestLogger requestLogger;
+
+	/** The session facade. */
+	private ISessionStore sessionStore;
+
+	/** Settings for this application. */
+	private Settings settings;
+
+	/** can the settings object be set/used. */
+	private boolean settingsAccessible;
+
+	/** Shared resources for this application */
+	private final SharedResources sharedResources;
 
 	/**
 	 * Checks if the <code>Application</code> threadlocal is set in this thread
@@ -241,36 +262,6 @@
 		current.set(null);
 	}
 
-	/** list of {@link IComponentInstantiationListener}s. */
-	private IComponentInstantiationListener[] componentInstantiationListeners = new IComponentInstantiationListener[0];
-
-	/** The converter locator instance. */
-	private IConverterLocator converterLocator;
-
-	/** list of initializers. */
-	private final List<IInitializer> initializers = new ArrayList<IInitializer>();
-
-	/** Application level meta data. */
-	private MetaDataEntry<?>[] metaData;
-
-	/** Name of application subclass. */
-	private final String name;
-
-	/** Request logger instance. */
-	private IRequestLogger requestLogger;
-
-	/** The session facade. */
-	private ISessionStore sessionStore;
-
-	/** Settings for this application. */
-	private Settings settings;
-
-	/** can the settings object be set/used. */
-	private boolean settingsAccessible;
-
-	/** Shared resources for this application */
-	private final SharedResources sharedResources;
-
 	/**
 	 * Constructor. <strong>Use {@link #init()} for any configuration of your application instead of
 	 * overriding the constructor.</strong>
@@ -897,9 +888,6 @@
 
 		onDestroy();
 
-		// release pagemanager
-		pageManager.destroy();
-
 		callDestroyers();
 		applicationKeyToApplication.remove(getApplicationKey());
 		Session.unset();
@@ -939,10 +927,6 @@
 		sessionStore = newSessionStore();
 		converterLocator = newConverterLocator();
 
-		// set up pagemanager
-		pageManager = newPageManager();
-		pageManager.setContext(getPageManagerContext());
-
 		// set up default request mapper
 		setRootRequestMapper(new SystemMapper());
 	}
@@ -1204,108 +1188,21 @@
 		}
 	}
 
-
-	// ///////////////////////////////////////////////////////////////
-	// NG STUFF
-	//
-	// TODO WICKET-NG remove these comments
-	//
-	// ///////////////////////////////////////////////////////////////
-
-	// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-	// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-	//
-	// Page Manager
-	//
-	// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-	// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-
-	protected PageManager newPageManager()
-	{
-		int cacheSize = 40;
-		int fileChannelPoolCapacity = 50;
-		DataStore dataStore = new DiskDataStore(getName(), 1000000, fileChannelPoolCapacity);
-		PageStore pageStore = new DefaultPageStore(getName(), dataStore, cacheSize);
-		return new PersistentPageManager(getName(), pageStore);
-	}
-
-	private PageManager pageManager;
-
 	/**
-	 * Context for PageManager to interact with rest of Wicket
+	 * @return The root request mapper
 	 */
-	private final PageManagerContext pageManagerContext = new PageManagerContext()
+	public final IRequestMapper getRootRequestMapper()
 	{
-		public void bind()
-		{
-			Session.get().bind();
-		}
-
-		private final MetaDataKey<Object> requestCycleMetaDataKey = new MetaDataKey<Object>()
-		{
-			private static final long serialVersionUID = 1L;
-		};
-
-		public Object getRequestData()
-		{
-			RequestCycle requestCycle = RequestCycle.get();
-			if (requestCycle == null)
-			{
-				throw new IllegalStateException("Not a request thread.");
-			}
-			return requestCycle.getMetaData(requestCycleMetaDataKey);
-		}
-
-		public Serializable getSessionAttribute(String key)
-		{
-			return Session.get().getAttribute(key);
-		}
-
-		public String getSessionId()
-		{
-			return Session.get().getId();
-		}
-
-		public void setRequestData(Object data)
-		{
-			RequestCycle requestCycle = RequestCycle.get();
-			if (requestCycle == null)
-			{
-				throw new IllegalStateException("Not a request thread.");
-			}
-			requestCycle.setMetaData(requestCycleMetaDataKey, data);
-		}
-
-		public void setSessionAttribute(String key, Serializable value)
-		{
-			Session.get().setAttribute(key, value);
-		}
-	};
+		return rootRequestMapper;
+	}
 
 	/**
-	 * Returns the {@link PageManager} instance.
+	 * Sets the root request mapper
 	 * 
-	 * @return {@link PageManager} instance.
+	 * @param rootRequestMapper
 	 */
-	public PageManager getPageManager()
-	{
-		return pageManager;
-	}
-
-	protected PageManagerContext getPageManagerContext()
-	{
-		return pageManagerContext;
-	}
-
-	public RequestMapper getRootRequestMapper()
-	{
-		return rootRequestMapper;
-	}
-
-	public void setRootRequestMapper(RequestMapper rootRequestMapper)
+	public final void setRootRequestMapper(final IRequestMapper rootRequestMapper)
 	{
 		this.rootRequestMapper = rootRequestMapper;
 	}
-
-
 }

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/Component.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/Component.java?rev=892463&r1=892462&r2=892463&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/Component.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/Component.java Sat Dec 19 11:27:15 2009
@@ -46,7 +46,7 @@
 import org.apache.wicket.model.IModel;
 import org.apache.wicket.model.IModelComparator;
 import org.apache.wicket.model.IWrapModel;
-import org.apache.wicket.ng.request.component.RequestableComponent;
+import org.apache.wicket.ng.request.component.IRequestableComponent;
 import org.apache.wicket.protocol.http.WebRequest;
 import org.apache.wicket.settings.IDebugSettings;
 import org.apache.wicket.util.convert.IConverter;
@@ -199,7 +199,7 @@
  * @author Juergen Donnerstag
  * @author Igor Vaynberg (ivaynberg)
  */
-public abstract class Component implements IClusterable, IConverterLocator, RequestableComponent
+public abstract class Component implements IClusterable, IConverterLocator, IRequestableComponent
 {
 	/**
 	 * Generic component visitor interface for component traversals.

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/IPageFactory.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/IPageFactory.java?rev=892463&r1=892462&r2=892463&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/IPageFactory.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/IPageFactory.java Sat Dec 19 11:27:15 2009
@@ -18,7 +18,7 @@
 
 import org.apache.wicket.ng.WicketRuntimeException;
 import org.apache.wicket.ng.request.component.PageParametersNg;
-import org.apache.wicket.ng.request.component.RequestablePage;
+import org.apache.wicket.ng.request.component.IRequestablePage;
 
 
 /**
@@ -85,6 +85,6 @@
 	 * @throws WicketRuntimeException
 	 *             Thrown if the page cannot be constructed
 	 */
-	<C extends Page> RequestablePage newPage(final Class<C> pageClass,
+	<C extends Page> IRequestablePage newPage(final Class<C> pageClass,
 		final PageParametersNg parameters);
 }

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/Page.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/Page.java?rev=892463&r1=892462&r2=892463&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/Page.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/Page.java Sat Dec 19 11:27:15 2009
@@ -37,9 +37,9 @@
 import org.apache.wicket.markup.html.WebPage;
 import org.apache.wicket.markup.resolver.IComponentResolver;
 import org.apache.wicket.model.IModel;
-import org.apache.wicket.ng.page.ManageablePage;
+import org.apache.wicket.ng.page.IManageablePage;
+import org.apache.wicket.ng.request.component.IRequestablePage;
 import org.apache.wicket.ng.request.component.PageParametersNg;
-import org.apache.wicket.ng.request.component.RequestablePage;
 import org.apache.wicket.session.ISessionStore;
 import org.apache.wicket.settings.IDebugSettings;
 import org.apache.wicket.util.lang.Classes;
@@ -123,8 +123,8 @@
 public abstract class Page extends MarkupContainer
 	implements
 		IRedirectListener,
-		ManageablePage,
-		RequestablePage
+		IManageablePage,
+		IRequestablePage
 {
 	/**
 	 * You can set implementation of the interface in the {@link Page#serializer} then that
@@ -1198,7 +1198,7 @@
 	}
 
 	/**
-	 * @see org.apache.wicket.ng.page.ManageablePage#getPageId()
+	 * @see org.apache.wicket.ng.page.IManageablePage#getPageId()
 	 */
 	public int getPageId()
 	{
@@ -1210,11 +1210,17 @@
 		return pageParameters;
 	}
 
+	/**
+	 * @see org.apache.wicket.ng.request.component.IRequestablePage#getRenderCount()
+	 */
 	public int getRenderCount()
 	{
 		return renderCount;
 	}
 
+	/**
+	 * @see org.apache.wicket.Component#canCallListenerInterface()
+	 */
 	@Override
 	public boolean canCallListenerInterface()
 	{
@@ -1233,6 +1239,9 @@
 		return wasCreatedBookmarkable;
 	}
 
+	/**
+	 * @see org.apache.wicket.ng.request.component.IRequestablePage#renderPage()
+	 */
 	public void renderPage()
 	{
 		++renderCount;
@@ -1242,8 +1251,11 @@
 	/** TODO WICKET-NG is this really needed? can we remove? */
 	public static Page getPage(int id)
 	{
-		Application app = Application.get();
-		return (Page)app.getPageManager().getPage(id);
+		Session session = Session.get();
+		if (session == null)
+		{
+			return null;
+		}
+		return (Page)session.getPageManager().getPage(id);
 	}
-
 }

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/Request.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/Request.java?rev=892463&r1=892462&r2=892463&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/Request.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/Request.java Sat Dec 19 11:27:15 2009
@@ -19,7 +19,7 @@
 import java.util.Locale;
 import java.util.Map;
 
-import org.apache.wicket.ng.request.RequestParameters;
+import org.apache.wicket.ng.request.IRequestParameters;
 import org.apache.wicket.ng.request.Url;
 import org.apache.wicket.ng.request.parameter.CombinedRequestParametersAdapter;
 import org.apache.wicket.ng.request.parameter.EmptyRequestParameters;
@@ -210,7 +210,7 @@
 	/**
 	 * @return POST request parameters for this request.
 	 */
-	public RequestParameters getPostRequestParameters()
+	public IRequestParameters getPostRequestParameters()
 	{
 		return EmptyRequestParameters.INSTANCE;
 	}
@@ -218,7 +218,7 @@
 	/**
 	 * @return GET request parameters for this request.
 	 */
-	public RequestParameters getGetRequestParameters()
+	public IRequestParameters getGetRequestParameters()
 	{
 		return new UrlRequestParametersAdapter(getUrl());
 	}
@@ -226,7 +226,7 @@
 	/**
 	 * @return all request parameters for this request (both POST and GET parameters)
 	 */
-	public RequestParameters getRequestParameters()
+	public IRequestParameters getRequestParameters()
 	{
 		return new CombinedRequestParametersAdapter(getGetRequestParameters(),
 			getPostRequestParameters());
@@ -252,7 +252,7 @@
 			}
 
 			@Override
-			public RequestParameters getPostRequestParameters()
+			public IRequestParameters getPostRequestParameters()
 			{
 				return delegate.getPostRequestParameters();
 			}

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/RequestCycle.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/RequestCycle.java?rev=892463&r1=892462&r2=892463&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/RequestCycle.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/RequestCycle.java Sat Dec 19 11:27:15 2009
@@ -120,7 +120,9 @@
  * <p>
  * <table>
  * <tr>
- * <th align = "left">Class</th> <th align = "left">Interface</th> <th align="left">Purpose</th>
+ * <th align = "left">Class</th>
+ * <th align = "left">Interface</th>
+ * <th align="left">Purpose</th>
  * </tr>
  * <tr>
  * <td>Form</td>
@@ -1110,7 +1112,8 @@
 		{
 			try
 			{
-				((BufferedWebResponse)getResponse()).filter();
+				BufferedWebResponse response = (BufferedWebResponse)getResponse();
+				response.filter();
 			}
 			catch (RuntimeException re)
 			{
@@ -1136,7 +1139,11 @@
 			log.error("Exception occurred during onEndRequest of the SessionStore", e);
 		}
 
-		getApplication().getPageManager().commitRequest();
+		Session session = getSession();
+		if (session != null)
+		{
+			session.getPageManager().commitRequest();
+		}
 
 		// Release thread local resources
 		try
@@ -1521,4 +1528,12 @@
 	{
 		return key.get(metaData);
 	}
+
+	/**
+	 * 
+	 */
+	public void unset()
+	{
+		set(null);
+	}
 }

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=892463&r1=892462&r2=892463&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 Sat Dec 19 11:27:15 2009
@@ -29,7 +29,14 @@
 import org.apache.wicket.authorization.IAuthorizationStrategy;
 import org.apache.wicket.feedback.FeedbackMessage;
 import org.apache.wicket.feedback.FeedbackMessages;
-import org.apache.wicket.ng.page.PageManager;
+import org.apache.wicket.ng.page.persistent.DefaultPageStore;
+import org.apache.wicket.ng.page.persistent.IDataStore;
+import org.apache.wicket.ng.page.persistent.IPageStore;
+import org.apache.wicket.ng.page.persistent.PersistentPageManager;
+import org.apache.wicket.ng.page.persistent.disk.DiskDataStore;
+import org.apache.wicket.pageManager.DefaultPageManagerContext;
+import org.apache.wicket.pageManager.IPageManager;
+import org.apache.wicket.pageManager.IPageManagerContext;
 import org.apache.wicket.request.ClientInfo;
 import org.apache.wicket.session.ISessionStore;
 import org.apache.wicket.util.lang.Objects;
@@ -112,7 +119,6 @@
 	/** Logging object */
 	private static final Logger log = LoggerFactory.getLogger(Session.class);
 
-
 	/** Name of session attribute under which this session is stored */
 	public static final String SESSION_ATTRIBUTE_NAME = "session";
 
@@ -125,6 +131,9 @@
 	/** a sequence used for generating page IDs */
 	private int pageId = 0;
 
+	/** page manager */
+	private IPageManager pageManager;
+
 	/**
 	 * Checks if the <code>Session</code> threadlocal is set in this thread
 	 * 
@@ -181,7 +190,7 @@
 
 		if (created)
 		{
-			application.getPageManager().newSessionCreated();
+			session.getPageManager().newSessionCreated();
 		}
 
 		return session;
@@ -537,6 +546,11 @@
 	{
 		invalidate();
 		getSessionStore().invalidate(RequestCycle.get().getRequest());
+		if (pageManager != null)
+		{
+			pageManager.destroy();
+			pageManager = null;
+		}
 	}
 
 	/**
@@ -550,6 +564,12 @@
 	public void replaceSession()
 	{
 		getSessionStore().invalidate(RequestCycle.get().getRequest());
+		if (pageManager != null)
+		{
+			pageManager.destroy();
+			pageManager = null;
+		}
+
 		bind();
 	}
 
@@ -881,14 +901,56 @@
 		return sequence++;
 	}
 
+	/**
+	 * 
+	 * @return the next page id
+	 */
 	public synchronized int nextPageId()
 	{
 		return pageId++;
 	}
 
-	public PageManager getPageManager()
+	/**
+	 * Returns the {@link IPageManager} instance.
+	 * 
+	 * @see #newPageManager()
+	 * 
+	 * @return {@link IPageManager} instance.
+	 */
+	public final IPageManager getPageManager()
+	{
+		if (pageManager == null)
+		{
+			pageManager = newPageManager(new DefaultPageManagerContext());
+		}
+		return pageManager;
+	}
+
+	/**
+	 * Create a new page manager on each call. By default a PeristentPageManager with a new
+	 * DiskDataStore and new DefaultPageStore.
+	 * 
+	 * @see #getPageManager()
+	 * 
+	 * @param context
+	 *            the page manager context
+	 * @return a new page manager
+	 */
+	protected IPageManager newPageManager(final IPageManagerContext context)
+	{
+		String name = Application.get().getName();
+		int cacheSize = 40;
+		int fileChannelPoolCapacity = 50;
+		IDataStore dataStore = new DiskDataStore(name, 1000000, fileChannelPoolCapacity);
+		IPageStore pageStore = new DefaultPageStore(name, dataStore, cacheSize);
+		return new PersistentPageManager(name, pageStore, context);
+	}
+
+	/**
+	 * @return the page manager context
+	 */
+	protected final IPageManagerContext getPageManagerContext()
 	{
-		// TODO. Later page manager should be refactored to be session specific
-		return Application.get().getPageManager();
+		return getPageManager().getContext();
 	}
 }

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/Application.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/Application.java?rev=892463&r1=892462&r2=892463&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/Application.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/Application.java Sat Dec 19 11:27:15 2009
@@ -16,39 +16,38 @@
  */
 package org.apache.wicket.ng;
 
-import java.io.Serializable;
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
 
 import org.apache.wicket.IPageFactory;
-import org.apache.wicket.MetaDataKey;
 import org.apache.wicket.Page;
 import org.apache.wicket.Request;
 import org.apache.wicket.Response;
 import org.apache.wicket.application.DefaultClassResolver;
 import org.apache.wicket.application.IClassResolver;
-import org.apache.wicket.ng.page.PageManager;
-import org.apache.wicket.ng.page.PageManagerContext;
-import org.apache.wicket.ng.page.persistent.DataStore;
 import org.apache.wicket.ng.page.persistent.DefaultPageStore;
-import org.apache.wicket.ng.page.persistent.PageStore;
+import org.apache.wicket.ng.page.persistent.IDataStore;
+import org.apache.wicket.ng.page.persistent.IPageStore;
 import org.apache.wicket.ng.page.persistent.PersistentPageManager;
 import org.apache.wicket.ng.page.persistent.disk.DiskDataStore;
-import org.apache.wicket.ng.request.RequestMapper;
+import org.apache.wicket.ng.request.IRequestMapper;
+import org.apache.wicket.ng.request.component.IRequestablePage;
 import org.apache.wicket.ng.request.component.PageParametersNg;
-import org.apache.wicket.ng.request.component.RequestablePage;
 import org.apache.wicket.ng.request.cycle.RequestCycle;
 import org.apache.wicket.ng.request.cycle.RequestCycleContext;
 import org.apache.wicket.ng.request.handler.impl.RenderPageRequestHandler;
 import org.apache.wicket.ng.request.handler.impl.render.RenderPageRequestHandlerDelegate;
 import org.apache.wicket.ng.request.listener.RequestListenerInterface;
-import org.apache.wicket.ng.request.mapper.MapperContext;
+import org.apache.wicket.ng.request.mapper.IMapperContext;
 import org.apache.wicket.ng.request.mapper.ThreadsafeCompoundRequestMapper;
 import org.apache.wicket.ng.resource.ResourceReferenceRegistry;
-import org.apache.wicket.ng.session.SessionStore;
-import org.apache.wicket.ng.session.SessionStore.UnboundListener;
-import org.apache.wicket.ng.settings.ApplicationSettings;
-import org.apache.wicket.ng.settings.RequestCycleSettings;
+import org.apache.wicket.ng.session.ISessionStore;
+import org.apache.wicket.ng.session.ISessionStore.UnboundListener;
+import org.apache.wicket.ng.settings.IApplicationSettings;
+import org.apache.wicket.ng.settings.IRequestCycleSettings;
+import org.apache.wicket.pageManager.DefaultPageManagerContext;
+import org.apache.wicket.pageManager.IPageManager;
+import org.apache.wicket.pageManager.IPageManagerContext;
 import org.apache.wicket.session.DefaultPageFactory;
 import org.apache.wicket.util.lang.Checks;
 
@@ -69,8 +68,7 @@
 	{
 		sessionStore = newSessionStore();
 		sessionStore.registerUnboundListener(this);
-		pageManager = newPageManager();
-		pageManager.setContext(getPageManagerContext());
+		pageManager = newPageManager(getPageManagerContext());
 		rootRequestMapper = newRequestHandlerEncoderRegistry();
 		resourceReferenceRegistry = newResourceReferenceRegistry();
 		pageFactory = newPageFactory();
@@ -206,7 +204,7 @@
 	// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 
 	// TODO - Do properly
-	private final RequestCycleSettings settings = new RequestCycleSettings()
+	private final IRequestCycleSettings settings = new IRequestCycleSettings()
 	{
 		private RenderStrategy strategy = RenderStrategy.REDIRECT_TO_BUFFER;
 		private String responseEncoding = "UTF-8";
@@ -233,7 +231,7 @@
 	};
 
 	// TODO: - Do properly
-	private final ApplicationSettings applicationSettings = new ApplicationSettings()
+	private final IApplicationSettings applicationSettings = new IApplicationSettings()
 	{
 		private IClassResolver resolver = new DefaultClassResolver();
 
@@ -248,12 +246,12 @@
 		}
 	};
 
-	public RequestCycleSettings getRequestCycleSettings()
+	public IRequestCycleSettings getRequestCycleSettings()
 	{
 		return settings;
 	}
 
-	public ApplicationSettings getApplicationSettings()
+	public IApplicationSettings getApplicationSettings()
 	{
 		return applicationSettings;
 	}
@@ -306,11 +304,11 @@
 	// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 	// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 
-	protected abstract SessionStore newSessionStore();
+	protected abstract ISessionStore newSessionStore();
 
-	private SessionStore sessionStore;
+	private ISessionStore sessionStore;
 
-	public SessionStore getSessionStore()
+	public ISessionStore getSessionStore()
 	{
 		return sessionStore;
 	}
@@ -359,79 +357,36 @@
 	// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 	// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 
-	protected PageManager newPageManager()
+	protected IPageManager newPageManager(IPageManagerContext context)
 	{
 		int cacheSize = 40;
 		int fileChannelPoolCapacity = 50;
-		DataStore dataStore = new DiskDataStore(getName(), 1000000, fileChannelPoolCapacity);
-		PageStore pageStore = new DefaultPageStore(getName(), dataStore, cacheSize);
-		return new PersistentPageManager(getName(), pageStore);
+		IDataStore dataStore = new DiskDataStore(getName(), 1000000, fileChannelPoolCapacity);
+		IPageStore pageStore = new DefaultPageStore(getName(), dataStore, cacheSize);
+		return new PersistentPageManager(getName(), pageStore, context);
 	}
 
-	private PageManager pageManager;
+	private IPageManager pageManager;
 
 	/**
 	 * Context for PageManager to interact with rest of Wicket
 	 */
-	private final PageManagerContext pageManagerContext = new PageManagerContext()
-	{
-		public void bind()
-		{
-			Session.get().bind();
-		}
-
-		private final MetaDataKey<Object> requestCycleMetaDataKey = new MetaDataKey<Object>()
-		{
-			private static final long serialVersionUID = 1L;
-		};
-
-		public Object getRequestData()
-		{
-			RequestCycle requestCycle = RequestCycle.get();
-			if (requestCycle == null)
-			{
-				throw new IllegalStateException("Not a request thread.");
-			}
-			return requestCycle.getMetaData(requestCycleMetaDataKey);
-		}
-
-		public Serializable getSessionAttribute(String key)
-		{
-			return Session.get().getAttribute(key);
-		}
-
-		public String getSessionId()
-		{
-			return Session.get().getId();
-		}
-
-		public void setRequestData(Object data)
-		{
-			RequestCycle requestCycle = RequestCycle.get();
-			if (requestCycle == null)
-			{
-				throw new IllegalStateException("Not a request thread.");
-			}
-			requestCycle.setMetaData(requestCycleMetaDataKey, data);
-		}
-
-		public void setSessionAttribute(String key, Serializable value)
-		{
-			Session.get().setAttribute(key, value);
-		}
-	};
+	private final IPageManagerContext pageManagerContext = new DefaultPageManagerContext();
 
 	/**
-	 * Returns the {@link PageManager} instance.
 	 * 
-	 * @return {@link PageManager} instance.
+	 * @return the page manager
 	 */
-	public PageManager getPageManager()
+	public IPageManager getPageManager()
 	{
 		return pageManager;
 	}
 
-	protected PageManagerContext getPageManagerContext()
+	/**
+	 * 
+	 * @return the page manager context
+	 */
+	protected IPageManagerContext getPageManagerContext()
 	{
 		return pageManagerContext;
 	}
@@ -463,7 +418,7 @@
 	 * 
 	 * @return Home page class for this application
 	 */
-	public abstract Class<? extends RequestablePage> getHomePage();
+	public abstract Class<? extends IRequestablePage> getHomePage();
 
 	private ThreadsafeCompoundRequestMapper rootRequestMapper;
 
@@ -531,7 +486,7 @@
 		return pageFactory;
 	}
 
-	private final MapperContext encoderContext = new MapperContext()
+	private final IMapperContext encoderContext = new IMapperContext()
 	{
 		public String getBookmarkableIdentifier()
 		{
@@ -568,7 +523,7 @@
 			return listenerInterface.getName();
 		}
 
-		public RequestablePage newPageInstance(Class<? extends RequestablePage> pageClass,
+		public IRequestablePage newPageInstance(Class<? extends IRequestablePage> pageClass,
 			PageParametersNg pageParameters)
 		{
 			if (pageParameters == null)
@@ -581,23 +536,23 @@
 			}
 		}
 
-		public RequestablePage getPageInstance(int pageId)
+		public IRequestablePage getPageInstance(int pageId)
 		{
 			return Page.getPage(pageId);
 		}
 
-		public Class<? extends RequestablePage> getHomePageClass()
+		public Class<? extends IRequestablePage> getHomePageClass()
 		{
 			return Application.this.getHomePage();
 		}
 	};
 
-	public final MapperContext getEncoderContext()
+	public final IMapperContext getEncoderContext()
 	{
 		return encoderContext;
 	}
 
-	public void registerEncoder(RequestMapper encoder)
+	public void registerEncoder(IRequestMapper encoder)
 	{
 		getRootRequestMapper().register(encoder);
 	}
@@ -607,6 +562,5 @@
 	 */
 	protected void registerDefaultEncoders()
 	{
-
 	}
 }

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/DefaultExceptionMapper.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/DefaultExceptionMapper.java?rev=892463&r1=892462&r2=892463&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/DefaultExceptionMapper.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/DefaultExceptionMapper.java Sat Dec 19 11:27:15 2009
@@ -16,13 +16,13 @@
  */
 package org.apache.wicket.ng;
 
-import org.apache.wicket.ng.request.RequestHandler;
-import org.apache.wicket.ng.request.cycle.ExceptionMapper;
+import org.apache.wicket.ng.request.IRequestHandler;
+import org.apache.wicket.ng.request.cycle.IExceptionMapper;
 
-public class DefaultExceptionMapper implements ExceptionMapper
+public class DefaultExceptionMapper implements IExceptionMapper
 {
 
-	public RequestHandler map(Exception e)
+	public IRequestHandler map(Exception e)
 	{
 		// TODO
 		return null;

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/Session.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/Session.java?rev=892463&r1=892462&r2=892463&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/Session.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/Session.java Sat Dec 19 11:27:15 2009
@@ -24,7 +24,7 @@
 
 import org.apache.wicket.Request;
 import org.apache.wicket.ng.request.cycle.RequestCycle;
-import org.apache.wicket.ng.session.SessionStore;
+import org.apache.wicket.ng.session.ISessionStore;
 
 public class Session implements Serializable
 {
@@ -35,7 +35,7 @@
 
 	}
 
-	protected SessionStore getSessionStore()
+	protected ISessionStore getSessionStore()
 	{
 		return Application.get().getSessionStore();
 	}

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=892463&r1=892462&r2=892463&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 Sat Dec 19 11:27:15 2009
@@ -19,7 +19,7 @@
 import org.apache.wicket.Component;
 import org.apache.wicket.Request;
 import org.apache.wicket.Response;
-import org.apache.wicket.ng.request.RequestHandler;
+import org.apache.wicket.ng.request.IRequestHandler;
 import org.apache.wicket.ng.request.cycle.RequestCycle;
 import org.apache.wicket.ng.request.handler.PageAndComponentProvider;
 import org.apache.wicket.ng.request.handler.impl.BookmarkableListenerInterfaceRequestHandler;
@@ -66,7 +66,7 @@
 
 	private String getURL()
 	{
-		RequestHandler handler;
+		IRequestHandler handler;
 		PageAndComponentProvider provider = new PageAndComponentProvider(getPage(), this);
 		if (isBookmarkable())
 		{

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=892463&r1=892462&r2=892463&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 Sat Dec 19 11:27:15 2009
@@ -19,7 +19,7 @@
 
 import org.apache.wicket.Component;
 import org.apache.wicket.Response;
-import org.apache.wicket.ng.request.RequestHandler;
+import org.apache.wicket.ng.request.IRequestHandler;
 import org.apache.wicket.ng.request.cycle.RequestCycle;
 import org.apache.wicket.ng.request.handler.PageAndComponentProvider;
 import org.apache.wicket.ng.request.handler.impl.BookmarkableListenerInterfaceRequestHandler;
@@ -68,7 +68,7 @@
 
 	private String getURL()
 	{
-		RequestHandler handler;
+		IRequestHandler handler;
 		PageAndComponentProvider provider = new PageAndComponentProvider(getPage(), this);
 		if (isBookmarkable())
 		{

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=892463&r1=892462&r2=892463&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 Sat Dec 19 11:27:15 2009
@@ -16,15 +16,16 @@
  */
 package org.apache.wicket.ng.mock;
 
-import org.apache.wicket.ng.page.PageManager;
 import org.apache.wicket.ng.protocol.http.WebApplication;
-import org.apache.wicket.ng.request.component.RequestablePage;
+import org.apache.wicket.ng.request.component.IRequestablePage;
 import org.apache.wicket.ng.request.cycle.RequestCycle;
 import org.apache.wicket.ng.request.cycle.RequestCycleContext;
 import org.apache.wicket.ng.request.handler.impl.RenderPageRequestHandler;
 import org.apache.wicket.ng.request.handler.impl.render.RenderPageRequestHandlerDelegate;
 import org.apache.wicket.ng.request.handler.impl.render.WebRenderPageRequestHandlerDelegate;
-import org.apache.wicket.ng.session.SessionStore;
+import org.apache.wicket.ng.session.ISessionStore;
+import org.apache.wicket.pageManager.IPageManager;
+import org.apache.wicket.pageManager.IPageManagerContext;
 
 public class MockApplication extends WebApplication
 {
@@ -34,7 +35,7 @@
 	}
 
 	@Override
-	public Class<? extends RequestablePage> getHomePage()
+	public Class<? extends IRequestablePage> getHomePage()
 	{
 		return null;
 	}
@@ -45,9 +46,9 @@
 		return new MockRequestCycle(context);
 	}
 
-	private RequestablePage lastRenderedPage;
+	private IRequestablePage lastRenderedPage;
 
-	public RequestablePage getLastRenderedPage()
+	public IRequestablePage getLastRenderedPage()
 	{
 		return lastRenderedPage;
 	}
@@ -73,13 +74,13 @@
 	}
 
 	@Override
-	protected PageManager newPageManager()
+	protected IPageManager newPageManager(IPageManagerContext context)
 	{
-		return new MockPageManager();
+		return new MockPageManager(context);
 	}
 
 	@Override
-	protected SessionStore newSessionStore()
+	protected ISessionStore newSessionStore()
 	{
 		return new MockSessionStore();
 	}

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/mock/MockPageManager.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/mock/MockPageManager.java?rev=892463&r1=892462&r2=892463&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/mock/MockPageManager.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/mock/MockPageManager.java Sat Dec 19 11:27:15 2009
@@ -19,23 +19,25 @@
 import java.util.HashMap;
 import java.util.Map;
 
-import org.apache.wicket.ng.page.ManageablePage;
-import org.apache.wicket.ng.page.PageManager;
-import org.apache.wicket.ng.page.PageManagerContext;
+import org.apache.wicket.ng.page.IManageablePage;
+import org.apache.wicket.pageManager.IPageManager;
+import org.apache.wicket.pageManager.IPageManagerContext;
 
 /**
- * Simple {@link PageManager} used for testing.
+ * Simple {@link IPageManager} used for testing.
  * 
  * @author Matej Knopp
  */
-public class MockPageManager implements PageManager
+public class MockPageManager implements IPageManager
 {
-	private final Map<Integer, ManageablePage> pages = new HashMap<Integer, ManageablePage>();
+	private final Map<Integer, IManageablePage> pages = new HashMap<Integer, IManageablePage>();
 
 	/**
 	 * Construct.
+	 * 
+	 * @param context
 	 */
-	public MockPageManager()
+	public MockPageManager(IPageManagerContext context)
 	{
 	}
 
@@ -47,7 +49,7 @@
 	{
 	}
 
-	public ManageablePage getPage(int id)
+	public IManageablePage getPage(int id)
 	{
 		return pages.get(id);
 	}
@@ -60,7 +62,7 @@
 	{
 	}
 
-	public void setContext(PageManagerContext context)
+	public void setContext(IPageManagerContext context)
 	{
 	}
 
@@ -69,9 +71,16 @@
 		return false;
 	}
 
-	public void touchPage(ManageablePage page)
+	public void touchPage(IManageablePage page)
 	{
 		pages.put(page.getPageId(), page);
 	}
 
+	/**
+	 * @see org.apache.wicket.pageManager.IPageManager#getContext()
+	 */
+	public IPageManagerContext getContext()
+	{
+		return null;
+	}
 }

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/mock/MockRequestCycle.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/mock/MockRequestCycle.java?rev=892463&r1=892462&r2=892463&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/mock/MockRequestCycle.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/mock/MockRequestCycle.java Sat Dec 19 11:27:15 2009
@@ -16,13 +16,13 @@
  */
 package org.apache.wicket.ng.mock;
 
-import org.apache.wicket.ng.request.RequestHandler;
+import org.apache.wicket.ng.request.IRequestHandler;
 import org.apache.wicket.ng.request.cycle.RequestCycle;
 import org.apache.wicket.ng.request.cycle.RequestCycleContext;
 
 /**
- * Request cycle that allows to override {@link RequestHandler} resolving to force custom
- * {@link RequestHandler}.
+ * Request cycle that allows to override {@link IRequestHandler} resolving to force custom
+ * {@link IRequestHandler}.
  * 
  * @author Matej Knopp
  */
@@ -38,20 +38,20 @@
 		super(context);
 	}
 
-	private RequestHandler forcedRequestHandler;
+	private IRequestHandler forcedRequestHandler;
 
 	/**
 	 * Forces the specified request handler to be resolved.
 	 * 
 	 * @param requestHandler
 	 */
-	public void forceRequestHandler(RequestHandler requestHandler)
+	public void forceRequestHandler(IRequestHandler requestHandler)
 	{
 		forcedRequestHandler = requestHandler;
 	}
 
 	@Override
-	protected RequestHandler resolveRequestHandler()
+	protected IRequestHandler resolveRequestHandler()
 	{
 		if (forcedRequestHandler != null)
 		{

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/mock/MockRequestParameters.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/mock/MockRequestParameters.java?rev=892463&r1=892462&r2=892463&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/mock/MockRequestParameters.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/mock/MockRequestParameters.java Sat Dec 19 11:27:15 2009
@@ -23,15 +23,15 @@
 import java.util.Map;
 import java.util.Set;
 
-import org.apache.wicket.ng.request.RequestParameters;
+import org.apache.wicket.ng.request.IRequestParameters;
 import org.apache.wicket.util.string.StringValue;
 
 /**
- * Mutable mock implementation of {@link RequestParameters}.
+ * Mutable mock implementation of {@link IRequestParameters}.
  * 
  * @author Matej Knopp
  */
-public class MockRequestParameters implements RequestParameters
+public class MockRequestParameters implements IRequestParameters
 {
 	private final Map<String, List<StringValue>> parameters = new HashMap<String, List<StringValue>>();
 

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=892463&r1=892462&r2=892463&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 Sat Dec 19 11:27:15 2009
@@ -26,14 +26,14 @@
 
 import org.apache.wicket.Request;
 import org.apache.wicket.ng.Session;
-import org.apache.wicket.ng.session.SessionStore;
+import org.apache.wicket.ng.session.ISessionStore;
 
 /**
  * Session store that holds one session.
  * 
  * @author Matej Knopp
  */
-public class MockSessionStore implements SessionStore
+public class MockSessionStore implements ISessionStore
 {
 	/**
 	 * 

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/mock/WicketTester.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/mock/WicketTester.java?rev=892463&r1=892462&r2=892463&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/mock/WicketTester.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/mock/WicketTester.java Sat Dec 19 11:27:15 2009
@@ -24,17 +24,17 @@
 import org.apache.wicket.Page;
 import org.apache.wicket.ng.ThreadContext;
 import org.apache.wicket.ng.WicketRuntimeException;
-import org.apache.wicket.ng.request.RequestHandler;
-import org.apache.wicket.ng.request.RequestMapper;
+import org.apache.wicket.ng.request.IRequestHandler;
+import org.apache.wicket.ng.request.IRequestMapper;
 import org.apache.wicket.ng.request.Url;
 import org.apache.wicket.ng.request.cycle.RequestCycle;
 import org.apache.wicket.ng.request.handler.DefaultPageProvider;
 import org.apache.wicket.ng.request.handler.PageAndComponentProvider;
-import org.apache.wicket.ng.request.handler.PageProvider;
+import org.apache.wicket.ng.request.handler.IPageProvider;
 import org.apache.wicket.ng.request.handler.impl.ListenerInterfaceRequestHandler;
 import org.apache.wicket.ng.request.handler.impl.RenderPageRequestHandler;
 import org.apache.wicket.ng.request.listener.RequestListenerInterface;
-import org.apache.wicket.ng.settings.RequestCycleSettings.RenderStrategy;
+import org.apache.wicket.ng.settings.IRequestCycleSettings.RenderStrategy;
 
 /**
  * Experimental implementation
@@ -90,9 +90,9 @@
 	 * 
 	 * @param forcedRequestHandler
 	 *            optional parameter to override parsing the request URL and force
-	 *            {@link RequestHandler}
+	 *            {@link IRequestHandler}
 	 */
-	public void processRequest(MockWebRequest request, RequestHandler forcedRequestHandler)
+	public void processRequest(MockWebRequest request, IRequestHandler forcedRequestHandler)
 	{
 		try
 		{
@@ -148,7 +148,7 @@
 	}
 
 	/**
-	 * Renders the page specified by given {@link PageProvider}. After render the page instance can
+	 * Renders the page specified by given {@link IPageProvider}. After render the page instance can
 	 * be retreived using {@link #getLastRenderedPage()} and the rendered document will be available
 	 * in {@link #getLastResponse()}.
 	 * 
@@ -157,17 +157,17 @@
 	 * 
 	 * @param pageProvider
 	 */
-	public void startPage(PageProvider pageProvider)
+	public void startPage(IPageProvider pageProvider)
 	{
 		MockWebRequest request = new MockWebRequest(new Url());
-		RequestHandler handler = new RenderPageRequestHandler(pageProvider);
+		IRequestHandler handler = new RenderPageRequestHandler(pageProvider);
 		processRequest(request, handler);
 	}
 
 	/**
 	 * Renders the page.
 	 * 
-	 * @see #startPage(PageProvider)
+	 * @see #startPage(IPageProvider)
 	 * 
 	 * @param page
 	 */
@@ -190,7 +190,7 @@
 	{
 		// there are two ways to do this. RequestCycle could be forced to call the handler
 		// directly but constructing and parsing the URL increases the chance of triggering bugs
-		RequestHandler handler = new ListenerInterfaceRequestHandler(new PageAndComponentProvider(
+		IRequestHandler handler = new ListenerInterfaceRequestHandler(new PageAndComponentProvider(
 			component.getPage(), component), listener);
 
 		Url url = urlFor(handler);
@@ -258,14 +258,14 @@
 	}
 
 	/**
-	 * Encodes the {@link RequestHandler} to {@link Url}. It should be safe to call this method
-	 * outside request thread as log as no registered {@link RequestMapper} requires a
+	 * Encodes the {@link IRequestHandler} to {@link Url}. It should be safe to call this method
+	 * outside request thread as log as no registered {@link IRequestMapper} requires a
 	 * {@link RequestCycle}.
 	 * 
 	 * @param handler
 	 * @return {@link Url} for handler.
 	 */
-	public Url urlFor(RequestHandler handler)
+	public Url urlFor(IRequestHandler handler)
 	{
 		return application.getRootRequestMapper().mapHandler(handler);
 	}

Copied: wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/page/IManageablePage.java (from r892307, wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/page/ManageablePage.java)
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/page/IManageablePage.java?p2=wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/page/IManageablePage.java&p1=wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/page/ManageablePage.java&r1=892307&r2=892463&rev=892463&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/page/ManageablePage.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/page/IManageablePage.java Sat Dec 19 11:27:15 2009
@@ -16,9 +16,8 @@
  */
 package org.apache.wicket.ng.page;
 
-
 // TODO WICKET-NG: this iface used to extend IDetachable, however this causes problems because Page becomes IDetachable and some property models will cause an infinite loop trigging detach on the component again because it is their target object. In the future Component should indeed implement IDetachable, for now copied #detach into this iface directly.
-public interface ManageablePage /* extends IDetachable */
+public interface IManageablePage
 {
 	/**
 	 * Gets whether the page is stateless. Components on stateless page must not render any stateful
@@ -40,6 +39,4 @@
 	 * re-attached later.
 	 */
 	void detach();
-
-
 }

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/page/persistent/AsynchronousDataStore.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/page/persistent/AsynchronousDataStore.java?rev=892463&r1=892462&r2=892463&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/page/persistent/AsynchronousDataStore.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/page/persistent/AsynchronousDataStore.java Sat Dec 19 11:27:15 2009
@@ -24,20 +24,20 @@
 import java.util.concurrent.atomic.AtomicBoolean;
 
 /**
- * Facade for {@link DataStore} that does the actual saving in worker thread.
+ * Facade for {@link IDataStore} that does the actual saving in worker thread.
  * 
  * @author Matej Knopp
  */
-public class AsynchronousDataStore implements DataStore
+public class AsynchronousDataStore implements IDataStore
 {
-	private final DataStore dataStore;
+	private final IDataStore dataStore;
 
 	/**
 	 * Construct.
 	 * 
 	 * @param dataStore
 	 */
-	public AsynchronousDataStore(DataStore dataStore)
+	public AsynchronousDataStore(IDataStore dataStore)
 	{
 		this.dataStore = dataStore;
 

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=892463&r1=892462&r2=892463&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 Sat Dec 19 11:27:15 2009
@@ -23,19 +23,19 @@
 import java.util.List;
 
 import org.apache.wicket.Page;
-import org.apache.wicket.ng.page.ManageablePage;
+import org.apache.wicket.ng.page.IManageablePage;
 import org.apache.wicket.util.lang.Checks;
 import org.apache.wicket.util.lang.Objects;
 
-public class DefaultPageStore implements PageStore
+public class DefaultPageStore implements IPageStore
 {
 	private final String applicationName;
 
 	private final SerializedPagesCache serializedPagesCache;
 
-	private final DataStore pageDataStore;
+	private final IDataStore pageDataStore;
 
-	public DefaultPageStore(String applicationName, DataStore dataStore, int cacheSize)
+	public DefaultPageStore(String applicationName, IDataStore dataStore, int cacheSize)
 	{
 		Checks.argumentNotNull(applicationName, "applicationName");
 		Checks.argumentNotNull(dataStore, "DataStore");
@@ -75,7 +75,7 @@
 		return applicationName;
 	}
 
-	public ManageablePage getPage(String sessionId, int id)
+	public IManageablePage getPage(String sessionId, int id)
 	{
 		SerializedPage fromCache = serializedPagesCache.getPage(sessionId, id);
 		if (fromCache != null)
@@ -102,7 +102,7 @@
 		removePageData(sessionId, id);
 	}
 
-	public void storePage(String sessionId, ManageablePage page)
+	public void storePage(String sessionId, IManageablePage page)
 	{
 		SerializedPage serialized = serializePage(sessionId, page);
 		serializedPagesCache.storePage(serialized);
@@ -115,11 +115,11 @@
 		serializedPagesCache.removePages(sessionId);
 	}
 
-	public ManageablePage convertToPage(Object object)
+	public IManageablePage convertToPage(Object object)
 	{
-		if (object instanceof ManageablePage)
+		if (object instanceof IManageablePage)
 		{
-			return (ManageablePage)object;
+			return (IManageablePage)object;
 		}
 		else if (object instanceof SerializedPage)
 		{
@@ -174,9 +174,9 @@
 
 		SerializedPage result = null;
 
-		if (object instanceof ManageablePage)
+		if (object instanceof IManageablePage)
 		{
-			ManageablePage page = (ManageablePage)object;
+			IManageablePage page = (IManageablePage)object;
 			result = serializedPagesCache.getPage(sessionId, page.getPageId());
 			if (result == null)
 			{
@@ -296,7 +296,7 @@
 		}
 	};
 
-	protected SerializedPage serializePage(String sessionId, ManageablePage page)
+	protected SerializedPage serializePage(String sessionId, IManageablePage page)
 	{
 		Checks.argumentNotNull(sessionId, "sessionId");
 		Checks.argumentNotNull(page, "page");
@@ -305,9 +305,9 @@
 		return new SerializedPage(sessionId, page.getPageId(), data);
 	}
 
-	protected ManageablePage deserializePage(byte data[])
+	protected IManageablePage deserializePage(byte data[])
 	{
-		return (ManageablePage)Objects.byteArrayToObject(data);
+		return (IManageablePage)Objects.byteArrayToObject(data);
 	}
 
 	/**

Copied: wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/page/persistent/IDataStore.java (from r892307, wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/page/persistent/DataStore.java)
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/page/persistent/IDataStore.java?p2=wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/page/persistent/IDataStore.java&p1=wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/page/persistent/DataStore.java&r1=892307&r2=892463&rev=892463&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/page/persistent/DataStore.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/page/persistent/IDataStore.java Sat Dec 19 11:27:15 2009
@@ -16,7 +16,7 @@
  */
 package org.apache.wicket.ng.page.persistent;
 
-public interface DataStore
+public interface IDataStore
 {
 	public byte[] getData(String sessionId, int id);
 

Copied: wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/page/persistent/IPageStore.java (from r892307, wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/page/persistent/PageStore.java)
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/page/persistent/IPageStore.java?p2=wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/page/persistent/IPageStore.java&p1=wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/page/persistent/PageStore.java&r1=892307&r2=892463&rev=892463&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/page/persistent/PageStore.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/page/persistent/IPageStore.java Sat Dec 19 11:27:15 2009
@@ -18,9 +18,9 @@
 
 import java.io.Serializable;
 
-import org.apache.wicket.ng.page.ManageablePage;
+import org.apache.wicket.ng.page.IManageablePage;
 
-public interface PageStore
+public interface IPageStore
 {
 	/**
 	 * Destroy the store.
@@ -34,7 +34,7 @@
 	 * @param id
 	 * @return The page
 	 */
-	ManageablePage getPage(String sessionId, int id);
+	IManageablePage getPage(String sessionId, int id);
 
 	/**
 	 * Removes a page from the persistent layer.
@@ -53,7 +53,7 @@
 	 * @param sessionId
 	 * @param page
 	 */
-	void storePage(String sessionId, ManageablePage page);
+	void storePage(String sessionId, IManageablePage page);
 
 	/**
 	 * The pagestore should cleanup all the pages for that sessionid.
@@ -94,5 +94,5 @@
 	 * @param page
 	 * @return page
 	 */
-	public ManageablePage convertToPage(Object page);
+	public IManageablePage convertToPage(Object page);
 }

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/page/persistent/PersistentPageManager.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/page/persistent/PersistentPageManager.java?rev=892463&r1=892462&r2=892463&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/page/persistent/PersistentPageManager.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/page/persistent/PersistentPageManager.java Sat Dec 19 11:27:15 2009
@@ -23,20 +23,24 @@
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
 
-import org.apache.wicket.ng.page.ManageablePage;
-import org.apache.wicket.ng.page.PageManagerContext;
-import org.apache.wicket.ng.page.common.AbstractPageManager;
-import org.apache.wicket.ng.page.common.RequestAdapter;
+import org.apache.wicket.ng.page.IManageablePage;
+import org.apache.wicket.pageManager.AbstractPageManager;
+import org.apache.wicket.pageManager.IPageManagerContext;
+import org.apache.wicket.pageManager.RequestAdapter;
 
 public class PersistentPageManager extends AbstractPageManager
 {
-	private final PageStore pageStore;
+	private final IPageStore pageStore;
 	private final String applicationName;
 
-	public PersistentPageManager(String applicationName, PageStore pageStore)
+	public PersistentPageManager(String applicationName, IPageStore pageStore,
+		IPageManagerContext context)
 	{
+		super(context);
+
 		this.applicationName = applicationName;
 		this.pageStore = pageStore;
+
 		managers.put(applicationName, this);
 	}
 
@@ -61,7 +65,7 @@
 			this.sessionId = sessionId;
 		}
 
-		private PageStore getPageStore()
+		private IPageStore getPageStore()
 		{
 			PersistentPageManager manager = managers.get(applicationName);
 			if (manager == null)
@@ -77,11 +81,11 @@
 		 * 
 		 * @param page
 		 */
-		private void addPage(ManageablePage page)
+		private void addPage(IManageablePage page)
 		{
 			if (page != null)
 			{
-				for (ManageablePage p : pages)
+				for (IManageablePage p : pages)
 				{
 					if (p.getPageId() == page.getPageId())
 					{
@@ -100,19 +104,19 @@
 		{
 			if (pages == null)
 			{
-				pages = new ArrayList<ManageablePage>();
+				pages = new ArrayList<IManageablePage>();
 			}
 
 			for (Object o : afterReadObject)
 			{
-				ManageablePage page = getPageStore().convertToPage(o);
+				IManageablePage page = getPageStore().convertToPage(o);
 				addPage(page);
 			}
 
 			afterReadObject = null;
 		}
 
-		public synchronized ManageablePage getPage(int id)
+		public synchronized IManageablePage getPage(int id)
 		{
 			// check if pages are in deserialized state
 			if (afterReadObject != null && afterReadObject.isEmpty() == false)
@@ -123,7 +127,7 @@
 			// try to find page with same id
 			if (pages != null)
 			{
-				for (ManageablePage page : pages)
+				for (IManageablePage page : pages)
 				{
 					if (page.getPageId() == id)
 					{
@@ -137,13 +141,13 @@
 		}
 
 		// set the list of pages to remember after the request
-		public synchronized void setPages(List<ManageablePage> pages)
+		public synchronized void setPages(List<IManageablePage> pages)
 		{
-			this.pages = new ArrayList<ManageablePage>(pages);
+			this.pages = new ArrayList<IManageablePage>(pages);
 			afterReadObject = null;
 		}
 
-		private transient List<ManageablePage> pages;
+		private transient List<IManageablePage> pages;
 		private transient List<Object> afterReadObject;
 
 		private void writeObject(java.io.ObjectOutputStream s) throws IOException
@@ -152,7 +156,7 @@
 
 			// prepare for serialization and store the pages
 			List<Serializable> l = new ArrayList<Serializable>();
-			for (ManageablePage p : pages)
+			for (IManageablePage p : pages)
 			{
 				l.add(getPageStore().prepareForSerialization(sessionId, p));
 			}
@@ -185,13 +189,13 @@
 	 */
 	protected class PersitentRequestAdapter extends RequestAdapter
 	{
-		public PersitentRequestAdapter(PageManagerContext context)
+		public PersitentRequestAdapter(IPageManagerContext context)
 		{
 			super(context);
 		}
 
 		@Override
-		protected ManageablePage getPage(int id)
+		protected IManageablePage getPage(int id)
 		{
 			// try to get session entry for this session
 			SessionEntry entry = getSessionEntry(false);
@@ -238,13 +242,13 @@
 		}
 
 		@Override
-		protected void storeTouchedPages(List<ManageablePage> touchedPages)
+		protected void storeTouchedPages(List<IManageablePage> touchedPages)
 		{
 			if (!touchedPages.isEmpty())
 			{
 				SessionEntry entry = getSessionEntry(true);
 				entry.setPages(touchedPages);
-				for (ManageablePage page : touchedPages)
+				for (IManageablePage page : touchedPages)
 				{
 					pageStore.storePage(getSessionId(), page);
 				}
@@ -253,7 +257,7 @@
 	};
 
 	@Override
-	protected RequestAdapter newRequestAdapter(PageManagerContext context)
+	protected RequestAdapter newRequestAdapter(IPageManagerContext context)
 	{
 		return new PersitentRequestAdapter(context);
 	}

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/page/persistent/disk/DiskDataStore.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/page/persistent/disk/DiskDataStore.java?rev=892463&r1=892462&r2=892463&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/page/persistent/disk/DiskDataStore.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/page/persistent/disk/DiskDataStore.java Sat Dec 19 11:27:15 2009
@@ -36,13 +36,13 @@
 
 import org.apache.wicket.ng.Application;
 import org.apache.wicket.ng.WicketRuntimeException;
-import org.apache.wicket.ng.page.persistent.DataStore;
+import org.apache.wicket.ng.page.persistent.IDataStore;
 import org.apache.wicket.ng.page.persistent.disk.PageWindowManager.PageWindow;
 import org.apache.wicket.ng.protocol.http.WebApplication;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-public class DiskDataStore implements DataStore
+public class DiskDataStore implements IDataStore
 {
 	private final String applicationName;
 	private final int maxSizePerPageSession;

Added: wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/protocol/http/BufferedWebResponse.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/protocol/http/BufferedWebResponse.java?rev=892463&view=auto
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/protocol/http/BufferedWebResponse.java (added)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/protocol/http/BufferedWebResponse.java Sat Dec 19 11:27:15 2009
@@ -0,0 +1,269 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.wicket.ng.protocol.http;
+
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import javax.servlet.http.Cookie;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.wicket.WicketRuntimeException;
+import org.apache.wicket.protocol.http.WebResponse;
+import org.apache.wicket.util.lang.Checks;
+import org.apache.wicket.util.string.AppendingStringBuffer;
+
+
+/**
+ * Subclass of WebResponse which buffers output and any redirection.
+ * 
+ * @author Jonathan Locke
+ */
+public class BufferedWebResponse extends WebResponse
+{
+	/**
+	 * Construct.
+	 */
+	public BufferedWebResponse()
+	{
+	}
+
+	public BufferedWebResponse(HttpServletResponse httpServletResponse)
+	{
+		super(httpServletResponse);
+	}
+
+
+	private static class CookieEntry
+	{
+		Cookie cookie;
+		boolean add;
+	}
+
+	private final List<CookieEntry> cookieEntries = new ArrayList<CookieEntry>();
+
+	@Override
+	public void addCookie(Cookie cookie)
+	{
+		CookieEntry entry = new CookieEntry();
+		entry.cookie = cookie;
+		entry.add = true;
+		cookieEntries.add(entry);
+	}
+
+	@Override
+	public void clearCookie(Cookie cookie)
+	{
+		CookieEntry entry = new CookieEntry();
+		entry.cookie = cookie;
+		entry.add = false;
+		cookieEntries.add(entry);
+	}
+
+	private Long contentLength = null;
+
+	@Override
+	public void setContentLength(long length)
+	{
+		contentLength = length;
+	}
+
+	private String contentType = null;
+
+	@Override
+	public void setContentType(String mimeType)
+	{
+		contentType = mimeType;
+	}
+
+	private final Map<String, Long> dateHeaders = new HashMap<String, Long>();
+
+	@Override
+	public void setDateHeader(String name, long date)
+	{
+		dateHeaders.put(name, date);
+	}
+
+	private final Map<String, String> headers = new HashMap<String, String>();
+
+	@Override
+	public void setHeader(String name, String value)
+	{
+		headers.put(name, value);
+	}
+
+	private StringBuilder builder;
+	private ByteArrayOutputStream stream;
+
+	@Override
+	public void write(CharSequence sequence)
+	{
+		if (stream != null)
+		{
+			throw new IllegalStateException(
+				"Can't call write(CharSequence) after write(byte[]) has been called.");
+		}
+
+		if (builder == null)
+		{
+			builder = new StringBuilder(4096);
+		}
+
+		builder.append(sequence);
+	}
+
+	@Override
+	public void write(byte[] array)
+	{
+		if (builder != null)
+		{
+			throw new IllegalStateException(
+				"Can't call write(byte[]) after write(CharSequence) has been called.");
+		}
+		if (stream == null)
+		{
+			stream = new ByteArrayOutputStream(array.length);
+		}
+		try
+		{
+			stream.write(array);
+		}
+		catch (IOException e)
+		{
+			throw new WicketRuntimeException(e);
+		}
+	}
+
+	private String redirectUrl = null;
+
+	@Override
+	public void redirect(String url)
+	{
+		redirectUrl = url;
+	}
+
+	private Integer statusCode = null;
+
+	@Override
+	public void setStatus(int sc)
+	{
+		statusCode = sc;
+	}
+
+	/**
+	 * Writes the content of the buffer to the specified response. Also sets the properties and and
+	 * headers.
+	 * 
+	 * @param response
+	 */
+	public void writeTo(final WebResponse response)
+	{
+		Checks.argumentNotNull(response, "response");
+
+		for (CookieEntry e : cookieEntries)
+		{
+			if (e.add)
+			{
+				response.addCookie(e.cookie);
+			}
+			else
+			{
+				response.clearCookie(e.cookie);
+			}
+		}
+		if (contentLength != null)
+		{
+			response.setContentLength(contentLength);
+		}
+		if (contentType != null)
+		{
+			response.setContentType(contentType);
+		}
+		for (String s : dateHeaders.keySet())
+		{
+			response.setDateHeader(s, dateHeaders.get(s));
+		}
+		for (String s : headers.keySet())
+		{
+			response.setHeader(s, headers.get(s));
+		}
+		if (statusCode != null)
+		{
+			response.setStatus(statusCode);
+		}
+		if (redirectUrl != null)
+		{
+			response.redirect(redirectUrl);
+		}
+		if (builder != null)
+		{
+			response.write(builder);
+		}
+		else if (stream != null)
+		{
+			final boolean copied[] = { false };
+			try
+			{
+				// try to avoid copying the array
+				stream.writeTo(new OutputStream()
+				{
+					@Override
+					public void write(int b) throws IOException
+					{
+
+					}
+
+					@Override
+					public void write(byte[] b, int off, int len) throws IOException
+					{
+						if (off == 0 && len == b.length)
+						{
+							response.write(b);
+							copied[0] = true;
+						}
+					}
+				});
+			}
+			catch (IOException e1)
+			{
+				throw new WicketRuntimeException(e1);
+			}
+			if (copied[0] == false)
+			{
+				response.write(stream.toByteArray());
+			}
+		}
+	}
+
+	/**
+	 * THIS METHOD IS NOT PART OF THE WICKET PUBLIC API.
+	 */
+	public final void filter()
+	{
+		if (redirectUrl == null && builder.length() != 0)
+		{ // TODO WICKET-NG clean up this conversion
+			builder = new StringBuilder(
+				filter(new AppendingStringBuffer(builder.toString())).toString());
+		}
+	}
+
+}

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/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=892463&r1=892462&r2=892463&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 Sat Dec 19 11:27:15 2009
@@ -16,34 +16,29 @@
  */
 package org.apache.wicket.ng.protocol.http;
 
-
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
 
 import javax.servlet.ServletContext;
 
 import org.apache.wicket.ng.Application;
-import org.apache.wicket.ng.request.RequestMapper;
+import org.apache.wicket.ng.request.IRequestMapper;
 import org.apache.wicket.ng.request.Url;
 import org.apache.wicket.ng.request.handler.impl.RenderPageRequestHandler;
 import org.apache.wicket.ng.request.handler.impl.render.RenderPageRequestHandlerDelegate;
 import org.apache.wicket.ng.request.handler.impl.render.WebRenderPageRequestHandlerDelegate;
 import org.apache.wicket.ng.request.mapper.SystemMapper;
 import org.apache.wicket.ng.session.HttpSessionStore;
-import org.apache.wicket.ng.session.SessionStore;
-import org.apache.wicket.protocol.http.BufferedWebResponse;
+import org.apache.wicket.ng.session.ISessionStore;
 
 /**
  * 
  * @author Matej Knopp
- * 
  */
 public abstract class WebApplication extends Application
 {
-
 	public WebApplication()
 	{
-		super();
 	}
 
 	@Override
@@ -52,7 +47,7 @@
 		registerEncoder(new SystemMapper());
 	}
 
-	public void mount(RequestMapper encoder)
+	public void mount(IRequestMapper encoder)
 	{
 		registerEncoder(encoder);
 	}
@@ -79,7 +74,7 @@
 	}
 
 	@Override
-	protected SessionStore newSessionStore()
+	protected ISessionStore newSessionStore()
 	{
 		return new HttpSessionStore(this);
 	}