code: public static AspectranShellService create(AspectranConfig aspectranConfig, Console console) {
          ContextConfig contextConfig = aspectranConfig.touchContextConfig();
          String rootFile = contextConfig.getRootFile();
          if (!StringUtils.hasText(rootFile) && !contextConfig.hasAspectranParameters()) {
              contextConfig.setRootFile(DEFAULT_APP_CONFIG_ROOT_FILE);
          }
  
          AspectranShellService service = new AspectranShellService(console);
          ShellConfig shellConfig = aspectranConfig.getShellConfig();
          if (shellConfig != null) {
              applyShellConfig(service, shellConfig);
          }
          service.prepare(aspectranConfig);
          setServiceStateListener(service);
          return service;
      }
docs: Returns a new instance of {@code AspectranShellService}.
  
  @param aspectranConfig the aspectran configuration
  @param console the {@code Console} instance
  @return the instance of {@code AspectranShellService}