Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Backport

...

of

...

DSpace

...

2

...

Storage

...

Services

...

API

...

for

...

DSpace

...

1.x

...

Student:

...

Andrius

...

Blažinskas

...


Mentor:

...

Mark

...

Diggory

...

Abstract

Excerpt

DSpace 2.0

...

storage

...

mechanism

...

provides

...

convenient

...

way

...

to

...

store

...

DSpace

...

contents

...

in

...

various

...

storage

...

solutions.

...

It

...

is

...

based

...

on

...

set

...

of

...

interfaces

...

for

...

which

...

various

...

implementations

...

are

...

possible

...

and

...

some

...

beta

...

releases

...

already

...

exist

...

(Jackrabbit,

...

Fedora,

...

etc).

...

DSpace

...

2.0

...

is

...

in

...

its

...

early

...

stages

...

of

...

development

...

and

...

DSpace

...

1.x

...

releases

...

yet

...

can

...

not

...

take

...

advantage

...

of

...

this

...

new

...

mechanism.

...

To

...

fix

...

this,

...

it

...

is

...

necessary

...

to

...

port

...

DSpace

...

2.0

...

storage

...

interfaces

...

to

...

1.x.

...

I

...

propose

...

implementing

...

this

...

backport.

...

Andrius

...

Blažinskas

Relevant modules

Module name

Description/Comments

Source code

dspace-api

DSpace API

http://scm.dspace.org/svn/repo/dspace/trunk/dspace-api

...

dspace-xmlui

...

XMLUI (Manakin)

...

...

Image Added

storage-api

...

Yet

...

non

...

existant

...

module.

...

Will

...

constitute

...

of

...

DSpace

...

2 storage interfaces.

...

Will

...

be

...

referenced

...

from

...

dspace-api

...

(dspace-xmlui?).

...

Depending

...

on

...

backporting

...

strategy

...

used,

...

this

...

module

...

may

...

also

...

include

...

additional

...

storage

...

related

...

classes.

...

Currently

...

parts

...

of

...

it

...

(interfaces)

...

located

...

at

...

...

Image Added

(/mixins)

...

storage-default

...

Yet

...

non

...

existant

...

module.

...

Module

...

will

...

implement

...

storage-api

...

interfaces.

...

Will

...

probably

...

contain

...

classes

...

from

...

dspace-api,

...

such

...

as:

...

DatabaseManager,

...

TableRow,

...

TableRowIterator,

...

BitstreamStorageManager

...

and

...

other

...

code

...

.

Some

...

of

...

the

...

affected

...

classes

...

located

...

at

...

...

Development plan

Initial plan. Will change.

...

  • Analysis

...

  • of

...

  • current

...

  • situation

...

  • in

...

  • dspace-api

...

  • (identifying

...

  • storage

...

  • related

...

  • Java

...

  • classes

...

  • and

...

  • references

...

  • to

...

  • them)

...

  • Iterated

...

  • code

...

  • refactoring

...

  • and

...

  • development:

...

    1. Identify code fragments which potentialy constitute particular storage-service

...

    1. method

...

    1. in

...

    1. dspace-api

...

    1. Move these code fragments to storage-default

...

    1. module

...

    1. under

...

    1. particular

...

    1. storage-service

...

    1. interface

...

    1. method

...

    1. name
    2. Retain the relation of dspace-api

...

    1. with

...

    1. storage-default

...

    1. from

...

    1. newly

...

    1. created

...

    1. method

...

    1. perspective

...

    1. through

...

    1. use

...

    1. of

...

    1. storage-api

...

    1. interfaces

...

    1. and

...

    1. perform

...

    1. all

...

    1. neccesary

...

    1. tasks

...

    1. to

...

    1. ensure

...

    1. separated

...

    1. code

...

    1. interoperability

...

  • Thorough

...

  • testing

...

  • of

...

  • separation,

...

  • whether

...

  • the

...

  • system

...

  • work

...

  • the

...

  • same

...

  • way

...

  • it

...

  • worked

...

  • before

...

  • backport

...

  • (unit

...

  • tests

...

  • could

...

  • be

...

  • helpfull

...

  • here)

...

  • dspace-xmlui

...

  • relation

...

  • to

...

  • storage-service

...

  • interfaces

...

  • ...

...

List

...

of

...

storage-api

...

classes/methods

...

Classes

...

and

...

methods

...

to

...

be

...

ported

...

.

...

List

...

will

...

evolve.

...

Class

Method

Description/Comments

...

StorageBase

boolean exists(String

...

entityId)

...

 

StorageEntity getEntity(String

...

entityId)

...

 

List<StorageEntity> getEntities(String

...

location)

...

 

List<String> getEntityLocations(String

...

entityId)

...

StorageWriteable

String createEntity(StorageEntity

...

storageEntity)

...

 

boolean deleteEntity(String

...

entityId)

...

 

void saveMetaProperties(String

...

entityId,

...

StorageProperty...

...

properties)

...

 

void removeMetaProperties(String

...

entityId,

...

String...

...

names)

...

 

boolean addEntityLocation(String

...

entityId,

...

String

...

location)

...

 

void removeEntityLocation(String

...

entityId,

...

String

...

location)

...

StorageVersionable

List<StorageVersion> getVersions(String

...

reference)

...

 

StorageEntity getVersion(String

...

reference,

...

String

...

versionName)

...

StorageCopyable

String copyEntity(String

...

reference,

...

String

...

path,

...

boolean

...

recursive,

...

String

...

newName)

...

StorageVersionableWriteable

StorageEntity restoreVersion(String

...

reference,

...

String

...

versionName,

...

String

...

label)

...

 

void setVersionLabel(String

...

reference,

...

String

...

versionName,

...

String

...

label)

...

StorageSearchable

Is this one needed?

SimpleStorageService

Is this one needed?

Any others?

 

 

References

GSOC 2010 proposal: Backport of DSpace 2 Storage Services API for DSpace 1.x, http://ab.labt.lt/gsoc/2010/dspace/proposal1.html

...

Image Added