Obtain Source Code

The source code is available from the NCSA opensource Git repository:

  git clone https://opensource.ncsa.illinois.edu/fisheye/git/dfdl.git

Requirements

Daffodil requires Java 1.6 or higher. All scripts provided for running and testing are written in bash and tested in GNU Linux. Those scripts are not required though, so Daffodil should be able to run in other platforms as long as Java is installed

Apache Ant (1.7 or higher) is required for building using the provided script.

Daffodil is written in Scala 2.9, which must be installed in order to run Daffodil.

Building from Source

An Ant script is provided in $DAFFODIL/build.xml. To build Daffodil simply issue:

  $ ant -f $DAFFODIL/build.xml all

or, if inside the installation directory:

  $ ant all

Compiling in eclipse

There are IDE's and eclipse plug-ins that can be used to build daffodil. See:

  http://www.scala-lang.org/node/91

Some time-dependent information: The As of November 2011, the Eclipse Indigo IDE (also known as version 3.7) and the current Scala plug-in for it (release 29, 2.0.0-beta, with this Eclipse update site: http://download.scala-ide.org/releases-29/2.0.0-beta), work for daffodil. They are robust enough to be useful, though there are some bugs still, and one must occasionally exit and re-enter Eclipse.

Tricks/Tips: You must increase the memory available, and specifically, the stack-size that Eclipse's JVM will use. This is done by editing eclipse.ini in the eclipse install directory. Below is an example of an eclipse.ini that works.

The first line "-clean" slows down starting Eclipse, but seems to be helpful given the current state of the Scala plug-in. Your mileage  may vary. The key changes are the last 3 lines. These set the minimum, maximum, and stack size to more reasonable values than the defaults. You need quite a bit of memory to use this IDE with Scala for Daffodil.

It is also very helpful when dealing with XML files to load the XML and XML-schema tools that are available in Eclipse.

-clean
-startup
plugins/org.eclipse.equinox.launcher_1.2.0.v20110502.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.gtk.linux.x86_1.1.100.v20110505
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
--launcher.defaultAction
openFile
-vmargs
-Xms1000m
-Xmx1250m
-Xss2m