Class ServiceRegistrationImpl

java.lang.Object
org.apache.felix.framework.ServiceRegistrationImpl
All Implemented Interfaces:
ServiceRegistration

class ServiceRegistrationImpl extends Object implements ServiceRegistration
  • Field Details

  • Constructor Details

  • Method Details

    • isValid

      protected boolean isValid()
    • invalidate

      protected void invalidate()
    • getReference

      public ServiceReference getReference()
      Description copied from interface: ServiceRegistration
      Returns a ServiceReference object for a service being registered.

      The ServiceReference object may be shared with other bundles.

      Specified by:
      getReference in interface ServiceRegistration
      Returns:
      ServiceReference object.
    • setProperties

      public void setProperties(Dictionary dict)
      Description copied from interface: ServiceRegistration
      Updates the properties associated with a service.

      The Constants.OBJECTCLASS, Constants.SERVICE_BUNDLEID, Constants.SERVICE_ID and Constants.SERVICE_SCOPE keys cannot be modified by this method. These values are set by the Framework when the service is registered in the OSGi environment.

      The following steps are required to modify service properties:

      1. The service's properties are replaced with the provided properties.
      2. A service event of type ServiceEvent.MODIFIED is fired.
      Specified by:
      setProperties in interface ServiceRegistration
      Parameters:
      dict - The properties for this service. See Constants for a list of standard service property keys. Changes should not be made to this object after calling this method. To update the service's properties this method should be called again.
    • unregister

      public void unregister()
      Description copied from interface: ServiceRegistration
      Unregisters a service. Remove a ServiceRegistration object from the Framework service registry. All ServiceReference objects associated with this ServiceRegistration object can no longer be used to interact with the service once unregistration is complete.

      The following steps are required to unregister a service:

      1. The service is removed from the Framework service registry so that it can no longer be obtained.
      2. A service event of type ServiceEvent.UNREGISTERING is fired so that bundles using this service can release their use of the service. Once delivery of the service event is complete, the ServiceReference objects for the service may no longer be used to get a service object for the service.
      3. For each bundle whose use count for this service is greater than zero:
        • The bundle's use count for this service is set to zero.
        • If the service was registered with a ServiceFactory object, the ServiceFactory.ungetService method is called to release the service object for the bundle.
      Specified by:
      unregister in interface ServiceRegistration
      See Also:
    • isClassAccessible

      private boolean isClassAccessible(Class clazz)
      This method determines if the class loader of the service object has access to the specified class.
      Parameters:
      clazz - the class to test for reachability.
      Returns:
      true if the specified class is reachable from the service object's class loader, false otherwise.
    • getProperty

      Object getProperty(String key)
    • getPropertyKeys

      private String[] getPropertyKeys()
    • getUsingBundles

      private Bundle[] getUsingBundles()
    • getService

      Object getService()
      This method provides direct access to the associated service object; it generally should not be used by anyone other than the service registry itself.
      Returns:
      The service object associated with the registration.
    • getService

      Object getService(Bundle acqBundle)
    • ungetService

      void ungetService(Bundle relBundle, Object svcObj)
    • initializeProperties

      private void initializeProperties(Dictionary<String,Object> dict)
    • getFactoryUnchecked

      private Object getFactoryUnchecked(Bundle bundle)
    • ungetFactoryUnchecked

      private void ungetFactoryUnchecked(Bundle bundle, Object svcObj)