README.md 5.06 KB
Newer Older
acoburn's avatar
acoburn committed
1
2
Amherst College Repository Services
===================================
acoburn's avatar
acoburn committed
3

acoburn's avatar
acoburn committed
4
[![Build Status](https://travis-ci.org/acoburn/repository-extension-services.png?branch=master)](https://travis-ci.org/acoburn/repository-extension-services)
acoburn's avatar
acoburn committed
5
[![Maven Central](https://maven-badges.herokuapp.com/maven-central/edu.amherst.acdc/acrepo-karaf/badge.svg)](https://maven-badges.herokuapp.com/maven-central/edu.amherst.acdc/acrepo-karaf/)
acoburn's avatar
acoburn committed
6

acoburn's avatar
acoburn committed
7
This is a collection of OSGi services that extend the functionality of a [Fedora4](https://wiki.duraspace.org/display/FF/Fedora+Repository+Home) repository.
acoburn's avatar
acoburn committed
8

9
10
11
12
Extensions
----------

These modules extend the behavior of Fedora resources. Specifically, they connect Fedora Resources to specific services
acoburn's avatar
acoburn committed
13
14
by making available a REST-based HTTP interface. The intention is that these extensions will be compatible with the
[Fedora API Extension](https://wiki.duraspace.org/display/FF/Design+-+API+Extension+Architecture) architecture.
acoburn's avatar
acoburn committed
15

16
17
18
19
20
21
* [`acrepo-exts-fits`](acrepo-exts-fits): This service will return FITS information associated with a Fedora Binary, in XML format
* [`acrepo-exts-image`](acrepo-exts-image): An image manipulation service
* [`acrepo-exts-jsonld`](acrepo-exts-jsonld): This module exposes an HTTP endpoint for creating compact JSON-LD documents from a Fedora repository using a pluggable context document
* [`acrepo-exts-pcdm`](acrepo-exts-pcdm): This constructs a complete PCDM object graph for Fedora resources
* [`acrepo-exts-serialize-xml`](acrepo-exts-serialize-xml): This service translates Fedora RDF documents into MODS/XML or DC/XML
* [`acrepo-exts-template`](acrepo-exts-template): A module for converting Fedora resources into some other form, using a [mustache](https://mustache.github.io/) template.
22
23
24
25
26
27

Services
--------

These modules provide particular services, independent of Fedora Resources.

28
29
30
31
32
33
34
* [`acrepo-services-activemq`](acrepo-services-activemq): This service creates a ActiveMQ connection for other modules to use
* [`acrepo-services-inference`](acrepo-services-inference): An OSGi-based structural typing service using owl inference
* [`acrepo-services-jsonld`](acrepo-services-jsonld): This service creates expanded or compact JSON-LD representations of input documents
* [`acrepo-services-ldcache`](acrepo-services-ldcache): This service dereferences and caches URIs, retrieving the `object` of particular triples on demand
* [`acrepo-services-ldcache-file`](acrepo-services-ldcache-file): A file-based backend for the `acrepo-services-ldcache` service
* [`acrepo-services-mint`](acrepo-services-mint): This mints random (public) URIs for use with Fedora resources
* [`acrepo-services-pcdm`](acrepo-services-pcdm): This makes it easy to work with PCDM objects
35
36
37
38
39
40

Connectors
----------

These modules listen to repository events and react accordingly.

41
42
43
* [`acrepo-connector-broadcast`](acrepo-connector-broadcast): ActiveMQ Message Broadcast Service:  This rebroadcasts messages from one queue/topic to every queue/topic in a specified list
* [`acrepo-connector-idiomatic`](acrepo-connector-idiomatic): Id Mapping Service: This maps a public ID to a (internal and typically much longer) Fedora URI
* [`acrepo-connector-idiomatic-pgsql`](acrepo-connector-idiomatic-pgsql): Id Mapping Service Database: This exposes a Postgres datastore for use with the Id Mapping service
44
45
46
47
48
49
50

Other OSGi Features
-------------------

In addition to what is listed above, a number of Karaf features are made available to make it easier to install
sets of related bundles in an OSGi container.

acoburn's avatar
acoburn committed
51
52
53
54
* `acrepo-libs-jackson`: The [Jackson](http://wiki.fasterxml.com/JacksonHome) JSON libraries
* `acrepo-libs-jena`: The [Jena 3.x](http://jena.apache.org/) libraries
* `acrepo-libs-jsonld`: The [JSON-LD](https://github.com/jsonld-java/jsonld-java) libraries
* `acrepo-libs-marmotta`: The [Marmotta](http://marmotta.apache.org) libraries
acoburn's avatar
acoburn committed
55
* `acrepo-libs-sesame`: The [Sesame 2.x](http://rdf4j.org/) libraries
acoburn's avatar
acoburn committed
56

acoburn's avatar
acoburn committed
57
58
Building
--------
acoburn's avatar
acoburn committed
59

60
To build, test and install this project use either
acoburn's avatar
acoburn committed
61

62
63
64
65
66
    gradle check install

or (in the top level directory):

    ./gradlew check install
acoburn's avatar
acoburn committed
67

acoburn's avatar
acoburn committed
68
69
Deploying in OSGi
-----------------
acoburn's avatar
acoburn committed
70
71

Each of these projects can be deployed in an OSGi container. For example using
acoburn's avatar
acoburn committed
72
[Apache Karaf](http://karaf.apache.org) version 4.x and above, you can run the following
acoburn's avatar
acoburn committed
73
74
75
command from its shell:

    feature:repo-add mvn:edu.amherst.acdc/acrepo-karaf/LATEST/xml/features
acoburn's avatar
acoburn committed
76

77
    feature:install acrepo-connector-broadcast
78
    feature:install acrepo-connector-idiomatic
79
    feature:install acrepo-connector-idiomatic-pgsql
acoburn's avatar
acoburn committed
80

81
    feature:install acrepo-exts-fits
82
    feature:install acrepo-exts-image
83
    feature:install acrepo-exts-jsonld
acoburn's avatar
acoburn committed
84
    feature:install acrepo-exts-pcdm
85
    feature:install acrepo-exts-serialize-xml
86
    feature:install acrepo-exts-template
acoburn's avatar
acoburn committed
87

88
    feature:install acrepo-services-inference
89
    feature:install acrepo-services-jsonld
90
    feature:install acrepo-services-ldcache
91
    feature:install acrepo-services-ldcache-file
92
    feature:install acrepo-services-mint
acoburn's avatar
acoburn committed
93
    feature:install acrepo-services-pcdm
acoburn's avatar
acoburn committed
94

acoburn's avatar
acoburn committed
95
96
More information
----------------
acoburn's avatar
acoburn committed
97
98
99

For more information, please visit https://acdc.amherst.edu or https://acdc.amherst.edu/wiki/