Hi, See my comments inline.
On Wed, Jan 9, 2013 at 9:45 PM, <[email protected]> wrote: > Updated Branches: > refs/heads/sandbox/bookmarkable-callback-url [created] 7e5b2e317 > > > WICKET-4932: testing recreateMountedPagesAfterExpiry at > AbstractBookmarkableMapper > > > Project: http://git-wip-us.apache.org/repos/asf/wicket/repo > Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/7e5b2e31 > Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/7e5b2e31 > Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/7e5b2e31 > > Branch: refs/heads/sandbox/bookmarkable-callback-url > Commit: 7e5b2e31789b0bdb51570d9531a1a109de454f8f > Parents: 66ebc4b > Author: Pedro Santos <[email protected]> > Authored: Wed Jan 9 17:43:30 2013 -0200 > Committer: Pedro Santos <[email protected]> > Committed: Wed Jan 9 17:43:30 2013 -0200 > > ---------------------------------------------------------------------- > ...ookmarkableListenerInterfaceRequestHandler.java | 8 ++ > .../request/mapper/AbstractBookmarkableMapper.java | 71 +++++++++--- > .../wicket/request/mapper/BookmarkableMapper.java | 15 +++- > .../wicket/request/mapper/MountedMapper.java | 64 +++------- > .../wicket/request/mapper/PackageMapper.java | 30 ++++- > .../mapper/AbstractBookmarkableMapperTest.java | 92 +++++++++++++++ > .../wicket/request/mapper/AbstractMapperTest.java | 4 + > .../request/mapper/BookmarkableMapperTest.java | 14 +- > .../wicket/request/mapper/MountedMapperTest.java | 44 +++----- > .../wicket/request/mapper/PackageMapperTest.java | 18 ++-- > .../wicket/request/mapper/TestMapperContext.java | 7 +- > 11 files changed, 253 insertions(+), 114 deletions(-) > ---------------------------------------------------------------------- > > > > http://git-wip-us.apache.org/repos/asf/wicket/blob/7e5b2e31/wicket-core/src/main/java/org/apache/wicket/request/handler/BookmarkableListenerInterfaceRequestHandler.java > ---------------------------------------------------------------------- > diff --git > a/wicket-core/src/main/java/org/apache/wicket/request/handler/BookmarkableListenerInterfaceRequestHandler.java > b/wicket-core/src/main/java/org/apache/wicket/request/handler/BookmarkableListenerInterfaceRequestHandler.java > index 1767a88..651bc66 100644 > --- > a/wicket-core/src/main/java/org/apache/wicket/request/handler/BookmarkableListenerInterfaceRequestHandler.java > +++ > b/wicket-core/src/main/java/org/apache/wicket/request/handler/BookmarkableListenerInterfaceRequestHandler.java > @@ -171,4 +171,12 @@ public class > BookmarkableListenerInterfaceRequestHandler > { > return pageComponentProvider.getRenderCount(); > } > + > + public static BookmarkableListenerInterfaceRequestHandler wrap( > + ListenerInterfaceRequestHandler handler) > + { > + return new BookmarkableListenerInterfaceRequestHandler(new > PageAndComponentProvider( > + handler.getPage(), handler.getComponent()), > handler.getListenerInterface(), > + handler.getBehaviorIndex()); > + } > } > > > http://git-wip-us.apache.org/repos/asf/wicket/blob/7e5b2e31/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 9042158..7ae520d 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 > @@ -17,6 +17,8 @@ > package org.apache.wicket.request.mapper; > > import org.apache.wicket.RequestListenerInterface; > +import org.apache.wicket.protocol.http.PageExpiredException; > +import org.apache.wicket.protocol.http.WebApplication; > import org.apache.wicket.request.IRequestHandler; > import org.apache.wicket.request.IRequestHandlerDelegate; > import org.apache.wicket.request.IRequestMapper; > @@ -35,6 +37,7 @@ import > org.apache.wicket.request.mapper.info.ComponentInfo; > import org.apache.wicket.request.mapper.info.PageComponentInfo; > import org.apache.wicket.request.mapper.info.PageInfo; > import org.apache.wicket.request.mapper.parameter.PageParameters; > +import org.apache.wicket.settings.IPageSettings; > import org.apache.wicket.util.lang.Args; > import org.slf4j.Logger; > import org.slf4j.LoggerFactory; > @@ -47,6 +50,7 @@ import org.slf4j.LoggerFactory; > public abstract class AbstractBookmarkableMapper extends > AbstractComponentMapper > { > private static Logger logger = > LoggerFactory.getLogger(AbstractBookmarkableMapper.class); > + private IPageSettings settings; > I'd make it 'final' > > /** > * Represents information stored in URL. > @@ -138,6 +142,17 @@ public abstract class AbstractBookmarkableMapper > extends AbstractComponentMapper > */ > public AbstractBookmarkableMapper() > { > + this(WebApplication.get().getPageSettings()); > Application.class is enough to get these settings. > + } > + > + /** > + * Construct. > + * > + * @param settings > + */ > + public AbstractBookmarkableMapper(IPageSettings settings) > + { > + this.settings = settings; > } > > /** > @@ -207,7 +222,15 @@ public abstract class AbstractBookmarkableMapper > extends AbstractComponentMapper > PageProvider provider = new > PageProvider(pageInfo.getPageId(), pageClass, pageParameters, > renderCount); > provider.setPageSource(getContext()); > - return new RenderPageRequestHandler(provider); > + if (provider.isNewPageInstance() && > !settings.getRecreateMountedPagesAfterExpiry()) > + { > + throw new > PageExpiredException(String.format("Bookmarkable page id '%d' has expired.", > "Page with id '%s' has expired" ? > + pageInfo.getPageId())); > + } > + else > + { > + return new RenderPageRequestHandler(provider); > + } > } > > /** > @@ -302,6 +325,7 @@ public abstract class AbstractBookmarkableMapper > extends AbstractComponentMapper > return null; > } > > +// TODO remove since we are duplicating an API here > protected boolean checkPageInstance(IRequestablePage page) > { > return page != null && checkPageClass(page.getClass()); > @@ -382,30 +406,43 @@ public abstract class AbstractBookmarkableMapper > extends AbstractComponentMapper > { > // listener interface URL with page class > information > BookmarkableListenerInterfaceRequestHandler > handler = (BookmarkableListenerInterfaceRequestHandler)requestHandler; > - Class<? extends IRequestablePage> pageClass = > handler.getPageClass(); > - > - if (!checkPageClass(pageClass)) > + if (checkPageClass(handler.getPageClass())) > { > - return null; > + return mapBookmarkableHandler(handler); > } > - > - Integer renderCount = null; > - if > (handler.getListenerInterface().isIncludeRenderCount()) > + } > + else if (requestHandler instanceof > ListenerInterfaceRequestHandler && > + settings.getRecreateMountedPagesAfterExpiry()) > + { > + ListenerInterfaceRequestHandler handler = > (ListenerInterfaceRequestHandler)requestHandler; > + if (checkPageClass(handler.getPageClass())) > { > - renderCount = handler.getRenderCount(); > + return > mapBookmarkableHandler(BookmarkableListenerInterfaceRequestHandler.wrap(handler)); > } > + } > + return null; > + } > > - PageInfo pageInfo = getPageInfo(handler); > - ComponentInfo componentInfo = new > ComponentInfo(renderCount, > - > requestListenerInterfaceToString(handler.getListenerInterface()), > - handler.getComponentPath(), > handler.getBehaviorIndex()); > + protected Url > mapBookmarkableHandler(BookmarkableListenerInterfaceRequestHandler handler) > + { > + String componentPath = handler.getComponentPath(); > + RequestListenerInterface listenerInterface = > handler.getListenerInterface(); > > - UrlInfo urlInfo = new UrlInfo(new > PageComponentInfo(pageInfo, componentInfo), > - pageClass, handler.getPageParameters()); > - return buildUrl(urlInfo); > + Integer renderCount = null; > + if (listenerInterface.isIncludeRenderCount()) > + { > + renderCount = handler.getRenderCount(); > } > > - return null; > + PageInfo pageInfo = getPageInfo(handler); > + ComponentInfo componentInfo = new > ComponentInfo(renderCount, > + > requestListenerInterfaceToString(listenerInterface), componentPath, > + handler.getBehaviorIndex()); > + PageComponentInfo pageComponentInfo = new > PageComponentInfo(pageInfo, componentInfo); > + PageParameters parameters = new > PageParameters(handler.getPageParameters()); > + UrlInfo urlInfo = new UrlInfo(pageComponentInfo, > handler.getPageClass(), > + parameters.mergeWith(handler.getPageParameters())); > + return buildUrl(urlInfo); > } > > protected final PageInfo getPageInfo(IPageRequestHandler handler) > > > http://git-wip-us.apache.org/repos/asf/wicket/blob/7e5b2e31/wicket-core/src/main/java/org/apache/wicket/request/mapper/BookmarkableMapper.java > ---------------------------------------------------------------------- > diff --git > a/wicket-core/src/main/java/org/apache/wicket/request/mapper/BookmarkableMapper.java > b/wicket-core/src/main/java/org/apache/wicket/request/mapper/BookmarkableMapper.java > index 759f389..4ae4bf1 100644 > --- > a/wicket-core/src/main/java/org/apache/wicket/request/mapper/BookmarkableMapper.java > +++ > b/wicket-core/src/main/java/org/apache/wicket/request/mapper/BookmarkableMapper.java > @@ -24,6 +24,7 @@ import > org.apache.wicket.request.mapper.info.PageComponentInfo; > import org.apache.wicket.request.mapper.parameter.IPageParametersEncoder; > import org.apache.wicket.request.mapper.parameter.PageParameters; > import org.apache.wicket.request.mapper.parameter.PageParametersEncoder; > +import org.apache.wicket.settings.IPageSettings; > import org.apache.wicket.util.lang.Args; > > /** > @@ -53,9 +54,11 @@ public class BookmarkableMapper extends > AbstractBookmarkableMapper > * Construct. > * > * @param pageParametersEncoder > + * @param settings > */ > - public BookmarkableMapper(IPageParametersEncoder > pageParametersEncoder) > + public BookmarkableMapper(IPageParametersEncoder > pageParametersEncoder, IPageSettings settings) > { > + super(settings); > Args.notNull(pageParametersEncoder, > "pageParametersEncoder"); > > this.pageParametersEncoder = pageParametersEncoder; > @@ -63,6 +66,16 @@ public class BookmarkableMapper extends > AbstractBookmarkableMapper > > /** > * Construct. > + * > + * @param pageParametersEncoder > + */ > + public BookmarkableMapper(IPageParametersEncoder > pageParametersEncoder) > + { > + this(pageParametersEncoder, > Application.get().getPageSettings()); > + } > + > + /** > + * Construct. > */ > public BookmarkableMapper() > { > > > http://git-wip-us.apache.org/repos/asf/wicket/blob/7e5b2e31/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 3d40023..6ff64f8 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 > @@ -20,18 +20,14 @@ import java.util.ArrayList; > import java.util.List; > > import org.apache.wicket.Application; > -import org.apache.wicket.RequestListenerInterface; > -import org.apache.wicket.request.IRequestHandler; > import org.apache.wicket.request.Request; > import org.apache.wicket.request.Url; > import org.apache.wicket.request.component.IRequestablePage; > -import org.apache.wicket.request.handler.ListenerInterfaceRequestHandler; > -import org.apache.wicket.request.mapper.info.ComponentInfo; > import org.apache.wicket.request.mapper.info.PageComponentInfo; > -import org.apache.wicket.request.mapper.info.PageInfo; > import org.apache.wicket.request.mapper.parameter.IPageParametersEncoder; > import org.apache.wicket.request.mapper.parameter.PageParameters; > import org.apache.wicket.request.mapper.parameter.PageParametersEncoder; > +import org.apache.wicket.settings.IPageSettings; > import org.apache.wicket.util.ClassProvider; > import org.apache.wicket.util.lang.Args; > import org.apache.wicket.util.string.Strings; > @@ -186,6 +182,24 @@ public class MountedMapper extends > AbstractBookmarkableMapper > ClassProvider<? extends IRequestablePage> > pageClassProvider, > IPageParametersEncoder pageParametersEncoder) > { > + this(mountPath, pageClassProvider, pageParametersEncoder, > Application.get() > + .getPageSettings()); > + > + } > + > + /** > + * Construct. > + * > + * @param mountPath > + * @param pageClassProvider > + * @param pageParametersEncoder > + * @param settings > + */ > + public MountedMapper(String mountPath, > + ClassProvider<? extends IRequestablePage> > pageClassProvider, > + IPageParametersEncoder pageParametersEncoder, > IPageSettings settings) > + { > + super(settings); > Args.notEmpty(mountPath, "mountPath"); > Args.notNull(pageClassProvider, "pageClassProvider"); > Args.notNull(pageParametersEncoder, > "pageParametersEncoder"); > @@ -360,46 +374,6 @@ public class MountedMapper extends > AbstractBookmarkableMapper > return new PageParameters(); > } > > - @Override > - public Url mapHandler(IRequestHandler requestHandler) > - { > - Url url = super.mapHandler(requestHandler); > - > - if (url == null && requestHandler instanceof > ListenerInterfaceRequestHandler && > - getRecreateMountedPagesAfterExpiry()) > - { > - ListenerInterfaceRequestHandler handler = > (ListenerInterfaceRequestHandler)requestHandler; > - IRequestablePage page = handler.getPage(); > - if (checkPageInstance(page)) > - { > - String componentPath = > handler.getComponentPath(); > - RequestListenerInterface listenerInterface > = handler.getListenerInterface(); > - > - Integer renderCount = null; > - if > (listenerInterface.isIncludeRenderCount()) > - { > - renderCount = > page.getRenderCount(); > - } > - > - PageInfo pageInfo = getPageInfo(handler); > - ComponentInfo componentInfo = new > ComponentInfo(renderCount, > - > requestListenerInterfaceToString(listenerInterface), componentPath, > - handler.getBehaviorIndex()); > - PageComponentInfo pageComponentInfo = new > PageComponentInfo(pageInfo, componentInfo); > - PageParameters parameters = new > PageParameters(page.getPageParameters()); > - UrlInfo urlInfo = new > UrlInfo(pageComponentInfo, page.getClass(), > - > parameters.mergeWith(handler.getPageParameters())); > - url = buildUrl(urlInfo); > - } > - } > - > - return url; > - } > - > - boolean getRecreateMountedPagesAfterExpiry() > - { > - return > Application.get().getPageSettings().getRecreateMountedPagesAfterExpiry(); > - } > > /** > * @see > org.apache.wicket.request.mapper.AbstractBookmarkableMapper#buildUrl(org.apache.wicket.request.mapper.AbstractBookmarkableMapper.UrlInfo) > > > http://git-wip-us.apache.org/repos/asf/wicket/blob/7e5b2e31/wicket-core/src/main/java/org/apache/wicket/request/mapper/PackageMapper.java > ---------------------------------------------------------------------- > diff --git > a/wicket-core/src/main/java/org/apache/wicket/request/mapper/PackageMapper.java > b/wicket-core/src/main/java/org/apache/wicket/request/mapper/PackageMapper.java > index bfacbcb..5fed6d5 100644 > --- > a/wicket-core/src/main/java/org/apache/wicket/request/mapper/PackageMapper.java > +++ > b/wicket-core/src/main/java/org/apache/wicket/request/mapper/PackageMapper.java > @@ -18,6 +18,7 @@ package org.apache.wicket.request.mapper; > > import java.lang.reflect.Modifier; > > +import org.apache.wicket.Application; > import org.apache.wicket.protocol.http.WebApplication; > import org.apache.wicket.request.Request; > import org.apache.wicket.request.Url; > @@ -26,6 +27,7 @@ import > org.apache.wicket.request.mapper.info.PageComponentInfo; > import org.apache.wicket.request.mapper.parameter.IPageParametersEncoder; > import org.apache.wicket.request.mapper.parameter.PageParameters; > import org.apache.wicket.request.mapper.parameter.PageParametersEncoder; > +import org.apache.wicket.settings.IPageSettings; > import org.apache.wicket.util.lang.Args; > import org.apache.wicket.util.lang.PackageName; > > @@ -88,6 +90,20 @@ public class PackageMapper extends > AbstractBookmarkableMapper > public PackageMapper(final PackageName packageName, > final IPageParametersEncoder pageParametersEncoder) > { > + this(packageName, pageParametersEncoder, > Application.get().getPageSettings()); > + } > + > + /** > + * Construct. > + * > + * @param packageName > + * @param pageParametersEncoder > + * @param settigns > + */ > + public PackageMapper(final PackageName packageName, > + final IPageParametersEncoder pageParametersEncoder, > IPageSettings settigns) > + { > + super(settigns); > Args.notNull(packageName, "packageName"); > Args.notNull(pageParametersEncoder, > "pageParametersEncoder"); > > @@ -137,7 +153,7 @@ public class PackageMapper extends > AbstractBookmarkableMapper > > // load the page class > String className = url.getSegments().get(0); > - > + > if (isValidClassName(className) == false) > { > return null; > @@ -161,13 +177,13 @@ public class PackageMapper extends > AbstractBookmarkableMapper > } > > /** > - * filter out invalid class names for package mapper. getting > trash for class names > - * can e.g. happen when the home page is in the same package that > is mounted by package mapper > - * but the request was previously mapped by e.g. {@link > HomePageMapper}. We then get some > - * strange url like '/example/..' and wicket tries to look up > class name '..'. > + * filter out invalid class names for package mapper. getting > trash for class names can e.g. > + * happen when the home page is in the same package that is > mounted by package mapper but the > + * request was previously mapped by e.g. {@link HomePageMapper}. > We then get some strange url > + * like '/example/..' and wicket tries to look up class name '..'. > * <p/> > - * @see <a href=" > https://issues.apache.org/jira/browse/WICKET-4303">WICKET-4303</a> > - * <p/> > + * > + * @see <a > href="https://issues.apache.org/jira/browse/WICKET-4303">WICKET-4303</a> > <p/> > */ > private boolean isValidClassName(String className) > { > > > http://git-wip-us.apache.org/repos/asf/wicket/blob/7e5b2e31/wicket-core/src/test/java/org/apache/wicket/request/mapper/AbstractBookmarkableMapperTest.java > ---------------------------------------------------------------------- > diff --git > a/wicket-core/src/test/java/org/apache/wicket/request/mapper/AbstractBookmarkableMapperTest.java > b/wicket-core/src/test/java/org/apache/wicket/request/mapper/AbstractBookmarkableMapperTest.java > new file mode 100644 > index 0000000..c2de418 > --- /dev/null > +++ > b/wicket-core/src/test/java/org/apache/wicket/request/mapper/AbstractBookmarkableMapperTest.java > @@ -0,0 +1,92 @@ > +package org.apache.wicket.request.mapper; > + > +/* > + * Licensed to the Apache Software Foundation (ASF) under one or more > + * contributor license agreements. See the NOTICE file distributed with > + * this work for additional information regarding copyright ownership. > + * The ASF licenses this file to You under the Apache License, Version 2.0 > + * (the "License"); you may not use this file except in compliance with > + * the License. You may obtain a copy of the License at > + * > + * http://www.apache.org/licenses/LICENSE-2.0 > + * > + * Unless required by applicable law or agreed to in writing, software > + * distributed under the License is distributed on an "AS IS" BASIS, > + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or > implied. > + * See the License for the specific language governing permissions and > + * limitations under the License. > + */ > + > +import org.apache.wicket.MockPage; > +import org.apache.wicket.WicketTestCase; > +import org.apache.wicket.protocol.http.PageExpiredException; > +import org.apache.wicket.request.IRequestHandler; > +import org.apache.wicket.request.Request; > +import org.apache.wicket.request.Url; > +import org.apache.wicket.request.component.IRequestablePage; > +import org.apache.wicket.request.mapper.info.PageInfo; > +import org.apache.wicket.request.mapper.parameter.PageParameters; > +import org.junit.Assert; > +import org.junit.Test; > + > +/** > + * @author pedrosans > + */ > +public class AbstractBookmarkableMapperTest extends WicketTestCase > +{ > + > + private static final int NOT_RENDERED_COUNT = 2; > + private static final int EXPIRED_ID = 2; > + > + > + /** > + * <a href="https://issues.apache.org/jira/browse/WICKET-4932 > ">WICKET-4932</a> > + */ > + @Test(expected = PageExpiredException.class) > + public void > itFailsToProcessAnExpiredPageIfShouldNotRecreateMountedPagesAfterExpiry() > + { > + > tester.getApplication().getPageSettings().setRecreateMountedPagesAfterExpiry(false); > + AbstractBookmarkableMapperStub mapper = new > AbstractBookmarkableMapperStub(); > + mapper.processHybrid(new PageInfo(EXPIRED_ID), > MockPage.class, null, NOT_RENDERED_COUNT); > + Assert.fail("it shouldn't process expired pages if the app > was flagged to not recreated mounted pages after expiry"); > + } > + > + /** */ > Add a comment for the purpose of this class > + public class AbstractBookmarkableMapperStub extends > AbstractBookmarkableMapper > I'd make it private static. > + { > + > + @Override > + protected UrlInfo parseRequest(Request request) > + { > + return null; > + } > + > + @Override > + protected Url buildUrl(UrlInfo info) > + { > + return null; > + } > + > + @Override > + protected boolean pageMustHaveBeenCreatedBookmarkable() > + { > + return false; > + } > + > + @Override > + public int getCompatibilityScore(Request request) > + { > + return 0; > + } > + > + @Override > + protected IRequestHandler processHybrid(PageInfo pageInfo, > + Class<? extends IRequestablePage> pageClass, > PageParameters pageParameters, > + Integer renderCount) > + { > + return super.processHybrid(pageInfo, pageClass, > pageParameters, renderCount); > + } > + > + } > + > +} > > > http://git-wip-us.apache.org/repos/asf/wicket/blob/7e5b2e31/wicket-core/src/test/java/org/apache/wicket/request/mapper/AbstractMapperTest.java > ---------------------------------------------------------------------- > diff --git > a/wicket-core/src/test/java/org/apache/wicket/request/mapper/AbstractMapperTest.java > b/wicket-core/src/test/java/org/apache/wicket/request/mapper/AbstractMapperTest.java > index 57455c4..bf40394 100644 > --- > a/wicket-core/src/test/java/org/apache/wicket/request/mapper/AbstractMapperTest.java > +++ > b/wicket-core/src/test/java/org/apache/wicket/request/mapper/AbstractMapperTest.java > @@ -24,6 +24,8 @@ import org.apache.wicket.markup.html.link.ILinkListener; > import org.apache.wicket.request.Request; > import org.apache.wicket.request.Url; > import org.apache.wicket.request.component.IRequestablePage; > +import org.apache.wicket.settings.IPageSettings; > +import org.apache.wicket.settings.def.PageSettings; > import org.junit.Assert; > import org.junit.Before; > > @@ -37,9 +39,11 @@ public abstract class AbstractMapperTest extends Assert > */ > public AbstractMapperTest() > { > + settings.setRecreateMountedPagesAfterExpiry(true); > } > > protected TestMapperContext context = new TestMapperContext(); > + protected IPageSettings settings = new PageSettings(); > > /** > * @throws Exception > > > http://git-wip-us.apache.org/repos/asf/wicket/blob/7e5b2e31/wicket-core/src/test/java/org/apache/wicket/request/mapper/BookmarkableMapperTest.java > ---------------------------------------------------------------------- > diff --git > a/wicket-core/src/test/java/org/apache/wicket/request/mapper/BookmarkableMapperTest.java > b/wicket-core/src/test/java/org/apache/wicket/request/mapper/BookmarkableMapperTest.java > index e6f3cc1..628ae04 100644 > --- > a/wicket-core/src/test/java/org/apache/wicket/request/mapper/BookmarkableMapperTest.java > +++ > b/wicket-core/src/test/java/org/apache/wicket/request/mapper/BookmarkableMapperTest.java > @@ -31,6 +31,7 @@ import > org.apache.wicket.request.handler.PageAndComponentProvider; > import org.apache.wicket.request.handler.PageProvider; > import org.apache.wicket.request.handler.RenderPageRequestHandler; > import org.apache.wicket.request.mapper.parameter.PageParameters; > +import org.apache.wicket.request.mapper.parameter.PageParametersEncoder; > import org.junit.Test; > > /** > @@ -39,7 +40,8 @@ import org.junit.Test; > public class BookmarkableMapperTest extends AbstractMapperTest > { > > - private final BookmarkableMapper encoder = new BookmarkableMapper() > + private final BookmarkableMapper encoder = new > BookmarkableMapper(new PageParametersEncoder(), > + settings) > { > @Override > protected IMapperContext getContext() > @@ -112,14 +114,12 @@ public class BookmarkableMapperTest extends > AbstractMapperTest > IRequestHandler handler = > encoder.mapRequest(getRequest(url)); > > assertTrue(handler instanceof RenderPageRequestHandler); > - > context.setCurrentPageParameters(((RenderPageRequestHandler)handler).getPageParameters()); > - IRequestablePage page = > ((RenderPageRequestHandler)handler).getPage(); > - checkPage(page, 15); > + PageParameters pageParameters = > ((RenderPageRequestHandler)handler).getPageParameters(); > + checkPage(((RenderPageRequestHandler)handler).getPage(), > 15); > > - PageParameters p = page.getPageParameters(); > - assertEquals(2, p.getIndexedCount()); > + assertEquals(2, pageParameters.getIndexedCount()); > > - assertEquals(2, p.getNamedKeys().size()); > + assertEquals(2, pageParameters.getNamedKeys().size()); > } > > /** > > > http://git-wip-us.apache.org/repos/asf/wicket/blob/7e5b2e31/wicket-core/src/test/java/org/apache/wicket/request/mapper/MountedMapperTest.java > ---------------------------------------------------------------------- > diff --git > a/wicket-core/src/test/java/org/apache/wicket/request/mapper/MountedMapperTest.java > b/wicket-core/src/test/java/org/apache/wicket/request/mapper/MountedMapperTest.java > index ed9eddb..6c67134 100644 > --- > a/wicket-core/src/test/java/org/apache/wicket/request/mapper/MountedMapperTest.java > +++ > b/wicket-core/src/test/java/org/apache/wicket/request/mapper/MountedMapperTest.java > @@ -33,6 +33,8 @@ import org.apache.wicket.request.handler.PageProvider; > import org.apache.wicket.request.handler.RenderPageRequestHandler; > import org.apache.wicket.request.http.WebRequest; > import org.apache.wicket.request.mapper.parameter.PageParameters; > +import org.apache.wicket.request.mapper.parameter.PageParametersEncoder; > +import org.apache.wicket.util.ClassProvider; > import org.junit.Test; > > /** > @@ -48,7 +50,8 @@ public class MountedMapperTest extends AbstractMapperTest > { > } > > - private final MountedMapper encoder = new > MountedMapper("/some/mount/path", MockPage.class) > + private final MountedMapper encoder = new > MountedMapper("/some/mount/path", > + ClassProvider.of(MockPage.class), new > PageParametersEncoder(), settings) > { > @Override > protected IMapperContext getContext() > @@ -56,15 +59,11 @@ public class MountedMapperTest extends > AbstractMapperTest > return context; > } > > - @Override > - boolean getRecreateMountedPagesAfterExpiry() > - { > - return true; > - } > }; > > private final MountedMapper placeholderEncoder = new MountedMapper( > - "/some/${param1}/path/${param2}", MockPage.class) > + "/some/${param1}/path/${param2}", > ClassProvider.of(MockPage.class), > + new PageParametersEncoder(), settings) > { > @Override > protected IMapperContext getContext() > @@ -72,27 +71,17 @@ public class MountedMapperTest extends > AbstractMapperTest > return context; > } > > - @Override > - boolean getRecreateMountedPagesAfterExpiry() > - { > - return true; > - } > }; > > private final MountedMapper optionPlaceholderEncoder = new > MountedMapper( > - "/some/#{param1}/path/${param2}/#{param3}", MockPage.class) > + "/some/#{param1}/path/${param2}/#{param3}", > ClassProvider.of(MockPage.class), > + new PageParametersEncoder(), settings) > { > @Override > protected IMapperContext getContext() > { > return context; > } > - > - @Override > - boolean getRecreateMountedPagesAfterExpiry() > - { > - return true; > - } > }; > > /** > @@ -156,14 +145,13 @@ public class MountedMapperTest extends > AbstractMapperTest > IRequestHandler handler = > encoder.mapRequest(getRequest(url)); > > assertTrue(handler instanceof RenderPageRequestHandler); > - > context.setCurrentPageParameters(((RenderPageRequestHandler)handler).getPageParameters()); > - IRequestablePage page = > ((RenderPageRequestHandler)handler).getPage(); > - checkPage(page, 15); > + PageParameters pageParameters = > ((RenderPageRequestHandler)handler).getPageParameters(); > > - PageParameters p = page.getPageParameters(); > - assertEquals(2, p.getIndexedCount()); > + checkPage(((RenderPageRequestHandler)handler).getPage(), > 15); > > - assertEquals(2, p.getNamedKeys().size()); > + assertEquals(2, pageParameters.getIndexedCount()); > + > + assertEquals(2, pageParameters.getNamedKeys().size()); > } > > /** > @@ -533,7 +521,8 @@ public class MountedMapperTest extends > AbstractMapperTest > @Test(expected = IllegalArgumentException.class) > public void construct1() > { > - IRequestMapper e = new MountedMapper("", MockPage.class); > + IRequestMapper e = new MountedMapper("", > ClassProvider.of(MockPage.class), > + new PageParametersEncoder(), settings); > } > > /** > @@ -542,7 +531,8 @@ public class MountedMapperTest extends > AbstractMapperTest > @Test > public void construct2() > { > - IRequestMapper homePageMapper = new MountedMapper("/", > MockPage.class); > + IRequestMapper homePageMapper = new MountedMapper("/", > ClassProvider.of(MockPage.class), > + new PageParametersEncoder(), settings); > assertNotNull(homePageMapper); > } > > > > http://git-wip-us.apache.org/repos/asf/wicket/blob/7e5b2e31/wicket-core/src/test/java/org/apache/wicket/request/mapper/PackageMapperTest.java > ---------------------------------------------------------------------- > diff --git > a/wicket-core/src/test/java/org/apache/wicket/request/mapper/PackageMapperTest.java > b/wicket-core/src/test/java/org/apache/wicket/request/mapper/PackageMapperTest.java > index 23a854b..fa8e6c8 100644 > --- > a/wicket-core/src/test/java/org/apache/wicket/request/mapper/PackageMapperTest.java > +++ > b/wicket-core/src/test/java/org/apache/wicket/request/mapper/PackageMapperTest.java > @@ -32,6 +32,7 @@ import org.apache.wicket.request.handler.PageProvider; > import org.apache.wicket.request.handler.RenderPageRequestHandler; > import > org.apache.wicket.request.mapper.PackageMapperTest.OuterPage.InnerPage; > import org.apache.wicket.request.mapper.parameter.PageParameters; > +import org.apache.wicket.request.mapper.parameter.PageParametersEncoder; > import org.apache.wicket.util.lang.PackageName; > import org.junit.Test; > > @@ -43,7 +44,8 @@ public class PackageMapperTest extends AbstractMapperTest > > private static final String ALIAS = "alias"; > > - private final PackageMapper encoder = new > PackageMapper(PackageName.forClass(MockPage.class)) > + private final PackageMapper encoder = new > PackageMapper(PackageName.forClass(MockPage.class), > + new PageParametersEncoder(), settings) > { > @Override > protected IMapperContext getContext() > @@ -55,7 +57,7 @@ public class PackageMapperTest extends AbstractMapperTest > private static final String PAGE_CLASS_NAME = > MockPage.class.getSimpleName(); > > private final PackageMapper aliasEncoder = new PackageMapper( > - PackageName.forClass(MockPage.class)) > + PackageName.forClass(MockPage.class), new > PageParametersEncoder(), settings) > { > @Override > protected IMapperContext getContext() > @@ -157,14 +159,12 @@ public class PackageMapperTest extends > AbstractMapperTest > > assertTrue(handler instanceof RenderPageRequestHandler); > > - > context.setCurrentPageParameters(((RenderPageRequestHandler)handler).getPageParameters()); > - IRequestablePage page = > ((RenderPageRequestHandler)handler).getPage(); > - checkPage(page, 15); > + PageParameters pageParameters = > ((RenderPageRequestHandler)handler).getPageParameters(); > + checkPage(((RenderPageRequestHandler)handler).getPage(), > 15); > > - PageParameters p = page.getPageParameters(); > - assertEquals(2, p.getIndexedCount()); > + assertEquals(2, pageParameters.getIndexedCount()); > > - assertEquals(2, p.getNamedKeys().size()); > + assertEquals(2, pageParameters.getNamedKeys().size()); > } > > /** > @@ -454,7 +454,7 @@ public class PackageMapperTest extends > AbstractMapperTest > > > private final PackageMapper innerClassEncoder = new PackageMapper( > - PackageName.forClass(OuterPage.class)) > + PackageName.forClass(OuterPage.class), new > PageParametersEncoder(), settings) > { > @Override > protected IMapperContext getContext() > > > http://git-wip-us.apache.org/repos/asf/wicket/blob/7e5b2e31/wicket-core/src/test/java/org/apache/wicket/request/mapper/TestMapperContext.java > ---------------------------------------------------------------------- > diff --git > a/wicket-core/src/test/java/org/apache/wicket/request/mapper/TestMapperContext.java > b/wicket-core/src/test/java/org/apache/wicket/request/mapper/TestMapperContext.java > index af3d4c1..9ad9b59 100644 > --- > a/wicket-core/src/test/java/org/apache/wicket/request/mapper/TestMapperContext.java > +++ > b/wicket-core/src/test/java/org/apache/wicket/request/mapper/TestMapperContext.java > @@ -216,10 +216,15 @@ public class TestMapperContext implements > IMapperContext > > public TestMapperContext setCurrentPageParameters(PageParameters > parameters) > { > - this.currentPageParameters = parameters; > + currentPageParameters = parameters; > return this; > } > > + public void setCreateMockPageIfInstanceNotFound(boolean > createMockPageIfInstanceNotFound) > + { > + this.createMockPageIfInstanceNotFound = > createMockPageIfInstanceNotFound; > + } > + > /** > * > * Adapts {@link PageProvider} to this {@link IMapperContext} > > -- Martin Grigorov jWeekend Training, Consulting, Development http://jWeekend.com <http://jweekend.com/>
