What
about 
org.apache.wicket.core.request.handler.BookmarkableListenerInterfaceRequestHandler
?

Martin Grigorov
Wicket Training and Consulting
https://twitter.com/mtgrigorov

On Mon, Jan 30, 2017 at 4:51 PM, <[email protected]> wrote:

> Repository: wicket
> Updated Branches:
>   refs/heads/master 16e44ce98 -> 8342e4ef9
>
>
> WICKET-6137 renamed ListenerInterfaceRequestHandler to
> ListenerRequestHandler
>
> there isn't a ..ListenerInterface any more
>
>
> Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
> Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/8342e4ef
> Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/8342e4ef
> Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/8342e4ef
>
> Branch: refs/heads/master
> Commit: 8342e4ef9acd442ddfe7ad78d04838d17c1b9fec
> Parents: 16e44ce
> Author: Sven Meier <[email protected]>
> Authored: Mon Jan 30 16:50:26 2017 +0100
> Committer: Sven Meier <[email protected]>
> Committed: Mon Jan 30 16:50:26 2017 +0100
>
> ----------------------------------------------------------------------
>  .../main/java/org/apache/wicket/Component.java  |   4 +-
>  ...markableListenerInterfaceRequestHandler.java |   2 +-
>  .../ListenerInterfaceRequestHandler.java        | 327 -------------------
>  .../request/handler/ListenerRequestHandler.java | 327 +++++++++++++++++++
>  .../logger/ListenerInterfaceLogData.java        | 214 ------------
>  .../request/handler/logger/ListenerLogData.java | 214 ++++++++++++
>  .../mapper/AbstractBookmarkableMapper.java      |   4 +-
>  .../core/request/mapper/MountedMapper.java      |   6 +-
>  .../core/request/mapper/PageInstanceMapper.java |   8 +-
>  .../wicket/util/tester/BaseWicketTester.java    |   6 +-
>  .../org/apache/wicket/BehaviorRequestTest.java  |   4 +-
>  .../ComponentWithLazyModelCreationTest.java     |   4 +-
>  .../ListenerInterfaceRequestHandlerTest.java    | 208 ------------
>  .../handler/ListenerRequestHandlerTest.java     | 208 ++++++++++++
>  .../request/mapper/BookmarkableMapperTest.java  |  18 +-
>  .../core/request/mapper/CryptoMapperTest.java   |  14 +-
>  .../core/request/mapper/MountedMapperTest.java  |  26 +-
>  .../core/request/mapper/PackageMapperTest.java  |  18 +-
>  .../request/mapper/PageInstanceMapperTest.java  |  16 +-
>  .../wicket/examples/ajax/prototype/Index.java   |   5 +-
>  20 files changed, 816 insertions(+), 817 deletions(-)
> ----------------------------------------------------------------------
>
>
> http://git-wip-us.apache.org/repos/asf/wicket/blob/
> 8342e4ef/wicket-core/src/main/java/org/apache/wicket/Component.java
> ----------------------------------------------------------------------
> diff --git a/wicket-core/src/main/java/org/apache/wicket/Component.java
> b/wicket-core/src/main/java/org/apache/wicket/Component.java
> index 97262ed..a6aa54f 100644
> --- a/wicket-core/src/main/java/org/apache/wicket/Component.java
> +++ b/wicket-core/src/main/java/org/apache/wicket/Component.java
> @@ -32,7 +32,7 @@ import org.apache.wicket.authorization.
> UnauthorizedActionException;
>  import org.apache.wicket.authorization.strategies.page.
> SimplePageAuthorizationStrategy;
>  import org.apache.wicket.behavior.Behavior;
>  import org.apache.wicket.core.request.handler.
> BookmarkableListenerInterfaceRequestHandler;
> -import org.apache.wicket.core.request.handler.
> ListenerInterfaceRequestHandler;
> +import org.apache.wicket.core.request.handler.ListenerRequestHandler;
>  import org.apache.wicket.core.request.handler.PageAndComponentProvider;
>  import org.apache.wicket.core.util.lang.WicketObjects;
>  import org.apache.wicket.core.util.string.ComponentStrings;
> @@ -3396,7 +3396,7 @@ public abstract class Component
>                 }
>                 else
>                 {
> -                       return new ListenerInterfaceRequestHandler(provider,
> id);
> +                       return new ListenerRequestHandler(provider, id);
>                 }
>         }
>
>
> http://git-wip-us.apache.org/repos/asf/wicket/blob/
> 8342e4ef/wicket-core/src/main/java/org/apache/wicket/core/request/handler/
> BookmarkableListenerInterfaceRequestHandler.java
> ----------------------------------------------------------------------
> diff --git a/wicket-core/src/main/java/org/apache/wicket/core/
> request/handler/BookmarkableListenerInterfaceRequestHandler.java
> b/wicket-core/src/main/java/org/apache/wicket/core/request/handler/
> BookmarkableListenerInterfaceRequestHandler.java
> index b3de191..772e215 100644
> --- a/wicket-core/src/main/java/org/apache/wicket/core/request/handler/
> BookmarkableListenerInterfaceRequestHandler.java
> +++ b/wicket-core/src/main/java/org/apache/wicket/core/request/handler/
> BookmarkableListenerInterfaceRequestHandler.java
> @@ -25,7 +25,7 @@ import org.apache.wicket.util.lang.Args;
>
>  /**
>   * Request handler for bookmarkable pages with an {@link
> IRequestListener}. This handler is only used to
> - * generate URLs. Rendering is always handled by {@link
> ListenerInterfaceRequestHandler}.
> + * generate URLs. Rendering is always handled by {@link
> ListenerRequestHandler}.
>   *
>   * @author Matej Knopp
>   */
>
> http://git-wip-us.apache.org/repos/asf/wicket/blob/
> 8342e4ef/wicket-core/src/main/java/org/apache/wicket/core/request/handler/
> ListenerInterfaceRequestHandler.java
> ----------------------------------------------------------------------
> diff --git a/wicket-core/src/main/java/org/apache/wicket/core/
> request/handler/ListenerInterfaceRequestHandler.java
> b/wicket-core/src/main/java/org/apache/wicket/core/request/handler/
> ListenerInterfaceRequestHandler.java
> deleted file mode 100644
> index c976a42..0000000
> --- a/wicket-core/src/main/java/org/apache/wicket/core/request/handler/
> ListenerInterfaceRequestHandler.java
> +++ /dev/null
> @@ -1,327 +0,0 @@
> -/*
> - * 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.
> - */
> -package org.apache.wicket.core.request.handler;
> -
> -import org.apache.wicket.Component;
> -import org.apache.wicket.IRequestListener;
> -import org.apache.wicket.Page;
> -import org.apache.wicket.WicketRuntimeException;
> -import org.apache.wicket.behavior.Behavior;
> -import org.apache.wicket.core.request.handler.RenderPageRequestHandler.
> RedirectPolicy;
> -import org.apache.wicket.core.request.handler.logger.
> ListenerInterfaceLogData;
> -import org.apache.wicket.request.ILoggableRequestHandler;
> -import org.apache.wicket.request.IRequestCycle;
> -import org.apache.wicket.request.component.IRequestableComponent;
> -import org.apache.wicket.request.component.IRequestablePage;
> -import org.apache.wicket.request.http.WebRequest;
> -import org.apache.wicket.request.mapper.parameter.PageParameters;
> -import org.apache.wicket.util.lang.Args;
> -import org.slf4j.Logger;
> -import org.slf4j.LoggerFactory;
> -
> -/**
> - * Request handler that invokes an {@link IRequestListener} on component
> or behavior and renders page afterwards.
> - *
> - * @author Matej Knopp
> - */
> -public class ListenerInterfaceRequestHandler
> -       implements
> -               IPageRequestHandler,
> -               IComponentRequestHandler,
> -               ILoggableRequestHandler
> -{
> -
> -       private static final Logger LOG = LoggerFactory.getLogger(
> ListenerInterfaceRequestHandler.class);
> -
> -       private final IPageAndComponentProvider pageComponentProvider;
> -
> -       private final Integer behaviorId;
> -
> -       private ListenerInterfaceLogData logData;
> -
> -       /**
> -        * Construct.
> -        *
> -        * @param pageComponentProvider
> -        * @param behaviorIndex
> -        */
> -       public ListenerInterfaceRequestHandler(IPageAndComponentProvider
> pageComponentProvider, Integer behaviorIndex)
> -       {
> -               Args.notNull(pageComponentProvider,
> "pageComponentProvider");
> -
> -               this.pageComponentProvider = pageComponentProvider;
> -               behaviorId = behaviorIndex;
> -       }
> -
> -       /**
> -        * Construct.
> -        *
> -        * @param pageComponentProvider
> -        */
> -       public ListenerInterfaceRequestHandler(PageAndComponentProvider
> pageComponentProvider)
> -       {
> -               this(pageComponentProvider, null);
> -       }
> -
> -       public boolean includeRenderCount() {
> -               if (behaviorId == null) {
> -                       return ((IRequestListener)
> getComponent()).rendersPage();
> -               } else {
> -                       return ((IRequestListener)getComponent().
> getBehaviorById(getBehaviorIndex())).rendersPage();
> -               }
> -       }
> -
> -       @Override
> -       public IRequestableComponent getComponent()
> -       {
> -               return pageComponentProvider.getComponent();
> -       }
> -
> -       @Override
> -       public IRequestablePage getPage()
> -       {
> -               return pageComponentProvider.getPageInstance();
> -       }
> -
> -       @Override
> -       public Class<? extends IRequestablePage> getPageClass()
> -       {
> -               return pageComponentProvider.getPageClass();
> -       }
> -
> -       @Override
> -       public Integer getPageId()
> -       {
> -               return pageComponentProvider.getPageId();
> -       }
> -
> -       @Override
> -       public PageParameters getPageParameters()
> -       {
> -               return pageComponentProvider.getPageParameters();
> -       }
> -
> -       @Override
> -       public void detach(IRequestCycle requestCycle)
> -       {
> -               if (logData == null)
> -               {
> -                       logData = new 
> ListenerInterfaceLogData(pageComponentProvider,
> behaviorId);
> -               }
> -               pageComponentProvider.detach();
> -       }
> -
> -       /**
> -        * Index of target behavior or <code>null</code> if component is
> the target.
> -        *
> -        * @return behavior index or <code>null</code>
> -        */
> -       public Integer getBehaviorIndex()
> -       {
> -               return behaviorId;
> -       }
> -
> -       @Override
> -       public void respond(final IRequestCycle requestCycle)
> -       {
> -               final IRequestablePage page = getPage();
> -               final boolean freshPage = pageComponentProvider.
> isPageInstanceFresh();
> -               final boolean isAjax = ((WebRequest)requestCycle.
> getRequest()).isAjax();
> -
> -               IRequestableComponent component;
> -               try
> -               {
> -                       component = getComponent();
> -               }
> -               catch (ComponentNotFoundException e)
> -               {
> -                       // either the page is stateless and the component
> we are looking for is not added in the
> -                       // constructor
> -                       // or the page is stateful+stale and a new
> instances was created by pageprovider
> -                       // we denote this by setting component to null
> -                       component = null;
> -               }
> -
> -               if ((component == null && !freshPage) || (component !=
> null && component.getPage() != page))
> -               {
> -                       throw new ComponentNotFoundException("Component
> '" + getComponentPath()
> -                                       + "' has been removed from page.");
> -               }
> -
> -               if (page instanceof Page)
> -               {
> -                       // initialize the page to be able to check whether
> it is stateless
> -                       ((Page)page).internalInitialize();
> -               }
> -
> -               RedirectPolicy policy = page.isPageStateless()
> -                       ? RedirectPolicy.NEVER_REDIRECT
> -                       : RedirectPolicy.AUTO_REDIRECT;
> -
> -               boolean blockIfExpired = component != null && !component.
> canCallListenerInterfaceAfterExpiry();
> -
> -               boolean lateComponent = component == null && freshPage;
> -
> -               if ((pageComponentProvider.wasExpired() &&
> blockIfExpired) || lateComponent)
> -               {
> -                       // A request listener is invoked on an expired
> page or the component couldn't be
> -                       // determined. The best we can do is to re-paint
> the newly constructed page.
> -                       // Reference: WICKET-4454, WICKET-6288
> -
> -                       if (LOG.isDebugEnabled())
> -                       {
> -                               LOG.debug(
> -                                       "An IRequestListener was called
> but its page/component({}) couldn't be resolved. "
> -                                               + "Scheduling re-create of
> the page and ignoring the listener interface...",
> -                                       getComponentPath());
> -                       }
> -
> -                       if (isAjax)
> -                       {
> -                               policy = RedirectPolicy.ALWAYS_REDIRECT;
> -                       }
> -
> -                       requestCycle.scheduleRequestHandlerAfterCurrent(new
> RenderPageRequestHandler(
> -                               new PageProvider(page), policy));
> -                       return;
> -               }
> -
> -               invokeListener(requestCycle, policy, isAjax);
> -       }
> -
> -       private void invokeListener(IRequestCycle requestCycle,
> RedirectPolicy policy, boolean ajax)
> -       {
> -               if (getBehaviorIndex() == null)
> -               {
> -                       invoke(requestCycle, policy, ajax, getComponent());
> -               }
> -               else
> -               {
> -                       try
> -                       {
> -                               Behavior behavior = getComponent().
> getBehaviorById(behaviorId);
> -                               invoke(requestCycle, policy, ajax,
> getComponent(), behavior);
> -                       }
> -                       catch (IndexOutOfBoundsException e)
> -                       {
> -                               throw new WicketRuntimeException("Couldn't
> find component behavior.", e);
> -                       }
> -
> -               }
> -       }
> -
> -       /**
> -        * Invokes a given interface on a component.
> -        *
> -        * @param rcomponent
> -        *            The component
> -        *
> -        * @throws ListenerInvocationNotAllowedException
> -        *             when listener invocation attempted on a component
> that does not allow it
> -        */
> -       private final void invoke(final IRequestCycle requestCycle,
> RedirectPolicy policy, boolean ajax, final IRequestableComponent rcomponent)
> -       {
> -               // we are in Wicket core land
> -               final Component component = (Component)rcomponent;
> -
> -               if (!component.canCallListenerInterface())
> -               {
> -                       // just return so that we have a silent fail and
> just re-render the
> -                       // page
> -                       LOG.info("component not enabled or visible;
> ignoring call. Component: " + component);
> -                       throw new 
> ListenerInvocationNotAllowedException(component,
> null,
> -                               "Component rejected interface invocation");
> -               }
> -
> -               internalInvoke(requestCycle, policy, ajax, component,
> component);
> -       }
> -
> -       /**
> -        * Invokes a given interface on a component's behavior.
> -        *
> -        * @param rcomponent
> -        *            The component
> -        * @param behavior
> -        * @throws ListenerInvocationNotAllowedException
> -        *             when listener invocation attempted on a component
> that does not allow it
> -        */
> -       private final void invoke(final IRequestCycle requestCycle,
> RedirectPolicy policy, boolean ajax, final IRequestableComponent
> rcomponent, final Behavior behavior)
> -       {
> -               // we are in Wicket core land
> -               final Component component = (Component)rcomponent;
> -
> -               if (!behavior.canCallListenerInterface(component))
> -               {
> -                       LOG.warn("behavior not enabled; ignore call.
> Behavior {} at component {}", behavior,
> -                               component);
> -                       throw new 
> ListenerInvocationNotAllowedException(component,
> behavior,
> -                               "Behavior rejected interface invocation.
> ");
> -               }
> -
> -               internalInvoke(requestCycle, policy, ajax, component,
> behavior);
> -       }
> -
> -       private void internalInvoke(final IRequestCycle requestCycle,
> RedirectPolicy policy, boolean ajax, final Component component, final
> Object target)
> -       {
> -               // save a reference to the page because the component can
> be removed
> -               // during the invocation of the listener and thus lose its
> parent
> -               Page page = component.getPage();
> -
> -               // initialization is required for stateless pages
> -               if (!page.isInitialized())
> -               {
> -                       page.internalInitialize();
> -               }
> -
> -               IRequestListener requestListener =
> (IRequestListener)target;
> -
> -               if (requestListener.rendersPage() && !ajax)
> -               {
> -                       // schedule page render after current request
> handler is done. this can be
> -                       // overridden during invocation of listener
> -                       // method (i.e. by calling
> RequestCycle#setResponsePage)
> -                       requestCycle.scheduleRequestHandlerAfterCurrent(new
> RenderPageRequestHandler(
> -                               new PageProvider(page), policy));
> -               }
> -
> -               requestListener.onRequest();
> -       }
> -
> -       @Override
> -       public final boolean isPageInstanceCreated()
> -       {
> -               return pageComponentProvider.hasPageInstance();
> -       }
> -
> -       @Override
> -       public final String getComponentPath()
> -       {
> -               return pageComponentProvider.getComponentPath();
> -       }
> -
> -       @Override
> -       public final Integer getRenderCount()
> -       {
> -               return pageComponentProvider.getRenderCount();
> -       }
> -
> -       @Override
> -       public ListenerInterfaceLogData getLogData()
> -       {
> -               return logData;
> -       }
> -}
>
> http://git-wip-us.apache.org/repos/asf/wicket/blob/
> 8342e4ef/wicket-core/src/main/java/org/apache/wicket/core/request/handler/
> ListenerRequestHandler.java
> ----------------------------------------------------------------------
> diff --git a/wicket-core/src/main/java/org/apache/wicket/core/
> request/handler/ListenerRequestHandler.java b/wicket-core/src/main/java/
> org/apache/wicket/core/request/handler/ListenerRequestHandler.java
> new file mode 100644
> index 0000000..3f131e3
> --- /dev/null
> +++ b/wicket-core/src/main/java/org/apache/wicket/core/request/handler/
> ListenerRequestHandler.java
> @@ -0,0 +1,327 @@
> +/*
> + * 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.
> + */
> +package org.apache.wicket.core.request.handler;
> +
> +import org.apache.wicket.Component;
> +import org.apache.wicket.IRequestListener;
> +import org.apache.wicket.Page;
> +import org.apache.wicket.WicketRuntimeException;
> +import org.apache.wicket.behavior.Behavior;
> +import org.apache.wicket.core.request.handler.RenderPageRequestHandler.
> RedirectPolicy;
> +import org.apache.wicket.core.request.handler.logger.ListenerLogData;
> +import org.apache.wicket.request.ILoggableRequestHandler;
> +import org.apache.wicket.request.IRequestCycle;
> +import org.apache.wicket.request.component.IRequestableComponent;
> +import org.apache.wicket.request.component.IRequestablePage;
> +import org.apache.wicket.request.http.WebRequest;
> +import org.apache.wicket.request.mapper.parameter.PageParameters;
> +import org.apache.wicket.util.lang.Args;
> +import org.slf4j.Logger;
> +import org.slf4j.LoggerFactory;
> +
> +/**
> + * Request handler that invokes an {@link IRequestListener} on component
> or behavior and renders page afterwards.
> + *
> + * @author Matej Knopp
> + */
> +public class ListenerRequestHandler
> +       implements
> +               IPageRequestHandler,
> +               IComponentRequestHandler,
> +               ILoggableRequestHandler
> +{
> +
> +       private static final Logger LOG = LoggerFactory.getLogger(
> ListenerRequestHandler.class);
> +
> +       private final IPageAndComponentProvider pageComponentProvider;
> +
> +       private final Integer behaviorId;
> +
> +       private ListenerLogData logData;
> +
> +       /**
> +        * Construct.
> +        *
> +        * @param pageComponentProvider
> +        * @param behaviorIndex
> +        */
> +       public ListenerRequestHandler(IPageAndComponentProvider
> pageComponentProvider, Integer behaviorIndex)
> +       {
> +               Args.notNull(pageComponentProvider,
> "pageComponentProvider");
> +
> +               this.pageComponentProvider = pageComponentProvider;
> +               behaviorId = behaviorIndex;
> +       }
> +
> +       /**
> +        * Construct.
> +        *
> +        * @param pageComponentProvider
> +        */
> +       public ListenerRequestHandler(PageAndComponentProvider
> pageComponentProvider)
> +       {
> +               this(pageComponentProvider, null);
> +       }
> +
> +       public boolean includeRenderCount() {
> +               if (behaviorId == null) {
> +                       return ((IRequestListener)
> getComponent()).rendersPage();
> +               } else {
> +                       return ((IRequestListener)getComponent().
> getBehaviorById(getBehaviorIndex())).rendersPage();
> +               }
> +       }
> +
> +       @Override
> +       public IRequestableComponent getComponent()
> +       {
> +               return pageComponentProvider.getComponent();
> +       }
> +
> +       @Override
> +       public IRequestablePage getPage()
> +       {
> +               return pageComponentProvider.getPageInstance();
> +       }
> +
> +       @Override
> +       public Class<? extends IRequestablePage> getPageClass()
> +       {
> +               return pageComponentProvider.getPageClass();
> +       }
> +
> +       @Override
> +       public Integer getPageId()
> +       {
> +               return pageComponentProvider.getPageId();
> +       }
> +
> +       @Override
> +       public PageParameters getPageParameters()
> +       {
> +               return pageComponentProvider.getPageParameters();
> +       }
> +
> +       @Override
> +       public void detach(IRequestCycle requestCycle)
> +       {
> +               if (logData == null)
> +               {
> +                       logData = new ListenerLogData(pageComponentProvider,
> behaviorId);
> +               }
> +               pageComponentProvider.detach();
> +       }
> +
> +       /**
> +        * Index of target behavior or <code>null</code> if component is
> the target.
> +        *
> +        * @return behavior index or <code>null</code>
> +        */
> +       public Integer getBehaviorIndex()
> +       {
> +               return behaviorId;
> +       }
> +
> +       @Override
> +       public void respond(final IRequestCycle requestCycle)
> +       {
> +               final IRequestablePage page = getPage();
> +               final boolean freshPage = pageComponentProvider.
> isPageInstanceFresh();
> +               final boolean isAjax = ((WebRequest)requestCycle.
> getRequest()).isAjax();
> +
> +               IRequestableComponent component;
> +               try
> +               {
> +                       component = getComponent();
> +               }
> +               catch (ComponentNotFoundException e)
> +               {
> +                       // either the page is stateless and the component
> we are looking for is not added in the
> +                       // constructor
> +                       // or the page is stateful+stale and a new
> instances was created by pageprovider
> +                       // we denote this by setting component to null
> +                       component = null;
> +               }
> +
> +               if ((component == null && !freshPage) || (component !=
> null && component.getPage() != page))
> +               {
> +                       throw new ComponentNotFoundException("Component
> '" + getComponentPath()
> +                                       + "' has been removed from page.");
> +               }
> +
> +               if (page instanceof Page)
> +               {
> +                       // initialize the page to be able to check whether
> it is stateless
> +                       ((Page)page).internalInitialize();
> +               }
> +
> +               RedirectPolicy policy = page.isPageStateless()
> +                       ? RedirectPolicy.NEVER_REDIRECT
> +                       : RedirectPolicy.AUTO_REDIRECT;
> +
> +               boolean blockIfExpired = component != null && !component.
> canCallListenerInterfaceAfterExpiry();
> +
> +               boolean lateComponent = component == null && freshPage;
> +
> +               if ((pageComponentProvider.wasExpired() &&
> blockIfExpired) || lateComponent)
> +               {
> +                       // A request listener is invoked on an expired
> page or the component couldn't be
> +                       // determined. The best we can do is to re-paint
> the newly constructed page.
> +                       // Reference: WICKET-4454, WICKET-6288
> +
> +                       if (LOG.isDebugEnabled())
> +                       {
> +                               LOG.debug(
> +                                       "An IRequestListener was called
> but its page/component({}) couldn't be resolved. "
> +                                               + "Scheduling re-create of
> the page and ignoring the listener interface...",
> +                                       getComponentPath());
> +                       }
> +
> +                       if (isAjax)
> +                       {
> +                               policy = RedirectPolicy.ALWAYS_REDIRECT;
> +                       }
> +
> +                       requestCycle.scheduleRequestHandlerAfterCurrent(new
> RenderPageRequestHandler(
> +                               new PageProvider(page), policy));
> +                       return;
> +               }
> +
> +               invokeListener(requestCycle, policy, isAjax);
> +       }
> +
> +       private void invokeListener(IRequestCycle requestCycle,
> RedirectPolicy policy, boolean ajax)
> +       {
> +               if (getBehaviorIndex() == null)
> +               {
> +                       invoke(requestCycle, policy, ajax, getComponent());
> +               }
> +               else
> +               {
> +                       try
> +                       {
> +                               Behavior behavior = getComponent().
> getBehaviorById(behaviorId);
> +                               invoke(requestCycle, policy, ajax,
> getComponent(), behavior);
> +                       }
> +                       catch (IndexOutOfBoundsException e)
> +                       {
> +                               throw new WicketRuntimeException("Couldn't
> find component behavior.", e);
> +                       }
> +
> +               }
> +       }
> +
> +       /**
> +        * Invokes a given interface on a component.
> +        *
> +        * @param rcomponent
> +        *            The component
> +        *
> +        * @throws ListenerInvocationNotAllowedException
> +        *             when listener invocation attempted on a component
> that does not allow it
> +        */
> +       private final void invoke(final IRequestCycle requestCycle,
> RedirectPolicy policy, boolean ajax, final IRequestableComponent rcomponent)
> +       {
> +               // we are in Wicket core land
> +               final Component component = (Component)rcomponent;
> +
> +               if (!component.canCallListenerInterface())
> +               {
> +                       // just return so that we have a silent fail and
> just re-render the
> +                       // page
> +                       LOG.info("component not enabled or visible;
> ignoring call. Component: " + component);
> +                       throw new 
> ListenerInvocationNotAllowedException(component,
> null,
> +                               "Component rejected interface invocation");
> +               }
> +
> +               internalInvoke(requestCycle, policy, ajax, component,
> component);
> +       }
> +
> +       /**
> +        * Invokes a given interface on a component's behavior.
> +        *
> +        * @param rcomponent
> +        *            The component
> +        * @param behavior
> +        * @throws ListenerInvocationNotAllowedException
> +        *             when listener invocation attempted on a component
> that does not allow it
> +        */
> +       private final void invoke(final IRequestCycle requestCycle,
> RedirectPolicy policy, boolean ajax, final IRequestableComponent
> rcomponent, final Behavior behavior)
> +       {
> +               // we are in Wicket core land
> +               final Component component = (Component)rcomponent;
> +
> +               if (!behavior.canCallListenerInterface(component))
> +               {
> +                       LOG.warn("behavior not enabled; ignore call.
> Behavior {} at component {}", behavior,
> +                               component);
> +                       throw new 
> ListenerInvocationNotAllowedException(component,
> behavior,
> +                               "Behavior rejected interface invocation.
> ");
> +               }
> +
> +               internalInvoke(requestCycle, policy, ajax, component,
> behavior);
> +       }
> +
> +       private void internalInvoke(final IRequestCycle requestCycle,
> RedirectPolicy policy, boolean ajax, final Component component, final
> Object target)
> +       {
> +               // save a reference to the page because the component can
> be removed
> +               // during the invocation of the listener and thus lose its
> parent
> +               Page page = component.getPage();
> +
> +               // initialization is required for stateless pages
> +               if (!page.isInitialized())
> +               {
> +                       page.internalInitialize();
> +               }
> +
> +               IRequestListener requestListener =
> (IRequestListener)target;
> +
> +               if (requestListener.rendersPage() && !ajax)
> +               {
> +                       // schedule page render after current request
> handler is done. this can be
> +                       // overridden during invocation of listener
> +                       // method (i.e. by calling
> RequestCycle#setResponsePage)
> +                       requestCycle.scheduleRequestHandlerAfterCurrent(new
> RenderPageRequestHandler(
> +                               new PageProvider(page), policy));
> +               }
> +
> +               requestListener.onRequest();
> +       }
> +
> +       @Override
> +       public final boolean isPageInstanceCreated()
> +       {
> +               return pageComponentProvider.hasPageInstance();
> +       }
> +
> +       @Override
> +       public final String getComponentPath()
> +       {
> +               return pageComponentProvider.getComponentPath();
> +       }
> +
> +       @Override
> +       public final Integer getRenderCount()
> +       {
> +               return pageComponentProvider.getRenderCount();
> +       }
> +
> +       @Override
> +       public ListenerLogData getLogData()
> +       {
> +               return logData;
> +       }
> +}
>
> http://git-wip-us.apache.org/repos/asf/wicket/blob/
> 8342e4ef/wicket-core/src/main/java/org/apache/wicket/core/
> request/handler/logger/ListenerInterfaceLogData.java
> ----------------------------------------------------------------------
> diff --git a/wicket-core/src/main/java/org/apache/wicket/core/
> request/handler/logger/ListenerInterfaceLogData.java
> b/wicket-core/src/main/java/org/apache/wicket/core/request/handler/logger/
> ListenerInterfaceLogData.java
> deleted file mode 100644
> index 5ed97a7..0000000
> --- a/wicket-core/src/main/java/org/apache/wicket/core/
> request/handler/logger/ListenerInterfaceLogData.java
> +++ /dev/null
> @@ -1,214 +0,0 @@
> -/*
> - * 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.
> - */
> -package org.apache.wicket.core.request.handler.logger;
> -
> -import org.apache.wicket.Component;
> -import org.apache.wicket.behavior.Behavior;
> -import org.apache.wicket.core.request.handler.IPageAndComponentProvider;
> -import org.apache.wicket.markup.html.form.Form;
> -import org.apache.wicket.markup.html.form.IFormSubmitter;
> -import org.apache.wicket.request.component.IRequestableComponent;
> -
> -/**
> - * Contains logging data for component/listener-interface request
> handlers.
> - *
> - * @author Emond Papegaaij
> - */
> -public class ListenerInterfaceLogData extends PageLogData
> -{
> -       private static final long serialVersionUID = 1L;
> -
> -       private final Class<? extends IRequestableComponent>
> componentClass;
> -       private final String componentPath;
> -       private final Integer behaviorIndex;
> -       private Class<? extends Behavior> behaviorClass;
> -       private Class<? extends IRequestableComponent>
> submittingComponentClass;
> -       private String submittingComponentPath;
> -
> -       /**
> -        * Construct.
> -        *
> -        * @param pageAndComponentProvider
> -        * @param listenerInterface
> -        * @param behaviorIndex
> -        */
> -       public ListenerInterfaceLogData(IPageAndComponentProvider
> pageAndComponentProvider, Integer behaviorIndex)
> -       {
> -               super(pageAndComponentProvider);
> -               componentClass = tryToGetComponentClass(
> pageAndComponentProvider);
> -               componentPath = tryToGetComponentPath(
> pageAndComponentProvider);
> -               this.behaviorIndex = behaviorIndex;
> -               if (behaviorIndex != null && componentClass != null)
> -               {
> -                       try
> -                       {
> -                               behaviorClass = pageAndComponentProvider.
> getComponent()
> -                                       .getBehaviorById(behaviorIndex)
> -                                       .getClass();
> -                       }
> -                       catch (Exception ignore)
> -                       {
> -                               behaviorClass = null;
> -                       }
> -               }
> -               else
> -               {
> -                       behaviorClass = null;
> -               }
> -
> -               final Component formSubmitter =
> tryToGetFormSubmittingComponent(pageAndComponentProvider);
> -               if (formSubmitter != null)
> -               {
> -                       submittingComponentClass =
> formSubmitter.getClass();
> -                       submittingComponentPath = formSubmitter.
> getPageRelativePath();
> -               }
> -       }
> -
> -       private static Class<? extends IRequestableComponent>
> tryToGetComponentClass(
> -               IPageAndComponentProvider pageAndComponentProvider)
> -       {
> -               try
> -               {
> -                       return pageAndComponentProvider.
> getComponent().getClass();
> -               }
> -               catch (Exception e)
> -               {
> -                       // getComponent might fail if the page does not
> exist (ie session timeout)
> -                       return null;
> -               }
> -       }
> -
> -
> -       private static String tryToGetComponentPath(IPageAndComponentProvider
> pageAndComponentProvider)
> -       {
> -               try
> -               {
> -                       return pageAndComponentProvider.
> getComponentPath();
> -               }
> -               catch (Exception e)
> -               {
> -                       // getComponentPath might fail if the page does
> not exist (ie session timeout)
> -                       return null;
> -               }
> -       }
> -
> -       private static Component tryToGetFormSubmittingComponent(
> -               IPageAndComponentProvider pageAndComponentProvider)
> -       {
> -               try
> -               {
> -                       final IRequestableComponent component =
> pageAndComponentProvider.getComponent();
> -                       if (component instanceof Form)
> -                       {
> -                               final IFormSubmitter submitter =
> ((Form<?>)component).findSubmittingButton();
> -                               return submitter instanceof Component ?
> (Component)submitter : null;
> -                       }
> -                       return null;
> -               }
> -               catch (Exception e)
> -               {
> -                       // getComponent might fail if the page does not
> exist (ie session timeout)
> -                       return null;
> -               }
> -       }
> -
> -       /**
> -        * @return componentClass
> -        */
> -       public final Class<? extends IRequestableComponent>
> getComponentClass()
> -       {
> -               return componentClass;
> -       }
> -
> -       /**
> -        * @return componentPath
> -        */
> -       public final String getComponentPath()
> -       {
> -               return componentPath;
> -       }
> -
> -       /**
> -        * @return behaviorIndex
> -        */
> -       public final Integer getBehaviorIndex()
> -       {
> -               return behaviorIndex;
> -       }
> -
> -       /**
> -        * @return behaviorClass
> -        */
> -       public final Class<? extends Behavior> getBehaviorClass()
> -       {
> -               return behaviorClass;
> -       }
> -
> -       /**
> -        * @return submittingComponentClass
> -        */
> -       public Class<? extends IRequestableComponent>
> getSubmittingComponentClass()
> -       {
> -               return submittingComponentClass;
> -       }
> -
> -       /**
> -        * @return submittingComponentPath
> -        */
> -       public String getSubmittingComponentPath()
> -       {
> -               return submittingComponentPath;
> -       }
> -
> -       @Override
> -       public String toString()
> -       {
> -               StringBuilder sb = new StringBuilder(super.toString());
> -               sb.setCharAt(sb.length() - 1, ',');
> -               if (getComponentClass() != null)
> -               {
> -                       sb.append("componentClass=");
> -                       sb.append(getComponentClass().getName());
> -                       sb.append(',');
> -               }
> -               if (getComponentPath() != null)
> -               {
> -                       sb.append("componentPath=");
> -                       sb.append(getComponentPath());
> -                       sb.append(',');
> -               }
> -               sb.append("behaviorIndex=");
> -               sb.append(getBehaviorIndex());
> -               if (getBehaviorClass() != null)
> -               {
> -                       sb.append(",behaviorClass=");
> -                       sb.append(getBehaviorClass().getName());
> -               }
> -               if (getSubmittingComponentClass() != null)
> -               {
> -                       sb.append(",submittingComponentClass=");
> -                       sb.append(getSubmittingComponentClass().
> getName());
> -               }
> -               if (getSubmittingComponentPath() != null)
> -               {
> -                       sb.append(",submittingComponentPath=");
> -                       sb.append(getSubmittingComponentPath());
> -               }
> -               sb.append("}");
> -               return sb.toString();
> -       }
> -}
>
> http://git-wip-us.apache.org/repos/asf/wicket/blob/
> 8342e4ef/wicket-core/src/main/java/org/apache/wicket/core/
> request/handler/logger/ListenerLogData.java
> ----------------------------------------------------------------------
> diff --git a/wicket-core/src/main/java/org/apache/wicket/core/
> request/handler/logger/ListenerLogData.java b/wicket-core/src/main/java/
> org/apache/wicket/core/request/handler/logger/ListenerLogData.java
> new file mode 100644
> index 0000000..d06fe69
> --- /dev/null
> +++ b/wicket-core/src/main/java/org/apache/wicket/core/
> request/handler/logger/ListenerLogData.java
> @@ -0,0 +1,214 @@
> +/*
> + * 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.
> + */
> +package org.apache.wicket.core.request.handler.logger;
> +
> +import org.apache.wicket.Component;
> +import org.apache.wicket.behavior.Behavior;
> +import org.apache.wicket.core.request.handler.IPageAndComponentProvider;
> +import org.apache.wicket.markup.html.form.Form;
> +import org.apache.wicket.markup.html.form.IFormSubmitter;
> +import org.apache.wicket.request.component.IRequestableComponent;
> +
> +/**
> + * Contains logging data for component/listener-interface request
> handlers.
> + *
> + * @author Emond Papegaaij
> + */
> +public class ListenerLogData extends PageLogData
> +{
> +       private static final long serialVersionUID = 1L;
> +
> +       private final Class<? extends IRequestableComponent>
> componentClass;
> +       private final String componentPath;
> +       private final Integer behaviorIndex;
> +       private Class<? extends Behavior> behaviorClass;
> +       private Class<? extends IRequestableComponent>
> submittingComponentClass;
> +       private String submittingComponentPath;
> +
> +       /**
> +        * Construct.
> +        *
> +        * @param pageAndComponentProvider
> +        * @param listenerInterface
> +        * @param behaviorIndex
> +        */
> +       public ListenerLogData(IPageAndComponentProvider
> pageAndComponentProvider, Integer behaviorIndex)
> +       {
> +               super(pageAndComponentProvider);
> +               componentClass = tryToGetComponentClass(
> pageAndComponentProvider);
> +               componentPath = tryToGetComponentPath(
> pageAndComponentProvider);
> +               this.behaviorIndex = behaviorIndex;
> +               if (behaviorIndex != null && componentClass != null)
> +               {
> +                       try
> +                       {
> +                               behaviorClass = pageAndComponentProvider.
> getComponent()
> +                                       .getBehaviorById(behaviorIndex)
> +                                       .getClass();
> +                       }
> +                       catch (Exception ignore)
> +                       {
> +                               behaviorClass = null;
> +                       }
> +               }
> +               else
> +               {
> +                       behaviorClass = null;
> +               }
> +
> +               final Component formSubmitter =
> tryToGetFormSubmittingComponent(pageAndComponentProvider);
> +               if (formSubmitter != null)
> +               {
> +                       submittingComponentClass =
> formSubmitter.getClass();
> +                       submittingComponentPath = formSubmitter.
> getPageRelativePath();
> +               }
> +       }
> +
> +       private static Class<? extends IRequestableComponent>
> tryToGetComponentClass(
> +               IPageAndComponentProvider pageAndComponentProvider)
> +       {
> +               try
> +               {
> +                       return pageAndComponentProvider.
> getComponent().getClass();
> +               }
> +               catch (Exception e)
> +               {
> +                       // getComponent might fail if the page does not
> exist (ie session timeout)
> +                       return null;
> +               }
> +       }
> +
> +
> +       private static String tryToGetComponentPath(IPageAndComponentProvider
> pageAndComponentProvider)
> +       {
> +               try
> +               {
> +                       return pageAndComponentProvider.
> getComponentPath();
> +               }
> +               catch (Exception e)
> +               {
> +                       // getComponentPath might fail if the page does
> not exist (ie session timeout)
> +                       return null;
> +               }
> +       }
> +
> +       private static Component tryToGetFormSubmittingComponent(
> +               IPageAndComponentProvider pageAndComponentProvider)
> +       {
> +               try
> +               {
> +                       final IRequestableComponent component =
> pageAndComponentProvider.getComponent();
> +                       if (component instanceof Form)
> +                       {
> +                               final IFormSubmitter submitter =
> ((Form<?>)component).findSubmittingButton();
> +                               return submitter instanceof Component ?
> (Component)submitter : null;
> +                       }
> +                       return null;
> +               }
> +               catch (Exception e)
> +               {
> +                       // getComponent might fail if the page does not
> exist (ie session timeout)
> +                       return null;
> +               }
> +       }
> +
> +       /**
> +        * @return componentClass
> +        */
> +       public final Class<? extends IRequestableComponent>
> getComponentClass()
> +       {
> +               return componentClass;
> +       }
> +
> +       /**
> +        * @return componentPath
> +        */
> +       public final String getComponentPath()
> +       {
> +               return componentPath;
> +       }
> +
> +       /**
> +        * @return behaviorIndex
> +        */
> +       public final Integer getBehaviorIndex()
> +       {
> +               return behaviorIndex;
> +       }
> +
> +       /**
> +        * @return behaviorClass
> +        */
> +       public final Class<? extends Behavior> getBehaviorClass()
> +       {
> +               return behaviorClass;
> +       }
> +
> +       /**
> +        * @return submittingComponentClass
> +        */
> +       public Class<? extends IRequestableComponent>
> getSubmittingComponentClass()
> +       {
> +               return submittingComponentClass;
> +       }
> +
> +       /**
> +        * @return submittingComponentPath
> +        */
> +       public String getSubmittingComponentPath()
> +       {
> +               return submittingComponentPath;
> +       }
> +
> +       @Override
> +       public String toString()
> +       {
> +               StringBuilder sb = new StringBuilder(super.toString());
> +               sb.setCharAt(sb.length() - 1, ',');
> +               if (getComponentClass() != null)
> +               {
> +                       sb.append("componentClass=");
> +                       sb.append(getComponentClass().getName());
> +                       sb.append(',');
> +               }
> +               if (getComponentPath() != null)
> +               {
> +                       sb.append("componentPath=");
> +                       sb.append(getComponentPath());
> +                       sb.append(',');
> +               }
> +               sb.append("behaviorIndex=");
> +               sb.append(getBehaviorIndex());
> +               if (getBehaviorClass() != null)
> +               {
> +                       sb.append(",behaviorClass=");
> +                       sb.append(getBehaviorClass().getName());
> +               }
> +               if (getSubmittingComponentClass() != null)
> +               {
> +                       sb.append(",submittingComponentClass=");
> +                       sb.append(getSubmittingComponentClass().
> getName());
> +               }
> +               if (getSubmittingComponentPath() != null)
> +               {
> +                       sb.append(",submittingComponentPath=");
> +                       sb.append(getSubmittingComponentPath());
> +               }
> +               sb.append("}");
> +               return sb.toString();
> +       }
> +}
>
> http://git-wip-us.apache.org/repos/asf/wicket/blob/
> 8342e4ef/wicket-core/src/main/java/org/apache/wicket/core/request/mapper/
> AbstractBookmarkableMapper.java
> ----------------------------------------------------------------------
> diff --git a/wicket-core/src/main/java/org/apache/wicket/core/
> request/mapper/AbstractBookmarkableMapper.java
> b/wicket-core/src/main/java/org/apache/wicket/core/request/mapper/
> AbstractBookmarkableMapper.java
> index cb372d8..ecb50a2 100644
> --- a/wicket-core/src/main/java/org/apache/wicket/core/request/mapper/
> AbstractBookmarkableMapper.java
> +++ b/wicket-core/src/main/java/org/apache/wicket/core/request/mapper/
> AbstractBookmarkableMapper.java
> @@ -23,7 +23,7 @@ import org.apache.wicket.IRequestListener;
>  import org.apache.wicket.core.request.handler.
> BookmarkableListenerInterfaceRequestHandler;
>  import org.apache.wicket.core.request.handler.
> BookmarkablePageRequestHandler;
>  import org.apache.wicket.core.request.handler.IPageRequestHandler;
> -import org.apache.wicket.core.request.handler.
> ListenerInterfaceRequestHandler;
> +import org.apache.wicket.core.request.handler.ListenerRequestHandler;
>  import org.apache.wicket.core.request.handler.PageAndComponentProvider;
>  import org.apache.wicket.core.request.handler.PageProvider;
>  import org.apache.wicket.core.request.handler.RenderPageRequestHandler;
> @@ -304,7 +304,7 @@ public abstract class AbstractBookmarkableMapper
> extends AbstractComponentMapper
>
>                 checkExpiration(provider, pageInfo);
>
> -               return new ListenerInterfaceRequestHandler(provider,
> componentInfo.getBehaviorId());
> +               return new ListenerRequestHandler(provider,
> componentInfo.getBehaviorId());
>         }
>
>         private void checkExpiration(PageProvider provider, PageInfo
> pageInfo)
>
> http://git-wip-us.apache.org/repos/asf/wicket/blob/
> 8342e4ef/wicket-core/src/main/java/org/apache/wicket/core/
> request/mapper/MountedMapper.java
> ----------------------------------------------------------------------
> diff --git a/wicket-core/src/main/java/org/apache/wicket/core/
> request/mapper/MountedMapper.java b/wicket-core/src/main/java/
> org/apache/wicket/core/request/mapper/MountedMapper.java
> index 1b6aa28..f9edf11 100644
> --- a/wicket-core/src/main/java/org/apache/wicket/core/
> request/mapper/MountedMapper.java
> +++ b/wicket-core/src/main/java/org/apache/wicket/core/
> request/mapper/MountedMapper.java
> @@ -18,7 +18,7 @@ package org.apache.wicket.core.request.mapper;
>
>  import java.util.function.Supplier;
>
> -import org.apache.wicket.core.request.handler.
> ListenerInterfaceRequestHandler;
> +import org.apache.wicket.core.request.handler.ListenerRequestHandler;
>  import org.apache.wicket.request.IRequestHandler;
>  import org.apache.wicket.request.Request;
>  import org.apache.wicket.request.Url;
> @@ -158,10 +158,10 @@ public class MountedMapper extends
> AbstractBookmarkableMapper
>         {
>                 Url url = super.mapHandler(requestHandler);
>
> -               if (url == null && requestHandler instanceof
> ListenerInterfaceRequestHandler &&
> +               if (url == null && requestHandler instanceof
> ListenerRequestHandler &&
>                         getRecreateMountedPagesAfterExpiry())
>                 {
> -                       ListenerInterfaceRequestHandler handler = (
> ListenerInterfaceRequestHandler)requestHandler;
> +                       ListenerRequestHandler handler =
> (ListenerRequestHandler)requestHandler;
>                         IRequestablePage page = handler.getPage();
>                         if (checkPageInstance(page))
>                         {
>
> http://git-wip-us.apache.org/repos/asf/wicket/blob/
> 8342e4ef/wicket-core/src/main/java/org/apache/wicket/core/request/mapper/
> PageInstanceMapper.java
> ----------------------------------------------------------------------
> diff --git a/wicket-core/src/main/java/org/apache/wicket/core/
> request/mapper/PageInstanceMapper.java b/wicket-core/src/main/java/
> org/apache/wicket/core/request/mapper/PageInstanceMapper.java
> index e983131..f90ea87 100644
> --- a/wicket-core/src/main/java/org/apache/wicket/core/request/mapper/
> PageInstanceMapper.java
> +++ b/wicket-core/src/main/java/org/apache/wicket/core/request/mapper/
> PageInstanceMapper.java
> @@ -16,7 +16,7 @@
>   */
>  package org.apache.wicket.core.request.mapper;
>
> -import org.apache.wicket.core.request.handler.
> ListenerInterfaceRequestHandler;
> +import org.apache.wicket.core.request.handler.ListenerRequestHandler;
>  import org.apache.wicket.core.request.handler.PageAndComponentProvider;
>  import org.apache.wicket.core.request.handler.PageProvider;
>  import org.apache.wicket.core.request.handler.RenderPageRequestHandler;
> @@ -85,7 +85,7 @@ public class PageInstanceMapper extends
> AbstractComponentMapper
>
>                                         provider.setPageSource(
> getContext());
>
> -                                       return new
> ListenerInterfaceRequestHandler(provider, componentInfo.getBehaviorId());
> +                                       return new 
> ListenerRequestHandler(provider,
> componentInfo.getBehaviorId());
>                                 }
>                         }
>                 }
> @@ -107,9 +107,9 @@ public class PageInstanceMapper extends
> AbstractComponentMapper
>                         PageInfo i = new PageInfo(page.getPageId());
>                         info = new PageComponentInfo(i, null);
>                 }
> -               else if (requestHandler instanceof
> ListenerInterfaceRequestHandler)
> +               else if (requestHandler instanceof ListenerRequestHandler)
>                 {
> -                       ListenerInterfaceRequestHandler handler = (
> ListenerInterfaceRequestHandler)requestHandler;
> +                       ListenerRequestHandler handler =
> (ListenerRequestHandler)requestHandler;
>                         IRequestablePage page = handler.getPage();
>                         String componentPath = handler.getComponentPath();
>
>
> http://git-wip-us.apache.org/repos/asf/wicket/blob/
> 8342e4ef/wicket-core/src/main/java/org/apache/wicket/util/
> tester/BaseWicketTester.java
> ----------------------------------------------------------------------
> diff --git 
> a/wicket-core/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java
> b/wicket-core/src/main/java/org/apache/wicket/util/tester/
> BaseWicketTester.java
> index b5a15ec..0b30c92 100644
> --- a/wicket-core/src/main/java/org/apache/wicket/util/tester/
> BaseWicketTester.java
> +++ b/wicket-core/src/main/java/org/apache/wicket/util/tester/
> BaseWicketTester.java
> @@ -62,7 +62,7 @@ import org.apache.wicket.ajax.markup.
> html.form.AjaxSubmitLink;
>  import org.apache.wicket.behavior.AbstractAjaxBehavior;
>  import org.apache.wicket.core.request.handler.
> BookmarkablePageRequestHandler;
>  import org.apache.wicket.core.request.handler.IPageProvider;
> -import org.apache.wicket.core.request.handler.
> ListenerInterfaceRequestHandler;
> +import org.apache.wicket.core.request.handler.ListenerRequestHandler;
>  import org.apache.wicket.core.request.handler.PageAndComponentProvider;
>  import org.apache.wicket.core.request.handler.PageProvider;
>  import org.apache.wicket.core.request.handler.RenderPageRequestHandler;
> @@ -1093,7 +1093,7 @@ public class BaseWicketTester
>
>                 // there are two ways to do this. RequestCycle could be
> forced to call the handler
>                 // directly but constructing and parsing the URL increases
> the chance of triggering bugs
> -               IRequestHandler handler = new
> ListenerInterfaceRequestHandler(new PageAndComponentProvider(
> +               IRequestHandler handler = new ListenerRequestHandler(new
> PageAndComponentProvider(
>                         component.getPage(), component));
>
>                 Url url = urlFor(handler);
> @@ -1119,7 +1119,7 @@ public class BaseWicketTester
>
>                 // there are two ways to do this. RequestCycle could be
> forced to call the handler
>                 // directly but constructing and parsing the URL increases
> the chance of triggering bugs
> -               IRequestHandler handler = new
> ListenerInterfaceRequestHandler(new PageAndComponentProvider(
> +               IRequestHandler handler = new ListenerRequestHandler(new
> PageAndComponentProvider(
>                         component.getPage(), component));
>
>                 processRequest(handler);
>
> http://git-wip-us.apache.org/repos/asf/wicket/blob/
> 8342e4ef/wicket-core/src/test/java/org/apache/wicket/
> BehaviorRequestTest.java
> ----------------------------------------------------------------------
> diff --git 
> a/wicket-core/src/test/java/org/apache/wicket/BehaviorRequestTest.java
> b/wicket-core/src/test/java/org/apache/wicket/BehaviorRequestTest.java
> index 909ee23..1e5227c 100644
> --- a/wicket-core/src/test/java/org/apache/wicket/BehaviorRequestTest.java
> +++ b/wicket-core/src/test/java/org/apache/wicket/BehaviorRequestTest.java
> @@ -18,7 +18,7 @@ package org.apache.wicket;
>
>  import org.apache.wicket.behavior.Behavior;
>  import org.apache.wicket.core.request.handler.IPageAndComponentProvider;
> -import org.apache.wicket.core.request.handler.
> ListenerInterfaceRequestHandler;
> +import org.apache.wicket.core.request.handler.ListenerRequestHandler;
>  import org.apache.wicket.core.request.handler.
> ListenerInvocationNotAllowedException;
>  import org.apache.wicket.core.request.handler.PageAndComponentProvider;
>  import org.apache.wicket.markup.ComponentTag;
> @@ -83,7 +83,7 @@ public class BehaviorRequestTest extends WicketTestCase
>                 final int index = page.container.getBehaviorId(
> behaviorUnderTest);
>                 final IPageAndComponentProvider provider = new
> PageAndComponentProvider(page,
>                         page.container);
> -               final IRequestHandler handler = new
> ListenerInterfaceRequestHandler(provider, index);
> +               final IRequestHandler handler = new 
> ListenerRequestHandler(provider,
> index);
>
>                 return tester.urlFor(handler).toString();
>         }
>
> http://git-wip-us.apache.org/repos/asf/wicket/blob/
> 8342e4ef/wicket-core/src/test/java/org/apache/wicket/
> ComponentWithLazyModelCreationTest.java
> ----------------------------------------------------------------------
> diff --git a/wicket-core/src/test/java/org/apache/wicket/
> ComponentWithLazyModelCreationTest.java b/wicket-core/src/test/java/
> org/apache/wicket/ComponentWithLazyModelCreationTest.java
> index 59cd19e..9361351 100644
> --- a/wicket-core/src/test/java/org/apache/wicket/
> ComponentWithLazyModelCreationTest.java
> +++ b/wicket-core/src/test/java/org/apache/wicket/
> ComponentWithLazyModelCreationTest.java
> @@ -17,7 +17,7 @@
>  package org.apache.wicket;
>
>  import org.apache.wicket.behavior.Behavior;
> -import org.apache.wicket.core.request.handler.
> ListenerInterfaceRequestHandler;
> +import org.apache.wicket.core.request.handler.ListenerRequestHandler;
>  import org.apache.wicket.core.request.handler.PageAndComponentProvider;
>  import org.apache.wicket.markup.ComponentTag;
>  import org.apache.wicket.markup.IMarkupResourceStreamProvider;
> @@ -120,7 +120,7 @@ public class ComponentWithLazyModelCreationTest
> extends WicketTestCase
>                 {
>                         super.onComponentTag(component, tag);
>                         int index = component.getBehaviorId(this);
> -                       IRequestHandler handler = new
> ListenerInterfaceRequestHandler(
> +                       IRequestHandler handler = new
> ListenerRequestHandler(
>                                 new 
> PageAndComponentProvider(component.getPage(),
> component), index);
>                         statefullUrl = component.getRequestCycle().
> mapUrlFor(handler).toString();
>                 }
>
> http://git-wip-us.apache.org/repos/asf/wicket/blob/
> 8342e4ef/wicket-core/src/test/java/org/apache/wicket/core/request/handler/
> ListenerInterfaceRequestHandlerTest.java
> ----------------------------------------------------------------------
> diff --git a/wicket-core/src/test/java/org/apache/wicket/core/
> request/handler/ListenerInterfaceRequestHandlerTest.java
> b/wicket-core/src/test/java/org/apache/wicket/core/request/handler/
> ListenerInterfaceRequestHandlerTest.java
> deleted file mode 100644
> index d1c0592..0000000
> --- a/wicket-core/src/test/java/org/apache/wicket/core/request/handler/
> ListenerInterfaceRequestHandlerTest.java
> +++ /dev/null
> @@ -1,208 +0,0 @@
> -/*
> - * 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.
> - */
> -package org.apache.wicket.core.request.handler;
> -
> -import static org.hamcrest.Matchers.is;
> -
> -import java.io.IOException;
> -import java.text.ParseException;
> -
> -import org.apache.wicket.MarkupContainer;
> -import org.apache.wicket.Page;
> -import org.apache.wicket.Session;
> -import org.apache.wicket.WicketRuntimeException;
> -import org.apache.wicket.ajax.AjaxRequestTarget;
> -import org.apache.wicket.ajax.markup.html.AjaxLink;
> -import org.apache.wicket.core.request.mapper.MountedMapper;
> -import org.apache.wicket.markup.IMarkupFragment;
> -import org.apache.wicket.markup.IMarkupResourceStreamProvider;
> -import org.apache.wicket.markup.Markup;
> -import org.apache.wicket.markup.html.WebPage;
> -import org.apache.wicket.markup.html.link.Link;
> -import org.apache.wicket.markup.html.link.StatelessLink;
> -import org.apache.wicket.request.Url;
> -import org.apache.wicket.request.mapper.parameter.PageParameters;
> -import org.apache.wicket.resource.DummyPage;
> -import org.apache.wicket.util.resource.IResourceStream;
> -import org.apache.wicket.util.resource.ResourceStreamNotFoundException;
> -import org.apache.wicket.util.resource.StringResourceStream;
> -import org.apache.wicket.util.tester.WicketTestCase;
> -import org.junit.Test;
> -
> -/**
> - * Tests for {@link ListenerInterfaceRequestHandler}
> - */
> -public class ListenerInterfaceRequestHandlerTest extends WicketTestCase
> -{
> -
> -       /**
> -        * WICKET-5466
> -        */
> -       @Test
> -       public void removedComponent()
> -       {
> -               // non-existing component on fresh page is ignored
> -               PageAndComponentProvider freshPage = new
> PageAndComponentProvider(DummyPage.class, null,
> -                       "foo");
> -               new ListenerInterfaceRequestHandle
> r(freshPage).respond(tester
> -                       .getRequestCycle());
> -
> -               // non-existing component on old page fails
> -               PageAndComponentProvider oldPage = new
> PageAndComponentProvider(new DummyPage(), "foo");
> -               try
> -               {
> -                       new ListenerInterfaceRequestHandler(oldPage)
> -                               .respond(tester.getRequestCycle());
> -                       fail();
> -               }
> -               catch (WicketRuntimeException ex)
> -               {
> -                       assertEquals("Component 'foo' has been removed
> from page.", ex.getMessage());
> -               }
> -       }
> -
> -       /**
> -        * https://issues.apache.org/jira/browse/WICKET-4116
> -        *
> -        * @throws Exception
> -        */
> -       @Test
> -       public void recreateThePageWhenListenereIn
> terfaceIsExecutedOnExpiredPage() throws Exception
> -       {
> -               tester.getApplication().mountPage("ajaxLink",
> AjaxLinkExpirePage.class);
> -               AjaxLinkExpirePage page = tester.startPage(
> AjaxLinkExpirePage.class);
> -
> -               int initialPageId = page.getPageId();
> -
> -               Url urlToAjaxLink = tester.urlFor(page.link);
> -               Session session = tester.getSession();
> -               session.clear();
> -
> -               // fire a request to the ajax link on the expired page
> -               executeAjaxUrlWithLastBaseUrl(urlToAjaxLink);
> -
> -               Page lastRenderedPage = tester.getLastRenderedPage();
> -               int lastRenderedPageId = lastRenderedPage.getPageId();
> -               assertTrue("A new page must be create ",
> lastRenderedPageId > initialPageId);
> -       }
> -
> -       private void executeAjaxUrlWithLastBaseUrl(Url url) throws
> IOException,
> -               ResourceStreamNotFoundException, ParseException
> -       {
> -               tester.getRequest().setUrl(url);
> -               tester.getRequest().addHeader("Wicket-Ajax-BaseURL",
> -                       tester.getWicketAjaxBaseUrlEncodedInL
> astResponse());
> -               tester.getRequest().addHeader("Wicket-Ajax", "true");
> -               tester.processRequest();
> -       }
> -
> -       /**
> -        * Test page for #recreateThePageWhenListenereIn
> terfaceIsExecutedOnExpiredPage()
> -        */
> -       public static class AjaxLinkExpirePage extends WebPage implements
> IMarkupResourceStreamProvider
> -       {
> -               private static final long serialVersionUID = 1L;
> -
> -               private AjaxLink<Void> link;
> -
> -               /**
> -                * Constructor.
> -                */
> -               public AjaxLinkExpirePage()
> -               {
> -                       add(link = new AjaxLink<Void>("test")
> -                       {
> -                               private static final long serialVersionUID
> = 1L;
> -
> -                               @Override
> -                               public void onClick(AjaxRequestTarget
> target)
> -                               {
> -                                       System.err.println("clicked");
> -                               }
> -                       });
> -               }
> -
> -               @Override
> -               public IResourceStream getMarkupResourceStream(MarkupContainer
> container,
> -                       Class<?> containerClass)
> -               {
> -
> -                       return new StringResourceStream(
> -                               "<html><body><a wicket:id='test'>Link</a></
> body></html>");
> -               }
> -
> -       }
> -
> -       /**
> -        * Testcase for WICKET-4185
> -        */
> -       @Test
> -       public void isPageInstanceCreatedOnClassLinks()
> -       {
> -               PageAndComponentProvider provider = new
> PageAndComponentProvider(Page.class, "link");
> -               ListenerInterfaceRequestHandler handler = new
> ListenerInterfaceRequestHandler(provider);
> -               assertFalse("Handler should not report a page instance is
> available ",
> -                       handler.isPageInstanceCreated());
> -       }
> -
> -       @Test
> -       public void skipListenerIfExpiredPage()
> -       {
> -               tester.getApplication().getRootRequestMapperAsCompound()
> .add(new MountedMapper("/segment", NotExpiredPage.class));
> -               tester.startPage(NotExpiredPage.class);
> -               tester.clickLink("statelessLink");
> -               NotExpiredPage page = (NotExpiredPage)tester.
> getLastRenderedPage();
> -               assertThat(page.invoked, is(true));
> -       }
> -
> -       public static class NotExpiredPage extends WebPage
> -       {
> -               public boolean invoked;
> -
> -               public NotExpiredPage(PageParameters pageParameters)
> -               {
> -                       super(pageParameters);
> -                       add(new StatelessLink<Object>("statelessLink")
> -                       {
> -                               public void onClick()
> -                               {
> -                                       invoked = true;
> -                               }
> -                       });
> -                       add(new Link<Object>("statefullLink")
> -                       {
> -                               public void onClick()
> -                               {
> -                               }
> -                       });
> -               }
> -
> -               @Override
> -               public IMarkupFragment getMarkup()
> -               {
> -                       return Markup.of(
> -                               "<html><body><a
> wicket:id=\"statelessLink\"></a><a wicket:id=\"statefullLink\"></
> a></body></html>");
> -               }
> -
> -               @Override
> -               protected void onBeforeRender()
> -               {
> -                       get("statefullLink").setVisible(false);
> -                       super.onBeforeRender();
> -               }
> -       }
> -}
>
> http://git-wip-us.apache.org/repos/asf/wicket/blob/
> 8342e4ef/wicket-core/src/test/java/org/apache/wicket/core/request/handler/
> ListenerRequestHandlerTest.java
> ----------------------------------------------------------------------
> diff --git a/wicket-core/src/test/java/org/apache/wicket/core/
> request/handler/ListenerRequestHandlerTest.java
> b/wicket-core/src/test/java/org/apache/wicket/core/request/handler/
> ListenerRequestHandlerTest.java
> new file mode 100644
> index 0000000..b212c9c
> --- /dev/null
> +++ b/wicket-core/src/test/java/org/apache/wicket/core/request/handler/
> ListenerRequestHandlerTest.java
> @@ -0,0 +1,208 @@
> +/*
> + * 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.
> + */
> +package org.apache.wicket.core.request.handler;
> +
> +import static org.hamcrest.Matchers.is;
> +
> +import java.io.IOException;
> +import java.text.ParseException;
> +
> +import org.apache.wicket.MarkupContainer;
> +import org.apache.wicket.Page;
> +import org.apache.wicket.Session;
> +import org.apache.wicket.WicketRuntimeException;
> +import org.apache.wicket.ajax.AjaxRequestTarget;
> +import org.apache.wicket.ajax.markup.html.AjaxLink;
> +import org.apache.wicket.core.request.mapper.MountedMapper;
> +import org.apache.wicket.markup.IMarkupFragment;
> +import org.apache.wicket.markup.IMarkupResourceStreamProvider;
> +import org.apache.wicket.markup.Markup;
> +import org.apache.wicket.markup.html.WebPage;
> +import org.apache.wicket.markup.html.link.Link;
> +import org.apache.wicket.markup.html.link.StatelessLink;
> +import org.apache.wicket.request.Url;
> +import org.apache.wicket.request.mapper.parameter.PageParameters;
> +import org.apache.wicket.resource.DummyPage;
> +import org.apache.wicket.util.resource.IResourceStream;
> +import org.apache.wicket.util.resource.ResourceStreamNotFoundException;
> +import org.apache.wicket.util.resource.StringResourceStream;
> +import org.apache.wicket.util.tester.WicketTestCase;
> +import org.junit.Test;
> +
> +/**
> + * Tests for {@link ListenerRequestHandler}
> + */
> +public class ListenerRequestHandlerTest extends WicketTestCase
> +{
> +
> +       /**
> +        * WICKET-5466
> +        */
> +       @Test
> +       public void removedComponent()
> +       {
> +               // non-existing component on fresh page is ignored
> +               PageAndComponentProvider freshPage = new
> PageAndComponentProvider(DummyPage.class, null,
> +                       "foo");
> +               new ListenerRequestHandler(freshPage).respond(tester
> +                       .getRequestCycle());
> +
> +               // non-existing component on old page fails
> +               PageAndComponentProvider oldPage = new
> PageAndComponentProvider(new DummyPage(), "foo");
> +               try
> +               {
> +                       new ListenerRequestHandler(oldPage)
> +                               .respond(tester.getRequestCycle());
> +                       fail();
> +               }
> +               catch (WicketRuntimeException ex)
> +               {
> +                       assertEquals("Component 'foo' has been removed
> from page.", ex.getMessage());
> +               }
> +       }
> +
> +       /**
> +        * https://issues.apache.org/jira/browse/WICKET-4116
> +        *
> +        * @throws Exception
> +        */
> +       @Test
> +       public void recreateThePageWhenListenereIn
> terfaceIsExecutedOnExpiredPage() throws Exception
> +       {
> +               tester.getApplication().mountPage("ajaxLink",
> AjaxLinkExpirePage.class);
> +               AjaxLinkExpirePage page = tester.startPage(
> AjaxLinkExpirePage.class);
> +
> +               int initialPageId = page.getPageId();
> +
> +               Url urlToAjaxLink = tester.urlFor(page.link);
> +               Session session = tester.getSession();
> +               session.clear();
> +
> +               // fire a request to the ajax link on the expired page
> +               executeAjaxUrlWithLastBaseUrl(urlToAjaxLink);
> +
> +               Page lastRenderedPage = tester.getLastRenderedPage();
> +               int lastRenderedPageId = lastRenderedPage.getPageId();
> +               assertTrue("A new page must be create ",
> lastRenderedPageId > initialPageId);
> +       }
> +
> +       private void executeAjaxUrlWithLastBaseUrl(Url url) throws
> IOException,
> +               ResourceStreamNotFoundException, ParseException
> +       {
> +               tester.getRequest().setUrl(url);
> +               tester.getRequest().addHeader("Wicket-Ajax-BaseURL",
> +                       tester.getWicketAjaxBaseUrlEncodedInL
> astResponse());
> +               tester.getRequest().addHeader("Wicket-Ajax", "true");
> +               tester.processRequest();
> +       }
> +
> +       /**
> +        * Test page for #recreateThePageWhenListenereIn
> terfaceIsExecutedOnExpiredPage()
> +        */
> +       public static class AjaxLinkExpirePage extends WebPage implements
> IMarkupResourceStreamProvider
> +       {
> +               private static final long serialVersionUID = 1L;
> +
> +               private AjaxLink<Void> link;
> +
> +               /**
> +                * Constructor.
> +                */
> +               public AjaxLinkExpirePage()
> +               {
> +                       add(link = new AjaxLink<Void>("test")
> +                       {
> +                               private static final long serialVersionUID
> = 1L;
> +
> +                               @Override
> +                               public void onClick(AjaxRequestTarget
> target)
> +                               {
> +                                       System.err.println("clicked");
> +                               }
> +                       });
> +               }
> +
> +               @Override
> +               public IResourceStream getMarkupResourceStream(MarkupContainer
> container,
> +                       Class<?> containerClass)
> +               {
> +
> +                       return new StringResourceStream(
> +                               "<html><body><a wicket:id='test'>Link</a></
> body></html>");
> +               }
> +
> +       }
> +
> +       /**
> +        * Testcase for WICKET-4185
> +        */
> +       @Test
> +       public void isPageInstanceCreatedOnClassLinks()
> +       {
> +               PageAndComponentProvider provider = new
> PageAndComponentProvider(Page.class, "link");
> +               ListenerRequestHandler handler = new
> ListenerRequestHandler(provider);
> +               assertFalse("Handler should not report a page instance is
> available ",
> +                       handler.isPageInstanceCreated());
> +       }
> +
> +       @Test
> +       public void skipListenerIfExpiredPage()
> +       {
> +               tester.getApplication().getRootRequestMapperAsCompound()
> .add(new MountedMapper("/segment", NotExpiredPage.class));
> +               tester.startPage(NotExpiredPage.class);
> +               tester.clickLink("statelessLink");
> +               NotExpiredPage page = (NotExpiredPage)tester.
> getLastRenderedPage();
> +               assertThat(page.invoked, is(true));
> +       }
> +
> +       public static class NotExpiredPage extends WebPage
> +       {
> +               public boolean invoked;
> +
> +               public NotExpiredPage(PageParameters pageParameters)
> +               {
> +                       super(pageParameters);
> +                       add(new StatelessLink<Object>("statelessLink")
> +                       {
> +                               public void onClick()
> +                               {
> +                                       invoked = true;
> +                               }
> +                       });
> +                       add(new Link<Object>("statefullLink")
> +                       {
> +                               public void onClick()
> +                               {
> +                               }
> +                       });
> +               }
> +
> +               @Override
> +               public IMarkupFragment getMarkup()
> +               {
> +                       return Markup.of(
> +                               "<html><body><a
> wicket:id=\"statelessLink\"></a><a wicket:id=\"statefullLink\"></
> a></body></html>");
> +               }
> +
> +               @Override
> +               protected void onBeforeRender()
> +               {
> +                       get("statefullLink").setVisible(false);
> +                       super.onBeforeRender();
> +               }
> +       }
> +}
>
> http://git-wip-us.apache.org/repos/asf/wicket/blob/
> 8342e4ef/wicket-core/src/test/java/org/apache/wicket/core/request/mapper/
> BookmarkableMapperTest.java
> ----------------------------------------------------------------------
> diff --git a/wicket-core/src/test/java/org/apache/wicket/core/
> request/mapper/BookmarkableMapperTest.java b/wicket-core/src/test/java/
> org/apache/wicket/core/request/mapper/BookmarkableMapperTest.java
> index f4fc1aa..e22210b 100644
> --- a/wicket-core/src/test/java/org/apache/wicket/core/request/mapper/
> BookmarkableMapperTest.java
> +++ b/wicket-core/src/test/java/org/apache/wicket/core/request/mapper/
> BookmarkableMapperTest.java
> @@ -28,7 +28,7 @@ import org.apache.wicket.core.request.handler.
> BookmarkableListenerInterfaceReque
>  import org.apache.wicket.core.request.handler.
> BookmarkablePageRequestHandler;
>  import org.apache.wicket.core.request.handler.IPageProvider;
>  import org.apache.wicket.core.request.handler.IPageRequestHandler;
> -import org.apache.wicket.core.request.handler.
> ListenerInterfaceRequestHandler;
> +import org.apache.wicket.core.request.handler.ListenerRequestHandler;
>  import org.apache.wicket.core.request.handler.PageAndComponentProvider;
>  import org.apache.wicket.core.request.handler.PageProvider;
>  import org.apache.wicket.core.request.handler.RenderPageRequestHandler;
> @@ -177,9 +177,9 @@ public class BookmarkableMapperTest extends
> AbstractMapperTest
>                 Url url = Url.parse("wicket/bookmarkable/" +
> PAGE_CLASS_NAME + "?15--foo-bar");
>                 IRequestHandler handler = encoder.mapRequest(getRequest(
> url));
>
> -               assertThat(handler, instanceOf(
> ListenerInterfaceRequestHandler.class));
> +               assertThat(handler, instanceOf(
> ListenerRequestHandler.class));
>
> -               ListenerInterfaceRequestHandler h = (
> ListenerInterfaceRequestHandler)handler;
> +               ListenerRequestHandler h = (ListenerRequestHandler)
> handler;
>
>                 IRequestablePage page = h.getPage();
>                 checkPage(page, 15);
> @@ -198,8 +198,8 @@ public class BookmarkableMapperTest extends
> AbstractMapperTest
>                         + "/i1/i2?15--foo-bar&a=b&b=c");
>                 IRequestHandler handler = encoder.mapRequest(getRequest(
> url));
>
> -               assertThat(handler, instanceOf(
> ListenerInterfaceRequestHandler.class));
> -               ListenerInterfaceRequestHandler h = (
> ListenerInterfaceRequestHandler)handler;
> +               assertThat(handler, instanceOf(
> ListenerRequestHandler.class));
> +               ListenerRequestHandler h = (ListenerRequestHandler)
> handler;
>
>                 IRequestablePage page = h.getPage();
>                 checkPage(page, 15);
> @@ -222,9 +222,9 @@ public class BookmarkableMapperTest extends
> AbstractMapperTest
>                         + "?15-ILinkListener.4-foo-bar");
>                 IRequestHandler handler = encoder.mapRequest(getRequest(
> url));
>
> -               assertThat(handler, instanceOf(
> ListenerInterfaceRequestHandler.class));
> +               assertThat(handler, instanceOf(
> ListenerRequestHandler.class));
>
> -               ListenerInterfaceRequestHandler h = (
> ListenerInterfaceRequestHandler)handler;
> +               ListenerRequestHandler h = (ListenerRequestHandler)
> handler;
>
>                 IRequestablePage page = h.getPage();
>                 checkPage(page, 15);
> @@ -246,8 +246,8 @@ public class BookmarkableMapperTest extends
> AbstractMapperTest
>
>                 IRequestHandler handler = encoder.mapRequest(getRequest(
> url));
>
> -               assertThat(handler, instanceOf(
> ListenerInterfaceRequestHandler.class));
> -               ListenerInterfaceRequestHandler h = (
> ListenerInterfaceRequestHandler)handler;
> +               assertThat(handler, instanceOf(
> ListenerRequestHandler.class));
> +               ListenerRequestHandler h = (ListenerRequestHandler)
> handler;
>
>                 IRequestablePage page = h.getPage();
>                 assertEquals(page.getRenderCount(), 5);
>
> http://git-wip-us.apache.org/repos/asf/wicket/blob/
> 8342e4ef/wicket-core/src/test/java/org/apache/wicket/core/request/mapper/
> CryptoMapperTest.java
> ----------------------------------------------------------------------
> diff --git a/wicket-core/src/test/java/org/apache/wicket/core/
> request/mapper/CryptoMapperTest.java b/wicket-core/src/test/java/
> org/apache/wicket/core/request/mapper/CryptoMapperTest.java
> index 98696fd..f87dcc8 100644
> --- a/wicket-core/src/test/java/org/apache/wicket/core/request/mapper/
> CryptoMapperTest.java
> +++ b/wicket-core/src/test/java/org/apache/wicket/core/request/mapper/
> CryptoMapperTest.java
> @@ -22,7 +22,7 @@ import java.util.function.Supplier;
>
>  import org.apache.wicket.MockPage;
>  import org.apache.wicket.core.request.handler.
> BookmarkableListenerInterfaceRequestHandler;
> -import org.apache.wicket.core.request.handler.
> ListenerInterfaceRequestHandler;
> +import org.apache.wicket.core.request.handler.ListenerRequestHandler;
>  import org.apache.wicket.core.request.handler.PageAndComponentProvider;
>  import org.apache.wicket.core.request.handler.PageProvider;
>  import org.apache.wicket.core.request.handler.RenderPageRequestHandler;
> @@ -358,7 +358,7 @@ public class CryptoMapperTest extends
> AbstractMapperTest
>                 final String componentPath = "link";
>
>                 PageAndComponentProvider provider = new
> PageAndComponentProvider(Page1.class, componentPath);
> -               IRequestHandler requestHandler = new
> ListenerInterfaceRequestHandler(provider);
> +               IRequestHandler requestHandler = new
> ListenerRequestHandler(provider);
>
>                 Url plainUrl = mapper.getDelegateMapper().
> mapHandler(requestHandler);
>                 assertTrue(plainUrl.toString().startsWith(MOUNTED_URL));
> @@ -391,9 +391,9 @@ public class CryptoMapperTest extends
> AbstractMapperTest
>
>                 requestHandler = unwrapRequestHandlerDelegate(
> requestHandler);
>
> -               assertThat(requestHandler, instanceOf(
> ListenerInterfaceRequestHandler.class));
> +               assertThat(requestHandler, instanceOf(
> ListenerRequestHandler.class));
>
> -               ListenerInterfaceRequestHandler handler = (
> ListenerInterfaceRequestHandler) requestHandler;
> +               ListenerRequestHandler handler = (ListenerRequestHandler)
> requestHandler;
>                 assertEquals(componentPath, handler.getComponentPath());
>                 assertEquals(Page1.class, handler.getPageClass());
>
> @@ -407,9 +407,9 @@ public class CryptoMapperTest extends
> AbstractMapperTest
>
>                 requestHandler = unwrapRequestHandlerDelegate(
> requestHandler);
>
> -               assertThat(requestHandler, instanceOf(
> ListenerInterfaceRequestHandler.class));
> +               assertThat(requestHandler, instanceOf(
> ListenerRequestHandler.class));
>
> -               handler = (ListenerInterfaceRequestHandler)
> requestHandler;
> +               handler = (ListenerRequestHandler) requestHandler;
>                 assertEquals(componentPath, handler.getComponentPath());
>                 assertEquals(Page1.class, handler.getPageClass());
>         }
> @@ -603,7 +603,7 @@ public class CryptoMapperTest extends
> AbstractMapperTest
>                 MockPage page = new MockPage();
>                 IRequestableComponent c = page.get("foo:bar");
>                 PageAndComponentProvider provider = new
> PageAndComponentProvider(page, c);
> -               IRequestHandler handler = new
> ListenerInterfaceRequestHandler(provider);
> +               IRequestHandler handler = new ListenerRequestHandler(
> provider);
>
>                 Url url = mapper.mapHandler(handler);
>                 url.addQueryParameter("q", "foo");
>
> http://git-wip-us.apache.org/repos/asf/wicket/blob/
> 8342e4ef/wicket-core/src/test/java/org/apache/wicket/core/request/mapper/
> MountedMapperTest.java
> ----------------------------------------------------------------------
> diff --git a/wicket-core/src/test/java/org/apache/wicket/core/
> request/mapper/MountedMapperTest.java b/wicket-core/src/test/java/
> org/apache/wicket/core/request/mapper/MountedMapperTest.java
> index d92cc83..f19d866 100644
> --- a/wicket-core/src/test/java/org/apache/wicket/core/request/mapper/
> MountedMapperTest.java
> +++ b/wicket-core/src/test/java/org/apache/wicket/core/request/mapper/
> MountedMapperTest.java
> @@ -23,7 +23,7 @@ import org.apache.wicket.core.request.handler.
> BookmarkableListenerInterfaceReque
>  import org.apache.wicket.core.request.handler.
> BookmarkablePageRequestHandler;
>  import org.apache.wicket.core.request.handler.IPageProvider;
>  import org.apache.wicket.core.request.handler.IPageRequestHandler;
> -import org.apache.wicket.core.request.handler.
> ListenerInterfaceRequestHandler;
> +import org.apache.wicket.core.request.handler.ListenerRequestHandler;
>  import org.apache.wicket.core.request.handler.PageAndComponentProvider;
>  import org.apache.wicket.core.request.handler.PageProvider;
>  import org.apache.wicket.core.request.handler.RenderPageRequestHandler;
> @@ -210,9 +210,9 @@ public class MountedMapperTest extends
> AbstractMapperTest
>                 Url url = Url.parse("some/mount/path?15--foo-bar");
>                 IRequestHandler handler = encoder.mapRequest(getRequest(
> url));
>
> -               assertThat(handler, instanceOf(
> ListenerInterfaceRequestHandler.class));
> +               assertThat(handler, instanceOf(
> ListenerRequestHandler.class));
>
> -               ListenerInterfaceRequestHandler h = (
> ListenerInterfaceRequestHandler)handler;
> +               ListenerRequestHandler h = (ListenerRequestHandler)
> handler;
>
>                 IRequestablePage page = h.getPage();
>                 checkPage(page, 15);
> @@ -230,8 +230,8 @@ public class MountedMapperTest extends
> AbstractMapperTest
>                 Url url = Url.parse("some/mount/path/i1/
> i2?15--foo-bar&a=b&b=c");
>                 IRequestHandler handler = encoder.mapRequest(getRequest(
> url));
>
> -               assertThat(handler, instanceOf(
> ListenerInterfaceRequestHandler.class));
> -               ListenerInterfaceRequestHandler h = (
> ListenerInterfaceRequestHandler)handler;
> +               assertThat(handler, instanceOf(
> ListenerRequestHandler.class));
> +               ListenerRequestHandler h = (ListenerRequestHandler)
> handler;
>
>                 IRequestablePage page = h.getPage();
>                 checkPage(page, 15);
> @@ -253,9 +253,9 @@ public class MountedMapperTest extends
> AbstractMapperTest
>                 Url url = Url.parse("some/mount/path?
> param1=value1&15-.4-foo-bar");
>                 IRequestHandler handler = encoder.mapRequest(getRequest(
> url));
>
> -               assertThat(handler, instanceOf(
> ListenerInterfaceRequestHandler.class));
> +               assertThat(handler, instanceOf(
> ListenerRequestHandler.class));
>
> -               ListenerInterfaceRequestHandler h = (
> ListenerInterfaceRequestHandler)handler;
> +               ListenerRequestHandler h = (ListenerRequestHandler)
> handler;
>
>                 IRequestablePage page = h.getPage();
>                 checkPage(page, 15);
> @@ -298,9 +298,9 @@ public class MountedMapperTest extends
> AbstractMapperTest
>                 context.setNextPageRenderCount(5);
>                 IRequestHandler handler = encoder.mapRequest(getRequest(
> url));
>
> -               assertThat(handler, instanceOf(
> ListenerInterfaceRequestHandler.class));
> +               assertThat(handler, instanceOf(
> ListenerRequestHandler.class));
>
> -               ListenerInterfaceRequestHandler h = (
> ListenerInterfaceRequestHandler)handler;
> +               ListenerRequestHandler h = (ListenerRequestHandler)
> handler;
>
>                 IRequestablePage page = h.getPage();
>                 assertEquals(5, page.getRenderCount());
> @@ -329,9 +329,9 @@ public class MountedMapperTest extends
> AbstractMapperTest
>                 Url url = Url.parse("some/mount/path/i1/
> i2?-1.-foo-bar&a=b&b=c");
>                 IRequestHandler handler = encoder.mapRequest(getRequest(
> url));
>
> -               assertThat(handler, instanceOf(
> ListenerInterfaceRequestHandler.class));
> +               assertThat(handler, instanceOf(
> ListenerRequestHandler.class));
>
> -               ListenerInterfaceRequestHandler h = (
> ListenerInterfaceRequestHandler)handler;
> +               ListenerRequestHandler h = (ListenerRequestHandler)
> handler;
>                 IRequestablePage page = h.getPage();
>                 checkPage(page, 1);
>
> @@ -497,7 +497,7 @@ public class MountedMapperTest extends
> AbstractMapperTest
>                 IRequestableComponent c = page.get("foo:bar");
>
>                 PageAndComponentProvider provider = new
> PageAndComponentProvider(page, c);
> -               IRequestHandler handler = new
> ListenerInterfaceRequestHandler(provider);
> +               IRequestHandler handler = new ListenerRequestHandler(
> provider);
>
>                 Url url = encoder.mapHandler(handler);
>
> @@ -555,7 +555,7 @@ public class MountedMapperTest extends
> AbstractMapperTest
>                 IRequestableComponent c = page.get("foo:bar");
>
>                 PageAndComponentProvider provider = new
> PageAndComponentProvider(page, c);
> -               IRequestHandler handler = new
> ListenerInterfaceRequestHandler(provider, 4);
> +               IRequestHandler handler = new ListenerRequestHandler(provider,
> 4);
>
>                 Url url = encoder.mapHandler(handler);
>
>
> http://git-wip-us.apache.org/repos/asf/wicket/blob/
> 8342e4ef/wicket-core/src/test/java/org/apache/wicket/core/request/mapper/
> PackageMapperTest.java
> ----------------------------------------------------------------------
> diff --git a/wicket-core/src/test/java/org/apache/wicket/core/
> request/mapper/PackageMapperTest.java b/wicket-core/src/test/java/
> org/apache/wicket/core/request/mapper/PackageMapperTest.java
> index 6a620ad..b0bb221 100644
> --- a/wicket-core/src/test/java/org/apache/wicket/core/request/mapper/
> PackageMapperTest.java
> +++ b/wicket-core/src/test/java/org/apache/wicket/core/request/mapper/
> PackageMapperTest.java
> @@ -25,7 +25,7 @@ import org.apache.wicket.core.request.handler.
> BookmarkableListenerInterfaceReque
>  import org.apache.wicket.core.request.handler.
> BookmarkablePageRequestHandler;
>  import org.apache.wicket.core.request.handler.IPageProvider;
>  import org.apache.wicket.core.request.handler.IPageRequestHandler;
> -import org.apache.wicket.core.request.handler.
> ListenerInterfaceRequestHandler;
> +import org.apache.wicket.core.request.handler.ListenerRequestHandler;
>  import org.apache.wicket.core.request.handler.PageAndComponentProvider;
>  import org.apache.wicket.core.request.handler.PageProvider;
>  import org.apache.wicket.core.request.handler.RenderPageRequestHandler;
> @@ -243,9 +243,9 @@ public class PackageMapperTest extends
> AbstractMapperTest
>                 Url url = Url.parse(MOUNT_PATH + '/' + PAGE_CLASS_NAME +
> "?15--foo-bar");
>                 IRequestHandler handler = encoder.mapRequest(getRequest(
> url));
>
> -               assertThat(handler, instanceOf(
> ListenerInterfaceRequestHandler.class));
> +               assertThat(handler, instanceOf(
> ListenerRequestHandler.class));
>
> -               ListenerInterfaceRequestHandler h = (
> ListenerInterfaceRequestHandler)handler;
> +               ListenerRequestHandler h = (ListenerRequestHandler)
> handler;
>
>                 IRequestablePage page = h.getPage();
>                 checkPage(page, 15);
> @@ -263,8 +263,8 @@ public class PackageMapperTest extends
> AbstractMapperTest
>                 Url url = Url.parse(MOUNT_PATH + '/' + PAGE_CLASS_NAME +
> "/i1/i2?15--foo-bar&a=b&b=c");
>                 IRequestHandler handler = encoder.mapRequest(getRequest(
> url));
>
> -               assertThat(handler, instanceOf(
> ListenerInterfaceRequestHandler.class));
> -               ListenerInterfaceRequestHandler h = (
> ListenerInterfaceRequestHandler)handler;
> +               assertThat(handler, instanceOf(
> ListenerRequestHandler.class));
> +               ListenerRequestHandler h = (ListenerRequestHandler)
> handler;
>
>                 IRequestablePage page = h.getPage();
>                 checkPage(page, 15);
> @@ -286,9 +286,9 @@ public class PackageMapperTest extends
> AbstractMapperTest
>                 Url url = Url.parse(MOUNT_PATH + '/' + PAGE_CLASS_NAME +
> "?15-.4-foo-bar");
>                 IRequestHandler handler = encoder.mapRequest(getRequest(
> url));
>
> -               assertThat(handler, instanceOf(
> ListenerInterfaceRequestHandler.class));
> +               assertThat(handler, instanceOf(
> ListenerRequestHandler.class));
>
> -               ListenerInterfaceRequestHandler h = (
> ListenerInterfaceRequestHandler)handler;
> +               ListenerRequestHandler h = (ListenerRequestHandler)
> handler;
>
>                 IRequestablePage page = h.getPage();
>                 checkPage(page, 15);
> @@ -309,8 +309,8 @@ public class PackageMapperTest extends
> AbstractMapperTest
>
>                 IRequestHandler handler = encoder.mapRequest(getRequest(
> url));
>
> -               assertThat(handler, instanceOf(
> ListenerInterfaceRequestHandler.class));
> -               ListenerInterfaceRequestHandler h = (
> ListenerInterfaceRequestHandler)handler;
> +               assertThat(handler, instanceOf(
> ListenerRequestHandler.class));
> +               ListenerRequestHandler h = (ListenerRequestHandler)
> handler;
>
>                 IRequestablePage page = h.getPage();
>                 assertEquals(page.getRenderCount(), 5);
>
> http://git-wip-us.apache.org/repos/asf/wicket/blob/
> 8342e4ef/wicket-core/src/test/java/org/apache/wicket/core/request/mapper/
> PageInstanceMapperTest.java
> ----------------------------------------------------------------------
> diff --git a/wicket-core/src/test/java/org/apache/wicket/core/
> request/mapper/PageInstanceMapperTest.java b/wicket-core/src/test/java/
> org/apache/wicket/core/request/mapper/PageInstanceMapperTest.java
> index 9a2eaf0..2691070 100644
> --- a/wicket-core/src/test/java/org/apache/wicket/core/request/mapper/
> PageInstanceMapperTest.java
> +++ b/wicket-core/src/test/java/org/apache/wicket/core/request/mapper/
> PageInstanceMapperTest.java
> @@ -24,7 +24,7 @@ import java.util.Locale;
>  import org.apache.wicket.MockPage;
>  import org.apache.wicket.core.request.handler.IPageProvider;
>  import org.apache.wicket.core.request.handler.IPageRequestHandler;
> -import org.apache.wicket.core.request.handler.
> ListenerInterfaceRequestHandler;
> +import org.apache.wicket.core.request.handler.ListenerRequestHandler;
>  import org.apache.wicket.core.request.handler.PageAndComponentProvider;
>  import org.apache.wicket.core.request.handler.PageProvider;
>  import org.apache.wicket.core.request.handler.RenderPageRequestHandler;
> @@ -90,9 +90,9 @@ public class PageInstanceMapperTest extends
> AbstractMapperTest
>                 Url url = Url.parse("wicket/page?4--a-b-c");
>
>                 IRequestHandler handler = encoder.mapRequest(getRequest(
> url));
> -               assertThat(handler, instanceOf(
> ListenerInterfaceRequestHandler.class));
> +               assertThat(handler, instanceOf(
> ListenerRequestHandler.class));
>
> -               ListenerInterfaceRequestHandler h = (
> ListenerInterfaceRequestHandler)handler;
> +               ListenerRequestHandler h = (ListenerRequestHandler)
> handler;
>                 checkPage(h.getPage(), 4);
>                 assertEquals(h.getComponent().getPageRelativePath(),
> "a:b:c");
>                 assertNull(h.getBehaviorIndex());
> @@ -131,9 +131,9 @@ public class PageInstanceMapperTest extends
> AbstractMapperTest
>                 Url url = Url.parse("wicket/page?4-
> ILinkListener.5-a-b-c");
>
>                 IRequestHandler handler = encoder.mapRequest(getRequest(
> url));
> -               assertThat(handler, instanceOf(
> ListenerInterfaceRequestHandler.class));
> +               assertThat(handler, instanceOf(
> ListenerRequestHandler.class));
>
> -               ListenerInterfaceRequestHandler h = (
> ListenerInterfaceRequestHandler)handler;
> +               ListenerRequestHandler h = (ListenerRequestHandler)
> handler;
>                 checkPage(h.getPage(), 4);
>                 assertEquals(h.getComponent().getPageRelativePath(),
> "a:b:c");
>                 assertEquals((Object)5, h.getBehaviorIndex());
> @@ -150,9 +150,9 @@ public class PageInstanceMapperTest extends
> AbstractMapperTest
>                 context.setNextPageRenderCount(6);
>
>                 IRequestHandler handler = encoder.mapRequest(getRequest(
> url));
> -               assertThat(handler, instanceOf(
> ListenerInterfaceRequestHandler.class));
> +               assertThat(handler, instanceOf(
> ListenerRequestHandler.class));
>
> -               ListenerInterfaceRequestHandler h = (
> ListenerInterfaceRequestHandler)handler;
> +               ListenerRequestHandler h = (ListenerRequestHandler)
> handler;
>                 assertEquals(6, h.getPage().getRenderCount());
>         }
>
> @@ -287,7 +287,7 @@ public class PageInstanceMapperTest extends
> AbstractMapperTest
>                 IRequestableComponent c = page.get("a:b:c");
>
>                 PageAndComponentProvider provider = new
> PageAndComponentProvider(page, c);
> -               IRequestHandler handler = new
> ListenerInterfaceRequestHandler(provider);
> +               IRequestHandler handler = new ListenerRequestHandler(
> provider);
>
>                 Url url = encoder.mapHandler(handler);
>                 assertEquals("wicket/page?15-5.-a-b-c", url.toString());
>
> http://git-wip-us.apache.org/repos/asf/wicket/blob/
> 8342e4ef/wicket-examples/src/main/java/org/apache/wicket/
> examples/ajax/prototype/Index.java
> ----------------------------------------------------------------------
> diff --git a/wicket-examples/src/main/java/org/apache/wicket/
> examples/ajax/prototype/Index.java b/wicket-examples/src/main/
> java/org/apache/wicket/examples/ajax/prototype/Index.java
> index 2795eb5..c62ce4b 100644
> --- a/wicket-examples/src/main/java/org/apache/wicket/
> examples/ajax/prototype/Index.java
> +++ b/wicket-examples/src/main/java/org/apache/wicket/
> examples/ajax/prototype/Index.java
> @@ -17,7 +17,7 @@
>  package org.apache.wicket.examples.ajax.prototype;
>
>  import org.apache.wicket.core.request.handler.
> ComponentRenderingRequestHandler;
> -import org.apache.wicket.core.request.handler.
> ListenerInterfaceRequestHandler;
> +import org.apache.wicket.core.request.handler.ListenerRequestHandler;
>  import org.apache.wicket.core.request.handler.PageAndComponentProvider;
>  import org.apache.wicket.examples.WicketExamplePage;
>  import org.apache.wicket.markup.html.basic.Label;
> @@ -79,8 +79,7 @@ public class Index extends WicketExamplePage
>                         @Override
>                         protected String getOnClickScript(CharSequence url)
>                         {
> -                               IRequestHandler handler = new
> ListenerInterfaceRequestHandler(
> -                                       new 
> PageAndComponentProvider(getPage(),
> this));
> +                               IRequestHandler handler = new
> ListenerRequestHandler(new PageAndComponentProvider(getPage(), this));
>                                 Url componentUrl =
> RequestCycle.get().mapUrlFor(handler);
>                                 componentUrl.addQueryParameter("anticache",
> Math.random());
>                                 return new AppendingStringBuffer("new
> Ajax.Updater('counter', '").append(
>
>

Reply via email to