You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ra...@apache.org on 2016/11/28 18:11:54 UTC
svn commit: r1771784 - in /sling/trunk/bundles/scripting/sightly: engine/
engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/
engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/use/
engine/src/main/java/org/a...
Author: radu
Date: Mon Nov 28 18:11:54 2016
New Revision: 1771784
URL: http://svn.apache.org/viewvc?rev=1771784&view=rev
Log:
SLING-6166 - Update the HTL bundles to use the SLING-6165 request-scoped resource resolver
Added:
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/utils/ScriptUtils.java
Modified:
sling/trunk/bundles/scripting/sightly/engine/pom.xml
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/SightlyJavaCompilerService.java
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/use/RenderUnitProvider.java
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/use/ScriptUseProvider.java
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/runtime/RenderContextImpl.java
sling/trunk/bundles/scripting/sightly/engine/src/test/java/org/apache/sling/scripting/sightly/impl/compiler/SightlyJavaCompilerServiceTest.java
sling/trunk/bundles/scripting/sightly/js-use-provider/pom.xml
sling/trunk/bundles/scripting/sightly/js-use-provider/src/main/java/org/apache/sling/scripting/sightly/js/impl/JsUseProvider.java
sling/trunk/bundles/scripting/sightly/testing/src/main/provisioning/model.txt
sling/trunk/bundles/scripting/sightly/testing/src/test/java/org/apache/sling/scripting/sightly/it/performance/PerformanceIT.java
Modified: sling/trunk/bundles/scripting/sightly/engine/pom.xml
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/scripting/sightly/engine/pom.xml?rev=1771784&r1=1771783&r2=1771784&view=diff
==============================================================================
--- sling/trunk/bundles/scripting/sightly/engine/pom.xml (original)
+++ sling/trunk/bundles/scripting/sightly/engine/pom.xml Mon Nov 28 18:11:54 2016
@@ -202,7 +202,7 @@
<dependency>
<groupId>org.apache.sling</groupId>
<artifactId>org.apache.sling.scripting.api</artifactId>
- <version>2.1.8</version>
+ <version>2.1.11-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<dependency>
Modified: sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/SightlyJavaCompilerService.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/SightlyJavaCompilerService.java?rev=1771784&r1=1771783&r2=1771784&view=diff
==============================================================================
--- sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/SightlyJavaCompilerService.java (original)
+++ sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/SightlyJavaCompilerService.java Mon Nov 28 18:11:54 2016
@@ -36,9 +36,10 @@ import org.apache.sling.commons.compiler
import org.apache.sling.commons.compiler.CompilerMessage;
import org.apache.sling.commons.compiler.JavaCompiler;
import org.apache.sling.commons.compiler.Options;
+import org.apache.sling.scripting.api.resource.ScriptingResourceResolverProvider;
import org.apache.sling.scripting.sightly.SightlyException;
import org.apache.sling.scripting.sightly.impl.engine.compiled.SourceIdentifier;
-import org.apache.sling.scripting.sightly.impl.engine.runtime.RenderContextImpl;
+import org.apache.sling.scripting.sightly.impl.utils.ScriptUtils;
import org.apache.sling.scripting.sightly.render.RenderContext;
import org.osgi.service.component.annotations.Activate;
import org.osgi.service.component.annotations.Component;
@@ -73,6 +74,9 @@ public class SightlyJavaCompilerService
@Reference
private SightlyEngineConfiguration sightlyEngineConfiguration = null;
+ @Reference
+ private ScriptingResourceResolverProvider scriptingResourceResolverProvider = null;
+
private Options options;
/**
@@ -85,14 +89,13 @@ public class SightlyJavaCompilerService
* @return object instance of the requested class
*/
public Object getInstance(RenderContext renderContext, String className) {
- RenderContextImpl rci = (RenderContextImpl) renderContext;
LOG.debug("Attempting to load class {}.", className);
if (className.contains(".")) {
if (resourceBackedPojoChangeMonitor.getLastModifiedDateForJavaUseObject(className) > 0) {
// it looks like the POJO comes from the repo and it was changed since it was last loaded
LOG.debug("Class {} identifies a POJO from the repository that was changed since the last time it was instantiated.",
className);
- Object result = compileRepositoryJavaClass(rci.getScriptResourceResolver(), className);
+ Object result = compileRepositoryJavaClass(scriptingResourceResolverProvider.getRequestScopedResourceResolver(), className);
resourceBackedPojoChangeMonitor.clearJavaUseObject(className);
return result;
}
@@ -103,10 +106,14 @@ public class SightlyJavaCompilerService
} catch (Exception e) {
// the object definitely doesn't come from a bundle so we should attempt to compile it from the repo
LOG.debug("Class {} identifies a POJO from the repository and it needs to be compiled.", className);
- return compileRepositoryJavaClass(rci.getScriptResourceResolver(), className);
+ return compileRepositoryJavaClass(scriptingResourceResolverProvider.getRequestScopedResourceResolver(), className);
}
} else {
- Resource pojoResource = rci.resolveScript(className + ".java");
+ Resource pojoResource = ScriptUtils.resolveScript(
+ scriptingResourceResolverProvider.getRequestScopedResourceResolver(),
+ renderContext,
+ className + ".java"
+ );
if (pojoResource != null) {
SourceIdentifier sourceIdentifier = new SourceIdentifier(sightlyEngineConfiguration, pojoResource.getPath());
String fqcn = sourceIdentifier.getFullyQualifiedClassName();
Modified: sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/use/RenderUnitProvider.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/use/RenderUnitProvider.java?rev=1771784&r1=1771783&r2=1771784&view=diff
==============================================================================
--- sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/use/RenderUnitProvider.java (original)
+++ sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/use/RenderUnitProvider.java Mon Nov 28 18:11:54 2016
@@ -31,13 +31,14 @@ import org.apache.sling.api.resource.Res
import org.apache.sling.api.scripting.SlingScriptHelper;
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.sightly.ResourceResolution;
import org.apache.sling.scripting.sightly.SightlyException;
import org.apache.sling.scripting.sightly.impl.engine.SightlyCompiledScript;
import org.apache.sling.scripting.sightly.impl.engine.SightlyScriptEngine;
import org.apache.sling.scripting.sightly.impl.engine.SightlyScriptEngineFactory;
-import org.apache.sling.scripting.sightly.impl.engine.runtime.RenderContextImpl;
import org.apache.sling.scripting.sightly.impl.utils.BindingsUtils;
+import org.apache.sling.scripting.sightly.impl.utils.ScriptUtils;
import org.apache.sling.scripting.sightly.java.compiler.RenderUnit;
import org.apache.sling.scripting.sightly.render.RenderContext;
import org.apache.sling.scripting.sightly.use.ProviderOutcome;
@@ -84,14 +85,17 @@ public class RenderUnitProvider implemen
@Reference
private ScriptEngineManager scriptEngineManager;
+ @Reference
+ private ScriptingResourceResolverProvider scriptingResourceResolverProvider;
+
@Override
public ProviderOutcome provide(String identifier, RenderContext renderContext, Bindings arguments) {
if (identifier.endsWith("." + SightlyScriptEngineFactory.EXTENSION)) {
- RenderContextImpl rci = (RenderContextImpl) renderContext;
Bindings globalBindings = renderContext.getBindings();
SlingScriptHelper sling = BindingsUtils.getHelper(globalBindings);
SlingHttpServletRequest request = BindingsUtils.getRequest(globalBindings);
- final Resource renderUnitResource = rci.resolveScript(identifier);
+ final Resource renderUnitResource = ScriptUtils.resolveScript(scriptingResourceResolverProvider
+ .getRequestScopedResourceResolver(), renderContext, identifier);
if (renderUnitResource == null) {
Resource caller = ResourceResolution.getResourceForRequest(request.getResourceResolver(), request);
if (caller != null) {
Modified: sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/use/ScriptUseProvider.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/use/ScriptUseProvider.java?rev=1771784&r1=1771783&r2=1771784&view=diff
==============================================================================
--- sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/use/ScriptUseProvider.java (original)
+++ sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/use/ScriptUseProvider.java Mon Nov 28 18:11:54 2016
@@ -25,14 +25,16 @@ import org.apache.commons.lang.StringUti
import org.apache.sling.api.resource.Resource;
import org.apache.sling.api.scripting.SlingBindings;
import org.apache.sling.api.scripting.SlingScript;
+import org.apache.sling.scripting.api.resource.ScriptingResourceResolverProvider;
import org.apache.sling.scripting.sightly.impl.engine.SightlyScriptEngineFactory;
-import org.apache.sling.scripting.sightly.impl.engine.runtime.RenderContextImpl;
import org.apache.sling.scripting.sightly.impl.utils.BindingsUtils;
+import org.apache.sling.scripting.sightly.impl.utils.ScriptUtils;
import org.apache.sling.scripting.sightly.render.RenderContext;
import org.apache.sling.scripting.sightly.use.ProviderOutcome;
import org.apache.sling.scripting.sightly.use.UseProvider;
import org.osgi.framework.Constants;
import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Reference;
import org.osgi.service.metatype.annotations.AttributeDefinition;
import org.osgi.service.metatype.annotations.Designate;
import org.osgi.service.metatype.annotations.ObjectClassDefinition;
@@ -76,16 +78,19 @@ public class ScriptUseProvider implement
private static final Logger log = LoggerFactory.getLogger(ScriptUseProvider.class);
+ @Reference
+ private ScriptingResourceResolverProvider scriptingResourceResolverProvider;
+
@Override
public ProviderOutcome provide(String scriptName, RenderContext renderContext, Bindings arguments) {
- RenderContextImpl rci = (RenderContextImpl) renderContext;
- Bindings globalBindings = rci.getBindings();
+ Bindings globalBindings = renderContext.getBindings();
Bindings bindings = BindingsUtils.merge(globalBindings, arguments);
String extension = scriptExtension(scriptName);
if (extension == null || extension.equals(SightlyScriptEngineFactory.EXTENSION)) {
return ProviderOutcome.failure();
}
- Resource scriptResource = rci.resolveScript(scriptName);
+ Resource scriptResource = ScriptUtils.resolveScript(scriptingResourceResolverProvider.getRequestScopedResourceResolver(),
+ renderContext, scriptName);
if (scriptResource == null) {
log.debug("Path does not match an existing resource: {}", scriptName);
return ProviderOutcome.failure();
Modified: sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/runtime/RenderContextImpl.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/runtime/RenderContextImpl.java?rev=1771784&r1=1771783&r2=1771784&view=diff
==============================================================================
--- sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/runtime/RenderContextImpl.java (original)
+++ sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/runtime/RenderContextImpl.java Mon Nov 28 18:11:54 2016
@@ -44,16 +44,11 @@ public class RenderContextImpl implement
private static final AbstractRuntimeObjectModel OBJECT_MODEL = new SlingRuntimeObjectModel();
private final Bindings bindings;
- private final ResourceResolver scriptResourceResolver;
private final ExtensionRegistryService extensionRegistryService;
- private final SlingScriptHelper sling;
public RenderContextImpl(ScriptContext scriptContext) {
bindings = scriptContext.getBindings(ScriptContext.ENGINE_SCOPE);
- scriptResourceResolver = (ResourceResolver) scriptContext.getAttribute(SlingScriptConstants.ATTR_SCRIPT_RESOURCE_RESOLVER,
- SlingScriptConstants.SLING_SCOPE);
- sling = BindingsUtils.getHelper(bindings);
- extensionRegistryService = sling.getService(ExtensionRegistryService.class);
+ extensionRegistryService = BindingsUtils.getHelper(bindings).getService(ExtensionRegistryService.class);
}
@Override
@@ -80,19 +75,4 @@ public class RenderContextImpl implement
return extension.call(this, arguments);
}
- public ResourceResolver getScriptResourceResolver() {
- return scriptResourceResolver;
- }
-
- public Resource resolveScript(String scriptIdentifier) {
- SlingHttpServletRequest request = BindingsUtils.getRequest(bindings);
- Resource caller = ResourceResolution.getResourceForRequest(scriptResourceResolver, request);
- Resource result = ResourceResolution.getResourceFromSearchPath(caller, scriptIdentifier);
- if (result == null) {
- caller = sling.getScript().getScriptResource();
- result = ResourceResolution.getResourceFromSearchPath(caller, scriptIdentifier);
- }
- return result;
- }
-
}
Added: sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/utils/ScriptUtils.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/utils/ScriptUtils.java?rev=1771784&view=auto
==============================================================================
--- sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/utils/ScriptUtils.java (added)
+++ sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/utils/ScriptUtils.java Mon Nov 28 18:11:54 2016
@@ -0,0 +1,39 @@
+/*******************************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ ******************************************************************************/
+package org.apache.sling.scripting.sightly.impl.utils;
+
+import org.apache.sling.api.SlingHttpServletRequest;
+import org.apache.sling.api.resource.Resource;
+import org.apache.sling.api.resource.ResourceResolver;
+import org.apache.sling.api.scripting.SlingScriptHelper;
+import org.apache.sling.scripting.sightly.ResourceResolution;
+import org.apache.sling.scripting.sightly.render.RenderContext;
+
+public class ScriptUtils {
+
+ public static Resource resolveScript(ResourceResolver resolver, RenderContext renderContext, String scriptIdentifier) {
+ SlingHttpServletRequest request = BindingsUtils.getRequest(renderContext.getBindings());
+ Resource caller = ResourceResolution.getResourceForRequest(resolver, request);
+ Resource result = ResourceResolution.getResourceFromSearchPath(caller, scriptIdentifier);
+ if (result == null) {
+ SlingScriptHelper sling = BindingsUtils.getHelper(renderContext.getBindings());
+ caller = resolver.getResource(sling.getScript().getScriptResource().getPath());
+ result = ResourceResolution.getResourceFromSearchPath(caller, scriptIdentifier);
+ }
+ return result;
+ }
+}
Modified: sling/trunk/bundles/scripting/sightly/engine/src/test/java/org/apache/sling/scripting/sightly/impl/compiler/SightlyJavaCompilerServiceTest.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/scripting/sightly/engine/src/test/java/org/apache/sling/scripting/sightly/impl/compiler/SightlyJavaCompilerServiceTest.java?rev=1771784&r1=1771783&r2=1771784&view=diff
==============================================================================
--- sling/trunk/bundles/scripting/sightly/engine/src/test/java/org/apache/sling/scripting/sightly/impl/compiler/SightlyJavaCompilerServiceTest.java (original)
+++ sling/trunk/bundles/scripting/sightly/engine/src/test/java/org/apache/sling/scripting/sightly/impl/compiler/SightlyJavaCompilerServiceTest.java Mon Nov 28 18:11:54 2016
@@ -32,6 +32,7 @@ import org.apache.sling.commons.compiler
import org.apache.sling.commons.compiler.CompilerMessage;
import org.apache.sling.commons.compiler.JavaCompiler;
import org.apache.sling.commons.compiler.Options;
+import org.apache.sling.scripting.api.resource.ScriptingResourceResolverProvider;
import org.apache.sling.scripting.sightly.impl.engine.ResourceBackedPojoChangeMonitor;
import org.apache.sling.scripting.sightly.impl.engine.SightlyEngineConfiguration;
import org.apache.sling.scripting.sightly.impl.engine.SightlyJavaCompilerService;
@@ -102,10 +103,11 @@ public class SightlyJavaCompilerServiceT
private void getInstancePojoTest(String pojoPath, String className) throws Exception {
RenderContextImpl renderContext = Mockito.mock(RenderContextImpl.class);
+ ScriptingResourceResolverProvider scriptingResourceResolverProvider = Mockito.mock(ScriptingResourceResolverProvider.class);
Resource pojoResource = Mockito.mock(Resource.class);
when(pojoResource.getPath()).thenReturn(pojoPath);
ResourceResolver resolver = Mockito.mock(ResourceResolver.class);
- when(renderContext.getScriptResourceResolver()).thenReturn(resolver);
+ when(scriptingResourceResolverProvider.getRequestScopedResourceResolver()).thenReturn(resolver);
when(resolver.getResource(pojoPath)).thenReturn(pojoResource);
when(pojoResource.adaptTo(InputStream.class)).thenReturn(IOUtils.toInputStream("DUMMY", "UTF-8"));
JavaCompiler javaCompiler = Mockito.mock(JavaCompiler.class);
@@ -121,11 +123,12 @@ public class SightlyJavaCompilerServiceT
return MockPojo.class;
}
});
- Whitebox.setInternalState(compiler, "classLoaderWriter", clw);
- Whitebox.setInternalState(compiler, "javaCompiler", javaCompiler);
SightlyEngineConfiguration sightlyEngineConfiguration = mock(SightlyEngineConfiguration.class);
when(sightlyEngineConfiguration.getBundleSymbolicName()).thenReturn("org.apache.sling.scripting.sightly");
when(sightlyEngineConfiguration.getScratchFolder()).thenReturn("/org/apache/sling/scripting/sightly");
+ Whitebox.setInternalState(compiler, "classLoaderWriter", clw);
+ Whitebox.setInternalState(compiler, "javaCompiler", javaCompiler);
+ Whitebox.setInternalState(compiler, "scriptingResourceResolverProvider", scriptingResourceResolverProvider);
Whitebox.setInternalState(compiler, "sightlyEngineConfiguration", sightlyEngineConfiguration);
Object obj = compiler.getInstance(renderContext, className);
assertTrue("Expected to obtain a " + MockPojo.class.getName() + " object.", obj instanceof MockPojo);
Modified: sling/trunk/bundles/scripting/sightly/js-use-provider/pom.xml
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/scripting/sightly/js-use-provider/pom.xml?rev=1771784&r1=1771783&r2=1771784&view=diff
==============================================================================
--- sling/trunk/bundles/scripting/sightly/js-use-provider/pom.xml (original)
+++ sling/trunk/bundles/scripting/sightly/js-use-provider/pom.xml Mon Nov 28 18:11:54 2016
@@ -112,7 +112,7 @@
<dependency>
<groupId>org.apache.sling</groupId>
<artifactId>org.apache.sling.scripting.api</artifactId>
- <version>2.1.8</version>
+ <version>2.1.11-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<dependency>
Modified: sling/trunk/bundles/scripting/sightly/js-use-provider/src/main/java/org/apache/sling/scripting/sightly/js/impl/JsUseProvider.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/scripting/sightly/js-use-provider/src/main/java/org/apache/sling/scripting/sightly/js/impl/JsUseProvider.java?rev=1771784&r1=1771783&r2=1771784&view=diff
==============================================================================
--- sling/trunk/bundles/scripting/sightly/js-use-provider/src/main/java/org/apache/sling/scripting/sightly/js/impl/JsUseProvider.java (original)
+++ sling/trunk/bundles/scripting/sightly/js-use-provider/src/main/java/org/apache/sling/scripting/sightly/js/impl/JsUseProvider.java Mon Nov 28 18:11:54 2016
@@ -18,17 +18,14 @@
******************************************************************************/
package org.apache.sling.scripting.sightly.js.impl;
-import java.util.HashMap;
-import java.util.Map;
import javax.script.Bindings;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
-import org.apache.sling.api.resource.LoginException;
import org.apache.sling.api.resource.Resource;
import org.apache.sling.api.resource.ResourceResolver;
-import org.apache.sling.api.resource.ResourceResolverFactory;
import org.apache.sling.api.scripting.SlingScriptHelper;
+import org.apache.sling.scripting.api.resource.ScriptingResourceResolverProvider;
import org.apache.sling.scripting.sightly.SightlyException;
import org.apache.sling.scripting.sightly.js.impl.async.AsyncContainer;
import org.apache.sling.scripting.sightly.js.impl.async.AsyncExtractor;
@@ -79,7 +76,6 @@ public class JsUseProvider implements Us
private static final Logger LOGGER = LoggerFactory.getLogger(JsUseProvider.class);
private static final String JS_ENGINE_NAME = "javascript";
private static final JsValueAdapter jsValueAdapter = new JsValueAdapter(new AsyncExtractor());
- private static final String SLING_SCRIPTING_USER = "sling-scripting";
@Reference
private ScriptEngineManager scriptEngineManager = null;
@@ -88,7 +84,7 @@ public class JsUseProvider implements Us
private ProxyAsyncScriptableFactory proxyAsyncScriptableFactory = null;
@Reference
- private ResourceResolverFactory rrf = null;
+ private ScriptingResourceResolverProvider scriptingResourceResolverProvider = null;
@Override
public ProviderOutcome provide(String identifier, RenderContext renderContext, Bindings arguments) {
@@ -102,30 +98,20 @@ public class JsUseProvider implements Us
}
SlingScriptHelper scriptHelper = Utils.getHelper(globalBindings);
JsEnvironment environment = null;
- ResourceResolver slingScriptingResolver = null;
try {
environment = new JsEnvironment(jsEngine);
environment.initialize();
- Map<String, Object> authenticationInfo = new HashMap<String, Object>() {{
- put(ResourceResolverFactory.SUBSERVICE, SLING_SCRIPTING_USER);
- }};
- slingScriptingResolver = rrf.getServiceResourceResolver(authenticationInfo);
+ ResourceResolver slingScriptingResolver = scriptingResourceResolverProvider.getRequestScopedResourceResolver();
Resource callerScript = slingScriptingResolver.getResource(scriptHelper.getScript().getScriptResource().getPath());
Resource scriptResource = Utils.getScriptResource(callerScript, identifier, globalBindings);
globalBindings.put(ScriptEngine.FILENAME, scriptResource.getPath());
proxyAsyncScriptableFactory.registerProxies(globalBindings);
AsyncContainer asyncContainer = environment.runResource(scriptResource, globalBindings, arguments);
return ProviderOutcome.success(jsValueAdapter.adapt(asyncContainer));
- } catch (LoginException e) {
- LOGGER.error("Cannot obtain a resource resolver backed by the " + SLING_SCRIPTING_USER + " service user.", e);
- return ProviderOutcome.failure(e);
} finally {
if (environment != null) {
environment.cleanup();
}
- if (slingScriptingResolver != null) {
- slingScriptingResolver.close();
- }
}
}
}
Modified: sling/trunk/bundles/scripting/sightly/testing/src/main/provisioning/model.txt
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/scripting/sightly/testing/src/main/provisioning/model.txt?rev=1771784&r1=1771783&r2=1771784&view=diff
==============================================================================
--- sling/trunk/bundles/scripting/sightly/testing/src/main/provisioning/model.txt (original)
+++ sling/trunk/bundles/scripting/sightly/testing/src/main/provisioning/model.txt Mon Nov 28 18:11:54 2016
@@ -20,6 +20,8 @@
# Dependencies
[artifacts]
org.apache.sling/org.apache.sling.launchpad/9-SNAPSHOT/slingstart
+ org.apache.sling/org.apache.sling.scripting.api/2.1.11-SNAPSHOT
+ org.apache.sling/org.apache.sling.scripting.core/2.0.43-SNAPSHOT
org.apache.sling/org.apache.sling.scripting.sightly.compiler
org.apache.sling/org.apache.sling.scripting.sightly.compiler.java
org.apache.sling/org.apache.sling.scripting.sightly
Modified: sling/trunk/bundles/scripting/sightly/testing/src/test/java/org/apache/sling/scripting/sightly/it/performance/PerformanceIT.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/scripting/sightly/testing/src/test/java/org/apache/sling/scripting/sightly/it/performance/PerformanceIT.java?rev=1771784&r1=1771783&r2=1771784&view=diff
==============================================================================
--- sling/trunk/bundles/scripting/sightly/testing/src/test/java/org/apache/sling/scripting/sightly/it/performance/PerformanceIT.java (original)
+++ sling/trunk/bundles/scripting/sightly/testing/src/test/java/org/apache/sling/scripting/sightly/it/performance/PerformanceIT.java Mon Nov 28 18:11:54 2016
@@ -109,15 +109,13 @@ public class PerformanceIT {
HttpStatus.SC_OK);
}
- // modified threshold to 12 because of SLING-6156; will be restored by SLING-6166
- @PerformanceTest(runinvocations = INVOCATIONS, warmupinvocations = WARMUP_INVOCATIONS, threshold = 12)
+ @PerformanceTest(runinvocations = INVOCATIONS, warmupinvocations = WARMUP_INVOCATIONS, threshold = 4)
public void test6SlyJSAsync() {
getStringContent("/sightlyperf/loop.html?selector=sly-js-async&count=" + CONTENT_LOOP_COUNT,
HttpStatus.SC_OK);
}
- // modified threshold to 12 because of SLING-6156; will be restored by SLING-6166
- @PerformanceTest(runinvocations = INVOCATIONS, warmupinvocations = WARMUP_INVOCATIONS, threshold = 12)
+ @PerformanceTest(runinvocations = INVOCATIONS, warmupinvocations = WARMUP_INVOCATIONS, threshold = 4)
public void test7SlyJSSync() {
getStringContent("/sightlyperf/loop.html?selector=sly-js-sync&count=" + CONTENT_LOOP_COUNT,
HttpStatus.SC_OK);