Legend import
Index
Main
Insight
Design
Data storage
Operations
Legend import
Concepts
Overview
Publications
Annotations
News
Using Insight
Configuring

Abstract

This document explains how Insight imports content from Legend server. It focuses on collaboration between abstract classes, which attempt to hide WebDAV protocol, or file-based storage system.
It also illustrates how Insight Model modification is handled without any lock.

Classes
Model classes

See publications.

fr.paris5.shaman.insight.operation.CreatePublicationOperation

See javadoc for this class.

This class defines the API for accessing Insight feature of Publication creation. It completely hides content storage means, and metadata representation.

fr.paris5.shaman.insight.content package

This package is accessed by CreatePublicationOperation. It relies on the assumption that content (as binary resources) is stored separately from metadata.

See javadoc for this package.

LegendConnector connects to a Legend server, and pulls LegendResources from it.

ImportParameters is a set of parameters. It avoids carrying a great number of parameters in methods.

LegendResources is a set of resources, associating path information, and an input stream.

ImportedResources represent resources taken out from Legend, with an eventual error flag on each.

BLOBStore holds content resources.

StoreFeeder takes care of the details when pulling content from Legend to BLOBStore.

Scenario : successful import
Publication model creation

Publication Id creation is a synchronized method of InsightModel. This guarantees that any new PublicationModel instance will have a unique Id. If import fails, the Id is wasted.

Legend resources enumeration

Legend resources are enumerated before any further operation.

Note The case where Legend content structure changes during import is not handled. A later version of Shaman could take advantage of WebDAV locking feature.

Store Feeder instantiation

Store feeding

Fragment creation

Fragments are created from ImportedResources information.
The commit() call at the make the PublicationModel part of the InsightModel.




Copyright 2002 Laurent Caillette and l'Université René Descartes, Paris 5.
All rights reserved.