Thomas Mortagne wrote:
> On Sun, Jan 31, 2010 at 20:31, Marius Dumitru Florea
> <[email protected]> wrote:
>> Hi devs,
>>
>> I'd like to split the wysiwyg module in two:
>>
>> xwiki-gwt-editor : All the client side except the editor initialization
>> code. This module should depend only on xwiki-gwt-dom and
>> xwiki-gwt-user. As a consequence, anyone should be able to inherit this
>> module and reuse the editor outside XWiki. All the editor plugins are
>> included but we don't enforce their use. This means that external
>> parties can assemble whichever plugins they want and only those plugins
>> will be compiled into JavaScript. Some plugins use services. External
>> parties have to implement this services if they want to use the plugin.
>>
>> xwiki-gwt-editor-xwiki : XWiki-specific client initialization code plus
>> all the server side (i.e. the XWiki implementation of plugin services).
>> This module will depend on xwiki-gwt-editor and XWiki platform.
>>
>> All this is quite easy to do, except one thing. Plugin services are
>> treated as components by XWiki which means service interfaces have to be
>> annotated as component roles. This adds a dependency on
>> xwiki-component-api to xwiki-gwt-editor. I see two options:
>>
>> (1) Keep the annotations and thus the dependency. This requires no
>> effort but will make the editor less reusable for those who want to
>> implement the services in a different way, using a different component
>> manager for instance.
>>
>> (2) Remove the component role annotations and add some code to
>> xwiki-gwt-editor-xwiki that dynamically registers as component roles at
>> XWiki startup all the interfaces extending RemoteService (all GWT
>> services must extend this interface). I'm not sure this is possible
>> because components defined in components.txt are looked up earlier.
>> Vincent, WDYT?
>>
>> We can improve later the organization and maybe split xwiki-gwt-editor
>> in multiple modules, but for now this is the quickest way to make the
>> editor reusable. I'm ready to do the split as soon as we agree on the
>> details. WDYT?
> 
> Rendering is depending on xwiki component and is already seen as
> usable externally to XWiki (which mean component engine is too) so IMO
> you can keep the dependency on it.
> 
> Don't you need some component engine for the WYSIWYG even outside of
> XWiki anyway (otherwise i don't see why you would have something
> depending on it) ?

No, you don't necessarily need a component engine. You can implement the 
GWT-RPC services using servlets like we did before moving to components. 
So I have some interfaces that can be implemented by a servlet or by a 
XWiki component. To be implemented by a XWiki component I had to add the 
component role annotations, which are useless if you choose to implement 
them with a servlet.

Thanks,
Marius

> 
>> Thanks,
>> Marius
>> _______________________________________________
>> 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