Magnolia 4.5 reached end of life on June 30, 2016. This branch is no longer supported, see End-of-life policy.

Page tree
Skip to end of metadata
Go to start of metadata

How to update from Magnolia 3.0.5

  1. Stop your application server.
  2. Unpack magnolia-bundled-webapp-3.5.2.war in a directory of your choice.
  3. Replace all jars found under the WEB-INF/lib directory of your Magnolia instance(s) by the new ones found in the magnolia-bundled-webapp-3.5.2.war you just unpacked. Also remove any module you had previously removed from your 3.0.5 instance(s) and re-add any extra module you might have added as well.
  4. If your Magnolia 3.0.5 instance was running with Jackrabbit 1.3.x, you can skip this step. JackRabbit has changed the indexer classes between 1.0.x and 1.3.x, therefore those needs to be updated. You can find an example script or more details on how to proceed at the bottom of this document. You will also have to replace the WEB-INF/config/repo-conf directory content with the new one.
  5. If you customized any of the magnolia.properties files, please compare the changes you made with the new corresponding file. Some properties have been added, and others are not used anymore. If you're updating an existing instance, it should be safe to ignore this; however, we recommend that you carefully check for any customization you might have made to these files.
  6. There are no more bootstrap files, by default, under the WEB-INF/bootstrap directory. If you did not customize these files, you can safely remove all of them. If you modified them or added your own, you should just remove the unmodified ones. For a complete list of these files, see the bottom of this document.
  7. If you did not customize the web.xml file, you can replace it with the new one. Otherwise, the install/update wizard will give you instruction on what needs to be added/removed/changed.
  8. Restart your application server.
  9. Using your browser, go to your Magnolia instance(s) and follow the instructions given by the install/update wizard.

What has changed since Magnolia 3.0.x

Workflow is now optional

Since Magnolia 3.5, the workflow module is not installed by default anymore in the Community Edition. Many users were asking how to disable it, and we realized at the same time that it makes the entry barrier to Magnolia a bit higher; we reckoned it's much simpler to add it later in the process of discovering or implementing a Magnolia project.

Projects which were previously using the workflow module and want to upgrade to the latest 3.5 version should therefore add the workflow module jars to their upgrade procedure.

Bundled-webapp vs empty webapp

In terms of Maven dependencies, custom Magnolia-based webapps should depend on the magnolia-empty-webapp artifact, and add dependencies to the modules they need. The new magnolia-bundle project and subprojects are not meant to be used as-is by projects extending Magnolia, but only as packaging projects for Magnolia releases as a product.

Complete list of bootstrap files which have been removed from the WEB-INF/bootstrap directory

These files can be safely removed from your Magnolia instance(s) if you did not customize them:

 WEB-INF/bootstrap/author/config/config.server.secureURIList.root.xml
 WEB-INF/bootstrap/author/config/config.subscriber.xml
 WEB-INF/bootstrap/common/config/config.modules.adminInterface.virtualURIMapping.default.xml
 WEB-INF/bootstrap/common/config/config.server.IPConfig.allow-all.xml
 WEB-INF/bootstrap/common/config/config.server.MIMEMapping.xml
 WEB-INF/bootstrap/common/config/config.server.URI2RepositoryMapping.xml
 WEB-INF/bootstrap/common/config/config.server.filters.xml
 WEB-INF/bootstrap/common/config/config.server.i18n.xml
 WEB-INF/bootstrap/common/config/config.server.login.xml
 WEB-INF/bootstrap/common/config/config.server.xml
 WEB-INF/bootstrap/common/usergroups/usergroups.editor.xml
 WEB-INF/bootstrap/common/usergroups/usergroups.publisher.xml
 WEB-INF/bootstrap/common/userroles/userroles.anonymous.xml
 WEB-INF/bootstrap/common/userroles/userroles.developer.xml
 WEB-INF/bootstrap/common/userroles/userroles.editor.xml
 WEB-INF/bootstrap/common/userroles/userroles.securitymanager.xml
 WEB-INF/bootstrap/common/userroles/userroles.superuser.xml
 WEB-INF/bootstrap/common/users/users.anonymous.xml
 WEB-INF/bootstrap/common/users/users.developer.xml
 WEB-INF/bootstrap/common/users/users.editor.xml
 WEB-INF/bootstrap/common/users/users.securitymanager.xml
 WEB-INF/bootstrap/common/users/users.superuser.xml
 WEB-INF/bootstrap/public/config.modules.adminInterface.virtualURIMapping.default.properties
 WEB-INF/bootstrap/public/config.modules.cache.config.active.properties
 WEB-INF/bootstrap/public/config.server.admin.properties
 WEB-INF/bootstrap/public/config.subscribers.magnoliaPublic.active.properties

Example script to modify existing Jackrabbit workspace configuration files

If you're on a *nix system, under each Magnolia instance directory, do:

find repositories/ -name workspace.xml -exec \
  sed -i .bak -E -e \
  's/org\.apache\.jackrabbit\.core\.query\.([A-Za-z]+)Filter/org\.apache\.jackrabbit\.extractor\.\1Extractor/g' {} \; 

This script is an example, and it should not be executed unless you truly understand what it does.

All that the find/sed command does is changing the names and packages of old indexers to new ones. The alternative is to open all workspace.xml files in all repositories and change affected lines manually: what needs to be changed is the "textFilterClasses" attribute value, in all workspace.xml files: replace the old value of

 org.apache.jackrabbit.core.query.MsExcelTextFilter,
 org.apache.jackrabbit.core.query.MsPowerPointTextFilter,
 org.apache.jackrabbit.core.query.MsWordTextFilter,
 org.apache.jackrabbit.core.query.PdfTextFilter,
 org.apache.jackrabbit.core.query.HTMLTextFilter,
 org.apache.jackrabbit.core.query.XMLTextFilter,
 org.apache.jackrabbit.core.query.RTFTextFilter
 

by

 org.apache.jackrabbit.extractor.MsWordTextExtractor,
 org.apache.jackrabbit.extractor.MsExcelTextExtractor,
 org.apache.jackrabbit.extractor.MsPowerPointTextExtractor,
 org.apache.jackrabbit.extractor.PdfTextExtractor,
 org.apache.jackrabbit.extractor.OpenOfficeTextExtractor,
 org.apache.jackrabbit.extractor.RTFTextExtractor,
 org.apache.jackrabbit.extractor.HTMLTextExtractor,
 org.apache.jackrabbit.extractor.PlainTextExtractor,
 org.apache.jackrabbit.extractor.XMLTextExtractor