== Apache OAIPMH Example

This example shows how to use the consumer and producer component to harvest data from a repository using the OAIPMH protocol. The repository to be harvested is ArXiv, which contains preprint information for scientific articles and is widely known on the web. The example first queries the collections available in the repository. From the available collections, it filters those that are identified as "Mathematics" and from their identifier it extracts the titles of the publications contained in this collection.

== How to run

You can run this example using

    mvn compile exec:java

== More information about the camel-oaipmh Component.

You can find more information about camel-OAIPMH at the website: https://github.com/apache/camel/blob/master/components/camel-oaipmh/src/main/docs/oaipmh-dataformat.adoc

== More information about OAIPMH protocol

You can find more information about OAIPMH protocol at the website: http://www.openarchives.org/OAI/openarchivesprotocol.html

== More information about Apache Camel

You can find more information about Apache Camel at the website: http://camel.apache.org/

=== Help and contributions

If you hit any problem using Camel or have some feedback, then please
https://camel.apache.org/support.html[let us know].

We also love contributors, so
https://camel.apache.org/contributing.html[get involved] :-)

The Camel riders!
