You are here

Block title
Block content

NOW AVAILABLE: Fedora 4.3.0—Towards Meeting Key Objectives

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: 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.


This release has been built against Java 8

  • Downloads [1]

  • Javadocs [2]



Release Manager

Nick Ruest



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



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



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