Thanks to visit codestin.com
Credit goes to www.scribd.com

0% found this document useful (0 votes)
126 views44 pages

XNAT Open Source

This document introduces potential contributors to methods and tools for contributing to the open source XNAT project. It discusses that XNAT uses version control with Mercurial, builds with Maven, and develops in Eclipse. It also provides tips for debugging with JPDA and demonstrates how to fix a bug, commit changes, and submit a patch. The goal is to leverage others' work and contribute back to XNAT by reporting issues, sharing custom schemas, creating new features using the REST API, and developing core code.

Uploaded by

Jose Moragar
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
126 views44 pages

XNAT Open Source

This document introduces potential contributors to methods and tools for contributing to the open source XNAT project. It discusses that XNAT uses version control with Mercurial, builds with Maven, and develops in Eclipse. It also provides tips for debugging with JPDA and demonstrates how to fix a bug, commit changes, and submit a patch. The goal is to leverage others' work and contribute back to XNAT by reporting issues, sharing custom schemas, creating new features using the REST API, and developing core code.

Uploaded by

Jose Moragar
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 44

XNAT Custom Features & Open Source Development

John Paulett [email protected] June 30, 2010

Goal
Introduce potential contributors to the methods and tools for contributing to XNAT

XNAT is Open Source!

XNAT is Open Source!


Freedom
Leverage others work Contribute

HOW CAN I CONTRIBUTE?

Bug Reports & Feature Requests


[email protected] For sensitive issues, [email protected] Provide details!
Environment Versions Steps to reproduce Screenshots Logs
6

Report a problem

Share Custom Schemas


(Jenny Gurneys previous Customizations talk)

Create Something New


Leverage the REST API
Examples: PyXNAT, xnatfs

Develop XNAT
Fix Bugs
Add Features

10

XNAT ECOSYSTEM

11

12

XNAT Internals
xdat_core - org.nrg.xft
translates between XML schema & other formats XFTItem.java

xdat_core - org.nrg.xdat
admin, security, search infrastructure around XFT Web app structure
13

XNAT Internals
xdat_release/plugin_resources - org.nrg.xnat
REST API Uploading & Downloading Neuroimaging specific models

xdat_release/projects
Site customizations

14

3 TOOLS OF A XNAT DEVELOPER

15

#1 Version Control with Mercurial


hg.xnat.org
Replacement for CVS & Subversion Distributed (everyone has full repo & can commit) Sane branching & merging
16

Why Leave CVS?


Network connectivity required Lack of support for renaming/moving files Lack of atomic commits Single point of failure Expensive branch operations Day-long merges

17

Mercurial Quick Start


hg clone http://hg.xnat.org/xdat_release # view differences hg diff # commit and send changes to remote repo hg commit hg push # get the latest remote changes hg pull --update
18

hg.xnat.org

19

Integration Manager Workflow

blessed repository

developer public

developer public

integration manager

developer private

developer private

20

Mercurial Resources
mercurial.selenic.com hgbook.red-bean.com hginit.com

21

#2 Maven
Build & Dependency Management
Migrating to Maven 2
xdat_release & pipelines still use Maven 1 (hidden behind bin/setup.sh) New projects should use Maven 2

22

Why not Ant?


Dependency management
Reduce blobs in version control system

Standardized project layout & commands

23

xdat_core & Maven


$ cd xdat_core $ mvn clean install [INFO] Scanning for projects... ... [INFO] BUILD SUCCESSFUL

24

#2 Eclipse IDE

25

Useful Eclipse Plugins


Mercurial Maven XML Schema Editor Velocity

26

HELPFUL TOOLS

27

Debugging with JPDA


Connect to external Tomcat & Applet processes with Eclipse debugger
Set breakpoints, examine state

28

Connect Tomcat process with Eclipse debugger

DEMO: FIX A BUG & SUBMIT A PATCH

30

1) Clone & Set up Projects


hg clone http://hg.xnat.org/xdat_core mvn clean install hg clone http://hg.xnat.org/xdat_release ... bin/setup.sh -Ddeploy=true ...

31

2) Register in Eclipse
cp sample.classpath .classpath cp sample.project .project

32

3) Fix Code

33

4) Test it!

36

5) Commit

37

6) Publish the Change


Options include: Sending patch file Forking on Bitbucket

38

40

41

Go Forth and Develop


http://nrg.wikispaces.com/XNAT+2010+Workshop++Custom+Features+and+Open+Source+Development

43

44

You might also like