On Wed, Oct 14, 2009 at 17:22, Arun Reddy <[email protected]> wrote:
On Wed, Oct 14, 2009 at 8:41 PM, Thomas Mortagne <[email protected]>wrote:
On Wed, Oct 14, 2009 at 17:03, Arun Reddy <[email protected]> wrote:
Hi,
On Mon, Oct 12, 2009 at 10:27 PM, Asiri Rathnayake < [email protected]> wrote:
Hi,
Actually in my mind there was more than just this method, i see at least
also
WikiImporterListener::onWikiPageAttachment(AttachmentName, InputStream)
since having the whole WikiPage with all its attachments in memory make the import not strong enough if you have too big attachments. Making a streaming API is about making every memory consuming part streamed (Actually to be sure maybe also have WikiImporterListener::onWikiPageObject(WikiPageObject) but since XWiki does not support this well internally currently it's less important than attachments).
The getNextPage() API is good when you have only one simple kind of data in a plane list but the events based way is more generic and easier to implements for the importer writer IMO since it send the events when he wants.
Ok, Now I understand that importer writers work would be easy if we go with an event based API.
So for Arun this means,
1. The model you proposed is ok
2. You need to refine the WikiImporter API so that it takes into account what we discussed here. This means:
i) Have a mechanism for defining WikiImporter components with different requirements (look at the getParameters() approach suggested by Thomas)
ii) Make the WikiImporter api mode stream oriented. I think you can start with onWikiPage() & onAttachment() events for now.
- Can we have beginWikiPage() followed by endWikiPage() beginAttachment() and endAttachment() rather than having a single onWikiPage(),onAttachment() in the WikiImporterListener.
If you plan to have something like
beginWikiPage(name) beginObject(type) onProperty(name, value, ...) endObject() beginObject() onProperty() endObject() beginAttachment(name) endAttachment() endWikiPage()
+1 it's a good idea, now i'm not sure why you need begin and end for an attachment, what other events would you have inside it ?
Because even it has few properties and revisions. Kindly correct me, if am wrong.
You don't need an event for each property, event are more for variables things, you can have onAttachment(name, version, content, etc.). For revisions i already anwser in the previous mail, if you put the onAttachement inside a begin/endWikiPageRevision you will only have one version of the attachement for a version of wiki page.
>
-How to handle revisions - Can we have methods to read those tags too. one for WikiPageRevision and other for AttachmentRevision.
I think you should start working on a revised proposal with this information taken into account. In the mean time other developers will comment on this proposal if they have further suggestions.
- Asiri
> *** [NICE TO HAVE] List<Class<?>> getParameters(): the list of > parameters type to provide to the importer, that way you can
generate
> a UI based on it since parameters totally depends on the importer, you > could have an importer able to import the wiki from an URL for example > using REST/XMLRPC... for the same reason List<InputStream> is not > generic enough IMO. You can look at MacroDescriptor for inspiration, > we could make it more generic as a list of parameters instead of a > list of macro parameters to use it in wiki importer, authenticators, > etc. I see this tool as a generic way to get wiki content from any > kind of external source, we could even use it to copy a XWiki wiki > without having to do an export/import by hand for example. >
+1
This will make it possible to define different types of importers with different requirements (rather than restricting them to List<InputStream>)
Thanks.
- Asiri _______________________________________________ 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
_______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs
-- Best Regards, Arun Reddy _______________________________________________ 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
-- Best Regards, Arun Reddy _______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs
-- Thomas Mortagne