History | Log In     View a printable version of the current page.  
Issue Details (XML | Word | Printable)

Key: DOXIASITETOOLS-2
Type: Bug Bug
Status: Open Open
Priority: Major Major
Assignee: Unassigned
Reporter: Henning Schmiedehausen
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
Maven Doxia Sitetools

Doxia default site renderer redefines local macros over and over again

Created: 24/Dec/06 07:01 AM   Updated: 08/Sep/07 04:20 PM
Component/s: Site renderer
Affects Version/s: None
Fix Version/s: 1.0

Time Tracking:
Not Specified

Issue Links:
Related
 


 Description  « Hide
The Doxia default site renderer uses Apache Velocity to render its pages. Every time a page is rendered, Doxia tries to define Velocity Macros but the Plexus Velocity component sets the replacement of Velocity Macro to false (the default).

In Velocity Version 1.4, these error messages are silently discarded. In newer Versions (1.5 beta 2 and beyond), these messages are logged out and appear to be errors.



 All   Comments   Work Log   Change History      Sort Order: Ascending order - Click to sort in descending order
Henning Schmiedehausen - 25/Dec/06 04:44 AM
The default for logging messages from the VelociMacros will be changing in Velocity 1.5

Either you must set "velocimacro.messages.on = false" in the defaults of the Plexus Velocity component.

It would be much better if the Doxia Renderer splits the VelociMacros into its own macro library and a skin template. Then you would declare the macro file to be a macro library.

However, this again would need changes to the plexus velocity component (which is a bad idea anyway as it is as a singleton very inflexible and the usage of Velocity in different parts of Maven and Doxia interferes with each other (e.g. in the availability of macros). Either Plexus should declare a Factory that returns VelocityEngine instances that can be configured by e.g. Doxia) or you should not use any Plexus component here but build the Velocity engine yourself.