We want to drop the old ui modules, namely admininterface, gui and fckeditor. However, those modules are used almost everywhere, and dropping them without first porting the existing modules' UIs to 5.0 would mean, in many cases, a severe loss of functionality (think of data module which is used by several other modules). Given our time constraints (release due on 20th June 2013) porting even some of them is not a viable option. So here comes the compromise.
Create an admininterface-legacy (for want of a better name) module which holds all the old ui modules classes. This would guarantee an almost complete backward compatibility of existing modules with 5.0.
Classes in this module would
- keep their original packages
- be all deprecated and encourage users (and ourselves!) to port existing modules to 5.0 apps
- provide an update Task to easily wrap old Uis as 5.0 apps
Almost complete backward compatibility
To avoid confusion with the commands now provided by core, activation and dam, the legacy module will not contain any commands. Existing modules using commands provided by the old adminInterface will need to rewrite them by using their new counterparts. In most cases this amounts to changing a couple of imports, given that the command names have been kept, and/or update bootstrap files.
To make an existing module UI work in 5.0, one will need to
- replace references to old ui modules in pom.xml with the info.magnolia:magnolia-module-legacy-admininterface:5.0 artifact
- replace references to old ui modules in own module descriptor (the one under META-INF/some-module, not to be confused with pom.xm) with the adminInterface 5.0 version
- e.g. suppose you have a module descriptor declaring a dependency on gui or fck-editor 4.5/*. What you have to do is replacing those dependencies with adminInterface 5.0/* (the Magnolia module name for legacy-admininterface). If you instead have a module descriptor already depending, e.g. on adminInterface 4.5/* then you only need to replace its version with 5.0/*
- change imports in the existing custom commands, e.g. replace info.magnolia.module.admininterface.commands.BaseRepositoryCommand with info.magnolia.commands.impl.BaseRepositoryCommand
- update bootstrap files referring to old commands with their new counterpart, e.g. replace info.magnolia.module.admininterface.commands.VersionCommand with info.magnolia.commands.impl.VersionCommand
add an update Task to wrap the old UI (basically either a page or a tree) as a 5.0 App, something along these lines
This would spare developers the tedious job of creating a proper app config in ui-admincentral.
List of 5.0 compatible modules
As a general rule, 5.0 compatible versions of existing modules are the next major version after their 4.5 compatible versions. I.e. the resources module for 4.5 is 1.5.x, therefore the 5.0 version is 2.0.
One notable exception is STK whose 4.5 version is 2.0.x whereas the version to be used with 5.0 is 2.5. Another exception is forum which passes from 1.3.x to 3.0, due to the fact a 2.0 branch already existed for it.
|Module name||4.5 compatible version||5.0 compatible version||Notes|
|activation||-||5.0||Replaces exchange-simple which used to be part of main project. It is now a CE independent module.|
|cache||4.5.x||5.0||Used to be part of main project. It is now a CE independent module.|
|dms||1.6.x||-||Replaced by dam.|
|exchange-simple||4.5.x||-||Used to be part of main project. Replaced by activation|
|forum||1.3.x||3.0||The leap from 1.3 to 3.0 is due to the fact that a 2.0 branch already existed for this module|
|4.5.x||5.0||Used to be part of main project. It is now a CE independent module.|
|templating-samples||4.5.x||5.0||Used to be part of main project. It is now a CE independent module.|
A 4.5 specific version doesn't exist. Current master depends on an older Magnolia version.
|modeshape-support||?||?||A 4.5 specific version doesn't exist. Current master depends on an older Magnolia version.|
|modifystream||?||?||EE - A 4.5 specific version doesn't exist. Current master depends on an older Magnolia version.|
|openid||?||?||A 4.5 specific version doesn't exist. Current master depends on an older Magnolia version.|
|poll||?||?||A 4.5 specific version doesn't exist. Current master depends on an older Magnolia version.|
|shorturl||?||?||EE - A 4.5 specific version doesn't exist. Current master depends on an older Magnolia version.|
|todolist||?||?||A 4.5 specific version doesn't exist. Current master depends on an older Magnolia version.|
Jira issue linked to this task