Skip to content
GeoNetwork repository
Java XSLT JavaScript TSQL HTML CSS Other
Branch: master
Clone or download

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github/ISSUE_TEMPLATE Update issue templates Jun 6, 2018
bin Enrich the multilingual excludes in the config-editor.xml file so tha… Mar 4, 2015
cachingxslt Update version to 3.11.0-SNAPSHOT Jan 17, 2020
code_quality API / Transfer owner. Jun 24, 2016
common jdom transitive dependency excludes (due to ill-advised jaxen pom) (#… May 19, 2020
core add proxy for UrlChecker and change UserAgent (#4709) Jun 1, 2020
csw-server jdom transitive dependency excludes (due to ill-advised jaxen pom) (#… May 19, 2020
cswtest Formatting / XML and XSD. Jun 2, 2016
docker Remove old Docker sub-project. Add reference to new. Jun 26, 2019
docs Update version to 3.11.0-SNAPSHOT Jan 17, 2020
doi Update version to 3.11.0-SNAPSHOT Jan 17, 2020
domain add proxy for UrlChecker and change UserAgent (#4709) Jun 1, 2020
es Update version to 3.11.0-SNAPSHOT Jan 17, 2020
events Transfer owner / NPE when history is ON and group owner is null (whic… Apr 27, 2020
harvesters Migrate to GeoTools 23.0 (#4488) May 4, 2020
healthmonitor API / Threads status / Add missing portal mapping Mar 27, 2020
inspire-atom Update version to 3.11.0-SNAPSHOT Jan 17, 2020
installer Update version to 3.11.0-SNAPSHOT Jan 17, 2020
integration-test Update build plugins and refactor version numbers Jun 26, 2019
jmeter Update version to 3.11.0-SNAPSHOT Jan 17, 2020
listeners Draft beans fixes to work fine when disabled: May 11, 2020
messaging Update version to 3.11.0-SNAPSHOT Jan 17, 2020
monitoring made output be standard nagios output and added option for warning ou… Jun 22, 2012
oaipmh Update version to 3.11.0-SNAPSHOT Jan 17, 2020
release Update version to 3.11.0-SNAPSHOT Jan 17, 2020
schemas-test Update version to 3.11.0-SNAPSHOT Jan 17, 2020
schemas Fix indexing errors with multiple titles May 29, 2020
sde Update version to 3.11.0-SNAPSHOT Jan 17, 2020
services fix spaces-in-url keyword encoding (#4733) May 29, 2020
slave Update version to 3.11.0-SNAPSHOT Jan 17, 2020
software_development Fix broken Software Development links from 3.8.x to trunk (#4609) Apr 17, 2020
transifex add some translations for foratter Jan 30, 2015
web-ui-docs Master is now 3.9.x. Aug 26, 2019
web-ui Improved way of displaying unknown related type Jun 5, 2020
web add proxy for UrlChecker and change UserAgent (#4709) Jun 1, 2020
workers Migrate to GeoTools 23.0 (#4488) May 4, 2020
wro4j Update version to 3.11.0-SNAPSHOT Jan 17, 2020
.editorconfig Add .editorconfig. (#1517) Apr 11, 2016
.gitattributes add some binary configuration for images and other types to prevent c… Feb 22, 2014
.gitignore Address glitch with duplicate or missing logfiles (#4432) Feb 11, 2020
.gitmodules Add iso19115-3.2018 as a mainstream schema Jun 27, 2019
.travis.yml Set Trusty as distribution for Travis Aug 5, 2019
CONTRIBUTING.md Create CONTRIBUTING.md Jun 15, 2017
LICENSE There was no explicit LICENSE file Nov 30, 2017
README.md Small change to readme Dec 18, 2019
add-schema.sh add-schema.sh : Update formatting of the lines being added to the pom… May 26, 2020
eclipse-import-existing-projects.png update to have better formatting Oct 28, 2013
git-all fixed git-all script Jun 14, 2012
pom.xml Proxy / Limit to URL host registered in records. (#4712) May 27, 2020
resetReleaseVersions.sh Scripts improvements provided by Jeroen: OS check, parameter input fo… Jan 13, 2011
transifex-localization-files.json add transifex configuration and commandline tool Jun 6, 2014
update-version.sh Release / Version number may contain a x when doing a major version. Jan 22, 2019
updateBranchVersions.sh fixed bug running these scripts on darwin11.0 machines Jun 21, 2012
updateReleaseVersions.sh fixed bug running these scripts on darwin11.0 machines Jun 21, 2012

README.md

Build Health

Build Status

Features

  • Immediate search access to local and distributed geospatial catalogues
  • Uploading and downloading of data, graphics, documents, pdf files and any other content type
  • An interactive Web Map Viewer to combine Web Map Services from distributed servers around the world
  • Online editing of metadata with a powerful template system
  • Scheduled harvesting and synchronization of metadata between distributed catalogs
  • Support for OGC-CSW 2.0.2 ISO Profile, OAI-PMH, SRU protocols
  • Fine-grained access control with group and user management
  • Multi-lingual user interface

Documentation

User documentation is in the docs submodule in the current repository and is compiled into html pages during a release for publishing on a website.

Developer documentation is also in the docs submodule but is being migrated out of that project into the Readme files in each module in the project. General documentation for the project as a whole is in this Readme and module specific documentation can be found in each module (assuming there is module specific documentation required).

Software Development

Instructions for setting up a development environment/building Geonetwork/compiling user documentation/making a release see: Software Development Documentation

Testing

With regards to testing Geonetwork is a standard Java project and primarily depends on JUnit for testing. However there is a very important issue to consider when writing JUnit tests in Geonetwork and that is the separation between unit tests and integration tests

  • Unit Tests - In Geonetwork unit tests should be very very quick to execute and not start up any subsystems of the application in order to keep the execution time of the unit tests very short. Integration tests do not require super classes and any assistance methods can be static imports, for example statically importing org.junit.Assert or org.junit.Assume or org.fao.geonet.Assert.
  • Integration Tests - Integration Test typically start much or all of Geonetwork as part of the test and will take longer to run than a unit test. However, even though the tests take longer they should still be implemented in such a way to be as efficient as possible. Starting Geonetwork in a way that isolates each integration test from each other integration test is non-trivial. Because of this there are abstract super classes to assist with this. Many modules have module specific Abstract classes. For example at the time that this is being written domain, core, harvesters and services modules all have module specific super classes that need to be used. (harvesting has 2 superclasses depending on what is to be tested.) The easiest way to learn how to implement an integration test is to search for other integration tests in the same module as the class you want to test. The following list provides a few tips:
    • IMPORTANT: All Integrations tests must end in IntegrationTest. The build system assumes all tests ending in IntegrationTest is an integration test and runs them in a build phase after unit tests. All other tests are assumed to be unit tests.
    • Prefer unit tests over Integration Tests because they are faster.
    • Search the current module for IntegrationTest to find tests to model your integration test against
    • This you might want integration tests for are:
      • Services: If the service already exists and you quick need to write a test to debug/fix its behaviour. If you are writing a new service it is better to use Mockito to mock the dependencies of the service so the test is a unit test.
      • Harvesters
      • A behaviour that crosses much of the full system

org.fao.geonet.utils.GeonetHttpRequestFactory: When making Http requests you should use org.fao.geonet.utils.GeonetHttpRequestFactory instead of directly using HttpClient. This is because there are mock instances of org.fao.geonet.utils.GeonetHttpRequestFactory that can be used to mock responses when performing tests.

You can’t perform that action at this time.