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

    Fields
    Modifier and Type
    Field
    Description
    static final String
    The variable available in the Bindings associated to a HttpServletRequest if that request is served by a BundledRenderUnit.
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    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 the Bundle the publishing bundle of this unit (not to be confused with the provider module, which is the module that instantiates a BundledRenderUnit).
    @NotNull org.osgi.framework.BundleContext
    Returns the BundleContext to use for this unit.
    default @Nullable InputStream
    This method will return an input stream if this unit is backed by a script that can be interpreted.
    @NotNull String
    Returns the name of this BundledRenderUnit.
    @NotNull String
    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 passed className 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 passed className parameter, filtered according to the passed filter.
    @NotNull Set<TypeProvider>
    Returns the Set of TypeProviders which are related to this unit.
    default @Nullable Object
    In case this BundledRenderUnit wraps a precompiled script, this method will return an instance of that object.
  • Field Details

    • VARIABLE

      static final String VARIABLE
      The variable available in the Bindings associated to a HttpServletRequest if that request is served by a BundledRenderUnit.
  • Method Details

    • getUnit

      @Nullable default @Nullable Object getUnit()
      In case this BundledRenderUnit 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 String getName()
      Returns the name of this 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 the Bundle the publishing bundle of this unit (not to be confused with the provider module, which is the module that instantiates a BundledRenderUnit). 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 the BundleContext 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

      @NotNull @NotNull Set<TypeProvider> getTypeProviders()
      Returns the Set of TypeProviders 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

      @Nullable <T> T getService(@NotNull @NotNull String className)
      Retrieves an OSGi runtime dependency of the wrapped script identified by the passed className parameter.
      Type Parameters:
      T - the expected service type
      Parameters:
      className - the fully qualified class name
      Returns:
      an instance of the BundledRenderUnit or null
    • 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 passed className parameter, filtered according to the passed filter.
      Type Parameters:
      T - the expected service type
      Parameters:
      className - the fully qualified class name
      filter - a filter expression or null if all the instances should be returned; for more details about the filter's syntax check BundleContext.getServiceReferences(String, String)
      Returns:
      an instance of the BundledRenderUnit or null
    • getPath

      @NotNull @NotNull String 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 request
      response - the response
      Throws:
      ScriptException - if the execution leads to an error
    • getInputStream

      @Nullable default @Nullable InputStream getInputStream()
      This method will return an input stream if this unit is backed by a script that can be interpreted.
      Returns:
      an InputStream providing the source code of the backing script; if this unit is backed by a precompiled script (essentially a Java class), then this method will return null