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;


Reply via email to