class ScriptEngineContainer {

  public ScriptEngine getScriptEngine(ScriptLocation script)
    throws EngineException {

    for (ScriptEngineService service :
         m_container.getComponents(ScriptEngineService.class)) {

      final ScriptEngine engine = service.createScriptEngine(script);

      if (engine != null) {
        return engine;
      }
    }

    throw new EngineException("No suitable script engine installed for '" +
                              script + "'");
  }

  public  ScriptEngineContainer(GrinderProperties properties,
                               Logger logger,
                               DCRContext dcrContext,
                               ScriptLocation scriptLocation);

}