[MAGNOLIA-1602] Update mechanism Created: 20/Jun/07  Updated: 06/Dec/13  Resolved: 07/Aug/07

Status: Closed
Project: Magnolia
Component/s: updatemechanism
Affects Version/s: None
Fix Version/s: 3.1 M3

Type: New Feature Priority: Major
Reporter: Magnolia International Assignee: Magnolia International
Resolution: Fixed Votes: 0
Labels: None
Σ Remaining Estimate: Not Specified Remaining Estimate: Not Specified
Σ Time Spent: Not Specified Time Spent: Not Specified
Σ Original Estimate: Not Specified Original Estimate: Not Specified

Attachments: PNG File Screen Shot 2013-12-06 at 15.52.51.png     PNG File Screen Shot 2013-12-06 at 15.53.06.png    
Issue Links:
dependency
depends upon MAGNOLIA-1209 Module dependencies should be able to... Closed
depends upon MAGNOLIA-1285 modules: dependency check should get ... Closed
is depended upon by MAGNOLIA-1663 Updatemech : observation should be "p... Closed
is depended upon by MAGNOLIA-1664 updatemech : certains tasks can be op... Closed
is depended upon by MAGNOLIA-1666 updatemech : core could maybe registe... Closed
is depended upon by MAGNOLIA-1670 Updatemech : review exception handlin... Closed
is depended upon by MAGNOLIA-1448 update: lists configuration updates t... Closed
is depended upon by MAGNOLIA-1400 Update mechanism : when updating from... Closed
is depended upon by MAGNOLIA-1638 magnolia-exchange-simple should be a ... Closed
is depended upon by MAGNOLIA-1662 Wrap modules' servlets in Filters Closed
is depended upon by MAGNOLIA-1672 Updatemech : extract from MagnoliaMai... Closed
is depended upon by MAGNOLIA-1678 Update of filter configuration Closed
is depended upon by MAGNOLIA-1665 updatemech : module version stored in... Closed
is depended upon by MAGNOLIA-1667 Updatemech : the whole process should... Closed
is depended upon by MAGNOLIA-1668 Updatemech : new filters configuration Closed
relation
is related to MAGNOLIA-1633 Move editor, developer and securityma... Closed
is related to MAGNOLIA-1659 always register repositories, nodetyp... Closed
is related to MAGNOLIA-850 replace the usage of betwixt Closed
Sub-Tasks:
Key
Summary
Type
Status
Assignee
MAGNOLIA-1628 Review install mechanism Sub-task Closed Magnolia International  
MAGNOLIA-1630 Provide adapters/wrappers for 3.0.x b... Sub-task Closed Philipp Bärfuss  
MAGNOLIA-1801 Startup tasks : tasks to be executed ... Sub-task Closed Magnolia International  
MAGNOLIA-1803 Review file extraction - if/when it i... Sub-task Closed Magnolia International  
Template:
Acceptance criteria:
Empty
Date of First Response:

 Description   

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



 Comments   
Comment by Tom Jensen [ 12/Jul/07 ]

This doesn't break the build but makes magnolia unusable. The exception that happens on startup is:

INFO info.magnolia.cms.beans.config.ModuleRegistration ModuleRegistration.java(readModuleDefinitions:150) 12.07.2007 11:59:49 Reading module definition
INFO info.magnolia.cms.beans.config.ModuleRegistration ModuleRegistration.java(readModuleDefinitions:165) 12.07.2007 11:59:49 Parsing module file /META-INF/magnolia/admininterface.xml for module @ ...\magnolia-3.1-SNAPSHOT\WEB-INF\lib\magnolia-module-admininterface-3.1-SNAPSHOT.jar
ERROR org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/magnolia-3.1-SNAPSHOT] StandardContext.java(listenerStart:3768) 12.07.2007 11:59:49 Exception sending context initialized event to listener instance of class info.magnolia.cms.servlets.PropertyInitializer
info.magnolia.cms.beans.config.ConfigurationException: can't read the module definition files.: null: null
at info.magnolia.cms.beans.config.ModuleRegistration.readModuleDefinitions(ModuleRegistration.java:180)
at info.magnolia.cms.beans.config.ModuleRegistration.init(ModuleRegistration.java:108)
at info.magnolia.cms.beans.config.ModuleRegistration.getInstance(ModuleRegistration.java:82)
at info.magnolia.cms.servlets.PropertyInitializer.loadModuleProperties(PropertyInitializer.java:198)
at info.magnolia.cms.servlets.PropertyInitializer.contextInitialized(PropertyInitializer.java:174)
...

I poked around in the code and determined that the i.m.cms.beans.config.ModuleRegistration was pointing to the module.dtd in the old place it used to be (/info/magnolia/cms/module/module.dtd). So I repointed to the correct place (/info/magnolia/module/model/module.dtd), rebuilt and fired it up again. The exception I got on startup this time was:

INFO info.magnolia.cms.beans.config.ModuleRegistration ModuleRegistration.java(readModuleDefinitions:150) 12.07.2007 12:14:20 Reading module definition
INFO info.magnolia.cms.beans.config.ModuleRegistration ModuleRegistration.java(readModuleDefinitions:165) 12.07.2007 12:14:20 Parsing module file /META-INF/magnolia/admininterface.xml for module @ ...\magnolia-3.1-SNAPSHOT\WEB-INF\lib\magnolia-module-admininterface-3.1-SNAPSHOT.jar
ERROR org.apache.commons.digester.Digester Digester.java(error:1538) 12.07.2007 12:14:21 Parse Error at line 9 column 10: The content of element type "module" must match "(name,(displayName|display-name)?,description?,class,versionHandler,version,properties?,dependencies?,servlets?,repositories?)".
org.xml.sax.SAXParseException: The content of element type "module" must match "(name,(displayName|display-name)?,description?,class,versionHandler,version,properties?,dependencies?,servlets?,repositories?)".
at org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source)
at org.apache.xerces.util.ErrorHandlerWrapper.error(Unknown Source)
at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
at org.apache.xerces.impl.dtd.XMLDTDValidator.handleEndElement(Unknown Source)
at org.apache.xerces.impl.dtd.XMLDTDValidator.endElement(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
at org.apache.commons.digester.Digester.parse(Digester.java:1685)
at info.magnolia.module.BetwixtModuleDefinitionReader.read(BetwixtModuleDefinitionReader.java:62)
at info.magnolia.cms.beans.config.ModuleRegistration.readModuleDefinitions(ModuleRegistration.java:169)
at info.magnolia.cms.beans.config.ModuleRegistration.init(ModuleRegistration.java:108)
at info.magnolia.cms.beans.config.ModuleRegistration.getInstance(ModuleRegistration.java:82)
at info.magnolia.cms.servlets.PropertyInitializer.loadModuleProperties(PropertyInitializer.java:198)
at info.magnolia.cms.servlets.PropertyInitializer.contextInitialized(PropertyInitializer.java:174)
...

Rather than trying to track down how to fix this I thought I'd just make this comment and defer it to whomever worked on this and might know more quickly than I how to fix.

Comment by Magnolia International [ 12/Jul/07 ]

Tom : thanks for the report, I'd overlooked that - had a bunch of local changes I cant commit yet. Just commit a fix for this - pls let me know if you encounter any more issue.

Comment by Magnolia International [ 16/Jul/07 ]

Commited a bunch of changes in a new branch:
http://svn.magnolia.info/view/magnolia/branches/updatemechanism/
Will merge back to trunk as soon as it allows using Magnolia again

Comment by Fabrizio Giustina [ 06/Aug/07 ]

added a property "magnolia.update.auto" (false by default) that can be set in order to enable automatic update, just like it worked in previous versions.

magnolia.bootstrap.ifEmpty and magnolia.bootstrap.force have a different meaning and we should probably try to make them work as before ("magnolia.update.auto" simply means "don't wait for me to click ok on the update UI")

Comment by Magnolia International [ 07/Aug/07 ]

a preliminary version will be available in 3.1 M3. Will create more jira reports for further improvements.

Comment by Magnolia International [ 06/Dec/13 ]

Attaching screenshots of mindmaps mentioned here, in case they ever go missing.

Generated at Mon Feb 12 03:28:30 CET 2024 using Jira 9.4.2#940002-sha1:46d1a51de284217efdcb32434eab47a99af2938b.