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