@Override
 public boolean performFinish() {
   if (registry != null) {
     ReaderComponent component = new ReaderComponent();
     component.setReader(data.getGeneralReaderHolder());
     component.setID(data.getID());
     try {
       registry.registerComponent(component);
     } catch (DublicateObjectException e) {
       MessageDialog.openError(
           workbench.getActiveWorkbenchWindow().getShell(),
           "Error while creating Component!",
           "Couldn't create Component with ID "
               + component.getID()
               + " because there is already a Component with this ID.");
       return false;
     }
   }
   return true;
 }
  public void processFile(String filename, int testUnitID) {

    logger.debug("====++++++ Starting Rifidi Streamer Console ++++++====");

    String hostname = "127.0.0.1";
    int port = 1198;

    // RMI ReaderManagement startup and connection management
    try {
      RifidiManager.startManager(hostname, port);
      // inputObjectRegistry.connectReaderRegsitry(hostname, port);
    } catch (UnknownHostException e) {
      e.printStackTrace();
    } catch (RemoteException e) {
      e.printStackTrace();
    } catch (IOException e) {
      e.printStackTrace();
    }

    InputObjectRegistry inputObjectRegistry = new InputObjectRegistry();

    MetaFile metaFile = null;
    TestUnitSuite testUnitSuite = null;

    try {
      String parentPath = (new File(filename)).getParent();
      metaFile = FileLoadHandler.openMetaFile(filename, parentPath);

      ScenarioSuite scenarioSuite = metaFile.getScenarioSuite();
      BatchSuite batchSuite = metaFile.getBatchSuite();
      ComponentSuite componentSuite = metaFile.getComponentSuite();
      testUnitSuite = metaFile.getTestUnitSuite();

      if (scenarioSuite != null) inputObjectRegistry.registerScenarioSuite(scenarioSuite);
      if (batchSuite != null) inputObjectRegistry.registerBatchSuite(batchSuite);
      if (componentSuite != null) inputObjectRegistry.registerComponentSuite(componentSuite);
      if (testUnitSuite != null) inputObjectRegistry.registerTestUnitSuite(testUnitSuite);

      logger.debug("LoadTestSuite loaded....");

      for (TestUnit testUnit : testUnitSuite.getTestUnits()) {
        if (testUnit.getID() == testUnitID) {
          testUnitExecuter = new TestUnitExecuter(testUnit, this, inputObjectRegistry);
          testUnitExecuter.createScenarios();
          try {
            testUnitExecuter.start();
          } catch (NotInitializedException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
          }
        }
      }
      try {
        synchronized (this) {
          logger.debug("Wait for everything to finish");
          this.wait();
          logger.debug("Thread was notified!");
        }
      } catch (InterruptedException e) {
        e.printStackTrace();
      }
      logger.debug("End of Application");
      System.exit(0);

    } catch (JAXBException e) {
      logger.error(filename + " is not a valid XML");
    } catch (DublicateObjectException e) {
      e.printStackTrace();
    }
  }