Skip to content

Instantly share code, notes, and snippets.

@danhorst
Created August 10, 2010 18:48
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save danhorst/517766 to your computer and use it in GitHub Desktop.
Save danhorst/517766 to your computer and use it in GitHub Desktop.

Hydrangea

Hydrangea & the Hydra Framework

Introduction and Installation Instructions

Hydrangea is the reference implementation of the Hydra framework, which builds on Blacklight, ActiveFedora and Ruby on Rails

For a more thorough overview of the Hydra framework, see HYDRA_OVERVIEW.textile

Prerequisites

Hydrangea requires Ruby version 1.8.7. It will not run on Ruby 1.8.6. If you need to upgrade Ruby, consider using RVM to do so, especially in your development environment.

Other Requirements:

  • git
  • rubygems
  • rake (gem install rake)
  • Rails 2.3.5 (gem install -v=2.3.5 rails)

Basic installation & Running RSpec tests

This is based on Matt Zumwalt’s Hydra Stack: Getting Started notes from LibDevConX in March 2010.

Clone the git repository from github and pull the copy of jetty

git clone git://github.com/projecthydra/hydrangea.git
cd hydrangea
git submodule init
git submodule update

Note: It’s OK if ‘git submodule init’ returns ‘No submodule mapping found in .gitmodules for path ’vendor/plugins/blacklight/data’

This will pull all of the code. The ‘git submodule update’ command is pulling a copy of hydra-jetty into the jetty directory within hydrangea.

You are now in your working copy of hydrangea. Use rake to install the gem dependencies (this might not work perfectly – we’re still preparing this code for distribution).

rake gems:install

Review the output from running gems:install and make sure that there were no errors. Depending on what operating system you’re on, you might have to install library dependencies in order for all of the gems to install successfully. In particular, nokogiri and sqlite3 require native C-libraries such as libxml2, libxslt and libsqlite3.

Now install the development dependencies (not required for runtime, but required to run tests)

gem install rcov rspec rspec-rails cucumber cucumber-rails webrat database_cleaner ruby-debug mocha

Run your database migrations (only need to do this once after cloning the git repository).


rake db:migrate

Now run the bundled copy of Jetty, which has Fedora and Solr installed & configured to work with Hydra.

First, copy hydrangea’s solr configs into the hydra-jetty solr cores. (You only need to do this when you first clone the jetty submodule and when Hydrangea’s solr configurations change)


cp solr/conf/* jetty/solr/development-core/conf/
cp solr/conf/* jetty/solr/test-core/conf/

Then start jetty:

cd jetty 
java -jar start.jar

… leave that running and open a new terminal window. cd to wherever you checked out hydrangea

Run the Rspec tests to make sure everything is working properly.


{cd to wherever you cloned hydrangea, then…}
rake hydra:import_fixture pid=hydrangea:fixture_mods_article1
rake hydra:import_fixture pid=hydrangea:fixture_mods_article3
rake hydra:import_fixture pid=hydrangea:fixture_file_asset1
rake spec

Now start rails using the WEBrick web server

script/server

If all goes well, you will be able to see an empty copy of hydrangea at http://localhost:3000

To get cucumber features to pass

You must ingest some more fixtures:

  rake hydra:import_fixture pid=hydrangea:fixture_mods_article2
  rake hydra:import_fixture pid=hydrangea:fixture_uploaded_svg1
  rake hydra:import_fixture pid=hydrangea:fixture_archivist_only_mods_article

Then run your tests.

  rake cucumber

Acknowledgements

Design & Strategic Contributions

The Hydra Framework would not exist without the extensive design effort undertaken by representatives of repository initiatives from Stanford University, University of Virginia and University of Hull. Contributors to that effort include Tom Cramer, Lynn McRae, Martha Sites, Richard Green, and Chris Awre.

Thorny Staples from Fedora Commons & DuraSpace deserves special thanks for putting all of these people in the same room together.

Technical Contributions

Technical Lead: Matt Zumwalt (MediaShelf)
User Interface & User Experience Designer: Jennifer Vine

Developers:
Eddie Shin, Jessie Keck, Christopher Jesuderai, McClain Looney, Luke Francl, Dan Weinand, Ken Earley, Paul Wenzel

Testers:
Charles Kerns, Bess Sadler, Richard Green, Tom Lauderman, Mark Matienzo

Additional thanks

Project Blacklight and the Blacklight contributors
Willy Mene, who created one of the “Hydra head” prototypes on which Hydrangea is based.
Chris Fitzpatrick & Douglas Kim, who created the first version of Solrizer and then thoroughly exercised it.
Naomi Dushay, whose knowledge of solr is impeccable.
Stu Snydman, project manager for the SALT Hydra prototype.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment