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 <[email protected]> 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);
