"Seegrid will be due for a migration to confluence on the 1st of August. Any update on or after the 1st of August will NOT be migrated"

Install GeoNetwork Trunk 2.10.x

Introduction

This document outlines steps of clean install of GeoNetwork Trunk 2.10.x on a target server, the guide and RIF-CS patch described in this guide are based on GeoNetwork 2.10.x.

This document also explains how to enable RIF-CS harvester.

GeoNetwork running dependencies

  1. Database : Postgres is a popular option (this guide uses PostgreSQL). From 2.8.x (to 2.11.x now), MySQL on Linux requires a workaround.
  2. Tomcat 5.5 onwards with Java 6.

Preconditions

  1. The following are required for building GeoNetwork installation files from source:
  2. GeoNetwork setup is a graphical installer, the following softwares are required on your machine to run the installer on a remote server;
  3. If running on Linux with MySQL, apply workaround.

Prepare GeoNetwork installer

You can prepare your own installer, or download one here.This custom 2.10.1 build has the patches built into it.
  1. The following installation guide are based on the official guide from : http://geonetwork-opensource.org/manuals/2.10.2/eng/developer/development/index.html#build-geonetwork.
  2. Build GeoNetwork on local machine:

    • Apply the RIF-CS patch:
      • download the patch in here Geonetwork 2.10.x
      • follow the instruction in README.txt
      • NOTE : the RIF-CS patch generated based on git 2.10.1, it may not work with other revision.
    • If using MySQL on Linux, apply patch in workaround.
    • If you intend to use HTML5 GUI, apply this patch to prevent the GUI from hanging when displaying harvested WFS records.
    • Use Maven to build the source
    • mvn package
    • Now create the installer (if you want)
      • cd GeoNetwork-trunk/installer
      • ant installer

Create a database

Workaround for MySQL

If you are running on Linux, there's a problem with MySQL being case sensitive by default from 2.8.0 onwards. The workaround is to set global variable lower_case_table_names to 1, but you must rename all your tables to lower case before doing this. This is not possible without affecting other databases on the same server. If you must use MySQL on linux and you can't change the global variable, you can apply this patch and build from source.

PostgreSQL example:
  • Create new user :user ~ $ sudo su postgres

user ~ $ createuser geonetwork -s -P (-s superuser, -P to prompt password)
  • Create a new geonetwork db instance :postgres ~ $ psql

postgres=# CREATE DATABASE geonetwork WITH OWNER=geonetwork ENCODING 'UTF8' TEMPLATE=template_postgis;

postgres=# \q

postgres ~ $ exit

user ~ $

Install Geonetwork

  1. Upload geonetwork-install-2.10.x.jar to the remote server.
  2. Start Xming and login as root to yourserver with X forwarding enabled in Putty:
    • putty1.jpg
    • putty2.jpg
  3. Stop tomcat: /etc/init.d/tomcat6 stop
  4. Run installer: java -jar geonetwork-install-2.10.x-SNAPSHOT.jar(Note : For Debian 5, we need to use sudo -E to maintain the existing environment setting e.g. sudo -E java -jar geonetwork-install-2.10.x-SNAPSHOT.jar)
    • Use /usr/local/geonetwork as installation directory.
    • When choosing the packs to install, make sure the "GeoNetwork User Interface (experimental)" is checked if you require Thesauri function in GeoNetwork :
      • selectpacks.jpg
    • You will be asked to choose which user interface as default. The HTML5 widgets based user interface is available from Geonetwork 2.10 on. This is also configurable through the config-gui.xml.
      • Which user interface do you want to use?
      • 0 [x] The HTML5 Widgets based user interface
      • 1 [ ] The classic user interface
    • After installation is finished press "Done".

Post installation configuration

  1. Configure geonetwork log file location, and downgrade logging level to INFO if you have to (/usr/local/geonetwork/web/geonetwork/WEB-INF/log4j.cfg)
    log4j.rootLogger = OFF
    log4j.logger.geonetwork.sru         = WARN
    log4j.logger.geonetwork.sru.search  = WARN
    log4j.logger.jeeves      = WARN, jeeves, console
    log4j.logger.jeeves.xlinkprocessor = WARN
    log4j.logger.com.k_int=WARN, console, jeeves
    log4j.logger.org.jzkit=WARN, console, jeeves
    log4j.logger.org.jzkit.search.impl.LRUCache = WARN, console,jeeves
    log4j.appender.jeeves.file=/var/log/tomcat6/geonetwork.log 
  2. Configure default map layers (maps in search panel and map viewer panel): By default geonetwork uses localhost to serve its maps. If GeoServer is not installed, make the following changes to /usr/local/geonetwork/web/geonetwork /WEB-INF/config-gui.xml, so that public maps are used instead of local maps.
    Mapsearch section:(line 85)
    <mapSearch options=.......>
       <layers>
          <layer server="http://www2.demis.nl/wms/wms.ashx?WMS=BlueMarble" tocName="Map" params="{layers: 'Earth Image,Borders,Coastlines', format: 'image/jpeg'}" options="{isBaseLayer: true}" />
       </layers>
    </mapSearch>
    Map viewer section:(line 108)
    <mapViewer options=.......>
       <layers>
          <layer server="http://www2.demis.nl/wms/wms.ashx?WMS=BlueMarble" tocName="Borders"  params="{layers: 'Borders,Coastlines', transparent: 'true', format: 'image/png'}"  options="{}" />
          <layer server="http://www2.demis.nl/wms/wms.ashx?WMS=BlueMarble" tocName="Ortophoto" params="{layers: 'Earth Image', format: 'image/jpeg'}" options="{isBaseLayer: true}" />
       </layers>
       <scales values=......... />
       <proj>
         .
         .
         .
         .
    </mapViewer>
  3. Geonetwork will create database tables at start-up and will use default H2 database specified in /usr/local/geonetwork/web/geonetwork/WEB-INF/config.xml. Follow the instructions below to disable the default database and enable PostgreSQL database:
    • Turn off default H2 database
      <resource enabled="false">
    • Configure PostgreSQL database
      <resource enabled="true">
      <name>main-db</name>
      <provider>jeeves.resources.dbms.ApacheDBCPool</provider>
      <config>
            <user>geonetwork</user>
            <password>geonetwork</password>
            <!-- we use org.postgis.DriverWrapper in place of org.postgresql.Driver to support both postgresql and postgis -->
            <driver>org.postgis.DriverWrapper</driver> 
            <!--  
            jdbc:postgresql:database
            jdbc:postgresql://host/database
            jdbc:postgresql://host:port/database
      
            or if you are using postgis and want the spatial index loaded into postgis
            jdbc:postgresql_postGIS://host:port/database
            --> 
            <url>jdbc:postgresql_postGIS://localhost:5432/geonetwork</url>
            <poolSize>10</poolSize>
            <reconnectTime>3600</reconnetTime> 
      </config>
      </resource>
  4. Separate database connection information to another xml file (optional step) :
    • Create another xml file, e.g. config-db-ext.xml
    • Extract the database connection information from config.xml file into config-db-ext.xml :
      <user>geonetwork</user>
      <password>geonetwork</password>
      <!-- we use org.postgis.DriverWrapper in place of org.postgresql.Driver to support both postgresql and postgis -->
      <driver>org.postgis.DriverWrapper</driver> 
      <!--  
      jdbc:postgresql:database
      jdbc:postgresql://host/database
      jdbc:postgresql://host:port/database
      or if you are using postgis and want the spatial index loaded into postgis
      jdbc:postgresql_postGIS://host:port/database
      --> 
      <url>jdbc:postgresql_postGIS://localhost:5432/geonetwork</url>
      <poolSize>10</poolSize>
      <reconnectTime>3600</reconnetTime> 
    • Append the following line to the top of config.xml (after ) :
      <!DOCTYPE doc [ <!ENTITY dbFile SYSTEM "config-db-ext.xml"> ]> 
    • Edit the postgresql database connection section in config.xml :
      <resource enabled="true">
      <name>main-db</name>
      <!-- <provider>jeeves.resources.dbms.DbmsPool</provider> -->
      <provider>jeeves.resources.dbms.ApacheDBCPool</provider>
      <config>&dbFile;</config>
      </resource> 
  5. Make Tomcat the owner of the geonetwork installation directory:
    • chown -R tomcat6:tomcat6 /usr/local/geonetwork

Configure Tomcat and Apache
  • Add GeoNetwork application to tomcat
    • Create a file for geonetwork context /etc/tomcat6/Catalina/localhost/geonetwork.xml, with content:
      <Context path="/geonetwork" docBase="/usr/local/geonetwork/web/geonetwork" crossContext="false" debug="0" reloadable="false" /> 
    • Exposing GeoNetwork via your Apache frontend
    • Mount the proxy interface (/etc/apache2/sites-available/default)
      ProxyPass /geonetwork/ ajp://localhost:8009/geonetwork/ 
      ProxyPassReverse /geonetwork/ ajp://localhost:8009/geonetwork/ 
    • Start Tomcat and Apahce

Secure and configure GeoNetwork

Configure the User Interface

From version 2.10, GeoNetwork offers HTML 5 user interface as an alternative to the classic look. You can access the classic user interface with <host>/geonetwork/srv/en/main.home URL.

The HTML 5 interface is accessible via <host>/geonetwork/srv/eng/search. You can set the default redirect in web/geonetwork/WEB-INF/config-gui.xml:

Classic user interface:

<client type="redirect" widget="false" url="main.home" />

HTML 5 user interface:

<client type="redirect" widget="true" url="../../srv/eng/search" createParameter="#create" stateId="s" />

More information on the user interface: http://geonetwork-opensource.org/manuals/trunk/eng/developer/userinterface/index.html .

Change OAI Provider Datesearch type

  1. In system configuration, under OAI Provider, change Datesearch from temporal extent to modification date. This change needs a Tomcat restart to take effect.
  2. The above change is intended for ANDS RIF-CS harvester to collect all geonetwork records to Research Data Australia. ANDS harvester issues OAI request to geonetwork such as http://server/geonetwork/srv/en/oaipmh&method=RIF&from=2000-01-20T13:00:15&until=2011-01-20T13:00:15. The parameter from date is the earliestDatestamp of an OAI Identify response, the until date is the current date. Since not all records have temporal extent but modification date, records based on modification date should be returned to ANDS.

Enable Editing Harvested Record

  1. In System configuration, under HARVESTING, check the box for "Allow editing on harvested records".
  2. Restart Tomcat : /etc/init.d/tomcat6 restart

Add Templates
  1. In Administration, look for Add templates and samples. A list of schemas including the one added thru Add Metadata Schema/Profile will be listed.
  2. Select the schema (e.g. iso19139) and click on Add templates button
    • NOTE : DO NOT CLICK MORE THAN ONCE, as this will cause duplicate records of template being added to the database

Harvesting Management

GeoNetwork can harvest and automatically create metadata records from OGC services (such as GeoServer).

harvestsetting.png
  1. As admin, go to "Administration" -> "Harvesting Management", and click "Add".
  2. Select "OGC Web services (i.e. WMS, WFS, WCS, etc.)" in "Type" and click "Add".
  3. Enter the appropriate "Name" and "Service URL", e.g. "NVCL WFS" and "services-test.auscope.org/nvcl/wfs".
  4. Select the "Type of OGC webservice", e.g. OGC WFS/WMS 1.1.0 for EarthResourceML and NVCL WFS deployments.
  5. Untick "Use account".
  6. Select "geoscientificInformation" in "ISO topic category".
  7. Tick "Create metadata for layer elements using GetCapabilities information." in "Type of import".
  8. Configure the harvest frequency under "Options".
  9. Under "Privileges", add "All" group, and tick all the checkboxes (View, Interactive map, Featured). Making all your records visible is important to enable other parties to harvest your records.
  10. Select "Datasets" for both "Category For Service" and "Category For Datasets".
  11. Click save.
  12. If you want to run the harvesting now, tick the layer and click "Run". Click "Refresh" to check the status of the harvest. If there are no errors, you should be able to view the harvested records from the "Home" page.

runharvest.png

Turn on RIF-CS harvester

This is only required if you would like to provide OAIPMH harvesting to other parties, e.g. ANDS.
  1. RIF-CS harvester is turned on by applying the patch as described above.
  2. For the later added Metadata Schema/Profile, you need to copy the rif.xsl and activities.xml from Geonetwork 2.10.x and paste it to the /usr/local/geonetwork/web/src/main/webapp/WEB-INF/data/config/schema_plugins/iso19139/convert directory manually.
  3. The rif.xsl and activities.xml in Geonetwork 2.10.x are customised to work for AuScope. You can also find the example of rif.xls and activities.xml for ANZLIC profile created for BOM here.
  4. Make changes accordingly to the converter (rif.xls) for your system if required. (e.g group, origSource, discoveryLink etc).
  5. The RIF-CS activities mapping is implemented in a manual manner. For each harvesting node in Geonetwork, there is a manually created activity. The matching between an activity and an collection is based on the harvesting url which is unique to a harvesting node.
  6. To test the RIF-CS harvester, issue the request: http://server/geonetwork/srv/en/oaipmh?verb=ListRecords&metadataPrefix=rif. By default, the maximum records return from the request is 10 records. To view the complete lists, use the Resumption Token. Copy the value of the resumptionToken at the end of the result page (e.g.
    <resumptionToken expirationDate="2011-09-15T06:42:42">/-/rif/-//-//-/xq7zo54t5gn5/-/10</resumptionToken>
    Make another request: http://server/geonetwork/srv/en/oaipmh?verb=ListRecords&resumptionToken=/-/rif/-//-//-/xq7zo54t5gn5/-/10.
  7. For more information about ANDS RIF-CS harvester, refer to https://www.seegrid.csiro.au/wiki/Infosrvices/AndsRifcs.
  8. For more information about RIF-CS format, refer to http://www.ands.org.au/guides/content-providers-guide.html.

Testing Geonetwork

  1. Restart Tomcat : /etc/init.d/tomcat6 restart to ensure all changes done are loaded.
  2. Point your browser to http://yourserver/geonetwork and login as admin user.
  3. Add a metadata record (manual add)
  4. Add a harvester (auto-record)
  5. Search and view the metadata record(s)

Important Notes

  1. 17/Aug/2011 - Further tests on GeoNetwork trunk with RIF-CS patch had found that the oaipmh request filter base on date (e.g. http://localhost:8080/geonetwork/srv/en/oaipmh?verb=ListRecords&metadataPrefix=rif&from=2003-08-11T13:00:15&until=2011-08-17T00:00:00) will filter based on gmd:dateStamp/gco:DateTime in the metadata rather than the modified date. For BOM Geofabric, workaround is to edit the original gmd:dateStamp/gco:Date to gmd:dateStamp/gco:DateTime. For BOM Catalog, ETL will set the gmd:dateStamp/gclDateTime to the created date time and modified date time.
  2. 19/Aug/2011 - Jacque commented that the GeoNetwork trunk installed in the test server "Manage Thesauri" page is empty (from Admininistration->Thesauri and classification systems-> Manage thesauri). Further investigation found that if the "GeoNetwork User Interface (experimental)" options is not selected during the installation, then no interface would be available for "Manage Thesauri".
 
Topic attachments
I Attachment Action Size Date Who Comment
downloadxml.pngpng downloadxml.png manage 105.2 K 26 Oct 2016 - 14:08 RiniAngreani  
geonetworkconfig.pngpng geonetworkconfig.png manage 71.8 K 26 Oct 2016 - 14:05 RiniAngreani  
harvestsetting.pngpng harvestsetting.png manage 33.9 K 12 Dec 2013 - 16:04 RiniAngreani  
putty1.jpgjpg putty1.jpg manage 43.0 K 16 Aug 2011 - 14:20 FlorenceTan Allow agent forwarding
putty2.jpgjpg putty2.jpg manage 33.5 K 16 Aug 2011 - 14:20 FlorenceTan Enable X11 forwarding
runharvest.pngpng runharvest.png manage 11.4 K 12 Dec 2013 - 16:04 RiniAngreani  
schemaplugin1.jpgjpg schemaplugin1.jpg manage 111.2 K 16 Aug 2011 - 14:21 FlorenceTan Add a metadata schema/profile
schemaplugin2.jpgjpg schemaplugin2.jpg manage 109.7 K 16 Aug 2011 - 14:21 FlorenceTan Add templates
selectpacks.jpgjpg selectpacks.jpg manage 44.3 K 31 Aug 2011 - 13:57 FlorenceTan Packs available for installation
Topic revision: r24 - 26 Oct 2016, RiniAngreani
 

Current license: All material on this collaboration platform is licensed under a Creative Commons Attribution 3.0 Australia Licence (CC BY 3.0).