Hi,

On Thu, Nov 11, 2010 at 12:55 PM, Vincent Massol <[email protected]> wrote:

>
> On Nov 11, 2010, at 11:50 AM, Florin Ciubotaru wrote:
>
> > Hi Marius,
> >
> > On Thu, Nov 11, 2010 at 10:06 AM, Marius Dumitru Florea <
> > [email protected]> wrote:
> >
> >> Florin, I suspect you have to update the XHTML that XWord generates when
> >> the user inserts an image to match the rendering module expectations.
> >> See http://jira.xwiki.org/jira/browse/XWIKI-5554 . Starting with XE 2.5
> >> image and link markers (the XHTML comments used by the rendering module)
> >> use the same syntax. Let me know if you need any help.
> >>
> >
> > Indeed, this could be the cause of the issue. I would have expected this
> > behavior to be backwords compatible or having the old one deprecated for
> > several XWiki versions as we receive this 'formated' XHTML trough public
> > APIs. At this point the conversion will simply crash when used by an
> older
> > client.
>
> IMO we should check the version of XE when XWord connects to it and if it's
> not compatible mention it.
>

> WDYT?
>
XOffice already checks the XE version for several reasons. For this
particular issue, I'd prefer to implement the fix it rather then saying it's
incompatible. First thing to do until a release is done, is to at least
document this on the wiki.
The client relies on the XML-RPC and REST APIs which means that it should be
compatible with the server as long as nothing changes in the API specs.
I cannot confirm the exact cause of the issue yet. But based on the hint
from Marius I could say that the xhtml parser should have accepted the old
image marker for several versions. XML-RPC is a backwards compatible API,
once we introduced the conversion methods, it means we commit to having them
working properly across several XWiki versions.

Florin

>
> Thanks
> -Vincent
>
> > Florin
> >
> >>
> >> Marius
> >>
> >> On 11/11/2010 07:11 AM, Paul Harris wrote:
> >>> Hi Abel and all,
> >>>
> >>> This is what the stderr spits out when you try and upload an image via
> >>> xword:
> >>> 2010-11-11 12:56:46,297 [
> >>> http://localhost:8080/xwiki/bin/admin/XWiki/XWikiPreferences] INFO
> >>> .AbstractXWikiMigrationManager  - No storage migration required since
> >>> current version is [15429]
> >>> 2010-11-11 12:58:59,508 [http://130.95.212.23:8080/xwiki/xmlrpc] ERROR
> >>> server.XmlRpcStreamServer       - execute: Error while performing
> request
> >>> org.apache.xmlrpc.common.XmlRpcInvocationException: Failed to invoke
> >> method
> >>> convert in class com.xpn.xwiki.xmlrpc.XWikiXmlRpcApiImpl: Exception
> while
> >>> performing syntax conversion.
> >>>     at
> >>>
> >>
> org.apache.xmlrpc.server.ReflectiveXmlRpcHandler.invoke(ReflectiveXmlRpcHandler.java:126)
> >>>     at
> >>>
> >>
> org.apache.xmlrpc.server.ReflectiveXmlRpcHandler.execute(ReflectiveXmlRpcHandler.java:103)
> >>>     at
> >>>
> >>
> org.apache.xmlrpc.server.XmlRpcServerWorker.execute(XmlRpcServerWorker.java:43)
> >>>     at
> >> org.apache.xmlrpc.server.XmlRpcServer.execute(XmlRpcServer.java:83)
> >>>     at
> >>>
> >>
> org.apache.xmlrpc.server.XmlRpcStreamServer.execute(XmlRpcStreamServer.java:191)
> >>>     at
> >>>
> >>
> org.apache.xmlrpc.webserver.XmlRpcServletServer.execute(XmlRpcServletServer.java:104)
> >>>     at
> >>>
> org.apache.xmlrpc.webserver.XmlRpcServlet.doPost(XmlRpcServlet.java:191)
> >>>     at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
> >>>     at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
> >>>     at
> >>> org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
> >>>     at
> >>>
> >>
> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166)
> >>>     at
> >>>
> >>
> com.xpn.xwiki.wysiwyg.server.filter.XWikiContextInitializationFilter.doFilter(XWikiContextInitializationFilter.java:87)
> >>>     at
> >>>
> >>
> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
> >>>     at
> >>>
> >>
> com.xpn.xwiki.plugin.webdav.XWikiDavFilter.doFilter(XWikiDavFilter.java:68)
> >>>     at
> >>>
> >>
> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
> >>>     at
> >>>
> >>
> org.xwiki.container.servlet.filters.internal.SavedRequestRestorerFilter.doFilter(SavedRequestRestorerFilter.java:218)
> >>>     at
> >>>
> >>
> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
> >>>     at
> >>>
> >>
> org.xwiki.container.servlet.filters.internal.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:112)
> >>>     at
> >>>
> >>
> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
> >>>     at
> >>>
> org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388)
> >>>     at
> >>>
> >>
> org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
> >>>     at
> >>>
> org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
> >>>     at
> >>>
> org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
> >>>     at
> >> org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418)
> >>>     at
> >>>
> >>
> org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230)
> >>>     at
> >>>
> >>
> org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
> >>>     at
> >>>
> org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
> >>>     at org.mortbay.jetty.Server.handle(Server.java:326)
> >>>     at
> >>> org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:536)
> >>>     at
> >>>
> >>
> org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:930)
> >>>     at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:747)
> >>>     at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
> >>>     at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:405)
> >>>     at
> >>>
> >>
> org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409)
> >>>     at
> >>>
> >>
> org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)
> >>> Caused by: java.lang.RuntimeException: Exception while performing
> syntax
> >>> conversion.
> >>>     at
> >>>
> >>
> com.xpn.xwiki.xmlrpc.XWikiXmlRpcApiImpl.convert(XWikiXmlRpcApiImpl.java:1387)
> >>>     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> >>>     at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
> >>>     at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
> >>>     at java.lang.reflect.Method.invoke(Unknown Source)
> >>>     at
> >>>
> >>
> org.apache.xmlrpc.server.ReflectiveXmlRpcHandler.invoke(ReflectiveXmlRpcHandler.java:112)
> >>>     ... 34 more
> >>> Caused by: org.xwiki.rendering.converter.ConversionException: Failed to
> >>> parse input source
> >>>     at
> >>>
> >>
> org.xwiki.rendering.internal.converter.DefaultConverter.convert(DefaultConverter.java:56)
> >>>     at
> >>>
> >>
> com.xpn.xwiki.xmlrpc.XWikiXmlRpcApiImpl.convert(XWikiXmlRpcApiImpl.java:1383)
> >>>     ... 39 more
> >>> Caused by: org.xwiki.rendering.parser.ParseException: Failed to parse
> >> input
> >>> source
> >>>     at
> >>>
> >>
> org.xwiki.rendering.internal.parser.wikimodel.AbstractWikiModelParser.parse(AbstractWikiModelParser.java:142)
> >>>     at
> >>>
> >>
> org.xwiki.rendering.internal.parser.wikimodel.AbstractWikiModelParser.parse(AbstractWikiModelParser.java:97)
> >>>     at
> >>>
> >>
> org.xwiki.rendering.internal.converter.DefaultConverter.convert(DefaultConverter.java:52)
> >>>     ... 40 more
> >>> Caused by: org.wikimodel.wem.WikiParserException:
> >>> java.lang.ArrayIndexOutOfBoundsException: 1
> >>>     at org.wikimodel.wem.xhtml.XhtmlParser.parse(XhtmlParser.java:107)
> >>>     at
> >>>
> >>
> org.xwiki.rendering.internal.parser.wikimodel.AbstractWikiModelParser.parse(AbstractWikiModelParser.java:140)
> >>>     ... 42 more
> >>> Caused by: java.lang.ArrayIndexOutOfBoundsException: 1
> >>>     at
> >>>
> >>
> org.xwiki.rendering.internal.parser.wikimodel.xhtml.XHTMLMarkerResourceReferenceParser.parse(XHTMLMarkerResourceReferenceParser.java:53)
> >>>     at
> >>>
> >>
> org.xwiki.rendering.internal.parser.wikimodel.xhtml.XWikiCommentHandler.handleImageCommentStop(XWikiCommentHandler.java:180)
> >>>     at
> >>>
> >>
> org.xwiki.rendering.internal.parser.wikimodel.xhtml.XWikiCommentHandler.onComment(XWikiCommentHandler.java:103)
> >>>     at
> >>>
> >>
> org.wikimodel.wem.xhtml.impl.XhtmlHandler$TagStack.onComment(XhtmlHandler.java:347)
> >>>     at
> >>>
> org.wikimodel.wem.xhtml.impl.XhtmlHandler.comment(XhtmlHandler.java:567)
> >>>     at
> >>>
> >>
> org.wikimodel.wem.xhtml.filter.DefaultXMLFilter.comment(DefaultXMLFilter.java:73)
> >>>     at
> >>>
> >>
> org.wikimodel.wem.xhtml.filter.XHTMLWhitespaceXMLFilter.comment(XHTMLWhitespaceXMLFilter.java:250)
> >>>     at
> >>>
> >>
> org.wikimodel.wem.xhtml.filter.DefaultXMLFilter.comment(DefaultXMLFilter.java:73)
> >>>     at
> >>>
> >>
> org.wikimodel.wem.xhtml.filter.AccumulationXMLFilter.comment(AccumulationXMLFilter.java:77)
> >>>     at
> >>>
> >>
> org.wikimodel.wem.xhtml.filter.DefaultXMLFilter.comment(DefaultXMLFilter.java:73)
> >>>     at
> >>>
> org.wikimodel.wem.xhtml.filter.DTDXMLFilter.comment(DTDXMLFilter.java:78)
> >>>     at org.apache.xerces.parsers.AbstractSAXParser.comment(Unknown
> >> Source)
> >>>     at
> >>>
> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanComment(Unknown
> >>> Source)
> >>>     at
> >>>
> >>
> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown
> >>> Source)
> >>>     at
> >>>
> >>
> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown
> >>> Source)
> >>>     at
> >>> org.apache.xerces.parsers.XML11NonValidatingConfiguration.parse(Unknown
> >>> Source)
> >>>     at
> >>> org.apache.xerces.parsers.XML11NonValidatingConfiguration.parse(Unknown
> >>> Source)
> >>>     at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
> >>>     at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown
> Source)
> >>>     at org.xml.sax.helpers.XMLFilterImpl.parse(Unknown Source)
> >>>     at
> >>>
> >>
> org.wikimodel.wem.xhtml.filter.DefaultXMLFilter.parse(DefaultXMLFilter.java:44)
> >>>     at org.xml.sax.helpers.XMLFilterImpl.parse(Unknown Source)
> >>>     at
> >>>
> >>
> org.wikimodel.wem.xhtml.filter.DefaultXMLFilter.parse(DefaultXMLFilter.java:44)
> >>>     at org.xml.sax.helpers.XMLFilterImpl.parse(Unknown Source)
> >>>     at
> >>>
> >>
> org.wikimodel.wem.xhtml.filter.DefaultXMLFilter.parse(DefaultXMLFilter.java:44)
> >>>     at org.wikimodel.wem.xhtml.XhtmlParser.parse(XhtmlParser.java:104)
> >>>     ... 43 more
> >>> Caused by:
> >>> java.lang.RuntimeException: Exception while performing syntax
> conversion.
> >>>     at
> >>>
> >>
> com.xpn.xwiki.xmlrpc.XWikiXmlRpcApiImpl.convert(XWikiXmlRpcApiImpl.java:1387)
> >>>     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> >>>     at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
> >>>     at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
> >>>     at java.lang.reflect.Method.invoke(Unknown Source)
> >>>     at
> >>>
> >>
> org.apache.xmlrpc.server.ReflectiveXmlRpcHandler.invoke(ReflectiveXmlRpcHandler.java:112)
> >>>     at
> >>>
> >>
> org.apache.xmlrpc.server.ReflectiveXmlRpcHandler.execute(ReflectiveXmlRpcHandler.java:103)
> >>>     at
> >>>
> >>
> org.apache.xmlrpc.server.XmlRpcServerWorker.execute(XmlRpcServerWorker.java:43)
> >>>     at
> >> org.apache.xmlrpc.server.XmlRpcServer.execute(XmlRpcServer.java:83)
> >>>     at
> >>>
> >>
> org.apache.xmlrpc.server.XmlRpcStreamServer.execute(XmlRpcStreamServer.java:191)
> >>>     at
> >>>
> >>
> org.apache.xmlrpc.webserver.XmlRpcServletServer.execute(XmlRpcServletServer.java:104)
> >>>     at
> >>>
> org.apache.xmlrpc.webserver.XmlRpcServlet.doPost(XmlRpcServlet.java:191)
> >>>     at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
> >>>     at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
> >>>     at
> >>> org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
> >>>     at
> >>>
> >>
> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166)
> >>>     at
> >>>
> >>
> com.xpn.xwiki.wysiwyg.server.filter.XWikiContextInitializationFilter.doFilter(XWikiContextInitializationFilter.java:87)
> >>>     at
> >>>
> >>
> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
> >>>     at
> >>>
> >>
> com.xpn.xwiki.plugin.webdav.XWikiDavFilter.doFilter(XWikiDavFilter.java:68)
> >>>     at
> >>>
> >>
> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
> >>>     at
> >>>
> >>
> org.xwiki.container.servlet.filters.internal.SavedRequestRestorerFilter.doFilter(SavedRequestRestorerFilter.java:218)
> >>>     at
> >>>
> >>
> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
> >>>     at
> >>>
> >>
> org.xwiki.container.servlet.filters.internal.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:112)
> >>>     at
> >>>
> >>
> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
> >>>     at
> >>>
> org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388)
> >>>     at
> >>>
> >>
> org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
> >>>     at
> >>>
> org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
> >>>     at
> >>>
> org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
> >>>     at
> >> org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418)
> >>>     at
> >>>
> >>
> org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230)
> >>>     at
> >>>
> >>
> org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
> >>>     at
> >>>
> org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
> >>>     at org.mortbay.jetty.Server.handle(Server.java:326)
> >>>     at
> >>> org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:536)
> >>>     at
> >>>
> >>
> org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:930)
> >>>     at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:747)
> >>>     at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
> >>>     at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:405)
> >>>     at
> >>>
> >>
> org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409)
> >>>     at
> >>>
> >>
> org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)
> >>> Caused by: org.xwiki.rendering.converter.ConversionException: Failed to
> >>> parse input source
> >>>     at
> >>>
> >>
> org.xwiki.rendering.internal.converter.DefaultConverter.convert(DefaultConverter.java:56)
> >>>     at
> >>>
> >>
> com.xpn.xwiki.xmlrpc.XWikiXmlRpcApiImpl.convert(XWikiXmlRpcApiImpl.java:1383)
> >>>     ... 39 more
> >>> Caused by: org.xwiki.rendering.parser.ParseException: Failed to parse
> >> input
> >>> source
> >>>     at
> >>>
> >>
> org.xwiki.rendering.internal.parser.wikimodel.AbstractWikiModelParser.parse(AbstractWikiModelParser.java:142)
> >>>     at
> >>>
> >>
> org.xwiki.rendering.internal.parser.wikimodel.AbstractWikiModelParser.parse(AbstractWikiModelParser.java:97)
> >>>     at
> >>>
> >>
> org.xwiki.rendering.internal.converter.DefaultConverter.convert(DefaultConverter.java:52)
> >>>     ... 40 more
> >>> Caused by: org.wikimodel.wem.WikiParserException:
> >>> java.lang.ArrayIndexOutOfBoundsException: 1
> >>>     at org.wikimodel.wem.xhtml.XhtmlParser.parse(XhtmlParser.java:107)
> >>>     at
> >>>
> >>
> org.xwiki.rendering.internal.parser.wikimodel.AbstractWikiModelParser.parse(AbstractWikiModelParser.java:140)
> >>>     ... 42 more
> >>> Caused by: java.lang.ArrayIndexOutOfBoundsException: 1
> >>>     at
> >>>
> >>
> org.xwiki.rendering.internal.parser.wikimodel.xhtml.XHTMLMarkerResourceReferenceParser.parse(XHTMLMarkerResourceReferenceParser.java:53)
> >>>     at
> >>>
> >>
> org.xwiki.rendering.internal.parser.wikimodel.xhtml.XWikiCommentHandler.handleImageCommentStop(XWikiCommentHandler.java:180)
> >>>     at
> >>>
> >>
> org.xwiki.rendering.internal.parser.wikimodel.xhtml.XWikiCommentHandler.onComment(XWikiCommentHandler.java:103)
> >>>     at
> >>>
> >>
> org.wikimodel.wem.xhtml.impl.XhtmlHandler$TagStack.onComment(XhtmlHandler.java:347)
> >>>     at
> >>>
> org.wikimodel.wem.xhtml.impl.XhtmlHandler.comment(XhtmlHandler.java:567)
> >>>     at
> >>>
> >>
> org.wikimodel.wem.xhtml.filter.DefaultXMLFilter.comment(DefaultXMLFilter.java:73)
> >>>     at
> >>>
> >>
> org.wikimodel.wem.xhtml.filter.XHTMLWhitespaceXMLFilter.comment(XHTMLWhitespaceXMLFilter.java:250)
> >>>     at
> >>>
> >>
> org.wikimodel.wem.xhtml.filter.DefaultXMLFilter.comment(DefaultXMLFilter.java:73)
> >>>     at
> >>>
> >>
> org.wikimodel.wem.xhtml.filter.AccumulationXMLFilter.comment(AccumulationXMLFilter.java:77)
> >>>     at
> >>>
> >>
> org.wikimodel.wem.xhtml.filter.DefaultXMLFilter.comment(DefaultXMLFilter.java:73)
> >>>     at
> >>>
> org.wikimodel.wem.xhtml.filter.DTDXMLFilter.comment(DTDXMLFilter.java:78)
> >>>     at org.apache.xerces.parsers.AbstractSAXParser.comment(Unknown
> >> Source)
> >>>     at
> >>>
> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanComment(Unknown
> >>> Source)
> >>>     at
> >>>
> >>
> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown
> >>> Source)
> >>>     at
> >>>
> >>
> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown
> >>> Source)
> >>>     at
> >>> org.apache.xerces.parsers.XML11NonValidatingConfiguration.parse(Unknown
> >>> Source)
> >>>     at
> >>> org.apache.xerces.parsers.XML11NonValidatingConfiguration.parse(Unknown
> >>> Source)
> >>>     at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
> >>>     at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown
> Source)
> >>>     at org.xml.sax.helpers.XMLFilterImpl.parse(Unknown Source)
> >>>     at
> >>>
> >>
> org.wikimodel.wem.xhtml.filter.DefaultXMLFilter.parse(DefaultXMLFilter.java:44)
> >>>     at org.xml.sax.helpers.XMLFilterImpl.parse(Unknown Source)
> >>>     at
> >>>
> >>
> org.wikimodel.wem.xhtml.filter.DefaultXMLFilter.parse(DefaultXMLFilter.java:44)
> >>>     at org.xml.sax.helpers.XMLFilterImpl.parse(Unknown Source)
> >>>     at
> >>>
> >>
> org.wikimodel.wem.xhtml.filter.DefaultXMLFilter.parse(DefaultXMLFilter.java:44)
> >>>     at org.wikimodel.wem.xhtml.XhtmlParser.parse(XhtmlParser.java:104)
> >>>     ... 43 more
> >>>
> >>>
> >>> Looks like XWord generates invalid XML ?   Ideas?
> >>>
> >>> I'll add this to jira too.
> >>>
> >>> cheers
> >>> Paul
> _______________________________________________
> users mailing list
> [email protected]
> http://lists.xwiki.org/mailman/listinfo/users
>
_______________________________________________
users mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/users

Reply via email to