InterpreterSetting { List<Interpreter> createInterpreters(String user, String interpreterGroupId, String sessionId) { List<Interpreter> interpreters = new ArrayList<>(); List<InterpreterInfo> interpreterInfos = getInterpreterInfos(); Properties intpProperties = getJavaProperties(); for (InterpreterInfo info : interpreterInfos) { Interpreter interpreter = new RemoteInterpreter(intpProperties, sessionId, info.getClassName(), user); if (info.isDefaultInterpreter()) { interpreters.add(0, interpreter); } else { interpreters.add(interpreter); } LOGGER.info("Interpreter {} created for user: {}, sessionId: {}", interpreter.getClassName(), user, sessionId); } if (group.equals("livy")) { interpreters.add( new SessionConfInterpreter(intpProperties, sessionId, interpreterGroupId, this)); } else { interpreters.add(new ConfInterpreter(intpProperties, sessionId, interpreterGroupId, this)); } return interpreters; } InterpreterSetting();  InterpreterSetting(InterpreterSetting o); AngularObjectRegistryListener getAngularObjectRegistryListener(); RemoteInterpreterProcessListener getRemoteInterpreterProcessListener(); ApplicationEventListener getAppEventListener(); DependencyResolver getDependencyResolver(); InterpreterSettingManager getInterpreterSettingManager(); InterpreterSetting setAngularObjectRegistryListener(AngularObjectRegistryListener
                                                   angularObjectRegistryListener); InterpreterSetting setAppEventListener(ApplicationEventListener appEventListener); InterpreterSetting setRemoteInterpreterProcessListener(RemoteInterpreterProcessListener
                                                      remoteInterpreterProcessListener); InterpreterSetting setDependencyResolver(DependencyResolver dependencyResolver); InterpreterSetting setInterpreterSettingManager(
      InterpreterSettingManager interpreterSettingManager); InterpreterSetting setRecoveryStorage(RecoveryStorage recoveryStorage); InterpreterSetting setInterpreterEventServer(
      RemoteInterpreterEventServer interpreterEventServer); InterpreterInfo getInterpreterInfo(String name); Map<String, Object> getConfig(String className); RecoveryStorage getRecoveryStorage(); String getId(); void setId(String id); String getName(); String getGroup(); ManagedInterpreterGroup getOrCreateInterpreterGroup(String user, String noteId); ManagedInterpreterGroup getOrCreateInterpreterGroup(ExecutionContext executionContext); ManagedInterpreterGroup getInterpreterGroup(String user, String noteId); ManagedInterpreterGroup getInterpreterGroup(ExecutionContext executionContext); List<ManagedInterpreterGroup> getAllInterpreterGroups(); void closeInterpreters(String user, String noteId); void closeInterpreters(String interpreterGroupId); void closeInterpreters(ExecutionContext executionContext); void close(); void setProperties(Object object); void fillPropertyDescription(Object propertiesInTemplate); void sortPropertiesByTemplate(Object propertiesInTemplate); Object getProperties(); @VisibleForTesting void setProperty(String name, String value); Properties getJavaProperties(); ZeppelinConfiguration getConf(); InterpreterSetting setConf(ZeppelinConfiguration conf); List<Dependency> getDependencies(); void setDependencies(List<Dependency> dependencies); InterpreterOption getOption(); void setOption(InterpreterOption option); String getInterpreterDir(); void setInterpreterDir(String interpreterDir); List<InterpreterInfo> getInterpreterInfos(); void setProperties(Properties p); Status getStatus(); void setStatus(Status status); String getErrorReason(); void setErrorReason(String errorReason); void setInterpreterInfos(List<InterpreterInfo> interpreterInfos); InterpreterRunner getInterpreterRunner(); void setInterpreterRunner(InterpreterRunner interpreterRunner); String getLauncherPlugin(Properties properties); boolean isUserAuthorized(List<String> userAndRoles); Interpreter getDefaultInterpreter(String user, String noteId); Interpreter getDefaultInterpreter(ExecutionContext executionContext); Interpreter getInterpreter(String user, String noteId, String replName); Interpreter getInterpreter(ExecutionContext executionContext, String replName); void setInterpreterGroupProperties(String interpreterGroupId, Properties properties); void convertPermissionsFromUsersToOwners(JsonObject jsonObject); void waitForReady(long timeout); void waitForReady(); InterpreterInfo getDefaultInterpreterInfo(); static String toJson(InterpreterSetting intpSetting); static InterpreterSetting fromJson(String json); static String PARAGRAPH_CONFIG_RUNONSELECTIONCHANGE; static String PARAGRAPH_CONFIG_TITLE; static String PARAGRAPH_CONFIG_CHECK_EMTPY; static final String CLUSTER_INTERPRETER_LAUNCHER_NAME; }
@Test public void testCreateInterpreters() { InterpreterOption interpreterOption = new InterpreterOption(); interpreterOption.setPerUser(InterpreterOption.SHARED); InterpreterInfo interpreterInfo1 = new InterpreterInfo(EchoInterpreter.class.getName(), "echo", true, new HashMap<String, Object>(), new HashMap<String, Object>()); InterpreterInfo interpreterInfo2 = new InterpreterInfo(DoubleEchoInterpreter.class.getName(), "double_echo", false, new HashMap<String, Object>(), new HashMap<String, Object>()); List<InterpreterInfo> interpreterInfos = new ArrayList<>(); interpreterInfos.add(interpreterInfo1); interpreterInfos.add(interpreterInfo2); InterpreterSetting interpreterSetting = new InterpreterSetting.Builder() .setId("id") .setName("test") .setGroup("test") .setInterpreterInfos(interpreterInfos) .setOption(interpreterOption) .create(); assertEquals(EchoInterpreter.class.getName(), interpreterSetting.getDefaultInterpreter("user1", "note1").getClassName()); assertEquals(EchoInterpreter.class.getName(), interpreterSetting.getInterpreter("user1", "note1", "echo").getClassName()); assertEquals(interpreterSetting.getDefaultInterpreter("user1", "note1"), interpreterSetting.getInterpreter("user1", "note1", "echo")); assertEquals(DoubleEchoInterpreter.class.getName(), interpreterSetting.getInterpreter("user1", "note1", "double_echo").getClassName()); assertNull(interpreterSetting.getInterpreter("user1", "note1", "invalid_echo")); }