@SuppressWarnings("unchecked") public void deserializeDispatchStack(Processor processor, Element dispatchStack) throws ClassNotFoundException, InstantiationException, IllegalAccessException, EditException { int layers=0; for (Element layer : (List<Element>)dispatchStack.getChildren(DISPATCH_LAYER,T2_WORKFLOW_NAMESPACE)) { DispatchLayer<?> dispatchLayer = DispatchLayerXMLDeserializer.getInstance().deserializeDispatchLayer(layer); if (dispatchLayer instanceof Invoke) { edits.getAddDispatchLayerEdit(processor.getDispatchStack(), new Stop(), layers++).doEdit(); } edits.getAddDispatchLayerEdit(processor.getDispatchStack(), dispatchLayer, layers++).doEdit(); } } }
@SuppressWarnings("unchecked") public void deserializeDispatchStack(Processor processor, Element dispatchStack) throws ClassNotFoundException, InstantiationException, IllegalAccessException, EditException { int layers=0; for (Element layer : (List<Element>)dispatchStack.getChildren(DISPATCH_LAYER,T2_WORKFLOW_NAMESPACE)) { DispatchLayer<?> dispatchLayer = DispatchLayerXMLDeserializer.getInstance().deserializeDispatchLayer(layer); edits.getAddDispatchLayerEdit(processor.getDispatchStack(), dispatchLayer, layers++).doEdit(); } } }
private void addDispatchLayers( org.embl.ebi.escience.scufl.Processor t1Processor, DispatchStack dispatchStack) throws EditException { int maxJobs = t1Processor.getWorkers(); int maxRetries = t1Processor.getRetries(); float backoffFactor = (float) t1Processor.getBackoff(); int initialDelay = t1Processor.getRetryDelay(); int maxDelay = (int) (initialDelay * (Math.pow(backoffFactor, maxRetries))); DispatchLayer<?> parallelize = new Parallelize(maxJobs); DispatchLayer<?> errorBounce = new ErrorBounce(); DispatchLayer<?> failover = new Failover(); DispatchLayer<?> retry = new Retry(maxRetries, initialDelay, maxDelay, backoffFactor); DispatchLayer<?> invoke = new Invoke(); int layer = 0; edits.getAddDispatchLayerEdit(dispatchStack, parallelize, layer++).doEdit(); edits.getAddDispatchLayerEdit(dispatchStack, errorBounce, layer++).doEdit(); edits.getAddDispatchLayerEdit(dispatchStack, failover, layer++).doEdit(); edits.getAddDispatchLayerEdit(dispatchStack, retry, layer++).doEdit(); edits.getAddDispatchLayerEdit(dispatchStack, invoke, layer++).doEdit(); }
private void addDispatchLayers( org.embl.ebi.escience.scufl.Processor t1Processor, DispatchStack dispatchStack) throws EditException { int maxJobs = t1Processor.getWorkers(); int maxRetries = t1Processor.getRetries(); float backoffFactor = (float) t1Processor.getBackoff(); int initialDelay = t1Processor.getRetryDelay(); int maxDelay = (int) (initialDelay * (Math.pow(backoffFactor, maxRetries))); DispatchLayer<?> parallelize = new Parallelize(maxJobs); DispatchLayer<?> errorBounce = new ErrorBounce(); DispatchLayer<?> failover = new Failover(); DispatchLayer<?> retry = new Retry(maxRetries, initialDelay, maxDelay, backoffFactor); DispatchLayer<?> invoke = new Invoke(); int layer = 0; edits.getAddDispatchLayerEdit(dispatchStack, parallelize, layer++) .doEdit(); edits.getAddDispatchLayerEdit(dispatchStack, errorBounce, layer++) .doEdit(); edits.getAddDispatchLayerEdit(dispatchStack, failover, layer++) .doEdit(); edits.getAddDispatchLayerEdit(dispatchStack, retry, layer++).doEdit(); edits.getAddDispatchLayerEdit(dispatchStack, invoke, layer++).doEdit(); }
private void insertLoopLayer(DispatchStack dispatchStack, Loop loopLayer) throws EditException { Edits edits = EditsRegistry.getEdits(); // TODO: Make a real Edit for inserting layer List<DispatchLayer<?>> layers = dispatchStack.getLayers(); int loopLayerPosition = 0; for (int layerPosition = 0; layerPosition < layers.size(); layerPosition++) { DispatchLayer<?> dispatchLayer = layers.get(layerPosition); if (dispatchLayer instanceof Parallelize) { // At least below Parallelize loopLayerPosition = layerPosition + 1; } if (dispatchLayer instanceof ErrorBounce) { // But preferably below ErrorBounce loopLayerPosition = layerPosition + 1; break; } } final EditManager editManager = EditManager.getInstance(); final FileManager fileManager = FileManager.getInstance(); Edit<DispatchStack> edit = edits.getAddDispatchLayerEdit(dispatchStack, loopLayer, loopLayerPosition); editManager.doDataflowEdit(fileManager.getCurrentDataflow(), edit); }
edits.getAddDispatchLayerEdit(dispatchStack, provenance, j - 1).doEdit(); break;
edits.getAddDispatchLayerEdit(dispatchStack, provenance, j).doEdit(); break;