Hi Vincent On Aug 15, 2009, at 1:11 AM, Vincent Massol wrote:
But there are some issues to resolve first:
1) the java classes should be APIs and not have UI-specific things in them IMO. They should be a toolbox that can be used in various scenarios.
My life blog needs around 9 to 10 seconds to render the Blog.WebHome page and it seems like a it chunk of that time is uses to retrieve and built the blog content. I do understand what you want but I am also concerned of the speed of the blog and so maybe it would be great to provide both.
2) we have to understand that it makes it harder to modify the blog so we'll still need some BlogCode page to offer some flexibility and do some UI outputing
For now I just took the Blog.BlogCode and converted it into the Blog Plugin. When everything is working I am going to test the speed and if there is enough gain I am going to create a second plugin which would contain the default blog UI. This way anyone can use Velocity to create their own Blog UI but if someone just takes what is provided then we might get a performance boost.
3) the blog is an application and an optional one. It should not go into xwiki-core. We'd package it with XE by default though.
I already create a Blog Plugin project.
4) it'll be harder for users to install/upgrade the blog application since they'll need to install both a plugin + a XAR. And in addition there's a possibility they'll use a plugin version incompatible with a XAR version. It'll also cause problems for the first upgrade since users will need to not forget to modify their xwiki.cfg file (and they will forget for sure, hence the blog app will need to display some nice message if the plugin is not there). We could also introduce some internal version to ensure they are in sync or compatible.
I will create a message page for that and add some checks when the plugin is loaded.
5) we should use the (new) component-based architecture instead of plugins as much as possible since plugins are the old way of doing things. However it's possible that for this need it would be difficult to use components since our Document Access Bridge component would miss methods. This is to be checked.
I guess for now I just go the old way. So far it was difficult enough to get my head wrapped around. Currently I have a prototype of the Blog Plugin deployed but there are many loose ends. Cheers - Andy