Interface BundledRenderUnit
-
- All Known Implementing Classes:
PrecompiledScript
@ProviderType public interface BundledRenderUnit
A
BundledRenderUnit
represents a pre-packaged script or precompiled script that will be executed in order to render aSlingHttpServletRequest
.If the current
SlingHttpServletRequest
is served by aBundledRenderUnit
, theorg.apache.sling.scripting.bundle.tracker
will set theBundledRenderUnit
in theBindings
map associated to the request, under theVARIABLE
key.
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
VARIABLE
The variable available in theBindings
associated to aSlingHttpServletRequest
if that request is served by aBundledRenderUnit
.
-
Method Summary
All Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description void
eval(@NotNull javax.script.ScriptContext context)
Provided aScriptContext
, this method will execute / evaluate the wrapped script or precompiled script.@NotNull org.osgi.framework.Bundle
getBundle()
Returns theBundle
in which the script or precompiled script is packaged.@NotNull java.lang.String
getName()
Returns the name ofthis BundledRenderUnit
.@NotNull javax.script.ScriptEngine
getScriptEngine()
Returns an instance of theScriptEngine
that can execute the wrapped script or precompiled script, if the latter needs a specific runtime.<ServiceType>
ServiceTypegetService(@NotNull java.lang.String className)
Retrieves an OSGi runtime dependency of the wrapped script identified by the passedclassName
parameter.<ServiceType>
@Nullable ServiceType[]getServices(@NotNull java.lang.String className, @Nullable java.lang.String filter)
Retrieves multiple instances of an OSGi runtime dependency of the wrapped script identified by the passedclassName
parameter, filtered according to the passedfilter
.default @Nullable java.lang.Object
getUnit()
In case thisBundledRenderUnit
wraps a precompiled script, this method will return an instance of that object.
-
-
-
Method Detail
-
getUnit
@Nullable default @Nullable java.lang.Object getUnit()
In case thisBundledRenderUnit
wraps a precompiled script, this method will return an instance of that object.- Returns:
- a precompiled unit, if
this
unit wraps a precompiled script;null
otherwise
-
getName
@NotNull @NotNull java.lang.String getName()
Returns the name ofthis BundledRenderUnit
. This can be the name of the wrapped script or precompiled script.- Returns:
- the name
this BundledRenderUnit
-
getScriptEngine
@NotNull @NotNull javax.script.ScriptEngine getScriptEngine()
Returns an instance of theScriptEngine
that can execute the wrapped script or precompiled script, if the latter needs a specific runtime.- Returns:
- an instance of the script's or precompiled script's associated
ScriptEngine
-
getBundle
@NotNull @NotNull org.osgi.framework.Bundle getBundle()
Returns theBundle
in which the script or precompiled script is packaged. This method can be useful for getting an instance of the bundle's classloader, when needed to load dependencies at run time. To do so the following code example can help:Bundle bundle = bundledRenderUnit.getBundle(); Classloader bundleClassloader = bundle.adapt(BundleWiring.class).getClassLoader();
-
eval
void eval(@NotNull @NotNull javax.script.ScriptContext context) throws javax.script.ScriptException
Provided aScriptContext
, this method will execute / evaluate the wrapped script or precompiled script.- Parameters:
context
- theScriptContext
- Throws:
javax.script.ScriptException
- if the execution leads to an error
-
getService
@Nullable <ServiceType> ServiceType getService(@NotNull @NotNull java.lang.String className)
Retrieves an OSGi runtime dependency of the wrapped script identified by the passedclassName
parameter.- Type Parameters:
ServiceType
- the expected service type- Parameters:
className
- the fully qualified class name- Returns:
- an instance of the
BundledRenderUnit
ornull
-
getServices
@Nullable <ServiceType> @Nullable ServiceType[] getServices(@NotNull @NotNull java.lang.String className, @Nullable @Nullable java.lang.String filter)
Retrieves multiple instances of an OSGi runtime dependency of the wrapped script identified by the passedclassName
parameter, filtered according to the passedfilter
.- Type Parameters:
ServiceType
- the expected service type- Parameters:
className
- the fully qualified class namefilter
- a filter expression ornull
if all the instances should be returned; for more details about thefilter
's syntax checkBundleContext.getServiceReferences(String, String)
- Returns:
- an instance of the
BundledRenderUnit
ornull
-
-