Author: mgrigorov
Date: Fri Nov 18 10:32:37 2011
New Revision: 1203573

URL: http://svn.apache.org/viewvc?rev=1203573&view=rev
Log:
WICKET-4179 Add IDataStore#canBeAsynchronous() so that 
DefaultPageManagerProvider can determine whether to wrap it in 
AsynchronousDataStore


Modified:
    
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/DefaultPageManagerProvider.java
    
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/pageStore/AsynchronousDataStore.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/IDataStore.java
    
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/pageStore/memory/HttpSessionDataStore.java
    
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/versioning/InMemoryPageStore.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=1203573&r1=1203572&r2=1203573&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 Nov 18 10:32:37 2011
@@ -55,9 +55,7 @@ public class DefaultPageManagerProvider 
 
                IStoreSettings storeSettings = getStoreSettings();
 
-               // TODO Wicket.next: add IDataStore#canWorkAsynchronous() and 
replace the instanceof check
-               // below
-               if (storeSettings.isAsynchronous() && dataStore instanceof 
DiskDataStore)
+               if (dataStore.canBeAsynchronous())
                {
                        int capacity = 
storeSettings.getAsynchronousQueueCapacity();
                        dataStore = new AsynchronousDataStore(dataStore, 
capacity);

Modified: 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/pageStore/AsynchronousDataStore.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/pageStore/AsynchronousDataStore.java?rev=1203573&r1=1203572&r2=1203573&view=diff
==============================================================================
--- 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/pageStore/AsynchronousDataStore.java
 (original)
+++ 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/pageStore/AsynchronousDataStore.java
 Fri Nov 18 10:32:37 2011
@@ -371,4 +371,11 @@ public class AsynchronousDataStore imple
                        }
                }
        }
+
+       @Override
+       public final boolean canBeAsynchronous()
+       {
+               // should not wrap in abother AsynchronousDataStore
+               return false;
+       }
 }
\ No newline at end of file

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=1203573&r1=1203572&r2=1203573&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 Nov 18 10:32:37 2011
@@ -508,4 +508,9 @@ public class DiskDataStore implements ID
                return sessionFolder;
        }
 
+       @Override
+       public boolean canBeAsynchronous()
+       {
+               return true;
+       }
 }

Modified: 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/pageStore/IDataStore.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/pageStore/IDataStore.java?rev=1203573&r1=1203572&r2=1203573&view=diff
==============================================================================
--- 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/pageStore/IDataStore.java
 (original)
+++ 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/pageStore/IDataStore.java
 Fri Nov 18 10:32:37 2011
@@ -75,4 +75,9 @@ public interface IDataStore
         * @return whether the data store is replicated
         */
        boolean isReplicated();
+
+       /**
+        * @return whether the implementation can be wrapped in {@link 
AsynchronousDataStore}
+        */
+       boolean canBeAsynchronous();
 }

Modified: 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/pageStore/memory/HttpSessionDataStore.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/pageStore/memory/HttpSessionDataStore.java?rev=1203573&r1=1203572&r2=1203573&view=diff
==============================================================================
--- 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/pageStore/memory/HttpSessionDataStore.java
 (original)
+++ 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/pageStore/memory/HttpSessionDataStore.java
 Fri Nov 18 10:32:37 2011
@@ -153,4 +153,12 @@ public class HttpSessionDataStore implem
                return pageTable;
        }
 
+       @Override
+       public final boolean canBeAsynchronous()
+       {
+               // HttpSessionDataStore needs access to the current http session
+               // and this is not possible in AsychronousDataStore
+               return false;
+       }
+
 }

Modified: 
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/versioning/InMemoryPageStore.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/test/java/org/apache/wicket/versioning/InMemoryPageStore.java?rev=1203573&r1=1203572&r2=1203573&view=diff
==============================================================================
--- 
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/versioning/InMemoryPageStore.java
 (original)
+++ 
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/versioning/InMemoryPageStore.java
 Fri Nov 18 10:32:37 2011
@@ -113,4 +113,10 @@ public class InMemoryPageStore implement
                return false;
        }
 
+       @Override
+       public boolean canBeAsynchronous()
+       {
+               return false;
+       }
+
 }
\ No newline at end of file


Reply via email to