You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by pa...@apache.org on 2020/04/29 19:51:50 UTC
[sling-org-apache-sling-scripting-sightly] 01/01: SLING-9406: Add
bundled script support to the servlets resolver
This is an automated email from the ASF dual-hosted git repository.
pauls pushed a commit to branch issues/SLING-9406
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-scripting-sightly.git
commit c997fe81a8a5eb7d3b4a6d39259aa459e8f2b41c
Author: Karl Pauls <ka...@gmail.com>
AuthorDate: Wed Apr 29 21:51:30 2020 +0200
SLING-9406: Add bundled script support to the servlets resolver
---
bnd.bnd | 1 -
pom.xml | 11 +++++-
.../sightly/engine/BundledUnitManager.java | 2 +-
.../engine/bundled/BundledUnitManagerImpl.java | 46 +++-------------------
.../engine/extension/use/ScriptUseProvider.java | 3 +-
5 files changed, 17 insertions(+), 46 deletions(-)
diff --git a/bnd.bnd b/bnd.bnd
index 1afbf00..768c55b 100644
--- a/bnd.bnd
+++ b/bnd.bnd
@@ -11,6 +11,5 @@ Import-Package: org.apache.sling.scripting.sightly.compiler.*;resolution:=op
org.apache.sling.scripting.sightly.java.compiler.*;resolution:=optional, \\
org.apache.sling.commons.compiler.*;resolution:=optional, \\
org.apache.sling.commons.classloader.*;resolution:=optional, \\
- org.apache.sling.scripting.bundle.tracker.*;resolution:=optional, \\
org.apache.sling.models.*;resolution:=optional, \\
*
diff --git a/pom.xml b/pom.xml
index 0d8ede1..e0b20e3 100644
--- a/pom.xml
+++ b/pom.xml
@@ -126,6 +126,13 @@
<scope>provided</scope>
</dependency>
+ <dependency>
+ <groupId>org.apache.sling</groupId>
+ <artifactId>org.apache.sling.servlets.resolver</artifactId>
+ <version>2.6.5-SNAPSHOT</version>
+ <scope>provided</scope>
+ </dependency>
+
<!-- OSGi -->
<dependency>
<groupId>org.osgi</groupId>
@@ -191,7 +198,7 @@
<dependency>
<groupId>org.apache.sling</groupId>
<artifactId>org.apache.sling.scripting.core</artifactId>
- <version>2.0.32</version>
+ <version>2.2.1-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<dependency>
@@ -287,7 +294,7 @@
<dependency>
<groupId>org.apache.sling</groupId>
<artifactId>org.apache.sling.testing.sling-mock.junit4</artifactId>
- <version>2.3.4</version>
+ <version>2.5.1-SNAPSHOT</version>
<scope>test</scope>
</dependency>
</dependencies>
diff --git a/src/main/java/org/apache/sling/scripting/sightly/engine/BundledUnitManager.java b/src/main/java/org/apache/sling/scripting/sightly/engine/BundledUnitManager.java
index 3a04d88..ad3d18d 100644
--- a/src/main/java/org/apache/sling/scripting/sightly/engine/BundledUnitManager.java
+++ b/src/main/java/org/apache/sling/scripting/sightly/engine/BundledUnitManager.java
@@ -22,7 +22,7 @@ import java.net.URL;
import javax.script.Bindings;
-import org.apache.sling.scripting.bundle.tracker.BundledRenderUnit;
+import org.apache.sling.scripting.core.BundledRenderUnit;
import org.apache.sling.scripting.sightly.render.RenderUnit;
import org.jetbrains.annotations.Nullable;
import org.osgi.annotation.versioning.ProviderType;
diff --git a/src/main/java/org/apache/sling/scripting/sightly/impl/engine/bundled/BundledUnitManagerImpl.java b/src/main/java/org/apache/sling/scripting/sightly/impl/engine/bundled/BundledUnitManagerImpl.java
index acfba82..7f8dddd 100644
--- a/src/main/java/org/apache/sling/scripting/sightly/impl/engine/bundled/BundledUnitManagerImpl.java
+++ b/src/main/java/org/apache/sling/scripting/sightly/impl/engine/bundled/BundledUnitManagerImpl.java
@@ -39,9 +39,9 @@ import org.apache.sling.commons.compiler.source.JavaEscapeHelper;
import org.apache.sling.scripting.api.CachedScript;
import org.apache.sling.scripting.api.ScriptCache;
import org.apache.sling.scripting.api.resource.ScriptingResourceResolverProvider;
-import org.apache.sling.scripting.bundle.tracker.BundledRenderUnit;
-import org.apache.sling.scripting.bundle.tracker.ResourceType;
-import org.apache.sling.scripting.bundle.tracker.TypeProvider;
+import org.apache.sling.scripting.core.BundledRenderUnit;
+import org.apache.sling.servlets.resolver.bundle.tracker.ResourceType;
+import org.apache.sling.servlets.resolver.bundle.tracker.TypeProvider;
import org.apache.sling.scripting.core.ScriptNameAwareReader;
import org.apache.sling.scripting.sightly.engine.BundledUnitManager;
import org.apache.sling.scripting.sightly.impl.engine.SightlyCompiledScript;
@@ -50,34 +50,22 @@ import org.apache.sling.scripting.sightly.impl.utils.BindingsUtils;
import org.apache.sling.scripting.sightly.render.RenderUnit;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.ServiceRegistration;
import org.osgi.framework.wiring.BundleWiring;
-import org.osgi.service.component.annotations.Activate;
import org.osgi.service.component.annotations.Component;
-import org.osgi.service.component.annotations.Deactivate;
import org.osgi.service.component.annotations.Reference;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
- * The {@code BundledUnitManager} is an optional service, which is made available only if the {@link
- * org.apache.sling.scripting.bundle.tracker} APIs are available. This service allows various components to work with {@link
+ * This service allows various components to work with {@link
* BundledRenderUnit} instance and perform dependency resolution based on their availability in
* the {@link Bindings} maps passed to the HTL Script Engine.
*/
-@Component(
- service = {}
- /*
- * this component will register itself as a service only if the org.apache.sling.scripting.bundle.tracker API is present
- */
- )
+@Component
public class BundledUnitManagerImpl implements BundledUnitManager {
private static final Logger LOGGER = LoggerFactory.getLogger(BundledUnitManagerImpl.class);
- private final ServiceRegistration<?> serviceRegistration;
-
@Reference
private ScriptEngineManager scriptEngineManager;
@@ -87,18 +75,6 @@ public class BundledUnitManagerImpl implements BundledUnitManager {
@Reference
private ScriptingResourceResolverProvider scriptingResourceResolverProvider;
- @Activate
- public BundledUnitManagerImpl(BundleContext bundleContext) {
- serviceRegistration = register(bundleContext);
- }
-
- @Deactivate
- public void deactivate() {
- if (serviceRegistration != null) {
- serviceRegistration.unregister();
- }
- }
-
/**
* Given a {@link Bindings} map, this method will check if the {@code bindings} contain a value for the {@link
@@ -275,18 +251,6 @@ public class BundledUnitManagerImpl implements BundledUnitManager {
return null;
}
- private ServiceRegistration<?> register(BundleContext bundleContext) {
- try {
- BundledUnitManager.class.getClassLoader().loadClass("org.apache.sling.scripting.bundle.tracker.BundledRenderUnit");
- return bundleContext.registerService(new String[] {BundledUnitManager.class.getName(),
- BundledUnitManagerImpl.class.getName()}, this,
- null);
- } catch (ClassNotFoundException e) {
- LOGGER.info("No support for bundled RenderUnits.");
- }
- return null;
- }
-
@Nullable
private BundledRenderUnit getBundledRenderUnit(Bindings bindings) {
Object bru = bindings.get(BundledRenderUnit.VARIABLE);
diff --git a/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/use/ScriptUseProvider.java b/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/use/ScriptUseProvider.java
index c525f6b..1855f5d 100644
--- a/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/use/ScriptUseProvider.java
+++ b/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/use/ScriptUseProvider.java
@@ -42,6 +42,7 @@ import org.apache.sling.api.scripting.SlingScript;
import org.apache.sling.scripting.api.CachedScript;
import org.apache.sling.scripting.api.ScriptCache;
import org.apache.sling.scripting.api.resource.ScriptingResourceResolverProvider;
+import org.apache.sling.scripting.core.BundledRenderUnit;
import org.apache.sling.scripting.core.ScriptNameAwareReader;
import org.apache.sling.scripting.sightly.impl.engine.SightlyScriptEngineFactory;
import org.apache.sling.scripting.sightly.impl.engine.bundled.BundledUnitManagerImpl;
@@ -112,7 +113,7 @@ public class ScriptUseProvider implements UseProvider {
URL script = bundledUnitManager.getScript(bindings, scriptName);
if (script != null) {
String scriptUrlAsString = script.toExternalForm();
- bindings.remove("org.apache.sling.scripting.bundle.tracker.BundledRenderUnit");
+ bindings.remove(BundledRenderUnit.VARIABLE);
bindings.put(ScriptEngine.FILENAME, scriptUrlAsString);
try {
ScriptEngine scriptEngine = scriptEngineManager.getEngineByExtension(extension);