You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by sv...@apache.org on 2016/04/25 11:48:41 UTC
[03/17] wicket git commit: WICKET-6137 remove RequestListenerInterface
WICKET-6137 remove RequestListenerInterface
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/d1710298
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/d1710298
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/d1710298
Branch: refs/heads/master
Commit: d1710298c7e371f260299f732c58d0bf4d647161
Parents: 7dcdae5
Author: Sven Meier <sv...@apache.org>
Authored: Sat Mar 19 19:57:00 2016 +0100
Committer: Sven Meier <sv...@apache.org>
Committed: Mon Apr 25 11:44:33 2016 +0200
----------------------------------------------------------------------
.../main/java/org/apache/wicket/Component.java | 22 ++-
.../org/apache/wicket/DefaultMapperContext.java | 12 --
.../org/apache/wicket/IRequestListener.java | 2 +
.../org/apache/wicket/IResourceListener.java | 39 ------
.../java/org/apache/wicket/Initializer.java | 13 --
.../apache/wicket/RequestListenerInterface.java | 10 +-
.../wicket/behavior/AbstractAjaxBehavior.java | 16 ++-
.../org/apache/wicket/behavior/Behavior.java | 3 +-
.../wicket/behavior/IBehaviorListener.java | 36 -----
...markableListenerInterfaceRequestHandler.java | 31 ++--
.../ListenerInterfaceRequestHandler.java | 140 +++++++++++++------
.../ListenerInvocationNotAllowedException.java | 10 +-
.../logger/ListenerInterfaceLogData.java | 29 +---
.../mapper/AbstractBookmarkableMapper.java | 39 +-----
.../request/mapper/AbstractComponentMapper.java | 27 ----
.../core/request/mapper/IMapperContext.java | 17 ---
.../core/request/mapper/MountedMapper.java | 11 +-
.../core/request/mapper/PageInstanceMapper.java | 14 +-
.../apache/wicket/markup/html/form/Check.java | 2 +-
.../wicket/markup/html/form/CheckBox.java | 11 +-
.../wicket/markup/html/form/CheckGroup.java | 9 +-
.../wicket/markup/html/form/DropDownChoice.java | 11 +-
.../apache/wicket/markup/html/form/Form.java | 11 +-
.../markup/html/form/IFormSubmitListener.java | 33 -----
.../markup/html/form/IOnChangeListener.java | 35 -----
.../wicket/markup/html/form/ImageButton.java | 9 +-
.../apache/wicket/markup/html/form/Radio.java | 2 +-
.../wicket/markup/html/form/RadioChoice.java | 11 +-
.../wicket/markup/html/form/RadioGroup.java | 9 +-
.../wicket/markup/html/form/StatelessForm.java | 2 +-
.../apache/wicket/markup/html/image/Image.java | 14 +-
.../image/resource/LocalizedImageResource.java | 5 +-
.../wicket/markup/html/link/ILinkListener.java | 32 -----
.../wicket/markup/html/link/InlineFrame.java | 11 +-
.../apache/wicket/markup/html/link/Link.java | 11 +-
.../wicket/markup/html/link/ResourceLink.java | 12 +-
.../wicket/markup/html/link/StatelessLink.java | 8 +-
.../wicket/util/tester/BaseWicketTester.java | 41 ++----
.../apache/wicket/util/tester/FormTester.java | 3 +-
.../org/apache/wicket/BehaviorRequestTest.java | 23 +--
.../java/org/apache/wicket/BehaviorUrlTest.java | 11 +-
.../ComponentWithLazyModelCreationTest.java | 16 ++-
.../behavior/ImmutableBehaviorIdsTest.java | 11 +-
.../ListenerInterfaceRequestHandlerTest.java | 10 +-
.../core/request/mapper/AbstractMapperTest.java | 13 --
.../AbstractResourceReferenceMapperTest.java | 1 -
.../request/mapper/BookmarkableMapperTest.java | 15 +-
.../core/request/mapper/CryptoMapperTest.java | 11 +-
.../core/request/mapper/MountedMapperTest.java | 17 +--
.../core/request/mapper/PackageMapperTest.java | 12 +-
.../request/mapper/PageInstanceMapperTest.java | 6 +-
.../core/request/mapper/TestMapperContext.java | 15 +-
.../request/mapper/info/ComponentInfoTest.java | 11 +-
.../mapper/info/PageComponentInfoTest.java | 5 +-
.../wicket/examples/ajax/prototype/Index.java | 9 +-
wicket-examples/src/main/webapp/WEB-INF/web.xml | 21 ---
.../captcha/kittens/KittenCaptchaPanel.java | 4 +-
.../request/mapper/info/ComponentInfo.java | 49 +------
58 files changed, 350 insertions(+), 663 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/wicket/blob/d1710298/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 f9a8cd9..877e963 100644
--- a/wicket-core/src/main/java/org/apache/wicket/Component.java
+++ b/wicket-core/src/main/java/org/apache/wicket/Component.java
@@ -58,7 +58,6 @@ import org.apache.wicket.markup.head.StringHeaderItem;
import org.apache.wicket.markup.html.IHeaderContributor;
import org.apache.wicket.markup.html.form.Form;
import org.apache.wicket.markup.html.form.FormComponent;
-import org.apache.wicket.markup.html.form.IFormSubmitListener;
import org.apache.wicket.markup.html.internal.HtmlHeaderContainer;
import org.apache.wicket.markup.html.panel.DefaultMarkupSourcingStrategy;
import org.apache.wicket.markup.html.panel.IMarkupSourcingStrategy;
@@ -852,7 +851,7 @@ public abstract class Component
*
* @return {@code true} if component has been initialized
*/
- final boolean isInitialized()
+ public final boolean isInitialized()
{
return getFlag(FLAG_INITIALIZED);
}
@@ -3343,19 +3342,17 @@ public abstract class Component
* The parameters that should be rendered into the urls
* @return The URL
*/
- public final CharSequence urlFor(final Behavior behaviour,
- final RequestListenerInterface listener, final PageParameters parameters)
+ public final CharSequence urlFor(final Behavior behaviour, final PageParameters parameters)
{
int id = getBehaviorId(behaviour);
- IRequestHandler handler = createRequestHandler(listener, parameters, id);
+ IRequestHandler handler = createRequestHandler(parameters, id);
return getRequestCycle().urlFor(handler);
}
/**
* Create a suitable request handler depending whether the page is stateless or bookmarkable.
*/
- private IRequestHandler createRequestHandler(RequestListenerInterface listener,
- PageParameters parameters, Integer id)
+ private IRequestHandler createRequestHandler(PageParameters parameters, Integer id)
{
Page page = getPage();
@@ -3365,11 +3362,11 @@ public abstract class Component
|| (getApplication().getPageSettings().getRecreateBookmarkablePagesAfterExpiry()
&& page.isBookmarkable() && page.wasCreatedBookmarkable()))
{
- return new BookmarkableListenerInterfaceRequestHandler(provider, listener, id);
+ return new BookmarkableListenerInterfaceRequestHandler(provider, id);
}
else
{
- return new ListenerInterfaceRequestHandler(provider, listener, id);
+ return new ListenerInterfaceRequestHandler(provider, id);
}
}
@@ -3393,16 +3390,13 @@ public abstract class Component
*
* @see RequestCycle#urlFor(IRequestHandler)
*
- * @param listener
- * The listener interface that the URL should call
* @param parameters
* The parameters that should be rendered into the urls
* @return The URL
*/
- public final CharSequence urlFor(final RequestListenerInterface listener,
- final PageParameters parameters)
+ public final CharSequence urlFor(final PageParameters parameters)
{
- IRequestHandler handler = createRequestHandler(listener, parameters, null);
+ IRequestHandler handler = createRequestHandler(parameters, null);
return getRequestCycle().urlFor(handler);
}
http://git-wip-us.apache.org/repos/asf/wicket/blob/d1710298/wicket-core/src/main/java/org/apache/wicket/DefaultMapperContext.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/DefaultMapperContext.java b/wicket-core/src/main/java/org/apache/wicket/DefaultMapperContext.java
index 486dbf9..6527f96 100644
--- a/wicket-core/src/main/java/org/apache/wicket/DefaultMapperContext.java
+++ b/wicket-core/src/main/java/org/apache/wicket/DefaultMapperContext.java
@@ -82,18 +82,6 @@ public class DefaultMapperContext implements IMapperContext
}
@Override
- public RequestListenerInterface requestListenerInterfaceFromString(final String interfaceName)
- {
- return RequestListenerInterface.forName(interfaceName);
- }
-
- @Override
- public String requestListenerInterfaceToString(final RequestListenerInterface listenerInterface)
- {
- return listenerInterface.getName();
- }
-
- @Override
public IRequestablePage newPageInstance(final Class<? extends IRequestablePage> pageClass,
final PageParameters pageParameters)
{
http://git-wip-us.apache.org/repos/asf/wicket/blob/d1710298/wicket-core/src/main/java/org/apache/wicket/IRequestListener.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/IRequestListener.java b/wicket-core/src/main/java/org/apache/wicket/IRequestListener.java
index 350717f..d94416d 100644
--- a/wicket-core/src/main/java/org/apache/wicket/IRequestListener.java
+++ b/wicket-core/src/main/java/org/apache/wicket/IRequestListener.java
@@ -33,6 +33,8 @@ import org.apache.wicket.util.io.IClusterable;
*/
public interface IRequestListener extends IClusterable
{
+
+ boolean includeRenderCount();
/**
* Called when a request to a behavior is received.
http://git-wip-us.apache.org/repos/asf/wicket/blob/d1710298/wicket-core/src/main/java/org/apache/wicket/IResourceListener.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/IResourceListener.java b/wicket-core/src/main/java/org/apache/wicket/IResourceListener.java
deleted file mode 100644
index 983594c..0000000
--- a/wicket-core/src/main/java/org/apache/wicket/IResourceListener.java
+++ /dev/null
@@ -1,39 +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;
-
-
-/**
- * Listens for requests regarding resources. Such resources are typically non-static in nature and
- * may even be created on the fly.
- * <p>
- * One use for resource listeners is that they may be used to create components such as Image which
- * respond to requests with a localized resource loaded from the classpath. The Image class allows
- * reusable components to transparently bundle localized image resources. Components that use Image
- * resources (instead of referencing static images in their markup) can be distributed as a
- * self-contained JAR file.
- *
- * @see org.apache.wicket.markup.html.image.Image
- * @see org.apache.wicket.markup.html.image.resource.RenderedDynamicImageResource
- * @author Jonathan Locke
- */
-public interface IResourceListener extends IRequestListener
-{
- /** Resource listener interface object */
- RequestListenerInterface INTERFACE = new RequestListenerInterface(
- IResourceListener.class).setIncludeRenderCount(false).setRenderPageAfterInvocation(false);
-}
http://git-wip-us.apache.org/repos/asf/wicket/blob/d1710298/wicket-core/src/main/java/org/apache/wicket/Initializer.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/Initializer.java b/wicket-core/src/main/java/org/apache/wicket/Initializer.java
index 19fa544..cb81938 100644
--- a/wicket-core/src/main/java/org/apache/wicket/Initializer.java
+++ b/wicket-core/src/main/java/org/apache/wicket/Initializer.java
@@ -16,11 +16,6 @@
*/
package org.apache.wicket;
-import org.apache.wicket.behavior.IBehaviorListener;
-import org.apache.wicket.markup.html.form.IFormSubmitListener;
-import org.apache.wicket.markup.html.form.IOnChangeListener;
-import org.apache.wicket.markup.html.link.ILinkListener;
-
/**
* Initializer for components in wicket core library.
*
@@ -34,14 +29,6 @@ public class Initializer implements IInitializer
@Override
public void init(Application application)
{
- // Register listener interfaces explicitly (even though they implicitly
- // register when loaded) because deserialization of an object that
- // implements an interface does not load the interfaces it implements!
- IBehaviorListener.INTERFACE.register();
- IFormSubmitListener.INTERFACE.register();
- ILinkListener.INTERFACE.register();
- IOnChangeListener.INTERFACE.register();
- IResourceListener.INTERFACE.register();
}
/**
http://git-wip-us.apache.org/repos/asf/wicket/blob/d1710298/wicket-core/src/main/java/org/apache/wicket/RequestListenerInterface.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/RequestListenerInterface.java b/wicket-core/src/main/java/org/apache/wicket/RequestListenerInterface.java
index 64c26f0..f45b09e 100644
--- a/wicket-core/src/main/java/org/apache/wicket/RequestListenerInterface.java
+++ b/wicket-core/src/main/java/org/apache/wicket/RequestListenerInterface.java
@@ -16,18 +16,14 @@
*/
package org.apache.wicket;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
-import org.apache.wicket.authorization.AuthorizationException;
import org.apache.wicket.behavior.Behavior;
-import org.apache.wicket.request.RequestHandlerExecutor.ReplaceHandlerException;
-import org.apache.wicket.request.component.IRequestableComponent;
import org.apache.wicket.core.request.handler.ListenerInvocationNotAllowedException;
+import org.apache.wicket.request.component.IRequestableComponent;
import org.apache.wicket.util.lang.Classes;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -175,7 +171,7 @@ public class RequestListenerInterface
// 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(this, component, null,
+ throw new ListenerInvocationNotAllowedException(component, null,
"Component rejected interface invocation");
}
@@ -200,7 +196,7 @@ public class RequestListenerInterface
{
log.warn("behavior not enabled; ignore call. Behavior {} at component {}", behavior,
component);
- throw new ListenerInvocationNotAllowedException(this, component, behavior,
+ throw new ListenerInvocationNotAllowedException(component, behavior,
"Behavior rejected interface invocation. ");
}
http://git-wip-us.apache.org/repos/asf/wicket/blob/d1710298/wicket-core/src/main/java/org/apache/wicket/behavior/AbstractAjaxBehavior.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/behavior/AbstractAjaxBehavior.java b/wicket-core/src/main/java/org/apache/wicket/behavior/AbstractAjaxBehavior.java
index 5a25fc9..d4c9877 100644
--- a/wicket-core/src/main/java/org/apache/wicket/behavior/AbstractAjaxBehavior.java
+++ b/wicket-core/src/main/java/org/apache/wicket/behavior/AbstractAjaxBehavior.java
@@ -17,7 +17,7 @@
package org.apache.wicket.behavior;
import org.apache.wicket.Component;
-import org.apache.wicket.RequestListenerInterface;
+import org.apache.wicket.IRequestListener;
import org.apache.wicket.markup.ComponentTag;
import org.apache.wicket.request.mapper.parameter.PageParameters;
import org.apache.wicket.util.lang.Args;
@@ -30,7 +30,7 @@ import org.apache.wicket.util.lang.Args;
* @author Ralf Ebert
* @author Igor Vaynberg
*/
-public abstract class AbstractAjaxBehavior extends Behavior implements IBehaviorListener
+public abstract class AbstractAjaxBehavior extends Behavior implements IRequestListener
{
private static final long serialVersionUID = 1L;
@@ -68,6 +68,12 @@ public abstract class AbstractAjaxBehavior extends Behavior implements IBehavior
onBind();
}
+ @Override
+ public boolean includeRenderCount()
+ {
+ return true;
+ }
+
/**
* Gets the url that references this handler.
*
@@ -81,11 +87,7 @@ public abstract class AbstractAjaxBehavior extends Behavior implements IBehavior
"Behavior must be bound to a component to create the URL");
}
- final RequestListenerInterface rli;
-
- rli = IBehaviorListener.INTERFACE;
-
- return getComponent().urlFor(this, rli, new PageParameters());
+ return getComponent().urlFor(this, new PageParameters());
}
/**
http://git-wip-us.apache.org/repos/asf/wicket/blob/d1710298/wicket-core/src/main/java/org/apache/wicket/behavior/Behavior.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/behavior/Behavior.java b/wicket-core/src/main/java/org/apache/wicket/behavior/Behavior.java
index 55517d2..2267e74 100644
--- a/wicket-core/src/main/java/org/apache/wicket/behavior/Behavior.java
+++ b/wicket-core/src/main/java/org/apache/wicket/behavior/Behavior.java
@@ -21,6 +21,7 @@ import java.lang.reflect.Method;
import org.apache.wicket.Application;
import org.apache.wicket.Component;
import org.apache.wicket.IComponentAwareEventSink;
+import org.apache.wicket.IRequestListener;
import org.apache.wicket.event.IEvent;
import org.apache.wicket.lambda.WicketConsumer;
import org.apache.wicket.lambda.WicketFunction;
@@ -153,7 +154,7 @@ public abstract class Behavior
*/
public boolean getStatelessHint(Component component)
{
- if (this instanceof IBehaviorListener)
+ if (this instanceof IRequestListener)
{
// this behavior implements a callback interface, so it cannot be stateless
return false;
http://git-wip-us.apache.org/repos/asf/wicket/blob/d1710298/wicket-core/src/main/java/org/apache/wicket/behavior/IBehaviorListener.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/behavior/IBehaviorListener.java b/wicket-core/src/main/java/org/apache/wicket/behavior/IBehaviorListener.java
deleted file mode 100644
index 8b029d0..0000000
--- a/wicket-core/src/main/java/org/apache/wicket/behavior/IBehaviorListener.java
+++ /dev/null
@@ -1,36 +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.behavior;
-
-import org.apache.wicket.IRequestListener;
-import org.apache.wicket.RequestListenerInterface;
-
-/**
- * Listens for requests to behaviors. When {@link org.apache.wicket.behavior.Behavior}s are
- * 'enriched' with this interface, they can receive requests themselves. You can use this for
- * example to implement AJAX behavior, though you'll probably want to extend from
- * {@link org.apache.wicket.behavior.AbstractAjaxBehavior} directly instead in that case.
- *
- * @author Eelco Hillenius
- */
-public interface IBehaviorListener extends IRequestListener
-{
- /** Behavior listener interface */
- RequestListenerInterface INTERFACE = new RequestListenerInterface(
- IBehaviorListener.class);
-
-}
http://git-wip-us.apache.org/repos/asf/wicket/blob/d1710298/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 edc65a8..01eecfe 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
@@ -16,7 +16,7 @@
*/
package org.apache.wicket.core.request.handler;
-import org.apache.wicket.RequestListenerInterface;
+import org.apache.wicket.IRequestListener;
import org.apache.wicket.request.IRequestCycle;
import org.apache.wicket.request.component.IRequestableComponent;
import org.apache.wicket.request.component.IRequestablePage;
@@ -36,8 +36,6 @@ public class BookmarkableListenerInterfaceRequestHandler
{
private final IPageAndComponentProvider pageComponentProvider;
- private final RequestListenerInterface listenerInterface;
-
private final Integer behaviorIndex;
/**
@@ -49,13 +47,11 @@ public class BookmarkableListenerInterfaceRequestHandler
*/
public BookmarkableListenerInterfaceRequestHandler(
IPageAndComponentProvider pageComponentProvider,
- RequestListenerInterface listenerInterface, Integer behaviorIndex)
+ Integer behaviorIndex)
{
Args.notNull(pageComponentProvider, "pageComponentProvider");
- Args.notNull(listenerInterface, "listenerInterface");
this.pageComponentProvider = pageComponentProvider;
- this.listenerInterface = listenerInterface;
this.behaviorIndex = behaviorIndex;
}
@@ -65,10 +61,17 @@ public class BookmarkableListenerInterfaceRequestHandler
* @param pageComponentProvider
* @param listenerInterface
*/
- public BookmarkableListenerInterfaceRequestHandler(
- PageAndComponentProvider pageComponentProvider, RequestListenerInterface listenerInterface)
+ public BookmarkableListenerInterfaceRequestHandler(PageAndComponentProvider pageComponentProvider)
{
- this(pageComponentProvider, listenerInterface, null);
+ this(pageComponentProvider, null);
+ }
+
+ public boolean includeRenderCount() {
+ if (behaviorIndex == null) {
+ return ((IRequestListener)getComponent()).includeRenderCount();
+ } else {
+ return ((IRequestListener)getComponent().getBehaviorById(getBehaviorIndex())).includeRenderCount();
+ }
}
/**
@@ -132,16 +135,6 @@ public class BookmarkableListenerInterfaceRequestHandler
}
/**
- * Returns the listener interface.
- *
- * @return listener interface
- */
- public RequestListenerInterface getListenerInterface()
- {
- return listenerInterface;
- }
-
- /**
* Returns index of behavior this listener is targeted on or <code>null</code> if component is
* the target
*
http://git-wip-us.apache.org/repos/asf/wicket/blob/d1710298/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
index ce3286f..a098f02 100644
--- 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
@@ -16,8 +16,9 @@
*/
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.RequestListenerInterface;
import org.apache.wicket.WicketRuntimeException;
import org.apache.wicket.behavior.Behavior;
import org.apache.wicket.core.request.handler.RenderPageRequestHandler.RedirectPolicy;
@@ -43,13 +44,11 @@ public class ListenerInterfaceRequestHandler
IComponentRequestHandler,
ILoggableRequestHandler
{
-
+
private static final Logger LOG = LoggerFactory.getLogger(ListenerInterfaceRequestHandler.class);
private final IPageAndComponentProvider pageComponentProvider;
- private final RequestListenerInterface listenerInterface;
-
private final Integer behaviorId;
private ListenerInterfaceLogData logData;
@@ -61,14 +60,11 @@ public class ListenerInterfaceRequestHandler
* @param listenerInterface
* @param behaviorIndex
*/
- public ListenerInterfaceRequestHandler(IPageAndComponentProvider pageComponentProvider,
- RequestListenerInterface listenerInterface, Integer behaviorIndex)
+ public ListenerInterfaceRequestHandler(IPageAndComponentProvider pageComponentProvider, Integer behaviorIndex)
{
Args.notNull(pageComponentProvider, "pageComponentProvider");
- Args.notNull(listenerInterface, "listenerInterface");
this.pageComponentProvider = pageComponentProvider;
- this.listenerInterface = listenerInterface;
behaviorId = behaviorIndex;
}
@@ -78,12 +74,19 @@ public class ListenerInterfaceRequestHandler
* @param pageComponentProvider
* @param listenerInterface
*/
- public ListenerInterfaceRequestHandler(PageAndComponentProvider pageComponentProvider,
- RequestListenerInterface listenerInterface)
+ public ListenerInterfaceRequestHandler(PageAndComponentProvider pageComponentProvider)
{
- this(pageComponentProvider, listenerInterface, null);
+ this(pageComponentProvider, null);
}
+ public boolean includeRenderCount() {
+ if (behaviorId == null) {
+ return ((IRequestListener)getComponent()).includeRenderCount();
+ } else {
+ return ((IRequestListener)getComponent().getBehaviorById(getBehaviorIndex())).includeRenderCount();
+ }
+ }
+
@Override
public IRequestableComponent getComponent()
{
@@ -122,23 +125,12 @@ public class ListenerInterfaceRequestHandler
{
if (logData == null)
{
- logData = new ListenerInterfaceLogData(pageComponentProvider, listenerInterface,
- behaviorId);
+ logData = new ListenerInterfaceLogData(pageComponentProvider, behaviorId);
}
pageComponentProvider.detach();
}
/**
- * Returns the listener interface.
- *
- * @return listener interface
- */
- public RequestListenerInterface getListenerInterface()
- {
- return listenerInterface;
- }
-
- /**
* Index of target behavior or <code>null</code> if component is the target.
*
* @return behavior index or <code>null</code>
@@ -188,7 +180,6 @@ public class ListenerInterfaceRequestHandler
RedirectPolicy policy = isStateless
? RedirectPolicy.NEVER_REDIRECT
: RedirectPolicy.AUTO_REDIRECT;
- final IPageProvider pageProvider = new PageProvider(page);
final boolean canCallListenerInterfaceAfterExpiry = component != null
? component.canCallListenerInterfaceAfterExpiry()
@@ -207,9 +198,9 @@ public class ListenerInterfaceRequestHandler
if (LOG.isDebugEnabled())
{
LOG.debug(
- "A ListenerInterface '{}' assigned to '{}' is executed on an expired stateful page. "
+ "A ListenerInterface assigned to '{}' is executed on an expired stateful page. "
+ "Scheduling re-create of the page and ignoring the listener interface...",
- listenerInterface, getComponentPath());
+ getComponentPath());
}
if (isAjax)
@@ -218,34 +209,25 @@ public class ListenerInterfaceRequestHandler
}
requestCycle.scheduleRequestHandlerAfterCurrent(new RenderPageRequestHandler(
- pageProvider, policy));
+ new PageProvider(page), policy));
return;
}
- if (isAjax == false && listenerInterface.isRenderPageAfterInvocation())
- {
- // 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(
- pageProvider, policy));
- }
-
- invokeListener();
+ invokeListener(requestCycle, policy, isAjax);
}
- private void invokeListener()
+ private void invokeListener(IRequestCycle requestCycle, RedirectPolicy policy, boolean ajax)
{
if (getBehaviorIndex() == null)
{
- listenerInterface.invoke(getComponent());
+ invoke(requestCycle, policy, ajax, getComponent());
}
else
{
try
{
Behavior behavior = getComponent().getBehaviorById(behaviorId);
- listenerInterface.invoke(getComponent(), behavior);
+ invoke(requestCycle, policy, ajax, getComponent(), behavior);
}
catch (IndexOutOfBoundsException e)
{
@@ -254,6 +236,84 @@ public class ListenerInterfaceRequestHandler
}
}
+
+ /**
+ * 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(null))
+ {
+ // 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, null))
+ {
+ 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.includeRenderCount() && !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()
http://git-wip-us.apache.org/repos/asf/wicket/blob/d1710298/wicket-core/src/main/java/org/apache/wicket/core/request/handler/ListenerInvocationNotAllowedException.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/core/request/handler/ListenerInvocationNotAllowedException.java b/wicket-core/src/main/java/org/apache/wicket/core/request/handler/ListenerInvocationNotAllowedException.java
index a97d99d..f878b89 100644
--- a/wicket-core/src/main/java/org/apache/wicket/core/request/handler/ListenerInvocationNotAllowedException.java
+++ b/wicket-core/src/main/java/org/apache/wicket/core/request/handler/ListenerInvocationNotAllowedException.java
@@ -17,7 +17,6 @@
package org.apache.wicket.core.request.handler;
import org.apache.wicket.Component;
-import org.apache.wicket.RequestListenerInterface;
import org.apache.wicket.behavior.Behavior;
/**
@@ -36,20 +35,18 @@ public class ListenerInvocationNotAllowedException extends RuntimeException
/**
* Constructor
*
- * @param iface
* @param component
* @param behavior
* @param message
*/
- public ListenerInvocationNotAllowedException(RequestListenerInterface iface,
- Component component, Behavior behavior, String message)
+ public ListenerInvocationNotAllowedException(Component component, Behavior behavior, String message)
{
- super(message + detail(iface, component, behavior));
+ super(message + detail(component, behavior));
this.component = component;
this.behavior = behavior;
}
- private static String detail(RequestListenerInterface iface, Component component,
+ private static String detail(Component component,
Behavior behavior)
{
StringBuilder detail = new StringBuilder("Component: ").append(component.toString(false));
@@ -57,7 +54,6 @@ public class ListenerInvocationNotAllowedException extends RuntimeException
{
detail.append(" Behavior: ").append(behavior.toString());
}
- detail.append(" Listener: ").append(iface.toString());
return detail.toString();
}
http://git-wip-us.apache.org/repos/asf/wicket/blob/d1710298/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
index 4a5ad40..5ed97a7 100644
--- 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
@@ -17,11 +17,9 @@
package org.apache.wicket.core.request.handler.logger;
import org.apache.wicket.Component;
-import org.apache.wicket.RequestListenerInterface;
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.IFormSubmitListener;
import org.apache.wicket.markup.html.form.IFormSubmitter;
import org.apache.wicket.request.component.IRequestableComponent;
@@ -38,7 +36,6 @@ public class ListenerInterfaceLogData extends PageLogData
private final String componentPath;
private final Integer behaviorIndex;
private Class<? extends Behavior> behaviorClass;
- private final String interfaceName;
private Class<? extends IRequestableComponent> submittingComponentClass;
private String submittingComponentPath;
@@ -49,8 +46,7 @@ public class ListenerInterfaceLogData extends PageLogData
* @param listenerInterface
* @param behaviorIndex
*/
- public ListenerInterfaceLogData(IPageAndComponentProvider pageAndComponentProvider,
- RequestListenerInterface listenerInterface, Integer behaviorIndex)
+ public ListenerInterfaceLogData(IPageAndComponentProvider pageAndComponentProvider, Integer behaviorIndex)
{
super(pageAndComponentProvider);
componentClass = tryToGetComponentClass(pageAndComponentProvider);
@@ -73,15 +69,12 @@ public class ListenerInterfaceLogData extends PageLogData
{
behaviorClass = null;
}
- interfaceName = listenerInterface.getName();
- if (listenerInterface.getListenerInterfaceClass().equals(IFormSubmitListener.class))
+
+ final Component formSubmitter = tryToGetFormSubmittingComponent(pageAndComponentProvider);
+ if (formSubmitter != null)
{
- final Component formSubmitter = tryToGetFormSubmittingComponent(pageAndComponentProvider);
- if (formSubmitter != null)
- {
- submittingComponentClass = formSubmitter.getClass();
- submittingComponentPath = formSubmitter.getPageRelativePath();
- }
+ submittingComponentClass = formSubmitter.getClass();
+ submittingComponentPath = formSubmitter.getPageRelativePath();
}
}
@@ -166,14 +159,6 @@ public class ListenerInterfaceLogData extends PageLogData
}
/**
- * @return interfaceName
- */
- public final String getInterfaceName()
- {
- return interfaceName;
- }
-
- /**
* @return submittingComponentClass
*/
public Class<? extends IRequestableComponent> getSubmittingComponentClass()
@@ -213,8 +198,6 @@ public class ListenerInterfaceLogData extends PageLogData
sb.append(",behaviorClass=");
sb.append(getBehaviorClass().getName());
}
- sb.append(",interfaceName=");
- sb.append(getInterfaceName());
if (getSubmittingComponentClass() != null)
{
sb.append(",submittingComponentClass=");
http://git-wip-us.apache.org/repos/asf/wicket/blob/d1710298/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 4d34e8c..963c698 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
@@ -19,7 +19,6 @@ package org.apache.wicket.core.request.mapper;
import java.util.ArrayList;
import java.util.List;
-import org.apache.wicket.RequestListenerInterface;
import org.apache.wicket.core.request.handler.BookmarkableListenerInterfaceRequestHandler;
import org.apache.wicket.core.request.handler.BookmarkablePageRequestHandler;
import org.apache.wicket.core.request.handler.IPageRequestHandler;
@@ -31,7 +30,6 @@ import org.apache.wicket.protocol.http.PageExpiredException;
import org.apache.wicket.protocol.http.WebApplication;
import org.apache.wicket.request.IRequestHandler;
import org.apache.wicket.request.IRequestHandlerDelegate;
-import org.apache.wicket.request.IRequestMapper;
import org.apache.wicket.request.Request;
import org.apache.wicket.request.Url;
import org.apache.wicket.request.component.IRequestablePage;
@@ -297,41 +295,18 @@ public abstract class AbstractBookmarkableMapper extends AbstractComponentMapper
PageInfo pageInfo = pageComponentInfo.getPageInfo();
ComponentInfo componentInfo = pageComponentInfo.getComponentInfo();
Integer renderCount = null;
- RequestListenerInterface listenerInterface = null;
if (componentInfo != null)
{
renderCount = componentInfo.getRenderCount();
- listenerInterface = requestListenerInterfaceFromString(componentInfo.getListenerInterface());
}
- if (listenerInterface != null)
- {
- PageAndComponentProvider provider = new PageAndComponentProvider(pageInfo.getPageId(),
- pageClass, pageParameters, renderCount, componentInfo.getComponentPath());
+ PageAndComponentProvider provider = new PageAndComponentProvider(pageInfo.getPageId(),
+ pageClass, pageParameters, renderCount, componentInfo.getComponentPath());
- provider.setPageSource(getContext());
+ provider.setPageSource(getContext());
- return new ListenerInterfaceRequestHandler(provider, listenerInterface,
- componentInfo.getBehaviorId());
- }
- else
- {
- if (logger.isWarnEnabled())
- {
- if (componentInfo != null)
- {
- logger.warn("Unknown listener interface '{}'",
- componentInfo.getListenerInterface());
- }
- else
- {
- logger.warn("Cannot extract the listener interface for PageComponentInfo: '{}'" +
- pageComponentInfo);
- }
- }
- return null;
- }
+ return new ListenerInterfaceRequestHandler(provider, componentInfo.getBehaviorId());
}
/**
@@ -463,15 +438,13 @@ public abstract class AbstractBookmarkableMapper extends AbstractComponentMapper
}
Integer renderCount = null;
- if (handler.getListenerInterface().isIncludeRenderCount())
+ if (handler.includeRenderCount())
{
renderCount = handler.getRenderCount();
}
PageInfo pageInfo = getPageInfo(handler);
- ComponentInfo componentInfo = new ComponentInfo(renderCount,
- requestListenerInterfaceToString(handler.getListenerInterface()),
- handler.getComponentPath(), handler.getBehaviorIndex());
+ ComponentInfo componentInfo = new ComponentInfo(renderCount, handler.getComponentPath(), handler.getBehaviorIndex());
PageParameters parameters = getRecreateMountedPagesAfterExpiry() ? new PageParameters(
handler.getPage().getPageParameters()).mergeWith(handler.getPageParameters())
http://git-wip-us.apache.org/repos/asf/wicket/blob/d1710298/wicket-core/src/main/java/org/apache/wicket/core/request/mapper/AbstractComponentMapper.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/core/request/mapper/AbstractComponentMapper.java b/wicket-core/src/main/java/org/apache/wicket/core/request/mapper/AbstractComponentMapper.java
index 923a43f..71a28f5 100644
--- a/wicket-core/src/main/java/org/apache/wicket/core/request/mapper/AbstractComponentMapper.java
+++ b/wicket-core/src/main/java/org/apache/wicket/core/request/mapper/AbstractComponentMapper.java
@@ -17,7 +17,6 @@
package org.apache.wicket.core.request.mapper;
import org.apache.wicket.Application;
-import org.apache.wicket.RequestListenerInterface;
import org.apache.wicket.core.util.lang.WicketObjects;
import org.apache.wicket.request.IRequestMapper;
import org.apache.wicket.request.Url;
@@ -48,32 +47,6 @@ public abstract class AbstractComponentMapper extends AbstractMapper implements
}
/**
- * Converts the specified listener interface to String.
- *
- * @param listenerInterface
- * @return listenerInterface name as string
- */
- protected String requestListenerInterfaceToString(RequestListenerInterface listenerInterface)
- {
- Args.notNull(listenerInterface, "listenerInterface");
-
- return getContext().requestListenerInterfaceToString(listenerInterface);
- }
-
- /**
- * Creates listener interface from the specified string
- *
- * @param interfaceName
- * @return listener interface
- */
- protected RequestListenerInterface requestListenerInterfaceFromString(String interfaceName)
- {
- Args.notEmpty(interfaceName, "interfaceName");
-
- return getContext().requestListenerInterfaceFromString(interfaceName);
- }
-
- /**
* Extracts the {@link PageComponentInfo} from the URL. The {@link PageComponentInfo} is encoded
* as the very first query parameter and the parameter consists of name only (no value).
*
http://git-wip-us.apache.org/repos/asf/wicket/blob/d1710298/wicket-core/src/main/java/org/apache/wicket/core/request/mapper/IMapperContext.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/core/request/mapper/IMapperContext.java b/wicket-core/src/main/java/org/apache/wicket/core/request/mapper/IMapperContext.java
index 52366d3..792904f 100644
--- a/wicket-core/src/main/java/org/apache/wicket/core/request/mapper/IMapperContext.java
+++ b/wicket-core/src/main/java/org/apache/wicket/core/request/mapper/IMapperContext.java
@@ -16,7 +16,6 @@
*/
package org.apache.wicket.core.request.mapper;
-import org.apache.wicket.RequestListenerInterface;
import org.apache.wicket.request.component.IRequestablePage;
import org.apache.wicket.request.resource.ResourceReferenceRegistry;
@@ -53,22 +52,6 @@ public interface IMapperContext extends IPageSource
ResourceReferenceRegistry getResourceReferenceRegistry();
/**
- * Returns the listener interface name as string.
- *
- * @param listenerInterface
- * @return listener interface name as string
- */
- String requestListenerInterfaceToString(RequestListenerInterface listenerInterface);
-
- /**
- * Returns listener interface for the name
- *
- * @param interfaceName
- * @return listener interface
- */
- RequestListenerInterface requestListenerInterfaceFromString(String interfaceName);
-
- /**
* Returns the home page class.
*
* @return home page class
http://git-wip-us.apache.org/repos/asf/wicket/blob/d1710298/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 965b316..1b6aa28 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,6 @@ package org.apache.wicket.core.request.mapper;
import java.util.function.Supplier;
-import org.apache.wicket.RequestListenerInterface;
import org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler;
import org.apache.wicket.request.IRequestHandler;
import org.apache.wicket.request.Request;
@@ -166,19 +165,15 @@ public class MountedMapper extends AbstractBookmarkableMapper
IRequestablePage page = handler.getPage();
if (checkPageInstance(page))
{
- String componentPath = handler.getComponentPath();
- RequestListenerInterface listenerInterface = handler.getListenerInterface();
-
Integer renderCount = null;
- if (listenerInterface.isIncludeRenderCount())
+ if (handler.includeRenderCount())
{
renderCount = page.getRenderCount();
}
+ String componentPath = handler.getComponentPath();
PageInfo pageInfo = getPageInfo(handler);
- ComponentInfo componentInfo = new ComponentInfo(renderCount,
- requestListenerInterfaceToString(listenerInterface), componentPath,
- handler.getBehaviorIndex());
+ ComponentInfo componentInfo = new ComponentInfo(renderCount, componentPath, handler.getBehaviorIndex());
PageComponentInfo pageComponentInfo = new PageComponentInfo(pageInfo, componentInfo);
PageParameters parameters = new PageParameters(page.getPageParameters());
UrlInfo urlInfo = new UrlInfo(pageComponentInfo, page.getClass(),
http://git-wip-us.apache.org/repos/asf/wicket/blob/d1710298/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 a034642..e983131 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,6 @@
*/
package org.apache.wicket.core.request.mapper;
-import org.apache.wicket.RequestListenerInterface;
import org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler;
import org.apache.wicket.core.request.handler.PageAndComponentProvider;
import org.apache.wicket.core.request.handler.PageProvider;
@@ -86,11 +85,7 @@ public class PageInstanceMapper extends AbstractComponentMapper
provider.setPageSource(getContext());
- // listener interface
- RequestListenerInterface listenerInterface = requestListenerInterfaceFromString(componentInfo.getListenerInterface());
-
- return new ListenerInterfaceRequestHandler(provider, listenerInterface,
- componentInfo.getBehaviorId());
+ return new ListenerInterfaceRequestHandler(provider, componentInfo.getBehaviorId());
}
}
}
@@ -117,18 +112,15 @@ public class PageInstanceMapper extends AbstractComponentMapper
ListenerInterfaceRequestHandler handler = (ListenerInterfaceRequestHandler)requestHandler;
IRequestablePage page = handler.getPage();
String componentPath = handler.getComponentPath();
- RequestListenerInterface listenerInterface = handler.getListenerInterface();
Integer renderCount = null;
- if (listenerInterface.isIncludeRenderCount())
+ if (handler.includeRenderCount())
{
renderCount = page.getRenderCount();
}
PageInfo pageInfo = new PageInfo(page.getPageId());
- ComponentInfo componentInfo = new ComponentInfo(renderCount,
- requestListenerInterfaceToString(listenerInterface), componentPath,
- handler.getBehaviorIndex());
+ ComponentInfo componentInfo = new ComponentInfo(renderCount, componentPath, handler.getBehaviorIndex());
info = new PageComponentInfo(pageInfo, componentInfo);
}
http://git-wip-us.apache.org/repos/asf/wicket/blob/d1710298/wicket-core/src/main/java/org/apache/wicket/markup/html/form/Check.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/Check.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/Check.java
index dab8129..91aff59 100644
--- a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/Check.java
+++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/Check.java
@@ -198,7 +198,7 @@ public class Check<T> extends LabeledWebMarkupContainer implements IGenericCompo
if (group.wantOnSelectionChangedNotifications())
{
// url that points to this components IOnChangeListener method
- CharSequence url = group.urlFor(IOnChangeListener.INTERFACE, new PageParameters());
+ CharSequence url = group.urlFor(new PageParameters());
Form<?> form = group.findParent(Form.class);
if (form != null)
http://git-wip-us.apache.org/repos/asf/wicket/blob/d1710298/wicket-core/src/main/java/org/apache/wicket/markup/html/form/CheckBox.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/CheckBox.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/CheckBox.java
index 180f191..655533a 100644
--- a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/CheckBox.java
+++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/CheckBox.java
@@ -18,6 +18,7 @@ package org.apache.wicket.markup.html.form;
import java.util.Locale;
+import org.apache.wicket.IRequestListener;
import org.apache.wicket.markup.ComponentTag;
import org.apache.wicket.model.IModel;
import org.apache.wicket.request.mapper.parameter.PageParameters;
@@ -51,7 +52,7 @@ import org.apache.wicket.util.convert.IConverter;
*
* @author Jonathan Locke
*/
-public class CheckBox extends FormComponent<Boolean> implements IOnChangeListener
+public class CheckBox extends FormComponent<Boolean> implements IRequestListener
{
private static final long serialVersionUID = 1L;
@@ -74,6 +75,12 @@ public class CheckBox extends FormComponent<Boolean> implements IOnChangeListene
setType(Boolean.class);
}
+ @Override
+ public boolean includeRenderCount()
+ {
+ return true;
+ }
+
/**
* @see org.apache.wicket.markup.html.form.IOnChangeListener#onSelectionChanged()
*/
@@ -163,7 +170,7 @@ public class CheckBox extends FormComponent<Boolean> implements IOnChangeListene
// checkbox is clicked?
if (wantOnSelectionChangedNotifications())
{
- CharSequence url = urlFor(IOnChangeListener.INTERFACE, new PageParameters());
+ CharSequence url = urlFor(new PageParameters());
Form<?> form = findParent(Form.class);
if (form != null)
http://git-wip-us.apache.org/repos/asf/wicket/blob/d1710298/wicket-core/src/main/java/org/apache/wicket/markup/html/form/CheckGroup.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/CheckGroup.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/CheckGroup.java
index 1e6d804..5c62da5 100644
--- a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/CheckGroup.java
+++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/CheckGroup.java
@@ -19,6 +19,7 @@ package org.apache.wicket.markup.html.form;
import java.util.Collection;
import java.util.List;
+import org.apache.wicket.IRequestListener;
import org.apache.wicket.WicketRuntimeException;
import org.apache.wicket.markup.ComponentTag;
import org.apache.wicket.markup.html.WebMarkupContainer;
@@ -58,7 +59,7 @@ import org.slf4j.LoggerFactory;
* @param <T>
* The model object type
*/
-public class CheckGroup<T> extends FormComponent<Collection<T>> implements IOnChangeListener
+public class CheckGroup<T> extends FormComponent<Collection<T>> implements IRequestListener
{
private static final long serialVersionUID = 1L;
@@ -200,6 +201,12 @@ public class CheckGroup<T> extends FormComponent<Collection<T>> implements IOnCh
tag.remove("name");
}
+ @Override
+ public boolean includeRenderCount()
+ {
+ return true;
+ }
+
/**
* Called when a selection changes.
*/
http://git-wip-us.apache.org/repos/asf/wicket/blob/d1710298/wicket-core/src/main/java/org/apache/wicket/markup/html/form/DropDownChoice.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/DropDownChoice.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/DropDownChoice.java
index ca03dfd..60f97fa 100644
--- a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/DropDownChoice.java
+++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/DropDownChoice.java
@@ -18,6 +18,7 @@ package org.apache.wicket.markup.html.form;
import java.util.List;
+import org.apache.wicket.IRequestListener;
import org.apache.wicket.ajax.form.AjaxFormComponentUpdatingBehavior;
import org.apache.wicket.markup.ComponentTag;
import org.apache.wicket.model.IModel;
@@ -63,7 +64,7 @@ import org.apache.wicket.request.mapper.parameter.PageParameters;
* @param <T>
* The model object type
*/
-public class DropDownChoice<T> extends AbstractSingleSelectChoice<T> implements IOnChangeListener
+public class DropDownChoice<T> extends AbstractSingleSelectChoice<T> implements IRequestListener
{
private static final long serialVersionUID = 1L;
@@ -202,6 +203,12 @@ public class DropDownChoice<T> extends AbstractSingleSelectChoice<T> implements
super(id, model, choices, renderer);
}
+ @Override
+ public boolean includeRenderCount()
+ {
+ return true;
+ }
+
/**
* Called when a selection changes.
*/
@@ -231,7 +238,7 @@ public class DropDownChoice<T> extends AbstractSingleSelectChoice<T> implements
{
// we do not want relative URL here, because it will be used by
// Form#dispatchEvent
- CharSequence url = urlFor(IOnChangeListener.INTERFACE, new PageParameters());
+ CharSequence url = urlFor(new PageParameters());
Form<?> form = findParent(Form.class);
if (form != null)
http://git-wip-us.apache.org/repos/asf/wicket/blob/d1710298/wicket-core/src/main/java/org/apache/wicket/markup/html/form/Form.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/Form.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/Form.java
index efa7137..fbdc568 100644
--- a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/Form.java
+++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/Form.java
@@ -30,6 +30,7 @@ import org.apache.commons.fileupload.FileUploadBase;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.wicket.Component;
import org.apache.wicket.IGenericComponent;
+import org.apache.wicket.IRequestListener;
import org.apache.wicket.Page;
import org.apache.wicket.WicketRuntimeException;
import org.apache.wicket.ajax.AjaxRequestTarget;
@@ -146,7 +147,7 @@ import org.slf4j.LoggerFactory;
*/
public class Form<T> extends WebMarkupContainer
implements
- IFormSubmitListener,
+ IRequestListener,
IGenericComponent<T, Form<T>>
{
private static final String HIDDEN_DIV_START = "<div style=\"width:0px;height:0px;position:absolute;left:-100px;top:-100px;overflow:hidden\">";
@@ -674,6 +675,12 @@ public class Form<T> extends WebMarkupContainer
return getFlag(FLAG_SUBMITTED);
}
+ @Override
+ public boolean includeRenderCount()
+ {
+ return true;
+ }
+
/**
* THIS METHOD IS NOT PART OF THE WICKET API. DO NOT ATTEMPT TO OVERRIDE OR CALL IT.
*
@@ -1646,7 +1653,7 @@ public class Form<T> extends WebMarkupContainer
*/
protected CharSequence getActionUrl()
{
- return urlFor(IFormSubmitListener.INTERFACE, new PageParameters());
+ return urlFor(new PageParameters());
}
/**
http://git-wip-us.apache.org/repos/asf/wicket/blob/d1710298/wicket-core/src/main/java/org/apache/wicket/markup/html/form/IFormSubmitListener.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/IFormSubmitListener.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/IFormSubmitListener.java
deleted file mode 100644
index 3dfff96..0000000
--- a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/IFormSubmitListener.java
+++ /dev/null
@@ -1,33 +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.markup.html.form;
-
-import org.apache.wicket.IRequestListener;
-import org.apache.wicket.RequestListenerInterface;
-
-/**
- * Listener interface that is called when a form is submitted.
- *
- * @author Jonathan Locke
- */
-public interface IFormSubmitListener extends IRequestListener
-{
- /** Listener interface */
- RequestListenerInterface INTERFACE = new RequestListenerInterface(
- IFormSubmitListener.class);
-
-}
http://git-wip-us.apache.org/repos/asf/wicket/blob/d1710298/wicket-core/src/main/java/org/apache/wicket/markup/html/form/IOnChangeListener.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/IOnChangeListener.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/IOnChangeListener.java
deleted file mode 100644
index 964c531..0000000
--- a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/IOnChangeListener.java
+++ /dev/null
@@ -1,35 +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.markup.html.form;
-
-import org.apache.wicket.IRequestListener;
-import org.apache.wicket.RequestListenerInterface;
-
-/**
- * Listener method for OnChange events of dropdown lists and onclick events of CheckBoxes and
- * RadioChoice components. When any of those components wantOnSelectionChangedNotifications() method
- * returns true, a javascript onchange or onclick handler will be generated that calls this
- * interface method when the user changes the selection.
- *
- * @author Eelco Hillenius
- */
-public interface IOnChangeListener extends IRequestListener
-{
- /** Listener interface */
- RequestListenerInterface INTERFACE = new RequestListenerInterface(
- IOnChangeListener.class);
-}
http://git-wip-us.apache.org/repos/asf/wicket/blob/d1710298/wicket-core/src/main/java/org/apache/wicket/markup/html/form/ImageButton.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/ImageButton.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/ImageButton.java
index 978d138..702daad 100644
--- a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/ImageButton.java
+++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/ImageButton.java
@@ -16,7 +16,7 @@
*/
package org.apache.wicket.markup.html.form;
-import org.apache.wicket.IResourceListener;
+import org.apache.wicket.IRequestListener;
import org.apache.wicket.markup.ComponentTag;
import org.apache.wicket.markup.html.image.resource.LocalizedImageResource;
import org.apache.wicket.model.IModel;
@@ -34,7 +34,7 @@ import org.apache.wicket.request.resource.ResourceReference;
*
* @author Jonathan Locke
*/
-public class ImageButton extends Button implements IResourceListener
+public class ImageButton extends Button implements IRequestListener
{
private static final long serialVersionUID = 1L;
@@ -126,6 +126,11 @@ public class ImageButton extends Button implements IResourceListener
this(id, new Model<String>(string));
}
+ @Override
+ public boolean includeRenderCount()
+ {
+ return false;
+ }
/**
* @see org.apache.wicket.IResourceListener#onResourceRequested()
http://git-wip-us.apache.org/repos/asf/wicket/blob/d1710298/wicket-core/src/main/java/org/apache/wicket/markup/html/form/Radio.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/Radio.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/Radio.java
index 20965b2..8db42ed 100644
--- a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/Radio.java
+++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/Radio.java
@@ -183,7 +183,7 @@ public class Radio<T> extends LabeledWebMarkupContainer implements IGenericCompo
if (group.wantOnSelectionChangedNotifications())
{
// url that points to this components IOnChangeListener method
- CharSequence url = group.urlFor(IOnChangeListener.INTERFACE, new PageParameters());
+ CharSequence url = group.urlFor(new PageParameters());
Form<?> form = group.findParent(Form.class);
if (form != null)
http://git-wip-us.apache.org/repos/asf/wicket/blob/d1710298/wicket-core/src/main/java/org/apache/wicket/markup/html/form/RadioChoice.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/RadioChoice.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/RadioChoice.java
index e8af55e..1d336ea 100644
--- a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/RadioChoice.java
+++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/RadioChoice.java
@@ -19,6 +19,7 @@ package org.apache.wicket.markup.html.form;
import java.util.List;
import java.util.Map;
+import org.apache.wicket.IRequestListener;
import org.apache.wicket.markup.ComponentTag;
import org.apache.wicket.markup.MarkupStream;
import org.apache.wicket.model.IModel;
@@ -65,7 +66,7 @@ import org.apache.wicket.util.value.IValueMap;
* @param <T>
* The model object type
*/
-public class RadioChoice<T> extends AbstractSingleSelectChoice<T> implements IOnChangeListener
+public class RadioChoice<T> extends AbstractSingleSelectChoice<T> implements IRequestListener
{
private static final long serialVersionUID = 1L;
@@ -244,6 +245,12 @@ public class RadioChoice<T> extends AbstractSingleSelectChoice<T> implements IOn
tag.remove("name");
}
+ @Override
+ public boolean includeRenderCount()
+ {
+ return true;
+ }
+
/**
* @see org.apache.wicket.markup.html.form.IOnChangeListener#onSelectionChanged()
*/
@@ -527,7 +534,7 @@ public class RadioChoice<T> extends AbstractSingleSelectChoice<T> implements IOn
// when the option is clicked?
if (wantOnSelectionChangedNotifications())
{
- CharSequence url = urlFor(IOnChangeListener.INTERFACE, new PageParameters());
+ CharSequence url = urlFor(new PageParameters());
Form<?> form = findParent(Form.class);
if (form != null)
http://git-wip-us.apache.org/repos/asf/wicket/blob/d1710298/wicket-core/src/main/java/org/apache/wicket/markup/html/form/RadioGroup.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/RadioGroup.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/RadioGroup.java
index e4f142e..795132d 100644
--- a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/RadioGroup.java
+++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/RadioGroup.java
@@ -16,6 +16,7 @@
*/
package org.apache.wicket.markup.html.form;
+import org.apache.wicket.IRequestListener;
import org.apache.wicket.WicketRuntimeException;
import org.apache.wicket.markup.ComponentTag;
import org.apache.wicket.markup.html.WebMarkupContainer;
@@ -47,7 +48,7 @@ import org.apache.wicket.util.visit.IVisitor;
* @param <T>
* The model object type
*/
-public class RadioGroup<T> extends FormComponent<T> implements IOnChangeListener
+public class RadioGroup<T> extends FormComponent<T> implements IRequestListener
{
private static final long serialVersionUID = 1L;
@@ -163,6 +164,12 @@ public class RadioGroup<T> extends FormComponent<T> implements IOnChangeListener
tag.remove("name");
}
+ @Override
+ public boolean includeRenderCount()
+ {
+ return true;
+ }
+
/**
* Called when a selection changes.
*/
http://git-wip-us.apache.org/repos/asf/wicket/blob/d1710298/wicket-core/src/main/java/org/apache/wicket/markup/html/form/StatelessForm.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/StatelessForm.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/StatelessForm.java
index 2e41325..f258556 100644
--- a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/StatelessForm.java
+++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/StatelessForm.java
@@ -82,7 +82,7 @@ public class StatelessForm<T> extends Form<T>
@Override
protected CharSequence getActionUrl()
{
- return urlFor(IFormSubmitListener.INTERFACE, getPage().getPageParameters());
+ return urlFor(getPage().getPageParameters());
}
/**
http://git-wip-us.apache.org/repos/asf/wicket/blob/d1710298/wicket-core/src/main/java/org/apache/wicket/markup/html/image/Image.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/image/Image.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/image/Image.java
index 1b9622c..28f17ee 100644
--- a/wicket-core/src/main/java/org/apache/wicket/markup/html/image/Image.java
+++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/image/Image.java
@@ -22,7 +22,7 @@ import java.util.Arrays;
import java.util.List;
import org.apache.wicket.Component;
-import org.apache.wicket.IResourceListener;
+import org.apache.wicket.IRequestListener;
import org.apache.wicket.core.request.handler.IPartialPageRequestHandler;
import org.apache.wicket.markup.ComponentTag;
import org.apache.wicket.markup.MarkupStream;
@@ -49,7 +49,7 @@ import org.apache.wicket.request.resource.ResourceReference;
* @author Jonathan Locke
* @author Tobias Soloschenko
*/
-public class Image extends WebComponent implements IResourceListener
+public class Image extends WebComponent implements IRequestListener
{
private static final long serialVersionUID = 1L;
@@ -210,6 +210,12 @@ public class Image extends WebComponent implements IResourceListener
this(id, new Model<>(string));
}
+ @Override
+ public boolean includeRenderCount()
+ {
+ return false;
+ }
+
/**
* @see org.apache.wicket.IResourceListener#onResourceRequested()
*/
@@ -582,9 +588,7 @@ public class Image extends WebComponent implements IResourceListener
@Override
public boolean canCallListenerInterface(Method method)
{
- boolean isResource = method != null &&
- IResourceListener.class.isAssignableFrom(method.getDeclaringClass());
- if (isResource && isVisibleInHierarchy())
+ if (isVisibleInHierarchy())
{
// when the image data is requested we do not care if this component
// is enabled in
http://git-wip-us.apache.org/repos/asf/wicket/blob/d1710298/wicket-core/src/main/java/org/apache/wicket/markup/html/image/resource/LocalizedImageResource.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/image/resource/LocalizedImageResource.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/image/resource/LocalizedImageResource.java
index 10f25f0..93a2e39 100644
--- a/wicket-core/src/main/java/org/apache/wicket/markup/html/image/resource/LocalizedImageResource.java
+++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/image/resource/LocalizedImageResource.java
@@ -20,9 +20,7 @@ import java.util.Locale;
import org.apache.wicket.Application;
import org.apache.wicket.Component;
-import org.apache.wicket.util.io.IClusterable;
import org.apache.wicket.IResourceFactory;
-import org.apache.wicket.IResourceListener;
import org.apache.wicket.MarkupContainer;
import org.apache.wicket.WicketRuntimeException;
import org.apache.wicket.markup.ComponentTag;
@@ -33,6 +31,7 @@ import org.apache.wicket.request.resource.IResource;
import org.apache.wicket.request.resource.IResource.Attributes;
import org.apache.wicket.request.resource.PackageResourceReference;
import org.apache.wicket.request.resource.ResourceReference;
+import org.apache.wicket.util.io.IClusterable;
import org.apache.wicket.util.lang.Objects;
import org.apache.wicket.util.parse.metapattern.Group;
import org.apache.wicket.util.parse.metapattern.MetaPattern;
@@ -333,7 +332,7 @@ public final class LocalizedImageResource implements IClusterable
else
{
// Create URL to component
- url = component.urlFor(IResourceListener.INTERFACE, resourceParameters);
+ url = component.urlFor(resourceParameters);
}
// Set the SRC attribute to point to the component or shared resource
http://git-wip-us.apache.org/repos/asf/wicket/blob/d1710298/wicket-core/src/main/java/org/apache/wicket/markup/html/link/ILinkListener.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/link/ILinkListener.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/link/ILinkListener.java
deleted file mode 100644
index c2d37f1..0000000
--- a/wicket-core/src/main/java/org/apache/wicket/markup/html/link/ILinkListener.java
+++ /dev/null
@@ -1,32 +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.markup.html.link;
-
-import org.apache.wicket.IRequestListener;
-import org.apache.wicket.RequestListenerInterface;
-
-/**
- * Listener method for link clicks.
- *
- * @author Jonathan Locke
- */
-public interface ILinkListener extends IRequestListener
-{
- /** Listener interface */
- RequestListenerInterface INTERFACE = new RequestListenerInterface(
- ILinkListener.class);
-}
http://git-wip-us.apache.org/repos/asf/wicket/blob/d1710298/wicket-core/src/main/java/org/apache/wicket/markup/html/link/InlineFrame.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/link/InlineFrame.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/link/InlineFrame.java
index 566bdae..0663620 100644
--- a/wicket-core/src/main/java/org/apache/wicket/markup/html/link/InlineFrame.java
+++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/link/InlineFrame.java
@@ -16,6 +16,7 @@
*/
package org.apache.wicket.markup.html.link;
+import org.apache.wicket.IRequestListener;
import org.apache.wicket.Page;
import org.apache.wicket.core.request.handler.IPageProvider;
import org.apache.wicket.core.request.handler.PageProvider;
@@ -33,7 +34,7 @@ import org.apache.wicket.request.mapper.parameter.PageParameters;
*
*/
-public class InlineFrame extends WebMarkupContainer implements ILinkListener
+public class InlineFrame extends WebMarkupContainer implements IRequestListener
{
private static final long serialVersionUID = 1L;
@@ -122,7 +123,7 @@ public class InlineFrame extends WebMarkupContainer implements ILinkListener
*/
protected CharSequence getURL()
{
- return urlFor(ILinkListener.INTERFACE, new PageParameters());
+ return urlFor(new PageParameters());
}
/**
@@ -146,6 +147,12 @@ public class InlineFrame extends WebMarkupContainer implements ILinkListener
super.onComponentTag(tag);
}
+ @Override
+ public boolean includeRenderCount()
+ {
+ return true;
+ }
+
/**
* @see org.apache.wicket.markup.html.link.ILinkListener#onLinkClicked()
*/
http://git-wip-us.apache.org/repos/asf/wicket/blob/d1710298/wicket-core/src/main/java/org/apache/wicket/markup/html/link/Link.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/link/Link.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/link/Link.java
index 413698c..cfc23ec 100644
--- a/wicket-core/src/main/java/org/apache/wicket/markup/html/link/Link.java
+++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/link/Link.java
@@ -18,6 +18,7 @@ package org.apache.wicket.markup.html.link;
import org.apache.wicket.Component;
import org.apache.wicket.IGenericComponent;
+import org.apache.wicket.IRequestListener;
import org.apache.wicket.Page;
import org.apache.wicket.WicketRuntimeException;
import org.apache.wicket.lambda.WicketConsumer;
@@ -75,7 +76,7 @@ import org.apache.wicket.util.lang.Args;
* @param <T>
* type of model object
*/
-public abstract class Link<T> extends AbstractLink implements ILinkListener, IGenericComponent<T, Link<T>>
+public abstract class Link<T> extends AbstractLink implements IRequestListener, IGenericComponent<T, Link<T>>
{
private static final long serialVersionUID = 1L;
@@ -177,6 +178,12 @@ public abstract class Link<T> extends AbstractLink implements ILinkListener, IGe
*/
public abstract void onClick();
+ @Override
+ public boolean includeRenderCount()
+ {
+ return true;
+ }
+
/**
* THIS METHOD IS NOT PART OF THE WICKET API. DO NOT ATTEMPT TO OVERRIDE OR CALL IT.
*
@@ -326,7 +333,7 @@ public abstract class Link<T> extends AbstractLink implements ILinkListener, IGe
*/
protected CharSequence getURL()
{
- return urlFor(ILinkListener.INTERFACE, new PageParameters());
+ return urlFor(new PageParameters());
}
/**
http://git-wip-us.apache.org/repos/asf/wicket/blob/d1710298/wicket-core/src/main/java/org/apache/wicket/markup/html/link/ResourceLink.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/link/ResourceLink.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/link/ResourceLink.java
index b8bbff4..6e8e73d 100644
--- a/wicket-core/src/main/java/org/apache/wicket/markup/html/link/ResourceLink.java
+++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/link/ResourceLink.java
@@ -16,7 +16,7 @@
*/
package org.apache.wicket.markup.html.link;
-import org.apache.wicket.IResourceListener;
+import org.apache.wicket.IRequestListener;
import org.apache.wicket.request.cycle.RequestCycle;
import org.apache.wicket.request.handler.resource.ResourceReferenceRequestHandler;
import org.apache.wicket.request.mapper.parameter.PageParameters;
@@ -31,7 +31,7 @@ import org.apache.wicket.request.resource.ResourceReference;
* @param <T>
* type of model object
*/
-public class ResourceLink<T> extends Link<T> implements IResourceListener
+public class ResourceLink<T> extends Link<T> implements IRequestListener
{
private static final long serialVersionUID = 1L;
@@ -103,6 +103,12 @@ public class ResourceLink<T> extends Link<T> implements IResourceListener
{
}
+ @Override
+ public boolean includeRenderCount()
+ {
+ return false;
+ }
+
/**
* @see org.apache.wicket.IResourceListener#onResourceRequested()
*/
@@ -142,6 +148,6 @@ public class ResourceLink<T> extends Link<T> implements IResourceListener
return getRequestCycle().urlFor(
new ResourceReferenceRequestHandler(resourceReference, resourceParameters));
}
- return urlFor(IResourceListener.INTERFACE, resourceParameters);
+ return urlFor(resourceParameters);
}
}
http://git-wip-us.apache.org/repos/asf/wicket/blob/d1710298/wicket-core/src/main/java/org/apache/wicket/markup/html/link/StatelessLink.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/link/StatelessLink.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/link/StatelessLink.java
index 9a4a5c5..62e0581 100644
--- a/wicket-core/src/main/java/org/apache/wicket/markup/html/link/StatelessLink.java
+++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/link/StatelessLink.java
@@ -50,8 +50,14 @@ public abstract class StatelessLink<T> extends Link<T>
}
@Override
+ public boolean includeRenderCount()
+ {
+ return false;
+ }
+
+ @Override
protected CharSequence getURL()
{
- return urlFor(ILinkListener.INTERFACE, getPage().getPageParameters());
+ return urlFor(getPage().getPageParameters());
}
}
http://git-wip-us.apache.org/repos/asf/wicket/blob/d1710298/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 e7d582a..8544339 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
@@ -40,8 +40,6 @@ import javax.servlet.ServletContext;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpSession;
-import junit.framework.AssertionFailedError;
-
import org.apache.wicket.Application;
import org.apache.wicket.Component;
import org.apache.wicket.IPageManagerProvider;
@@ -50,7 +48,6 @@ import org.apache.wicket.IRequestCycleProvider;
import org.apache.wicket.IRequestListener;
import org.apache.wicket.MarkupContainer;
import org.apache.wicket.Page;
-import org.apache.wicket.RequestListenerInterface;
import org.apache.wicket.Session;
import org.apache.wicket.ThreadContext;
import org.apache.wicket.WicketRuntimeException;
@@ -82,12 +79,10 @@ import org.apache.wicket.markup.html.WebPage;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.form.Form;
import org.apache.wicket.markup.html.form.FormComponent;
-import org.apache.wicket.markup.html.form.IFormSubmitListener;
import org.apache.wicket.markup.html.form.SubmitLink;
import org.apache.wicket.markup.html.link.AbstractLink;
import org.apache.wicket.markup.html.link.BookmarkablePageLink;
import org.apache.wicket.markup.html.link.ExternalLink;
-import org.apache.wicket.markup.html.link.ILinkListener;
import org.apache.wicket.markup.html.link.Link;
import org.apache.wicket.markup.html.link.ResourceLink;
import org.apache.wicket.markup.html.list.ListView;
@@ -140,6 +135,8 @@ import org.apache.wicket.util.visit.IVisitor;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import junit.framework.AssertionFailedError;
+
/**
* A helper class to ease unit testing of Wicket applications without the need for a servlet
* container. See javadoc of <code>WicketTester</code> for example usage. This class can be used as
@@ -1070,7 +1067,7 @@ public class BaseWicketTester
{
Args.notNull(link, "link");
- Url url = Url.parse(link.urlFor(ILinkListener.INTERFACE, new PageParameters()).toString());
+ Url url = Url.parse(link.urlFor(new PageParameters()).toString());
return transform(url).toString();
}
@@ -1084,14 +1081,14 @@ public class BaseWicketTester
* @param component
* @param listener
*/
- public void executeListener(final Component component, final RequestListenerInterface listener)
+ public void executeListener(final Component component)
{
Args.notNull(component, "component");
// 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(
- component.getPage(), component), listener);
+ component.getPage(), component));
Url url = urlFor(handler);
request.setUrl(url);
@@ -1110,39 +1107,19 @@ public class BaseWicketTester
* @param component
* @param listener
*/
- public void invokeListener(final Component component, final RequestListenerInterface listener)
+ public void invokeListener(final Component component)
{
Args.notNull(component, "component");
// 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(
- component.getPage(), component), listener);
+ component.getPage(), component));
processRequest(handler);
}
/**
- * Builds and processes a request suitable for invoking a listener. The <code>Component</code>
- * must implement any of the known <code>IListener</code> interfaces.
- *
- * @param component
- * the listener to invoke
- */
- public void executeListener(final Component component)
- {
- Args.notNull(component, "component");
-
- for (RequestListenerInterface iface : RequestListenerInterface.getRegisteredInterfaces())
- {
- if (iface.getListenerInterfaceClass().isAssignableFrom(component.getClass()))
- {
- executeListener(component, iface);
- }
- }
- }
-
- /**
* Builds and processes a request suitable for executing an <code>AbstractAjaxBehavior</code>.
*
* @param behavior
@@ -1988,7 +1965,7 @@ public class BaseWicketTester
}
else
{
- executeListener(link, ILinkListener.INTERFACE);
+ executeListener(link);
}
}
// The link requires AJAX
@@ -2029,7 +2006,7 @@ public class BaseWicketTester
Form<?> form = (Form<?>)getComponentFromLastRenderedPage(path);
Url url = Url.parse(
form.getRootForm()
- .urlFor(IFormSubmitListener.INTERFACE, new PageParameters())
+ .urlFor(new PageParameters())
.toString(), Charset.forName(request.getCharacterEncoding()));
// make url absolute
http://git-wip-us.apache.org/repos/asf/wicket/blob/d1710298/wicket-core/src/main/java/org/apache/wicket/util/tester/FormTester.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/util/tester/FormTester.java b/wicket-core/src/main/java/org/apache/wicket/util/tester/FormTester.java
index 91c8890..ed18e0e 100644
--- a/wicket-core/src/main/java/org/apache/wicket/util/tester/FormTester.java
+++ b/wicket-core/src/main/java/org/apache/wicket/util/tester/FormTester.java
@@ -35,7 +35,6 @@ import org.apache.wicket.markup.html.form.Form;
import org.apache.wicket.markup.html.form.FormComponent;
import org.apache.wicket.markup.html.form.IChoiceRenderer;
import org.apache.wicket.markup.html.form.IFormSubmittingComponent;
-import org.apache.wicket.markup.html.form.IOnChangeListener;
import org.apache.wicket.markup.html.form.ListMultipleChoice;
import org.apache.wicket.markup.html.form.Radio;
import org.apache.wicket.markup.html.form.RadioGroup;
@@ -517,7 +516,7 @@ public class FormTester
boolean wantOnSelectionChangedNotifications = (Boolean)wantOnSelectionChangedNotificationsMethod.invoke(component);
if (wantOnSelectionChangedNotifications)
{
- tester.invokeListener(component, IOnChangeListener.INTERFACE);
+ tester.invokeListener(component);
}
}
catch (final Exception x)