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.SynchronousBundleListenerOSGi 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 classOSGIListener.ClassCodeBaseHandlerImplprivate static classOSGIListener.ClassNameResolverImpl
-
Field Summary
Fields Modifier and Type Field Description private static ClassCodeBaseHandlerccbHandlerprivate static java.util.Map<java.lang.String,org.osgi.framework.Bundle>classNameMapprivate static org.glassfish.pfl.basic.func.UnaryFunction<java.lang.String,java.lang.Class<?>>classNameResolverprivate static java.util.concurrent.locks.ReadWriteLocklockprivate static java.lang.StringORB_PROVIDER_KEYprivate static java.util.Map<java.lang.String,org.osgi.framework.Bundle>packageNameMapprivate static org.osgi.service.packageadmin.PackageAdminpkgAdminprivate static ORBUtilSystemExceptionwrapper
-
Constructor Summary
Constructors Constructor Description OSGIListener()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidbundleChanged(org.osgi.framework.BundleEvent event)static ClassCodeBaseHandlerclassCodeBaseHandler()static org.glassfish.pfl.basic.func.UnaryFunction<java.lang.String,java.lang.Class<?>>classNameResolver()private voidclassNotFoundInBundle(java.lang.String arg)private voidfoundClassInBundle(java.lang.String arg, java.lang.String name)private static java.lang.StringgetBundleEventType(int type)private static org.osgi.framework.BundlegetBundleForClass(java.lang.String className)private voidinsertBundlePackage(java.lang.String pname, java.lang.String bname)private voidinsertClasses(org.osgi.framework.Bundle bundle)private voidinsertOrbProvider(java.lang.String cname, java.lang.String bname)private voidprobeBundlesForProviders()private voidreceivedBundleEvent(java.lang.String type, java.lang.String name)private voidremoveBundlePackage(java.lang.String pname, java.lang.String bname)private voidremoveClasses(org.osgi.framework.Bundle bundle)private voidremoveOrbProvider(java.lang.String cname, java.lang.String bname)private static java.util.DictionarysecureGetHeaders(org.osgi.framework.Bundle bundle)private static java.lang.Class<?>secureLoadClass(org.osgi.framework.Bundle bundle, java.lang.String className)private static voidsetPackageAdmin(org.osgi.service.packageadmin.PackageAdmin pa)voidstart(org.osgi.framework.BundleContext context)voidstop(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:
startin interfaceorg.osgi.framework.BundleActivator
-
stop
public void stop(org.osgi.framework.BundleContext context)
- Specified by:
stopin 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:
bundleChangedin interfaceorg.osgi.framework.BundleListener
-
-