package org.trianacode.shiwaall.workflowCreation; import org.trianacode.annotation.CheckboxParameter; import org.trianacode.annotation.TextFieldParameter; import org.trianacode.annotation.Tool; import org.trianacode.enactment.AddonUtils; import org.trianacode.gui.hci.ApplicationFrame; import org.trianacode.gui.hci.GUIEnv; import org.trianacode.taskgraph.Task; import org.trianacode.taskgraph.TaskException; import org.trianacode.taskgraph.TaskGraph; import org.trianacode.taskgraph.TaskGraphManager; import org.trianacode.taskgraph.annotation.TaskConscious; import java.io.File; import java.util.List; // TODO: Auto-generated Javadoc /** * Created by IntelliJ IDEA. * User: Ian Harvey * Date: 10/05/2012 * Time: 17:40 * To change this template use File | Settings | File Templates. */ @Tool public class CreateBundleSubmitWorkflow implements TaskConscious { /** The address. */ @TextFieldParameter public String address = "http://s-vmc.cs.cf.ac.uk:7025/Broker/broker"; /** The routing key. */ @TextFieldParameter private String routingKey = "*.triana"; /** The task. */ private Task task; /** The local. */ @CheckboxParameter public boolean local = false; /** * Process. * * @param list the list */ @org.trianacode.annotation.Process() public void process(List list) { try { TaskGraph taskGraph = TaskGraphManager.createTaskGraph(); taskGraph.setToolName("submittingWorkflow"); for (Object object : list) { if (object instanceof File) { try { if (!local) { org.trianacode.taskgraph.tool.Tool tool1 = AddonUtils.makeTool("BundleToTrianaCloud", "org.trianacode.shiwaall.bundle", ((File) object).getName(), taskGraph.getProperties()); Task task1 = taskGraph.createTask(tool1); task1.setParameter("bundleFile", ((File) object).getAbsolutePath()); } else { org.trianacode.taskgraph.tool.Tool tool1 = AddonUtils.makeTool("BundleToLocalTriana", "org.trianacode.shiwaall.bundle", ((File) object).getName(), taskGraph.getProperties()); Task task1 = taskGraph.createTask(tool1); String exec = "./triana.sh -n -p unbundle " + ((File) object).getAbsolutePath() + " " + File.createTempFile("output", "tmp").getAbsolutePath(); task1.setParameter("executable", exec); task1.setParameter("runtimeDirectory", "triana-app/dist/"); } } catch (Exception e) { } } } taskGraph = recycleGraph(taskGraph); System.out.println("Taskgraph has " + taskGraph.getTasks(false).length + " tasks."); ApplicationFrame frame = GUIEnv.getApplicationFrame(); frame.addParentTaskGraphPanel(taskGraph); } catch (TaskException e) { e.printStackTrace(); } } /** * Recycle graph. * * @param taskGraph the task graph * @return the task graph */ public TaskGraph recycleGraph(TaskGraph taskGraph) { try { return (TaskGraph) TaskGraphManager.createTask(taskGraph, TaskGraphManager.DEFAULT_FACTORY_TYPE, false); } catch (Exception e) { e.printStackTrace(); return null; } } /* (non-Javadoc) * @see org.trianacode.taskgraph.annotation.TaskConscious#setTask(org.trianacode.taskgraph.Task) */ @Override public void setTask(Task task) { this.task = task; // task.setParameter(StampedeLog.STAMPEDE_TASK_TYPE, StampedeLog.JobType.dax.desc); } }