This is an automated email from the ASF dual-hosted git repository. pauls pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-scripting-sightly.git
The following commit(s) were added to refs/heads/master by this push: new 015b6e7 Make sling models really optional. (#25) 015b6e7 is described below commit 015b6e735c92b0daea3b4c851a8ee62d1b26ee74 Author: Karl Pauls <karlpa...@gmail.com> AuthorDate: Tue Dec 5 11:26:48 2023 +0100 Make sling models really optional. (#25) --- bnd.bnd | 1 - .../impl/engine/extension/use/JavaUseProvider.java | 18 +++++++++--------- 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/bnd.bnd b/bnd.bnd index c4c672d..4ab1356 100644 --- a/bnd.bnd +++ b/bnd.bnd @@ -12,6 +12,5 @@ Import-Package: org.apache.sling.scripting.sightly.compiler.*;resolution:=op org.apache.sling.commons.compiler.*;resolution:=optional, \\ org.apache.sling.commons.classloader.*;resolution:=optional, \\ org.apache.sling.models.*;resolution:=optional, \\ - org.apache.sling.models.*;resolution:=optional, \\ com.ibm.icu.*;resolution:=optional, \\ * diff --git a/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/use/JavaUseProvider.java b/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/use/JavaUseProvider.java index c1f70cd..5ac8979 100644 --- a/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/use/JavaUseProvider.java +++ b/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/use/JavaUseProvider.java @@ -80,8 +80,8 @@ public class JavaUseProvider implements UseProvider { @Reference private BundledUnitManagerImpl bundledUnitManager; - @Reference(cardinality = ReferenceCardinality.OPTIONAL, policyOption = ReferencePolicyOption.GREEDY) - private ModelFactory modelFactory; + @Reference(cardinality = ReferenceCardinality.OPTIONAL, policyOption = ReferencePolicyOption.GREEDY, service = ModelFactory.class) + private Object modelFactory; @Override public ProviderOutcome provide(String identifier, RenderContext renderContext, Bindings arguments) { @@ -169,23 +169,23 @@ public class JavaUseProvider implements UseProvider { SlingHttpServletRequest request = BindingsUtils.getRequest(globalBindings); Resource resource = BindingsUtils.getResource(globalBindings); // Sling Model - if (modelFactory != null && modelFactory.isModelClass(cls)) { + if (modelFactory != null && ((ModelFactory) modelFactory).isModelClass(cls)) { try { // Attempt to instantiate via sling models // first, try to use the provided adaptable - if (adaptable != null && modelFactory.canCreateFromAdaptable(adaptable, cls)) { + if (adaptable != null && ((ModelFactory) modelFactory).canCreateFromAdaptable(adaptable, cls)) { LOG.debug("Trying to instantiate class {} as Sling Model from provided adaptable.", cls); - return ProviderOutcome.notNullOrFailure(modelFactory.createModel(adaptable, cls)); + return ProviderOutcome.notNullOrFailure(((ModelFactory) modelFactory).createModel(adaptable, cls)); } // then, try to use the request - if (request != null && modelFactory.canCreateFromAdaptable(request, cls)) { + if (request != null && ((ModelFactory) modelFactory).canCreateFromAdaptable(request, cls)) { LOG.debug("Trying to instantiate class {} as Sling Model from request.", cls); - return ProviderOutcome.notNullOrFailure(modelFactory.createModel(request, cls)); + return ProviderOutcome.notNullOrFailure(((ModelFactory) modelFactory).createModel(request, cls)); } // finally, try to use the resource - if (resource != null && modelFactory.canCreateFromAdaptable(resource, cls)) { + if (resource != null && ((ModelFactory) modelFactory).canCreateFromAdaptable(resource, cls)) { LOG.debug("Trying to instantiate class {} as Sling Model from resource.", cls); - return ProviderOutcome.notNullOrFailure(modelFactory.createModel(resource, cls)); + return ProviderOutcome.notNullOrFailure(((ModelFactory) modelFactory).createModel(resource, cls)); } return ProviderOutcome.failure( new IllegalStateException("Could not adapt the given Sling Model from neither request nor resource: " + cls));