Class FelixOsgiContainerManager

java.lang.Object
com.atlassian.plugin.osgi.container.felix.FelixOsgiContainerManager
All Implemented Interfaces:
OsgiContainerManager

public class FelixOsgiContainerManager extends Object implements OsgiContainerManager
Felix implementation of the OSGi container manager
  • Field Details

  • Constructor Details

    • FelixOsgiContainerManager

      public FelixOsgiContainerManager(URL frameworkBundlesZip, OsgiPersistentCache persistentCache, PackageScannerConfiguration packageScannerConfig, HostComponentProvider provider, com.atlassian.plugin.event.PluginEventManager eventManager)
      Constructs the container manager.
      Parameters:
      frameworkBundlesZip - The location of the zip file containing framework bundles
      persistentCache - The persistent cache to use for the framework and framework bundles
      packageScannerConfig - The configuration for package scanning
      provider - The host component provider. May be null.
      eventManager - The plugin event manager to register for init and shutdown events
      Throws:
      OsgiContainerException - If the host version isn't supplied and the cache directory cannot be cleaned.
      Since:
      2.2.0
    • FelixOsgiContainerManager

      public FelixOsgiContainerManager(File frameworkBundlesDirectory, OsgiPersistentCache persistentCache, PackageScannerConfiguration packageScannerConfig, HostComponentProvider provider, com.atlassian.plugin.event.PluginEventManager eventManager)
      Constructs the container manager.

      This constructor is used when frameworkBundlesDirectory has already been populated with the framework bundles. It ignores OsgiPersistentCache.getFrameworkBundleCache().

      Parameters:
      frameworkBundlesDirectory - The directory containing framework bundles
      persistentCache - The persistent cache to use for the framework
      packageScannerConfig - The configuration for package scanning
      provider - The host component provider. May be null.
      eventManager - The plugin event manager to register for init and shutdown events
      Throws:
      OsgiContainerException - If the host version isn't supplied and the cache directory cannot be cleaned.
      Since:
      3.0.21
  • Method Details

    • setFelixLogger

      public void setFelixLogger(org.apache.felix.framework.Logger logger)
    • setDisableMultipleBundleVersions

      public void setDisableMultipleBundleVersions(boolean val)
    • clearExportCache

      public void clearExportCache()
      Clears export cache.
      Since:
      2.9.0
    • onStart

      public void onStart(com.atlassian.plugin.event.events.PluginFrameworkStartingEvent event)
    • onShutdown

      public void onShutdown(com.atlassian.plugin.event.events.PluginFrameworkShutdownEvent event)
    • onPluginUpgrade

      public void onPluginUpgrade(com.atlassian.plugin.event.events.PluginUpgradedEvent event)
    • onPluginUninstallation

      public void onPluginUninstallation(com.atlassian.plugin.event.events.PluginUninstalledEvent event)
    • onPluginFrameworkWarmRestarting

      public void onPluginFrameworkWarmRestarting(com.atlassian.plugin.event.events.PluginFrameworkWarmRestartingEvent event)
    • start

      public void start()
      Description copied from interface: OsgiContainerManager
      Starts the OSGi container
      Specified by:
      start in interface OsgiContainerManager
    • stop

      public void stop()
      Description copied from interface: OsgiContainerManager
      Stops the OSGi container
      Specified by:
      stop in interface OsgiContainerManager
    • getBundles

      public org.osgi.framework.Bundle[] getBundles()
      Description copied from interface: OsgiContainerManager
      Gets a list of installed bundles
      Specified by:
      getBundles in interface OsgiContainerManager
      Returns:
      An array of bundles
    • getRegisteredServices

      public org.osgi.framework.ServiceReference[] getRegisteredServices()
      Description copied from interface: OsgiContainerManager
      Gets a list of service references
      Specified by:
      getRegisteredServices in interface OsgiContainerManager
      Returns:
      An array of service references
    • getServiceTracker

      public org.osgi.util.tracker.ServiceTracker getServiceTracker(String interfaceClassName)
      Description copied from interface: OsgiContainerManager
      Gets a service tracker to follow a service registered under a certain interface. Will return a new ServiceTracker instance for every call, so don't call more than necessary. Any provided ServiceTracker instances will be opened before returning and automatically closed on shutdown.
      Specified by:
      getServiceTracker in interface OsgiContainerManager
      Parameters:
      interfaceClassName - The interface class as a String
      Returns:
      A service tracker to follow all instances of that interface
    • getServiceTracker

      public org.osgi.util.tracker.ServiceTracker getServiceTracker(String interfaceClassName, org.osgi.util.tracker.ServiceTrackerCustomizer serviceTrackerCustomizer)
      Description copied from interface: OsgiContainerManager
      Gets a service tracker to follow a service registered under a certain interface with a ServiceTrackerCustomizer attached for customizing tracked service objects. Will return a new ServiceTracker instance for every call, so don't call more than necessary. Any provided ServiceTracker instances will be opened before returning and automatically closed on shutdown.
      Specified by:
      getServiceTracker in interface OsgiContainerManager
      Parameters:
      interfaceClassName - The interface class as a String
      serviceTrackerCustomizer - service tracker customizer for the created service tracker
      Returns:
      A service tracker to follow all instances of that interface
    • addBundleListener

      public void addBundleListener(org.osgi.framework.BundleListener listener)
      Description copied from interface: OsgiContainerManager
      That is shortcut to access SystemBundle.
      Specified by:
      addBundleListener in interface OsgiContainerManager
    • removeBundleListener

      public void removeBundleListener(org.osgi.framework.BundleListener listener)
      Description copied from interface: OsgiContainerManager
      That is shortcut to access SystemBundle.
      Specified by:
      removeBundleListener in interface OsgiContainerManager
    • installBundle

      public org.osgi.framework.Bundle installBundle(File file, ReferenceMode referenceMode)
      Description copied from interface: OsgiContainerManager
      Installs a bundle into a running OSGI container.
      Specified by:
      installBundle in interface OsgiContainerManager
      Parameters:
      file - The bundle file to install.
      referenceMode - specifies whether the container may install a reference to, rather than copy, the bundle file.
      Returns:
      The installed bundle.
    • isRunning

      public boolean isRunning()
      Specified by:
      isRunning in interface OsgiContainerManager
      Returns:
      If the container is running or not
    • getHostComponentRegistrations

      public List<HostComponentRegistration> getHostComponentRegistrations()
      Description copied from interface: OsgiContainerManager
      Gets a list of host component registrations
      Specified by:
      getHostComponentRegistrations in interface OsgiContainerManager
      Returns:
      A list of host component registrations