You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by "Sven Meier (JIRA)" <ji...@apache.org> on 2016/04/04 11:10:25 UTC

[jira] [Created] (WICKET-6137) ListenerInterfaceRequestHandler

Sven Meier created WICKET-6137:
----------------------------------

             Summary: ListenerInterfaceRequestHandler 
                 Key: WICKET-6137
                 URL: https://issues.apache.org/jira/browse/WICKET-6137
             Project: Wicket
          Issue Type: Improvement
          Components: wicket
    Affects Versions: 8.0.0-M1
            Reporter: Sven Meier
            Assignee: Sven Meier
            Priority: Minor


Branch "request_listener_simplification" contains a proposal to simplify ListenerInterfaceRequestHandler.

By limiting components and behaviors to implement a single callback only, we can remove the identifying part "I*Listener" from URLs.
For page 0, renderCount 1 and behavior 2 the following componentInfos:

  0-1.ILinkListener-link
  0-1.ILinkListener.2-link
  0-IResourceListener-image
  0-IResourceListener.2-wmc

... become:

  0-1.-link
  0-1.2-link
  0-.-image
  0-.2-wmc

This format could be further improved.

This has the following advantages:
- minimize framework exposure in URLs
- URLs get shorter
- no need to register INTERFACE constants any longer
- instead using of reflection ListenerInterfaceRequestHandler can call a single method on the component or behavior, which makes debugging easier.
- single interface for components or behavior which can be targetted by requests:

{code}
	public interface IRequestListener extends IClusterable
	{

		/**
		 * Does invocation of this listener render the page. 
		 * 
		 * @return default {@code true}, i.e. a {@link RenderPageRequestHandler} is scheduled after invocation 
		 */
		default boolean rendersPage()
		{
			return true;
		}
	
		/**
		 * Called when a request is received.
		 */
		void onRequest();
	}
{code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)