Uploaded image for project: 'Wicket'
  1. Wicket
  2. WICKET-6137

ListenerInterfaceRequestHandler simplification

    Details

    • Type: Improvement
    • Status: Resolved
    • Priority: Minor
    • Resolution: Fixed
    • Affects Version/s: 8.0.0-M1
    • Fix Version/s: 8.0.0-M1
    • Component/s: wicket
    • Labels:
      None

      Description

      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, suggestions are welcomed.

      This has the following advantages:

      • framework exposure in URLs is minimized
      • 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.
      • a single interface for components or behavior is enough to be targeted by requests:
      	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();
      	}
      

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                svenmeier Sven Meier
                Reporter:
                svenmeier Sven Meier
              • Votes:
                0 Vote for this issue
                Watchers:
                3 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: