コード例 #1
0
    @Override
    public void run() {
      try {
        log.debug("run!");

        this.root.setState(SubstepTestState.RUNNING);
        eventsConsumer.onEvent(new StateChangedEvent(this.root));

        RootNode resultNode = getRootNodeFromBytes(jmxClient.runAsBytes());

        // lets wait for any notifications
        try {
          countDownLatch.await();
        } catch (InterruptedException e) {
          if (countDownLatch.getCount() > 0) {
            log.error("premature interupted ex waiting for complete notification");
          }
        }

        if (resultNode.getResult().getResult()
            == com.technophobia.substeps.execution.ExecutionResult.PASSED) {
          this.root.setState(SubstepTestState.PASSED);
        } else if (resultNode.getResult().getResult()
            == com.technophobia.substeps.execution.ExecutionResult.FAILED) {
          this.root.setState(SubstepTestState.FAILED);
        }
        eventsConsumer.onEvent(new StateChangedEvent(this.root));

        log.debug("done run, shutting down!");
      } finally {
        jmxClient.shutdown();
        log.debug("shut down done!");
      }
    }