@Override
  public Map<String, InterpreterClient> restore() throws IOException {
    Map<String, InterpreterClient> clients = new HashMap<>();
    File[] recoveryFiles = recoveryDir.listFiles(file -> file.getName().endsWith(".recovery"));
    for (File recoveryFile : recoveryFiles) {
      String fileName = recoveryFile.getName();
      String interpreterSettingName = fileName.substring(0,
              fileName.length() - ".recovery".length());
      String recoveryData = org.apache.zeppelin.util.FileUtils.readFromFile(recoveryFile);
      clients.putAll(RecoveryUtils.restoreFromRecoveryData(
              recoveryData, interpreterSettingName, interpreterSettingManager, zConf));
    }

    return clients;
  }
@Test
  void testSingleInterpreterProcess() throws InterpreterException, IOException {
    InterpreterSetting interpreterSetting = interpreterSettingManager.getByName("test");
    interpreterSetting.getOption().setPerUser(InterpreterOption.SHARED);

    Interpreter interpreter1 = interpreterSetting.getDefaultInterpreter("user1", note1Id);
    RemoteInterpreter remoteInterpreter1 = (RemoteInterpreter) interpreter1;
    InterpreterContext context1 = InterpreterContext.builder()
            .setNoteId("noteId")
            .setParagraphId("paragraphId")
            .build();
    remoteInterpreter1.interpret("hello", context1);

    assertEquals(1, interpreterSettingManager.getRecoveryStorage().restore().size());

    interpreterSetting.close();
    assertEquals(0, interpreterSettingManager.getRecoveryStorage().restore().size());
  }