You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by mg...@apache.org on 2017/04/12 21:28:29 UTC

[04/10] wicket git commit: provide can-be flag for asynchronous wrapping to page store and logic into default page manager provider

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 <ma...@Manuels-MacBook-Pro.local>
Authored: Thu Mar 16 13:27:16 2017 +0100
Committer: Manuel Barzi <ma...@Manuels-MacBook-Pro.local>
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;
+		}
 	}
 
 }