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&amp;testParam1=testValue1&amp;testParam2=testValue2"
 wicket:id="link">test</a>
+<a 
href="./stateless?-1.ILinkListener-link&amp;testParam1=testValue1&amp;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&amp;testParam1=testValue1&amp;testParam2=testValue2"
 wicket:id="link">test</a>
+<a 
href="./org.apache.wicket.stateless.StatelessComponentPageWithParams?-1.ILinkListener-link&amp;testParam1=testValue1&amp;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&amp;first=foo&amp;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&amp;first=foo&amp;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

Reply via email to