You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by pa...@apache.org on 2013/11/21 08:21:51 UTC
git commit: better implementation for NONBOOKMARKABLE and made it
default again
Updated Branches:
refs/heads/wicket-cdi-1.1-rewrite ecf2c9fe2 -> df4b33636
better implementation for NONBOOKMARKABLE and made it default again
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/df4b3363
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/df4b3363
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/df4b3363
Branch: refs/heads/wicket-cdi-1.1-rewrite
Commit: df4b33636dda5bfb7afdb51f3613d586131402ca
Parents: ecf2c9f
Author: Emond Papegaaij <em...@topicus.nl>
Authored: Thu Nov 21 08:21:33 2013 +0100
Committer: Emond Papegaaij <em...@topicus.nl>
Committed: Thu Nov 21 08:21:33 2013 +0100
----------------------------------------------------------------------
.../wicket/cdi/ConversationPropagation.java | 17 +++++------------
.../wicket/cdi/ConversationPropagator.java | 6 +++---
.../wicket/cdi/IConversationPropagation.java | 20 ++++++++++++++------
.../wicket/cdi/util/tester/CdiWicketTester.java | 4 ++--
4 files changed, 24 insertions(+), 23 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/wicket/blob/df4b3363/wicket-experimental/wicket-cdi-1.1/src/main/java/org/apache/wicket/cdi/ConversationPropagation.java
----------------------------------------------------------------------
diff --git a/wicket-experimental/wicket-cdi-1.1/src/main/java/org/apache/wicket/cdi/ConversationPropagation.java b/wicket-experimental/wicket-cdi-1.1/src/main/java/org/apache/wicket/cdi/ConversationPropagation.java
index 502b6e5..3c1eb89 100644
--- a/wicket-experimental/wicket-cdi-1.1/src/main/java/org/apache/wicket/cdi/ConversationPropagation.java
+++ b/wicket-experimental/wicket-cdi-1.1/src/main/java/org/apache/wicket/cdi/ConversationPropagation.java
@@ -18,8 +18,7 @@ package org.apache.wicket.cdi;
import javax.enterprise.context.ConversationScoped;
-import org.apache.wicket.core.request.handler.BookmarkableListenerInterfaceRequestHandler;
-import org.apache.wicket.core.request.handler.BookmarkablePageRequestHandler;
+import org.apache.wicket.Page;
import org.apache.wicket.request.IRequestHandler;
/**
@@ -33,7 +32,7 @@ public enum ConversationPropagation implements IConversationPropagation {
/** No conversational propagation takes place */
NONE {
@Override
- public boolean propagatesViaParameters(IRequestHandler handler)
+ public boolean propagatesVia(IRequestHandler handler, Page page)
{
return false;
}
@@ -41,18 +40,12 @@ public enum ConversationPropagation implements IConversationPropagation {
/**
* Pesistent conversations are propagated between non-bookmarkable pages
* only
- *
- * @deprecated as of cdi-1.1, it is specified that conversations are
- * propagated via the cid query parameter even for
- * non-bookmarkable pages
*/
- @Deprecated
NONBOOKMARKABLE {
@Override
- public boolean propagatesViaParameters(IRequestHandler handler)
+ public boolean propagatesVia(IRequestHandler handler, Page page)
{
- return !(handler instanceof BookmarkableListenerInterfaceRequestHandler)
- && !(handler instanceof BookmarkablePageRequestHandler);
+ return page != null;
}
},
/**
@@ -61,7 +54,7 @@ public enum ConversationPropagation implements IConversationPropagation {
*/
ALL {
@Override
- public boolean propagatesViaParameters(IRequestHandler handler)
+ public boolean propagatesVia(IRequestHandler handler, Page page)
{
return true;
}
http://git-wip-us.apache.org/repos/asf/wicket/blob/df4b3363/wicket-experimental/wicket-cdi-1.1/src/main/java/org/apache/wicket/cdi/ConversationPropagator.java
----------------------------------------------------------------------
diff --git a/wicket-experimental/wicket-cdi-1.1/src/main/java/org/apache/wicket/cdi/ConversationPropagator.java b/wicket-experimental/wicket-cdi-1.1/src/main/java/org/apache/wicket/cdi/ConversationPropagator.java
index 690710b..9af8156 100644
--- a/wicket-experimental/wicket-cdi-1.1/src/main/java/org/apache/wicket/cdi/ConversationPropagator.java
+++ b/wicket-experimental/wicket-cdi-1.1/src/main/java/org/apache/wicket/cdi/ConversationPropagator.java
@@ -154,7 +154,7 @@ public class ConversationPropagator extends AbstractRequestCycleListener
return;
}
- if (propagation.propagatesViaParameters(handler))
+ if (propagation.propagatesVia(handler, getPage(handler)))
{
logger.debug(
"Propagating non-transient conversation {} via page parameters of handler {}",
@@ -188,7 +188,7 @@ public class ConversationPropagator extends AbstractRequestCycleListener
return;
}
- if (propagation.propagatesViaParameters(handler))
+ if (propagation.propagatesVia(handler, getPage(handler)))
{
logger.debug("Propagating non-transient conversation {} via url", conversation.getId());
url.setQueryParameter(CID, conversation.getId());
@@ -241,7 +241,7 @@ public class ConversationPropagator extends AbstractRequestCycleListener
Conversation conversation)
{
if (conversation == null || !conversation.isTransient() || page == null
- || !hasConversationalComponent(page))
+ || !hasConversationalComponent(page) || !propagation.propagatesVia(handler, page))
{
return;
}
http://git-wip-us.apache.org/repos/asf/wicket/blob/df4b3363/wicket-experimental/wicket-cdi-1.1/src/main/java/org/apache/wicket/cdi/IConversationPropagation.java
----------------------------------------------------------------------
diff --git a/wicket-experimental/wicket-cdi-1.1/src/main/java/org/apache/wicket/cdi/IConversationPropagation.java b/wicket-experimental/wicket-cdi-1.1/src/main/java/org/apache/wicket/cdi/IConversationPropagation.java
index 09e39a9..f5dcb16 100644
--- a/wicket-experimental/wicket-cdi-1.1/src/main/java/org/apache/wicket/cdi/IConversationPropagation.java
+++ b/wicket-experimental/wicket-cdi-1.1/src/main/java/org/apache/wicket/cdi/IConversationPropagation.java
@@ -16,23 +16,31 @@
*/
package org.apache.wicket.cdi;
+import org.apache.wicket.Page;
+import org.apache.wicket.core.request.handler.IPageRequestHandler;
import org.apache.wicket.request.IRequestHandler;
/**
- * A strategy that specifies how conversations should be propagated between pages/resources.
- * {@link ConversationPropagation} provides sensible default implementations of this interface.
+ * A strategy that specifies how conversations should be propagated between
+ * pages/resources. {@link ConversationPropagation} provides sensible default
+ * implementations of this interface.
*
* @author papegaaij
*/
public interface IConversationPropagation
{
/**
- * Indicates if the conversation should be propagated via url-parameters for the given request
- * handler. This can either be a get parameter in a rendered url, or via page parameters.
+ * Indicates if the conversation should be propagated via url-parameters for
+ * the given request handler and page (if any). A conversation is always
+ * propagated via the cid query parameter.
*
* @param handler
* The current request handler
- * @return true if the conversation should be propagated for the given request handler.
+ * @param page
+ * The page associated with the request handler, or null if the
+ * handler is not an {@link IPageRequestHandler}.
+ * @return true if the conversation should be propagated for the given
+ * request handler.
*/
- public boolean propagatesViaParameters(IRequestHandler handler);
+ public boolean propagatesVia(IRequestHandler handler, Page page);
}
http://git-wip-us.apache.org/repos/asf/wicket/blob/df4b3363/wicket-experimental/wicket-cdi-1.1/src/test/java/org/apache/wicket/cdi/util/tester/CdiWicketTester.java
----------------------------------------------------------------------
diff --git a/wicket-experimental/wicket-cdi-1.1/src/test/java/org/apache/wicket/cdi/util/tester/CdiWicketTester.java b/wicket-experimental/wicket-cdi-1.1/src/test/java/org/apache/wicket/cdi/util/tester/CdiWicketTester.java
index 8efd59b..b5d4eb7 100644
--- a/wicket-experimental/wicket-cdi-1.1/src/test/java/org/apache/wicket/cdi/util/tester/CdiWicketTester.java
+++ b/wicket-experimental/wicket-cdi-1.1/src/test/java/org/apache/wicket/cdi/util/tester/CdiWicketTester.java
@@ -90,9 +90,9 @@ public class CdiWicketTester extends WicketTester
{
Url ret = super.urlFor(handler);
final CdiConfiguration configuration = CdiConfiguration.get(getApplication());
- if (configuration.getPropagation().propagatesViaParameters(handler))
+ Page page = ConversationPropagator.getPage(handler);
+ if (configuration.getPropagation().propagatesVia(handler, page))
{
- Page page = ConversationPropagator.getPage(handler);
if (page != null)
{
String cid = ConversationPropagator.getConversationIdFromPage(page);