provide can-be flag for asynchronous wrapping to page store and logic into 
default page manager provider


Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/accf1873
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/accf1873
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/accf1873

Branch: refs/heads/master
Commit: accf1873197e759ec08db3e95e22fe2193f343ee
Parents: 6886c2b
Author: Manuel Barzi <[email protected]>
Authored: Thu Mar 16 13:27:16 2017 +0100
Committer: Manuel Barzi <[email protected]>
Committed: Thu Mar 16 13:27:16 2017 +0100

----------------------------------------------------------------------
 .../java/org/apache/wicket/DefaultPageManagerProvider.java   | 8 ++++++++
 .../org/apache/wicket/pageStore/AsynchronousPageStore.java   | 6 ++++++
 .../java/org/apache/wicket/pageStore/DefaultPageStore.java   | 6 ++++++
 .../main/java/org/apache/wicket/pageStore/IPageStore.java    | 5 +++++
 .../org/apache/wicket/pageStore/PerSessionPageStore.java     | 7 +++++++
 .../apache/wicket/pageStore/AsynchronousPageStoreTest.java   | 6 ++++++
 6 files changed, 38 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/wicket/blob/accf1873/wicket-core/src/main/java/org/apache/wicket/DefaultPageManagerProvider.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/main/java/org/apache/wicket/DefaultPageManagerProvider.java 
b/wicket-core/src/main/java/org/apache/wicket/DefaultPageManagerProvider.java
index c997648..14387a4 100644
--- 
a/wicket-core/src/main/java/org/apache/wicket/DefaultPageManagerProvider.java
+++ 
b/wicket-core/src/main/java/org/apache/wicket/DefaultPageManagerProvider.java
@@ -22,6 +22,7 @@ import org.apache.wicket.page.IPageManager;
 import org.apache.wicket.page.IPageManagerContext;
 import org.apache.wicket.page.PageStoreManager;
 import org.apache.wicket.pageStore.AsynchronousDataStore;
+import org.apache.wicket.pageStore.AsynchronousPageStore;
 import org.apache.wicket.pageStore.DefaultPageStore;
 import org.apache.wicket.pageStore.DiskDataStore;
 import org.apache.wicket.pageStore.IDataStore;
@@ -64,6 +65,13 @@ public class DefaultPageManagerProvider implements 
IPageManagerProvider
                }
 
                IPageStore pageStore = newPageStore(dataStore);
+               
+               if (pageStore.canBeAsynchronous())
+               {
+                       int capacity = 
storeSettings.getAsynchronousQueueCapacity();
+                       pageStore = new AsynchronousPageStore(pageStore, 
capacity);
+               }
+               
                return new PageStoreManager(application.getName(), pageStore, 
pageManagerContext);
 
        }

http://git-wip-us.apache.org/repos/asf/wicket/blob/accf1873/wicket-core/src/main/java/org/apache/wicket/pageStore/AsynchronousPageStore.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/main/java/org/apache/wicket/pageStore/AsynchronousPageStore.java
 
b/wicket-core/src/main/java/org/apache/wicket/pageStore/AsynchronousPageStore.java
index 087257c..3c77df6 100644
--- 
a/wicket-core/src/main/java/org/apache/wicket/pageStore/AsynchronousPageStore.java
+++ 
b/wicket-core/src/main/java/org/apache/wicket/pageStore/AsynchronousPageStore.java
@@ -355,4 +355,10 @@ public class AsynchronousPageStore implements IPageStore
                return pageStore.convertToPage(page);
        }
 
+       @Override
+       public boolean canBeAsynchronous()
+       {
+               return false;
+       }
+
 }

http://git-wip-us.apache.org/repos/asf/wicket/blob/accf1873/wicket-core/src/main/java/org/apache/wicket/pageStore/DefaultPageStore.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/main/java/org/apache/wicket/pageStore/DefaultPageStore.java 
b/wicket-core/src/main/java/org/apache/wicket/pageStore/DefaultPageStore.java
index e574f37..f324b85 100644
--- 
a/wicket-core/src/main/java/org/apache/wicket/pageStore/DefaultPageStore.java
+++ 
b/wicket-core/src/main/java/org/apache/wicket/pageStore/DefaultPageStore.java
@@ -460,4 +460,10 @@ public class DefaultPageStore extends 
AbstractCachingPageStore<DefaultPageStore.
                        cache.clear();
                }
        }
+
+       @Override
+       public boolean canBeAsynchronous()
+       {
+               return true;
+       }
 }

http://git-wip-us.apache.org/repos/asf/wicket/blob/accf1873/wicket-core/src/main/java/org/apache/wicket/pageStore/IPageStore.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/main/java/org/apache/wicket/pageStore/IPageStore.java 
b/wicket-core/src/main/java/org/apache/wicket/pageStore/IPageStore.java
index 470536a..ed1b9d3 100644
--- a/wicket-core/src/main/java/org/apache/wicket/pageStore/IPageStore.java
+++ b/wicket-core/src/main/java/org/apache/wicket/pageStore/IPageStore.java
@@ -103,4 +103,9 @@ public interface IPageStore
         * @return page
         */
        IManageablePage convertToPage(Object page);
+       
+       /**
+        * @return whether the implementation can be wrapped in {@link 
AsynchronousPageStore}
+        */
+       boolean canBeAsynchronous();
 }

http://git-wip-us.apache.org/repos/asf/wicket/blob/accf1873/wicket-core/src/main/java/org/apache/wicket/pageStore/PerSessionPageStore.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/main/java/org/apache/wicket/pageStore/PerSessionPageStore.java
 
b/wicket-core/src/main/java/org/apache/wicket/pageStore/PerSessionPageStore.java
index 912171c..abef0c9 100644
--- 
a/wicket-core/src/main/java/org/apache/wicket/pageStore/PerSessionPageStore.java
+++ 
b/wicket-core/src/main/java/org/apache/wicket/pageStore/PerSessionPageStore.java
@@ -323,4 +323,11 @@ public class PerSessionPageStore extends 
AbstractCachingPageStore<IManageablePag
                        cache.clear();
                }
        }
+       
+
+       @Override
+       public boolean canBeAsynchronous()
+       {
+               return false; // NOTE: not analyzed neither tested yet, this 
page store being wrapped by asynchronous one
+       }
 }

http://git-wip-us.apache.org/repos/asf/wicket/blob/accf1873/wicket-core/src/test/java/org/apache/wicket/pageStore/AsynchronousPageStoreTest.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/test/java/org/apache/wicket/pageStore/AsynchronousPageStoreTest.java
 
b/wicket-core/src/test/java/org/apache/wicket/pageStore/AsynchronousPageStoreTest.java
index 53da7d6..2a0acf9 100644
--- 
a/wicket-core/src/test/java/org/apache/wicket/pageStore/AsynchronousPageStoreTest.java
+++ 
b/wicket-core/src/test/java/org/apache/wicket/pageStore/AsynchronousPageStoreTest.java
@@ -493,6 +493,12 @@ public class AsynchronousPageStoreTest
                {
                        return null;
                }
+
+               @Override
+               public boolean canBeAsynchronous()
+               {
+                       return true;
+               }
        }
 
 }

Reply via email to