code: public Context setEngine(Engine engine) {
          checkThread();
          if (engine != null) {
              if (template != null && template.getEngine() != engine) {
                  throw new IllegalStateException("Failed to set the context engine, because is not the same to template engine. template engine: "
                          + template.getEngine().getName() + ", context engine: " + engine.getName()
                          + ", template: " + template.getName() + ", context: " + thread.getName());
              }
              if (parent != null && parent.getEngine() != engine) {
                  parent.setEngine(engine);
              }
              if (this.engine == null) {
                  setCurrent(engine.createContext(parent, current));
              }
          }
          this.engine = engine;
          return this;
      }
docs: Set the current engine.
  
  @param engine - current engine