< 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 >