NOW AVAILABLE: Fedora 4.3.0—Towards Meeting Key Objectives

Mon, 2015-08-10 05:43 -- carol

Winchester, MA  On July 24, 2015 Fedora 4.3.0  was released by the Fedora team. Full release notes are included in this message and are also available on the wiki: https://wiki.duraspace.org/display/FF/Fedora+4.3.0+Release+Notes. This new version  furthers several major objectives including:

  • Moving Fedora towards a clear set of standards-based services

  • Moving Fedora towards runtime configurability

  • Improving support tooling for upgration from Fedora 3.x to 4.x

  • Improving support for participation in the semantic web

  • Fixing bugs

This release is 4.3.0 instead of 4.2.1 because there are two non-backwards compatible changes:

  • Several properties (mimetype, filename, digest, and cnd update) no longer use the fedora namespace.

  • The fcrepo-kernel and fcrepo-kernel-impl packages have been renamed to fcrepo-kernel-api and fcrepo-kernel-modeshape, respectively.

An update utility [3] has been included with the release - see the README [4] for how to run the utility to migrate the properties to their new namespaces and update the package names.

Resources

This release has been built against Java 8

  • Downloads [1]

  • Javadocs [2]

Team

 

Release Manager

Nick Ruest

 

Developers

Yinlin Chen

Kevin S. Clarke

Aaron Coburn

Esme Cowles

Osman Din

Michael Durbin

James R. Griffin III

Daniel Lamb

Sébastien Leroux

Nick Ruest

Rob Sanderson

Hélder Silva

A. Soroka

Jared Whiklo

Andrew Woods

 

Issue Reporters

Kevin S. Clarke

Aaron Coburn

Hector Correa

Stefano Cossu

Esme Cowles

Justin Coyne

Michael Durbin

James R. Griffin III

Nick Ruest

Rob Sanderson

A. Soroka

Trey Terrell

Andrew Woods

 

Updates

Strategic Direction

Fedora is moving towards a tightly defined, standards-based, set of RESTful services that are supplemented with a pattern of integrating message-driven, asynchronous services for non-core capabilities. The 4.3.0 release includes several updates that move the software in that direction.

Aligning with LDP [5] by

  • Returning a 400 response when illegal triples are not persisted

  • Advertising constraints in responses when an update request fails due to a repository constraint

  • Showing inbound references for indirectly contained resources

Tightening the core repository services by

  • Forbidding the update of resources that are not the target of the request

  • Removing the leakage of the underlying UUID to repository clients

  • Allowing "mimeType" and "filename" properties to be mutable

Moving towards full OSGi [6] deployability for runtime configuration and feature activation by

  • Ensuring modules are property packaged as OSGi bundles

  • Ensuring modules are importing and exporting correct dependencies and services

  • Creating a Fedora features.xml for dependable deployment into Apache Karaf [7]

Enhancing external services with the Apache Camel [8] integration framework by

  • Adding a "reindex" endpoint

  • Adding a "fixity" invocation service

  • Adding support to the REST API for the JSON-LD "Accept" header "profile" parameter

 

Upgrading and Migrating

A primary focus of the ongoing Fedora effort is to facilitate the upgrade/migration of Fedora3 repositories to Fedora4. To those ends, a number of improvements have been incorporated into the "migration-utils [9]" upgration utility.

  • Packaging the utility as a standalone executable application

  • Using opaque identifiers for migrated resources

  • Adding support for user-provided RDF namespace mappings

  • Providing specific mappings of Fedora3 to Fedora4 properties

  • Improving support for migrating resources with non-existent datastreams

 

Audit

After the completion of the Audit Service [10] sprints this spring, there remained two items to be completed:

  • Aligning the identifier of internal Audit events with the identifier of that same event found in the external triplestore

  • Publishing Audit events for runs of the Fixity service

The 4.3.0 release includes the resolution of the first item above.

 

Semantic Web

One of the primary goals of Fedora is to participate as a first-class member in the world of linked data. Two updates are included in the 4.3.0 release related to that goal:

  • Cleaning the Fedora ontology [11] by removing the obsolete "fedora:Blanknode" class

  • Creating a JSON-LD @context file for the Portland Common Data Model [12] ontology

 

Fedora Java Client

The Fedora Java Client library [13] was updated for this release by

  • Adding support for the creation of repository resources without a user-provided identifier, i.e. using the repository identifier minter

  • Adding support for resource "copy", "delete", and "move" operations

 

Housekeeping and Bugfixes

Numerous refactorings, bugfixes, and clean-up tasks were addressed in this release. Some of the highlights include:

  • Using more Java8 idioms

  • Returning a 403 response code when trying to create a resource under a PairTree element

  • Returning a 400 response code when trying to create a resource with an empty element, i.e. "//"

  • Updating library dependencies

  • Improving wiki and source documentation

 

References

[1]  https://wiki.duraspace.org/display/FF/Downloads

[2]  http://docs.fcrepo.org

[3]  https://github.com/fcrepo4-labs/fcrepo4-upgrade-utils/releases/tag/fcrepo4-upgrade-utils-4.3.0

[4]  https://github.com/fcrepo4-labs/fcrepo4-upgrade-utils/blob/cc77a50b3fac62f791ce2d4fa17cc6b5cfc3ea33/README.md

[5]  http://www.w3.org/TR/ldp/

[6]  http://www.osgi.org/Technology/WhatIsOSGi

[7]  http://karaf.apache.org

[8]  http://camel.apache.org

[9]  https://github.com/fcrepo4-labs/migration-utils

[10] https://wiki.duraspace.org/display/FEDORA43/Setup+Audit+Service

[11] https://github.com/fcrepo4/ontology

[12] https://github.com/duraspace/pcdm

[13] https://github.com/fcrepo4-labs/fcrepo4-client

 
preserve