Version 17 (modified by Twan Goosen, 10 years ago) (diff)

added model diagrams

VLO 3.0

Note: much of this page can probably be moved into CmdiVirtualLanguageObservatory once 3.0 has been released.


With VLO 3.0 a new major version of the VLO is presented with a redesigned and reimplemented front end as its key change with respect to the 2.x versions. It also uses a new major versions of Solr and Wicket, and has a number of importer improvements.

What's new?

For details, see milestone

Libraries and dependencies

  • Upgraded Solr server and client (from 3.6.0 to 4.6.0)
  • Using the latest major version of Wicket (Wicket 6.x)
  • Dropped dependency on Simple framework (replaced with usage with JAX-B)


  • Addition of a simple search front page
  • Redesigned main search interface with more prominent search results and expandable facets
  • Redesigned record page
  • Improved record navigation
  • Improved interaction experience through increased usage of AJAX with non-javascript fallback functionality


  • ...



For details, see milestone

Technical notes


Upgrade instructions are included in the UPGRADE file. Some configuration parameters have been added or have changed since 2.18.

VLO is deployed to for beta and production. There are three tomcat instances running:

The application bundles, which includes a Solr instance app, the importer, the web app and configuration are deployed to directories under /lat/webapps/vlo, which also has symlinks for both the current production and current beta directories. These symlinks are used in the tomcat configuration so that this does not need any change when updating the version of the VLO.

Most of the configuration takes place in the VloConfig.xml file. Its format is read by both the importer and the web app and has options for both, so this can be shared in a single file. In addition, the web app has a set of context parameters to configure the location of VloConfig.xml that should be used, and to optionally override the Solr base URL.

See the packages deployment instructions for details.



  • Solr server holds the document index; Solrj client is used in the importer and web app
  • Wicket + Spring for the front-end
    • Pages and custom components and models for wicket
    • Spring wiring through eu.clarin.cmdi.vlo.config.VloSpringConfig

Maven project structure (all with eu.clarin.cmdi groupId):

  • vlo reactor project with some shared properties (library versions) and dependencies (logging, unit testing); it has the following child modules:
    • vlo-commons has some common classes for configuration (VloConfig and factories), constants and utility methods;
    • vlo-solr WAR project for the Solr instance with configuration setup for VLO;
    • vlo-importer builds as a runnable importer that reads CMDI instances from configured locations and creates an index into a deployed Solr instance;
    • vlo-web-app WAR project for the VLO front-end that uses the facets and fields in the populated Solr index;
    • vlo-distribution an assembler project that takes the output of vlo-solr, vlo-importer and vlo-web-app and combines these into a single distribution package that can be used for deployment on an arbitrary server.


VloConfig (in vlo-commons) is a POJO (only getters and setters, no reading or writing logic). There are factories for different ways of creating the configuration.

For the web app, the ServletVloConfigFactory is used which reads the configuration from file but also processes context parameters which can override the parameters in the configuration file.

Some options configurable through VloConfig:

  • locations of metadata to be imported
  • various solr parameters
  • parameters that control the size of the wicket cache
  • the fields that need to be hidden as technical fields or ignored altogether
  • the facets that need to be shown in the search interface
  • the name of the collection facet
  • base URL's for federated content search
  • language code URL's
  • ...


Using Wicket i8n support, see Wicket Guide.

  • Page or component specific resource strings in .properties files in eu.clarin.cmdi.vlo.wicket.pages and eu.clarin.cmdi.vlo.wicket.panels.*
  • Field names in /src/main/resources/
  • Resource types in /src/main/resources/


Page / components hierarchy

The following diagram presents the composition of the pages of the VLO, showing the pages and their most important components (hence it is not a complete picture).

  • Where not shown explicitly, the cardinality of the composition relations is 1:1
  • The red lines represent possible navigation routes. The SimpleSearchPage is the default entry page

Pages/components hierarchy class diagram

Models lifecycle

Selection models

Flow of the query and facet selection and derivatives:

Document and field models

Flow of the Solr document model, Solr field model, and derivatives

Attachments (6)

Download all attachments as: .zip