what and why DSpace AddOn and Component Management System

Similar documents
Configurable Submission System For DSpace

Making DSpace Your Own

The DSpace Course. Module - Look & Feel Customisation

Directory structure and development environment set up

SAS AppDev Studio TM 3.4 Eclipse Plug-ins. Migration Guide

An Integrated Approach to Managing Windchill Customizations. Todd Baltes Lead PLM Technical Architect SRAM

SAS 9.2 Foundation Services. Administrator s Guide

New Release for Rapid Application Development

SAS 9.4 Foundation Services: Administrator s Guide

ByggSøk plan Project Structure And Build Process

Embedding Moskito-WebUI Into Your Application

Chapter 1 GETTING STARTED. SYS-ED/ Computer Education Techniques, Inc.

KonaKart Portlet Installation for Liferay. 2 nd January DS Data Systems (UK) Ltd., 9 Little Meadow Loughton, Milton Keynes Bucks MK5 8EH UK

Site Administrator Help

The window looks like this. Your user name is a unique identifier that you will use to login Your password is used for authentication when you login.

How To Guide Using and Developing Custom Phases in IKAN ALM

Building Web Applications with SAS AppDev Studio TM 3.0

Introducing Manakin: Overview & Architecture. Scott Phillips, Cody Green, Alexey Maslov, Adam Mikeal, and John Leggett

Test On Line: reusing SAS code in WEB applications Author: Carlo Ramella TXT e-solutions

SUN Enterprise Development with iplanet Application Server

SOFTWARE DEVELOPMENT SERVICES WEB APPLICATION PORTAL (WAP) TRAINING. Intuit 2007

XMLUI Modularity in DSpace 1.5 & 2.0

UNIT -5. Java Server Page

NetBeans IDE Field Guide

AIM. 10 September

Web Application Architecture (based J2EE 1.4 Tutorial)

Continuous Integration (CI) with Jenkins

15-415: Database Applications Project 2. CMUQFlix - CMUQ s Movie Recommendation System

Edition 0.1. real scenarios for managing EAP instances. Last Updated:

Sentences Installation Guide. Sentences Version 4.0

Slide 1 & 2 Technical issues Slide 3 Technical expertise (continued...)

AppDev StudioTM 3.2 SAS. Migration Guide

PSD1B Advance Java Programming Unit : I-V. PSD1B- Advance Java Programming

B. Assets are shared-by-copy by default; convert the library into *.jar and configure it as a shared library on the server runtime.

Con$nuous Integra$on Development Environment. Kovács Gábor

Jumpstarting the Semantic Web

VIVO 1.9.x Documentation

FINALTERM EXAMINATION Spring 2009 CS506- Web Design and Development Solved by Tahseen Anwar

Oracle Policy Automation Connector for Siebel V10.2 Release Notes

CodeCharge Studio Java Deployment Guide Table of contents

Building a Digital Repository on a Shoestring Budget

Prosphero Intranet Sample Websphere Portal / Lotus Web Content Management 6.1.5

Continuous Integration using Cruise Control

Unit 5 JSP (Java Server Pages)

GlassFish Survival Guide. Alexis Moussine-Pouchkine GlassFish Team Sun Microsystems

Type of Classes Nested Classes Inner Classes Local and Anonymous Inner Classes

COPYRIGHTED MATERIAL

DevOps and Maven. Eamonn de Leastar Dr. Siobhán Drohan Produced by:

IT6503 WEB PROGRAMMING. Unit-I

<Insert Picture Here>

Advanced Java Programming

Understanding and Designing with EJB

Building The Czech Digital Mathematics Library upon DSpace System

Documentation External Synchronization FirstSpirit

Hotfix 913CDD03 Visual Data Explorer and SAS Web OLAP Viewer for Java

Writing Servlets and JSPs p. 1 Writing a Servlet p. 1 Writing a JSP p. 7 Compiling a Servlet p. 10 Packaging Servlets and JSPs p.

Getting Started. Table of contents

Index. Symbols. /**, symbol, 73 >> symbol, 21

ApacheCon NA How to Avoid Common Mistakes in OFBiz Development Presented by Adrian Crum

3.2 Example Configuration

Red Hat JBoss Enterprise Application Platform 7.2

Magnolia. Content Management Suite. Slide 1

Description of CORE Implementation in Java

SCA Java Runtime Overview

Creating a Model-based Builder

Servlets by Example. Joe Howse 7 June 2011

Openbravo quick-start. installation guide

OpenECOMP SDC Developer Guide

Optimizing LAMP Development with PHP5

COMP 4905 Honours Project Report

Serverless in the Java ecosystem

One application has servlet context(s).

Red Hat JBoss Enterprise Application Platform 7.0

Jaffa Reference Guide Jaffa Components

verapdf Industry supported PDF/A validation

WAS: WebSphere Appl Server Admin Rel 6

Chapter 2 FEATURES AND FACILITIES. SYS-ED/ Computer Education Techniques, Inc.

Application Development in JAVA. Data Types, Variable, Comments & Operators. Part I: Core Java (J2SE) Getting Started

Mobile Application Workbench. SAP Mobile Platform 3.0 SP02

Introduction and first application. Luigi De Russis. Rails 101

Introduction to Servlets. After which you will doget it

1. Go to the URL Click on JDK download option

ELIXIR REPERTOIRE. Integrated Business Intelligence Suite. Intelligence. On Demand. Installation Guide. Intelligence On Demand

Tania Tudorache Stanford University. - Ontolog forum invited talk04. October 2007

NetRexx Server Pages. 24th International Rexx Language Symposium Raleigh/Durham, NC René Vincent Jansen, May 8th, 2013.

1 Copyright 2011, Oracle and/or its affiliates. All rights reserved.

<Insert Picture Here> Hudson Web Architecture. Winston Prakash. Click to edit Master subtitle style

Exactly User Guide. Contact information. GitHub repository. Download pages for application. Version

Javadocing in Netbeans (rev )

ewater SDI for water resource management

Hortonworks Data Platform

KonaKart Tile Portlets for Liferay. 24th January DS Data Systems (UK) Ltd., 9 Little Meadow Loughton, Milton Keynes Bucks MK5 8EH UK

Java Applets, etc. Instructor: Dmitri A. Gusev. Fall Lecture 25, December 5, CS 502: Computers and Communications Technology

Tapestry. Code less, deliver more. Rayland Jeans

H-Store Introduction. Andy Pavlo February 13, 2012

Belle II - Git migration

UNIT -I PART-A Q.No Question Competence BTL

1.1 Customize the Layout and Appearance of a Web Page. 1.2 Understand ASP.NET Intrinsic Objects. 1.3 Understand State Information in Web Applications

Manakin Workshop. Manakin Workshop DSpace User Group, February Scott Phillips Texas A&M University

Module 5 Developing with JavaServer Pages Technology

Transcription:

Component Management System Richard Jones, April 2006

what and why What is an addon or component? a third-party feature a localisation an official DSpace component why do we need them? ease creation of new tools improve modularity and plugability of DSpace allow for multiple alternatives for repositories ease management of customised instances

Aspects of the AddOn Mech New build/install/update process Component management system Component versioning Skeleton component for quick build of new tools Note: this is a prototype, and feedback is welcome and encouraged

Prototype build process

Component Management Component Versioning useful for managing schema and code installation useful for managing updating and rollback Installation order some aspects of the code overwrite the installed components before them important for schema, UI components, and configuration Component Registry components.xml holds info on registered components, their version, and installation order database registers which components (and versions) have installed schemas

Challenges: configuration XML file merging solution adapted from another Open Source project (Grouper) successful with dspace-web.xml TODO for dspace-tags.tld, input-forms.xml and any other XML configuration files Properties files use of Java Properties class working for dspace.cfg and Messages.properties TODO for non-unique key property files (e.g. dstat.cfg) and multiple Messages_X.properties

Challenges: to patch or not to patch Each component has own JAR file Encourage the use of good modular programming rather than overwriting other code Encourage the use of configuration based alternatives (e.g. using the PluginManager) Allow DSpace to move slowly in the right direction rather than using a quick fix which may be damaging in the long term Allow compilation of subsequent components against installed ones by placing the JAR in the live library immediately

Challenges: JSPs Original method: JSPs in jsp/local are copied over their counterparts in build/jsp during build Doing this with components is highly sensitive to installation order: components can override default DSpace JSPs components can override eachothers' JSPs institutions will have their own localisations Therefore, risk of conflicts (no solution yet) Component Manager controls installation order DSpace first, components next, localisations last This is not enforced, only recommended

Challenges: other UI issues Common UI components navigation: lots of tools will add navigation items, so cannot rely on JSP overwriting style sheets: tools should add their own styles, not override the default. Possible solutions: XML driven navigation in prototype. Will this make things easier? How do we add new items at install? Similar solution for stylesheets? Future: What impact will Manakin have on this process?

Challenges: database management Updating from an arbitrary point to the latest Single schema files vs multiple schema files registering schema versions with the Component Manager registry loaders (e.g. Bitstream Formats, Metadata Registry, and now Metadata Schema Registry) schema files should not load any actual data database destroy scripts required uninstallation process is not yet clear

Default Installation Walkthrough build.xml ant - Ddir= / dspace init Source copy / dspace some live dirs components

Default Installation Walkthrough build.xml ant build components/ dspace/ build.x ml ant install jsp src build deploy live dirs config

Default Installation Walkthrough build.xml ant install load schema components/ dspace/ build.xml ant finally load registries prepare configs build webapps database main build directory

Component Installation Walkthrough build.xml ant - Dsrc= / addon ingest component- build.x ml ant to_rollback Source copy component addon identify rollback/ addon component.properties name addon

Component Installation Walkthrough build.xml ant - Daddon= addon build components/ addon/ build.x ml ant install jsp src build config Therefore, the default DSpace build process assumes addon= dspace when invoking ant

Component Installation Walkthrough build.xml ant - Daddon= addon register ComponentManager insert components.x ml dspace - version = x.y.z - install order = 1 addon - version = a.b.c - install order = 2

Component Installation Walkthrough build.xml ant install load schema ComponentManager foreach [component] components/ [component]/ build.xml ant finally ant load finally registries, etc. database components/ [component] prepare configs main build dir build webapps

Component Skeleton build/ created when necessary config/ language-packs/ Messages.properties registries/ e.g. dublin-core-types.xml dspace.cfg component config options etc/ schema.sql db schema create schema-destroy.sql db schema destroy dspace-web.xml servlet mappings, etc... jsp/ lib/ for additional JARs etc... src/ component source tree build.xml component build file (templated) component.properties component properties file

Component Skeleton build file Primary Targets (called by the master build file): install compile the sources into the addon build directory (implemented) finally finish up the installation. For example, load the database registries. (unimplemented) Secondary Targets (called by the primary targets) build_structure create the build directory sub-structure (implemented) compile compile the source code into the build directory (implemented) make_jar make the source code into a JAR file (implemented) configs move the configs into the right places (basic case implemented) jsps put the jsps in the build directory (implemented)

Component properties # Required properties: # The name of the component. This will be the directory in which it is stored # in the DSpace source tree, so please ensure that it is compliant with # directory name standards. Ideally only use alphanumeric characters (avoid # spaces). This does not have to be the name of the component as it is commonly # known, it is for system use only. component.name = addon # the version of the component. Components are required to use at most a # three level version numbering scheme. The versions should be ex pressed # as numbers only, in the usual order. This is to allow comparisons of which # is most recent in the version chain by the DSpace system component.version.major = 1 component.version.minor = 0 component.version.subminor = 0

towards a first Stable Release More XML merging (tags and possibly input forms) Reference Implementations Testing making and installing addons upgrading from the current DSpace Tidying up better Exception handling Documentation inline installation help documentation developer documentation

beyond a Stable Release Translated message file merging Component dependency warnings/resolution Component version rollback Multiple webapps Modular documentation management Anything else that is suggested and useful... Your contribution... please get involved

References AddOn Mech wiki page: http://wiki.dspace.org/addonmechanism Manakin XML UI project http://wiki.dspace.org/manakin Grouper (XML merging code) http://middleware.internet2.edu/dir/groups/grouper/

Thanks for listening Richard Jones Universitetsbiblioteket i Bergen Tilvekstavdeling Nygårdsgaten 5 5015 Bergen Norway richard.jones@ub.uib.no http://bora.uib.no/ This work is licensed under the Creative Commons Attribution- NonCommercial- ShareAlike License. To view a copy of this license, visit http:/ / creativecommons.org/ licenses/ by- nc- sa/ 2.5/ or send a letter to Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.