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 2012/07/25 13:34:18 UTC
git commit: WICKET-4672 Do not render pageId for the action links for
stateless pages
Updated Branches:
refs/heads/wicket-1.5.x 7d8c109e0 -> bcb535a0a
WICKET-4672 Do not render pageId for the action links for stateless pages
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/bcb535a0
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/bcb535a0
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/bcb535a0
Branch: refs/heads/wicket-1.5.x
Commit: bcb535a0af101150acc1ce0450cfbc44c4035bde
Parents: 7d8c109
Author: Martin Tzvetanov Grigorov <mg...@apache.org>
Authored: Wed Jul 25 14:23:45 2012 +0300
Committer: Martin Tzvetanov Grigorov <mg...@apache.org>
Committed: Wed Jul 25 14:33:08 2012 +0300
----------------------------------------------------------------------
.../request/handler/PageAndComponentProvider.java | 14 +++---
.../wicket/request/handler/PageProvider.java | 6 +-
.../request/mapper/AbstractBookmarkableMapper.java | 37 +++++++++++----
.../request/mapper/AbstractComponentMapper.java | 1 +
.../wicket/request/mapper/MountedMapper.java | 2 +-
.../html/form/FormParentDisabledRawInputTest.java | 4 +-
...mponentPageWithParams_indexed_mount_result.html | 2 +-
...telessComponentPageWithParams_mount_result.html | 2 +-
.../StatelessComponentPageWithParams_result.html | 2 +-
.../StatelessComponentPage_mount_result.html | 2 +-
.../stateless/StatelessComponentPage_result.html | 2 +-
.../stateless/StatelessPageWithForm_expected.html | 2 +-
12 files changed, 48 insertions(+), 28 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/wicket/blob/bcb535a0/wicket-core/src/main/java/org/apache/wicket/request/handler/PageAndComponentProvider.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/request/handler/PageAndComponentProvider.java b/wicket-core/src/main/java/org/apache/wicket/request/handler/PageAndComponentProvider.java
index 2424ba1..0fe9e3a 100644
--- a/wicket-core/src/main/java/org/apache/wicket/request/handler/PageAndComponentProvider.java
+++ b/wicket-core/src/main/java/org/apache/wicket/request/handler/PageAndComponentProvider.java
@@ -91,14 +91,14 @@ public class PageAndComponentProvider extends PageProvider implements IPageAndCo
}
/**
- * @see PageProvider#PageProvider(int, Class, Integer)
+ * @see PageProvider#PageProvider(Integer, Class, Integer)
*
* @param pageId
* @param pageClass
* @param renderCount
* @param componentPath
*/
- public PageAndComponentProvider(int pageId, Class<? extends IRequestablePage> pageClass,
+ public PageAndComponentProvider(Integer pageId, Class<? extends IRequestablePage> pageClass,
Integer renderCount, String componentPath)
{
super(pageId, pageClass, renderCount);
@@ -106,7 +106,7 @@ public class PageAndComponentProvider extends PageProvider implements IPageAndCo
}
/**
- * @see PageProvider#PageProvider(int, Class, PageParameters, Integer)
+ * @see PageProvider#PageProvider(Integer, Class, PageParameters, Integer)
*
* @param pageId
* @param pageClass
@@ -114,7 +114,7 @@ public class PageAndComponentProvider extends PageProvider implements IPageAndCo
* @param renderCount
* @param componentPath
*/
- public PageAndComponentProvider(int pageId, Class<? extends IRequestablePage> pageClass,
+ public PageAndComponentProvider(Integer pageId, Class<? extends IRequestablePage> pageClass,
PageParameters pageParameters, Integer renderCount, String componentPath)
{
super(pageId, pageClass, pageParameters, renderCount);
@@ -122,13 +122,13 @@ public class PageAndComponentProvider extends PageProvider implements IPageAndCo
}
/**
- * @see PageProvider#PageProvider(int, Integer)
- *
+ * @see PageProvider#PageProvider(Integer, Integer)
+ *
* @param pageId
* @param renderCount
* @param componentPath
*/
- public PageAndComponentProvider(int pageId, Integer renderCount, String componentPath)
+ public PageAndComponentProvider(Integer pageId, Integer renderCount, String componentPath)
{
super(pageId, renderCount);
setComponentPath(componentPath);
http://git-wip-us.apache.org/repos/asf/wicket/blob/bcb535a0/wicket-core/src/main/java/org/apache/wicket/request/handler/PageProvider.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/request/handler/PageProvider.java b/wicket-core/src/main/java/org/apache/wicket/request/handler/PageProvider.java
index a6ce874..2685bb7 100644
--- a/wicket-core/src/main/java/org/apache/wicket/request/handler/PageProvider.java
+++ b/wicket-core/src/main/java/org/apache/wicket/request/handler/PageProvider.java
@@ -68,7 +68,7 @@ public class PageProvider implements IPageProvider, IIntrospectablePageProvider
* @param renderCount
* optional argument
*/
- public PageProvider(final int pageId, final Integer renderCount)
+ public PageProvider(final Integer pageId, final Integer renderCount)
{
this.pageId = pageId;
this.renderCount = renderCount;
@@ -84,7 +84,7 @@ public class PageProvider implements IPageProvider, IIntrospectablePageProvider
* @param renderCount
* optional argument
*/
- public PageProvider(final int pageId, final Class<? extends IRequestablePage> pageClass,
+ public PageProvider(final Integer pageId, final Class<? extends IRequestablePage> pageClass,
Integer renderCount)
{
this(pageId, pageClass, new PageParameters(), renderCount);
@@ -101,7 +101,7 @@ public class PageProvider implements IPageProvider, IIntrospectablePageProvider
* @param renderCount
* optional argument
*/
- public PageProvider(final int pageId, final Class<? extends IRequestablePage> pageClass,
+ public PageProvider(final Integer pageId, final Class<? extends IRequestablePage> pageClass,
final PageParameters pageParameters, final Integer renderCount)
{
this.pageId = pageId;
http://git-wip-us.apache.org/repos/asf/wicket/blob/bcb535a0/wicket-core/src/main/java/org/apache/wicket/request/mapper/AbstractBookmarkableMapper.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/request/mapper/AbstractBookmarkableMapper.java b/wicket-core/src/main/java/org/apache/wicket/request/mapper/AbstractBookmarkableMapper.java
index 8637cba..9042158 100644
--- a/wicket-core/src/main/java/org/apache/wicket/request/mapper/AbstractBookmarkableMapper.java
+++ b/wicket-core/src/main/java/org/apache/wicket/request/mapper/AbstractBookmarkableMapper.java
@@ -25,6 +25,7 @@ import org.apache.wicket.request.Url;
import org.apache.wicket.request.component.IRequestablePage;
import org.apache.wicket.request.handler.BookmarkableListenerInterfaceRequestHandler;
import org.apache.wicket.request.handler.BookmarkablePageRequestHandler;
+import org.apache.wicket.request.handler.IPageRequestHandler;
import org.apache.wicket.request.handler.ListenerInterfaceRequestHandler;
import org.apache.wicket.request.handler.PageAndComponentProvider;
import org.apache.wicket.request.handler.PageProvider;
@@ -274,7 +275,7 @@ public abstract class AbstractBookmarkableMapper extends AbstractComponentMapper
Class<? extends IRequestablePage> pageClass = urlInfo.getPageClass();
PageParameters pageParameters = urlInfo.getPageParameters();
- if (info == null || info.getPageInfo().getPageId() == null)
+ if (info == null)
{
// if there are is no page instance information (only page map name - optionally)
// then this is a simple bookmarkable URL
@@ -292,6 +293,11 @@ public abstract class AbstractBookmarkableMapper extends AbstractComponentMapper
// with both page instance and component+listener this is a listener interface URL
return processListener(info, pageClass, pageParameters);
}
+ else if (info.getPageInfo().getPageId() == null)
+ {
+ return processBookmarkable(pageClass, pageParameters);
+ }
+
}
return null;
}
@@ -306,9 +312,6 @@ public abstract class AbstractBookmarkableMapper extends AbstractComponentMapper
return true;
}
- /**
- * {@inheritDoc}
- */
public Url mapHandler(IRequestHandler requestHandler)
{
// TODO see if we can refactor this to remove dependency on instanceof checks below and
@@ -361,11 +364,7 @@ public abstract class AbstractBookmarkableMapper extends AbstractComponentMapper
if (checkPageInstance(page) &&
(!pageMustHaveBeenCreatedBookmarkable() || page.wasCreatedBookmarkable()))
{
- PageInfo info = null;
- if (!page.isPageStateless())
- {
- info = new PageInfo(page.getPageId());
- }
+ PageInfo info = getPageInfo(handler);
PageComponentInfo pageComponentInfo = info != null ? new PageComponentInfo(info,
null) : null;
@@ -396,7 +395,7 @@ public abstract class AbstractBookmarkableMapper extends AbstractComponentMapper
renderCount = handler.getRenderCount();
}
- PageInfo pageInfo = new PageInfo(handler.getPageId());
+ PageInfo pageInfo = getPageInfo(handler);
ComponentInfo componentInfo = new ComponentInfo(renderCount,
requestListenerInterfaceToString(handler.getListenerInterface()),
handler.getComponentPath(), handler.getBehaviorIndex());
@@ -408,4 +407,22 @@ public abstract class AbstractBookmarkableMapper extends AbstractComponentMapper
return null;
}
+
+ protected final PageInfo getPageInfo(IPageRequestHandler handler)
+ {
+ Args.notNull(handler, "handler");
+
+ Integer pageId = null;
+ if (handler.isPageInstanceCreated())
+ {
+ IRequestablePage page = handler.getPage();
+
+ if (page.isPageStateless() == false)
+ {
+ pageId = page.getPageId();
+ }
+ }
+
+ return new PageInfo(pageId);
+ }
}
http://git-wip-us.apache.org/repos/asf/wicket/blob/bcb535a0/wicket-core/src/main/java/org/apache/wicket/request/mapper/AbstractComponentMapper.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/request/mapper/AbstractComponentMapper.java b/wicket-core/src/main/java/org/apache/wicket/request/mapper/AbstractComponentMapper.java
index 095463b..dc25ab8 100644
--- a/wicket-core/src/main/java/org/apache/wicket/request/mapper/AbstractComponentMapper.java
+++ b/wicket-core/src/main/java/org/apache/wicket/request/mapper/AbstractComponentMapper.java
@@ -153,4 +153,5 @@ public abstract class AbstractComponentMapper extends AbstractMapper implements
urlCopy.getQueryParameters().remove(0);
}
}
+
}
http://git-wip-us.apache.org/repos/asf/wicket/blob/bcb535a0/wicket-core/src/main/java/org/apache/wicket/request/mapper/MountedMapper.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/request/mapper/MountedMapper.java b/wicket-core/src/main/java/org/apache/wicket/request/mapper/MountedMapper.java
index 864859a..3d40023 100644
--- a/wicket-core/src/main/java/org/apache/wicket/request/mapper/MountedMapper.java
+++ b/wicket-core/src/main/java/org/apache/wicket/request/mapper/MountedMapper.java
@@ -381,7 +381,7 @@ public class MountedMapper extends AbstractBookmarkableMapper
renderCount = page.getRenderCount();
}
- PageInfo pageInfo = new PageInfo(page.getPageId());
+ PageInfo pageInfo = getPageInfo(handler);
ComponentInfo componentInfo = new ComponentInfo(renderCount,
requestListenerInterfaceToString(listenerInterface), componentPath,
handler.getBehaviorIndex());
http://git-wip-us.apache.org/repos/asf/wicket/blob/bcb535a0/wicket-core/src/test/java/org/apache/wicket/markup/html/form/FormParentDisabledRawInputTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/markup/html/form/FormParentDisabledRawInputTest.java b/wicket-core/src/test/java/org/apache/wicket/markup/html/form/FormParentDisabledRawInputTest.java
index 56ceeb7..82b8a45 100644
--- a/wicket-core/src/test/java/org/apache/wicket/markup/html/form/FormParentDisabledRawInputTest.java
+++ b/wicket-core/src/test/java/org/apache/wicket/markup/html/form/FormParentDisabledRawInputTest.java
@@ -41,6 +41,8 @@ public class FormParentDisabledRawInputTest extends WicketTestCase
*/
public TestPage()
{
+ setStatelessHint(false);
+
WebMarkupContainer container = new WebMarkupContainer("container")
{
private static final long serialVersionUID = 1L;
@@ -49,7 +51,7 @@ public class FormParentDisabledRawInputTest extends WicketTestCase
public boolean isEnabled()
{
return enabled;
- };
+ }
};
Form<?> form = new Form<Void>("form");
container.add(form);
http://git-wip-us.apache.org/repos/asf/wicket/blob/bcb535a0/wicket-core/src/test/java/org/apache/wicket/stateless/StatelessComponentPageWithParams_indexed_mount_result.html
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/stateless/StatelessComponentPageWithParams_indexed_mount_result.html b/wicket-core/src/test/java/org/apache/wicket/stateless/StatelessComponentPageWithParams_indexed_mount_result.html
index 9de028d..a1fedc7 100644
--- a/wicket-core/src/test/java/org/apache/wicket/stateless/StatelessComponentPageWithParams_indexed_mount_result.html
+++ b/wicket-core/src/test/java/org/apache/wicket/stateless/StatelessComponentPageWithParams_indexed_mount_result.html
@@ -1,5 +1,5 @@
<html>
<body>
-<a href="./testValue2?0-1.ILinkListener-link" wicket:id="link">test</a>
+<a href="./testValue2?-1.ILinkListener-link" wicket:id="link">test</a>
</body>
</html>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/wicket/blob/bcb535a0/wicket-core/src/test/java/org/apache/wicket/stateless/StatelessComponentPageWithParams_mount_result.html
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/stateless/StatelessComponentPageWithParams_mount_result.html b/wicket-core/src/test/java/org/apache/wicket/stateless/StatelessComponentPageWithParams_mount_result.html
index 9455517..5424ccb 100644
--- a/wicket-core/src/test/java/org/apache/wicket/stateless/StatelessComponentPageWithParams_mount_result.html
+++ b/wicket-core/src/test/java/org/apache/wicket/stateless/StatelessComponentPageWithParams_mount_result.html
@@ -1,5 +1,5 @@
<html>
<body>
-<a href="./stateless?0-1.ILinkListener-link&testParam1=testValue1&testParam2=testValue2" wicket:id="link">test</a>
+<a href="./stateless?-1.ILinkListener-link&testParam1=testValue1&testParam2=testValue2" wicket:id="link">test</a>
</body>
</html>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/wicket/blob/bcb535a0/wicket-core/src/test/java/org/apache/wicket/stateless/StatelessComponentPageWithParams_result.html
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/stateless/StatelessComponentPageWithParams_result.html b/wicket-core/src/test/java/org/apache/wicket/stateless/StatelessComponentPageWithParams_result.html
index 75f0e6a..c641ea0 100644
--- a/wicket-core/src/test/java/org/apache/wicket/stateless/StatelessComponentPageWithParams_result.html
+++ b/wicket-core/src/test/java/org/apache/wicket/stateless/StatelessComponentPageWithParams_result.html
@@ -1,5 +1,5 @@
<html>
<body>
-<a href="./org.apache.wicket.stateless.StatelessComponentPageWithParams?0-1.ILinkListener-link&testParam1=testValue1&testParam2=testValue2" wicket:id="link">test</a>
+<a href="./org.apache.wicket.stateless.StatelessComponentPageWithParams?-1.ILinkListener-link&testParam1=testValue1&testParam2=testValue2" wicket:id="link">test</a>
</body>
</html>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/wicket/blob/bcb535a0/wicket-core/src/test/java/org/apache/wicket/stateless/StatelessComponentPage_mount_result.html
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/stateless/StatelessComponentPage_mount_result.html b/wicket-core/src/test/java/org/apache/wicket/stateless/StatelessComponentPage_mount_result.html
index 7ba54a7..12adc15 100644
--- a/wicket-core/src/test/java/org/apache/wicket/stateless/StatelessComponentPage_mount_result.html
+++ b/wicket-core/src/test/java/org/apache/wicket/stateless/StatelessComponentPage_mount_result.html
@@ -1,5 +1,5 @@
<html>
<body>
-<a href="./stateless?0-1.ILinkListener-link" wicket:id="link">test</a>
+<a href="./stateless?-1.ILinkListener-link" wicket:id="link">test</a>
</body>
</html>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/wicket/blob/bcb535a0/wicket-core/src/test/java/org/apache/wicket/stateless/StatelessComponentPage_result.html
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/stateless/StatelessComponentPage_result.html b/wicket-core/src/test/java/org/apache/wicket/stateless/StatelessComponentPage_result.html
index ddd737e..a94ff07 100644
--- a/wicket-core/src/test/java/org/apache/wicket/stateless/StatelessComponentPage_result.html
+++ b/wicket-core/src/test/java/org/apache/wicket/stateless/StatelessComponentPage_result.html
@@ -1,5 +1,5 @@
<html>
<body>
-<a href="./org.apache.wicket.stateless.StatelessComponentPage?0-1.ILinkListener-link" wicket:id="link">test</a>
+<a href="./org.apache.wicket.stateless.StatelessComponentPage?-1.ILinkListener-link" wicket:id="link">test</a>
</body>
</html>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/wicket/blob/bcb535a0/wicket-core/src/test/java/org/apache/wicket/stateless/StatelessPageWithForm_expected.html
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/stateless/StatelessPageWithForm_expected.html b/wicket-core/src/test/java/org/apache/wicket/stateless/StatelessPageWithForm_expected.html
index 9992dbe..f02f46a 100644
--- a/wicket-core/src/test/java/org/apache/wicket/stateless/StatelessPageWithForm_expected.html
+++ b/wicket-core/src/test/java/org/apache/wicket/stateless/StatelessPageWithForm_expected.html
@@ -1,5 +1,5 @@
<html>
<body>
-<form wicket:id="form" id="form1" method="post" action="./org.apache.wicket.stateless.StatelessPageWithForm?0-1.IFormSubmitListener-form&first=foo&second=bar"><div style="width:0px;height:0px;position:absolute;left:-100px;top:-100px;overflow:hidden"><input type="hidden" name="form1_hf_0" id="form1_hf_0" /></div></form>
+<form wicket:id="form" id="form1" method="post" action="./org.apache.wicket.stateless.StatelessPageWithForm?-1.IFormSubmitListener-form&first=foo&second=bar"><div style="width:0px;height:0px;position:absolute;left:-100px;top:-100px;overflow:hidden"><input type="hidden" name="form1_hf_0" id="form1_hf_0" /></div></form>
</body>
</html>
\ No newline at end of file