Requirements

  • Postgres database with Postgis extensions enabled.
  • Tomcat 6
  • Java 1.7 (Tested with Java version "1.7.0_45")

Downloads

The latest version of the Deltares Geonetwork 3 fork (build from https://github.com/openearth/core-geonetwork/tree/3.0.x-deltares) can be found here:

https://build.deltares.nl/viewType.html?buildTypeId=Geonetwork_GeonetworkInstall

In the artifacts 2 war files can be downloaded:

  • dataportaal.war : preconfigured with postgresql/postgis. 
  • geonetwork.war : configured with a local h2 database. Typically used for local testing.

Tomcat 6 Configuration

Set java parameters: 

To store indexes and other Geonetwork specific data, pass a java environment data directory to tomcat.

"-Dgeonetwork.dir=/var/lib/geonetwork_data"

To make sure tomcat has enough memory available, use the following java parameters:

"-Dfile.encoding=UTF-8 -Xms128m -Xmx712m -XX:PermSize=128m -XX:MaxPermSize=128m"

To allow searching in the ISO19139 temporal extent meta data using a When search from the Geonetwork 3 gui, the following java -D parameter should be passed. (Otherwise Geonetwork 3 will only search for creation date and modification date of the metadata.)

"-Dgeonetwork.search.temporal.extent.overrule=true"

 

On CentOS these settings can be set in the /usr/share/tomcat6/conf/tomcat6.conf file.

  • JAVA_OPTS="-Dgeonetwork.dir=/var/lib/geonetwork_data -Dfile.encoding=UTF-8 -Xms128m -Xmx712m -XX:PermSize=128m -XX:MaxPermSize=128m -Dgeonetwork.search.temporal.extent.overrule=true"

On windows the JAVA_OPTS can be added to the sentenv.bat file in the tomcat bin directory.

 

Set database properties:

Put the jdbc.properties in the tomcat conf directory to override the default jdbc.properties. (download example)

 

Geonetwork configuration

For Geonetwork to work correctly on a server, the hostname and port of the server have to be configured. In the Admin console in the Catalog server section the following fields have to match the servername geonetwork is deployed to:

There is another setting that is server dependent:

Resource identifier prefix.http://dl-tc006.xtr.deltares.nl:8080/geonetwork/srv/metadata/

Update Geonetwork 

If a new version of Geonetwork becomes available:

  • Download the new warfile from https://build.deltares.nl/viewType.html?buildTypeId=Geonetwork_GeonetworkInstall
  • Stop tomcat
  • Check if all java parameters are up to date in ../tomcat6/conf/tomcat6.conf file (see Tomcat 6 Configuration section)
  • Cleanup the cache database that is stored in the directory configured with the -Dgeonetwork.dir option (for example: -Dgeonetwork.dir=/var/lib/geonetwork_data). Remove all  wro4j-cache.* files.
  • -Dgeonetwork.dir=/var/lib/geonetwork_data
  • Remove old installation in tomcat directory
  • Replace the old .war file with the new warfile in the tomcatdirectory
  • Start tomcat

Configuring the Geonetwork 3 sources (This is already done in dataportaal.war version)

N.B.: The following changes in the geonetwork sources have be applied In the openearth repository of geonetwork:  https://github.com/openearth/core-geonetwork; these changes have been added to the 3.0.x-deltares branch.

To make Geonetwork 3 use the Postgres with postgis where the spatial indexes are stored in postgis, a new configuration is added. the following has to be changed/added in the "web/src/main/webapp/" directory:

  • WEB-INF\config-node\srv.xml -->  Change to: <import resource="../config-db/postgres-postgis.xml"/>
  • WEB-INF\config-db\postgres-postgis.xml will be added. (content displayed hereafter).
  • WEB-INF\config-db\jdbc.properties --> Fill in the database host, portname, username and password (used for local development).

 

Configure the postgres-postgis.xml file:

<?xml version="1.0" encoding="UTF-8"?>
<beans default-lazy-init="true"
       xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="
      http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
      http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
   ">
    <!--  Postgresql database with postgis extenstion to allow storing spatial index in postgres. -->

    <!-- allow loading properties from the tomcat conf directory. If not found the default jdbc.properties will be used. -->
    <context:property-placeholder location="file:${catalina.home}/conf/jdbc.properties" ignore-resource-not-found="true" file-encoding="UTF-8" ignore-unresolvable="true" order="0"/>

    <import resource="defaultJdbcDataSource.xml"/>
    <import resource="postgis-alternate-datasource.xml"/>

    <bean id="jpaVendorAdapterDatabaseParam" class="java.lang.String">
        <constructor-arg value="POSTGRESQL"/>
    </bean>

    <bean id="jdbcDriverClassName" class="java.lang.String">
        <constructor-arg value="org.postgis.DriverWrapper"/>
    </bean>

    <bean id="jdbcURL" class="java.lang.String">
    <constructor-arg value="jdbc:postgresql_postGIS://${jdbc.host}:${jdbc.port}/${jdbc.database}"/>
    </bean>
</beans>

 

Geonetwork uses stopwords to create indexes and to filter them from queries. This leads to unexpected results if a user uses the english user interface and types a dutch query. For example the query "het water" wil be interpreted as an english query. The stopword "het" won't be removed from the query. During indexing dutch documents the stop words will be removed, so only "water" is stored in the index. So searching for "het water" will not find any results.

To work around this issue, the english and dutch stop words have been merged:

webapp/resources/stopwords

  • eng.txt
  • dut.txt

 

Geonetwork uses a generic html header. This leads to problems on some IE installations where the browser is set to favourite IE 7 to display the page instead of a newer iteration. We can force IE to show the page in its newest iteration by changing the metatag to:

<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />

The above can be added to the base-layout.xsl which can be found in web/src/main/webapp/xslt.  This needs to be changed every update.

 

 

 

 

 

  • No labels