http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-file-impl/src/main/java/net/sf/taverna/t2/workbench/file/impl/menu/FileOpenRecentMenuAction.java
----------------------------------------------------------------------
diff --git 
a/taverna-workbench-file-impl/src/main/java/net/sf/taverna/t2/workbench/file/impl/menu/FileOpenRecentMenuAction.java
 
b/taverna-workbench-file-impl/src/main/java/net/sf/taverna/t2/workbench/file/impl/menu/FileOpenRecentMenuAction.java
deleted file mode 100644
index 76ef759..0000000
--- 
a/taverna-workbench-file-impl/src/main/java/net/sf/taverna/t2/workbench/file/impl/menu/FileOpenRecentMenuAction.java
+++ /dev/null
@@ -1,418 +0,0 @@
-package net.sf.taverna.t2.workbench.file.impl.menu;
-
-import static java.awt.event.KeyEvent.VK_0;
-import static java.awt.event.KeyEvent.VK_R;
-import static javax.swing.Action.MNEMONIC_KEY;
-import static javax.swing.Action.NAME;
-import static javax.swing.JOptionPane.ERROR_MESSAGE;
-import static javax.swing.JOptionPane.showMessageDialog;
-import static javax.swing.SwingUtilities.invokeLater;
-import static 
net.sf.taverna.t2.workbench.file.impl.menu.FileOpenMenuSection.FILE_OPEN_SECTION_URI;
-
-import java.awt.Component;
-import java.awt.event.ActionEvent;
-import java.io.BufferedInputStream;
-import java.io.BufferedOutputStream;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.io.Serializable;
-import java.net.URI;
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.swing.AbstractAction;
-import javax.swing.JMenu;
-import javax.swing.JMenuItem;
-
-import net.sf.taverna.t2.lang.observer.Observable;
-import net.sf.taverna.t2.lang.observer.Observer;
-import net.sf.taverna.t2.ui.menu.AbstractMenuCustom;
-import net.sf.taverna.t2.workbench.file.FileManager;
-import net.sf.taverna.t2.workbench.file.FileType;
-import net.sf.taverna.t2.workbench.file.events.AbstractDataflowEvent;
-import net.sf.taverna.t2.workbench.file.events.ClosedDataflowEvent;
-import net.sf.taverna.t2.workbench.file.events.FileManagerEvent;
-import net.sf.taverna.t2.workbench.file.events.OpenedDataflowEvent;
-import net.sf.taverna.t2.workbench.file.events.SavedDataflowEvent;
-import net.sf.taverna.t2.workbench.file.exceptions.OpenException;
-
-import org.apache.log4j.Logger;
-import org.jdom.Document;
-import org.jdom.JDOMException;
-import org.jdom.input.SAXBuilder;
-
-import uk.org.taverna.configuration.app.ApplicationConfiguration;
-import uk.org.taverna.scufl2.api.container.WorkflowBundle;
-
-public class FileOpenRecentMenuAction extends AbstractMenuCustom implements
-               Observer<FileManagerEvent> {
-       public static final URI RECENT_URI = URI
-                       
.create("http://taverna.sf.net/2008/t2workbench/menu#fileOpenRecent";);
-       private static final String CONF = "conf";
-       private static Logger logger = Logger
-                       .getLogger(FileOpenRecentMenuAction.class);
-       private static final String RECENT_WORKFLOWS_XML = 
"recentWorkflows.xml";
-       private static final int MAX_ITEMS = 10;
-
-       private FileManager fileManager;
-       private ApplicationConfiguration applicationConfiguration;
-       private JMenu menu;
-       private List<Recent> recents = new ArrayList<>();
-       private Thread loadRecentThread;
-
-       public FileOpenRecentMenuAction(FileManager fileManager) {
-               super(FILE_OPEN_SECTION_URI, 30, RECENT_URI);
-               this.fileManager = fileManager;
-               fileManager.addObserver(this);
-       }
-
-       @Override
-       public void notify(Observable<FileManagerEvent> sender,
-                       FileManagerEvent message) throws Exception {
-               FileManager fileManager = (FileManager) sender;
-               if (message instanceof OpenedDataflowEvent
-                               || message instanceof SavedDataflowEvent) {
-                       AbstractDataflowEvent dataflowEvent = 
(AbstractDataflowEvent) message;
-                       WorkflowBundle dataflow = dataflowEvent.getDataflow();
-                       Object dataflowSource = 
fileManager.getDataflowSource(dataflow);
-                       FileType dataflowType = 
fileManager.getDataflowType(dataflow);
-                       addRecent(dataflowSource, dataflowType);
-               }
-               if (message instanceof ClosedDataflowEvent)
-                       // Make sure enabled/disabled status is correct
-                       updateRecentMenu();
-       }
-
-       public void updateRecentMenu() {
-               invokeLater(new Runnable() {
-                       @Override
-                       public void run() {
-                               updateRecentMenuGUI();
-                       }
-               });
-               saveRecent();
-       }
-
-       protected void addRecent(Object dataflowSource, FileType dataflowType) {
-               if (dataflowSource == null)
-                       return;
-               if (!(dataflowSource instanceof Serializable)) {
-                       logger.warn("Can't serialize workflow source for 
'Recent workflows': "
-                                       + dataflowSource);
-                       return;
-               }
-               synchronized (recents) {
-                       Recent recent = new Recent((Serializable) 
dataflowSource, dataflowType);
-                       if (recents.contains(recent))
-                               recents.remove(recent);
-                       recents.add(0, recent); // Add to front
-               }
-               updateRecentMenu();
-       }
-
-       @Override
-       protected Component createCustomComponent() {
-               action = new DummyAction("Recent workflows");
-               action.putValue(MNEMONIC_KEY, VK_R);
-               menu = new JMenu(action);
-               // Disabled until we have loaded the recent workflows
-               menu.setEnabled(false);
-               loadRecentThread = new Thread("Loading recent workflow menu") {
-                       // Avoid hanging GUI initialization while deserialising
-                       @Override
-                       public void run() {
-                               loadRecent();
-                               updateRecentMenu();
-                       }
-               };
-               loadRecentThread.start();
-               return menu;
-       }
-
-       protected synchronized void loadRecent() {
-               File confDir = new 
File(applicationConfiguration.getApplicationHomeDir(), CONF);
-               confDir.mkdir();
-               File recentFile = new File(confDir, RECENT_WORKFLOWS_XML);
-               if (!recentFile.isFile())
-                       return;
-               try {
-                       loadRecent(recentFile);
-               } catch (JDOMException|IOException e) {
-                       logger.warn("Could not read recent workflows from file "
-                                       + recentFile, e);
-               }
-       }
-
-       private void loadRecent(File recentFile) throws FileNotFoundException,
-                       IOException, JDOMException {
-               SAXBuilder builder = new SAXBuilder();
-               @SuppressWarnings("unused")
-               Document document;
-               try (InputStream fileInputStream = new BufferedInputStream(
-                               new FileInputStream(recentFile))) {
-                       document = builder.build(fileInputStream);
-               }
-               synchronized (recents) {
-                       recents.clear();
-                       //RecentDeserializer deserialiser = new 
RecentDeserializer();
-                       try {
-                               // 
recents.addAll(deserialiser.deserializeRecent(document
-                               // .getRootElement()));
-                       } catch (Exception e) {
-                               logger.warn("Could not read recent workflows 
from file "
-                                               + recentFile, e);
-                       }
-               }
-       }
-
-       protected synchronized void saveRecent() {
-               File confDir = new 
File(applicationConfiguration.getApplicationHomeDir(), CONF);
-               confDir.mkdir();
-               File recentFile = new File(confDir, RECENT_WORKFLOWS_XML);
-
-               try {
-                       saveRecent(recentFile);
-//             } catch (JDOMException e) {
-//                     logger.warn("Could not generate XML for recent 
workflows to file "
-//                                     + recentFile, e);
-               } catch (IOException e) {
-                       logger.warn("Could not write recent workflows to file "
-                                       + recentFile, e);
-               }
-       }
-
-       private void saveRecent(File recentFile) throws FileNotFoundException,
-                       IOException {
-               // RecentSerializer serializer = new RecentSerializer();
-               // XMLOutputter outputter = new XMLOutputter();
-
-               // Element serializedRecent;
-               synchronized (recents) {
-                       if (recents.size() > MAX_ITEMS)
-                               // Remove excess entries
-                               recents.subList(MAX_ITEMS, 
recents.size()).clear();
-                       // serializedRecent = 
serializer.serializeRecent(recents);
-               }
-               try (OutputStream outputStream = new BufferedOutputStream(
-                               new FileOutputStream(recentFile))) {
-                       // outputter.output(serializedRecent, outputStream);
-               }
-       }
-
-       protected void updateRecentMenuGUI() {
-               int items = 0;
-               menu.removeAll();
-               synchronized (recents) {
-                       for (Recent recent : recents) {
-                               if (++items >= MAX_ITEMS)
-                                       break;
-                               OpenRecentAction openRecentAction = new 
OpenRecentAction(
-                                               recent, fileManager);
-                               if 
(fileManager.getDataflowBySource(recent.getDataflowSource()) != null)
-                                       openRecentAction.setEnabled(false);
-                               // else setEnabled(true)
-                               JMenuItem menuItem = new 
JMenuItem(openRecentAction);
-                               if (items < 10) {
-                                       openRecentAction.putValue(NAME, items + 
" "
-                                                       + 
openRecentAction.getValue(NAME));
-                                       menuItem.setMnemonic(VK_0 + items);
-                               }
-                               menu.add(menuItem);
-                       }
-               }
-               menu.setEnabled(items > 0);
-               menu.revalidate();
-       }
-
-       @SuppressWarnings("serial")
-       public static class OpenRecentAction extends AbstractAction implements
-                       Runnable {
-               private final Recent recent;
-               private Component component = null;
-               private final FileManager fileManager;
-
-               public OpenRecentAction(Recent recent, FileManager fileManager) 
{
-                       this.recent = recent;
-                       this.fileManager = fileManager;
-                       Serializable source = recent.getDataflowSource();
-                       String name;
-                       if (source instanceof File)
-                               name = ((File) source).getAbsolutePath();
-                       else
-                               name = source.toString();
-                       this.putValue(NAME, name);
-                       this.putValue(SHORT_DESCRIPTION, "Open the workflow " + 
name);
-               }
-
-               @Override
-               public void actionPerformed(ActionEvent e) {
-                       component = null;
-                       if (e.getSource() instanceof Component)
-                               component = (Component) e.getSource();
-                       setEnabled(false);
-                       new Thread(this, "Opening workflow from "
-                                       + recent.getDataflowSource()).start();
-               }
-
-               /**
-                * Opening workflow in separate thread
-                */
-               @Override
-               public void run() {
-                       final Serializable source = recent.getDataflowSource();
-                       try {
-                               fileManager.openDataflow(recent.makefileType(), 
source);
-                       } catch (OpenException ex) {
-                               logger.warn("Failed to open the workflow from  
" + source
-                                               + " \n", ex);
-                               showMessageDialog(component,
-                                               "Failed to open the workflow 
from url " + source
-                                                               + " \n" + 
ex.getMessage(), "Error!",
-                                               ERROR_MESSAGE);
-                       } finally {
-                               setEnabled(true);
-                       }
-               }
-       }
-
-       @SuppressWarnings("serial")
-       public static class Recent implements Serializable {
-               private final class RecentFileType extends FileType {
-                       @Override
-                       public String getMimeType() {
-                               return mimeType;
-                       }
-
-                       @Override
-                       public String getExtension() {
-                               return extension;
-                       }
-
-                       @Override
-                       public String getDescription() {
-                               return "File type " + extension + " " + 
mimeType;
-                       }
-               }
-
-               private Serializable dataflowSource;
-               private String mimeType;
-               private String extension;
-
-               public String getMimeType() {
-                       return mimeType;
-               }
-
-               public void setMimeType(String mimeType) {
-                       this.mimeType = mimeType;
-               }
-
-               public String getExtension() {
-                       return extension;
-               }
-
-               public void setExtension(String extension) {
-                       this.extension = extension;
-               }
-
-               public Recent() {
-               }
-
-               public FileType makefileType() {
-                       if (mimeType == null && extension == null)
-                               return null;
-                       return new RecentFileType();
-               }
-
-               public Recent(Serializable dataflowSource, FileType 
dataflowType) {
-                       setDataflowSource(dataflowSource);
-                       if (dataflowType != null) {
-                               setMimeType(dataflowType.getMimeType());
-                               setExtension(dataflowType.getExtension());
-                       }
-               }
-
-               @Override
-               public int hashCode() {
-                       final int prime = 31;
-                       int result = 1;
-                       result = prime
-                                       * result
-                                       + ((dataflowSource == null) ? 0 : 
dataflowSource.hashCode());
-                       result = prime * result
-                                       + ((extension == null) ? 0 : 
extension.hashCode());
-                       result = prime * result
-                                       + ((mimeType == null) ? 0 : 
mimeType.hashCode());
-                       return result;
-               }
-
-               @Override
-               public boolean equals(Object obj) {
-                       if (this == obj)
-                               return true;
-                       if (obj == null)
-                               return false;
-                       if (!(obj instanceof Recent))
-                               return false;
-                       Recent other = (Recent) obj;
-
-                       if (dataflowSource == null) {
-                               if (other.dataflowSource != null)
-                                       return false;
-                       } else if (!dataflowSource.equals(other.dataflowSource))
-                               return false;
-
-                       if (extension == null) {
-                               if (other.extension != null)
-                                       return false;
-                       } else if (!extension.equals(other.extension))
-                               return false;
-
-                       if (mimeType == null) {
-                               if (other.mimeType != null)
-                                       return false;
-                       } else if (!mimeType.equals(other.mimeType))
-                               return false;
-
-                       return true;
-               }
-
-               public Serializable getDataflowSource() {
-                       return dataflowSource;
-               }
-
-               public void setDataflowSource(Serializable dataflowSource) {
-                       this.dataflowSource = dataflowSource;
-               }
-
-               @Override
-               public String toString() {
-                       return getDataflowSource() + "";
-               }
-       }
-
-       // TODO find new serialization
-//     protected static class RecentDeserializer extends 
AbstractXMLDeserializer {
-//             public Collection<Recent> deserializeRecent(Element el) {
-//                     return (Collection<Recent>) super.createBean(el, 
getClass()
-//                                     .getClassLoader());
-//             }
-//     }
-//
-//     protected static class RecentSerializer extends AbstractXMLSerializer {
-//             public Element serializeRecent(List<Recent> x) throws 
JDOMException,
-//                             IOException {
-//                     Element beanAsElement = super.beanAsElement(x);
-//                     return beanAsElement;
-//             }
-//     }
-
-       public void setApplicationConfiguration(
-                       ApplicationConfiguration applicationConfiguration) {
-               this.applicationConfiguration = applicationConfiguration;
-       }
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-file-impl/src/main/java/net/sf/taverna/t2/workbench/file/impl/menu/FileSaveAllMenuAction.java
----------------------------------------------------------------------
diff --git 
a/taverna-workbench-file-impl/src/main/java/net/sf/taverna/t2/workbench/file/impl/menu/FileSaveAllMenuAction.java
 
b/taverna-workbench-file-impl/src/main/java/net/sf/taverna/t2/workbench/file/impl/menu/FileSaveAllMenuAction.java
deleted file mode 100644
index 86edacb..0000000
--- 
a/taverna-workbench-file-impl/src/main/java/net/sf/taverna/t2/workbench/file/impl/menu/FileSaveAllMenuAction.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*******************************************************************************
- * Copyright (C) 2007 The University of Manchester
- *
- *  Modifications to the initial code base are copyright of their
- *  respective authors, or their employers as appropriate.
- *
- *  This program is free software; you can redistribute it and/or
- *  modify it under the terms of the GNU Lesser General Public License
- *  as published by the Free Software Foundation; either version 2.1 of
- *  the License, or (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful, but
- *  WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- *  Lesser General Public License for more details.
- *
- *  You should have received a copy of the GNU Lesser General Public
- *  License along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
- 
******************************************************************************/
-package net.sf.taverna.t2.workbench.file.impl.menu;
-
-import static 
net.sf.taverna.t2.workbench.file.impl.menu.FileSaveMenuSection.FILE_SAVE_SECTION_URI;
-
-import javax.swing.Action;
-
-import net.sf.taverna.t2.ui.menu.AbstractMenuAction;
-import net.sf.taverna.t2.workbench.edits.EditManager;
-import net.sf.taverna.t2.workbench.file.FileManager;
-import net.sf.taverna.t2.workbench.file.impl.actions.SaveAllWorkflowsAction;
-
-public class FileSaveAllMenuAction extends AbstractMenuAction {
-       private final EditManager editManager;
-       private final FileManager fileManager;
-
-       public FileSaveAllMenuAction(EditManager editManager,
-                       FileManager fileManager) {
-               super(FILE_SAVE_SECTION_URI, 30);
-               this.editManager = editManager;
-               this.fileManager = fileManager;
-       }
-
-       @Override
-       protected Action createAction() {
-               return new SaveAllWorkflowsAction(editManager, fileManager);
-       }
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-file-impl/src/main/java/net/sf/taverna/t2/workbench/file/impl/menu/FileSaveAsMenuAction.java
----------------------------------------------------------------------
diff --git 
a/taverna-workbench-file-impl/src/main/java/net/sf/taverna/t2/workbench/file/impl/menu/FileSaveAsMenuAction.java
 
b/taverna-workbench-file-impl/src/main/java/net/sf/taverna/t2/workbench/file/impl/menu/FileSaveAsMenuAction.java
deleted file mode 100644
index 77917c9..0000000
--- 
a/taverna-workbench-file-impl/src/main/java/net/sf/taverna/t2/workbench/file/impl/menu/FileSaveAsMenuAction.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************
- * Copyright (C) 2007 The University of Manchester
- *
- *  Modifications to the initial code base are copyright of their
- *  respective authors, or their employers as appropriate.
- *
- *  This program is free software; you can redistribute it and/or
- *  modify it under the terms of the GNU Lesser General Public License
- *  as published by the Free Software Foundation; either version 2.1 of
- *  the License, or (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful, but
- *  WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- *  Lesser General Public License for more details.
- *
- *  You should have received a copy of the GNU Lesser General Public
- *  License along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
- 
******************************************************************************/
-package net.sf.taverna.t2.workbench.file.impl.menu;
-
-import static 
net.sf.taverna.t2.workbench.file.impl.menu.FileSaveMenuSection.FILE_SAVE_SECTION_URI;
-
-import javax.swing.Action;
-
-import net.sf.taverna.t2.ui.menu.AbstractMenuAction;
-import net.sf.taverna.t2.workbench.file.FileManager;
-import net.sf.taverna.t2.workbench.file.impl.actions.SaveWorkflowAsAction;
-
-public class FileSaveAsMenuAction extends AbstractMenuAction {
-       private final FileManager fileManager;
-
-       public FileSaveAsMenuAction(FileManager fileManager) {
-               super(FILE_SAVE_SECTION_URI, 20);
-               this.fileManager = fileManager;
-       }
-
-       @Override
-       protected Action createAction() {
-               return new SaveWorkflowAsAction(fileManager);
-       }
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-file-impl/src/main/java/net/sf/taverna/t2/workbench/file/impl/menu/FileSaveMenuAction.java
----------------------------------------------------------------------
diff --git 
a/taverna-workbench-file-impl/src/main/java/net/sf/taverna/t2/workbench/file/impl/menu/FileSaveMenuAction.java
 
b/taverna-workbench-file-impl/src/main/java/net/sf/taverna/t2/workbench/file/impl/menu/FileSaveMenuAction.java
deleted file mode 100644
index eeaecb3..0000000
--- 
a/taverna-workbench-file-impl/src/main/java/net/sf/taverna/t2/workbench/file/impl/menu/FileSaveMenuAction.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************
- * Copyright (C) 2007 The University of Manchester
- *
- *  Modifications to the initial code base are copyright of their
- *  respective authors, or their employers as appropriate.
- *
- *  This program is free software; you can redistribute it and/or
- *  modify it under the terms of the GNU Lesser General Public License
- *  as published by the Free Software Foundation; either version 2.1 of
- *  the License, or (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful, but
- *  WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- *  Lesser General Public License for more details.
- *
- *  You should have received a copy of the GNU Lesser General Public
- *  License along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
- 
******************************************************************************/
-package net.sf.taverna.t2.workbench.file.impl.menu;
-
-import static 
net.sf.taverna.t2.workbench.file.impl.menu.FileSaveMenuSection.FILE_SAVE_SECTION_URI;
-
-import javax.swing.Action;
-
-import net.sf.taverna.t2.ui.menu.AbstractMenuAction;
-import net.sf.taverna.t2.workbench.edits.EditManager;
-import net.sf.taverna.t2.workbench.file.FileManager;
-import net.sf.taverna.t2.workbench.file.impl.actions.SaveWorkflowAction;
-
-public class FileSaveMenuAction extends AbstractMenuAction {
-       private final EditManager editManager;
-       private final FileManager fileManager;
-
-       public FileSaveMenuAction(EditManager editManager, FileManager 
fileManager) {
-               super(FILE_SAVE_SECTION_URI, 10);
-               this.editManager = editManager;
-               this.fileManager = fileManager;
-       }
-
-       @Override
-       protected Action createAction() {
-               return new SaveWorkflowAction(editManager, fileManager);
-       }
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-file-impl/src/main/java/net/sf/taverna/t2/workbench/file/impl/menu/FileSaveMenuSection.java
----------------------------------------------------------------------
diff --git 
a/taverna-workbench-file-impl/src/main/java/net/sf/taverna/t2/workbench/file/impl/menu/FileSaveMenuSection.java
 
b/taverna-workbench-file-impl/src/main/java/net/sf/taverna/t2/workbench/file/impl/menu/FileSaveMenuSection.java
deleted file mode 100644
index a75a855..0000000
--- 
a/taverna-workbench-file-impl/src/main/java/net/sf/taverna/t2/workbench/file/impl/menu/FileSaveMenuSection.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************
- * Copyright (C) 2007 The University of Manchester   
- * 
- *  Modifications to the initial code base are copyright of their
- *  respective authors, or their employers as appropriate.
- * 
- *  This program is free software; you can redistribute it and/or
- *  modify it under the terms of the GNU Lesser General Public License
- *  as published by the Free Software Foundation; either version 2.1 of
- *  the License, or (at your option) any later version.
- *    
- *  This program is distributed in the hope that it will be useful, but
- *  WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- *  Lesser General Public License for more details.
- *    
- *  You should have received a copy of the GNU Lesser General Public
- *  License along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
- 
******************************************************************************/
-package net.sf.taverna.t2.workbench.file.impl.menu;
-
-import java.net.URI;
-
-import net.sf.taverna.t2.ui.menu.AbstractMenuSection;
-
-public class FileSaveMenuSection extends AbstractMenuSection {
-       public static final URI FILE_URI = URI
-                       
.create("http://taverna.sf.net/2008/t2workbench/menu#file";);
-       public static final URI FILE_SAVE_SECTION_URI = URI
-                       
.create("http://taverna.sf.net/2008/t2workbench/menu#fileSaveSection";);
-
-       public FileSaveMenuSection() {
-               super(FILE_URI, 40, FILE_SAVE_SECTION_URI);
-       }
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-file-impl/src/main/java/net/sf/taverna/t2/workbench/file/impl/menu/WorkflowsMenu.java
----------------------------------------------------------------------
diff --git 
a/taverna-workbench-file-impl/src/main/java/net/sf/taverna/t2/workbench/file/impl/menu/WorkflowsMenu.java
 
b/taverna-workbench-file-impl/src/main/java/net/sf/taverna/t2/workbench/file/impl/menu/WorkflowsMenu.java
deleted file mode 100644
index e056572..0000000
--- 
a/taverna-workbench-file-impl/src/main/java/net/sf/taverna/t2/workbench/file/impl/menu/WorkflowsMenu.java
+++ /dev/null
@@ -1,163 +0,0 @@
-/*******************************************************************************
- * Copyright (C) 2007 The University of Manchester
- *
- *  Modifications to the initial code base are copyright of their
- *  respective authors, or their employers as appropriate.
- *
- *  This program is free software; you can redistribute it and/or
- *  modify it under the terms of the GNU Lesser General Public License
- *  as published by the Free Software Foundation; either version 2.1 of
- *  the License, or (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful, but
- *  WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- *  Lesser General Public License for more details.
- *
- *  You should have received a copy of the GNU Lesser General Public
- *  License along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
- 
******************************************************************************/
-package net.sf.taverna.t2.workbench.file.impl.menu;
-
-import static java.awt.event.KeyEvent.VK_0;
-import static java.awt.event.KeyEvent.VK_W;
-import static javax.swing.Action.MNEMONIC_KEY;
-import static javax.swing.SwingUtilities.invokeLater;
-import static net.sf.taverna.t2.ui.menu.DefaultMenuBar.DEFAULT_MENU_BAR;
-
-import java.awt.Component;
-import java.awt.event.ActionEvent;
-
-import javax.swing.AbstractAction;
-import javax.swing.ButtonGroup;
-import javax.swing.JMenu;
-import javax.swing.JRadioButtonMenuItem;
-
-import net.sf.taverna.t2.lang.observer.Observable;
-import net.sf.taverna.t2.lang.observer.Observer;
-import net.sf.taverna.t2.ui.menu.AbstractMenuCustom;
-import net.sf.taverna.t2.workbench.edits.EditManager;
-import net.sf.taverna.t2.workbench.edits.EditManager.AbstractDataflowEditEvent;
-import net.sf.taverna.t2.workbench.edits.EditManager.EditManagerEvent;
-import net.sf.taverna.t2.workbench.file.FileManager;
-import net.sf.taverna.t2.workbench.file.events.AbstractDataflowEvent;
-import net.sf.taverna.t2.workbench.file.events.FileManagerEvent;
-import uk.org.taverna.scufl2.api.container.WorkflowBundle;
-
-public class WorkflowsMenu extends AbstractMenuCustom {
-       private EditManagerObserver editManagerObserver = new 
EditManagerObserver();
-       private FileManager fileManager;
-       private FileManagerObserver fileManagerObserver = new 
FileManagerObserver();
-
-       private JMenu workflowsMenu;
-
-       public WorkflowsMenu(EditManager editManager, FileManager fileManager) {
-               super(DEFAULT_MENU_BAR, 900);
-               this.fileManager = fileManager;
-               fileManager.addObserver(fileManagerObserver);
-               editManager.addObserver(editManagerObserver);
-       }
-
-       @Override
-       protected Component createCustomComponent() {
-               DummyAction action = new DummyAction("Workflows");
-               action.putValue(MNEMONIC_KEY, VK_W);
-
-               workflowsMenu = new JMenu(action);
-
-               updateWorkflowsMenu();
-               return workflowsMenu;
-       }
-
-       public void updateWorkflowsMenu() {
-               invokeLater(new Runnable() {
-                       @Override
-                       public void run() {
-                               updateWorkflowsMenuUI();
-                       }
-               });
-       }
-
-       protected void updateWorkflowsMenuUI() {
-               workflowsMenu.setEnabled(false);
-               workflowsMenu.removeAll();
-               ButtonGroup workflowsGroup = new ButtonGroup();
-
-               int i = 0;
-               WorkflowBundle currentDataflow = 
fileManager.getCurrentDataflow();
-               for (WorkflowBundle workflowBundle : 
fileManager.getOpenDataflows()) {
-                       String name = 
fileManager.getDataflowName(workflowBundle);
-                       if (fileManager.isDataflowChanged(workflowBundle))
-                               name = "*" + name;
-                       // A counter
-                       name = ++i + " " + name;
-
-                       SwitchWorkflowAction switchWorkflowAction = new 
SwitchWorkflowAction(
-                                       name, workflowBundle);
-                       if (i < 10)
-                               switchWorkflowAction.putValue(MNEMONIC_KEY, new 
Integer(VK_0
-                                               + i));
-
-                       JRadioButtonMenuItem switchWorkflowMenuItem = new 
JRadioButtonMenuItem(
-                                       switchWorkflowAction);
-                       workflowsGroup.add(switchWorkflowMenuItem);
-                       if (workflowBundle.equals(currentDataflow))
-                               switchWorkflowMenuItem.setSelected(true);
-                       workflowsMenu.add(switchWorkflowMenuItem);
-               }
-               if (i == 0)
-                       workflowsMenu.add(new NoWorkflowsOpen());
-               workflowsMenu.setEnabled(true);
-               workflowsMenu.revalidate();
-       }
-
-       private final class EditManagerObserver implements
-                       Observer<EditManagerEvent> {
-               @Override
-               public void notify(Observable<EditManagerEvent> sender,
-                               EditManagerEvent message) throws Exception {
-                       if (message instanceof AbstractDataflowEditEvent)
-                               updateWorkflowsMenu();
-               }
-       }
-
-       private final class FileManagerObserver implements
-                       Observer<FileManagerEvent> {
-               @Override
-               public void notify(Observable<FileManagerEvent> sender,
-                               FileManagerEvent message) throws Exception {
-                       if (message instanceof AbstractDataflowEvent)
-                               updateWorkflowsMenu();
-                       // TODO: Don't rebuild whole menu
-               }
-       }
-
-       @SuppressWarnings("serial")
-       private final class NoWorkflowsOpen extends AbstractAction {
-               private NoWorkflowsOpen() {
-                       super("No workflows open");
-                       setEnabled(false);
-               }
-
-               @Override
-               public void actionPerformed(ActionEvent e) {
-                       // No-op
-               }
-       }
-
-       @SuppressWarnings("serial")
-       private final class SwitchWorkflowAction extends AbstractAction {
-               private final WorkflowBundle workflowBundle;
-
-               private SwitchWorkflowAction(String name, WorkflowBundle 
workflowBundle) {
-                       super(name);
-                       this.workflowBundle = workflowBundle;
-               }
-
-               @Override
-               public void actionPerformed(ActionEvent e) {
-                       fileManager.setCurrentDataflow(workflowBundle);
-               }
-       }
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-file-impl/src/main/java/net/sf/taverna/t2/workbench/file/impl/toolbar/CloseToolbarAction.java
----------------------------------------------------------------------
diff --git 
a/taverna-workbench-file-impl/src/main/java/net/sf/taverna/t2/workbench/file/impl/toolbar/CloseToolbarAction.java
 
b/taverna-workbench-file-impl/src/main/java/net/sf/taverna/t2/workbench/file/impl/toolbar/CloseToolbarAction.java
deleted file mode 100644
index 68ef3f9..0000000
--- 
a/taverna-workbench-file-impl/src/main/java/net/sf/taverna/t2/workbench/file/impl/toolbar/CloseToolbarAction.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*******************************************************************************
- * Copyright (C) 2007 The University of Manchester
- *
- *  Modifications to the initial code base are copyright of their
- *  respective authors, or their employers as appropriate.
- *
- *  This program is free software; you can redistribute it and/or
- *  modify it under the terms of the GNU Lesser General Public License
- *  as published by the Free Software Foundation; either version 2.1 of
- *  the License, or (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful, but
- *  WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- *  Lesser General Public License for more details.
- *
- *  You should have received a copy of the GNU Lesser General Public
- *  License along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
- 
******************************************************************************/
-package net.sf.taverna.t2.workbench.file.impl.toolbar;
-
-import static 
net.sf.taverna.t2.workbench.file.impl.toolbar.FileToolbarMenuSection.FILE_TOOLBAR_SECTION;
-
-import java.net.URI;
-
-import javax.swing.Action;
-
-import net.sf.taverna.t2.ui.menu.AbstractMenuAction;
-import net.sf.taverna.t2.workbench.edits.EditManager;
-import net.sf.taverna.t2.workbench.file.FileManager;
-import net.sf.taverna.t2.workbench.file.impl.actions.CloseWorkflowAction;
-
-/**
- * Action to close the current workflow.
- * 
- * @author Alex Nenadic
- */
-public class CloseToolbarAction extends AbstractMenuAction {
-       private static final URI FILE_CLOSE_URI = URI
-                       
.create("http://taverna.sf.net/2008/t2workbench/menu#fileToolbarClose";);
-       private final EditManager editManager;
-       private final FileManager fileManager;
-
-       public CloseToolbarAction(EditManager editManager, FileManager 
fileManager) {
-               super(FILE_TOOLBAR_SECTION, 30, FILE_CLOSE_URI);
-               this.editManager = editManager;
-               this.fileManager = fileManager;
-       }
-
-       @Override
-       protected Action createAction() {
-               return new CloseWorkflowAction(editManager, fileManager);
-       }
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-file-impl/src/main/java/net/sf/taverna/t2/workbench/file/impl/toolbar/FileToolbarMenuSection.java
----------------------------------------------------------------------
diff --git 
a/taverna-workbench-file-impl/src/main/java/net/sf/taverna/t2/workbench/file/impl/toolbar/FileToolbarMenuSection.java
 
b/taverna-workbench-file-impl/src/main/java/net/sf/taverna/t2/workbench/file/impl/toolbar/FileToolbarMenuSection.java
deleted file mode 100644
index 257d590..0000000
--- 
a/taverna-workbench-file-impl/src/main/java/net/sf/taverna/t2/workbench/file/impl/toolbar/FileToolbarMenuSection.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************
- * Copyright (C) 2007 The University of Manchester   
- * 
- *  Modifications to the initial code base are copyright of their
- *  respective authors, or their employers as appropriate.
- * 
- *  This program is free software; you can redistribute it and/or
- *  modify it under the terms of the GNU Lesser General Public License
- *  as published by the Free Software Foundation; either version 2.1 of
- *  the License, or (at your option) any later version.
- *    
- *  This program is distributed in the hope that it will be useful, but
- *  WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- *  Lesser General Public License for more details.
- *    
- *  You should have received a copy of the GNU Lesser General Public
- *  License along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
- 
******************************************************************************/
-package net.sf.taverna.t2.workbench.file.impl.toolbar;
-
-import static net.sf.taverna.t2.ui.menu.DefaultToolBar.DEFAULT_TOOL_BAR;
-
-import java.net.URI;
-
-import net.sf.taverna.t2.ui.menu.AbstractMenuSection;
-
-public class FileToolbarMenuSection extends AbstractMenuSection {
-       public static final URI FILE_TOOLBAR_SECTION = URI
-                       
.create("http://taverna.sf.net/2008/t2workbench/menu#fileToolbarSection";);
-
-       public FileToolbarMenuSection() {
-               super(DEFAULT_TOOL_BAR, 10, FILE_TOOLBAR_SECTION);
-       }
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-file-impl/src/main/java/net/sf/taverna/t2/workbench/file/impl/toolbar/NewToolbarAction.java
----------------------------------------------------------------------
diff --git 
a/taverna-workbench-file-impl/src/main/java/net/sf/taverna/t2/workbench/file/impl/toolbar/NewToolbarAction.java
 
b/taverna-workbench-file-impl/src/main/java/net/sf/taverna/t2/workbench/file/impl/toolbar/NewToolbarAction.java
deleted file mode 100644
index 2c8e922..0000000
--- 
a/taverna-workbench-file-impl/src/main/java/net/sf/taverna/t2/workbench/file/impl/toolbar/NewToolbarAction.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*******************************************************************************
- * Copyright (C) 2007 The University of Manchester
- *
- *  Modifications to the initial code base are copyright of their
- *  respective authors, or their employers as appropriate.
- *
- *  This program is free software; you can redistribute it and/or
- *  modify it under the terms of the GNU Lesser General Public License
- *  as published by the Free Software Foundation; either version 2.1 of
- *  the License, or (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful, but
- *  WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- *  Lesser General Public License for more details.
- *
- *  You should have received a copy of the GNU Lesser General Public
- *  License along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
- 
******************************************************************************/
-package net.sf.taverna.t2.workbench.file.impl.toolbar;
-
-import static 
net.sf.taverna.t2.workbench.file.impl.toolbar.FileToolbarMenuSection.FILE_TOOLBAR_SECTION;
-
-import java.net.URI;
-
-import javax.swing.Action;
-
-import net.sf.taverna.t2.ui.menu.AbstractMenuAction;
-import net.sf.taverna.t2.workbench.file.FileManager;
-import net.sf.taverna.t2.workbench.file.impl.actions.NewWorkflowAction;
-
-public class NewToolbarAction extends AbstractMenuAction {
-       private static final URI FILE_NEW_URI = URI
-                       
.create("http://taverna.sf.net/2008/t2workbench/menu#fileToolbarNew";);
-       private final FileManager fileManager;
-
-       public NewToolbarAction(FileManager fileManager) {
-               super(FILE_TOOLBAR_SECTION, 10, FILE_NEW_URI);
-               this.fileManager = fileManager;
-       }
-
-       @Override
-       protected Action createAction() {
-               return new NewWorkflowAction(fileManager);
-       }
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-file-impl/src/main/java/net/sf/taverna/t2/workbench/file/impl/toolbar/OpenToolbarAction.java
----------------------------------------------------------------------
diff --git 
a/taverna-workbench-file-impl/src/main/java/net/sf/taverna/t2/workbench/file/impl/toolbar/OpenToolbarAction.java
 
b/taverna-workbench-file-impl/src/main/java/net/sf/taverna/t2/workbench/file/impl/toolbar/OpenToolbarAction.java
deleted file mode 100644
index ae99509..0000000
--- 
a/taverna-workbench-file-impl/src/main/java/net/sf/taverna/t2/workbench/file/impl/toolbar/OpenToolbarAction.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*******************************************************************************
- * Copyright (C) 2007 The University of Manchester
- *
- *  Modifications to the initial code base are copyright of their
- *  respective authors, or their employers as appropriate.
- *
- *  This program is free software; you can redistribute it and/or
- *  modify it under the terms of the GNU Lesser General Public License
- *  as published by the Free Software Foundation; either version 2.1 of
- *  the License, or (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful, but
- *  WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- *  Lesser General Public License for more details.
- *
- *  You should have received a copy of the GNU Lesser General Public
- *  License along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
- 
******************************************************************************/
-package net.sf.taverna.t2.workbench.file.impl.toolbar;
-
-import static 
net.sf.taverna.t2.workbench.file.impl.toolbar.FileToolbarMenuSection.FILE_TOOLBAR_SECTION;
-
-import java.net.URI;
-
-import javax.swing.Action;
-
-import net.sf.taverna.t2.ui.menu.AbstractMenuAction;
-import net.sf.taverna.t2.workbench.file.FileManager;
-import net.sf.taverna.t2.workbench.file.impl.actions.OpenWorkflowAction;
-
-public class OpenToolbarAction extends AbstractMenuAction {
-       private static final URI FILE_OPEN_URI = URI
-                       
.create("http://taverna.sf.net/2008/t2workbench/menu#fileToolbarOpen";);
-       private final FileManager fileManager;
-
-       public OpenToolbarAction(FileManager fileManager) {
-               super(FILE_TOOLBAR_SECTION, 20, FILE_OPEN_URI);
-               this.fileManager = fileManager;
-       }
-
-       @Override
-       protected Action createAction() {
-               return new OpenWorkflowAction(fileManager);
-       }
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-file-impl/src/main/java/net/sf/taverna/t2/workbench/file/impl/toolbar/OpenWorkflowFromURLToolbarAction.java
----------------------------------------------------------------------
diff --git 
a/taverna-workbench-file-impl/src/main/java/net/sf/taverna/t2/workbench/file/impl/toolbar/OpenWorkflowFromURLToolbarAction.java
 
b/taverna-workbench-file-impl/src/main/java/net/sf/taverna/t2/workbench/file/impl/toolbar/OpenWorkflowFromURLToolbarAction.java
deleted file mode 100644
index 2554063..0000000
--- 
a/taverna-workbench-file-impl/src/main/java/net/sf/taverna/t2/workbench/file/impl/toolbar/OpenWorkflowFromURLToolbarAction.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*******************************************************************************
- * Copyright (C) 2007 The University of Manchester
- *
- *  Modifications to the initial code base are copyright of their
- *  respective authors, or their employers as appropriate.
- *
- *  This program is free software; you can redistribute it and/or
- *  modify it under the terms of the GNU Lesser General Public License
- *  as published by the Free Software Foundation; either version 2.1 of
- *  the License, or (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful, but
- *  WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- *  Lesser General Public License for more details.
- *
- *  You should have received a copy of the GNU Lesser General Public
- *  License along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
- 
******************************************************************************/
-package net.sf.taverna.t2.workbench.file.impl.toolbar;
-
-import static 
net.sf.taverna.t2.workbench.file.impl.toolbar.FileToolbarMenuSection.FILE_TOOLBAR_SECTION;
-
-import java.net.URI;
-
-import javax.swing.Action;
-
-import net.sf.taverna.t2.ui.menu.AbstractMenuAction;
-import net.sf.taverna.t2.workbench.file.FileManager;
-import net.sf.taverna.t2.workbench.file.impl.actions.OpenWorkflowFromURLAction;
-
-public class OpenWorkflowFromURLToolbarAction extends AbstractMenuAction {
-       private static final URI FILE_OPEN_FROM_URL_URI = URI
-                       
.create("http://taverna.sf.net/2008/t2workbench/menu#fileToolbarOpenFromURL";);
-       private final FileManager fileManager;
-
-       public OpenWorkflowFromURLToolbarAction(FileManager fileManager) {
-               super(FILE_TOOLBAR_SECTION, 25, FILE_OPEN_FROM_URL_URI);
-               this.fileManager = fileManager;
-       }
-
-       @Override
-       protected Action createAction() {
-               return new OpenWorkflowFromURLAction(null, fileManager);
-       }
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-file-impl/src/main/java/net/sf/taverna/t2/workbench/file/impl/toolbar/SaveToolbarAction.java
----------------------------------------------------------------------
diff --git 
a/taverna-workbench-file-impl/src/main/java/net/sf/taverna/t2/workbench/file/impl/toolbar/SaveToolbarAction.java
 
b/taverna-workbench-file-impl/src/main/java/net/sf/taverna/t2/workbench/file/impl/toolbar/SaveToolbarAction.java
deleted file mode 100644
index 53ba720..0000000
--- 
a/taverna-workbench-file-impl/src/main/java/net/sf/taverna/t2/workbench/file/impl/toolbar/SaveToolbarAction.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*******************************************************************************
- * Copyright (C) 2007 The University of Manchester
- *
- *  Modifications to the initial code base are copyright of their
- *  respective authors, or their employers as appropriate.
- *
- *  This program is free software; you can redistribute it and/or
- *  modify it under the terms of the GNU Lesser General Public License
- *  as published by the Free Software Foundation; either version 2.1 of
- *  the License, or (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful, but
- *  WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- *  Lesser General Public License for more details.
- *
- *  You should have received a copy of the GNU Lesser General Public
- *  License along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
- 
******************************************************************************/
-package net.sf.taverna.t2.workbench.file.impl.toolbar;
-
-import static 
net.sf.taverna.t2.workbench.file.impl.toolbar.FileToolbarMenuSection.FILE_TOOLBAR_SECTION;
-
-import java.net.URI;
-
-import javax.swing.Action;
-
-import net.sf.taverna.t2.ui.menu.AbstractMenuAction;
-import net.sf.taverna.t2.workbench.edits.EditManager;
-import net.sf.taverna.t2.workbench.file.FileManager;
-import net.sf.taverna.t2.workbench.file.impl.actions.SaveWorkflowAction;
-
-public class SaveToolbarAction extends AbstractMenuAction {
-       private static final URI FILE_SAVE_URI = URI
-                       
.create("http://taverna.sf.net/2008/t2workbench/menu#fileToolbarSave";);
-       private final EditManager editManager;
-       private final FileManager fileManager;
-
-       public SaveToolbarAction(EditManager editManager, FileManager 
fileManager) {
-               super(FILE_TOOLBAR_SECTION, 40, FILE_SAVE_URI);
-               this.editManager = editManager;
-               this.fileManager = fileManager;
-       }
-
-       @Override
-       protected Action createAction() {
-               return new SaveWorkflowAction(editManager, fileManager);
-       }
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-file-impl/src/main/resources/META-INF/services/net.sf.taverna.t2.ui.menu.MenuComponent
----------------------------------------------------------------------
diff --git 
a/taverna-workbench-file-impl/src/main/resources/META-INF/services/net.sf.taverna.t2.ui.menu.MenuComponent
 
b/taverna-workbench-file-impl/src/main/resources/META-INF/services/net.sf.taverna.t2.ui.menu.MenuComponent
deleted file mode 100644
index 100915c..0000000
--- 
a/taverna-workbench-file-impl/src/main/resources/META-INF/services/net.sf.taverna.t2.ui.menu.MenuComponent
+++ /dev/null
@@ -1,20 +0,0 @@
-net.sf.taverna.t2.workbench.file.impl.menu.FileCloseMenuAction
-net.sf.taverna.t2.workbench.file.impl.menu.FileNewMenuAction
-net.sf.taverna.t2.workbench.file.impl.menu.FileOpenMenuAction
-net.sf.taverna.t2.workbench.file.impl.menu.FileOpenFromURLMenuAction
-net.sf.taverna.t2.workbench.file.impl.menu.FileOpenMenuSection
-net.sf.taverna.t2.workbench.file.impl.menu.FileOpenRecentMenuAction
-net.sf.taverna.t2.workbench.file.impl.menu.FileSaveMenuSection
-net.sf.taverna.t2.workbench.file.impl.menu.FileSaveMenuAction
-net.sf.taverna.t2.workbench.file.impl.menu.FileSaveAllMenuAction
-net.sf.taverna.t2.workbench.file.impl.menu.FileSaveAsMenuAction
-
-net.sf.taverna.t2.workbench.file.impl.menu.WorkflowsMenu
-net.sf.taverna.t2.workbench.file.impl.menu.FileCloseAllMenuAction
-
-net.sf.taverna.t2.workbench.file.impl.toolbar.FileToolbarMenuSection
-net.sf.taverna.t2.workbench.file.impl.toolbar.NewToolbarAction
-net.sf.taverna.t2.workbench.file.impl.toolbar.OpenToolbarAction
-net.sf.taverna.t2.workbench.file.impl.toolbar.OpenWorkflowFromURLToolbarAction
-net.sf.taverna.t2.workbench.file.impl.toolbar.SaveToolbarAction
-net.sf.taverna.t2.workbench.file.impl.toolbar.CloseToolbarAction

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-file-impl/src/main/resources/META-INF/services/net.sf.taverna.t2.workbench.ShutdownSPI
----------------------------------------------------------------------
diff --git 
a/taverna-workbench-file-impl/src/main/resources/META-INF/services/net.sf.taverna.t2.workbench.ShutdownSPI
 
b/taverna-workbench-file-impl/src/main/resources/META-INF/services/net.sf.taverna.t2.workbench.ShutdownSPI
deleted file mode 100644
index cc53d36..0000000
--- 
a/taverna-workbench-file-impl/src/main/resources/META-INF/services/net.sf.taverna.t2.workbench.ShutdownSPI
+++ /dev/null
@@ -1 +0,0 @@
-net.sf.taverna.t2.workbench.file.impl.hooks.CloseWorkflowsOnShutdown

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-file-impl/src/main/resources/META-INF/services/net.sf.taverna.t2.workbench.file.DataflowPersistenceHandler
----------------------------------------------------------------------
diff --git 
a/taverna-workbench-file-impl/src/main/resources/META-INF/services/net.sf.taverna.t2.workbench.file.DataflowPersistenceHandler
 
b/taverna-workbench-file-impl/src/main/resources/META-INF/services/net.sf.taverna.t2.workbench.file.DataflowPersistenceHandler
deleted file mode 100644
index cfd1c7a..0000000
--- 
a/taverna-workbench-file-impl/src/main/resources/META-INF/services/net.sf.taverna.t2.workbench.file.DataflowPersistenceHandler
+++ /dev/null
@@ -1,2 +0,0 @@
-net.sf.taverna.t2.workbench.file.impl.T2DataflowOpener
-net.sf.taverna.t2.workbench.file.impl.DataflowFromDataflowPersistenceHandler
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-file-impl/src/main/resources/META-INF/services/net.sf.taverna.t2.workbench.file.FileManager
----------------------------------------------------------------------
diff --git 
a/taverna-workbench-file-impl/src/main/resources/META-INF/services/net.sf.taverna.t2.workbench.file.FileManager
 
b/taverna-workbench-file-impl/src/main/resources/META-INF/services/net.sf.taverna.t2.workbench.file.FileManager
deleted file mode 100644
index 656feeb..0000000
--- 
a/taverna-workbench-file-impl/src/main/resources/META-INF/services/net.sf.taverna.t2.workbench.file.FileManager
+++ /dev/null
@@ -1 +0,0 @@
-net.sf.taverna.t2.workbench.file.impl.FileManagerImpl
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-file-impl/src/main/resources/META-INF/spring/file-impl-context-osgi.xml
----------------------------------------------------------------------
diff --git 
a/taverna-workbench-file-impl/src/main/resources/META-INF/spring/file-impl-context-osgi.xml
 
b/taverna-workbench-file-impl/src/main/resources/META-INF/spring/file-impl-context-osgi.xml
deleted file mode 100644
index 7c6e290..0000000
--- 
a/taverna-workbench-file-impl/src/main/resources/META-INF/spring/file-impl-context-osgi.xml
+++ /dev/null
@@ -1,100 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<beans:beans xmlns="http://www.springframework.org/schema/osgi"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
-       xmlns:beans="http://www.springframework.org/schema/beans";
-       xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      
http://www.springframework.org/schema/beans/spring-beans.xsd
-                      http://www.springframework.org/schema/osgi
-                      
http://www.springframework.org/schema/osgi/spring-osgi.xsd";>
-
-       <service ref="FileCloseMenuAction" auto-export="interfaces">
-               <service-properties>
-                       <beans:entry key="menu.action" value="file.close" />
-               </service-properties>
-       </service>
-       <service ref="FileNewMenuAction" auto-export="interfaces">
-               <service-properties>
-                       <beans:entry key="menu.action" value="file.new" />
-               </service-properties>
-       </service>
-       <service ref="FileOpenMenuAction" auto-export="interfaces">
-               <service-properties>
-                       <beans:entry key="menu.action" value="file.open" />
-               </service-properties>
-       </service>
-       <service ref="FileOpenFromURLMenuAction" auto-export="interfaces">
-               <service-properties>
-                       <beans:entry key="menu.action" value="file.open.url" />
-               </service-properties>
-       </service>
-       <service ref="FileOpenMenuSection" auto-export="interfaces" />
-       <service ref="FileOpenRecentMenuAction" auto-export="interfaces">
-               <service-properties>
-                       <beans:entry key="menu.action" value="file.open.recent" 
/>
-               </service-properties>
-       </service>
-       <service ref="FileSaveMenuSection" auto-export="interfaces" />
-       <service ref="FileSaveMenuAction" auto-export="interfaces">
-               <service-properties>
-                       <beans:entry key="menu.action" value="file.save" />
-               </service-properties>
-       </service>
-       <service ref="FileSaveAllMenuAction" auto-export="interfaces">
-               <service-properties>
-                       <beans:entry key="menu.action" value="file.save.all" />
-               </service-properties>
-       </service>
-       <service ref="FileSaveAsMenuAction" auto-export="interfaces">
-               <service-properties>
-                       <beans:entry key="menu.action" value="file.save.as" />
-               </service-properties>
-       </service>
-       <service ref="WorkflowsMenu" auto-export="interfaces" />
-       <service ref="FileCloseAllMenuAction" auto-export="interfaces">
-               <service-properties>
-                       <beans:entry key="menu.action" value="file.close.all" />
-               </service-properties>
-       </service>
-       <service ref="FileToolbarMenuSection" auto-export="interfaces" />
-       <service ref="NewToolbarAction" auto-export="interfaces">
-               <service-properties>
-                       <beans:entry key="menu.action" value="toolbar.new" />
-               </service-properties>
-       </service>
-       <service ref="OpenToolbarAction" auto-export="interfaces">
-               <service-properties>
-                       <beans:entry key="menu.action" value="toolbar.open" />
-               </service-properties>
-       </service>
-       <service ref="OpenWorkflowFromURLToolbarAction" 
auto-export="interfaces">
-               <service-properties>
-                       <beans:entry key="menu.action" value="toolbar.open.url" 
/>
-               </service-properties>
-       </service>
-       <service ref="SaveToolbarAction" auto-export="interfaces">
-               <service-properties>
-                       <beans:entry key="menu.action" value="toolbar.save" />
-               </service-properties>
-       </service>
-       <service ref="CloseToolbarAction" auto-export="interfaces">
-               <service-properties>
-                       <beans:entry key="menu.action" value="toolbar.close" />
-               </service-properties>
-       </service>
-
-       <service ref="T2DataflowOpener" 
interface="net.sf.taverna.t2.workbench.file.DataflowPersistenceHandler" />
-
-       <service ref="WorkflowBundleOpener" 
interface="net.sf.taverna.t2.workbench.file.DataflowPersistenceHandler" />
-       <service ref="WorkflowBundleSaver" 
interface="net.sf.taverna.t2.workbench.file.DataflowPersistenceHandler" />
-
-       <service ref="CloseWorkflowsOnShutdown" 
interface="net.sf.taverna.t2.workbench.ShutdownSPI" />
-
-       <service ref="FileManagerImpl" 
interface="net.sf.taverna.t2.workbench.file.FileManager" />
-
-       <reference id="editManager" 
interface="net.sf.taverna.t2.workbench.edits.EditManager" />
-       <reference id="applicationConfiguration" 
interface="uk.org.taverna.configuration.app.ApplicationConfiguration" />
-       <reference id="workflowBundleIO" 
interface="uk.org.taverna.scufl2.api.io.WorkflowBundleIO" />
-
-       <list id="dataflowPersistenceHandlers" 
interface="net.sf.taverna.t2.workbench.file.DataflowPersistenceHandler" 
cardinality="0..N">
-               <listener ref="DataflowPersistenceHandlerRegistry" 
bind-method="update" unbind-method="update" />
-       </list>
-</beans:beans>

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-file-impl/src/main/resources/META-INF/spring/file-impl-context.xml
----------------------------------------------------------------------
diff --git 
a/taverna-workbench-file-impl/src/main/resources/META-INF/spring/file-impl-context.xml
 
b/taverna-workbench-file-impl/src/main/resources/META-INF/spring/file-impl-context.xml
deleted file mode 100644
index 493df5f..0000000
--- 
a/taverna-workbench-file-impl/src/main/resources/META-INF/spring/file-impl-context.xml
+++ /dev/null
@@ -1,123 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<beans xmlns="http://www.springframework.org/schema/beans"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
-       xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      
http://www.springframework.org/schema/beans/spring-beans.xsd";>
-
-       <bean id="FileCloseMenuAction" 
class="net.sf.taverna.t2.workbench.file.impl.menu.FileCloseMenuAction">
-       <constructor-arg ref="editManager" />
-       <constructor-arg>
-                       <ref local="FileManagerImpl" />
-               </constructor-arg>
-    </bean>
-       <bean id="FileNewMenuAction" 
class="net.sf.taverna.t2.workbench.file.impl.menu.FileNewMenuAction">
-       <constructor-arg>
-                       <ref local="FileManagerImpl" />
-               </constructor-arg>
-    </bean>
-       <bean id="FileOpenMenuAction" 
class="net.sf.taverna.t2.workbench.file.impl.menu.FileOpenMenuAction">
-       <constructor-arg>
-                       <ref local="FileManagerImpl" />
-               </constructor-arg>
-    </bean>
-       <bean id="FileOpenFromURLMenuAction" 
class="net.sf.taverna.t2.workbench.file.impl.menu.FileOpenFromURLMenuAction">
-       <constructor-arg>
-                       <ref local="FileManagerImpl" />
-               </constructor-arg>
-    </bean>
-       <bean id="FileOpenMenuSection" 
class="net.sf.taverna.t2.workbench.file.impl.menu.FileOpenMenuSection" />
-       <bean id="FileOpenRecentMenuAction" 
class="net.sf.taverna.t2.workbench.file.impl.menu.FileOpenRecentMenuAction">
-       <constructor-arg>
-                       <ref local="FileManagerImpl" />
-               </constructor-arg>
-               <property name="applicationConfiguration" 
ref="applicationConfiguration"/>
-    </bean>
-       <bean id="FileSaveMenuSection" 
class="net.sf.taverna.t2.workbench.file.impl.menu.FileSaveMenuSection" />
-       <bean id="FileSaveMenuAction" 
class="net.sf.taverna.t2.workbench.file.impl.menu.FileSaveMenuAction">
-       <constructor-arg ref="editManager" />
-       <constructor-arg>
-                       <ref local="FileManagerImpl" />
-               </constructor-arg>
-    </bean>
-       <bean id="FileSaveAllMenuAction" 
class="net.sf.taverna.t2.workbench.file.impl.menu.FileSaveAllMenuAction">
-       <constructor-arg ref="editManager" />
-       <constructor-arg>
-                       <ref local="FileManagerImpl" />
-               </constructor-arg>
-    </bean>
-       <bean id="FileSaveAsMenuAction" 
class="net.sf.taverna.t2.workbench.file.impl.menu.FileSaveAsMenuAction">
-       <constructor-arg>
-                       <ref local="FileManagerImpl" />
-               </constructor-arg>
-    </bean>
-       <bean id="WorkflowsMenu" 
class="net.sf.taverna.t2.workbench.file.impl.menu.WorkflowsMenu">
-           <constructor-arg ref="editManager" />
-       <constructor-arg>
-                       <ref local="FileManagerImpl" />
-               </constructor-arg>
-       </bean>
-       <bean id="FileCloseAllMenuAction" 
class="net.sf.taverna.t2.workbench.file.impl.menu.FileCloseAllMenuAction">
-       <constructor-arg ref="editManager" />
-       <constructor-arg>
-                       <ref local="FileManagerImpl" />
-               </constructor-arg>
-    </bean>
-       <bean id="FileToolbarMenuSection" 
class="net.sf.taverna.t2.workbench.file.impl.toolbar.FileToolbarMenuSection" />
-       <bean id="NewToolbarAction" 
class="net.sf.taverna.t2.workbench.file.impl.toolbar.NewToolbarAction">
-       <constructor-arg>
-                       <ref local="FileManagerImpl" />
-               </constructor-arg>
-    </bean>
-       <bean id="OpenToolbarAction" 
class="net.sf.taverna.t2.workbench.file.impl.toolbar.OpenToolbarAction">
-       <constructor-arg>
-                       <ref local="FileManagerImpl" />
-               </constructor-arg>
-    </bean>
-       <bean id="OpenWorkflowFromURLToolbarAction" 
class="net.sf.taverna.t2.workbench.file.impl.toolbar.OpenWorkflowFromURLToolbarAction">
-       <constructor-arg>
-                       <ref local="FileManagerImpl" />
-               </constructor-arg>
-    </bean>
-       <bean id="SaveToolbarAction" 
class="net.sf.taverna.t2.workbench.file.impl.toolbar.SaveToolbarAction">
-       <constructor-arg ref="editManager" />
-       <constructor-arg>
-                       <ref local="FileManagerImpl" />
-               </constructor-arg>
-    </bean>
-       <bean id="CloseToolbarAction" 
class="net.sf.taverna.t2.workbench.file.impl.toolbar.CloseToolbarAction">
-       <constructor-arg ref="editManager" />
-       <constructor-arg>
-                       <ref local="FileManagerImpl" />
-               </constructor-arg>
-    </bean>
-
-       <bean id="T2DataflowOpener" 
class="net.sf.taverna.t2.workbench.file.impl.T2DataflowOpener">
-                       <property name="workflowBundleIO" 
ref="workflowBundleIO"/>
-       </bean>
-
-       <bean id="WorkflowBundleOpener" 
class="net.sf.taverna.t2.workbench.file.impl.WorkflowBundleOpener">
-                       <property name="workflowBundleIO" 
ref="workflowBundleIO"/>
-       </bean>
-       <bean id="WorkflowBundleSaver" 
class="net.sf.taverna.t2.workbench.file.impl.WorkflowBundleSaver">
-                       <property name="workflowBundleIO" 
ref="workflowBundleIO"/>
-       </bean>
-
-       <bean id="CloseWorkflowsOnShutdown" 
class="net.sf.taverna.t2.workbench.file.impl.hooks.CloseWorkflowsOnShutdown">
-       <constructor-arg ref="editManager" />
-       <constructor-arg>
-                       <ref local="FileManagerImpl" />
-               </constructor-arg>
-    </bean>
-
-       <bean id="FileManagerImpl" 
class="net.sf.taverna.t2.workbench.file.impl.FileManagerImpl">
-       <constructor-arg name="editManager" ref="editManager" />
-       <property name="dataflowPersistenceHandlerRegistry">
-               <ref local="DataflowPersistenceHandlerRegistry"/>
-       </property>
-       </bean>
-
-       <bean id="DataflowPersistenceHandlerRegistry" 
class="net.sf.taverna.t2.workbench.file.impl.DataflowPersistenceHandlerRegistry">
-       <property name="dataflowPersistenceHandlers" 
ref="dataflowPersistenceHandlers" />
-       </bean>
-
-
-</beans>

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-file-impl/src/test/java/net/sf/taverna/t2/workbench/file/impl/FileManagerTest.java
----------------------------------------------------------------------
diff --git 
a/taverna-workbench-file-impl/src/test/java/net/sf/taverna/t2/workbench/file/impl/FileManagerTest.java
 
b/taverna-workbench-file-impl/src/test/java/net/sf/taverna/t2/workbench/file/impl/FileManagerTest.java
deleted file mode 100644
index 691b278..0000000
--- 
a/taverna-workbench-file-impl/src/test/java/net/sf/taverna/t2/workbench/file/impl/FileManagerTest.java
+++ /dev/null
@@ -1,385 +0,0 @@
-/*******************************************************************************
- * Copyright (C) 2007 The University of Manchester
- *
- *  Modifications to the initial code base are copyright of their
- *  respective authors, or their employers as appropriate.
- *
- *  This program is free software; you can redistribute it and/or
- *  modify it under the terms of the GNU Lesser General Public License
- *  as published by the Free Software Foundation; either version 2.1 of
- *  the License, or (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful, but
- *  WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- *  Lesser General Public License for more details.
- *
- *  You should have received a copy of the GNU Lesser General Public
- *  License along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
- 
******************************************************************************/
-package net.sf.taverna.t2.workbench.file.impl;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNotSame;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
-
-import java.io.File;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-
-import net.sf.taverna.t2.lang.observer.Observable;
-import net.sf.taverna.t2.lang.observer.Observer;
-import net.sf.taverna.t2.workbench.edits.Edit;
-import net.sf.taverna.t2.workbench.edits.EditManager;
-import net.sf.taverna.t2.workbench.edits.impl.EditManagerImpl;
-import net.sf.taverna.t2.workbench.file.DataflowInfo;
-import net.sf.taverna.t2.workbench.file.DataflowPersistenceHandler;
-import net.sf.taverna.t2.workbench.file.FileManager;
-import net.sf.taverna.t2.workbench.file.events.FileManagerEvent;
-import net.sf.taverna.t2.workbench.file.events.SetCurrentDataflowEvent;
-import net.sf.taverna.t2.workbench.file.exceptions.OpenException;
-import net.sf.taverna.t2.workbench.file.exceptions.OverwriteException;
-import net.sf.taverna.t2.workflow.edits.AddProcessorEdit;
-import net.sf.taverna.t2.workflow.edits.RenameEdit;
-
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Ignore;
-import org.junit.Test;
-
-import uk.org.taverna.scufl2.api.container.WorkflowBundle;
-import uk.org.taverna.scufl2.api.core.Processor;
-import uk.org.taverna.scufl2.api.core.Workflow;
-import uk.org.taverna.scufl2.api.io.WorkflowBundleIO;
-import uk.org.taverna.scufl2.api.io.WorkflowBundleReader;
-import uk.org.taverna.scufl2.api.io.WorkflowBundleWriter;
-import uk.org.taverna.scufl2.rdfxml.RDFXMLReader;
-import uk.org.taverna.scufl2.rdfxml.RDFXMLWriter;
-import uk.org.taverna.scufl2.translator.t2flow.T2FlowReader;
-
-public class FileManagerTest {
-
-       private static final WorkflowBundleFileType WF_BUNDLE_FILE_TYPE = new 
WorkflowBundleFileType();
-       private static final T2FlowFileType T2_FLOW_FILE_TYPE = new 
T2FlowFileType();
-
-       private static final String DUMMY_WORKFLOW_T2FLOW = 
"dummy-workflow.t2flow";
-
-       private FileManagerImpl fileManager;
-       private EditManager editManager;
-
-       private FileManagerObserver fileManagerObserver= new 
FileManagerObserver();;
-
-       @Test
-       public void close() throws Exception {
-               assertTrue("Non-empty set of open dataflows", fileManager
-                               .getOpenDataflows().isEmpty());
-               WorkflowBundle dataflow = openDataflow();
-               assertEquals("Unexpected list of open dataflows", Arrays
-                               .asList(dataflow), 
fileManager.getOpenDataflows());
-               fileManager.closeDataflow(dataflow, true);
-               assertNotSame(dataflow, fileManager.getOpenDataflows().get(0));
-               assertTrue("Did not insert empty dataflow after close", 
fileManager
-                               
.getOpenDataflows().get(0).getMainWorkflow().getProcessors().isEmpty());
-       }
-
-       @Test
-       public void openRemovesEmptyDataflow() throws Exception {
-               WorkflowBundle newDataflow = fileManager.newDataflow();
-               assertEquals("Unexpected list of open dataflows", Arrays
-                               .asList(newDataflow), 
fileManager.getOpenDataflows());
-               WorkflowBundle dataflow = openDataflow();
-               // Should have removed newDataflow
-               assertEquals("Unexpected list of open dataflows", Arrays
-                               .asList(dataflow), 
fileManager.getOpenDataflows());
-       }
-
-       @Test
-       public void isChanged() throws Exception {
-               WorkflowBundle dataflow = openDataflow();
-               assertFalse("Dataflow should not have changed", fileManager
-                               .isDataflowChanged(dataflow));
-
-               // Do a change
-               Processor emptyProcessor = new Processor();
-               Edit<Workflow> addProcessorEdit = new 
AddProcessorEdit(dataflow.getMainWorkflow(),
-                               emptyProcessor);
-               editManager.doDataflowEdit(dataflow, addProcessorEdit);
-               assertTrue("Dataflow should have changed", fileManager
-                               .isDataflowChanged(dataflow));
-
-               // Save it with the change
-               File dataflowFile = File.createTempFile("test", ".t2flow");
-               dataflowFile.deleteOnExit();
-               dataflowFile.delete();
-
-               fileManager.saveDataflow(dataflow, WF_BUNDLE_FILE_TYPE, 
dataflowFile, false);
-               assertFalse("Dataflow should no longer be marked as changed",
-                               fileManager.isDataflowChanged(dataflow));
-       }
-
-       @Ignore("Undo support for ischanged not yet implemented")
-       @Test
-       public void isChangedWithUndo() throws Exception {
-               WorkflowBundle dataflow = openDataflow();
-               // Do a change
-               Processor emptyProcessor = new Processor();
-               Edit<Workflow> addProcessorEdit = new 
AddProcessorEdit(dataflow.getMainWorkflow(),
-                               emptyProcessor);
-               editManager.doDataflowEdit(dataflow, addProcessorEdit);
-               assertTrue("Dataflow should have changed", fileManager
-                               .isDataflowChanged(dataflow));
-               editManager.undoDataflowEdit(dataflow);
-               assertFalse(
-                               "Dataflow should no longer be marked as changed 
after undo",
-                               fileManager.isDataflowChanged(dataflow));
-               editManager.redoDataflowEdit(dataflow);
-               assertTrue("Dataflow should have changed after redo before 
save",
-                               fileManager.isDataflowChanged(dataflow));
-
-               // Save it with the change
-               File dataflowFile = File.createTempFile("test", ".t2flow");
-               dataflowFile.deleteOnExit();
-               dataflowFile.delete();
-               fileManager.saveDataflow(dataflow, WF_BUNDLE_FILE_TYPE, 
dataflowFile, false);
-               assertFalse("Dataflow should no longer be marked as changed",
-                               fileManager.isDataflowChanged(dataflow));
-
-               editManager.undoDataflowEdit(dataflow);
-               assertTrue("Dataflow should have changed after undo", 
fileManager
-                               .isDataflowChanged(dataflow));
-               fileManager.saveDataflow(dataflow, WF_BUNDLE_FILE_TYPE, 
dataflowFile, false);
-               editManager.redoDataflowEdit(dataflow);
-               assertTrue("Dataflow should have changed after redo after save",
-                               fileManager.isDataflowChanged(dataflow));
-       }
-
-       @Test
-       public void isListed() throws Exception {
-               assertTrue("Non-empty set of open data flows", fileManager
-                               .getOpenDataflows().isEmpty());
-               WorkflowBundle dataflow = openDataflow();
-               assertEquals("Unexpected list of open dataflows", Arrays
-                               .asList(dataflow), 
fileManager.getOpenDataflows());
-       }
-
-       /**
-        * Always uses a <strong>new</strong> file manager instead of the 
instance
-        * one from {@link FileManager#getInstance()}.
-        *
-        * @see #getFileManagerInstance()
-        *
-        */
-       @Before
-       public void makeFileManager() {
-               System.setProperty("java.awt.headless", "true");
-               editManager = new EditManagerImpl();
-               fileManager = new FileManagerImpl(editManager);
-               fileManagerObserver = new FileManagerObserver();
-               fileManager.addObserver(fileManagerObserver);
-               WorkflowBundleIO workflowBundleIO = new WorkflowBundleIO();
-               
workflowBundleIO.setReaders(Arrays.<WorkflowBundleReader>asList(new 
RDFXMLReader(), new T2FlowReader()));
-               
workflowBundleIO.setWriters(Arrays.<WorkflowBundleWriter>asList(new 
RDFXMLWriter()));
-               T2DataflowOpener t2DataflowOpener = new T2DataflowOpener();
-               t2DataflowOpener.setWorkflowBundleIO(workflowBundleIO);
-               WorkflowBundleOpener workflowBundleOpener = new 
WorkflowBundleOpener();
-               workflowBundleOpener.setWorkflowBundleIO(workflowBundleIO);
-               WorkflowBundleSaver workflowBundleSaver = new 
WorkflowBundleSaver();
-               workflowBundleSaver.setWorkflowBundleIO(workflowBundleIO);
-               DataflowPersistenceHandlerRegistry 
dataflowPersistenceHandlerRegistry = new DataflowPersistenceHandlerRegistry();
-               
dataflowPersistenceHandlerRegistry.setDataflowPersistenceHandlers(Arrays.asList(
-                               new DataflowPersistenceHandler[] 
{t2DataflowOpener, workflowBundleOpener, workflowBundleSaver}));
-               dataflowPersistenceHandlerRegistry.updateColletions();
-               
fileManager.setDataflowPersistenceHandlerRegistry(dataflowPersistenceHandlerRegistry);
-       }
-
-       @Test
-       public void open() throws Exception {
-               assertTrue("ModelMapObserver already contained messages",
-                               fileManagerObserver.messages.isEmpty());
-               WorkflowBundle dataflow = openDataflow();
-               assertNotNull("Dataflow was not loaded", dataflow);
-               assertEquals("Loaded dataflow was not set as current dataflow",
-                               dataflow, fileManager.getCurrentDataflow());
-               assertFalse("ModelMapObserver did not contain message",
-                               fileManagerObserver.messages.isEmpty());
-               assertEquals("ModelMapObserver contained unexpected messages", 
2,
-                               fileManagerObserver.messages.size());
-               FileManagerEvent event = fileManagerObserver.messages.get(0);
-               assertTrue(event instanceof SetCurrentDataflowEvent);
-               assertEquals(dataflow, ((SetCurrentDataflowEvent) 
event).getDataflow());
-       }
-
-       @Test
-       public void openSilently() throws Exception {
-               assertTrue("ModelMapObserver already contained messages",
-                               fileManagerObserver.messages.isEmpty());
-               URL url = getClass().getResource(DUMMY_WORKFLOW_T2FLOW);
-               DataflowInfo info = 
fileManager.openDataflowSilently(T2_FLOW_FILE_TYPE, url);
-
-               WorkflowBundle dataflow = info.getDataflow();
-               assertNotNull("Dataflow was not loaded", dataflow);
-
-               assertNotSame("Loaded dataflow was set as current dataflow",
-                               dataflow, fileManager.getCurrentDataflow());
-               assertTrue("ModelMapObserver contained unexpected messages",
-                               fileManagerObserver.messages.isEmpty());
-       }
-
-       @Test
-       public void canSaveDataflow() throws Exception {
-               WorkflowBundle savedDataflow = openDataflow();
-               File dataflowFile = File.createTempFile("test", ".t2flow");
-               dataflowFile.deleteOnExit();
-               dataflowFile.delete();
-               fileManager.saveDataflow(savedDataflow, WF_BUNDLE_FILE_TYPE, 
dataflowFile, true);
-               
assertTrue(fileManager.canSaveWithoutDestination(savedDataflow));
-               fileManager.saveDataflow(savedDataflow, true);
-               fileManager.closeDataflow(savedDataflow, true);
-
-               WorkflowBundle otherFlow = 
fileManager.openDataflow(WF_BUNDLE_FILE_TYPE, dataflowFile.toURI()
-                               .toURL());
-               assertTrue(fileManager.canSaveWithoutDestination(otherFlow));
-       }
-
-       @Test
-       public void save() throws Exception {
-               WorkflowBundle savedDataflow = openDataflow();
-               File dataflowFile = File.createTempFile("test", ".t2flow");
-               dataflowFile.deleteOnExit();
-               dataflowFile.delete();
-               assertFalse("File should not exist", dataflowFile.isFile());
-               fileManager.saveDataflow(savedDataflow, WF_BUNDLE_FILE_TYPE, 
dataflowFile, false);
-               assertTrue("File should exist", dataflowFile.isFile());
-               WorkflowBundle loadedDataflow = 
fileManager.openDataflow(WF_BUNDLE_FILE_TYPE, dataflowFile.toURI()
-                               .toURL());
-               assertNotSame("Dataflow was not reopened", savedDataflow,
-                               loadedDataflow);
-               assertEquals("Unexpected number of processors in saved 
dataflow", 1,
-                               
savedDataflow.getMainWorkflow().getProcessors().size());
-               assertEquals("Unexpected number of processors in loaded 
dataflow", 1,
-                               
loadedDataflow.getMainWorkflow().getProcessors().size());
-
-               Processor savedProcessor = 
savedDataflow.getMainWorkflow().getProcessors().first();
-               Processor loadedProcessor = 
loadedDataflow.getMainWorkflow().getProcessors().first();
-               assertEquals("Loaded processor had wrong name", savedProcessor
-                               .getName(), loadedProcessor.getName());
-
-               // TODO convert to scufl2
-//             BeanshellActivity savedActivity = (BeanshellActivity) 
savedProcessor
-//                             .getActivityList().get(0);
-//             BeanshellActivity loadedActivity = (BeanshellActivity) 
loadedProcessor
-//                             .getActivityList().get(0);
-//             String savedScript = 
savedActivity.getConfiguration().getScript();
-//             String loadedScript = 
loadedActivity.getConfiguration().getScript();
-//             assertEquals("Unexpected saved script",
-//                             "String output = input + \"XXX\";", 
savedScript);
-//             assertEquals("Loaded script did not matched saved script", 
savedScript,
-//                             loadedScript);
-       }
-
-       @Test
-       public void saveSilent() throws Exception {
-               assertTrue("ModelMapObserver contained unexpected messages",
-                               fileManagerObserver.messages.isEmpty());
-
-               URL url = getClass().getResource(DUMMY_WORKFLOW_T2FLOW);
-               DataflowInfo info = 
fileManager.openDataflowSilently(T2_FLOW_FILE_TYPE, url);
-               WorkflowBundle dataflow = info.getDataflow();
-               assertTrue("ModelMapObserver contained unexpected messages",
-                               fileManagerObserver.messages.isEmpty());
-
-               File dataflowFile = File.createTempFile("test", ".t2flow");
-               dataflowFile.deleteOnExit();
-               dataflowFile.delete();
-               assertFalse("File should not exist", dataflowFile.isFile());
-
-               fileManager.saveDataflowSilently(dataflow, WF_BUNDLE_FILE_TYPE, 
dataflowFile, false);
-               assertTrue("File should exist", dataflowFile.isFile());
-
-               assertTrue("ModelMapObserver contained unexpected messages",
-                               fileManagerObserver.messages.isEmpty());
-
-       }
-
-       @Test
-       public void saveOverwriteAgain() throws Exception {
-               WorkflowBundle dataflow = openDataflow();
-               File dataflowFile = File.createTempFile("test", ".t2flow");
-               dataflowFile.delete();
-               dataflowFile.deleteOnExit();
-               // File did NOT exist, should not fail
-               fileManager.saveDataflow(dataflow, WF_BUNDLE_FILE_TYPE, 
dataflowFile, true);
-
-               Processor processor = 
dataflow.getMainWorkflow().getProcessors().first();
-               Edit<Processor> renameEdit = new 
RenameEdit<Processor>(processor,
-                               processor.getName() + "-changed");
-               editManager.doDataflowEdit(dataflow, renameEdit);
-
-               // Last save was OURs, so should *not* fail - even if we now use
-               // the specific saveDataflow() method
-               fileManager.saveDataflow(dataflow, WF_BUNDLE_FILE_TYPE, 
dataflowFile, true);
-
-               //Thread.sleep(1500);
-               WorkflowBundle otherFlow = openDataflow();
-               // Saving another flow to same file should still fail
-               try {
-                       fileManager.saveDataflow(otherFlow,WF_BUNDLE_FILE_TYPE, 
dataflowFile, true);
-                       fail("Should have thrown OverwriteException");
-               } catch (OverwriteException ex) {
-                       // Expected
-               }
-       }
-
-       @Test(expected = OverwriteException.class)
-       public void saveOverwriteWarningFails() throws Exception {
-               WorkflowBundle dataflow = openDataflow();
-               File dataflowFile = File.createTempFile("test", ".t2flow");
-               dataflowFile.deleteOnExit();
-               // Should fail as file already exists
-               fileManager.saveDataflow(dataflow, WF_BUNDLE_FILE_TYPE, 
dataflowFile, true);
-       }
-
-       @Test
-       public void saveOverwriteWarningWorks() throws Exception {
-               WorkflowBundle dataflow = openDataflow();
-               File dataflowFile = File.createTempFile("test", ".t2flow");
-               dataflowFile.delete();
-               dataflowFile.deleteOnExit();
-               // File did NOT exist, should not fail
-               fileManager.saveDataflow(dataflow, WF_BUNDLE_FILE_TYPE, 
dataflowFile, true);
-       }
-
-       @After
-       public void stopListeningToModelMap() {
-               fileManager.removeObserver(fileManagerObserver);
-       }
-
-       protected WorkflowBundle openDataflow() throws OpenException {
-               URL url = getClass().getResource(DUMMY_WORKFLOW_T2FLOW);
-               assertNotNull(url);
-               WorkflowBundle dataflow = 
fileManager.openDataflow(T2_FLOW_FILE_TYPE, url);
-               assertNotNull(dataflow);
-               return dataflow;
-       }
-
-       private final class FileManagerObserver implements 
Observer<FileManagerEvent> {
-               protected List<FileManagerEvent> messages = new 
ArrayList<FileManagerEvent>();
-
-               @Override
-               public void notify(Observable<FileManagerEvent> sender, 
FileManagerEvent message) throws Exception {
-                       messages.add(message);
-                       if (message instanceof SetCurrentDataflowEvent) {
-                               assertTrue("Dataflow was not listed as open 
when set current",
-                                               
fileManager.getOpenDataflows().contains(
-                                                               
((SetCurrentDataflowEvent) message).getDataflow()));
-                       }
-               }
-       }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-file-impl/src/test/resources/net/sf/taverna/t2/workbench/file/impl/dummy-workflow.t2flow
----------------------------------------------------------------------
diff --git 
a/taverna-workbench-file-impl/src/test/resources/net/sf/taverna/t2/workbench/file/impl/dummy-workflow.t2flow
 
b/taverna-workbench-file-impl/src/test/resources/net/sf/taverna/t2/workbench/file/impl/dummy-workflow.t2flow
deleted file mode 100644
index b9a1075..0000000
--- 
a/taverna-workbench-file-impl/src/test/resources/net/sf/taverna/t2/workbench/file/impl/dummy-workflow.t2flow
+++ /dev/null
@@ -1,157 +0,0 @@
-<workflow xmlns="http://taverna.sf.net/2008/xml/t2flow"; version="1" 
producedBy="test">
-       <dataflow id="ec0991ba-275c-49ed-b1d6-38534180fb7c" role="top">
-               <name>simple_workflow_with_input</name>
-               <inputPorts>
-                       <port>
-                               <name>input</name>
-                               <depth>0</depth>
-                               <granularDepth>0</granularDepth>
-                       </port>
-               </inputPorts>
-               <outputPorts>
-                       <port>
-                               <name>output</name>
-                       </port>
-               </outputPorts>
-               <processors>
-                       <processor>
-                               <name>Concat_XXX</name>
-                               <inputPorts>
-                                       <port>
-                                               <name>input</name>
-                                               <depth>0</depth>
-                                       </port>
-                               </inputPorts>
-                               <outputPorts>
-                                       <port>
-                                               <name>output</name>
-                                               <depth>0</depth>
-                                               <granularDepth>0</granularDepth>
-                                       </port>
-                               </outputPorts>
-                               <annotations />
-                               <activities>
-                                       <activity>
-                                               <class>
-                                                       
net.sf.taverna.t2.activities.beanshell.BeanshellActivity
-                                               </class>
-                                               <inputMap>
-                                                       <map from="input" 
to="input" />
-                                               </inputMap>
-                                               <outputMap>
-                                                       <map from="output" 
to="output" />
-                                               </outputMap>
-                                               <configBean encoding="xstream">
-                                                       
<net.sf.taverna.t2.activities.beanshell.BeanshellActivityConfigurationBean
-                                                               xmlns="">
-                                                               <script>String 
output = input + "XXX";</script>
-                                                               <dependencies />
-                                                               <inputs>
-                                                                       
<net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-                                                                               
<handledReferenceSchemes />
-                                                                               
<translatedElementType>java.lang.String</translatedElementType>
-                                                                               
<allowsLiteralValues>true</allowsLiteralValues>
-                                                                               
<name>input</name>
-                                                                               
<depth>0</depth>
-                                                                               
<mimeTypes>
-                                                                               
        <string>'text/plain'</string>
-                                                                               
</mimeTypes>
-                                                                       
</net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-                                                               </inputs>
-                                                               <outputs>
-                                                                       
<net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-                                                                               
<granularDepth>0</granularDepth>
-                                                                               
<name>output</name>
-                                                                               
<depth>0</depth>
-                                                                               
<mimeTypes>
-                                                                               
        <string>'text/plain'</string>
-                                                                               
</mimeTypes>
-                                                                       
</net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-                                                               </outputs>
-                                                       
</net.sf.taverna.t2.activities.beanshell.BeanshellActivityConfigurationBean>
-                                               </configBean>
-                                       </activity>
-                               </activities>
-                               <dispatchStack>
-                                       <dispatchLayer>
-                                               <class>
-                                                       
net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize
-                                               </class>
-                                               <configBean encoding="xstream">
-                                                       
<net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig
-                                                               xmlns="">
-                                                               
<maxJobs>1</maxJobs>
-                                                       
</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig>
-                                               </configBean>
-                                       </dispatchLayer>
-                                       <dispatchLayer>
-                                               <class>
-                                                       
net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce
-                                               </class>
-                                               <configBean encoding="xstream">
-                                                       <null xmlns="" />
-                                               </configBean>
-                                       </dispatchLayer>
-                                       <dispatchLayer>
-                                               <class>
-                                                       
net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover
-                                               </class>
-                                               <configBean encoding="xstream">
-                                                       <null xmlns="" />
-                                               </configBean>
-                                       </dispatchLayer>
-                                       <dispatchLayer>
-                                               <class>
-                                                       
net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry
-                                               </class>
-                                               <configBean encoding="xstream">
-                                                       
<net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig
-                                                               xmlns="">
-                                                               
<backoffFactor>1.0</backoffFactor>
-                                                               
<initialDelay>0</initialDelay>
-                                                               
<maxDelay>0</maxDelay>
-                                                               
<maxRetries>0</maxRetries>
-                                                       
</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig>
-                                               </configBean>
-                                       </dispatchLayer>
-                                       <dispatchLayer>
-                                               <class>
-                                                       
net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke
-                                               </class>
-                                               <configBean encoding="xstream">
-                                                       <null xmlns="" />
-                                               </configBean>
-                                       </dispatchLayer>
-                               </dispatchStack>
-                               <iterationStrategyStack>
-                                       <iteration>
-                                               <strategy>
-                                                       <port name="input" 
depth="0" />
-                                               </strategy>
-                                       </iteration>
-                               </iterationStrategyStack>
-                       </processor>
-               </processors>
-               <conditions />
-               <datalinks>
-                       <datalink>
-                               <sink type="processor">
-                                       <processor>Concat_XXX</processor>
-                                       <port>input</port>
-                               </sink>
-                               <source type="dataflow">
-                                       <port>input</port>
-                               </source>
-                       </datalink>
-                       <datalink>
-                               <sink type="dataflow">
-                                       <port>output</port>
-                               </sink>
-                               <source type="processor">
-                                       <processor>Concat_XXX</processor>
-                                       <port>output</port>
-                               </source>
-                       </datalink>
-               </datalinks>
-       </dataflow>
-</workflow>

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-graph-model/pom.xml
----------------------------------------------------------------------
diff --git a/taverna-workbench-graph-model/pom.xml 
b/taverna-workbench-graph-model/pom.xml
deleted file mode 100644
index 8e255ba..0000000
--- a/taverna-workbench-graph-model/pom.xml
+++ /dev/null
@@ -1,129 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
-       xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/maven-v4_0_0.xsd";>
-       <modelVersion>4.0.0</modelVersion>
-       <parent>
-               <groupId>net.sf.taverna.t2</groupId>
-               <artifactId>ui-components</artifactId>
-               <version>2.0-SNAPSHOT</version>
-       </parent>
-       <groupId>net.sf.taverna.t2.ui-components</groupId>
-       <artifactId>graph-model</artifactId>
-       <packaging>bundle</packaging>
-       <name>Graph Model</name>
-       <build>
-               <plugins>
-                       <plugin>
-                               <groupId>org.codehaus.mojo</groupId>
-                               <artifactId>javacc-maven-plugin</artifactId>
-                               <version>2.6</version>
-                               <executions>
-                                       <execution>
-                                               <id>javacc</id>
-                                               <goals>
-                                                       
<goal>jjtree-javacc</goal>
-                                               </goals>
-                                       </execution>
-                               </executions>
-                       </plugin>
-               </plugins>
-               <pluginManagement>
-                       <plugins>
-                               <!--This plugin's configuration is used to 
store Eclipse m2e settings only. It has no influence on the Maven build 
itself.-->
-                               <plugin>
-                                       <groupId>org.eclipse.m2e</groupId>
-                                       
<artifactId>lifecycle-mapping</artifactId>
-                                       <version>1.0.0</version>
-                                       <configuration>
-                                               <lifecycleMappingMetadata>
-                                                       <pluginExecutions>
-                                                               
<pluginExecution>
-                                                                       
<pluginExecutionFilter>
-                                                                               
<groupId>
-                                                                               
        org.codehaus.mojo
-                                                                               
</groupId>
-                                                                               
<artifactId>
-                                                                               
        javacc-maven-plugin
-                                                                               
</artifactId>
-                                                                               
<versionRange>
-                                                                               
        [2.6,)
-                                                                               
</versionRange>
-                                                                               
<goals>
-                                                                               
        <goal>jjtree-javacc</goal>
-                                                                               
</goals>
-                                                                       
</pluginExecutionFilter>
-                                                                       <action>
-                                                                               
<execute>
-                                                                               
        <runOnIncremental>false</runOnIncremental>                              
                                                                                
                                                
-                                                                               
</execute>
-                                                                       
</action>
-                                                               
</pluginExecution>
-                                                       </pluginExecutions>
-                                               </lifecycleMappingMetadata>
-                                       </configuration>
-                               </plugin>
-                       </plugins>
-               </pluginManagement>
-       </build>
-       <dependencies>
-               <dependency>
-                       <groupId>net.sf.taverna.t2.ui-api</groupId>
-                       <artifactId>configuration-api</artifactId>
-                       <version>${t2.ui.api.version}</version>
-               </dependency>
-               <dependency>
-                       <groupId>net.sf.taverna.t2.ui-api</groupId>
-                       <artifactId>edits-api</artifactId>
-                       <version>${t2.ui.api.version}</version>
-               </dependency>
-               <dependency>
-                       <groupId>net.sf.taverna.t2.ui-api</groupId>
-                       <artifactId>menu-api</artifactId>
-                       <version>${t2.ui.api.version}</version>
-               </dependency>
-               <dependency>
-                       <groupId>net.sf.taverna.t2.ui-api</groupId>
-                       <artifactId>selection-api</artifactId>
-                       <version>${t2.ui.api.version}</version>
-               </dependency>
-               <dependency>
-                       <groupId>net.sf.taverna.t2.ui-impl</groupId>
-                       <artifactId>configuration-impl</artifactId>
-                       <version>${t2.ui.impl.version}</version>
-               </dependency>
-               <dependency>
-                       <groupId>net.sf.taverna.t2.lang</groupId>
-                       <artifactId>observer</artifactId>
-                       <version>${t2.lang.version}</version>
-               </dependency>
-               <dependency>
-                       <groupId>net.sf.taverna.t2.lang</groupId>
-                       <artifactId>io</artifactId>
-                       <version>${t2.lang.version}</version>
-               </dependency>
-               <dependency>
-                       <groupId>uk.org.taverna.scufl2</groupId>
-                       <artifactId>scufl2-api</artifactId>
-               </dependency>
-
-               <dependency>
-                       <groupId>org.apache.batik</groupId>
-                       <artifactId>batik-osgi</artifactId>
-               </dependency>
-               <dependency>
-                       <groupId>commons-beanutils</groupId>
-                       <artifactId>commons-beanutils</artifactId>
-                       <version>${commons.beanutils.version}</version>
-               </dependency>
-               <dependency>
-                       <groupId>log4j</groupId>
-                       <artifactId>log4j</artifactId>
-               </dependency>
-
-               <dependency>
-                       <groupId>junit</groupId>
-                       <artifactId>junit</artifactId>
-                       <scope>test</scope>
-               </dependency>
-       </dependencies>
-</project>

Reply via email to