-
Introduction
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.
-
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:hasModel"
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 asserting type (and optionally, attaching behaviors).
See the Content Model
Architecture document for more extensive information on
the purpose and design of the CMA.
- Fedora REST API (experimental)
The new REST
API exposes a subset of the Access and Management
interfaces as a RESTful (Representational State Transfer)
Web Service. This is an experimental interface which should
be expected to change in future versions of the Fedora
Repository. It is a less secure interface than the other
Fedora APIs and should be used with care. This interface
provides a design which may be used to replace functions
of API-A LITE and support many API-M functions. Fedora Commons
would like to thank
MediaShelf
for contributing this feature.
- Mulgara Support
The Resource
Index has been updated to support
Mulgara 2.0 as its
default triplestore. MPTStore is supported as an alternative.
- 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 and is designed to significantly increase
performance and scalability.
- Dynamic Behaviors
Objects may now be added or removed from the system dynamically
due to the transition to allowing system checks to produce 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 the new Service Definition
and Service Deployment objects 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.
- Journaling
The following improvements enable more sophisticated high
availability configurations with Fedora. See the
Journaling Guide
for more information on configuring and using these features.
- RMI Support - Journal leaders/followers can
now be configured to communicate via RMI.
- Multicast Support - Journaling now supports
multiple followers via disk, RMI, or combination.
- Read-only Mode - Formerly, when configured
as a follower, a Fedora repository would give an error
for any API-M call. Now, a follower will allow calls to
API-M methods that do not make changes to the repository.
- 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:
- Atom and Atom Zip Support
Fedora objects can now be imported and exported in a special
profile of the Atom syndication format. In addition, Fedora
now supports the import and export of Zip files containing
an Atom manifest and a set of Datastreams, included in the
Zip as regular files. For examples of these new formats, see the
demo/atom
and demo/atom-zip
directories
in the client.
- Messaging Support
Fedora can now be configured to produce JMS messages for API-M
events. Message selectors are also supported. The JMS interface
has been tested using the Apache ActiveMQ JMS provider though any
JMS provider may be used. See the
Fedora Messaging
Guide for more information.
- Saxon 8 & XSLT2 Support
The Saxon library in Fedora has been upgraded to version 8.
so the bundled Saxon service
can now make use of more advanced stylesheets.
- Bundled Tomcat Updated to 5.5.26
When choosing to use the bundled Tomcat for deployment, the
Fedora installer now uses version 5.5.26. This was formerly
version 5.0.28.
- MIME Type and FORMAT_URI Updates
Fedora's system-recognized Datastreams (DC, RELS-EXT, etc) have
been updated with consistent MIME types and FORMAT_URI values.
Notably, RELS-EXT has been updated to use MIME type
"application/rdf+xml", and all system-recognized Datastreams
have been updated to use FORMAT_URIs. For a complete list,
install Fedora 3.0 and see the DS-COMPOSITE-MODEL Datastream
of each of the system content models. These objects don't need
to be ingested; they are automatically present in every
Fedora 3.0 repository.
- Admin GUI Using Templates for CMA Objects
The out-of-date "Builders" menu in the admin client has been
replaced with a simple templating approach when creating new Content
Model objects, Service Definition objects, or Service Deployment
objects. When creating these special objects, the Admin GUI now
pre-populates them with the basic required Datastreams, which the
user can then fill out using the object editor interface.
- Basic Content Model-Based Validation
This feature provides system operators a way to validate the
integrity of part or all of their repository, based on
content models. For more information about this feature,
see the documentation for the
fedora-validate-objects
command-line utility.
- RELS-EXT Validation Relaxed
RELS-EXT Datastreams are now allowed to make self-referential
relationships. This relaxation was made to support the
"basic" system-defined content model,
fedora-system:FedoraObject-3.0
which has itself
as a content model.
- Batch Modify Utility MIME Restriction Relaxed
Former versions of the batch modify utility required that
Inline XML Datastreams had the "text/xml" MIME type. This
restriction was dropped in order to support other xml-based
MIME types, such as "application/rdf+xml".
- Basic Performance Test Suite
In order to support basic performance testing with various
environments and configurations, a suite of tests has been
included as part of the distribution. These tests can be
executed from the source distribution by running
"ant performance-tests".
-
Bug Fixes
The following bugs have been addressed for this release.
-
Known Issues
The following outstanding issues are present with this release:
- Ingest of Atom format objects (including Atom Zip) leaves
temporary files in java.io.tmpdir. When running under the
bundled Tomcat, these will be found in $CATALINA_HOME/temp.
CAUTION: While this issue persists, do not ingest very large
numbers of objects in Atom format without periodically
cleaning up the temporary directory.
- 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.
- When running Fedora on Linux with messaging enabled and
GSearch installed, if the messaging provider (ActiveMQ by
default) is run within the same Tomcat server as Fedora
and GSearch (the default configuration) an error may occur
on server shutdown which causes the Tomcat process to fail
to exit. Work-arounds are to either kill the Tomcat process
when this occurs or to run the messaging provider as a
standalone service.
- Triples in the Resource Index that have an empty literal object
are not deleted from the Resource Index when the object is
purged from the repository.
- On some Linux systems, some dialog boxes are not rendered (blank)
in the Fedora Administrative GUI. This appears to be a problem
with Beryl and Java 1.5 and earlier versions of Java 1.6. One
workaround is to set the environment variable AWT_TOOLKIT to
MToolkit (e.g. "export AWT_TOOLKIT=MToolkit"). Also see
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6429775
Please see the
Fedora Commons Bug Tracker for an up-to-date list of
outstanding bugs.
-
Installation
For instructions on installing and upgrading Fedora, please consult the Installation Guide and the Fedora Upgrade and Migration Guide.
-
Historic Release Notes
Release notes for previous versions of Fedora:
[2.2.2],
[2.2.1],
[2.2],
[2.1.1],
[2.1],
[2.1b],
[2.0],
[1.2.1],
[1.2],
[1.1.1],
[1.1],
[1.0],
[0.9],
[Beta 2],
[Alpha 1]