Extending & Customizing XNAT with Modules Rick Herrick

Slides:



Advertisements
Similar presentations
CTS2 DEVELOPMENT FRAMEWORK CTS2 Overview. Schedule What is it? Why a framework? What does this do for me? Plugins Implementations available now CTS2 Compliance.
Advertisements

Developing in CAS. Why? As distributed you edit CAS 3 with Eclipse and build with Maven 2 – Best Practice for Release Engineering – Difficult edit-debug.
CUSTOMIZING DSPACE 1.5 WITH BASIC OVERLAYS Open Repositories 2008 Tim Donohue Research Programmer IDEALS University of Illinois Graham Triggs Technical.
MC365 Ant. Today We Will Cover: Overview of Ant Installing Ant Using the Ant command line tool Various Ant commands available Using Ant in Eclipse.
Object-Oriented Enterprise Application Development Tomcat 3.2 Configuration Last Updated: 03/30/2001.
1 Introducing Collaboration to Single User Applications A Survey and Analysis of Recent Work by Brian Cornell For Collaborative Systems Fall 2006.
Presented by IBM developer Works ibm.com/developerworks/ 2006 January – April © 2006 IBM Corporation. Making the most of The Eclipse Web Tools Platform.
Supporting Customized Archival Practices Using the Producer-Archive Workflow Network (PAWN) Mike Smorul, Mike McGann, Joseph JaJa.
Building and Deploying a Simple Web Application. Tomcat and JSP Tomcat is an application server, commonly used to host JSP applications Applications are.
Web Applications Basics. Introduction to Web Web features Clent/Server HTTP HyperText Markup Language URL addresses Web server - a computer program that.
Building Server Behaviors Tom Muck co-author Building Dreamweaver 4 and Dreamweaver UltraDev 4 Extensions.
TIBCO Designer TIBCO BusinessWorks is a scalable, extensible, and easy to use integration platform that allows you to develop, deploy, and run integration.
Using Ant to build J2EE Applications Kumar
UNIT-V The MVC architecture and Struts Framework.
Spring Roo CS476 Aleksey Bukin Peter Lew. What is Roo? Productivity tool Allows for easy creation of Enterprise Java applications Runs alongside existing.
Overview of JSP Technology. The need of JSP With servlets, it is easy to – Read form data – Read HTTP request headers – Set HTTP status codes and response.
Nathan McMinn, Technical Consultant with Alfresco
Danielle Baldwin, ITS Web Services CMS Administrator Application Overview and Joomla 1.5 RC 1 Highlights.
M. Taimoor Khan * Java Server Pages (JSP) is a server-side programming technology that enables the creation of dynamic,
Java for the WWW November 2012Slide Tag Libraries What are they? –Custom libraries Custom tags – see examples in following slides.
Java Beans.
Maven & Bamboo CONTINUOUS INTEGRATION. QA in a large organization In a large organization that manages over 100 applications and over 20 developers, implementing.
Learning Alfresco Forms Service By Examples
Eclipse Overview Introduction to Web Programming Kirkwood Continuing Education Fred McClurg © Copyright 2015, Fred McClurg, All Rights Reserved.
© 2005 by IBM; made available under the EPL v1.0 | March 1, 2005 Tim deBoer Gorkem Ercan Extend WTP Server Tools for your.
© 2012 LogiGear Corporation. All Rights Reserved Robot framework.
Java Servlets CS-422. Application Mapping Your servlet application will be mapped to a directory structure: –“myapp” maps to some directory C:/docs/apps/myapp.
Tomcat Spencer Uresk. Notes This is a training NOT a presentation Please ask questions This is being recorded
‘Tirgul’ # 7 Enterprise Development Using Visual Basic 6.0 Autumn 2002 Tirgul #7.
Struts2 Plugin Development - Extending Struts2 Justin Yip.
Deploying Sakai: First Steps David Haines University of Michigan.
Upgrading Projects to Visual Studio 2010 Upgrading Projects to SharePoint 2010 Integrating with SharePoint 2010.
4/1/05F-1 © 2001 T. Horton CS 494 Object-Oriented Analysis & Design Packages and Components in Java and UML.
Plug-In Architecture Pattern. Problem The functionality of a system needs to be extended after the software is shipped The set of possible post-shipment.
Elliott Attributes Edward M. Kwang President. Notes vs. Attributes Notes –Free Form Text –Conversation With Customers –Reminder for Follow Up Attribute.
XNAT Workshop 2012 Project Configuration Tim Olsen
Packaging for Voracity Solutions Control Panel David Turner.
TOS / TIS Code Architecture Copyright © 2008 Talend. All rights reserved.
1 SMWG Service Management Modelling Notes Anthony Crowson Colin Haddow October 2009, ESTEC October 15, 2008.
Chapter 1 Introducing Ant. What is ant? Ant is a build tool  Automate the tasks of compiling code, running test, and packaging the results for redistribution.
Maven for building Java applications By Nalin De Zoysa
DSpace System Architecture 11 July 2002 DSpace System Architecture.
UAB Versioning: Definition 1 07/05/2014. Summary UAB component definition UAB component release UAB component query UAB component installation Create.
Build Systems Presentation December 14, 2015 Noon-1pm Kathy Lee Simunich Bldg. 203/ D120 Brought to you by: Argonne Java.
Software Deployment & Release 26/03/2015 1EN-ICE.
OpenMRS Create New Module.
© 2009 by IBM; made available under the EPL v1.0 | Feb 1, 2009 Seneca 2009 Tim deBoer Gorkem Ercan Extend WTP Server Tools.
Plug-In Architecture Pattern. Problem The functionality of a system needs to be extended after the software is shipped The set of possible post-shipment.
Developer Exam Preparation Thom Robbins Bryan Soltis
Maven. Introduction Using Maven (I) – Installing the Maven plugin for Eclipse – Creating a Maven Project – Building the Project Understanding the POM.
CS520 Web Programming Introduction to Maven Chengyu Sun California State University, Los Angeles.
Statistics Estonia's new system for statistical data activity processing (VAIS) ITDG Luxembourg 2010 Allan Randlepp.
UAB Requirements for 2016 Ivan Prieto Barreiro 18/04/2016 UAB Requirements for
Clinical Data Exchange using HL7 and Mirth Connect Lecture 2 - Toolset to use for working with Mirth Connect. - Mirth Connect architecture. - Changing.
XNAT 1.7: Getting Started 6 June, Introduction In this presentation we’ll discuss:  Features and functions in XNAT 1.7  Requirements  Installing.
ODF API - ODFDOM Svante Schubert Software Engineer
Data Virtualization Demoette… Custom Java Procedures
Getting Started with Alfresco Development
Pipelines, Data Transfer, and Reconstructions
CARA 3.10 Major New Features
Overall Architecture and Component Model
Development Changes in Dynamics 365 for Finance and Operations
COSC-4840 Software Engineering
J2EE Application Development
ESIS Consulting LLC (C) ESIS Consulting LLC. All rights reserved
Follow along with this presentation: Visits & Protocols Plugin
…and web frameworks in general
Enterprise Java Beans.
NIEM Tool Strategy Next Steps for Movement
Plug-In Architecture Pattern
Presentation transcript:

Extending & Customizing XNAT with Modules Rick Herrick

Customizing XNAT Previous versions of XNAT used overlays in the projects folder of the XNAT builder: Schemas referenced in instance settings Velocity templates CSS/JavaScript Java classes This worked but was kind of messy.

Modules package XNAT extensions Instead of overlaying files, you package your code into jar or zip archives. No need to reference schemas in the instance settings file. Hooks provide convenient means of extending the user interface, data handling, and even the REST API.

Oh but it gets better... XNAT Marketplace! Soon-to-be home of many useful XNAT extensions, including:  User interface customizations  Common data elements  REST services  Reporting and analysis tools

Let's have a look... 1.Set the module repository location in your build.properties. 2.Copy a module into the module repository. 3.Update XNAT: sudo service tomcat6 stop bin/update.sh -Ddeploy=true cd deployments/xnat psql –U xnat –d xnat –f sql/xnat-update.sql sudo service tomcat6 start

What hasn’t changed… yet New data types require updating SQL and administrative intervention Java classes are inserted as Java text files, not compiled classes Hooks are provided for extending the UI, but this is still fairly limited No inherent scoping of components

Modules are not plugins! Still requires a rebuild and redeployment of the application Can’t be de-activated or removed Must be unpackaged and slip-streamed instead of remaining in its little package No versioning or dependency management (cf. OSGi)

Creating custom modules A module is: A jar or zip archive Files are placed in folders similar to the folder structure under the projects folder The module archive is placed into the module repository and processed on the next update.

Creating custom modules A word about Maven… Maven is an open-source build tool available from Apache ( NRG will provide module development templates for Maven (AKA archetypes) Sort of goofy if you’re not familiar with it, but don’t let that distract you: for our purposes it’s really just an archiving tool

Creating custom modules Easy steps: 1.Create a data-type schema. EgoMaster! 2.Put the schema into a module and go. 3.Once the code builder has completed, you have a good start on Velocity templates, Java classes, JavaScript, and so on.

Creating custom modules A little more complex: 1.Add Velocity templates to your module and make the user interface work better. 2.Add some code to automate object creation, e.g. item label. 3.Add some validation code to a JavaScript file and reference it through the VM.

Creating custom modules Let's get crazy: 1.Add a REST service by annotating a class with annotation. 2.Call the service from an interface component. 3.Add a project configuration tab.

Questions? xnat_discussion on Google Groups