On the surface, the modules and apps associated with publishing and activation serve the same purpose: publish content from an author instance to a public instance:
Nevertheless, the internal workings of this process are different.
Activation is an older implementation inherited from the 5.5 branch. Activation can still be used instead of publishing, but it is structurally and also partly functionally inferior to the newer publishing implementation.
For more information about activation, read:
- Activation overview
- Activation module
- Transactional Activation module
- Activation Tools app
- Activation errors
- Activation security
Publishing is a refactored version of activation. The original Activation module has been broken into multiple submodules, see the module structure. The driving decision was to have a set of maintainable and extensible components. Another reason was to remove deprecated code. The core activation concepts remain the same. The transport layer is still using the HTTP protocol, but you can now easily plug in any type of transport layer. The new publishing implementation also allows you to define and use custom publishing operations with which you can publish content to something that is not a Magnolia public instance, for example to a custom API or a Content Delivery Network.
For more information about publishing, read:
- Publishing overview
- Publishing module
- Publishing Transactional module
- Publishing Tools app
- Publishing errors
- Activation security
Upgrading from activation to publishing
Bundles and webapps are shipped with publishing by default. If you are migrating from a pre-5.6 Magnolia branch and intend to use publishing, you have to:
- Remove both the activation modules.
- Add all modules from the
magnolia-publishing-parentto your bundle, either manually as pre-built jars or as dependencies.
- Check that after the upgrade the
subscriberswere correctly migrated from
- Rewrite your custom activation commands to be compatible with the modules of the new publishing module pack.
Replacing publishing with activation
Using activation is still possible, but only after replacing the Publishing module and the Publishing Transactional module with the Activation module and the Transactional Activation module, respectively. You can do this in two ways:
- Remove all the publishing JARs from the
../WEB-INF/libfolders of your author and public instances. Add the activation JAR files in their place.
- Exclude the publishing dependencies from the POM and add the old activation dependencies.