Author: mgrigorov Date: Fri May 27 13:40:20 2011 New Revision: 1128302 URL: http://svn.apache.org/viewvc?rev=1128302&view=rev Log: WICKET-3723 Introduce StorageSettings for the settings related to default inmemory and disk storages
Make the type of maxSizePerSession (the size of the file where session data is written) strongly typed - Bytes. Modified: wicket/trunk/wicket-core/src/main/java/org/apache/wicket/DefaultPageManagerProvider.java wicket/trunk/wicket-core/src/main/java/org/apache/wicket/pageStore/DiskDataStore.java wicket/trunk/wicket-core/src/main/java/org/apache/wicket/pageStore/PageWindowManager.java wicket/trunk/wicket-core/src/main/java/org/apache/wicket/settings/IStoreSettings.java wicket/trunk/wicket-core/src/main/java/org/apache/wicket/settings/def/StoreSettings.java wicket/trunk/wicket-core/src/test/java/org/apache/wicket/page/persistent/disk/DiskDataStoreTest.java Modified: wicket/trunk/wicket-core/src/main/java/org/apache/wicket/DefaultPageManagerProvider.java URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/DefaultPageManagerProvider.java?rev=1128302&r1=1128301&r2=1128302&view=diff ============================================================================== --- wicket/trunk/wicket-core/src/main/java/org/apache/wicket/DefaultPageManagerProvider.java (original) +++ wicket/trunk/wicket-core/src/main/java/org/apache/wicket/DefaultPageManagerProvider.java Fri May 27 13:40:20 2011 @@ -26,6 +26,7 @@ import org.apache.wicket.pageStore.DiskD import org.apache.wicket.pageStore.IDataStore; import org.apache.wicket.pageStore.IPageStore; import org.apache.wicket.settings.IStoreSettings; +import org.apache.wicket.util.lang.Bytes; /** * {@link IPageManagerProvider} implementation that creates new instance of {@link IPageManager} @@ -62,7 +63,7 @@ public class DefaultPageManagerProvider protected IDataStore newDataStore() { IStoreSettings storeSettings = getStoreSettings(); - int maxSizePerSession = storeSettings.getMaxSizePerSession(); + Bytes maxSizePerSession = storeSettings.getMaxSizePerSession(); int fileChannelPoolCapacity = storeSettings.getFileChannelPoolCapacity(); File fileStoreFolder = storeSettings.getFileStoreFolder(); Modified: wicket/trunk/wicket-core/src/main/java/org/apache/wicket/pageStore/DiskDataStore.java URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/pageStore/DiskDataStore.java?rev=1128302&r1=1128301&r2=1128302&view=diff ============================================================================== --- wicket/trunk/wicket-core/src/main/java/org/apache/wicket/pageStore/DiskDataStore.java (original) +++ wicket/trunk/wicket-core/src/main/java/org/apache/wicket/pageStore/DiskDataStore.java Fri May 27 13:40:20 2011 @@ -36,6 +36,8 @@ import java.util.concurrent.ConcurrentMa import org.apache.wicket.WicketRuntimeException; import org.apache.wicket.pageStore.PageWindowManager.PageWindow; import org.apache.wicket.util.file.Files; +import org.apache.wicket.util.lang.Args; +import org.apache.wicket.util.lang.Bytes; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -50,7 +52,7 @@ public class DiskDataStore implements ID private final String applicationName; - private final int maxSizePerPageSession; + private final Bytes maxSizePerPageSession; private final FileChannelPool fileChannelPool; @@ -67,11 +69,11 @@ public class DiskDataStore implements ID * @param fileChannelPoolCapacity */ public DiskDataStore(final String applicationName, final File fileStoreFolder, - final int maxSizePerSession, final int fileChannelPoolCapacity) + final Bytes maxSizePerSession, final int fileChannelPoolCapacity) { this.applicationName = applicationName; this.fileStoreFolder = fileStoreFolder; - maxSizePerPageSession = maxSizePerSession; + maxSizePerPageSession = Args.notNull(maxSizePerSession, "maxSizePerSession"); try { @@ -268,7 +270,7 @@ public class DiskDataStore implements ID { if (manager == null) { - manager = new PageWindowManager(diskDataStore.maxSizePerPageSession); + manager = new PageWindowManager(diskDataStore.maxSizePerPageSession.bytes()); } return manager; } Modified: wicket/trunk/wicket-core/src/main/java/org/apache/wicket/pageStore/PageWindowManager.java URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/pageStore/PageWindowManager.java?rev=1128302&r1=1128301&r2=1128302&view=diff ============================================================================== --- wicket/trunk/wicket-core/src/main/java/org/apache/wicket/pageStore/PageWindowManager.java (original) +++ wicket/trunk/wicket-core/src/main/java/org/apache/wicket/pageStore/PageWindowManager.java Fri May 27 13:40:20 2011 @@ -73,7 +73,7 @@ public class PageWindowManager implement * Maximum page size. After this size is exceeded, the pages will be saved starting at the * beginning of file. */ - private final int maxSize; + private final long maxSize; /** * @@ -464,7 +464,7 @@ public class PageWindowManager implement * maximum page size. After this size is exceeded, the pages will be saved starting * at the beginning of file */ - public PageWindowManager(int maxSize) + public PageWindowManager(long maxSize) { this.maxSize = maxSize; } Modified: wicket/trunk/wicket-core/src/main/java/org/apache/wicket/settings/IStoreSettings.java URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/settings/IStoreSettings.java?rev=1128302&r1=1128301&r2=1128302&view=diff ============================================================================== --- wicket/trunk/wicket-core/src/main/java/org/apache/wicket/settings/IStoreSettings.java (original) +++ wicket/trunk/wicket-core/src/main/java/org/apache/wicket/settings/IStoreSettings.java Fri May 27 13:40:20 2011 @@ -22,6 +22,7 @@ import org.apache.wicket.page.IPageManag import org.apache.wicket.pageStore.DiskDataStore; import org.apache.wicket.pageStore.IDataStore; import org.apache.wicket.pageStore.IPageStore; +import org.apache.wicket.util.lang.Bytes; /** * An interface for settings related to the the storages where page instances are persisted - @@ -62,7 +63,7 @@ public interface IStoreSettings * @return maximum page size. After this size is exceeded, the {@link DiskDataStore} will start * saving the pages at the beginning of file. */ - int getMaxSizePerSession(); + Bytes getMaxSizePerSession(); /** * Sets the maximum size of the {@link File} where page instances per session are stored. After @@ -73,7 +74,7 @@ public interface IStoreSettings * the maximum size of the file where page instances are stored per session. In * bytes. */ - void setMaxSizePerSession(int maxSizePerSession); + void setMaxSizePerSession(Bytes maxSizePerSession); /** * @return the location of the folder where {@link DiskDataStore} will store the files with page Modified: wicket/trunk/wicket-core/src/main/java/org/apache/wicket/settings/def/StoreSettings.java URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/settings/def/StoreSettings.java?rev=1128302&r1=1128301&r2=1128302&view=diff ============================================================================== --- wicket/trunk/wicket-core/src/main/java/org/apache/wicket/settings/def/StoreSettings.java (original) +++ wicket/trunk/wicket-core/src/main/java/org/apache/wicket/settings/def/StoreSettings.java Fri May 27 13:40:20 2011 @@ -24,6 +24,7 @@ import org.apache.wicket.WicketRuntimeEx import org.apache.wicket.protocol.http.WebApplication; import org.apache.wicket.settings.IStoreSettings; import org.apache.wicket.util.lang.Args; +import org.apache.wicket.util.lang.Bytes; /** * The implementation of {@link IStoreSettings} @@ -34,13 +35,13 @@ public class StoreSettings implements IS private static final int DEFAULT_FILE_CHANNEL_POOL_CAPACITY = 50; - private static final int DEFAULT_MAX_SIZE_PER_SESSION = 1000000; + private static final Bytes DEFAULT_MAX_SIZE_PER_SESSION = Bytes.megabytes(10); private int fileChannelPoolCapacity = DEFAULT_FILE_CHANNEL_POOL_CAPACITY; private int inmemoryCacheSize = DEFAULT_CACHE_SIZE; - private int maxSizePerSession = DEFAULT_MAX_SIZE_PER_SESSION; + private Bytes maxSizePerSession = DEFAULT_MAX_SIZE_PER_SESSION; private File fileStoreFolder = null; @@ -78,14 +79,14 @@ public class StoreSettings implements IS this.inmemoryCacheSize = inmemoryCacheSize; } - public int getMaxSizePerSession() + public Bytes getMaxSizePerSession() { return maxSizePerSession; } - public void setMaxSizePerSession(int maxSizePerSession) + public void setMaxSizePerSession(final Bytes maxSizePerSession) { - this.maxSizePerSession = maxSizePerSession; + this.maxSizePerSession = Args.notNull(maxSizePerSession, "maxSizePerSession"); } public File getFileStoreFolder() Modified: wicket/trunk/wicket-core/src/test/java/org/apache/wicket/page/persistent/disk/DiskDataStoreTest.java URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/test/java/org/apache/wicket/page/persistent/disk/DiskDataStoreTest.java?rev=1128302&r1=1128301&r2=1128302&view=diff ============================================================================== --- wicket/trunk/wicket-core/src/test/java/org/apache/wicket/page/persistent/disk/DiskDataStoreTest.java (original) +++ wicket/trunk/wicket-core/src/test/java/org/apache/wicket/page/persistent/disk/DiskDataStoreTest.java Fri May 27 13:40:20 2011 @@ -34,6 +34,7 @@ import org.apache.wicket.pageStore.IData import org.apache.wicket.settings.IStoreSettings; import org.apache.wicket.settings.def.StoreSettings; import org.apache.wicket.util.lang.Args; +import org.apache.wicket.util.lang.Bytes; /** */ @@ -51,7 +52,7 @@ public class DiskDataStoreTest extends T private static final Random random = new Random(); private static final int FILE_SIZE_MIN = 1024 * 200; private static final int FILE_SIZE_MAX = 1024 * 300; - private static final int MAX_SIZE_PER_SESSION = 1000000; + private static final Bytes MAX_SIZE_PER_SESSION = Bytes.bytes(1000000); private static final int FILE_CHANNEL_POOL_CAPACITY = 100; private static final int SESSION_COUNT = 50; private static final int FILES_COUNT = 1000;