Upgrade the CMS
Upgrade SCXML Workflow Definition
Hippo's document workflow is defined by means of an SCXML definition. In CMS 12, we have improved the default workflow definition provided by the product. If your project is using a customized SCXML definition, you may need to upgrade it to CMS 12.
One improvement is defined by means of this VCS change (REPO-1597). Basically, it means that the actions executed on the obtainEditableInstance transition ("Start editing a document", create a fresh draft document variant) are not executed if the requestor is already editing the document.
Another improvement is defined by means of this VCS change (REPO-1639). It means that in CMS 12, the workflow user, rather than the system user is used for automated (scheduled) publication and depublication.
Remove HST Configuration Editor
Before CMS 12.0, the HST Configuration Editor was accessible from the Channels perspective, allowing administrators to modify HST configuration owned by Hippo project developers, i.e. outside of the hst:workspace. This tool has been removed from Hippo CMS in version 12.0 for the following reasons:
- Since it operated on configuration owned by Hippo project developers, making changes in the HST Configuration Editor could cause harmful conflicts with incoming bootstrap changes.
- HST Configuration Editor was a infrequently used tool with a relatively high maintenance cost. This contrasted too much with the substantial changes we had to make to the HST configuration model developing some of the CMS 12 features.
- CMS 12.0's configuration management mechanisms lay the foundation for the development of better ways to manipulate developer-owned parts of the HST configuration.
- We intend to provide functionality for the few remaining use cases of HST Configuration Editor by providing an improved and more appropriate user experience.
Steps for removing the HST Configuration Editor from a project
In order to remove the HST Configuration Editor from your project, remove the following dependencies from your CMS module's POM file, typically located at /cms/pom.xml:
<dependency> <groupId>org.onehippo.cms7</groupId> <artifactId>hippo-addon-hst-configuration-editor-frontend</artifactId> </dependency> <dependency> <groupId>org.onehippo.cms7</groupId> <artifactId>hippo-addon-hst-configuration-editor-repository</artifactId> </dependency>
Upgrade web.xml file
You can secure the AngularResourceServlet and CKEditorResourceServlet of the CMS by adjusting the <servlet-class> value of these servlets in the CMS web application descriptor at /cms/src/main/webapp/WEB-INF/web.xml to org.onehippo.cms7.utilities.servlet.SecureCmsResourceServlet:
[...] <servlet> <servlet-name>AngularResourceServlet</servlet-name> <servlet-class>org.onehippo.cms7.utilities.servlet.SecureCmsResourceServlet</servlet-class> [...] </servlet> <servlet> <servlet-name>CKEditorResourceServlet</servlet-name> <servlet-class>org.onehippo.cms7.utilities.servlet.SecureCmsResourceServlet</servlet-class> [...] </servlet> [...]
In the past the RepositoryJaxrsServlet was optional, though included by default. If your project is old enough or if you removed this for some reason you may not have this configured. Add the following to the cms webapp's web.xml.
<servlet> <servlet-name>RepositoryJaxrsServlet</servlet-name> <servlet-class>org.onehippo.repository.jaxrs.RepositoryJaxrsServlet</servlet-class> <load-on-startup>6</load-on-startup> </servlet> <servlet-mapping> <servlet-name>RepositoryJaxrsServlet</servlet-name> <url-pattern>/ws/*</url-pattern> </servlet-mapping>
This is required to use Projects, Visual Editing and more in the Channel Manager.
Repository node type changes
Compared to CMS 11, CMS 12 comes with a number of repository node type changes. These changes may have an effect on your project, so we advise you to study them carefully.
CKEditor changes
Compared to CMS 11, CMS 12 uses a different notation for CKEditor's extraAllowedContent configuration property.
In CMS 11, you may have specified the extraAllowedContent property for a CKEditor instance in a document type like the following example:
{ extraAllowedContent: 'q cite(myclass)' }
In CMS 12, the above example must be changed to use JSON object notation as follows:
{ extraAllowedContent: {q: {}, cite: {classes: 'myclass'}} }