Difference between revisions of "Source code"

(Started editing the Development page)
(Reword a little bit and document the concerns of the five building blocks)
Line 1: Line 1:
{{Development}}
+
{{Development}}The source code of Fiji/ImageJ2 is very modular, i.e. it is organized into well-separated subprojects. That separation offers many advantages for efficient software development and it is well worth investing a little bit of time to understand.
 
 
Developing for Fiji/ImageJ2 is organized on three different levels. While it seems complicated at first, it offers many advantages for efficient software development and will be well worth investing some time to understand the Fiji/ImageJ2 eco system.
 
  
 
The actual source code development is managed using the [[Git]] version control system.  
 
The actual source code development is managed using the [[Git]] version control system.  
Line 8: Line 6:
 
The source code of [[ImageJ]] and related [[SciJava]] projects is managed using the [[Git]] version control system.
 
The source code of [[ImageJ]] and related [[SciJava]] projects is managed using the [[Git]] version control system.
  
All source code is on GitHub:
+
All source code is on GitHub. The user-facing parts are:
* [https://github.com/imagej ImageJ]
+
 
* [https://github.com/fiji Fiji]
+
* [https://github.com/imagej ImageJ] – a generic image processing application
* [https://github.com/imglib ImgLib2]
+
* [https://github.com/fiji Fiji] – a distribution of ImageJ and plugins supporting life sciences in particular
* [https://github.com/scifio SCIFIO]
+
 
* [https://github.com/scijava SciJava]
+
Both ImageJ and Fiji consist of multiple sub-projects; All projects address their individual "concern" and leave all other concerns to the respective other projects.
 +
 
 +
The developer-facing parts are:
 +
 
 +
* [https://github.com/imglib ImgLib2] – generic multi-dimensional data processing in Java
 +
* [https://github.com/scifio SCIFIO] – file I/O
 +
* [https://github.com/scijava SciJava] – common utilities, plugin infrastructure, scripting, the context
  
 
== Building from source ==
 
== Building from source ==

Revision as of 17:49, 16 October 2014

Template:DevelopmentThe source code of Fiji/ImageJ2 is very modular, i.e. it is organized into well-separated subprojects. That separation offers many advantages for efficient software development and it is well worth investing a little bit of time to understand.

The actual source code development is managed using the Git version control system.

Source code

The source code of ImageJ and related SciJava projects is managed using the Git version control system.

All source code is on GitHub. The user-facing parts are:

  • ImageJ – a generic image processing application
  • Fiji – a distribution of ImageJ and plugins supporting life sciences in particular

Both ImageJ and Fiji consist of multiple sub-projects; All projects address their individual "concern" and leave all other concerns to the respective other projects.

The developer-facing parts are:

  • ImgLib2 – generic multi-dimensional data processing in Java
  • SCIFIO – file I/O
  • SciJava – common utilities, plugin infrastructure, scripting, the context

Building from source

  1. Install Maven.
  2. Clone the source repository of interest.
  3. Type mvn from the top-level directory.

Using an IDE

You can import the code into your favorite IDE.

Javadocs

You can browse the Javadocs online.

Running ImageJ1 unit tests

We have written a substantial number of unit tests to exercise ImageJ 1.x functionality. See the Unit tests for ImageJ1 page for more information.