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; + } } }
