package org.jacorb.test.nestedproperties; import java.util.Properties; import org.junit.After; import org.junit.Assert; import org.junit.Before; import org.junit.Test; import org.omg.CORBA.ORB; import org.omg.PortableServer.POA; import org.omg.PortableServer.POAHelper; public class NestedPropertiesTest { private static final String prop1 = "do wah diddy"; private static final String prop2 = "tp2"; protected ORB orb; protected POA rootPOA; private class Config { private Properties propsBuiltIn; // as a representative of default properties. These // could be obtained from a multitude of sources including files, command line, even // interactively. For the purpose of this test, it is sufficient to demonstrate only // a single level of nesting. private Properties allProps; // Accessor public void initialize () throws Exception { propsBuiltIn = new Properties (); allProps = new Properties (propsBuiltIn); propsBuiltIn.setProperty ("jacorb.poa.thread_priority", Integer.toString (Thread.NORM_PRIORITY)); // so it can be // overridden by // others propsBuiltIn.setProperty ("OAIAddr", java.net.InetAddress.getLocalHost ().getHostAddress ()); propsBuiltIn.setProperty ("org.omg.CORBA.ORBClass", "org.jacorb.orb.ORB"); propsBuiltIn.setProperty ("org.omg.CORBA.ORBSingletonClass", "org.jacorb.orb.ORBSingleton"); propsBuiltIn.setProperty ("java.vm.version", System.getProperty("java.vm.version")); propsBuiltIn.setProperty ("org.omg.PortableInterceptor.ORBInitializerClass.FailoverInit", "com.quantel.QuentinManager.Failover.ClientFailoverInitializer"); propsBuiltIn.setProperty ("test_property1", prop1); allProps.setProperty ("test_property2", prop2); } public Properties getProperties () { return allProps; } } @Before public void setUp() throws Exception { Config myConfig = new Config(); myConfig.initialize (); Properties properties = myConfig.getProperties(); properties.setProperty("org.omg.CORBA.ORBClass", "org.jacorb.orb.ORB"); properties.setProperty("org.omg.CORBA.ORBSingletonClass", "org.jacorb.orb.ORBSingleton"); configureORBProperties(properties); orb = ORB.init(new String[0], properties); rootPOA = POAHelper.narrow(orb.resolve_initial_references( "RootPOA" )); rootPOA.the_POAManager().activate(); } @After public void tearDown() throws Exception { rootPOA = null; orb.shutdown(true); orb = null; } private void configureORBProperties(Properties properties) { Config myConfig = new Config(); try { myConfig.initialize (); } catch (Exception e) { } // initialise the ORB from the properties list properties.putAll(myConfig.getProperties()); } @Test public void testNestedProperties () throws Exception { org.jacorb.orb.ORB jorb = (org.jacorb.orb.ORB)orb; org.jacorb.config.Configuration jconf = jorb.getConfiguration(); Assert.assertEquals(prop1, jconf.getAttribute ("test_property1")); Assert.assertEquals(prop2, jconf.getAttribute ("test_property2")); } }