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/03/23 13:06:16 UTC
[3/3] wicket git commit: remove RequestListenerInterface
remove RequestListenerInterface
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/b8f9a87a
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/b8f9a87a
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/b8f9a87a
Branch: refs/heads/request_listener_simplification
Commit: b8f9a87aae0e74e552458775c34206f419e25af0
Parents: 0a7a0da
Author: Sven Meier <sv...@apache.org>
Authored: Sat Mar 19 19:57:00 2016 +0100
Committer: Sven Meier <sv...@apache.org>
Committed: Wed Mar 23 09:20:38 2016 +0100
----------------------------------------------------------------------
.../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 | 280 -------------------
.../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, 347 insertions(+), 936 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/wicket/blob/b8f9a87a/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 44a5309..db5afba 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);
}
@@ -3341,19 +3340,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();
@@ -3363,11 +3360,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);
}
}
@@ -3391,16 +3388,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/b8f9a87a/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/b8f9a87a/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/b8f9a87a/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/b8f9a87a/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/b8f9a87a/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
deleted file mode 100644
index 82ee03d..0000000
--- a/wicket-core/src/main/java/org/apache/wicket/RequestListenerInterface.java
+++ /dev/null
@@ -1,280 +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;
-
-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.RequestHandlerStack.ReplaceHandlerException;
-import org.apache.wicket.request.component.IRequestableComponent;
-import org.apache.wicket.core.request.handler.ListenerInvocationNotAllowedException;
-import org.apache.wicket.util.lang.Classes;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-
-/**
- * Base class for request listener interfaces.
- *
- * @author Jonathan Locke
- */
-public class RequestListenerInterface
-{
- /** Map from name to request listener interface */
- private static final Map<String, RequestListenerInterface> interfaces = Collections.synchronizedMap(new HashMap<String, RequestListenerInterface>());
-
- /** Log. */
- private static final Logger log = LoggerFactory.getLogger(RequestListenerInterface.class);
-
- /**
- * Looks up a request interface listener by name.
- *
- * @param interfaceName
- * The interface name
- * @return The RequestListenerInterface object, or null if none is found
- *
- */
- public static RequestListenerInterface forName(final String interfaceName)
- {
- return interfaces.get(interfaceName);
- }
-
- /** The name of this listener interface */
- private final String name;
-
- /**
- * Whether the render count should be included in URL. This should be true for every listener
- * interface URL that should only be active on last rendered page (links, etc) and false for
- * other (resources);
- */
- private boolean includeRenderCount = true;
-
- /**
- * Whether the page should be rendered by default after the invocation of this listener
- * interface. Applies only during non-ajax requests.
- */
- private boolean renderPageAfterInvocation = true;
-
- final Class<? extends IRequestListener> listenerInterfaceClass;
-
- /**
- * Constructor.
- *
- * @param listenerInterfaceClass
- * The interface class, which must extend IRequestListener.
- */
- public RequestListenerInterface(final Class<? extends IRequestListener> listenerInterfaceClass)
- {
- this.listenerInterfaceClass = listenerInterfaceClass;
-
- // Ensure that it extends IRequestListener
- if (!IRequestListener.class.isAssignableFrom(listenerInterfaceClass))
- {
- throw new IllegalArgumentException("Class " + listenerInterfaceClass +
- " must extend IRequestListener");
- }
-
- // Save short class name
- name = Classes.simpleName(listenerInterfaceClass);
-
- // Register this listener
- register();
- }
-
-
- /**
- * @return The interface class, which must extend IRequestListener.
- */
- public Class<? extends IRequestListener> getListenerInterfaceClass()
- {
- return listenerInterfaceClass;
- }
-
-
- /**
- * @param includeRenderCount
- * @return self
- */
- public RequestListenerInterface setIncludeRenderCount(boolean includeRenderCount)
- {
- this.includeRenderCount = includeRenderCount;
- return this;
- }
-
- /**
- * @return whether the render count should be included in url
- */
- public boolean isIncludeRenderCount()
- {
- return includeRenderCount;
- }
-
- /**
- * @param renderPageAfterInvocation
- * @return self
- */
- public RequestListenerInterface setRenderPageAfterInvocation(boolean renderPageAfterInvocation)
- {
- this.renderPageAfterInvocation = renderPageAfterInvocation;
- return this;
- }
-
- /**
- * @return whether the page should be rendered after invocation of this interface (during
- * non-ajax requests)
- */
- public boolean isRenderPageAfterInvocation()
- {
- return renderPageAfterInvocation;
- }
-
- /**
- * @return The name of this request listener interface
- */
- public final String getName()
- {
- return name;
- }
-
- /**
- * 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
- */
- public final void invoke(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(this, component, null,
- "Component rejected interface invocation");
- }
-
- internalInvoke(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
- */
- public final void invoke(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(this, component, behavior,
- "Behavior rejected interface invocation. ");
- }
-
- internalInvoke(component, behavior);
- }
-
- private void internalInvoke(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)target).onRequest();
- }
-
- /**
- * Method to call to register this interface for use
- */
- public void register()
- {
- // Register this listener interface
- registerRequestListenerInterface(this);
- }
-
- /**
- * @see java.lang.Object#toString()
- */
- @Override
- public String toString()
- {
- return "[RequestListenerInterface name=" + name + "]";
- }
-
-
- /**
- * THIS METHOD IS NOT PART OF THE WICKET PUBLIC API. DO NOT CALL IT.
- * <p>
- * In previous versions of Wicket, request listeners were manually registered by calling this
- * method. Now there is a first class RequestListenerInterface object which should be
- * constructed as a constant member of the interface to enable automatic interface registration.
- * <p>
- * Adds a request listener interface to the map of interfaces that can be invoked by outsiders.
- *
- * @param requestListenerInterface
- * The request listener interface object
- */
- private void registerRequestListenerInterface(final RequestListenerInterface requestListenerInterface)
- {
- // Check that a different interface method with the same name has not
- // already been registered
- final RequestListenerInterface existingInterface = RequestListenerInterface.forName(requestListenerInterface.getName());
- if (existingInterface == null)
- {
- // Save this interface method by the non-qualified class name
- interfaces.put(requestListenerInterface.getName(), requestListenerInterface);
-
- log.info("registered listener interface " + this);
- }
- }
-
- /**
- *
- * @return collection of all registered interfaces
- */
- public static Collection<RequestListenerInterface> getRegisteredInterfaces()
- {
- return Collections.unmodifiableCollection(interfaces.values());
- }
-
-
-}
http://git-wip-us.apache.org/repos/asf/wicket/blob/b8f9a87a/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/b8f9a87a/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 0122454..e10ee10 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.markup.ComponentTag;
import org.apache.wicket.markup.head.IHeaderResponse;
@@ -149,7 +150,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/b8f9a87a/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/b8f9a87a/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/b8f9a87a/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/b8f9a87a/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/b8f9a87a/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/b8f9a87a/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/b8f9a87a/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/b8f9a87a/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/b8f9a87a/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/b8f9a87a/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/b8f9a87a/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/b8f9a87a/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/b8f9a87a/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/b8f9a87a/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/b8f9a87a/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/b8f9a87a/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/b8f9a87a/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/b8f9a87a/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/b8f9a87a/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/b8f9a87a/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/b8f9a87a/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/b8f9a87a/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/b8f9a87a/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/b8f9a87a/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/b8f9a87a/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/b8f9a87a/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/b8f9a87a/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 b5263fe..e7374af 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.Lambdas;
@@ -75,7 +76,7 @@ import org.apache.wicket.request.mapper.parameter.PageParameters;
* @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;
@@ -182,6 +183,12 @@ public abstract class Link<T> extends AbstractLink implements ILinkListener, IGe
return Lambdas.link(id, onClick);
}
+ @Override
+ public boolean includeRenderCount()
+ {
+ return true;
+ }
+
/**
* THIS METHOD IS NOT PART OF THE WICKET API. DO NOT ATTEMPT TO OVERRIDE OR CALL IT.
*
@@ -331,7 +338,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/b8f9a87a/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/b8f9a87a/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());
}
}