Interface BundledRenderUnit
@ConsumerType
public interface BundledRenderUnit
A BundledRenderUnit
represents a pre-packaged script or precompiled script (Java class) that will be executed in order to
render a HttpServletRequest
.
The BundledRenderUnit
provider module is responsible for defining how a unit is executed. However, when executing the unit in the
context of a ScriptEngine
, the provider module should add the current executing unit into the ScriptEngine
's ScriptContext
using the VARIABLE
key.
-
Field Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
eval
(@NotNull javax.servlet.http.HttpServletRequest request, @NotNull javax.servlet.http.HttpServletResponse response) This method will execute / evaluate the wrapped script or precompiled script with the given request.@NotNull org.osgi.framework.Bundle
Returns theBundle
the publishing bundle of this unit (not to be confused with the provider module, which is the module that instantiates aBundledRenderUnit
).@NotNull org.osgi.framework.BundleContext
Returns theBundleContext
to use for this unit.default @Nullable InputStream
This method will return an input stream ifthis
unit is backed by a script that can be interpreted.@NotNull String
getName()
Returns the name ofthis BundledRenderUnit
.@NotNull String
getPath()
Returns the path of this executable in the resource type hierarchy.<T> T
getService
(@NotNull String className) Retrieves an OSGi runtime dependency of the wrapped script identified by the passedclassName
parameter.<T> @Nullable T[]
getServices
(@NotNull String className, @Nullable 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 Set<TypeProvider>
Returns theSet
ofTypeProvider
s which are related to this unit.default @Nullable Object
getUnit()
In case thisBundledRenderUnit
wraps a precompiled script, this method will return an instance of that object.
-
Field Details
-
VARIABLE
The variable available in theBindings
associated to aHttpServletRequest
if that request is served by aBundledRenderUnit
.
-
-
Method Details
-
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
Returns the name ofthis BundledRenderUnit
. This can be the name of the wrapped script or precompiled script.- Returns:
- the name
this BundledRenderUnit
-
getBundle
@NotNull @NotNull org.osgi.framework.Bundle getBundle()Returns theBundle
the publishing bundle of this unit (not to be confused with the provider module, which is the module that instantiates aBundledRenderUnit
). 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();
- Returns:
- the bundle providing this unit
-
getBundleContext
@NotNull @NotNull org.osgi.framework.BundleContext getBundleContext()Returns theBundleContext
to use for this unit. This method can be useful for getting an instance of the publishing bundle's context, when needed to load dependencies at run-time.- Returns:
- the bundle context of the bundle publishing this unit
-
getTypeProviders
Returns theSet
ofTypeProvider
s which are related to this unit.- Returns:
- the set of providers; if the unit doesn't have any inheritance chains, then the set will contain only one
TypeProvider
-
getService
Retrieves an OSGi runtime dependency of the wrapped script identified by the passedclassName
parameter.- Type Parameters:
T
- the expected service type- Parameters:
className
- the fully qualified class name- Returns:
- an instance of the
BundledRenderUnit
ornull
-
getServices
@Nullable <T> @Nullable T[] getServices(@NotNull @NotNull String className, @Nullable @Nullable 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:
T
- 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
-
getPath
Returns the path of this executable in the resource type hierarchy. The path can be relative to the search paths or absolute.- Returns:
- the path of this executable in the resource type hierarchy
-
eval
void eval(@NotNull @NotNull javax.servlet.http.HttpServletRequest request, @NotNull @NotNull javax.servlet.http.HttpServletResponse response) throws ScriptException This method will execute / evaluate the wrapped script or precompiled script with the given request.- Parameters:
request
- the requestresponse
- the response- Throws:
ScriptException
- if the execution leads to an error
-
getInputStream
This method will return an input stream ifthis
unit is backed by a script that can be interpreted.- Returns:
- an
InputStream
providing the source code of the backing script; ifthis
unit is backed by a precompiled script (essentially a Java class), then this method will returnnull
-