public void run(Object context) { this.context = context; run(); }
private void onConfigureLocalStorage() { ConfigureLocalStorageModel model = (ConfigureLocalStorageModel) getWindow(); if (model.getProgress() != null) { return; } if (!model.validate()) { return; } model.startProgress(ConstantsManager.getInstance().getConstants().configuringLocalStorageHost()); ReversibleFlow flow = new ReversibleFlow(); flow.getCompleteEvent().addListener( (ev, sender, args) -> { ConfigureLocalStorageModel model1 = (ConfigureLocalStorageModel) ev.getContext(); model1.stopProgress(); cancel(); }, model); String correlationId = TaskListModel.createCorrelationId("Configure Local Storage"); //$NON-NLS-1$ flow.enlist(new AddDataCenterRM(correlationId)); flow.enlist(new AddClusterRM(correlationId)); flow.enlist(new ChangeHostClusterRM(correlationId)); flow.enlist(new AddStorageDomainRM(correlationId)); flow.run(new EnlistmentContext(this)); }
private void prepare() { PreparingEnlistment enlistment = new PreparingEnlistment(context); enlistment.getPreparedEvent().addListener((ev, sender, args) -> preparedHandler()); enlistment.getRollbackEvent().addListener((ev, sender, args) -> rollbackHandler()); enlistment.getDoneEvent().addListener((ev, sender, args) -> doneOnPrepareHandler()); IEnlistmentNotification notification = notifications.get(prepareIndex); notification.prepare(enlistment); }
private void complete() { getCompleteEvent().raise(this, EventArgs.EMPTY); } }
private void doneOnPrepareHandler() { complete(); }
/** * Note, the current implementation is not thread safe (good enough for UI) */ public void run() { // Begin processing notifications. if (notifications.size() > 0) { prepareIndex = 0; rollbackIndex = notifications.size(); prepare(); } }
private void commit() { Enlistment enlistment = new Enlistment(context); enlistment.getDoneEvent().addListener((ev, sender, args) -> doneOnCommitHandler()); IEnlistmentNotification notification = notifications.get(commitIndex); notification.commit(enlistment); }
private void rollback() { Enlistment enlistment = new Enlistment(context); enlistment.getDoneEvent().addListener((ev, sender, args) -> doneOnRollbackHandler()); IEnlistmentNotification notification = notifications.get(rollbackIndex); notification.rollback(enlistment); }