Currently, Alpaca ships with four event-driven components which are being run with Apache Karaf - islandora-connector-derivative - islandora-http-client - islandora-indexing-fcrepo - islandora-indexing-triplestore
This service receives requests from Drupal when it wants to create derivatives and passes that request along to a microservice in Crayfish. When it receives the derivative file back from the microservice, it passes the file back to Drupal.
This service overrides the default http client with Islandora specific configuration.
This service receives requests from Drupal in response to write operations on entities. These requests are passed along to Milliner microservice in Crayfish to convert Drupal entities into Fedora resources and communicate with Fedora (via Chullo).
This service receives requests from Drupal on indexing and deleting in order to persist/delete content in the triplestore.
Steps for developing with Alpaca
- Clone the Alpaca github repository Alpaca into /home/karaf in your vagrant vm (assuming you're developing with islandora-playbook)
git clone https://github.com/Islandora/Alpaca.git
- Modify java files as needed.
sudo ./gradlew clean build installfrom
/home/karaf/Alpacato rebuild the jar's. (This process runs the tests as well.)
- Start the karaf client- run
feature:list | grep islandorato see all the features from islandora.
feature:uninstall featurenameon each of those (inserting the name of the feature for featurename). An example might be
repo-listto see all of the repositories installed.
repo-removethe one that says islandora. It might look something like
- Add your new, local features file (that was made when you ran step 3). It should be somewhere like
/home/karaf/Alpaca/karaf/build/resources/main/features.xmland would be added with
feature:list | grep islandorashould reveal the uninstalled features.
feature:install featurenameon each of those.
If you encounter an issues, check the logs in
You may need to uncomment the line
#org.ops4j.pax.url.mvn.localRepository in the
/opt/karaf/etc/org.ops4j.pax.url.mvn.cfg file in order to be able to find the local jars