|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.apache.wicket.protocol.http.pagestore.AbstractPageStore org.apache.wicket.protocol.http.pagestore.DiskPageStore
public class DiskPageStore
SecondLevelCacheSessionStore.IPageStore
implementation that stores the serialized pages grouped in a single file per
pagemap.
This store was designed to overcome the problems of FilePageStore
which stores the pages
in separate files per page.
DiskPageStore
allows to set maximum size for pagemap file and maximum size for session.
If the maximum size for session is exceeded, the last recently used pagemap file is removed.
Nested Class Summary | |
---|---|
protected static class |
DiskPageStore.PageMapEntry
Each PageMap is represented by this class. |
protected static class |
DiskPageStore.SessionEntry
Represents a session, |
Nested classes/interfaces inherited from class org.apache.wicket.protocol.http.pagestore.AbstractPageStore |
---|
AbstractPageStore.SerializedPage |
Constructor Summary | |
---|---|
DiskPageStore()
Creates a new DiskPageStore instance. |
|
DiskPageStore(java.io.File fileStoreFolder,
int maxSizePerPagemap,
int maxSizePerSession,
int fileChannelPoolCapacity)
Creates a new DiskPageStore instance. |
|
DiskPageStore(int maxSizePerPagemap,
int maxSizePerSession,
int fileChannelPoolCapacity)
Creates a new DiskPageStore instance. |
Method Summary | |
---|---|
boolean |
containsPage(java.lang.String sessionId,
java.lang.String pageMapName,
int pageId,
int pageVersion)
Returns whether the PageStore contains given page. |
Page |
convertToPage(java.lang.Object page)
|
void |
destroy()
Destroy the store. |
protected void |
flushPagesToSaveList(java.lang.String sessionId,
java.util.List list)
Saves all entries from the specified list. |
protected java.io.File |
getFileStoreFolder()
Returns the "root" file store folder. |
protected int |
getLastRecentlySerializedPagesCacheSize()
|
protected int |
getMaxSizePerPageMap()
Return maximum pagemap file size (in bytes). |
protected int |
getMaxSizePerSession()
Returns maximum size per session (in bytes). |
Page |
getPage(java.lang.String sessionId,
java.lang.String pagemap,
int id,
int versionNumber,
int ajaxVersionNumber)
Restores a page version from the persistent layer. |
protected java.util.List |
getPagesToSaveList(java.lang.String sessionId)
Returns the list of pages to be saved for the specified session id. |
protected int |
getSavingThreadSleepTime()
Returns the amount time in milliseconds for the saving thread to sleep between checking whether there are pending serialized pages to be saved. |
protected DiskPageStore.SessionEntry |
getSessionEntry(java.lang.String sessionId,
boolean createIfDoesNotExist)
Returns the SessionEntry for session with given id. |
protected java.io.File |
getSessionFolder(java.lang.String sessionId,
boolean create)
Returns the folder for the specified sessions. |
protected boolean |
isSynchronous()
Returns whether the DiskPageStore should work in synchronous or asynchronous mode. |
protected void |
onPagesSerialized(java.lang.String sessionId,
java.util.List pages)
Hook for processing serialized pages (e.g. |
void |
pageAccessed(java.lang.String sessionId,
Page page)
This method is called when the page is accessed. |
java.io.Serializable |
prepareForSerialization(java.lang.String sessionId,
java.lang.Object page)
Process the page before the it gets serialized. |
void |
removePage(java.lang.String sessionId,
java.lang.String pageMap,
int id)
Removes a page from the persistent layer. |
java.lang.Object |
restoreAfterSerialization(java.io.Serializable serializable)
This method should restore the serialized page to intermediate object that can be converted to real page instance using SecondLevelCacheSessionStore.ISerializationAwarePageStore.convertToPage(Object) . |
void |
setLastRecentlySerializedPagesCacheSize(int lastRecentlySerializedPagesCacheSize)
Sets the number of last recently serialized pages kept in cache. |
protected boolean |
storeAfterSessionReplication()
|
void |
storePage(java.lang.String sessionId,
Page page)
Stores the page to a persistent layer. |
protected void |
storeSerializedPages(java.lang.String sessionId,
java.util.List pages)
Stores the serialized pages. |
void |
unbind(java.lang.String sessionId)
The pagestore should cleanup all the pages for that sessionid. |
Methods inherited from class org.apache.wicket.protocol.http.pagestore.AbstractPageStore |
---|
deserializePage, serializePage |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public DiskPageStore(java.io.File fileStoreFolder, int maxSizePerPagemap, int maxSizePerSession, int fileChannelPoolCapacity)
DiskPageStore
instance.
fileStoreFolder
- folder in which the session folders containing pagemap files will be storedmaxSizePerPagemap
- the maximum size of pagemap file (in bytes)maxSizePerSession
- the maximum size of session (in bytes)fileChannelPoolCapacity
- the maximum number of concurrently opened files (higher number improves
performance under heavy load).public DiskPageStore(int maxSizePerPagemap, int maxSizePerSession, int fileChannelPoolCapacity)
DiskPageStore
instance.
maxSizePerPagemap
- the maximum size of pagemap file (in bytes)maxSizePerSession
- the maximum size of session (in bytes)fileChannelPoolCapacity
- the maximum number of concurrently opened files (higher number improves
performance under heavy load).public DiskPageStore()
DiskPageStore
instance.
Method Detail |
---|
protected java.io.File getSessionFolder(java.lang.String sessionId, boolean create)
sessionId
- create
-
protected int getMaxSizePerPageMap()
protected int getMaxSizePerSession()
protected java.io.File getFileStoreFolder()
public void destroy()
SecondLevelCacheSessionStore.IPageStore
destroy
in interface SecondLevelCacheSessionStore.IPageStore
SecondLevelCacheSessionStore.IPageStore.destroy()
protected DiskPageStore.SessionEntry getSessionEntry(java.lang.String sessionId, boolean createIfDoesNotExist)
sessionId
- createIfDoesNotExist
-
public Page getPage(java.lang.String sessionId, java.lang.String pagemap, int id, int versionNumber, int ajaxVersionNumber)
SecondLevelCacheSessionStore.IPageStore
Note that the versionNumber and ajaxVersionNumber parameters may be -1.
getPage
in interface SecondLevelCacheSessionStore.IPageStore
SecondLevelCacheSessionStore.IPageStore.getPage(java.lang.String,
java.lang.String, int, int, int)
public void pageAccessed(java.lang.String sessionId, Page page)
SecondLevelCacheSessionStore.IPageStore
pageAccessed
in interface SecondLevelCacheSessionStore.IPageStore
SecondLevelCacheSessionStore.IPageStore.pageAccessed(java.lang.String,
org.apache.wicket.Page)
public void removePage(java.lang.String sessionId, java.lang.String pageMap, int id)
SecondLevelCacheSessionStore.IPageStore
removePage
in interface SecondLevelCacheSessionStore.IPageStore
sessionId
- The session of the page that must be removedpageMap
- The pagemap of the page that must be removedid
- The id of the page.SecondLevelCacheSessionStore.IPageStore.removePage(java.lang.String,
java.lang.String, int)
protected void storeSerializedPages(java.lang.String sessionId, java.util.List pages)
sessionId
- pages
- protected void onPagesSerialized(java.lang.String sessionId, java.util.List pages)
sessionId
- pages
- public void storePage(java.lang.String sessionId, Page page)
SecondLevelCacheSessionStore.IPageStore
storePage
in interface SecondLevelCacheSessionStore.IPageStore
SecondLevelCacheSessionStore.IPageStore.storePage(java.lang.String,
org.apache.wicket.Page)
public void unbind(java.lang.String sessionId)
SecondLevelCacheSessionStore.IPageStore
unbind
in interface SecondLevelCacheSessionStore.IPageStore
SecondLevelCacheSessionStore.IPageStore.unbind(java.lang.String)
protected java.util.List getPagesToSaveList(java.lang.String sessionId)
sessionId
-
protected void flushPagesToSaveList(java.lang.String sessionId, java.util.List list)
sessionId
- list
- protected int getSavingThreadSleepTime()
protected boolean isSynchronous()
DiskPageStore
should work in synchronous or asynchronous mode.
Asynchronous mode uses a worker thread to save pages, which results in smoother performance.
public void setLastRecentlySerializedPagesCacheSize(int lastRecentlySerializedPagesCacheSize)
lastRecentlySerializedPagesCacheSize
- protected int getLastRecentlySerializedPagesCacheSize()
public java.io.Serializable prepareForSerialization(java.lang.String sessionId, java.lang.Object page)
SecondLevelCacheSessionStore.ISerializationAwarePageStore.restoreAfterSerialization(Serializable)
.
prepareForSerialization
in interface SecondLevelCacheSessionStore.ISerializationAwarePageStore
protected boolean storeAfterSessionReplication()
public java.lang.Object restoreAfterSerialization(java.io.Serializable serializable)
SecondLevelCacheSessionStore.ISerializationAwarePageStore
SecondLevelCacheSessionStore.ISerializationAwarePageStore.convertToPage(Object)
.
restoreAfterSerialization
in interface SecondLevelCacheSessionStore.ISerializationAwarePageStore
SecondLevelCacheSessionStore.ISerializationAwarePageStore.restoreAfterSerialization(java.io.Serializable)
public Page convertToPage(java.lang.Object page)
convertToPage
in interface SecondLevelCacheSessionStore.ISerializationAwarePageStore
public boolean containsPage(java.lang.String sessionId, java.lang.String pageMapName, int pageId, int pageVersion)
SecondLevelCacheSessionStore.IPageStore
containsPage
in interface SecondLevelCacheSessionStore.IPageStore
SecondLevelCacheSessionStore.IPageStore.containsPage(java.lang.String,
java.lang.String, int, int)
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |