Class ORBImpl

All Implemented Interfaces:
TypeCodeFactory

public class ORBImpl extends ORB
The JavaIDL ORB implementation.
  • Field Details

    • set_parameters_called

      private boolean set_parameters_called
    • transportManager

      protected TransportManager transportManager
    • legacyServerSocketManager

      protected LegacyServerSocketManager legacyServerSocketManager
    • OAInvocationInfoStack

      private ThreadLocal<org.glassfish.pfl.basic.contain.StackImpl<OAInvocationInfo>> OAInvocationInfoStack
    • clientInvocationInfoStack

      private ThreadLocal<org.glassfish.pfl.basic.contain.StackImpl<ClientInvocationInfo>> clientInvocationInfoStack
    • codeBase

      private CodeBase codeBase
    • codeBaseIOR

      private IOR codeBaseIOR
    • dynamicRequests

      private final List<Request> dynamicRequests
    • svResponseReceived

      private final SynchVariable svResponseReceived
    • runObj

      private final Object runObj
    • shutdownObj

      private final Object shutdownObj
    • numWaiters

      private final AtomicInteger numWaiters
    • waitForCompletionObj

      private final Object waitForCompletionObj
    • STATUS_OPERATING

      private static final byte STATUS_OPERATING
      See Also:
    • STATUS_SHUTTING_DOWN

      private static final byte STATUS_SHUTTING_DOWN
      See Also:
    • STATUS_SHUTDOWN

      private static final byte STATUS_SHUTDOWN
      See Also:
    • STATUS_DESTROYED

      private static final byte STATUS_DESTROYED
      See Also:
    • statueLock

      private final ReadWriteLock statueLock
    • status

      private byte status
    • invocationObj

      private final Object invocationObj
    • numInvocations

      private AtomicInteger numInvocations
    • isProcessingInvocation

      private ThreadLocal<Boolean> isProcessingInvocation
    • typeCodeForClassMap

      private Map<Class<?>,TypeCodeImpl> typeCodeForClassMap
    • valueFactoryCache

      private Map<String,ValueFactory> valueFactoryCache
    • orbVersionThreadLocal

      private ThreadLocal<ORBVersion> orbVersionThreadLocal
    • requestDispatcherRegistry

      private RequestDispatcherRegistry requestDispatcherRegistry
    • copierManager

      private CopierManager copierManager
    • transientServerId

      private int transientServerId
    • serviceContextFactoryRegistry

      private ServiceContextFactoryRegistry serviceContextFactoryRegistry
    • serviceContextsCache

      private ServiceContextsCache serviceContextsCache
    • toaFactory

      private org.glassfish.pfl.basic.contain.ResourceFactory<TOAFactory> toaFactory
    • poaFactory

      private org.glassfish.pfl.basic.contain.ResourceFactory<POAFactory> poaFactory
    • pihandler

      private PIHandler pihandler
    • configData

      private ORBData configData
    • badServerIdHandler

      private BadServerIdHandler badServerIdHandler
    • clientDelegateFactory

      private ClientDelegateFactory clientDelegateFactory
    • corbaContactInfoListFactory

      private ContactInfoListFactory corbaContactInfoListFactory
    • resolver

      private Resolver resolver
    • localResolver

      private LocalResolver localResolver
    • insNamingDelegate

      private ServerRequestDispatcher insNamingDelegate
    • resolverLock

      private final Object resolverLock
    • urlOperation

      private Operation urlOperation
    • urlOperationLock

      private final Object urlOperationLock
    • taggedComponentFactoryFinder

      private TaggedComponentFactoryFinder taggedComponentFactoryFinder
    • taggedProfileFactoryFinder

      private IdentifiableFactoryFinder<TaggedProfile> taggedProfileFactoryFinder
    • taggedProfileTemplateFactoryFinder

      private IdentifiableFactoryFinder<TaggedProfileTemplate> taggedProfileTemplateFactoryFinder
    • objectKeyFactory

      private ObjectKeyFactory objectKeyFactory
    • orbOwnsThreadPoolManager

      private boolean orbOwnsThreadPoolManager
    • threadpoolMgr

      private ThreadPoolManager threadpoolMgr
    • invocationInterceptor

      private InvocationInterceptor invocationInterceptor
    • objectKeyCache

      private org.glassfish.pfl.basic.concurrent.WeakCache<ByteArrayWrapper,ObjectKeyCacheEntry> objectKeyCache
    • idcount

      private static final Map<String,Integer> idcount
    • rootName

      private String rootName
    • badServerIdHandlerAccessLock

      private final Object badServerIdHandlerAccessLock
      The bad server id handler is used by the Locator to send back the location of a persistant server to the client.
    • localHostString

      private static String localHostString
    • clientDelegateFactoryAccessorLock

      private final Object clientDelegateFactoryAccessorLock
    • corbaContactInfoListFactoryAccessLock

      private ReentrantReadWriteLock corbaContactInfoListFactoryAccessLock
    • corbaContactInfoListFactoryReadLock

      private Lock corbaContactInfoListFactoryReadLock
    • corbaContactInfoListFactoryWriteLock

      private Lock corbaContactInfoListFactoryWriteLock
    • objectKeyFactoryAccessLock

      private final Object objectKeyFactoryAccessLock
    • legacyServerSocketManagerAccessLock

      private final Object legacyServerSocketManagerAccessLock
    • threadPoolManagerAccessLock

      private final Object threadPoolManagerAccessLock
  • Constructor Details

    • ORBImpl

      public ORBImpl()
      Create a new ORB. Should be followed by the appropriate set_parameters() call.
  • Method Details

    • getInvocationInterceptor

      public InvocationInterceptor getInvocationInterceptor()
      Description copied from class: ORB
      Obtain the InvocationInterceptor for this ORB instance. By default this does nothing.
      Specified by:
      getInvocationInterceptor in class ORB
      Returns:
      The InvocationInterceptor.
    • setInvocationInterceptor

      public void setInvocationInterceptor(InvocationInterceptor interceptor)
      Description copied from class: ORB
      Set the InvocationInterceptor for this ORB instance. This will be used around all dynamic RMI-IIOP calls that are mediated by this ORB instance.
      Specified by:
      setInvocationInterceptor in class ORB
      Parameters:
      interceptor - The InvocationInterceptor to add.
    • getORBData

      public ORBData getORBData()
      Description copied from class: ORB
      The ORB configuration data
      Specified by:
      getORBData in class ORB
      Returns:
      Config data
    • getPIHandler

      public PIHandler getPIHandler()
      Specified by:
      getPIHandler in class ORB
    • createPIHandler

      public void createPIHandler()
      Specified by:
      createPIHandler in class ORB
    • getORBVersion

      public ORBVersion getORBVersion()
      Description copied from class: ORB
      Returns the implementation version of the ORB
      Specified by:
      getORBVersion in class ORB
      Returns:
      the ORB version.
    • setORBVersion

      public void setORBVersion(ORBVersion verObj)
      Specified by:
      setORBVersion in class ORB
    • initManagedObjectManager

      private void initManagedObjectManager()
    • preInit

      private void preInit(String[] params, Properties props)
      The following methods are ORB initialization
    • configDataParsingComplete

      @InfoMethod private void configDataParsingComplete(String oRBId)
    • transportInitializationComplete

      @InfoMethod private void transportInitializationComplete(String oRBId)
    • userConfiguratorExecutionComplete

      @InfoMethod private void userConfiguratorExecutionComplete(String oRBId)
    • interceptorInitializationComplete

      @InfoMethod private void interceptorInitializationComplete(String oRBId)
    • mbeansRegistereed

      @InfoMethod private void mbeansRegistereed(String oRBId)
    • initializationComplete

      @InfoMethod private void initializationComplete(String oRBId)
    • startingShutdown

      @InfoMethod private void startingShutdown(String oRBId)
    • startingDestruction

      @InfoMethod private void startingDestruction(String oRBId)
    • isLocalServerIdInfo

      @InfoMethod private void isLocalServerIdInfo(int subcontractId, int serverId, int transientServerId, boolean aTransient, boolean persistentServerIdInitialized, int psid)
    • getUniqueOrbId

      public String getUniqueOrbId()
      Description copied from class: ORB
      Returns a name for this ORB that is based on the ORB id (if any) and guaranteed to be unique within the ClassLoader that loaded the ORB class. This is the default implementation inherited by the ORBSingleton.
      Overrides:
      getUniqueOrbId in class ORB
      Returns:
      a unique name
    • postInit

      private void postInit(String[] params, DataCollector dataCollector)
    • getPOAFactory

      private POAFactory getPOAFactory()
    • getTOAFactory

      private TOAFactory getTOAFactory()
    • check_set_parameters

      public void check_set_parameters()
    • set_parameters

      public void set_parameters(Properties props)
      Specified by:
      set_parameters in class ORB
    • set_parameters

      protected void set_parameters(Applet app, Properties props)
      Description copied from class: ORB
      Allows the ORB implementation to be initialized with the given applet and parameters. This method, used in applets only, is implemented by subclass ORB implementations and called by the appropriate init method to pass in its parameters.
      Specified by:
      set_parameters in class ORB
      Parameters:
      app - the applet; may be null
      props - applet-specific properties; may be null
    • setParameters

      public void setParameters(String[] params, Properties props)
      Specified by:
      setParameters in class ORB
    • set_parameters

      protected void set_parameters(String[] params, Properties props)
      Description copied from class: ORB
      Allows the ORB implementation to be initialized with the given parameters and properties. This method, used in applications only, is implemented by subclass ORB implementations and called by the appropriate init method to pass in its parameters.
      Specified by:
      set_parameters in class ORB
      Parameters:
      params - command-line arguments for the application's main method; may be null
      props - application-specific properties; may be null
    • create_output_stream

      public OutputStream create_output_stream()
      The following methods are standard public CORBA ORB APIs
      Specified by:
      create_output_stream in class ORB
      Returns:
      the newly-created org.omg.CORBA.portable.OutputStream object
    • get_current

      public Current get_current()
      Deprecated.
      Get a Current pseudo-object. The Current interface is used to manage thread-specific information for use by the transactions, security and other services. This method is deprecated, and replaced by ORB.resolve_initial_references("NameOfCurrentObject");
      Overrides:
      get_current in class ORB
      Returns:
      a Current pseudo-object.
      See Also:
    • create_list

      public NVList create_list(int count)
      Create an NVList
      Specified by:
      create_list in class ORB
      Parameters:
      count - size of list to create
      Returns:
      NVList created
      See Also:
    • create_operation_list

      public NVList create_operation_list(Object oper)
      Create an NVList corresponding to an OperationDef
      Overrides:
      create_operation_list in class ORB
      Parameters:
      oper - operation def to use to create list
      Returns:
      NVList created
      See Also:
    • create_named_value

      public NamedValue create_named_value(String s, Any any, int flags)
      Create a NamedValue
      Specified by:
      create_named_value in class ORB
      Parameters:
      s - the name of the NamedValue object
      any - the Any value to be inserted into the NamedValue object
      flags - the argument mode flags for the NamedValue: one of ARG_IN.value, ARG_OUT.value, or ARG_INOUT.value.
      Returns:
      NamedValue created
      See Also:
    • create_exception_list

      public ExceptionList create_exception_list()
      Create an ExceptionList
      Specified by:
      create_exception_list in class ORB
      Returns:
      ExceptionList created
    • create_context_list

      public ContextList create_context_list()
      Create a ContextList
      Specified by:
      create_context_list in class ORB
      Returns:
      ContextList created
      See Also:
    • get_default_context

      public Context get_default_context()
      Get the default Context object
      Specified by:
      get_default_context in class ORB
      Returns:
      the default Context object
      See Also:
    • create_environment

      public Environment create_environment()
      Create an Environment
      Specified by:
      create_environment in class ORB
      Returns:
      Environment created
      See Also:
    • send_multiple_requests_oneway

      public void send_multiple_requests_oneway(Request[] req)
      Description copied from class: ORB
      Sends multiple dynamic (DII) requests asynchronously without expecting any responses. Note that oneway invocations are not guaranteed to reach the server.
      Specified by:
      send_multiple_requests_oneway in class ORB
      Parameters:
      req - an array of request objects
    • send_multiple_requests_deferred

      public void send_multiple_requests_deferred(Request[] req)
      Send multiple dynamic requests asynchronously.
      Specified by:
      send_multiple_requests_deferred in class ORB
      Parameters:
      req - an array of request objects.
    • poll_next_response

      public boolean poll_next_response()
      Find out if any of the deferred invocations have a response yet.
      Specified by:
      poll_next_response in class ORB
      Returns:
      true if there is a response available; false otherwise
    • get_next_response

      public Request get_next_response() throws WrongTransaction
      Get the next request that has gotten a response.
      Specified by:
      get_next_response in class ORB
      Returns:
      the next request ready with a response.
      Throws:
      WrongTransaction - if the method get_next_response is called from a transaction scope different from the one from which the original request was sent. See the OMG Transaction Service specification for details.
    • notifyORB

      public void notifyORB()
      Notify response to ORB for get_next_response
      Specified by:
      notifyORB in class ORB
    • object_to_string

      public String object_to_string(Object obj)
      Convert an object ref to a string.
      Specified by:
      object_to_string in class ORB
      Parameters:
      obj - The object to stringify.
      Returns:
      A stringified object reference.
    • string_to_object

      public Object string_to_object(String str)
      Convert a stringified object reference to the object it represents.
      Specified by:
      string_to_object in class ORB
      Parameters:
      str - The stringified object reference.
      Returns:
      The unstringified object reference.
    • getFVDCodeBaseIOR

      public IOR getFVDCodeBaseIOR()
      Description copied from class: ORB
      Returns the IOR used for the Full Value Description
      Specified by:
      getFVDCodeBaseIOR in class ORB
      Returns:
      The IOR used for the Full Value Description
    • get_primitive_tc

      public TypeCode get_primitive_tc(TCKind tcKind)
      Get the TypeCode for a primitive type.
      Specified by:
      get_primitive_tc in class ORB
      Parameters:
      tcKind - the integer kind for the primitive type
      Returns:
      the requested TypeCode
    • create_struct_tc

      public TypeCode create_struct_tc(String id, String name, StructMember[] members)
      Create a TypeCode for a structure.
      Specified by:
      create_struct_tc in class ORB
      Parameters:
      id - the logical id for the typecode.
      name - the name for the typecode.
      members - an array describing the members of the TypeCode.
      Returns:
      the requested TypeCode.
    • create_union_tc

      public TypeCode create_union_tc(String id, String name, TypeCode discriminator_type, UnionMember[] members)
      Create a TypeCode for a union.
      Specified by:
      create_union_tc in class ORB
      Parameters:
      id - the logical id for the typecode.
      name - the name for the typecode.
      discriminator_type - the type of the union discriminator.
      members - an array describing the members of the TypeCode.
      Returns:
      the requested TypeCode.
    • create_enum_tc

      public TypeCode create_enum_tc(String id, String name, String[] members)
      Create a TypeCode for an enum.
      Specified by:
      create_enum_tc in class ORB
      Parameters:
      id - the logical id for the typecode.
      name - the name for the typecode.
      members - an array describing the members of the TypeCode.
      Returns:
      the requested TypeCode.
    • create_alias_tc

      public TypeCode create_alias_tc(String id, String name, TypeCode original_type)
      Create a TypeCode for an alias.
      Specified by:
      create_alias_tc in class ORB
      Parameters:
      id - the logical id for the typecode.
      name - the name for the typecode.
      original_type - the type this is an alias for.
      Returns:
      the requested TypeCode.
    • create_exception_tc

      public TypeCode create_exception_tc(String id, String name, StructMember[] members)
      Create a TypeCode for an exception.
      Specified by:
      create_exception_tc in class ORB
      Parameters:
      id - the logical id for the typecode.
      name - the name for the typecode.
      members - an array describing the members of the TypeCode.
      Returns:
      the requested TypeCode.
    • create_interface_tc

      public TypeCode create_interface_tc(String id, String name)
      Create a TypeCode for an interface.
      Specified by:
      create_interface_tc in class ORB
      Parameters:
      id - the logical id for the typecode.
      name - the name for the typecode.
      Returns:
      the requested TypeCode.
    • create_string_tc

      public TypeCode create_string_tc(int bound)
      Create a TypeCode for a string.
      Specified by:
      create_string_tc in class ORB
      Parameters:
      bound - the bound for the string.
      Returns:
      the requested TypeCode.
    • create_wstring_tc

      public TypeCode create_wstring_tc(int bound)
      Create a TypeCode for a wide string.
      Specified by:
      create_wstring_tc in class ORB
      Parameters:
      bound - the bound for the string.
      Returns:
      the requested TypeCode.
    • create_sequence_tc

      public TypeCode create_sequence_tc(int bound, TypeCode element_type)
      Description copied from class: ORB
      Creates a TypeCode object representing an IDL sequence. The TypeCode object is initialized with the given bound and element type.
      Specified by:
      create_sequence_tc in class ORB
      Parameters:
      bound - the bound for the sequence, 0 if unbounded
      element_type - the TypeCode object describing the elements contained in the sequence
      Returns:
      a newly-created TypeCode object describing an IDL sequence
    • create_recursive_sequence_tc

      public TypeCode create_recursive_sequence_tc(int bound, int offset)
      Description copied from class: ORB
      Creates a TypeCode object representing a a recursive IDL sequence.

      For the IDL struct Node in following code fragment, the offset parameter for creating its sequence would be 1:

          Struct Node {
              long value;
              Sequence <Node> subnodes;
          };
       
      Specified by:
      create_recursive_sequence_tc in class ORB
      Parameters:
      bound - the bound for the sequence, 0 if unbounded
      offset - the index to the enclosing TypeCode object that describes the elements of this sequence
      Returns:
      a newly-created TypeCode object describing a recursive sequence
      See Also:
    • create_array_tc

      public TypeCode create_array_tc(int length, TypeCode element_type)
      Description copied from class: ORB
      Creates a TypeCode object representing an IDL array. The TypeCode object is initialized with the given length and element type.
      Specified by:
      create_array_tc in class ORB
      Parameters:
      length - the length of the array
      element_type - a TypeCode object describing the type of element contained in the array
      Returns:
      a newly-created TypeCode object describing an IDL array
    • create_native_tc

      public TypeCode create_native_tc(String id, String name)
      Description copied from class: ORB
      Create a TypeCode object for an IDL native type.
      Overrides:
      create_native_tc in class ORB
      Parameters:
      id - the logical id for the native type.
      name - the name of the native type.
      Returns:
      the requested TypeCode.
    • create_abstract_interface_tc

      public TypeCode create_abstract_interface_tc(String id, String name)
      Description copied from class: ORB
      Create a TypeCode object for an IDL abstract interface.
      Overrides:
      create_abstract_interface_tc in class ORB
      Parameters:
      id - the logical id for the abstract interface type.
      name - the name of the abstract interface type.
      Returns:
      the requested TypeCode.
    • create_fixed_tc

      public TypeCode create_fixed_tc(short digits, short scale)
      Description copied from class: ORB
      Create a TypeCode object for an IDL fixed type.
      Overrides:
      create_fixed_tc in class ORB
      Parameters:
      digits - specifies the total number of decimal digits in the number and must be from 1 to 31 inclusive.
      scale - specifies the position of the decimal point.
      Returns:
      the requested TypeCode.
    • create_value_tc

      public TypeCode create_value_tc(String id, String name, short type_modifier, TypeCode concrete_base, ValueMember[] members)
      Description copied from class: ORB
      Create a TypeCode object for an IDL value type. The concrete_base parameter is the TypeCode for the immediate concrete valuetype base of the valuetype for which the TypeCode is being created. It may be null if the valuetype does not have a concrete base.
      Overrides:
      create_value_tc in class ORB
      Parameters:
      id - the logical id for the value type.
      name - the name of the value type.
      type_modifier - one of the value type modifier constants: VM_NONE, VM_CUSTOM, VM_ABSTRACT or VM_TRUNCATABLE
      concrete_base - a TypeCode object describing the concrete valuetype base
      members - an array containing the members of the value type
      Returns:
      the requested TypeCode
    • create_recursive_tc

      public TypeCode create_recursive_tc(String id)
      Description copied from class: ORB
      Create a recursive TypeCode object which serves as a placeholder for a concrete TypeCode during the process of creating TypeCodes which contain recursion. The id parameter specifies the repository id of the type for which the recursive TypeCode is serving as a placeholder. Once the recursive TypeCode has been properly embedded in the enclosing TypeCode which corresponds to the specified repository id, it will function as a normal TypeCode. Invoking operations on the recursive TypeCode before it has been embedded in the enclosing TypeCode will result in a BAD_TYPECODE exception.

      For example, the following IDL type declaration contains recursion:

          Struct Node {
              Sequence<Node> subnodes;
          };
       

      To create a TypeCode for struct Node, you would invoke the TypeCode creation operations as shown below:

       String nodeID = "IDL:Node:1.0";
       TypeCode recursiveSeqTC = orb.create_sequence_tc(0, orb.create_recursive_tc(nodeID));
       StructMember[] members = { new StructMember("subnodes", recursiveSeqTC, null) };
       TypeCode structNodeTC = orb.create_struct_tc(nodeID, "Node", members);
       

      Also note that the following is an illegal IDL type declaration:

          Struct Node {
              Node next;
          };
       

      Recursive types can only appear within sequences which can be empty. That way marshaling problems, when transmitting the struct in an Any, are avoided.

      Overrides:
      create_recursive_tc in class ORB
      Parameters:
      id - the logical id of the referenced type
      Returns:
      the requested TypeCode
    • create_value_box_tc

      public TypeCode create_value_box_tc(String id, String name, TypeCode boxed_type)
      Description copied from class: ORB
      Creates a TypeCode object for an IDL value box.
      Overrides:
      create_value_box_tc in class ORB
      Parameters:
      id - the logical id for the value type
      name - the name of the value type
      boxed_type - the TypeCode for the type
      Returns:
      the requested TypeCode
    • create_any

      public Any create_any()
      Description copied from class: ORB
      Creates an IDL Any object initialized to contain a Typecode object whose kind field is set to TCKind.tc_null.
      Specified by:
      create_any in class ORB
      Returns:
      a newly-created Any object
    • setTypeCodeForClass

      public void setTypeCodeForClass(Class c, TypeCodeImpl tci)
    • getTypeCodeForClass

      public TypeCodeImpl getTypeCodeForClass(Class c)
    • list_initial_services

      public String[] list_initial_services()
      The following methods deal with listing and resolving the initial (bootstrap) object references such as "NameService".
      Specified by:
      list_initial_services in class ORB
      Returns:
      an array of String objects that represent the object references for CORBA services that are initially available with this ORB
    • resolve_initial_references

      public Object resolve_initial_references(String identifier) throws InvalidName
      Description copied from class: ORB
      Resolves a specific object reference from the set of available initial service names.
      Specified by:
      resolve_initial_references in class ORB
      Parameters:
      identifier - the name of the initial service as a string
      Returns:
      the object reference associated with the given name
      Throws:
      InvalidName - if the given name is not associated with a known service
    • register_initial_reference

      public void register_initial_reference(String id, Object obj) throws InvalidName
      Description copied from class: ORB
      If this operation is called with an id, "Y", and an object, YY, then a subsequent call to ORB.resolve_initial_references( "Y" ) will return object YY.
      Overrides:
      register_initial_reference in class ORB
      Parameters:
      id - The ID by which the initial reference will be known.
      obj - The initial reference itself.
      Throws:
      InvalidName - if this operation is called with an empty string id or this operation is called with an id that is already registered, including the default names defined by OMG.
    • run

      public void run()
      The following methods (introduced in POA / CORBA2.1) deal with shutdown / single threading.
      Overrides:
      run in class ORB
    • shutdown

      public void shutdown(boolean wait_for_completion)
      Description copied from class: ORB
      Instructs the ORB to shut down, which causes all object adapters to shut down, in preparation for destruction.
      If the wait_for_completion parameter is true, this operation blocks until all ORB processing (including processing of currently executing requests, object deactivation, and other object adapter operations) has completed. If an application does this in a thread that is currently servicing an invocation, the BAD_INV_ORDER system exception will be thrown with the OMG minor code 3, since blocking would result in a deadlock.
      If the wait_for_completion parameter is FALSE, then shutdown may not have completed upon return.

      While the ORB is in the process of shutting down, the ORB operates as normal, servicing incoming and outgoing requests until all requests have been completed. Once an ORB has shutdown, only object reference management operations may be invoked on the ORB or any object reference obtained from it. An application may also invoke the destroy operation on the ORB itself. Invoking any other operation will throw the BAD_INV_ORDER system exception with the OMG minor code 4.

      The ORB.run method will return after shutdown has been called.

      Overrides:
      shutdown in class ORB
      Parameters:
      wait_for_completion - true if the call should block until the shutdown is complete; false if it should return immediately
    • shutdownServants

      protected void shutdownServants(boolean wait_for_completion)
    • checkShutdownState

      private void checkShutdownState()
    • isDuringDispatch

      public boolean isDuringDispatch()
      Specified by:
      isDuringDispatch in class ORB
    • startingDispatch

      public void startingDispatch()
      Specified by:
      startingDispatch in class ORB
    • finishedDispatch

      public void finishedDispatch()
      Specified by:
      finishedDispatch in class ORB
    • destroy

      public void destroy()
      formal/99-10-07 p 159: "If destroy is called on an ORB that has not been shut down, it will start the shutdown process and block until the ORB has shut down before it destroys the ORB."
      Overrides:
      destroy in class ORB
    • register_value_factory

      public ValueFactory register_value_factory(String repositoryID, ValueFactory factory)
      Registers a value factory for a particular repository ID.
      Overrides:
      register_value_factory in class ORB
      Parameters:
      repositoryID - the repository ID.
      factory - the factory.
      Returns:
      the previously registered factory for the given repository ID, or null if no such factory was previously registered.
      Throws:
      BAD_PARAM - if the registration fails.
      See Also:
    • unregister_value_factory

      public void unregister_value_factory(String repositoryID)
      Unregisters a value factory for a particular repository ID.
      Overrides:
      unregister_value_factory in class ORB
      Parameters:
      repositoryID - the repository ID.
      See Also:
    • lookup_value_factory

      public ValueFactory lookup_value_factory(String repositoryID)
      Finds and returns a value factory for the given repository ID. The value factory returned was previously registered by a call to register_value_factory(java.lang.String, org.omg.CORBA.portable.ValueFactory) or is the default factory.
      Overrides:
      lookup_value_factory in class ORB
      Parameters:
      repositoryID - the repository ID.
      Returns:
      the value factory.
      Throws:
      BAD_PARAM - if unable to locate a factory.
      See Also:
    • peekInvocationInfo

      public OAInvocationInfo peekInvocationInfo()
      Specified by:
      peekInvocationInfo in class ORB
    • pushInvocationInfo

      public void pushInvocationInfo(OAInvocationInfo info)
      Specified by:
      pushInvocationInfo in class ORB
    • popInvocationInfo

      public OAInvocationInfo popInvocationInfo()
      Specified by:
      popInvocationInfo in class ORB
    • initBadServerIdHandler

      public void initBadServerIdHandler()
      Specified by:
      initBadServerIdHandler in class ORB
    • setBadServerIdHandler

      public void setBadServerIdHandler(BadServerIdHandler handler)
      Specified by:
      setBadServerIdHandler in class ORB
    • handleBadServerId

      public void handleBadServerId(ObjectKey okey)
      Description copied from class: ORB
      Handle a bad server id for the given object key. This should always through an exception: either a ForwardException to allow another server to handle the request, or else an error indication.
      Specified by:
      handleBadServerId in class ORB
      Parameters:
      okey - The ObjectKey to check for a valid server id.
    • create_policy

      public Policy create_policy(int type, Any val) throws PolicyError
      Description copied from class: ORB
      Can be invoked to create new instances of policy objects of a specific type with specified initial state. If create_policy fails to instantiate a new Policy object due to its inability to interpret the requested type and content of the policy, it raises the PolicyError exception with the appropriate reason.
      Overrides:
      create_policy in class ORB
      Parameters:
      type - the PolicyType of the policy object to be created
      val - the value that will be used to set the initial state of the Policy object that is created
      Returns:
      Reference to a newly created Policy object of type specified by the type parameter and initialized to a state specified by the val parameter
      Throws:
      PolicyError - when the requested policy is not supported or a requested initial state for the policy is not supported.
    • connect

      public void connect(Object servant)
      Description copied from class: ORB
      Connects the given servant object (a Java object that is an instance of the server implementation class) to the ORB. The servant class must extend the ImplBase class corresponding to the interface that is supported by the server. The servant must thus be a CORBA object reference, and inherit from org.omg.CORBA.Object. Servants created by the user can start receiving remote invocations after the method connect has been called. A servant may also be automatically and implicitly connected to the ORB if it is passed as an IDL parameter in an IDL method invocation on a non-local object, that is, if the servant object has to be marshalled and sent outside of the process address space.

      Calling the method connect has no effect when the servant object is already connected to the ORB.

      Deprecated by the OMG in favor of the Portable Object Adapter APIs.

      Overrides:
      connect in class ORB
      Parameters:
      servant - The servant object reference
    • disconnect

      public void disconnect(Object obj)
      Description copied from class: ORB
      Disconnects the given servant object from the ORB. After this method returns, the ORB will reject incoming remote requests for the disconnected servant and will send the exception org.omg.CORBA.OBJECT_NOT_EXIST back to the remote client. Thus the object appears to be destroyed from the point of view of remote clients. Note, however, that local requests issued using the servant directly do not pass through the ORB; hence, they will continue to be processed by the servant.

      Calling the method disconnect has no effect if the servant is not connected to the ORB.

      Deprecated by the OMG in favor of the Portable Object Adapter APIs.

      Overrides:
      disconnect in class ORB
      Parameters:
      obj - The servant object to be disconnected from the ORB
    • getTransientServerId

      public int getTransientServerId()
      Description copied from class: ORB
      Return this ORB's transient server ID. This is needed for initializing object adapters.
      Specified by:
      getTransientServerId in class ORB
      Returns:
      The transient server id.
    • getRequestDispatcherRegistry

      public RequestDispatcherRegistry getRequestDispatcherRegistry()
      Description copied from class: ORB
      The RequestDispatcher registry, which contains the request handling code
      Specified by:
      getRequestDispatcherRegistry in class ORB
      Returns:
      The RequestDispatcher registry
    • getServiceContextFactoryRegistry

      public ServiceContextFactoryRegistry getServiceContextFactoryRegistry()
      Description copied from class: ORB
      Returns the registry for all ServerContext factories of this server.
      Specified by:
      getServiceContextFactoryRegistry in class ORB
      Returns:
      the registry.
    • getServiceContextsCache

      public ServiceContextsCache getServiceContextsCache()
      Description copied from class: ORB
      Returns the cache used to optimise marshaling of ServiceContexts
      Specified by:
      getServiceContextsCache in class ORB
      Returns:
      the cache used
    • isLocalHost

      public boolean isLocalHost(String hostName)
      Specified by:
      isLocalHost in class ORB
    • isLocalServerId

      public boolean isLocalServerId(int subcontractId, int serverId)
      Specified by:
      isLocalServerId in class ORB
    • getHostName

      private String getHostName(String host) throws UnknownHostException
      The following public methods are for ORB shutdown.
      Throws:
      UnknownHostException
    • getLocalHostName

      private String getLocalHostName()
    • work_pending

      public boolean work_pending()
      This method always returns false because the ORB never needs the main thread to do work.
      Overrides:
      work_pending in class ORB
      Returns:
      true if there is work pending, meaning that the ORB needs the main thread to perform some work; false if there is no work pending and thus the ORB does not need the main thread
    • perform_work

      public void perform_work()
      This method does nothing. It is not required by the spec to do anything!
      Overrides:
      perform_work in class ORB
    • set_delegate

      public void set_delegate(Object servant)
      Description copied from class: ORB
      Unimplemented method
      Overrides:
      set_delegate in class ORB
      Parameters:
      servant - unused
      See Also:
    • invocationInfoChange

      @InfoMethod private void invocationInfoChange(String msg)
    • createOrIncrementInvocationInfo

      public ClientInvocationInfo createOrIncrementInvocationInfo()
      Specified by:
      createOrIncrementInvocationInfo in class ORB
    • releaseOrDecrementInvocationInfo

      public void releaseOrDecrementInvocationInfo()
      Specified by:
      releaseOrDecrementInvocationInfo in class ORB
    • getInvocationInfo

      public ClientInvocationInfo getInvocationInfo()
      Specified by:
      getInvocationInfo in class ORB
    • setClientDelegateFactory

      public void setClientDelegateFactory(ClientDelegateFactory factory)
      Specified by:
      setClientDelegateFactory in class ORB
    • getClientDelegateFactory

      public ClientDelegateFactory getClientDelegateFactory()
      Description copied from class: ORB
      Returns the ClientDelegateFactory, which is used to create the ClientDelegate that represents an IOR
      Specified by:
      getClientDelegateFactory in class ORB
      Returns:
      The ClientDelegateFactory
    • setCorbaContactInfoListFactory

      public void setCorbaContactInfoListFactory(ContactInfoListFactory factory)
      Specified by:
      setCorbaContactInfoListFactory in class ORB
    • getCorbaContactInfoListFactory

      public ContactInfoListFactory getCorbaContactInfoListFactory()
      Description copied from class: ORB
      Returns the CorbaContactInfoListFactory, which creates the contact info list that represents possible endpoints in an IOR.
      Specified by:
      getCorbaContactInfoListFactory in class ORB
      Returns:
      CorbaContactInfoListFactory used
    • setResolver

      public void setResolver(Resolver resolver)
      Description copied from class: ORB
      Set the resolver used in this ORB. This resolver will be used for list_initial_services and resolve_initial_references.
      Specified by:
      setResolver in class ORB
      Parameters:
      resolver - resolver to be used
    • getResolver

      public Resolver getResolver()
      Description copied from class: ORB
      Get the resolver used in this ORB. This resolver will be used for list_initial_services and resolve_initial_references.
      Specified by:
      getResolver in class ORB
      Returns:
      ORB Name resolver
    • setLocalResolver

      public void setLocalResolver(LocalResolver resolver)
      Description copied from class: ORB
      Set the LocalResolver used in this ORB. This LocalResolver is used for register_initial_reference only.
      Specified by:
      setLocalResolver in class ORB
      Parameters:
      resolver - ORB Local Name resolver
    • getLocalResolver

      public LocalResolver getLocalResolver()
      Description copied from class: ORB
      Get the LocalResolver used in this ORB. This LocalResolver is used for register_initial_reference only.
      Specified by:
      getLocalResolver in class ORB
      Returns:
      ORB Local Name resolver
    • setURLOperation

      public void setURLOperation(Operation stringToObject)
      Description copied from class: ORB
      Set the operation used in string_to_object calls. The Operation must expect a String and return an org.omg.CORBA.Object.
      Specified by:
      setURLOperation in class ORB
      Parameters:
      stringToObject - operation to be used
    • getURLOperation

      public Operation getURLOperation()
      Description copied from class: ORB
      Get the operation used in string_to_object calls. The Operation must expect a String and return an org.omg.CORBA.Object.
      Specified by:
      getURLOperation in class ORB
      Returns:
      operation used
    • setINSDelegate

      public void setINSDelegate(ServerRequestDispatcher sdel)
      Description copied from class: ORB
      Set the ServerRequestDispatcher that should be used for handling INS requests.
      Specified by:
      setINSDelegate in class ORB
      Parameters:
      sdel - dispatcher to be used
    • getTaggedComponentFactoryFinder

      public TaggedComponentFactoryFinder getTaggedComponentFactoryFinder()
      Description copied from class: ORB
      Factory finders for the various parts of the IOR: tagged components, tagged profiles, and tagged profile templates.
      Specified by:
      getTaggedComponentFactoryFinder in class ORB
      Returns:
      Finder of Factories for TaggedComponents of IORs
    • getTaggedProfileFactoryFinder

      public IdentifiableFactoryFinder<TaggedProfile> getTaggedProfileFactoryFinder()
      Description copied from class: ORB
      Factory finders for the various parts of the IOR: tagged profiles
      Specified by:
      getTaggedProfileFactoryFinder in class ORB
      Returns:
      Finder of Factories for TaggedProfiles of IORs
    • getTaggedProfileTemplateFactoryFinder

      public IdentifiableFactoryFinder<TaggedProfileTemplate> getTaggedProfileTemplateFactoryFinder()
      Description copied from class: ORB
      Factory finders for the various parts of the IOR: tagged profile templates
      Specified by:
      getTaggedProfileTemplateFactoryFinder in class ORB
      Returns:
      Finder of Factories for TaggedProfileTemplates of IORs
    • getObjectKeyFactory

      public ObjectKeyFactory getObjectKeyFactory()
      Specified by:
      getObjectKeyFactory in class ORB
    • setObjectKeyFactory

      public void setObjectKeyFactory(ObjectKeyFactory factory)
      Specified by:
      setObjectKeyFactory in class ORB
    • getTransportManager

      public TransportManager getTransportManager()
      Specified by:
      getTransportManager in class ORB
    • getCorbaTransportManager

      public TransportManager getCorbaTransportManager()
      Specified by:
      getCorbaTransportManager in class ORB
    • getLegacyServerSocketManager

      public LegacyServerSocketManager getLegacyServerSocketManager()
      Specified by:
      getLegacyServerSocketManager in class ORB
    • setThreadPoolManager

      public void setThreadPoolManager(ThreadPoolManager mgr)
      Specified by:
      setThreadPoolManager in class ORB
    • getThreadPoolManager

      public ThreadPoolManager getThreadPoolManager()
      Specified by:
      getThreadPoolManager in class ORB
    • getCopierManager

      public CopierManager getCopierManager()
      Specified by:
      getCopierManager in class ORB
    • getIOR

      public IOR getIOR(Object obj, boolean connectIfNecessary)
      Description copied from class: ORB
      Get the IOR for the CORBA object. If the object is an RMI-IIOP object that is not connected, and connectIfNecessary is true, connect to this ORB. This method will obtain an IOR for any non-local CORBA object, regardless of what ORB implementation created it. It may be more efficient for objrefs that were created by this ORB implementation.
      Overrides:
      getIOR in class ORB
      Parameters:
      obj - CORBA object to get IOR for
      connectIfNecessary - connect to RMI-IIOP if not already
      Returns:
      obtained IOR
    • extractObjectKeyCacheEntry

      public ObjectKeyCacheEntry extractObjectKeyCacheEntry(byte[] objKey)
      Description copied from class: ORB
      The singleton ORB does not need the cache, so just return null here.
      Overrides:
      extractObjectKeyCacheEntry in class ORB
      Parameters:
      objKey - ignored
      Returns:
      null
    • orbIsShutdown

      public boolean orbIsShutdown()
      Description copied from class: ORB
      Return whether or not the ORB is shutdown. A shutdown ORB cannot process incoming requests.
      Overrides:
      orbIsShutdown in class ORB
      Returns:
      true