org.omg.CORBA

Class ORB

Known Direct Subclasses:
ORB

public abstract class ORB
extends Object

A central class in CORBA implementation, responsible for sending and handling remote invocations. ORB also works as a factory for creating instances of certain CORBA classes. Despite the core library contains the fully working CORBA implementation, it also provides a simple way to plug-in the alternative CORBA support. This is done by replacing the ORB. The alternative ORB can be specified via properties, passed to ORB.Init(...). When creating an ORB instance, the class name is searched in the following locations:

1. Applet parameter or application string array, if any.
2. The properties parameter, if any.
3. The System properties.
4. The orb.properties file located in the user.home directory (if any).
5. The orb.properties file located in the java.home/lib directory (if any). The supported properties are:

org.omg.CORBA.ORBClassThe class, implementing the functional ORB, returned by init(Applet,Properties) or init(String[],Properties)
org.omg.CORBA.ORBSingletonClassThe class, implementing the restricted ORB, returned by init().
org.omg.CORBA.ORBInitRefSpecifies the initial reference, accessible by name with the method resolve_initial_references(String).
org.omg.CORBA.ORBidSpecifies the name (ORB Id) of this ORB. The ORB Id is later accessible by ObjectReferenceTemplate.orb_id(). The default value includes the hashcode of the ORB instance that is normally different for each ORB.
org.omg.CORBA.ServerIdSpecifies the name (Server Id) of this server. This property assigns value to the static field, ensuring that all ORB's on the same jre have the same Server Id. It is normally set as the system property. The server Id is later accessible as ObjectReferenceTemplate.server_id().
gnu.CORBA.ListenerPortSpecifies that this ORB should serve all its objects on a single port (for example, "1234") or on a specified port range (for example, "1100-1108"). The property is used when working with firewals and serves as a replacement for the proprietary properties like com.ibm.CORBA.ListenerPort or com.sun.CORBA.POA.ORBPersistentServerPort. The specified port or range should not overlap with the values, specified for other ORB's.
gnu.Corba.SocketFactorySets the user-defined server and client socket factory for the ORB being currently instantiated. Serves as a replacement of the proprietary property com.sun.CORBA.connection.ORBSocketFactoryClass. To have multiple types of sockets, instantiate several ORB's with this property each time set to the different value. The factory must implement gnu.CORBA.interfaces.SocketFactory.

The command line accepts the same properties as a keys. When specifying in the command line, the prefix org.omg.CORBA can be omitted, for instance -ORBInitRef NameService=IOR:aabbccdd....

Method Summary

void
connect(Object object)
Connect the given CORBA object to this ORB.
TypeCode
create_abstract_interface_tc(String id, String name)
Create a typecode for an abstract interface.
abstract TypeCode
create_alias_tc(String id, String name, TypeCode typecode)
Create alias typecode for the given typecode.
abstract Any
create_any()
Create an instance of the CORBA Any with the type, intialised to TCKind.tk_null
abstract TypeCode
create_array_tc(int length, TypeCode element_type)
Create a typecode, defining an array of the given elements.
DynAny
create_basic_dyn_any(TypeCode t)
Deprecated. Use DynAnyFactory
abstract ContextList
create_context_list()
Creates an empty CORBA ContextList.
DynAny
create_dyn_any(Any a)
Deprecated. Use DynAnyFactory
DynArray
create_dyn_array(TypeCode t)
Deprecated. Use DynAnyFactory
DynEnum
create_dyn_enum(TypeCode t)
Deprecated. Use DynAnyFactory
DynSequence
create_dyn_sequence(TypeCode t)
Deprecated. Use DynAnyFactory
DynStruct
create_dyn_struct(TypeCode t)
Deprecated. Use DynAnyFactory
DynUnion
create_dyn_union(TypeCode t)
Deprecated. Use DynAnyFactory
abstract TypeCode
create_enum_tc(String id, String name, String[] members)
Create a typecode, defining the given enumeration.
abstract Environment
create_environment()
Create an environment (container for exceptions).
abstract ExceptionList
create_exception_list()
Creates an empty exception list.
abstract TypeCode
create_exception_tc(String id, String name, StructMember[] members)
Create the exception typecode.
TypeCode
create_fixed_tc(short digits, short scale)
Creates a TypeCode object for CORBA fixed that is mapped to java BigDecimal.
abstract TypeCode
create_interface_tc(String id, String name)
Creates a typecode, representing the IDL interface.
abstract NVList
create_list(int count)
Create an instance of a new NVList.
abstract NamedValue
create_named_value(String name, Any any, int flags)
Create a new named value.
TypeCode
create_native_tc(String id, String name)
Create a typecode for a native interface.
NVList
create_operation_list(Object operation_definition)
This should create the list, initialised with the argument descriptions for the given operation definition (CORBA OperationDef).
abstract OutputStream
create_output_stream()
Create a new CDR output stream, where the parameter values can be written during the method invocation.
Policy
create_policy(int type, Any value)
Creates the new policy of the specified type, having the given value.
abstract TypeCode
create_recursive_sequence_tc(int bound, int offset)
Deprecated. It is easier and clearler to use a combination of create_recursive_tc and create_sequence_tc instead.
TypeCode
create_recursive_tc(String id)
Create a typecode which serves as a placeholder for typcode, containing recursion.
abstract TypeCode
create_sequence_tc(int bound, TypeCode element_type)
Create typecode, defining the sequence of the elements, having the given type.
abstract TypeCode
create_string_tc(int bound)
Create a TypeCode, representing the CORBA string.
abstract TypeCode
create_struct_tc(String id, String name, StructMember[] members)
Create the typecode, defining the given IDL structure.
abstract TypeCode
create_union_tc(String id, String name, TypeCode discriminator, UnionMember[] members)
Create the typecode, defining the given IDL union.
TypeCode
create_value_box_tc(String id, String name, TypeCode boxed_type)
Create value box typecode.
TypeCode
create_value_tc(String id, String name, short type_modifier, TypeCode concrete_base, ValueMember[] members)
Create IDL value type code.
abstract TypeCode
create_wstring_tc(int bound)
Create a TypeCode, representing the CORBA wstring.
void
destroy()
Destroy this server, releasing the occupied resources.
void
disconnect(Object object)
Disconnect the given CORBA object from this ORB.
Current
get_current()
Deprecated. since 1.2, use resolve_initial_references(String).
abstract Context
get_default_context()
Get the default context of this ORB.
abstract Request
get_next_response()
Get the next instance with a response being received.
abstract TypeCode
get_primitive_tc(TCKind tcKind)
Return thg typecode, representing the given primitive object type.
boolean
get_service_information(short service_type, ServiceInformationHolder service_info)
This should return the information about the CORBA facilities and services, available from this ORB.
static ORB
init()
Returns so-called Singleton ORB, a highly restricted version that cannot communicate over network.
static ORB
init(Applet applet, Properties props)
Creates the working instance of ORB for an applet.
static ORB
init(String[] args, Properties props)
Creates the working instance of ORB for a standalone application.
abstract String[]
list_initial_services()
List the initially available CORBA objects (services).
abstract String
object_to_string(Object forObject)
Get the IOR reference string for the given object.
void
perform_work()
This should perform the implementation dependent unit of work in the main thread.
abstract boolean
poll_next_response()
Find if any of the requests that have been previously sent with send_multiple_requests_deferred(Request[]), have a response yet.
abstract Object
resolve_initial_references(String name)
Find and return the easily accessible CORBA object, addressed by name.
void
run()
Start listening on the input socket.
abstract void
send_multiple_requests_deferred(Request[] requests)
Send multiple prepared requests expecting to get a reply.
abstract void
send_multiple_requests_oneway(Request[] requests)
Send multiple prepared requests one way, do not caring about the answer.
protected abstract void
set_parameters(Applet app, Properties props)
Set the ORB parameters.
protected abstract void
set_parameters(String[] para, Properties props)
Set the ORB parameters.
void
shutdown(boolean wait_for_completion)
Shutdown the ORB server.
abstract Object
string_to_object(String IOR)
Find and return the CORBA object, addressed by the given string representation.
boolean
work_pending()
Checks if the ORB needs the main thread to perform some work.

Methods inherited from class java.lang.Object

clone, equals, extends Object> getClass, finalize, hashCode, notify, notifyAll, toString, wait, wait, wait

Method Details

connect

public void connect(Object object)
Connect the given CORBA object to this ORB. After the object is connected, it starts receiving remote invocations via this ORB. The OMG group recommends to use Portable Object Adapter (POA) instead of calling this method. This method is implemented in the derived Gnu Classpah classes, returned by ORB.init(..). In this abstract class, the implementation just throws NO_IMPLEMENT.
Parameters:
object - the org.omg.CORBA.Object to connect.

create_abstract_interface_tc

public TypeCode create_abstract_interface_tc(String id,
                                             String name)
Create a typecode for an abstract interface. The abstract interface can be either CORBA object or CORBA value type.
Parameters:
id - the id of the abstract interface.
name - the name of the abstract interface.
Returns:
the created typecode.

create_alias_tc

public abstract TypeCode create_alias_tc(String id,
                                         String name,
                                         TypeCode typecode)
Create alias typecode for the given typecode.

create_any

public abstract Any create_any()
Create an instance of the CORBA Any with the type, intialised to TCKind.tk_null

create_array_tc

public abstract TypeCode create_array_tc(int length,
                                         TypeCode element_type)
Create a typecode, defining an array of the given elements.
Parameters:
length - the size of array
element_type - the array component type.
Returns:
the corresponding typecode.

create_basic_dyn_any

public DynAny create_basic_dyn_any(TypeCode t)
            throws InconsistentTypeCode

Deprecated. Use DynAnyFactory

The support for DynAny and derived interfaces has never been implemented in Sun's java releases, at least till v1.4 inclusive. Since v1.4 this stil missing implementation was replaced by the new DynamicAny package.

create_context_list

public abstract ContextList create_context_list()
Creates an empty CORBA ContextList.
Returns:
the newly created context list.

create_dyn_any

public DynAny create_dyn_any(Any a)

Deprecated. Use DynAnyFactory

The support for DynAny and derived interfaces has never been implemented in Sun's java releases, at least till v1.4 inclusive. Since v1.4 this stil missing implementation was replaced by the new DynamicAny package.

create_dyn_array

public DynArray create_dyn_array(TypeCode t)
            throws InconsistentTypeCode

Deprecated. Use DynAnyFactory

The support for DynArray has never been implemented in Sun's java releases, at least till v1.4 inclusive. Since v1.4 this stil missing implementation was replaced by the new DynamicAny package.

create_dyn_enum

public DynEnum create_dyn_enum(TypeCode t)
            throws InconsistentTypeCode

Deprecated. Use DynAnyFactory

The support for DynEnum has never been implemented in Sun's java releases, at least till v1.4 inclusive. Since v1.4 this stil missing implementation was replaced by the new DynamicAny package.

create_dyn_sequence

public DynSequence create_dyn_sequence(TypeCode t)
            throws InconsistentTypeCode

Deprecated. Use DynAnyFactory

The support for DynSequence has never been implemented in Sun's java releases, at least till v1.4 inclusive. Since v1.4 this stil missing implementation was replaced by the new DynamicAny package.

create_dyn_struct

public DynStruct create_dyn_struct(TypeCode t)
            throws InconsistentTypeCode

Deprecated. Use DynAnyFactory

The support for DynStruct and derived interfaces has never been implemented in Sun's java releases, at least till v1.4 inclusive. Since v1.4 this stil missing implementation was replaced by the new DynamicAny package.

create_dyn_union

public DynUnion create_dyn_union(TypeCode t)
            throws InconsistentTypeCode

Deprecated. Use DynAnyFactory

The support for DynUnion and derived interfaces has never been implemented in Sun's java releases, at least till v1.4 inclusive. Since v1.4 this stil missing implementation was replaced by the new DynamicAny package.

create_enum_tc

public abstract TypeCode create_enum_tc(String id,
                                        String name,
                                        String[] members)
Create a typecode, defining the given enumeration.
Parameters:
id - the id.
name - the name.
members - the memebers
Returns:
the created enumeration.

create_environment

public abstract Environment create_environment()
Create an environment (container for exceptions).
Returns:
the created container.

create_exception_list

public abstract ExceptionList create_exception_list()
Creates an empty exception list.
Returns:
the newly created list.

create_exception_tc

public abstract TypeCode create_exception_tc(String id,
                                             String name,
                                             StructMember[] members)
Create the exception typecode.
Parameters:
id - the id of exception.
name - the name of exception.
members - the members of exception.

create_fixed_tc

public TypeCode create_fixed_tc(short digits,
                                short scale)
Creates a TypeCode object for CORBA fixed that is mapped to java BigDecimal.
Parameters:
digits - the number of digits in that fixed.
scale - the number of digits after the decimal point.
Returns:
the corresponding TypeCode.

create_interface_tc

public abstract TypeCode create_interface_tc(String id,
                                             String name)
Creates a typecode, representing the IDL interface.
Parameters:
id - the interface repository id.
name - the interface name.
Returns:
the created typecode.

create_list

public abstract NVList create_list(int count)
Create an instance of a new NVList.
Parameters:
count - the initial size of the list. If more elements are added, the list automatically expands.
Returns:
the created list.

create_named_value

public abstract NamedValue create_named_value(String name,
                                              Any any,
                                              int flags)
Create a new named value.
Parameters:
name - the name of the named value
any - the content of the named value.
flags - the flags of the named value
Returns:
the named value.

create_native_tc

public TypeCode create_native_tc(String id,
                                 String name)
Create a typecode for a native interface.
Parameters:
id - the id of the native interface.
name - the name of the native interface.
Returns:
the created typecode.

create_operation_list

public NVList create_operation_list(Object operation_definition)
This should create the list, initialised with the argument descriptions for the given operation definition (CORBA OperationDef). The information should be obtained from the interface repository. However this method is oficially documented as not implemented at least till v1.4 inclusive.
Parameters:
operation_definition - the operation definition, must be CORBA OperationDef.
Returns:
never

create_output_stream

public abstract OutputStream create_output_stream()
Create a new CDR output stream, where the parameter values can be written during the method invocation.
Returns:
a stream to write values into.

create_policy

public Policy create_policy(int type,
                            Any value)
            throws PolicyError
Creates the new policy of the specified type, having the given value. This method looks for the policy factory that was previously registered during ORB initialization by org.omg.PortableInterceptor.ORBInitialiser. If the suitable factory is found, this factory creates the requested policy, otherwise the PolicyError is thrown.

The POA policies should be created by POA, not by this method.

Parameters:
type - the policy type.
value - the policy value, wrapped into Any.
Throws:
PolicyError - if the ORB fails to instantiate the policy object.
NO_IMPLEMENT - always (in this class). Overridden in derived classes returned by ORB.init(..).

create_recursive_sequence_tc

public abstract TypeCode create_recursive_sequence_tc(int bound,
                                                      int offset)

Deprecated. It is easier and clearler to use a combination of create_recursive_tc and create_sequence_tc instead.

Create a typecode, representing a tree-like structure. This structure contains a member that is a sequence of the same type, as the structure itself. You can imagine as if the folder definition contains a variable-length array of the enclosed (nested) folder definitions. In this way, it is possible to have a tree like structure that can be transferred via CORBA CDR stream.
Parameters:
bound - the maximal expected number of the nested components on each node; 0 if not limited.
offset - the position of the field in the returned structure that contains the sequence of the structures of the same field. The members before this field are intialised using parameterless StructMember constructor.
Returns:
a typecode, defining a stucture, where a member at the offset position defines an array of the identical structures.

create_recursive_tc

public TypeCode create_recursive_tc(String id)
Create a typecode which serves as a placeholder for typcode, containing recursion.
Parameters:
id - the id of the recursive typecode, for that this typecode serves as a placeholder.

create_sequence_tc

public abstract TypeCode create_sequence_tc(int bound,
                                            TypeCode element_type)
Create typecode, defining the sequence of the elements, having the given type.
Parameters:
bound - the maximal length of the sequence, 0 if not restricted.
element_type - the sequence element type.
Returns:
the typecode.

create_string_tc

public abstract TypeCode create_string_tc(int bound)
Create a TypeCode, representing the CORBA string.
Parameters:
bound - the maximal length of the string, 0 is unlimited.
Returns:
the corresponding string typecode.

create_struct_tc

public abstract TypeCode create_struct_tc(String id,
                                          String name,
                                          StructMember[] members)
Create the typecode, defining the given IDL structure. The TypeCode object is initialized with the given id, name, and members.
Parameters:
id - the Id of this type.
name - the name of this type.
members - the member list.
Returns:
the typecode.

create_union_tc

public abstract TypeCode create_union_tc(String id,
                                         String name,
                                         TypeCode discriminator,
                                         UnionMember[] members)
Create the typecode, defining the given IDL union. The TypeCode object is initialized with the given id, name, discriminator and members.
Parameters:
id - the Id of this type.
name - the name of this type.
discriminator - the union discriminator.
members - the member list.
Returns:
the typecode.

create_value_box_tc

public TypeCode create_value_box_tc(String id,
                                    String name,
                                    TypeCode boxed_type)
Create value box typecode.

create_value_tc

public TypeCode create_value_tc(String id,
                                String name,
                                short type_modifier,
                                TypeCode concrete_base,
                                ValueMember[] members)
Create IDL value type code.

create_wstring_tc

public abstract TypeCode create_wstring_tc(int bound)
Create a TypeCode, representing the CORBA wstring.
Parameters:
bound - the maximal length of the string, 0 is unlimited.
Returns:
the corresponding string typecode.

destroy

public void destroy()
Destroy this server, releasing the occupied resources. The default method returns without action.

disconnect

public void disconnect(Object object)
Disconnect the given CORBA object from this ORB. The object will be no longer receiving the remote invocations. In response to the remote invocation on this object, the ORB will send the exception OBJECT_NOT_EXIST. The object, however, is not destroyed and can receive the local invocations. This method is implemented in the derived Gnu Classpah classes, returned by ORB.init(..). In this abstract class, the implementation just throws NO_IMPLEMENT.
Parameters:
object - the object to disconnect.

get_current

public Current get_current()

Deprecated. since 1.2, use resolve_initial_references(String).

This should return the information, related to the current thread. The information is needed, for instance, to get the current object from the code that serves several objects in parallel threads. The Current is very general interface, with no fields and operations defined. This method is not implemented in Suns releases at least till v1.5 inclusive. To obtain the Current, use resolve_initial_references(String), passing "POACurrent".
Returns:
never
Throws:
NO_IMPLEMENT - always.

get_default_context

public abstract Context get_default_context()
Get the default context of this ORB. This is an initial root of all contexts. The default method returns a new context with the empty name and no parent context.
Returns:
the default context of this ORB.
Throws:
NO_IMPLEMENT - for the Singleton ORB, returned by the parameterless init().

get_next_response

public abstract Request get_next_response()
            throws WrongTransaction
Get the next instance with a response being received. If all currently sent responses not yet processed, this method pauses till at least one of them is complete. If there are no requests currently sent, the method pauses till some request is submitted and the response is received. This strategy is identical to the one accepted by Suns 1.4 ORB implementation.
Returns:
the previously sent request that now contains the received response.
Throws:
WrongTransaction - If the method was called from the transaction scope different than the one, used to send the request. The exception can be raised only if the request is implicitly associated with some particular transaction.

get_primitive_tc

public abstract TypeCode get_primitive_tc(TCKind tcKind)
Return thg typecode, representing the given primitive object type.
Parameters:
tcKind - the kind of the primitive typecode.
Returns:
the typecode of the primitve typecode.

get_service_information

public boolean get_service_information(short service_type,
                                       ServiceInformationHolder service_info)
This should return the information about the CORBA facilities and services, available from this ORB. However this method is oficially documented as not implemented at least till v1.5 inclusive.
Parameters:
service_type - a type of the service being requested. The OMG specification currently defines only one value, 1, for security related services.
service_info - a holder, where the returned information should be stored.
Returns:
should return true if the service information is available from the ORB, but this method never returns.
Throws:
NO_IMPLEMENT - always.

init

public static ORB init()
Returns so-called Singleton ORB, a highly restricted version that cannot communicate over network. This ORB is provided for the potentially malicious applets with heavy security restrictions. The returned Singleton ORB can only create typecodes, Any, ContextList, NVList and OutputStream that writes to an internal buffer. All other methods throw the NO_IMPLEMENT exception, additionally printing the error message about the potential attempt to violate the security rules. The implementing ORB class, used in this method, is found as described in the header.
Returns:
the working derivative of ORB, implementing the methods of this abstract class.

init

public static ORB init(Applet applet,
                       Properties props)
Creates the working instance of ORB for an applet. By default the built-in fully functional ORB is returned. The ORB class is found as described in the header of this class.
Parameters:
applet - the applet. The property org.omg.CORBA.ORBClass, if present, defines the used ORB implementation class. If this property is not present, the ORB class is found as described in the class header.
props - the properties, may be null.
Returns:
a newly created functional derivative of this abstract class.

init

public static ORB init(String[] args,
                       Properties props)
Creates the working instance of ORB for a standalone application. By default the built-in fully functional ORB is returned. The ORB class is found as described in the header of this class.
Parameters:
args - the parameters, passed to the applications main(String[] args) method, may be null. The parameter -org.omg.CORBA.ORBClass if present, defines the used ORB implementation class. If this property is not present, the ORB class is found as described in the class header.
props - application specific properties, may be null.
Returns:
a newly created functional derivative of this abstract class.

list_initial_services

public abstract String[] list_initial_services()
List the initially available CORBA objects (services).
Returns:
a list of services.

object_to_string

public abstract String object_to_string(Object forObject)
Get the IOR reference string for the given object. IOR can be compared with the Internet address for a web page, it provides means to locate the CORBA service on the web. IOR contains the host address, port number, the object identifier (key) inside the server, the communication protocol version, supported charsets and so on.
Parameters:
forObject - the CORBA object
Returns:
the object IOR representation.

perform_work

public void perform_work()
This should perform the implementation dependent unit of work in the main thread. This method is part of the support for the distribute use of the single execution thread. Same as in Suns releases at least till 1.4 inclusive, the distribute use of the single thread is not implemented. Use multiple threads, provided by jre. The method returns without action.

poll_next_response

public abstract boolean poll_next_response()
Find if any of the requests that have been previously sent with send_multiple_requests_deferred(Request[]), have a response yet.
Returns:
true if there is at least one response to the previously sent request, false otherwise.

resolve_initial_references

public abstract Object resolve_initial_references(String name)
            throws InvalidName
Find and return the easily accessible CORBA object, addressed by name. The returned object is typically casted to the more specific reference using the narrow(Object) method of its helper. The method resolves the following string values, returning the working objects:
StringObject classObject use
NameServiceNamingContextExtFinds (usually remote) object by its name.
RootPOAPOAHolds the POA tree for this ORB, where since 1.4 all servants should be connected.
RootPOAManagerPOAManager Regulates (suspends/resumes) the root POA activity
POACurrentCurrent Informs the current thread about the Id and POA of the object being currently served (the methods of Current return different values for different threads).
CodecFactoryCodecEncodes/decodes IDL data types into/from byte arrays.
DynAnyFactoryDynAnyFactoryCreates DynAny's.
PICurrentCurrentContains multiple slots where an interceptor can rememeber the request - specific values between subsequent calls of the interceptor methods.
Parameters:
name - the object name.
Returns:
the object
Throws:
InvalidName - if the given name is not associated with the known object.

run

public void run()
Start listening on the input socket. This method blocks the current thread until shutdown(boolean) is called and shutdown process is completed.

send_multiple_requests_deferred

public abstract void send_multiple_requests_deferred(Request[] requests)
Send multiple prepared requests expecting to get a reply. All requests are send in parallel, each in its own separate thread. When the reply arrives, it is stored in the agreed fields of the corresponing request data structure. If this method is called repeatedly, the new requests are added to the set of the currently sent requests, but the old set is not discarded.
Parameters:
requests - the prepared array of requests.

send_multiple_requests_oneway

public abstract void send_multiple_requests_oneway(Request[] requests)
Send multiple prepared requests one way, do not caring about the answer. The messages, containing requests, will be marked, indicating that the sender is not expecting to get a reply.
Parameters:
requests - the prepared array of requests.

set_parameters

protected abstract void set_parameters(Applet app,
                                       Properties props)
Set the ORB parameters. This method is normally called from init(Applet,Properties).
Parameters:
app - the current applet.
props - application specific properties, passed as the second parameter in init(Applet,Properties). Can be null.

set_parameters

protected abstract void set_parameters(String[] para,
                                       Properties props)
Set the ORB parameters. This method is normally called from init(String[],Properties).
Parameters:
para - the parameters, that were passed as the parameters to the main(String[] args) method of the current standalone application.
props - application specific properties that were passed as a second parameter in init(String[],Properties)). Can be null.

shutdown

public void shutdown(boolean wait_for_completion)
Shutdown the ORB server.
Parameters:
wait_for_completion - if true, the current thread is suspended untile the shutdown process is complete.

string_to_object

public abstract Object string_to_object(String IOR)
Find and return the CORBA object, addressed by the given string representation. The object can be (an usually is) located on a remote computer, possibly running a different (not necessary java) CORBA implementation. The returned object is typically casted to the more specific reference using the narrow(Object) method of its helper.

This function supports the following input formats:
1. IOR reference (ior:nnnnn ..), usually computer generated.
2. corbaloc:[iiop][version.subversion@]:host[:port]/key defines similar information as IOR reference, but is more human readable. This type of reference may also contain multiple addresses (see OMG documentation for complete format).
3. corbaloc:rir:/name defines internal reference on this ORB that is resolved using resolve_initial_references(String), passing the given name as parameter.
4. corbaname:rir:#name states that the given name must be resolved using the naming service, default for this ORB.
5. corbaname:[iiop][version.subversion@]:host[:port]#name states that the name must be resolved using the naming service that runs on the given host at the given port. The ORB expects to find there the NamingContext under the key "NameService.
7. file://[file name] Read the object definition string from the file system
8. http://[url] Read the object definition string from the provided url.
9. ftp://[url] Read the object definition string from the provided url.

The default port is always 2809. The default iiop version is 1.0 that now may not always be supported, so we would recommend to specify the version explicitly.

The examples of the corbaloc and corbaname addresses:
corbaname:rir:#xobj - ask local naming service for "xobj".
corbaname:rir:/NameService#xobj - same (long form).
corbaname:iiop:1.2@localhost:900#xobj - same, assuming that the naming service runs at port 900 on the local host and supports iiop 1.2.
corbaname:iiop:localhost#xobj - same, assuming that the naming service runs at port 2809 on the local host and supports iiop 1.0.
corbaloc::gnu.xxx.yy/Prod/TradingService - the object exists on the host gnu.xxx.yy, port 2809 having the key "Prod/TradingService". Its ORB supports iiop 1.0.
corbaloc::gnu.xxx.yy/Prod/TradingService:801 - the object exists on the host gnu.xxx.yy, port 801 having the key "Prod/TradingService". Its ORB supports iiop 1.0 (iiop keyword ommitted).
corbaloc:iiop:1.1@gnu.xxx.yy/Prod/TradingService - the object exists on the host gnu.xxx.yy, port 801 having the key "Prod/TradingService". Its ORB supports iiop 1.1.
corbaloc:rir:/NameService - the default naming service.

Parameters:
IOR - the object IOR representation string.
Returns:
the found CORBA object.
Throws:
BAD_PARAM - if the string being parsed is invalid.
DATA_CONVERSION - if the string being parsed contains unsupported prefix or protocol.

work_pending

public boolean work_pending()
Checks if the ORB needs the main thread to perform some work. The method should return true if the ORB needs the main thread, and false if it does not. This method is part of the support for the distribute use of the single execution thread. Same as in Suns releases at least till 1.4 inclusive, the distributed use of the single thread is not implemented. Use multiple threads, provided by jre.
Returns:
false, always.

ORB.java -- Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. GNU Classpath is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. GNU Classpath is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with GNU Classpath; see the file COPYING. If not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. Linking this library statically or dynamically with other modules is making a combined work based on this library. Thus, the terms and conditions of the GNU General Public License cover the whole combination. As a special exception, the copyright holders of this library give you permission to link this library with independent modules to produce an executable, regardless of the license terms of these independent modules, and to copy and distribute the resulting executable under terms of your choice, provided that you also meet, for each linked independent module, the terms and conditions of the license of that module. An independent module is a module which is not derived from or based on this library. If you modify this library, you may extend this exception to your version of the library, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version.