Hi, I've already implemented the dynamic registration of workspaces, so that restarting and modification of repositories.xml is not needed anymore. Now I'm only lost with the module update APIs in order to understand where we should put this kind of operation that should be executed every time a module is loaded...
I saw that there is no hook for providing tasks that should always be executed regardless if the module was previously installed or not. Question 1 is: do you think that this should be part of the update APIs since it's not actually an update task anymore but simply a standard step in module loading? (my answer should probably be no, but I need a review from the author of the update mechanism ;) ) Question 2: if not, where to put it? Or if yes, is there any way to supply an update tasks that it's always executed and that doesn't trigger the pop up of the new update UI? at this moment I've implemented it by rewriting ModuleUtil.registerWorkspace() and by always return a Delta with the RegisterRepositoriesNodetypesAndWorkspacesTask in AbstractModuleVersionHandler.getDeltas() just to confirm that it works without problems... the actual registration of workspaces is fine, so I can commit it as soon as I find a place where to trigger it. fabrizio On 8/6/07, Fabrizio Giustina (JIRA) <[email protected]> wrote: > always register repositories, nodetypes and workspaces from module definitions > ------------------------------------------------------------------------------ > > Key: MAGNOLIA-1659 > URL: http://jira.magnolia.info/browse/MAGNOLIA-1659 > Project: Magnolia > Issue Type: Improvement > Components: core > Affects Versions: 3.1 M1 > Reporter: Fabrizio Giustina > Assigned To: Sameer Charles > Fix For: 3.1 > > > > (related to the new update mechanism, MAGNOLIA-1602 ) > > at this moment the registration of new workspaces (also > repositories/nodetypes) only happens during bootstrap and it's implemented by > rewriting the repositories.xml file that will be loaded at system restart. > This should not be needed, we have all the APIs we need to register new > repositories/workspaces without changing such xml file... > > I propose to change the current implementation by making repositories > declared in the module definition always checked. These are the steps that > should be always performed while loading a module: > - check if a declared repository exists -> if not create/load it in memory > with default values (as it happens now on the repositories.xml file) > - check if nodetypes already exist -> if not create them (better than now, > this will auto-fix repositories where the nodetype definition is wrong/not > complete) > - check if workspace exists -> if not create it > > I see several benefits in doing it this way: no restart needed, cleaner > implementation and removal of the last bit that still rewrite a user > configuration file. It should not have any drawback (if you want to tune your > configuration you can still add a repository/workspace configuration to > repositories.xml as before) > > > > > -- > This message is automatically generated by JIRA. > - > If you think it was sent incorrectly contact one of the administrators: > http://jira.magnolia.info/secure/Administrators.jspa > - > For more information on JIRA, see: http://www.atlassian.com/software/jira > > > > ---------------------------------------------------------------- > 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 ----------------------------------------------------------------
