private String datalink(Port port) { StringBuilder s = new StringBuilder(); s.append("'"); if (port instanceof ProcessorPort) { ProcessorPort processorPort = (ProcessorPort) port; s.append(escapeName(processorPort.getParent().getName())); s.append(":"); } s.append(escapeName(port.getName())); s.append("'"); return s.toString(); }
private int getLongestName(WorkflowReport workflowReport, int level) { int result = 0; result = Math.max(result, getSubject().getName().length() + level); for (ProcessorReport processorReport : workflowReport.getProcessorReports()) { result = Math.max(result, processorReport.getSubject().getName().length()); for (ActivityReport activityReport : processorReport.getActivityReports()) { WorkflowReport nestedWorkflowReport = activityReport.getNestedWorkflowReport(); if (nestedWorkflowReport != null) result = Math.max(result, getLongestName(nestedWorkflowReport, level + 1)); } } return result; }
private void addProcessor(StringBuilder sb, int max, int level, ProcessorReport processorReport, DateFormat dateFormat) { String processorName = processorReport.getSubject().getName(); spaces(sb, level); sb.append(processorName); spaces(sb, max - processorName.length() - level + 1); State processorState = processorReport.getState(); sb.append(processorState); spaces(sb, 10 - processorState.name().length()); String jobsQueued = String.valueOf(processorReport.getJobsQueued()); sb.append(jobsQueued); spaces(sb, 10 - jobsQueued.length()); String jobsStarted = String.valueOf(processorReport.getJobsStarted()); sb.append(jobsStarted); spaces(sb, 10 - jobsStarted.length()); String jobsCompleted = String.valueOf(processorReport.getJobsCompleted()); sb.append(jobsCompleted); spaces(sb, 10 - jobsCompleted.length()); String jobsCompletedWithErrors = String.valueOf(processorReport .getJobsCompletedWithErrors()); sb.append(jobsCompletedWithErrors); spaces(sb, 10 - jobsCompletedWithErrors.length()); addDates(sb, processorReport.getStartedDate(), processorReport.getCompletedDate(), dateFormat); for (ActivityReport activityReport : processorReport.getActivityReports()) { WorkflowReport nestedWorkflowReport = activityReport.getNestedWorkflowReport(); if (nestedWorkflowReport != null) for (ProcessorReport nestedProcessorReport : nestedWorkflowReport.getProcessorReports()) addProcessor(sb, max, level + 1, nestedProcessorReport, dateFormat); } }
public Activity createActivityFromProcessor(Processor processor, Profile profile) { Activity activity = new Activity(); activity.setName(processor.getName()); activity.setParent(profile); createActivityPortsFromProcessor(activity, processor); bindActivityToProcessorByMatchingPorts(activity, processor); return activity; }
public Configuration createConfigurationFor(Processor processor, Profile profile) { Configuration config = new Configuration(processor.getName() + "-proc"); profile.getConfigurations().addWithUniqueName(config); config.setParent(profile); config.setConfigures(processor); config.setType(Processor.CONFIG_TYPE); return config; }
protected void parseActivityBinding(Activity origActivity, int activityPosition) throws ReaderException, JAXBException { ProcessorBinding processorBinding = new ProcessorBinding(); processorBinding.setName(parserState.get().getCurrentProcessor() .getName()); parserState.get().getCurrentProfile().getProcessorBindings() .addWithUniqueName(processorBinding); processorBinding.setBoundProcessor(parserState.get() .getCurrentProcessor()); parserState.get().setCurrentProcessorBinding(processorBinding); org.apache.taverna.scufl2.api.activity.Activity newActivity = parseActivityAndAddToProfile(origActivity); parserState.get().setCurrentActivity(newActivity); parserState.get().getCurrentProfile().getActivities().add(newActivity); processorBinding.setBoundActivity(newActivity); processorBinding.setActivityPosition(activityPosition); parserState.get().setCurrentConfigurable(newActivity); try { parseConfigurationAndAddToProfile(origActivity.getConfigBean()); } catch (JAXBException e) { if (isStrict()) throw e; logger.log(WARNING, "Can't configure activity" + newActivity, e); } parseActivityInputMap(origActivity.getInputMap()); parseActivityOutputMap(origActivity.getOutputMap()); parserState.get().setCurrentConfigurable(null); parserState.get().setCurrentActivity(null); parserState.get().setCurrentProcessorBinding(null); }
@Test public void cloneProcessor() throws Exception { Workflow wf = originalWfBundle.getMainWorkflow(); Processor original = wf.getProcessors().getByName("Hello"); Processor clone = (Processor) original.clone(); assertEquals(clone.getName(), original.getName()); assertNotNull(original.getParent()); assertNull(clone.getParent()); wf.getProcessors().addWithUniqueName(clone); assertTrue(!clone.getName().equals(original.getName())); // Now it is safe to set the parent without loosing original clone.setParent(wf); assertSame(original, wf.getProcessors().getByName("Hello")); assertSame(clone, wf.getProcessors().getByName(clone.getName())); }
@Test public void readControlLinks() throws Exception { URL wfResource = getClass().getResource(SLEEPERS_T2FLOW); assertNotNull("Could not find workflow " + SLEEPERS_T2FLOW, wfResource); T2FlowParser parser = new T2FlowParser(); parser.setStrict(true); WorkflowBundle bundle = parser.parseT2Flow(wfResource.openStream()); Workflow mainWorkflow = bundle.getMainWorkflow(); NamedSet<Processor> processors = mainWorkflow.getProcessors(); assertEquals(4, mainWorkflow.getControlLinks().size()); List<BlockingControlLink> blocking2 = scufl2Tools.controlLinksBlocking(processors.getByName("second_sleeper")); assertEquals(1, blocking2.size()); assertEquals("first_sleeper", blocking2.get(0).getUntilFinished().getName()); List<BlockingControlLink> waiting2 = scufl2Tools.controlLinksWaitingFor(processors.getByName("second_sleeper")); assertEquals(1, waiting2.size()); assertEquals("third_sleeper", waiting2.get(0).getBlock().getName()); List<BlockingControlLink> blocking3 = scufl2Tools.controlLinksBlocking(processors.getByName("third_sleeper")); assertEquals(2, blocking3.size()); assertEquals("second_sleeper", blocking3.get(0).getUntilFinished().getName()); assertEquals("second_sleeper_2", blocking3.get(1).getUntilFinished().getName()); }
String name = parserState.getCurrentProcessor().getName() + "-loop"; newActivity.setName(name); parserState.getCurrentProfile().getActivities()
proc = objectFactory.createProcessor(); wfProc.setProcessor(proc); proc.setName(processor.getName()); URI procUri = uriTools.relativeUriForBean(processor, wf); proc.setAbout(procUri.toASCIIString());
append("Processor"); String name = " '" + escapeName(pb.getBoundProcessor().getParent().getName()); name = name + ":" + escapeName(pb.getBoundProcessor().getName()) + "'"; append(name);
processorReport.setResumedDate(date(2013,2,6,0,0)); Invocation pInvocation = new Invocation("proc-" + p.getName() + "0", wfInvocation, processorReport); if (p.getName().equals("hello")) { pInvocation.getOutputs().put("value", helloValue); DataBundles.setStringValue(helloValue, "Hello, "); } else if (p.getName().equals("Concatenate_two_strings")) { pInvocation.getInputs().put("string1", helloValue); pInvocation.getInputs().put("string2", name); activityReport.setStartedDate(date(2013,2,20,11,00)); activityReport.setCancelledDate(date(2013,2,21,11,30)); Invocation aInvocation = new Invocation("act-" + p.getName() + "0", pInvocation, activityReport);
for (ProcessorReport procRepo : wfReport.getProcessorReports()) { Processor processor = procRepo.getSubject(); assertTrue(wfBundle.getMainWorkflow().getProcessors().containsName(processor.getName())); assertEquals(1, procRepo.getJobsQueued()); assertEquals(2, procRepo.getJobsCompletedWithErrors()); assertEquals(wfInvov, pInvoc.getParent()); assertEquals("wf0", pInvoc.getParentId()); if (processor.getName().equals("hello")) { assertEquals("proc-hello0", pInvoc.getName()); assertEquals("wf0/proc-hello0", pInvoc.getId()); assertEquals(1, pInvoc.getOutputs().size()); assertEquals("Hello, ", DataBundles.getStringValue(pInvoc.getOutputs().get("value"))); } else if (processor.getName().equals("Concatenate_two_strings")) { assertEquals("proc-Concatenate_two_strings0", pInvoc.getName()); assertEquals("wf0/proc-Concatenate_two_strings0", pInvoc.getId()); assertEquals("Hello, John Doe", DataBundles.getStringValue(pInvoc.getOutputs().get("output"))); } else { fail("Unknown processor: " + processor.getName());