You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ol...@apache.org on 2019/09/15 15:31:31 UTC

[sling-org-apache-sling-scripting-core] branch master updated: SLING-4330 Select script engines in SlingScriptAdapterFactory via mapping

This is an automated email from the ASF dual-hosted git repository.

olli pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-scripting-core.git


The following commit(s) were added to refs/heads/master by this push:
     new 9f6efcc  SLING-4330 Select script engines in SlingScriptAdapterFactory via mapping
9f6efcc is described below

commit 9f6efcc30342736cb02895ad40558920c79ce2c0
Author: Oliver Lietz <ol...@apache.org>
AuthorDate: Sun Sep 15 17:31:23 2019 +0200

    SLING-4330 Select script engines in SlingScriptAdapterFactory via mapping
    
    Do not use picker when no or only one engine is available per script extension
---
 .../sling/scripting/core/impl/SlingScriptAdapterFactory.java     | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/src/main/java/org/apache/sling/scripting/core/impl/SlingScriptAdapterFactory.java b/src/main/java/org/apache/sling/scripting/core/impl/SlingScriptAdapterFactory.java
index 4f64f5d..c7bc766 100644
--- a/src/main/java/org/apache/sling/scripting/core/impl/SlingScriptAdapterFactory.java
+++ b/src/main/java/org/apache/sling/scripting/core/impl/SlingScriptAdapterFactory.java
@@ -94,7 +94,14 @@ public class SlingScriptAdapterFactory implements AdapterFactory, MimeTypeProvid
         final String extension = path.substring(path.lastIndexOf('.') + 1);
 
         final List<ScriptEngine> engines = scriptEngineManager.getEnginesByExtension(extension);
-        final ScriptEngine engine = scriptEnginePicker.pickScriptEngine(engines, resource, extension);
+        final ScriptEngine engine;
+        if (engines.size() == 0) {
+            return null;
+        } else if (engines.size() == 1) {
+            engine = engines.get(0);
+        } else {
+            engine = scriptEnginePicker.pickScriptEngine(engines, resource, extension);
+        }
         if (engine != null) {
             final Collection<BindingsValuesProvider> bindingsValuesProviders = bindingsValuesProviderTracker.getBindingsValuesProviders(engine.getFactory(), BINDINGS_CONTEXT);
             // unchecked cast