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 2015/07/07 22:02:24 UTC
[1/2] wicket git commit: Revert "WICKET-5933 Avoid serialization of
untouched page after ajax request"
Repository: wicket
Updated Branches:
refs/heads/wicket-6.x 44ba0655d -> 9d3414dec
Revert "WICKET-5933 Avoid serialization of untouched page after ajax request"
This reverts commit e68e46a56d04f13c12f70f69db70159dffd8a118.
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/64d57664
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/64d57664
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/64d57664
Branch: refs/heads/wicket-6.x
Commit: 64d5766421db5f9e423b863b62ee322ddf395cde
Parents: 44ba065
Author: Martin Tzvetanov Grigorov <mg...@apache.org>
Authored: Tue Jul 7 23:01:02 2015 +0300
Committer: Martin Tzvetanov Grigorov <mg...@apache.org>
Committed: Tue Jul 7 23:01:02 2015 +0300
----------------------------------------------------------------------
.../src/main/java/org/apache/wicket/Page.java | 7 ++-----
.../org/apache/wicket/markup/html/WebPage.java | 18 +++++++-----------
.../apache/wicket/page/AbstractPageManager.java | 7 ++++++-
3 files changed, 15 insertions(+), 17 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/wicket/blob/64d57664/wicket-core/src/main/java/org/apache/wicket/Page.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/Page.java b/wicket-core/src/main/java/org/apache/wicket/Page.java
index 8963278..6557684 100644
--- a/wicket-core/src/main/java/org/apache/wicket/Page.java
+++ b/wicket-core/src/main/java/org/apache/wicket/Page.java
@@ -282,7 +282,7 @@ public abstract class Page extends MarkupContainer implements IRedirectListener,
isInitialization))
{
setFlag(FLAG_IS_DIRTY, true);
- setNextAvailableId(isInitialization);
+ setNextAvailableId();
if (isInitialization == false)
{
@@ -729,12 +729,9 @@ public abstract class Page extends MarkupContainer implements IRedirectListener,
}
/**
- * Increments the version id of the page
*
- * @param isInitialization
- * tells if the page has been newly instantiated
*/
- protected void setNextAvailableId(boolean isInitialization)
+ private void setNextAvailableId()
{
setNumericId(getSession().nextPageId());
}
http://git-wip-us.apache.org/repos/asf/wicket/blob/64d57664/wicket-core/src/main/java/org/apache/wicket/markup/html/WebPage.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/WebPage.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/WebPage.java
index 6456249..5519920 100644
--- a/wicket-core/src/main/java/org/apache/wicket/markup/html/WebPage.java
+++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/WebPage.java
@@ -18,7 +18,6 @@ package org.apache.wicket.markup.html;
import org.apache.wicket.Component;
import org.apache.wicket.Page;
-import org.apache.wicket.core.request.handler.IPageRequestHandler;
import org.apache.wicket.markup.MarkupType;
import org.apache.wicket.markup.head.IHeaderResponse;
import org.apache.wicket.markup.html.internal.HtmlHeaderContainer;
@@ -31,6 +30,7 @@ import org.apache.wicket.request.IRequestHandler;
import org.apache.wicket.request.Request;
import org.apache.wicket.request.Response;
import org.apache.wicket.request.cycle.RequestCycle;
+import org.apache.wicket.core.request.handler.IPageRequestHandler;
import org.apache.wicket.request.http.WebRequest;
import org.apache.wicket.request.http.WebResponse;
import org.apache.wicket.request.mapper.parameter.PageParameters;
@@ -324,23 +324,19 @@ public class WebPage extends Page
{
return new BookmarkablePageLink<Void>(id, getApplication().getHomePage());
}
-
+
/**
- * THIS METHOD IS NOT PART OF THE WICKET PUBLIC API. DO NOT CALL OR OVERRIDE.
- *
- * Don't increment page version during AJAX requests.
- * Do it only if page is new.
+ * Prevents page from get dirty inside an AJAX request.
*/
@Override
- protected final void setNextAvailableId(boolean isInitialization)
+ public final void dirty(boolean isInitialization)
{
Request request = getRequest();
- if (request instanceof WebRequest && ((WebRequest)request).isAjax()
- && !isInitialization)
+ if (isInitialization == false && request instanceof WebRequest &&
+ ((WebRequest)request).isAjax())
{
return;
}
-
- super.setNextAvailableId(isInitialization);
+ super.dirty(isInitialization);
}
}
http://git-wip-us.apache.org/repos/asf/wicket/blob/64d57664/wicket-core/src/main/java/org/apache/wicket/page/AbstractPageManager.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/page/AbstractPageManager.java b/wicket-core/src/main/java/org/apache/wicket/page/AbstractPageManager.java
index 3eda06c..da259e4 100644
--- a/wicket-core/src/main/java/org/apache/wicket/page/AbstractPageManager.java
+++ b/wicket-core/src/main/java/org/apache/wicket/page/AbstractPageManager.java
@@ -104,7 +104,12 @@ public abstract class AbstractPageManager implements IPageManager
@Override
public IManageablePage getPage(int id)
{
- return getRequestAdapter().getPage(id);
+ IManageablePage page = getRequestAdapter().getPage(id);
+ if (page != null)
+ {
+ getRequestAdapter().touch(page);
+ }
+ return page;
}
/**
[2/2] wicket git commit: WICKET-5933 Avoid serialization of untouched
page after ajax request
Posted by mg...@apache.org.
WICKET-5933 Avoid serialization of untouched page after ajax request
(cherry picked from commit 37c5904e9693b56485237a455d1a6f0c383ab4e3)
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/9d3414de
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/9d3414de
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/9d3414de
Branch: refs/heads/wicket-6.x
Commit: 9d3414dec9fca4eb6c15f4893bf33eb05c923a5a
Parents: 64d5766
Author: Martin Tzvetanov Grigorov <mg...@apache.org>
Authored: Tue Jul 7 22:49:55 2015 +0300
Committer: Martin Tzvetanov Grigorov <mg...@apache.org>
Committed: Tue Jul 7 23:02:00 2015 +0300
----------------------------------------------------------------------
.../org/apache/wicket/mock/MockPageManager.java | 6 +++++
.../apache/wicket/page/AbstractPageManager.java | 6 +++++
.../org/apache/wicket/page/IPageManager.java | 11 +++++++++
.../wicket/page/PageManagerDecorator.java | 6 +++++
.../org/apache/wicket/page/RequestAdapter.java | 25 ++++++++++++++++++--
5 files changed, 52 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/wicket/blob/9d3414de/wicket-core/src/main/java/org/apache/wicket/mock/MockPageManager.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/mock/MockPageManager.java b/wicket-core/src/main/java/org/apache/wicket/mock/MockPageManager.java
index 19804fc..f2ee59d 100644
--- a/wicket-core/src/main/java/org/apache/wicket/mock/MockPageManager.java
+++ b/wicket-core/src/main/java/org/apache/wicket/mock/MockPageManager.java
@@ -91,6 +91,12 @@ public class MockPageManager implements IPageManager
}
}
+ @Override
+ public void untouchPage(IManageablePage page)
+ {
+ pages.remove(page.getPageId());
+ }
+
/**
* @see org.apache.wicket.page.IPageManager#getContext()
*/
http://git-wip-us.apache.org/repos/asf/wicket/blob/9d3414de/wicket-core/src/main/java/org/apache/wicket/page/AbstractPageManager.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/page/AbstractPageManager.java b/wicket-core/src/main/java/org/apache/wicket/page/AbstractPageManager.java
index da259e4..d39de39 100644
--- a/wicket-core/src/main/java/org/apache/wicket/page/AbstractPageManager.java
+++ b/wicket-core/src/main/java/org/apache/wicket/page/AbstractPageManager.java
@@ -129,4 +129,10 @@ public abstract class AbstractPageManager implements IPageManager
{
getRequestAdapter().touch(page);
}
+
+ @Override
+ public void untouchPage(IManageablePage page)
+ {
+ getRequestAdapter().touch(page);
+ }
}
http://git-wip-us.apache.org/repos/asf/wicket/blob/9d3414de/wicket-core/src/main/java/org/apache/wicket/page/IPageManager.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/page/IPageManager.java b/wicket-core/src/main/java/org/apache/wicket/page/IPageManager.java
index b7817f9..7272abb 100644
--- a/wicket-core/src/main/java/org/apache/wicket/page/IPageManager.java
+++ b/wicket-core/src/main/java/org/apache/wicket/page/IPageManager.java
@@ -53,6 +53,17 @@ public interface IPageManager
public void touchPage(IManageablePage page) throws CouldNotLockPageException;
/**
+ * Marks page as non-changed.
+ * Could be used in Ajax requests to avoid storing the page if no changes have happened.
+ *
+ * @param page
+ * the page that should <strong>not</strong> be stored in the page stores at the end of the request.
+ * @throws CouldNotLockPageException if the page is already locked by another thread
+ * and the lock cannot be acquired for some timeout
+ */
+ void untouchPage(IManageablePage page);
+
+ /**
* Returns whether this manager supports versioning. Managers that support versioning must store
* page snapshots.
*
http://git-wip-us.apache.org/repos/asf/wicket/blob/9d3414de/wicket-core/src/main/java/org/apache/wicket/page/PageManagerDecorator.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/page/PageManagerDecorator.java b/wicket-core/src/main/java/org/apache/wicket/page/PageManagerDecorator.java
index 63bd379..49e36aa 100644
--- a/wicket-core/src/main/java/org/apache/wicket/page/PageManagerDecorator.java
+++ b/wicket-core/src/main/java/org/apache/wicket/page/PageManagerDecorator.java
@@ -61,6 +61,12 @@ public class PageManagerDecorator implements IPageManager
/** {@inheritDoc} */
@Override
+ public void untouchPage(IManageablePage page)
+ {
+ delegate.untouchPage(page);
+ }
+
+ @Override
public boolean supportsVersioning()
{
return delegate.supportsVersioning();
http://git-wip-us.apache.org/repos/asf/wicket/blob/9d3414de/wicket-core/src/main/java/org/apache/wicket/page/RequestAdapter.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/page/RequestAdapter.java b/wicket-core/src/main/java/org/apache/wicket/page/RequestAdapter.java
index 23b1d30..b7c3136 100644
--- a/wicket-core/src/main/java/org/apache/wicket/page/RequestAdapter.java
+++ b/wicket-core/src/main/java/org/apache/wicket/page/RequestAdapter.java
@@ -18,6 +18,7 @@ package org.apache.wicket.page;
import java.io.Serializable;
import java.util.ArrayList;
+import java.util.Iterator;
import java.util.List;
import org.slf4j.Logger;
@@ -128,8 +129,10 @@ public abstract class RequestAdapter
}
/**
- *
- * @param page
+ * Touches a page, so it will be stored in the page stores
+ * at the end of the request cycle
+ *
+ * @param page The page to mark as dirty
*/
protected void touch(final IManageablePage page)
{
@@ -140,6 +143,24 @@ public abstract class RequestAdapter
}
/**
+ * @param page The page to unmark as dirty, so it won't be stored
+ * at the end of the request cycle
+ */
+ protected void untouch(final IManageablePage page)
+ {
+ Iterator<IManageablePage> iterator = touchedPages.iterator();
+ while (iterator.hasNext())
+ {
+ IManageablePage touchedPage = iterator.next();
+ if (touchedPage.getPageId() == page.getPageId())
+ {
+ iterator.remove();
+ break;
+ }
+ }
+ }
+
+ /**
*
*/
protected void commitRequest()