Class ORBImpl

  • All Implemented Interfaces:
    TypeCodeFactory

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

      • set_parameters_called

        private boolean set_parameters_called
      • OAInvocationInfoStack

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

        private java.lang.ThreadLocal<org.glassfish.pfl.basic.contain.StackImpl<ClientInvocationInfo>> clientInvocationInfoStack
      • codeBaseIOR

        private IOR codeBaseIOR
      • dynamicRequests

        private final java.util.List<Request> dynamicRequests
      • svResponseReceived

        private final SynchVariable svResponseReceived
      • runObj

        private final java.lang.Object runObj
      • shutdownObj

        private final java.lang.Object shutdownObj
      • numWaiters

        private final java.util.concurrent.atomic.AtomicInteger numWaiters
      • waitForCompletionObj

        private final java.lang.Object waitForCompletionObj
      • statueLock

        private final java.util.concurrent.locks.ReadWriteLock statueLock
      • status

        private byte status
      • invocationObj

        private final java.lang.Object invocationObj
      • numInvocations

        private java.util.concurrent.atomic.AtomicInteger numInvocations
      • isProcessingInvocation

        private java.lang.ThreadLocal<java.lang.Boolean> isProcessingInvocation
      • typeCodeForClassMap

        private java.util.Map<java.lang.Class<?>,​TypeCodeImpl> typeCodeForClassMap
      • valueFactoryCache

        private java.util.Map<java.lang.String,​ValueFactory> valueFactoryCache
      • orbVersionThreadLocal

        private java.lang.ThreadLocal<ORBVersion> orbVersionThreadLocal
      • transientServerId

        private int transientServerId
      • toaFactory

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

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

        private ORBData configData
      • resolverLock

        private final java.lang.Object resolverLock
      • urlOperation

        private Operation urlOperation
      • urlOperationLock

        private final java.lang.Object urlOperationLock
      • orbOwnsThreadPoolManager

        private boolean orbOwnsThreadPoolManager
      • idcount

        private static final java.util.Map<java.lang.String,​java.lang.Integer> idcount
      • rootName

        private java.lang.String rootName
      • badServerIdHandlerAccessLock

        private final java.lang.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 java.lang.String localHostString
      • clientDelegateFactoryAccessorLock

        private final java.lang.Object clientDelegateFactoryAccessorLock
      • corbaContactInfoListFactoryAccessLock

        private java.util.concurrent.locks.ReentrantReadWriteLock corbaContactInfoListFactoryAccessLock
      • corbaContactInfoListFactoryReadLock

        private java.util.concurrent.locks.Lock corbaContactInfoListFactoryReadLock
      • corbaContactInfoListFactoryWriteLock

        private java.util.concurrent.locks.Lock corbaContactInfoListFactoryWriteLock
      • objectKeyFactoryAccessLock

        private final java.lang.Object objectKeyFactoryAccessLock
      • legacyServerSocketManagerAccessLock

        private final java.lang.Object legacyServerSocketManagerAccessLock
      • threadPoolManagerAccessLock

        private final java.lang.Object threadPoolManagerAccessLock
    • Constructor Detail

      • ORBImpl

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

      • 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
      • 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.
      • initManagedObjectManager

        private void initManagedObjectManager()
      • preInit

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

        @InfoMethod
        private void configDataParsingComplete​(java.lang.String oRBId)
      • transportInitializationComplete

        @InfoMethod
        private void transportInitializationComplete​(java.lang.String oRBId)
      • userConfiguratorExecutionComplete

        @InfoMethod
        private void userConfiguratorExecutionComplete​(java.lang.String oRBId)
      • interceptorInitializationComplete

        @InfoMethod
        private void interceptorInitializationComplete​(java.lang.String oRBId)
      • mbeansRegistereed

        @InfoMethod
        private void mbeansRegistereed​(java.lang.String oRBId)
      • initializationComplete

        @InfoMethod
        private void initializationComplete​(java.lang.String oRBId)
      • startingShutdown

        @InfoMethod
        private void startingShutdown​(java.lang.String oRBId)
      • startingDestruction

        @InfoMethod
        private void startingDestruction​(java.lang.String oRBId)
      • isLocalServerIdInfo

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

        public java.lang.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​(java.lang.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​(java.util.Properties props)
        Specified by:
        set_parameters in class ORB
      • set_parameters

        protected void set_parameters​(java.applet.Applet app,
                                      java.util.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​(java.lang.String[] params,
                                  java.util.Properties props)
        Specified by:
        setParameters in class ORB
      • set_parameters

        protected void set_parameters​(java.lang.String[] params,
                                      java.util.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:
        CORBA package comments for unimplemented features
      • 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:
        NVList
      • 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:
        NVList
      • create_named_value

        public NamedValue create_named_value​(java.lang.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:
        NamedValue
      • 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:
        Context
      • 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 java.lang.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​(java.lang.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​(java.lang.String id,
                                         java.lang.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​(java.lang.String id,
                                        java.lang.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​(java.lang.String id,
                                       java.lang.String name,
                                       java.lang.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​(java.lang.String id,
                                        java.lang.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​(java.lang.String id,
                                            java.lang.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​(java.lang.String id,
                                            java.lang.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_recursive_tc, create_sequence_tc
      • 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​(java.lang.String id,
                                         java.lang.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​(java.lang.String id,
                                                     java.lang.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​(java.lang.String id,
                                        java.lang.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​(java.lang.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​(java.lang.String id,
                                            java.lang.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​(java.lang.Class c,
                                        TypeCodeImpl tci)
      • getTypeCodeForClass

        public TypeCodeImpl getTypeCodeForClass​(java.lang.Class c)
      • list_initial_services

        public java.lang.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​(java.lang.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​(java.lang.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
      • 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
      • 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​(java.lang.String hostName)
        Specified by:
        isLocalHost in class ORB
      • isLocalServerId

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

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

        private java.lang.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
      • invocationInfoChange

        @InfoMethod
        private void invocationInfoChange​(java.lang.String msg)
      • 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
      • 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
      • 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