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.

We recommend integrating both improvement into your customized SCXML definition in order to make CMS 12's document workflows work correctly.

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:

  1. 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.
  2. 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.
  3. 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.
  4. 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>
[...]
Do not change the servlet-class of the SkinResourceServlet, though.

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'}}
}
Did you find this page helpful?
How could this documentation serve you better?
On this page
    Did you find this page helpful?
    How could this documentation serve you better?