Class ServiceBindings

  • All Implemented Interfaces:
    BindingPublisher

    public final class ServiceBindings
    extends java.lang.Object
    implements BindingPublisher
    On-demand publisher of Bindings from the OSGi service registry.
    • Constructor Summary

      Constructors 
      Constructor Description
      ServiceBindings​(org.osgi.framework.BundleContext context)
      Creates new publisher of service bindings, using the given OSGi BundleContext to track services.

      Uses default allow/ignore settings and assigns any published services the lowest possible ranking.
      ServiceBindings​(org.osgi.framework.BundleContext context, java.lang.String allow, java.lang.String ignore, int maxRank)
      Creates new publisher of service bindings, using the given OSGi BundleContext to track services.

      The globbed patterns control whether tracking requests for particular types are allowed or ignored.
      Any published bindings are ranked according to their service ranking (up to the given maximum).
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      <T> T adapt​(java.lang.Class<T> type)
      Attempts to adapt this publisher to the given type.
      static java.lang.String defaultAllow()
      Configured by org.eclipse.sisu.osgi.ServiceBindings.allow system property.
      static java.lang.String defaultIgnore()
      Configured by org.eclipse.sisu.osgi.ServiceBindings.ignore system property.
      int maxBindingRank()
      Estimates the maximum rank this publisher may assign to a Binding.
      <T> void subscribe​(BindingSubscriber<T> subscriber)
      Subscribes the given BindingSubscriber to receive Bindings.
      <T> void unsubscribe​(BindingSubscriber<T> subscriber)
      Stops the given BindingSubscriber from receiving Bindings.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • ServiceBindings

        public ServiceBindings​(org.osgi.framework.BundleContext context,
                               java.lang.String allow,
                               java.lang.String ignore,
                               int maxRank)
        Creates new publisher of service bindings, using the given OSGi BundleContext to track services.

        The globbed patterns control whether tracking requests for particular types are allowed or ignored.
        Any published bindings are ranked according to their service ranking (up to the given maximum).
        Parameters:
        context - The tracking context
        allow - Globbed pattern of packages/types to allow
        ignore - Globbed pattern of packages/types to ignore
        maxRank - Maximum binding rank
      • ServiceBindings

        public ServiceBindings​(org.osgi.framework.BundleContext context)
        Creates new publisher of service bindings, using the given OSGi BundleContext to track services.

        Uses default allow/ignore settings and assigns any published services the lowest possible ranking.
        Parameters:
        context - The tracking context
    • Method Detail

      • defaultAllow

        public static java.lang.String defaultAllow()
        Configured by org.eclipse.sisu.osgi.ServiceBindings.allow system property.
        Returns:
        Globbed pattern of types to allow
      • defaultIgnore

        public static java.lang.String defaultIgnore()
        Configured by org.eclipse.sisu.osgi.ServiceBindings.ignore system property.
        Returns:
        Globbed pattern of types to ignore
      • maxBindingRank

        public int maxBindingRank()
        Description copied from interface: BindingPublisher
        Estimates the maximum rank this publisher may assign to a Binding.
        Specified by:
        maxBindingRank in interface BindingPublisher
        Returns:
        Maximum binding rank
      • adapt

        public <T> T adapt​(java.lang.Class<T> type)
        Description copied from interface: BindingPublisher
        Attempts to adapt this publisher to the given type.
        Specified by:
        adapt in interface BindingPublisher
        Parameters:
        type - The target type
        Returns:
        Adapted instance; null if it couldn't be adapted