org.jboss.system
Class ORBSingleton

java.lang.Object
  extended byorg.omg.CORBA.ORB
      extended byorg.omg.CORBA_2_3.ORB
          extended byorg.jboss.system.ORBSingleton

public class ORBSingleton
extends org.omg.CORBA_2_3.ORB

Thin wrapper class that fulfills the contract of an ORB singleton and forwards every invocation to an instance of the actual ORB singleton class, which it loads with the context classloader. The name of the actual ORB singleton class is specified by the system property org.jboss.ORBSingletonDelegate.

This class is a workaround to the the following problem: unlike the Sun VMs, IBM VMs do not use the context classloader to load the ORB singleton class specified by the system property org.omg.CORBA.ORBSingletonClass. IBM VMs use the system classloader, thus requiring the ORB singleton class to be in the system classpath. Rather than adding a third-party jar file (e.g. jacorb.jar) to the system classpath, we include this class in run.jar. Instead of setting the system property

     org.omg.CORBA.ORBSingletonClass=some.orb.impl.ORBSingletonImpl
 
we set two properties:
     org.omg.CORBA.ORBSingletonClass=org.jboss.system.ORBSingleton
     org.jboss.ORBSingletonDelegate=some.orb.impl.ORBSingletonImpl
 

This class should be removed when IBM fixes its VMs.


Field Summary
static java.lang.String DELEGATE_CLASS_KEY
          System property key that specifies the actual ORB singleton class.
 
Constructor Summary
ORBSingleton()
          The ORBSingleton constructor does what the IBM VM does not do: it uses the context classloader to load the actual ORB singleton class.
 
Method Summary
 org.omg.CORBA.TypeCode create_abstract_interface_tc(java.lang.String id, java.lang.String name)
           
 org.omg.CORBA.TypeCode create_alias_tc(java.lang.String id, java.lang.String name, org.omg.CORBA.TypeCode original_type)
           
 org.omg.CORBA.Any create_any()
           
 org.omg.CORBA.TypeCode create_array_tc(int length, org.omg.CORBA.TypeCode element_type)
           
 org.omg.CORBA.ContextList create_context_list()
           
 org.omg.CORBA.TypeCode create_enum_tc(java.lang.String id, java.lang.String name, java.lang.String[] members)
           
 org.omg.CORBA.Environment create_environment()
           
 org.omg.CORBA.ExceptionList create_exception_list()
           
 org.omg.CORBA.TypeCode create_exception_tc(java.lang.String id, java.lang.String name, org.omg.CORBA.StructMember[] members)
           
 org.omg.CORBA.TypeCode create_fixed_tc(short digits, short scale)
           
 org.omg.CORBA.TypeCode create_interface_tc(java.lang.String id, java.lang.String name)
           
 org.omg.CORBA.NVList create_list(int count)
           
 org.omg.CORBA.NamedValue create_named_value(java.lang.String name, org.omg.CORBA.Any value, int flags)
           
 org.omg.CORBA.TypeCode create_native_tc(java.lang.String id, java.lang.String name)
           
 org.omg.CORBA.NVList create_operation_list(org.omg.CORBA.Object obj)
           
 org.omg.CORBA.portable.OutputStream create_output_stream()
           
 org.omg.CORBA.TypeCode create_recursive_sequence_tc(int bound, int offset)
          Deprecated. Deprecated by CORBA 2.3.
 org.omg.CORBA.TypeCode create_recursive_tc(java.lang.String id)
           
 org.omg.CORBA.TypeCode create_sequence_tc(int bound, org.omg.CORBA.TypeCode element_type)
           
 org.omg.CORBA.TypeCode create_string_tc(int bound)
           
 org.omg.CORBA.TypeCode create_struct_tc(java.lang.String id, java.lang.String name, org.omg.CORBA.StructMember[] members)
           
 org.omg.CORBA.TypeCode create_union_tc(java.lang.String id, java.lang.String name, org.omg.CORBA.TypeCode discriminator_type, org.omg.CORBA.UnionMember[] members)
           
 org.omg.CORBA.TypeCode create_value_box_tc(java.lang.String id, java.lang.String name, org.omg.CORBA.TypeCode boxed_type)
           
 org.omg.CORBA.TypeCode create_value_tc(java.lang.String id, java.lang.String name, short type_modifier, org.omg.CORBA.TypeCode concrete_base, org.omg.CORBA.ValueMember[] members)
           
 org.omg.CORBA.TypeCode create_wstring_tc(int bound)
           
 org.omg.CORBA.Current get_current()
          Deprecated. Deprecated by CORBA 2.3.
 org.omg.CORBA.Context get_default_context()
           
 org.omg.CORBA.Request get_next_response()
           
 org.omg.CORBA.TypeCode get_primitive_tc(org.omg.CORBA.TCKind tcKind)
           
 java.lang.String[] list_initial_services()
           
 java.lang.String object_to_string(org.omg.CORBA.Object obj)
           
 void perform_work()
           
 boolean poll_next_response()
           
 org.omg.CORBA.Object resolve_initial_references(java.lang.String identifier)
           
 void run()
           
 void send_multiple_requests_deferred(org.omg.CORBA.Request[] req)
           
 void send_multiple_requests_oneway(org.omg.CORBA.Request[] req)
           
protected  void set_parameters(java.applet.Applet app, java.util.Properties props)
           
protected  void set_parameters(java.lang.String[] args, java.util.Properties props)
           
 void shutdown(boolean wait_for_completion)
           
 org.omg.CORBA.Object string_to_object(java.lang.String str)
           
 boolean work_pending()
           
 
Methods inherited from class org.omg.CORBA_2_3.ORB
get_value_def, lookup_value_factory, register_value_factory, set_delegate, unregister_value_factory
 
Methods inherited from class org.omg.CORBA.ORB
connect, create_basic_dyn_any, create_dyn_any, create_dyn_array, create_dyn_enum, create_dyn_sequence, create_dyn_struct, create_dyn_union, create_policy, destroy, disconnect, get_service_information, init, init, init
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DELEGATE_CLASS_KEY

public static java.lang.String DELEGATE_CLASS_KEY
System property key that specifies the actual ORB singleton class.

Constructor Detail

ORBSingleton

public ORBSingleton()
The ORBSingleton constructor does what the IBM VM does not do: it uses the context classloader to load the actual ORB singleton class.

Method Detail

create_any

public org.omg.CORBA.Any create_any()

create_alias_tc

public org.omg.CORBA.TypeCode create_alias_tc(java.lang.String id,
                                              java.lang.String name,
                                              org.omg.CORBA.TypeCode original_type)

create_array_tc

public org.omg.CORBA.TypeCode create_array_tc(int length,
                                              org.omg.CORBA.TypeCode element_type)

create_enum_tc

public org.omg.CORBA.TypeCode create_enum_tc(java.lang.String id,
                                             java.lang.String name,
                                             java.lang.String[] members)

create_exception_tc

public org.omg.CORBA.TypeCode create_exception_tc(java.lang.String id,
                                                  java.lang.String name,
                                                  org.omg.CORBA.StructMember[] members)

create_interface_tc

public org.omg.CORBA.TypeCode create_interface_tc(java.lang.String id,
                                                  java.lang.String name)

create_fixed_tc

public org.omg.CORBA.TypeCode create_fixed_tc(short digits,
                                              short scale)

create_recursive_tc

public org.omg.CORBA.TypeCode create_recursive_tc(java.lang.String id)

create_recursive_sequence_tc

public org.omg.CORBA.TypeCode create_recursive_sequence_tc(int bound,
                                                           int offset)
Deprecated. Deprecated by CORBA 2.3.


create_sequence_tc

public org.omg.CORBA.TypeCode create_sequence_tc(int bound,
                                                 org.omg.CORBA.TypeCode element_type)

create_string_tc

public org.omg.CORBA.TypeCode create_string_tc(int bound)

create_wstring_tc

public org.omg.CORBA.TypeCode create_wstring_tc(int bound)

create_struct_tc

public org.omg.CORBA.TypeCode create_struct_tc(java.lang.String id,
                                               java.lang.String name,
                                               org.omg.CORBA.StructMember[] members)

create_union_tc

public org.omg.CORBA.TypeCode create_union_tc(java.lang.String id,
                                              java.lang.String name,
                                              org.omg.CORBA.TypeCode discriminator_type,
                                              org.omg.CORBA.UnionMember[] members)

get_primitive_tc

public org.omg.CORBA.TypeCode get_primitive_tc(org.omg.CORBA.TCKind tcKind)

create_value_tc

public org.omg.CORBA.TypeCode create_value_tc(java.lang.String id,
                                              java.lang.String name,
                                              short type_modifier,
                                              org.omg.CORBA.TypeCode concrete_base,
                                              org.omg.CORBA.ValueMember[] members)

create_value_box_tc

public org.omg.CORBA.TypeCode create_value_box_tc(java.lang.String id,
                                                  java.lang.String name,
                                                  org.omg.CORBA.TypeCode boxed_type)

create_abstract_interface_tc

public org.omg.CORBA.TypeCode create_abstract_interface_tc(java.lang.String id,
                                                           java.lang.String name)

create_native_tc

public org.omg.CORBA.TypeCode create_native_tc(java.lang.String id,
                                               java.lang.String name)

create_exception_list

public org.omg.CORBA.ExceptionList create_exception_list()

create_list

public org.omg.CORBA.NVList create_list(int count)

create_named_value

public org.omg.CORBA.NamedValue create_named_value(java.lang.String name,
                                                   org.omg.CORBA.Any value,
                                                   int flags)

create_operation_list

public org.omg.CORBA.NVList create_operation_list(org.omg.CORBA.Object obj)

string_to_object

public org.omg.CORBA.Object string_to_object(java.lang.String str)

create_environment

public org.omg.CORBA.Environment create_environment()

create_context_list

public org.omg.CORBA.ContextList create_context_list()

create_output_stream

public org.omg.CORBA.portable.OutputStream create_output_stream()

get_current

public org.omg.CORBA.Current get_current()
Deprecated. Deprecated by CORBA 2.3.


get_default_context

public org.omg.CORBA.Context get_default_context()

get_next_response

public org.omg.CORBA.Request get_next_response()

list_initial_services

public java.lang.String[] list_initial_services()

object_to_string

public java.lang.String object_to_string(org.omg.CORBA.Object obj)

poll_next_response

public boolean poll_next_response()

resolve_initial_references

public org.omg.CORBA.Object resolve_initial_references(java.lang.String identifier)
                                                throws org.omg.CORBA.ORBPackage.InvalidName
Throws:
org.omg.CORBA.ORBPackage.InvalidName

send_multiple_requests_deferred

public void send_multiple_requests_deferred(org.omg.CORBA.Request[] req)

send_multiple_requests_oneway

public void send_multiple_requests_oneway(org.omg.CORBA.Request[] req)

set_parameters

protected void set_parameters(java.lang.String[] args,
                              java.util.Properties props)

set_parameters

protected void set_parameters(java.applet.Applet app,
                              java.util.Properties props)

run

public void run()

shutdown

public void shutdown(boolean wait_for_completion)

work_pending

public boolean work_pending()

perform_work

public void perform_work()