Fedora 3.0 is a major release of Fedora that
introduces the Content Model Architecture among several
other significant features, listed below. Several bugs
have also been addressed with this release.
NOTICE: This is a Beta release meant to solicit
feedback from the
Fedora user community, and is not suitable for production.
For the latest production-quality release, please
see the Developers Section of the
Fedora Commons website.
New Features and Enhancements
The following features and enhancements have been
included in this release.
Introduction of the Content Model Architecture
The Content Model Architecture, or CMA, has added
a new system-recognized Fedora Object type, the
Content Model Object. Among the improvements this
architectural change provides is that operations
or behaviors are now attached to objects at the
content model level. The traditional "disseminator"
has been replaced by the CMA functionality.
Data objects assert their membership to a content
model by adding a "fedora-model:hasContentModel"
statement to the RELS-EXT datastream. This replaces the old
system object property "fedora-model:contentModel".
The demo objects have been updated to reflect this new
way of attaching behaviors.
See the Content Model
Architecture document for more extensive information on
the purpose and design of the CMA.
Fedora REST API
The new REST
API exposes a subset of the Access and Management
interfaces as a RESTful (Representational State Transfer)
Web Service. Fedora Commons would like to thank
MediaShelf
for contributing this feature.
Mulgara Support
The Resource
Index has been updated to support
Mulgara 1.1.1 as its
default triplestore. Additionally, the Resource Index now
supports the use of Mulgara as a remote server.
Migration Utilities
The 3.0 migration utilities provide an upgrade path
from prior versions of Fedora. The utilities support
converting old disseminators to use the CMA and upgrading
objects to FOXML 1.1. For more information on these
utilities, see the Fedora
Migration Guide.
Relational Index Simplification
With the CMA, the most complex of Fedora's Database tables
are no longer necessary. This reduces the complexity
of the code while also reducing the amount of time Fedora
needs to add, change, and remove information in the database.
It also significantly reduces the storage space requirements
for the database.
Dynamic Behaviors
Objects may added or removed dynamically from the system, moving
system checks into runtime errors.
With previous releases of Fedora, Behavior Definitions
had to be ingested first, followed by Behavior Mechanisms,
followed by Data Objects. Now, Fedora allows the ingest
(and purge) of objects in any order, regardless of type.
In addition, system-recognized datastreams for Behavior
Mechanisms and Behavior Defintions can now be edited in-place.
Error Reporting Improvements
Fedora now sends correct HTTP status codes and more
user-friendly messages when API-A-LITE, API-M-LITE, and
search-related errors occur. With the introduction of the
CMA, these error messages also provide better detail
on the reason a request failed
(missing object, datastream, etc.).
Multiple Owners Per Digital Object
By specifying a comma-separated list, you can now specify
multiple owners as the "ownerId" of Fedora Objects.
The list of owners can be provided as input to your
XACML policies to support more flexible policy enforcement.
See the example policies for more information.
Java 6 Compatibility
Prior versions of Fedora would run with Java 1.5 or 1.6,
but compiling was restricted to JDK 1.5. Now Fedora
can be compiled with JDK 1.6 as well.
Relationships API
The Fedora
Management interface has been extended to support
the per-object assertion and retrieval of
user-defined relationships in the RELS-EXT datastream.
The new relationships API methods are addRelationship,
getRelationships,
and purgeRelationship.
The Resource Index does not need to be enabled in order
to use these methods.
Fedora Object XML Schemas Revised
With the introduction of the CMA, the FOXML and Fedora METS
Extension schemas have been versioned to 1.1. This was
primarily a simplification to remove disseminator-related
elements. For a complete list of changes, see the changelog
in the associated schema documents:
Upcoming Enhancements
The following enhancements are planned for completion
in the final release of Fedora 3.0:
JMS Messaging - Integrates JMS messaging for sending notification of important events
Message Update for GSearch - Provides a reference implementation for using JMS notifications to update search engines
On-line Validation Testing - Hooks into the runtime error system to provide more meaningful error reports include conformance to content models and referential integrity checks
Off-line Validation Testing - Provides system operators a way to validate the integrity of part or all of their repository
Updated Administrative Client - Revises to support Content Model Architecture enhancements
Updated OAI Provider - Revises the OAI Provider to take advantage of the Content Model Architecture
Updated Utilities - Revises all the Fedora-provided utilities for integrate properly with the Content Model Architecture
Bug Fixes
The following bugs have been addressed for this release.
Bug #1697137: fedora.war deployment fails in JBoss AS with OnlyOnceError
Bug #1701766: Clean up prompts/messages for "other" servlet container
Bug #1710801: HTTP Requests include bad HTTP basic Auth
Bug #1714089: HTTP Error Codes are not being returned correctly.
Bug #1716106: demo soapclient fails to compile/run
Bug #1716636: addDatastream allows invalid values for checksumType
Bug #1773195: Incorrect XACML demo policies involving state
Bug #1775374: object editor dirty flag being set when no changes have been
Bug #1785608: SQL rebuild sometimes fails to populate pidGen correctly
Bug #1832564: XSD dateTimes can have incorrect fractional seconds
Bug #1835449: Object-specific POLICY datastream ignored when using Oracle
Bug #1838750: improper handling of default namespace in batchModify
Bug #1844803: bug in DefaultExternalContentManager
Bug #1848092: Incorrect handling of dates before 1CE
Bug #1848095: RelsExtValidator rejects valid UTC dateTimes
Known Issues
The following outstanding issues are present with this Beta release:
System documentation has not been fully updated to reflect 3.0
changes.
Services (including OAI Provider) do not work with Fedora
3.0 Beta 1. This will be done for 3.0 Final.
Fedora Administrative GUI does not automatically populate
RELS-EXT for BMech objects. It should create a relationship,
fedora-model:hasBDef in order for behaviors to work.
For now, this must be done manually.
Fedora Administrative GUI has button / tab overlaying
problem after creating a new datastream. When this occurs,
you can click the "New Datastream" tab, then the "RELS-EXT"
tab in order to restore normal operation.