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