Interface IExtensionPointIoc

All Known Subinterfaces:
IDynamicExtensionService.IDynamicExtensionHelper

public interface IExtensionPointIoc
IOC Module. Use this for registering extension point implementations and/or to bind specific implementations to your own interfaces. An instantiation of this interface is provided to the configure method in the ExtensionPointConfiguration registered in the SAGA configuration.
See Also:
  • Method Details

    • configure

      void configure(Class<? extends IExtensionPointConfiguration> configurationClass)
      Applies another extension point configuration. The configure method of this other configuration will be called right away. Use the feature group multiple extensions into a module which can be re-used
      Parameters:
      configurationClass - the class of the module you wish to include
    • bind

      <T> IExtensionPointBinder<T> bind(Class<T> from)
      Bind an interface or abstract class to an implementation

      This method also allows for the interface to be injected with ISpaceBindingProvider for use cases where there is an implementation of the interface per space. All spaces will default to using the core implementation unless specified otherwise. To configure a space-specific implementation see ISpaceExtensionPointIoc.bind(Class)

      Be aware that the active space is determined by the web request. This means that space-specific behavior is not supported for non-web processes such as background jobs.

      Type Parameters:
      T - the inference type of interface or abstract class
      Parameters:
      from - the interface or abstract class
      Returns:
      binder for the specific implementation or provider
    • acquire

      Expose extension point registration options for the acquire part of the capture flow. Code in these extension points will be executed synchronously with the api call to the SAGA system.
      Returns:
      registration points for custom extension point implementations
    • persist

      Expose extension point registration options for the persist part of the capture flow. Code in these extension points will be executed asynchronously, so any errors or output will not be shown directly to the caller of the capture api.
      Returns:
      registration points for custom extension point implementations
    • statistics

      Expose extension point registration options for the statistics part of the capture flow. These extension points will be run after the events + vocabularies has been successfully been stored, in parallel with the extension points under subscription
      Returns:
      registration points for custom extension point implementations
    • subscription

      Expose extension point registration options for the subscription part of the capture flow. These extension points will be run after the events + vocabularies has been successfully been stored, in parallel with the extension points under statistics
      Returns:
      registration points for custom extension point implementations
    • api

      Expose extension point registration options for adding extension point controllers to the elib service.
      Returns:
      registration points for custom extension point implementations
    • vocabulary

      Expose extension point registration options for manipulating vocabularies, like schema definitions etc. These extension points will be run as part of start-up process.
      Returns:
      registration points for custom extension point implementations
    • frontend

      Exposes extension point registration options for manipulating the frontend
      Returns:
      registration points for custom extension point implementations
    • epc

      Exposes extension point registration options for manipulating EPCs
      Returns:
      registration points for custom extension point implementations
    • settings

      Expose settings which span multiple service roles like xml namespaces, leaf-node matchers, etc.
      Returns:
      registration point for global settings
    • document

      Expose document enrichment extension points for declaring custom enrichers
      Returns:
      IDocumentExtensionPoints for each of Epcis or Epcis Master Data documents
    • db

      Exposes extension points for manipulating backing services (SQL, Cassandra, RabbitMq, ElasticSearch, etc)
      Returns:
      IDatabaseExtensionPoints
    • issue

      Exposes extension points for handling issues
      Returns:
      IIssueExtensionPoint
    • jobs

      Exposes extension points for running background jobs, either during bootup or on a schedule
      Returns:
      IJobExtensions
    • staticResources

      Exposes extension points for providing static resources
      Returns:
      IStaticResourceExtensionPoints
    • metrics

      Exposes extension points relating to metrics
      Returns:
      IMetricExtensionPoints
    • configuration

      ISagaConfiguration configuration()
      Gives read-only access to Saga configuration. Can be used to make extension point setup conditional.
      Returns:
      ISagaConfiguration
    • module

      @Deprecated <T extends ModuleExtensionContext> T module(Class<T> context)
      Deprecated.
      because of the `module` term clash. The new meaning of module is described here: ExtensionModule. Use ExtensionModule.getExtensionContext(Class) method instead.
    • modules

      Allows to configure extension modules
      Returns:
      IModuleExtensions
    • spaces

      Deprecated.
      Allows to configure spaces and their extensions
      Returns:
      - ISpaceConfiguration
    • monitoring

      Register monitoring-related extensions to be used on pages or exposed through the API
      Returns:
      implementations binder