package cadena;

public class Scenario{
	public static void main(String[] args) throws Exception {
		org.omg.Components.CCMHome ccmhome;
		// Init the ORB.
		System.out.println("Initializing the ORB...");
		// Init the OpenCCM Components Runtime.
		org.omg.CORBA.ORB corbaorb = org.objectweb.ccm.Components.Runtime.init(args);

		// Obtain the Name Service.
		System.out.println("Obtaining the Name Service...");
		org.omg.CORBA.Object corbaobj = corbaorb.resolve_initial_references("NameService");
		org.omg.CosNaming.NamingContext namingContext = org.omg.CosNaming.NamingContextHelper.narrow(corbaobj);

		// Obtain the component servers.
		System.out.println("Obtaining Component Servers...");
		org.omg.CosNaming.NameComponent[] nameComponent = new org.omg.CosNaming.NameComponent[1];
		nameComponent[0] = new org.omg.CosNaming.NameComponent("Board1","");
		corbaobj = namingContext.resolve(nameComponent);
		org.objectweb.ccm.Deployment.Server board1_server =
		org.objectweb.ccm.Deployment.ServerHelper.narrow(corbaobj);

		nameComponent[0].id = "Board2";
		corbaobj = namingContext.resolve(nameComponent);
		org.objectweb.ccm.Deployment.Server board2_server =
		org.objectweb.ccm.Deployment.ServerHelper.narrow(corbaobj);

		nameComponent[0].id = "Board3";
		corbaobj = namingContext.resolve(nameComponent);
		org.objectweb.ccm.Deployment.Server board3_server =
		org.objectweb.ccm.Deployment.ServerHelper.narrow(corbaobj);

		nameComponent[0].id = "Board4";
		corbaobj = namingContext.resolve(nameComponent);
		org.objectweb.ccm.Deployment.Server board4_server =
		org.objectweb.ccm.Deployment.ServerHelper.narrow(corbaobj);

		nameComponent[0].id = "Board5";
		corbaobj = namingContext.resolve(nameComponent);
		org.objectweb.ccm.Deployment.Server board5_server =
		org.objectweb.ccm.Deployment.ServerHelper.narrow(corbaobj);

		nameComponent[0].id = "Board6";
		corbaobj = namingContext.resolve(nameComponent);
		org.objectweb.ccm.Deployment.Server board6_server =
		org.objectweb.ccm.Deployment.ServerHelper.narrow(corbaobj);

		nameComponent[0].id = "Board7";
		corbaobj = namingContext.resolve(nameComponent);
		org.objectweb.ccm.Deployment.Server board7_server =
		org.objectweb.ccm.Deployment.ServerHelper.narrow(corbaobj);

		nameComponent[0].id = "Board8";
		corbaobj = namingContext.resolve(nameComponent);
		org.objectweb.ccm.Deployment.Server board8_server =
		org.objectweb.ccm.Deployment.ServerHelper.narrow(corbaobj);


		// Obtain the container homes.
		org.omg.Components.Deployment.ComponentServer board1_cs = 
		board1_server.provide_component_server();
		org.omg.Components.Deployment.ComponentServer board2_cs = 
		board2_server.provide_component_server();
		org.omg.Components.Deployment.ComponentServer board3_cs = 
		board3_server.provide_component_server();
		org.omg.Components.Deployment.ComponentServer board4_cs = 
		board4_server.provide_component_server();
		org.omg.Components.Deployment.ComponentServer board5_cs = 
		board5_server.provide_component_server();
		org.omg.Components.Deployment.ComponentServer board6_cs = 
		board6_server.provide_component_server();
		org.omg.Components.Deployment.ComponentServer board7_cs = 
		board7_server.provide_component_server();
		org.omg.Components.Deployment.ComponentServer board8_cs = 
		board8_server.provide_component_server();

		//Install archives.
		System.out.println("Installing archives...");
		org.omg.Components.Deployment.ComponentInstallation board1_inst = 
		board1_server.provide_install();
		board1_inst.install("modalsp", "./archives/modalsp.jar");
		board1_inst.install("openccm_plugins", "./OpenCCM_Plugins.jar");
		org.omg.Components.Deployment.ComponentInstallation board2_inst = 
		board2_server.provide_install();
		board2_inst.install("modalsp", "./archives/modalsp.jar");
		board2_inst.install("openccm_plugins", "./OpenCCM_Plugins.jar");
		org.omg.Components.Deployment.ComponentInstallation board3_inst = 
		board3_server.provide_install();
		board3_inst.install("modalsp", "./archives/modalsp.jar");
		board3_inst.install("openccm_plugins", "./OpenCCM_Plugins.jar");
		org.omg.Components.Deployment.ComponentInstallation board4_inst = 
		board4_server.provide_install();
		board4_inst.install("modalsp", "./archives/modalsp.jar");
		board4_inst.install("openccm_plugins", "./OpenCCM_Plugins.jar");
		org.omg.Components.Deployment.ComponentInstallation board5_inst = 
		board5_server.provide_install();
		board5_inst.install("modalsp", "./archives/modalsp.jar");
		board5_inst.install("openccm_plugins", "./OpenCCM_Plugins.jar");
		org.omg.Components.Deployment.ComponentInstallation board6_inst = 
		board6_server.provide_install();
		board6_inst.install("modalsp", "./archives/modalsp.jar");
		board6_inst.install("openccm_plugins", "./OpenCCM_Plugins.jar");
		org.omg.Components.Deployment.ComponentInstallation board7_inst = 
		board7_server.provide_install();
		board7_inst.install("modalsp", "./archives/modalsp.jar");
		board7_inst.install("openccm_plugins", "./OpenCCM_Plugins.jar");
		org.omg.Components.Deployment.ComponentInstallation board8_inst = 
		board8_server.provide_install();
		board8_inst.install("modalsp", "./archives/modalsp.jar");
		board8_inst.install("openccm_plugins", "./OpenCCM_Plugins.jar");

		org.omg.Components.Deployment.Container board1_cont =
			board1_cs.create_container(new org.omg.Components.ConfigValue[0]);

		org.omg.Components.Deployment.Container board2_cont =
			board2_cs.create_container(new org.omg.Components.ConfigValue[0]);

		org.omg.Components.Deployment.Container board3_cont =
			board3_cs.create_container(new org.omg.Components.ConfigValue[0]);

		org.omg.Components.Deployment.Container board4_cont =
			board4_cs.create_container(new org.omg.Components.ConfigValue[0]);

		org.omg.Components.Deployment.Container board5_cont =
			board5_cs.create_container(new org.omg.Components.ConfigValue[0]);

		org.omg.Components.Deployment.Container board6_cont =
			board6_cs.create_container(new org.omg.Components.ConfigValue[0]);

		org.omg.Components.Deployment.Container board7_cont =
			board7_cs.create_container(new org.omg.Components.ConfigValue[0]);

		org.omg.Components.Deployment.Container board8_cont =
			board8_cs.create_container(new org.omg.Components.ConfigValue[0]);

		System.out.println("Instantiating homes, components...");
		ccmhome = board1_cont.install_home("modalsp", "cadena.common.EventChannelHomeImpl.create_home",
 		new org.omg.Components.ConfigValue[0]);
		cadena.common.EventChannelHome eventchannelBoard1Home = cadena.common.EventChannelHomeHelper.narrow(ccmhome);
		cadena.common.EventChannel eventchannel = eventchannelBoard1Home.create();
		ccmhome = board1_cont.install_home("modalsp", "cadena.common.BMDeviceHomeImpl.create_home",
 		new org.omg.Components.ConfigValue[0]);
		cadena.common.BMDeviceHome bmdeviceBoard1Home = cadena.common.BMDeviceHomeHelper.narrow(ccmhome);
		cadena.common.BMDevice gps = bmdeviceBoard1Home.create();
		ccmhome = board2_cont.install_home("modalsp", "cadena.common.BMLazyActiveHomeImpl.create_home",
 		new org.omg.Components.ConfigValue[0]);
		cadena.common.BMLazyActiveHome bmlazyactiveBoard2Home = cadena.common.BMLazyActiveHomeHelper.narrow(ccmhome);
		cadena.common.BMLazyActive airframe = bmlazyactiveBoard2Home.create();
		ccmhome = board3_cont.install_home("modalsp", "cadena.modalsp.BMDisplayThreeCorrelationHomeImpl.create_home",
 		new org.omg.Components.ConfigValue[0]);
		cadena.modalsp.BMDisplayThreeCorrelationHome bmdisplaythreecorrelationBoard3Home = cadena.modalsp.BMDisplayThreeCorrelationHomeHelper.narrow(ccmhome);
		cadena.modalsp.BMDisplayThreeCorrelation navdisplay = bmdisplaythreecorrelationBoard3Home.create();
		ccmhome = board4_cont.install_home("modalsp", "cadena.common.BMModeSourceHomeImpl.create_home",
 		new org.omg.Components.ConfigValue[0]);
		cadena.common.BMModeSourceHome bmmodesourceBoard4Home = cadena.common.BMModeSourceHomeHelper.narrow(ccmhome);
		cadena.common.BMModeSource pilotcontrol = bmmodesourceBoard4Home.create();
		ccmhome = board5_cont.install_home("modalsp", "cadena.modalsp.BMModalTwoOrCorrelationHomeImpl.create_home",
 		new org.omg.Components.ConfigValue[0]);
		cadena.modalsp.BMModalTwoOrCorrelationHome bmmodaltwoorcorrelationBoard5Home = cadena.modalsp.BMModalTwoOrCorrelationHomeHelper.narrow(ccmhome);
		cadena.modalsp.BMModalTwoOrCorrelation navsteering = bmmodaltwoorcorrelationBoard5Home.create();
		ccmhome = board6_cont.install_home("modalsp", "cadena.common.BMModalHomeImpl.create_home",
 		new org.omg.Components.ConfigValue[0]);
		cadena.common.BMModalHome bmmodalBoard6Home = cadena.common.BMModalHomeHelper.narrow(ccmhome);
		cadena.common.BMModal tacticalsteering = bmmodalBoard6Home.create();
		ccmhome = board7_cont.install_home("modalsp", "cadena.common.BMPushDataSourceHomeImpl.create_home",
 		new org.omg.Components.ConfigValue[0]);
		cadena.common.BMPushDataSourceHome bmpushdatasourceBoard7Home = cadena.common.BMPushDataSourceHomeHelper.narrow(ccmhome);
		cadena.common.BMPushDataSource navigator = bmpushdatasourceBoard7Home.create();
		ccmhome = board8_cont.install_home("modalsp", "cadena.common.BMPassiveHomeImpl.create_home",
 		new org.omg.Components.ConfigValue[0]);
		cadena.common.BMPassiveHome bmpassiveBoard8Home = cadena.common.BMPassiveHomeHelper.narrow(ccmhome);
		cadena.common.BMPassive navsteeringpoints = bmpassiveBoard8Home.create();

		System.out.println("set instance names...");
		eventchannel.name("EventChannel");
		gps.name("GPS");
		airframe.name("AirFrame");
		navdisplay.name("NavDisplay");
		pilotcontrol.name("PilotControl");
		navsteering.name("NavSteering");
		tacticalsteering.name("TacticalSteering");
		navigator.name("Navigator");
		navsteeringpoints.name("NavSteeringPoints");

		System.out.println("Interconnecting components...");
		eventchannel.subscribe_timeOut1(pilotcontrol.get_consumer_timeOut());
		eventchannel.subscribe_timeOut20(gps.get_consumer_timeOut());
		eventchannel.subscribe_timeOut5(navigator.get_consumer_timeOut());
		gps.subscribe_outDataAvailable(airframe.get_consumer_inDataAvailable());
		airframe.connect_dataIn(gps.provide_dataOut());
		airframe.subscribe_outDataAvailable(navsteering.get_consumer_inDataAvailableAirFrame());
		navsteering.connect_dataIn2(airframe.provide_dataOut());
		tacticalsteering.connect_dataIn(airframe.provide_dataOut());
		navdisplay.connect_dataIn1(airframe.provide_dataOut());
		airframe.subscribe_outDataAvailable(tacticalsteering.get_consumer_inDataAvailable());
		navdisplay.connect_dataIn3(navsteering.provide_dataOut());
		pilotcontrol.connect_modeToggle2(navsteering.provide_modeChange());
		navdisplay.connect_dataIn2(tacticalsteering.provide_dataOut());
		pilotcontrol.connect_modeToggle1(tacticalsteering.provide_modeChange());
		navsteering.connect_dataIn1(navsteeringpoints.provide_dataOut());
		navsteeringpoints.subscribe_outDataAvailable(navsteering.get_consumer_inDataAvailableNavSteeringPoints());
		navigator.connect_dataWriteOut(navsteeringpoints.provide_dataWriteIn());

		System.out.println("Create gateways...");
		edu.ksu.cis.EventChannelAdmin.Dependency Board4_Board1_dependency[] = 
			new edu.ksu.cis.EventChannelAdmin.Dependency[1];
		Board4_Board1_dependency[0] = 
			new edu.ksu.cis.EventChannelAdmin.Dependency();
		Board4_Board1_dependency[0].header = 
			new edu.ksu.cis.EventComm.EventHeader(1, 0);
		edu.ksu.cis.EventChannelAdmin.ConsumerQOS Board4_Board1_cqos = 
			new edu.ksu.cis.EventChannelAdmin.ConsumerQOS(Board4_Board1_dependency);
		board4_cs.create_gateway("Board4.EventChannel", "Board1.EventChannel", Board4_Board1_cqos);

		edu.ksu.cis.EventChannelAdmin.Dependency Board7_Board1_dependency[] = 
			new edu.ksu.cis.EventChannelAdmin.Dependency[1];
		Board7_Board1_dependency[0] = 
			new edu.ksu.cis.EventChannelAdmin.Dependency();
		Board7_Board1_dependency[0].header = 
			new edu.ksu.cis.EventComm.EventHeader(3, 0);
		edu.ksu.cis.EventChannelAdmin.ConsumerQOS Board7_Board1_cqos = 
			new edu.ksu.cis.EventChannelAdmin.ConsumerQOS(Board7_Board1_dependency);
		board7_cs.create_gateway("Board7.EventChannel", "Board1.EventChannel", Board7_Board1_cqos);

		edu.ksu.cis.EventChannelAdmin.Dependency Board2_Board1_dependency[] = 
			new edu.ksu.cis.EventChannelAdmin.Dependency[1];
		Board2_Board1_dependency[0] = 
			new edu.ksu.cis.EventChannelAdmin.Dependency();
		Board2_Board1_dependency[0].header = 
			new edu.ksu.cis.EventComm.EventHeader(4, 0);
		edu.ksu.cis.EventChannelAdmin.ConsumerQOS Board2_Board1_cqos = 
			new edu.ksu.cis.EventChannelAdmin.ConsumerQOS(Board2_Board1_dependency);
		board2_cs.create_gateway("Board2.EventChannel", "Board1.EventChannel", Board2_Board1_cqos);

		edu.ksu.cis.EventChannelAdmin.Dependency Board5_Board2_dependency[] = 
			new edu.ksu.cis.EventChannelAdmin.Dependency[1];
		Board5_Board2_dependency[0] = 
			new edu.ksu.cis.EventChannelAdmin.Dependency();
		Board5_Board2_dependency[0].header = 
			new edu.ksu.cis.EventComm.EventHeader(5, 0);
		edu.ksu.cis.EventChannelAdmin.ConsumerQOS Board5_Board2_cqos = 
			new edu.ksu.cis.EventChannelAdmin.ConsumerQOS(Board5_Board2_dependency);
		board5_cs.create_gateway("Board5.EventChannel", "Board2.EventChannel", Board5_Board2_cqos);

		edu.ksu.cis.EventChannelAdmin.Dependency Board6_Board2_dependency[] = 
			new edu.ksu.cis.EventChannelAdmin.Dependency[1];
		Board6_Board2_dependency[0] = 
			new edu.ksu.cis.EventChannelAdmin.Dependency();
		Board6_Board2_dependency[0].header = 
			new edu.ksu.cis.EventComm.EventHeader(5, 0);
		edu.ksu.cis.EventChannelAdmin.ConsumerQOS Board6_Board2_cqos = 
			new edu.ksu.cis.EventChannelAdmin.ConsumerQOS(Board6_Board2_dependency);
		board6_cs.create_gateway("Board6.EventChannel", "Board2.EventChannel", Board6_Board2_cqos);

		edu.ksu.cis.EventChannelAdmin.Dependency Board5_Board8_dependency[] = 
			new edu.ksu.cis.EventChannelAdmin.Dependency[1];
		Board5_Board8_dependency[0] = 
			new edu.ksu.cis.EventChannelAdmin.Dependency();
		Board5_Board8_dependency[0].header = 
			new edu.ksu.cis.EventComm.EventHeader(6, 0);
		edu.ksu.cis.EventChannelAdmin.ConsumerQOS Board5_Board8_cqos = 
			new edu.ksu.cis.EventChannelAdmin.ConsumerQOS(Board5_Board8_dependency);
		board5_cs.create_gateway("Board5.EventChannel", "Board8.EventChannel", Board5_Board8_cqos);


		System.out.println("Components configuration completion...");
		eventchannel.configuration_complete();
		gps.configuration_complete();
		airframe.configuration_complete();
		navdisplay.configuration_complete();
		pilotcontrol.configuration_complete();
		navsteering.configuration_complete();
		tacticalsteering.configuration_complete();
		navigator.configuration_complete();
		navsteeringpoints.configuration_complete();
		System.exit(0);
	}
}


syntax highlighted by Code2HTML, v. 0.9.1