Hi,

Soooo... we finally merged the branch back to the trunk.

A quick bullet list of things to know or note:

* Modules should (but are not forced to) provide an implementation of ModuleVersionHandler. This in turn provides Magnolia with the appropriate Delta's and Task's which allow updating a module's files or configuration from one version to the other. See code, examples and javadoc for more details.

* The Module class now represents the configuration of the module, i.e it is built using content2bean, and it is not mandatory anymore. One of the ideas is that we wanted to separate the whole installation/ update/registration process (which is now handled through the ModuleVersionHandler) from the module's business or configuration. Old-style modules are still supported (in fact we haven't updated all the Magnolia modules yet). The module beans can optionally implement the ModuleLifecycle interface, which still gives them a chance to "do stuff" on startup/shutdown. (see below)

* ObservedManager components are now registered by the module that provides them. This means that magnolia-core (which is now a module btw) registers a few of these, magnolia-module-admininterface too. The ModuleLifecycleContext provides a method for this. What this also means, is that ANY module can now say "hey, I want FooBarManager to know about all foobar nodes of all modules". This will help separating core/admininterface/gui much better, and will allow external modules to work with modules like scheduler (i.e your mymodule could have a node "jobs" which the scheduler will pick up. This is not limited to core/admininterface components anymore)

* We tried to make the whole thing as self-contained as possible, which is why the javascript and css is inlined in the pages. (though included using freemarker) - but we might want some more eye-candy (logo, icons), so maybe we'll have to do something about it anyway.

There are still a lot of things to be done, but here's a quick list of what we want to highlight, as a "yes, we know, we're working on it" kind of list:

* Registering servlets don't really work anymore, because the container might try to restart the webapp after we modify the web.xml. We're suspecting it was working before only because this was happening in a ServletContextListener and the container wasnt' watching the files yet. Now it's happening during an http request.

* Security: yes, the update pages will be protected. We'll try to use the existing login configurable if available, or we can also generate and log a random ID, which the administrator can copy paste in the "login" screen of the update pages.

* Threading: the whole process should happen in a separate thread rather than during the request. This would help avoiding time outs and conflicts. (any access to the page, once the process is started, would just display the current state, i.e the list of tasks which have been executed, for instance)

* Observation: some components are still started "the old way". As a consequence, you can sometimes get stacktraces about nodes which can't be found. No worries, once the install or update is finished, the observers are still there and everything just works. Our plan there is to differ the startup of observation. (ie ObservationUtil will "buffer" all the registerChangeListener() calls until its start () method is called)

Well, I think that's about it. Should you have any problem, question, remark or suggestion, just shoot!

Cheers

g


On Jun 14, 2007, at 17:39 , Grégory Joseph wrote:

Hi guys,

We had some brainstorming sessions today about the update mechanism that will be part of Magnolia 3.1.

We put our ideas down in mindmaps. While that format might not be ideal to read for someone who did not participate in the meetings, we also see it as a good compromise between ease of creation, maintenance and usefulness, as opposed to long-ish spec-ish text documents. We'll be happy to provide info or clarify points that are not clear by themselves, and/or discuss any of them.

The first one is an attempt to list all the problems to solve and features we'd like to see in there: http://www.mind42.com/pub/mindmap?mid=fd256f03-1679-4b9a-a788- b768bb2b2a04

The seconds focuses more on technical or practical aspects, with some decisions being taken or viewpoints being adopted: http://www.mind42.com/pub/mindmap?mid=8f526afb-f339-4884-9a47- f9207e80704b

Let us know what you think !

Cheers

greg

----------------------------------------------------------------
for list details see
http://documentation.magnolia.info/docs/en/editor/stayupdated.html
----------------------------------------------------------------


----------------------------------------------------------------
for list details see
http://documentation.magnolia.info/docs/en/editor/stayupdated.html
----------------------------------------------------------------

Reply via email to