Class OSGIListener

java.lang.Object
com.sun.corba.ee.impl.osgi.loader.OSGIListener
All Implemented Interfaces:
EventListener, org.osgi.framework.BundleActivator, org.osgi.framework.BundleListener, org.osgi.framework.SynchronousBundleListener

public class OSGIListener extends Object implements org.osgi.framework.BundleActivator, org.osgi.framework.SynchronousBundleListener
OSGi class that monitors which bundles provide classes that the ORB needs to instantiate for initialization.

Note that OSGIListener must be a Bundle-Activator in the glassfish-corba-orb bundle.

Any bundle that provides ORB classes to the ORB initialization code must declare all such classes in a comma-separated list in the bundle manifest with the keywork ORB-Class-Provider.

  • Field Details

    • lock

      private static final ReadWriteLock lock
    • wrapper

      private static final ORBUtilSystemException wrapper
    • ORB_PROVIDER_KEY

      private static final String ORB_PROVIDER_KEY
      See Also:
    • pkgAdmin

      private static org.osgi.service.packageadmin.PackageAdmin pkgAdmin
    • classNameMap

      private static Map<String,org.osgi.framework.Bundle> classNameMap
    • packageNameMap

      private static Map<String,org.osgi.framework.Bundle> packageNameMap
    • classNameResolver

      private static org.glassfish.pfl.basic.func.UnaryFunction<String,Class<?>> classNameResolver
    • ccbHandler

      private static ClassCodeBaseHandler ccbHandler
  • Constructor Details

    • OSGIListener

      public OSGIListener()
  • Method Details

    • setPackageAdmin

      private static void setPackageAdmin(org.osgi.service.packageadmin.PackageAdmin pa)
    • secureGetHeaders

      private static Dictionary secureGetHeaders(org.osgi.framework.Bundle bundle)
    • secureLoadClass

      private static Class<?> secureLoadClass(org.osgi.framework.Bundle bundle, String className) throws ClassNotFoundException
      Throws:
      ClassNotFoundException
    • getBundleEventType

      private static String getBundleEventType(int type)
    • classNotFoundInBundle

      @InfoMethod private void classNotFoundInBundle(String arg)
    • foundClassInBundle

      @InfoMethod private void foundClassInBundle(String arg, String name)
    • classNameResolver

      public static org.glassfish.pfl.basic.func.UnaryFunction<String,Class<?>> classNameResolver()
    • classCodeBaseHandler

      public static ClassCodeBaseHandler classCodeBaseHandler()
    • insertOrbProvider

      @InfoMethod private void insertOrbProvider(String cname, String bname)
    • insertBundlePackage

      @InfoMethod private void insertBundlePackage(String pname, String bname)
    • insertClasses

      private void insertClasses(org.osgi.framework.Bundle bundle)
    • removeOrbProvider

      @InfoMethod private void removeOrbProvider(String cname, String bname)
    • removeBundlePackage

      @InfoMethod private void removeBundlePackage(String pname, String bname)
    • removeClasses

      private void removeClasses(org.osgi.framework.Bundle bundle)
    • getBundleForClass

      private static org.osgi.framework.Bundle getBundleForClass(String className)
    • probeBundlesForProviders

      @InfoMethod private void probeBundlesForProviders()
    • start

      public void start(org.osgi.framework.BundleContext context)
      Specified by:
      start in interface org.osgi.framework.BundleActivator
    • stop

      public void stop(org.osgi.framework.BundleContext context)
      Specified by:
      stop in interface org.osgi.framework.BundleActivator
    • receivedBundleEvent

      @InfoMethod private void receivedBundleEvent(String type, String name)
    • bundleChanged

      public void bundleChanged(org.osgi.framework.BundleEvent event)
      Specified by:
      bundleChanged in interface org.osgi.framework.BundleListener