http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-robundle/src/test/java/org/apache/taverna/robundle/TestExample.java
----------------------------------------------------------------------
diff --git 
a/taverna-robundle/src/test/java/org/apache/taverna/robundle/TestExample.java 
b/taverna-robundle/src/test/java/org/apache/taverna/robundle/TestExample.java
deleted file mode 100644
index 51767f5..0000000
--- 
a/taverna-robundle/src/test/java/org/apache/taverna/robundle/TestExample.java
+++ /dev/null
@@ -1,107 +0,0 @@
-package org.apache.taverna.robundle;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-
-import java.io.OutputStream;
-import java.net.URI;
-import java.nio.charset.Charset;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.nio.file.StandardCopyOption;
-import java.nio.file.StandardOpenOption;
-
-import org.apache.taverna.robundle.Bundle;
-import org.apache.taverna.robundle.Bundles;
-import org.junit.Test;
-
-public class TestExample {
-       @Test
-       public void example() throws Exception {
-               // Create a new (temporary) RO bundle
-               Bundle bundle = Bundles.createBundle();
-
-               // Get the inputs
-               Path inputs = bundle.getRoot().resolve("inputs");
-               Files.createDirectory(inputs);
-
-               // Get an input port:
-               Path in1 = inputs.resolve("in1");
-
-               // Setting a string value for the input port:
-               Bundles.setStringValue(in1, "Hello");
-
-               // And retrieving it
-               assertTrue(Bundles.isValue(in1));
-               assertEquals("Hello", Bundles.getStringValue(in1));
-
-               // Or just use the regular Files methods:
-               int lines = 0;
-               for (String line : Files.readAllLines(in1, 
Charset.forName("UTF-8"))) {
-                       assertEquals("Hello", line);
-                       lines++;
-               }
-               assertEquals(1, lines);
-
-               // Binaries and large files are done through the Files API
-               try (OutputStream out = Files.newOutputStream(in1,
-                               StandardOpenOption.APPEND)) {
-                       out.write(32);
-               }
-               // Or Java 7 style
-               Path localFile = Files.createTempFile("", ".txt");
-               Files.copy(in1, localFile, StandardCopyOption.REPLACE_EXISTING);
-               //System.out.println("Written to: " + localFile);
-
-               Files.copy(localFile, bundle.getRoot().resolve("out1"));
-
-               // Representing references
-               URI ref = URI.create("http://example.com/external.txt";);
-               Path out3 = bundle.getRoot().resolve("out3");
-               Bundles.setReference(out3, ref);
-               if (Bundles.isReference(out3)) {
-                       URI resolved = Bundles.getReference(out3);
-                       assertNotNull(resolved);
-                       //System.out.println(resolved);
-               }
-
-               // Saving a bundle:
-               Path zip = Files.createTempFile("bundle", ".zip");
-               Bundles.closeAndSaveBundle(bundle, zip);
-               // NOTE: From now "bundle" and its Path's are CLOSED
-               // and can no longer be accessed
-
-               //System.out.println("Saved to " + zip);
-
-               // Loading a bundle back from disk
-               try (Bundle bundle2 = Bundles.openBundle(zip)) {
-                       assertEquals(zip, bundle2.getSource());
-               }
-
-               // if (Desktop.isDesktopSupported()) {
-               // // Open ZIP file for browsing
-               // Desktop.getDesktop().open(zip.toFile());
-               // }
-       }
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-robundle/src/test/java/org/apache/taverna/robundle/fs/Helper.java
----------------------------------------------------------------------
diff --git 
a/taverna-robundle/src/test/java/org/apache/taverna/robundle/fs/Helper.java 
b/taverna-robundle/src/test/java/org/apache/taverna/robundle/fs/Helper.java
deleted file mode 100644
index 8538c30..0000000
--- a/taverna-robundle/src/test/java/org/apache/taverna/robundle/fs/Helper.java
+++ /dev/null
@@ -1,50 +0,0 @@
-package org.apache.taverna.robundle.fs;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import java.io.IOException;
-import java.nio.file.Files;
-import java.nio.file.Path;
-
-import org.apache.taverna.robundle.Bundles;
-import org.apache.taverna.robundle.fs.BundleFileSystem;
-import org.apache.taverna.robundle.fs.BundleFileSystemProvider;
-import org.junit.After;
-import org.junit.Before;
-
-public class Helper {
-       protected BundleFileSystem fs;
-
-       @Before
-       public void makeFS() throws IOException {
-               fs = BundleFileSystemProvider.newFileSystemFromTemporary();
-       }
-
-       @After
-       public void closeAndDeleteFS() throws IOException {
-               fs.close();
-               Path source = fs.getSource();
-               Files.deleteIfExists(source);
-               if 
(source.getParent().getFileName().toString().startsWith("robundle")) {
-                       Bundles.deleteRecursively(source.getParent());
-               }
-       }
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-robundle/src/test/java/org/apache/taverna/robundle/fs/MemoryEfficiencyIT.java
----------------------------------------------------------------------
diff --git 
a/taverna-robundle/src/test/java/org/apache/taverna/robundle/fs/MemoryEfficiencyIT.java
 
b/taverna-robundle/src/test/java/org/apache/taverna/robundle/fs/MemoryEfficiencyIT.java
deleted file mode 100644
index a0d7ed3..0000000
--- 
a/taverna-robundle/src/test/java/org/apache/taverna/robundle/fs/MemoryEfficiencyIT.java
+++ /dev/null
@@ -1,255 +0,0 @@
-package org.apache.taverna.robundle.fs;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import static org.junit.Assert.assertTrue;
-
-import java.io.IOException;
-import java.io.OutputStream;
-import java.nio.ByteBuffer;
-import java.nio.channels.FileChannel;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.nio.file.StandardOpenOption;
-import java.util.Date;
-import java.util.Random;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
-import java.util.concurrent.TimeUnit;
-
-import org.apache.taverna.robundle.Bundles;
-import 
org.apache.taverna.robundle.utils.RecursiveCopyFileVisitor.RecursiveCopyOption;
-import org.junit.Assume;
-import org.junit.Test;
-
-public class MemoryEfficiencyIT extends Helper {
-       private static final int MANY_FOLDERS = 100;
-       private static final int MANY_FILS = 10000;
-       private Runtime rt = Runtime.getRuntime();
-
-       // delays to allow garbage collection to run
-       private static final long GC_DELAY = 300;
-       private static final int kiB = 1024;
-
-       private static final int MiB = 1024 * 1024;
-       private static final long GiB = 1024l * 1024l * 1024l;
-
-       Random rand = new Random();
-       int MAX_WORKERS = 10;
-
-       @Test
-       public void writeManyFiles() throws Exception {
-
-               long usedBefore = usedMemory();
-
-               Path folder = fs.getPath("folder");
-
-               for (int i = 0; i < MANY_FOLDERS; i++) {
-                       Path dir = folder.resolve("dir" + i);
-                       Files.createDirectories(dir);
-               }
-
-               final byte[] pattern = new byte[8 * kiB];
-               rand.nextBytes(pattern);
-
-               ExecutorService pool = 
Executors.newFixedThreadPool(MAX_WORKERS);
-               try {
-                       int numFiles = MANY_FILS;
-                       System.out.println("Writing " + numFiles
-                                       + " files in parallell over max " + 
MAX_WORKERS
-                                       + " threads");
-                       for (int i = 0; i < numFiles; i++) {
-                               int folderNo = i % 100;
-                               Path dir = folder.resolve("dir" + folderNo);
-                               final Path file = dir.resolve("file" + i);
-                               pool.submit(new Runnable() {
-                                       @Override
-                                       public void run() {
-                                               try (OutputStream 
newOutputStream = Files
-                                                               
.newOutputStream(file)) {
-                                                       
newOutputStream.write(pattern);
-                                               } catch (IOException e) {
-                                                       e.printStackTrace();
-                                               }
-                                       };
-                               });
-                       }
-                       pool.shutdown();
-                       assertTrue("Timed out waiting for threads",
-                                       pool.awaitTermination(60, 
TimeUnit.SECONDS));
-                       System.out.println("Done");
-               } finally {
-                       pool.shutdownNow();
-               }
-               long usedAfterCloseFile = usedMemory();
-               assertTrue(usedAfterCloseFile - usedBefore < 10 * MiB);
-
-               Date startedRecurse = new Date();
-               System.out.println("Recursively copying folder");
-               Bundles.copyRecursively(folder, fs.getPath("copy"),
-                               RecursiveCopyOption.IGNORE_ERRORS);
-               long duration = new Date().getTime() - startedRecurse.getTime();
-               System.out.println("Done in " + duration / 1000 + "s");
-
-               long usedAfterRecursive = usedMemory();
-               assertTrue(usedAfterRecursive - usedBefore < 20 * MiB);
-
-               fs.close();
-               long zipSize = Files.size(fs.getSource());
-               System.out.println("ZIP: " + zipSize / MiB + " MiB");
-               long usedAfterCloseFS = usedMemory();
-               assertTrue(usedAfterCloseFS - usedBefore < 20 * MiB);
-               assertTrue(usedAfterCloseFS < zipSize);
-
-       }
-
-       /**
-        * This file may take a few minutes to complete depending on your OS and
-        * disk
-        * 
-        */
-       @Test
-       public void writeGigaFile() throws Exception {
-
-               long usedBefore = usedMemory();
-
-               Path file = fs.getPath("bigfile");
-               long size = 5l * GiB;
-               Assume.assumeTrue("This test requires at least " + size / GiB
-                               + "GiB free disk space",
-                               fs.getFileStore().getUsableSpace() < size);
-               System.out.println("Writing " + size / GiB + "GiB to bundle");
-
-               // We'll use FileChannel as it allows calling .position. This 
should
-               // be very fast on UNIX which allows zero-padding, but on 
Windows
-               // this will still take a while as it writes 5 GiB of \00s to 
disk.
-
-               // Another downside is that the ZipFileProvider compresses the 
file
-               // once the file channel is closed, requiring ~5 GB disk space
-               try (FileChannel bc = FileChannel.open(file, 
StandardOpenOption.WRITE,
-                               StandardOpenOption.SPARSE, 
StandardOpenOption.CREATE_NEW)) {
-                       bc.position(size);
-                       ByteBuffer src = ByteBuffer.allocateDirect(1024);
-                       bc.write(src);
-               }
-
-               long fileSize = Files.size(file);
-               assertTrue(fileSize > size);
-               System.out.println("Written " + fileSize / MiB);
-               long usedAfterCloseFile = usedMemory();
-               assertTrue(usedAfterCloseFile - usedBefore < 10 * MiB);
-
-               fs.close();
-               long zipSize = Files.size(fs.getSource());
-               System.out.println("ZIP: " + zipSize / MiB + " MiB");
-               // Zeros should compress fairly well
-               assertTrue(zipSize < 10 * MiB);
-
-               long usedAfterCloseFS = usedMemory();
-               assertTrue(usedAfterCloseFS - usedBefore < 10 * MiB);
-       }
-
-       @Test
-       public void writeBigFile() throws Exception {
-
-               long usedBefore = usedMemory();
-               long size = sufficientlyBig();
-               long limit = size / 2;
-
-               Path file = fs.getPath("bigfile");
-
-               // Big enough random bytes to blow ZIP's compression buffer
-               byte[] pattern = new byte[MiB];
-               rand.nextBytes(pattern);
-
-               long written = 0;
-               try (OutputStream newOutputStream = 
Files.newOutputStream(file)) {
-                       while (written < size) {
-                               newOutputStream.write(pattern);
-                               written += pattern.length;
-                       }
-                       pattern = null;
-                       rand = null;
-                       long usedAfterWrite = usedMemory();
-                       assertTrue(usedAfterWrite - usedBefore < limit);
-               }
-               long fileSize = Files.size(file);
-               assertTrue(fileSize >= size);
-               // System.out.println("Written " + fileSize/MiB + ", needed " +
-               // size/MiB);
-               long usedAfterCloseFile = usedMemory();
-               assertTrue(usedAfterCloseFile - usedBefore < limit);
-
-               fs.close();
-               long zipSize = Files.size(fs.getSource());
-               System.out.println("ZIP: " + zipSize / MiB + " MiB");
-               assertTrue(zipSize > limit);
-
-               long usedAfterCloseFS = usedMemory();
-               assertTrue(usedAfterCloseFS - usedBefore < 10 * MiB);
-       }
-
-       private long sufficientlyBig() throws IOException {
-               long usableSpace = fs.getFileStore().getUsableSpace();
-               long need = 64 * MiB;
-               if (need * 2 > usableSpace) {
-                       String msg = "Not enough disk space (%s MiB < %s)";
-                       long freeSpace = usableSpace / MiB;
-                       long needSpace = need * 2 / MiB;
-                       throw new IllegalStateException(String.format(msg, 
freeSpace,
-                                       needSpace));
-               }
-               return need;
-       }
-
-       @Test
-       public void testUsedMemory() throws Exception {
-               long before = usedMemory();
-               byte[] waste = new byte[50 * MiB];
-               waste[0] = 13;
-               waste[waste.length - 1] = 37;
-               long after = usedMemory();
-
-               assertTrue((after - before) > 10 * MiB);
-               waste = null;
-               long now = usedMemory();
-               // and it should have been freed again
-               assertTrue((after - now) > 10 * MiB);
-
-       }
-
-       public long usedMemory() throws InterruptedException {
-               runGC();
-               long used = rt.totalMemory() - rt.freeMemory();
-               System.out.println("Used memory: " + used / MiB + " MiB");
-               return used;
-       }
-
-       public void runGC() {
-               System.gc();
-               try {
-                       Thread.sleep(GC_DELAY);
-                       System.gc();
-                       Thread.sleep(GC_DELAY);
-               } catch (InterruptedException e) {
-               }
-       }
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-robundle/src/test/java/org/apache/taverna/robundle/fs/TestBundleFileSystem.java
----------------------------------------------------------------------
diff --git 
a/taverna-robundle/src/test/java/org/apache/taverna/robundle/fs/TestBundleFileSystem.java
 
b/taverna-robundle/src/test/java/org/apache/taverna/robundle/fs/TestBundleFileSystem.java
deleted file mode 100644
index 6a4b7bd..0000000
--- 
a/taverna-robundle/src/test/java/org/apache/taverna/robundle/fs/TestBundleFileSystem.java
+++ /dev/null
@@ -1,236 +0,0 @@
-package org.apache.taverna.robundle.fs;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
-
-import java.io.IOException;
-import java.nio.charset.Charset;
-import java.nio.file.FileAlreadyExistsException;
-import java.nio.file.Files;
-import java.nio.file.NoSuchFileException;
-import java.nio.file.Path;
-import java.nio.file.attribute.BasicFileAttributeView;
-import java.nio.file.attribute.FileTime;
-import java.util.concurrent.TimeUnit;
-
-import org.apache.taverna.robundle.Bundle;
-import org.apache.taverna.robundle.Bundles;
-import org.junit.Test;
-
-public class TestBundleFileSystem extends Helper {
-
-       @Test
-       public void writeToNewFile() throws Exception {
-               Path file = fs.getPath("test.txt");
-               Files.newBufferedWriter(file, Charset.defaultCharset()).close();
-       }
-
-       @Test
-       public void reopenNew() throws Exception {
-               Path x = Files.createTempFile("temp", ".zip");
-               Bundle bundle = Bundles.createBundle(x);
-               Path newFile = Files.createTempFile("temp", ".zip");
-               Bundles.closeAndSaveBundle(bundle, newFile);
-               Bundles.openBundle(newFile);
-       }
-
-       @Test
-       public void closeAndSaveToPreserveOriginal() throws Exception {
-               Path x = Files.createTempFile("temp", ".zip");
-               Bundle bundle = Bundles.createBundle(x);
-               Path newFile = Files.createTempFile("temp", ".zip");
-               Bundles.closeAndSaveBundle(bundle, newFile);
-               Bundles.openBundle(x);
-       }
-
-       /**
-        * Test that BundleFileSystem does not allow a ZIP file to also become a
-        * directory. See http://stackoverflow.com/questions/16588321/ as Java 
7'z
-        * ZIPFS normally allows this (!)
-        * 
-        * @throws Exception
-        */
-       @Test
-       public void fileAndDirectory() throws Exception {
-               Path folder = fs.getPath("folder");
-
-               // To test on local file system, uncomment next 2 lines:
-               // Path test = Files.createTempDirectory("test");
-               // folder = test.resolve("folder");
-
-               assertFalse(Files.exists(folder));
-               Files.createFile(folder);
-               assertTrue(Files.exists(folder));
-               assertTrue(Files.isRegularFile(folder));
-               assertFalse(Files.isDirectory(folder));
-
-               try {
-                       Files.createDirectory(folder);
-                       fail("Should have thrown FileAlreadyExistsException");
-               } catch (FileAlreadyExistsException ex) {
-               }
-               assertFalse(Files.isDirectory(folder));
-
-               try {
-                       Files.createDirectories(folder);
-                       fail("Should have thrown FileAlreadyExistsException");
-               } catch (FileAlreadyExistsException ex) {
-               }
-               assertFalse(Files.isDirectory(folder));
-
-               Path child = folder.resolve("child");
-
-               try {
-                       Files.createFile(child);
-                       fail("Should have thrown NoSuchFileException");
-               } catch (NoSuchFileException ex) {
-               }
-               assertFalse(Files.exists(child));
-
-               assertTrue(Files.isRegularFile(folder));
-               assertFalse(Files.isDirectory(folder));
-               assertFalse(Files.isDirectory(child.getParent()));
-               assertFalse(Files.isDirectory(fs.getPath("folder/")));
-       }
-
-       /**
-        * Test that BundleFileSystem does not allow a ZIP directory to also 
become
-        * a file. See http://stackoverflow.com/questions/16588321/ as Java 7'z
-        * ZIPFS normally allows this (!)
-        * 
-        * @throws Exception
-        */
-       @Test
-       public void directoryAndFile() throws Exception {
-               Path folderSlash = fs.getPath("folder/");
-               Path folder = fs.getPath("folder");
-
-               // Uncomment next 3 lines to test on local FS
-               // Path test = Files.createTempDirectory("test");
-               // folderSlash = test.resolve("folder/");
-               // folder = test.resolve("folder");
-
-               assertFalse(Files.exists(folderSlash));
-
-               Files.createDirectory(folderSlash);
-               assertTrue(Files.exists(folderSlash));
-               assertFalse(Files.isRegularFile(folderSlash));
-               assertTrue(Files.isDirectory(folderSlash));
-
-               try {
-                       Files.createDirectory(folderSlash);
-                       fail("Should have thrown FileAlreadyExistsException");
-               } catch (FileAlreadyExistsException ex) {
-               }
-
-               try {
-                       Files.createFile(folderSlash);
-                       fail("Should have thrown IOException");
-               } catch (IOException ex) {
-               }
-
-               try {
-                       Files.createFile(folder);
-                       fail("Should have thrown IOException");
-               } catch (IOException ex) {
-               }
-
-               Path child = folderSlash.resolve("child");
-               Files.createFile(child);
-
-               assertTrue(Files.exists(folder));
-               assertTrue(Files.exists(folderSlash));
-
-               assertFalse(Files.isRegularFile(folder));
-               assertFalse(Files.isRegularFile(folderSlash));
-
-               assertTrue(Files.isDirectory(folder));
-               assertTrue(Files.isDirectory(folderSlash));
-
-       }
-
-       @Test
-       public void setLastModifiedTime() throws Exception {
-               Path root = fs.getRootDirectories().iterator().next();
-
-               Path folder = root.resolve("folder");
-               Files.createDirectory(folder);
-
-               Path file = root.resolve("file");
-               Files.createFile(file);
-
-               int manyDays = 365 * 12;
-               FileTime someTimeAgo = FileTime.from(manyDays, TimeUnit.DAYS);
-               Files.setLastModifiedTime(folder, someTimeAgo);
-               Files.setLastModifiedTime(file, someTimeAgo);
-               Files.setLastModifiedTime(root, someTimeAgo);
-
-               // Should be equal, +/- 2 seconds (allowing precision loss)
-               assertEquals((double) someTimeAgo.toMillis(), Files
-                               .getLastModifiedTime(folder).toMillis(), 2001);
-               assertEquals((double) someTimeAgo.toMillis(), Files
-                               .getLastModifiedTime(file).toMillis(), 2001);
-
-               // Fails as we'll get back -1 instead
-               // assertEquals((double)someTimeAgo.toMillis(),
-               // Files.getLastModifiedTime(root).toMillis(), 2001);
-       }
-
-       @Test
-       public void creationTime() throws Exception {
-               Path root = fs.getRootDirectories().iterator().next();
-
-               Path folder = root.resolve("folder");
-               Files.createDirectory(folder);
-
-               Path file = root.resolve("file");
-               Files.createFile(file);
-
-               int manyDays = 365 * 12;
-               FileTime someTimeAgo = FileTime.from(manyDays, TimeUnit.DAYS);
-
-               Files.getFileAttributeView(folder, BasicFileAttributeView.class)
-                               .setTimes(null, null, someTimeAgo);
-               Files.getFileAttributeView(file, BasicFileAttributeView.class)
-                               .setTimes(null, null, someTimeAgo);
-               Files.getFileAttributeView(root, BasicFileAttributeView.class)
-                               .setTimes(null, null, someTimeAgo);
-
-               // Should be equal, +/- 2 seconds
-               assertEquals((double) someTimeAgo.toMillis(),
-                               (double) ((FileTime) Files.getAttribute(file, 
"creationTime"))
-                                               .toMillis(), 2001);
-               assertEquals(
-                               (double) someTimeAgo.toMillis(),
-                               (double) ((FileTime) Files.getAttribute(folder, 
"creationTime"))
-                                               .toMillis(), 2001);
-
-               // FIXME: FAils with NullPointerException! :(
-               // assertEquals((double)someTimeAgo.toMillis(), (double)
-               // ((FileTime)Files.getAttribute(root, 
"creationTime")).toMillis(),
-               // 2001);
-
-       }
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-robundle/src/test/java/org/apache/taverna/robundle/fs/TestBundleFileTypeDetector.java
----------------------------------------------------------------------
diff --git 
a/taverna-robundle/src/test/java/org/apache/taverna/robundle/fs/TestBundleFileTypeDetector.java
 
b/taverna-robundle/src/test/java/org/apache/taverna/robundle/fs/TestBundleFileTypeDetector.java
deleted file mode 100644
index ca116b0..0000000
--- 
a/taverna-robundle/src/test/java/org/apache/taverna/robundle/fs/TestBundleFileTypeDetector.java
+++ /dev/null
@@ -1,97 +0,0 @@
-package org.apache.taverna.robundle.fs;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertTrue;
-
-import java.nio.charset.Charset;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.util.Arrays;
-import java.util.zip.ZipEntry;
-import java.util.zip.ZipOutputStream;
-
-import org.apache.taverna.robundle.Bundle;
-import org.apache.taverna.robundle.Bundles;
-import org.apache.taverna.robundle.fs.BundleFileTypeDetector;
-import org.junit.Test;
-
-public class TestBundleFileTypeDetector {
-       @Test
-       public void detectRoBundle() throws Exception {
-               BundleFileTypeDetector detector = new BundleFileTypeDetector();
-               try (Bundle bundle = Bundles.createBundle()) {
-                       assertEquals("application/vnd.wf4ever.robundle+zip",
-                                       
detector.probeContentType(bundle.getSource()));
-               }
-       }
-
-       @Test
-       public void detectEmptyZip() throws Exception {
-               BundleFileTypeDetector detector = new BundleFileTypeDetector();
-
-               Path zip = Files.createTempFile("test", ".bin");
-               zip.toFile().deleteOnExit();
-               try (ZipOutputStream zout = new ZipOutputStream(
-                               Files.newOutputStream(zip))) {
-                       ZipEntry entry = new ZipEntry("e");
-                       zout.putNextEntry(entry);
-                       zout.closeEntry();
-
-               }
-               assertEquals("application/zip", detector.probeContentType(zip));
-       }
-
-       @Test
-       public void detectNonZip() throws Exception {
-               BundleFileTypeDetector detector = new BundleFileTypeDetector();
-
-               Path file = Files.createTempFile("test", ".bin");
-               file.toFile().deleteOnExit();
-               Files.write(file, Arrays.asList("This is just some text",
-                               "added here to make the file", "larger than 38 
bytes"), Charset
-                               .forName("UTF8"));
-               assertTrue(Files.size(file) > 38);
-               assertNull(detector.probeContentType(file));
-       }
-
-       @Test
-       public void detectEmpty() throws Exception {
-               BundleFileTypeDetector detector = new BundleFileTypeDetector();
-
-               Path file = Files.createTempFile("test", ".bin");
-               file.toFile().deleteOnExit();
-               assertEquals(0, Files.size(file));
-               assertNull(detector.probeContentType(file));
-       }
-
-       @Test
-       public void detectorSPI() throws Exception {
-               try (Bundle bundle = Bundles.createBundle()) {
-                       assertEquals("application/vnd.wf4ever.robundle+zip",
-                                       
Files.probeContentType(bundle.getSource()));
-               }
-
-       }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-robundle/src/test/java/org/apache/taverna/robundle/fs/TestBundlePaths.java
----------------------------------------------------------------------
diff --git 
a/taverna-robundle/src/test/java/org/apache/taverna/robundle/fs/TestBundlePaths.java
 
b/taverna-robundle/src/test/java/org/apache/taverna/robundle/fs/TestBundlePaths.java
deleted file mode 100644
index 93f3cdb..0000000
--- 
a/taverna-robundle/src/test/java/org/apache/taverna/robundle/fs/TestBundlePaths.java
+++ /dev/null
@@ -1,58 +0,0 @@
-package org.apache.taverna.robundle.fs;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertTrue;
-
-import java.nio.file.Path;
-
-import org.junit.Test;
-
-public class TestBundlePaths extends Helper {
-
-       @Test
-       public void endsWith() throws Exception {
-               Path root = fs.getRootDirectory();
-               Path barBazAbs = root.resolve("bar/baz");
-               System.out.println(barBazAbs);
-               Path barBaz = root.relativize(barBazAbs);
-               assertEquals("bar/baz", barBaz.toString());
-               assertTrue(barBaz.endsWith("bar/baz"));
-               assertFalse(barBaz.endsWith("bar/../bar/baz"));
-               Path climber = barBaz.resolve("../baz");
-               assertEquals("bar/baz/../baz", climber.toString());
-               assertTrue(climber.endsWith("../baz"));
-               assertFalse(climber.endsWith("bar/baz"));
-               Path climberNorm = climber.normalize();
-               assertFalse(climberNorm.endsWith("../baz"));
-               assertTrue(climberNorm.endsWith("bar/baz"));
-       }
-
-       @Test
-       public void parent() throws Exception {
-               Path root = fs.getRootDirectory();
-               assertNull(root.getParent());
-       }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-robundle/src/test/java/org/apache/taverna/robundle/fs/TestFileSystemProvider.java
----------------------------------------------------------------------
diff --git 
a/taverna-robundle/src/test/java/org/apache/taverna/robundle/fs/TestFileSystemProvider.java
 
b/taverna-robundle/src/test/java/org/apache/taverna/robundle/fs/TestFileSystemProvider.java
deleted file mode 100644
index cdbcae4..0000000
--- 
a/taverna-robundle/src/test/java/org/apache/taverna/robundle/fs/TestFileSystemProvider.java
+++ /dev/null
@@ -1,278 +0,0 @@
-package org.apache.taverna.robundle.fs;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertSame;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
-
-import java.net.URI;
-import java.nio.charset.Charset;
-import java.nio.file.FileSystem;
-import java.nio.file.FileSystems;
-import java.nio.file.Files;
-import java.nio.file.InvalidPathException;
-import java.nio.file.Path;
-import java.nio.file.spi.FileSystemProvider;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Map;
-
-import org.apache.taverna.robundle.fs.BundleFileSystem;
-import org.apache.taverna.robundle.fs.BundleFileSystemProvider;
-import org.junit.Assume;
-import org.junit.Test;
-
-public class TestFileSystemProvider {
-
-       @Test
-       public void getInstance() throws Exception {
-               assertSame(BundleFileSystemProvider.getInstance(),
-                               BundleFileSystemProvider.getInstance());
-       }
-
-       @SuppressWarnings("deprecation")
-       @Test
-       public void getInstanceEquals() throws Exception {
-               assertEquals(BundleFileSystemProvider.getInstance(),
-                               new BundleFileSystemProvider());
-       }
-
-       @SuppressWarnings("deprecation")
-       @Test
-       public void getInstanceHashCode() throws Exception {
-               assertEquals(BundleFileSystemProvider.getInstance().hashCode(),
-                               new BundleFileSystemProvider().hashCode());
-       }
-
-       @SuppressWarnings({ "deprecation", "static-access" })
-       @Test
-       public void sameOpen() throws Exception {
-               
assertSame(BundleFileSystemProvider.getInstance().openFilesystems,
-                               new BundleFileSystemProvider().openFilesystems);
-       }
-
-       @Test
-       public void installedProviders() throws Exception {
-               for (FileSystemProvider provider : FileSystemProvider
-                               .installedProviders()) {
-                       if (provider instanceof BundleFileSystemProvider) {
-                               assertSame(provider, 
BundleFileSystemProvider.getInstance());
-                               return;
-                       }
-               }
-               fail("Could not find BundleFileSystemProvider as installed 
provider");
-       }
-
-       @Test
-       public void newByURI() throws Exception {
-
-               Path path = Files.createTempFile("test", "zip");
-               path.toFile().deleteOnExit();
-               BundleFileSystemProvider.createBundleAsZip(path, null);
-
-               // HACK: Use a opaque version of app: with the file URI as 
scheme
-               // specific part
-               URI w = new URI("app", path.toUri().toASCIIString(), null);
-               try (FileSystem fs = FileSystems.newFileSystem(w,
-                               Collections.<String, Object> emptyMap())) {
-                       assertTrue(fs instanceof BundleFileSystem);
-               }
-       }
-
-       @Test
-       public void bundleWithSpaces() throws Exception {
-               Path path = Files.createTempFile("with several spaces", ".zip");
-               path.toFile().deleteOnExit();
-               Files.delete(path);
-
-               URI app = new URI("app", path.toUri().toString(), null);
-               
assertTrue(app.toASCIIString().contains("with%2520several%2520spaces"));
-
-               Map<String, Object> env = new HashMap<>();
-               env.put("create", "true");
-
-               try (FileSystem fs = FileSystems.newFileSystem(app, env)) {
-               }
-               assertTrue(Files.exists(path));
-               // Reopen from now-existing Path to check that the URI is
-               // escaped in the same way
-               try (FileSystem fs = BundleFileSystemProvider
-                               .newFileSystemFromExisting(path)) {
-               }
-       }
-
-       @Test
-       public void bundleWithSpacesSource() throws Exception {
-               Path path = Files.createTempFile("with several spaces", ".zip");
-               path.toFile().deleteOnExit();
-               Files.delete(path);
-
-               try (BundleFileSystem fs = BundleFileSystemProvider
-                               .newFileSystemFromNew(path)) {
-                       assertTrue(Files.exists(fs.getSource()));
-                       assertEquals(path.toAbsolutePath(), fs.getSource());
-               }
-               assertTrue(Files.exists(path));
-       }
-
-       @Test
-       public void bundleWithUnicode() throws Exception {
-               Path path;
-               try {
-                       path = 
Files.createTempFile("with\u2301unicode\u263bhere", ".zip");
-               } catch (InvalidPathException ex) {
-                       Assume.assumeNoException(
-                                       "Can't test unicode filename, as 
-Dfile.encoding="
-                                                       + 
System.getProperty("file.encoding"), ex);
-                       return;
-               }
-               path.toFile().deleteOnExit();
-               Files.delete(path);
-               // System.out.println(path); // Should contain a electrical 
symbol and
-               // smiley
-               URI app = new URI("app", path.toUri().toString(), null);
-               // FIXME: The below passes on Windows 8 but not in Linux!?
-               // System.out.println(app);
-               // assertTrue(app.toString().contains("\u2301"));
-               // assertTrue(app.toString().contains("\u263b"));
-
-               Map<String, Object> env = new HashMap<>();
-               env.put("create", "true");
-
-               try (FileSystem fs = FileSystems.newFileSystem(app, env)) {
-               }
-               assertTrue(Files.exists(path));
-               // Reopen from now-existing Path to check that the URI is
-               // escaped in the same way
-               try (FileSystem fs = BundleFileSystemProvider
-                               .newFileSystemFromExisting(path)) {
-               }
-       }
-
-       @Test
-       public void newFileSystemFromExisting() throws Exception {
-               Path path = Files.createTempFile("test", null);
-               path.toFile().deleteOnExit();
-               Files.delete(path);
-               // Make the Bundle first
-               BundleFileSystemProvider.createBundleAsZip(path, 
"application/x-test");
-               assertTrue(Files.exists(path));
-
-               try (BundleFileSystem f = BundleFileSystemProvider
-                               .newFileSystemFromExisting(path)) {
-                       assertEquals(path, f.getSource());
-                       assertEquals(
-                                       "application/x-test",
-                                       Files.readAllLines(
-                                                       
f.getRootDirectory().resolve("mimetype"),
-                                                       
Charset.forName("ASCII")).get(0));
-               }
-       }
-
-       @Test
-       public void newFileSystemFromExistingPath() throws Exception {
-               Path path = Files.createTempFile("test", null);
-               path.toFile().deleteOnExit();
-               Files.delete(path);
-               // Make the Bundle first as we can't pass inn create=true :/
-               BundleFileSystemProvider.createBundleAsZip(path, 
"application/x-test");
-               assertTrue(Files.exists(path));
-
-               try (FileSystem fs = FileSystems.newFileSystem(path, getClass()
-                               .getClassLoader())) {
-                       assertEquals(
-                                       "application/x-test",
-                                       
Files.readAllLines(fs.getPath("mimetype"),
-                                                       
Charset.forName("ASCII")).get(0));
-               }
-       }
-
-       @Test
-       public void newFileSystemFromNewDefaultMime() throws Exception {
-               Path path = Files.createTempFile("test", null);
-               path.toFile().deleteOnExit();
-               Files.delete(path);
-               BundleFileSystem f = BundleFileSystemProvider
-                               .newFileSystemFromNew(path);
-               assertTrue(Files.exists(path));
-               assertEquals(path, f.getSource());
-               assertEquals(
-                               "application/vnd.wf4ever.robundle+zip",
-                               
Files.readAllLines(f.getRootDirectory().resolve("mimetype"),
-                                               
Charset.forName("ASCII")).get(0));
-       }
-
-       @Test
-       public void newFileSystemURI() throws Exception {
-               Path path = Files.createTempFile("test", null);
-               path.toFile().deleteOnExit();
-               Files.delete(path);
-
-               URI uri = new URI("app", path.toUri().toASCIIString(), (String) 
null);
-
-               Map<String, String> env = new HashMap<>();
-               env.put("create", "true");
-               // And the optional mimetype
-               env.put("mimetype", "application/x-test2");
-               FileSystem f = FileSystems.newFileSystem(uri, env, getClass()
-                               .getClassLoader());
-               assertTrue(Files.exists(path));
-               assertEquals(
-                               "application/x-test2",
-                               Files.readAllLines(f.getPath("mimetype"),
-                                               
Charset.forName("ASCII")).get(0));
-       }
-
-       @Test
-       public void newFileSystemFromNew() throws Exception {
-               Path path = Files.createTempFile("test", null);
-               path.toFile().deleteOnExit();
-               Files.delete(path);
-               path.toUri();
-               BundleFileSystem f = 
BundleFileSystemProvider.newFileSystemFromNew(
-                               path, "application/x-test2");
-               assertTrue(Files.exists(path));
-               assertEquals(path, f.getSource());
-               assertEquals(
-                               "application/x-test2",
-                               
Files.readAllLines(f.getRootDirectory().resolve("mimetype"),
-                                               
Charset.forName("ASCII")).get(0));
-       }
-
-       @Test
-       public void newFileSystemFromTemporary() throws Exception {
-               Path source;
-               try (BundleFileSystem f = BundleFileSystemProvider
-                               .newFileSystemFromTemporary()) {
-                       source = f.getSource();
-                       assertTrue(Files.exists(source));
-                       assertEquals(
-                                       "application/vnd.wf4ever.robundle+zip",
-                                       Files.readAllLines(
-                                                       
f.getRootDirectory().resolve("mimetype"),
-                                                       
Charset.forName("ASCII")).get(0));
-               }
-               Files.delete(source);
-       }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-robundle/src/test/java/org/apache/taverna/robundle/fs/TestZipFS.java
----------------------------------------------------------------------
diff --git 
a/taverna-robundle/src/test/java/org/apache/taverna/robundle/fs/TestZipFS.java 
b/taverna-robundle/src/test/java/org/apache/taverna/robundle/fs/TestZipFS.java
deleted file mode 100644
index 95939a8..0000000
--- 
a/taverna-robundle/src/test/java/org/apache/taverna/robundle/fs/TestZipFS.java
+++ /dev/null
@@ -1,213 +0,0 @@
-package org.apache.taverna.robundle.fs;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
-
-import java.io.IOException;
-import java.net.URI;
-import java.nio.channels.FileChannel;
-import java.nio.file.DirectoryStream;
-import java.nio.file.FileAlreadyExistsException;
-import java.nio.file.FileSystem;
-import java.nio.file.FileSystems;
-import java.nio.file.Files;
-import java.nio.file.NoSuchFileException;
-import java.nio.file.Path;
-import java.nio.file.StandardOpenOption;
-import java.nio.file.attribute.FileTime;
-import java.util.ArrayList;
-import java.util.EnumSet;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.concurrent.TimeUnit;
-
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-
-public class TestZipFS {
-
-       private static Path zip;
-       private FileSystem fs;
-
-       @Test
-       public void fileChannelCreateNew() throws Exception {
-               Path test = fs.getPath("test.txt");
-               EnumSet<StandardOpenOption> options = 
EnumSet.<StandardOpenOption> of(
-                               StandardOpenOption.CREATE_NEW, 
StandardOpenOption.WRITE);
-               fs.provider().newFileChannel(test, options);
-       }
-
-       @Test
-       public void fileChannelCreate() throws Exception {
-               try {
-                       Path test = fs.getPath("test.txt");
-                       FileChannel.open(test, StandardOpenOption.WRITE,
-                                       StandardOpenOption.CREATE).close();
-               } catch (NoSuchFileException ex) {
-                       System.err.println("Unexpected exception");
-                       ex.printStackTrace();
-                       // Bug in JDK
-               }
-       }
-
-       @Test(expected = FileAlreadyExistsException.class)
-       public void fileChannelCreateFails() throws Exception {
-               Path test = fs.getPath("test.txt");
-               Files.createFile(test);
-               FileChannel.open(test, StandardOpenOption.WRITE,
-                               StandardOpenOption.CREATE_NEW).close();
-       }
-
-       @Test
-       public void fileChannelTruncate() throws Exception {
-               Path test = fs.getPath("test.txt");
-               Files.write(test, new byte[1024]);
-               assertEquals(1024, Files.size(test));
-               FileChannel.open(test, StandardOpenOption.WRITE,
-                               StandardOpenOption.TRUNCATE_EXISTING).close();
-               assertEquals(0, Files.size(test));
-       }
-
-       /**
-        * Verifies http://stackoverflow.com/questions/16588321/ as both ZIP 
format
-        * and Java 7 ZIPFS allows a folder and file to have the same name.
-        * 
-        */
-       @Test
-       public void directoryOrFile() throws Exception {
-               Path folder = fs.getPath("folder");
-               assertFalse(Files.exists(folder));
-               Files.createFile(folder);
-               assertTrue(Files.exists(folder));
-               assertTrue(Files.isRegularFile(folder));
-               assertFalse(Files.isDirectory(folder));
-
-               try {
-                       Path folderCreated = Files.createDirectory(folder);
-                       assertEquals(folder, folderCreated);
-                       folder = folderCreated;
-                       System.out.println(folder + " " + folderCreated);
-
-                       // Disable for now, just to see where this leads
-                       // fail("Should have thrown 
FileAlreadyExistsException");
-               } catch (FileAlreadyExistsException ex) {
-               }
-
-               // For some reason the second createDirectory() fails correctly
-               try {
-                       Files.createDirectory(folder);
-                       fail("Should have thrown FileAlreadyExistsException");
-               } catch (FileAlreadyExistsException ex) {
-               }
-
-               Path child = folder.resolve("child");
-               Files.createFile(child);
-
-               // Look, it's both a file and folder!
-               // Can this be asserted?
-               assertTrue(Files.isRegularFile(folder));
-               // Yes, if you include the final /
-               assertTrue(Files.isDirectory(fs.getPath("folder/")));
-               // But not the parent
-               // assertTrue(Files.isDirectory(child.getParent()));
-               // Or the original Path
-               // assertTrue(Files.isDirectory(folder));
-
-               fs.close();
-               // What if we open it again.. can we find both?
-               try (FileSystem fs2 = FileSystems.newFileSystem(zip, null)) {
-                       assertTrue(Files.isRegularFile(fs2.getPath("folder")));
-                       
assertTrue(Files.isRegularFile(fs2.getPath("folder/child")));
-                       assertTrue(Files.isDirectory(fs2.getPath("folder/")));
-
-                       // We can even list the folder
-                       try (DirectoryStream<Path> s = 
Files.newDirectoryStream(fs2
-                                       .getPath("folder/"))) {
-                               boolean found = false;
-                               for (Path p : s) {
-                                       found = p.endsWith("child");
-                               }
-                               assertTrue("Did not find 'child'", found);
-                       }
-                       // But if we list the root, do we find "folder" or 
"folder/"?
-                       Path root = fs2.getRootDirectories().iterator().next();
-                       try (DirectoryStream<Path> s = 
Files.newDirectoryStream(root)) {
-                               List<String> paths = new ArrayList<>();
-                               for (Path p : s) {
-                                       paths.add(p.toString());
-                               }
-                               // We find both!
-                               assertEquals(2, paths.size());
-                               assertTrue(paths.contains("/folder"));
-                               assertTrue(paths.contains("/folder/"));
-                       }
-                       // SO does that mean this is a feature, and not a bug?
-                       // See http://stackoverflow.com/questions/16588321/ for 
more
-               }
-
-       }
-
-       @Test
-       public void setLastModifiedTime() throws Exception {
-               Path root = fs.getRootDirectories().iterator().next();
-
-               Path folder = root.resolve("folder");
-               Files.createDirectory(folder);
-
-               Path file = root.resolve("file");
-               Files.createFile(file);
-
-               FileTime someTimeAgo = FileTime.from(365 * 12, TimeUnit.DAYS);
-               Files.setLastModifiedTime(folder, someTimeAgo);
-               Files.setLastModifiedTime(file, someTimeAgo);
-               try {
-                       Files.setLastModifiedTime(root, someTimeAgo);
-               } catch (NoSuchFileException ex) {
-                       System.err
-                                       .println("Unexpected failure of 
setLastModifiedTime on root");
-                       ex.printStackTrace();
-               }
-       }
-
-       @Before
-       public void tempZipFS() throws Exception {
-               zip = Files.createTempFile("test", ".zip");
-               Files.delete(zip);
-               System.out.println(zip);
-               URI jar = new URI("jar", zip.toUri().toString(), null);
-               Map<String, Object> env = new HashMap<>();
-               env.put("create", "true");
-               fs = FileSystems.newFileSystem(jar, env);
-       }
-
-       @After
-       public void deleteTempFS() throws IOException {
-               fs.close();
-               Files.deleteIfExists(zip);
-       }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-robundle/src/test/java/org/apache/taverna/robundle/manifest/TestManifest.java
----------------------------------------------------------------------
diff --git 
a/taverna-robundle/src/test/java/org/apache/taverna/robundle/manifest/TestManifest.java
 
b/taverna-robundle/src/test/java/org/apache/taverna/robundle/manifest/TestManifest.java
deleted file mode 100644
index 3ca4030..0000000
--- 
a/taverna-robundle/src/test/java/org/apache/taverna/robundle/manifest/TestManifest.java
+++ /dev/null
@@ -1,280 +0,0 @@
-package org.apache.taverna.robundle.manifest;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertTrue;
-
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.URI;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.nio.file.Paths;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.UUID;
-
-import org.apache.taverna.robundle.Bundle;
-import org.apache.taverna.robundle.Bundles;
-import org.apache.taverna.robundle.manifest.Manifest;
-import org.apache.taverna.robundle.manifest.PathMetadata;
-import org.apache.taverna.robundle.manifest.RDFToManifest;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-
-import com.hp.hpl.jena.query.Query;
-import com.hp.hpl.jena.query.QueryExecution;
-import com.hp.hpl.jena.query.QueryExecutionFactory;
-import com.hp.hpl.jena.query.QueryFactory;
-import com.hp.hpl.jena.query.QuerySolution;
-import com.hp.hpl.jena.query.ResultSet;
-import com.hp.hpl.jena.rdf.model.Model;
-import com.hp.hpl.jena.rdf.model.Resource;
-
-@SuppressWarnings({ "deprecation", "unused" })
-public class TestManifest {
-       private Bundle bundle;
-
-       @Test
-       public void populateFromBundle() throws Exception {
-               Path r = bundle.getRoot();
-               URI base = r.toUri();
-
-               Manifest manifest = new Manifest(bundle);
-               manifest.populateFromBundle();
-
-               List<String> uris = new ArrayList<>();
-               for (PathMetadata s : manifest.getAggregates()) {
-                       uris.add(s.getFile().toString());
-                       Path path = s.getFile();
-                       assertNotNull(path.getParent());
-                       assertEquals(Manifest.withSlash(path.getParent()), 
s.getFolder());
-                       if (s.getFile().equals(URI.create("/f/nested/empty/"))) 
{
-                               continue;
-                               // Folder's don't need proxy and createdOn
-                       }
-                       assertEquals("urn", s.getProxy().getScheme());
-                       UUID.fromString(s.getProxy().getSchemeSpecificPart()
-                                       .replace("uuid:", ""));
-                       assertEquals(s.getCreatedOn(), 
Files.getLastModifiedTime(path));
-               }
-               //System.out.println(uris);
-               assertFalse(uris.contains("/mimetype"));
-               assertFalse(uris.contains("/META-INF"));
-               assertTrue(uris.remove("/hello.txt"));
-               assertTrue(uris.remove("/f/file1.txt"));
-               assertTrue(uris.remove("/f/file2.txt"));
-               assertTrue(uris.remove("/f/file3.txt"));
-               assertTrue(uris.remove("/f/nested/file1.txt"));
-               assertTrue(uris.remove("/f/nested/empty/"));
-               assertTrue(uris.isEmpty());
-       }
-
-       @Test
-       public void repopulateFromBundle() throws Exception {
-               Path r = bundle.getRoot();
-               URI base = r.toUri();
-
-               Manifest manifest = new Manifest(bundle);
-               manifest.populateFromBundle();
-               // Second populate should not add additional entries
-               manifest.populateFromBundle();
-
-               List<String> uris = new ArrayList<>();
-               for (PathMetadata s : manifest.getAggregates()) {
-                       uris.add(s.getFile().toString());
-                       Path path = s.getFile();
-                       assertNotNull(path.getParent());
-                       assertEquals(Manifest.withSlash(path.getParent()), 
s.getFolder());
-                       if (s.getFile().equals(URI.create("/f/nested/empty/"))) 
{
-                               continue;
-                               // Folder's don't need proxy and createdOn
-                       }
-                       assertEquals("urn", s.getProxy().getScheme());
-                       UUID.fromString(s.getProxy().getSchemeSpecificPart()
-                                       .replace("uuid:", ""));
-                       assertEquals(s.getCreatedOn(), 
Files.getLastModifiedTime(path));
-               }
-               //System.out.println(uris);
-               assertFalse(uris.contains("/mimetype"));
-               assertFalse(uris.contains("/META-INF"));
-               assertTrue(uris.remove("/hello.txt"));
-               assertTrue(uris.remove("/f/file1.txt"));
-               assertTrue(uris.remove("/f/file2.txt"));
-               assertTrue(uris.remove("/f/file3.txt"));
-               assertTrue(uris.remove("/f/nested/file1.txt"));
-               assertTrue(uris.remove("/f/nested/empty/"));
-               assertTrue("Unexpected uri: " + uris, uris.isEmpty());
-       }
-
-       private Path uri2path(URI base, URI uri) {
-               URI fileUri = base.resolve(uri);
-               return Paths.get(fileUri);
-       }
-
-       @Test
-       public void writeAsJsonLD() throws Exception {
-               Manifest manifest = new Manifest(bundle);
-               manifest.populateFromBundle();
-               PathMetadata helloMeta = null;
-               for (PathMetadata meta : manifest.getAggregates()) {
-                       if (meta.getFile().endsWith("hello.txt")) {
-                               helloMeta = meta;
-                       }
-               }
-               assertNotNull("No metadata for </hello.txt>", helloMeta);
-
-               Path jsonld = manifest.writeAsJsonLD();
-               assertEquals(bundle.getFileSystem().getPath("/.ro", 
"manifest.json"),
-                               jsonld);
-               assertTrue(Files.exists(jsonld));
-               String manifestStr = new String(Files.readAllBytes(jsonld), 
"UTF8");
-               //System.out.println(manifestStr);
-
-               // Rough and ready that somethings are there
-               // TODO: Read back and check as JSON structure
-               // TODO: Check as JSON-LD graph
-               assertTrue(manifestStr.contains("@context"));
-               
assertTrue(manifestStr.contains("https://w3id.org/bundle/context";));
-               assertTrue(manifestStr.contains("/f/file2.txt"));
-               assertTrue(manifestStr.contains("/hello.txt"));
-               
assertTrue(manifestStr.contains(helloMeta.getProxy().toASCIIString()));
-
-               // Parse back as JSON-LD
-               try (InputStream jsonIn = Files.newInputStream(jsonld)) {
-                       URI baseURI = jsonld.toUri();
-                       Model model = RDFToManifest.jsonLdAsJenaModel(jsonIn, 
baseURI);
-                       model.write(new ByteArrayOutputStream(), "TURTLE", 
baseURI.toString());
-                       model.write(new ByteArrayOutputStream(), "RDF/XML", 
baseURI.toString());
-
-                       String queryStr = "PREFIX ore: 
<http://www.openarchives.org/ore/terms/>"
-                                       + "PREFIX bundle: 
<http://purl.org/wf4ever/bundle#>"
-                                       + "SELECT ?file ?proxy "
-                                       + "WHERE {"
-                                       + "    ?ro ore:aggregates ?file ."
-                                       + "    OPTIONAL { ?file 
bundle:bundledAs ?proxy . } " + "}";
-                       Query query = QueryFactory.create(queryStr);
-                       QueryExecution qexec = 
QueryExecutionFactory.create(query, model);
-
-                       try {
-                               ResultSet results = qexec.execSelect();
-                               int aggregationCount = 0;
-                               for (; results.hasNext(); aggregationCount++) {
-                                       QuerySolution soln = 
results.nextSolution();
-                                       Resource fileRes = 
soln.getResource("file");
-                                       Resource proxy = 
soln.getResource("proxy");
-                                       //System.out.println("File: " + 
fileRes);
-                                       //System.out.println(asURI(fileRes));
-
-                                       Path file = Paths.get(asURI(fileRes));
-                                       assertTrue(Files.exists(file));
-                                       PathMetadata meta = 
manifest.getAggregation(file);
-                                       assertEquals(meta.getProxy(), 
asURI(proxy));
-                               }
-                               assertEquals("Could not find all aggregations 
from manifest: "
-                                               + manifest.getAggregates(), 
manifest.getAggregates()
-                                               .size(), aggregationCount);
-                       } finally {
-                               // WHY is not QueryExecution an instance of 
Closable?
-                               qexec.close();
-                       }
-               }
-       }
-
-       @Test
-       public void readManifest() throws Exception {
-               Manifest manifest = new Manifest(bundle);
-
-               new RDFToManifest().readTo(
-                               
getClass().getResourceAsStream("/manifest.json"), manifest,
-                               
manifest.getBaseURI().resolve("does/not/exist"));
-
-               Path r = bundle.getRoot();
-               
assertNotNull(manifest.getAggregation(r.resolve("/README.txt")));
-               PathMetadata readme = 
manifest.getAggregation(r.resolve("/README.txt"));
-               assertEquals("http://example.com/foaf#bob";, 
readme.getCreatedBy()
-                               .getUri().toString());
-               assertEquals("Bob Builder",
-                               
manifest.getAggregation(r.resolve("/README.txt"))
-                                               .getCreatedBy().getName());
-               assertEquals("text/plain",
-                               
manifest.getAggregation(r.resolve("/README.txt"))
-                                               .getMediatype());
-
-               assertNull(manifest.getAggregation(r.resolve("/README.txt"))
-                               .getBundledAs());
-
-               // Disabled: RO Bundle in flux on how to put external URIs in 
folders
-               // assertNotNull(manifest.getAggregation(
-               // URI.create("http://example.com/comments.txt";)).getProxy());
-
-               //System.out.println(manifest.getAnnotations());
-
-               assertEquals(3, manifest.getAnnotations().size());
-
-       }
-
-       private URI asURI(Resource proxy) {
-               if (proxy == null) {
-                       return null;
-               }
-               String uri = proxy.getURI();
-               if (uri == null) {
-                       return null;
-               }
-               return bundle.getRoot().toUri().resolve(uri);
-       }
-
-       @Before
-       public void exampleBundle() throws IOException {
-               Path source;
-               try (Bundle bundle = Bundles.createBundle()) {
-                       source = bundle.getSource();
-                       Path r = bundle.getRoot();
-                       Files.createFile(r.resolve("hello.txt"));
-                       Path f = r.resolve("f");
-                       Files.createDirectory(f);
-                       Files.createFile(f.resolve("file3.txt"));
-                       Files.createFile(f.resolve("file2.txt"));
-                       Files.createFile(f.resolve("file1.txt"));
-
-                       Path nested = f.resolve("nested");
-                       Files.createDirectory(nested);
-                       Files.createFile(nested.resolve("file1.txt"));
-
-                       Files.createDirectory(nested.resolve("empty"));
-                       bundle.setDeleteOnClose(false);
-               }
-               bundle = Bundles.openBundle(source);
-       }
-
-       @After
-       public void closeBundle() throws IOException {
-               bundle.close();
-
-       }
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-robundle/src/test/java/org/apache/taverna/robundle/manifest/TestManifestJSON.java
----------------------------------------------------------------------
diff --git 
a/taverna-robundle/src/test/java/org/apache/taverna/robundle/manifest/TestManifestJSON.java
 
b/taverna-robundle/src/test/java/org/apache/taverna/robundle/manifest/TestManifestJSON.java
deleted file mode 100644
index efab8a9..0000000
--- 
a/taverna-robundle/src/test/java/org/apache/taverna/robundle/manifest/TestManifestJSON.java
+++ /dev/null
@@ -1,275 +0,0 @@
-package org.apache.taverna.robundle.manifest;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertTrue;
-
-import java.net.URI;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.nio.file.attribute.FileTime;
-import java.util.Calendar;
-import java.util.Locale;
-import java.util.TimeZone;
-
-import org.apache.taverna.robundle.Bundle;
-import org.apache.taverna.robundle.Bundles;
-import org.apache.taverna.robundle.manifest.Agent;
-import org.apache.taverna.robundle.manifest.Manifest;
-import org.apache.taverna.robundle.manifest.PathAnnotation;
-import org.apache.taverna.robundle.manifest.PathMetadata;
-import org.junit.Test;
-
-import com.fasterxml.jackson.databind.JsonNode;
-import com.fasterxml.jackson.databind.ObjectMapper;
-
-public class TestManifestJSON {
-       @Test
-       public void createBundle() throws Exception {
-               // Create bundle as in Example 3 of the specification
-               // http://wf4ever.github.io/ro/bundle/2013-05-21/
-               try (Bundle bundle = Bundles.createBundle()) {
-                       Calendar createdOnCal = Calendar.getInstance(
-                                       TimeZone.getTimeZone("Z"), 
Locale.ENGLISH);
-                       // "2013-03-05T17:29:03Z"
-                       // Remember months are 0-based in java.util.Calendar!
-                       createdOnCal.set(2013, 3 - 1, 5, 17, 29, 03);
-                       createdOnCal.set(Calendar.MILLISECOND, 0);
-                       FileTime createdOn = FileTime.fromMillis(createdOnCal
-                                       .getTimeInMillis());
-                       Manifest manifest = bundle.getManifest();
-                       manifest.setCreatedOn(createdOn);
-                       Agent createdBy = new Agent("Alice W. Land");
-                       
createdBy.setUri(URI.create("http://example.com/foaf#alice";));
-                       createdBy.setOrcid(URI
-                                       
.create("http://orcid.org/0000-0002-1825-0097";));
-
-                       manifest.setCreatedBy(createdBy);
-
-                       Path evolutionPath = 
bundle.getPath(".ro/evolution.ttl");
-                       Files.createDirectories(evolutionPath.getParent());
-                       Bundles.setStringValue(
-                                       evolutionPath,
-                                       "<manifest.json> < 
http://purl.org/pav/retrievedFrom> "
-                                                       + 
"<http://wf4ever.github.io/ro/bundle/2013-05-21/example/.ro/manifest.json> .");
-                       manifest.getHistory().add(evolutionPath);
-
-                       Path jpeg = bundle.getPath("folder/soup.jpeg");
-                       Files.createDirectory(jpeg.getParent());
-                       Files.createFile(jpeg);
-                       // register in manifest first
-                       bundle.getManifest().getAggregation(jpeg);
-
-                       URI blog = URI.create("http://example.com/blog/";);
-                       bundle.getManifest().getAggregation(blog);
-
-                       Path readme = bundle.getPath("README.txt");
-                       Files.createFile(readme);
-                       PathMetadata readmeMeta = 
bundle.getManifest().getAggregation(
-                                       readme);
-                       readmeMeta.setMediatype("text/plain");
-                       Agent readmeCreatedby = new Agent("Bob Builder");
-                       
readmeCreatedby.setUri(URI.create("http://example.com/foaf#bob";));
-                       readmeMeta.setCreatedBy(readmeCreatedby);
-
-                       // 2013-02-12T19:37:32.939Z
-                       createdOnCal.set(2013, 2 - 1, 12, 19, 37, 32);
-                       createdOnCal.set(Calendar.MILLISECOND, 939);
-                       createdOn = 
FileTime.fromMillis(createdOnCal.getTimeInMillis());
-                       Files.setLastModifiedTime(readme, createdOn);
-                       readmeMeta.setCreatedOn(createdOn);
-
-                       PathMetadata comments = 
bundle.getManifest().getAggregation(
-                                       
URI.create("http://example.com/comments.txt";));
-                       comments.getOrCreateBundledAs()
-                                       .setURI(URI
-                                                       
.create("urn:uuid:a0cf8616-bee4-4a71-b21e-c60e6499a644"));
-                       comments.getOrCreateBundledAs().setFolder(
-                                       bundle.getPath("/folder/"));
-                       
comments.getOrCreateBundledAs().setFilename("external.txt");
-
-                       PathAnnotation jpegAnn = new PathAnnotation();
-                       jpegAnn.setAbout(jpeg);
-                       Path soupProps = Bundles.getAnnotations(bundle).resolve(
-                                       "soup-properties.ttl");
-                       Bundles.setStringValue(soupProps,
-                                       "</folder/soup.jpeg> 
<http://xmlns.com/foaf/0.1/depicts> "
-                                                       + 
"<http://example.com/menu/tomato-soup> .");
-                       jpegAnn.setContent(soupProps);
-                       // 
jpegAnn.setContent(URI.create("annotations/soup-properties.ttl"));
-                       jpegAnn.setUri(URI
-                                       
.create("urn:uuid:d67466b4-3aeb-4855-8203-90febe71abdf"));
-                       manifest.getAnnotations().add(jpegAnn);
-
-                       PathAnnotation proxyAnn = new PathAnnotation();
-                       proxyAnn.setAbout(comments.getBundledAs().getURI());
-                       proxyAnn.setContent(URI
-                                       
.create("http://example.com/blog/they-aggregated-our-file";));
-                       manifest.getAnnotations().add(proxyAnn);
-
-                       Path metaAnn = Bundles.getAnnotations(bundle).resolve(
-                                       "a-meta-annotation-in-this-ro.txt");
-                       Bundles.setStringValue(metaAnn,
-                                       "This bundle contains an annotation 
about /folder/soup.jpeg");
-
-                       PathAnnotation metaAnnotation = new PathAnnotation();
-                       metaAnnotation.setAbout(bundle.getRoot());
-                       metaAnnotation
-                                       .getAboutList()
-                                       
.add(URI.create("urn:uuid:d67466b4-3aeb-4855-8203-90febe71abdf"));
-
-                       metaAnnotation.setContent(metaAnn);
-                       manifest.getAnnotations().add(metaAnnotation);
-
-                       Path jsonPath = bundle.getManifest().writeAsJsonLD();
-                       ObjectMapper objectMapper = new ObjectMapper();
-                       String jsonStr = Bundles.getStringValue(jsonPath);
-                       //System.out.println(jsonStr);
-                       JsonNode json = objectMapper.readTree(jsonStr);
-                       checkManifestJson(json);
-               }
-       }
-
-       public void checkManifestJson(JsonNode json) {
-               JsonNode context = json.get("@context");
-               assertNotNull("Could not find @context", context);
-               assertTrue("@context SHOULD be an array", context.isArray());
-               assertTrue("@context SHOULD include a context", context.size() 
> 0);
-               JsonNode lastContext = context.get(context.size() - 1);
-               assertEquals(
-                               "@context SHOULD include 
https://w3id.org/bundle/context as last item",
-                               "https://w3id.org/bundle/context";, 
lastContext.asText());
-
-               assertEquals("/", json.get("id").asText());
-
-               JsonNode manifest = json.get("manifest");
-               if (manifest.isValueNode()) {
-                       assertEquals(
-                                       "manifest SHOULD be literal value 
\"manifest.json\" or list",
-                                       "manifest.json", manifest.asText());
-               } else {
-                       assertTrue("manifest is neither literal or list",
-                                       manifest.isArray());
-                       boolean found = false;
-                       for (JsonNode n : manifest) {
-                               found = n.asText().equals("manifest.json");
-                               if (found) {
-                                       break;
-                               }
-                       }
-                       ;
-                       assertTrue("Could not find 'manifest.json' in 
'manifest' list: "
-                                       + manifest, found);
-               }
-
-               assertEquals("2013-03-05T17:29:03Z", 
json.get("createdOn").asText());
-               JsonNode createdBy = json.get("createdBy");
-               assertNotNull("Could not find createdBy", createdBy);
-               assertEquals("http://example.com/foaf#alice";, 
createdBy.get("uri")
-                               .asText());
-               assertEquals("http://orcid.org/0000-0002-1825-0097";,
-                               createdBy.get("orcid").asText());
-               assertEquals("Alice W. Land", createdBy.get("name").asText());
-
-               JsonNode history = json.get("history");
-               if (history.isValueNode()) {
-                       assertEquals("evolution.ttl", history.asText());
-               } else {
-                       assertEquals("evolution.ttl", history.get(0).asText());
-               }
-
-               JsonNode aggregates = json.get("aggregates");
-               assertTrue("aggregates not a list", aggregates.isArray());
-               JsonNode soup = aggregates.get(0);
-               if (soup.isValueNode()) {
-                       assertEquals("/folder/soup.jpeg", soup.asText());
-               } else {
-                       assertEquals("/folder/soup.jpeg", 
soup.get("uri").asText());
-               }
-
-               JsonNode blog = aggregates.get(1);
-               if (blog.isValueNode()) {
-                       assertEquals("http://example.com/blog/";, blog.asText());
-               } else {
-                       assertEquals("http://example.com/blog/";, 
blog.get("uri").asText());
-               }
-
-               JsonNode readme = aggregates.get(2);
-               assertEquals("/README.txt", readme.get("uri").asText());
-               assertEquals("text/plain", readme.get("mediatype").asText());
-               assertEquals("2013-02-12T19:37:32.939Z", readme.get("createdOn")
-                               .asText());
-               JsonNode readmeCreatedBy = readme.get("createdBy");
-               assertEquals("http://example.com/foaf#bob";, 
readmeCreatedBy.get("uri")
-                               .asText());
-               assertEquals("Bob Builder", 
readmeCreatedBy.get("name").asText());
-
-               JsonNode comments = aggregates.get(3);
-               assertEquals("http://example.com/comments.txt";, 
comments.get("uri")
-                               .asText());
-               JsonNode bundledAs = comments.get("bundledAs");
-               assertEquals("urn:uuid:a0cf8616-bee4-4a71-b21e-c60e6499a644", 
bundledAs
-                               .get("uri").asText());
-               assertEquals("/folder/", bundledAs.get("folder").asText());
-               assertEquals("external.txt", 
bundledAs.get("filename").asText());
-
-               JsonNode annotations = json.get("annotations");
-               assertTrue("annotations MUST be a list", annotations.isArray());
-
-               JsonNode ann0 = annotations.get(0);
-               assertEquals("urn:uuid:d67466b4-3aeb-4855-8203-90febe71abdf",
-                               ann0.get("uri").asText());
-               assertEquals("/folder/soup.jpeg", ann0.get("about").asText());
-               assertEquals("annotations/soup-properties.ttl", 
ann0.get("content")
-                               .asText());
-
-               JsonNode ann1 = annotations.get(1);
-               assertNull(ann1.get("annotation"));
-               assertEquals("urn:uuid:a0cf8616-bee4-4a71-b21e-c60e6499a644",
-                               ann1.get("about").asText());
-               
assertEquals("http://example.com/blog/they-aggregated-our-file";, ann1
-                               .get("content").asText());
-
-               JsonNode ann2 = annotations.get(2);
-               assertNull(ann2.get("annotation"));
-               JsonNode about = ann2.get("about");
-               assertTrue("about was not a list", about.isArray());
-               assertEquals("/", about.get(0).asText());
-               assertEquals("urn:uuid:d67466b4-3aeb-4855-8203-90febe71abdf", 
about
-                               .get(1).asText());
-               assertEquals("annotations/a-meta-annotation-in-this-ro.txt",
-                               ann2.get("content").asText());
-
-       }
-
-       @Test
-       public void checkJsonFromSpec() throws Exception {
-               // Verify that our test confirms the existing spec example
-               ObjectMapper objectMapper = new ObjectMapper();
-               JsonNode json = objectMapper.readTree(getClass().getResource(
-                               "/manifest.json"));
-               checkManifestJson(json);
-
-       }
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-robundle/src/test/java/org/apache/taverna/robundle/manifest/TestRDFToManifest.java
----------------------------------------------------------------------
diff --git 
a/taverna-robundle/src/test/java/org/apache/taverna/robundle/manifest/TestRDFToManifest.java
 
b/taverna-robundle/src/test/java/org/apache/taverna/robundle/manifest/TestRDFToManifest.java
deleted file mode 100644
index 2557973..0000000
--- 
a/taverna-robundle/src/test/java/org/apache/taverna/robundle/manifest/TestRDFToManifest.java
+++ /dev/null
@@ -1,52 +0,0 @@
-package org.apache.taverna.robundle.manifest;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import static org.junit.Assert.assertNotNull;
-
-import java.net.URL;
-import java.util.Map;
-
-import org.junit.Test;
-
-import com.github.jsonldjava.core.DocumentLoader;
-
-//import com.github.jsonldjava.core.DocumentLoader;
-
-public class TestRDFToManifest {
-       private static final String CONTEXT = "https://w3id.org/bundle/context";;
-
-       @Test
-       public void contextLoadedFromJarCache() throws Exception {
-               // RDFToManifest.makeBaseURI(); // trigger static{} block
-               @SuppressWarnings("unchecked")
-               Map<String, Object> context = (Map<String, Object>) new 
DocumentLoader()
-                               .fromURL(new URL(CONTEXT));
-               // FIXME: jsonld-java 0.3 and later uses DocumentLoader instead 
of
-               // JSONUtils
-               // Map<String, Object> context = (Map<String, Object>)
-               // JSONUtils.fromURL(new URL(CONTEXT));
-               Object retrievedFrom = 
context.get("http://purl.org/pav/retrievedFrom";);
-               assertNotNull("Did not load context from cache: " + CONTEXT,
-                               retrievedFrom);
-
-       }
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-robundle/src/test/java/org/apache/taverna/robundle/manifest/combine/TestCombineManifest.java
----------------------------------------------------------------------
diff --git 
a/taverna-robundle/src/test/java/org/apache/taverna/robundle/manifest/combine/TestCombineManifest.java
 
b/taverna-robundle/src/test/java/org/apache/taverna/robundle/manifest/combine/TestCombineManifest.java
deleted file mode 100644
index 5286d67..0000000
--- 
a/taverna-robundle/src/test/java/org/apache/taverna/robundle/manifest/combine/TestCombineManifest.java
+++ /dev/null
@@ -1,155 +0,0 @@
-package org.apache.taverna.robundle.manifest.combine;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
-
-import java.io.InputStream;
-import java.net.URI;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.nio.file.StandardCopyOption;
-
-import org.apache.taverna.robundle.Bundle;
-import org.apache.taverna.robundle.Bundles;
-import org.apache.taverna.robundle.manifest.Agent;
-import org.apache.taverna.robundle.manifest.Manifest;
-import org.apache.taverna.robundle.manifest.PathMetadata;
-import org.junit.Test;
-
-public class TestCombineManifest {
-       @Test
-       public void convertAslanidi() throws Exception {
-               Path file = Files.createTempFile("aslanidi", ".zip");
-               try (InputStream src = getClass().getResourceAsStream(
-                               "/combine/aslanidi_purkinje_model_2009.zip")) {
-                       Files.copy(src, file, 
StandardCopyOption.REPLACE_EXISTING);
-               }
-               System.out.println(file);
-               try (Bundle bundle = Bundles.openBundle(file)) {
-                       Manifest manifest = bundle.getManifest();
-                       Path manifestXml = 
bundle.getRoot().resolve("manifest.xml");
-                       assertTrue("manifest.xml not listed in " + 
manifest.getManifest(),
-                                       
manifest.getManifest().contains(manifestXml));
-
-                       // List<Agent> manifestCreator = 
manifest.getCreatedBy();
-                       // Agent createdBy = manifestCreator.get(0);
-                       // assertEquals("Gary Mirams", createdBy.getName());
-                       // assertEquals("mbox:gary.mir...@cs.ox.ac.uk", 
createdBy.getUri());
-                       // assertEquals("2014-02-06T22:01:58Z",
-                       // manifest.getCreatedOn().toString());
-                       //
-                       Path csvPath = bundle.getRoot().resolve(
-                                       "outputs_degree_of_block.csv");
-                       PathMetadata csv = manifest.getAggregation(csvPath);
-                       assertEquals("text/csv", csv.getMediatype());
-                       Agent csvCreator = csv.getCreatedBy();
-                       assertEquals("Gary Mirams", csvCreator.getName());
-                       assertEquals("mbox:gary.mir...@cs.ox.ac.uk", 
csvCreator.getUri()
-                                       .toString());
-                       assertEquals("2014-02-06T22:01:58Z", 
csv.getCreatedOn().toString());
-
-               }
-       }
-
-       @Test
-       public void convertBoris() throws Exception {
-               Path file = Files.createTempFile("Boris", ".omex");
-               try (InputStream src = getClass().getResourceAsStream(
-                               "/combine/Boris.omex")) {
-                       Files.copy(src, file, 
StandardCopyOption.REPLACE_EXISTING);
-               }
-               //System.out.println(file);
-               try (Bundle bundle = Bundles.openBundle(file)) {
-                       Manifest manifest = bundle.getManifest();
-                       Path manifestXml = 
bundle.getRoot().resolve("manifest.xml");
-                       assertTrue("manifest.xml not listed in " + 
manifest.getManifest(),
-                                       
manifest.getManifest().contains(manifestXml));
-
-                       assertEquals("2013-05-28T16:50:43.999Z", 
manifest.getCreatedOn()
-                                       .toString());
-
-                       // Can't test these - as Boris.omex manifest.xml only
-                       // list these as unconnected bnodes
-                       // List<Agent> manifestCreator = 
manifest.getCreatedBy();
-                       // Agent createdBy = manifestCreator.get(0);
-                       // assertEquals("Frank Bergmann", createdBy.getName());
-                       // assertEquals("mbox:fberg...@caltech.edu", 
createdBy.getUri());
-                       //
-               }
-
-       }
-
-       @Test
-       public void convertDirectoryMadness() throws Exception {
-               Path file = Files.createTempFile("DirectoryMadness", ".omex");
-               try (InputStream src = getClass().getResourceAsStream(
-                               "/combine/DirectoryMadness.omex")) {
-                       Files.copy(src, file, 
StandardCopyOption.REPLACE_EXISTING);
-               }
-               //System.out.println(file);
-               try (Bundle bundle = Bundles.openBundle(file)) {
-                       Manifest manifest = bundle.getManifest();
-                       Path manifestXml = 
bundle.getRoot().resolve("manifest.xml");
-                       assertTrue("manifest.xml not listed in " + 
manifest.getManifest(),
-                                       
manifest.getManifest().contains(manifestXml));
-
-                       Path boris = bundle.getRoot().resolve("BorisEJB.xml");
-                       PathMetadata borisMeta = 
bundle.getManifest().getAggregation(boris);
-                       assertEquals(
-                                       
URI.create("http://identifiers.org/combine.specifications/sbml";),
-                                       borisMeta.getConformsTo());
-                       // dcterms:modified
-                       assertEquals("2013-04-05T12:50:56Z", 
borisMeta.getCreatedOn()
-                                       .toString());
-
-                       Path paperPdf = bundle.getRoot().resolve("paper")
-                                       .resolve("Kholodenko2000.pdf");
-                       PathMetadata paperMeta = 
bundle.getManifest().getAggregation(
-                                       paperPdf);
-                       assertEquals("application/pdf", 
paperMeta.getMediatype());
-
-                       URI biomd = URI
-                                       
.create("http://www.ebi.ac.uk/biomodels-main/BIOMD0000000010";);
-                       PathMetadata biomdMeta = 
bundle.getManifest().getAggregation(biomd);
-                       assertEquals(
-                                       
URI.create("http://identifiers.org/combine.specifications/sbml";),
-                                       biomdMeta.getConformsTo());
-
-               }
-
-       }
-
-       @Test
-       public void convertDirectoryMadnessZipped() throws Exception {
-               Path file = Files.createTempFile("DirectoryMadnessZipped", 
".omex");
-               try (InputStream src = getClass().getResourceAsStream(
-                               "/combine/DirectoryMadnessZipped.omex")) {
-                       Files.copy(src, file, 
StandardCopyOption.REPLACE_EXISTING);
-               }
-               //System.out.println(file);
-               try (Bundle bundle = Bundles.openBundle(file)) {
-
-               }
-       }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-robundle/src/test/java/org/apache/taverna/robundle/manifest/odf/TestODFManifest.java
----------------------------------------------------------------------
diff --git 
a/taverna-robundle/src/test/java/org/apache/taverna/robundle/manifest/odf/TestODFManifest.java
 
b/taverna-robundle/src/test/java/org/apache/taverna/robundle/manifest/odf/TestODFManifest.java
deleted file mode 100644
index 539c289..0000000
--- 
a/taverna-robundle/src/test/java/org/apache/taverna/robundle/manifest/odf/TestODFManifest.java
+++ /dev/null
@@ -1,74 +0,0 @@
-package org.apache.taverna.robundle.manifest.odf;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-
-import java.net.URL;
-import java.nio.file.Files;
-import java.nio.file.Path;
-
-import org.apache.taverna.robundle.Bundle;
-import org.apache.taverna.robundle.Bundles;
-import org.apache.taverna.robundle.manifest.Manifest;
-import org.apache.taverna.robundle.manifest.PathMetadata;
-import org.junit.Test;
-
-public class TestODFManifest {
-       @Test
-       public void openHelloWorld() throws Exception {
-               URL helloworld = getClass().getResource("/helloworld.wfbundle");
-               assertNotNull(helloworld);
-               try (Bundle bundle = Bundles.openBundle(helloworld)) {
-                       
assertEquals("application/vnd.taverna.scufl2.workflow-bundle",
-                                       Bundles.getMimeType(bundle));
-                       Path t2flow = bundle
-                                       
.getPath("history/8781d5f4-d0ba-48a8-a1d1-14281bd8a917.t2flow");
-                       assertEquals("application/vnd.taverna.t2flow+xml", 
bundle
-                                       
.getManifest().getAggregation(t2flow).getMediatype());
-                       Path manifestRdf = 
bundle.getPath("META-INF/manifest.xml");
-                       assertTrue(Files.exists(manifestRdf));
-                       
assertTrue(bundle.getManifest().getManifest().contains(manifestRdf));
-               }
-       }
-
-       @Test
-       public void openODTDocument() throws Exception {
-               URL url = getClass().getResource("/document.odt");
-               assertNotNull(url);
-               try (Bundle bundle = Bundles.openBundle(url)) {
-                       assertEquals("application/vnd.oasis.opendocument.text",
-                                       Bundles.getMimeType(bundle));
-
-                       Path contentXml = bundle.getPath("content.xml");
-                       Manifest manifest = bundle.getManifest();
-                       assertEquals("text/xml", 
manifest.getAggregation(contentXml)
-                                       .getMediatype());
-                       PathMetadata rootMeta = 
manifest.getAggregation(bundle.getRoot());
-                       assertEquals("1.2", rootMeta.getConformsTo() + "");
-                       assertEquals("application/vnd.oasis.opendocument.text",
-                                       rootMeta.getMediatype());
-               }
-       }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-robundle/src/test/java/org/apache/taverna/robundle/manifest/utils/TestRecursiveCopyFileVisitor.java
----------------------------------------------------------------------
diff --git 
a/taverna-robundle/src/test/java/org/apache/taverna/robundle/manifest/utils/TestRecursiveCopyFileVisitor.java
 
b/taverna-robundle/src/test/java/org/apache/taverna/robundle/manifest/utils/TestRecursiveCopyFileVisitor.java
deleted file mode 100644
index 84012e9..0000000
--- 
a/taverna-robundle/src/test/java/org/apache/taverna/robundle/manifest/utils/TestRecursiveCopyFileVisitor.java
+++ /dev/null
@@ -1,114 +0,0 @@
-package org.apache.taverna.robundle.manifest.utils;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
-
-import java.io.IOException;
-import java.nio.charset.Charset;
-import java.nio.file.FileAlreadyExistsException;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.nio.file.StandardCopyOption;
-import java.util.Arrays;
-import java.util.LinkedHashSet;
-import java.util.List;
-import java.util.Set;
-
-import org.apache.taverna.robundle.Bundles;
-import org.junit.After;
-import org.junit.Test;
-
-public class TestRecursiveCopyFileVisitor {
-
-       // TODO: Test NOFOLLOW and follow of symlinks
-
-       private Set<Path> tmps = new LinkedHashSet<>();
-
-       @After
-       public void deleteTmps() throws IOException {
-               IOException lastEx = null;
-               for (Path p : tmps) {
-                       try {
-                               Bundles.deleteRecursively(p);
-                       } catch (IOException e) {
-                               lastEx = e;
-                       }
-               }
-               if (lastEx != null)
-                       throw lastEx;
-       }
-
-       @Test(expected = FileAlreadyExistsException.class)
-       public void copyRecursivelyAlreadyExists() throws Exception {
-               Path orig = tempDir("orig");
-               Path dest = tempDir("dest");
-               Bundles.copyRecursively(orig, dest);
-       }
-
-       protected Path tempDir(String name) throws IOException {
-               Path dir = Files.createTempDirectory(name);
-               tmps.add(dir);
-               return dir;
-       }
-
-       @Test
-       public void copyRecursivelyReplace() throws Exception {
-               Path orig = tempDir("orig");
-               Files.createFile(orig.resolve("file"));
-               Path dest = tempDir("dest");
-               Bundles.copyRecursively(orig, dest, 
StandardCopyOption.REPLACE_EXISTING);
-               assertTrue(Files.isRegularFile(dest.resolve("file")));
-               // Second copy should also be OK
-               Bundles.copyRecursively(orig, dest, 
StandardCopyOption.REPLACE_EXISTING);
-       }
-
-       @Test
-       public void copyRecursively() throws Exception {
-               Path orig = tempDir("orig");
-               Files.createFile(orig.resolve("1"));
-               Files.createDirectory(orig.resolve("2"));
-               Files.createFile(orig.resolve("2/1"));
-               Files.createDirectory(orig.resolve("2/2"));
-               List<String> hello = Arrays.asList("Hello");
-
-               Charset ascii = Charset.forName("ASCII");
-               Files.write(orig.resolve("2/2/1"), hello, ascii);
-
-               Files.createDirectory(orig.resolve("2/2/2"));
-               Files.createFile(orig.resolve("3"));
-
-               Path dest = tempDir("dest");
-               Files.delete(dest);
-               Bundles.copyRecursively(orig, dest);
-
-               assertTrue(Files.isDirectory(dest.resolve("2")));
-               assertTrue(Files.isDirectory(dest.resolve("2/2")));
-               assertTrue(Files.isDirectory(dest.resolve("2/2")));
-               assertTrue(Files.isDirectory(dest.resolve("2/2/2")));
-               assertTrue(Files.isRegularFile(dest.resolve("1")));
-               assertTrue(Files.isRegularFile(dest.resolve("2/1")));
-               assertTrue(Files.isRegularFile(dest.resolve("2/2/1")));
-               assertTrue(Files.isRegularFile(dest.resolve("3")));
-               assertEquals(hello, Files.readAllLines(dest.resolve("2/2/1"), 
ascii));
-       }
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-robundle/src/test/java/org/apache/taverna/robundle/manifest/utils/TestRecursiveCopyFileVisitorInBundle.java
----------------------------------------------------------------------
diff --git 
a/taverna-robundle/src/test/java/org/apache/taverna/robundle/manifest/utils/TestRecursiveCopyFileVisitorInBundle.java
 
b/taverna-robundle/src/test/java/org/apache/taverna/robundle/manifest/utils/TestRecursiveCopyFileVisitorInBundle.java
deleted file mode 100644
index d66c03a..0000000
--- 
a/taverna-robundle/src/test/java/org/apache/taverna/robundle/manifest/utils/TestRecursiveCopyFileVisitorInBundle.java
+++ /dev/null
@@ -1,54 +0,0 @@
-package org.apache.taverna.robundle.manifest.utils;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import java.io.IOException;
-import java.nio.file.Files;
-import java.nio.file.Path;
-
-import org.apache.taverna.robundle.Bundle;
-import org.apache.taverna.robundle.Bundles;
-import org.junit.After;
-import org.junit.Before;
-
-public class TestRecursiveCopyFileVisitorInBundle extends
-               TestRecursiveCopyFileVisitor {
-
-       private Bundle bundle;
-
-       @Before
-       public void createBundle() throws IOException {
-               bundle = Bundles.createBundle();
-       }
-
-       @After
-       public void closeBundle() throws IOException {
-               if (bundle != null) {
-                       bundle.close();
-               }
-               bundle = null;
-       }
-
-       @Override
-       protected Path tempDir(String name) throws IOException {
-               return Files.createTempDirectory(bundle.getRoot(), name);
-       }
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-robundle/src/test/java/org/apache/taverna/robundle/manifest/utils/TestRecursiveCopyFileVisitorMultipleBundles.java
----------------------------------------------------------------------
diff --git 
a/taverna-robundle/src/test/java/org/apache/taverna/robundle/manifest/utils/TestRecursiveCopyFileVisitorMultipleBundles.java
 
b/taverna-robundle/src/test/java/org/apache/taverna/robundle/manifest/utils/TestRecursiveCopyFileVisitorMultipleBundles.java
deleted file mode 100644
index c38c502..0000000
--- 
a/taverna-robundle/src/test/java/org/apache/taverna/robundle/manifest/utils/TestRecursiveCopyFileVisitorMultipleBundles.java
+++ /dev/null
@@ -1,51 +0,0 @@
-package org.apache.taverna.robundle.manifest.utils;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import java.io.IOException;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.taverna.robundle.Bundle;
-import org.apache.taverna.robundle.Bundles;
-import org.junit.After;
-
-public class TestRecursiveCopyFileVisitorMultipleBundles extends
-               TestRecursiveCopyFileVisitor {
-
-       private List<Bundle> bundles = new ArrayList<>();
-
-       @After
-       public void closeBundle() throws IOException {
-               for (Bundle b : bundles) {
-                       b.close();
-               }
-       }
-
-       @Override
-       protected Path tempDir(String name) throws IOException {
-               Bundle bundle = Bundles.createBundle();
-               bundles.add(bundle);
-               return Files.createTempDirectory(bundle.getRoot(), name);
-       }
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-robundle/src/test/resources/combine/Boris.omex
----------------------------------------------------------------------
diff --git a/taverna-robundle/src/test/resources/combine/Boris.omex 
b/taverna-robundle/src/test/resources/combine/Boris.omex
deleted file mode 100644
index a4d5cf4..0000000
Binary files a/taverna-robundle/src/test/resources/combine/Boris.omex and 
/dev/null differ

Reply via email to