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

