From 070025f5c7f469867cbe9f1eecc7f8e99a79f14b Mon Sep 17 00:00:00 2001 From: Kalin Chan Date: Wed, 25 Sep 2024 09:39:04 +0100 Subject: [PATCH] Add option to skip gmbal init --- .../com/sun/corba/ee/impl/oa/poa/POAFactory.java | 4 +++- .../java/com/sun/corba/ee/impl/oa/poa/POAImpl.java | 4 +++- .../com/sun/corba/ee/impl/oa/toa/TOAFactory.java | 4 +++- .../java/com/sun/corba/ee/impl/orb/ORBImpl.java | 14 ++++++++++---- .../ee/impl/transport/TransportManagerImpl.java | 12 +++++++++--- .../com/sun/corba/ee/spi/misc/ORBConstants.java | 1 + 6 files changed, 29 insertions(+), 10 deletions(-) diff --git a/orbmain/src/main/java/com/sun/corba/ee/impl/oa/poa/POAFactory.java b/orbmain/src/main/java/com/sun/corba/ee/impl/oa/poa/POAFactory.java index c7ebdbfc1..74f28c136 100644 --- a/orbmain/src/main/java/com/sun/corba/ee/impl/oa/poa/POAFactory.java +++ b/orbmain/src/main/java/com/sun/corba/ee/impl/oa/poa/POAFactory.java @@ -180,7 +180,9 @@ public void init( ORB orb ) NullaryFunction.Factory.makeConstant( (org.omg.CORBA.Object)poaCurrent ) ) ; this.mom = orb.mom() ; - mom.registerAtRoot( this ) ; + if (mom != null) { + mom.registerAtRoot( this ) ; + } } public ObjectAdapter find( ObjectAdapterId oaid ) diff --git a/orbmain/src/main/java/com/sun/corba/ee/impl/oa/poa/POAImpl.java b/orbmain/src/main/java/com/sun/corba/ee/impl/oa/poa/POAImpl.java index dab29e901..4c0f1bfcf 100644 --- a/orbmain/src/main/java/com/sun/corba/ee/impl/oa/poa/POAImpl.java +++ b/orbmain/src/main/java/com/sun/corba/ee/impl/oa/poa/POAImpl.java @@ -316,7 +316,9 @@ static POAFactory getPOAFactory( ORB orb ) @Poa private static void registerMBean( ORB orb, Object obj ) { - orb.mom().register( getPOAFactory( orb ), obj ) ; + if (orb.mom() != null) { + orb.mom().register( getPOAFactory( orb ), obj ) ; + } } // package private so that POAFactory can access it. diff --git a/orbmain/src/main/java/com/sun/corba/ee/impl/oa/toa/TOAFactory.java b/orbmain/src/main/java/com/sun/corba/ee/impl/oa/toa/TOAFactory.java index 006306010..abacb661c 100644 --- a/orbmain/src/main/java/com/sun/corba/ee/impl/oa/toa/TOAFactory.java +++ b/orbmain/src/main/java/com/sun/corba/ee/impl/oa/toa/TOAFactory.java @@ -81,7 +81,9 @@ public void init( ORB orb ) this.orb = orb ; tom = new TransientObjectManager( orb ) ; codebaseToTOA = new HashMap() ; - orb.mom().registerAtRoot( this ) ; + if (orb.mom() != null) { + orb.mom().registerAtRoot( this ) ; + } } public void shutdown( boolean waitForCompletion ) diff --git a/orbmain/src/main/java/com/sun/corba/ee/impl/orb/ORBImpl.java b/orbmain/src/main/java/com/sun/corba/ee/impl/orb/ORBImpl.java index 407d8f49f..f77151245 100644 --- a/orbmain/src/main/java/com/sun/corba/ee/impl/orb/ORBImpl.java +++ b/orbmain/src/main/java/com/sun/corba/ee/impl/orb/ORBImpl.java @@ -141,7 +141,9 @@ import org.glassfish.pfl.basic.contain.ResourceFactory; import org.glassfish.pfl.basic.func.NullaryFunction; import org.glassfish.pfl.tf.spi.annotation.InfoMethod; - + +import static com.sun.corba.ee.spi.misc.ORBConstants.SKIP_GMBAL_INIT; + /** * The JavaIDL ORB implementation. */ @@ -550,7 +552,9 @@ private void postInit( String[] params, DataCollector dataCollector ) { setDebugFlags( configData.getORBDebugFlags() ) ; configDataParsingComplete( getORBData().getORBId() ) ; - initManagedObjectManager() ; + if (!Boolean.parseBoolean(System.getProperty(SKIP_GMBAL_INIT, "false"))) { + initManagedObjectManager() ; + } // The TimerManager must be // initialized BEFORE the pihandler.initialize() call, in @@ -618,8 +622,10 @@ private void postInit( String[] params, DataCollector dataCollector ) { // Now the ORB is ready, so finish all of the MBean registration if (configData.registerMBeans()) { - mom.resumeJMXRegistration() ; - mbeansRegistereed( getORBData().getORBId() ) ; + if (mom != null) { + mom.resumeJMXRegistration() ; + mbeansRegistereed( getORBData().getORBId() ) ; + } } } diff --git a/orbmain/src/main/java/com/sun/corba/ee/impl/transport/TransportManagerImpl.java b/orbmain/src/main/java/com/sun/corba/ee/impl/transport/TransportManagerImpl.java index c8e2653ad..28f670e35 100644 --- a/orbmain/src/main/java/com/sun/corba/ee/impl/transport/TransportManagerImpl.java +++ b/orbmain/src/main/java/com/sun/corba/ee/impl/transport/TransportManagerImpl.java @@ -73,7 +73,9 @@ public TransportManagerImpl(ORB orb) outboundConnectionCaches = new HashMap(); inboundConnectionCaches = new HashMap(); selector = new SelectorImpl(orb); - orb.mom().register( orb, this ) ; + if (orb.mom() != null) { + orb.mom().register( orb, this ) ; + } } public ByteBufferPool getByteBufferPool(int id) @@ -99,7 +101,9 @@ public OutboundConnectionCache getOutboundConnectionCache( // We need to clean up the multi-cache support: // this really only works with a single cache. - orb.mom().register( this, connectionCache ) ; + if (orb.mom() != null) { + orb.mom().register( this, connectionCache ) ; + } StatsProviderManager.register( "orb", PluginPoint.SERVER, "orb/transport/connectioncache/outbound", connectionCache ) ; @@ -139,7 +143,9 @@ public InboundConnectionCache getInboundConnectionCache( connectionCache = new InboundConnectionCacheImpl(orb, acceptor); - orb.mom().register( this, connectionCache ) ; + if (orb.mom() != null) { + orb.mom().register( this, connectionCache ) ; + } StatsProviderManager.register( "orb", PluginPoint.SERVER, "orb/transport/connectioncache/inbound", connectionCache ) ; diff --git a/orbmain/src/main/java/com/sun/corba/ee/spi/misc/ORBConstants.java b/orbmain/src/main/java/com/sun/corba/ee/spi/misc/ORBConstants.java index d35b3a7f8..e8a230fcc 100644 --- a/orbmain/src/main/java/com/sun/corba/ee/spi/misc/ORBConstants.java +++ b/orbmain/src/main/java/com/sun/corba/ee/spi/misc/ORBConstants.java @@ -181,6 +181,7 @@ public static int makePersistent( int scid ) public static final String SERVER_PORT_PROPERTY = SUN_PREFIX + "ORBServerPort" ; public static final String SERVER_HOST_PROPERTY = SUN_PREFIX + "ORBServerHost" ; public static final String ORB_ID_PROPERTY = CORBA_PREFIX + "ORBId" ; + public static final String SKIP_GMBAL_INIT = CORBA_PREFIX + "SkipGmbalInit" ; // This property is provided for backward compatibility reasons public static final String OLD_ORB_ID_PROPERTY = SUN_PREFIX + "ORBid" ; public static final String ORB_SERVER_ID_PROPERTY = CORBA_PREFIX + "ORBServerId" ;