< prev index next >

src/java.scripting/share/classes/javax/script/ScriptEngineManager.java

Print this page

        

*** 75,89 **** init(loader); } private void init(final ClassLoader loader) { globalScope = new SimpleBindings(); ! engineSpis = new HashSet<ScriptEngineFactory>(); nameAssociations = new HashMap<String, ScriptEngineFactory>(); extensionAssociations = new HashMap<String, ScriptEngineFactory>(); mimeTypeAssociations = new HashMap<String, ScriptEngineFactory>(); initEngines(loader); } private ServiceLoader<ScriptEngineFactory> getServiceLoader(final ClassLoader loader) { if (loader != null) { return ServiceLoader.load(ScriptEngineFactory.class, loader); --- 75,99 ---- init(loader); } private void init(final ClassLoader loader) { globalScope = new SimpleBindings(); ! engineSpis = new ArrayList<ScriptEngineFactory>(); nameAssociations = new HashMap<String, ScriptEngineFactory>(); extensionAssociations = new HashMap<String, ScriptEngineFactory>(); mimeTypeAssociations = new HashMap<String, ScriptEngineFactory>(); initEngines(loader); + sortEngines(); + } + + private void sortEngines() { + Collections.sort(engineSpis, new Comparator<ScriptEngineFactory>() { + @Override + public int compare(ScriptEngineFactory lhs, ScriptEngineFactory rhs) { + return lhs.getEngineName().compareTo(rhs.getEngineName()); + } + }); } private ServiceLoader<ScriptEngineFactory> getServiceLoader(final ClassLoader loader) { if (loader != null) { return ServiceLoader.load(ScriptEngineFactory.class, loader);
*** 398,408 **** if (extension == null || factory == null) throw new NullPointerException(); extensionAssociations.put(extension, factory); } /** Set of script engine factories discovered. */ ! private HashSet<ScriptEngineFactory> engineSpis; /** Map of engine name to script engine factory. */ private HashMap<String, ScriptEngineFactory> nameAssociations; /** Map of script file extension to script engine factory. */ --- 408,418 ---- if (extension == null || factory == null) throw new NullPointerException(); extensionAssociations.put(extension, factory); } /** Set of script engine factories discovered. */ ! private List<ScriptEngineFactory> engineSpis; /** Map of engine name to script engine factory. */ private HashMap<String, ScriptEngineFactory> nameAssociations; /** Map of script file extension to script engine factory. */
< prev index next >