+1 - Asiri
On Mon, Nov 23, 2009 at 10:30 PM, Vincent Massol <[email protected]> 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

