+0

Thanks,
Marius

Vincent Massol wrote:
> Hi,
> 
> We have the need to handle optional Transformations (for Annotations  
> and more generally for user-introduced annotations).
> 
> Here's what Thomas and I are proposing:
> 
> 1) We remove the TransformationManager component from the Rendering  
> module (public API). This means that calling code must lookup  
> Transformations directly.
> 
> 2) We modify the Converter interface in the Rendering module in 2 ways:
> - add a new signature that takes a list of Transformation as parameter
> - modify the implementation for the signature that take no  
> Transformation params so that no Transformations are executed when  
> it's used (API breakage)
> 
> 3) We add a XWiki configuration parameter in xwiki.properties to list  
> the transformations that must be executed (it's a list of component  
> hints) when a document is rendered. If this config param is not  
> defined then the default value will contain the Macro Transformation.
> 
> 4) We introduce a new module called xwiki-presentation which will  
> contain code to handle XWiki Presentation stuff. For example:
> - template handling
> - displayers (document displayer, object displayers, etc)
> - display configuration
> - more to be defined but related to presentation
> 
> The idea would be to move stuff that is currently in XWiki/ 
> XWikiDocument related to presentation there (for example  
> XWikiDocument.getRenderedContent could be replaced by  
> DocumentDisplayer.display(DocumentName, Syntax, Writer output) - to be  
> defined later).
> 
> 5) In order to allow modules to not depend on xwiki-core we introduce  
> PresentationConfiguration in the new xwiki-presentation module defined  
> in 4) with a getViewTransformations() method corresponding to a  
> "presentation.viewTransformations" configuration parameter.
> 
> 6) We introduce a new TransformationContext class similar to  
> MacroTransformationContext and modify the Transformation API to:
> 
> void transform(XDOM, TransformationContext) (instead of XDOM dom,  
> Syntax syntax)).
> 
> TransformationContext would contain 2 type of data:
> - the syntax
> - the list of transformations being executed (this is required by some  
> Macros. For ex the HTML macro needs it and other may need it too)
> 
> 7) We remove the getPriority() method from the Transformation interface
> 
> 8) We modify calling code: WYSIWYG, XMLRPC, etc to use the new  
> Converter API and to lookup PresentationConfiguration to get access to  
> the list of view transformations to be executed.
> 
> Here's my +1
> 
> Thanks
> -Vincent
> 
> PS: A long and complex mail... sorry about that...
> 
> _______________________________________________
> devs mailing list
> [email protected]
> http://lists.xwiki.org/mailman/listinfo/devs
_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs

Reply via email to