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 <[email protected]> Authored: Wed Jul 25 14:23:45 2012 +0300 Committer: Martin Tzvetanov Grigorov <[email protected]> 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
