JA-SIG 2008 : My notes on the workshop “Upgrading your DSpace Installation from 1.4 to 1.5″

By redhotikalegs

Workshop presented by Mark Diggory.

Check out his powerpoint at DSpace 1.5 Upgrade

Mark and Scott are working really hard trying to clean 1.5. Mark’s advice is to wait until 1.5.1. Build problems being found already with 1.5.

The new system represents a code reorganization.

  • new maven build system
  • new services
  • new configurability

Separates java into functional units api, oai, jsp-ui

Reorged web ap svc, oai, jsp -ui

Added sword, lni, xml-ui new web app svcs

Allows for better customization (overlays) : you can keep customizations very separate from code base

lni, sword, oai, jsp-ui, xml-ui will become 3rd party endorsed. diggory looking at srw from oclc.

1. dspace 1.4: config files, web app resources, dependency libraries, java source files.

2. 1.5: src folder : ant build & maven assembly descriptors. java source split into upper level folders. jsps same and moved into webapp folders.

Dependency folders went away. Maven is a software project tool that enforces a set of conventions on project.

Dev tools like ant and make allowed too much flexibility in previous versions… creates unpredictability in build tools.

Maven

  • convention driven
  • build management
  • dependency resolution: manages third party dependencies
  • build modularization

Maven complexities

  • learning curve
  • distributed configuration
  • requires network internet access
  • much larger project than ant, many many sub projects and plugins
  • many more organizations working on it, with some competition. documentation on plugins requires a lot of research.

Release a project and other artifacts. creates dspace-api, becomes dspace=api.jar, goes to maven central repository, build downloads as a dependency. You build dspace with your custom changes, it joins with dspace 2.5 project pom.xml. You get custom dspace installer via ant

pom.xml=project module, with info on version of postgres, details of dspace-parent, version of dspace, etc. parent can be treated as remote artifact, does not have to be on same hard drive.

New services in 1.5/dspace/modules:

  • customizable modules
  • original jsp-ui
  • lni
  • oai (oai-pmh)
  • sword
  • manakin (xml-ui)

should not have to customize ../src/ files

compile against java 5. dspace is dependent on java 5.

Each maven project

  • adheres to conventions
  • /src/main/webapp
  • src/main/resources
  • src/main/java

Each module an overlay, each replaces the original from webapp, keeps customizations out of original source. target folder, src folder

New configurability

  • stackable authentication
  • configurable browse
  • configurable submission
  • separate new module configurations
  • this process requires better documentation, people havign problems with this.

mit libraries set up cvs and preserved in repository and deployed against test servers. Everytime committers changed a file Mark could diff it.

dspace.cfg file completely reorganized. broke into modules. Doing a merge between this and 1.4 dspace.cfg is challenging. Diggory went through 1.4, isolated all the changed parameters, then went to 1.5 and compared against each associated file in 1.5. tried to maintain as close to 1.4 as possible, “even if it was just whitespace”… Mark feels the next major release of dspace may be even more different.

Mark does not recommend upgrade approach in original documentation.

Authentication stack will not use because called authenticate.AuthenticationManager instead of .eperson

Dspace 1.5 allows you to sort browse options

Impact

  • new prerequisite-Maven
  • code reorg
  • database schema changes
  • dspace.cfg changes

Mark planned for upgrade at least 2 months.

  • backup everything often
  • trackcustomizations
  • map migration path
  • ask quesions
  • practice, practice, practice

MIT backs up postgres and assetstores in subversion repositories nightly

  • /usr/bin/pg_dump –create –oids \ -U postgres -f backup.sql dspace (check pdf of powerpoint slide) with a restoration script
  • assetstore.dir,history.dir, report.dir, log.dir, search.dir,bin, config. etc, lib, handle-server, webapps

Upgrade process

  • build w maven
  • install w ant
  • upgrade database
  • rebuild search/browse

Try using eclipse – works on user interface look sees. works w/ maven.

dspace 1.4 to 1.5 conversion

  • Copied modified jsps to dspace/modules/jspui/src/main/webapp/layout
  • Bring over dspace.cfg changes parameter at a time. do not follow documentation recommendation and just copy over.
  • for building w/ maven it is better to be in the specific directory. so change to /dspace1.5/dspace b4 building

maven

  • has a dependency management module that tells you what versions of what files should be used. good.
  • maven does a build plan that can be previewed.

Need to shut down tomcat before modifying database because tomcat retains connections to the db.

Includes backup scripts for various directories, webapps, lib, etc. Diggory added config. He configures tomcat to put backup files in specific directory..

news now is xml using dri

Error log issues :

  • log4j logs purpose is is for error analysis. Statistics module is now scraping these logs, but Diggory feels this is not a good approach.
  • Attempts to separate user activity logs from system/development activity logs. dspace.log has too much information in it, hard to debug when you are bombarded with all the user activity. They are developing “consumer” logs to reflect user activities and separate from error reporting.

Input-forms.xml, dstat.cfg have not changed much.

Crosswalks do sword-related stuff.

Mark ran psql -U dspace /dspace/etc/database_schema14-15.sql dspace

8080/jspui – lets you access old interface

8080/xmlui – lets you access manakin interface

pom.xml lists out dependencies.

ItemTag.java altered to prevent non-MIT users to print materials. Mark not too happy with this soln, but…

Try dspace community irc chat for info.

Next 1.5 release due in about a month. Don’t upgrade yet. Docs have to be improved, bugs stabilized.

Leave a Reply