Class PrecompiledScript
- java.lang.Object
-
- org.apache.sling.scripting.bundle.tracker.internal.PrecompiledScript
-
- All Implemented Interfaces:
BundledRenderUnit
public class PrecompiledScript extends java.lang.Object
-
-
Field Summary
-
Fields inherited from interface org.apache.sling.scripting.bundle.tracker.BundledRenderUnit
VARIABLE
-
-
Method Summary
All Methods Instance Methods Concrete 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
.@NotNull java.lang.Object
getUnit()
In case thisBundledRenderUnit
wraps a precompiled script, this method will return an instance of that object.void
releaseDependencies()
-
-
-
Method Detail
-
getName
@NotNull public @NotNull java.lang.String getName()
Description copied from interface:BundledRenderUnit
Returns the name ofthis BundledRenderUnit
. This can be the name of the wrapped script or precompiled script.- Returns:
- the name
this BundledRenderUnit
-
getScriptEngine
@NotNull public @NotNull javax.script.ScriptEngine getScriptEngine()
Description copied from interface:BundledRenderUnit
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
-
eval
public void eval(@NotNull @NotNull javax.script.ScriptContext context) throws javax.script.ScriptException
Description copied from interface:BundledRenderUnit
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
-
getUnit
@NotNull public @NotNull java.lang.Object getUnit()
Description copied from interface:BundledRenderUnit
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
-
getBundle
@NotNull public @NotNull org.osgi.framework.Bundle getBundle()
Description copied from interface:BundledRenderUnit
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();
- Specified by:
getBundle
in interfaceBundledRenderUnit
-
getService
@Nullable public <ServiceType> ServiceType getService(@NotNull @NotNull java.lang.String className)
Description copied from interface:BundledRenderUnit
Retrieves an OSGi runtime dependency of the wrapped script identified by the passedclassName
parameter.- Specified by:
getService
in interfaceBundledRenderUnit
- Type Parameters:
ServiceType
- the expected service type- Parameters:
className
- the fully qualified class name- Returns:
- an instance of the
BundledRenderUnit
ornull
-
getServices
@Nullable public <ServiceType> @Nullable ServiceType[] getServices(@NotNull @NotNull java.lang.String className, @Nullable @Nullable java.lang.String filter)
Description copied from interface:BundledRenderUnit
Retrieves multiple instances of an OSGi runtime dependency of the wrapped script identified by the passedclassName
parameter, filtered according to the passedfilter
.- Specified by:
getServices
in interfaceBundledRenderUnit
- 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
-
releaseDependencies
public void releaseDependencies()
-
-