[ 
https://issues.apache.org/jira/browse/VELOCITY-260?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Henning Schmiedehausen closed VELOCITY-260.
-------------------------------------------


> patch to event handling configuration / new event handlers
> ----------------------------------------------------------
>
>                 Key: VELOCITY-260
>                 URL: https://issues.apache.org/jira/browse/VELOCITY-260
>             Project: Velocity
>          Issue Type: Bug
>          Components: Engine
>    Affects 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.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to