Exemple #1
0
  private synchronized ScriptEngineState getEngineByName(String name, boolean reset)
      throws SoarException {
    ScriptEngineState state = engines.get(name);
    if (state != null && reset) {
      state.dispose();
      engines.remove(name);
      state = null;
    }

    if (state == null) {
      final ScriptEngine engine = getEngineManager().getEngineByName(name);
      if (engine == null) {
        throw new SoarException("Unsupported script engine '" + name + "'");
      }

      final ScriptEngineFactory f = engine.getFactory();
      logger.info(
          String.format(
              "Loaded '%s' script engine for %s: %s version %s, %s version %s",
              name,
              context,
              f.getEngineName(),
              f.getEngineVersion(),
              f.getLanguageName(),
              f.getLanguageVersion()));

      engines.put(name, state = new ScriptEngineState(context, name, engine));
    }
    return state;
  }
Exemple #2
0
 private synchronized String disposeEngine(String name) throws SoarException {
   final ScriptEngineState state = engines.remove(name);
   if (state != null) {
     state.dispose();
     return "Disposed '" + name + "'";
   } else {
     return "No engine '" + name + "'";
   }
 }