Installing CRISP Addon - BloomReach Experience - Open Source CMS

This article covers a Hippo CMS version 12. There's an updated version available that covers our most recent release.

01-09-2017

Installing CRISP Addon

Introduction

Installing CRISP Addon module is slightly different based on whether you want to use it in Content Delivery tier application ("site") only, or you want to use it in both Content Delivery tier application ("site") and Content Authoring tier application ("cms"):

First of all, make sure you have dependency definitions in dependency management section in the root pom.xml:

<dependencyManagement>
 
  <!-- SNIP -->
 
  <dependencies>
 
    <!-- SNIP -->
 
    <dependency>
      <groupId>org.onehippo.cms7</groupId>
      <artifactId>hippo-addon-crisp-api</artifactId>
      <version>${hippo.addon-crisp.version}</version>
    </dependency>
 
    <dependency>
      <groupId>org.onehippo.cms7</groupId>
      <artifactId>hippo-addon-crisp-core</artifactId>
      <version>${hippo.addon-crisp.version}</version>
    </dependency>
 
    <dependency>
      <groupId>org.onehippo.cms7</groupId>
      <artifactId>hippo-addon-crisp-repository</artifactId>
      <version>${hippo.addon-crisp.version}</version>
    </dependency>
 
    <dependency>
      <groupId>org.onehippo.cms7</groupId>
      <artifactId>hippo-addon-crisp-hst</artifactId>
      <version>${hippo.addon-crisp.version}</version>
    </dependency>
 
    <!-- SNIP -->
 
  </dependencies>
 
  <!-- SNIP -->
 
</dependencyManagement>

 

Option 1: Installing CRISP Addon When Using Content Delivery tier Application Only

In this installation option, hippo-addon-crisp-api JAR module is used by Content Delivery Application only, you don't need to put the JAR module as shared library.

Add Dependencies

Add the following dependencies into your content delivery application subproject (site):

<dependencies>
 
  <!-- SNIP -->
 
  <dependency>
    <groupId>org.onehippo.cms7</groupId>
    <artifactId>hippo-addon-crisp-api</artifactId>
  </dependency>
 
  <dependency>
    <groupId>org.onehippo.cms7</groupId>
    <artifactId>hippo-addon-crisp-core</artifactId>
  </dependency>
 
  <dependency>
    <groupId>org.onehippo.cms7</groupId>
    <artifactId>hippo-addon-crisp-hst</artifactId>
  </dependency>
 
  <!-- SNIP -->
 
</dependencies>

And, add the following depednencies in the content authoring application (cms):

<dependencies>
 
  <!-- SNIP -->
 
  <dependency>
    <groupId>org.onehippo.cms7</groupId>
    <artifactId>hippo-addon-crisp-repository</artifactId>
  </dependency>
 
  <!-- SNIP -->
 
</dependencies>

Now, you're ready to use the plugin!

 

Option 2: Installing CRISP Addon When Using Both Content Delivery and Authoring tier Applications

Put CRISP API JAR as Shared Library

First of all, hippo-addon-crisp-api JAR module must be added into application submodules as provided scope because it needs to be shared in a shared classpath in this installation option. You can find the API JAR module added as provided scope in the following sections.

Now, the hippo-addon-crisp-api JAR module must be added in the container's shared classpath. Typically, the container can be started by either cargo.run Maven profile in local development mode, or it can be started in a deployed server that extacted the distribution tar.gz file created by dist Maven profile.

To deploy the hippo-addon-crisp-api JAR module in local cargo.run profile, you should update the cargo.run Maven profile with hippo-addon-crisp-api dependency like the following example:

<profile>
  <id>cargo.run</id>
  <dependencies>
    <dependency>
      <groupId>org.onehippo.cms7</groupId>
      <artifactId>hippo-addon-crisp-api</artifactId>
      <scope>provided</scope>
    </dependency>
  </dependencies>
  <build>
    <plugins>
      <plugin>
        <groupId>org.codehaus.cargo</groupId>
        <artifactId>cargo-maven2-plugin</artifactId>
        <configuration>
          <configuration>
            <!-- SNIP -->
          </configuration>
          <deployables>
            <!-- SNIP -->
          </deployables>
          <container>
            <systemProperties>
              <!-- SNIP -->
            </systemProperties>
            <dependencies>
              <dependency>
                <groupId>org.onehippo.cms7</groupId>
                <artifactId>hippo-addon-crisp-api</artifactId>
                <classpath>shared</classpath>
              </dependency>
            </dependencies>
          </container>
        </configuration>
      </plugin>
    </plugins>
  </build>
</profile>

Now, the tomcat container by running cargo.run profile will include hippo-addon-crisp-api JAR module in the shared classpath.

When creating a tar.gz file as distribution file through dist Maven profile, shared dependencies are defined in a Maven Assembly Plugin descriptor file. e.g, src/main/assembly/shared-lib-component.xml. You should update the file like the following example:

<component xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/component/1.1.2"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/component/1.1.2
                               http://maven.apache.org/xsd/component-1.1.2.xsd">
  <dependencySets>
    <dependencySet>
      <useProjectArtifact>false</useProjectArtifact>
      <outputDirectory>shared/lib</outputDirectory>
      <scope>provided</scope>
      <includes>
        <include>org.onehippo.cms7:hippo-cms7-commons</include>
        <include>org.onehippo.cms7:hippo-services</include>
        <!-- SNIP -->
        <include>org.onehippo.cms7:hippo-addon-crisp-api</include>
      </includes>
    </dependencySet>
  </dependencySets>
</component>

Also, you need to add hippo-addon-crisp-api dependency in your dist profile like cargo.run profile:

<profile>
  <id>dist</id>
  <dependencies>
    <!-- SNIP -->
    <dependency>
      <groupId>org.onehippo.cms7</groupId>
      <artifactId>hippo-addon-crisp-api</artifactId>
      <scope>provided</scope>
    </dependency>
    <!-- SNIP -->
  </dependencies>
  <build>
    <!-- SNIP -->
  </build>
</profile>

Now, the distribution tar.gz file will contain the hippo-addon-crisp-api JAR module in a shared classpath.

Add Dependencies

Add the following dependencies into your content delivery application subproject (site):

<dependencies>
 
  <!-- SNIP -->
 
  <!-- NOTE: hippo-addon-crisp-api JAR module must be 'provided' scope as it's provided by the container! -->
  <dependency>
    <groupId>org.onehippo.cms7</groupId>
    <artifactId>hippo-addon-crisp-api</artifactId>
    <scope>provided</scope>
  </dependency>
 
  <dependency>
    <groupId>org.onehippo.cms7</groupId>
    <artifactId>hippo-addon-crisp-core</artifactId>
  </dependency>
 
  <dependency>
    <groupId>org.onehippo.cms7</groupId>
    <artifactId>hippo-addon-crisp-hst</artifactId>
  </dependency>
 
  <!-- SNIP -->
 
</dependencies>

And, add the following depednencies in the content authoring application (cms):

<dependencies>
 
  <!-- SNIP -->
 
  <dependency>
    <groupId>org.onehippo.cms7</groupId>
    <artifactId>hippo-addon-crisp-repository</artifactId>
  </dependency>
 
  <!-- NOTE: hippo-addon-crisp-api JAR module must be 'provided' scope as it's provided by the container! -->
  <dependency>
    <groupId>org.onehippo.cms7</groupId>
    <artifactId>hippo-addon-crisp-api</artifactId>
    <scope>provided</scope>
  </dependency>
 
  <!-- SNIP -->
 
</dependencies>

Now, you're ready to use the plugin!

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?