You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@velocity.apache.org by "Will Glass-Husain (JIRA)" <ji...@apache.org> on 2005/09/18 23:52:54 UTC

[jira] Resolved: (VELOCITY-260) patch to event handling configuration / new event handlers

     [ http://issues.apache.org/jira/browse/VELOCITY-260?page=all ]
     
Will Glass-Husain resolved VELOCITY-260:
----------------------------------------

    Fix Version: 1.5
     Resolution: Fixed
      Assign To:     (was: Velocity-Dev List)

patch was applied, this should have been resolved.

> patch to event handling configuration / new event handlers
> ----------------------------------------------------------
>
>          Key: VELOCITY-260
>          URL: http://issues.apache.org/jira/browse/VELOCITY-260
>      Project: Velocity
>         Type: Bug
>   Components: Source
>     Versions: 1.5
>  Environment: Operating System: other
> Platform: Other
>     Reporter: Will Glass-Husain
>      Fix For: 1.5
>  Attachments: about this patch.txt, event1.patch, includeevent.zip, src.zip, testcases.xml, testcases.xml
>
> Substantial patch to event handling infrastructure.  See readme.txt and 
> discussion on velocity-dev list for more detail.  Key changes:
> (1) Event handlers can be registered in the velocity-properties, e.g.
> eventhandler.referenceinsertion.class = 
> org.apache.velocity.app.event.implement.EscapeXMLEntities
> (2) Multiple event handlers can be registered for a given type and are applied 
> in a "filter" pattern.  The specifics vary per event handler (documented in 
> the JavaDocs).  The following example would first enforce a relative path rule 
> to included templates, and would then check to see if the template is actually 
> available.
> eventhandler.include.class = 
> org.apache.velocity.app.event.implement.IncludeRelativePath,org.apache.velocity
> .app.event.implement.IncludeNotFound
> 	
> (3) Event handlers have a new lifecycle.  Before they are called they are 
> initialized with a link to RuntimeServices.  This allows the handlers to 
> retrieve Velocity properties and to have access to a number of interesting 
> system methods.  Each event handler is also given the current context when it 
> is called.  This allows the template designer (or custom directives) to change 
> the behavior of the event.  A nice example of this is the EscapeXMLEntities 
> reference insertion handler, which stops escaping HTML when an "ignoreEscape" 
> flag is set in the context.
> (4) New implemented event handlers include:
> 		-- EscapeXMLEntities  (escapes HTML/XML & < > ")
> 		-- IncludeNotFound
> 		-- IncludeRelativePath
> 		-- PrintExceptions
> 	
> Using these built-in event handlers, users can do useful things (e.g. escape 
> HTML) with no extra coding just by configuring velocity.properties.
> (5) The patch is almost entirely backwards compatible.  The old "attach the 
> handler to the context" still works, although this results in a per-request 
> rather than per-application lifecycle for the handler.  One difference... the 
> API for the event handlers has changed, and as such will require minor editing 
> and recompilation of user code.  (I think this is worth it).  All tests (old 
> and new) work.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


---------------------------------------------------------------------
To unsubscribe, e-mail: velocity-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: velocity-dev-help@jakarta.apache.org