Class OSGIListener
- java.lang.Object
-
- com.sun.corba.ee.impl.osgi.loader.OSGIListener
-
- All Implemented Interfaces:
java.util.EventListener
,org.osgi.framework.BundleActivator
,org.osgi.framework.BundleListener
,org.osgi.framework.SynchronousBundleListener
public class OSGIListener extends java.lang.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.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static class
OSGIListener.ClassCodeBaseHandlerImpl
private static class
OSGIListener.ClassNameResolverImpl
-
Field Summary
Fields Modifier and Type Field Description private static ClassCodeBaseHandler
ccbHandler
private static java.util.Map<java.lang.String,org.osgi.framework.Bundle>
classNameMap
private static org.glassfish.pfl.basic.func.UnaryFunction<java.lang.String,java.lang.Class<?>>
classNameResolver
private static java.util.concurrent.locks.ReadWriteLock
lock
private static java.lang.String
ORB_PROVIDER_KEY
private static java.util.Map<java.lang.String,org.osgi.framework.Bundle>
packageNameMap
private static org.osgi.service.packageadmin.PackageAdmin
pkgAdmin
private static ORBUtilSystemException
wrapper
-
Constructor Summary
Constructors Constructor Description OSGIListener()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
bundleChanged(org.osgi.framework.BundleEvent event)
static ClassCodeBaseHandler
classCodeBaseHandler()
static org.glassfish.pfl.basic.func.UnaryFunction<java.lang.String,java.lang.Class<?>>
classNameResolver()
private void
classNotFoundInBundle(java.lang.String arg)
private void
foundClassInBundle(java.lang.String arg, java.lang.String name)
private static java.lang.String
getBundleEventType(int type)
private static org.osgi.framework.Bundle
getBundleForClass(java.lang.String className)
private void
insertBundlePackage(java.lang.String pname, java.lang.String bname)
private void
insertClasses(org.osgi.framework.Bundle bundle)
private void
insertOrbProvider(java.lang.String cname, java.lang.String bname)
private void
probeBundlesForProviders()
private void
receivedBundleEvent(java.lang.String type, java.lang.String name)
private void
removeBundlePackage(java.lang.String pname, java.lang.String bname)
private void
removeClasses(org.osgi.framework.Bundle bundle)
private void
removeOrbProvider(java.lang.String cname, java.lang.String bname)
private static java.util.Dictionary
secureGetHeaders(org.osgi.framework.Bundle bundle)
private static java.lang.Class<?>
secureLoadClass(org.osgi.framework.Bundle bundle, java.lang.String className)
private static void
setPackageAdmin(org.osgi.service.packageadmin.PackageAdmin pa)
void
start(org.osgi.framework.BundleContext context)
void
stop(org.osgi.framework.BundleContext context)
-
-
-
Field Detail
-
lock
private static final java.util.concurrent.locks.ReadWriteLock lock
-
wrapper
private static final ORBUtilSystemException wrapper
-
ORB_PROVIDER_KEY
private static final java.lang.String ORB_PROVIDER_KEY
- See Also:
- Constant Field Values
-
pkgAdmin
private static org.osgi.service.packageadmin.PackageAdmin pkgAdmin
-
classNameMap
private static java.util.Map<java.lang.String,org.osgi.framework.Bundle> classNameMap
-
packageNameMap
private static java.util.Map<java.lang.String,org.osgi.framework.Bundle> packageNameMap
-
classNameResolver
private static org.glassfish.pfl.basic.func.UnaryFunction<java.lang.String,java.lang.Class<?>> classNameResolver
-
ccbHandler
private static ClassCodeBaseHandler ccbHandler
-
-
Method Detail
-
setPackageAdmin
private static void setPackageAdmin(org.osgi.service.packageadmin.PackageAdmin pa)
-
secureGetHeaders
private static java.util.Dictionary secureGetHeaders(org.osgi.framework.Bundle bundle)
-
secureLoadClass
private static java.lang.Class<?> secureLoadClass(org.osgi.framework.Bundle bundle, java.lang.String className) throws java.lang.ClassNotFoundException
- Throws:
java.lang.ClassNotFoundException
-
getBundleEventType
private static java.lang.String getBundleEventType(int type)
-
classNotFoundInBundle
@InfoMethod private void classNotFoundInBundle(java.lang.String arg)
-
foundClassInBundle
@InfoMethod private void foundClassInBundle(java.lang.String arg, java.lang.String name)
-
classNameResolver
public static org.glassfish.pfl.basic.func.UnaryFunction<java.lang.String,java.lang.Class<?>> classNameResolver()
-
classCodeBaseHandler
public static ClassCodeBaseHandler classCodeBaseHandler()
-
insertOrbProvider
@InfoMethod private void insertOrbProvider(java.lang.String cname, java.lang.String bname)
-
insertBundlePackage
@InfoMethod private void insertBundlePackage(java.lang.String pname, java.lang.String bname)
-
insertClasses
private void insertClasses(org.osgi.framework.Bundle bundle)
-
removeOrbProvider
@InfoMethod private void removeOrbProvider(java.lang.String cname, java.lang.String bname)
-
removeBundlePackage
@InfoMethod private void removeBundlePackage(java.lang.String pname, java.lang.String bname)
-
removeClasses
private void removeClasses(org.osgi.framework.Bundle bundle)
-
getBundleForClass
private static org.osgi.framework.Bundle getBundleForClass(java.lang.String className)
-
probeBundlesForProviders
@InfoMethod private void probeBundlesForProviders()
-
start
public void start(org.osgi.framework.BundleContext context)
- Specified by:
start
in interfaceorg.osgi.framework.BundleActivator
-
stop
public void stop(org.osgi.framework.BundleContext context)
- Specified by:
stop
in interfaceorg.osgi.framework.BundleActivator
-
receivedBundleEvent
@InfoMethod private void receivedBundleEvent(java.lang.String type, java.lang.String name)
-
bundleChanged
public void bundleChanged(org.osgi.framework.BundleEvent event)
- Specified by:
bundleChanged
in interfaceorg.osgi.framework.BundleListener
-
-