<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Recent changes to 2_-_Setup</title><link>https://sourceforge.net/p/xena/wiki/2_-_Setup/</link><description>Recent changes to 2_-_Setup</description><atom:link href="https://sourceforge.net/p/xena/wiki/2_-_Setup/feed" rel="self"/><language>en</language><lastBuildDate>Thu, 13 Jun 2013 11:05:09 -0000</lastBuildDate><atom:link href="https://sourceforge.net/p/xena/wiki/2_-_Setup/feed" rel="self" type="application/rss+xml"/><item><title>2_-_Setup modified by Allan Cunliffe</title><link>https://sourceforge.net/p/xena/wiki/2_-_Setup/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v26
+++ v27
@@ -1,9 +1,12 @@
+[TOC]
+
+## Prerequisites
+
 This _How To_ assumes you have some experience with Java programming and have installed the following:

   * JDK 1.6 or higher &amp;lt;http://java.sun.com/j2se/1.5.0/download.jsp&amp;gt;
   * Apache Ant &amp;lt;http://ant.apache.org&amp;gt;
   * Xena &amp;lt;http://xena.sourceforge.net&amp;gt;. 
-[TOC]

 ## New file format

@@ -79,48 +82,53 @@

 4\. Create the compile path, to be used when compiling our plugins: 

+    
     &amp;lt;path id="compile.path"&amp;gt;
-    &amp;lt;pathelement location="${xenajarlocation}"/&amp;gt;
+            &amp;lt;pathelement location="${xenajarlocation}"/&amp;gt;
     &amp;lt;/path&amp;gt;

 5\. Add the _init_ and _clean_ targets: 

+    
     &amp;lt;target name="init" description="Create output directories"&amp;gt;
-    &amp;lt;mkdir dir="${builddir}"/&amp;gt;
-    &amp;lt;mkdir dir="${distdir}"/&amp;gt;
-    &amp;lt;/target&amp;gt;
+            &amp;lt;mkdir dir="${builddir}"/&amp;gt;
+            &amp;lt;mkdir dir="${distdir}"/&amp;gt;
+    &amp;lt;/target&amp;gt;
+    
     &amp;lt;target name="clean" depends="init" description="--&amp;gt; Clear all output files"&amp;gt;
-    &amp;lt;delete dir="${builddir}"/&amp;gt;
-    &amp;lt;delete dir="${distdir}"/&amp;gt;
+            &amp;lt;delete dir="${builddir}"/&amp;gt;
+            &amp;lt;delete dir="${distdir}"/&amp;gt;
     &amp;lt;/target&amp;gt;

 Then the actual compile job itself, broken into a couple of lines. 

+    
     &amp;lt;target name="compile" depends="init" description="--&amp;gt;Compile the .java sources"&amp;gt;
-    &amp;lt;javac srcdir="${srcdir}" destdir="${builddir}" debug="on"
-    verbose="on" classpathref="compile.path"/&amp;gt;
+                    &amp;lt;javac srcdir="${srcdir}" destdir="${builddir}" debug="on"
+                            verbose="on" classpathref="compile.path"/&amp;gt;
     &amp;lt;/target&amp;gt;

 6\. Add the _makejar_ job: 

+    
     &amp;lt;target name="makejar" description="--&amp;gt;Make the jar file" depends="compile"&amp;gt;
-    &amp;lt;delete &amp;gt;
-    &amp;lt;fileset file="${distdir}/${pluginname}.jar"/&amp;gt;
-    &amp;lt;/delete&amp;gt;
-    &amp;lt;jar jarfile="${distdir}/${pluginname}.jar" manifest="etc/MANIFEST.MF"&amp;gt;
-    &amp;lt;fileset dir="${builddir}"&amp;gt;
-    &amp;lt;include name="**/*.class"/&amp;gt;
-    &amp;lt;/fileset&amp;gt;
-    &amp;lt;fileset dir="."&amp;gt;
-    &amp;lt;include name = "name.properties"/&amp;gt;
-    &amp;lt;/fileset&amp;gt;
-    &amp;lt;fileset dir="${srcdir}"&amp;gt;
-    &amp;lt;include name = "**/*.properties"/&amp;gt;
-    &amp;lt;/fileset&amp;gt;
-    &amp;lt;/jar&amp;gt;
+            &amp;lt;delete &amp;gt;
+                    &amp;lt;fileset file="${distdir}/${pluginname}.jar"/&amp;gt;
+            &amp;lt;/delete&amp;gt;
+            &amp;lt;jar jarfile="${distdir}/${pluginname}.jar" manifest="etc/MANIFEST.MF"&amp;gt;
+                    &amp;lt;fileset dir="${builddir}"&amp;gt;
+                            &amp;lt;include name="**/*.class"/&amp;gt;
+                    &amp;lt;/fileset&amp;gt;
+                    &amp;lt;fileset dir="."&amp;gt;
+                            &amp;lt;include name = "name.properties"/&amp;gt;
+                    &amp;lt;/fileset&amp;gt;
+                    &amp;lt;fileset dir="${srcdir}"&amp;gt;
+                            &amp;lt;include name = "**/*.properties"/&amp;gt;
+                    &amp;lt;/fileset&amp;gt;
+            &amp;lt;/jar&amp;gt;
     &amp;lt;/target&amp;gt;

@@ -140,18 +148,25 @@

 So, our _FooPlugin.java_ file content will be: 

+    
     package au.gov.naa.digipres.xena.demo.foo;
+    
     import au.gov.naa.digipres.xena.kernel.plugin.XenaPlugin;
+    
     public class FooPlugin extends XenaPlugin {
-    public static final String FOO_PLUGIN_NAME = "foo";
-      @Override
-    public String getName() {
-    return FOO_PLUGIN_NAME;
-      }
-     @Override
-     public String getVersion() {
-     return "0.1";
-      }
+    
+            public static final String FOO_PLUGIN_NAME = "foo";
+            
+            @Override
+            public String getName() {
+                    return FOO_PLUGIN_NAME;
+            }
+    
+            @Override
+            public String getVersion() {
+                    return "0.1";
+            }
+    
     }

&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Allan Cunliffe</dc:creator><pubDate>Thu, 13 Jun 2013 11:05:09 -0000</pubDate><guid>https://sourceforge.net27aae517c40b0bc5e2dad70d606233c241ffee3e</guid></item><item><title>2_-_Setup modified by Allan Cunliffe</title><link>https://sourceforge.net/p/xena/wiki/2_-_Setup/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v25
+++ v26
@@ -5,7 +5,7 @@
   * Xena &amp;lt;http://xena.sourceforge.net&amp;gt;. 
 [TOC]

-## A New File Format
+## New file format

 For the purpose of working through this tutorial, let's assume that we have a requirement to create a normaliser for a brand new file format. This file format, the 'foo' file format, is the mainstay of organisation X, and is specified as follows: All 'foo' files are UTF-8 text or ASCII, and should have the extension 'foo', and begin with the sequence of characters: 

&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Allan Cunliffe</dc:creator><pubDate>Thu, 13 Jun 2013 11:05:09 -0000</pubDate><guid>https://sourceforge.netd9b73d1e9166de7aa92fa5859bf7142d75e02808</guid></item><item><title>2_-_Setup modified by Allan Cunliffe</title><link>https://sourceforge.net/p/xena/wiki/2_-_Setup/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v24
+++ v25
@@ -24,9 +24,7 @@
     &amp;lt;/foo&amp;gt;

-## First Steps
-
-### 1\. Create an outline of the plugin that will be loaded by Xena.
+## Create an outline of the plugin that will be loaded by Xena.

 Xena expects plugins to be loaded as JAR files, laid out in a specific way. To aid in this, the Apache Ant build tool will be used. To set up our plugin development directory, we will create a new folder, called _foo_plugin_, at an arbitrary place in the filesystem. This folder will be called the _home folder_, and designated by '~/' so our plugin will be contained in '~/foo_plugin'. For Windows users, switch the '/' to '\', and the '~' to something like _C:\Documents and Settings\UserName\My Documents_. 

@@ -40,7 +38,7 @@
     classname=au.gov.naa.digipres.xena.demo.foo.FooPlugin

-### 2\. Create the source folder for the package, and put the _name.properties_ file inside it.
+## Create the source folder for the package, and put the _name.properties_ file inside it.

 In this example, the source will be created in the folder named 'src', and the output of any compiling will go to 'bin', and a dist folder will contain the built JAR file. Any configuration files will be put into a folder named 'etc', and finally, any required external libraries (probably in JAR form) will be stored in the 'ext' folder. Create those folders and the _name.properties_ file now. At the end of setting up the folder structure, we should have the following entries in the _~/foo_plugin_ folder: 

@@ -51,17 +49,17 @@
     - name.properties

-### 3\. Create an Ant build file to do it all automatically.
+## Create an Ant build file to do it all automatically.

 The _foo_plugin_ directory contains a sample build file. The following instructions can be used to recreate this build file: 

-i. Create the top-level project element. Everything else in the _build.xml_ file listed below goes between these opening and closing project tags. 
+1\. Create the top-level project element. Everything else in the _build.xml_ file listed below goes between these opening and closing project tags. 

     &amp;lt;project name="foo" basedir="." default="makejar"&amp;gt;
     &amp;lt;/project&amp;gt;

-ii. Set the name of the plugin, and match the folder structure used in our project. 
+2\. Set the name of the plugin, and match the folder structure used in our project. 

     &amp;lt;property name="pluginname" value="foo"/&amp;gt;
     &amp;lt;property name="srcdir" value="src"/&amp;gt;
@@ -70,7 +68,7 @@
     &amp;lt;property name="distdir" value="dist"/&amp;gt;

-iii. Set the location of the _xena.jar_ file in a property named, appropriately, _xenajarlocation_. This is the most likely property to need changing, unless you happen to have the _xena_ file in the same relative location. 
+3\. Set the location of the _xena.jar_ file in a property named, appropriately, _xenajarlocation_. This is the most likely property to need changing, unless you happen to have the _xena_ file in the same relative location. 

 This guide assumes that you have already built the _xena.jar_ file. If this is not the case, please follow the build guide on the Xena website in order to do so. 

@@ -79,14 +77,14 @@
     &amp;lt;property name="xenajarlocation" value="../../xena/xena.jar" /&amp;gt;

-iv. Create the compile path, to be used when compiling our plugins: 
+4\. Create the compile path, to be used when compiling our plugins: 

     &amp;lt;path id="compile.path"&amp;gt;
     &amp;lt;pathelement location="${xenajarlocation}"/&amp;gt;
     &amp;lt;/path&amp;gt;

-v. Add the _init_ and _clean_ targets: 
+5\. Add the _init_ and _clean_ targets: 

     &amp;lt;target name="init" description="Create output directories"&amp;gt;
     &amp;lt;mkdir dir="${builddir}"/&amp;gt;
@@ -106,7 +104,7 @@
     &amp;lt;/target&amp;gt;

-vi. Add the _makejar_ job: 
+6\. Add the _makejar_ job: 

     &amp;lt;target name="makejar" description="--&amp;gt;Make the jar file" depends="compile"&amp;gt;
     &amp;lt;delete &amp;gt;
@@ -133,7 +131,7 @@

 The manifest file should be named _MANIFEST.MF_, and be placed in the _etc_ folder, as specified in the ant build job. Also, the makejar job looks for the _name.properties_ file in the base directory, and any properties files in the _src_ directory tree. 

-### 4\. Create the FooPlugin class.
+## Create the FooPlugin class

 This class will tell Xena what it is we can expect to find in the plugin. It specifies any normalisers, types, guessers, file namers, meta data package wrappers, help sets, basically anything that can be in a normaliser. It will need to extend the _XenaPlugin_ class, found in the _au.gov.naa.digipres.xena.kernel.plugin package_. For the moment, we will leave it almost entirely blank, we will just override the only two abstract methods in XenaPlugin: 

@@ -157,14 +155,32 @@
     }

-This file is expected to be in the JAR at the location: 'au/gov/naa/digipres/xena/demo/foo'. To make this happen, we will stick it into that location in the source tree. 
+This file is expected to be in the JAR at the location: _au/gov/naa/digipres/xena/demo/foo_. To make this happen, we will stick it into that location in the source tree. 

 So, several make directory commands later, we now have the folder: 

     ~/foo_plugin/src/au/gov/naa/digipres/xena/demo/foo

-This folder contains the single file "FooPlugin.java". To see that everything is going well, it is time to build our (empty) foo plugin for the first time. In a command shell, at the location '~/foo_plugin', type **ant**. If everything works, a JAR file, named _foo.jar_ will now exist in the folder _dist_. Running the command **jar -tvf foo.jar** reveals the contents of the JAR as such: 
+This folder contains the single file _FooPlugin.java_. 
+
+## Build the Foo plugin
+
+It is time to build our (empty) foo plugin for the first time. 
+
+1\. In a command shell, at the location '~/foo_plugin', type: 
+    
+    ant
+    
+
+If everything works, a JAR file, named _foo.jar_ will now exist in the folder _dist_. 
+
+2\. Type: 
+    
+    jar -tvf foo.jar
+    
+
+This reveals the contents of the JAR: 

     #jar -tvf foo.jar
         0 Wed Nov 21 15:03:48 EST 2007 META-INF/
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Allan Cunliffe</dc:creator><pubDate>Thu, 13 Jun 2013 11:05:09 -0000</pubDate><guid>https://sourceforge.netffcd3f0dc150a2743dc673f58f651944f7b5ad37</guid></item><item><title>2_-_Setup modified by Allan Cunliffe</title><link>https://sourceforge.net/p/xena/wiki/2_-_Setup/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v23
+++ v24
@@ -1,10 +1,9 @@
-## Prerequisites
-
 This _How To_ assumes you have some experience with Java programming and have installed the following:

   * JDK 1.6 or higher &amp;lt;http://java.sun.com/j2se/1.5.0/download.jsp&amp;gt;
   * Apache Ant &amp;lt;http://ant.apache.org&amp;gt;
   * Xena &amp;lt;http://xena.sourceforge.net&amp;gt;. 
+[TOC]

 ## A New File Format

@@ -27,7 +26,7 @@

 ## First Steps

-1\. Create an outline of the plugin that will be loaded by Xena. 
+### 1\. Create an outline of the plugin that will be loaded by Xena.

 Xena expects plugins to be loaded as JAR files, laid out in a specific way. To aid in this, the Apache Ant build tool will be used. To set up our plugin development directory, we will create a new folder, called _foo_plugin_, at an arbitrary place in the filesystem. This folder will be called the _home folder_, and designated by '~/' so our plugin will be contained in '~/foo_plugin'. For Windows users, switch the '/' to '\', and the '~' to something like _C:\Documents and Settings\UserName\My Documents_. 

@@ -41,7 +40,7 @@
     classname=au.gov.naa.digipres.xena.demo.foo.FooPlugin

-2\. Create the source folder for the package, and put the _name.properties_ file inside it. 
+### 2\. Create the source folder for the package, and put the _name.properties_ file inside it.

 In this example, the source will be created in the folder named 'src', and the output of any compiling will go to 'bin', and a dist folder will contain the built JAR file. Any configuration files will be put into a folder named 'etc', and finally, any required external libraries (probably in JAR form) will be stored in the 'ext' folder. Create those folders and the _name.properties_ file now. At the end of setting up the folder structure, we should have the following entries in the _~/foo_plugin_ folder: 

@@ -52,7 +51,7 @@
     - name.properties

-3\. Create an Ant build file to do it all automatically. 
+### 3\. Create an Ant build file to do it all automatically.

 The _foo_plugin_ directory contains a sample build file. The following instructions can be used to recreate this build file: 

@@ -73,9 +72,9 @@

 iii. Set the location of the _xena.jar_ file in a property named, appropriately, _xenajarlocation_. This is the most likely property to need changing, unless you happen to have the _xena_ file in the same relative location. 

-This guide assumes that you have already built the xena.jar file. If this is not the case, please follow the build guide on the Xena website in order to do so. 
+This guide assumes that you have already built the _xena.jar_ file. If this is not the case, please follow the build guide on the Xena website in order to do so. 

-The default location for the _xena.jar_ file is the xena directory of the root _plugin-howto_ directory. 
+The default location for the _xena.jar_ file is the _xena_ directory of the root _plugin-howto_ directory. 

     &amp;lt;property name="xenajarlocation" value="../../xena/xena.jar" /&amp;gt;

@@ -127,14 +126,14 @@
     &amp;lt;/target&amp;gt;

-The manifest for the JAR file is referenced in the _makejar_ target. Since there will be no main class in our plugin Jar, all we will include in our manifest file will be the line: 
+The manifest for the JAR file is referenced in the _makejar_ target. Since there will be no main class in our plugin JAR, all we will include in our manifest file will be the line: 

     Manifest-Version: 1.0

-The manifest file should be named _MANIFEST.MF_, and be placed in the etc folder, as specified in the ant build job. Also, the makejar job looks for the _name.properties_ file in the base directory, and any properties files in the _src_ directory tree. 
+The manifest file should be named _MANIFEST.MF_, and be placed in the _etc_ folder, as specified in the ant build job. Also, the makejar job looks for the _name.properties_ file in the base directory, and any properties files in the _src_ directory tree. 

-4\. Create the FooPlugin class. 
+### 4\. Create the FooPlugin class.

 This class will tell Xena what it is we can expect to find in the plugin. It specifies any normalisers, types, guessers, file namers, meta data package wrappers, help sets, basically anything that can be in a normaliser. It will need to extend the _XenaPlugin_ class, found in the _au.gov.naa.digipres.xena.kernel.plugin package_. For the moment, we will leave it almost entirely blank, we will just override the only two abstract methods in XenaPlugin: 

@@ -165,7 +164,7 @@
     ~/foo_plugin/src/au/gov/naa/digipres/xena/demo/foo

-This folder contains the single file "FooPlugin.java". To see that everything is going well, it is time to build our (empty) foo plugin for the first time. In a command shell, at the location '~/foo_plugin', type **ant**. If everything works, a JAR file, named _foo.jar_ will now exist in the folder 'dist'. Running the command 'jar -tvf foo.jar' reveals the contents of the jar as such: 
+This folder contains the single file "FooPlugin.java". To see that everything is going well, it is time to build our (empty) foo plugin for the first time. In a command shell, at the location '~/foo_plugin', type **ant**. If everything works, a JAR file, named _foo.jar_ will now exist in the folder _dist_. Running the command **jar -tvf foo.jar** reveals the contents of the JAR as such: 

     #jar -tvf foo.jar
         0 Wed Nov 21 15:03:48 EST 2007 META-INF/
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Allan Cunliffe</dc:creator><pubDate>Thu, 13 Jun 2013 11:05:09 -0000</pubDate><guid>https://sourceforge.net76194ef63a6b2753043ddabfb7fdd9cfd521f74b</guid></item><item><title>2_-_Setup modified by Allan Cunliffe</title><link>https://sourceforge.net/p/xena/wiki/2_-_Setup/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v22
+++ v23
@@ -13,9 +13,9 @@
     ~beginfoo

-After that, a foo file is partitioned into parts separated by the '~' character. The '\' character is used as an escape sequence, if it is followed by a '~' or '\' character these characters are taken as literal, otherwise the '\' is ignored. At this stage, this is all we are going to be concerned with, and when we preserve 'foo' files, we will be preserving each part of the file as a separate piece of XML. 
+After that, a foo file is partitioned into parts separated by the '~' character. The '\' character is used as an escape sequence, if it is followed by a '~' or '\' character these characters are taken as literal, otherwise the '\' is ignored. At this stage, this is all we are going to be concerned with. When we preserve 'foo' files, we will be preserving each part of the file as a separate piece of XML. 

-It is possible that some foo files will not have the correct filename extension, it is also possible that some files which are not 'foo' files will have the foo extension. Organisation X proposes that the XML schema for the preserved 'foo' file format will be as such: 
+It is possible that some foo files will not have the correct filename extension, it is also possible that some files which are not 'foo' files will have the foo extension. _Organisation X_ proposes that the XML schema for the preserved 'foo' file format will be as such: 

     &amp;lt;foo&amp;gt;
     &amp;lt;part&amp;gt;SOME DATA&amp;lt;/part&amp;gt;
@@ -27,21 +27,23 @@

 ## First Steps

-The very first step we will undertake is to create an outline of the plugin that will be loaded by Xena. Xena expects plugins to be loaded as JAR files, laid out in a specific way. To aid in this, the Apache Ant build tool will be used. To set up our plugin development directory, we will create a new folder, called foo_plugin, at an arbitrary place in the filesystem. This folder will be called the home folder, and designated by '~/' so our plugin will be contained in '~/foo_plugin'. For Windows users, switch the '/' to '\', and the '~' to something like _C:\Documents and Settings\UserName\My Documents_. 
+1\. Create an outline of the plugin that will be loaded by Xena. 
+
+Xena expects plugins to be loaded as JAR files, laid out in a specific way. To aid in this, the Apache Ant build tool will be used. To set up our plugin development directory, we will create a new folder, called _foo_plugin_, at an arbitrary place in the filesystem. This folder will be called the _home folder_, and designated by '~/' so our plugin will be contained in '~/foo_plugin'. For Windows users, switch the '/' to '\', and the '~' to something like _C:\Documents and Settings\UserName\My Documents_. 

 To start off with, we get all the components we need to make a plugin. The first is the _name.properties_ file. This file should be loaded in the base directory of the JAR file, and should contain the fully qualified name of the plugin loader class, which is the class that will load all the components of the plugin. In this example, we will be putting all our classes in the package: 

     au.gov.naa.digipres.xena.demo.foo

-The plugin class loader will be called FooPlugin. So here is the content of our name.properties file: 
+The plugin class loader will be called FooPlugin. So here is the content of our _name.properties_ file: 

     classname=au.gov.naa.digipres.xena.demo.foo.FooPlugin

-The next thing we have to do is create the source folder for the package, and put the name.properties file inside that. 
+2\. Create the source folder for the package, and put the _name.properties_ file inside it. 

-In this example, the source will be created in the folder named 'src', and the output of any compiling will go to 'bin', and a dist folder will contain the built JAR file. Any configuration files will be put into a folder named 'etc', and finally, any required external libraries (probably in JAR form) will be stored in the 'ext' folder. Create those folders and the name.properties file now. At the end of setting up the folder structure, we should have the following entries in the _~/foo_plugin_ folder: 
+In this example, the source will be created in the folder named 'src', and the output of any compiling will go to 'bin', and a dist folder will contain the built JAR file. Any configuration files will be put into a folder named 'etc', and finally, any required external libraries (probably in JAR form) will be stored in the 'ext' folder. Create those folders and the _name.properties_ file now. At the end of setting up the folder structure, we should have the following entries in the _~/foo_plugin_ folder: 

     - /bin
     - /dist
@@ -50,15 +52,17 @@
     - name.properties

-Now, to make this all happen simply, we will create an Ant build file to do it all automatically. The _foo_plugin_ directory contains a sample build file. The following instructions can be used to recreate this build file. 
+3\. Create an Ant build file to do it all automatically. 

-First up, we will create the top-level project element. Everything else in the _build.xml_ file listed below goes between these opening and closing project tags. 
+The _foo_plugin_ directory contains a sample build file. The following instructions can be used to recreate this build file: 
+
+i. Create the top-level project element. Everything else in the _build.xml_ file listed below goes between these opening and closing project tags. 

     &amp;lt;project name="foo" basedir="." default="makejar"&amp;gt;
     &amp;lt;/project&amp;gt;

-Next we will set up a bunch of properties to set the name of the plugin, and match the folder structure used in our project. 
+ii. Set the name of the plugin, and match the folder structure used in our project. 

     &amp;lt;property name="pluginname" value="foo"/&amp;gt;
     &amp;lt;property name="srcdir" value="src"/&amp;gt;
@@ -67,7 +71,7 @@
     &amp;lt;property name="distdir" value="dist"/&amp;gt;

-Now we set the location of the _xena.jar_ file in a property named, appropriately, _xenajarlocation_. This is the most likely property to need changing, unless you happen to have the _xena_ file in the same relative location. 
+iii. Set the location of the _xena.jar_ file in a property named, appropriately, _xenajarlocation_. This is the most likely property to need changing, unless you happen to have the _xena_ file in the same relative location. 

 This guide assumes that you have already built the xena.jar file. If this is not the case, please follow the build guide on the Xena website in order to do so. 

@@ -76,14 +80,14 @@
     &amp;lt;property name="xenajarlocation" value="../../xena/xena.jar" /&amp;gt;

-The next thing we do is create the compile path, to be used when compiling our plugins. 
+iv. Create the compile path, to be used when compiling our plugins: 

     &amp;lt;path id="compile.path"&amp;gt;
     &amp;lt;pathelement location="${xenajarlocation}"/&amp;gt;
     &amp;lt;/path&amp;gt;

-Now we add the _init_ and _clean_ targets. 
+v. Add the _init_ and _clean_ targets: 

     &amp;lt;target name="init" description="Create output directories"&amp;gt;
     &amp;lt;mkdir dir="${builddir}"/&amp;gt;
@@ -103,7 +107,7 @@
     &amp;lt;/target&amp;gt;

-And finally the _makejar_ job: 
+vi. Add the _makejar_ job: 

     &amp;lt;target name="makejar" description="--&amp;gt;Make the jar file" depends="compile"&amp;gt;
     &amp;lt;delete &amp;gt;
@@ -123,14 +127,16 @@
     &amp;lt;/target&amp;gt;

-The manifest for the JAR file is referenced in the makejar target. Since there will be no main class in our plugin Jar, all we will include in our manifest file will be the line: 
+The manifest for the JAR file is referenced in the _makejar_ target. Since there will be no main class in our plugin Jar, all we will include in our manifest file will be the line: 

     Manifest-Version: 1.0

-The manifest file should be named _MANIFEST.MF_, and be placed in the etc folder, as specified in the ant build job. Also, the makejar job looks for the _name.properties_ file in the base directory, and any properties files in the src directory tree. 
+The manifest file should be named _MANIFEST.MF_, and be placed in the etc folder, as specified in the ant build job. Also, the makejar job looks for the _name.properties_ file in the base directory, and any properties files in the _src_ directory tree. 

-Our next job will be to create the FooPlugin class. This class will tell Xena what it is we can expect to find in the plugin. It specifies any normalisers, types, guessers, file namers, meta data package wrappers, help sets, basically anything that can be in a normaliser. It will need to extend the _XenaPlugin_ class, found in the _au.gov.naa.digipres.xena.kernel.plugin package_. For the moment, we will leave it almost entirely blank, we will just override the only two abstract methods in XenaPlugin: 
+4\. Create the FooPlugin class. 
+
+This class will tell Xena what it is we can expect to find in the plugin. It specifies any normalisers, types, guessers, file namers, meta data package wrappers, help sets, basically anything that can be in a normaliser. It will need to extend the _XenaPlugin_ class, found in the _au.gov.naa.digipres.xena.kernel.plugin package_. For the moment, we will leave it almost entirely blank, we will just override the only two abstract methods in XenaPlugin: 

   * _getName_
   * _getVersion_. 
@@ -152,12 +158,14 @@
     }

-Now this file is expected to be in the JAR at the location: 'au/gov/naa/digipres/xena/demo/foo'. To make this happen, we will stick it into that location in the source tree. So, several make directory commands later, we now have the folder: 
+This file is expected to be in the JAR at the location: 'au/gov/naa/digipres/xena/demo/foo'. To make this happen, we will stick it into that location in the source tree. 
+
+So, several make directory commands later, we now have the folder: 

     ~/foo_plugin/src/au/gov/naa/digipres/xena/demo/foo

-This folder contains the single file "FooPlugin.java". To see that everything is going well, it is time to build our (empty) foo plugin for the first time. In a command shell, at the location '~/foo_plugin', type ant. If everything works, a JAR file, named foo.jar will now exist in the folder 'dist'. Running the command 'jar -tvf foo.jar' reveals the contents of the jar as such: 
+This folder contains the single file "FooPlugin.java". To see that everything is going well, it is time to build our (empty) foo plugin for the first time. In a command shell, at the location '~/foo_plugin', type **ant**. If everything works, a JAR file, named _foo.jar_ will now exist in the folder 'dist'. Running the command 'jar -tvf foo.jar' reveals the contents of the jar as such: 

     #jar -tvf foo.jar
         0 Wed Nov 21 15:03:48 EST 2007 META-INF/
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Allan Cunliffe</dc:creator><pubDate>Thu, 13 Jun 2013 11:05:08 -0000</pubDate><guid>https://sourceforge.nete6d7e71b56653586d7a42ecbbb07fe17d89f5f9e</guid></item><item><title>2_-_Setup modified by Allan Cunliffe</title><link>https://sourceforge.net/p/xena/wiki/2_-_Setup/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v21
+++ v22
@@ -1,3 +1,11 @@
+## Prerequisites
+
+This _How To_ assumes you have some experience with Java programming and have installed the following: 
+
+  * JDK 1.6 or higher &amp;lt;http://java.sun.com/j2se/1.5.0/download.jsp&amp;gt;
+  * Apache Ant &amp;lt;http://ant.apache.org&amp;gt;
+  * Xena &amp;lt;http://xena.sourceforge.net&amp;gt;. 
+
 ## A New File Format

 For the purpose of working through this tutorial, let's assume that we have a requirement to create a normaliser for a brand new file format. This file format, the 'foo' file format, is the mainstay of organisation X, and is specified as follows: All 'foo' files are UTF-8 text or ASCII, and should have the extension 'foo', and begin with the sequence of characters: 
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Allan Cunliffe</dc:creator><pubDate>Thu, 13 Jun 2013 11:05:08 -0000</pubDate><guid>https://sourceforge.net37df11ce2be78e8f0172ee900c7c4158aca9cad8</guid></item><item><title>2_-_Setup modified by Allan Cunliffe</title><link>https://sourceforge.net/p/xena/wiki/2_-_Setup/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v20
+++ v21
@@ -1,14 +1,3 @@
-## Prerequisites
-
-This _How To_ assumes you have some experience with Java programming and have installed the following: 
-
-  * JDK 1.6 or higher &amp;lt;http://java.sun.com/j2se/1.5.0/download.jsp&amp;gt;
-  * Apache Ant &amp;lt;http://ant.apache.org&amp;gt;
-  * Xena &amp;lt;http://xena.sourceforge.net&amp;gt;. 
-
-  
-
-
 ## A New File Format

 For the purpose of working through this tutorial, let's assume that we have a requirement to create a normaliser for a brand new file format. This file format, the 'foo' file format, is the mainstay of organisation X, and is specified as follows: All 'foo' files are UTF-8 text or ASCII, and should have the extension 'foo', and begin with the sequence of characters: 
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Allan Cunliffe</dc:creator><pubDate>Thu, 13 Jun 2013 11:05:08 -0000</pubDate><guid>https://sourceforge.net39a5b5b10ddd8d7a028b809d208bc9529d45c735</guid></item><item><title>2_-_Setup modified by Allan Cunliffe</title><link>https://sourceforge.net/p/xena/wiki/2_-_Setup/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Allan Cunliffe</dc:creator><pubDate>Thu, 13 Jun 2013 11:05:08 -0000</pubDate><guid>https://sourceforge.net1f6483b07faaafa4c4bec6f7d75d27f029a3db43</guid></item><item><title>2_-_Setup modified by Allan Cunliffe</title><link>https://sourceforge.net/p/xena/wiki/2_-_Setup/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v18
+++ v19
@@ -92,8 +92,6 @@
     &amp;lt;mkdir dir="${builddir}"/&amp;gt;
     &amp;lt;mkdir dir="${distdir}"/&amp;gt;
     &amp;lt;/target&amp;gt;
-    
-    
     &amp;lt;target name="clean" depends="init" description="--&amp;gt; Clear all output files"&amp;gt;
     &amp;lt;delete dir="${builddir}"/&amp;gt;
     &amp;lt;delete dir="${distdir}"/&amp;gt;
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Allan Cunliffe</dc:creator><pubDate>Thu, 13 Jun 2013 11:05:08 -0000</pubDate><guid>https://sourceforge.netbf806b5da71081ec18c9cc0a2be1a9229f0b3652</guid></item><item><title>2_-_Setup modified by Allan Cunliffe</title><link>https://sourceforge.net/p/xena/wiki/2_-_Setup/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v17
+++ v18
@@ -135,7 +135,10 @@

 The manifest file should be named _MANIFEST.MF_, and be placed in the etc folder, as specified in the ant build job. Also, the makejar job looks for the _name.properties_ file in the base directory, and any properties files in the src directory tree. 

-Our next job will be to create the FooPlugin class. This class will tell Xena what it is we can expect to find in the plugin. It specifies any normalisers, types, guessers, file namers, meta data package wrappers, help sets, basically anything that can be in a normaliser. It will need to extend the _XenaPlugin_ class, found in the _au.gov.naa.digipres.xena.kernel.plugin package_. For the moment, we will leave it almost entirely blank, we will just override the only two abstract methods in XenaPlugin - getName and getVersion. 
+Our next job will be to create the FooPlugin class. This class will tell Xena what it is we can expect to find in the plugin. It specifies any normalisers, types, guessers, file namers, meta data package wrappers, help sets, basically anything that can be in a normaliser. It will need to extend the _XenaPlugin_ class, found in the _au.gov.naa.digipres.xena.kernel.plugin package_. For the moment, we will leave it almost entirely blank, we will just override the only two abstract methods in XenaPlugin: 
+
+  * _getName_
+  * _getVersion_. 

 So, our _FooPlugin.java_ file content will be: 

&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Allan Cunliffe</dc:creator><pubDate>Thu, 13 Jun 2013 11:05:08 -0000</pubDate><guid>https://sourceforge.net29c53512918b460d11cc2997cab767d1cc764eb3</guid></item></channel></rss>