SlideShare a Scribd company logo
MAKING DSPACE XMLUI YOUR OWN
     CUSTOMIZATION VIA OVERLAYS


      Tim Donohue
      Research Programmer
      IDEALS
      University of Illinois



      DSUG 2009 – Gothenburg, Sweden
DSpace 1.5 & 1.6 Overview
   Maven Build Architecture
     DSpace  “modules”
     Application “Overlays”

   XMLUI (aka. Manakin)
   JSPUI
   SWORD Interface
   LNI (Lightweight Network Interface)
   OAI-PMH Interface
Introducing Maven…
   Apache Software Foundation
   Java Project Build / Management Tool
   Advantages:
     Manages   dependencies
     Easier to manage/build many “modules”
     Allows for basic application customizations via
      “overlays”
   Disadvantages:
     Yetanother XML config (many actually…)
     Somewhat complex, if doing more than basic overlays
Maven v. Ant
   DSpace 1.x-1.4 used Ant to build & install DSpace
   DSpace 1.5 & 1.6 uses both Maven & Ant
     Maven   – Builds / Assembles DSpace “package”
       Includesapplying “overlays” and pulling down all the
        necessary 3rd party dependencies
     Ant – Installs or Updates your DSpace Installation
      directory ([dspace.dir] in dspace.cfg)
Ok, so what really is Maven?

Build DSpace                                          Here’s what I need…
                                    <dependencies/>

mvn package                            pom.xml


                                                            Maven
                     local copies
  build                                                   Repository


 target

                                      JAR   WAR
          dspace-1.5-build.dir                          Here you go…
                                     Dependencies!
Maven Concepts: An Overview
   pom.xml (Project Object Model) config file
   Standard directory layout
      src


            main


                   java        (Java Source Code)

                   resources   (Application Resources)

                   webapp      (Web Application Source)
     target         (Build / Package Output)
DSpace Release Structure
 dspace-1.5                              For those who only want to
      dspace
                                           make minor (non-Java)
                                                customizations
                bin

               config

               docs

                etc

               modules (Module Overlays)

                src      (Maven Build Settings – no Java here…)

               pom.xml (Maven Project Object Model config)
DSpace “Modules”
 dspace-1.5              modules

      dspace
                                     src / main / resources
                             jspui
                                     src / main / webapp
              ….
                                      (empty directories)
                             lni
               modules
                             oai
              ….
                             sword

                             xmlui
                                        Where’s the
                                        actual source
                                            code?
                                       src / main / java?
DSpace Source (SVN)
 dspace-1.5

      dspace       (Same as release version – see previous slides)

      dspace-api

      dspace-jspui

      dspace-lni
                            Source code for DSpace “modules”
      dspace-oai
                                      In Release Version:
      dspace-sword                     Maven pulls down
                                    pre-compiled versions of
      dspace-xmlui                       these modules
DSpace Overlays
• Overview of Overlays
• How to take advantage of them
Customization via Overlays…
   Overlay is Maven term (“Maven WAR Overlays”)
   Simple way to override defaults with your own
    customizations and code
   Allow you to more easily manage your
    customizations separate from DSpace core code
   What can you “overlay”?
     User interface look-and-feel (JSPUI, XMLUI Themes)
     Language / terminology (messages.xml)

     Java code to add functionality (XMLUI Aspect)
       Although,   this may be better built into a custom “module”
DSpace + Maven = “Overlays”
Build DSpace                     pom.xml
                                                     Can you give me the JSPUI
                              <dependencies/>            Web application?
dspace
                                  <build/>

     modules

                                                               Maven
             jspui                                           Repository

         messages            Overlay         JSPUI
         .properties   jsp
                                             WAR          Here you go…



                              My
                             JSPUI
Creating a Basic Overlay - JSPUI
dspace
                                          Notice the Maven
    modules                              “standard directory
                                               layout”
         jspui

                 src             See “The Dspace Course” (S. Lewis & C. Yates)
                                 for more details on 1.5.x JSPUI customizations
                       main

                          java

                          resources messages.properties

                          webapp                (Replacement for “/jsp/local” )
                                        jsp
Creating a Basic Overlay - XMLUI
dspace
                                   webapp
    modules
                                        i18n     messages.xml

         xmlui
                                        themes

              src                              My-Custom-Theme

                    main
                                                    css xsl images
                       java
                                                        sitemap.xmap
                       resources

                       webapp
Building/Installing an Overlay
   Add your files to appropriate “/dspace/modules/”
    directory (see previous slides)
   Rebuild DSpace: mvn package
       Builds to [dspace-src]/dspace/target/
   Update DSpace installation: ant update
       Installs to [dspace.dir] (as specified in dspace.cfg)
Review: Why Overlays?
   Essentially, they came along with move to Maven

   You can manage your own customizations separate
    from DSpace source code
     “/dspace/modules”   subdirectories empty by default


   JSPUI replacement for “/jsp/local” from pre-1.5

   It is possible to overlay most *anything* (Java code,
    JSPs, XMLUI Aspects/Themes, sitemaps, etc.)
Overlays: things to watch out for…
   We don’t recommend
    overlaying core APIs
   Be very careful to merge
    in new code changes
    during your next upgrade
      A local SVN code
       repository is helpful
       (“SVN vendor branch”)    Image borrowed from:
                                http://www.flickr.com/photos/valgonzarp/

   It is recommended to only place overlays in
    [dspace-src]/dspace/modules/ (and subdirectories)
XML-UI Overview
          • Intro to Manakin / XMLUI
          • Tiered interface development




              Credit: Scott Phillips, Texas Digital Library + Texas A&M
(Most of this content is borrowed heavily from Scott’s numerous Manakin tutorials)
XMLUI, Classic Theme
XMLUI, Reference Theme
XMLUI, Kubrick Theme
Why Choose XMLUI?
   Module design – easier to extend

   Multiple interfaces / views, per community,
    collection or item

   Metadata in its native
    formats

   No knowledge of
    Java/JSPs necessary      Picture borrowed from:
                             http://www.flickr.com/photos/lambdageek/
XMLUI Architecture Overview
   Built on Apache Cocoon
     Modular,  web-development framework
     Pipeline based architecture

   DRI (Digital Repository Interface) Schema
     Structure
             based on TEI (light)
     Metadata referenced in METS

   Aspects and Themes
     Aspects= functionality in system (Java or XSL)
     Themes = style / look & feel (XSL, CSS, images)
Cocoon’s Pipeline Model
                                         Sitemaps are used by both
                                         XMLUI Aspects and Themes.




     Diagram Credit: Scott Phillips, Texas Digital Library
XMLUI Architecture Overview
              defines aspect chain & themes

xmlui.xconf




                 Diagram Credit: Scott Phillips, Texas Digital Library

              Notice the similarities to Cocoon Pipeline model…
Digital Repository Interface (DRI)

   DRI is XML
   Abstract representation
    of page in a repository
   View from any page by
    appending ?XML or
    &XML onto URL
Aspects

   Implement set of features across entire repository
     Java   or XSL
   “Aspect Chain” (see below)
     Each   requires valid DRI document as input/output
   Core Aspects in DSpace 1.5
     ArtifactBrowser (browse / search)
     E-Person (login / logout)

     Submission (submit new items)

     Administrative (admin and management tools)
Themes

   Look and feel of repository
   May apply to any of following:
     item,   collection, community, whole repository
   Theme folders can include
     XSL(restructure site)
     CSS (add style)

     Images

     Other static resources?
Putting it all together : DRI doc
Putting it all together : Aspect 1
Putting it all together: Aspect 2
Putting it all together: Aspect 3
Putting it all together: Theme
Three “tiers” of customization…
   Style Tier (CSS only)
     Simple   Themes: change basic look & feel


   Theme Tier (XSL, CSS)
     More  Complex Themes: change page layout, what/how
      content is displayed


   Aspect Tier (Java or XSL, sitemap)
     Add new features via Java (and Cocoon)
     Change XML (DRI) structure/hierarchy via XSL
http://txspace.tamu.edu/
    http://repositories.tdl.org/tdl/
http://minds.wisconsin.edu/handle/1793/8334
http://helda.helsinki.fi/
http://ideals.illinois.edu/
Creating an XMLUI Theme
• A few hints and tips on starting an XMLUI theme
• Creating a theme via overlay
Create a new Theme via overlay
dspace
                                   webapp
    modules
                                        i18n     messages.xml

         xmlui
                                        themes

              src                              My-Custom-Theme

                    main
                                                    css xsl images
                       java
                                                        sitemap.xmap
                       resources

                       webapp
Tips on creating a theme
   Start with an existing theme and tweak it
   Use ?XML to view XML/DRI source document
     Firebug   (http://getfirebug.com/) for CSS/XHTML
   Locate appropriate <xsl:template> in dri2xhtml
       DIM-Handler.xsl = matches METS containing DIM
       General-Handler.xsl = matches METS <fileSec>
       MODS-Handler.xsl = matches METS containing MODS
       QDC-Handler.xsl = matches METS containing QDC
       structural.xsl = defines layout/page structure
Tips on creating a theme
   Four metadata display “modes”
       SummaryList        = Summarized list of objects
         (E.g.)   Community/Collection listing, item browse/search
       SummaryView       = Summarized view of single object
         (E.g.)   Item homepage (summary metadata only)
       DetailList       = Detailed list of objects
         Rarely    used: (E.g.) “item appears in following collections”
       DetailView      = Detailed view of single object
         (E.g.)   Item “full record” page, collection/community pages
Homepage Structural Breakdown
                    buildHeader
dri:trail

                                            dri:options
                     dri:body




                                                  dri:list

            communitySummaryList-DIM
                (DIM-Handler.xsl)




                    buildFooter
Item Page Structural Breakdown




                itemSummaryView-DIM
                   (DIM-Handler.xsl)




                     mets:filegrp
                 (General-Handler.xsl)


                collectionDetailList-DIM
                   (DIM-Handler.xsl)
Simple XMLUI Theme Overlay
• Task: Modify file display to show a format icon
• (E.g.) PDF icon is displayed next to PDF files
Review: Create a new Theme
dspace
                                   webapp
    modules
                                        i18n     messages.xml

         xmlui
                                        themes

              src                              My-Custom-Theme

                    main
                                                    css xsl images
                       java
                                                        sitemap.xmap
                       resources

                       webapp
Creating a new theme folder
dspace/modules/xmlui/src/main/webapp

    themes                  Copy the default “Reference” theme into a
                                  new folder called “MyTheme”
         MyTheme



             sitemap.xmap


             images



             lib      (CSS is stored here)
Adding File Format icons to theme
/src/main/webapp             Copy of “mets:file” template from General-Handler.xsl
                               <xsl:template match=“mets:file”>
    themes                         …
                                  <xsl:call-template name="getFileFormatIcon">
         MyTheme                     <xsl:with-param name="mimetype">
                                        <xsl:value-of select="@MIMETYPE "/>
                                     </xsl:with-param>
             my-theme.xsl
                                   </xsl:call-template>
                                    …
             sitemap.xmap      </xsl:template>
                               <xsl:template name=“getFileFormatIcon”>
             images            …

                   pdf.png     <xsl:when test=“$mimetype=‘application/pdf’">
                                   <xsl:value-of select="$theme-path"/>
                                   <xsl:text>/images/pdf.png</xsl:text>
             lib               </xsl:when> Snippet from getFileFormatIcon
Adding File Format icons to theme
/src/main/webapp

    themes
                             <map:sitemap>
                               <map:pipelines>
         MyTheme                <map:pipeline>
                                 …
             my-theme.xsl        <map:transform src=“my-theme.xsl"/>
                                 …
             sitemap.xmap        <map:serialize type="xhtml"/>
                                </map:pipeline>
             images            </map:pipelines>
                             </map:sitemap>
                   pdf.png

             lib
Enable your new theme…

[dspace.dir]
                          …
                          <themes>
     config
                              …
                              <theme name="My New Theme"
         xmlui.xconf              regex=".*" path="MyTheme/" />
                               …
                          </themes>
                          …

               Restart web server for changes to take effect

     Other sample theme settings:
        • regex=“^$”              (Theme for homepage ONLY)
        • regex=“^browse$”        (Theme for all global “Browse By” pages)
        • handle=“2142/2”         (Theme for Community/Collection/Item)
File Format icon in new theme
Creating an XMLUI Aspect
•A few (high-level) hints and tips on starting an
XMLUI aspect
Options for adding custom Java

      via Overlay            via Maven Module
   Little more simplistic      Little more complex
   Sitemap (XMLUI)             pom.xml & sitemap
   Compiled in WAR              (XMLUI)
   Only one “module”           Compiled in JAR
    (UI) can use                Multiple “modules”
                                 can use via
                                 dependencies
                                Easier to share with
                                 others
Create a simple Aspect via overlay
                                           Good for simple aspects
dspace

    modules                        java     (Custom java source code)


         xmlui
                                   resources

              src
                                          aspects
                    main
                                               MyAspect
                       java
                                                    sitemap.xmap
                       resources
                                                    My-aspect.xsl
                       webapp
Aspect via a new Maven module
                               For complex aspects or for easier sharing
dspace

    modules                              java     (Custom java source code)


         my-module
                                         resources

              src
                                                aspects
                    main
                                                     MyAspect
                        java
                                                          sitemap.xmap
                        resources

              pom.xml
Aspect via a new Maven module
dspace                         Very simple example of a valid pom.xml

    modules                    <project>
                                   <groupId>edu.myu.modules</groupId>
                                   <artifactId>my-aspect</artifactId>
         my-module                 <packaging>jar</packaging>
                                   <name>My Aspect’s API</name>
              src                  <version>1.0-SNAPSHOT</version>
                                   <dependencies>…</dependencies>
                               </project>
                    main

                        java

                        resources

              pom.xml
                                                More pom.xml details:
                                             http://cocoon.apache.org/
Add new Module as a Dependency
dspace                    Add it to /dspace/modules/pom.xml
                           so it is built alongside other modules
    modules
                           <project>
                               …
         my-module             <modules>
                                   …
                                   <module>my-module</module>
                               </modules>
         ….                </project>

         pom.xml       Also add it as a <dependency> in pom.xml
                            of UI modules (XMLUI, JSPUI, etc)


              Rebuild DSpace for changes to take effect
Simple Aspect via Overlay
• Modify Breadcrumb Trail to link to our Library’s
Homepage
• Do this at the “aspect” level so that it will apply

across all of our XMLUI Themes
• No Java…just XSLT




    Credit: Conal Tuohy, New Zealand Electronic Text Centre
Review: Simple Aspect via overlay
dspace                        XSLT-only Aspect, so everything will go in
                                      /src/main/resources
    modules

         xmlui
                                         resources

              src
                                              aspects
                    main
                                                     MyAspect
                       java
                                                         sitemap.xmap
                       resources
                                                         My-aspect.xsl
                       webapp
Aspect Overlay – Breadcrumb trail

src/main/resources

    aspects                      <map:sitemap>
                                   <map:pipelines>
         Trail                      <map:pipeline>
                                     <map:generate/>
           sitemap.xmap              <map:transform src="modify-trail.xsl"/>
                                     <map:serialize type="xml"/>
                                    </map:pipeline>
              modify-trail.xsl     </map:pipelines>
                                 </map:sitemap>



                                 Remember: Aspects generate XML/DRI
Aspect Overlay – Breadcrumb trail

src/main/resources

                                 <xsl:template match="*">
    aspects
                                      <xsl:copy>
                                           <xsl:copy-of select="@*"/>
         Trail                             <xsl:apply-templates/>
                                      </xsl:copy>
           sitemap.xmap          </xsl:template>

                                 <xsl:template match="dri:pageMeta">
              modify-trail.xsl        <xsl:copy>
                                           <xsl:copy-of select="@*"/>
                                             <dri:trail target="www.library.my.edu/">
                                                      My Library
                                             </dri:trail>
                                           <xsl:apply-templates/>
                                      </xsl:copy>
                                 </xsl:template>
Enable your new aspect…

[dspace.dir]
                       …
     config            <aspects>
                           …
         xmlui.xconf       <aspect name=“Trail”
                                  path=“resource://aspects/Trail/”/>
                       </aspects>
                       …




                Restart DSpace for changes to take effect
Simple aspect-
based content

Complex aspect-
 based content
DSpace Community
• Where to go for more help…
• How you can help
DSpace Resources
   DSpace System Docs (/dspace/docs/)
   DSpace Wiki: http://wiki.dspace.org
     http://wiki.dspace.org/index.php/DspaceResources

     http://wiki.dspace.org/index.php/Category:HOWTO

   Dspace Training Materials
     www.dspace.org   > Resources > Training Materials
   Mailing Lists
     dspace-general  : general announcements, q & a
     dspace-tech : weird errors? upgrade issues?

     dspace-devel : where the developers are…
Useful DSpace / XMLUI Tutorials

“The DSpace Course” (Stuart Lewis & Chris Yates):
http://hdl.handle.net/2160/615
(Also linked to from www.dspace.org under “Training Materials”)


“Learning to Use Manakin” Tutorial (Scott Phillips):
http://di.tamu.edu/publications/resources/dsug07/LearningToUseManakin.pdf
http://di.tamu.edu/publications/resources/dsug07/LearningToUseManakin.zip
(Also linked to from www.dspace.org under “Training Materials”)
How you can help…
   Help test : DSpace Testathon before new releases
   Report bugs / Request new features : Add to
    bug/feature list on Jira
     http://jira.dspace.org/

   Help others, just like you : Answer questions on
    dspace-general or dspace-tech lists
   Tec h-savvy? Fix bugs or add functionality :
       Announce your work on dspace-tech
     http://wiki.dspace.org/index.php/Guide_to_Developing_with_DSpace
Contact Info

                     Tim Donohue
(Before Nov. 2009)                           (As of Nov. 2009)
University of Illinois                       DuraSpace
http://ideals.illinois.edu/                  tdonohue@duraspace.org

               DSpace Mailing Lists
               Technical Questions:
                       dspace-tech@lists.sourceforge.net
               Development Questions / Suggestions:
                       dspace-devel@lists.sourceforge.net

                This work is licensed under a Creative Commons Attribution-
                Noncommercial-Share Alike 3.0 United States License.

More Related Content

What's hot

Data Lakehouse, Data Mesh, and Data Fabric (r2)
Data Lakehouse, Data Mesh, and Data Fabric (r2)Data Lakehouse, Data Mesh, and Data Fabric (r2)
Data Lakehouse, Data Mesh, and Data Fabric (r2)
James Serra
 
Caching
CachingCaching
Caching
Nascenia IT
 
Introduction to NoSQL Databases
Introduction to NoSQL DatabasesIntroduction to NoSQL Databases
Introduction to NoSQL DatabasesDerek Stainer
 
Installation of Dspace in Windows OS: A Complete Documentation
Installation of Dspace in Windows OS: A Complete DocumentationInstallation of Dspace in Windows OS: A Complete Documentation
Installation of Dspace in Windows OS: A Complete Documentation
Ashok Kumar Satapathy
 
Présentation Oracle DataBase 11g
Présentation Oracle DataBase 11gPrésentation Oracle DataBase 11g
Présentation Oracle DataBase 11g
Cynapsys It Hotspot
 
Learn D3.js in 90 minutes
Learn D3.js in 90 minutesLearn D3.js in 90 minutes
Learn D3.js in 90 minutes
Jos Dirksen
 
Object Storage Overview
Object Storage OverviewObject Storage Overview
Object Storage Overview
Cloudian
 
DSpace 4.2 Basics & Configuration
DSpace 4.2 Basics & ConfigurationDSpace 4.2 Basics & Configuration
DSpace 4.2 Basics & ConfigurationDuraSpace
 
Mongo DB Presentation
Mongo DB PresentationMongo DB Presentation
Mongo DB Presentation
Jaya Naresh Kovela
 
Dremio introduction
Dremio introductionDremio introduction
Dremio introduction
Alexis Gendronneau
 
Spark architecture
Spark architectureSpark architecture
Spark architecture
GauravBiswas9
 
Introduction to MongoDB
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDB
MongoDB
 
MS-SQL SERVER ARCHITECTURE
MS-SQL SERVER ARCHITECTUREMS-SQL SERVER ARCHITECTURE
MS-SQL SERVER ARCHITECTURE
Douglas Bernardini
 
Introduction to MongoDB.pptx
Introduction to MongoDB.pptxIntroduction to MongoDB.pptx
Introduction to MongoDB.pptx
Surya937648
 
Apache HBase™
Apache HBase™Apache HBase™
Apache HBase™
Prashant Gupta
 
Getting started with DSpace 7 REST API
Getting started with DSpace 7 REST APIGetting started with DSpace 7 REST API
Getting started with DSpace 7 REST API
4Science
 
Basic oracle-database-administration
Basic oracle-database-administrationBasic oracle-database-administration
Basic oracle-database-administration
sreehari orienit
 
Modern Data Warehousing with the Microsoft Analytics Platform System
Modern Data Warehousing with the Microsoft Analytics Platform SystemModern Data Warehousing with the Microsoft Analytics Platform System
Modern Data Warehousing with the Microsoft Analytics Platform System
James Serra
 

What's hot (20)

Data Lakehouse, Data Mesh, and Data Fabric (r2)
Data Lakehouse, Data Mesh, and Data Fabric (r2)Data Lakehouse, Data Mesh, and Data Fabric (r2)
Data Lakehouse, Data Mesh, and Data Fabric (r2)
 
Introduction to NoSQL
Introduction to NoSQLIntroduction to NoSQL
Introduction to NoSQL
 
Caching
CachingCaching
Caching
 
Introduction to NoSQL Databases
Introduction to NoSQL DatabasesIntroduction to NoSQL Databases
Introduction to NoSQL Databases
 
Installation of Dspace in Windows OS: A Complete Documentation
Installation of Dspace in Windows OS: A Complete DocumentationInstallation of Dspace in Windows OS: A Complete Documentation
Installation of Dspace in Windows OS: A Complete Documentation
 
Présentation Oracle DataBase 11g
Présentation Oracle DataBase 11gPrésentation Oracle DataBase 11g
Présentation Oracle DataBase 11g
 
Learn D3.js in 90 minutes
Learn D3.js in 90 minutesLearn D3.js in 90 minutes
Learn D3.js in 90 minutes
 
Object Storage Overview
Object Storage OverviewObject Storage Overview
Object Storage Overview
 
DSpace 4.2 Basics & Configuration
DSpace 4.2 Basics & ConfigurationDSpace 4.2 Basics & Configuration
DSpace 4.2 Basics & Configuration
 
Mongo DB Presentation
Mongo DB PresentationMongo DB Presentation
Mongo DB Presentation
 
Dremio introduction
Dremio introductionDremio introduction
Dremio introduction
 
Spark architecture
Spark architectureSpark architecture
Spark architecture
 
Introduction to MongoDB
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDB
 
MS-SQL SERVER ARCHITECTURE
MS-SQL SERVER ARCHITECTUREMS-SQL SERVER ARCHITECTURE
MS-SQL SERVER ARCHITECTURE
 
Introduction to MongoDB.pptx
Introduction to MongoDB.pptxIntroduction to MongoDB.pptx
Introduction to MongoDB.pptx
 
NoSQL databases
NoSQL databasesNoSQL databases
NoSQL databases
 
Apache HBase™
Apache HBase™Apache HBase™
Apache HBase™
 
Getting started with DSpace 7 REST API
Getting started with DSpace 7 REST APIGetting started with DSpace 7 REST API
Getting started with DSpace 7 REST API
 
Basic oracle-database-administration
Basic oracle-database-administrationBasic oracle-database-administration
Basic oracle-database-administration
 
Modern Data Warehousing with the Microsoft Analytics Platform System
Modern Data Warehousing with the Microsoft Analytics Platform SystemModern Data Warehousing with the Microsoft Analytics Platform System
Modern Data Warehousing with the Microsoft Analytics Platform System
 

Similar to Making DSpace XMLUI Your Own

Apache Maven supports ALL Java (Javaland 2019)
Apache Maven supports ALL Java (Javaland 2019)Apache Maven supports ALL Java (Javaland 2019)
Apache Maven supports ALL Java (Javaland 2019)
Robert Scholte
 
JRuby + Rails = Awesome Java Web Framework at Jfokus 2011
JRuby + Rails = Awesome Java Web Framework at Jfokus 2011JRuby + Rails = Awesome Java Web Framework at Jfokus 2011
JRuby + Rails = Awesome Java Web Framework at Jfokus 2011Nick Sieger
 
Using RequireJS for Modular JavaScript Code
Using RequireJS for Modular JavaScript CodeUsing RequireJS for Modular JavaScript Code
Using RequireJS for Modular JavaScript Code
Thomas Lundström
 
Maven in Mule
Maven in MuleMaven in Mule
Maven in Mule
Anand kalla
 
Maven Presentation - SureFire vs FailSafe
Maven Presentation - SureFire vs FailSafeMaven Presentation - SureFire vs FailSafe
Maven Presentation - SureFire vs FailSafeHolasz Kati
 
Maven introduction in Mule
Maven introduction in MuleMaven introduction in Mule
Maven introduction in Mule
Shahid Shaik
 
Martin Odersky: What's next for Scala
Martin Odersky: What's next for ScalaMartin Odersky: What's next for Scala
Martin Odersky: What's next for Scala
Marakana Inc.
 
ZK MVVM, Spring & JPA On Two PaaS Clouds
ZK MVVM, Spring & JPA On Two PaaS CloudsZK MVVM, Spring & JPA On Two PaaS Clouds
ZK MVVM, Spring & JPA On Two PaaS CloudsSimon Massey
 
The do's and don'ts with java 9 (Devoxx 2017)
The do's and don'ts with java 9 (Devoxx 2017)The do's and don'ts with java 9 (Devoxx 2017)
The do's and don'ts with java 9 (Devoxx 2017)
Robert Scholte
 
Java, Ruby & Rails
Java, Ruby & RailsJava, Ruby & Rails
Java, Ruby & Rails
Peter Lind
 
Maven: Managing Software Projects for Repeatable Results
Maven: Managing Software Projects for Repeatable ResultsMaven: Managing Software Projects for Repeatable Results
Maven: Managing Software Projects for Repeatable Results
Steve Keener
 
Maven
MavenMaven
Note - Apache Maven Intro
Note - Apache Maven IntroNote - Apache Maven Intro
Note - Apache Maven Introboyw165
 
Introduction to DSpace
Introduction to DSpaceIntroduction to DSpace
Introduction to DSpace
Hardy Pottinger
 
Scala sydoct2011
Scala sydoct2011Scala sydoct2011
Scala sydoct2011
Michael Neale
 
NoSQL: Why, When, and How
NoSQL: Why, When, and HowNoSQL: Why, When, and How
NoSQL: Why, When, and HowBigBlueHat
 
Java Deserialization Vulnerabilities - The Forgotten Bug Class (DeepSec Edition)
Java Deserialization Vulnerabilities - The Forgotten Bug Class (DeepSec Edition)Java Deserialization Vulnerabilities - The Forgotten Bug Class (DeepSec Edition)
Java Deserialization Vulnerabilities - The Forgotten Bug Class (DeepSec Edition)
CODE WHITE GmbH
 

Similar to Making DSpace XMLUI Your Own (20)

Apache Maven supports ALL Java (Javaland 2019)
Apache Maven supports ALL Java (Javaland 2019)Apache Maven supports ALL Java (Javaland 2019)
Apache Maven supports ALL Java (Javaland 2019)
 
Play framework
Play frameworkPlay framework
Play framework
 
JRuby + Rails = Awesome Java Web Framework at Jfokus 2011
JRuby + Rails = Awesome Java Web Framework at Jfokus 2011JRuby + Rails = Awesome Java Web Framework at Jfokus 2011
JRuby + Rails = Awesome Java Web Framework at Jfokus 2011
 
Using RequireJS for Modular JavaScript Code
Using RequireJS for Modular JavaScript CodeUsing RequireJS for Modular JavaScript Code
Using RequireJS for Modular JavaScript Code
 
Maven in Mule
Maven in MuleMaven in Mule
Maven in Mule
 
Maven
MavenMaven
Maven
 
Maven Presentation - SureFire vs FailSafe
Maven Presentation - SureFire vs FailSafeMaven Presentation - SureFire vs FailSafe
Maven Presentation - SureFire vs FailSafe
 
Maven introduction in Mule
Maven introduction in MuleMaven introduction in Mule
Maven introduction in Mule
 
Martin Odersky: What's next for Scala
Martin Odersky: What's next for ScalaMartin Odersky: What's next for Scala
Martin Odersky: What's next for Scala
 
ZK MVVM, Spring & JPA On Two PaaS Clouds
ZK MVVM, Spring & JPA On Two PaaS CloudsZK MVVM, Spring & JPA On Two PaaS Clouds
ZK MVVM, Spring & JPA On Two PaaS Clouds
 
The do's and don'ts with java 9 (Devoxx 2017)
The do's and don'ts with java 9 (Devoxx 2017)The do's and don'ts with java 9 (Devoxx 2017)
The do's and don'ts with java 9 (Devoxx 2017)
 
Mavenppt
MavenpptMavenppt
Mavenppt
 
Java, Ruby & Rails
Java, Ruby & RailsJava, Ruby & Rails
Java, Ruby & Rails
 
Maven: Managing Software Projects for Repeatable Results
Maven: Managing Software Projects for Repeatable ResultsMaven: Managing Software Projects for Repeatable Results
Maven: Managing Software Projects for Repeatable Results
 
Maven
MavenMaven
Maven
 
Note - Apache Maven Intro
Note - Apache Maven IntroNote - Apache Maven Intro
Note - Apache Maven Intro
 
Introduction to DSpace
Introduction to DSpaceIntroduction to DSpace
Introduction to DSpace
 
Scala sydoct2011
Scala sydoct2011Scala sydoct2011
Scala sydoct2011
 
NoSQL: Why, When, and How
NoSQL: Why, When, and HowNoSQL: Why, When, and How
NoSQL: Why, When, and How
 
Java Deserialization Vulnerabilities - The Forgotten Bug Class (DeepSec Edition)
Java Deserialization Vulnerabilities - The Forgotten Bug Class (DeepSec Edition)Java Deserialization Vulnerabilities - The Forgotten Bug Class (DeepSec Edition)
Java Deserialization Vulnerabilities - The Forgotten Bug Class (DeepSec Edition)
 

More from Tim Donohue

On the Road to DSpace 7: Angular UI + REST
On the Road to DSpace 7: Angular UI + RESTOn the Road to DSpace 7: Angular UI + REST
On the Road to DSpace 7: Angular UI + REST
Tim Donohue
 
Introducing the New DSpace User Interface
Introducing the New DSpace User InterfaceIntroducing the New DSpace User Interface
Introducing the New DSpace User Interface
Tim Donohue
 
DSpace UI Prototype Challenge: Spring Boot + Thymeleaf
DSpace UI Prototype Challenge: Spring Boot + ThymeleafDSpace UI Prototype Challenge: Spring Boot + Thymeleaf
DSpace UI Prototype Challenge: Spring Boot + Thymeleaf
Tim Donohue
 
Discussion on DSpace's Two UIs : DuraSpace 2015 Summit
Discussion on DSpace's Two UIs : DuraSpace 2015 SummitDiscussion on DSpace's Two UIs : DuraSpace 2015 Summit
Discussion on DSpace's Two UIs : DuraSpace 2015 Summit
Tim Donohue
 
How to "Hack" the DSpace Community
How to "Hack" the DSpace CommunityHow to "Hack" the DSpace Community
How to "Hack" the DSpace Community
Tim Donohue
 
DSpace Overview / Roadmap 2014
DSpace Overview / Roadmap 2014DSpace Overview / Roadmap 2014
DSpace Overview / Roadmap 2014
Tim Donohue
 
DSpace RoadMap & Vision 2013 (OR13)
DSpace RoadMap & Vision 2013 (OR13)DSpace RoadMap & Vision 2013 (OR13)
DSpace RoadMap & Vision 2013 (OR13)
Tim Donohue
 
DSpace RoadMap 2012
DSpace RoadMap 2012DSpace RoadMap 2012
DSpace RoadMap 2012
Tim Donohue
 
DSpace RoadMap and Vision (at 2013 OAI8 DSpace User Group)
DSpace RoadMap and Vision (at 2013 OAI8 DSpace User Group)DSpace RoadMap and Vision (at 2013 OAI8 DSpace User Group)
DSpace RoadMap and Vision (at 2013 OAI8 DSpace User Group)
Tim Donohue
 
Future Trends for Repositories
Future Trends for RepositoriesFuture Trends for Repositories
Future Trends for Repositories
Tim Donohue
 
DSpace & DuraCloud Integrations
DSpace & DuraCloud IntegrationsDSpace & DuraCloud Integrations
DSpace & DuraCloud Integrations
Tim Donohue
 
DSpace RoadMap 2011
DSpace RoadMap 2011DSpace RoadMap 2011
DSpace RoadMap 2011
Tim Donohue
 
DSpace RoadMap 2010
DSpace RoadMap 2010DSpace RoadMap 2010
DSpace RoadMap 2010
Tim Donohue
 
Improving DSpace Backups, Restores & Migrations
Improving DSpace Backups, Restores & MigrationsImproving DSpace Backups, Restores & Migrations
Improving DSpace Backups, Restores & Migrations
Tim Donohue
 
BibApp 1.0 : Information In, Impact Out
BibApp 1.0 : Information In, Impact OutBibApp 1.0 : Information In, Impact Out
BibApp 1.0 : Information In, Impact Out
Tim Donohue
 
Digital Preservation in the Wild
Digital Preservation in the WildDigital Preservation in the Wild
Digital Preservation in the Wild
Tim Donohue
 

More from Tim Donohue (16)

On the Road to DSpace 7: Angular UI + REST
On the Road to DSpace 7: Angular UI + RESTOn the Road to DSpace 7: Angular UI + REST
On the Road to DSpace 7: Angular UI + REST
 
Introducing the New DSpace User Interface
Introducing the New DSpace User InterfaceIntroducing the New DSpace User Interface
Introducing the New DSpace User Interface
 
DSpace UI Prototype Challenge: Spring Boot + Thymeleaf
DSpace UI Prototype Challenge: Spring Boot + ThymeleafDSpace UI Prototype Challenge: Spring Boot + Thymeleaf
DSpace UI Prototype Challenge: Spring Boot + Thymeleaf
 
Discussion on DSpace's Two UIs : DuraSpace 2015 Summit
Discussion on DSpace's Two UIs : DuraSpace 2015 SummitDiscussion on DSpace's Two UIs : DuraSpace 2015 Summit
Discussion on DSpace's Two UIs : DuraSpace 2015 Summit
 
How to "Hack" the DSpace Community
How to "Hack" the DSpace CommunityHow to "Hack" the DSpace Community
How to "Hack" the DSpace Community
 
DSpace Overview / Roadmap 2014
DSpace Overview / Roadmap 2014DSpace Overview / Roadmap 2014
DSpace Overview / Roadmap 2014
 
DSpace RoadMap & Vision 2013 (OR13)
DSpace RoadMap & Vision 2013 (OR13)DSpace RoadMap & Vision 2013 (OR13)
DSpace RoadMap & Vision 2013 (OR13)
 
DSpace RoadMap 2012
DSpace RoadMap 2012DSpace RoadMap 2012
DSpace RoadMap 2012
 
DSpace RoadMap and Vision (at 2013 OAI8 DSpace User Group)
DSpace RoadMap and Vision (at 2013 OAI8 DSpace User Group)DSpace RoadMap and Vision (at 2013 OAI8 DSpace User Group)
DSpace RoadMap and Vision (at 2013 OAI8 DSpace User Group)
 
Future Trends for Repositories
Future Trends for RepositoriesFuture Trends for Repositories
Future Trends for Repositories
 
DSpace & DuraCloud Integrations
DSpace & DuraCloud IntegrationsDSpace & DuraCloud Integrations
DSpace & DuraCloud Integrations
 
DSpace RoadMap 2011
DSpace RoadMap 2011DSpace RoadMap 2011
DSpace RoadMap 2011
 
DSpace RoadMap 2010
DSpace RoadMap 2010DSpace RoadMap 2010
DSpace RoadMap 2010
 
Improving DSpace Backups, Restores & Migrations
Improving DSpace Backups, Restores & MigrationsImproving DSpace Backups, Restores & Migrations
Improving DSpace Backups, Restores & Migrations
 
BibApp 1.0 : Information In, Impact Out
BibApp 1.0 : Information In, Impact OutBibApp 1.0 : Information In, Impact Out
BibApp 1.0 : Information In, Impact Out
 
Digital Preservation in the Wild
Digital Preservation in the WildDigital Preservation in the Wild
Digital Preservation in the Wild
 

Recently uploaded

Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Inflectra
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
UiPathCommunity
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
Product School
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
Elena Simperl
 
"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi
Fwdays
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
Cheryl Hung
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
Product School
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Tobias Schneck
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
Frank van Harmelen
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
Product School
 
Search and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesSearch and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical Futures
Bhaskar Mitra
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
Alison B. Lowndes
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
Paul Groth
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
DianaGray10
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Product School
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
RTTS
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 

Recently uploaded (20)

Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 
Search and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesSearch and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical Futures
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 

Making DSpace XMLUI Your Own

  • 1. MAKING DSPACE XMLUI YOUR OWN CUSTOMIZATION VIA OVERLAYS Tim Donohue Research Programmer IDEALS University of Illinois DSUG 2009 – Gothenburg, Sweden
  • 2. DSpace 1.5 & 1.6 Overview  Maven Build Architecture  DSpace “modules”  Application “Overlays”  XMLUI (aka. Manakin)  JSPUI  SWORD Interface  LNI (Lightweight Network Interface)  OAI-PMH Interface
  • 3. Introducing Maven…  Apache Software Foundation  Java Project Build / Management Tool  Advantages:  Manages dependencies  Easier to manage/build many “modules”  Allows for basic application customizations via “overlays”  Disadvantages:  Yetanother XML config (many actually…)  Somewhat complex, if doing more than basic overlays
  • 4. Maven v. Ant  DSpace 1.x-1.4 used Ant to build & install DSpace  DSpace 1.5 & 1.6 uses both Maven & Ant  Maven – Builds / Assembles DSpace “package”  Includesapplying “overlays” and pulling down all the necessary 3rd party dependencies  Ant – Installs or Updates your DSpace Installation directory ([dspace.dir] in dspace.cfg)
  • 5. Ok, so what really is Maven? Build DSpace Here’s what I need… <dependencies/> mvn package pom.xml Maven local copies build Repository target JAR WAR dspace-1.5-build.dir Here you go… Dependencies!
  • 6. Maven Concepts: An Overview  pom.xml (Project Object Model) config file  Standard directory layout src main java (Java Source Code) resources (Application Resources) webapp (Web Application Source) target (Build / Package Output)
  • 7. DSpace Release Structure dspace-1.5 For those who only want to dspace make minor (non-Java) customizations bin config docs etc modules (Module Overlays) src (Maven Build Settings – no Java here…) pom.xml (Maven Project Object Model config)
  • 8. DSpace “Modules” dspace-1.5 modules dspace src / main / resources jspui src / main / webapp …. (empty directories) lni modules oai …. sword xmlui Where’s the actual source code? src / main / java?
  • 9. DSpace Source (SVN) dspace-1.5 dspace (Same as release version – see previous slides) dspace-api dspace-jspui dspace-lni Source code for DSpace “modules” dspace-oai In Release Version: dspace-sword Maven pulls down pre-compiled versions of dspace-xmlui these modules
  • 10. DSpace Overlays • Overview of Overlays • How to take advantage of them
  • 11. Customization via Overlays…  Overlay is Maven term (“Maven WAR Overlays”)  Simple way to override defaults with your own customizations and code  Allow you to more easily manage your customizations separate from DSpace core code  What can you “overlay”?  User interface look-and-feel (JSPUI, XMLUI Themes)  Language / terminology (messages.xml)  Java code to add functionality (XMLUI Aspect)  Although, this may be better built into a custom “module”
  • 12. DSpace + Maven = “Overlays” Build DSpace pom.xml Can you give me the JSPUI <dependencies/> Web application? dspace <build/> modules Maven jspui Repository messages Overlay JSPUI .properties jsp WAR Here you go… My JSPUI
  • 13. Creating a Basic Overlay - JSPUI dspace Notice the Maven modules “standard directory layout” jspui src See “The Dspace Course” (S. Lewis & C. Yates) for more details on 1.5.x JSPUI customizations main java resources messages.properties webapp (Replacement for “/jsp/local” ) jsp
  • 14. Creating a Basic Overlay - XMLUI dspace webapp modules i18n messages.xml xmlui themes src My-Custom-Theme main css xsl images java sitemap.xmap resources webapp
  • 15. Building/Installing an Overlay  Add your files to appropriate “/dspace/modules/” directory (see previous slides)  Rebuild DSpace: mvn package  Builds to [dspace-src]/dspace/target/  Update DSpace installation: ant update  Installs to [dspace.dir] (as specified in dspace.cfg)
  • 16. Review: Why Overlays?  Essentially, they came along with move to Maven  You can manage your own customizations separate from DSpace source code  “/dspace/modules” subdirectories empty by default  JSPUI replacement for “/jsp/local” from pre-1.5  It is possible to overlay most *anything* (Java code, JSPs, XMLUI Aspects/Themes, sitemaps, etc.)
  • 17. Overlays: things to watch out for…  We don’t recommend overlaying core APIs  Be very careful to merge in new code changes during your next upgrade  A local SVN code repository is helpful (“SVN vendor branch”) Image borrowed from: http://www.flickr.com/photos/valgonzarp/  It is recommended to only place overlays in [dspace-src]/dspace/modules/ (and subdirectories)
  • 18. XML-UI Overview • Intro to Manakin / XMLUI • Tiered interface development Credit: Scott Phillips, Texas Digital Library + Texas A&M (Most of this content is borrowed heavily from Scott’s numerous Manakin tutorials)
  • 22. Why Choose XMLUI?  Module design – easier to extend  Multiple interfaces / views, per community, collection or item  Metadata in its native formats  No knowledge of Java/JSPs necessary Picture borrowed from: http://www.flickr.com/photos/lambdageek/
  • 23. XMLUI Architecture Overview  Built on Apache Cocoon  Modular, web-development framework  Pipeline based architecture  DRI (Digital Repository Interface) Schema  Structure based on TEI (light)  Metadata referenced in METS  Aspects and Themes  Aspects= functionality in system (Java or XSL)  Themes = style / look & feel (XSL, CSS, images)
  • 24. Cocoon’s Pipeline Model Sitemaps are used by both XMLUI Aspects and Themes. Diagram Credit: Scott Phillips, Texas Digital Library
  • 25. XMLUI Architecture Overview defines aspect chain & themes xmlui.xconf Diagram Credit: Scott Phillips, Texas Digital Library Notice the similarities to Cocoon Pipeline model…
  • 26. Digital Repository Interface (DRI)  DRI is XML  Abstract representation of page in a repository  View from any page by appending ?XML or &XML onto URL
  • 27. Aspects  Implement set of features across entire repository  Java or XSL  “Aspect Chain” (see below)  Each requires valid DRI document as input/output  Core Aspects in DSpace 1.5  ArtifactBrowser (browse / search)  E-Person (login / logout)  Submission (submit new items)  Administrative (admin and management tools)
  • 28. Themes  Look and feel of repository  May apply to any of following:  item, collection, community, whole repository  Theme folders can include  XSL(restructure site)  CSS (add style)  Images  Other static resources?
  • 29. Putting it all together : DRI doc
  • 30. Putting it all together : Aspect 1
  • 31. Putting it all together: Aspect 2
  • 32. Putting it all together: Aspect 3
  • 33. Putting it all together: Theme
  • 34. Three “tiers” of customization…  Style Tier (CSS only)  Simple Themes: change basic look & feel  Theme Tier (XSL, CSS)  More Complex Themes: change page layout, what/how content is displayed  Aspect Tier (Java or XSL, sitemap)  Add new features via Java (and Cocoon)  Change XML (DRI) structure/hierarchy via XSL
  • 35. http://txspace.tamu.edu/ http://repositories.tdl.org/tdl/
  • 39. Creating an XMLUI Theme • A few hints and tips on starting an XMLUI theme • Creating a theme via overlay
  • 40. Create a new Theme via overlay dspace webapp modules i18n messages.xml xmlui themes src My-Custom-Theme main css xsl images java sitemap.xmap resources webapp
  • 41. Tips on creating a theme  Start with an existing theme and tweak it  Use ?XML to view XML/DRI source document  Firebug (http://getfirebug.com/) for CSS/XHTML  Locate appropriate <xsl:template> in dri2xhtml  DIM-Handler.xsl = matches METS containing DIM  General-Handler.xsl = matches METS <fileSec>  MODS-Handler.xsl = matches METS containing MODS  QDC-Handler.xsl = matches METS containing QDC  structural.xsl = defines layout/page structure
  • 42. Tips on creating a theme  Four metadata display “modes”  SummaryList = Summarized list of objects  (E.g.) Community/Collection listing, item browse/search  SummaryView = Summarized view of single object  (E.g.) Item homepage (summary metadata only)  DetailList = Detailed list of objects  Rarely used: (E.g.) “item appears in following collections”  DetailView = Detailed view of single object  (E.g.) Item “full record” page, collection/community pages
  • 43. Homepage Structural Breakdown buildHeader dri:trail dri:options dri:body dri:list communitySummaryList-DIM (DIM-Handler.xsl) buildFooter
  • 44. Item Page Structural Breakdown itemSummaryView-DIM (DIM-Handler.xsl) mets:filegrp (General-Handler.xsl) collectionDetailList-DIM (DIM-Handler.xsl)
  • 45. Simple XMLUI Theme Overlay • Task: Modify file display to show a format icon • (E.g.) PDF icon is displayed next to PDF files
  • 46. Review: Create a new Theme dspace webapp modules i18n messages.xml xmlui themes src My-Custom-Theme main css xsl images java sitemap.xmap resources webapp
  • 47. Creating a new theme folder dspace/modules/xmlui/src/main/webapp themes Copy the default “Reference” theme into a new folder called “MyTheme” MyTheme sitemap.xmap images lib (CSS is stored here)
  • 48. Adding File Format icons to theme /src/main/webapp Copy of “mets:file” template from General-Handler.xsl <xsl:template match=“mets:file”> themes … <xsl:call-template name="getFileFormatIcon"> MyTheme <xsl:with-param name="mimetype"> <xsl:value-of select="@MIMETYPE "/> </xsl:with-param> my-theme.xsl </xsl:call-template> … sitemap.xmap </xsl:template> <xsl:template name=“getFileFormatIcon”> images … pdf.png <xsl:when test=“$mimetype=‘application/pdf’"> <xsl:value-of select="$theme-path"/> <xsl:text>/images/pdf.png</xsl:text> lib </xsl:when> Snippet from getFileFormatIcon
  • 49. Adding File Format icons to theme /src/main/webapp themes <map:sitemap> <map:pipelines> MyTheme <map:pipeline> … my-theme.xsl <map:transform src=“my-theme.xsl"/> … sitemap.xmap <map:serialize type="xhtml"/> </map:pipeline> images </map:pipelines> </map:sitemap> pdf.png lib
  • 50. Enable your new theme… [dspace.dir] … <themes> config … <theme name="My New Theme" xmlui.xconf regex=".*" path="MyTheme/" /> … </themes> … Restart web server for changes to take effect Other sample theme settings: • regex=“^$” (Theme for homepage ONLY) • regex=“^browse$” (Theme for all global “Browse By” pages) • handle=“2142/2” (Theme for Community/Collection/Item)
  • 51. File Format icon in new theme
  • 52. Creating an XMLUI Aspect •A few (high-level) hints and tips on starting an XMLUI aspect
  • 53. Options for adding custom Java via Overlay via Maven Module  Little more simplistic  Little more complex  Sitemap (XMLUI)  pom.xml & sitemap  Compiled in WAR (XMLUI)  Only one “module”  Compiled in JAR (UI) can use  Multiple “modules” can use via dependencies  Easier to share with others
  • 54. Create a simple Aspect via overlay Good for simple aspects dspace modules java (Custom java source code) xmlui resources src aspects main MyAspect java sitemap.xmap resources My-aspect.xsl webapp
  • 55. Aspect via a new Maven module For complex aspects or for easier sharing dspace modules java (Custom java source code) my-module resources src aspects main MyAspect java sitemap.xmap resources pom.xml
  • 56. Aspect via a new Maven module dspace Very simple example of a valid pom.xml modules <project> <groupId>edu.myu.modules</groupId> <artifactId>my-aspect</artifactId> my-module <packaging>jar</packaging> <name>My Aspect’s API</name> src <version>1.0-SNAPSHOT</version> <dependencies>…</dependencies> </project> main java resources pom.xml More pom.xml details: http://cocoon.apache.org/
  • 57. Add new Module as a Dependency dspace Add it to /dspace/modules/pom.xml so it is built alongside other modules modules <project> … my-module <modules> … <module>my-module</module> </modules> …. </project> pom.xml Also add it as a <dependency> in pom.xml of UI modules (XMLUI, JSPUI, etc) Rebuild DSpace for changes to take effect
  • 58. Simple Aspect via Overlay • Modify Breadcrumb Trail to link to our Library’s Homepage • Do this at the “aspect” level so that it will apply across all of our XMLUI Themes • No Java…just XSLT Credit: Conal Tuohy, New Zealand Electronic Text Centre
  • 59. Review: Simple Aspect via overlay dspace XSLT-only Aspect, so everything will go in /src/main/resources modules xmlui resources src aspects main MyAspect java sitemap.xmap resources My-aspect.xsl webapp
  • 60. Aspect Overlay – Breadcrumb trail src/main/resources aspects <map:sitemap> <map:pipelines> Trail <map:pipeline> <map:generate/> sitemap.xmap <map:transform src="modify-trail.xsl"/> <map:serialize type="xml"/> </map:pipeline> modify-trail.xsl </map:pipelines> </map:sitemap> Remember: Aspects generate XML/DRI
  • 61. Aspect Overlay – Breadcrumb trail src/main/resources <xsl:template match="*"> aspects <xsl:copy> <xsl:copy-of select="@*"/> Trail <xsl:apply-templates/> </xsl:copy> sitemap.xmap </xsl:template> <xsl:template match="dri:pageMeta"> modify-trail.xsl <xsl:copy> <xsl:copy-of select="@*"/> <dri:trail target="www.library.my.edu/"> My Library </dri:trail> <xsl:apply-templates/> </xsl:copy> </xsl:template>
  • 62. Enable your new aspect… [dspace.dir] … config <aspects> … xmlui.xconf <aspect name=“Trail” path=“resource://aspects/Trail/”/> </aspects> … Restart DSpace for changes to take effect
  • 63.
  • 64. Simple aspect- based content Complex aspect- based content
  • 65. DSpace Community • Where to go for more help… • How you can help
  • 66. DSpace Resources  DSpace System Docs (/dspace/docs/)  DSpace Wiki: http://wiki.dspace.org  http://wiki.dspace.org/index.php/DspaceResources  http://wiki.dspace.org/index.php/Category:HOWTO  Dspace Training Materials  www.dspace.org > Resources > Training Materials  Mailing Lists  dspace-general : general announcements, q & a  dspace-tech : weird errors? upgrade issues?  dspace-devel : where the developers are…
  • 67. Useful DSpace / XMLUI Tutorials “The DSpace Course” (Stuart Lewis & Chris Yates): http://hdl.handle.net/2160/615 (Also linked to from www.dspace.org under “Training Materials”) “Learning to Use Manakin” Tutorial (Scott Phillips): http://di.tamu.edu/publications/resources/dsug07/LearningToUseManakin.pdf http://di.tamu.edu/publications/resources/dsug07/LearningToUseManakin.zip (Also linked to from www.dspace.org under “Training Materials”)
  • 68. How you can help…  Help test : DSpace Testathon before new releases  Report bugs / Request new features : Add to bug/feature list on Jira  http://jira.dspace.org/  Help others, just like you : Answer questions on dspace-general or dspace-tech lists  Tec h-savvy? Fix bugs or add functionality :  Announce your work on dspace-tech  http://wiki.dspace.org/index.php/Guide_to_Developing_with_DSpace
  • 69. Contact Info Tim Donohue (Before Nov. 2009) (As of Nov. 2009) University of Illinois DuraSpace http://ideals.illinois.edu/ tdonohue@duraspace.org DSpace Mailing Lists Technical Questions: dspace-tech@lists.sourceforge.net Development Questions / Suggestions: dspace-devel@lists.sourceforge.net This work is licensed under a Creative Commons Attribution- Noncommercial-Share Alike 3.0 United States License.