+1

On Mon, Nov 23, 2009 at 18:00, 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
>



-- 
Thomas Mortagne
_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs

Reply via email to