Maven Doxia Sitetools

Doxia default site renderer redefines local macros over and over again

Details

  • Type: Bug Bug
  • Status: Open Open
  • Priority: Major Major
  • Resolution: Unresolved
  • Affects Version/s: None
  • Fix Version/s: None
  • Component/s: Site renderer
  • Labels:
    None
  • Number of attachments :
    0

Description

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.

Issue Links

Activity

Hide
Henning Schmiedehausen added a comment -

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.

Show
Henning Schmiedehausen added a comment - 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.

People

Vote (0)
Watch (0)

Dates

  • Created:
    Updated: