Trifork Blog

Category ‘Hippo’

Improved search for Hippo CMS websites using ElasticSearch

July 30th, 2013 by

We have done multiple big Hippo projects. A regular Hippo project consists of multiple components like the website, the content management system and a repository for the documents. In most of the projects we also introduce the integration component. This component is used to pull other data sources into Hippo, but we also use it to expose data to third parties.

By default, the Hippo Site Toolkit delegates searches to the Hippo Repository that in turn delegates the search to Jackrabbit. This is the repository that is used by Hippo to store the documents. JackRabbit has integrated Lucene which can be used for search. This is a domain specific Lucene implementation targeting to be compatible with the Java Content Repository specification. This however comes at a price, for example more expensive and less customizable searches than search engines like Solr or Elasticsearch provides. for typical Solr/Elasticsearch features like highlighting, suggestions, boosting, full control over indexing or searching external content, Hippo Repository search is limited.

This search problem can be overcome using a specialized search solution like Elasticsearch. For multiple customers we have realized this solution, some based on Solr and others on Elasticsearch.

In this blogpost I am describing the solution we have created. I’ll discuss the requirements for creating (near) real time search using Hippo workflow events as well as the integration component that reads the documents from Hippo and pushes them to Elasticsearch.

Read the rest of this entry »

Hippo CMS Favorite Folders Plugin

July 17th, 2013 by

hippo_logoAfter doing a number of big projects with Hippo CMS, I came up with the idea of creating a plugin. I’m always looking for ways to optimize the user experience as I think user experience is one of the most important parts of a product. Hippo allows you to store your content in a folder structure. In my projects I’ve noticed that most users only use a few folders to work in. Sometimes this folder is located on a deeper level in the folder structure, which makes the user need to click even more before he reaches his content. My plugin allows the user to mark a folder as a favorite folder. A link will be created on the dashboard (the first screen after log-in). Using this link, the user can quickly navigate to that folder. The favorite folders will also be available in the link picker as a separate section. Continue reading to find out how it works!

Download Hippo CMS plugin

Read the rest of this entry »

Enterprise search with Solr and Elasticsearch @ Hippo Meetup

January 24th, 2013 by

At a recent Hippo meetup I gave a presentation about enterprise search. Being able to index and search your content, both in the Hippo CMS and in other sources, is of interest to many Hippo users. The presentation does not go into any Hippo specifics, but provides a brief introduction to search, Apache Lucene and concepts like an inverted index, but quickly goes into the two main enterprise (open source) search servers: Apache Solr and Elasticsearch.

Check out my slides for this talk on SlideShare:

University of Amsterdam website goes live

September 11th, 2012 by

Congratulations to our client the University of Amsterdam who today launched their new website. With a new look & feel and a complete update of all the existing content it’s a showcase of how educational institutions can really provide relevant information to varied target audiences. The site built by us, Orange11, with the use of Hippo CMS now makes it not only easier and simpler for individual departments to update web content, it also enables the University of Amsterdam (UvA) to increasingly engage, inform and empower its students and teachers.

The CMS is not only the foundation for the main UvA website, it also supports around 100 other subsites within the university. These can be sites for different faculties but also for initiatives like Spui 25, which is a project website that is affiliated to the UvA. The total repository contains around 25.000 documents. Each is a different document type and now with this solution in place these documents can be in the shared as not only part of the repository but also in a sub-site specific section. This makes the content model very flexible especially for the numerous content editors.

Furthermore, the content in the repository is not only generated by editors, but also from content from LDAP and SAP. Besides importing content it can now also export content. This large amount of content it is all kept in sync with our advanced Solr based search solution. Solr is also what we have integrated within the site for searching the content. The search database also shows content from other sources like the StudieGids for example.

A blog on the complete search solution will hopefully follow sometime soon…but for now, take a look around the new UvA website for yourself and let us know if you have any questions.

Authenticate against a hippo repository using spring security

July 17th, 2012 by

Within a number of my projects we use Hippo to create a website. Hippo contains a JackRabbit repository that has capabilities for authenticating and authorizing users. Hippo builds on this functionality for its own security model. In most of these projects we create an integration component to store content in the repository from other systems and retrieve content from the repository to be useful in other applications. The integration component contains a web interface created using spring-mvc. We use spring-security to secure the web application. Since we do not want to maintain a separate list of users for the integration application we want to authenticate against the hippo repository. In my current project we have a lot of users that do not need access to the integration web application. We want to reuse the security domains functionality of Hippo to authorize the users.

In this blog post I am going to explain the different parts of the solution in such a way that you can use the solution in your own project.

Read the rest of this entry »

Running Hippo CMS from Intellij

February 3rd, 2012 by

For a number of years we are doing hippo development using our beloved tool “Intellij”. We can import the project using the pom. Deploying from within Intellij was done using the maven provided jetty integration to run the cms. Then we would run the site in another tomcat or as well from maven with jetty. Not very fast, but it works. In release 7.6 (I think) hippo changed the deployment model. They have provided a mechanism to use cargo from maven to start the cms as well as the site within one tomcat instance.

If you want to give the default mechanism a spin, create a new project using the hippo maven archetype and use the cargo integration to run the new project. Steps on how to do this and some links will be presented later on.

Not all developers are the same, maybe some of them still want to use cargo and others want to pick up the challenge and use a tool like eclipse to do the job. Therefore we want to have a mechanism that supports most of the developers out there.

In this blogpost I am going to show you how you can create a structure supporting all these different deployment options. Of course the demonstration that it works is done with Intellij.

Read the rest of this entry »

Embedding RSS in Hippo using the pipelines feature

December 13th, 2011 by


For one of the biggest Hippo projects I have been working on, we have created a custom rss solution. When we started the project, Hippo did not have an rss solution and we had some requirements for caching and reusability that we could not implement with standard hippo. A few years have passed and hippo is not what it used to be. Nowadays it has a lot more features and a lot less NullPointers (sorry guys, could not resist). About a week a go Jeroen Reijn told me about the Pipeline feature in Hippo. This feels like the right time to start thinking about a new solution for rss.

With this blog post I am going to show you a better way to create rss feeds with Hippo using the provided features of Hippo. I know there are plugins available for rss, still I think mine is better :-). The solution is based on the Rome project and, as mentioned, the hippo pipelines.Romelogo small

Read the rest of this entry »

Monitoring Hippo Connection pool using JMX and Groovy

August 19th, 2010 by

For a project we are using Hippo to manage our content. We have a few components that interact with the repository using the connection pool as provided by hippo. I have modified the connection pool to increase the amount of logs and I have added statistics to the pool which can be exposed using JMX. Our custom components use this altered connection pool, but I the site did not. Our site makes use of the Hippo Site Toolkit, and I want to have this monitoring available as well.

In this blogpost I will explain the changes I made to the connection pool. After that I’ll show what to do to make this changed connection pool available to a site created with the HST and I’ll show a groovy script that reads the data from the remote servers using the JMX connection.

Read the rest of this entry »

JTeam en

April 5th, 2010 by
( is live. Hoelang geleden het idee achter één rijksbrede website is ontstaan weet ik niet. Hoelang ik nu bij het project betrokken ben weet ik wel.

Screen shot 2010-04-04 at 08.52.08.png

Het is nu ongeveer anderhalf jaar geleden dat ik ben begonnen als Software Architect bij het project Overheid Nieuws Stijl. Het is een ambitieus project om 16 websites samen te laten komen in één rijksbrede website Met de eerste live gang zijn er 7 websites over: postbus 51,,,,, en Uiteraard moest de meeste content van de websites ook op de nieuwe website terug te vinden zijn.

Vanuit de overheid is er voor gekozen om zoveel mogelijk Open Source software te gaan gebruiken. Ook voor het project Overheid Nieuwe Stijl (ONS) is er gekozen voor meerdere Open Source oplossingen. Naast het gebruik van Open Source software worden zaken als Open Standaarden en ook Open Data belangrijk gevonden. Vooral Open Data wordt door iedereen als zeer positief ervaren. De licentie voor alle content is Creative Commons.

Mocht je meer informatie willen hebben over dit enorme project, dan kun je deze hier vinden.

In deze blogpost wil ik me vooral concentreren op de betrokkenheid van JTeam bij dit ambitieuze project voor de rijksoverheid.

Read the rest of this entry »

Migrating content with Spring Integration – A real life example

January 13th, 2010 by

In one of the projects we need to migrate content from multiple websites into Hippo CMS. One of the interesting parts of this migration is that one of the websites will constantly provide us with updates of the content. Therefore it makes the migration a continuous process.

In this post I will explain how we use Spring Integration to migrate content, handle errors, measure performance and deal with the fact that content could contain references to other content that is not imported yet.

Read the rest of this entry »