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 <svenme...@apache.org> Authored: Mon Jan 30 16:50:26 2017 +0100 Committer: Sven Meier <svenme...@apache.org> 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 ListenerInterfaceRequestHandler(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 recreateThePageWhenListenereInterfaceIsExecutedOnExpiredPage() 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.getWicketAjaxBaseUrlEncodedInLastResponse()); - tester.getRequest().addHeader("Wicket-Ajax", "true"); - tester.processRequest(); - } - - /** - * Test page for #recreateThePageWhenListenereInterfaceIsExecutedOnExpiredPage() - */ - 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 recreateThePageWhenListenereInterfaceIsExecutedOnExpiredPage() 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.getWicketAjaxBaseUrlEncodedInLastResponse()); + tester.getRequest().addHeader("Wicket-Ajax", "true"); + tester.processRequest(); + } + + /** + * Test page for #recreateThePageWhenListenereInterfaceIsExecutedOnExpiredPage() + */ + 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(