diff --git a/.classpath b/.classpath
index cb5e8f1662a4ab1bf1efbb8d36630e30a315f919..b940f9666cb452393b2224f300350a8941c03225 100644
--- a/.classpath
+++ b/.classpath
@@ -9,6 +9,7 @@
 	</classpathentry>
 	<classpathentry kind="src" output="target/test-classes" path="src/test/java">
 		<attributes>
+			<attribute name="test" value="true"/>
 			<attribute name="optional" value="true"/>
 			<attribute name="maven.pomderived" value="true"/>
 		</attributes>
@@ -20,13 +21,15 @@
 	</classpathentry>
 	<classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources">
 		<attributes>
+			<attribute name="test" value="true"/>
 			<attribute name="maven.pomderived" value="true"/>
 		</attributes>
 	</classpathentry>
 	<classpathentry kind="src" path="src/assembly"/>
 	<classpathentry kind="src" path="src/site"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8">
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11">
 		<attributes>
+			<attribute name="module" value="true"/>
 			<attribute name="maven.pomderived" value="true"/>
 		</attributes>
 	</classpathentry>
@@ -37,6 +40,7 @@
 	</classpathentry>
 	<classpathentry kind="src" output="target/test-classes" path="src/test/evosuite">
 		<attributes>
+			<attribute name="test" value="true"/>
 			<attribute name="optional" value="true"/>
 			<attribute name="maven.pomderived" value="true"/>
 		</attributes>
diff --git a/.gitignore b/.gitignore
index 33df0f4a3dc31972ffb68dbb69ba54613421041a..af1c7913d766a2a8fbd74c42c921507f94719fb2 100644
--- a/.gitignore
+++ b/.gitignore
@@ -7,3 +7,4 @@ test/coverage-report
 dependency-reduced-pom.xml
 maven.properties
 .evosuite
+maven-archiver
diff --git a/README.md b/README.md
index 4c02249ba3bdc40b57c7e5afdd4749decbd5171c..0139ddf7bd2fe56cc4de449b45f4a9b80b25902c 100644
--- a/README.md
+++ b/README.md
@@ -32,8 +32,16 @@ Artemis is a free genome browser and annotation tool that allows visualisation o
 
 ACT is a free tool for displaying pairwise comparisons between two or more DNA sequences. It can be used to identify and analyse regions of similarity and difference between genomes and to explore conservation of synteny, in the context of the entire sequences and their annotation.
 
+DNAPlotter generates images of circular and linear DNA maps.
+
+BamView is a standalone BAM/CRAM file viewer.
+
 For further information, please see the [Artemis GitHub page](http://sanger-pathogens.github.io/Artemis/)
 
+## Prerequisites
+
+Java 9+ must be installed. Ideally Java 11.
+
 ## Installation
 
 Please refer to the relevant documentation in the Documentation section below.
@@ -45,12 +53,103 @@ Please refer to the relevant documentation in the Documentation section below.
 ## Building
 
 If you would prefer to build the applications from scratch rather than use the pre-built releases in GitHub, then you will firstly need the source code from GitHub. This can be obtained by cloning the repository:
+```
+git clone https://github.com/sanger-pathogens/Artemis.git
+```
+or by downloading the source zip file for a particular release. The latest version of Apache Maven (Java 11 compatible, e.g. v3.6.0) will need to be installed beforehand, in order to build. The application jars can be built by issuing the following commands in the top-level folder:
+
+When building for the first time:
+```
+mvn validate
+```
+This is required to install some legacy libraries to the Maven repository and will be phased out in future releases.
+
+And then to build/rebuild the applications :
+```
+mvn clean package
+```
+Clean is only required if you wish to do a complete rebuild.
+If you do not wish to run tests then add the <i>-Dskip.tests=true</i> flag to the above command.
+
+Note that if you are running a build from behind a proxy you will need to add the proxy parameters to the mvn command line, e.g.
+```
+mvn -Dhttps.proxyHost=myproxyhost -Dhttps.proxyPort=myproxyport -DproxySet=true package
+```
+
+## Searching and Using Local Sequence Databases
+
+Artemis and ACT can optionally be used with local sequence databases on non-Windows systems.
+
+[Note: this may require a lot of disk space]
+
+If you wish to do this then carry out the following steps:
+
+1. To download and install BLAST+ locally, check here:
+
+  ```
+  ftp://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/LATEST/
+  ```
+  to get the latest Mac OS X release:
+
+  ```
+  ftp://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/LATEST/ncbi-blast-2.7.1+-x64-macosx.tar.gz
+  ```
+  Uncompress, if you have downloaded a .tar.gz, e.g.
+
+  ```
+  tar -zxvf ncbi-blast-2.7.1+-x64-macosx.tar.gz
+  ```
+  For a Mac OS X install you can mount the resulting .dmg image by double-clicking it and then selecting the .pkg installer file to actually install the BLAST+ executables into the default location (/usr/local/ncbi/blast). Comprehensive installation instructions for all operating systems are provided  [here](https://www.ncbi.nlm.nih.gov/books/NBK279690/).
+
+2. To download and install Fasta locally, check here:
+
+  ```
+  ftp://ftp.ebi.ac.uk/pub/software/unix/fasta/
+  ```
+
+  and download the latest release, e.g.
+
+  ```
+  ftp://ftp.ebi.ac.uk/pub/software/unix/fasta/fasta3/fasta-36.3.8g.tar.gz
+  ```
+  Uncompress the tar:
+
+  ```
+  tar -zxvf fasta-36.3.8g.tar.gz
+  ```
+
+  Build the executables, e.g. for a Mac:
+
+  ```
+  cd fasta/src
+  make -f ../make/Makefile.os_x86_64 all
+  ```
+  Move the fasta folder to a convenient area, preferably /usr/local/ for Macs:
+
+3. Ensure that the BLAST+ and Fasta executables are available in your PATH and that local databases can be found by Artemis:
+
+  On the command line type:
+
+  ```
+  blastp -help
+  fasta36 -help
+  ```
+  If the executables are not found then their respective installation bin folders will need to be added to your .profile PATH variable. This can be achieved by uncommenting and setting the relevant environment variables in the **Variables for locally installed Blast databases** section of the Artemis **setenv** script. The location of the databases is assumed by default to be &lt;home directory&gt;/blast-data but this can be overridden by setting the BLASTDB and FASTLIBS variables. The setenv script should then be called from your login **.profile** file. Alternatively copy the relevant variables into your profile.
+
+  Note that database locations can also be specified directly within the Artemis/ACT applications.
+
+4. Download and format the uniprot database(s):
 
-git clone http://github.com/sanger-pathogens/Artemis.git
+  You can do this by using the Artemis etc/setup_uniprot_dbs.sh script. This script can be changed as desired, to for instance, include additional databases or create a FASTLIBS file.
 
-or by downloading the source zip file for a particular release. Apache Maven and Java 8 will need to be installed beforehand, in order to build. The applications can be built by issuing the following command in the top-level folder:
+  ```
+  mkdir $HOME/blast-data
+  cd blast-data
+  cp <Artemis folder>/etc/setup_blast_dbs.sh .
+  ./setup_blast_dbs.sh
+  ```
 
-mvn validate clean test package
+  (Note: the environment variable http_proxy may need to be set for the ftp downloads to work).
 
 ## License
 Artemis is free software, licensed under [GPLv3](https://github.com/sanger-pathogens/artemis/blob/master/LICENSE).
diff --git a/act b/act
index 88286250168f950f002ee61f030ea1aaef8078d9..b46b8edf00f65570c90717fc69960eaaa5409af5 100755
--- a/act
+++ b/act
@@ -97,8 +97,8 @@ done
 
 APPLICATION_HOME=`dirname "$PRG"`
 JAR_NAME=act.jar
-JAR_FILE_DEFAULT=$APPLICATION_HOME/target/unix-jars/$JAR_NAME
-JAR_FILE_INSTALLED=$APPLICATION_HOME/$JAR_NAME
+JAR_FILE_DEFAULT=$APPLICATION_HOME/target/jars/$JAR_NAME
+JAR_FILE_INSTALLED=$APPLICATION_HOME/dist/$JAR_NAME
 
 #
 # Use a custom Java version if necessary
@@ -117,7 +117,7 @@ fi
 add_proxy_properties
 
 #
-# "-mx1g" sets the maximum amount of memory to use. 
+# "-mx2g" sets the maximum amount of memory to use. 
 # This may need to be increased when dealing with large files
 #
 if [[ "$ARTEMIS_JVM_FLAGS" = "" ]]
@@ -127,6 +127,12 @@ else
     FLAGS="$ARTEMIS_JVM_FLAGS -noverify"
 fi
 
+#
+# Temporary flags to avoid Java 9+ reflection warnings being written to the terminal.
+# Should not be necessary when Ibatis is replaced.
+#
+FLAGS="$FLAGS --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED"
+
 PLATTMP=`uname`
 if [[ "$PLATTMP" = "Darwin" ]]
 then
diff --git a/art b/art
index 85930e5a102298b54d3ccda08cac608548e8fdde..1bdb3b2620930c703e111e7533b538951fed719b 100755
--- a/art
+++ b/art
@@ -103,8 +103,8 @@ done
 
 APPLICATION_HOME=`dirname "$PRG"`
 JAR_NAME=artemis.jar
-JAR_FILE_DEFAULT=$APPLICATION_HOME/target/unix-jars/$JAR_NAME
-JAR_FILE_INSTALLED=$APPLICATION_HOME/$JAR_NAME
+JAR_FILE_DEFAULT=$APPLICATION_HOME/target/jars/$JAR_NAME
+JAR_FILE_INSTALLED=$APPLICATION_HOME/dist/$JAR_NAME
 
 #
 # Use a custom Java version if necessary
@@ -123,7 +123,7 @@ fi
 add_proxy_properties
 
 #
-# "-mx1g" sets the maximum amount of memory to use. 
+# "-mx2g" sets the maximum amount of memory to use. 
 # This may need to be increased when dealing with large files
 #
 if [[ "$ARTEMIS_JVM_FLAGS" = "" ]]
@@ -133,6 +133,13 @@ else
     FLAGS="$ARTEMIS_JVM_FLAGS -noverify"
 fi
 
+
+#
+# Temporary flags to avoid Java 9+ reflection warnings being written to the terminal.
+# Should not be necessary when Ibatis is replaced.
+#
+FLAGS="$FLAGS --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED"
+
 PLATTMP=`uname`
 if [[ "$PLATTMP" = "Darwin" ]]
 then
diff --git a/bamview b/bamview
index cf64667a06b7178fc82f35af62e35eabf7aeeca5..4299619a3a9edf7bc0b4fcb5895bc7909a7bc0fb 100755
--- a/bamview
+++ b/bamview
@@ -41,8 +41,8 @@ done
 APPLICATION_PROPERTIES="-Djdbc.drivers=org.postgresql.Driver -Dartemis.environment=UNIX $SANGER_ARTEMIS_OPTIONS"
 APPLICATION_HOME=`dirname "$PRG"`
 JAR_NAME=bamview.jar
-JAR_FILE_DEFAULT=$APPLICATION_HOME/target/unix-jars/$JAR_NAME
-JAR_FILE_INSTALLED=$APPLICATION_HOME/$JAR_NAME
+JAR_FILE_DEFAULT=$APPLICATION_HOME/target/jars/$JAR_NAME
+JAR_FILE_INSTALLED=$APPLICATION_HOME/dist/$JAR_NAME
 
 #
 # Use a custom Java version if necessary
@@ -61,7 +61,7 @@ fi
 add_proxy_properties
 
 #
-# "-mx1g" sets the maximum amount of memory to use. 
+# "-mx2g" sets the maximum amount of memory to use. 
 # This may need to be increased when dealing with large files
 #
 if [[ "$ARTEMIS_JVM_FLAGS" = "" ]]
@@ -74,7 +74,7 @@ fi
 PLATTMP=`uname`
 if [[ "$PLATTMP" = "Darwin" ]]
 then
-  	APPLICATION_PROPERTIES="$APPLICATION_PROPERTIES -Xdock:name=BamView"
+  	APPLICATION_PROPERTIES="$APPLICATION_PROPERTIES -Dapple.laf.useScreenMenuBar=true -Xdock:name=BamView"
 fi
 
 if [[ "$QUIET" = "no" ]]
diff --git a/dnaplotter b/dnaplotter
index fe9e835fa6507aaee6d4b1a4979054c2f66b4447..6c9cb52920a6c4c4d813101a1518ae9941308591 100755
--- a/dnaplotter
+++ b/dnaplotter
@@ -78,8 +78,8 @@ done
 
 APPLICATION_HOME=`dirname "$PRG"`
 JAR_NAME=dnaplotter.jar
-JAR_FILE_DEFAULT=$APPLICATION_HOME/target/unix-jars/$JAR_NAME
-JAR_FILE_INSTALLED=$APPLICATION_HOME/$JAR_NAME
+JAR_FILE_DEFAULT=$APPLICATION_HOME/target/jars/$JAR_NAME
+JAR_FILE_INSTALLED=$APPLICATION_HOME/dist/$JAR_NAME
 
 #
 # Use a custom Java version if necessary
@@ -98,7 +98,7 @@ fi
 add_proxy_properties
 
 #
-# "-mx1g" sets the maximum amount of memory to use. 
+# "-mx2g" sets the maximum amount of memory to use. 
 # This may need to be increased when dealing with large files
 #
 if [[ "$ARTEMIS_JVM_FLAGS" = "" ]]
diff --git a/etc/writedb_entry b/etc/writedb_entry
index 60c9e46ccf62c14760bb86de6acbd7d3522c8f38..299381581ee8861108eecd92902462d3f548251e 100755
--- a/etc/writedb_entry
+++ b/etc/writedb_entry
@@ -54,8 +54,8 @@ FLAGS="-mx2048m -ms20m -Djdbc.drivers=org.postgresql.Driver -Dibatis"
 DEFAULT_CONNECTION="-Dchado=db.genedb.org:5432/snapshot?genedb_ro -Dread_only"
 APPLICATION_HOME=`dirname "$PRG"`/..
 JAR_NAME=artemis.jar
-JAR_FILE_DEFAULT=$APPLICATION_HOME/target/unix-jars/$JAR_NAME
-JAR_FILE_INSTALLED=$APPLICATION_HOME/$JAR_NAME
+JAR_FILE_DEFAULT=$APPLICATION_HOME/target/jars/$JAR_NAME
+JAR_FILE_INSTALLED=$APPLICATION_HOME/dist/$JAR_NAME
 
 #
 # Use a custom Java version if necessary
diff --git a/icons/Readme.txt b/icons/Readme.txt
deleted file mode 100644
index de05238cebc71adf307c5b06f9396778882a95f7..0000000000000000000000000000000000000000
--- a/icons/Readme.txt
+++ /dev/null
@@ -1,83 +0,0 @@
-
-Artemis, ACT & DNAPlotter
-=========================
-
-Artemis is a free genome viewer and annotation tool that allows visualization of sequence features and the results of analyses within the context of the sequence, and its six-frame translation. 
-
-ACT (Artemis Comparison Tool) is a DNA sequence comparison viewer based on Artemis. 
-
-DNAPlotter generates images of circular and linear DNA maps.
-
-BamView is a standalone BAM/CRAM file viewer.
-
-Installation on MacOSX
-======================
-
-1. Drag and drop the Artemis, ACT, DNAPlotter and BamView icons to an Applications directory, for example an 'Applications' directory in your home directory. 
-
-2. Then eject the disk image (right click and select 'Eject'). 
-
-3. Drag the icons from where you have installed them, into your dock.
-
-4. To run 'art' and 'act' from the command line add the following to your UNIX PATH:
-
-$ARTEMIS/Artemis.app/Contents
-
-where $ARTEMIS is the directory you have installed to. This can be done by adding a line to ~/.bashrc (if you are using bash shell) for example:
-
-PATH=~/Applications/Artemis.app/Contents; export PATH
-
-Searching and Using Local Sequence Databases (Optional)
-=======================================================
-
-1. Download and install BLAST:
-
-ftp://ftp.ncbi.nih.gov/blast/executables/release/
-
-get the latest release, e.g.:
-
-ftp://ftp.ncbi.nih.gov/blast/executables/release/2.2.18/blast-2.2.18-universal-macosx.tar.gz
-
-Untar and add the contents of the bin directory into Artemis.app/Contents/blast.
-
-2. Download and install Fasta
-ftp://ftp.ebi.ac.uk/pub/software/unix/fasta
-
-Get the latest, e.g.:
-
-ftp://ftp.ebi.ac.uk/pub/software/unix/fasta/fasta3/fasta-34.26.5.shar.Z
-
-Put this in Artemis.app/Contents/fasta and unwrap and compile:
-uncompress fasta-34.26.5.shar.Z
-cat fasta-34.26.5.shar | sh
-make -f Makefile.os_x all
-
-3. Download and format uniprot database
-
-You can do this by using the setup_dbs.sh script in Artemis.app/Contents/blast-data
-
-cd Artemis.app/Contents/blast-data
-./setup_dbs.sh
-
-(Note the environment variable http_proxy may need to be set for the download to work).
-
-Additional databases can be added here.
-To select to run searches locally ensure that under the 'Options' menu 'Send Searches via SSH' is not toggled.
-
-BamView CRAM reference lookup
-=============================
-
-BamView now has the ability to download CRAM reference sequences if none is specified on startup.
-This behaviour can be further governed using two environment variables REF_PATH and REF_CACHE.
-The usage of these variables is the same as for samtools. Please refer to this article for details:
-
-http://www.htslib.org/workflow/
-
-
-References:
-===========
-
-"K. Rutherford, J. Parkhill, J. Crook, T. Horsnell, P. Rice, M-A. Rajandream and B. Barrell (2000) Artemis: sequence visualisation and annotation." Bioinformatics 16 (10) 944-945.
-
-T.J. Carver, K.M. Rutherford, M. Berriman, M-A. Rajandream, B.G. Barrell and J. Parkhill, "ACT: the Artemis Comparison Tool", Bioinformatics, 2005.
-
diff --git a/lib/README b/lib/README
index 459ee80551e524b2aaaf686f9108c034e26950a7..a8ca756ae8c0b509f3cbd229fe49f21fdb4ba149 100644
--- a/lib/README
+++ b/lib/README
@@ -1,3 +1,5 @@
+These are old libraries and the intention is to remove or upgrade them.
+
 Lib versions:
 =============
 
diff --git a/pom.xml b/pom.xml
index d793f89dda773cc75e2df68ec2c5a97950a7b993..5fec389eec2e2ec9317e34a41bae48fd8d12813b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -67,12 +67,16 @@ Artemis is written in Java, and is available for UNIX, Macintosh and Windows sys
         
         <version.file>${project.basedir}/etc/versions</version.file>
         
+        <copyright.text>2018 Wellcome Trust Sanger Institute</copyright.text>
+        
         <!-- Properties passed into Maven on command line -->
         <emboss.installation.root>${env.EMBOSS_ROOT}</emboss.installation.root>
         
         <!-- Application names -->
         <artemis.application.name>Artemis</artemis.application.name>
+        <artemis.chado.application.name>${artemis.application.name} (CHADO)</artemis.chado.application.name>
         <act.application.name>ACT</act.application.name>
+        <act.chado.application.name>${act.application.name} (CHADO)</act.chado.application.name>
         <dnaplotter.application.name>Circular-Plot</dnaplotter.application.name>
         <bamview.application.name>BamView</bamview.application.name>
         
@@ -89,10 +93,12 @@ Artemis is written in Java, and is available for UNIX, Macintosh and Windows sys
         <dnaplotter.main.class>uk.ac.sanger.artemis.circular.DNADraw</dnaplotter.main.class>
         
         <!-- Java version-->
-		<java.source.version>1.8</java.source.version>
-		<java.target.version>1.8</java.target.version>
-		<java.javadoc.url>https://docs.oracle.com/javase/8/docs/api/</java.javadoc.url>
-		<osx.jdk.path>${env.JAVA_HOME}/../..</osx.jdk.path>
+        <java.compatibility.major.version>9</java.compatibility.major.version>
+		
+		<bundler.jdk.path>/Library/Java/JavaVirtualMachines/jdk-10.0.2.jdk</bundler.jdk.path>
+		<osx.bundler.jar>${project.basedir}/maven-lib/appbundler-1.0ea.jar</osx.bundler.jar>
+		<osx.bundler.volume>Artemis_Tools</osx.bundler.volume>
+		<osx.bundler.chado.volume>Artemis_Tools_Chado</osx.bundler.chado.volume>
 		      
         <!-- Evosuite properties-->
         <targetFolder>src/test/evosuite</targetFolder>
@@ -125,23 +131,35 @@ Artemis is written in Java, and is available for UNIX, Macintosh and Windows sys
         <unixenv.command.line.arg>-Dartemis.environment=UNIX</unixenv.command.line.arg>
         <macosx.menuname.command.line.arg>-Dcom.apple.mrj.application.apple.menu.about.name</macosx.menuname.command.line.arg>
         <macosx.dock.command.line.arg>-Xdock:name</macosx.dock.command.line.arg>
+        <macosx.use.menubar.arg>-Dapple.laf.useScreenMenuBar=true</macosx.use.menubar.arg>
         <chado.command.line.arg>-Dchado="localhost:5432/databasename?username"</chado.command.line.arg>
         <ibatis.command.line.arg>-Dibatis</ibatis.command.line.arg>
         <sangeroptions.command.line.arg>-Dsanger_options=yes</sangeroptions.command.line.arg>
-        <j2ssh.command.line.arg>-Dj2ssh</j2ssh.command.line.arg>
+        <blackbelt.command.line.arg>-Dblack_belt_mode=false</blackbelt.command.line.arg>
         
         <!-- Surefire unit test plugin parameters -->
         <unit.test.timeout.ms>8000</unit.test.timeout.ms>
-        <surefire.num.forks>2</surefire.num.forks>
-        <surefireArgLine>-Xmx4g ${noverify.command.line.arg} ${postgres.command.line.arg} -Dtimeout=${unit.test.timeout.ms} -Duse_separate_classloader=false -DEMBOSS_ROOT=${emboss.installation.root}</surefireArgLine>
-
+        <surefire.num.forks>1</surefire.num.forks>
+		<default.tests.surefireArgLine>-Xmx4g ${noverify.command.line.arg} ${postgres.command.line.arg} -DEMBOSS_ROOT=${emboss.installation.root} --illegal-access=warn</default.tests.surefireArgLine>
+		<surefireArgLine>${default.tests.surefireArgLine} -Dtimeout=${unit.test.timeout.ms} -Duse_separate_classloader=false</surefireArgLine>
+		
         <!-- Files to exclude from the build, e.g. Mac resource files. -->
         <default.file.excludes>**/log4j*.xml META-INF/* **/.DS_Store **/._*</default.file.excludes>
         
         <!-- Etc files to exclude from the build. -->
         <etc.file.excludes>*.seq *.fasta *.embl *.tab *.crunch *.genbank</etc.file.excludes>
         
+        <!-- Images -->
         <artemis.icons.path>${project.basedir}/icons</artemis.icons.path>
+        <artemis.images.path>${project.basedir}/images</artemis.images.path>
+        
+        <!--  Default build flag settings -->
+        <skip.tests>false</skip.tests>
+        <evosuite.exclude.filter>**/*_ESTest*</evosuite.exclude.filter>
+        <jarsigner.skip>true</jarsigner.skip>
+        <skip.artifact.creation>true</skip.artifact.creation>
+        <skip.coverage.reporting>true</skip.coverage.reporting>
+        <skip.javadoc>true</skip.javadoc>
 
     </properties>
 	
@@ -435,7 +453,7 @@ Artemis is written in Java, and is available for UNIX, Macintosh and Windows sys
 			                <artifactId>j2ssh-core</artifactId>
 			                <version>0.2.9</version>
 			                <packaging>jar</packaging>
-			                <file>${project.basedir}/lib/j2ssh/j2ssh-core.jar</file>
+			                <file>${project.basedir}/lib/j2ssh-core.jar</file>
 			                <generatePom>true</generatePom>
 			            </configuration>
 			        </execution>
@@ -477,36 +495,6 @@ Artemis is written in Java, and is available for UNIX, Macintosh and Windows sys
 					</execution>
 				</executions>
 			</plugin>
-
-			<!-- ==================================== Compile ========================================= -->
-			
-			<plugin>
-				<artifactId>maven-compiler-plugin</artifactId>
-				<version>3.7.0</version>
-				<configuration>
-					<source>${java.source.version}</source>
-					<target>${java.target.version}</target>
-				</configuration>
-			</plugin>
-			
-			<!-- ============================== Jar customisation ===================================== -->
-			
-			<plugin>
-				<groupId>org.apache.maven.plugins</groupId>
-				<artifactId>maven-jar-plugin</artifactId>
-				<version>3.1.0</version>
-				<configuration>
-					<archive>
-						<manifest>
-							<addClasspath>false</addClasspath>
-						</manifest>
-						<manifestEntries>
-							<Permissions>all-permissions</Permissions>
-                    			<Codebase>*</Codebase>
-						</manifestEntries>
-					</archive>
-				</configuration>
-			</plugin>
 			
 			<!-- ============================== Copy resources to build folder ======================== -->
 			
@@ -515,26 +503,10 @@ Artemis is written in Java, and is available for UNIX, Macintosh and Windows sys
 		    		<artifactId>maven-resources-plugin</artifactId>
 		    		<version>3.0.2</version>
 		    		<executions>
-		    			<!--  Copy test data for unit tests -->
-		      		<execution>
-		        			<id>copy-test-data</id>
-		        			<phase>process-test-resources</phase>
-		        			<goals>
-		          			<goal>copy-resources</goal>
-		        			</goals>
-		        			<configuration>
-		          			<outputDirectory>${project.build.testOutputDirectory}/data</outputDirectory>
-		          			<resources>
-		            				<resource>
-		             				<directory>${project.basedir}/test/data</directory>
-		            				</resource>
-		          			</resources>
-		        			</configuration>
-		      		</execution>
 		      		<!--  Copy etc on to classpath -->
 		      		<execution>
 		        			<id>copy-property-files</id>
-		        			<phase>process-test-resources</phase>
+		        			<phase>process-resources</phase>
 		        			<goals>
 		          			<goal>copy-resources</goal>
 		        			</goals>
@@ -547,46 +519,13 @@ Artemis is written in Java, and is available for UNIX, Macintosh and Windows sys
 		          			</resources>
 		        			</configuration>
 		      		</execution>
-		      		<!--  Copy images on to classpath -->
 		      		<execution>
-		        			<id>copy-image-folder</id>
-		        			<phase>process-test-resources</phase>
-		        			<goals>
-		          			<goal>copy-resources</goal>
-		        			</goals>
-		        			<configuration>
-		          			<outputDirectory>${project.build.outputDirectory}/images</outputDirectory>
-		          			<resources>
-		            				<resource>
-		             				<directory>${project.basedir}/images</directory>
-		            				</resource>
-		          			</resources>
-		        			</configuration>
-		      		</execution>
-		      		<!--  Copy non-maven legacy jars to build area for inclusion in assembly -->
-		      		<!--  execution>
-		        			<id>copy-old-jars</id>
-		        			<phase>process-test-resources</phase>
+		        			<id>copy-icons-folder</id>
+		        			<phase>process-resources</phase>
 		        			<goals>
 		          			<goal>copy-resources</goal>
 		        			</goals>
 		        			<configuration>
-		          			<outputDirectory>${project.build.directory}/lib</outputDirectory>
-		          			<resources>
-		            				<resource>
-		             				<directory>${project.basedir}/lib/**/*.jar</directory>
-		            				</resource>
-		          			</resources>
-		        			</configuration>
-		      		</execution-->
-		      		<execution>
-		        			<id>copy-icons-to-target-folder</id>
-		        			<phase>package</phase>
-		        			<goals>
-		          			<goal>copy-resources</goal>
-		        			</goals>
-		        			<configuration>
-		        				<skip>${jarsigner.skip}</skip>
 		          			<outputDirectory>${project.build.directory}/icons</outputDirectory>
 		          			<resources>
 		            				<resource>
@@ -598,43 +537,38 @@ Artemis is written in Java, and is available for UNIX, Macintosh and Windows sys
 
 		    		</executions>
 		  	</plugin>
-			
-			<!-- ============================== Run JUnit tests =============================== -->
+		  	
+		  	<!-- ===================================== Compile ========================================= -->
+		  	
+		  	<plugin>
+				<artifactId>maven-compiler-plugin</artifactId>
+				<version>3.8.0</version>
+				<configuration>
+					<verbose>false</verbose>
+					<showWarnings>true</showWarnings>
+					<!--  We use the release option for Java 9+ -->
+        			<release>${java.compatibility.major.version}</release>
+    			</configuration>
+			</plugin>
+					
+		  	<!-- ============================== Jar customisation ===================================== -->
 			
 			<plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-surefire-plugin</artifactId>
-                <version>2.20.1</version>
-              	<configuration>
-                    <skipTests>${skip.tests}</skipTests>
-                    <trimStackTrace>false</trimStackTrace>
-                    <forkCount>${surefire.num.forks}</forkCount>
-                    <reuseForks>false</reuseForks>
-                    <testFailureIgnore>${ignore.test.failures}</testFailureIgnore>
-                    <argLine>@{surefireArgLine}</argLine>
-          			<excludes>
- 		
-						<!--  Start of Evosuite excludes -->
-						
-						<exclude>${evosuite.exclude.filter}</exclude>
-
-						<exclude>org/gmod/**</exclude>
-	          			<exclude>**/RunBlastAtNCBITest.*</exclude>
-	          			<exclude>**/j2ssh/**</exclude>
-	          			
-    						<!--  End of Evosuite excludes -->
-    						
-          			</excludes>
-          			
-          			<!-- Required when running Evosuite tests along with normal tests -->
-          			<properties>
-						<property>
-							<name>listener</name>
-							<value>org.evosuite.runtime.InitializingListener</value>
-				      	</property>
-				    </properties>
-                </configuration>
-            </plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-jar-plugin</artifactId>
+				<version>3.1.0</version>
+				<configuration>
+					<archive>
+						<manifest>
+							<addClasspath>false</addClasspath>
+						</manifest>
+						<manifestEntries>
+							<Permissions>all-permissions</Permissions>
+                    		<Codebase>*</Codebase>
+						</manifestEntries>
+					</archive>
+				</configuration>
+			</plugin>
             
             <!-- =========================   Required for Evosuite test running ========================-->
             
@@ -657,13 +591,39 @@ Artemis is written in Java, and is available for UNIX, Macintosh and Windows sys
 			  		</execution>
 			  	</executions>
 			</plugin>
+			
+			<!-- =======================================  Surefire Unit tests ==========================================-->
+			
+			<!-- Only currently runs default unit tests because of bug in Evosuite on Java 9+. -->
+			<plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-surefire-plugin</artifactId>
+                <version>2.22.1</version>
+              	<configuration>
+                    <skipTests>${skip.tests}</skipTests>
+                    <trimStackTrace>true</trimStackTrace>
+                    <forkCount>${surefire.num.forks}</forkCount>
+                    <reuseForks>false</reuseForks>
+                    <testFailureIgnore>${ignore.test.failures}</testFailureIgnore>
+                    <argLine>@{default.tests.surefireArgLine}</argLine>
+          			<excludes>
+ 						<!-- Exclude Evosuite tests -->
+						<exclude>**/*ESTest*</exclude>
+						
+						<!--  Exclude manual adhoc tests -->
+						<exclude>**/RunBlastAtNCBITest.*</exclude>
+						<exclude>**/TestIbatisDAO.*</exclude>
+						<exclude>**/TestJdbcDAO.*</exclude>
+          			</excludes>
+                </configuration>
+            </plugin>
             
             <!-- ===================================   Run Jacoco coverage report ======================================-->
             
             <plugin>
 				<groupId>org.jacoco</groupId>
 				<artifactId>jacoco-maven-plugin</artifactId>
-				<version>0.8.0</version>
+				<version>0.8.1</version>
 				<configuration>
                     <skip>${skip.coverage.reporting}</skip>
                 </configuration>
@@ -709,13 +669,13 @@ Artemis is written in Java, and is available for UNIX, Macintosh and Windows sys
 				<version>3.1.0</version>
 				<executions>
 					<execution>
-						<id>package-nonunix-artemis-jar</id>
+						<id>package-win-artemis-jar</id>
 						<phase>package</phase>
 						<goals>
 							<goal>shade</goal>
 						</goals>
 						<configuration>
-							<outputFile>target/jars/${artemis.jar.name}</outputFile>
+							<outputFile>target/win-jars/${artemis.jar.name}</outputFile>
 							<createDependencyReducedPom>false</createDependencyReducedPom>
 							<minimizeJar>false</minimizeJar>
 							<transformers>
@@ -750,13 +710,13 @@ Artemis is written in Java, and is available for UNIX, Macintosh and Windows sys
 						</configuration>
 					</execution>
 					<execution>
-						<id>package-unix-artemis-jar</id>
+						<id>package-default-artemis-jar</id>
 						<phase>package</phase>
 						<goals>
 							<goal>shade</goal>
 						</goals>
 						<configuration>
-							<outputFile>target/unix-jars/${artemis.jar.name}</outputFile>
+							<outputFile>target/jars/${artemis.jar.name}</outputFile>
 							<createDependencyReducedPom>false</createDependencyReducedPom>
 							<minimizeJar>false</minimizeJar>
 							<transformers>
@@ -791,13 +751,13 @@ Artemis is written in Java, and is available for UNIX, Macintosh and Windows sys
 						</configuration>
 					</execution>
 					<execution>
-						<id>package-nonunix-act-jar</id>
+						<id>package-win-act-jar</id>
 						<phase>package</phase>
 						<goals>
 							<goal>shade</goal>
 						</goals>
 						<configuration>
-							<outputFile>target/jars/${act.jar.name}</outputFile>
+							<outputFile>target/win-jars/${act.jar.name}</outputFile>
 							<createDependencyReducedPom>false</createDependencyReducedPom>
 							<minimizeJar>false</minimizeJar>
 							<transformers>
@@ -832,13 +792,13 @@ Artemis is written in Java, and is available for UNIX, Macintosh and Windows sys
 						</configuration>
 					</execution>
 					<execution>
-						<id>package-unix-act-jar</id>
+						<id>package-default-act-jar</id>
 						<phase>package</phase>
 						<goals>
 							<goal>shade</goal>
 						</goals>
 						<configuration>
-							<outputFile>target/unix-jars/${act.jar.name}</outputFile>
+							<outputFile>target/jars/${act.jar.name}</outputFile>
 							<createDependencyReducedPom>false</createDependencyReducedPom>
 							<minimizeJar>false</minimizeJar>
 							<transformers>
@@ -873,13 +833,13 @@ Artemis is written in Java, and is available for UNIX, Macintosh and Windows sys
 						</configuration>
 					</execution>
 					<execution>
-						<id>package-nonunix-dnaplotter-jar</id>
+						<id>package-win-dnaplotter-jar</id>
 						<phase>package</phase>
 						<goals>
 							<goal>shade</goal>
 						</goals>
 						<configuration>
-							<outputFile>target/jars/${dnaplotter.jar.name}</outputFile>
+							<outputFile>target/win-jars/${dnaplotter.jar.name}</outputFile>
 							<createDependencyReducedPom>false</createDependencyReducedPom>
 							<minimizeJar>false</minimizeJar>
 							<transformers>
@@ -915,13 +875,13 @@ Artemis is written in Java, and is available for UNIX, Macintosh and Windows sys
 						</configuration>
 					</execution>
 					<execution>
-						<id>package-unix-dnaplotter-jar</id>
+						<id>package-default-dnaplotter-jar</id>
 						<phase>package</phase>
 						<goals>
 							<goal>shade</goal>
 						</goals>
 						<configuration>
-							<outputFile>target/unix-jars/${dnaplotter.jar.name}</outputFile>
+							<outputFile>target/jars/${dnaplotter.jar.name}</outputFile>
 							<createDependencyReducedPom>false</createDependencyReducedPom>
 							<minimizeJar>false</minimizeJar>
 							<transformers>
@@ -957,13 +917,13 @@ Artemis is written in Java, and is available for UNIX, Macintosh and Windows sys
 						</configuration>
 					</execution>
 					<execution>
-						<id>package-nonunix-bamview-jar</id>
+						<id>package-win-bamview-jar</id>
 						<phase>package</phase>
 						<goals>
 							<goal>shade</goal>
 						</goals>
 						<configuration>
-							<outputFile>target/jars/${bamview.jar.name}</outputFile>
+							<outputFile>target/win-jars/${bamview.jar.name}</outputFile>
 							<createDependencyReducedPom>false</createDependencyReducedPom>
 							<minimizeJar>false</minimizeJar>
 							<transformers>
@@ -999,13 +959,13 @@ Artemis is written in Java, and is available for UNIX, Macintosh and Windows sys
 						</configuration>
 					</execution>
 					<execution>
-						<id>package-unix-bamview-jar</id>
+						<id>package-default-bamview-jar</id>
 						<phase>package</phase>
 						<goals>
 							<goal>shade</goal>
 						</goals>
 						<configuration>
-							<outputFile>target/unix-jars/${bamview.jar.name}</outputFile>
+							<outputFile>target/jars/${bamview.jar.name}</outputFile>
 							<createDependencyReducedPom>false</createDependencyReducedPom>
 							<minimizeJar>false</minimizeJar>
 							<transformers>
@@ -1055,7 +1015,7 @@ Artemis is written in Java, and is available for UNIX, Macintosh and Windows sys
 				<version>1.4</version>
 				<executions>
 					<execution>
-						<id>sign-non-unix-jars</id>
+						<id>sign-win-jars</id>
 						<phase>package</phase>
 						<goals>
 							<goal>sign</goal>
@@ -1065,7 +1025,7 @@ Artemis is written in Java, and is available for UNIX, Macintosh and Windows sys
 							<verbose>false</verbose>
 							<processMainArtifact>false</processMainArtifact>
 							<processAttachedArtifacts>false</processAttachedArtifacts>
-							<archiveDirectory>target/jars</archiveDirectory>
+							<archiveDirectory>target/win-jars</archiveDirectory>
 							<keystore>${signer-keystore-path}</keystore>
 							<storetype>${signer-keystore-type}</storetype>
 							<alias>${signer-keystore-alias}</alias>
@@ -1076,7 +1036,7 @@ Artemis is written in Java, and is available for UNIX, Macintosh and Windows sys
 						</configuration>
 					</execution>
 					<execution>
-						<id>sign-unix-jars</id>
+						<id>sign-default-jars</id>
 						<phase>package</phase>
 						<goals>
 							<goal>sign</goal>
@@ -1086,7 +1046,7 @@ Artemis is written in Java, and is available for UNIX, Macintosh and Windows sys
 							<verbose>false</verbose>
 							<processMainArtifact>false</processMainArtifact>
 							<processAttachedArtifacts>false</processAttachedArtifacts>
-							<archiveDirectory>target/unix-jars</archiveDirectory>
+							<archiveDirectory>target/jars</archiveDirectory>
 							<keystore>${signer-keystore-path}</keystore>
 							<storetype>${signer-keystore-type}</storetype>
 							<alias>${signer-keystore-alias}</alias>
@@ -1195,6 +1155,17 @@ Artemis is written in Java, and is available for UNIX, Macintosh and Windows sys
 	      			</configuration>
 				</plugin>
 				
+				<!-- =========== Check for plugin updates ================== -->
+				<!--        Use: mvn versions:display-plugin-updates         -->
+				<plugin>
+				    <groupId>org.codehaus.mojo</groupId>
+				    <artifactId>versions-maven-plugin</artifactId>
+				    <version>2.7</version>
+				    <configuration>
+				        <generateBackupPoms>false</generateBackupPoms>
+				    </configuration>
+				</plugin>
+				
 				<!--  
 					Deploy artifacts to a GitHub release - run manually using: 
 					mvn github-release:release
@@ -1261,25 +1232,118 @@ Artemis is written in Java, and is available for UNIX, Macintosh and Windows sys
 	<!-- ========================== Profile section =================================-->
 	
 	<profiles>
-	    <!-- The configuration of the default development profile -->
+
 	    <profile>
-	        <id>dev</id>
-	        <!-- The development profile is active by default and does not run any tests -->
+	        <id>old-java8-profile-deprecated</id>
+	        <!-- This profile runs all unit tests including Evosuite ones on Java 8. -->
+	        <!-- Note however that some code changes will now be needed to compile on Java 8. -->
 	        <activation>
-	            <activeByDefault>true</activeByDefault>
-	        </activation>
+      			<jdk>1.8</jdk>
+    		</activation>
 	        <properties>
-	        		<skip.tests>false</skip.tests>
-        			<evosuite.exclude.filter>**/*_ESTest*</evosuite.exclude.filter>
-        			<jarsigner.skip>true</jarsigner.skip>
-        			<skip.artifact.creation>true</skip.artifact.creation>
-        			<skip.coverage.reporting>true</skip.coverage.reporting>
-        			<skip.javadoc>true</skip.javadoc>
-        			
-	            <build.profile.id>dev</build.profile.id>
+	            <build.profile.id>java8-profile</build.profile.id>
 	        </properties>
+	        <build>
+	        		<plugins>
+
+					<!--  
+						Compiling with Java 8 JDK... the compiler does not have the -release parameter, 
+						so we fall back to source and target 
+					-->
+					<plugin>
+						<artifactId>maven-compiler-plugin</artifactId>
+						<version>3.8.0</version>
+						<configuration>
+							<verbose>false</verbose>
+		        				<source>1.8</source>
+								<target>1.8</target>
+		    				</configuration>
+					</plugin>
+					
+	        			<plugin>
+		                <groupId>org.apache.maven.plugins</groupId>
+		                <artifactId>maven-surefire-plugin</artifactId>
+		                <version>2.22.1</version>
+		              	<configuration>
+		                    <skipTests>${skip.tests}</skipTests>
+		                    <trimStackTrace>true</trimStackTrace>
+		                    <forkCount>${surefire.num.forks}</forkCount>
+		                    <reuseForks>false</reuseForks>
+		                    <testFailureIgnore>${ignore.test.failures}</testFailureIgnore>
+		                    <argLine>@{surefireArgLine}</argLine>
+		          			<excludes>
+		 		
+								<!--  Start of Evosuite excludes -->
+								<exclude>${evosuite.exclude.filter}</exclude>
+								<exclude>org/gmod/**</exclude>
+			          			<exclude>**/j2ssh/**</exclude>
+		    					<!--  End of Evosuite excludes -->
+		    						
+		    					<!--  Exclude manual adhoc tests -->
+								<exclude>**/RunBlastAtNCBITest.*</exclude>
+								<exclude>**/TestIbatisDAO.*</exclude>
+								<exclude>**/TestJdbcDAO.*</exclude>
+		    						
+		          			</excludes>
+		          			
+		          			<!-- Required when running Evosuite tests along with normal tests -->
+		          			<properties>
+								<property>
+									<name>listener</name>
+									<value>org.evosuite.runtime.InitializingListener</value>
+						      	</property>
+						    </properties>
+		                </configuration>
+		            </plugin>
+		            
+	        		</plugins>
+	        </build>
 	    </profile>
 	    
+	    <profile>
+	        <id>mac-osx-dmg-packaging</id>
+	        <!-- 
+	        		App/dmg packaging that can only be run on a Mac.
+	         -->
+	        <activation>
+		        <os> 
+			    	<family>mac</family>
+			    </os>
+			</activation>
+	        <properties>
+	            <build.profile.id>mac-osx-dmg-packaging</build.profile.id>
+	        </properties>
+	        <build>
+	        		<plugins>
+	        		
+	        			<plugin>
+							<groupId>org.apache.maven.plugins</groupId>
+							<artifactId>maven-antrun-plugin</artifactId>
+							<version>1.8</version>
+							<executions>
+								<execution>
+									<id>build-macosx</id>
+									<phase>verify</phase>
+									<configuration>
+										<skip>${skip.artifact.creation}</skip>
+										<target>
+								            <ant antfile="${project.basedir}/src/assembly/macosx-release-assembly.xml">
+								            	<target name="bundle-mac-osx"/>
+								                <target name="bundle-mac-osx-chado"/>
+								            </ant>
+								        </target>
+									</configuration>
+									<goals>
+										<goal>run</goal>
+									</goals>
+								</execution>
+							</executions>
+						</plugin>
+					
+	        		</plugins>
+	        	</build>
+		</profile>
+	    
 	    <profile>
 	        <id>release</id>
 	        <activation>
@@ -1287,335 +1351,16 @@ Artemis is written in Java, and is available for UNIX, Macintosh and Windows sys
             </activation>
 	        <properties>
 	        		<skip.tests>false</skip.tests>
-        			<evosuite.exclude.filter>**/*_ESTest*</evosuite.exclude.filter>
+        			<evosuite.exclude.filter></evosuite.exclude.filter>
         			<jarsigner.skip>false</jarsigner.skip>
         			<skip.artifact.creation>false</skip.artifact.creation>
         			<skip.coverage.reporting>false</skip.coverage.reporting>
         			<skip.javadoc>false</skip.javadoc>
         			
 	            <build.profile.id>release</build.profile.id>
-	        </properties>
-	        <build>    
-	            <plugins>
-	            
-	            		<!-- 
-	            			Package jar files into OSX .apps and create dmg images.
-						NOTE1: artemis_sqlmap is already included in the original jar
-						NOTE2: The skip flag does not work on this plugin so it needs to be added into the profile [hack]
-					-->
-			 
-					<plugin>
-					    <groupId>sh.tak.appbundler</groupId>
-					    <artifactId>appbundle-maven-plugin</artifactId>
-					    <version>1.1.0</version>
-					    <executions>
-					        <execution>
-					        		<id>create-artemis-osx-app</id>
-					            <phase>package</phase>
-					            <goals>
-					                <goal>bundle</goal>
-					            </goals>
-					            <configuration>
-							    		<skip>${skip.artifact.creation}</skip>
-							    		<version>${project.version}</version>
-							    		<buildDirectory>${osx.app.folder}</buildDirectory>
-							    		<generateDiskImageFile>false</generateDiskImageFile>
-							    		<bundleName>${artemis.application.name}</bundleName>
-							    		<jrePath>${osx.jdk.path}</jrePath>
-							        <mainClass>${artemis.main.class}</mainClass>
-							        <iconFile>${project.build.directory}/icons/artemis.icns</iconFile>
-							        <jvmVersion>${java.target.version}</jvmVersion>
-							        <jvmOptions>
-							   			<jvmOption>${maxheap.command.line.arg}</jvmOption>
-										<jvmOption>${initialheap.command.line.arg}</jvmOption>
-										<jvmOption>${noverify.command.line.arg}</jvmOption> 
-										<jvmOption>${unixenv.command.line.arg}</jvmOption> 
-										<jvmOption>${macosx.menuname.command.line.arg}=${artemis.application.name}</jvmOption>
-										<jvmOption>${macosx.dock.command.line.arg}=${artemis.application.name}</jvmOption>
-										<jvmOption>${sangeroptions.command.line.arg}</jvmOption>
-        									<jvmOption>${j2ssh.command.line.arg}</jvmOption>
-							        </jvmOptions>
-							        <additionalBundledClasspathResources>
-							        		<fileSet>
-							        			<directory>${project.build.directory}/icons</directory>
-							        			<includes>
-							        				<include>Readme.txt</include>
-							        			</includes>
-							        		</fileSet>
-							        </additionalBundledClasspathResources>
-							    </configuration>
-					        </execution>
-					        <execution>
-					        		<id>create-act-osx-app</id>
-					            <phase>package</phase>
-					            <goals>
-					                <goal>bundle</goal>
-					            </goals>
-					            <configuration>
-							    		<skip>false</skip>
-							    		<version>${project.version}</version>
-							    		<buildDirectory>${osx.app.folder}</buildDirectory>
-							    		<generateDiskImageFile>false</generateDiskImageFile>
-							    		<bundleName>${act.application.name}</bundleName>
-							    		<jrePath>${osx.jdk.path}</jrePath>
-							        <mainClass>${act.main.class}</mainClass>
-							        <iconFile>${project.build.directory}/icons/act.icns</iconFile>
-							        <jvmVersion>${java.target.version}</jvmVersion>
-							        <jvmOptions>
-							   			<jvmOption>${maxheap.command.line.arg}</jvmOption>
-										<jvmOption>${initialheap.command.line.arg}</jvmOption>
-										<jvmOption>${noverify.command.line.arg}</jvmOption> 
-										<jvmOption>${unixenv.command.line.arg}</jvmOption> 
-										<jvmOption>${macosx.menuname.command.line.arg}=${act.application.name}</jvmOption>
-										<jvmOption>${macosx.dock.command.line.arg}=${act.application.name}</jvmOption>
-										<jvmOption>${sangeroptions.command.line.arg}</jvmOption>
-        									<jvmOption>${j2ssh.command.line.arg}</jvmOption>
-							        </jvmOptions>
-							        <additionalBundledClasspathResources>
-							        		<fileSet>
-							        			<directory>${project.build.directory}/icons</directory>
-							        			<includes>
-							        				<include>Readme.txt</include>
-							        			</includes>
-							        		</fileSet>
-							        </additionalBundledClasspathResources>
-							    </configuration>
-					        </execution>
-					        <execution>
-					        		<id>create-dnaplotter-osx-app</id>
-					            <phase>package</phase>
-					            <goals>
-					                <goal>bundle</goal>
-					            </goals>
-					            <configuration>
-					            		<skip>false</skip>
-					            		<version>${project.version}</version>
-					            		<buildDirectory>${osx.app.folder}</buildDirectory>
-					            		<generateDiskImageFile>false</generateDiskImageFile>
-					            		<bundleName>${dnaplotter.application.name}</bundleName>
-							    		<jrePath>${osx.jdk.path}</jrePath>
-							        <mainClass>${dnaplotter.main.class}</mainClass>
-							        <iconFile>${project.build.directory}/icons/dnaplotter.icns</iconFile>
-							        <jvmVersion>${java.target.version}</jvmVersion>
-							        <jvmOptions>
-							   			<jvmOption>${maxheap.command.line.arg}</jvmOption>
-										<jvmOption>${initialheap.command.line.arg}</jvmOption>
-										<jvmOption>${noverify.command.line.arg}</jvmOption> 
-										<jvmOption>${unixenv.command.line.arg}</jvmOption> 
-										<jvmOption>${macosx.menuname.command.line.arg}=${dnaplotter.application.name}</jvmOption>
-										<jvmOption>${macosx.dock.command.line.arg}=${dnaplotter.application.name}</jvmOption>
-										<jvmOption>${sangeroptions.command.line.arg}</jvmOption>
-        									<jvmOption>${j2ssh.command.line.arg}</jvmOption>
-							        </jvmOptions>
-							        <additionalBundledClasspathResources>
-							        		<fileSet>
-							        			<directory>${project.build.directory}/icons</directory>
-							        			<includes>
-							        				<include>Readme.txt</include>
-							        			</includes>
-							        		</fileSet>
-							        </additionalBundledClasspathResources>
-							    </configuration>
-					        </execution>
-					        <!--  The last execution also creates the disk image file... -->
-					        <execution>
-					        		<id>create-bamview-osx-app</id>
-					            <phase>package</phase>
-					            <goals>
-					                <goal>bundle</goal>
-					            </goals>
-					            <configuration>
-							    		<skip>false</skip>
-							    		<version>${project.version}</version>
-							    		<buildDirectory>${osx.app.folder}</buildDirectory>
-							    		<generateDiskImageFile>true</generateDiskImageFile>
-							    		<diskImageFile>${osx.app.folder}/${osx.release.filename}.dmg</diskImageFile>
-							    		<bundleName>${bamview.application.name}</bundleName>
-							    		<jrePath>${osx.jdk.path}</jrePath>
-							        <mainClass>${bamview.main.class}</mainClass>
-							        <iconFile>${project.build.directory}/icons/bamview.icns</iconFile>
-							        <jvmVersion>${java.target.version}</jvmVersion>
-							        <jvmOptions>
-							   			<jvmOption>${maxheap.command.line.arg}</jvmOption>
-										<jvmOption>${initialheap.command.line.arg}</jvmOption>
-										<jvmOption>${noverify.command.line.arg}</jvmOption> 
-										<jvmOption>${unixenv.command.line.arg}</jvmOption> 
-										<jvmOption>${macosx.menuname.command.line.arg}=${bamview.application.name}</jvmOption>
-										<jvmOption>${macosx.dock.command.line.arg}=${bamview.application.name}</jvmOption>
-										<jvmOption>${sangeroptions.command.line.arg}</jvmOption>
-        									<jvmOption>${j2ssh.command.line.arg}</jvmOption>
-							        </jvmOptions>
-							        <additionalBundledClasspathResources>
-							        		<fileSet>
-							        			<directory>${project.build.directory}/icons</directory>
-							        			<includes>
-							        				<include>Readme.txt</include>
-							        			</includes>
-							        		</fileSet>
-							        </additionalBundledClasspathResources>
-							    </configuration>
-					        </execution>
-					        
-					        <!-- Package CHADO version of toolkit -->
-					
-					        <execution>
-					        		<id>create-artemis-osx-app-CHADO</id>
-					            <phase>package</phase>
-					            <goals>
-					                <goal>bundle</goal>
-					            </goals>
-					            <configuration>
-							    		<skip>${skip.artifact.creation}</skip>
-							    		<version>${project.version}</version>
-							    		<buildDirectory>${osx.app.chado.folder}</buildDirectory>
-							    		<generateDiskImageFile>false</generateDiskImageFile>
-							    		<bundleName>${artemis.application.name} (CHADO)</bundleName>
-							    		<jrePath>${osx.jdk.path}</jrePath>
-							        <mainClass>${artemis.main.class}</mainClass>
-							        <iconFile>${project.build.directory}/icons/artemis.icns</iconFile>
-							        <jvmVersion>${java.target.version}</jvmVersion>
-							        <jvmOptions>
-							   			<jvmOption>${postgres.command.line.arg}</jvmOption>
-							   			<jvmOption>${chado.command.line.arg}</jvmOption>
-							   			<jvmOption>${ibatis.command.line.arg}</jvmOption>
-										<jvmOption>${maxheap.command.line.arg}</jvmOption>
-										<jvmOption>${initialheap.command.line.arg}</jvmOption>
-										<jvmOption>${noverify.command.line.arg}</jvmOption> 
-										<jvmOption>${unixenv.command.line.arg}</jvmOption> 
-										<jvmOption>${macosx.menuname.command.line.arg}=${artemis.application.name}</jvmOption>
-										<jvmOption>${macosx.dock.command.line.arg}=${artemis.application.name}</jvmOption>
-										<jvmOption>${sangeroptions.command.line.arg}</jvmOption>
-        									<jvmOption>${j2ssh.command.line.arg}</jvmOption>
-							        </jvmOptions>
-							        <additionalBundledClasspathResources>
-							        		<fileSet>
-							        			<directory>${project.build.directory}/icons</directory>
-							        			<includes>
-							        				<include>Readme.txt</include>
-							        			</includes>
-							        		</fileSet>
-							        </additionalBundledClasspathResources>
-							    </configuration>
-					        </execution>
-					        <execution>
-					        		<id>create-act-osx-app-CHADO</id>
-					            <phase>package</phase>
-					            <goals>
-					                <goal>bundle</goal>
-					            </goals>
-					            <configuration>
-							    		<skip>false</skip>
-							    		<version>${project.version}</version>
-							    		<buildDirectory>${osx.app.chado.folder}</buildDirectory>
-							    		<generateDiskImageFile>false</generateDiskImageFile>
-							    		<bundleName>${act.application.name} (CHADO)</bundleName>
-							    		<jrePath>${osx.jdk.path}</jrePath>
-							        <mainClass>${act.main.class}</mainClass>
-							        <iconFile>${project.build.directory}/icons/act.icns</iconFile>
-							        <jvmVersion>${java.target.version}</jvmVersion>
-							        <jvmOptions>
-							   			<jvmOption>${postgres.command.line.arg}</jvmOption>
-							   			<jvmOption>${chado.command.line.arg}</jvmOption>
-							   			<jvmOption>${ibatis.command.line.arg}</jvmOption>
-										<jvmOption>${maxheap.command.line.arg}</jvmOption>
-										<jvmOption>${initialheap.command.line.arg}</jvmOption>
-										<jvmOption>${noverify.command.line.arg}</jvmOption> 
-										<jvmOption>${unixenv.command.line.arg}</jvmOption> 
-										<jvmOption>${macosx.menuname.command.line.arg}=${act.application.name}</jvmOption>
-										<jvmOption>${macosx.dock.command.line.arg}=${act.application.name}</jvmOption>
-										<jvmOption>${sangeroptions.command.line.arg}</jvmOption>
-        									<jvmOption>${j2ssh.command.line.arg}</jvmOption>
-							        </jvmOptions>
-							        <additionalBundledClasspathResources>
-							        		<fileSet>
-							        			<directory>${project.build.directory}/icons</directory>
-							        			<includes>
-							        				<include>Readme.txt</include>
-							        			</includes>
-							        		</fileSet>
-							        </additionalBundledClasspathResources>
-							    </configuration>
-					        </execution>
-					        <execution>
-					        		<id>create-dnaplotter-osx-app-CHADO</id>
-					            <phase>package</phase>
-					            <goals>
-					                <goal>bundle</goal>
-					            </goals>
-					            <configuration>
-					            		<skip>false</skip>
-					            		<version>${project.version}</version>
-					            		<buildDirectory>${osx.app.chado.folder}</buildDirectory>
-					            		<generateDiskImageFile>false</generateDiskImageFile>
-					            		<bundleName>${dnaplotter.application.name}</bundleName>
-							    		<jrePath>${osx.jdk.path}</jrePath>
-							        <mainClass>${dnaplotter.main.class}</mainClass>
-							        <iconFile>${project.build.directory}/icons/dnaplotter.icns</iconFile>
-							        <jvmVersion>${java.target.version}</jvmVersion>
-							        <jvmOptions>
-							   			<jvmOption>${maxheap.command.line.arg}</jvmOption>
-										<jvmOption>${initialheap.command.line.arg}</jvmOption>
-										<jvmOption>${noverify.command.line.arg}</jvmOption> 
-										<jvmOption>${unixenv.command.line.arg}</jvmOption> 
-										<jvmOption>${macosx.menuname.command.line.arg}=${dnaplotter.application.name}</jvmOption>
-										<jvmOption>${macosx.dock.command.line.arg}=${dnaplotter.application.name}</jvmOption>
-										<jvmOption>${sangeroptions.command.line.arg}</jvmOption>
-        									<jvmOption>${j2ssh.command.line.arg}</jvmOption>
-							        </jvmOptions>
-							        <additionalBundledClasspathResources>
-							        		<fileSet>
-							        			<directory>${project.build.directory}/icons</directory>
-							        			<includes>
-							        				<include>Readme.txt</include>
-							        			</includes>
-							        		</fileSet>
-							        </additionalBundledClasspathResources>
-							    </configuration>
-					        </execution>
-					        <!--  The last execution also creates the disk image file... -->
-					        <execution>
-					        		<id>create-bamview-osx-app-CHADO</id>
-					            <phase>package</phase>
-					            <goals>
-					                <goal>bundle</goal>
-					            </goals>
-					            <configuration>
-							    		<skip>false</skip>
-							    		<version>${project.version}</version>
-							    		<buildDirectory>${osx.app.chado.folder}</buildDirectory>
-							    		<generateDiskImageFile>true</generateDiskImageFile>
-							    		<diskImageFile>${osx.app.chado.folder}/${osx.chado.release.filename}.dmg</diskImageFile>
-							    		<bundleName>${bamview.application.name}</bundleName>
-							    		<jrePath>${osx.jdk.path}</jrePath>
-							        <mainClass>${bamview.main.class}</mainClass>
-							        <iconFile>${project.build.directory}/icons/bamview.icns</iconFile>
-							        <jvmVersion>${java.target.version}</jvmVersion>
-							        <jvmOptions>
-							   			<jvmOption>${maxheap.command.line.arg}</jvmOption>
-										<jvmOption>${initialheap.command.line.arg}</jvmOption>
-										<jvmOption>${noverify.command.line.arg}</jvmOption> 
-										<jvmOption>${unixenv.command.line.arg}</jvmOption> 
-										<jvmOption>${macosx.menuname.command.line.arg}=${bamview.application.name}</jvmOption>
-										<jvmOption>${macosx.dock.command.line.arg}=${bamview.application.name}</jvmOption>
-										<jvmOption>${sangeroptions.command.line.arg}</jvmOption>
-        									<jvmOption>${j2ssh.command.line.arg}</jvmOption>
-							        </jvmOptions>
-							        <additionalBundledClasspathResources>
-							        		<fileSet>
-							        			<directory>${project.build.directory}/icons</directory>
-							        			<includes>
-							        				<include>Readme.txt</include>
-							        			</includes>
-							        		</fileSet>
-							        </additionalBundledClasspathResources>
-							    </configuration>
-					        </execution>
-					    </executions>
-					</plugin>	
-	            </plugins>
-	         </build>   
+	        </properties>  
 	    </profile>
-	    
+
 	</profiles>
 	
 </project>
diff --git a/src/assembly/macosx-release-assembly.xml b/src/assembly/macosx-release-assembly.xml
new file mode 100644
index 0000000000000000000000000000000000000000..8268c61aad45de37a1aaf6d5a55468ea5b16460c
--- /dev/null
+++ b/src/assembly/macosx-release-assembly.xml
@@ -0,0 +1,326 @@
+<?xml version="1.0"?>
+<project name="Mac OSX bundle script">
+
+<path id="artemis.class.path">
+	<pathelement path="${project.build.directory}/jars/${artemis.jar.name}" />
+</path>
+
+<path id="act.class.path">
+	<pathelement path="${project.build.directory}/jars/${act.jar.name}" />
+</path>
+
+<path id="dnaplotter.class.path">
+	<!-- Use self-contained jar -->
+	<pathelement path="${project.build.directory}/win-jars/${dnaplotter.jar.name}" />
+</path>
+
+<path id="bamview.class.path">
+	<!-- Use self-contained jar -->
+	<pathelement path="${project.build.directory}/win-jars/${bamview.jar.name}" />
+</path>
+
+<taskdef name="bundleapp"
+		classpath="${osx.bundler.jar}"
+		classname="com.oracle.appbundler.AppBundlerTask" />
+
+	
+<target name="bundle-mac-osx" description="Bundle Mac OSX Non-CHADO configured jars">
+
+	<mkdir dir="${osx.app.folder}/apps" />
+	<delete quiet="true">
+		<fileset dir="${osx.app.folder}" includes="${osx.release.filename}.*"/>
+	</delete>
+	
+	<!-- Artemis App -->
+	<bundleapp jvmrequired="${java.compatibility.major.version}"
+		classpathref="artemis.class.path" 
+		outputdirectory="${osx.app.folder}/apps"
+		name="${artemis.application.name}" 
+		displayname="${artemis.application.name}"
+		executableName="${artemis.application.name}" 
+		identifier="uk.ac.sanger.artemis" 
+		shortversion="${project.version}"
+		version="${project.version}" 
+		icon="${project.build.directory}/icons/artemis.icns"
+		mainclassname="${artemis.main.class}" 
+		copyright="${copyright.text}"
+		plistClassPaths="$APP_ROOT/Contents,$APP_ROOT/Contents/Java/${artemis.jar.name}">
+	
+		<bundledocument extensions="gff,gff3,embl,EMBL,genbank,gbk,fasta,fa"
+        		name="sequence"
+        		role="viewer"
+        		handlerRank="owner">
+      	</bundledocument>
+ 
+		<option value="${maxheap.command.line.arg}" />
+		<option value="${initialheap.command.line.arg}" />
+		<option value="${noverify.command.line.arg}" />
+		<option value="${unixenv.command.line.arg}" />
+		<option value="${macosx.use.menubar.arg}" />
+		<option value="${macosx.menuname.command.line.arg}=${artemis.application.name}" />
+		<option value="${macosx.dock.command.line.arg}=${artemis.application.name}" />
+		<option value="${sangeroptions.command.line.arg}" />
+		<option value="${blackbelt.command.line.arg}" />
+	</bundleapp>
+	
+	<!-- ACT App -->
+	<bundleapp jvmrequired="${java.compatibility.major.version}"
+		classpathref="act.class.path" 
+		outputdirectory="${osx.app.folder}/apps"
+		name="${act.application.name}" 
+		displayname="${act.application.name}"
+		executableName="${act.application.name}" 
+		identifier="uk.ac.sanger.act" 
+		shortversion="${project.version}"
+		version="${project.version}" 
+		icon="${project.build.directory}/icons/act.icns"
+		mainclassname="${act.main.class}" 
+		copyright="${copyright.text}"
+		plistClassPaths="$APP_ROOT/Contents,$APP_ROOT/Contents/Java/${act.jar.name}">
+
+		<option value="${maxheap.command.line.arg}" />
+		<option value="${initialheap.command.line.arg}" />
+		<option value="${noverify.command.line.arg}" />
+		<option value="${unixenv.command.line.arg}" />
+		<option value="${macosx.use.menubar.arg}" />
+		<option value="${macosx.menuname.command.line.arg}=${act.application.name}" />
+		<option value="${macosx.dock.command.line.arg}=${act.application.name}" />
+		<option value="${sangeroptions.command.line.arg}" />
+		<option value="${blackbelt.command.line.arg}" />
+	</bundleapp>
+	
+	<!-- DNA Plotter App -->
+	<bundleapp jvmrequired="${java.compatibility.major.version}"
+		classpathref="dnaplotter.class.path" 
+		outputdirectory="${osx.app.folder}/apps"
+		name="${dnaplotter.application.name}" 
+		displayname="${dnaplotter.application.name}"
+		executableName="${dnaplotter.application.name}" 
+		identifier="uk.ac.sanger.dnaplotter" 
+		shortversion="${project.version}"
+		version="${project.version}" 
+		icon="${project.build.directory}/icons/dnaplotter.icns"
+		mainclassname="${dnaplotter.main.class}" 
+		copyright="${copyright.text}">
+		
+		<option value="${maxheap.command.line.arg}" />
+		<option value="${initialheap.command.line.arg}" />
+		<option value="${noverify.command.line.arg}" />
+		<option value="${unixenv.command.line.arg}" />
+		<option value="${macosx.use.menubar.arg}" />
+		<option value="${macosx.menuname.command.line.arg}=${dnaplotter.application.name}" />
+		<option value="${macosx.dock.command.line.arg}=${dnaplotter.application.name}" />
+		<option value="${sangeroptions.command.line.arg}" />
+		<option value="${blackbelt.command.line.arg}" />
+	</bundleapp>
+	
+	<!-- BamView App -->
+	<bundleapp jvmrequired="${java.compatibility.major.version}"
+		classpathref="bamview.class.path" 
+		outputdirectory="${osx.app.folder}/apps"
+		name="${bamview.application.name}" 
+		displayname="${bamview.application.name}"
+		executableName="${bamview.application.name}" 
+		identifier="uk.ac.sanger.bamview" 
+		shortversion="${project.version}"
+		version="${project.version}" 
+		icon="${project.build.directory}/icons/bamview.icns"
+		mainclassname="${bamview.main.class}" 
+		copyright="${copyright.text}">
+	
+		<bundledocument extensions="bam,cram"
+	    		name="alignment"
+	    		role="viewer"
+	    		handlerRank="owner">
+	  	</bundledocument>
+		
+		<option value="${maxheap.command.line.arg}" />
+		<option value="${initialheap.command.line.arg}" />
+		<option value="${noverify.command.line.arg}" />
+		<option value="${unixenv.command.line.arg}" />
+		<option value="${macosx.use.menubar.arg}" />
+		<option value="${macosx.menuname.command.line.arg}=${bamview.application.name}" />
+		<option value="${macosx.dock.command.line.arg}=${bamview.application.name}" />
+	</bundleapp>
+	
+	<copy file="${artemis.icons.path}/dmg_icon.icns" tofile="${osx.app.folder}/apps/.VolumeIcon.icns"/>
+	
+	<!-- Set up additional folders -->
+	<copy todir="${osx.app.folder}/apps/${artemis.application.name}.app/Contents/etc">
+		<fileset dir="etc"/>
+	</copy>
+	<copy todir="${osx.app.folder}/apps/${act.application.name}.app/Contents/etc">
+		<fileset dir="etc"/>
+	</copy>
+	
+	<echo>NOTE: hdiutil must be installed to create a Mac .dmg image file...</echo>
+	
+	<exec executable="hdiutil">
+	    <arg value="create"/>
+	    <arg value="${osx.app.folder}/${osx.release.filename}.dmg"/>
+	    <arg value="-srcfolder"/>
+	    <arg value="${osx.app.folder}/apps"/>
+	    <arg value="-volname"/>
+	    <arg value="${osx.bundler.volume}"/>
+	 </exec>
+
+	 <exec executable="gzip">
+	    <arg value="${osx.app.folder}/${osx.release.filename}.dmg"/>
+	 </exec>
+	 
+</target>
+
+
+<target name="bundle-mac-osx-chado" description="Bundle Mac OSX CHADO configured jars">
+
+	<mkdir dir="${osx.app.chado.folder}/apps" />
+	<delete quiet="true">
+		<fileset dir="${osx.app.chado.folder}" includes="${osx.chado.release.filename}.*"/>
+	</delete>
+
+	<!-- Artemis (Chado enabled) App -->
+	<bundleapp jvmrequired="${java.compatibility.major.version}"
+		classpathref="artemis.class.path" 
+		outputdirectory="${osx.app.chado.folder}/apps"
+		name="${artemis.chado.application.name}" 
+		displayname="${artemis.chado.application.name}"
+		executableName="${artemis.chado.application.name}" 
+		identifier="uk.ac.sanger.artemis" 
+		shortversion="${project.version}"
+		version="${project.version}" 
+		icon="${project.build.directory}/icons/artemis.icns"
+		mainclassname="${artemis.main.class}" 
+		copyright="${copyright.text}"
+		workingdirectory="$APP_ROOT/Contents/"
+		plistClassPaths="$APP_ROOT/Contents,$APP_ROOT/Contents/Java/${artemis.jar.name}">
+	
+		<bundledocument extensions="gff,gff3,embl,EMBL,genbank,gbk,fasta,fa"
+        		name="sequence"
+        		role="viewer"
+        		handlerRank="owner">
+      	</bundledocument>
+		
+		<option value="${postgres.command.line.arg}" />
+		<option value="${chado.command.line.arg}" />
+		<option value="${ibatis.command.line.arg}" />
+		<option value="${maxheap.command.line.arg}" />
+		<option value="${initialheap.command.line.arg}" />
+		<option value="${noverify.command.line.arg}" />
+		<option value="${unixenv.command.line.arg}" />
+		<option value="${macosx.use.menubar.arg}" />
+		<option value="${macosx.menuname.command.line.arg}=${artemis.application.name}" />
+		<option value="${macosx.dock.command.line.arg}=${artemis.application.name}" />
+		<option value="${sangeroptions.command.line.arg}" />
+		<option value="${blackbelt.command.line.arg}" />
+	</bundleapp>
+	
+	<!-- ACT (Chado enabled) App -->
+	<bundleapp jvmrequired="${java.compatibility.major.version}"
+		classpathref="act.class.path" 
+		outputdirectory="${osx.app.chado.folder}/apps"
+		name="${act.chado.application.name}" 
+		displayname="${act.chado.application.name}"
+		executableName="${act.chado.application.name}" 
+		identifier="uk.ac.sanger.act" 
+		shortversion="${project.version}"
+		version="${project.version}" 
+		icon="${project.build.directory}/icons/act.icns"
+		mainclassname="${act.main.class}" 
+		copyright="${copyright.text}"
+		plistClassPaths="$APP_ROOT/Contents,$APP_ROOT/Contents/Java/${act.jar.name}">
+	
+		<option value="${postgres.command.line.arg}" />
+		<option value="${chado.command.line.arg}" />
+		<option value="${ibatis.command.line.arg}" />
+		<option value="${maxheap.command.line.arg}" />
+		<option value="${initialheap.command.line.arg}" />
+		<option value="${noverify.command.line.arg}" />
+		<option value="${unixenv.command.line.arg}" />
+		<option value="${macosx.use.menubar.arg}" />
+		<option value="${macosx.menuname.command.line.arg}=${act.application.name}" />
+		<option value="${macosx.dock.command.line.arg}=${act.application.name}" />
+		<option value="${sangeroptions.command.line.arg}" />
+		<option value="${blackbelt.command.line.arg}" />
+	</bundleapp>
+	
+	<!-- DNA Plotter App -->
+	<bundleapp jvmrequired="${java.compatibility.major.version}"
+		classpathref="dnaplotter.class.path" 
+		outputdirectory="${osx.app.chado.folder}/apps"
+		name="${dnaplotter.application.name}" 
+		displayname="${dnaplotter.application.name}"
+		executableName="${dnaplotter.application.name}" 
+		identifier="uk.ac.sanger.dnaplotter" 
+		shortversion="${project.version}"
+		version="${project.version}" 
+		icon="${project.build.directory}/icons/dnaplotter.icns"
+		mainclassname="${dnaplotter.main.class}" 
+		copyright="${copyright.text}">
+	
+		<option value="${maxheap.command.line.arg}" />
+		<option value="${initialheap.command.line.arg}" />
+		<option value="${noverify.command.line.arg}" />
+		<option value="${unixenv.command.line.arg}" />
+		<option value="${macosx.use.menubar.arg}" />
+		<option value="${macosx.menuname.command.line.arg}=${dnaplotter.application.name}" />
+		<option value="${macosx.dock.command.line.arg}=${dnaplotter.application.name}" />
+		<option value="${sangeroptions.command.line.arg}" />
+		<option value="${blackbelt.command.line.arg}" />
+	</bundleapp>
+	
+	<!-- BamView App -->
+	<bundleapp jvmrequired="${java.compatibility.major.version}"
+		classpathref="bamview.class.path" 
+		outputdirectory="${osx.app.chado.folder}/apps"
+		name="${bamview.application.name}" 
+		displayname="${bamview.application.name}"
+		executableName="${bamview.application.name}" 
+		identifier="uk.ac.sanger.bamview" 
+		shortversion="${project.version}"
+		version="${project.version}" 
+		icon="${project.build.directory}/icons/bamview.icns"
+		mainclassname="${bamview.main.class}" 
+		copyright="${copyright.text}">
+	
+		<bundledocument extensions="bam,cram"
+	    		name="alignment"
+	    		role="viewer"
+	    		handlerRank="owner">
+	  	</bundledocument>
+		
+		<option value="${maxheap.command.line.arg}" />
+		<option value="${initialheap.command.line.arg}" />
+		<option value="${noverify.command.line.arg}" />
+		<option value="${unixenv.command.line.arg}" />
+		<option value="${macosx.use.menubar.arg}" />
+		<option value="${macosx.menuname.command.line.arg}=${bamview.application.name}" />
+		<option value="${macosx.dock.command.line.arg}=${bamview.application.name}" />
+	</bundleapp>
+	
+	<copy file="${artemis.icons.path}/dmg_icon.icns" tofile="${osx.app.chado.folder}/apps/.VolumeIcon.icns"/>
+	
+	<!-- Set up additional folders -->
+	<copy todir="${osx.app.chado.folder}/apps/${artemis.chado.application.name}.app/Contents/etc">
+		<fileset dir="etc"/>
+	</copy>
+	<copy todir="${osx.app.chado.folder}/apps/${act.chado.application.name}.app/Contents/etc">
+		<fileset dir="etc"/>
+	</copy>
+	
+	<echo>NOTE: hdiutil must be installed to create a Mac .dmg image file...</echo>
+	
+	<exec executable="hdiutil">
+	    <arg value="create"/>
+	    <arg value="${osx.app.chado.folder}/${osx.chado.release.filename}.dmg"/>
+	    <arg value="-srcfolder"/>
+	    <arg value="${osx.app.chado.folder}/apps"/> 
+	    <arg value="-volname"/>
+	    <arg value="${osx.bundler.chado.volume}"/>
+	 </exec>
+	 
+	 <exec executable="gzip">
+	    <arg value="${osx.app.chado.folder}/${osx.chado.release.filename}.dmg"/>
+	 </exec>
+</target>
+
+</project>
diff --git a/src/assembly/unix-release-assembly.xml b/src/assembly/unix-release-assembly.xml
index e2a3d2b10aeb7d6d9d9a54eb365e2bf5d02ff067..b35ed9c9103a461f74e082d2d223adb0588e3d31 100644
--- a/src/assembly/unix-release-assembly.xml
+++ b/src/assembly/unix-release-assembly.xml
@@ -15,8 +15,8 @@
 	<!-- Assembles a simple release tar gz with jars and scripts -->
 	<fileSets>
 		<fileSet>
-			<directory>target/unix-jars</directory>
-			<outputDirectory>${unix.assembly.folder}</outputDirectory>
+			<directory>target/jars</directory>
+			<outputDirectory>${unix.assembly.folder}/dist</outputDirectory>
 			<includes>
 				<include>*.jar</include>
 			</includes>
@@ -27,7 +27,6 @@
 				<include>etc/**</include>
 			</includes>
 			<directoryMode>0755</directoryMode>
-			<fileMode>0755</fileMode>
 			<lineEnding>unix</lineEnding>
 		</fileSet>
 		<fileSet>
@@ -37,6 +36,7 @@
 				<include>LICENSE</include>
 				<include>README*</include>
 			</includes>
+			<lineEnding>unix</lineEnding>
 		</fileSet>
 		<fileSet>
 			<outputDirectory>${unix.assembly.folder}</outputDirectory>
diff --git a/src/assembly/windows-release-assembly.xml b/src/assembly/windows-release-assembly.xml
index 3b992a81ce513fbbcc2f6be6458e72db04e3177b..afe74552c4ed0ebb9ba9ff567076e44b8b179e96 100644
--- a/src/assembly/windows-release-assembly.xml
+++ b/src/assembly/windows-release-assembly.xml
@@ -14,7 +14,7 @@
 	
 	<fileSets>
 		<fileSet>
-			<directory>target/jars</directory>
+			<directory>target/win-jars</directory>
 			<outputDirectory>${windows.assembly.folder}</outputDirectory>
 			<includes>
 				<include>*.jar</include>