Class DefaultPageManagerProvider

java.lang.Object
org.apache.wicket.DefaultPageManagerProvider
All Implemented Interfaces:
Supplier<IPageManager>, IPageManagerProvider

A provider of a PageManager managing @link IManageablePage}s with a default chain of IPageStores:
  1. RequestPageStore keeping pages until end of the request
  2. CachingPageStore caching with an ...
  3. InSessionPageStore keeping the last accessed page in the session
  4. SerializingPageStore serializing all pages (so they are available for back-button)
  5. AsynchronousPageStore moving storage of pages to an asynchronous worker thread (enabled by default with StoreSettings.isAsynchronous())
  6. CryptingPageStore encrypting all pages (disabled by default in StoreSettings.isEncrypted())
  7. DiskPageStore persisting all pages, configured according to StoreSettings
An alternative chain with all pages held in-memory could be:
  1. RequestPageStore keeping pages until end of the request
  2. CachingPageStore caching with an ...
  3. InSessionPageStore keeping the last accessed page in the session
  4. SerializingPageStore serializing all pages (so they are available for back-button)
  5. AsynchronousPageStore moving storage of pages to a worker thread
  6. InMemoryPageStore keeping all pages in memory
... or if all pages should be kept in the session only, without any serialization (no back-button support though): The chain's initial store should always be a RequestPageStore, buffering all adding of pages until the end of the request. Several stores accept SerializedPage only, these have to be preceded by a SerializingPageStore.

For back-button support at least one store in the chain must create copies of stored pages (usually through serialization), otherwise any following request will work on an identical page instance and the previous state of page is no longer accessible.

Other stores be may inserted ad libitum, e.g.