diff options
202 files changed, 8415 insertions, 3162 deletions
diff --git a/CIAO/CIAO_TAO.mwc b/CIAO/CIAO_TAO.mwc index 9cf8a30fe83..8000d3b30d6 100644 --- a/CIAO/CIAO_TAO.mwc +++ b/CIAO/CIAO_TAO.mwc @@ -23,7 +23,6 @@ workspace { ccm ciao DAnCE - connectors tools tests examples diff --git a/CIAO/ChangeLog b/CIAO/ChangeLog index 323679f98c2..853f9e52a1a 100644 --- a/CIAO/ChangeLog +++ b/CIAO/ChangeLog @@ -1,3 +1,348 @@ +Fri May 21 13:56:01 UTC 2010 William Otte <wotte@zifnab> + + * .: + Merged in locality_manager branch. details to follow: + + Fri May 21 03:57:04 UTC 2010 William R. Otte <wotte@dre.vanderbilt.edu> + + * connectors/ami4ccm/examples/Hello/descriptors/run_test.pl: + * connectors/ami4ccm/tests/DelReplyH/descriptors/run_test.pl: + * connectors/ami4ccm/tests/Exceptions/descriptors/run_test.pl: + * connectors/ami4ccm/tests/InterInArgs/descriptors/run_test.pl: + * connectors/ami4ccm/tests/InterOutArgs/descriptors/run_test.pl: + * connectors/ami4ccm/tests/InterReturn/descriptors/run_test.pl: + * connectors/ami4ccm/tests/NoReplyH/descriptors/run_test.pl: + * connectors/ami4ccm/tests/OneProcess/descriptors/run_test.pl: + * connectors/ami4ccm/tests/OneProcess/descriptors/run_test_one.pl: + * connectors/dds4ccm/examples/Hello/descriptors/run_1_to_5.pl: + * connectors/dds4ccm/examples/Hello/descriptors/run_5_to_1.pl: + * connectors/dds4ccm/examples/Hello/descriptors/run_5_to_5.pl: + * connectors/dds4ccm/examples/Hello/descriptors/run_receiver.pl: + * connectors/dds4ccm/examples/Hello/descriptors/run_sender.pl: + * connectors/dds4ccm/examples/Hello/descriptors/run_test.pl: + * connectors/dds4ccm/examples/Large_Deployment/descriptors/run_test.pl: + * connectors/dds4ccm/examples/Quoter/descriptors/run_test.pl: + * connectors/dds4ccm/examples/Shapes/descriptors/run_test.pl: + * connectors/dds4ccm/performance-tests/Keyed/descriptors/run_pub.pl: + * connectors/dds4ccm/performance-tests/Keyed/descriptors/run_pub3.pl: + * connectors/dds4ccm/performance-tests/Keyed/descriptors/run_pub_BE.pl: + * connectors/dds4ccm/performance-tests/Keyed/descriptors/run_sub.pl: + * connectors/dds4ccm/performance-tests/Keyed/descriptors/run_sub2.pl: + * connectors/dds4ccm/performance-tests/Keyed/descriptors/run_sub3.pl: + * connectors/dds4ccm/performance-tests/Keyed/descriptors/run_sub_BE.pl: + * connectors/dds4ccm/performance-tests/Keyed/descriptors/run_test.pl: + * connectors/dds4ccm/performance-tests/Latency/descriptors/run_test.pl: + * connectors/dds4ccm/performance-tests/Throughput/descriptors/run_test.pl: + * connectors/dds4ccm/tests/CSLDeadline/descriptors/run_test.pl: + * connectors/dds4ccm/tests/CSLQoS/descriptors/run_test.pl: + * connectors/dds4ccm/tests/CSLSampleRejected/descriptors/run_test.pl: + * connectors/dds4ccm/tests/CSLUnexpStat/descriptors/run_test.pl: + * connectors/dds4ccm/tests/CoherentUpdater/descriptors/run_test.pl: + * connectors/dds4ccm/tests/CoherentWriter/descriptors/run_test.pl: + * connectors/dds4ccm/tests/ContentFilteredTopic/descriptors/run_test.pl: + * connectors/dds4ccm/tests/DDSWriterEntity/descriptors/run_test.pl: + * connectors/dds4ccm/tests/Event_Connection_Test/descriptors/run_test.pl: + * connectors/dds4ccm/tests/Getter/descriptors/run_test.pl: + * connectors/dds4ccm/tests/InstanceHandle/descriptors/run_test.pl: + * connectors/dds4ccm/tests/KeyedSamples/descriptors/run_test.pl: + * connectors/dds4ccm/tests/KeyedWriter/descriptors/run_test.pl: + * connectors/dds4ccm/tests/ListenManyByMany/descriptors/run_test.pl: + * connectors/dds4ccm/tests/ListenNotEnabled/descriptors/run_test.pl: + * connectors/dds4ccm/tests/ListenOneByOne/descriptors/run_test.pl: + * connectors/dds4ccm/tests/NonChangeableAttribute/descriptors/run_test.pl: + * connectors/dds4ccm/tests/On_Inconsistent_Topic/descriptors/run_test.pl: + * connectors/dds4ccm/tests/PSLDeadline/descriptors/run_test.pl: + * connectors/dds4ccm/tests/PSLSampleLost/descriptors/run_test.pl: + * connectors/dds4ccm/tests/PortUsage/descriptors/run_test.pl: + * connectors/dds4ccm/tests/QosProfile/descriptors/run_test.pl: + * connectors/dds4ccm/tests/QueryFilter/descriptors/run_test.pl: + * connectors/dds4ccm/tests/QueryFilterListenEvent/descriptors/run_test.pl: + * connectors/dds4ccm/tests/QueryFilterListenState/descriptors/run_test.pl: + * connectors/dds4ccm/tests/Reader/descriptors/run_test.pl: + * connectors/dds4ccm/tests/SLDisabled/descriptors/run_test.pl: + * connectors/dds4ccm/tests/SLManyByMany/descriptors/run_test.pl: + * connectors/dds4ccm/tests/SLOneByOne/descriptors/run_test.pl: + * connectors/dds4ccm/tests/SetConnectorAttributes/descriptors/run_test.pl: + * connectors/dds4ccm/tests/SharedDomainParticipant/DifferentDatatype/descriptors/run_test.pl: + * connectors/dds4ccm/tests/SharedDomainParticipant/SameDatatype/descriptors/run_test.pl: + * connectors/dds4ccm/tests/SharedDomainParticipant/SameDatatype/descriptors/run_test_default_qos.pl: + * connectors/dds4ccm/tests/State_Connection_Test/descriptors/run_test.pl: + * connectors/dds4ccm/tests/UnkeyedSamples/descriptors/run_test.pl: + * connectors/dds4ccm/tests/UnkeyedWriter/descriptors/run_test.pl: + * connectors/dds4ccm/tests/Updater/descriptors/run_test.pl: + * connectors/dds4ccm/tests/VariousTopicsEvent/descriptors/run_test.pl: + * connectors/dds4ccm/tests/VariousTopicsState/descriptors/run_test.pl: + + Ported tests. + + Fri May 21 03:54:36 UTC 2010 William R. Otte <wotte@dre.vanderbilt.edu> + + * examples/BasicSP/descriptors/BasicSP_Homed.cdp: + * examples/BasicSP/descriptors/run_test.pl: + * examples/Hello/descriptors/DeploymentPlan.cdp: + * examples/Hello/descriptors/DeploymentPlan_without_ns.cdp: + * examples/Hello/descriptors/run_test.pl: + * examples/Hello/descriptors/run_test_PlanLocality_DifferentProcesses.pl: + * examples/Hello/descriptors/run_test_PlanLocality_SameProcess.pl: + * examples/Hello/descriptors/run_test_alias.pl: + * examples/Hello/descriptors/run_test_without_ns.pl: + * examples/Null_Component/descriptors/Null_Homed.cdp: + * examples/Null_Component/descriptors/run_test.pl: + * examples/Null_Component/descriptors/run_test_without_ns.pl: + * examples/Null_Component_Glfa/descriptors/Null_Homed.cdp: + * examples/Null_Component_Glfa/descriptors/run_test.pl: + * tests/Bug_2130_Regression/descriptors/run_test.pl: + * tests/Bug_3769_Regression/descriptors/run_test.pl: + * tests/Bug_3834_Regression/descriptors/run_test.pl: + * tests/Bug_3834_Regression/descriptors/run_test_without_ns.pl: + * tests/IDL_Test/Double_Inherited_Component/run_test.pl: + + Ported tests. + + Fri May 21 03:08:15 UTC 2010 William R. Otte <wotte@dre.vanderbilt.edu> + + * DAnCE/DAnCE/DAnCE_Utility.cpp: + * DAnCE/LocalityManager/Daemon/Locality_Manager.mpc: + * DAnCE/LocalityManager/Daemon/Locality_Manager_Impl.h: + * DAnCE/LocalityManager/Daemon/Locality_Manager_Impl.cpp: + * DAnCE/LocalityManager/Daemon/Name_Utilities.h: + * DAnCE/LocalityManager/Daemon/Name_Utilities.cpp: + * DAnCE/LocalityManager/Handler/Locality_Manager_Handler_Impl.cpp: + * DAnCE/NodeApplication/NodeApplication.mpc: + * DAnCE/Plan_Launcher/Plan_Launcher_Base_Impl_T.cpp: + * DAnCE/tests/CIAO/CommandlinePassage/Component.cdp: + * DAnCE/tests/CIAO/CommandlinePassage/run_test.pl: + * ciao/Containers/Container_Base.idl: + * ciao/Containers/Session/Session_Container.h: + * ciao/Containers/Session/Session_Container.cpp: + * ciao/Deployment/Handlers/CIAO_Handler_Common.h: + * ciao/Deployment/Handlers/CIAO_Handler_Common.cpp: + * ciao/Deployment/Handlers/Component_Handler.cpp: + * ciao/Deployment/Handlers/Connection_Handler.cpp: + * ciao/Deployment/Handlers/Homed_Component_Handler.cpp: + * ciao/Servants/Home_Servant_Impl_T.cpp: + + Various bug fixes, and added support for 1) attribute + initialization, 2) external reference endpoints. + + * DAnCE/tests/CIAO/Components/SimpleAttribute_exec.cpp: + + Log message fix. + + * DAnCE/tests/CIAO/EM-Launch-Failures/1NodeFailureAtActivate.cdp: + * DAnCE/tests/CIAO/EM-Launch-Failures/1NodeFailureAtStartup.cdp: + * DAnCE/tests/CIAO/EM-Launch-Failures/1NodeNoFailure.cdp: + * DAnCE/tests/CIAO/EM-Launch-Failures/2NodeFailureAtActivate.cdp: + * DAnCE/tests/CIAO/EM-Launch-Failures/2NodeFailureAtStartup.cdp: + * DAnCE/tests/CIAO/EM-Launch-Failures/2NodeNoFailure.cdp: + * DAnCE/tests/CIAO/EM-Launch-Failures/5NodeFailureAtActivate.cdp: + * DAnCE/tests/CIAO/EM-Launch-Failures/5NodeFailureAtStartup.cdp: + * DAnCE/tests/CIAO/EM-Launch-Failures/5NodeNoFailure.cdp: + * DAnCE/tests/CIAO/EM-Launch-Failures/run_test.pl: + * DAnCE/tests/CIAO/EM-Redeployment/run_test.pl: + * DAnCE/tests/CIAO/ExecutionManager-Deployments/EmitsConnectionExplicitHome.cdp: + * DAnCE/tests/CIAO/ExecutionManager-Deployments/EmitsConnectionExplicitHome_NS.cdp: + * DAnCE/tests/CIAO/ExecutionManager-Deployments/MultiplexConnectionExplicitHome.cdp: + * DAnCE/tests/CIAO/ExecutionManager-Deployments/MultiplexConnectionExplicitHome_NS.cdp: + * DAnCE/tests/CIAO/ExecutionManager-Deployments/MultiplexConnectionExplicitHome_NS_PL_DP.cdp: + * DAnCE/tests/CIAO/ExecutionManager-Deployments/MultiplexConnectionExplicitHome_NS_PL_SP.cdp: + * DAnCE/tests/CIAO/ExecutionManager-Deployments/PublishConnectionExplicitHome.cdp: + * DAnCE/tests/CIAO/ExecutionManager-Deployments/PublishConnectionExplicitHome_NS.cdp: + * DAnCE/tests/CIAO/ExecutionManager-Deployments/SimpleComponentExplicitHome.cdp: + * DAnCE/tests/CIAO/ExecutionManager-Deployments/SimplexConnectionExplicitHome.cdp: + * DAnCE/tests/CIAO/ExecutionManager-Deployments/SimplexConnectionExplicitHome_NS.cdp: + * DAnCE/tests/CIAO/ExecutionManager-Deployments/SimplexConnectionExplicitHome_NS_PL_DP.cdp: + * DAnCE/tests/CIAO/ExecutionManager-Deployments/SimplexConnectionExplicitHome_NS_PL_SP.cdp: + * DAnCE/tests/CIAO/ExecutionManager-Deployments/SimplexConnectionExplicitHome_NilFacet.cdp: + * DAnCE/tests/CIAO/ExecutionManager-Deployments/run_test.pl: + * DAnCE/tests/CIAO/ExecutionManager-Deployments/run_test_cdr.pl: + * DAnCE/tests/CIAO/NodeManager-Deployments/run_test_cdr.pl: + * DAnCE/tests/CIAO/Progressive_Deployments/Plan_A.cdp: + * DAnCE/tests/CIAO/Progressive_Deployments/Plan_B.cdp: + * DAnCE/tests/CIAO/Progressive_Deployments/Plan_C.cdp: + * DAnCE/tests/CIAO/Progressive_Deployments/run_test.pl: + + Ported DAnCE tests. + + * DAnCE/NodeApplication/Name_Utilities.h: + * DAnCE/NodeApplication/Name_Utilities.cpp: + + Removed these files. + + Thu May 20 19:29:49 UTC 2010 William R. Otte <wotte@dre.vanderbilt.edu> + + * DAnCE/DAnCE/DAnCE_Core.mpc: + * ciao/ComponentServer/CIAO_ComponentServer.mpc: + * DAnCE/LocalityManager/Handler/LocalityHandler.mpc: + * DAnCE/LocalityManager/Daemon/Locality_Manager.mpc: + + Windows compile fixes. + + * DAnCE/LocalityManager/Daemon/Locality_Manager_Impl.cpp: + * DAnCE/LocalityManager/Handler/LocalityActivator_Impl.h: + * DAnCE/NodeApplication/NodeApplication_Impl.cpp: + * DAnCE/tests/CIAO/NodeManager-Deployments/PublishConnectionExplicitHome.cdp: + * ciao/Deployment/Handlers/Component_Handler.cpp: + * ciao/Deployment/Handlers/Connection_Handler.cpp: + * ciao/Deployment/Handlers/Home_Handler.cpp: + * ciao/Deployment/Handlers/Homed_Component_Handler.cpp: + + Bugfixes. + + * ciao/Servants/Connector_Servant_Impl_Base.cpp: + + Default connect_consumer behavior should throw an + InvalidName exception. + + Wed May 19 18:37:49 UTC 2010 wotte <wotte@> + + * DAnCE/NodeApplication/NodeApplication.mpc: + * DAnCE/LocalityManager/Daemon/Locality_Manager.mpc: + * ciao/ComponentServer/CIAO_ComponentServer.mpc: + * MPC/config/ciao_componentserver_stub.mpb: + + Build ordering issues. + + Wed May 19 12:17:27 UTC 2010 William R. Otte <wotte@dre.vanderbilt.edu> + + * ciao/ComponentServer/CIAO_ComponentServer.mpc: + * ciao/ComponentServer/CIAO_Properties.idl: + * ciao/ComponentServer/Client_init.h: + * ciao/ComponentServer/Server_init.h: + + * ciao/Deployment: + + * ciao/Deployment/Handlers: + + * ciao/Deployment/Handlers/CIAO_Deployment_Handlers.mpc: + * ciao/Deployment/Handlers/CIAO_Handler_Common.h: + * ciao/Deployment/Handlers/CIAO_Handler_Common.cpp: + * ciao/Deployment/Handlers/CIAO_Locality_Handler_Export.h: + * ciao/Deployment/Handlers/CIAO_State.h: + * ciao/Deployment/Handlers/CIAO_State.cpp: + * ciao/Deployment/Handlers/Component_Handler.h: + * ciao/Deployment/Handlers/Component_Handler.cpp: + * ciao/Deployment/Handlers/Connection_Handler.h: + * ciao/Deployment/Handlers/Connection_Handler.cpp: + * ciao/Deployment/Handlers/Container_Handler.h: + * ciao/Deployment/Handlers/Container_Handler.cpp: + * ciao/Deployment/Handlers/Home_Handler.h: + * ciao/Deployment/Handlers/Home_Handler.cpp: + * ciao/Deployment/Handlers/Homed_Component_Handler.h: + * ciao/Deployment/Handlers/Homed_Component_Handler.cpp: + + * ciao/Deployment/Interceptors: + + First round CIAO deployment handlers. + + Wed May 19 12:11:34 UTC 2010 William R. Otte <wotte@dre.vanderbilt.edu> + + * DAnCE/DAnCE/DAnCE_Core.mpc: + * DAnCE/DAnCE/DAnCE_LocalityManager.idl: + * DAnCE/DAnCE/DAnCE_Properties.idl: + * DAnCE/DAnCE/DAnCE_Utility.h: + * DAnCE/DAnCE/DAnCE_Utility.cpp: + * DAnCE/DAnCE/DAnCE_Utility.tpp: + + * DAnCE/Deployment/Deployment_Core.mpc: + + * DAnCE/LocalityManager/Daemon: + + * DAnCE/LocalityManager/Daemon/Locality_Manager.cpp: + * DAnCE/LocalityManager/Daemon/Locality_Manager.mpc: + * DAnCE/LocalityManager/Daemon/Locality_Manager_Impl.h: + * DAnCE/LocalityManager/Daemon/Locality_Manager_Impl.cpp: + * DAnCE/LocalityManager/Daemon/Locality_Manager_Impl_Export.h: + * DAnCE/LocalityManager/Daemon/Locality_Manager_Task.h: + * DAnCE/LocalityManager/Daemon/Locality_Manager_Task.cpp: + + * DAnCE/LocalityManager/Handler: + + * DAnCE/LocalityManager/Handler/DAnCE_Locality_Handler_export.h: + * DAnCE/LocalityManager/Handler/LocalityActivator_Impl.h: + * DAnCE/LocalityManager/Handler/LocalityActivator_Impl.cpp: + * DAnCE/LocalityManager/Handler/LocalityHandler.mpc: + * DAnCE/LocalityManager/Handler/Locality_Manager_Handler_Impl.h: + * DAnCE/LocalityManager/Handler/Locality_Manager_Handler_Impl.cpp: + + * DAnCE/MPC/config/dance_locality_handler.mpb: + * DAnCE/MPC/config/dance_locality_manager.mpb: + * DAnCE/MPC/config/dance_nodeapplication.mpb: + * DAnCE/MPC/config/dance_skel.mpb: + * DAnCE/MPC/config/dance_split_plan.mpb: + * DAnCE/MPC/config/dance_stub.mpb: + + * DAnCE/NodeApplication/NodeApplication.mpc: + * DAnCE/NodeApplication/NodeApplication_Impl.h: + * DAnCE/NodeApplication/NodeApplication_Impl.cpp: + + * DAnCE/NodeApplicationManager/NodeApplicationManager.mpc: + * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.h: + * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp: + + * DAnCE/NodeManager/NodeManager.mpc: + * DAnCE/NodeManager/NodeManager_Impl.h: + * DAnCE/NodeManager/Node_Manager_Module.h: + * DAnCE/NodeManager/Node_Manager_Module.cpp: + + * DAnCE/tests/CIAO/NodeManager-Deployments/EmitsConnectionExplicitHome.cdp: + * DAnCE/tests/CIAO/NodeManager-Deployments/MultiplexConnectionExplicitHome.cdp: + * DAnCE/tests/CIAO/NodeManager-Deployments/PublishConnectionExplicitHome.cdp: + * DAnCE/tests/CIAO/NodeManager-Deployments/SimpleAttributeExplicitHome.cdp: + * DAnCE/tests/CIAO/NodeManager-Deployments/SimpleComponentExplicitHome.cdp: + * DAnCE/tests/CIAO/NodeManager-Deployments/SimplexConnectionExplicitHome.cdp: + * DAnCE/tests/CIAO/NodeManager-Deployments/TwoComponentsOneHome.cdp: + * DAnCE/tests/CIAO/NodeManager-Deployments/run_test.pl: + + * DAnCE/tests/LocalityManager: + + * DAnCE/tests/LocalityManager/SpawnMultiple: + + * DAnCE/tests/LocalityManager/SpawnMultiple/Deployment.cdp: + * DAnCE/tests/LocalityManager/SpawnMultiple/run_test.pl: + + * DAnCE/tests/LocalityManager/SpawnOne: + + * DAnCE/tests/LocalityManager/SpawnOne/Deployment.cdp: + * DAnCE/tests/LocalityManager/SpawnOne/run_test.pl: + + * DAnCE/tools: + + First round LocalityManager implementation. + + * DAnCE/DAnCE/Deployment_common.h: + + Removed this file. + + Tue May 11 23:06:20 UTC 2010 wotte <wotte@dre.vanderbilt.edu> + + * DAnCE/Plan_Launcher/Plan_Launcher.cpp: + + Fixed error when --help is passed, reverse -a and -m in usage. + + Wed Apr 14 15:06:32 UTC 2010 William R. Otte <wotte@dre.vanderbilt.edu> + + * DAnCE/DAnCE/DAnCE_ArtifactInstallation.idl: + * DAnCE/DAnCE/DAnCE_Core.mpc: + * DAnCE/DAnCE/DAnCE_DeploymentInterceptors.idl: + * DAnCE/DAnCE/DAnCE_LocalityManager.idl: + * DAnCE/Deployment/Deployment_Application.idl: + * DAnCE/Deployment/Deployment_ApplicationManager.idl: + * DAnCE/Deployment/Deployment_Core.mpc: + * DAnCE/Deployment/Deployment_InvalidComponentExecParameter.idl: + * DAnCE/Deployment/Deployment_InvalidConnection.idl: + * DAnCE/Deployment/Deployment_InvalidNodeExecParameter.idl: + * DAnCE/Deployment/Deployment_InvalidProperty.idl: + * DAnCE/Deployment/Deployment_ResourceNotAvailable.idl: + * DAnCE/LocalityManager: + + Integrated new IDL. + + * DAnCE/DAnCE/DAnCE_Properties.mpc: + * DAnCE/Deployment/DAnCE_Core.mpc: + + Removed these files. + Fri May 21 13:51:16 UTC 2010 Adam Mitz <mitza@ociweb.com> * ccm/ComponentServer/CCM_ComponentServer.mpc: diff --git a/CIAO/DAnCE/DAnCE/DAnCE_ArtifactInstallation.idl b/CIAO/DAnCE/DAnCE/DAnCE_ArtifactInstallation.idl new file mode 100644 index 00000000000..f1b1323a3a3 --- /dev/null +++ b/CIAO/DAnCE/DAnCE/DAnCE_ArtifactInstallation.idl @@ -0,0 +1,40 @@ +// $Id$ + +#ifndef DANCE_ARTIFACTINSTALLATION_IDL +#define DANCE_ARTIFACTINSTALLATION_IDL + +#include "Deployment/Deployment_DeploymentPlan.idl" +#include "Deployment/Deployment_PlanError.idl" + +module DAnCE +{ + /// Each ArtifactInstallationHandler knows how to handle + /// a single protocol. + local interface ArtifactInstallationHandler + { + readonly attribute string protocol; + + void install (inout ::Deployment::ArtifactDeploymentDescription artifact, + in string uuid) + raises (::Deployment::PlanError); + + void uninstall (in string uuid); + }; + + interface ArtifactInstallation + { + /// Acts as a front end to the ArtifactInstallationHandlers + /// that were installed at object creation. Each InstallationHandler + /// is capable of handling a single URI type; + void install (in ::Deployment::ArtifactDeploymentDescription artifact, + in string uuid) + raises (::Deployment::PlanError); + + void uninstall (in string uuid); + + /// Used by component/locality server to query location of a given artifact + string get_artifact_location (in string uuid); + }; +}; + +#endif diff --git a/CIAO/DAnCE/DAnCE/DAnCE_Core.mpc b/CIAO/DAnCE/DAnCE/DAnCE_Core.mpc new file mode 100644 index 00000000000..4416ba967e4 --- /dev/null +++ b/CIAO/DAnCE/DAnCE/DAnCE_Core.mpc @@ -0,0 +1,57 @@ +// $Id$ +project(DAnCE_IDL) : ciaolib_with_idl, dance_output, valuetype, gen_ostream, \ + dance_deployment_stub { + custom_only = 1 + idlflags += -Wb,stub_export_macro=DANCE_STUB_Export \ + -Wb,stub_export_include=DAnCE_stub_export.h \ + -Wb,skel_export_macro=DANCE_SKEL_Export \ + -Wb,skel_export_include=DAnCE_skel_export.h + + IDL_Files { + idlflags += -SS -Sci + DAnCE_DeploymentInterceptors.idl + DAnCE_Properties.idl + } + + IDL_Files { + idlflags += -Gxhst -Gxhsk + DAnCE_LocalityManager.idl + } + + IDL_Files { + DAnCE_ArtifactInstallation.idl + } +} + +project (DAnCE_stub) : ciaolib_with_idl, dance_output, \ + dance_applicationmanager_stub, dance_deployment_stub, \ + dance_logger \ + { + after += DAnCE_IDL + dynamicflags = DANCE_STUB_BUILD_DLL + IDL_Files { + } + + Source_Files { + DAnCE_DeploymentInterceptorsC.cpp + DAnCE_PropertiesC.cpp + DAnCE_LocalityManagerC.cpp + DAnCE_ArtifactInstallationC.cpp + DAnCE_Utility.cpp + } +} + +project (DAnCE_skel) : ciaolib_with_idl, dance_output, \ + dance_applicationmanager_skel, dance_deployment_skel \ + { + after += DAnCE_stub + libs += DAnCE_stub + dynamicflags = DANCE_SKEL_BUILD_DLL + IDL_Files { + } + + Source_Files { + DAnCE_LocalityManagerS.cpp + DAnCE_ArtifactInstallationS.cpp + } +} diff --git a/CIAO/DAnCE/DAnCE/DAnCE_DeploymentInterceptors.idl b/CIAO/DAnCE/DAnCE/DAnCE_DeploymentInterceptors.idl new file mode 100644 index 00000000000..c9c75fab3f9 --- /dev/null +++ b/CIAO/DAnCE/DAnCE/DAnCE_DeploymentInterceptors.idl @@ -0,0 +1,59 @@ +// $Id$ + +#ifndef DANCE_DEPLOYMENTINTERCEPTOR_IDL +#define DANCE_DEPLOYMENTINTERCEPTOR_IDL + +#include "Deployment/Deployment_DeploymentPlan.idl" +#include "Deployment/Deployment_PlanError.idl" +#include "Deployment/Deployment_InvalidProperty.idl" +#include "Deployment/Deployment_InvalidNodeExecParameter.idl" +#include "Deployment/Deployment_InvalidComponentExecParameter.idl" +#include "Deployment/Deployment_InvalidConnection.idl" + +module DAnCE +{ + local interface DeploymentInterceptor + { + + }; + + local interface PlanPreprocessing : DeploymentInterceptor + { + void preprocess_plan (inout ::Deployment::DeploymentPlan plan) + raises (::Deployment::PlanError); + }; + + local interface InstanceInstallation : DeploymentInterceptor + { + void instance_pre_install (inout ::Deployment::DeploymentPlan plan, + in unsigned long instanceRef) + raises (::Deployment::PlanError, + ::Deployment::InvalidProperty, + ::Deployment::InvalidNodeExecParameter, + ::Deployment::InvalidComponentExecParameter); + + void instance_post_install (in ::Deployment::DeploymentPlan plan, + in unsigned long instance_index, + in any instance_reference, + in any exception_thrown) + raises (::Deployment::PlanError, + ::Deployment::InvalidProperty, + ::Deployment::InvalidNodeExecParameter, + ::Deployment::InvalidComponentExecParameter); + }; + + local interface InstanceConnection + { + void instance_pre_connect (inout ::Deployment::DeploymentPlan plan, + in unsigned long connection_index, + inout any provided_reference) + raises (::Deployment::InvalidConnection); + + void instance_post_connect (in Deployment::DeploymentPlan plan, + in unsigned long connectionRef, + in any exceptionThrown) + raises (::Deployment::InvalidConnection); + }; +}; + +#endif diff --git a/CIAO/DAnCE/DAnCE/DAnCE_LocalityManager.idl b/CIAO/DAnCE/DAnCE/DAnCE_LocalityManager.idl new file mode 100644 index 00000000000..31272758da2 --- /dev/null +++ b/CIAO/DAnCE/DAnCE/DAnCE_LocalityManager.idl @@ -0,0 +1,98 @@ +// $Id$ + +#ifndef DANCE_LOCALITYMANAGER_IDL +#define DANCE_LOCALITYMANAGER_IDL + +#include "Deployment/Deployment_Application.idl" +#include "Deployment/Deployment_ApplicationManager.idl" +#include "Deployment/Deployment_InvalidProperty.idl" +#include "Deployment/Deployment_InvalidNodeExecParameter.idl" +#include "Deployment/Deployment_InvalidComponentExecParameter.idl" +#include "Deployment/Deployment_InvalidConnection.idl" +#include "Deployment/Deployment_StopError.idl" +#include "Deployment/Deployment_StopError.idl" +#include "Deployment/Deployment_PlanError.idl" +#include "Deployment/Deployment_ResourceNotAvailable.idl" +#include "Deployment/Deployment_ResourceCommitmentManager.idl" + +module DAnCE +{ + /// intended to implement installation logic for a particular instance + /// type + local interface InstanceDeploymentHandler + { + readonly attribute string instance_type; + + void install_instance (in ::Deployment::DeploymentPlan plan, + in unsigned long instanceRef, + out any instance_reference) + raises (Deployment::ResourceNotAvailable, + Deployment::StartError, + Deployment::InvalidProperty, + Deployment::InvalidNodeExecParameter, + Deployment::InvalidComponentExecParameter); + + void activate_instance (in ::Deployment::DeploymentPlan plan, + in unsigned long instanceRef, + in any instance_reference) + raises (Deployment::StartError); + + void passivate_instance (in ::Deployment::DeploymentPlan plan, + in unsigned long instanceRef, + in any instance_reference) + raises (Deployment::StopError); + + void remove_instance (in ::Deployment::DeploymentPlan plan, + in unsigned long instanceRef, + in any instance_reference) + raises (::Deployment::StopError); + + void provide_endpoint_reference (in ::Deployment::DeploymentPlan plan, + in unsigned long connectionRef, + out any endpoint_reference) + raises (Deployment::PlanError); + + void connect_instance (in ::Deployment::DeploymentPlan plan, + in unsigned long connectionRef, + in any provided_reference) + raises (Deployment::StartError, + Deployment::InvalidConnection); + + void disconnect_instance (in ::Deployment::DeploymentPlan plan, + in unsigned long connectionRef) + raises (::Deployment::StopError); + + void instance_configured (in ::Deployment::DeploymentPlan plan, + in unsigned long instanceRef) + raises (Deployment::StartError); + }; + + interface LocalityManager : + Deployment::Application, + Deployment::ApplicationManager + { + readonly attribute ::Deployment::Properties configuration; + + Deployment::ApplicationManager + preparePlan (in Deployment::DeploymentPlan plan, + in Deployment::ResourceCommitmentManager resourceCommitment) + raises (Deployment::StartError, + Deployment::PlanError); + + void destroyManager (in ::Deployment::ApplicationManager manager) + raises (Deployment::StopError); + + oneway void shutdown (); + }; + + interface LocalityManagerActivator + { + void locality_manager_callback (in LocalityManager ref, + in string uuid, + out Deployment::Properties config); + + void configuration_complete (in string uuid); + }; +}; + +#endif diff --git a/CIAO/DAnCE/DAnCE/DAnCE_Properties.idl b/CIAO/DAnCE/DAnCE/DAnCE_Properties.idl index d8599aed857..7e3bc9ade69 100644 --- a/CIAO/DAnCE/DAnCE/DAnCE_Properties.idl +++ b/CIAO/DAnCE/DAnCE/DAnCE_Properties.idl @@ -19,10 +19,6 @@ module DAnCE /// Indicates that the component instance should be deployed using specified home ID. /// Property value is string. const string EXPLICIT_HOME = "edu.vanderbilt.dre.DAnCE.ExplicitHome"; - - const string SERVER_EXECUTABLE = "edu.vanderbilt.dre.DAnCE.ServerExecutable"; - - const string IMPL_TYPE = "edu.vanderbilt.dre.DAnCE.ImplementationType"; // Instance (i.e., Home or Component) Properties /// Indicates that the instance object reference should be registered in the @@ -42,6 +38,20 @@ module DAnCE /// Indicates the naming context used for instance objects. const string INSTANCE_NC = "edu.vanderbilt.dre.DAnCE.InstanceNC"; + const string LOCALITY_TIMEOUT = "edu.vanderbilt.dre.DAnCE.LocalityTimeout"; + const string LOCALITY_UUID = "edu.vanderbilt.dre.DAnCE.LocalityUUID"; + const string LOCALITY_ARGUMENTS = "edu.vanderbilt.dre.DAnCE.LocalityArguments"; + const string LOCALITY_EXECUTABLE = "edu.vanderbilt.dre.DAnCE.LocalityExec"; + const string LOCALITY_MULTITHREAD = "edu.vanderbilt.dre.DAnCE.LocalityMutltithread"; + + // Implementation Types + const string IMPL_TYPE = "edu.vanderbilt.dre.DAnCE.ImplementationType"; + const string SERVER_EXECUTABLE = "edu.vanderbilt.dre.DAnCE.ServerExecutable"; + const string CCM_CONTAINER = "edu.dre.vanderbilt.dre.CCM.Container"; + const string CCM_HOME = "edu.dre.vanderbilt.dre.CCM.Home"; + const string CCM_COMPONENT = "edu.dre.vanderbilt.dre.CCM.Component"; + const string CCM_HOMEDCOMPONENT = "edu.dre.vanderbilt.dre.CCM.HomedComponent"; + const string DANCE_LOCALITYMANAGER = "edu.vanderbilt.dre.DAnCE.LocalityManager"; }; diff --git a/CIAO/DAnCE/DAnCE/DAnCE_Utility.cpp b/CIAO/DAnCE/DAnCE/DAnCE_Utility.cpp new file mode 100644 index 00000000000..f320262e2b1 --- /dev/null +++ b/CIAO/DAnCE/DAnCE/DAnCE_Utility.cpp @@ -0,0 +1,261 @@ +// $Id$ + +#ifndef DAnCE_Utility_CPP +#define DAnCE_Utility_CPP + +#include "DAnCE_Utility.h" +#include "ace/OS_NS_stdio.h" +#include "DAnCE_PropertiesC.h" + +namespace DAnCE +{ + namespace Utility + { + void build_property_map (PROPERTY_MAP &map, + const ::Deployment::Properties &prop) + { + DANCE_TRACE("DAnCE::Utility::build_config_values_map"); + + + for (CORBA::ULong i = 0; i < prop.length (); ++i) + { + int const retval = map.rebind (prop[i].name.in (), prop[i].value); + + if (retval == 1) + { + DANCE_ERROR (1, (LM_WARNING, DLINFO + "build_property_map: Duplicate value " + "for %C encountered, " + "old value overwritten.\n", + prop[i].name.in ())); + } + else if (retval == -1) + { + DANCE_ERROR (1, (LM_WARNING, DLINFO + "build_property_map: " + "Error binding value for %C, ignoring.\n", + prop[i].name.in ())); + } + else + { + DANCE_DEBUG (9, (LM_TRACE, DLINFO + "build_property_map: " + "Bound value for config value %C\n", + prop[i].name.in ())); + } + } + } + + int write_IOR (const ACE_TCHAR *pathname, const char *ior) + { + FILE* ior_output_file_ = ACE_OS::fopen (pathname, ACE_TEXT("w")); + + DANCE_DEBUG (7, (LM_DEBUG, DLINFO + "DAnCE::Utility::write_IOR - " + "Writing ior <%C> to file <%C>\n", + ior, pathname)); + + if (ior_output_file_) + { + ACE_OS::fprintf (ior_output_file_, + "%s", + ior); + ACE_OS::fclose (ior_output_file_); + return 0; + } + + return -1; + } + + + void append_properties (::Deployment::Properties &dest, + const ::Deployment::Properties &src) + { + CORBA::ULong pos = dest.length (); + dest.length (pos + src.length ()); + + for (CORBA::ULong i = 0; i < src.length (); ++i) + { + dest[pos].name = CORBA::string_dup (src[i].name.in ()); + dest[pos].value = src[i].value; + ++pos; + } + } + + template<> + bool get_property_value (const char *name, + const PROPERTY_MAP &properties, + bool &val) + { + DANCE_TRACE ("DAnCE::Utility::get_property_value<bool>"); + + DANCE_DEBUG (9, (LM_TRACE, DLINFO + ACE_TEXT("DAnCE::Utility::get_property_value<bool> - ") + ACE_TEXT("Finding property value for name '%C'\n"), + name)); + + CORBA::Any any; + if (properties.find (name, any) == 0) + { + if (any >>= CORBA::Any::to_boolean(val)) + { + return true; + } + else + { + DANCE_ERROR (1, (LM_WARNING, DLINFO + ACE_TEXT("DAnCE::Utility::get_property_value<T> - ") + ACE_TEXT("Failed to extract property value for %C\n"), name)); + return false; + } + } + + DANCE_DEBUG (9, (LM_TRACE, DLINFO + ACE_TEXT("DAnCE::Utility::get_property_value<bool> - ") + ACE_TEXT("Property value for name '%C' has no value\n"), + name)); + + return false; + } + + template<> + bool get_property_value (const char *name, + const PROPERTY_MAP &properties, + const char *&val) + { + DANCE_TRACE ("DAnCE::Utility::get_property_value<const char *>"); + CORBA::Any any; + + DANCE_DEBUG (9, (LM_TRACE, DLINFO + ACE_TEXT("DAnCE::Utility::get_property_value<bool> - ") + ACE_TEXT("Finding property value for name '%C'\n"), + name)); + + if (properties.find (name, any) == 0) + { + if (any >>= CORBA::Any::to_string(val, 0)) + { + return true; + } + else + { + DANCE_ERROR (1, (LM_WARNING, DLINFO + ACE_TEXT("DAnCE::Utility::get_property_value<const char *> - ") + ACE_TEXT("Failed to extract property value for %C\n"), name)); + return false; + } + } + + DANCE_DEBUG (9, (LM_TRACE, DLINFO + ACE_TEXT("DAnCE::Utility::get_property_value<bool> - ") + ACE_TEXT("Property value for name '%C' has no value\n"), name)); + + return false; + } + + template<> + bool get_property_value (const char *name, + const ::Deployment::Properties &properties, + const char * &val) + { + DANCE_TRACE ("DAnCE::Utility::get_property_value<const char *>"); + + DANCE_DEBUG (9, (LM_TRACE, DLINFO + ACE_TEXT("DAnCE::Utility::get_property_value<T> - ") + ACE_TEXT("Finding property value for name '%C'\n"), + name)); + + for (CORBA::ULong i = 0; i < properties.length (); ++i) + { + if (ACE_OS::strcmp (properties[i].name.in (), name) == 0) + { + DANCE_DEBUG (9, (LM_TRACE, DLINFO + ACE_TEXT("DAnCE::Utility::get_property_value<T> - ") + ACE_TEXT("Found property '%C'\n"), name)); + if (properties[i].value >>= CORBA::Any::to_string (val, 0)) + { + DANCE_DEBUG (9, (LM_TRACE, DLINFO + ACE_TEXT("DAnCE::Utility::get_property_value<T> - ") + ACE_TEXT("Value is %C\n"), val)); + return true; + } + else + { + DANCE_ERROR (1, (LM_WARNING, DLINFO + ACE_TEXT("DAnCE::Utility::get_property_value<T> - ") + ACE_TEXT("Failed to extract property value for %C\n"), + name)); + return false; + } + } + } + + + DANCE_DEBUG (9, (LM_TRACE, DLINFO + ACE_TEXT("DAnCE::Utility::get_property_value<T> - ") + ACE_TEXT("Unable to find property named %C\n"), name)); + + return false; + } + + const char * + get_instance_type (const ::Deployment::Properties& prop) + { + DANCE_TRACE ("DAnCE::Utility::get_instance_type"); + + for (CORBA::ULong i = 0; i < prop.length (); ++i) + { + DANCE_DEBUG (9, (LM_TRACE, DLINFO + ACE_TEXT("DAnCE::Utility::get_instance_type - ") + ACE_TEXT("Checking property %C\n"), + prop[i].name.in ())); + + if (ACE_OS::strcmp (prop[i].name.in (), + DAnCE::HOME_FACTORY) == 0) + { + DANCE_DEBUG (9, (LM_TRACE, DLINFO + ACE_TEXT("DAnCE::Utility::get_instance_type - ") + ACE_TEXT("Found Home type\n"))); + return DAnCE::CCM_HOME; + } + if (ACE_OS::strcmp (prop[i].name.in (), + DAnCE::COMPONENT_FACTORY) == 0) + { + DANCE_DEBUG (9, (LM_TRACE, DLINFO + ACE_TEXT("DAnCE::Utility::get_instance_type - ") + ACE_TEXT("Found unmanaged component type.\n"))); + return DAnCE::CCM_COMPONENT; + } + if (ACE_OS::strcmp (prop[i].name.in (), + DAnCE::EXPLICIT_HOME) == 0) + { + DANCE_DEBUG (9, (LM_TRACE, DLINFO + ACE_TEXT("DAnCE::Utility::get_instance_type - ") + ACE_TEXT("Found explicit home component type.\n"))); + return DAnCE::CCM_HOMEDCOMPONENT;; + } + + if (ACE_OS::strcmp (prop[i].name.in (), + DAnCE::IMPL_TYPE) == 0) + { + const char *val; + if (get_property_value (DAnCE::IMPL_TYPE, + prop, + val)) + { + DANCE_DEBUG (9, (LM_TRACE, DLINFO + ACE_TEXT("DAnCE::Utility::get_instance_type - ") + ACE_TEXT("Found instance type %C\n"), val)); + return val; + } + } + } + + DANCE_ERROR (1, (LM_INFO, DLINFO + ACE_TEXT("DAnCE::Utility::get_instance_type - ") + ACE_TEXT("Unable to determine instance type, instance will be ignored.\n"))); + return 0; + } + } /* namespace Utility */ +} +#endif /*DAnCE_Utility_CPP*/ diff --git a/CIAO/DAnCE/DAnCE/DAnCE_Utility.h b/CIAO/DAnCE/DAnCE/DAnCE_Utility.h new file mode 100644 index 00000000000..93567be7581 --- /dev/null +++ b/CIAO/DAnCE/DAnCE/DAnCE_Utility.h @@ -0,0 +1,106 @@ +// $Id$ + +/** + * @file DAnCE_Uility.h + * @author William R. Otte <wotte@dre.vanderbilt.edu> + * + * Utility methods used throughought DAnCE. + + */ + +#ifndef DAnCE_Utility_H +#define DAnCE_Utility_H + +#include /**/ "ace/pre.h" + +#include "DAnCE_stub_export.h" + +#include "ace/config-all.h" +#include "ace/Hash_Map_Manager_T.h" +#include "ace/Refcounted_Auto_Ptr.h" +#include "tao/AnyTypeCode/Any.h" +#include "Deployment/Deployment_DeploymentPlanC.h" +#include "DAnCE/Logger/Log_Macros.h" + +namespace DAnCE +{ + namespace Utility + { + typedef ACE_Hash_Map_Manager_Ex<ACE_CString, + CORBA::Any, + ACE_Hash<ACE_CString>, + ACE_Equal_To<ACE_CString>, + ACE_Null_Mutex> PROPERTY_MAP; + + typedef ACE_Refcounted_Auto_Ptr <PROPERTY_MAP, + ACE_SYNCH_MUTEX> PMAP_PTR; + + DANCE_STUB_Export void build_property_map (PROPERTY_MAP &map, + const ::Deployment::Properties &prop); + + template<class T> + bool + get_property_value (const char *name, + const PROPERTY_MAP &properties, + T &val); + + template<class T> + bool + get_property_value (const char *name, + const ::Deployment::Properties &properties, + T &val); + + template <typename EXCEPTION> + void test_and_set_exception (bool &flag, EXCEPTION &exception, + const char *name, const char *reason); + + + DANCE_STUB_Export const char * + get_instance_type (const ::Deployment::Properties& prop); + + DANCE_STUB_Export void append_properties (::Deployment::Properties &dest, + const ::Deployment::Properties &src); + + /// Write a string (usually a stringified IOR) to a file + /// designated by the @c pathname. The file named will always get + /// overwritten. + DANCE_STUB_Export int write_IOR (const ACE_TCHAR *pathname, + const char *IOR); + } +} + +// Template specializations. +namespace DAnCE +{ + namespace Utility + { + template<> + DANCE_STUB_Export bool + get_property_value (const char *name, + const PROPERTY_MAP &properties, bool &val); + + template<> + DANCE_STUB_Export bool + get_property_value (const char *name, + const PROPERTY_MAP &properties, const char *&val); + + template<> + DANCE_STUB_Export bool + get_property_value (const char *name, + const ::Deployment::Properties &properties, + const char * &val); + } +} + + +#if defined (ACE_TEMPLATES_REQUIRE_SOURCE) +#include "DAnCE_Utility.tpp" +#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */ + +#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA) +#pragma implementation ("DAnCE_Utility.tpp") +#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */ + + +#include /**/ "ace/post.h" +#endif diff --git a/CIAO/DAnCE/DAnCE/DAnCE_Utility.tpp b/CIAO/DAnCE/DAnCE/DAnCE_Utility.tpp new file mode 100644 index 00000000000..3933aa09211 --- /dev/null +++ b/CIAO/DAnCE/DAnCE/DAnCE_Utility.tpp @@ -0,0 +1,92 @@ +#ifndef DAnCE_Utility_TPP +#define DAnCE_Utility_TPP + +#include "DAnCE/DAnCE_Utility.h" + +namespace DAnCE +{ + namespace Utility + { + template<class T> + bool get_property_value (const char *name, const PROPERTY_MAP &properties, T &val) + { + DANCE_TRACE ("DAnCE::Utility::get_property_value<T>"); + CORBA::Any any; + + DANCE_DEBUG (9, (LM_TRACE, DLINFO + ACE_TEXT("DAnCE::Utility::get_property_value<T> - ") + ACE_TEXT("Finding property value for name '%C'\n"), + name)); + + if (properties.find (name, any) == 0) + { + if (any >>= val) + { + return true; + } + else + { + DANCE_ERROR (1, (LM_WARNING, DLINFO + ACE_TEXT("DAnCE::Utility::get_property_value<T> - ") + ACE_TEXT("Failed to extract property value for %C\n"), name)); + return false; + } + } + + DANCE_DEBUG (9, (LM_TRACE, DLINFO + ACE_TEXT("DAnCE::Utility::get_property_value<T> - ") + ACE_TEXT("Property value for name '%C' has no value\n"), name)); + + return false; + } + + template<class T> + bool get_property_value (const char *name, const ::Deployment::Properties &properties, T &val) + { + DANCE_TRACE ("DAnCE::Utility::get_property_value<T>"); + + DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("DAnCE::Utility::get_property_value<T> - ") + ACE_TEXT("Finding property value for name '%C'\n"), + name)); + + for (CORBA::ULong i = 0; i < properties.length (); ++i) + { + if (ACE_OS::strcmp (properties[i].name.in (), name) == 0) + { + DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("DAnCE::Utility::get_property_value<T> - ") + ACE_TEXT("Found property '%C'\n"), name)); + if (properties[i].value >>= val) + return true; + else + { + DANCE_ERROR (1, (LM_WARNING, DLINFO ACE_TEXT("DAnCE::Utility::get_property_value<T> - ") + ACE_TEXT("Failed to extract property value for %C\n"), name)); + return false; + } + } + } + + + DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("DAnCE::Utility::get_property_value<T> - ") + ACE_TEXT("Property value for name '%C' has no value\n"), name)); + + return false; + } + + /// Tests flag, if false, sets it to true and replaces the name and + /// reason flags of the exception. + template <typename EXCEPTION> + void test_and_set_exception (bool &flag, EXCEPTION &exception, + const char *name, const char *reason) + { + if (!flag) + { + flag = true; + exception.name = name; + exception.reason = reason; + } + } + } +} + +#endif diff --git a/CIAO/DAnCE/DAnCE/Deployment_common.h b/CIAO/DAnCE/DAnCE/Deployment_common.h deleted file mode 100644 index 8dd874bb119..00000000000 --- a/CIAO/DAnCE/DAnCE/Deployment_common.h +++ /dev/null @@ -1,35 +0,0 @@ -// $Id$ - -/** - * @file Deployment_common.h - * - * This file collects common type definitions used across different - * objects of DAnCE toolchain. - * - * @author Gan Deng <dengg@dre.vanderbilt.edu> - */ - -#ifndef DANCE_COMMON_H -#define DANCE_COMMON_H -#include /**/ "ace/pre.h" - -#include "ace/config-all.h" -#include "ace/Hash_Map_Manager_T.h" -#include "tao/AnyTypeCode/Any.h" - -#if !defined ACE_LACKS_PRAGMA_ONCE -#pragma once -#endif /* ! ACE_LACKS_PRAGMA_ONCE */ - -/// A struct which captures the binding information about a component -namespace DAnCE -{ - typedef ACE_Hash_Map_Manager_Ex<ACE_CString, - CORBA::Any, - ACE_Hash<ACE_CString>, - ACE_Equal_To<ACE_CString>, - ACE_Null_Mutex> PROPERTY_MAP; -} - -#include /**/ "ace/post.h" -#endif /* DANCE_COMMON_H */ diff --git a/CIAO/DAnCE/Deployment/Deployment_Application.idl b/CIAO/DAnCE/Deployment/Deployment_Application.idl index d0f46188d25..3bd73105718 100644 --- a/CIAO/DAnCE/Deployment/Deployment_Application.idl +++ b/CIAO/DAnCE/Deployment/Deployment_Application.idl @@ -6,14 +6,10 @@ #include "DAnCE/Deployment/Deployment_Connection.idl" #include "DAnCE/Deployment/Deployment_StartError.idl" #include "DAnCE/Deployment/Deployment_StopError.idl" +#include "DAnCE/Deployment/Deployment_InvalidConnection.idl" module Deployment { - exception InvalidConnection { - string name; - string reason; - }; - interface Application { void finishLaunch (in Connections providedReference, in boolean start) raises (StartError, InvalidConnection); diff --git a/CIAO/DAnCE/Deployment/Deployment_ApplicationManager.idl b/CIAO/DAnCE/Deployment/Deployment_ApplicationManager.idl index ed5eab97c08..4b1dd46fb91 100644 --- a/CIAO/DAnCE/Deployment/Deployment_ApplicationManager.idl +++ b/CIAO/DAnCE/Deployment/Deployment_ApplicationManager.idl @@ -5,34 +5,15 @@ #define DEPLOYMENT_APPLICATIONMANAGER_IDL #include "DAnCE/Deployment/Deployment.idl" +#include "DAnCE/Deployment/Deployment_InvalidProperty.idl" #include "DAnCE/Deployment/Deployment_Application.idl" #include "DAnCE/Deployment/Deployment_Connection.idl" +#include "DAnCE/Deployment/Deployment_ResourceNotAvailable.idl" +#include "DAnCE/Deployment/Deployment_InvalidNodeExecParameter.idl" +#include "DAnCE/Deployment/Deployment_InvalidComponentExecParameter.idl" module Deployment { - exception ResourceNotAvailable { - string name; - string resourceType; - string propertyName; - string elementName; - string resourceName; - }; - - exception InvalidNodeExecParameter { - string name; - string reason; - }; - - exception InvalidComponentExecParameter { - string name; - string reason; - }; - - exception InvalidProperty { - string name; - string reason; - }; - interface ApplicationManager { Application startLaunch (in Properties configProperty, out Connections providedReference) diff --git a/CIAO/DAnCE/Deployment/DAnCE_Core.mpc b/CIAO/DAnCE/Deployment/Deployment_Core.mpc index d11f20e25af..5ba95dc8eb6 100644 --- a/CIAO/DAnCE/Deployment/DAnCE_Core.mpc +++ b/CIAO/DAnCE/Deployment/Deployment_Core.mpc @@ -1,7 +1,7 @@ // -*- MPC -*- // $Id$ -project(Deployment_IDL) : install, ciaolib_with_idl, dance_output, valuetype, gen_ostream, ami, amh { +project(Deployment_IDL) : ciaolib_with_idl, dance_output, valuetype, gen_ostream, ami, amh { custom_only = 1 idlflags += -Wb,stub_export_macro=DEPLOYMENT_STUB_Export \ -Wb,stub_export_include=Deployment_stub_export.h \ @@ -13,6 +13,11 @@ project(Deployment_IDL) : install, ciaolib_with_idl, dance_output, valuetype, ge idlflags += -SS -Sci Deployment_Packaging_Data.idl Deployment_PlanError.idl + Deployment_InvalidProperty.idl + Deployment_InvalidNodeExecParameter.idl + Deployment_InvalidComponentExecParameter.idl + Deployment_InvalidConnection.idl + Deployment_ResourceNotAvailable.idl Deployment_Connection.idl Deployment_StopError.idl Deployment_StartError.idl @@ -36,13 +41,9 @@ project(Deployment_IDL) : install, ciaolib_with_idl, dance_output, valuetype, ge idlflags += -Ssi Deployment_ResourceCommitmentManager.idl } - - specific { - install_dir = DAnCE/Deployment - } } -project(Deployment_ApplicationManager_IDL) : install, ciaolib_with_idl, dance_output, valuetype, gen_ostream, ami, amh { +project(Deployment_ApplicationManager_IDL) : ciaolib_with_idl, dance_output, valuetype, gen_ostream, ami, amh { custom_only = 1 idlflags += -Wb,stub_export_macro=DEPLOYMENT_APPLICATIONMANAGER_STUB_Export \ -Wb,stub_export_include=Deployment_ApplicationManager_stub_export.h \ @@ -54,13 +55,9 @@ project(Deployment_ApplicationManager_IDL) : install, ciaolib_with_idl, dance_ou IDL_Files { Deployment_ApplicationManager.idl } - - specific { - install_dir = DAnCE/Deployment - } } -project(Deployment_TargetManager_IDL) : install, ciaolib_with_idl, dance_output, valuetype, gen_ostream { +project(Deployment_TargetManager_IDL) : ciaolib_with_idl, dance_output, valuetype, gen_ostream { custom_only = 1 idlflags += -Wb,stub_export_macro=DEPLOYMENT_TARGETMANAGER_STUB_Export \ -Wb,stub_export_include=Deployment_TargetManager_stub_export.h \ @@ -71,12 +68,9 @@ project(Deployment_TargetManager_IDL) : install, ciaolib_with_idl, dance_output, IDL_Files { Deployment_TargetManager.idl } - specific { - install_dir = DAnCE/Deployment - } } -project(Deployment_RepositoryManager_IDL) : install, ciaolib_with_idl, dance_output, valuetype, gen_ostream { +project(Deployment_RepositoryManager_IDL) : ciaolib_with_idl, dance_output, valuetype, gen_ostream { custom_only = 1 idlflags += -Wb,stub_export_macro=DEPLOYMENT_REPOSITORYMANAGER_STUB_Export \ -Wb,stub_export_include=Deployment_RepositoryManager_stub_export.h \ @@ -87,12 +81,9 @@ project(Deployment_RepositoryManager_IDL) : install, ciaolib_with_idl, dance_out IDL_Files { Deployment_RepositoryManager.idl } - specific { - install_dir = DAnCE/Deployment - } } -project(Deployment_ExecutionManager_IDL) : install, ciaolib_with_idl, dance_output, valuetype, gen_ostream, amh { +project(Deployment_ExecutionManager_IDL) : ciaolib_with_idl, dance_output, valuetype, gen_ostream, amh { custom_only = 1 idlflags += -Wb,stub_export_macro=DEPLOYMENT_EXECUTIONMANAGER_STUB_Export \ -Wb,stub_export_include=Deployment_ExecutionManager_stub_export.h \ @@ -103,12 +94,9 @@ project(Deployment_ExecutionManager_IDL) : install, ciaolib_with_idl, dance_outp IDL_Files { Deployment_ExecutionManager.idl } - specific { - install_dir = DAnCE/Deployment - } } -project(Deployment_DAM_IDL) : install, ciaolib_with_idl, dance_output, valuetype, gen_ostream, amh { +project(Deployment_DAM_IDL) : ciaolib_with_idl, dance_output, valuetype, gen_ostream, amh { custom_only = 1 idlflags += -Wb,stub_export_macro=DEPLOYMENT_DOMAINAPPLICATIONMANAGER_STUB_Export \ -Wb,stub_export_include=Deployment_DomainApplicationManager_stub_export.h \ @@ -119,12 +107,9 @@ project(Deployment_DAM_IDL) : install, ciaolib_with_idl, dance_output, valuetype IDL_Files { Deployment_DomainApplicationManager.idl } - specific { - install_dir = DAnCE/Deployment - } } -project(Deployment_DomainApplication_IDL) : install, ciaolib_with_idl, dance_output, valuetype, gen_ostream, amh { +project(Deployment_DomainApplication_IDL) : ciaolib_with_idl, dance_output, valuetype, gen_ostream, amh { custom_only = 1 idlflags += -Wb,stub_export_macro=DEPLOYMENT_DOMAINAPPLICATION_STUB_Export \ -Wb,stub_export_include=Deployment_DomainApplication_stub_export.h \ @@ -135,12 +120,9 @@ project(Deployment_DomainApplication_IDL) : install, ciaolib_with_idl, dance_out IDL_Files { Deployment_DomainApplication.idl } - specific { - install_dir = DAnCE/Deployment - } } -project(Deployment_NAM_IDL) : install, ciaolib_with_idl, dance_output, valuetype, gen_ostream, ami { +project(Deployment_NAM_IDL) : ciaolib_with_idl, dance_output, valuetype, gen_ostream, ami { custom_only = 1 idlflags += -Wb,stub_export_macro=DEPLOYMENT_NODEAPPLICATIONMANAGER_STUB_Export \ -Wb,stub_export_include=Deployment_NodeApplicationManager_stub_export.h \ @@ -151,12 +133,9 @@ project(Deployment_NAM_IDL) : install, ciaolib_with_idl, dance_output, valuetype IDL_Files { Deployment_NodeApplicationManager.idl } - specific { - install_dir = DAnCE/Deployment - } } -project(Deployment_NodeManager_IDL) : install, ciaolib_with_idl, dance_output, valuetype, gen_ostream, ami { +project(Deployment_NodeManager_IDL) : ciaolib_with_idl, dance_output, valuetype, gen_ostream, ami { custom_only = 1 idlflags += -Wb,stub_export_macro=DEPLOYMENT_NODEMANAGER_STUB_Export \ -Wb,stub_export_include=Deployment_NodeManager_stub_export.h \ @@ -167,12 +146,9 @@ project(Deployment_NodeManager_IDL) : install, ciaolib_with_idl, dance_output, v IDL_Files { Deployment_NodeManager.idl } - specific { - install_dir = DAnCE/Deployment - } } -project(Deployment_NodeApplication_IDL) : install, ciaolib_with_idl, dance_output, valuetype, gen_ostream { +project(Deployment_NodeApplication_IDL) : ciaolib_with_idl, dance_output, valuetype, gen_ostream { custom_only = 1 idlflags += -Wb,stub_export_macro=DEPLOYMENT_NODEAPPLICATION_STUB_Export \ -Wb,stub_export_include=Deployment_NodeApplication_stub_export.h \ @@ -183,14 +159,11 @@ project(Deployment_NodeApplication_IDL) : install, ciaolib_with_idl, dance_outpu IDL_Files { Deployment_NodeApplication.idl } - specific { - install_dir = DAnCE/Deployment - } } // Valuetype library must be linked for this project. // Please don't remove. -project(Deployment_stub) : install, ciaolib_with_idl, dance_output, valuetype, ifr_client, messaging, dance_lib, dance_logger, gen_ostream, ami, amh { +project(Deployment_stub) : ciaolib_with_idl, dance_output, valuetype, ifr_client, messaging, dance_lib, dance_logger, gen_ostream, ami, amh { sharedname = DAnCE_Deployment_stub after += Deployment_IDL @@ -214,33 +187,15 @@ project(Deployment_stub) : install, ciaolib_with_idl, dance_output, valuetype, i Deployment_PlanErrorC.cpp DeploymentC.cpp Deployment_ResourceCommitmentManagerC.cpp - } - Header_Files { - Deployment_stub_export.h - Deployment_ApplicationC.h - Deployment_BaseC.h - DeploymentC.h - Deployment_ConnectionC.h - Deployment_DataC.h - Deployment_DeploymentPlanC.h - Deployment_Packaging_DataC.h - Deployment_PlanErrorC.h - Deployment_ResourceCommitmentManagerC.h - Deployment_StartErrorC.h - Deployment_StopErrorC.h - Deployment_TargetDataC.h - } - Inline_Files { - Deployment_ApplicationC.inl - Deployment_ResourceCommitmentManagerC.inl - Deployment_BaseC.inl - } - specific { - install_dir = DAnCE/Deployment + Deployment_InvalidPropertyC.cpp + Deployment_InvalidNodeExecParameterC.cpp + Deployment_InvalidComponentExecParameterC.cpp + Deployment_InvalidConnectionC.cpp + Deployment_ResourceNotAvailableC.cpp } } -project(Deployment_AM_stub) : install, dance_output, dance_deployment_stub, amh { +project(Deployment_AM_stub) : dance_output, dance_deployment_stub, amh { sharedname = DAnCE_ApplicationManager_stub after += Deployment_ApplicationManager_IDL dynamicflags = DEPLOYMENT_APPLICATIONMANAGER_STUB_BUILD_DLL @@ -254,22 +209,9 @@ project(Deployment_AM_stub) : install, dance_output, dance_deployment_stub, amh Source_Files { Deployment_ApplicationManagerC.cpp } - - Header_Files { - Deployment_ApplicationManager_stub_export.h - Deployment_ApplicationManagerC.h - } - - Inline_Files { - Deployment_ApplicationManagerC.inl - } - - specific { - install_dir = DAnCE/Deployment - } } -project(Deployment_AM_skel) : install, dance_output, dance_deployment_skel, dance_applicationmanager_stub, amh { +project(Deployment_AM_skel) : dance_output, dance_deployment_skel, dance_applicationmanager_stub, amh { sharedname = DAnCE_ApplicationManager_skel after += Deployment_AM_stub dynamicflags = DEPLOYMENT_APPLICATIONMANAGER_SKEL_BUILD_DLL @@ -283,23 +225,10 @@ project(Deployment_AM_skel) : install, dance_output, dance_deployment_skel, danc Source_Files { Deployment_ApplicationManagerS.cpp } - - Header_Files { - Deployment_ApplicationManagerS.h - Deployment_ApplicationManager_skel_export.h - } - - Inline_Files { - Deployment_ApplicationManagerS.inl - } - - specific { - install_dir = DAnCE/Deployment - } } -project(Deployment_DAM_stub) : install, dance_output, dance_applicationmanager_stub, amh { +project(Deployment_DAM_stub) : dance_output, dance_applicationmanager_stub, amh { sharedname = DAnCE_DomainApplicationManager_stub after += Deployment_DAM_IDL dynamicflags = DEPLOYMENT_DOMAINAPPLICATIONMANAGER_STUB_BUILD_DLL @@ -313,22 +242,9 @@ project(Deployment_DAM_stub) : install, dance_output, dance_applicationmanager_s Source_Files { Deployment_DomainApplicationManagerC.cpp } - - Header_Files { - Deployment_DomainApplicationManager_stub_export.h - Deployment_DomainApplicationManagerC.h - } - - Inline_Files { - Deployment_DomainApplicationManagerC.inl - } - - specific { - install_dir = DAnCE/Deployment - } } -project(Deployment_DAM_skel) : install, dance_output, dance_applicationmanager_skel, dance_domainapplicationmanager_stub, amh { +project(Deployment_DAM_skel) : dance_output, dance_applicationmanager_skel, dance_domainapplicationmanager_stub, amh { sharedname = DAnCE_DomainApplicationManager_skel after += Deployment_DAM_stub dynamicflags = DEPLOYMENT_DOMAINAPPLICATIONMANAGER_SKEL_BUILD_DLL @@ -342,22 +258,9 @@ project(Deployment_DAM_skel) : install, dance_output, dance_applicationmanager_s Source_Files { Deployment_DomainApplicationManagerS.cpp } - - Header_Files { - Deployment_DomainApplicationManagerS.h - Deployment_DomainApplicationManager_skel_export.h - } - - Inline_Files { - Deployment_DomainApplicationManagerS.inl - } - - specific { - install_dir = DAnCE/Deployment - } } -project(Deployment_ExecutionManager_stub) : install, dance_output, dance_deployment_stub, dance_domainapplicationmanager_stub, amh { +project(Deployment_ExecutionManager_stub) : dance_output, dance_deployment_stub, dance_domainapplicationmanager_stub, amh { sharedname = DAnCE_ExecutionManager_stub after += Deployment_ExecutionManager_IDL dynamicflags = DEPLOYMENT_EXECUTIONMANAGER_STUB_BUILD_DLL @@ -371,22 +274,9 @@ project(Deployment_ExecutionManager_stub) : install, dance_output, dance_deploym Source_Files { Deployment_ExecutionManagerC.cpp } - - Header_Files { - Deployment_ExecutionManager_stub_export.h - Deployment_ExecutionManagerC.h - } - - Inline_Files { - Deployment_ExecutionManagerC.inl - } - - specific { - install_dir = DAnCE/Deployment - } } -project(Deployment_ExecutionManager_skel) : install, dance_output, dance_deployment_skel, dance_executionmanager_stub, amh { +project(Deployment_ExecutionManager_skel) : dance_output, dance_deployment_skel, dance_executionmanager_stub, amh { sharedname = DAnCE_ExecutionManager_skel after += Deployment_ExecutionManager_stub dynamicflags = DEPLOYMENT_EXECUTIONMANAGER_SKEL_BUILD_DLL @@ -400,22 +290,9 @@ project(Deployment_ExecutionManager_skel) : install, dance_output, dance_deploym Source_Files { Deployment_ExecutionManagerS.cpp } - - Header_Files { - Deployment_ExecutionManagerS.h - Deployment_ExecutionManager_skel_export.h - } - - Inline_Files { - Deployment_ExecutionManagerS.inl - } - - specific { - install_dir = DAnCE/Deployment - } } -project(Deployment_DomainApplication_stub) : install, dance_output, dance_deployment_stub, amh { +project(Deployment_DomainApplication_stub) : dance_output, dance_deployment_stub, amh { sharedname = DAnCE_DomainApplication_stub after += Deployment_DomainApplication_IDL dynamicflags = DEPLOYMENT_DOMAINAPPLICATION_STUB_BUILD_DLL @@ -429,22 +306,9 @@ project(Deployment_DomainApplication_stub) : install, dance_output, dance_deploy Source_Files { Deployment_DomainApplicationC.cpp } - - Header_Files { - Deployment_DomainApplicationC.h - Deployment_DomainApplication_stub_export.h - } - - Inline_Files { - Deployment_DomainApplicationC.inl - } - - specific { - install_dir = DAnCE/Deployment - } } -project(Deployment_DomainApplication_skel) : install, dance_output, dance_deployment_skel, dance_domainapplication_stub, amh { +project(Deployment_DomainApplication_skel) : dance_output, dance_deployment_skel, dance_domainapplication_stub, amh { sharedname = DAnCE_DomainApplication_skel after += Deployment_DomainApplication_stub dynamicflags = DEPLOYMENT_DOMAINAPPLICATION_SKEL_BUILD_DLL @@ -458,22 +322,9 @@ project(Deployment_DomainApplication_skel) : install, dance_output, dance_deploy Source_Files { Deployment_DomainApplicationS.cpp } - - Header_Files { - Deployment_DomainApplicationS.h - Deployment_DomainApplication_skel_export.h - } - - Inline_Files { - Deployment_DomainApplicationS.inl - } - - specific { - install_dir = DAnCE/Deployment - } } -project(Deployment_NAM_stub) : install, dance_output, dance_applicationmanager_stub, ami { +project(Deployment_NAM_stub) : dance_output, dance_applicationmanager_stub, ami { sharedname = DAnCE_NodeApplicationManager_stub after += Deployment_NAM_IDL dynamicflags = DEPLOYMENT_NODEAPPLICATIONMANAGER_STUB_BUILD_DLL @@ -487,22 +338,9 @@ project(Deployment_NAM_stub) : install, dance_output, dance_applicationmanager_s Source_Files { Deployment_NodeApplicationManagerC.cpp } - - Header_Files { - Deployment_NodeApplicationManager_stub_export.h - Deployment_NodeApplicationManagerC.h - } - - Inline_Files { - Deployment_NodeApplicationManagerC.inl - } - - specific { - install_dir = DAnCE/Deployment - } } -project(Deployment_NAM_skel) : install, dance_output, dance_applicationmanager_skel, dance_nodeapplicationmanager_stub, ami { +project(Deployment_NAM_skel) : dance_output, dance_applicationmanager_skel, dance_nodeapplicationmanager_stub, ami { sharedname = DAnCE_NodeApplicationManager_skel after += Deployment_NAM_stub dynamicflags = DEPLOYMENT_NODEAPPLICATIONMANAGER_SKEL_BUILD_DLL @@ -516,22 +354,9 @@ project(Deployment_NAM_skel) : install, dance_output, dance_applicationmanager_s Source_Files { Deployment_NodeApplicationManagerS.cpp } - - Header_Files { - Deployment_NodeApplicationManagerS.h - Deployment_NodeApplicationManager_skel_export.h - } - - Inline_Files { - Deployment_NodeApplicationManagerS.inl - } - - specific { - install_dir = DAnCE/Deployment - } } -project(Deployment_NodeManager_stub) : install, dance_output, dance_deployment_stub, dance_nodeapplicationmanager_stub, dance_targetmanager_stub, ami { +project(Deployment_NodeManager_stub) : dance_output, dance_deployment_stub, dance_nodeapplicationmanager_stub, dance_targetmanager_stub, ami { sharedname = DAnCE_NodeManager_stub after += Deployment_NodeManager_IDL dynamicflags = DEPLOYMENT_NODEMANAGER_STUB_BUILD_DLL @@ -545,22 +370,9 @@ project(Deployment_NodeManager_stub) : install, dance_output, dance_deployment_s Source_Files { Deployment_NodeManagerC.cpp } - - Header_Files { - Deployment_NodeManager_stub_export.h - Deployment_NodeManagerC.h - } - - Inline_Files { - Deployment_NodeManagerC.inl - } - - specific { - install_dir = DAnCE/Deployment - } } -project(Deployment_NodeManager_skel) : install, dance_output, dance_deployment_skel, dance_nodemanager_stub, dance_nodeapplicationmanager_skel, ami { +project(Deployment_NodeManager_skel) : dance_output, dance_deployment_skel, dance_nodemanager_stub, dance_nodeapplicationmanager_skel, ami { sharedname = DAnCE_NodeManager_skel after += Deployment_NodeManager_stub dynamicflags = DEPLOYMENT_NODEMANAGER_SKEL_BUILD_DLL @@ -574,22 +386,9 @@ project(Deployment_NodeManager_skel) : install, dance_output, dance_deployment_s Source_Files { Deployment_NodeManagerS.cpp } - - Header_Files { - Deployment_NodeManagerS.h - Deployment_NodeManager_skel_export.h - } - - Inline_Files { - Deployment_NodeManagerS.inl - } - - specific { - install_dir = DAnCE/Deployment - } } -project(Deployment_TargetManager_stub) : install, dance_output, dance_deployment_stub { +project(Deployment_TargetManager_stub) : dance_output, dance_deployment_stub { sharedname = DAnCE_TargetManager_stub after += Deployment_TargetManager_IDL dynamicflags = DEPLOYMENT_TARGETMANAGER_STUB_BUILD_DLL @@ -603,22 +402,9 @@ project(Deployment_TargetManager_stub) : install, dance_output, dance_deployment Source_Files { Deployment_TargetManagerC.cpp } - - Header_Files { - Deployment_TargetManagerC.h - Deployment_TargetManager_stub_export.h - } - - Inline_Files { - Deployment_TargetManagerC.inl - } - - specific { - install_dir = DAnCE/Deployment - } } -project(Deployment_TargetManager_skel) : install, dance_output, dance_deployment_skel, dance_targetmanager_stub { +project(Deployment_TargetManager_skel) : dance_output, dance_deployment_skel, dance_targetmanager_stub { sharedname = DAnCE_TargetManager_skel after += Deployment_TargetManager_stub dynamicflags = DEPLOYMENT_TARGETMANAGER_SKEL_BUILD_DLL @@ -632,18 +418,9 @@ project(Deployment_TargetManager_skel) : install, dance_output, dance_deployment Source_Files { Deployment_TargetManagerS.cpp } - - Header_Files { - Deployment_TargetManagerS.h - Deployment_TargetManager_skel_export.h - } - - specific { - install_dir = DAnCE/Deployment - } } -project(Deployment_RepositoryManager_stub) : install, dance_output, dance_deployment_stub { +project(Deployment_RepositoryManager_stub) : dance_output, dance_deployment_stub { sharedname = DAnCE_RepositoryManager_stub after += Deployment_RepositoryManager_IDL dynamicflags = DEPLOYMENT_REPOSITORYMANAGER_STUB_BUILD_DLL @@ -657,22 +434,9 @@ project(Deployment_RepositoryManager_stub) : install, dance_output, dance_deploy Source_Files { Deployment_RepositoryManagerC.cpp } - - Header_Files { - Deployment_RepositoryManagerC.h - Deployment_RepositoryManager_stub_export.h - } - - Inline_Files { - Deployment_RepositoryManagerC.inl - } - - specific { - install_dir = DAnCE/Deployment - } } -project(Deployment_RepositoryManager_skel) : install, dance_output, dance_deployment_skel, dance_repositorymanager_stub { +project(Deployment_RepositoryManager_skel) : dance_output, dance_deployment_skel, dance_repositorymanager_stub { sharedname = DAnCE_RepositoryManager_skel after += Deployment_RepositoryManager_stub dynamicflags = DEPLOYMENT_REPOSITORYMANAGER_SKEL_BUILD_DLL @@ -686,22 +450,9 @@ project(Deployment_RepositoryManager_skel) : install, dance_output, dance_deploy Source_Files { Deployment_RepositoryManagerS.cpp } - - Header_Files { - Deployment_RepositoryManagerS.h - Deployment_RepositoryManager_skel_export.h - } - - Inline_Files { - Deployment_RepositoryManagerS.inl - } - - specific { - install_dir = DAnCE/Deployment - } } -project(Deployment_NodeApplication_stub) : install, dance_output, dance_deployment_stub { +project(Deployment_NodeApplication_stub) : dance_output, dance_deployment_stub { sharedname = DAnCE_NodeApplication_stub after += Deployment_NodeApplication_IDL dynamicflags = DEPLOYMENT_NODEAPPLICATION_STUB_BUILD_DLL @@ -715,22 +466,9 @@ project(Deployment_NodeApplication_stub) : install, dance_output, dance_deployme Source_Files { Deployment_NodeApplicationC.cpp } - - Header_Files { - Deployment_NodeApplication_stub_export.h - Deployment_NodeApplicationC.h - } - - Inline_Files { - Deployment_NodeApplicationC.inl - } - - specific { - install_dir = DAnCE/Deployment - } } -project(Deployment_NodeApplication_skel) : install, dance_output, dance_deployment_skel, dance_nodeapplication_stub { +project(Deployment_NodeApplication_skel) : dance_output, dance_deployment_skel, dance_nodeapplication_stub { sharedname = DAnCE_NodeApplication_skel after += Deployment_NodeApplication_stub dynamicflags = DEPLOYMENT_NODEAPPLICATION_SKEL_BUILD_DLL @@ -744,24 +482,11 @@ project(Deployment_NodeApplication_skel) : install, dance_output, dance_deployme Source_Files { Deployment_NodeApplicationS.cpp } - - Header_Files { - Deployment_NodeApplicationS.h - Deployment_NodeApplication_skel_export.h - } - - Inline_Files { - Deployment_NodeApplicationS.inl - } - - specific { - install_dir = DAnCE/Deployment - } } // CIAO_DnC_Client library must be linked for this project. // Please don't remove. dance_deployment_stub, -project(Deployment_skel) : install, dance_deployment_stub, dance_output, ciaolib_with_idl, portableserver, valuetype, \ +project(Deployment_skel) : dance_deployment_stub, dance_output, ciaolib_with_idl, portableserver, valuetype, \ ifr_client, naming, dance_lib, dance_logger, messaging, gen_ostream, ami, amh { sharedname = DAnCE_Deployment_skel dynamicflags = DEPLOYMENT_SKEL_BUILD_DLL @@ -778,27 +503,4 @@ project(Deployment_skel) : install, dance_deployment_stub, dance_output, ciaolib Deployment_ResourceCommitmentManagerS.cpp } - Header_Files { - Deployment_ApplicationS.h - Deployment_BaseS.h - Deployment_ConnectionS.h - Deployment_DataS.h - Deployment_DeploymentPlanS.h - Deployment_Packaging_DataS.h - Deployment_PlanErrorS.h - Deployment_ResourceCommitmentManagerS.h - DeploymentS.h - Deployment_skel_export.h - Deployment_StartErrorS.h - Deployment_StopErrorS.h - Deployment_TargetDataS.h - } - - Inline_Files { - Deployment_ApplicationS.inl - } - - specific { - install_dir = DAnCE/Deployment - } } diff --git a/CIAO/DAnCE/Deployment/Deployment_InvalidComponentExecParameter.idl b/CIAO/DAnCE/Deployment/Deployment_InvalidComponentExecParameter.idl new file mode 100644 index 00000000000..d8ba9724259 --- /dev/null +++ b/CIAO/DAnCE/Deployment/Deployment_InvalidComponentExecParameter.idl @@ -0,0 +1,13 @@ +// $Id$ + +#ifndef DEPLOYMENT_INVALIDCOMPONENTEXECPARAMETER_IDL +#define DEPLOYMENT_INVALIDCOMPONENTEXECPARAMETER_IDL + +module Deployment { + exception InvalidComponentExecParameter { + string name; + string reason; + }; +}; + +#endif diff --git a/CIAO/DAnCE/Deployment/Deployment_InvalidConnection.idl b/CIAO/DAnCE/Deployment/Deployment_InvalidConnection.idl new file mode 100644 index 00000000000..16b68012339 --- /dev/null +++ b/CIAO/DAnCE/Deployment/Deployment_InvalidConnection.idl @@ -0,0 +1,13 @@ +// $Id$ + +#ifndef DEPLOYMENT_INVALIDCONNECTION_IDL +#define DEPLOYMENT_INVALIDCONNECTION_IDL + +module Deployment { + exception InvalidConnection { + string name; + string reason; + }; +}; + +#endif diff --git a/CIAO/DAnCE/Deployment/Deployment_InvalidNodeExecParameter.idl b/CIAO/DAnCE/Deployment/Deployment_InvalidNodeExecParameter.idl new file mode 100644 index 00000000000..255f5dbff21 --- /dev/null +++ b/CIAO/DAnCE/Deployment/Deployment_InvalidNodeExecParameter.idl @@ -0,0 +1,13 @@ +// $Id$ + +#ifndef DEPLOYMENT_INVALIDNODEEXECPARAMETER_IDL +#define DEPLOYMENT_INVALIDNODEEXECPARAMETER_IDL + +module Deployment { + exception InvalidNodeExecParameter { + string name; + string reason; + }; +}; + +#endif diff --git a/CIAO/DAnCE/Deployment/Deployment_InvalidProperty.idl b/CIAO/DAnCE/Deployment/Deployment_InvalidProperty.idl new file mode 100644 index 00000000000..c75adf9360c --- /dev/null +++ b/CIAO/DAnCE/Deployment/Deployment_InvalidProperty.idl @@ -0,0 +1,13 @@ +// $Id$ + +#ifndef DEPLOYMENT_INVALIDPROPERTY_IDL +#define DEPLOYMENT_INVALIDPROPERTY_IDL + +module Deployment { + exception InvalidProperty { + string name; + string reason; + }; +}; + +#endif diff --git a/CIAO/DAnCE/Deployment/Deployment_ResourceNotAvailable.idl b/CIAO/DAnCE/Deployment/Deployment_ResourceNotAvailable.idl new file mode 100644 index 00000000000..a98a47f122b --- /dev/null +++ b/CIAO/DAnCE/Deployment/Deployment_ResourceNotAvailable.idl @@ -0,0 +1,16 @@ +// $Id$ + +#ifndef DEPLOYMENT_RESOURCENOTAVAILABLE_IDL +#define DEPLOYMENT_RESOURCENOTAVAILABLE_IDL + +module Deployment { + exception ResourceNotAvailable { + string name; + string resourceType; + string propertyName; + string elementName; + string resourceName; + }; +}; + +#endif diff --git a/CIAO/DAnCE/LocalityManager/Daemon/Deployment_Interceptors.cpp b/CIAO/DAnCE/LocalityManager/Daemon/Deployment_Interceptors.cpp new file mode 100644 index 00000000000..0a2869d6134 --- /dev/null +++ b/CIAO/DAnCE/LocalityManager/Daemon/Deployment_Interceptors.cpp @@ -0,0 +1,120 @@ +// $Id$ + +#include "Deployment_Interceptors.h" +#include "Logger/Log_Macros.h" +#include "Name_Utilities.h" +#include "DAnCE/DAnCE_PropertiesC.h" +#include "DAnCE/DAnCE_Utility.h" + +namespace DAnCE +{ + // Implementation skeleton constructor + DAnCE_StoreReferences_i::DAnCE_StoreReferences_i (CORBA::ORB_ptr orb) + : orb_ (CORBA::ORB::_duplicate (orb)) + + { + try + { + CORBA::Object_var obj = orb->resolve_initial_references ("NameService"); + ctx_ = CosNaming::NamingContext::_narrow (obj.in ()); + } + catch (...) + { + // swallow + } + } + + // Implementation skeleton destructor + DAnCE_StoreReferences_i::~DAnCE_StoreReferences_i (void) + { + } + + void DAnCE_StoreReferences_i::instance_pre_install (::Deployment::DeploymentPlan & plan, + ::CORBA::ULong instanceRef) + { + // no-op + } + + void DAnCE_StoreReferences_i::instance_post_install (const ::Deployment::DeploymentPlan & plan, + ::CORBA::ULong instance_index, + const ::CORBA::Any & instance_reference, + const ::CORBA::Any & exception_thrown) + { + const ::Deployment::InstanceDeploymentDescription &inst = + plan.instance[instance_index]; + + DANCE_DEBUG (9, (LM_TRACE, DLINFO "DAnCE_StoreReferences_i::instance_post_install - " + "Interceptor post install for instance %C\n", + plan.instance[instance_index].name.in ())); + + for (CORBA::ULong i = 0; + i < inst.configProperty.length (); + ++i) + { + if (ACE_OS::strcmp (inst.configProperty[i].name.in (), + DAnCE::REGISTER_NAMING) == 0) + { + CORBA::Object_var obj; + + if (!(instance_reference >>= CORBA::Any::to_object (obj))) + { + DANCE_ERROR (1, (LM_WARNING, DLINFO + "DAnCE_StoreReferences_i::instance_post_install - " + "Unable to extract instance reference from Any\n")); + } + + const char * name; + inst.configProperty[i].value >>= CORBA::Any::to_string (name, 0); + + DANCE_DEBUG (9, (LM_TRACE, DLINFO "DAnCE_StoreReferences_i::instance_post_install - " + "Registering name %C for instance %C\n", + name, + plan.instance[instance_index].name.in ())); + + Name_Utilities::bind_object (name, + obj.in (), + this->ctx_.in ()); + } + else if (ACE_OS::strcmp (inst.configProperty[i].name.in (), + DAnCE::INSTANCE_IOR_FILE) == 0) + { + CORBA::Object_var obj; + instance_reference >>= CORBA::Any::to_object (obj); + + const char * name; + inst.configProperty[i].value >>= CORBA::Any::to_string (name, 0); + + ACE_CString ior = this->orb_->object_to_string (obj.in ()); + + DAnCE::Utility::write_IOR (name, ior.c_str ()); + } + } + } + + // Implementation skeleton constructor + DAnCE_ReferenceLookup_i::DAnCE_ReferenceLookup_i (void) + { + } + + // Implementation skeleton destructor + DAnCE_ReferenceLookup_i::~DAnCE_ReferenceLookup_i (void) + { + } + + void + DAnCE_ReferenceLookup_i::instance_pre_connect (::Deployment::DeploymentPlan & plan, + ::CORBA::ULong connection_index, + ::CORBA::Any & provided_reference) + { + // Add your implementation here + } + + void DAnCE_ReferenceLookup_i::instance_post_connect (const ::Deployment::DeploymentPlan & plan, + ::CORBA::ULong connectionRef, + const ::CORBA::Any & exceptionThrown) + { + // Add your implementation here + } + + +} diff --git a/CIAO/DAnCE/LocalityManager/Daemon/Deployment_Interceptors.h b/CIAO/DAnCE/LocalityManager/Daemon/Deployment_Interceptors.h new file mode 100644 index 00000000000..78f321b8693 --- /dev/null +++ b/CIAO/DAnCE/LocalityManager/Daemon/Deployment_Interceptors.h @@ -0,0 +1,72 @@ +// $Id$ +/** + * @file Deployment_Interceptors.h + * @author William R. Otte <wotte@dre.vanderbilt.edu> + * + * Initial deployment interceptors for use in DAnCE. + */ + +#ifndef DEPLOYMENT_INTERCEPTORS_H +#define DEPLOYMENT_INTERCEPTORS_H + +#include "DAnCE/DAnCE_DeploymentInterceptorsC.h" +#include "orbsvcs/CosNamingC.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +#pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +#include "tao/LocalObject.h" + +namespace DAnCE +{ + class DAnCE_StoreReferences_i + : public virtual DAnCE::InstanceInstallation, + public virtual ::CORBA::LocalObject + { + public: + // Constructor + + DAnCE_StoreReferences_i (CORBA::ORB_ptr orb); + + // Destructor + virtual ~DAnCE_StoreReferences_i (void); + + virtual + void instance_pre_install (::Deployment::DeploymentPlan & plan, + ::CORBA::ULong instanceRef); + + virtual + void instance_post_install (const ::Deployment::DeploymentPlan & plan, + ::CORBA::ULong instance_index, + const ::CORBA::Any & instance_reference, + const ::CORBA::Any & exception_thrown); + + CORBA::ORB_var orb_; + private: + CosNaming::NamingContext_var ctx_; + }; + + class DANCE_STUB_Export DAnCE_ReferenceLookup_i + : public virtual DAnCE::InstanceConnection, + public virtual ::CORBA::LocalObject + { + public: + // Constructor + DAnCE_ReferenceLookup_i (void); + + // Destructor + virtual ~DAnCE_ReferenceLookup_i (void); + + virtual + void instance_pre_connect (::Deployment::DeploymentPlan & plan, + ::CORBA::ULong connection_index, + ::CORBA::Any & provided_reference); + + virtual + void instance_post_connect (const ::Deployment::DeploymentPlan & plan, + ::CORBA::ULong connectionRef, + const ::CORBA::Any & exceptionThrown); + }; +} +#endif diff --git a/CIAO/DAnCE/LocalityManager/Daemon/Locality_Manager.cpp b/CIAO/DAnCE/LocalityManager/Daemon/Locality_Manager.cpp new file mode 100644 index 00000000000..b86fee16b59 --- /dev/null +++ b/CIAO/DAnCE/LocalityManager/Daemon/Locality_Manager.cpp @@ -0,0 +1,47 @@ +/** + * @file LocalityManager.cpp + * @author William R. Otte + * $Id$ + * + * Implementation and main for the DAnCE LocalityManager + */ + +#include "Locality_Manager_Task.h" +#include "DAnCE/Logger/Log_Macros.h" + +int ACE_TMAIN (int argc, ACE_TCHAR **argv) +{ + // Tracing disabled by default + DANCE_DISABLE_TRACE (); + + DANCE_TRACE ("LocalityManager::ACE_TMAIN"); + + int retval = 0; + try + { + DAnCE::LocalityManager_Task cs (argc, argv); + cs.run (); + + // Wait for the threads to exit. + //ACE_Thread_Manager::instance ()->wait (); + } + catch (const DAnCE::LocalityManager_Task::Error &e) + { + DANCE_ERROR (1, (LM_ERROR, DLINFO "LocalityManager main: Caught ComponentServer exception: %C\n", + e.err_.c_str ())); + retval = -1; + } + catch (const CORBA::Exception& ex) + { + ex._tao_print_exception ("LocalityManager main: Caught corba exception:"); + retval = -1; + } + catch (...) + { + DANCE_ERROR (1, (LM_ERROR, DLINFO "LocalityManager main: Caught unknown exception.\n")); + retval = -1; + } + + return retval; +} + diff --git a/CIAO/DAnCE/LocalityManager/Daemon/Locality_Manager.mpc b/CIAO/DAnCE/LocalityManager/Daemon/Locality_Manager.mpc new file mode 100644 index 00000000000..df052df3d29 --- /dev/null +++ b/CIAO/DAnCE/LocalityManager/Daemon/Locality_Manager.mpc @@ -0,0 +1,32 @@ +// $Id$ + +project (DAnCE_LocalityManager_Impl) : dance_lib, dance_output, naming, \ + dance_skel, dance_logger { + + dynamicflags = LOCALITY_MANAGER_IMPL_BUILD_DLL + + includes += $(CIAO_ROOT) + libs += CIAO_Deployment_Handlers + after += CIAO_Deployment_Handlers + Source_Files { + Locality_Manager_Impl.cpp + Deployment_Interceptors.cpp + Name_Utilities.h + } + + Header_Files { + Locality_Manager_Impl.h + Locality_Manager_Impl_Export.h + } +} + +project (DAnCE_LocalityManager_Exec) : dance_exe, dance_exe, dance_output, \ + dance_locality_manager, dance_logger, ciao_logger { + exename = dance_locality_manager + libs += CIAO_Deployment_Handlers + after += CIAO_Deployment_Handlers + Source_Files { + Locality_Manager_Task.cpp + Locality_Manager.cpp + } +} diff --git a/CIAO/DAnCE/LocalityManager/Daemon/Locality_Manager_Impl.cpp b/CIAO/DAnCE/LocalityManager/Daemon/Locality_Manager_Impl.cpp new file mode 100644 index 00000000000..e0f373fe4a3 --- /dev/null +++ b/CIAO/DAnCE/LocalityManager/Daemon/Locality_Manager_Impl.cpp @@ -0,0 +1,418 @@ +// -*- C++ -*- +// $Id$ + +// TAO_IDL - Generated from +// be/be_codegen.cpp:1579 + +#include "Locality_Manager_Impl.h" +#include "Logger/Log_Macros.h" + + +/* + * CIAO Instance handlers + * @TODO: Needs to be replaced by dynamic provisioning system. + */ +#include "ciao/Deployment/Handlers/Container_Handler.h" +#include "ciao/Deployment/Handlers/Component_Handler.h" +#include "ciao/Deployment/Handlers/Home_Handler.h" +#include "ciao/Deployment/Handlers/Homed_Component_Handler.h" +#include "Deployment_Interceptors.h" +// + +namespace DAnCE +{ + // Implementation skeleton constructor + LocalityManager_i::LocalityManager_i (const ACE_TString &uuid, + CORBA::ORB_ptr orb, + PortableServer::POA_ptr poa) + : uuid_ (uuid), + orb_ (CORBA::ORB::_duplicate (orb)), + poa_ (PortableServer::POA::_duplicate (poa)) + { + DANCE_TRACE ("LocalityManager_i::LocalityManager_i"); + } + + // Implementation skeleton destructor + LocalityManager_i::~LocalityManager_i (void) + { + DANCE_TRACE ("LocalityManager_i::~LocalityManager_i"); + } + + void + LocalityManager_i::init (Deployment::Properties *) + { + DANCE_TRACE ("LocalityManager_i::init"); + + // Initialize the CIAO instance handlers + ::DAnCE::InstanceDeploymentHandler_ptr tmp; + + DAnCE::Utility::PROPERTY_MAP props; + + ACE_NEW_THROW_EX (tmp, + CIAO::Container_Handler_i (props, + this->orb_, + this->poa_), + CORBA::NO_MEMORY ()); + + this->instance_handlers_[tmp->instance_type ()] = Handler (tmp); + this->handler_order_.push_back (tmp->instance_type ()); + + ACE_NEW_THROW_EX (tmp, + CIAO::Home_Handler_i, + CORBA::NO_MEMORY ()); + + this->instance_handlers_[tmp->instance_type ()] = Handler (tmp); + this->handler_order_.push_back (tmp->instance_type ()); + + ACE_NEW_THROW_EX (tmp, + CIAO::Component_Handler_i (), + CORBA::NO_MEMORY ()); + + this->instance_handlers_[tmp->instance_type ()] = Handler (tmp); + this->handler_order_.push_back (tmp->instance_type ()); + + ACE_NEW_THROW_EX (tmp, + CIAO::Homed_Component_Handler_i (), + CORBA::NO_MEMORY ()); + + this->instance_handlers_[tmp->instance_type ()] = Handler (tmp); + this->handler_order_.push_back (tmp->instance_type ()); + + ACE_NEW_THROW_EX (this->ii_interceptor_, + DAnCE_StoreReferences_i (this->orb_.in ()), + CORBA::NO_MEMORY ()); + } + + ::Deployment::Properties * + LocalityManager_i::configuration (void) + { + DANCE_TRACE ("LocalityManager_i::configuration"); + throw CORBA::NO_IMPLEMENT (); + } + + ::Deployment::ApplicationManager_ptr + LocalityManager_i::preparePlan (const ::Deployment::DeploymentPlan & plan, + ::Deployment::ResourceCommitmentManager_ptr) + { + DANCE_TRACE ("LocalityManager_i::preparePlan"); + + this->plan_ = plan; + + // populate the impl_type_table. + for (CORBA::ULong i = 0; + i < plan_.instance.length (); + ++i) + { + CORBA::ULong implRef = plan.instance[i].implementationRef; + + const char *instance_type = + Utility::get_instance_type (plan.implementation[implRef].execParameter); + + instance_handlers_[instance_type].instances_.push_back (i); + } + + return this->_this (); + // Add your implementation here + } + + ::Deployment::Application_ptr + LocalityManager_i::startLaunch (const ::Deployment::Properties &, + ::Deployment::Connections_out providedReference) + { + DANCE_TRACE ("LocalityManager_i::startLaunch"); + + + for (HANDLER_ORDER::const_iterator i = this->handler_order_.begin (); + i != this->handler_order_.end (); + ++i) + { + DANCE_DEBUG (8, (LM_TRACE, DLINFO + "LocalityManager_i::startLaunch - " + "Starting installation of %C type instances\n", + i->c_str ())); + + ::DAnCE::InstanceDeploymentHandler_ptr handler = + this->instance_handlers_[*i].handler_; + INSTANCE_LIST &inst_list = this->instance_handlers_[*i].instances_; + + for (INSTANCE_LIST::const_iterator j = inst_list.begin (); + j != inst_list.end (); + ++j) + { + DANCE_DEBUG (7, (LM_TRACE, DLINFO + "LocalityManager_i::startLaunch - " + "Starting installation of instance %C\n", + this->plan_.instance[*j].name.in ())); + + + this->ii_interceptor_->instance_pre_install (this->plan_, + *j); + + CORBA::Any_var reference; + handler->install_instance (this->plan_, + *j, + reference.out ()); + + CORBA::Any exception; + + this->ii_interceptor_->instance_post_install (this->plan_, + *j, + reference.in (), + exception); + this->instance_references_[*j] = reference._retn (); + + + // @@ todo: post-interceptor + } + } + + ::Deployment::Connections *conn_cmp; + + ACE_NEW_THROW_EX (conn_cmp, + ::Deployment::Connections (this->plan_.connection.length ()), + CORBA::NO_MEMORY ()); + + CORBA::ULong pos (0); + + for (CORBA::ULong i = 0; + i < this->plan_.connection.length (); + ++i) + { + const ::Deployment::PlanConnectionDescription &conn = + this->plan_.connection[i]; + for (CORBA::ULong j = 0; + j != conn.internalEndpoint.length (); + ++j) + { + if (conn.internalEndpoint[j].provider) + { + CORBA::ULong instRef = + conn.internalEndpoint[j].instanceRef; + CORBA::ULong implRef = + this->plan_.instance[instRef].implementationRef; + + const char *inst_type = + Utility::get_instance_type (this->plan_.implementation[implRef].execParameter); + + CORBA::Any_var ref; + + this->instance_handlers_[inst_type].handler_-> + provide_endpoint_reference (this->plan_, + i, + ref.out ()); + + CORBA::Object_var obj_ref; + + ref >>= CORBA::Any::to_object (obj_ref); + conn_cmp->length (pos + 1); + (*conn_cmp)[pos].name = conn.name.in (); + (*conn_cmp)[pos].endpoint.length (1); + (*conn_cmp)[pos].endpoint[0] = obj_ref; + ++pos; + } + } + } + + + providedReference = conn_cmp; + + return this->_this (); + } + + void + LocalityManager_i::finishLaunch (const ::Deployment::Connections & providedReference, + ::CORBA::Boolean start) + { + DANCE_TRACE ("LocalityManager_i::finishLaunch"); + // Add your implementation here + + typedef std::map < std::string, CORBA::ULong > ConnMap; + ConnMap conns; + + DANCE_DEBUG (6, (LM_TRACE, DLINFO + "LocalityManager_i::finishLaunch - " + "Starting finsihLaunch, received %u references, " + "have %u connections\n", + providedReference.length (), + this->plan_.connection.length () + )); + + for (CORBA::ULong i = 0; i < this->plan_.connection.length (); ++i) + { + conns[this->plan_.connection[i].name.in ()] = i; + } + + for (CORBA::ULong i = 0; i < providedReference.length (); ++i) + { + const char * name = providedReference[i].name.in (); + ConnMap::const_iterator conn_ref = conns.find (name); + + if (conn_ref == conns.end ()) + continue; + + CORBA::ULong j (0); + + const ::Deployment::PlanConnectionDescription &conn = + this->plan_.connection[conn_ref->second]; + + DANCE_DEBUG (9, (LM_TRACE, DLINFO + "LocalityManager_i::finishLaunch - " + "Connection <%C> has %u endpoints\n", + conn.name.in (), + conn.internalEndpoint.length ())); + + if (conn.internalEndpoint.length () == 2) + { + if (!conn.internalEndpoint[1].provider) + j = 1; + } + else if (conn.internalEndpoint[0].provider && + conn.externalReference.length () == 0) + { + DANCE_DEBUG (9, (LM_TRACE, DLINFO + "LocalityManager_i::finishLaunch - " + "Skipping connection <%C>\n", + conn.name.in ())); + continue; + } + + DANCE_DEBUG (6, (LM_DEBUG, DLINFO + "LocalityManager_i::finishLaunch - " + "Starting connection <%C>\n", + name)); + + CORBA::Any reference; + + reference <<= providedReference[i].endpoint[0]; + + CORBA::ULong instRef = + conn.internalEndpoint[j].instanceRef; + CORBA::ULong implRef = + this->plan_.instance[instRef].implementationRef; + + const char *inst_type = + Utility::get_instance_type (this->plan_.implementation[implRef].execParameter); + + // @@ placeholder for pre_connect interceptor + this->instance_handlers_[inst_type].handler_-> + connect_instance (this->plan_, + conn_ref->second, + reference); + // @@ placeholder for post_connect interceptor + } + + + for (HANDLER_ORDER::const_iterator i = this->handler_order_.begin (); + i != this->handler_order_.end (); + ++i) + { + ::DAnCE::InstanceDeploymentHandler_ptr handler = + this->instance_handlers_[*i].handler_; + INSTANCE_LIST &inst_list = this->instance_handlers_[*i].instances_; + + for (INSTANCE_LIST::const_iterator i = inst_list.begin (); + i != inst_list.end (); + ++i) + { + CORBA::Any_var reference; + handler->instance_configured (this->plan_, + *i); + } + } + + if (start) + this->start (); + } + + void + LocalityManager_i::start (void) + { + DANCE_TRACE ("LocalityManager_i::start"); + + for (HANDLER_ORDER::const_iterator i = this->handler_order_.begin (); + i != this->handler_order_.end (); + ++i) + { + ::DAnCE::InstanceDeploymentHandler_ptr handler = + this->instance_handlers_[*i].handler_; + INSTANCE_LIST &inst_list = this->instance_handlers_[*i].instances_; + + for (INSTANCE_LIST::const_iterator i = inst_list.begin (); + i != inst_list.end (); + ++i) + { + CORBA::Any_var reference; + handler->activate_instance (this->plan_, + *i, + reference.in ()); + } + } + } + + void + LocalityManager_i::destroyApplication (::Deployment::Application_ptr) + { + DANCE_TRACE ("LocalityManager_i::destroyApplication"); + + for (HANDLER_ORDER::const_reverse_iterator i = this->handler_order_.rbegin (); + i != this->handler_order_.rend (); + ++i) + { + ::DAnCE::InstanceDeploymentHandler_ptr handler = + this->instance_handlers_[*i].handler_; + INSTANCE_LIST &inst_list = this->instance_handlers_[*i].instances_; + + for (INSTANCE_LIST::const_iterator i = inst_list.begin (); + i != inst_list.end (); + ++i) + { + CORBA::Any_var reference; + handler->passivate_instance (this->plan_, + *i, + reference.in ()); + } + } + + for (HANDLER_ORDER::const_reverse_iterator i = this->handler_order_.rbegin (); + i != this->handler_order_.rend (); + ++i) + { + ::DAnCE::InstanceDeploymentHandler_ptr handler = + this->instance_handlers_[*i].handler_; + INSTANCE_LIST &inst_list = this->instance_handlers_[*i].instances_; + + for (INSTANCE_LIST::const_iterator i = inst_list.begin (); + i != inst_list.end (); + ++i) + { + CORBA::Any_var reference; + handler->remove_instance (this->plan_, + *i, + reference.in ()); + } + } + // Add your implementation here + } + + + void + LocalityManager_i::destroyManager (::Deployment::ApplicationManager_ptr) + { + DANCE_TRACE ("LocalityManager_i::destroyManager"); + // Add your implementation here + } + + + void + LocalityManager_i::shutdown (void) + { + DANCE_TRACE ("LocalityManager_i::shutdown"); + + DANCE_DEBUG (6, (LM_DEBUG, DLINFO + "DAnCE LocalityManager shutdown request received for UUID <%C>\n", + uuid_.c_str ())); + + this->orb_->shutdown (); + // Add your implementation here + } +} diff --git a/CIAO/DAnCE/LocalityManager/Daemon/Locality_Manager_Impl.h b/CIAO/DAnCE/LocalityManager/Daemon/Locality_Manager_Impl.h new file mode 100644 index 00000000000..aa1ae6d02a5 --- /dev/null +++ b/CIAO/DAnCE/LocalityManager/Daemon/Locality_Manager_Impl.h @@ -0,0 +1,111 @@ +// -*- C++ -*- +// $Id$ + +/** + * @file DAnCE_LocalityManager_impl.h + * @author William R. Otte <wotte@dre.vanderbilt.edu> + **/ + +// TAO_IDL - Generated from +// be/be_codegen.cpp:1521 + +#ifndef DANCE_LOCALITYMANAGERI_PDD6RP_H_ +#define DANCE_LOCALITYMANAGERI_PDD6RP_H_ + +#include "DAnCE/DAnCE_LocalityManagerS.h" +#include "DAnCE/DAnCE_DeploymentInterceptorsC.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +#pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +#include "tao/LocalObject.h" + + +#include "LocalityManager/Daemon/Locality_Manager_Impl_Export.h" +#include <map> +#include <vector> +#include <list> +#include <string> + +namespace DAnCE +{ + + class Locality_Manager_Impl_Export LocalityManager_i + : public virtual POA_DAnCE::LocalityManager + { + public: + // Constructor + LocalityManager_i (const ACE_TString &uuid, + CORBA::ORB_ptr orb, + PortableServer::POA_ptr poa); + + void init (Deployment::Properties *prop); + // Destructor + virtual ~LocalityManager_i (void); + + virtual + ::Deployment::Properties * configuration (void); + + virtual + ::Deployment::ApplicationManager_ptr preparePlan ( + const ::Deployment::DeploymentPlan & plan, + ::Deployment::ResourceCommitmentManager_ptr resourceCommitment); + + virtual + void destroyManager (::Deployment::ApplicationManager_ptr manager); + + virtual + void shutdown (void); + + virtual + void finishLaunch (const ::Deployment::Connections & providedReference, + ::CORBA::Boolean start); + + virtual + void start (void); + + virtual + ::Deployment::Application_ptr startLaunch (const ::Deployment::Properties & configProperty, + ::Deployment::Connections_out providedReference); + + virtual + void destroyApplication (::Deployment::Application_ptr app); + + private: + ACE_TString uuid_; + CORBA::ORB_var orb_; + PortableServer::POA_var poa_; + + typedef std::list< CORBA::ULong > INSTANCE_LIST; + + struct Handler + { + Handler (void) {}; + Handler (::DAnCE::InstanceDeploymentHandler_ptr h) + : handler_ (h) {}; + + ::DAnCE::InstanceDeploymentHandler_var handler_; + INSTANCE_LIST instances_; + }; + + typedef std::map <std::string, + Handler> HANDLER_TABLE; + + HANDLER_TABLE instance_handlers_; + + typedef std::vector< std::string > HANDLER_ORDER; + + HANDLER_ORDER handler_order_; + + typedef std::map < CORBA::ULong, CORBA::Any_var > REFERENCE_MAP; + + REFERENCE_MAP instance_references_; + + ::Deployment::DeploymentPlan plan_; + + ::DAnCE::InstanceInstallation_var ii_interceptor_; + }; + +} +#endif /* DANCE_LOCALITYMANAGERI_H_ */ diff --git a/CIAO/DAnCE/LocalityManager/Daemon/Locality_Manager_Impl_Export.h b/CIAO/DAnCE/LocalityManager/Daemon/Locality_Manager_Impl_Export.h new file mode 100644 index 00000000000..42f664a2c36 --- /dev/null +++ b/CIAO/DAnCE/LocalityManager/Daemon/Locality_Manager_Impl_Export.h @@ -0,0 +1,58 @@ + +// -*- C++ -*- +// $Id$ +// Definition for Win32 Export directives. +// This file is generated automatically by generate_export_file.pl Locality_Manager_Impl +// ------------------------------ +#ifndef LOCALITY_MANAGER_IMPL_EXPORT_H +#define LOCALITY_MANAGER_IMPL_EXPORT_H + +#include "ace/config-all.h" + +#if defined (ACE_AS_STATIC_LIBS) && !defined (LOCALITY_MANAGER_IMPL_HAS_DLL) +# define LOCALITY_MANAGER_IMPL_HAS_DLL 0 +#endif /* ACE_AS_STATIC_LIBS && LOCALITY_MANAGER_IMPL_HAS_DLL */ + +#if !defined (LOCALITY_MANAGER_IMPL_HAS_DLL) +# define LOCALITY_MANAGER_IMPL_HAS_DLL 1 +#endif /* ! LOCALITY_MANAGER_IMPL_HAS_DLL */ + +#if defined (LOCALITY_MANAGER_IMPL_HAS_DLL) && (LOCALITY_MANAGER_IMPL_HAS_DLL == 1) +# if defined (LOCALITY_MANAGER_IMPL_BUILD_DLL) +# define Locality_Manager_Impl_Export ACE_Proper_Export_Flag +# define LOCALITY_MANAGER_IMPL_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T) +# define LOCALITY_MANAGER_IMPL_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# else /* LOCALITY_MANAGER_IMPL_BUILD_DLL */ +# define Locality_Manager_Impl_Export ACE_Proper_Import_Flag +# define LOCALITY_MANAGER_IMPL_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T) +# define LOCALITY_MANAGER_IMPL_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# endif /* LOCALITY_MANAGER_IMPL_BUILD_DLL */ +#else /* LOCALITY_MANAGER_IMPL_HAS_DLL == 1 */ +# define Locality_Manager_Impl_Export +# define LOCALITY_MANAGER_IMPL_SINGLETON_DECLARATION(T) +# define LOCALITY_MANAGER_IMPL_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +#endif /* LOCALITY_MANAGER_IMPL_HAS_DLL == 1 */ + +// Set LOCALITY_MANAGER_IMPL_NTRACE = 0 to turn on library specific tracing even if +// tracing is turned off for ACE. +#if !defined (LOCALITY_MANAGER_IMPL_NTRACE) +# if (ACE_NTRACE == 1) +# define LOCALITY_MANAGER_IMPL_NTRACE 1 +# else /* (ACE_NTRACE == 1) */ +# define LOCALITY_MANAGER_IMPL_NTRACE 0 +# endif /* (ACE_NTRACE == 1) */ +#endif /* !LOCALITY_MANAGER_IMPL_NTRACE */ + +#if (LOCALITY_MANAGER_IMPL_NTRACE == 1) +# define LOCALITY_MANAGER_IMPL_TRACE(X) +#else /* (LOCALITY_MANAGER_IMPL_NTRACE == 1) */ +# if !defined (ACE_HAS_TRACE) +# define ACE_HAS_TRACE +# endif /* ACE_HAS_TRACE */ +# define LOCALITY_MANAGER_IMPL_TRACE(X) ACE_TRACE_IMPL(X) +# include "ace/Trace.h" +#endif /* (LOCALITY_MANAGER_IMPL_NTRACE == 1) */ + +#endif /* LOCALITY_MANAGER_IMPL_EXPORT_H */ + +// End of auto generated file. diff --git a/CIAO/DAnCE/LocalityManager/Daemon/Locality_Manager_Task.cpp b/CIAO/DAnCE/LocalityManager/Daemon/Locality_Manager_Task.cpp new file mode 100644 index 00000000000..7504983d7ea --- /dev/null +++ b/CIAO/DAnCE/LocalityManager/Daemon/Locality_Manager_Task.cpp @@ -0,0 +1,314 @@ +/** + * @file LocalityManager_Task.cpp + * @author William R. Otte + * $Id$ + * + * Implementation and main for LocalityManager. + */ + +#include "Locality_Manager_Task.h" + +#include "ace/OS_NS_string.h" +#include "ace/Log_Msg.h" +#include "ace/Get_Opt.h" +#include "tao/ORB.h" +#include "tao/PortableServer/PortableServer.h" +#include "DAnCE/Logger/Logger_Service.h" +#include "DAnCE/Logger/Log_Macros.h" +#include "DAnCE/DAnCE_Utility.h" +#include "ciao/Logger/Log_Macros.h" +#include "ciao/Logger/Logger_Service.h" +#include "LocalityManager/Daemon/Locality_Manager_Impl.h" + +namespace DAnCE +{ + LocalityManager_Task::Error::Error(const ACE_CString &err) : err_(err) + { + } + + LocalityManager_Task::LocalityManager_Task (int argc, ACE_TCHAR **argv) + { + DANCE_TRACE ("DAnCE_LocalityManager_Task::DAnCE_LocalityManager_Task ()"); + + Logger_Service + *dlf = ACE_Dynamic_Service<Logger_Service>::instance ("DAnCE_Logger"); + + if (dlf) + { + dlf->init (argc, argv); + } + + // Also initialize CIAO logger since we reuse parts of CIAO in the locality manager + CIAO::Logger_Service + * clf = ACE_Dynamic_Service<CIAO::Logger_Service>::instance ("CIAO_Logger"); + + if (clf) + { + clf->init (argc, argv); + } + + DANCE_DEBUG (9, (LM_TRACE, DLINFO + "DAnCE_LocalityManager_Task::DAnCE_LocalityManager_Task - " + "Creating ORB\n")); + + this->orb_ = CORBA::ORB_init (argc, argv); + + this->parse_args (argc, argv); + + DANCE_DEBUG (9, (LM_TRACE, DLINFO + "DAnCE_LocalityManager_Task::DAnCE_LocalityManager_Task - " + "DAnCE_LocalityManager_Task_ object created.\n")); + } + + int + LocalityManager_Task::svc (void) + { + DANCE_TRACE ("LocalityManager_Task::svc"); + + DANCE_DEBUG (9, (LM_TRACE, DLINFO + "LocalityManager_Task::svc - " + "Activating the root POA\n")); + + CORBA::Object_var object = + this->orb_->resolve_initial_references ("RootPOA"); + + PortableServer::POA_var root_poa = + PortableServer::POA::_narrow (object.in ()); + + PortableServer::POAManager_var poa_manager = + root_poa->the_POAManager (); + + poa_manager->activate (); + + DANCE_DEBUG (9, (LM_TRACE, DLINFO + "LocalityManager_Task::svc - " + "Creating server implementation object\n")); + + DAnCE::LocalityManager_i *lm_srv = 0; + ACE_NEW_NORETURN (lm_srv, + LocalityManager_i (this->uuid_, + this->orb_.in (), + root_poa.in ())); + + if (lm_srv == 0) + { + DANCE_ERROR (1, (LM_CRITICAL, + "LocalityManager_Task::run - " + "Out of memory error while allocating servant.")); + throw Error ("Out of memory whilst allocating servant."); + } + + PortableServer::ServantBase_var safe_config = lm_srv; + PortableServer::ObjectId_var id = + root_poa->activate_object (lm_srv); + CORBA::Object_var lm_object = root_poa->id_to_reference (id.in ()); + DAnCE::LocalityManager_var lm = + DAnCE::LocalityManager::_narrow (lm_object.in ()); + + if (this->output_file_ != ACE_TEXT("")) + { + CORBA::String_var ior = this->orb_->object_to_string (lm.in ()); + ::DAnCE::Utility::write_IOR (this->output_file_.c_str (), ior.in ()); + } + + if (this->callback_ior_str_ != ACE_TEXT("")) + { + DANCE_DEBUG (9, (LM_TRACE, DLINFO "LocalityManager_Task::run - " + "Resolving callback IOR\n")); + CORBA::Object_var obj = + this->orb_->string_to_object (this->callback_ior_str_.c_str ()); + LocalityManagerActivator_var sa (LocalityManagerActivator::_narrow (obj)); + + if (CORBA::is_nil (sa.in ())) + { + DANCE_DEBUG (6, (LM_ERROR, DLINFO + "LocalityManager_Task::svc - " + "Failed to narrow callback IOR [%s]\n", + this->callback_ior_str_.c_str ())); + throw Error ("Failed to narrow callback IOR"); + } + + Deployment::Properties_var config; + { + Deployment::Properties *cf = 0; + ACE_NEW_NORETURN (cf, Deployment::Properties (0)); + + if (cf == 0) + { + DANCE_ERROR (1, (LM_CRITICAL, "LocalityManager_Task::run - " + "Out of memory error while allocating config values.")); + } + else + { + config = cf; + } + } + + // Make callback. + DANCE_DEBUG (9, (LM_TRACE, DLINFO + "LocalityManager_Task::svc - " + "Making callback on my Activator\n")); + + try + { + // Callback to NodeApplication to get configuration + sa->locality_manager_callback (lm.in (), + this->uuid_.c_str (), + config.out ()); + + DANCE_DEBUG (9, (LM_TRACE, DLINFO "LocalityManager_Task::svc - " + "Configuration received\n")); + // @@WO: Probably need to do something with these config values. + + lm_srv->init (config._retn ()); + + DANCE_DEBUG (6, (LM_NOTICE, DLINFO "LocalityManager_Task::svc - " + "Configuration complete for component server %C\n", + this->uuid_.c_str ())); + + sa->configuration_complete (this->uuid_.c_str ()); + } + catch (const CORBA::BAD_PARAM &) + { + DANCE_ERROR (1, (LM_ERROR, DLINFO "LocalityManager_Task::svc - " + "The Callback IOR provided pointed to the " + "wrong Activator\n")); + throw Error ("Bad callback IOR"); + } + catch (...) + { + DANCE_ERROR (1, (LM_ERROR, DLINFO "LocalityManager_Task::svc - " + "Caught exception while calling back\n")); + throw Error ("Caught exception while calling back"); + } + + } + else + { + DANCE_DEBUG (9, (LM_TRACE, DLINFO "LocalityManager_Task::svc - " + "Initializing ComponentServer without ServantActivator " + "callback\n")); + lm_srv->init (0); + } + + this->orb_->run (); + + DANCE_DEBUG (9, (LM_TRACE, DLINFO "LocalityManager_Task::svc - " + "ORB Event loop completed.\n")); + + root_poa->destroy (1, 1); + + this->orb_->destroy (); + + return 0; + } + + void + LocalityManager_Task::run (void) + { + DANCE_TRACE ("LocalityManager_Task::run"); + + DANCE_DEBUG (6, (LM_DEBUG, DLINFO "LocalityManager_Task::run - Starting ORB\n")); + this->svc (); + DANCE_DEBUG (6, (LM_INFO, + DLINFO "LocalityManager_Task::run - ORB has " + "shutdown, terminating ComponentServer\n")); + } + + void + LocalityManager_Task::parse_args (int argc, ACE_TCHAR **argv) + { + DANCE_TRACE ("LocalityManager_Task::parse_args"); + + DANCE_DEBUG (9, (LM_TRACE, DLINFO "LocalityManager_Task::parse_args - " + "parsing arguments...\n")); + + ACE_Get_Opt opts (argc, argv, ACE_TEXT("hu:c:"), 1, 0, + ACE_Get_Opt::RETURN_IN_ORDER); + opts.long_option (ACE_TEXT("uuid"), 'u', ACE_Get_Opt::ARG_REQUIRED); + opts.long_option (ACE_TEXT("callback-ior"), 'c', ACE_Get_Opt::ARG_REQUIRED); + opts.long_option (ACE_TEXT("help"), 'h'); + opts.long_option (ACE_TEXT("log-level"),'l', ACE_Get_Opt::ARG_REQUIRED); + opts.long_option (ACE_TEXT("trace"),'t', ACE_Get_Opt::NO_ARG); + opts.long_option (ACE_TEXT("output-ior"),'o', ACE_Get_Opt::ARG_REQUIRED); + + int c = 0; + while ((c = opts ()) != -1) + { + DANCE_DEBUG (9, (LM_TRACE, DLINFO "LocalityManager_Task::parse_args - " + "Found option: \"%s\" with argument \"%s\"\n", + opts.last_option (), opts.opt_arg ())); + + switch (c) + { + case 'u': + DANCE_DEBUG (6, (LM_DEBUG, DLINFO "LocalityManager_Task::parse_args - " + "uuid is %s\n", + opts.opt_arg ())); + this->uuid_ = ACE_TEXT_ALWAYS_CHAR (opts.opt_arg ()); + break; + + case 'c': + DANCE_DEBUG (6, (LM_DEBUG, DLINFO "LocalityManager_Task::parse_args - " + "callback ior is %s\n", + opts.opt_arg ())); + this->callback_ior_str_ = opts.opt_arg (); + break; + + case 'l': + { + continue; // no-op, already taken care of + } + + case 't': + continue; // already taken care of + + case 'o': + DANCE_DEBUG (6, (LM_DEBUG, DLINFO "LocalityManager_Task::parse_args - " + "IOR Output file: %s\n", + opts.opt_arg ())); + this->output_file_ = opts.opt_arg (); + break; + + case 'h': + this->usage (); + throw Error ("Command line help requested, bailing out...."); + + default: + DANCE_ERROR (1, (LM_ERROR, DLINFO " Unknown option: %s\n", + opts.last_option ())); + this->usage (); + ACE_CString err ("Unknown option "); + err += ACE_TEXT_ALWAYS_CHAR (opts.last_option ()); + throw Error (err); + } + } + + // check required options. + if (this->uuid_ == "") + throw Error ("Option required: -u|--uuid"); + if (this->callback_ior_str_ == ACE_TEXT("")) + { + DANCE_ERROR (1, (LM_WARNING, DLINFO + "LocalityManager_Task::parse_args - Starting ComponentServer without a callback IOR\n")); + } + } + + void + LocalityManager_Task::usage (void) + { + DANCE_TRACE ("LocalityManager_Task::usage"); + // Shouldn't be subject to CIAO's logging policy + ACE_ERROR ((LM_EMERGENCY, "Usage: dance_locality_manager <options>\n" + "Options:\n" + "\t-h|--help\t\t\t\tShow help\n" + "\t-l|--log-level <level>\t\t\tSets log level (default 5). 1 - most detailed.\n" + "\t-u|--uuid <uuid> \t\t\tSets UUID of spawned component server (required)\n" + "\t-c|--callback-ior <string ior>\t\tSets callback url for the spawning Activator.\n" + "\t-o|--output-ior <filename>\t\tOutputs the IOR of the component server object to file\n" + )); + + } +} + + diff --git a/CIAO/DAnCE/LocalityManager/Daemon/Locality_Manager_Task.h b/CIAO/DAnCE/LocalityManager/Daemon/Locality_Manager_Task.h new file mode 100644 index 00000000000..cb75d20295a --- /dev/null +++ b/CIAO/DAnCE/LocalityManager/Daemon/Locality_Manager_Task.h @@ -0,0 +1,46 @@ +// $Id$ +/** + * @file LocalityManager_Task.h + * @author William R. Otte + * + * Defines interface for the bootstrap element of the Locality Manager. + */ + +#ifndef DAnCE_LOCALITY_TASK_H_ +#define DAnCE_LOCALITY_TASK_H_ + +#include "ace/String_Base.h" +#include "ace/Task.h" +#include "tao/ORB.h" + +namespace DAnCE +{ + class LocalityManager_Task : ACE_Task_Base + { + public: + LocalityManager_Task (int argc, ACE_TCHAR **argv); + + int svc (void); + + struct Error + { + Error (const ACE_CString &err); + ACE_CString err_; + }; + + void run (void); + + private: + void parse_args (int argc, ACE_TCHAR **argv); + + void usage (void); + + CORBA::ORB_var orb_; + + ACE_TString uuid_; + ACE_TString callback_ior_str_; + ACE_TString output_file_; + }; +} + +#endif diff --git a/CIAO/DAnCE/NodeApplication/Name_Utilities.cpp b/CIAO/DAnCE/LocalityManager/Daemon/Name_Utilities.cpp index 258584aeb40..258584aeb40 100644 --- a/CIAO/DAnCE/NodeApplication/Name_Utilities.cpp +++ b/CIAO/DAnCE/LocalityManager/Daemon/Name_Utilities.cpp diff --git a/CIAO/DAnCE/NodeApplication/Name_Utilities.h b/CIAO/DAnCE/LocalityManager/Daemon/Name_Utilities.h index 2685ee36012..2685ee36012 100644 --- a/CIAO/DAnCE/NodeApplication/Name_Utilities.h +++ b/CIAO/DAnCE/LocalityManager/Daemon/Name_Utilities.h diff --git a/CIAO/DAnCE/LocalityManager/Handler/DAnCE_Locality_Handler_export.h b/CIAO/DAnCE/LocalityManager/Handler/DAnCE_Locality_Handler_export.h new file mode 100644 index 00000000000..c01f1718853 --- /dev/null +++ b/CIAO/DAnCE/LocalityManager/Handler/DAnCE_Locality_Handler_export.h @@ -0,0 +1,58 @@ + +// -*- C++ -*- +// $Id$ +// Definition for Win32 Export directives. +// This file is generated automatically by generate_export_file.pl DAnCE_Locality_Handler +// ------------------------------ +#ifndef DANCE_LOCALITY_HANDLER_EXPORT_H +#define DANCE_LOCALITY_HANDLER_EXPORT_H + +#include "ace/config-all.h" + +#if defined (ACE_AS_STATIC_LIBS) && !defined (DANCE_LOCALITY_HANDLER_HAS_DLL) +# define DANCE_LOCALITY_HANDLER_HAS_DLL 0 +#endif /* ACE_AS_STATIC_LIBS && DANCE_LOCALITY_HANDLER_HAS_DLL */ + +#if !defined (DANCE_LOCALITY_HANDLER_HAS_DLL) +# define DANCE_LOCALITY_HANDLER_HAS_DLL 1 +#endif /* ! DANCE_LOCALITY_HANDLER_HAS_DLL */ + +#if defined (DANCE_LOCALITY_HANDLER_HAS_DLL) && (DANCE_LOCALITY_HANDLER_HAS_DLL == 1) +# if defined (DANCE_LOCALITY_HANDLER_BUILD_DLL) +# define DAnCE_Locality_Handler_Export ACE_Proper_Export_Flag +# define DANCE_LOCALITY_HANDLER_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T) +# define DANCE_LOCALITY_HANDLER_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# else /* DANCE_LOCALITY_HANDLER_BUILD_DLL */ +# define DAnCE_Locality_Handler_Export ACE_Proper_Import_Flag +# define DANCE_LOCALITY_HANDLER_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T) +# define DANCE_LOCALITY_HANDLER_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# endif /* DANCE_LOCALITY_HANDLER_BUILD_DLL */ +#else /* DANCE_LOCALITY_HANDLER_HAS_DLL == 1 */ +# define DAnCE_Locality_Handler_Export +# define DANCE_LOCALITY_HANDLER_SINGLETON_DECLARATION(T) +# define DANCE_LOCALITY_HANDLER_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +#endif /* DANCE_LOCALITY_HANDLER_HAS_DLL == 1 */ + +// Set DANCE_LOCALITY_HANDLER_NTRACE = 0 to turn on library specific tracing even if +// tracing is turned off for ACE. +#if !defined (DANCE_LOCALITY_HANDLER_NTRACE) +# if (ACE_NTRACE == 1) +# define DANCE_LOCALITY_HANDLER_NTRACE 1 +# else /* (ACE_NTRACE == 1) */ +# define DANCE_LOCALITY_HANDLER_NTRACE 0 +# endif /* (ACE_NTRACE == 1) */ +#endif /* !DANCE_LOCALITY_HANDLER_NTRACE */ + +#if (DANCE_LOCALITY_HANDLER_NTRACE == 1) +# define DANCE_LOCALITY_HANDLER_TRACE(X) +#else /* (DANCE_LOCALITY_HANDLER_NTRACE == 1) */ +# if !defined (ACE_HAS_TRACE) +# define ACE_HAS_TRACE +# endif /* ACE_HAS_TRACE */ +# define DANCE_LOCALITY_HANDLER_TRACE(X) ACE_TRACE_IMPL(X) +# include "ace/Trace.h" +#endif /* (DANCE_LOCALITY_HANDLER_NTRACE == 1) */ + +#endif /* DANCE_LOCALITY_HANDLER_EXPORT_H */ + +// End of auto generated file. diff --git a/CIAO/DAnCE/LocalityManager/Handler/LocalityActivator_Impl.cpp b/CIAO/DAnCE/LocalityManager/Handler/LocalityActivator_Impl.cpp new file mode 100644 index 00000000000..86b745ffc74 --- /dev/null +++ b/CIAO/DAnCE/LocalityManager/Handler/LocalityActivator_Impl.cpp @@ -0,0 +1,453 @@ +// $Id$ + +#include "LocalityActivator_Impl.h" +#include "ace/Log_Msg.h" +#include "ace/UUID.h" +#include "DAnCE/Logger/Log_Macros.h" +#include "DAnCE/DAnCE_PropertiesC.h" + +namespace DAnCE +{ + DAnCE_LocalityActivator_i::DAnCE_LocalityActivator_i (CORBA::ULong def_spawn_delay, + const char * default_cs_path, + const char * cs_args, + bool multithreaded, + CORBA::ORB_ptr orb, + PortableServer::POA_ptr poa) + : spawn_delay_ (def_spawn_delay), + multithreaded_ (multithreaded), + orb_ (CORBA::ORB::_duplicate (orb)), + poa_ (PortableServer::POA::_duplicate (poa)), + cs_path_ (default_cs_path), + cs_args_ (cs_args), + mutex_ (), + condition_ (mutex_) + { + DANCE_TRACE ("DAnCE_LocalityActivator_i::DAnCE_LocalityActivator_i"); + ACE_Utils::UUID_GENERATOR::instance ()->init (); + } + + DAnCE_LocalityActivator_i::~DAnCE_LocalityActivator_i(void) + { + } + + void + DAnCE_LocalityActivator_i::locality_manager_callback ( + ::DAnCE::LocalityManager_ptr serverref, + const char * server_UUID, + ::Deployment::Properties_out config) + { + DANCE_TRACE("DAnCE_LocalityActivator_i::locaity_manager_callback"); + + DANCE_DEBUG (9, (LM_TRACE, DLINFO + "DAnCE_LocalityActivator_i::locality_manager_callback - " + "Received callback from LocalityManager %C\n", + server_UUID)); + + Server_Info *info = 0; + + for (SERVER_INFOS::iterator i (this->server_infos_.begin ()); + !i.done (); ++i) + { + DANCE_DEBUG (9, (LM_TRACE, DLINFO + "DAnCE_LocalityActivator_i::locality_manager_callback - " + "Comparing %C with %C\n", (*i)->uuid_.c_str (), server_UUID)); + if ((*i)->uuid_ == server_UUID) + { + info = (*i).get (); + } + } + + if (!info) + { + DANCE_ERROR (1, (LM_WARNING, DLINFO + "DAnCE_LocalityActivator_i::locality_manager_callback - " + "Received callback from LocalityManager %C, which doesn't belong to me.\n", + server_UUID)); + throw ::CORBA::BAD_PARAM (); + } + + if (info->activated_) + { + DANCE_ERROR (1, (LM_ERROR, DLINFO + "DAnCE_LocalityActivator_i::locality_manager_callback - " + "Received callback from LocalityManager %C, which has already been configured.\n", + server_UUID)); + throw ::CORBA::BAD_INV_ORDER (); + } + + if (!CORBA::is_nil (info->ref_)) + { + DANCE_ERROR (1, (LM_ERROR, DLINFO + "DAnCE_LocalityActivator_i::locality_manager_callback - " + "Received callback from LocalityManager %C, which has already called back.\n", + server_UUID)); + throw ::CORBA::BAD_INV_ORDER (); + } + + DANCE_DEBUG (9, (LM_TRACE, DLINFO + "DAnCE_LocalityActivator_i::locality_manager_callback - " + "Received callback from LocalityManager %C\n", + server_UUID)); + + info->ref_ = ::DAnCE::LocalityManager::_duplicate (serverref); + + this->create_properties (*info, config); + + // @@TODO: May want to print out configvalues here. + DANCE_DEBUG (6, (LM_DEBUG, DLINFO + "DAnCE_LocalityActivator_i::locality_manager_callback - " + "Generated %u Properties for LocalityManager %C\n", + config->length (), server_UUID)); + } + + void + DAnCE_LocalityActivator_i::configuration_complete (const char *server_UUID) + { + DANCE_TRACE ("DAnCE_LocalityActivator_i::configuration_complete"); + + DANCE_DEBUG (9, (LM_TRACE, DLINFO + "DAnCE_LocalityActivator_i::configuration_complete - " + "Received configuration_complete from LocalityManager %C\n", + server_UUID)); + + try + { + Server_Info *info = 0; + + for (SERVER_INFOS::ITERATOR j (this->server_infos_); + !j.done (); ++j) + { + if ((*j)->uuid_ == server_UUID) + { + info = (*j).get (); + } + } + + if (!info) + { + DANCE_ERROR (1, (LM_WARNING, DLINFO + "DAnCE_LocalityActivator_i::configuration_complete - " + "Received configuration_complete from LocalityManager %C, which doesn't belong to me.\n", + server_UUID)); + throw ::CORBA::BAD_PARAM (); + } + + if (info->activated_) + { + DANCE_ERROR (1, (LM_ERROR, DLINFO + "DAnCE_LocalityActivator_i::configuration_complete - " + "Received configuration_complete from LocalityManager %C, which has already been completed.\n", + server_UUID)); + throw ::CORBA::BAD_INV_ORDER (); + } + + if (CORBA::is_nil (info->ref_.in ())) + { + DANCE_ERROR (1, (LM_ERROR, DLINFO + "DAnCE_LocalityActivator_i::configuration_complete - " + "Received configuration_complete from LocalityManager %C, which has not called back.\n", + server_UUID)); + throw ::CORBA::BAD_INV_ORDER (); + } + + info->activated_ = true; + } + catch (...) + { + DANCE_ERROR (1, (LM_ERROR, DLINFO + "DAnCE_LocalityActivator_i::configuration_complete - " + "Caught unknown exception while processing configuration_complete\n")); + throw; + } + } + + ::DAnCE::LocalityManager_ptr + DAnCE_LocalityActivator_i::create_locality_manager (const ::Deployment::Properties & config) + { + DANCE_TRACE("DAnCE_LocalityActivator_i::create_locality_manager"); + + Safe_Server_Info server (new Server_Info (config.length () + 1)); + + DAnCE::Utility::build_property_map (*server->cmap_, config); + + ACE_CString cmd_options = this->construct_command_line (*server); + + DANCE_DEBUG (6, (LM_DEBUG, DLINFO + "DAnCE_LocalityActivator_i::create_locality_manager - LocalityManager arguments: %C\n", + cmd_options.c_str ())); + + server_infos_.insert_tail (server); + + DANCE_DEBUG (9, (LM_TRACE, DLINFO + "DAnCE_LocalityActivator_i::create_locality_manager - " + "Attempting to spawn LocalityManager with UUID %C\n", + server->uuid_.c_str ())); + + // Now we need to get a copy of the one that was inserted... + pid_t const pid = this->spawn_locality_manager (*server, cmd_options); + ACE_UNUSED_ARG (pid); + + ACE_Time_Value timeout (this->spawn_delay_); + + CORBA::Any val; + + if (server->cmap_->find (DAnCE::LOCALITY_TIMEOUT, val) == 0) + { + CORBA::ULong t; + if (val >>= t) + { + DANCE_DEBUG (6, (LM_DEBUG, DLINFO "DAnCE_LocalityActivator_i::create_locality_manager - " + "Using provided non-default server timeout of %u\n", t)); + timeout = ACE_Time_Value (t); + } + else + { + DANCE_ERROR (1, (LM_WARNING, DLINFO "DAnCE_LocalityActivator_i::create_locality_manager - " + "Failed to extract provided non-default server timeout from property '%C', " + "falling back to default timeout of %u\n", + this->spawn_delay_)); + } + } + + if (this->multithreaded_) + this->multi_threaded_wait_for_callback (*server, timeout/*, pid*/); + else + this->single_threaded_wait_for_callback (*server, timeout/*, pid*/); + + DANCE_DEBUG (6, (LM_DEBUG, DLINFO + "DAnCE_LocalityActivator_i::create_locality_manager - " + "LocalityManager %C successfully spawned and configured!\n", + server->uuid_.c_str ())); + + return ::DAnCE::LocalityManager::_duplicate (server->ref_.in ()); + } + + ACE_CString + DAnCE_LocalityActivator_i::construct_command_line (Server_Info &server) + { + DANCE_TRACE ("DAnCE_LocalityActivator_i::construct_command_line"); + + // Build our command line to launch the component server + ACE_CString cmd_options (this->cs_args_); + + CORBA::Any val; + + if (server.cmap_->find (DAnCE::LOCALITY_UUID, val) == 0) + { + // Nodeapplication has requested a custom uuid + DANCE_DEBUG (9, (LM_TRACE, DLINFO + "DAnCE_LocalityActivator_i::construct_command_line - Using provided UUID\n")); + const char *uuid = 0; + val >>= uuid; + server.uuid_ = uuid; + } + else + { + DANCE_DEBUG (9, (LM_TRACE, DLINFO + "DAnCE_LocalityActivator_i::construct_command_line - Using generated UUID\n")); + ACE_Utils::UUID uuid; + ACE_Utils::UUID_GENERATOR::instance ()->generate_UUID (uuid); + server.uuid_ = *uuid.to_string (); + } + + if (server.cmap_->find (DAnCE::LOCALITY_ARGUMENTS, val) == 0) + { + const char *args = 0; + val >>= args; + + DANCE_DEBUG (9, (LM_TRACE, DLINFO + "DAnCE_LocalityActivator_i::construct_command_line - " + "Adding provided server arguments %C\n", args)); + + cmd_options += ' '; + cmd_options += args; + cmd_options += ' '; + } + + DANCE_DEBUG (6, (LM_DEBUG, DLINFO + "DAnCE_LocalityActivator_i::construct_command_line - Creating component server" + " with UUID %C\n", server.uuid_.c_str ())); + + cmd_options += " -u "; + cmd_options += server.uuid_; + + return cmd_options; + } + + pid_t + DAnCE_LocalityActivator_i::spawn_locality_manager (const Server_Info &si, + const ACE_CString &cmd_line) + { + DANCE_TRACE ("DAnCE_LocalityActivator_i::spawn_locality_manager"); + + // Get my object reference + CORBA::Object_var obj = this->poa_->servant_to_reference (this); + CORBA::String_var ior = this->orb_->object_to_string (obj.in ()); + CORBA::Any val; + + const char *path = this->cs_path_.c_str (); + + if (si.cmap_->find (SERVER_EXECUTABLE, val) == 0) + { + val >>= path; + DANCE_DEBUG (6, (LM_DEBUG, DLINFO "DAnCE_LocalityActivator_i::spawn_locality_manager - " + "Using provided component server executable: %C\n", path)); + } + else + { + DANCE_DEBUG (6, (LM_DEBUG, DLINFO "DAnCE_LocalityActivator_i::spawn_locality_manager - " + "Using default component server executable\n")); + } + + ACE_Process_Options options (true, + ACE_OS::strlen (path) + ACE_OS::strlen (cmd_line.c_str()) + ACE_OS::strlen (ior.in ()) + 15); + if (options.command_line ("%s %s -c %s", + path, + cmd_line.c_str (), + ior.in ()) != 0) + { + DANCE_ERROR (1, (LM_ERROR, DLINFO + "Failed to create commandline\n")); + throw Deployment::StartError (); + } + + options.avoid_zombies (0); + + DANCE_DEBUG (9, (LM_TRACE, DLINFO + "DAnCE_LocalityActivator_i::spawn_locality_manager - Spawning process, command line is %s\n", + options.command_line_buf ())); + + pid_t const pid = this->process_manager_.spawn (options, + &this->child_handler_); + + if (pid == ACE_INVALID_PID) + { + DANCE_ERROR (1, (LM_ERROR, DLINFO + "Failed to spawn a LocalityManager process\n")); + throw Deployment::StartError (); + } + + DANCE_DEBUG (9, (LM_TRACE, DLINFO + "DAnCE_LocalityActivator_i::spawn_locality_manager - Process successfully spawned with pid %u\n", + pid)); + return pid; + } + + void + DAnCE_LocalityActivator_i:: + single_threaded_wait_for_callback (const Server_Info &si, + ACE_Time_Value &timeout) + { + DANCE_TRACE ("DAnCE_LocalityActivator_i::single_threaded_wait_for_callback"); + + // Below code is broken for thread-per-connection concurrency model, + // since the main thread is running ORB event loop and will spawn + // a different thread to handle the call <register_node_application>, + // the <perform_work> operation will not be invoked and finally + // a timeout will occur. For a similar reason, it won't work + // for thread-pool concurrency model. + while (true) + { + this->orb_->perform_work (timeout); + + if (timeout == ACE_Time_Value::zero) + { + DANCE_ERROR (1, (LM_ERROR, DLINFO + "DAnCE_LocalityActivator_i::single_threaded_wait_for_callback - " + "Timed out while waiting for LocalityManager %C to call back.\n", + si.uuid_.c_str ())); + throw ::Deployment::StartError (); + } + + if (si.activated_) + { + break; + } + } + } + + void + DAnCE_LocalityActivator_i:: + multi_threaded_wait_for_callback (const Server_Info &si, + ACE_Time_Value &timeout) + { + DANCE_TRACE ("DAnCE_LocalityActivator_i::multi_threaded_wait_for_callback"); + + // Wait for a conditional variable + ACE_GUARD_THROW_EX ( TAO_SYNCH_MUTEX, + guard, + this->mutex_, + CORBA::NO_RESOURCES ()); + + while (! si.activated_ ) + if (this->condition_.wait (&timeout) == -1) + { + DANCE_ERROR (1, (LM_ERROR, DLINFO + "DAnCE_LocalityActivator_i::multi_threaded_wait_for_callback - " + "Timed out while waiting for LocalityManager %C to call back.\n", + si.uuid_.c_str ())); + throw Deployment::StartError (); + } + } + + void + DAnCE_LocalityActivator_i::remove_locality_manager (::DAnCE::LocalityManager_ptr server) + { + DANCE_TRACE ("DAnCE_LocalityActivator_i::remove_locality_manager"); + + Server_Info *info = 0; + + for (SERVER_INFOS::ITERATOR i (this->server_infos_); + !i.done (); ++i) + { + if ((*i)->ref_->_is_equivalent (server)) + { + info = (*i).get (); + } + } + + if (!info) + { + DANCE_ERROR (1, (LM_ERROR, DLINFO + "DAnCE_LocalityActivator_i::remove_locality_manager - " + "Failed to find equivalent LocalityManager under my management.\n")); + throw ::Deployment::StopError (); + } + + try + { + DANCE_DEBUG (9, (LM_TRACE, DLINFO + "DAnCE_LocalityActivator_i::remove_locality_manager - " + "Calling shutdown () on LocalityManager %C\n", + info->uuid_.c_str ())); + server->shutdown (); + } + catch (::Deployment::StopError &) + { + DANCE_ERROR (1, (LM_WARNING, DLINFO + "DAnCE_LocalityActivator_i::remove_locality_manager - " + "Received RemoveFailure exception from LocalityManager %C\n", + info->uuid_.c_str ())); + } + + DANCE_DEBUG (6, (LM_INFO, DLINFO + "DAnCE_LocalityActivator_i::remove_locality_manager - " + "LocalityManager %C successfully shut down.\n", + info->uuid_.c_str ())); + } + + void + DAnCE_LocalityActivator_i::create_properties ( + const Server_Info &, + Deployment::Properties_out &config) + { + ACE_NEW_THROW_EX (config, + Deployment::Properties (1), + CORBA::NO_MEMORY ()); + + + } +} + + diff --git a/CIAO/DAnCE/LocalityManager/Handler/LocalityActivator_Impl.h b/CIAO/DAnCE/LocalityManager/Handler/LocalityActivator_Impl.h new file mode 100644 index 00000000000..6834a13df5b --- /dev/null +++ b/CIAO/DAnCE/LocalityManager/Handler/LocalityActivator_Impl.h @@ -0,0 +1,181 @@ +// $Id$ +/** + * @file LocalityActivator_Impl.h + * @author William R. Otte + */ + +#ifndef DAnCE_LocalityActivator_H_ +#define DAnCE_LocalityActivator_H_ + +#include "ace/Process_Manager.h" +#include "ace/Event_Handler.h" +#include "ace/Condition_T.h" +#include "ace/OS_NS_sys_wait.h" +#include "ace/Refcounted_Auto_Ptr.h" +#include "ace/Unbounded_Set_Ex.h" +#include "ace/Synch_Traits.h" +#include "ace/Condition_T.h" +#include "tao/PortableServer/PortableServer.h" +#include "DAnCE/DAnCE_LocalityManagerS.h" +#include "DAnCE/DAnCE_Utility.h" + +#include "NodeApplication/NodeApplication_Export.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +#pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +namespace DAnCE +{ + /** + * @brief The signal handler class for the SIGCHLD handling to avoid + * zombies + */ + class Child_Handler : public virtual ACE_Event_Handler + { + public: + virtual int handle_signal (int, + siginfo_t *, + ucontext_t *) + { + // @@ Note that this code is not portable to all OS platforms + // since it uses print statements within signal handler context. + ACE_exitcode status; + // makes a claal to the underlying os system call + // -1 to wait for any child process + // and WNOHANG so that it retuurns immediately + ACE_OS::waitpid (-1 ,&status, WNOHANG, 0); + + return 0; + } + }; + + /** + * @author William R. Otte <wotte@dre.vanderbilt.edu> + * @brief Default server activator for CIAO component servers. + * + * Implements the default component server activation strategy + * which is to spawn new processes. This is not thread-safe, + * nor is it intended to be. Containers are reated serially, + * so there will be only one actor *modifying* data at a particular + * point in time. + */ + class DAnCE_LocalityActivator_i + : public virtual ::POA_DAnCE::LocalityManagerActivator + { + public: + /// Constructor + DAnCE_LocalityActivator_i (CORBA::ULong def_spawn_delay, + const char * default_cs_path, + const char * cs_args, + bool multithreaded, + CORBA::ORB_ptr orb, + PortableServer::POA_ptr poa_); + + /// Destructor + virtual ~DAnCE_LocalityActivator_i (void); + + virtual + void locality_manager_callback (::DAnCE::LocalityManager_ptr serverref, + const char * server_UUID, + ::Deployment::Properties_out config); + + virtual void configuration_complete (const char *server_UUID); + + ::DAnCE::LocalityManager_ptr + create_locality_manager (const ::Deployment::Properties & config); + + void remove_locality_manager ( + ::DAnCE::LocalityManager_ptr server); + + ::DAnCE::LocalityManager * get_locality_managers (void); + + private: + struct Server_Info; + + /// Builds command line options based on configuration information. + /// May modify the uuid of the component server. + ACE_CString construct_command_line (Server_Info &si); + + /// Spawns the component server process, but does not wait for it + /// to call back. + pid_t spawn_locality_manager (const Server_Info &si, + const ACE_CString &cmd_line); + + /// This method is only applicable when our program is configured as + /// singled threaded . Internally it uses a @c perform_work blocking + /// call to wait for NA object to call back + void single_threaded_wait_for_callback (const Server_Info &si, + ACE_Time_Value &timeout); + + /// This method is only applicable when our program is configured as + /// multiple threaded. Internally it waits on a conditional variable + /// that could be modified by the callback servant which runs in + /// another thread + void multi_threaded_wait_for_callback (const Server_Info &si, + ACE_Time_Value &timeout); + + void create_properties (const Server_Info &info, + Deployment::Properties_out &config); + + struct Server_Info + { + Server_Info (size_t cmap_size_hint = 128) + : cmap_ (new DAnCE::Utility::PROPERTY_MAP (cmap_size_hint)), + ref_ (DAnCE::LocalityManager::_nil ()), + pid_ (ACE_INVALID_PID), + activated_ (false) {} + + typedef ACE_Refcounted_Auto_Ptr <DAnCE::Utility::PROPERTY_MAP, + ACE_Null_Mutex> PROPERTY_MAP_PTR; + + ACE_CString uuid_; + PROPERTY_MAP_PTR cmap_; + DAnCE::LocalityManager_var ref_; + pid_t pid_; + bool activated_; + }; + + typedef ACE_Refcounted_Auto_Ptr<Server_Info, ACE_Null_Mutex> Safe_Server_Info; + + struct _server_info + { + bool operator() (const Safe_Server_Info &a, const Safe_Server_Info &b) const + { + return a->uuid_ == b->uuid_; + } + }; + + // Presumably, there won't be too many component servers per node application + typedef ACE_Unbounded_Set_Ex <Safe_Server_Info, _server_info> SERVER_INFOS; + + /// Default args to pass to all componentservers. + ACE_CString default_args_; + + SERVER_INFOS server_infos_; + + ACE_Process_Manager process_manager_; + + Child_Handler child_handler_; + + CORBA::ULong spawn_delay_; + + /////*******NEW + bool multithreaded_; + + CORBA::ORB_var orb_; + + PortableServer::POA_var poa_; + + ACE_CString cs_path_; + + ACE_CString cs_args_; + + TAO_SYNCH_MUTEX mutex_; + + ACE_Condition<TAO_SYNCH_MUTEX> condition_; + }; + + +} +#endif /* DAnCE_LocalityActivator_H_ */ diff --git a/CIAO/DAnCE/LocalityManager/Handler/LocalityHandler.mpc b/CIAO/DAnCE/LocalityManager/Handler/LocalityHandler.mpc new file mode 100644 index 00000000000..74c22be794b --- /dev/null +++ b/CIAO/DAnCE/LocalityManager/Handler/LocalityHandler.mpc @@ -0,0 +1,8 @@ +project(DAnCE_Locality_Handler) : dance_skel, dance_split_plan, dance_lib, dance_output, dance_logger { + + dynamicflags = DANCE_LOCALITY_HANDLER_BUILD_DLL + Source_Files { + LocalityActivator_Impl.cpp + Locality_Manager_Handler_Impl.cpp + } +} diff --git a/CIAO/DAnCE/LocalityManager/Handler/Locality_Manager_Handler_Impl.cpp b/CIAO/DAnCE/LocalityManager/Handler/Locality_Manager_Handler_Impl.cpp new file mode 100644 index 00000000000..1373682a61a --- /dev/null +++ b/CIAO/DAnCE/LocalityManager/Handler/Locality_Manager_Handler_Impl.cpp @@ -0,0 +1,167 @@ +// -*- C++ -*- +// $Id$ + +// TAO_IDL - Generated from +// be/be_codegen.cpp:1560 + +#include "Locality_Manager_Handler_Impl.h" +#include "LocalityActivator_Impl.h" + +#include "DAnCE/DAnCE_PropertiesC.h" + +namespace DAnCE +{ + const char * + Locality_Handler_i::instance_type_ = + "edu.vanderbilt.dre.DAnCE.LocalityManager"; + + // Implementation skeleton constructor + Locality_Handler_i:: + Locality_Handler_i (const Utility::PROPERTY_MAP &prop, + CORBA::ORB_ptr orb, + PortableServer::POA_ptr poa) + : activator_ (0), + properties_ (prop) + { + CORBA::ULong spawn = 0; + const char *cs_path = 0; + const char *cs_args = 0; + CORBA::Boolean multithread = false; + + Utility::get_property_value (DAnCE::LOCALITY_EXECUTABLE, + this->properties_, cs_path); + DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("Locality_Handler_i - ") + ACE_TEXT("Component server path: %C\n"), cs_path)); + Utility::get_property_value (DAnCE::LOCALITY_ARGUMENTS, + this->properties_, cs_args); + DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("Locality_Handler_i - ") + ACE_TEXT("Component server arguments: %C\n"), cs_args)); + Utility::get_property_value (DAnCE::LOCALITY_TIMEOUT, + this->properties_, spawn); + DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("Locality_Handler_i - ") + ACE_TEXT("Spawn delay: %u\n"), spawn)); + Utility::get_property_value (DAnCE::LOCALITY_MULTITHREAD, + this->properties_, multithread); + DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("Locality_Handler_i - ") + ACE_TEXT("Threading: %C\n"), + multithread ? "Multi" : "Single")); + + DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("Locality_Handler_i - ") + ACE_TEXT("Spawning Locality handler\n"))); + + ACE_NEW_THROW_EX (this->activator_, + DAnCE_LocalityActivator_i (spawn, + cs_path, + cs_args, + multithread, + orb, + poa), + CORBA::NO_MEMORY ()); + + PortableServer::ServantBase_var safe_servant (this->activator_); + + poa->activate_object (this->activator_); + } + + // Implementation skeleton destructor + Locality_Handler_i::~Locality_Handler_i (void) + { + } + + char * Locality_Handler_i::instance_type (void) + { + DANCE_TRACE ("Locality_Handler_i::instance_type"); + return CORBA::string_dup (Locality_Handler_i::instance_type_); + } + + void + Locality_Handler_i::install_instance (const ::Deployment::DeploymentPlan & plan, + ::CORBA::ULong instanceRef, + ::CORBA::Any_out instance_reference) + { + if (plan.instance.length () <= instanceRef) + { + DANCE_ERROR (1, (LM_ERROR, DLINFO + "Locality_Handler_i::install_instance - " + "Invalid instance reference %u provided " + "to install_instance\n", + instanceRef)); + throw ::Deployment::PlanError (plan.UUID.in (), + "Invalid instance reference"); + } + + const ::Deployment::InstanceDeploymentDescription &idd = + plan.instance[instanceRef]; + const ::Deployment::MonolithicDeploymentDescription &mdd = + plan.implementation[idd.implementationRef]; + + CORBA::ULong allprops_len = + idd.configProperty.length () + mdd.execParameter.length (); + ::Deployment::Properties allprops (allprops_len); + + Utility::append_properties (allprops, + mdd.execParameter); + Utility::append_properties (allprops, + idd.configProperty); + + DANCE_DEBUG (9, (LM_TRACE, DLINFO + "Locality_Handler_i::install_instance - " + "Passing %u properties to activator\n", + allprops.length ())); + + ::DAnCE::LocalityManager_var lm_ref = + this->activator_->create_locality_manager (allprops); + + if (CORBA::is_nil (lm_ref)) + { + DANCE_ERROR (1, (LM_ERROR, DLINFO + "Locality_Handler_i::install_instance - " + "Received nil reference from LocalityActivator\n")); + throw ::Deployment::StartError (idd.name.in (), + "Received nil object reference for " + "LocalityManager from Activator\n"); + } + + CORBA::Any *outany (0); + ACE_NEW_THROW_EX (outany, + CORBA::Any (), + CORBA::NO_MEMORY ()); + (*outany) <<= lm_ref.in (); + + instance_reference = outany; + } + + void + Locality_Handler_i::remove_instance (const ::Deployment::DeploymentPlan &, + ::CORBA::ULong, + const ::CORBA::Any &instance_reference) + { + LocalityManager_var lm_ref; + + if (!(instance_reference >>= lm_ref) || + CORBA::is_nil (lm_ref.in ())) + { + DANCE_ERROR (1, (LM_ERROR, DLINFO + "Locality_Handler_i::remove_instance - ", + "Unable to extract valid LocalityManager " + "reference from parameter\n")); + } + this->activator_->remove_locality_manager (lm_ref.in ()); + } + + void + Locality_Handler_i::connect_instance (const ::Deployment::DeploymentPlan &, + ::CORBA::ULong, + const ::CORBA::Any &) + { + throw CORBA::NO_IMPLEMENT (); + } + + void + Locality_Handler_i::disconnect_instance (const ::Deployment::DeploymentPlan &, + ::CORBA::ULong) + { + throw CORBA::NO_IMPLEMENT (); + } + +} diff --git a/CIAO/DAnCE/LocalityManager/Handler/Locality_Manager_Handler_Impl.h b/CIAO/DAnCE/LocalityManager/Handler/Locality_Manager_Handler_Impl.h new file mode 100644 index 00000000000..cbea942727d --- /dev/null +++ b/CIAO/DAnCE/LocalityManager/Handler/Locality_Manager_Handler_Impl.h @@ -0,0 +1,88 @@ +// -*- C++ -*- +// $Id$ + +/** + * @file Locality_Manager_Handler_Impl.h + * @author William R. Otte <wotte@dre.vanderbilt.edu> + * + * Installation handler implementation for spawning LocalityManagers. + */ + +#ifndef DANCE_LOCALITYMANAGERI_MIGAYG_H_ +#define DANCE_LOCALITYMANAGERI_MIGAYG_H_ + +#include "DAnCE/DAnCE_LocalityManagerS.h" +#include "DAnCE/DAnCE_Utility.h" +#include "Split_Plan/Locality_Splitter.h" +#include "Split_Plan/Split_Plan.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +#pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +#include "LocalityManager/Handler/DAnCE_Locality_Handler_export.h" +#include "tao/LocalObject.h" + +namespace DAnCE +{ + class DAnCE_LocalityActivator_i; + + class DAnCE_Locality_Handler_Export Locality_Handler_i + : public virtual DAnCE::InstanceDeploymentHandler, + public virtual ::CORBA::LocalObject + { + public: + // Constructor + Locality_Handler_i (const Utility::PROPERTY_MAP &props, + CORBA::ORB_ptr orb, + PortableServer::POA_ptr poa); + + // Destructor + virtual ~Locality_Handler_i (void); + + virtual + char * instance_type (void); + + virtual + void install_instance (const ::Deployment::DeploymentPlan & plan, + ::CORBA::ULong instanceRef, + ::CORBA::Any_out instance_reference); + + virtual + void activate_instance (const ::Deployment::DeploymentPlan & , + ::CORBA::ULong , + const ::CORBA::Any &) {}; + virtual + void passivate_instance (const ::Deployment::DeploymentPlan & , + ::CORBA::ULong , + const ::CORBA::Any &) {}; + + virtual + void remove_instance (const ::Deployment::DeploymentPlan & plan, + ::CORBA::ULong instanceRef, + const ::CORBA::Any & instance_reference); + + virtual + void provide_endpoint_reference (const ::Deployment::DeploymentPlan &, + ::CORBA::ULong, + ::CORBA::Any_out) {}; + + virtual + void connect_instance (const ::Deployment::DeploymentPlan & plan, + ::CORBA::ULong connectionRef, + const ::CORBA::Any & provided_reference); + + virtual + void disconnect_instance (const ::Deployment::DeploymentPlan & plan, + ::CORBA::ULong connectionRef); + + virtual + void instance_configured (const ::Deployment::DeploymentPlan &, + ::CORBA::ULong) {}; + private: + static const char *instance_type_; + DAnCE_LocalityActivator_i *activator_; + const Utility::PROPERTY_MAP &properties_; + }; +} +#endif diff --git a/CIAO/DAnCE/MPC/config/dance_locality_handler.mpb b/CIAO/DAnCE/MPC/config/dance_locality_handler.mpb new file mode 100644 index 00000000000..48eb73dfe66 --- /dev/null +++ b/CIAO/DAnCE/MPC/config/dance_locality_handler.mpb @@ -0,0 +1,4 @@ +project : dance_skel, dance_split_plan { + after += DAnCE_Locality_Handler + libs += DAnCE_Locality_Handler +} diff --git a/CIAO/DAnCE/MPC/config/dance_locality_manager.mpb b/CIAO/DAnCE/MPC/config/dance_locality_manager.mpb new file mode 100644 index 00000000000..647856e8a0e --- /dev/null +++ b/CIAO/DAnCE/MPC/config/dance_locality_manager.mpb @@ -0,0 +1,5 @@ +// $Id$ +project : dance_skel { + after += DAnCE_LocalityManager_Impl + libs += DAnCE_LocalityManager_Impl +} diff --git a/CIAO/DAnCE/MPC/config/dance_nodeapplication.mpb b/CIAO/DAnCE/MPC/config/dance_nodeapplication.mpb index a6d521290eb..d07be70f2f6 100644 --- a/CIAO/DAnCE/MPC/config/dance_nodeapplication.mpb +++ b/CIAO/DAnCE/MPC/config/dance_nodeapplication.mpb @@ -2,7 +2,7 @@ // $Id$ project : dance, dance_nodeapplication_skel, dance_logger, \ - ciao_cs_client, ciao_componentserver_stub, dynamicinterface, iortable, naming { + dynamicinterface, iortable, naming, dance_locality_handler { after += DAnCE_NodeApplication libs += DAnCE_NodeApplication } diff --git a/CIAO/DAnCE/MPC/config/dance_skel.mpb b/CIAO/DAnCE/MPC/config/dance_skel.mpb new file mode 100644 index 00000000000..84a038ec06e --- /dev/null +++ b/CIAO/DAnCE/MPC/config/dance_skel.mpb @@ -0,0 +1,6 @@ +// $Id$ +project : dance_deployment_skel, \ + dance_applicationmanager_skel, dance_stub { + after += DAnCE_skel + libs += DAnCE_skel +} diff --git a/CIAO/DAnCE/MPC/config/dance_split_plan.mpb b/CIAO/DAnCE/MPC/config/dance_split_plan.mpb index 7dca6a02e25..b86a9efacd5 100644 --- a/CIAO/DAnCE/MPC/config/dance_split_plan.mpb +++ b/CIAO/DAnCE/MPC/config/dance_split_plan.mpb @@ -3,4 +3,5 @@ project : dance, dance_deployment_stub, dance_tools { after += DAnCE_Split_Plan_Impl libs += DAnCE_Split_Plan_Impl + includes += $DANCE_ROOT/tools } diff --git a/CIAO/DAnCE/MPC/config/dance_stub.mpb b/CIAO/DAnCE/MPC/config/dance_stub.mpb new file mode 100644 index 00000000000..2e06f253229 --- /dev/null +++ b/CIAO/DAnCE/MPC/config/dance_stub.mpb @@ -0,0 +1,5 @@ +// $Id$ +project : dance_deployment_stub, dance_applicationmanager_stub { + after += DAnCE_stub + libs += DAnCE_stub +} diff --git a/CIAO/DAnCE/NodeApplication/NodeApplication.mpc b/CIAO/DAnCE/NodeApplication/NodeApplication.mpc index 201ac740788..0a5c75ac6c6 100644 --- a/CIAO/DAnCE/NodeApplication/NodeApplication.mpc +++ b/CIAO/DAnCE/NodeApplication/NodeApplication.mpc @@ -3,7 +3,7 @@ project(DAnCE_NodeApplication): install, dance_lib, dynamicinterface, \ dance_nodeapplication_skel, \ - dance_logger, iortable, naming, ccm_configvalue, ciao_cs_client, ciao_componentserver_stub, \ + dance_logger, iortable, naming, dance_locality_handler, \ gen_ostream, avoids_ace_for_tao, dance_applicationmanager_stub { sharedname = DAnCE_NodeApplication dynamicflags = NODEAPPLICATION_BUILD_DLL @@ -11,13 +11,11 @@ project(DAnCE_NodeApplication): install, dance_lib, dynamicinterface, \ Source_Files { NodeApplication_Impl.cpp ComponentAttributesSetter.cpp - Name_Utilities.cpp } Header_Files { NodeApplication_Impl.h ComponentAttributesSetter.h - Name_Utilities.h } specific { diff --git a/CIAO/DAnCE/NodeApplication/NodeApplication_Impl.cpp b/CIAO/DAnCE/NodeApplication/NodeApplication_Impl.cpp index 49e2965082d..1d13615ca5b 100644 --- a/CIAO/DAnCE/NodeApplication/NodeApplication_Impl.cpp +++ b/CIAO/DAnCE/NodeApplication/NodeApplication_Impl.cpp @@ -7,21 +7,17 @@ #include "tao/AnyTypeCode/Any.h" #include "tao/Object.h" #include "tao/ORB.h" -#include "ccm/CCM_ObjectC.h" -#include "ccm/CCM_SessionComponentC.h" -#include "ciao/Valuetype_Factories/ConfigValue.h" -#include "ciao/ComponentServer/CIAO_ServerActivator_Impl.h" -#include "ciao/ComponentServer/CIAO_ComponentInstallation_Impl.h" -#include "ciao/ComponentServer/CIAO_PropertiesC.h" +#include "tao/AnyTypeCode/TypeCode.h" #include "DAnCE/Logger/Log_Macros.h" #include "Deployment/Deployment_BaseC.h" #include "Deployment/Deployment_ApplicationC.h" #include "Deployment/Deployment_PlanErrorC.h" #include "Deployment/Deployment_ApplicationManagerC.h" -#include "DAnCE/Deployment_common.h" +#include "DAnCE/DAnCE_Utility.h" #include "DAnCE/DAnCE_PropertiesC.h" +#include "DAnCE/DAnCE_LocalityManagerC.h" + #include "ComponentAttributesSetter.h" -#include "Name_Utilities.h" #include <string> @@ -31,210 +27,7 @@ #endif /* GEN_OSTREAM_OPS */ using namespace DAnCE; - -namespace -{ - template<class T> - bool get_property_value (const char *name, PROPERTY_MAP &properties, T &val) - { - DANCE_TRACE ("NodeApplication::<anonymous>::get_property_value<T>"); - CORBA::Any any; - - DANCE_DEBUG (9, (LM_TRACE, DLINFO - ACE_TEXT("NodeApplication::<anonymous>::get_property_value<T> - ") - ACE_TEXT("Finding property value for name '%C'\n"), - name)); - - if (properties.find (name, any) == 0) - { - if (any >>= val) - { - return true; - } - else - { - DANCE_ERROR (1, (LM_WARNING, DLINFO - ACE_TEXT("NodeApplication::<anonymous>::get_property_value<T> - ") - ACE_TEXT("Failed to extract property value for %C\n"), name)); - return false; - } - } - - DANCE_DEBUG (9, (LM_TRACE, DLINFO - ACE_TEXT("NodeApplication::<anonymous>::get_property_value<T> - ") - ACE_TEXT("Property value for name '%C' has no value\n"), name)); - - return false; - } - - template<> - bool get_property_value (const char *name, PROPERTY_MAP &properties, bool &val) - { - DANCE_TRACE ("NodeApplication::<anonymous>::get_property_value<bool>"); - - DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("NodeApplication::<anonymous>::get_property_value<bool> - ") - ACE_TEXT("Finding property value for name '%C'\n"), - name)); - - CORBA::Any any; - if (properties.find (name, any) == 0) - { - if (any >>= CORBA::Any::to_boolean(val)) - { - return true; - } - else - { - DANCE_ERROR (1, (LM_WARNING, DLINFO ACE_TEXT("NodeApplication::<anonymous>::get_property_value<T> - ") - ACE_TEXT("Failed to extract property value for %C\n"), name)); - return false; - } - } - - DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("NodeApplication::<anonymous>::get_property_value<bool> - ") - ACE_TEXT("Property value for name '%C' has no value\n"), name)); - - return false; - } - - template<> - bool get_property_value (const char *name, PROPERTY_MAP &properties, const char * &val) - { - DANCE_TRACE ("NodeApplication::<anonymous>::get_property_value<const char *>"); - CORBA::Any any; - - DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("NodeApplication::<anonymous>::get_property_value<const char *> - ") - ACE_TEXT("Finding property value for name '%C'\n"), - name)); - - if (properties.find (name, any) == 0) - { - if (any >>= CORBA::Any::to_string(val, 0)) - { - DANCE_DEBUG (9, (LM_TRACE, - DLINFO ACE_TEXT("NodeApplication::<anonymous>::get_property_value<const char *> - ") - ACE_TEXT("Value is %C\n"), val)); - return true; - } - else - { - DANCE_ERROR (1, (LM_WARNING, DLINFO ACE_TEXT("NodeApplication::<anonymous>::get_property_value<const char *> - ") - ACE_TEXT("Failed to extract property value for %C\n"), name)); - return false; - } - } - - DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("NodeApplication::<anonymous>::get_property_value<const char *> - ") - ACE_TEXT("Property value for name '%C' has no value\n"), name)); - - return false; - } - - template<class T> - bool get_property_value (const char *name, const ::Deployment::Properties &properties, T &val) - { - DANCE_TRACE ("NodeApplication::<anonymous>::get_property_value<T>"); - - DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("NodeApplication::<anonymous>::get_property_value<T> - ") - ACE_TEXT("Finding property value for name '%C'\n"), - name)); - - for (CORBA::ULong i = 0; i < properties.length (); ++i) - { - if (ACE_OS::strcmp (properties[i].name.in (), name) == 0) - { - DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("NodeApplication::<anonymous>::get_property_value<T> - ") - ACE_TEXT("Found property '%C'\n"), name)); - if (properties[i].value >>= val) - return true; - else - { - DANCE_ERROR (1, (LM_WARNING, DLINFO ACE_TEXT("NodeApplication::<anonymous>::get_property_value<T> - ") - ACE_TEXT("Failed to extract property value for %C\n"), name)); - return false; - } - } - } - - - DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("NodeApplication::<anonymous>::get_property_value<T> - ") - ACE_TEXT("Property value for name '%C' has no value\n"), name)); - - return false; - } - - template<> - bool get_property_value (const char *name, const ::Deployment::Properties &properties, const char * &val) - { - DANCE_TRACE ("NodeApplication::<anonymous>::get_property_value<const char *>"); - - DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("NodeApplication::<anonymous>::get_property_value< const char *> - ") - ACE_TEXT("Finding property value for name '%C'\n"), - name)); - - for (CORBA::ULong i = 0; i < properties.length (); ++i) - { - if (ACE_OS::strcmp (properties[i].name.in (), name) == 0) - { - DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("NodeApplication::<anonymous>::get_property_value< const char *> - ") - ACE_TEXT("Found property '%C'\n"), name)); - if (properties[i].value >>= CORBA::Any::to_string (val, 0)) - { - DANCE_DEBUG (9, (LM_TRACE, - DLINFO ACE_TEXT("NodeApplication::<anonymous>::get_property_value< const char *> - ") - ACE_TEXT("Value is %C\n"), val)); - return true; - } - else - { - DANCE_ERROR (1, (LM_WARNING, DLINFO ACE_TEXT("NodeApplication::<anonymous>::get_property_value< const char *> - ") - ACE_TEXT("Failed to extract property value for %C\n"), name)); - return false; - } - } - } - - - DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("NodeApplication::<anonymous>::get_property_value<T> - ") - ACE_TEXT("Unable to find property named %C\n"), name)); - - return false; - } - - /// Tests flag, if false, sets it to true and replaces the name and - /// reason flags of the exception. - template <typename EXCEPTION> - void test_and_set_exception (bool &flag, EXCEPTION &exception, - const char *name, const char *reason) - { - if (!flag) - { - flag = true; - exception.name = name; - exception.reason = reason; - } - } - - void append_properties (::Deployment::Properties &dest, - const ::Deployment::Properties &src) - { - const char* edu_prop = "edu.vanderbilt.dre.CIAO.ComponentServer."; - for (CORBA::ULong i = 0; i < src.length (); ++i) - { - if (ACE_OS::strncmp (src[i].name.in (), edu_prop, ACE_OS::strlen (edu_prop)) == 0) - { - DANCE_DEBUG (9, (LM_TRACE, DLINFO - ACE_TEXT("NodeApplication::append_properties - ") - ACE_TEXT("Adding property %C\n"), src[i].name.in ())); - CORBA::ULong const dest_length = dest.length (); - dest.length (dest_length + 1); - dest[dest_length].name = CORBA::string_dup (src[i].name.in ()); - dest[dest_length].value = src[i].value; - } - } - } -} - +using namespace DAnCE::Utility; NodeApplication_Impl::NodeApplication_Impl (CORBA::ORB_ptr orb, PortableServer::POA_ptr poa, @@ -246,7 +39,9 @@ NodeApplication_Impl::NodeApplication_Impl (CORBA::ORB_ptr orb, plan_ (plan), node_name_ (node_name), properties_ (), - instances_ (plan.instance.length ()) + handler_ (properties, + orb, + poa) { DANCE_TRACE ("NodeApplication_Impl::NodeApplication_Impl"); PROPERTY_MAP::const_iterator i = properties.begin (); @@ -263,76 +58,6 @@ NodeApplication_Impl::NodeApplication_Impl (CORBA::ORB_ptr orb, NodeApplication_Impl::~NodeApplication_Impl() { DANCE_TRACE( "NodeApplication_Impl::~NodeApplication_Impl()"); - - using namespace Components; - ConfigValues config_values; - config_values.length (1L); - CORBA::Any feature_any; - - /* TODO: This is highly suspect. I believe we should be using get_component_server, - not calling create_container. */ - DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("NodeApplication_Impl::~NodeApplication_Impl - ") - ACE_TEXT("Deactivating %u ComponentServers\n"), - this->servers_.size ())); - for (size_t i = 0; i < this->servers_.size (); ++i) - { - ComponentServer &server = this->servers_[i]; - - DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("NodeApplication_Impl::~NodeApplication_Impl - ") - ACE_TEXT("In ComponentServer %u, deactivating %u containers\n"), i, server.containers.size ())); - for (size_t j = 0; j < server.containers.size (); ++j) - { - Container &container = server.containers[j]; - - DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("NodeApplication_Impl::~NodeApplication_Impl - ") - ACE_TEXT("In container %u hosted in server %u\n"), j, i)); - - try - { - if (!CORBA::is_nil (container.ref)) - server.ref->remove_container (container.ref.in ()); - - container.ref = CIAO::Deployment::Container::_nil (); - } - catch (const CORBA::Exception &ex) - { - DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::~NodeApplication_Impl - ") - ACE_TEXT("Caught CORBA exception while removing container %u on server %u: %C\n"), - j, i, ex._info ().c_str ())); - } - catch (...) - { - DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::~NodeApplication_Impl - ") - ACE_TEXT("Caught unknown C++ exception while removing container %u on server %u.\n"), - j, i)); - } - } - - DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("NodeApplication_Impl::~NodeApplication_Impl - ") - ACE_TEXT("Removing component server %u\n"), i)); - - try - { - if (!CORBA::is_nil (server.ref)) - this->activator_->remove_component_server (server.ref.in ()); - } - catch (const CORBA::Exception &ex) - { - DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::~NodeApplication_Impl - ") - ACE_TEXT("Caught CORBA exception while removing server %u: %C\n"), - i, ex._info ().c_str ())); - } - catch (...) - { - DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::~NodeApplication_Impl - ") - ACE_TEXT("Caught unknown C++ exception while removing server %u.\n"), - i)); - } - - DANCE_DEBUG (8, (LM_INFO, DLINFO ACE_TEXT("NodeApplication_Impl::~NodeApplication_Impl - ") - ACE_TEXT("Successfully removed container %u on node %C.\n"), - i, this->node_name_.c_str ())); - } } void @@ -343,65 +68,7 @@ NodeApplication_Impl::init() /* TODO: Lets move this stuff to the constructor, shall we?!? */ /* TODO: Might be nice to use a component configurator here to load the proper versions of the serveractivator. */ - - /* ServerActivator configuration */ - CORBA::ULong spawn = 0; - const char *cs_path = 0; - const char *cs_args = 0; - CORBA::Boolean multithread = false; - - get_property_value (CIAO::Deployment::SERVER_EXECUTABLE, this->properties_, cs_path); - DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::init - ") - ACE_TEXT("Component server path: %C\n"), cs_path)); - get_property_value (CIAO::Deployment::SERVER_ARGUMENTS, this->properties_, cs_args); - DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::init - ") - ACE_TEXT("Component server arguments: %C\n"), cs_args)); - get_property_value (CIAO::Deployment::SERVER_TIMEOUT, this->properties_, spawn); - DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::init - ") - ACE_TEXT("Spawn delay: %u\n"), spawn)); - get_property_value (CIAO::Deployment::SERVER_MULTITHREAD, this->properties_, multithread); - DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::init - ") - ACE_TEXT("Threading: %C\n"), multithread ? "Multi" : "Single")); - - DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("NodeApplication_Impl::init - ") - ACE_TEXT("Spawning server activator\n"))); - - CIAO::Deployment::ComponentInstallation_Impl *tmp_ci = 0; - - ACE_NEW_THROW_EX (tmp_ci, - CIAO::Deployment::ComponentInstallation_Impl (), - CORBA::NO_MEMORY ()); - - PortableServer::ServantBase_var safe_servant = tmp_ci; - - PortableServer::ObjectId_var id = this->poa_->activate_object (tmp_ci); - CORBA::Object_var ci_object = this->poa_->id_to_reference (id.in ()); - Components::Deployment::ComponentInstallation_var ci = - Components::Deployment::ComponentInstallation::_narrow (ci_object.in ()); - - for (CORBA::ULong i = 0; i < this->plan_.artifact.length (); ++i) - { - tmp_ci->install (this->plan_.artifact[i].name, - this->plan_.artifact[i].location[0]); - } - - CIAO::Deployment::CIAO_ServerActivator_i *tmp_act = 0; - ACE_NEW_THROW_EX (tmp_act, - CIAO::Deployment::CIAO_ServerActivator_i (spawn, - cs_path, - cs_args, - multithread, - ci.in (), - this->orb_.in(), - this->poa_.in()), - CORBA::NO_MEMORY ()); - this->activator_.reset (tmp_act); - - PortableServer::ObjectId_var sa_id = - this->poa_->activate_object (this->activator_.get ()); - - DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("NodeApplication_Impl::init - ServerActivator object created\n"))); - + const ACE_TCHAR *ior = 0; if (get_property_value (DAnCE::INSTANCE_NC, this->properties_, ior) || @@ -425,1944 +92,380 @@ NodeApplication_Impl::init() ACE_TEXT("No instance NC was provided\n"))); } -void -NodeApplication_Impl::configuration_complete_components () +void +NodeApplication_Impl::init_instances (void) { - DANCE_TRACE( "NodeApplication_Impl::configuration_complete_components"); - - bool error = false; - ::Deployment::StartError exception; - - for (INSTANCES::size_type k = 0; k < this->instances_.size (); ++k) + DANCE_TRACE ("NodeApplication::init_instances"); + + for (CORBA::ULong i = 0; i < plan_.instance.length (); ++i) { - if (!this->instances_[k] || - this->instances_[k]->type == eHome || - this->instances_[k]->type == eComponentServer) + CORBA::ULong impl_idx = plan_.instance[i].implementationRef; + + if (impl_idx >= plan_.implementation.length ()) + { + DANCE_ERROR (1, (LM_ERROR, DLINFO + ACE_TEXT("NodeApplication_Impl::init_instances - ") + ACE_TEXT("Invalid impelmentation index\n"))); + } + + const char *instance_type = + DAnCE::Utility::get_instance_type (plan_.implementation[impl_idx].execParameter); + + if (instance_type) + DANCE_DEBUG (6, (LM_DEBUG, DLINFO + ACE_TEXT("NodeApplication_Impl::init_instances - ") + ACE_TEXT("Considering instance %u:%C with type %C\n"), + i, + plan_.instance[i].name.in (), + instance_type)); + else { - DANCE_DEBUG (9, (LM_TRACE, DLINFO - ACE_TEXT("NodeApplication_Impl::configuration_complete_components - ") - ACE_TEXT("Skipping non-component instance\n"))); + DANCE_DEBUG (4, (LM_DEBUG, DLINFO + ACE_TEXT ("NodeApplication_Impl::init_instances - ") + ACE_TEXT ("Skipping instance %u:%C\n"), + i, + plan_.instance[i].name.in () + )); continue; } - DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("NodeApplication_Impl::configuration_complete_components - ") - ACE_TEXT("Invoking configuration_complete on component instance %C on node %C\n"), - this->plan_.instance[this->instances_[k]->idd_idx].name.in (), - this->node_name_.c_str ())); - - try - { - Components::CCMObject_var ccmobj = - Components::CCMObject::_narrow (this->instances_[k]->ref.in ()); - if (CORBA::is_nil (this->instances_[k]->ref)) - { - DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::configuration_complete_components - ") - ACE_TEXT("Failed to narrow object reference for component instance %C\n"), - this->plan_.instance[this->instances_[k]->idd_idx].name.in ())); - continue; - } - - if (this->instances_[k]->state == eInstalled) - { - ccmobj->configuration_complete (); - this->instances_[k]->state = eConfigured; + if (ACE_OS::strcmp (instance_type, + DANCE_LOCALITYMANAGER) == 0) + { + DANCE_DEBUG (6, (LM_DEBUG, DLINFO + ACE_TEXT("NodeApplication_Impl::init_instances - ") + ACE_TEXT("Found LocalityManager instance, deploying\n"))); + + CORBA::Any_var reference; + this->handler_.install_instance (this->plan_, + i, + reference.out ()); + + ::DAnCE::LocalityManager_var lm_ref; + if (reference.in () >>= lm_ref) + { + this->localities_[plan_.instance[i].name.in ()] = lm_ref._retn (); + DANCE_DEBUG (4, (LM_INFO, DLINFO + ACE_TEXT("NodeApplication_Impl::init_instances - ") + ACE_TEXT("Successfully started Locality %C\n"), + plan_.instance[i].name.in ())); } else { - if (!error) - { - error = true; - exception.name = this->plan_.instance[this->instances_[k]->idd_idx].name.in (); - exception.reason = "Attempting to activate component that has already passed the configure stage.\n"; - continue; - } - } - - DANCE_DEBUG (8, (LM_INFO, DLINFO ACE_TEXT("NodeApplication_Impl::configuration_complete_components - ") - ACE_TEXT("Component %C successfully configured.\n"), - this->plan_.instance[this->instances_[k]->idd_idx].name.in ())); - } - catch (const CORBA::Exception &ex) - { - DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::configuration_complete_components - ") - ACE_TEXT("Caught CORBA exception from ccm_activate on component %C: %C\n"), - this->plan_.instance[this->instances_[k]->idd_idx].name.in (), - ex._info ().c_str ())); - if (!error) - { - error = true; - exception.name = this->plan_.instance[this->instances_[k]->idd_idx].name.in (); - exception.reason = ex._info ().c_str (); - } - } - catch (...) - { - DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::configuration_complete_components - ") - ACE_TEXT("Caught unknown C++ exception from ccm_activate on component %C\n"), - this->plan_.instance[this->instances_[k]->idd_idx].name.in ())); - if (!error) - { - error = true; - exception.name = this->plan_.instance[this->instances_[k]->idd_idx].name.in (); - exception.reason = "Unknown C++ exception"; + DANCE_ERROR (1, (LM_ERROR, DLINFO + ACE_TEXT("NodeApplication_Impl::init_instances - ") + ACE_TEXT("Unable to resolve LocalityManager object reference\n"))); + throw ::Deployment::StartError (plan_.instance[i].name.in (), + "Unable to resolve LocalityManager object ref\n"); } } } - - if (error) - throw exception; } -void -NodeApplication_Impl::start () +void +NodeApplication_Impl::prepare_instances (void) { - DANCE_TRACE( "NodeApplication_Impl::start"); - - bool error (false); - ::Deployment::StartError exception; - - for (INSTANCES::size_type k = 0; k < this->instances_.size (); ++k) - { - if (this->instances_[k]->type == eHome || - this->instances_[k]->type == eComponentServer) - { - continue; - } - - DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("NodeApplication_Impl::start - ") - ACE_TEXT("Invoking start on component instance %C on node %C\n"), - this->plan_.instance[this->instances_[k]->idd_idx].name.in (), - this->node_name_.c_str ())); - - try - { - CIAO::Deployment::Container_var cont = - CIAO::Deployment::Container::_narrow (this->instances_[k]->container->ref.in()); - - if (CORBA::is_nil (this->instances_[k]->container->ref.in ())) - { - DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::start - ") - ACE_TEXT("Failed to narrow object reference for container managing ") - ACE_TEXT("component instance %C to a CIAO container reference\n"), - this->plan_.instance[this->instances_[k]->idd_idx].name.in ())); - test_and_set_exception (error, exception, - this->plan_.instance[this->instances_[k]->idd_idx].name.in (), - "Failed to narrow managing container to CIAO container type"); - continue; - } - - if (this->instances_[k]->state == eConfigured || - this->instances_[k]->state == ePassive) - { - Components::CCMObject_var comp (Components::CCMObject::_narrow (this->instances_[k]->ref)); - cont->activate_component (comp.in ()); - this->instances_[k]->state = eActive; + DANCE_TRACE ("NodeApplication_Impl::prepare_instances"); + + typedef DAnCE::Split_Plan < DAnCE::Locality_Splitter > Splitter; + Splitter split_plan; + split_plan.split_plan (this->plan_); + + Splitter::TSubPlans &plans = split_plan.plans (); + + // @@ Ideally, it would be nice to have the key for the subplans + // be the name of the locality instance. + + CORBA::ULong plan (0); + // for each sub plan + for (Splitter::TSubPlanIterator i = plans.begin (); + i != plans.end (); + ++i) + { + DANCE_DEBUG (9, (LM_TRACE, DLINFO + "NodeApplication_Impl::prepare_instances - " + "Considering sub-plan %u\n", + plan++)); + ::Deployment::DeploymentPlan &sub_plan = + (*i).int_id_; + + bool locality_found (false); + + // We need to find the locality + for (CORBA::ULong j = 0; j < sub_plan.instance.length (); ++j) + { + ::Deployment::InstanceDeploymentDescription &inst = + sub_plan.instance[j]; + ::Deployment::MonolithicDeploymentDescription &mdd = + sub_plan.implementation[inst.implementationRef]; + + const char *instance_type = + DAnCE::Utility::get_instance_type (mdd.execParameter); + + if (instance_type && + ACE_OS::strcmp (instance_type, + DANCE_LOCALITYMANAGER) == 0) + { + locality_found = true; + DANCE_DEBUG (4, (LM_DEBUG, DLINFO + "NodeApplication_Impl::prepare_instances - " + "Invoking preparePlan on locality %C\n", + inst.name.in ())); + this->prepare_instance (inst.name.in (), + sub_plan); } - else - { - if (!error) - { - error = true; - exception.name = this->plan_.instance[this->instances_[k]->idd_idx].name.in (); - exception.reason = "Attempting to activate component that is not configured or passive.\n"; - } - } - - DANCE_DEBUG (8, (LM_INFO, DLINFO ACE_TEXT("NodeApplication_Impl::start - ") - ACE_TEXT("Component %C successfully activated.\n"), - this->plan_.instance[this->instances_[k]->idd_idx].name.in ())); } - catch (const CORBA::Exception &ex) - { - DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::start - ") - ACE_TEXT("Caught CORBA exception from ccm_activate on component %C: %C\n"), - this->plan_.instance[this->instances_[k]->idd_idx].name.in (), - ex._info ().c_str ())); - if (!error) - { - error = true; - exception.name = this->plan_.instance[this->instances_[k]->idd_idx].name.in (); - exception.reason = ex._info ().c_str (); + + if (!locality_found && + sub_plan.instance.length () != 0) + { + // Need to spawn default locality. + DANCE_DEBUG (4, (LM_DEBUG, DLINFO + "NodeApplication_Impl::prepare_instances - " + "No locality manager found, creating a default locality " + "named <%C>\n", + sub_plan.instance[0].name.in () + )); + + // Create minimal plan required for locality manager spawn + // This is a temporary workaround. + ::Deployment::DeploymentPlan tmp_plan; + tmp_plan.UUID = this->plan_.UUID; + tmp_plan.implementation.length (1); + tmp_plan.instance.length (1); + tmp_plan.instance[0].implementationRef = 0; + tmp_plan.instance[0].name = sub_plan.instance[0].name.in (); + + CORBA::Any_var reference; + this->handler_.install_instance (tmp_plan, + 0, + reference.out ()); + + ::DAnCE::LocalityManager_var lm_ref; + if (reference.in () >>= lm_ref) + { + this->localities_[tmp_plan.instance[0].name.in ()] = lm_ref._retn (); + DANCE_DEBUG (4, (LM_INFO, DLINFO + ACE_TEXT("NodeApplication_Impl::prepare_instances - ") + ACE_TEXT("Successfully started Locality %C\n"), + tmp_plan.instance[0].name.in ())); } - } - catch (...) - { - DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::start - ") - ACE_TEXT("Caught unknown C++ exception from ccm_activate on component %C\n"), - this->plan_.instance[this->instances_[k]->idd_idx].name.in ())); - if (!error) + else { - error = true; - exception.name = this->plan_.instance[this->instances_[k]->idd_idx].name.in (); - exception.reason = "Unknown C++ exception"; + DANCE_ERROR (1, (LM_ERROR, DLINFO + ACE_TEXT("NodeApplication_Impl::prepare_instances - ") + ACE_TEXT("Unable to resolve LocalityManager object reference\n"))); + throw ::Deployment::StartError (tmp_plan.instance[0].name.in (), + "Unable to resolve default LocalityManager object ref\n"); } - } - } - - if (error) - throw exception; -} - -void -NodeApplication_Impl::install_home (Container &cont, Instance &inst) -{ - DANCE_TRACE( "NodeApplication_Impl::install_home"); - - const ::Deployment::MonolithicDeploymentDescription &mdd = - this->plan_.implementation[inst.mdd_idx]; - const ::Deployment::InstanceDeploymentDescription &idd = - this->plan_.instance[inst.idd_idx]; - - DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::install_home - ") - ACE_TEXT("Starting installation of home %C on node %C\n"), - idd.name.in (), idd.node.in ())); - - this->instances_[inst.idd_idx] = &inst; - - // Need to get significant property values - const char *entrypt = 0; - get_property_value (DAnCE::HOME_FACTORY, mdd.execParameter, entrypt); - - if (entrypt == 0) - { - DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::install_home - ") - ACE_TEXT("Unable to find home factory property on home %C\n"), - idd.name.in ())); - throw ::Deployment::InvalidComponentExecParameter (mdd.name.in (), - "No 'home factory' property present on MDD\n"); - } - - // @@TODO: Perhaps need better way to do this. - Components::ConfigValues config; - config.length (mdd.execParameter.length () + idd.configProperty.length ()); - CORBA::ULong pos (0); - - for (CORBA::ULong i = 0; i < mdd.execParameter.length (); ++i) - { - DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("NodeApplication_Impl::install_home - ") - ACE_TEXT("Inserting value for execParameter %C\n"), mdd.execParameter[i].name.in ())); - config[pos++] = new CIAO::ConfigValue_impl (mdd.execParameter[i].name.in (), - mdd.execParameter[i].value); - } - - for (CORBA::ULong i = 0; i < idd.configProperty.length (); ++i) - { - DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("NodeApplication_Impl::install_home - ") - ACE_TEXT("Inserting value for configProperty %C\n"), idd.configProperty[i].name.in ())); - config[pos++] = new CIAO::ConfigValue_impl (idd.configProperty[i].name.in (), - idd.configProperty[i].value); - } - - try - { - DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::install_home - ") - ACE_TEXT("Calling install_home on container. Home id '%C', entrypt '%C', ") - ACE_TEXT("length of config values is %u\n"), - idd.name.in (), entrypt, config.length ())); - - ::Components::CCMHome_var home = cont.ref->install_home (idd.name.in (), - entrypt, - config); - - if (CORBA::is_nil (home)) - { - DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::install_home - ") - ACE_TEXT("Got nil object reference from container while installing home %C on node %C,") - ACE_TEXT("throwing PlanError\n"), - idd.name.in (), idd.node.in ())); - throw ::Deployment::PlanError (idd.name.in (), - "Nil object reference returned from conainer"); - } - - DANCE_DEBUG (8, (LM_INFO, DLINFO ACE_TEXT("NodeApplication_Impl::install_home - ") - ACE_TEXT("Home '%C' on node '%C' successfully installed\n"), - idd.name.in (), idd.node.in ())); - - inst.ref = CORBA::Object::_narrow (home); - - DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("NodeApplication_Impl::install_home - ") - ACE_TEXT("Populating attributes for home %C\n"), - idd.name.in ())); - - - ComponentAttributesSetter::SetComponentAttributes (idd.name.in (), - inst.ref.in (), - idd.configProperty, - this->orb_.in ()); - - inst.state = eInstalled; - } - catch (const Components::InvalidConfiguration &) - { - DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::install_home - ") - ACE_TEXT("Error creating home %C on node %C, caught InvalidConfiguration. Throwing exception\n"), - idd.name.in (), idd.node.in ())); - throw ::Deployment::InvalidProperty (idd.name.in (), - "Invalid configuration exception from container"); - } - catch (const CORBA::Exception &ex) - { - DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::install_home - ") - ACE_TEXT("Caught CORBA exception while installing home %C: %C\n"), - idd.name.in (), - ex._info ().c_str ())); - throw ::Deployment::StartError (idd.name.in (), - ex._info ().c_str ()); - } - catch (...) - { - DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::install_home - ") - ACE_TEXT("Caught unknown C++ exception while installing home %C\n"), - idd.name.in ())); - throw ::Deployment::StartError (idd.name.in (), - "Unknown C++ exception"); - } -} - -void -NodeApplication_Impl::install_component (Container &cont, Instance &inst) -{ - DANCE_TRACE( "NodeApplication_Impl::install_component"); - - ::Deployment::MonolithicDeploymentDescription const &mdd = - this->plan_.implementation[inst.mdd_idx]; - ::Deployment::InstanceDeploymentDescription const &idd = - this->plan_.instance[inst.idd_idx]; - - DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::install_home - ") - ACE_TEXT("Starting installation of home %C on node %C\n"), - idd.name.in (), idd.node.in ())); - - this->instances_[inst.idd_idx] = &inst; - - const char *entrypt = 0; - get_property_value (DAnCE::COMPONENT_FACTORY, mdd.execParameter, entrypt); - - if (entrypt == 0) - { - DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::install_component - ") - ACE_TEXT("Unable to find component factory property on component %C\n"), - idd.name.in ())); - throw ::Deployment::InvalidComponentExecParameter (mdd.name.in (), - "No 'component factory' property present on MDD\n"); - } - - // @@TODO: Perhaps need better way to do this. - Components::ConfigValues config; - config.length (mdd.execParameter.length () + idd.configProperty.length ()); - CORBA::ULong pos (0); - - for (CORBA::ULong i = 0; i < mdd.execParameter.length (); ++i) - { - DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("NodeApplication_Impl::install_component - ") - ACE_TEXT("Inserting value for execParameter %C\n"), mdd.execParameter[i].name.in ())); - config[pos++] = new CIAO::ConfigValue_impl (mdd.execParameter[i].name.in (), - mdd.execParameter[i].value); - } - - for (CORBA::ULong i = 0; i < idd.configProperty.length (); ++i) - { - DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("NodeApplication_Impl::install_component - ") - ACE_TEXT("Inserting value for configProperty %C\n"), idd.configProperty[i].name.in ())); - config[pos++] = new CIAO::ConfigValue_impl (idd.configProperty[i].name.in (), - idd.configProperty[i].value); - } - - ::CIAO::Deployment::Container_var ciao_cont = ::CIAO::Deployment::Container::_narrow (cont.ref.in ()); - - if (CORBA::is_nil (ciao_cont.in ())) - { - DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::install_component - ") - ACE_TEXT("Unable to narrow container assigned for component instance %C to one that supports ") - ACE_TEXT("un-homed components.\n"))); - throw ::Deployment::PlanError (idd.name.in (), - "Hosting container does not support unhomed components.\n"); - } - - try - { - DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::install_component - ") - ACE_TEXT("Calling install_component on container. Component id '%C', entrypt '%C', ") - ACE_TEXT("length of config values is %u\n"), - idd.name.in (), entrypt, config.length ())); - - ::Components::CCMObject_var comp = ciao_cont->install_component (idd.name.in (), - entrypt, - config); - - if (CORBA::is_nil (comp)) - { - DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::install_component - ") - ACE_TEXT("Got nil object reference from container while installing component %C on node %C,") - ACE_TEXT("throwing PlanError\n"), - idd.name.in (), idd.node.in ())); - throw ::Deployment::PlanError (idd.name.in (), - "Nil object reference returned from install_component on conainer"); - } - - DANCE_DEBUG (8, (LM_INFO, DLINFO ACE_TEXT("NodeApplication_Impl::install_component - ") - ACE_TEXT("Component '%C' on node '%C' successfully installed\n"), - idd.name.in (), idd.node.in ())); - - inst.ref = CORBA::Object::_narrow (comp); - - DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("NodeApplication_Impl::install_component - ") - ACE_TEXT("Populating attributes for home %C\n"), - idd.name.in ())); - - - ComponentAttributesSetter::SetComponentAttributes (idd.name.in (), - inst.ref.in (), - idd.configProperty, - this->orb_.in ()); - - inst.state = eInstalled; - } - catch (const Components::InvalidConfiguration &) - { - DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::install_component - ") - ACE_TEXT("Error creating component %C on node %C, caught InvalidConfiguration. Throwing exception\n"), - idd.name.in (), idd.node.in ())); - throw ::Deployment::InvalidProperty (idd.name.in (), - "Invalid configuration exception from container"); - } - catch (const CORBA::Exception &ex) - { - DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::install_component - ") - ACE_TEXT("Caught CORBA exception while installing component %C: %C\n"), - idd.name.in (), - ex._info ().c_str ())); - throw ::Deployment::StartError (idd.name.in (), - ex._info ().c_str ()); - } - catch (...) - { - DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::install_component - ") - ACE_TEXT("Caught unknown C++ exception while installing component %C\n"), - idd.name.in ())); - throw ::Deployment::StartError (idd.name.in (), - "Unknown C++ exception"); - } -} - -void -NodeApplication_Impl::install_homed_component (Container &cont, Instance &inst) -{ - DANCE_TRACE("NodeApplication_Impl::install_homed_component (unsigned int index)"); - - ::Deployment::InstanceDeploymentDescription const &idd = - this->plan_.instance[inst.idd_idx]; - this->instances_[inst.idd_idx] = &inst; - - DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("NodeApplication_Impl::install_homed_component - ") - ACE_TEXT("Starting installation of homed component %C on node %C\n"), - idd.name.in (), - idd.node.in ())); - - const char *home_id = 0; - get_property_value (DAnCE::EXPLICIT_HOME, idd.configProperty, home_id); - - DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::install_homed_component - ") - ACE_TEXT("Property %C has value %C\n"), - DAnCE::EXPLICIT_HOME, home_id)); - - - if (home_id == 0) - { - DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("Nodeapplication_Impl::install_homed_component - ") - ACE_TEXT("Apparent homed component %C lacks a %C configProperty, aborting installation\n"), - idd.name.in (), DAnCE::EXPLICIT_HOME)); - throw ::Deployment::PlanError (idd.name.in (), - "No explicit home property on component requiring explicit home."); - } - - DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::install_homed_component - ") - ACE_TEXT("Found explicit home property '%C' for component '%C'\n"), - home_id, - idd.name.in ())); - - Instance *home_inst (0); - for (size_t i = 0; i < cont.homes.size (); ++i) - { - if (ACE_OS::strcmp (home_id, - this->plan_.instance[cont.homes[i].idd_idx].name.in ()) == 0) - { - DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("NodeApplication_Impl::install_homed_component - ") - ACE_TEXT("Found home designated for component '%C'\n"), - idd.name.in ())); - home_inst = &cont.homes[i]; - break; + this->prepare_instance (sub_plan.instance[0].name.in (), + sub_plan); } - } - - if (home_inst == 0) - { - DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::install_homed_component - ") - ACE_TEXT("Unable to find home instance matching %C allocated to same container as component %C\n"), - home_id, - idd.name.in ())); - throw ::Deployment::InvalidProperty (idd.name.in (), - "Unable to find valid home allocated to same container."); - } - - Components::KeylessCCMHome_var home = - Components::KeylessCCMHome::_narrow (home_inst->ref.in ()); - - if (CORBA::is_nil (home.in ())) - { - DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::install_homed_component - ") - ACE_TEXT("Object reference for home '%C' for homed component '%C' is nil\n"), - home_id, - idd.name.in ())); - throw ::Deployment::PlanError (idd.name.in (), - "Installed home for explicitly homed component has nil object reference\n"); - } - - try - { - inst.home = home_inst; - DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("NodeApplication_Impl::install_homed_component - ") - ACE_TEXT("Invoking create_component on home %C for component %C\n"), - home_id, - idd.name.in ())); - - Components::CCMObject_var ccm_obj = home->create_component (); - - if (CORBA::is_nil (ccm_obj)) - { - DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::install_homed_component - ") - ACE_TEXT("Received nil component reference from create_component on home %C ") - ACE_TEXT(" while creating component %C\n"), - home_id, idd.name.in ())); - throw ::Deployment::StartError (idd.name.in (), - "Home for explicitly homed component returned nil"); - } - - inst.ref = CORBA::Object::_narrow (ccm_obj.in ()); - DANCE_DEBUG (8, (LM_INFO, DLINFO ACE_TEXT("NodeApplication_Impl::install_homed_component - ") - ACE_TEXT("Component %C successfully installed in home %C\n"), - idd.name.in (), - home_id)); - - DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("NodeApplication_Impl::install_home - ") - ACE_TEXT("Populating attributes for component %C\n"), - idd.name.in ())); - ComponentAttributesSetter::SetComponentAttributes (idd.name.in (), - inst.ref.in (), - idd.configProperty, - this->orb_.in ()); - inst.state = eInstalled; - } - catch (const Components::CreateFailure &) - { - DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::install_homed_component - ") - ACE_TEXT("Caught CreateFailure exception from home '%C' while installing component '%C'\n"), - home_inst, - idd.name.in ())); - throw ::Deployment::StartError (idd.name.in (), - "Caught CreateFailure exception"); - } - catch (const CORBA::Exception &ex) - { - DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::install_homed_component - ") - ACE_TEXT("Caught CORBA exception while installing component %C in home %C: %C\n"), - idd.name.in (), - home_id, - ex._info ().c_str ())); - throw ::Deployment::StartError (idd.name.in (), - ex._info ().c_str ()); - } - catch (...) - { - DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::install_homed_component - ") - ACE_TEXT("Caught unknown C++ exception while installing component %C in home %C\n"), - idd.name.in (), - home_id)); - throw ::Deployment::StartError (idd.name.in (), - "Unknown C++ exception"); + } } -void -NodeApplication_Impl::create_component_server (size_t index) +void +NodeApplication_Impl::prepare_instance (const char *name, + const Deployment::DeploymentPlan &plan) { - DANCE_TRACE ("NodeApplication_Impl::create_component_server"); + DANCE_TRACE ("NodeApplication_Impl::prepare_instance"); - ComponentServer &server = this->servers_[index]; + ::Deployment::ApplicationManager_var app; try { - DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::create_component_Server - ") - ACE_TEXT("creating component server %u\n"), index)); - ::Components::ConfigValues config_values; - - if (this->servers_[index].properties != 0) - { - DANCE_DEBUG (9, (LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::create_component_Server - ") - ACE_TEXT ("Passing %u properties to component server\n"), - this->servers_[index].properties->length ())); - - config_values.length (this->servers_[index].properties->length ()); - for (CORBA::ULong i = 0; i < this->servers_[index].properties->length (); - ++i) - { - DANCE_DEBUG (9, (LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::create_component_Server - ") - ACE_TEXT ("Copying value <%C>\n"), - (*this->servers_[index].properties)[i].name.in ())); - - config_values[i] = new CIAO::ConfigValue_impl ((*this->servers_[index].properties)[i].name.in (), - (*this->servers_[index].properties)[i].value); - - } - } - - - server.ref = this->activator_->create_component_server (config_values); - DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::create_component_server - ") - ACE_TEXT("component server created\n"))); - } - catch (const ::Components::CreateFailure& ) - { - DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::create_container - ") - ACE_TEXT("Components::Deployment::ServerActivator_var::create_component_server() ") - ACE_TEXT("returned ::Components::CreateFailure exception\n"))); - throw ::Deployment::StartError("", - "Received a ::Components::CreateFailure exception while creating component server."); - } - catch (const ::Components::Deployment::InvalidConfiguration& ) - { - DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::create_container - ") - ACE_TEXT("Components::Deployment::ServerActivator_var::create_component_server() ") - ACE_TEXT("returned ::Components::Deployment::InvalidConfiguration exception\n"))); - throw ::Deployment::InvalidProperty("", - "::Components::Deployment::InvalidConfiguration exception caught while creating server"); + app = this->localities_[name]->preparePlan (plan, + 0); + DANCE_DEBUG (6, (LM_DEBUG, DLINFO + "NodeApplication_Impl::prepare_instance - " + "Locality <%C> successfully prepared.\n", + name)); } - - try - { - for (size_t i = 0; i < server.containers.size (); ++i) - { - this->create_container (index, i); - } - } - catch (...) - { - DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::create_container - ") - ACE_TEXT("Caught exception whilst creating container; re-throwing.\n"))); - throw; - } -} - -void -NodeApplication_Impl::store_instance_ior (Instance &inst) -{ - DANCE_TRACE ("NodeApplication_Impl::store_instance_ior"); - - const char *name = 0; - - if (get_property_value (DAnCE::REGISTER_NAMING, - this->plan_.instance[inst.idd_idx].configProperty, - name)) + catch (CORBA::Exception &ex) { - DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::store_instance_ior - ") - ACE_TEXT("Storing instance '%C' object reference in Naming Service as %C\n"), - this->plan_.instance[inst.idd_idx].name.in (), - name)); - - Name_Utilities::bind_object (name, inst.ref.in (), this->instance_nc_.in ()); - } - - if (get_property_value (DAnCE::INSTANCE_IOR_FILE, - this->plan_.instance[inst.idd_idx].configProperty, - name)) - { - CORBA::String_var ior = this->orb_->object_to_string (inst.ref.in ()); - Name_Utilities::write_ior (ACE_TEXT_CHAR_TO_TCHAR (name), - (ior.in ())); - } -} - -void -NodeApplication_Impl::create_container (size_t server, size_t cont_idx) -{ - DANCE_TRACE ("NodeApplication_Impl::create_container"); - - Container &container = this->servers_[server].containers[cont_idx]; - - DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("NodeApplication_Impl::create_container - ") - ACE_TEXT("Creating container\n"))); - // TODO: Need to create configvalues - Components::ConfigValues cvs; - - container.ref = this->servers_[server].ref->create_container (cvs); - - DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("NodeApplication_Impl::create_container - ") - ACE_TEXT("Configuring %u homes on container %u on server %u\n"), - container.homes.size (), - server, cont_idx)); - - // Configure homes first - for (size_t i = 0; i < container.homes.size (); ++i) - { - this->install_home (container, container.homes[i]); - this->store_instance_ior (container.homes[i]); + DANCE_ERROR (2, (LM_ERROR, DLINFO + "NodeApplication_Impl::prepare_instance - " + "Caugt unexpected CORBA exception while invoking preparePlan %C\n", + ex._info ().c_str ())); } - DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("NodeApplication_Impl::create_container - ") - ACE_TEXT("Configuring %u components on container %u on server %u\n"), - container.components.size (), - server, - cont_idx)); - - // Configure components - for (size_t i = 0; i < container.components.size (); ++i) + if (CORBA::is_nil (app.in ())) { - switch (container.components[i].type) - { - case eComponent: - this->install_component (container, container.components[i]); - break; - case eHomedComponent: - this->install_homed_component (container, container.components[i]); - break; - default: - break; - } - this->store_instance_ior (container.components[i]); + DANCE_ERROR (1, (LM_ERROR, DLINFO "NodeApplication_Impl::prepare_instance - " + "Error: Didn't get a valid reference back from LM preparePlan " + "for locality %C\n", + name)); + + // For the time being, we don't need to cache this reference. + // it's the same as the reference we used to invoke preparePlan. } + } -NodeApplication_Impl::ColocationMap -NodeApplication_Impl::create_colocation_groups (void) +void +NodeApplication_Impl::start_launch_instances (const Deployment::Properties &prop, + Deployment::Connections_out providedReference) { - DANCE_TRACE ("NodeApplication_Impl::create_colocation_groups"); - - ColocationMap retval; - this->servers_.max_size (this->plan_.localityConstraint.length () + 1); - - size_t num_servers = 0; - - for (CORBA::ULong i = 0; i < this->plan_.instance.length (); ++i) - { - retval [this->plan_.instance[i].name.in ()] = -1; - } - - for (CORBA::ULong i = 0; i < this->plan_.localityConstraint.length (); ++i) - { - if (this->plan_.localityConstraint[i].constraint == ::Deployment::PlanNoConstraint) + DANCE_TRACE ("NodeApplication_Impl::start_launch_instances"); + Deployment::Connections *tmp (0); + + ACE_NEW_THROW_EX (tmp, + Deployment::Connections (this->plan_.connection.length ()), + CORBA::NO_MEMORY ()); + + Deployment::Connections_var retval (tmp); + + for (LOCALITY_MAP::const_iterator i = this->localities_.begin (); + i != this->localities_.end (); ++i) + { + DANCE_DEBUG (4, (LM_INFO, DLINFO + "NodeApplication_Impl::start_launch_instances - " + "StartLaunching locality <%C>\n", + i->first.c_str ())); + + try { - DANCE_DEBUG (10, (LM_INFO, DLINFO - ACE_TEXT ("NodeApplication_Impl::create_colocation_groups - ") - ACE_TEXT ("Skipping NoConstraint Colocation group\n"))); - continue; + i->second->startLaunch (prop, + providedReference); } - else if (this->plan_.localityConstraint[i].constraint != ::Deployment::PlanSameProcess) + catch (Deployment::PlanError &ex) { DANCE_ERROR (1, (LM_ERROR, DLINFO - ACE_TEXT ("NodeApplication_Impl::create_colocation_groups - ") - ACE_TEXT ("Error: On locality constraint %u, unsupported locality constraint.\n"), - i)); - continue; - } - - ::CORBA::ULongSeq const &instances = - this->plan_.localityConstraint[i].constrainedInstanceRef; - - this->servers_.size (num_servers + 1); - - for (CORBA::ULong j = 0; j < instances.length (); ++j) - { - std::string id = this->plan_.instance[instances[j]].name.in (); - - DANCE_DEBUG (8, (LM_INFO, DLINFO - ACE_TEXT ("NodeApplication_Impl::create_colocation_groups - ") - ACE_TEXT ("Instance <%C> allocated to component server %u\n"), - id.c_str (), num_servers)); - - retval[id] = num_servers; - - CORBA::ULong impl = this->plan_.instance[instances[j]].implementationRef; - - if (this->get_instance_type (this->plan_.implementation[impl].execParameter) == - eComponentServer) - { - DANCE_DEBUG (8, (LM_INFO, DLINFO - ACE_TEXT ("NodeApplication_Impl::create_colocation_groups - ") - ACE_TEXT ("Found component server instance\n"))); - - this->servers_[num_servers].properties = &this->plan_.instance[instances[j]].configProperty; - } - } - - ++num_servers; - } - - bool create_default_server (false); - - for (ColocationMap::iterator i = retval.begin (); - i != retval.end (); ++i) - { - if (i->second == -1) - { - if (!create_default_server) - { - DANCE_DEBUG (8, (LM_INFO, DLINFO - ACE_TEXT ("NodeApplication_Impl::create_colocation_groups - ") - ACE_TEXT ("Creating default colocation group.\n"))); - create_default_server = true; - } - - DANCE_DEBUG (8, (LM_INFO, DLINFO - ACE_TEXT ("NodeApplication_Impl::create_colocation_groups - ") - ACE_TEXT ("Assigning instance <%C> to default colocation group.\n"), - i->first.c_str ())); - i->second = num_servers; + "NodeApplication_Impl::start_launch_instances - " + "Caught PlanError Exception %C:%C\n", + ex.name.in (), + ex.reason.in ())); + throw; } - else + catch (CORBA::Exception &ex) { - + DANCE_ERROR (1, (LM_ERROR, DLINFO + "NodeApplication_Impl::start_launch_instances - " + "Caught CORBA Exception %C\n", + ex._info ().c_str ())); + throw; } } - - if (create_default_server) - { - ++num_servers; - } - - this->servers_.size (num_servers); - - return retval; } void -NodeApplication_Impl::init_components() +NodeApplication_Impl::finishLaunch (const ::Deployment::Connections & providedReference, + ::CORBA::Boolean start) { - DANCE_TRACE ("NodeApplication_Impl::init_components"); - - Components::ConfigValues config_values; - DANCE_DEBUG (6, (LM_DEBUG, DLINFO - ACE_TEXT("NodeApplication_Impl::init_components - ") - ACE_TEXT("Configuring %u component/home instances\n"), - this->plan_.instance.length())); - - if (this->plan_.instance.length () == 0) - return; - - ColocationMap colocation_map = this->create_colocation_groups (); - - // @@TODO: For the moment, we are only going to support a single container per server. - // in the future, we will need to determine how many containers we need per server. - for (size_t i = 0; i < this->servers_.size (); ++i) - { - this->servers_[i].containers.size (1); - } + DANCE_TRACE ("NodeApplication_Impl::finishLaunch"); - for (CORBA::ULong i = 0; i < this->plan_.instance.length(); i++) + + for (LOCALITY_MAP::const_iterator i = this->localities_.begin (); + i != this->localities_.end (); ++i) { + DANCE_DEBUG (4, (LM_INFO, DLINFO + "NodeApplication_Impl::finish_launch_instances - " + "FinishLaunching locality <%C>\n", + i->first.c_str ())); + try { - CORBA::ULong impl = this->plan_.instance[i].implementationRef; - // Determine type from implementation properties, then from instance properties. - EInstanceType type = - this->get_instance_type (this->plan_.implementation[impl].execParameter); - if (type == eInvalid) - type = this->get_instance_type (this->plan_.instance[i].configProperty); - if (type == eInvalid) - continue; - - switch (type) - { - case eHome: - { - DANCE_DEBUG (6, (LM_DEBUG, DLINFO - ACE_TEXT("NodeApplication_Impl::init_components - ") - ACE_TEXT("Allocating instance %C as a home\n"), - this->plan_.instance[i].name.in ())); - size_t const svr = colocation_map[this->plan_.instance[i].name.in ()]; - size_t const pos = this->servers_[svr].containers[0].homes.size (); - - //append_properties (this->servers_[svr].properties, this->plan_.instance[i].configProperty); - - this->servers_[svr].containers[0].homes.size (pos + 1); - this->servers_[svr].containers[0].homes[pos] = Instance (eHome, - &this->servers_[svr].containers[0], - i, - this->plan_.instance[i].implementationRef); - break; - } - case eComponent: - { - DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::init_components - ") - ACE_TEXT("Allocating instance %C as a standalone component\n"), - this->plan_.instance[i].name.in ())); - size_t const svr = colocation_map[this->plan_.instance[i].name.in ()]; - size_t const pos = this->servers_[svr].containers[0].components.size (); - //append_properties (this->servers_[svr].properties, this->plan_.instance[i].configProperty); - this->servers_[svr].containers[0].components.size (pos + 1); - this->servers_[svr].containers[0].components[pos] = Instance (eComponent, - &this->servers_[svr].containers[0], - i, - this->plan_.instance[i].implementationRef); - break; - } - case eHomedComponent: - { - DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::init_components - ") - ACE_TEXT("Allocating instance %C as a home managed component\n"), - this->plan_.instance[i].name.in ())); - size_t const svr = colocation_map[this->plan_.instance[i].name.in ()]; - size_t const pos = this->servers_[svr].containers[0].components.size (); - //append_properties (this->servers_[svr].properties, this->plan_.instance[i].configProperty); - this->servers_[svr].containers[0].components.size (pos + 1); - this->servers_[svr].containers[0].components[pos] = Instance (eHomedComponent, - &this->servers_[svr].containers[0], - i, - this->plan_.instance[i].implementationRef); - break; - } - case eComponentServer: - { - size_t const svr = colocation_map[this->plan_.instance[i].name.in ()]; - this->servers_[svr].instance = Instance (eComponentServer, - 0, - i, - this->plan_.instance[i].implementationRef); - this->instances_[i] = &this->servers_[svr].instance; - break; - } - - default: - { - DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT(" NodeApplication_Impl::init_components - ") - ACE_TEXT("get_instance_type function returned invalid instance type\n"))); - throw ::Deployment::InvalidProperty (this->plan_.instance[i].name.in (), - "Unable to affirmatively determine instance type"); - } - } // switch + i->second->finishLaunch (providedReference, + start); } - catch (...) + catch (CORBA::Exception &ex) { DANCE_ERROR (1, (LM_ERROR, DLINFO - ACE_TEXT("Exception was thrown while sorting instance \"%C\".\n"), - this->plan_.instance[i].name.in())); + "NodeApplication_Impl::finish_launch_instances - " + "Caught CORBA Exception %C\n", + ex._info ().c_str ())); throw; } } - - DANCE_DEBUG (9, (LM_TRACE, DLINFO - ACE_TEXT("NodeApplication_Impl::init_components - ") - ACE_TEXT("Creating component servers and installing components.\n"))); - - for (size_t i = 0; i < this->servers_.size (); ++i) - { - DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("NodeApplication_Impl::init_components - ") - ACE_TEXT("Creating component server with index %u\n"), i)); - this->create_component_server (i); - } - - - DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::init_components - finished\n"))); } void -NodeApplication_Impl::passivate_components() +NodeApplication_Impl::start () { - DANCE_TRACE ("NodeApplication_Impl::passivate_components()"); - - bool error (false); - ::Deployment::StopError exception ("unfilled", "unfilled passivate components"); + DANCE_TRACE( "NodeApplication_Impl::start"); - for (INSTANCES::size_type k = 0; k < this->instances_.size (); ++k) + for (LOCALITY_MAP::const_iterator i = this->localities_.begin (); + i != this->localities_.end (); ++i) { - if (this->instances_[k]->type == eHome || - this->instances_[k]->type == eComponentServer || - this->instances_[k]->type == eInvalid) - continue; - + DANCE_DEBUG (4, (LM_INFO, DLINFO + "NodeApplication_Impl::start - " + "Starting locality <%C>\n", + i->first.c_str ())); + try { - CIAO::Deployment::Container_var cont = - CIAO::Deployment::Container::_narrow (this->instances_[k]->container->ref.in()); - - if (CORBA::is_nil (this->instances_[k]->container->ref.in ())) - { - DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::start - ") - ACE_TEXT("Failed to narrow object reference for container managing ") - ACE_TEXT("component instance %C to a CIAO container reference\n"), - this->plan_.instance[this->instances_[k]->idd_idx].name.in ())); - test_and_set_exception (error, exception, - this->plan_.instance[this->instances_[k]->idd_idx].name.in (), - "Failed to narrow managing container to CIAO container type"); - continue; - } - - if (this->instances_[k]->state == eActive) - { - Components::CCMObject_var comp (Components::CCMObject::_narrow (this->instances_[k]->ref)); - cont->passivate_component (comp.in ()); - this->instances_[k]->state = ePassive; - } - else - { - DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::start - ") - ACE_TEXT("Attempting to passivate non-active component %C\n"), - this->plan_.instance[this->instances_[k]->idd_idx].name.in ())); - test_and_set_exception (error, exception, - this->plan_.instance[this->instances_[k]->idd_idx].name.in (), - "Attempting to passivate non-active component."); - continue; - } - - DANCE_DEBUG (8, (LM_INFO, DLINFO ACE_TEXT("NodeApplication_Impl::passivate_components - ") - ACE_TEXT("Component %C successfully passivated.\n"), - this->plan_.instance[this->instances_[k]->idd_idx].name.in ())); - } - catch (const CORBA::Exception &ex) - { - DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::passivate_components - ") - ACE_TEXT("Caught CORBA exception from ccm_passivate on component %C: %C\n"), - this->plan_.instance[this->instances_[k]->idd_idx].name.in (), - ex._info ().c_str ())); - if (!error) - { - error = true; - exception.name = this->plan_.instance[this->instances_[k]->idd_idx].name.in (); - exception.reason = ex._info ().c_str (); - } + i->second->start (); } - catch (...) + catch (CORBA::Exception &ex) { - DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::passivate_components - ") - ACE_TEXT("Caught unknown C++ exception from ccm_passivate on component %C\n"), - this->plan_.instance[this->instances_[k]->idd_idx].name.in ())); - if (!error) - { - error = true; - exception.name = this->plan_.instance[this->instances_[k]->idd_idx].name.in (); - exception.reason = "Unknown C++ exception"; - } + DANCE_ERROR (1, (LM_ERROR, DLINFO + "NodeApplication_Impl::start - " + "Caught CORBA Exception %C\n", + ex._info ().c_str ())); + throw; } } - - if (error) - throw exception; } -void -NodeApplication_Impl::remove_components() +void +NodeApplication_Impl::remove_instances (void) { - DANCE_TRACE ("NodeApplication_Impl::remove_components()"); - - bool error (false); - ::Deployment::StopError exception ("unfilled", "unfilled remove_components"); - - // Removing components first. - for (INSTANCES::size_type k = 0; k < this->instances_.size (); ++k) - { + DANCE_TRACE ("NodeApplication_Impl::remove_instances"); + + ::Deployment::StopError final_exception; + bool flag (false); + + + for (LOCALITY_MAP::iterator i = this->localities_.begin (); + i != this->localities_.end (); ++i) + { + DANCE_DEBUG (4, (LM_INFO, DLINFO + "NodeApplication_Impl::remove_instances - " + "Removing locality <%C>\n", + i->first.c_str ())); + try { - if (this->instances_[k]->type == eInvalid || - this->instances_[k]->type == eComponentServer || - this->instances_[k]->type == eHome) - continue; - - if (this->instances_[k]->state != ePassive) - DANCE_DEBUG (6, (LM_WARNING, DLINFO ACE_TEXT("NodeApplication_Impl::remove_components - ") - ACE_TEXT("Attempting to remove component that is not passive.\n"))); - - if (this->instances_[k]->type == eComponent) - { - if (this->instances_[k]->container == 0) - { - DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::remove_components - ") - ACE_TEXT("Container element in component data structure for '%C' is nill\n"), - this->plan_.instance[this->instances_[k]->idd_idx].name.in () - )); - - test_and_set_exception (error, - exception, - this->plan_.instance[this->instances_[k]->idd_idx].name.in (), - "Container element in component data structure is nil\n"); - this->instances_[k]->state = eInvalidState; - continue; - } - - CIAO::Deployment::Container_var ciao_container = - CIAO::Deployment::Container::_narrow (this->instances_[k]->container->ref.in ()); - - if (CORBA::is_nil (ciao_container.in ())) - { - DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::remove_components - ") - ACE_TEXT("Attempted to remove un-homed component from unsupported container\n"))); - - test_and_set_exception (error, exception, - this->plan_.instance[this->instances_[k]->idd_idx].name.in (), - "Attempted to remove un-homed component from unsupported container\n"); - this->instances_[k]->state = eInvalidState; - continue; - } - - ciao_container->remove_component (Components::CCMObject::_narrow (this->instances_[k]->ref.in ())); - } - else - { - Components::CCMHome_var home = - Components::CCMHome::_narrow (this->instances_[k]->home->ref.in ()); - - if (CORBA::is_nil (home)) - { - DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::remove_components - ") - ACE_TEXT("Object reference for home %C, managing component %C is nil.\n"), - this->plan_.instance[this->instances_[k]->home->idd_idx].name.in (), - this->plan_.instance[this->instances_[k]->idd_idx].name.in ())); - test_and_set_exception (error, - exception, - this->plan_.instance[this->instances_[k]->idd_idx].name.in (), - "Managing home's object reference is invalid."); - this->instances_[k]->state = eInvalidState; - continue; - } - - home->remove_component (Components::CCMObject::_narrow (this->instances_[k]->ref.in ())); - } - - - this->instances_[k]->state = eRemoved; - - DANCE_DEBUG (8, (LM_INFO, DLINFO ACE_TEXT("NodeApplication_Impl::remove_components - ") - ACE_TEXT("Component %C successfully removed.\n"), - this->plan_.instance[this->instances_[k]->idd_idx].name.in ())); - - } - catch (const CORBA::Exception &ex) - { - DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::remove_components - ") - ACE_TEXT("Caught CORBA exception removing on component %C: %C\n"), - this->plan_.instance[this->instances_[k]->idd_idx].name.in (), - ex._info ().c_str ())); - test_and_set_exception (error, - exception, - this->plan_.instance[this->instances_[k]->idd_idx].name.in (), - exception.reason = ex._info ().c_str ()); - } - catch (...) - { - DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::remove_components - ") - ACE_TEXT("Caught unknown C++ exception from ccm_remove on component %C\n"), - this->plan_.instance[this->instances_[k]->idd_idx].name.in ())); - test_and_set_exception (error, - exception, - this->plan_.instance[this->instances_[k]->idd_idx].name.in (), - "Unknown C++ exception"); - } - } - - for (INSTANCES::size_type k = 0; k < this->instances_.size (); ++k) - { - try - { - if (this->instances_[k]->type != eHome) - continue; - - DANCE_ERROR (1, (LM_TRACE, DLINFO ACE_TEXT("NodeApplication_Impl::remove_components - ") - ACE_TEXT("Removing home %C\n"), - this->plan_.instance[this->instances_[k]->idd_idx].name.in ())); - - if (this->instances_[k]->container == 0 || - CORBA::is_nil (this->instances_[k]->container->ref.in ())) - { - DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::remove_components - ") - ACE_TEXT("Home %C lacks an associated container reference\n"), - this->plan_.instance[this->instances_[k]->idd_idx].name.in ())); - test_and_set_exception (error, - exception, - this->plan_.instance[this->instances_[k]->idd_idx].name.in (), - "Didn't have a valid container reference"); - continue; - } - - Components::CCMHome_var home = Components::CCMHome::_narrow (this->instances_[k]->ref.in ()); - this->instances_[k]->container->ref->remove_home (home.in ()); - - DANCE_DEBUG (8, (LM_INFO, DLINFO ACE_TEXT("NodeApplication_Impl::remove_components - ") - ACE_TEXT("Successfully uninstalled home %C\n"), - this->plan_.instance[this->instances_[k]->idd_idx].name.in ())); - } - catch (const CORBA::Exception &ex) - { - DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::remove_components - ") - ACE_TEXT("Caught CORBA exception removing home %C: %C\n"), - this->plan_.instance[this->instances_[k]->idd_idx].name.in (), - ex._info ().c_str ())); - test_and_set_exception (error, - exception, - this->plan_.instance[this->instances_[k]->idd_idx].name.in (), - exception.reason = ex._info ().c_str ()); - } - catch (...) - { - DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::remove_components - ") - ACE_TEXT("Caught unknown C++ exception from while removing home %C\n"), - this->plan_.instance[this->instances_[k]->idd_idx].name.in ())); - test_and_set_exception (error, - exception, - this->plan_.instance[this->instances_[k]->idd_idx].name.in (), - "Unknown C++ exception"); - } - } - -if (error) - throw exception; -} - -NodeApplication_Impl::EInstanceType -NodeApplication_Impl::get_instance_type (const ::Deployment::Properties& prop) const -{ - DANCE_TRACE ("NodeApplication_Impl::get_instance_type"); + CORBA::Any ref; + ref <<= DAnCE::LocalityManager::_duplicate (i->second); + + i->second->destroyApplication (0); - for (CORBA::ULong i = 0; i < prop.length (); ++i) - { - DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("NodeApplication_Impl::get_instance_type - ") - ACE_TEXT("Checking property %C\n"), - prop[i].name.in ())); - - if (ACE_OS::strcmp (prop[i].name.in (), - DAnCE::HOME_FACTORY) == 0) - { - DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("NodeApplication_Impl::get_instance_type - ") - ACE_TEXT("Found Home type\n"))); - return eHome; + this->handler_.remove_instance (this->plan_, + 0, /* not needed at this time */ + ref); + } - if (ACE_OS::strcmp (prop[i].name.in (), - DAnCE::COMPONENT_FACTORY) == 0) + catch (::Deployment::StopError &ex) { - DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("NodeApplication_Impl::get_instance_type - ") - ACE_TEXT("Found unmanaged component type.\n"))); - return eComponent; - } - if (ACE_OS::strcmp (prop[i].name.in (), - DAnCE::EXPLICIT_HOME) == 0) - { - DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("NodeApplication_Impl::get_instance_type - ") - ACE_TEXT("Found explicit home component type.\n"))); - return eHomedComponent; - } - - if (ACE_OS::strcmp (prop[i].name.in (), - DAnCE::IMPL_TYPE) == 0) - { - const char *val; - if (get_property_value (DAnCE::IMPL_TYPE, - prop, - val) && - ACE_OS::strcmp (val, - DAnCE::SERVER_EXECUTABLE) == 0) - { - DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("NodeApplication_Impl::get_instance_type - ") - ACE_TEXT("Found component server type.\n"))); - return eComponentServer; - } - } - } - - DANCE_ERROR (1, (LM_INFO, DLINFO ACE_TEXT("NodeApplication_Impl::get_instance_type - ") - ACE_TEXT("Unable to determine instance type, instance will be ignored.\n"))); - return eInvalid; -} - -::Deployment::Connections* -NodeApplication_Impl::getAllConnections() -{ - DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::getAllConnections - started\n"))); - - ::Deployment::Connections_var conn; - ACE_NEW_THROW_EX (conn, - ::Deployment::Connections (), - CORBA::NO_MEMORY ()); - unsigned int index = 0; - - for (CORBA::ULong i = 0; i < this->plan_.connection.length(); i++) - { - for (CORBA::ULong j = 0; j < this->plan_.connection[i].internalEndpoint.length(); j++) - { - if (this->plan_.connection[i].internalEndpoint[j].provider) - { - index = conn->length (); - conn->length (index + 1); - (*conn) [index].name = CORBA::string_dup (this->plan_.connection[i].name.in()); - - ACE_CString const inst_name = - this->plan_.instance[this->plan_.connection[i].internalEndpoint[j].instanceRef].name.in(); - - DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::getAllConnections - ") - ACE_TEXT("Found provider '%C' for connection '%C'\n"), - this->plan_.connection[i].name.in (), - inst_name.c_str ())); - - Components::CCMObject_var obj = - Components::CCMObject:: - _narrow (this->instances_[this->plan_.connection[i].internalEndpoint[j].instanceRef]->ref.in ()); - - (*conn) [index].endpoint.length (1L); - switch (this->plan_.connection[i].internalEndpoint[j].kind) - { - case ::Deployment::Facet: - { - try - { - ACE_CString const name = this->plan_.connection[i].internalEndpoint[j].portName.in(); - if (name.compare ("supports") != 0) - { - if (this->is_local_facet (this->plan_.connection[i])) - { - DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::getAllConnections - ") - ACE_TEXT("Found local facet for connection %C endpoint %C started\n"), - this->plan_.connection[i].name.in(), - name.c_str ())); - (*conn) [index].endpoint[0] = CORBA::Object::_duplicate (obj.in()); - } - else - { - DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::getAllConnections - ") - ACE_TEXT("provide_facet for connection %C endpoint %C started\n"), - this->plan_.connection[i].name.in(), - name.c_str ())); - (*conn) [index].endpoint[0] = obj->provide_facet (name.c_str()); - DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::getAllConnections - ") - ACE_TEXT("provide_facet for connection %C endpoint %C finished\n"), - this->plan_.connection[i].name.in(), - name.c_str ())); - } - } - else - { - DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::getAllConnections - ") - ACE_TEXT("provide_facet for connection %C endpoint %C started\n"), - this->plan_.connection[i].name.in(), - name.c_str ())); - (*conn) [index].endpoint[0] = CORBA::Object::_duplicate (obj.in()); - } - DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::getAllConnections - provide_facet finished\n"))); - } - catch (const ::Components::InvalidName& ) - { - DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::getAllConnections - ") - ACE_TEXT("Components::CCMObject_var::provide_facet() returned ") - ACE_TEXT("::Components::InvalidName exception for connection %C and port %C\n"), - this->plan_.connection[i].name.in (), - this->plan_.connection[i].internalEndpoint[j].portName.in ())); - throw ::Deployment::InvalidProperty(this->plan_.connection[i].name.in (), - "Container returned InvalidName"); - } - break; - } - - case ::Deployment::EventConsumer: - { - try - { - DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::getAllConnections - ") - ACE_TEXT("get_consumer for connection %C endpoint %C started\n"), - this->plan_.connection[i].name.in(), - this->plan_.connection[i].internalEndpoint[j].portName.in())); - (*conn) [index].endpoint[0] = obj->get_consumer (this->plan_.connection[i].internalEndpoint[j].portName.in()); - DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::getAllConnections - ") - ACE_TEXT("get_consumer finished\n"))); - } - catch (const ::Components::InvalidName& ) - { - DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT(" NodeApplication_Impl::getAllConnections - ") - ACE_TEXT("Components::CCMObject_var::get_consumer() returned ") - ACE_TEXT("::Components::InvalidName exception for connection %C and port %C\n"), - this->plan_.connection[i].name.in (), - this->plan_.connection[i].internalEndpoint[j].portName.in ())); - throw ::Deployment::InvalidProperty(this->plan_.connection[i].name.in (), - "Container returned InvalidName exception"); - } - break; - } - default: - { - DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT(" NodeApplication_Impl::getAllConnections - ") - ACE_TEXT("Connection.InternalEndPoint.Kind is not a ") - ACE_TEXT("Deployment::Facet or Deployment::EventConsumer\n"))); - throw ::Deployment::InvalidProperty(this->plan_.connection[i].name.in (), - "Invalid connection type, should be Facet or EventConsumer"); - } - } - } - } - } - DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::getAllConnections - finished\n"))); - return conn._retn(); -} - -void -NodeApplication_Impl::finishLaunch (const ::Deployment::Connections & providedReference, - ::CORBA::Boolean start) -{ - DANCE_TRACE ("NodeApplication_Impl::finishLaunch"); - - DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::finishLaunch - ") - ACE_TEXT("started for connections sequence with length %d and plan size %d\n"), - providedReference.length(), - this->plan_.connection.length())); - -#ifdef GEN_OSTREAM_OPS - { - std::ostringstream pr_stream; - pr_stream << providedReference << std::endl; - DANCE_DEBUG (9, (LM_TRACE, DLINFO "NodeApplication_Impl::finishLaunch - Provided references: %C\n", - pr_stream.str ().c_str ())); - } -#endif /* GEN_OSTREAM_OPS */ - - for (CORBA::ULong j = 0; j < this->plan_.connection.length(); ++j) - { - CORBA::ULong inst (this->plan_.connection[j].internalEndpoint[0].instanceRef); - - DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("NodeApplication_Impl::finishLaunch - ") - ACE_TEXT("Connection %C, instance %u\n"), - this->plan_.connection[j].name.in (), - inst)); - -#ifdef GEN_OSTREAM_OPS - { - std::ostringstream conn_stream; - conn_stream << this->plan_.connection[j] << std::endl; - DANCE_DEBUG (9, (LM_TRACE, "NodeApplication_Impl::finishLaunch - Local connections: %C\n", conn_stream.str ().c_str ())); - } -#endif /* GEN_OSTREAM_OPS */ - - Components::CCMObject_var obj = - Components::CCMObject::_narrow (this->instances_[inst]->ref.in ()); - - if (CORBA::is_nil (obj.in ())) - { - DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::finishLaunch - ") - ACE_TEXT("Unable to narrow apparent component instance reference to CCMObject for instance '%C'\n"), - this->plan_.instance[inst].name.in ())); - throw ::Deployment::InvalidConnection (this->plan_.instance[inst].name.in (), - "Unable to narrow apparent component instance reference to CCMObject\n"); - } - - ::Deployment::PlanConnectionDescription const &conn = this->plan_.connection[j]; - - ACE_CString const name = conn.name.in(); - - for (CORBA::ULong i = 0; i < providedReference.length(); ++i) - { - if (name.compare (providedReference[i].name.in()) == 0) - { - try - { - switch (conn.internalEndpoint[0].kind) - { - case ::Deployment::Facet: - { - DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::finishLaunch - ") - ACE_TEXT("Set for facet [%C]\n"), name.c_str ())); - Components::CCMObject_var ext_inst; - try - { - if (0 == conn.externalReference.length()) - { - if (conn.internalEndpoint.length () == 2 && - (conn.internalEndpoint[1].kind == ::Deployment::MultiplexReceptacle || - conn.internalEndpoint[1].kind == ::Deployment::SimplexReceptacle)) - { - obj = Components::CCMObject:: - _narrow (this->instances_[conn.internalEndpoint[1].instanceRef]->ref.in ()); - - if (this->is_local_facet (conn)) - { - ::Components::CCMObject_var facet = - ::Components::CCMObject::_narrow (providedReference[i].endpoint[0].in ()); - - ::Components::CCMObject_var recep = - ::Components::CCMObject::_narrow (this->instances_[conn.internalEndpoint[1].instanceRef]->ref.in ()); - - ::CIAO::Deployment::Container_var cont = - ::CIAO::Deployment::Container::_narrow (this->instances_[conn.internalEndpoint[1].instanceRef]->container->ref.in ()); - - this->connect_receptacle (conn, - facet.in (), - conn.internalEndpoint[0].portName.in (), - obj.in (), - conn.internalEndpoint[1].portName.in(), - cont.in ()); - } - else - { - this->connect_receptacle (conn, - obj.in (), - "", - providedReference[i].endpoint[0].in(), - conn.internalEndpoint[1].portName.in(), - ::CIAO::Deployment::Container::_nil()); - } - } - break; - } - CORBA::Object_var tmp = - this->orb_->string_to_object (conn.externalReference[0].location.in()); - ext_inst = Components::CCMObject::_narrow (tmp); - if (CORBA::is_nil (ext_inst.in())) - { - DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::finishLaunch - ") - ACE_TEXT("facet for [%C] can't be narrowed\n"), name.c_str ())); - break; - } - this->connect_receptacle_ext (ext_inst, - conn.externalReference[0].portName.in(), - providedReference[i].endpoint[0].in()); - } - catch (const CORBA::OBJECT_NOT_EXIST&) - { - // @@TODO: Shouldn't this be an error?!? - break; - } - catch (const CORBA::TRANSIENT&) - { - // @@TODO: Shouldn't this be an error?!? - break; - } - - break; - } - - case ::Deployment::EventConsumer: - { - DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::finishLaunch - set for consumer\n"))); - Components::CCMObject_var ext_inst; - try - { - if (0 == conn.externalReference.length()) - { - break; - } - CORBA::Object_var tmp = - this->orb_->string_to_object (conn.externalReference[0].location.in()); - ext_inst = Components::CCMObject::_narrow (tmp); - if (CORBA::is_nil (ext_inst.in())) - { - DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT(" NodeApplication_Impl::finishLaunch - ") - ACE_TEXT("reference for %C can't be narrowed\n"), name.c_str ())); - throw ::Deployment::InvalidConnection(conn.name.in (), - "Couldn't narrow reference for external reference"); - break; - } - try - { - // Check is connection kind is consumer to emitter? - this->connect_emitter_ext (ext_inst, - conn.externalReference[0].portName.in(), - providedReference[i].endpoint[0].in()); - } - catch (const ::Components::InvalidName&) - { - DANCE_DEBUG (6, (LM_DEBUG, DLINFO - ACE_TEXT("NodeApplication_Impl::finishLaunch - ") - ACE_TEXT("connect_emitter_ext resulted in InvalidName, trying connect_publisher\n"))); - // No this is consumer to publisher - this->connect_publisher (ext_inst, - conn.externalReference[0].portName.in(), - providedReference[i].endpoint[0].in()); - } - } - catch (const CORBA::OBJECT_NOT_EXIST&) - { - break; - } - catch (const CORBA::TRANSIENT&) - { - break; - } - break; - } - case ::Deployment::MultiplexReceptacle: - case ::Deployment::SimplexReceptacle: - { - // What we should do with Cookie, returned from connect call??? - DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::finishLaunch - Set for receptacle\n"))); - if (CORBA::is_nil (providedReference[i].endpoint[0].in ())) - { - DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT ("NodeApplication_Impl::finishLaunch - ") - ACE_TEXT ("Reference provided from DomainApplication was nil.\n"))); - throw Deployment::InvalidConnection ("", - "Nil provided reference from DomainApplication"); - } - - ::Components::CCMObject_var facet = - ::Components::CCMObject::_narrow (providedReference[i].endpoint[0].in ()); - - if (this->is_local_facet (conn)) - { - ::CIAO::Deployment::Container_var cont = - ::CIAO::Deployment::Container::_narrow (this->instances_[conn.internalEndpoint[1].instanceRef]->container->ref.in ()); - this->connect_receptacle (conn, - facet.in (), - conn.internalEndpoint[1].portName.in (), - obj.in(), - conn.internalEndpoint[0].portName.in(), - cont.in ()); - } - else - { - CORBA::Object_var portref = CORBA::Object::_duplicate (providedReference[i].endpoint[0].in()); - - if (0 != conn.externalReference.length ()) - { - ::Components::CCMObject_var facet = - ::Components::CCMObject::_narrow (providedReference[i].endpoint[0].in ()); - - if (!CORBA::is_nil (facet.in ())) - portref = facet->provide_facet (conn.externalReference[0].portName.in ()); - } - - this->connect_receptacle (conn, - obj.in (), - "", - portref.in (), - conn.internalEndpoint[0].portName.in(), - ::CIAO::Deployment::Container::_nil()); - - } - - break; - } - case ::Deployment::EventEmitter: - { - DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::finishLaunch - set for emitter\n"))); - this->connect_emitter (obj.in(), - conn.internalEndpoint[0].portName.in(), - providedReference[i].endpoint[0].in()); - break; - } - case ::Deployment::EventPublisher: - { - DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::finishLaunch - set for publisher\n"))); - this->connect_publisher (obj.in(), - conn.internalEndpoint[0].portName.in(), - providedReference[i].endpoint[0].in()); - break; - } - default: - { - DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::finishLaunch - currect Connection.InternalEndPoint.Kind ") - ACE_TEXT("is not a Deployment::SimplexReceptacle, Deployment::EventEmitter, Deployment::EventPublisher ") - ACE_TEXT("(Connection:%C Kind:%i PortName:%C)\n"), - conn.name.in(), - conn.internalEndpoint[0].kind, - conn.internalEndpoint[0].portName.in() - )); - throw ::Deployment::InvalidConnection(conn.name.in (), - "Invalid connection type, should be Receptacle or even producer."); - }//default - }//switch - } - catch (::Deployment::StartError &ex) - { - DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::finishLaunch - ") - ACE_TEXT("Intercepted StartError exception while configuring [%C] connection, rethrowing\n"), - name.c_str ())); - ex.name = name.c_str (); - throw; - } - catch (::Deployment::InvalidConnection &ex) - { - DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::finishLaunch - ") - ACE_TEXT("Intercepted InvalidConnection exception while configuring [%C] connection, rethrowing\n"), - name.c_str ())); - ex.name = name.c_str (); - throw; - } - }//if(name.compare(providedReference[i].name.in()) == 0) - }//for ( unsigned int i = 0; i < providedReference.length(); ++i ) - }//for ( unsigned int j = 0; j < this->plan_.connection.length(); ++j ) - - this->configuration_complete_components (); - - if (start) - { - this->start(); - } - - DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::finishLaunch - finished\n"))); -} - -bool -NodeApplication_Impl::is_local_facet (const ::Deployment::PlanConnectionDescription& conn) -{ - Deployment::Requirements const& deploy_req = conn.deployRequirement; - for (CORBA::ULong i = 0; i < deploy_req.length (); i++) - { - if (ACE_OS::strcmp (deploy_req[i].name, "edu.dre.vanderbilt.DAnCE.ConnectionType") == 0 && - ACE_OS::strcmp (deploy_req[i].resourceType, "Local_Interface") == 0) - { - return true; - } - } - return false; -} - -Components::Cookie* -NodeApplication_Impl::connect_receptacle (const ::Deployment::PlanConnectionDescription& conn, - Components::CCMObject_ptr facet, - const ACE_CString &facet_name, - CORBA::Object_ptr receptacle, - const ACE_CString& recep_name, - CIAO::Deployment::Container_ptr cont) -{ - Components::Cookie* res = 0; - try - { - if (this->is_local_facet (conn)) - { - ::Components::CCMObject_var ccm_receptacle = - ::Components::CCMObject::_narrow (receptacle); - - if (CORBA::is_nil (facet)) - { - DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::connect_receptacle - ") - ACE_TEXT ("Unable to narrow facet for local facet connection [%C] to receptable [%C]\n"), - facet_name.c_str (), recep_name.c_str ())); - throw ::Deployment::InvalidConnection ("", ""); - } - - if (CORBA::is_nil (ccm_receptacle)) - { - DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::connect_receptacle - ") - ACE_TEXT ("Unable to narrow receptacle for local facet connection [%C] to receptable [%C]\n"), - facet_name.c_str (), recep_name.c_str ())); - throw ::Deployment::InvalidConnection ("", ""); - } - - if (CORBA::is_nil (cont)) - { - DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::connect_receptacle - ") - ACE_TEXT ("Unable to narrow container for local facet connection [%C] to receptable [%C]\n"), - facet_name.c_str (), recep_name.c_str ())); - throw ::Deployment::InvalidConnection ("", ""); - } - - DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT ("NodeApplication_Impl::connect_receptacle - ") - ACE_TEXT ("Connecting local facet [%C] to receptacle [%C]\n"), - facet_name.c_str (), recep_name.c_str ())); - - cont->connect_local_facet (facet, facet_name.c_str (), ccm_receptacle, recep_name.c_str ()); - DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::connect_receptacle - connect finished\n"))); - } - else + DANCE_ERROR (1, (LM_ERROR, DLINFO + "NodeApplication_Impl::remove_instances - " + "Caught StopError final_exception %C, %C\n", + ex.name.in (), + ex.reason.in ())); + Utility::test_and_set_exception (flag, + final_exception, + ex.name.in (), + ex.reason.in ()); + + } + catch (CORBA::Exception &ex) { - DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::connect_receptacle - ") - ACE_TEXT("connect SimplexReceptacle for [%C] started\n"), recep_name.c_str())); - if (CORBA::is_nil (facet)) - { - DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT ("NodeApplication_Impl::connect_receptacle - ") - ACE_TEXT ("Object reference for facet to connect to [%C] was nil\n"), - recep_name.c_str ())); - throw ::Deployment::InvalidConnection ("", - "Provided facet reference was nil\n"); - } - - res = facet->connect (recep_name.c_str(), receptacle); - DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::connect_receptacle - connect finished\n"))); - } - } - catch (const ::Components::InvalidName& ) - { - DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::connect_receptacle - ") - ACE_TEXT("Components::CCMObject_var::connect() returned ::Components::InvalidName exception\n"))); - throw ::Deployment::StartError(conn.name.in (), - "Received InvalidName exception while connecting receptacle."); - } - catch (const ::Components::InvalidConnection& ) - { - DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT(" NodeApplication_Impl::connect_receptacle - ") - ACE_TEXT("Components::CCMObject_var::connect() returned ::Components::InvalidConnection exception\n"))); - throw ::Deployment::InvalidConnection(conn.name.in (), - "InvalidConnection caught while connecting receptacle."); - } - catch (const ::Components::AlreadyConnected& ) - { - DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT(" NodeApplication_Impl::connect_receptacle - ") - ACE_TEXT("Components::CCMObject_var::connect() returned ::Components::AlreadyConnected exception ") - ACE_TEXT("for connection <%C>\n"), - conn.name.in ())); - throw ::Deployment::InvalidConnection(conn.name.in (), - "Caught AlreadyConnected exception while connecting receptacle"); - } - catch (const ::Components::ExceededConnectionLimit& ) - { - DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT(" NodeApplication_Impl::connect_receptacle - ") - ACE_TEXT("Components::CCMObject_var::connect() returned ::Components::ExceededConnectionLimit exception\n"))); - throw ::Deployment::InvalidConnection(conn.name.in (), - "Caught ExceededConnectionLimit exception while connecting receptacle."); - } - catch (const ::CORBA::Exception &ex ) - { - DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::connect_receptacle - ") - ACE_TEXT("Caught a CORBA exception while connecting <%C>: <%C>\n"), - conn.name.in (), - ex._info ().c_str ())); - throw ::Deployment::StartError(conn.name.in (), - ex._info ().c_str ()); - } - return res; -} - -Components::Cookie* -NodeApplication_Impl::connect_receptacle_ext (Components::CCMObject_ptr inst, - const ACE_CString& port_name, - CORBA::Object_ptr facet) -{ - Components::Cookie* res = 0; - try - { - DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::connect_receptacle_ext - ") - ACE_TEXT("connect SimplexReceptacle for %C started\n"), port_name.c_str())); - res = inst->connect (port_name.c_str(), facet); - DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::connect_receptacle_ext - connect finished\n"))); - } - catch (const ::Components::InvalidName& ) - { - DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT(" NodeApplication_Impl::connect_receptacle_ext - ") - ACE_TEXT("Components::CCMObject_var::connect() returned ::Components::InvalidName exception\n"))); - throw ::Deployment::StartError("", - "Caught InvalidName exception while connecting external receptacle."); - } - catch (const ::Components::InvalidConnection& ) - { - DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT(" NodeApplication_Impl::connect_receptacle_ext - ") - ACE_TEXT("Components::CCMObject_var::connect() returned ::Components::InvalidConnection exception\n"))); - throw ::Deployment::InvalidConnection("", - "Caught InvalidConnection exception while connecting external receptacle."); - } - catch (const ::Components::AlreadyConnected& ) - { - DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT(" NodeApplication_Impl::connect_receptacle_ext - ") - ACE_TEXT("Components::CCMObject_var::connect() returned ::Components::AlreadyConnected exception\n"))); - throw ::Deployment::InvalidConnection("", - "Caught AlreadyConnected exception while connecting external receptacle."); - } - catch (const ::Components::ExceededConnectionLimit& ) - { - DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT(" NodeApplication_Impl::connect_receptacle_ext - ") - ACE_TEXT("Components::CCMObject_var::connect() returned ::Components::ExceededConnectionLimit exception\n"))); - throw ::Deployment::InvalidConnection("", - "Caught ExceededConnectionLimit while connecting external receptacle."); - } - return res; -} - -void -NodeApplication_Impl::connect_emitter (Components::CCMObject_ptr inst, - const ACE_CString& port_name, - CORBA::Object_ptr consumer) -{ - Components::EventConsumerBase_var event = Components::EventConsumerBase::_unchecked_narrow (consumer); - try - { - DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::connect_emitter - ") - ACE_TEXT("connect_consumer for %C started\n"), port_name.c_str())); - inst->connect_consumer (port_name.c_str(), event); - DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::connect_emitter - ") - ACE_TEXT("connect_consumer finished\n"))); - } - catch (const ::Components::InvalidName& ) - { - DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT(" ACE_TEXT(NodeApplication_Impl::connect_emitter - ") - ACE_TEXT("Components::CCMObject_var::connect_consumer() returned ::Components::InvalidName exception\n"))); - throw ::Deployment::StartError("", - "Caught InvalidName while connecting emitter."); - } - catch (const ::Components::AlreadyConnected& ) - { - DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT(" NodeApplication_Impl::connect_emitter - ") - ACE_TEXT("Components::CCMObject_var::connect_consumer() returned ::Components::AlreadyConnected exception\n"))); - throw ::Deployment::InvalidConnection("", - "Caught AlreadyConnected exception while connecting emitter"); - } - catch (const ::Components::InvalidConnection& ) - { - DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT(" NodeApplication_Impl::connect_emitter - ") - ACE_TEXT("Components::CCMObject_var::connect_consumer() returned ::Components::InvalidConnection exception\n"))); - throw ::Deployment::InvalidConnection("", - "Caught InvalidConnection while connecting emitter."); - } -} - -void -NodeApplication_Impl::connect_emitter_ext (Components::CCMObject_ptr inst, - const ACE_CString& port_name, - CORBA::Object_ptr consumer) -{ - Components::EventConsumerBase_var event = Components::EventConsumerBase::_unchecked_narrow (consumer); - try - { - DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::connect_emitter_ext - ") - ACE_TEXT("connect_emitter_ext for %C started\n"), port_name.c_str())); - inst->connect_consumer (port_name.c_str(), event); - DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::connect_emitter_ext - connect_emitter_ext finished\n"))); - } - catch (const ::Components::AlreadyConnected& ) - { - DANCE_DEBUG (6, (LM_WARNING, ACE_TEXT("NodeApplication_Impl::connect_emitter_ext - ") - ACE_TEXT("Components::CCMObject_var::connect_consumer() returned ::Components::AlreadyConnected exception\n"))); - throw ::Deployment::InvalidConnection("", - "Caught AlreadyConnected exception while connecting external emitter."); - } - catch (const ::Components::InvalidConnection& ) - { - DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT(" NodeApplication_Impl::connect_emitter_ext - ") - ACE_TEXT("Components::CCMObject_var::connect_consumer() returned ::Components::InvalidConnection exception\n"))); - throw ::Deployment::InvalidConnection("", - "Caught InvalidConnection exception while connecting external emitter."); - } -} - -Components::Cookie* -NodeApplication_Impl::connect_publisher (Components::CCMObject_ptr inst, - const ACE_CString& port_name, - CORBA::Object_ptr consumer) -{ - DANCE_TRACE ("NodeApplication_Impl::connect_publisher"); - - if (CORBA::is_nil (inst)) - { - DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::connect_publisher - ") - ACE_TEXT("Provided a nil CCMObject reference while connecting port %C\n"), - port_name.c_str ())); - throw ::Deployment::InvalidConnection (); - } - Components::Cookie* res = 0; - Components::EventConsumerBase_var event = Components::EventConsumerBase::_unchecked_narrow (consumer); - try - { - res = inst->subscribe (port_name.c_str(), event); - DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::connect_publisher - successfully subscribed %C\n"), - port_name.c_str ())); - } - catch (const ::Components::InvalidName& ) - { - DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT(" NodeApplication_Impl::connect_publisher - ") - ACE_TEXT("Components::CCMObject_var::subscribe() returned ::Components::InvalidName exception\n"))); - throw ::Deployment::StartError("", "Caught InvalidName exception while connecting publisher"); - } - catch (const ::Components::InvalidConnection& ) - { - DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT(" NodeApplication_Impl::connect_publisher - ") - ACE_TEXT("Components::CCMObject_var::subscribe() returned ::Components::InvalidConnection exception\n"))); - throw ::Deployment::InvalidConnection("", "Caught InvalidConnection exception while connecting publisher."); - } - catch (const ::Components::ExceededConnectionLimit& ) - { - DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT(" NodeApplication_Impl::connect_publisher - ") - ACE_TEXT("Components::CCMObject_var::subscribe() returned ::Components::ExceededCOnnectionLimit exception\n"))); - throw ::Deployment::InvalidConnection("", "Caught ExceededConnectionLimit exception while connecting publisher."); - } - return res; + DANCE_ERROR (1, (LM_ERROR, DLINFO + "NodeApplication_Impl::remove_instances - " + "Caught CORBA Final_Exception %C\n", + ex._info ().c_str ())); + Utility::test_and_set_exception (flag, + final_exception, + "Unknown CORBA Final_Exception", + ex._info ().c_str ()); + } + + //this->localities_.erase (i); + } + + if (flag) + throw final_exception; } - diff --git a/CIAO/DAnCE/NodeApplication/NodeApplication_Impl.h b/CIAO/DAnCE/NodeApplication/NodeApplication_Impl.h index f7a116deff1..662e15ab862 100644 --- a/CIAO/DAnCE/NodeApplication/NodeApplication_Impl.h +++ b/CIAO/DAnCE/NodeApplication/NodeApplication_Impl.h @@ -20,6 +20,7 @@ #include "NodeApplication_Export.h" #include "ace/Containers_T.h" +#include "tao/AnyTypeCode/AnyTypeCode_methods.h" #include "tao/ORB.h" #include "tao/Object.h" #include "ccm/CCM_KeylessCCMHomeC.h" @@ -30,9 +31,13 @@ #include "Deployment/Deployment_NodeApplicationS.h" #include "Deployment/Deployment_DeploymentPlanC.h" #include "Deployment/DeploymentC.h" -#include "DAnCE/Deployment_common.h" +#include "DAnCE/DAnCE_Utility.h" +#include "LocalityManager/Handler/Locality_Manager_Handler_Impl.h" #include <map> +#include <vector> + +using namespace DAnCE::Utility; namespace DAnCE { @@ -56,143 +61,20 @@ namespace DAnCE virtual void start (void); - ::Deployment::Connections * getAllConnections(void); - - void init_components(void); - - void configuration_complete_components (void); - - void passivate_components (void); - - void remove_components (void); - - enum ERequestType - { - eCreateComponentServer, - eCreateContainer, - eInstallHome, - eCreateComponentWithConfigValues - }; - - enum EInstanceType - { - eHome, - eComponent, - eHomedComponent, - eContainer, - eComponentServer, - eInvalid - }; - - enum EComponentState - { - eUninstalled, - eInstalled, - eConfigured, - eActive, - ePassive, - eRemoved, - eInvalidState - }; + void init_instances (void); + + void prepare_instances (void); + + void start_launch_instances (const Deployment::Properties &prop, + Deployment::Connections_out providedReference); + void remove_instances (void); + protected: void init(void); - - struct Container; - - struct Instance - { - Instance (EInstanceType type = eInvalid, - Container *cont = 0, - CORBA::ULong idd = 0, - CORBA::ULong mdd = 0) : - state (eUninstalled), - type (type), idd_idx (idd), mdd_idx (mdd), home(0), - container (cont) - { - } - - EComponentState state; - EInstanceType type; - CORBA::ULong idd_idx; - CORBA::ULong mdd_idx; - CORBA::Object_var ref; - Instance *home; - Container *container; - }; - - typedef ACE_Array<Instance> INSTANCES; - typedef ACE_Array<Instance *> INSTANCE_PTRS; - - struct Container - { - INSTANCES homes; - INSTANCES components; - ::Deployment::Properties properties; - Components::Deployment::Container_var ref; - }; - - typedef ACE_Array<Container> CONTAINERS; - - struct ComponentServer - { - ComponentServer (void) : properties (0) - { - } - - Instance instance; - CONTAINERS containers; - const ::Deployment::Properties *properties; - Components::Deployment::ComponentServer_var ref; - }; - - typedef ACE_Array<ComponentServer> COMPONENTSERVERS; - - EInstanceType get_instance_type (const ::Deployment::Properties& prop) const; - - typedef std::map <std::string, int> ColocationMap; - - /// Creates colocation groups for all components in this node's deployment. - /// Resulting map has mappings of component ids to appropriate server. - /// As a postcondition, the size of the servers_ array is increased appropriately. - ColocationMap create_colocation_groups (void); - - void create_component_server (size_t index); - - void create_container (size_t server, size_t container); - - void install_home (Container &cont, Instance &inst); - - void install_component (Container &cont, Instance &inst); - - void install_homed_component (Container &cont, Instance &inst); - - void store_instance_ior (Instance &inst); - - bool is_local_facet (const ::Deployment::PlanConnectionDescription& conn); - - Components::Cookie* connect_receptacle (const ::Deployment::PlanConnectionDescription& conn, - Components::CCMObject_ptr facet, - const ACE_CString &facet_name, - CORBA::Object_ptr receptacle, - const ACE_CString& receptacle_name, - CIAO::Deployment::Container_ptr cont); - - Components::Cookie* connect_receptacle_ext (Components::CCMObject_ptr inst, - const ACE_CString& port_name, - CORBA::Object_ptr facet); - - void connect_emitter (Components::CCMObject_ptr inst, - const ACE_CString& port_name, - CORBA::Object_ptr consumer); - - void connect_emitter_ext (Components::CCMObject_ptr inst, - const ACE_CString& port_name, - CORBA::Object_ptr consumer); - - Components::Cookie* connect_publisher (Components::CCMObject_ptr inst, - const ACE_CString& port_name, - CORBA::Object_ptr consumer); + + void prepare_instance (const char *name, + const ::Deployment::DeploymentPlan &plan); CORBA::ORB_var orb_; @@ -200,17 +82,18 @@ namespace DAnCE const ::Deployment::DeploymentPlan& plan_; - auto_ptr<CIAO::Deployment::CIAO_ServerActivator_i> activator_; - ACE_CString node_name_; PROPERTY_MAP properties_; - COMPONENTSERVERS servers_; - - INSTANCE_PTRS instances_; - CosNaming::NamingContext_var instance_nc_; + + DAnCE::Locality_Handler_i handler_; + + typedef std::map <ACE_CString, ::DAnCE::LocalityManager_var> + LOCALITY_MAP; + LOCALITY_MAP localities_; + }; } #endif /*NODEAPPLICATION_IMPL_H_*/ diff --git a/CIAO/DAnCE/NodeApplicationManager/NodeApplicationManager.mpc b/CIAO/DAnCE/NodeApplicationManager/NodeApplicationManager.mpc index e1c50fbce0e..098ca4815f9 100644 --- a/CIAO/DAnCE/NodeApplicationManager/NodeApplicationManager.mpc +++ b/CIAO/DAnCE/NodeApplicationManager/NodeApplicationManager.mpc @@ -2,7 +2,7 @@ // $Id$ project (DAnCE_NodeApplicationManager) : install, dance_lib, naming, dance_nodeapplicationmanager_skel, \ - dynamicinterface, ccm_componentserver_svnt, ciao_cs_client, \ + dynamicinterface, \ dance_nodeapplication, avoids_ace_for_tao { sharedname = DAnCE_NodeApplicationManager dynamicflags = NODEAPPLICATIONMANAGER_BUILD_DLL diff --git a/CIAO/DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp b/CIAO/DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp index 4ecb66face9..9f2c477127a 100644 --- a/CIAO/DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp +++ b/CIAO/DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp @@ -7,7 +7,6 @@ #include "NodeApplicationManager_Impl.h" #include "NodeApplication/NodeApplication_Impl.h" -#include "NodeManager/NodeManager_Impl.h" using namespace DAnCE; @@ -68,7 +67,7 @@ NodeApplicationManager_Impl::~NodeApplicationManager_Impl() } Deployment::Application_ptr -NodeApplicationManager_Impl::startLaunch (const Deployment::Properties &, +NodeApplicationManager_Impl::startLaunch (const Deployment::Properties &prop, Deployment::Connections_out providedReference) { DANCE_TRACE ("NodeApplicationManager_Impl::startLaunch"); @@ -85,16 +84,22 @@ NodeApplicationManager_Impl::startLaunch (const Deployment::Properties &, CORBA::NO_MEMORY ()); DANCE_DEBUG (9, (LM_TRACE, DLINFO - ACE_TEXT("NodeApplicationManager_impl::startLaunch - ") - ACE_TEXT("Instructing NodeApplication to initialize components.\n"))); - - this->application_->init_components(); + ACE_TEXT("NodeApplicationManager_impl::startLaunch - ") + ACE_TEXT("Instructing NodeApplication to initialize instances.\n"))); + this->application_->init_instances(); + DANCE_DEBUG (9, (LM_TRACE, DLINFO - ACE_TEXT("NodeApplicationManager_impl::startLaunch - ") - ACE_TEXT("Collecting connection references\n"))); + ACE_TEXT("NodeApplicationManager_impl::startLaunch - ") + ACE_TEXT("Instructing NodeApplication to prepare locality managers.\n"))); - providedReference = this->application_->getAllConnections(); + this->application_->prepare_instances (); + + DANCE_DEBUG (9, (LM_TRACE, DLINFO + ACE_TEXT("NodeApplicationManager_impl::startLaunch - ") + ACE_TEXT("Instructing NodeApplication to start launch localities.\n"))); + + this->application_->start_launch_instances (prop, providedReference); DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("NodeApplicationManager_impl::startLaunch - ") @@ -105,7 +110,15 @@ NodeApplicationManager_Impl::startLaunch (const Deployment::Properties &, CORBA::Object_var as_obj = this->poa_->id_to_reference (as_id.in ()); Deployment::Application_var app = Deployment::Application::_narrow (as_obj.in ()); - + + if (CORBA::is_nil (app)) + { + DANCE_ERROR (1, (LM_ERROR, DLINFO, + "NodeApplicationManager_Impl::startLaunch - ", + "NodeApplication servant failed to activate\n")); + throw ::Deployment::StartError ("NodeApplication", + "Activation failure"); + } return app._retn (); } @@ -121,24 +134,12 @@ NodeApplicationManager_Impl::destroyApplication (Deployment::Application_ptr app DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("NodeApplicationManager_Impl::destroyApplication - ") ACE_TEXT("application is equivalent to current application\n"))); - throw ::Deployment::StopError(); - } - - CORBA::Any val; - - if (this->properties_.find (DAnCE::STANDALONE_NM, val) == 0) - { - DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("NodeApplicationManager_Impl::destroyApplication - ") - ACE_TEXT("Found STANDALONE_NM property\n"))); - - CORBA::Boolean standalone = false; - - val >>= CORBA::Any::to_boolean (standalone); - - this->application_->passivate_components (); - this->application_->remove_components (); + throw ::Deployment::StopError("NodeApplicationManager", + "Wrong application passed to destroyApplication"); } - + + this->application_->remove_instances (); + PortableServer::ObjectId_var id = this->poa_->reference_to_id (application); this->poa_->deactivate_object (id); @@ -161,10 +162,10 @@ NodeApplicationManager_Impl::destroyApplication (Deployment::Application_ptr app throw Deployment::StopError(e._name(), e._info().c_str()); } catch (...) - { - DANCE_ERROR (1, (LM_ERROR, DLINFO - ACE_TEXT("NodeApplicationManager_Impl::destroyApplication failed with unknown exception.\n"))); - throw Deployment::StopError(); - } + { + DANCE_ERROR (1, (LM_ERROR, DLINFO + ACE_TEXT("NodeApplicationManager_Impl::destroyApplication failed with unknown exception.\n"))); + throw Deployment::StopError("NodeApplicatoinManager", "Unknown C++ exception in destroyApplication"); + } } diff --git a/CIAO/DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.h b/CIAO/DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.h index d72570f30e5..be188c758aa 100644 --- a/CIAO/DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.h +++ b/CIAO/DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.h @@ -27,7 +27,6 @@ namespace DAnCE { - class NodeManager_Impl; class NodeApplicationManager_Export NodeApplicationManager_Impl : public virtual POA_Deployment::NodeApplicationManager diff --git a/CIAO/DAnCE/NodeManager/NodeManager_Impl.h b/CIAO/DAnCE/NodeManager/NodeManager_Impl.h index 11029803189..e03b2ded35f 100644 --- a/CIAO/DAnCE/NodeManager/NodeManager_Impl.h +++ b/CIAO/DAnCE/NodeManager/NodeManager_Impl.h @@ -18,7 +18,7 @@ #include "tao/Object.h" #include "tao/ORB.h" -#include "DAnCE/Deployment_common.h" +#include "DAnCE/DAnCE_Utility.h" #include "Deployment/Deployment_NodeManagerS.h" #include "NodeApplicationManager/NodeApplicationManager_Impl.h" #include "ace/Map_Manager.h" diff --git a/CIAO/DAnCE/NodeManager/Node_Manager_Module.cpp b/CIAO/DAnCE/NodeManager/Node_Manager_Module.cpp index cb730931f1d..b4e30a4c1fd 100644 --- a/CIAO/DAnCE/NodeManager/Node_Manager_Module.cpp +++ b/CIAO/DAnCE/NodeManager/Node_Manager_Module.cpp @@ -8,8 +8,6 @@ #include "tao/IORTable/IORTable.h" #include "tao/Utils/PolicyList_Destroyer.h" #include "orbsvcs/CosNamingC.h" -#include "ciao/Valuetype_Factories/Cookies.h" -#include "ciao/ComponentServer/CIAO_PropertiesC.h" #include "DAnCE/Logger/Log_Macros.h" #include "DAnCE/DAnCE/DAnCE_PropertiesC.h" #include "Node_Manager_Module.h" @@ -46,7 +44,7 @@ DAnCE_NodeManager_Module::SOptions::SOptions(void) create_plan_ns_ior_ (0), rebind_plan_ns_ (false), rebind_plan_ns_ior_ (0), - cs_path_ (ACE_TEXT("ciao_componentserver")), + cs_path_ (ACE_TEXT("dance_locality_manager")), timeout_ (5), standalone_ (false), server_args_ (0), @@ -438,7 +436,7 @@ DAnCE_NodeManager_Module::init (CORBA::ORB_ptr orb, DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT ("DAnCE_NodeManager_Module::init - ") ACE_TEXT ("Allocating new NodeManger servant instance for NodeManager\n"))); int size = 64; - DAnCE::PROPERTY_MAP properties (size); + DAnCE::Utility::PROPERTY_MAP properties (size); this->create_nm_properties (properties); ACE_NEW_RETURN (nm, @@ -560,17 +558,17 @@ DAnCE_NodeManager_Module::create_poas (void) } void -DAnCE_NodeManager_Module::create_nm_properties (DAnCE::PROPERTY_MAP &props) +DAnCE_NodeManager_Module::create_nm_properties (DAnCE::Utility::PROPERTY_MAP &props) { { CORBA::Any val; val <<= this->options_.timeout_; - props.bind (CIAO::Deployment::SERVER_TIMEOUT, val); + props.bind (DAnCE::LOCALITY_TIMEOUT, val); } { CORBA::Any val; val <<= CORBA::Any::from_string (CORBA::string_dup (ACE_TEXT_ALWAYS_CHAR (this->options_.cs_path_)),0); - props.bind (CIAO::Deployment::SERVER_EXECUTABLE, val); + props.bind (DAnCE::LOCALITY_EXECUTABLE, val); } { CORBA::Any val; @@ -580,7 +578,7 @@ DAnCE_NodeManager_Module::create_nm_properties (DAnCE::PROPERTY_MAP &props) { CORBA::Any val; val <<= CORBA::Any::from_string (CORBA::string_dup (ACE_TEXT_ALWAYS_CHAR (this->options_.server_args_)),0); - props.bind (CIAO::Deployment::SERVER_ARGUMENTS, val); + props.bind (DAnCE::LOCALITY_ARGUMENTS, val); } if (this->options_.instance_nc_) { diff --git a/CIAO/DAnCE/NodeManager/Node_Manager_Module.h b/CIAO/DAnCE/NodeManager/Node_Manager_Module.h index 8bb4e1efdce..915963c965d 100644 --- a/CIAO/DAnCE/NodeManager/Node_Manager_Module.h +++ b/CIAO/DAnCE/NodeManager/Node_Manager_Module.h @@ -30,7 +30,7 @@ #include "tao/ORB.h" #include "tao/PortableServer/PortableServer.h" #include "orbsvcs/CosNamingC.h" -#include "DAnCE/DAnCE/Deployment_common.h" +#include "DAnCE/DAnCE/DAnCE_Utility.h" namespace DAnCE { @@ -87,7 +87,7 @@ class DAnCE_NodeManager_Module void register_value_factories (void); void create_poas (void); - void create_nm_properties (DAnCE::PROPERTY_MAP &props); + void create_nm_properties (DAnCE::Utility::PROPERTY_MAP &props); /// Here we store the servants. typedef ACE_Map_Manager < ACE_TString, diff --git a/CIAO/DAnCE/Plan_Launcher/Plan_Launcher.cpp b/CIAO/DAnCE/Plan_Launcher/Plan_Launcher.cpp index 736e267e923..35135454021 100644 --- a/CIAO/DAnCE/Plan_Launcher/Plan_Launcher.cpp +++ b/CIAO/DAnCE/Plan_Launcher/Plan_Launcher.cpp @@ -78,10 +78,10 @@ usage(const ACE_TCHAR*) ACE_TEXT ("Only supported for EM-based deployments\n") ACE_TEXT ("\t-a|--app-ior <APP IOR>\t\t") - ACE_TEXT ("IOR for ApplicationManager entity (Domain or Node)\n") + ACE_TEXT ("IOR for Application entity (Domain or Node)\n") ACE_TEXT ("\t-m|--am-ior <AM IOR>\t\t") - ACE_TEXT ("IOR For Application entity (Domain or Node)\n") + ACE_TEXT ("IOR For ApplicationManager entity (Domain or Node)\n") ACE_TEXT ("\nPlan Control Options:\n") ACE_TEXT ("The default action is to fully launch a plan. ") @@ -510,9 +510,6 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[]) Options options; if (!parse_args (argc, argv, options)) { - ACE_ERROR ((LM_ERROR, DLINFO ACE_TEXT ("Plan_Launcher - ") - ACE_TEXT ("Failed to parse ") - ACE_TEXT ("command line arguments, exiting.\n"))); return 1; } diff --git a/CIAO/DAnCE/Plan_Launcher/Plan_Launcher_Base_Impl_T.cpp b/CIAO/DAnCE/Plan_Launcher/Plan_Launcher_Base_Impl_T.cpp index 2bd3fcad161..01628d9b1bc 100644 --- a/CIAO/DAnCE/Plan_Launcher/Plan_Launcher_Base_Impl_T.cpp +++ b/CIAO/DAnCE/Plan_Launcher/Plan_Launcher_Base_Impl_T.cpp @@ -586,10 +586,10 @@ namespace DAnCE for (CORBA::ULong i = 0; i < plan.connection.length(); i++) { - if (plan.connection[i].externalReference.length() > 0 - && plan.connection[i].externalReference[0].provider) + if (plan.connection[i].externalReference.length() > 0) + //&& plan.connection[i].externalReference[0].provider) { - DANCE_DEBUG (6, (LM_DEBUG, + DANCE_DEBUG (6, (LM_DEBUG, DLINFO "Plan_Launcher_i::create_external_connections - create connection %C from IOR %C\n", plan.connection[i].name.in(), plan.connection[i].externalReference[0].location.in())); @@ -598,10 +598,18 @@ namespace DAnCE { CORBA::Object_ptr obj = this->orb_->string_to_object(plan.connection[i].externalReference[0].location.in()); + if (!CORBA::is_nil (obj)) { - CORBA::ULong const indx = conn.length(); - conn.length(indx + 1); + CORBA::ULong indx = 0; + for (; indx < conn.length (); ++indx) + + if (ACE_OS::strcmp (conn[indx].name.in (), + plan.connection[i].name.in ()) == 0) + break; + + if (indx == conn.length()) + conn.length(indx + 1); conn[indx].name= CORBA::string_dup (plan.connection[i].name.in()); conn[indx].endpoint.length(1L); conn[indx].endpoint[0] = obj; @@ -623,9 +631,9 @@ namespace DAnCE } catch (...) { - DANCE_ERROR (1, (LM_ERROR, DLINFO - ACE_TEXT("Plan_Launcher_i::create_external_connections - ") - ACE_TEXT("Caught C++ Exception while resolving endpoint for connection\n"))); + DANCE_ERROR (1, (LM_ERROR, DLINFO + ACE_TEXT("Plan_Launcher_i::create_external_connections - ") + ACE_TEXT("Caught C++ Exception while resolving endpoint for connection\n"))); } } } diff --git a/CIAO/DAnCE/tests/CIAO/CommandlinePassage/Component.cdp b/CIAO/DAnCE/tests/CIAO/CommandlinePassage/Component.cdp index f692ab3a7eb..432e01f72a6 100644 --- a/CIAO/DAnCE/tests/CIAO/CommandlinePassage/Component.cdp +++ b/CIAO/DAnCE/tests/CIAO/CommandlinePassage/Component.cdp @@ -21,7 +21,7 @@ <kind>tk_string</kind> </type> <value> - <string>edu.vanderbilt.dre.DAnCE.ServerExecutable</string> + <string>edu.vanderbilt.dre.DAnCE.LocalityManager</string> </value> </value> </execParameter> @@ -84,8 +84,8 @@ <node>CommandlinePassageNode</node> <source /> <implementation xmi:idref="CompSvrImpl" /> - <configProperty> - <name>edu.vanderbilt.dre.CIAO.ComponentServer.Args</name> + <configProperty> + <name>edu.vanderbilt.dre.DAnCE.LocalityArguments</name> <value> <type> <kind>tk_string</kind> @@ -123,7 +123,7 @@ <name>CompoSvrArtifactName</name> <source /> <node /> - <location>ciao_componentserver</location> + <location>dance_locality_manager</location> </artifact> <artifact xmi:id="CommandlinePassage_ExecArtifact"> <name>CommandlinePassage_exec</name> diff --git a/CIAO/DAnCE/tests/CIAO/CommandlinePassage/run_test.pl b/CIAO/DAnCE/tests/CIAO/CommandlinePassage/run_test.pl index 42e6eb574b4..e54326eb789 100755 --- a/CIAO/DAnCE/tests/CIAO/CommandlinePassage/run_test.pl +++ b/CIAO/DAnCE/tests/CIAO/CommandlinePassage/run_test.pl @@ -102,7 +102,7 @@ sub kill_open_processes { $NS->Kill (); $NS->TimedWait (1); } # in case shutdown did not perform as expected - $tg_executor->KillAll ('ciao_componentserver'); + $tg_executor->KillAll ('dance_locality_manager'); } sub run_node_daemons { @@ -112,7 +112,7 @@ sub run_node_daemons { $port = $ports[$i]; $nodename = $nodenames[$i]; $iiop = "iiop://localhost:$port"; - $node_app = "$CIAO_ROOT/bin/ciao_componentserver"; + $node_app = "$DANCE_ROOT/bin/dance_locality_manager"; $d_cmd = "$DANCE_ROOT/bin/dance_node_manager"; $d_param = "-ORBEndpoint $iiop -s $node_app -n $nodename=$iorfile -t 30 --domain-nc corbaloc:rir:/NameService"; diff --git a/CIAO/DAnCE/tests/CIAO/Components/SimpleAttribute_exec.cpp b/CIAO/DAnCE/tests/CIAO/Components/SimpleAttribute_exec.cpp index caa0415af75..5a67065c471 100644 --- a/CIAO/DAnCE/tests/CIAO/Components/SimpleAttribute_exec.cpp +++ b/CIAO/DAnCE/tests/CIAO/Components/SimpleAttribute_exec.cpp @@ -204,7 +204,7 @@ namespace CIAO_Simple_SimpleAttribute_Impl this->long_ == -1 || this->short_ == -1) { - ACE_ERROR ((LM_ERROR, "SimpleAttribute_exec_i::ccm_activate - " + ACE_ERROR ((LM_ERROR, "SimpleAttributeHom_exec_i::create - " "Error: Attribute values didin't initialize correctly!\n")); } else @@ -213,6 +213,7 @@ namespace CIAO_Simple_SimpleAttribute_Impl "Test passed! String attribute is %s\n", this->str_.c_str ())); } + ::Components::EnterpriseComponent_ptr retval = ::Components::EnterpriseComponent::_nil (); diff --git a/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/1NodeFailureAtActivate.cdp b/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/1NodeFailureAtActivate.cdp index 80901f25ca4..363b29389e6 100644 --- a/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/1NodeFailureAtActivate.cdp +++ b/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/1NodeFailureAtActivate.cdp @@ -67,6 +67,17 @@ <source/> <artifact xmi:idref="SimpleFailure_ExecArtifact" /> <artifact xmi:idref="SimpleFailure_SvntArtifact" /> + <execParameter> + <name>edu.vanderbilt.dre.DAnCE.ImplementationType</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>edu.vanderbilt.dre.CCM.HomedComponent</string> + </value> + </value> + </execParameter> </implementation> <instance xmi:id="SimpleFailureHomeInstance"> @@ -84,7 +95,7 @@ <source/> <implementation xmi:idref="SimpleFailureComponentImplementation" /> <configProperty> - <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name> + <name>edu.vanderbilt.dre.CIAO.ComponentHomeId</name> <value> <type> <kind>tk_string</kind> diff --git a/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/1NodeFailureAtStartup.cdp b/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/1NodeFailureAtStartup.cdp index 8874e3f840a..a447dc8f499 100644 --- a/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/1NodeFailureAtStartup.cdp +++ b/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/1NodeFailureAtStartup.cdp @@ -67,6 +67,17 @@ <source/> <artifact xmi:idref="SimpleFailure_ExecArtifact" /> <artifact xmi:idref="SimpleFailure_SvntArtifact" /> + <execParameter> + <name>edu.vanderbilt.dre.DAnCE.ImplementationType</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>edu.vanderbilt.dre.CCM.HomedComponent</string> + </value> + </value> + </execParameter> </implementation> <instance xmi:id="SimpleFailureHomeInstance"> @@ -84,7 +95,7 @@ <source/> <implementation xmi:idref="SimpleFailureComponentImplementation" /> <configProperty> - <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name> + <name>edu.vanderbilt.dre.CIAO.ComponentHomeId</name> <value> <type> <kind>tk_string</kind> diff --git a/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/1NodeNoFailure.cdp b/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/1NodeNoFailure.cdp index 8f773621a35..8b63bff232c 100644 --- a/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/1NodeNoFailure.cdp +++ b/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/1NodeNoFailure.cdp @@ -67,6 +67,17 @@ <source/> <artifact xmi:idref="SimpleFailure_ExecArtifact" /> <artifact xmi:idref="SimpleFailure_SvntArtifact" /> + <execParameter> + <name>edu.vanderbilt.dre.DAnCE.ImplementationType</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>edu.vanderbilt.dre.CCM.HomedComponent</string> + </value> + </value> + </execParameter> </implementation> <instance xmi:id="SimpleFailureHomeInstance"> @@ -84,7 +95,7 @@ <source/> <implementation xmi:idref="SimpleFailureComponentImplementation" /> <configProperty> - <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name> + <name>edu.vanderbilt.dre.CIAO.ComponentHomeId</name> <value> <type> <kind>tk_string</kind> diff --git a/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/2NodeFailureAtActivate.cdp b/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/2NodeFailureAtActivate.cdp index 32fae58667c..594d8c016f1 100644 --- a/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/2NodeFailureAtActivate.cdp +++ b/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/2NodeFailureAtActivate.cdp @@ -67,6 +67,17 @@ <source/> <artifact xmi:idref="SimpleFailure_ExecArtifact" /> <artifact xmi:idref="SimpleFailure_SvntArtifact" /> + <execParameter> + <name>edu.vanderbilt.dre.DAnCE.ImplementationType</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>edu.vanderbilt.dre.CCM.HomedComponent</string> + </value> + </value> + </execParameter> </implementation> <!-- Node One --> @@ -86,7 +97,7 @@ <source/> <implementation xmi:idref="SimpleFailureComponentImplementation" /> <configProperty> - <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name> + <name>edu.vanderbilt.dre.CIAO.ComponentHomeId</name> <value> <type> <kind>tk_string</kind> @@ -135,7 +146,7 @@ <source/> <implementation xmi:idref="SimpleFailureComponentImplementation" /> <configProperty> - <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name> + <name>edu.vanderbilt.dre.CIAO.ComponentHomeId</name> <value> <type> <kind>tk_string</kind> diff --git a/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/2NodeFailureAtStartup.cdp b/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/2NodeFailureAtStartup.cdp index db0b5b819b4..30cb3fc94f8 100644 --- a/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/2NodeFailureAtStartup.cdp +++ b/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/2NodeFailureAtStartup.cdp @@ -67,6 +67,17 @@ <source/> <artifact xmi:idref="SimpleFailure_ExecArtifact" /> <artifact xmi:idref="SimpleFailure_SvntArtifact" /> + <execParameter> + <name>edu.vanderbilt.dre.DAnCE.ImplementationType</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>edu.vanderbilt.dre.CCM.HomedComponent</string> + </value> + </value> + </execParameter> </implementation> <!-- Node One --> @@ -86,7 +97,7 @@ <source/> <implementation xmi:idref="SimpleFailureComponentImplementation" /> <configProperty> - <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name> + <name>edu.vanderbilt.dre.CIAO.ComponentHomeId</name> <value> <type> <kind>tk_string</kind> @@ -135,7 +146,7 @@ <source/> <implementation xmi:idref="SimpleFailureComponentImplementation" /> <configProperty> - <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name> + <name>edu.vanderbilt.dre.CIAO.ComponentHomeId</name> <value> <type> <kind>tk_string</kind> diff --git a/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/2NodeNoFailure.cdp b/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/2NodeNoFailure.cdp index b6a600d09af..b3c0165c0a3 100644 --- a/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/2NodeNoFailure.cdp +++ b/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/2NodeNoFailure.cdp @@ -67,6 +67,17 @@ <source/> <artifact xmi:idref="SimpleFailure_ExecArtifact" /> <artifact xmi:idref="SimpleFailure_SvntArtifact" /> + <execParameter> + <name>edu.vanderbilt.dre.DAnCE.ImplementationType</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>edu.vanderbilt.dre.CCM.HomedComponent</string> + </value> + </value> + </execParameter> </implementation> <!-- Node One --> @@ -86,7 +97,7 @@ <source/> <implementation xmi:idref="SimpleFailureComponentImplementation" /> <configProperty> - <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name> + <name>edu.vanderbilt.dre.CIAO.ComponentHomeId</name> <value> <type> <kind>tk_string</kind> @@ -135,7 +146,7 @@ <source/> <implementation xmi:idref="SimpleFailureComponentImplementation" /> <configProperty> - <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name> + <name>edu.vanderbilt.dre.CIAO.ComponentHomeId</name> <value> <type> <kind>tk_string</kind> diff --git a/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/5NodeFailureAtActivate.cdp b/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/5NodeFailureAtActivate.cdp index 9f6315a7ca7..1b9845d54b4 100644 --- a/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/5NodeFailureAtActivate.cdp +++ b/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/5NodeFailureAtActivate.cdp @@ -67,6 +67,17 @@ <source/> <artifact xmi:idref="SimpleFailure_ExecArtifact" /> <artifact xmi:idref="SimpleFailure_SvntArtifact" /> + <execParameter> + <name>edu.vanderbilt.dre.DAnCE.ImplementationType</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>edu.vanderbilt.dre.CCM.HomedComponent</string> + </value> + </value> + </execParameter> </implementation> <!-- Node One --> @@ -86,7 +97,7 @@ <source/> <implementation xmi:idref="SimpleFailureComponentImplementation" /> <configProperty> - <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name> + <name>edu.vanderbilt.dre.CIAO.ComponentHomeId</name> <value> <type> <kind>tk_string</kind> @@ -135,7 +146,7 @@ <source/> <implementation xmi:idref="SimpleFailureComponentImplementation" /> <configProperty> - <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name> + <name>edu.vanderbilt.dre.CIAO.ComponentHomeId</name> <value> <type> <kind>tk_string</kind> @@ -184,7 +195,7 @@ <source/> <implementation xmi:idref="SimpleFailureComponentImplementation" /> <configProperty> - <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name> + <name>edu.vanderbilt.dre.CIAO.ComponentHomeId</name> <value> <type> <kind>tk_string</kind> @@ -233,7 +244,7 @@ <source/> <implementation xmi:idref="SimpleFailureComponentImplementation" /> <configProperty> - <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name> + <name>edu.vanderbilt.dre.CIAO.ComponentHomeId</name> <value> <type> <kind>tk_string</kind> @@ -282,7 +293,7 @@ <source/> <implementation xmi:idref="SimpleFailureComponentImplementation" /> <configProperty> - <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name> + <name>edu.vanderbilt.dre.CIAO.ComponentHomeId</name> <value> <type> <kind>tk_string</kind> diff --git a/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/5NodeFailureAtStartup.cdp b/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/5NodeFailureAtStartup.cdp index 37718ae6dd1..2e306352442 100644 --- a/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/5NodeFailureAtStartup.cdp +++ b/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/5NodeFailureAtStartup.cdp @@ -67,6 +67,17 @@ <source/> <artifact xmi:idref="SimpleFailure_ExecArtifact" /> <artifact xmi:idref="SimpleFailure_SvntArtifact" /> + <execParameter> + <name>edu.vanderbilt.dre.DAnCE.ImplementationType</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>edu.vanderbilt.dre.CCM.HomedComponent</string> + </value> + </value> + </execParameter> </implementation> <!-- Node One --> @@ -86,7 +97,7 @@ <source/> <implementation xmi:idref="SimpleFailureComponentImplementation" /> <configProperty> - <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name> + <name>edu.vanderbilt.dre.CIAO.ComponentHomeId</name> <value> <type> <kind>tk_string</kind> @@ -135,7 +146,7 @@ <source/> <implementation xmi:idref="SimpleFailureComponentImplementation" /> <configProperty> - <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name> + <name>edu.vanderbilt.dre.CIAO.ComponentHomeId</name> <value> <type> <kind>tk_string</kind> @@ -184,7 +195,7 @@ <source/> <implementation xmi:idref="SimpleFailureComponentImplementation" /> <configProperty> - <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name> + <name>edu.vanderbilt.dre.CIAO.ComponentHomeId</name> <value> <type> <kind>tk_string</kind> @@ -233,7 +244,7 @@ <source/> <implementation xmi:idref="SimpleFailureComponentImplementation" /> <configProperty> - <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name> + <name>edu.vanderbilt.dre.CIAO.ComponentHomeId</name> <value> <type> <kind>tk_string</kind> @@ -282,7 +293,7 @@ <source/> <implementation xmi:idref="SimpleFailureComponentImplementation" /> <configProperty> - <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name> + <name>edu.vanderbilt.dre.CIAO.ComponentHomeId</name> <value> <type> <kind>tk_string</kind> diff --git a/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/5NodeNoFailure.cdp b/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/5NodeNoFailure.cdp index f01b0da8266..332b454c54f 100644 --- a/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/5NodeNoFailure.cdp +++ b/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/5NodeNoFailure.cdp @@ -67,6 +67,17 @@ <source/> <artifact xmi:idref="SimpleFailure_ExecArtifact" /> <artifact xmi:idref="SimpleFailure_SvntArtifact" /> + <execParameter> + <name>edu.vanderbilt.dre.DAnCE.ImplementationType</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>edu.vanderbilt.dre.CCM.HomedComponent</string> + </value> + </value> + </execParameter> </implementation> <!-- Node One --> @@ -86,7 +97,7 @@ <source/> <implementation xmi:idref="SimpleFailureComponentImplementation" /> <configProperty> - <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name> + <name>edu.vanderbilt.dre.CIAO.ComponentHomeId</name> <value> <type> <kind>tk_string</kind> @@ -135,7 +146,7 @@ <source/> <implementation xmi:idref="SimpleFailureComponentImplementation" /> <configProperty> - <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name> + <name>edu.vanderbilt.dre.CIAO.ComponentHomeId</name> <value> <type> <kind>tk_string</kind> @@ -184,7 +195,7 @@ <source/> <implementation xmi:idref="SimpleFailureComponentImplementation" /> <configProperty> - <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name> + <name>edu.vanderbilt.dre.CIAO.ComponentHomeId</name> <value> <type> <kind>tk_string</kind> @@ -233,7 +244,7 @@ <source/> <implementation xmi:idref="SimpleFailureComponentImplementation" /> <configProperty> - <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name> + <name>edu.vanderbilt.dre.CIAO.ComponentHomeId</name> <value> <type> <kind>tk_string</kind> @@ -282,7 +293,7 @@ <source/> <implementation xmi:idref="SimpleFailureComponentImplementation" /> <configProperty> - <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name> + <name>edu.vanderbilt.dre.CIAO.ComponentHomeId</name> <value> <type> <kind>tk_string</kind> diff --git a/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/run_test.pl b/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/run_test.pl index 5b5eb104ee3..80b5df6c20d 100755 --- a/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/run_test.pl +++ b/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/run_test.pl @@ -89,7 +89,7 @@ sub kill_node_daemons { } for ($i = 0; $i < $nr_daemon; ++$i) { # in case shutdown did not perform as expected - $tg_daemons[$i]->KillAll ('ciao_componentserver'); + $tg_daemons[$i]->KillAll ('dance_locality_manager'); } } @@ -116,7 +116,7 @@ sub run_node_daemons { $nodename = $nodebase . ($i + 1); $node_host = $tg_daemons[$i]->HostName (); $iiop = "iiop://$node_host:$port"; - $node_app = "$CIAO_ROOT/bin/ciao_componentserver"; + $node_app = "$DANCE_ROOT/bin/dance_locality_manager"; $d_cmd = "$DANCE_ROOT/bin/dance_node_manager"; $d_param = "-ORBEndpoint $iiop -s $node_app -n $nodename=$iorfile -t 30 --domain-nc corbaloc:rir:/NameService --instance-nc corbaloc:rir:/NameService"; @@ -229,7 +229,7 @@ foreach $file (@files) { if ($status >= 0) { # cleanup any leftover comp.servers (might happen when not correctly # started or torn down) otherwise we won't be able to start new ones - $tg_executor->KillAll ('ciao_componentserver'); + $tg_executor->KillAll ('dance_locality_manager'); $file =~ s/Failure.*\.cdp$/NoFailure.cdp/; diff --git a/CIAO/DAnCE/tests/CIAO/EM-Redeployment/run_test.pl b/CIAO/DAnCE/tests/CIAO/EM-Redeployment/run_test.pl index b473b6ea233..e61b287ddae 100755 --- a/CIAO/DAnCE/tests/CIAO/EM-Redeployment/run_test.pl +++ b/CIAO/DAnCE/tests/CIAO/EM-Redeployment/run_test.pl @@ -85,7 +85,7 @@ sub kill_node_daemon { } for ($i = 0; $i < $nr_daemon; ++$i) { # in case shutdown did not perform as expected - $tg_daemons[$i]->KillAll ('ciao_componentserver'); + $tg_daemons[$i]->KillAll ('dance_locality_manager'); } } @@ -112,7 +112,7 @@ sub run_node_daemons { $nodename = $nodenames[$i]; $node_host = $tg_daemons[$i]->HostName (); $iiop = "iiop://$node_host:$port"; - $node_app = "$CIAO_ROOT/bin/ciao_componentserver"; + $node_app = "$DANCE_ROOT/bin/dance_locality_manager"; $d_cmd = "$DANCE_ROOT/bin/dance_node_manager"; $d_param = "-ORBEndpoint $iiop -s $node_app -n $nodename=$iorfile -t 30 --domain-nc corbaloc:rir:/NameService --instance-nc corbaloc:rir:/NameService"; diff --git a/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/EmitsConnectionExplicitHome.cdp b/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/EmitsConnectionExplicitHome.cdp index 01c13b3f3d1..92e67ad815f 100644 --- a/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/EmitsConnectionExplicitHome.cdp +++ b/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/EmitsConnectionExplicitHome.cdp @@ -66,6 +66,17 @@ <source/> <artifact xmi:idref="SimpleEmitter_ExecArtifact" /> <artifact xmi:idref="SimpleEmitter_SvntArtifact" /> + <execParameter> + <name>edu.vanderbilt.dre.DAnCE.ImplementationType</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>edu.vanderbilt.dre.CCM.HomedComponent</string> + </value> + </value> + </execParameter> </implementation> <implementation xmi:id="SimpleConsumerHomeImplementation"> @@ -125,6 +136,17 @@ <source/> <artifact xmi:idref="SimpleConsumer_ExecArtifact" /> <artifact xmi:idref="SimpleConsumer_SvntArtifact" /> + <execParameter> + <name>edu.vanderbilt.dre.DAnCE.ImplementationType</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>edu.vanderbilt.dre.CCM.HomedComponent</string> + </value> + </value> + </execParameter> </implementation> <instance xmi:id="SimpleEmitterHomeInstance"> @@ -142,7 +164,7 @@ <source/> <implementation xmi:idref="SimpleEmitterComponentImplementation" /> <configProperty> - <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name> + <name>edu.vanderbilt.dre.CIAO.ComponentHomeId</name> <value> <type> <kind>tk_string</kind> @@ -169,7 +191,7 @@ <source/> <implementation xmi:idref="SimpleConsumerComponentImplementation" /> <configProperty> - <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name> + <name>edu.vanderbilt.dre.CIAO.ComponentHomeId</name> <value> <type> <kind>tk_string</kind> diff --git a/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/EmitsConnectionExplicitHome_NS.cdp b/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/EmitsConnectionExplicitHome_NS.cdp index 6c01f6d36d6..cfa3f0447e1 100644 --- a/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/EmitsConnectionExplicitHome_NS.cdp +++ b/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/EmitsConnectionExplicitHome_NS.cdp @@ -66,6 +66,17 @@ <source/> <artifact xmi:idref="SimpleEmitter_ExecArtifact" /> <artifact xmi:idref="SimpleEmitter_SvntArtifact" /> + <execParameter> + <name>edu.vanderbilt.dre.DAnCE.ImplementationType</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>edu.vanderbilt.dre.CCM.HomedComponent</string> + </value> + </value> + </execParameter> </implementation> <implementation xmi:id="SimpleConsumerHomeImplementation"> @@ -125,6 +136,17 @@ <source/> <artifact xmi:idref="SimpleConsumer_ExecArtifact" /> <artifact xmi:idref="SimpleConsumer_SvntArtifact" /> + <execParameter> + <name>edu.vanderbilt.dre.DAnCE.ImplementationType</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>edu.vanderbilt.dre.CCM.HomedComponent</string> + </value> + </value> + </execParameter> </implementation> <instance xmi:id="SimpleEmitterHomeInstance"> @@ -142,7 +164,7 @@ <source/> <implementation xmi:idref="SimpleEmitterComponentImplementation" /> <configProperty> - <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name> + <name>edu.vanderbilt.dre.CIAO.ComponentHomeId</name> <value> <type> <kind>tk_string</kind> @@ -180,7 +202,7 @@ <source/> <implementation xmi:idref="SimpleConsumerComponentImplementation" /> <configProperty> - <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name> + <name>edu.vanderbilt.dre.CIAO.ComponentHomeId</name> <value> <type> <kind>tk_string</kind> diff --git a/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/MultiplexConnectionExplicitHome.cdp b/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/MultiplexConnectionExplicitHome.cdp index c5bc81c852a..31f01a10415 100644 --- a/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/MultiplexConnectionExplicitHome.cdp +++ b/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/MultiplexConnectionExplicitHome.cdp @@ -66,6 +66,17 @@ <source/> <artifact xmi:idref="SimpleProvider_ExecArtifact" /> <artifact xmi:idref="SimpleProvider_SvntArtifact" /> + <execParameter> + <name>edu.vanderbilt.dre.DAnCE.ImplementationType</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>edu.vanderbilt.dre.CCM.HomedComponent</string> + </value> + </value> + </execParameter> </implementation> <implementation xmi:id="SimpleMultipleUserHomeImplementation"> @@ -125,6 +136,17 @@ <source/> <artifact xmi:idref="SimpleMultipleUser_ExecArtifact" /> <artifact xmi:idref="SimpleMultipleUser_SvntArtifact" /> + <execParameter> + <name>edu.vanderbilt.dre.DAnCE.ImplementationType</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>edu.vanderbilt.dre.CCM.HomedComponent</string> + </value> + </value> + </execParameter> </implementation> <instance xmi:id="SimpleProviderHomeInstance"> @@ -142,7 +164,7 @@ <source/> <implementation xmi:idref="SimpleProviderComponentImplementation" /> <configProperty> - <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name> + <name>edu.vanderbilt.dre.CIAO.ComponentHomeId</name> <value> <type> <kind>tk_string</kind> @@ -169,7 +191,7 @@ <source/> <implementation xmi:idref="SimpleMultipleUserComponentImplementation" /> <configProperty> - <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name> + <name>edu.vanderbilt.dre.CIAO.ComponentHomeId</name> <value> <type> <kind>tk_string</kind> @@ -188,7 +210,7 @@ <source/> <implementation xmi:idref="SimpleMultipleUserComponentImplementation" /> <configProperty> - <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name> + <name>edu.vanderbilt.dre.CIAO.ComponentHomeId</name> <value> <type> <kind>tk_string</kind> diff --git a/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/MultiplexConnectionExplicitHome_NS.cdp b/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/MultiplexConnectionExplicitHome_NS.cdp index fcb44451caa..8a26143627c 100644 --- a/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/MultiplexConnectionExplicitHome_NS.cdp +++ b/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/MultiplexConnectionExplicitHome_NS.cdp @@ -66,6 +66,17 @@ <source/> <artifact xmi:idref="SimpleProvider_ExecArtifact" /> <artifact xmi:idref="SimpleProvider_SvntArtifact" /> + <execParameter> + <name>edu.vanderbilt.dre.DAnCE.ImplementationType</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>edu.vanderbilt.dre.CCM.HomedComponent</string> + </value> + </value> + </execParameter> </implementation> <implementation xmi:id="SimpleMultipleUserHomeImplementation"> @@ -125,6 +136,17 @@ <source/> <artifact xmi:idref="SimpleMultipleUser_ExecArtifact" /> <artifact xmi:idref="SimpleMultipleUser_SvntArtifact" /> + <execParameter> + <name>edu.vanderbilt.dre.DAnCE.ImplementationType</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>edu.vanderbilt.dre.CCM.HomedComponent</string> + </value> + </value> + </execParameter> </implementation> <instance xmi:id="SimpleProviderHomeInstance"> @@ -142,7 +164,7 @@ <source/> <implementation xmi:idref="SimpleProviderComponentImplementation" /> <configProperty> - <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name> + <name>edu.vanderbilt.dre.CIAO.ComponentHomeId</name> <value> <type> <kind>tk_string</kind> @@ -180,7 +202,7 @@ <source/> <implementation xmi:idref="SimpleMultipleUserComponentImplementation" /> <configProperty> - <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name> + <name>edu.vanderbilt.dre.CIAO.ComponentHomeId</name> <value> <type> <kind>tk_string</kind> @@ -210,7 +232,7 @@ <source/> <implementation xmi:idref="SimpleMultipleUserComponentImplementation" /> <configProperty> - <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name> + <name>edu.vanderbilt.dre.CIAO.ComponentHomeId</name> <value> <type> <kind>tk_string</kind> diff --git a/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/MultiplexConnectionExplicitHome_NS_PL_DP.cdp b/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/MultiplexConnectionExplicitHome_NS_PL_DP.cdp index 6e00f7d41a8..dc68110477a 100644 --- a/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/MultiplexConnectionExplicitHome_NS_PL_DP.cdp +++ b/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/MultiplexConnectionExplicitHome_NS_PL_DP.cdp @@ -66,6 +66,17 @@ <source/> <artifact xmi:idref="SimpleProvider_ExecArtifact" /> <artifact xmi:idref="SimpleProvider_SvntArtifact" /> + <execParameter> + <name>edu.vanderbilt.dre.DAnCE.ImplementationType</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>edu.vanderbilt.dre.CCM.HomedComponent</string> + </value> + </value> + </execParameter> </implementation> <implementation xmi:id="SimpleMultipleUserHomeImplementation"> @@ -125,6 +136,17 @@ <source/> <artifact xmi:idref="SimpleMultipleUser_ExecArtifact" /> <artifact xmi:idref="SimpleMultipleUser_SvntArtifact" /> + <execParameter> + <name>edu.vanderbilt.dre.DAnCE.ImplementationType</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>edu.vanderbilt.dre.CCM.HomedComponent</string> + </value> + </value> + </execParameter> </implementation> <instance xmi:id="SimpleProviderHomeInstance"> @@ -142,7 +164,7 @@ <source/> <implementation xmi:idref="SimpleProviderComponentImplementation" /> <configProperty> - <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name> + <name>edu.vanderbilt.dre.CIAO.ComponentHomeId</name> <value> <type> <kind>tk_string</kind> @@ -180,7 +202,7 @@ <source/> <implementation xmi:idref="SimpleMultipleUserComponentImplementation" /> <configProperty> - <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name> + <name>edu.vanderbilt.dre.CIAO.ComponentHomeId</name> <value> <type> <kind>tk_string</kind> @@ -210,7 +232,7 @@ <source/> <implementation xmi:idref="SimpleMultipleUserComponentImplementation" /> <configProperty> - <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name> + <name>edu.vanderbilt.dre.CIAO.ComponentHomeId</name> <value> <type> <kind>tk_string</kind> diff --git a/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/MultiplexConnectionExplicitHome_NS_PL_SP.cdp b/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/MultiplexConnectionExplicitHome_NS_PL_SP.cdp index e5a4daa60c2..685e7817684 100644 --- a/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/MultiplexConnectionExplicitHome_NS_PL_SP.cdp +++ b/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/MultiplexConnectionExplicitHome_NS_PL_SP.cdp @@ -66,6 +66,17 @@ <source/> <artifact xmi:idref="SimpleProvider_ExecArtifact" /> <artifact xmi:idref="SimpleProvider_SvntArtifact" /> + <execParameter> + <name>edu.vanderbilt.dre.DAnCE.ImplementationType</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>edu.vanderbilt.dre.CCM.HomedComponent</string> + </value> + </value> + </execParameter> </implementation> <implementation xmi:id="SimpleMultipleUserHomeImplementation"> @@ -125,6 +136,17 @@ <source/> <artifact xmi:idref="SimpleMultipleUser_ExecArtifact" /> <artifact xmi:idref="SimpleMultipleUser_SvntArtifact" /> + <execParameter> + <name>edu.vanderbilt.dre.DAnCE.ImplementationType</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>edu.vanderbilt.dre.CCM.HomedComponent</string> + </value> + </value> + </execParameter> </implementation> <instance xmi:id="SimpleProviderHomeInstance"> @@ -142,7 +164,7 @@ <source/> <implementation xmi:idref="SimpleProviderComponentImplementation" /> <configProperty> - <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name> + <name>edu.vanderbilt.dre.CIAO.ComponentHomeId</name> <value> <type> <kind>tk_string</kind> @@ -180,7 +202,7 @@ <source/> <implementation xmi:idref="SimpleMultipleUserComponentImplementation" /> <configProperty> - <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name> + <name>edu.vanderbilt.dre.CIAO.ComponentHomeId</name> <value> <type> <kind>tk_string</kind> @@ -210,7 +232,7 @@ <source/> <implementation xmi:idref="SimpleMultipleUserComponentImplementation" /> <configProperty> - <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name> + <name>edu.vanderbilt.dre.CIAO.ComponentHomeId</name> <value> <type> <kind>tk_string</kind> diff --git a/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/PublishConnectionExplicitHome.cdp b/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/PublishConnectionExplicitHome.cdp index 32747bfc1bf..f67fd51bb0d 100644 --- a/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/PublishConnectionExplicitHome.cdp +++ b/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/PublishConnectionExplicitHome.cdp @@ -66,6 +66,17 @@ <source/> <artifact xmi:idref="SimplePublisher_ExecArtifact" /> <artifact xmi:idref="SimplePublisher_SvntArtifact" /> + <execParameter> + <name>edu.vanderbilt.dre.DAnCE.ImplementationType</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>edu.vanderbilt.dre.CCM.HomedComponent</string> + </value> + </value> + </execParameter> </implementation> <implementation xmi:id="SimpleConsumerHomeImplementation"> @@ -125,6 +136,17 @@ <source/> <artifact xmi:idref="SimpleConsumer_ExecArtifact" /> <artifact xmi:idref="SimpleConsumer_SvntArtifact" /> + <execParameter> + <name>edu.vanderbilt.dre.DAnCE.ImplementationType</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>edu.vanderbilt.dre.CCM.HomedComponent</string> + </value> + </value> + </execParameter> </implementation> <instance xmi:id="SimplePublisherHomeInstance"> @@ -142,7 +164,7 @@ <source/> <implementation xmi:idref="SimplePublisherComponentImplementation" /> <configProperty> - <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name> + <name>edu.vanderbilt.dre.CIAO.ComponentHomeId</name> <value> <type> <kind>tk_string</kind> @@ -169,7 +191,7 @@ <source/> <implementation xmi:idref="SimpleConsumerComponentImplementation" /> <configProperty> - <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name> + <name>edu.vanderbilt.dre.CIAO.ComponentHomeId</name> <value> <type> <kind>tk_string</kind> diff --git a/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/PublishConnectionExplicitHome_NS.cdp b/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/PublishConnectionExplicitHome_NS.cdp index 054e7964bea..73d217ed42e 100644 --- a/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/PublishConnectionExplicitHome_NS.cdp +++ b/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/PublishConnectionExplicitHome_NS.cdp @@ -66,6 +66,17 @@ <source/> <artifact xmi:idref="SimplePublisher_ExecArtifact" /> <artifact xmi:idref="SimplePublisher_SvntArtifact" /> + <execParameter> + <name>edu.vanderbilt.dre.DAnCE.ImplementationType</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>edu.vanderbilt.dre.CCM.HomedComponent</string> + </value> + </value> + </execParameter> </implementation> <implementation xmi:id="SimpleConsumerHomeImplementation"> @@ -125,6 +136,17 @@ <source/> <artifact xmi:idref="SimpleConsumer_ExecArtifact" /> <artifact xmi:idref="SimpleConsumer_SvntArtifact" /> + <execParameter> + <name>edu.vanderbilt.dre.DAnCE.ImplementationType</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>edu.vanderbilt.dre.CCM.HomedComponent</string> + </value> + </value> + </execParameter> </implementation> <instance xmi:id="SimplePublisherHomeInstance"> @@ -142,7 +164,7 @@ <source/> <implementation xmi:idref="SimplePublisherComponentImplementation" /> <configProperty> - <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name> + <name>edu.vanderbilt.dre.CIAO.ComponentHomeId</name> <value> <type> <kind>tk_string</kind> @@ -180,7 +202,7 @@ <source/> <implementation xmi:idref="SimpleConsumerComponentImplementation" /> <configProperty> - <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name> + <name>edu.vanderbilt.dre.CIAO.ComponentHomeId</name> <value> <type> <kind>tk_string</kind> diff --git a/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/SimpleComponentExplicitHome.cdp b/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/SimpleComponentExplicitHome.cdp index e9af75b1ac4..9177aa1e82e 100644 --- a/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/SimpleComponentExplicitHome.cdp +++ b/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/SimpleComponentExplicitHome.cdp @@ -67,6 +67,17 @@ <source/> <artifact xmi:idref="SimpleNull_ExecArtifact" /> <artifact xmi:idref="SimpleNull_SvntArtifact" /> + <execParameter> + <name>edu.vanderbilt.dre.DAnCE.ImplementationType</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>edu.vanderbilt.dre.CCM.HomedComponent</string> + </value> + </value> + </execParameter> </implementation> <instance xmi:id="SimpleNullHomeInstance"> @@ -84,7 +95,7 @@ <source/> <implementation xmi:idref="SimpleNullComponentImplementation" /> <configProperty> - <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name> + <name>edu.vanderbilt.dre.CIAO.ComponentHomeId</name> <value> <type> <kind>tk_string</kind> diff --git a/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/SimplexConnectionExplicitHome.cdp b/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/SimplexConnectionExplicitHome.cdp index 8283e9e869a..b41c9c04fa2 100644 --- a/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/SimplexConnectionExplicitHome.cdp +++ b/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/SimplexConnectionExplicitHome.cdp @@ -66,6 +66,17 @@ <source/> <artifact xmi:idref="SimpleProvider_ExecArtifact" /> <artifact xmi:idref="SimpleProvider_SvntArtifact" /> + <execParameter> + <name>edu.vanderbilt.dre.DAnCE.ImplementationType</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>edu.vanderbilt.dre.CCM.HomedComponent</string> + </value> + </value> + </execParameter> </implementation> <implementation xmi:id="SimpleUserHomeImplementation"> @@ -125,6 +136,17 @@ <source/> <artifact xmi:idref="SimpleUser_ExecArtifact" /> <artifact xmi:idref="SimpleUser_SvntArtifact" /> + <execParameter> + <name>edu.vanderbilt.dre.DAnCE.ImplementationType</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>edu.vanderbilt.dre.CCM.HomedComponent</string> + </value> + </value> + </execParameter> </implementation> <instance xmi:id="SimpleProviderHomeInstance"> @@ -142,7 +164,7 @@ <source/> <implementation xmi:idref="SimpleProviderComponentImplementation" /> <configProperty> - <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name> + <name>edu.vanderbilt.dre.CIAO.ComponentHomeId</name> <value> <type> <kind>tk_string</kind> @@ -169,7 +191,7 @@ <source/> <implementation xmi:idref="SimpleUserComponentImplementation" /> <configProperty> - <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name> + <name>edu.vanderbilt.dre.CIAO.ComponentHomeId</name> <value> <type> <kind>tk_string</kind> @@ -188,7 +210,7 @@ <source/> <implementation xmi:idref="SimpleUserComponentImplementation" /> <configProperty> - <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name> + <name>edu.vanderbilt.dre.CIAO.ComponentHomeId</name> <value> <type> <kind>tk_string</kind> diff --git a/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/SimplexConnectionExplicitHome_NS.cdp b/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/SimplexConnectionExplicitHome_NS.cdp index 799ec7d5fa6..726e586082c 100644 --- a/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/SimplexConnectionExplicitHome_NS.cdp +++ b/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/SimplexConnectionExplicitHome_NS.cdp @@ -66,6 +66,17 @@ <source/> <artifact xmi:idref="SimpleProvider_ExecArtifact" /> <artifact xmi:idref="SimpleProvider_SvntArtifact" /> + <execParameter> + <name>edu.vanderbilt.dre.DAnCE.ImplementationType</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>edu.vanderbilt.dre.CCM.HomedComponent</string> + </value> + </value> + </execParameter> </implementation> <implementation xmi:id="SimpleUserHomeImplementation"> @@ -125,6 +136,17 @@ <source/> <artifact xmi:idref="SimpleUser_ExecArtifact" /> <artifact xmi:idref="SimpleUser_SvntArtifact" /> + <execParameter> + <name>edu.vanderbilt.dre.DAnCE.ImplementationType</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>edu.vanderbilt.dre.CCM.HomedComponent</string> + </value> + </value> + </execParameter> </implementation> <instance xmi:id="SimpleProviderHomeInstance"> @@ -142,7 +164,7 @@ <source/> <implementation xmi:idref="SimpleProviderComponentImplementation" /> <configProperty> - <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name> + <name>edu.vanderbilt.dre.CIAO.ComponentHomeId</name> <value> <type> <kind>tk_string</kind> @@ -180,7 +202,7 @@ <source/> <implementation xmi:idref="SimpleUserComponentImplementation" /> <configProperty> - <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name> + <name>edu.vanderbilt.dre.CIAO.ComponentHomeId</name> <value> <type> <kind>tk_string</kind> @@ -210,7 +232,7 @@ <source/> <implementation xmi:idref="SimpleUserComponentImplementation" /> <configProperty> - <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name> + <name>edu.vanderbilt.dre.CIAO.ComponentHomeId</name> <value> <type> <kind>tk_string</kind> diff --git a/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/SimplexConnectionExplicitHome_NS_PL_DP.cdp b/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/SimplexConnectionExplicitHome_NS_PL_DP.cdp index 58eec7a4ff8..1f52c71a995 100644 --- a/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/SimplexConnectionExplicitHome_NS_PL_DP.cdp +++ b/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/SimplexConnectionExplicitHome_NS_PL_DP.cdp @@ -66,6 +66,17 @@ <source/> <artifact xmi:idref="SimpleProvider_ExecArtifact" /> <artifact xmi:idref="SimpleProvider_SvntArtifact" /> + <execParameter> + <name>edu.vanderbilt.dre.DAnCE.ImplementationType</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>edu.vanderbilt.dre.CCM.HomedComponent</string> + </value> + </value> + </execParameter> </implementation> <implementation xmi:id="SimpleUserHomeImplementation"> @@ -125,6 +136,17 @@ <source/> <artifact xmi:idref="SimpleUser_ExecArtifact" /> <artifact xmi:idref="SimpleUser_SvntArtifact" /> + <execParameter> + <name>edu.vanderbilt.dre.DAnCE.ImplementationType</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>edu.vanderbilt.dre.CCM.HomedComponent</string> + </value> + </value> + </execParameter> </implementation> <instance xmi:id="SimpleProviderHomeInstance"> @@ -142,7 +164,7 @@ <source/> <implementation xmi:idref="SimpleProviderComponentImplementation" /> <configProperty> - <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name> + <name>edu.vanderbilt.dre.CIAO.ComponentHomeId</name> <value> <type> <kind>tk_string</kind> @@ -180,7 +202,7 @@ <source/> <implementation xmi:idref="SimpleUserComponentImplementation" /> <configProperty> - <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name> + <name>edu.vanderbilt.dre.CIAO.ComponentHomeId</name> <value> <type> <kind>tk_string</kind> @@ -210,7 +232,7 @@ <source/> <implementation xmi:idref="SimpleUserComponentImplementation" /> <configProperty> - <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name> + <name>edu.vanderbilt.dre.CIAO.ComponentHomeId</name> <value> <type> <kind>tk_string</kind> diff --git a/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/SimplexConnectionExplicitHome_NS_PL_SP.cdp b/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/SimplexConnectionExplicitHome_NS_PL_SP.cdp index fff2817c3ab..9b8a86367c9 100644 --- a/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/SimplexConnectionExplicitHome_NS_PL_SP.cdp +++ b/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/SimplexConnectionExplicitHome_NS_PL_SP.cdp @@ -66,6 +66,17 @@ <source/> <artifact xmi:idref="SimpleProvider_ExecArtifact" /> <artifact xmi:idref="SimpleProvider_SvntArtifact" /> + <execParameter> + <name>edu.vanderbilt.dre.DAnCE.ImplementationType</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>edu.vanderbilt.dre.CCM.HomedComponent</string> + </value> + </value> + </execParameter> </implementation> <implementation xmi:id="SimpleUserHomeImplementation"> @@ -125,6 +136,17 @@ <source/> <artifact xmi:idref="SimpleUser_ExecArtifact" /> <artifact xmi:idref="SimpleUser_SvntArtifact" /> + <execParameter> + <name>edu.vanderbilt.dre.DAnCE.ImplementationType</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>edu.vanderbilt.dre.CCM.HomedComponent</string> + </value> + </value> + </execParameter> </implementation> <instance xmi:id="SimpleProviderHomeInstance"> @@ -142,7 +164,7 @@ <source/> <implementation xmi:idref="SimpleProviderComponentImplementation" /> <configProperty> - <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name> + <name>edu.vanderbilt.dre.CIAO.ComponentHomeId</name> <value> <type> <kind>tk_string</kind> @@ -180,7 +202,7 @@ <source/> <implementation xmi:idref="SimpleUserComponentImplementation" /> <configProperty> - <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name> + <name>edu.vanderbilt.dre.CIAO.ComponentHomeId</name> <value> <type> <kind>tk_string</kind> @@ -210,7 +232,7 @@ <source/> <implementation xmi:idref="SimpleUserComponentImplementation" /> <configProperty> - <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name> + <name>edu.vanderbilt.dre.CIAO.ComponentHomeId</name> <value> <type> <kind>tk_string</kind> diff --git a/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/SimplexConnectionExplicitHome_NilFacet.cdp b/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/SimplexConnectionExplicitHome_NilFacet.cdp index e9539795797..9ed8de4aa56 100644 --- a/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/SimplexConnectionExplicitHome_NilFacet.cdp +++ b/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/SimplexConnectionExplicitHome_NilFacet.cdp @@ -66,6 +66,17 @@ <source/> <artifact xmi:idref="SimpleNilFacetProvider_ExecArtifact" /> <artifact xmi:idref="SimpleNilFacetProvider_SvntArtifact" /> + <execParameter> + <name>edu.vanderbilt.dre.DAnCE.ImplementationType</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>edu.vanderbilt.dre.CCM.HomedComponent</string> + </value> + </value> + </execParameter> </implementation> <implementation xmi:id="SimpleNilFacetUserHomeImplementation"> @@ -125,6 +136,17 @@ <source/> <artifact xmi:idref="SimpleNilFacetUser_ExecArtifact" /> <artifact xmi:idref="SimpleNilFacetUser_SvntArtifact" /> + <execParameter> + <name>edu.vanderbilt.dre.DAnCE.ImplementationType</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>edu.vanderbilt.dre.CCM.HomedComponent</string> + </value> + </value> + </execParameter> </implementation> <instance xmi:id="SimpleNilFacetProviderHomeInstance"> @@ -142,7 +164,7 @@ <source/> <implementation xmi:idref="SimpleNilFacetProviderComponentImplementation" /> <configProperty> - <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name> + <name>edu.vanderbilt.dre.CIAO.ComponentHomeId</name> <value> <type> <kind>tk_string</kind> @@ -169,7 +191,7 @@ <source/> <implementation xmi:idref="SimpleNilFacetUserComponentImplementation" /> <configProperty> - <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name> + <name>edu.vanderbilt.dre.CIAO.ComponentHomeId</name> <value> <type> <kind>tk_string</kind> @@ -188,7 +210,7 @@ <source/> <implementation xmi:idref="SimpleNilFacetUserComponentImplementation" /> <configProperty> - <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name> + <name>edu.vanderbilt.dre.CIAO.ComponentHomeId</name> <value> <type> <kind>tk_string</kind> diff --git a/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/run_test.pl b/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/run_test.pl index 8cca3466bed..db0d579db58 100755 --- a/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/run_test.pl +++ b/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/run_test.pl @@ -86,7 +86,7 @@ sub kill_node_daemon { } for ($i = 0; $i < $nr_daemon; ++$i) { # in case shutdown did not perform as expected - $tg_daemons[$i]->KillAll ('ciao_componentserver'); + $tg_daemons[$i]->KillAll ('dance_locality_manager'); } } @@ -113,7 +113,7 @@ sub run_node_daemons { $nodename = $nodenames[$i]; $node_host = $tg_daemons[$i]->HostName (); $iiop = "iiop://$node_host:$port"; - $node_app = "$CIAO_ROOT/bin/ciao_componentserver"; + $node_app = "$DANCE_ROOT/bin/dance_locality_manager"; $d_cmd = "$DANCE_ROOT/bin/dance_node_manager"; $d_param = "-ORBEndpoint $iiop -s $node_app -n $nodename=$iorfile -t 30 --domain-nc corbaloc:rir:/NameService --instance-nc corbaloc:rir:/NameService"; diff --git a/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/run_test_cdr.pl b/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/run_test_cdr.pl index 901a98944bc..edd5eaf27eb 100755 --- a/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/run_test_cdr.pl +++ b/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/run_test_cdr.pl @@ -89,7 +89,7 @@ sub kill_node_daemon { } for ($i = 0; $i < $nr_daemon; ++$i) { # in case shutdown did not perform as expected - $tg_daemons[$i]->KillAll ('ciao_componentserver'); + $tg_daemons[$i]->KillAll ('dance_locality_manager'); } } @@ -116,7 +116,7 @@ sub run_node_daemons { $nodename = $nodenames[$i]; $node_host = $tg_daemons[$i]->HostName (); $iiop = "iiop://$node_host:$port"; - $node_app = "$CIAO_ROOT/bin/ciao_componentserver"; + $node_app = "$DANCE_ROOT/bin/dance_locality_manager"; $d_cmd = "$DANCE_ROOT/bin/dance_node_manager"; $d_param = "-ORBEndpoint $iiop -s $node_app -n $nodename=$iorfile -t 30 --domain-nc corbaloc:rir:/NameService --instance-nc corbaloc:rir:/NameService"; diff --git a/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/EmitsConnectionExplicitHome.cdp b/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/EmitsConnectionExplicitHome.cdp index 6ac17b1e9e9..cab85d47d4a 100644 --- a/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/EmitsConnectionExplicitHome.cdp +++ b/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/EmitsConnectionExplicitHome.cdp @@ -66,6 +66,17 @@ <source/> <artifact xmi:idref="SimpleEmitter_ExecArtifact" /> <artifact xmi:idref="SimpleEmitter_SvntArtifact" /> + <execParameter> + <name>edu.vanderbilt.dre.DAnCE.ImplementationType</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>edu.vanderbilt.dre.CCM.HomedComponent</string> + </value> + </value> + </execParameter> </implementation> <implementation xmi:id="SimpleConsumerHomeImplementation"> @@ -125,6 +136,17 @@ <source/> <artifact xmi:idref="SimpleConsumer_ExecArtifact" /> <artifact xmi:idref="SimpleConsumer_SvntArtifact" /> + <execParameter> + <name>edu.vanderbilt.dre.DAnCE.ImplementationType</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>edu.vanderbilt.dre.CCM.HomedComponent</string> + </value> + </value> + </execParameter> </implementation> <instance xmi:id="SimpleEmitterHomeInstance"> @@ -142,7 +164,7 @@ <source/> <implementation xmi:idref="SimpleEmitterComponentImplementation" /> <configProperty> - <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name> + <name>edu.vanderbilt.dre.CIAO.ComponentHomeId</name> <value> <type> <kind>tk_string</kind> @@ -169,7 +191,7 @@ <source/> <implementation xmi:idref="SimpleConsumerComponentImplementation" /> <configProperty> - <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name> + <name>edu.vanderbilt.dre.CIAO.ComponentHomeId</name> <value> <type> <kind>tk_string</kind> diff --git a/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/MultiplexConnectionExplicitHome.cdp b/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/MultiplexConnectionExplicitHome.cdp index 45ff31929c3..3914d6fb605 100644 --- a/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/MultiplexConnectionExplicitHome.cdp +++ b/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/MultiplexConnectionExplicitHome.cdp @@ -66,6 +66,17 @@ <source/> <artifact xmi:idref="SimpleProvider_ExecArtifact" /> <artifact xmi:idref="SimpleProvider_SvntArtifact" /> + <execParameter> + <name>edu.vanderbilt.dre.DAnCE.ImplementationType</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>edu.vanderbilt.dre.CCM.HomedComponent</string> + </value> + </value> + </execParameter> </implementation> <implementation xmi:id="SimpleMultipleUserHomeImplementation"> @@ -125,6 +136,17 @@ <source/> <artifact xmi:idref="SimpleMultipleUser_ExecArtifact" /> <artifact xmi:idref="SimpleMultipleUser_SvntArtifact" /> + <execParameter> + <name>edu.vanderbilt.dre.DAnCE.ImplementationType</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>edu.vanderbilt.dre.CCM.HomedComponent</string> + </value> + </value> + </execParameter> </implementation> <instance xmi:id="SimpleProviderHomeInstance"> @@ -142,7 +164,7 @@ <source/> <implementation xmi:idref="SimpleProviderComponentImplementation" /> <configProperty> - <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name> + <name>edu.vanderbilt.dre.CIAO.ComponentHomeId</name> <value> <type> <kind>tk_string</kind> @@ -169,7 +191,7 @@ <source/> <implementation xmi:idref="SimpleMultipleUserComponentImplementation" /> <configProperty> - <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name> + <name>edu.vanderbilt.dre.CIAO.ComponentHomeId</name> <value> <type> <kind>tk_string</kind> @@ -188,7 +210,7 @@ <source/> <implementation xmi:idref="SimpleMultipleUserComponentImplementation" /> <configProperty> - <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name> + <name>edu.vanderbilt.dre.CIAO.ComponentHomeId</name> <value> <type> <kind>tk_string</kind> diff --git a/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/PublishConnectionExplicitHome.cdp b/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/PublishConnectionExplicitHome.cdp index 53a0a54482d..5dba94fa3b7 100644 --- a/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/PublishConnectionExplicitHome.cdp +++ b/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/PublishConnectionExplicitHome.cdp @@ -66,6 +66,17 @@ <source/> <artifact xmi:idref="SimplePublisher_ExecArtifact" /> <artifact xmi:idref="SimplePublisher_SvntArtifact" /> + <execParameter> + <name>edu.vanderbilt.dre.DAnCE.ImplementationType</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>edu.vanderbilt.dre.CCM.HomedComponent</string> + </value> + </value> + </execParameter> </implementation> <implementation xmi:id="SimpleConsumerHomeImplementation"> @@ -125,6 +136,17 @@ <source/> <artifact xmi:idref="SimpleConsumer_ExecArtifact" /> <artifact xmi:idref="SimpleConsumer_SvntArtifact" /> + <execParameter> + <name>edu.vanderbilt.dre.DAnCE.ImplementationType</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>edu.vanderbilt.dre.CCM.HomedComponent</string> + </value> + </value> + </execParameter> </implementation> <instance xmi:id="SimplePublisherHomeInstance"> @@ -142,7 +164,7 @@ <source/> <implementation xmi:idref="SimplePublisherComponentImplementation" /> <configProperty> - <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name> + <name>edu.vanderbilt.dre.CIAO.ComponentHomeId</name> <value> <type> <kind>tk_string</kind> @@ -169,7 +191,7 @@ <source/> <implementation xmi:idref="SimpleConsumerComponentImplementation" /> <configProperty> - <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name> + <name>edu.vanderbilt.dre.CIAO.ComponentHomeId</name> <value> <type> <kind>tk_string</kind> diff --git a/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/SimpleAttributeExplicitHome.cdp b/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/SimpleAttributeExplicitHome.cdp index d66eef2c70b..228b8f1fed8 100644 --- a/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/SimpleAttributeExplicitHome.cdp +++ b/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/SimpleAttributeExplicitHome.cdp @@ -67,6 +67,17 @@ <source/> <artifact xmi:idref="SimpleAttribute_ExecArtifact" /> <artifact xmi:idref="SimpleAttribute_SvntArtifact" /> + <execParameter> + <name>edu.vanderbilt.dre.DAnCE.ImplementationType</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>edu.vanderbilt.dre.CCM.HomedComponent</string> + </value> + </value> + </execParameter> </implementation> <instance xmi:id="SimpleAttributeHomeInstance"> @@ -117,7 +128,7 @@ <source/> <implementation xmi:idref="SimpleAttributeComponentImplementation" /> <configProperty> - <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name> + <name>edu.vanderbilt.dre.CIAO.ComponentHomeId</name> <value> <type> <kind>tk_string</kind> diff --git a/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/SimpleComponentExplicitHome.cdp b/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/SimpleComponentExplicitHome.cdp index 5632d219c48..74cfec7d5b7 100644 --- a/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/SimpleComponentExplicitHome.cdp +++ b/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/SimpleComponentExplicitHome.cdp @@ -67,6 +67,17 @@ <source/> <artifact xmi:idref="SimpleNull_ExecArtifact" /> <artifact xmi:idref="SimpleNull_SvntArtifact" /> + <execParameter> + <name>edu.vanderbilt.dre.DAnCE.ImplementationType</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>edu.vanderbilt.dre.CCM.HomedComponent</string> + </value> + </value> + </execParameter> </implementation> <instance xmi:id="SimpleNullHomeInstance"> @@ -84,7 +95,7 @@ <source/> <implementation xmi:idref="SimpleNullComponentImplementation" /> <configProperty> - <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name> + <name>edu.vanderbilt.dre.CIAO.ComponentHomeId</name> <value> <type> <kind>tk_string</kind> diff --git a/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/SimplexConnectionExplicitHome.cdp b/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/SimplexConnectionExplicitHome.cdp index f3f1e1ca6e9..0654617740a 100644 --- a/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/SimplexConnectionExplicitHome.cdp +++ b/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/SimplexConnectionExplicitHome.cdp @@ -66,6 +66,17 @@ <source/> <artifact xmi:idref="SimpleProvider_ExecArtifact" /> <artifact xmi:idref="SimpleProvider_SvntArtifact" /> + <execParameter> + <name>edu.vanderbilt.dre.DAnCE.ImplementationType</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>edu.vanderbilt.dre.CCM.HomedComponent</string> + </value> + </value> + </execParameter> </implementation> <implementation xmi:id="SimpleUserHomeImplementation"> @@ -125,6 +136,17 @@ <source/> <artifact xmi:idref="SimpleUser_ExecArtifact" /> <artifact xmi:idref="SimpleUser_SvntArtifact" /> + <execParameter> + <name>edu.vanderbilt.dre.DAnCE.ImplementationType</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>edu.vanderbilt.dre.CCM.HomedComponent</string> + </value> + </value> + </execParameter> </implementation> <instance xmi:id="SimpleProviderHomeInstance"> @@ -142,7 +164,7 @@ <source/> <implementation xmi:idref="SimpleProviderComponentImplementation" /> <configProperty> - <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name> + <name>edu.vanderbilt.dre.CIAO.ComponentHomeId</name> <value> <type> <kind>tk_string</kind> @@ -169,7 +191,7 @@ <source/> <implementation xmi:idref="SimpleUserComponentImplementation" /> <configProperty> - <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name> + <name>edu.vanderbilt.dre.CIAO.ComponentHomeId</name> <value> <type> <kind>tk_string</kind> @@ -188,7 +210,7 @@ <source/> <implementation xmi:idref="SimpleUserComponentImplementation" /> <configProperty> - <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name> + <name>edu.vanderbilt.dre.CIAO.ComponentHomeId</name> <value> <type> <kind>tk_string</kind> diff --git a/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/TwoComponentsOneHome.cdp b/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/TwoComponentsOneHome.cdp index e02732e05bb..3c04127b3a3 100644 --- a/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/TwoComponentsOneHome.cdp +++ b/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/TwoComponentsOneHome.cdp @@ -66,6 +66,17 @@ <source/> <artifact xmi:idref="SimpleProvider_ExecArtifact" /> <artifact xmi:idref="SimpleProvider_SvntArtifact" /> + <execParameter> + <name>edu.vanderbilt.dre.DAnCE.ImplementationType</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>edu.vanderbilt.dre.CCM.HomedComponent</string> + </value> + </value> + </execParameter> </implementation> <implementation xmi:id="SimpleUserHomeImplementation"> @@ -125,6 +136,17 @@ <source/> <artifact xmi:idref="SimpleUser_ExecArtifact" /> <artifact xmi:idref="SimpleUser_SvntArtifact" /> + <execParameter> + <name>edu.vanderbilt.dre.DAnCE.ImplementationType</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>edu.vanderbilt.dre.CCM.HomedComponent</string> + </value> + </value> + </execParameter> </implementation> <instance xmi:id="SimpleProviderHomeInstance"> @@ -142,7 +164,7 @@ <source/> <implementation xmi:idref="SimpleProviderComponentImplementation" /> <configProperty> - <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name> + <name>edu.vanderbilt.dre.CIAO.ComponentHomeId</name> <value> <type> <kind>tk_string</kind> @@ -161,7 +183,7 @@ <source/> <implementation xmi:idref="SimpleProviderComponentImplementation" /> <configProperty> - <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name> + <name>edu.vanderbilt.dre.CIAO.ComponentHomeId</name> <value> <type> <kind>tk_string</kind> @@ -188,7 +210,7 @@ <source/> <implementation xmi:idref="SimpleUserComponentImplementation" /> <configProperty> - <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name> + <name>edu.vanderbilt.dre.CIAO.ComponentHomeId</name> <value> <type> <kind>tk_string</kind> @@ -207,7 +229,7 @@ <source/> <implementation xmi:idref="SimpleUserComponentImplementation" /> <configProperty> - <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name> + <name>edu.vanderbilt.dre.CIAO.ComponentHomeId</name> <value> <type> <kind>tk_string</kind> diff --git a/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/run_test.pl b/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/run_test.pl index 71c656d841b..4e7f73231b3 100755 --- a/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/run_test.pl +++ b/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/run_test.pl @@ -108,7 +108,7 @@ sub kill_open_processes { $NS->Kill (); $NS->TimedWait (1); } # in case shutdown did not perform as expected - $tg_executor->KillAll ('ciao_componentserver'); + $tg_executor->KillAll ('dance_locality_manager'); } @@ -119,7 +119,7 @@ sub run_node_daemons { $port = $ports[$i]; $nodename = $nodenames[$i]; $iiop = "iiop://localhost:$port"; - $node_app = "$CIAO_ROOT/bin/ciao_componentserver"; + $node_app = "$DANCE_ROOT/bin/dance_locality_manager"; $d_cmd = "$DANCE_ROOT/bin/dance_node_manager"; $d_param = "-ORBEndpoint $iiop -s $node_app -n $nodename=$iorfile -t 30 --domain-nc corbaloc:rir:/NameService --instance-nc corbaloc:rir:/NameService"; diff --git a/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/run_test_cdr.pl b/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/run_test_cdr.pl index 8c09290d6dc..e3b237cd221 100755 --- a/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/run_test_cdr.pl +++ b/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/run_test_cdr.pl @@ -109,7 +109,7 @@ sub kill_open_processes { $NS->Kill (); $NS->TimedWait (1); } # in case shutdown did not perform as expected - $tg_executor->KillAll ('ciao_componentserver'); + $tg_executor->KillAll ('dance_locality_manager'); } @@ -120,7 +120,7 @@ sub run_node_daemons { $port = $ports[$i]; $nodename = $nodenames[$i]; $iiop = "iiop://localhost:$port"; - $node_app = "$CIAO_ROOT/bin/ciao_componentserver"; + $node_app = "$CIAO_ROOT/bin/dance_locality_manager"; $d_cmd = "$DANCE_ROOT/bin/dance_node_manager"; $d_param = "-ORBEndpoint $iiop -s $node_app -n $nodename=$iorfile -t 30 --domain-nc corbaloc:rir:/NameService --instance-nc corbaloc:rir:/NameService"; diff --git a/CIAO/DAnCE/tests/CIAO/Progressive_Deployments/Plan_A.cdp b/CIAO/DAnCE/tests/CIAO/Progressive_Deployments/Plan_A.cdp index ee716fd3187..6a276488fb6 100644 --- a/CIAO/DAnCE/tests/CIAO/Progressive_Deployments/Plan_A.cdp +++ b/CIAO/DAnCE/tests/CIAO/Progressive_Deployments/Plan_A.cdp @@ -64,6 +64,17 @@ <source/> <artifact xmi:idref="Progressive_ExecArtifact" /> <artifact xmi:idref="Progressive_SvntArtifact" /> + <execParameter> + <name>edu.vanderbilt.dre.DAnCE.ImplementationType</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>edu.vanderbilt.dre.CCM.HomedComponent</string> + </value> + </value> + </execParameter> </implementation> <instance xmi:id="ProgressiveHomeInstance"> @@ -81,7 +92,7 @@ <source/> <implementation xmi:idref="ProgressiveComponentImplementation" /> <configProperty> - <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name> + <name>edu.vanderbilt.dre.CIAO.ComponentHomeId</name> <value> <type> <kind>tk_string</kind> diff --git a/CIAO/DAnCE/tests/CIAO/Progressive_Deployments/Plan_B.cdp b/CIAO/DAnCE/tests/CIAO/Progressive_Deployments/Plan_B.cdp index 6642f413142..a42fa8fd05a 100644 --- a/CIAO/DAnCE/tests/CIAO/Progressive_Deployments/Plan_B.cdp +++ b/CIAO/DAnCE/tests/CIAO/Progressive_Deployments/Plan_B.cdp @@ -64,6 +64,17 @@ <source/> <artifact xmi:idref="Progressive_ExecArtifact" /> <artifact xmi:idref="Progressive_SvntArtifact" /> + <execParameter> + <name>edu.vanderbilt.dre.DAnCE.ImplementationType</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>edu.vanderbilt.dre.CCM.HomedComponent</string> + </value> + </value> + </execParameter> </implementation> <instance xmi:id="ProgressiveHomeInstance"> @@ -81,7 +92,7 @@ <source/> <implementation xmi:idref="ProgressiveComponentImplementation" /> <configProperty> - <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name> + <name>edu.vanderbilt.dre.CIAO.ComponentHomeId</name> <value> <type> <kind>tk_string</kind> diff --git a/CIAO/DAnCE/tests/CIAO/Progressive_Deployments/Plan_C.cdp b/CIAO/DAnCE/tests/CIAO/Progressive_Deployments/Plan_C.cdp index dc62694effa..86ab9a921cc 100644 --- a/CIAO/DAnCE/tests/CIAO/Progressive_Deployments/Plan_C.cdp +++ b/CIAO/DAnCE/tests/CIAO/Progressive_Deployments/Plan_C.cdp @@ -66,6 +66,17 @@ <source/> <artifact xmi:idref="SimpleProvider_ExecArtifact" /> <artifact xmi:idref="SimpleProvider_SvntArtifact" /> + <execParameter> + <name>edu.vanderbilt.dre.DAnCE.ImplementationType</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>edu.vanderbilt.dre.CCM.HomedComponent</string> + </value> + </value> + </execParameter> </implementation> <implementation xmi:id="SimpleUserHomeImplementation"> @@ -125,6 +136,17 @@ <source/> <artifact xmi:idref="SimpleUser_ExecArtifact" /> <artifact xmi:idref="SimpleUser_SvntArtifact" /> + <execParameter> + <name>edu.vanderbilt.dre.DAnCE.ImplementationType</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>edu.vanderbilt.dre.CCM.HomedComponent</string> + </value> + </value> + </execParameter> </implementation> <instance xmi:id="SimpleProviderHomeInstance"> @@ -142,7 +164,7 @@ <source/> <implementation xmi:idref="SimpleProviderComponentImplementation" /> <configProperty> - <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name> + <name>edu.vanderbilt.dre.CIAO.ComponentHomeId</name> <value> <type> <kind>tk_string</kind> @@ -180,7 +202,7 @@ <source/> <implementation xmi:idref="SimpleUserComponentImplementation" /> <configProperty> - <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name> + <name>edu.vanderbilt.dre.CIAO.ComponentHomeId</name> <value> <type> <kind>tk_string</kind> diff --git a/CIAO/DAnCE/tests/CIAO/Progressive_Deployments/run_test.pl b/CIAO/DAnCE/tests/CIAO/Progressive_Deployments/run_test.pl index c06d1ad5bcf..ea23cc95761 100755 --- a/CIAO/DAnCE/tests/CIAO/Progressive_Deployments/run_test.pl +++ b/CIAO/DAnCE/tests/CIAO/Progressive_Deployments/run_test.pl @@ -103,7 +103,7 @@ sub kill_open_processes { $NS->TimedWait (1); } # in case shutdown did not perform as expected - $tg_executor->KillAll ('ciao_componentserver'); + $tg_executor->KillAll ('dance_locality_manager'); } sub run_node_daemons { @@ -113,7 +113,7 @@ sub run_node_daemons { $port = $ports[$i]; $nodename = $nodenames[$i]; $iiop = "iiop://localhost:$port"; - $node_app = "$CIAO_ROOT/bin/ciao_componentserver"; + $node_app = "$DANCE_ROOT/bin/dance_locality_manager"; $d_cmd = "$DANCE_ROOT/bin/dance_node_manager"; $d_param = "-ORBEndpoint $iiop -s $node_app -n $nodename=$iorfile -t 30 --instance-nc corbaloc:rir:/NameService"; diff --git a/CIAO/DAnCE/tests/LocalityManager/SpawnMultiple/Deployment.cdp b/CIAO/DAnCE/tests/LocalityManager/SpawnMultiple/Deployment.cdp new file mode 100644 index 00000000000..429a27661de --- /dev/null +++ b/CIAO/DAnCE/tests/LocalityManager/SpawnMultiple/Deployment.cdp @@ -0,0 +1,106 @@ +<Deployment:DeploymentPlan + xmlns:Deployment="http://www.omg.org/Deployment" + xmlns:xmi="http://www.omg.org/XMI" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd"> + <label>LocalityManager_SpawnMultiple</label> + <UUID>LocalityManager_SpawnMultiple</UUID> + + <implementation xmi:id="CompSvrImpl"> + <name>CompSvr</name> + <source /> + <artifact xmi:idref="CompSvrArt" /> + <execParameter> + <name>edu.vanderbilt.dre.DAnCE.ImplementationType</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>edu.vanderbilt.dre.DAnCE.LocalityManager</string> + </value> + </value> + </execParameter> + </implementation> + + + <instance xmi:id="CompSvrInst"> + <name>LocalityInstance</name> + <node>LocalityOne</node> + <source /> + <implementation xmi:idref="CompSvrImpl" /> + <configProperty> + <name>edu.vanderbilt.dre.DAnCE.LocalityArguments</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>-o InstOne.ior</string> + </value> + </value> + </configProperty> + </instance> + + <instance xmi:id="CompSvrInst2"> + <name>LocalityInstance2</name> + <node>LocalityOne</node> + <source /> + <implementation xmi:idref="CompSvrImpl" /> + <configProperty> + <name>edu.vanderbilt.dre.DAnCE.LocalityArguments</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>-o InstTwo.ior</string> + </value> + </value> + </configProperty> + </instance> + + <instance xmi:id="CompSvrInst3"> + <name>LocalityInstance3</name> + <node>LocalityOne</node> + <source /> + <implementation xmi:idref="CompSvrImpl" /> + <configProperty> + <name>edu.vanderbilt.dre.DAnCE.LocalityArguments</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>-o InstThree.ior</string> + </value> + </value> + </configProperty> + </instance> + + <instance xmi:id="CompSvrInst4"> + <name>LocalityInstance4</name> + <node>LocalityOne</node> + <source /> + <implementation xmi:idref="CompSvrImpl" /> + <configProperty> + <name>edu.vanderbilt.dre.DAnCE.LocalityArguments</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>-o InstFour.ior</string> + </value> + </value> + </configProperty> + </instance> + + <artifact xmi:id="CompSvrArt"> + <name>CompoSvrArtifactName</name> + <source /> + <node /> + <location>ciao_componentserver</location> + </artifact> +</Deployment:DeploymentPlan> + diff --git a/CIAO/DAnCE/tests/LocalityManager/SpawnMultiple/run_test.pl b/CIAO/DAnCE/tests/LocalityManager/SpawnMultiple/run_test.pl new file mode 100755 index 00000000000..da5225f465e --- /dev/null +++ b/CIAO/DAnCE/tests/LocalityManager/SpawnMultiple/run_test.pl @@ -0,0 +1,245 @@ +eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}' + & eval 'exec perl -S $0 $argv:q' + if 0; + +# $Id$ +# -*- perl -*- + +use lib "$ENV{'ACE_ROOT'}/bin"; +use PerlACE::TestTarget; + +$CIAO_ROOT = "$ENV{'CIAO_ROOT'}"; +$TAO_ROOT = "$ENV{'TAO_ROOT'}"; +$DANCE_ROOT = "$ENV{'DANCE_ROOT'}"; + +$daemons_running = 0; +$em_running = 0; +$ns_running = 0; + +$nr_daemon = 1; +@ports = ( 60001 ); +@iorbases = ( "InstOne.ior" ); +@iorfiles = 0; +@nodenames = ( "LocalityOne" ); + +# ior files other than daemon +# ior files other than daemon +$ior_nsbase = "ns.ior"; +$ior_nsfile = 0; +$ior_embase = "EM.ior"; +$ior_emfile = 0; + +# Processes +$E = 0; +$EM = 0; +$NS = 0; +@DEAMONS = 0; + +# targets +@tg_daemons = 0; +$tg_naming = 0; +$tg_exe_man = 0; +$tg_executor = 0; + +$status = 0; +$cdp_file = "Deployment.cdp"; + + +sub create_targets { + # naming service + $tg_naming = PerlACE::TestTarget::create_target (1) || die "Create target for ns failed\n"; + $tg_naming->AddLibPath ('.'); + # daemon + for ($i = 0; $i < $nr_daemon; ++$i) { + $tg_daemons[$i] = PerlACE::TestTarget::create_target ($i+1) || die "Create target for deamon $i failed\n"; + $tg_daemons[$i]->AddLibPath ('.'); + } + # execution manager + $tg_exe_man = PerlACE::TestTarget::create_target (1) || die "Create target for EM failed\n"; + $tg_exe_man->AddLibPath ('.'); + # executor (plan_launcher) + $tg_executor = PerlACE::TestTarget::create_target (1) || die "Create target for executor failed\n"; + $tg_executor->AddLibPath ('.'); +} + +sub init_ior_files { + $ior_nsfile = $tg_naming->LocalFile ($ior_nsbase); + $ior_emfile = $tg_exe_man->LocalFile ($ior_embase); + for ($i = 0; $i < $nr_daemon; ++$i) { + $iorfiles[$i] = $tg_daemons[$i]->LocalFile ($iorbases[$i]); + } + delete_ior_files (); +} + +# Delete if there are any .ior files. +sub delete_ior_files { + for ($i = 0; $i < $nr_daemon; ++$i) { + $tg_daemons[$i]->DeleteFile ($iorbases[$i]); + } + $tg_naming->DeleteFile ($ior_nsbase); + $tg_exe_man->DeleteFile ($ior_embase); + for ($i = 0; $i < $nr_daemon; ++$i) { + $iorfiles[$i] = $tg_daemons[$i]->LocalFile ($iorbases[$i]); + } +} + +sub kill_node_daemon { + for ($i = 0; $i < $nr_daemon; ++$i) { + $DEAMONS[$i]->Kill (); $DEAMONS[$i]->TimedWait (1); + } +} + +sub kill_open_processes { + if ($daemons_running == 1) { + kill_node_daemon (); + } + + if ($em_running == 1) { + $EM->Kill (); $EM->TimedWait (1); + } + + if ($ns_running == 1) { + $NS->Kill (); $NS->TimedWait (1); + } + # in case shutdown did not perform as expected + $tg_executor->KillAll ('dance_locality_manager'); +} + +sub run_node_daemons { + for ($i = 0; $i < $nr_daemon; ++$i) { + $iorbase = $iorbases[$i]; + $iorfile = $iorfiles[$i]; + $port = $ports[$i]; + $nodename = $nodenames[$i]; + $iiop = "iiop://localhost:$port"; + $node_app = "$DANCE_ROOT/bin/dance_locality_manager"; + + $d_cmd = "$DANCE_ROOT/bin/dance_node_manager"; + $d_param = "-ORBEndpoint $iiop -s $node_app -n $nodename=$iorfile -t 30 --domain-nc corbaloc:rir:/NameService"; + + print "Run dance_node_manager with $d_param\n"; + $DEAMONS[$i] = $tg_daemons[$i]->CreateProcess ($d_cmd, $d_param); + $DEAMONS[$i]->Spawn (); + + if ($tg_daemons[$i]->WaitForFileTimed($iorbase, + $tg_daemons[$i]->ProcessStartWaitInterval ()) == -1) { + print STDERR + "ERROR: The ior $iorfile file of node daemon $i could not be found\n"; + for (; $i >= 0; --$i) { + $DEAMONS[$i]->Kill (); $DEAMONS[$i]->TimedWait (1); + } + return -1; + } + } + return 0; +} + +create_targets (); +init_ior_files (); + +# Invoke naming service + +$NS = $tg_naming->CreateProcess ("$TAO_ROOT/orbsvcs/Naming_Service/Naming_Service", "-m 1 -ORBEndpoint iiop://localhost:60003 -o $ior_nsfile"); + +print STDERR "Starting Naming Service with -m 1 -ORBEndpoint iiop://localhost:60003 -o ns.ior\n"; + +$ns_status = $NS->Spawn (); + +if ($ns_status != 0) { + print STDERR "ERROR: Unable to execute the naming service\n"; + kill_open_processes (); + exit 1; +} + +if ($tg_naming->WaitForFileTimed ($ior_nsbase, + $tg_naming->ProcessStartWaitInterval ()) == -1) { + print STDERR "ERROR: cannot find naming service IOR file\n"; + $NS->Kill (); $NS->TimedWait (1); + exit 1; +} + +$ns_running = 1; +# Set up NamingService environment +$ENV{"NameServiceIOR"} = "corbaloc:iiop:localhost:60003/NameService"; + +# Invoke node daemon. +print "Invoking node daemon\n"; +$status = run_node_daemons (); + +if ($status != 0) { + print STDERR "ERROR: Unable to execute the node daemon\n"; + kill_open_processes (); + exit 1; +} + +$daemons_running = 1; + +# Invoke execution manager. +print "Invoking execution manager (dance_execution_manager.exe) with -e$ior_emfile\n"; +$EM = $tg_exe_man->CreateProcess ("$DANCE_ROOT/bin/dance_execution_manager", + "-e$ior_emfile --domain-nc corbaloc:rir:/NameService"); +$em_status = $EM->Spawn (); + +if ($em_status != 0) { + print STDERR "ERROR: dance_execution_manager returned $em_status"; + exit 1; +} + +if ($tg_exe_man->WaitForFileTimed ($ior_embase, + $tg_exe_man->ProcessStartWaitInterval ()) == -1) { + print STDERR + "ERROR: The ior file of execution manager could not be found\n"; + kill_open_processes (); + exit 1; +} + +$em_running = 1; + +# Invoke executor - start the application -. +print "Invoking executor - launch the application -\n"; + +print "Start dance_plan_launcher.exe with -x $cdp_file -k file://$ior_emfile\n"; +$E = $tg_executor->CreateProcess ("$DANCE_ROOT/bin/dance_plan_launcher", + "-x $cdp_file -k file://$ior_emfile"); + +$pl_status = $E->SpawnWaitKill (2 * $tg_executor->ProcessStartWaitInterval ()); + +if ($pl_status != 0) { + print STDERR "ERROR: dance_plan_launcher returned $pl_status\n"; + kill_open_processes (); + exit 1; +} + +for ($i = 0; $i < $nr_daemon; ++$i) { + if ($tg_daemons[$i]->WaitForFileTimed ($iorbases[$i], + $tg_daemons[$i]->ProcessStopWaitInterval ()) == -1) { + print STDERR "ERROR: The ior file of daemon $i could not be found\n"; + kill_open_processes (); + exit 1; + } +} + +print "Sleeping 10 seconds to allow task to complete\n"; +sleep (10); + +# Invoke executor - stop the application -. +print "Invoking executor - stop the application -\n"; +print "by running dance_plan_launcher.exe with -k file://$ior_emfile -x $cdp_file -q\n"; + +$E = $tg_executor->CreateProcess ("$DANCE_ROOT/bin/dance_plan_launcher", + "-k file://$ior_emfile -x $cdp_file -s"); +$pl_status = $E->SpawnWaitKill ($tg_executor->ProcessStartWaitInterval ()); + +if ($pl_status != 0) { + print STDERR "ERROR: dance_plan_launcher returned $pl_status\n"; + kill_open_processes (); + exit 1; +} + +print "Executor returned.\n"; +print "Shutting down rest of the processes.\n"; + +delete_ior_files (); +kill_open_processes (); + +exit $status; diff --git a/CIAO/DAnCE/tests/LocalityManager/SpawnOne/Deployment.cdp b/CIAO/DAnCE/tests/LocalityManager/SpawnOne/Deployment.cdp new file mode 100644 index 00000000000..8b3845fe149 --- /dev/null +++ b/CIAO/DAnCE/tests/LocalityManager/SpawnOne/Deployment.cdp @@ -0,0 +1,52 @@ +<Deployment:DeploymentPlan + xmlns:Deployment="http://www.omg.org/Deployment" + xmlns:xmi="http://www.omg.org/XMI" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd"> + <label>LocalityManager_SpawnOne</label> + <UUID>LocalityManager_SpawnOne</UUID> + + <implementation xmi:id="CompSvrImpl"> + <name>CompSvr</name> + <source /> + <artifact xmi:idref="CompSvrArt" /> + <execParameter> + <name>edu.vanderbilt.dre.DAnCE.ImplementationType</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>edu.vanderbilt.dre.DAnCE.LocalityManager</string> + </value> + </value> + </execParameter> + </implementation> + + + <instance xmi:id="CompSvrInst"> + <name>LocalityInstance</name> + <node>LocalityOne</node> + <source /> + <implementation xmi:idref="CompSvrImpl" /> + <configProperty> + <name>edu.vanderbilt.dre.DAnCE.LocalityArguments</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>-o InstOne.ior</string> + </value> + </value> + </configProperty> + </instance> + + <artifact xmi:id="CompSvrArt"> + <name>CompoSvrArtifactName</name> + <source /> + <node /> + <location>ciao_componentserver</location> + </artifact> +</Deployment:DeploymentPlan> + diff --git a/CIAO/DAnCE/tests/LocalityManager/SpawnOne/run_test.pl b/CIAO/DAnCE/tests/LocalityManager/SpawnOne/run_test.pl new file mode 100755 index 00000000000..da5225f465e --- /dev/null +++ b/CIAO/DAnCE/tests/LocalityManager/SpawnOne/run_test.pl @@ -0,0 +1,245 @@ +eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}' + & eval 'exec perl -S $0 $argv:q' + if 0; + +# $Id$ +# -*- perl -*- + +use lib "$ENV{'ACE_ROOT'}/bin"; +use PerlACE::TestTarget; + +$CIAO_ROOT = "$ENV{'CIAO_ROOT'}"; +$TAO_ROOT = "$ENV{'TAO_ROOT'}"; +$DANCE_ROOT = "$ENV{'DANCE_ROOT'}"; + +$daemons_running = 0; +$em_running = 0; +$ns_running = 0; + +$nr_daemon = 1; +@ports = ( 60001 ); +@iorbases = ( "InstOne.ior" ); +@iorfiles = 0; +@nodenames = ( "LocalityOne" ); + +# ior files other than daemon +# ior files other than daemon +$ior_nsbase = "ns.ior"; +$ior_nsfile = 0; +$ior_embase = "EM.ior"; +$ior_emfile = 0; + +# Processes +$E = 0; +$EM = 0; +$NS = 0; +@DEAMONS = 0; + +# targets +@tg_daemons = 0; +$tg_naming = 0; +$tg_exe_man = 0; +$tg_executor = 0; + +$status = 0; +$cdp_file = "Deployment.cdp"; + + +sub create_targets { + # naming service + $tg_naming = PerlACE::TestTarget::create_target (1) || die "Create target for ns failed\n"; + $tg_naming->AddLibPath ('.'); + # daemon + for ($i = 0; $i < $nr_daemon; ++$i) { + $tg_daemons[$i] = PerlACE::TestTarget::create_target ($i+1) || die "Create target for deamon $i failed\n"; + $tg_daemons[$i]->AddLibPath ('.'); + } + # execution manager + $tg_exe_man = PerlACE::TestTarget::create_target (1) || die "Create target for EM failed\n"; + $tg_exe_man->AddLibPath ('.'); + # executor (plan_launcher) + $tg_executor = PerlACE::TestTarget::create_target (1) || die "Create target for executor failed\n"; + $tg_executor->AddLibPath ('.'); +} + +sub init_ior_files { + $ior_nsfile = $tg_naming->LocalFile ($ior_nsbase); + $ior_emfile = $tg_exe_man->LocalFile ($ior_embase); + for ($i = 0; $i < $nr_daemon; ++$i) { + $iorfiles[$i] = $tg_daemons[$i]->LocalFile ($iorbases[$i]); + } + delete_ior_files (); +} + +# Delete if there are any .ior files. +sub delete_ior_files { + for ($i = 0; $i < $nr_daemon; ++$i) { + $tg_daemons[$i]->DeleteFile ($iorbases[$i]); + } + $tg_naming->DeleteFile ($ior_nsbase); + $tg_exe_man->DeleteFile ($ior_embase); + for ($i = 0; $i < $nr_daemon; ++$i) { + $iorfiles[$i] = $tg_daemons[$i]->LocalFile ($iorbases[$i]); + } +} + +sub kill_node_daemon { + for ($i = 0; $i < $nr_daemon; ++$i) { + $DEAMONS[$i]->Kill (); $DEAMONS[$i]->TimedWait (1); + } +} + +sub kill_open_processes { + if ($daemons_running == 1) { + kill_node_daemon (); + } + + if ($em_running == 1) { + $EM->Kill (); $EM->TimedWait (1); + } + + if ($ns_running == 1) { + $NS->Kill (); $NS->TimedWait (1); + } + # in case shutdown did not perform as expected + $tg_executor->KillAll ('dance_locality_manager'); +} + +sub run_node_daemons { + for ($i = 0; $i < $nr_daemon; ++$i) { + $iorbase = $iorbases[$i]; + $iorfile = $iorfiles[$i]; + $port = $ports[$i]; + $nodename = $nodenames[$i]; + $iiop = "iiop://localhost:$port"; + $node_app = "$DANCE_ROOT/bin/dance_locality_manager"; + + $d_cmd = "$DANCE_ROOT/bin/dance_node_manager"; + $d_param = "-ORBEndpoint $iiop -s $node_app -n $nodename=$iorfile -t 30 --domain-nc corbaloc:rir:/NameService"; + + print "Run dance_node_manager with $d_param\n"; + $DEAMONS[$i] = $tg_daemons[$i]->CreateProcess ($d_cmd, $d_param); + $DEAMONS[$i]->Spawn (); + + if ($tg_daemons[$i]->WaitForFileTimed($iorbase, + $tg_daemons[$i]->ProcessStartWaitInterval ()) == -1) { + print STDERR + "ERROR: The ior $iorfile file of node daemon $i could not be found\n"; + for (; $i >= 0; --$i) { + $DEAMONS[$i]->Kill (); $DEAMONS[$i]->TimedWait (1); + } + return -1; + } + } + return 0; +} + +create_targets (); +init_ior_files (); + +# Invoke naming service + +$NS = $tg_naming->CreateProcess ("$TAO_ROOT/orbsvcs/Naming_Service/Naming_Service", "-m 1 -ORBEndpoint iiop://localhost:60003 -o $ior_nsfile"); + +print STDERR "Starting Naming Service with -m 1 -ORBEndpoint iiop://localhost:60003 -o ns.ior\n"; + +$ns_status = $NS->Spawn (); + +if ($ns_status != 0) { + print STDERR "ERROR: Unable to execute the naming service\n"; + kill_open_processes (); + exit 1; +} + +if ($tg_naming->WaitForFileTimed ($ior_nsbase, + $tg_naming->ProcessStartWaitInterval ()) == -1) { + print STDERR "ERROR: cannot find naming service IOR file\n"; + $NS->Kill (); $NS->TimedWait (1); + exit 1; +} + +$ns_running = 1; +# Set up NamingService environment +$ENV{"NameServiceIOR"} = "corbaloc:iiop:localhost:60003/NameService"; + +# Invoke node daemon. +print "Invoking node daemon\n"; +$status = run_node_daemons (); + +if ($status != 0) { + print STDERR "ERROR: Unable to execute the node daemon\n"; + kill_open_processes (); + exit 1; +} + +$daemons_running = 1; + +# Invoke execution manager. +print "Invoking execution manager (dance_execution_manager.exe) with -e$ior_emfile\n"; +$EM = $tg_exe_man->CreateProcess ("$DANCE_ROOT/bin/dance_execution_manager", + "-e$ior_emfile --domain-nc corbaloc:rir:/NameService"); +$em_status = $EM->Spawn (); + +if ($em_status != 0) { + print STDERR "ERROR: dance_execution_manager returned $em_status"; + exit 1; +} + +if ($tg_exe_man->WaitForFileTimed ($ior_embase, + $tg_exe_man->ProcessStartWaitInterval ()) == -1) { + print STDERR + "ERROR: The ior file of execution manager could not be found\n"; + kill_open_processes (); + exit 1; +} + +$em_running = 1; + +# Invoke executor - start the application -. +print "Invoking executor - launch the application -\n"; + +print "Start dance_plan_launcher.exe with -x $cdp_file -k file://$ior_emfile\n"; +$E = $tg_executor->CreateProcess ("$DANCE_ROOT/bin/dance_plan_launcher", + "-x $cdp_file -k file://$ior_emfile"); + +$pl_status = $E->SpawnWaitKill (2 * $tg_executor->ProcessStartWaitInterval ()); + +if ($pl_status != 0) { + print STDERR "ERROR: dance_plan_launcher returned $pl_status\n"; + kill_open_processes (); + exit 1; +} + +for ($i = 0; $i < $nr_daemon; ++$i) { + if ($tg_daemons[$i]->WaitForFileTimed ($iorbases[$i], + $tg_daemons[$i]->ProcessStopWaitInterval ()) == -1) { + print STDERR "ERROR: The ior file of daemon $i could not be found\n"; + kill_open_processes (); + exit 1; + } +} + +print "Sleeping 10 seconds to allow task to complete\n"; +sleep (10); + +# Invoke executor - stop the application -. +print "Invoking executor - stop the application -\n"; +print "by running dance_plan_launcher.exe with -k file://$ior_emfile -x $cdp_file -q\n"; + +$E = $tg_executor->CreateProcess ("$DANCE_ROOT/bin/dance_plan_launcher", + "-k file://$ior_emfile -x $cdp_file -s"); +$pl_status = $E->SpawnWaitKill ($tg_executor->ProcessStartWaitInterval ()); + +if ($pl_status != 0) { + print STDERR "ERROR: dance_plan_launcher returned $pl_status\n"; + kill_open_processes (); + exit 1; +} + +print "Executor returned.\n"; +print "Shutting down rest of the processes.\n"; + +delete_ior_files (); +kill_open_processes (); + +exit $status; diff --git a/CIAO/MPC/config/ciao_componentserver_stub.mpb b/CIAO/MPC/config/ciao_componentserver_stub.mpb index 2fb84b64754..c8772042a72 100644 --- a/CIAO/MPC/config/ciao_componentserver_stub.mpb +++ b/CIAO/MPC/config/ciao_componentserver_stub.mpb @@ -1,7 +1,7 @@ // -*- MPC -*- // $Id$ -project : ccm_cookie, ccm_configvalue, ccm_componentserver_stub { +project : ccm_cookie, ccm_configvalue, ccm_componentserver_stub, ciao_logger { after += CIAO_ComponentServer_stub libs += CIAO_ComponentServer_stub } diff --git a/CIAO/ciao/ComponentServer/CIAO_ComponentServer.mpc b/CIAO/ciao/ComponentServer/CIAO_ComponentServer.mpc index 0c13d5f597b..d7d97458828 100644 --- a/CIAO/ciao/ComponentServer/CIAO_ComponentServer.mpc +++ b/CIAO/ciao/ComponentServer/CIAO_ComponentServer.mpc @@ -42,7 +42,8 @@ project(CIAO_CS_Client_IDL) : install, ciaoidldefaults, anytypecode { } project(CIAO_ComponentServer_stub) : install, ccm_componentserver_stub, ciaolib_with_idl, ciao_output, \ - messaging, anytypecode, ciao_lib { + messaging, anytypecode, ciao_logger, ciao_lib, ccm_configvalue, \ + ccm_cookie { after += CIAO_ComponentServer_IDL CIAO_CS_Client_IDL dynamicflags = CIAO_COMPONENTSERVER_STUB_BUILD_DLL @@ -52,6 +53,8 @@ project(CIAO_ComponentServer_stub) : install, ccm_componentserver_stub, ciaolib_ CIAO_ComponentServerC.cpp CIAO_CS_ClientC.cpp CIAO_PropertiesC.cpp + Server_init.cpp + Client_init.cpp } Header_Files { CIAO_ComponentServer_stub_export.h @@ -76,8 +79,6 @@ project(CIAO_CS_Client_svnt) : install, ccm_svnt, ccm_componentserver_svnt, ciao } Source_Files { CIAO_ServerActivator_Impl.cpp - Server_init.cpp - Client_init.cpp CIAO_ComponentInstallation_Impl.cpp CIAO_CS_ClientS.cpp } diff --git a/CIAO/ciao/ComponentServer/CIAO_Properties.idl b/CIAO/ciao/ComponentServer/CIAO_Properties.idl index bb4a39995c4..f4d4d6c491b 100644 --- a/CIAO/ciao/ComponentServer/CIAO_Properties.idl +++ b/CIAO/ciao/ComponentServer/CIAO_Properties.idl @@ -15,6 +15,10 @@ module CIAO const string SVNT_ENTRYPT = "edu.vanderbilt.dre.CIAO.ServantEntrypoint"; const string SVNT_ARTIFACT = "edu.vanderbilt.dre.CIAO.ServantArtifact"; const string EXEC_ARTIFACT = "edu.vanderbilt.dre.CIAO.ExecutorArtifact"; + const string COMPONENT_FACTORY = "component factory"; + const string HOME_FACTORY = "home factory"; + const string COMPONENT_HOME = "edu.vanderbilt.dre.CIAO.ComponentHomeId"; + const string CONTAINER_ID = "edu.vanderbilt.dre.CIAO.ContainerId"; const string SERVER_UUID = "edu.vanderbilt.dre.CIAO.ServerUUID"; const string SERVER_EXECUTABLE = "edu.vanderbilt.dre.CIAO.ComponentServer.Executable"; const string SERVER_ARGUMENTS = "edu.vanderbilt.dre.CIAO.ComponentServer.Args"; diff --git a/CIAO/ciao/ComponentServer/Client_init.h b/CIAO/ciao/ComponentServer/Client_init.h index 5813c8afbfe..d2a7c9323c4 100644 --- a/CIAO/ciao/ComponentServer/Client_init.h +++ b/CIAO/ciao/ComponentServer/Client_init.h @@ -23,7 +23,8 @@ #include "tao/orbconf.h" #include "tao/AnyTypeCode/Any.h" #include "ccm/CCM_StandardConfiguratorC.h" -#include "ciao/ComponentServer/CIAO_CS_Client_svnt_export.h" + +#include "ciao/ComponentServer/CIAO_ComponentServer_stub_export.h" TAO_BEGIN_VERSIONED_NAMESPACE_DECL namespace CORBA @@ -42,7 +43,7 @@ namespace CIAO * should be call right after ORB initialization but we should try * to register these stuff automatically. */ - CIAO_CS_CLIENT_SVNT_Export int Client_init (CORBA::ORB_ptr o); + CIAO_COMPONENTSERVER_STUB_Export int Client_init (CORBA::ORB_ptr o); namespace Utility { @@ -52,10 +53,10 @@ namespace CIAO ACE_Equal_To<ACE_CString>, ACE_Null_Mutex> CONFIGVALUE_MAP; - CIAO_CS_CLIENT_SVNT_Export void build_config_values_map (CONFIGVALUE_MAP &map, + CIAO_COMPONENTSERVER_STUB_Export void build_config_values_map (CONFIGVALUE_MAP &map, const ::Components::ConfigValues &config); - CIAO_CS_CLIENT_SVNT_Export void build_config_values_sequence (::Components::ConfigValues &config, + CIAO_COMPONENTSERVER_STUB_Export void build_config_values_sequence (::Components::ConfigValues &config, const CONFIGVALUE_MAP &map); } } diff --git a/CIAO/ciao/ComponentServer/Server_init.h b/CIAO/ciao/ComponentServer/Server_init.h index b475dc8312f..d56c5fe50fc 100644 --- a/CIAO/ciao/ComponentServer/Server_init.h +++ b/CIAO/ciao/ComponentServer/Server_init.h @@ -16,7 +16,7 @@ #include /**/ "ace/pre.h" -#include "ciao/ComponentServer/CIAO_CS_Client_svnt_export.h" +#include "ciao/ComponentServer/CIAO_ComponentServer_stub_export.h" #if !defined ACE_LACKS_PRAGMA_ONCE #pragma once @@ -42,14 +42,14 @@ namespace CIAO * should be call right after ORB initialization but we should try * to register these stuff automatically. */ - CIAO_CS_CLIENT_SVNT_Export int Server_init (CORBA::ORB_ptr o); + CIAO_COMPONENTSERVER_STUB_Export int Server_init (CORBA::ORB_ptr o); namespace Utility { /// Write a string (usually a stringified IOR) to a file /// designated by the @c pathname. The file named will always get /// overwritten. - CIAO_CS_CLIENT_SVNT_Export int write_IOR (const ACE_TCHAR *pathname, + CIAO_COMPONENTSERVER_STUB_Export int write_IOR (const ACE_TCHAR *pathname, const char *IOR); } } diff --git a/CIAO/ciao/Containers/Container_Base.idl b/CIAO/ciao/Containers/Container_Base.idl index da2d406573a..7027afcc293 100644 --- a/CIAO/ciao/Containers/Container_Base.idl +++ b/CIAO/ciao/Containers/Container_Base.idl @@ -8,6 +8,7 @@ #include "tao/PortableServer/PortableServer_include.pidl" #include "ccm/CCM_Home.idl" #include "ccm/CCM_Base.idl" +#include "ccm/CCM_StandardConfigurator.idl" #include "ciao/Containers/CIAO_Servant_Activator.idl" module CIAO @@ -51,6 +52,9 @@ module CIAO in string servant_artifact, in string servant_entrypoint, in string name); + + void set_attributes (in Components::CCMObject name, + in Components::ConfigValues values); void activate_component (in Components::CCMObject name); diff --git a/CIAO/ciao/Containers/Session/Session_Container.cpp b/CIAO/ciao/Containers/Session/Session_Container.cpp index a6eb570c149..1165135b90d 100644 --- a/CIAO/ciao/Containers/Session/Session_Container.cpp +++ b/CIAO/ciao/Containers/Session/Session_Container.cpp @@ -1013,6 +1013,78 @@ namespace CIAO } void + Session_Container::set_attributes (Components::CCMObject_ptr compref, + const ::Components::ConfigValues & values) + { + CIAO_TRACE("Session_Container::activate_component"); + + try + { + + CIAO::Connector_Servant_Impl_Base * svt = 0; + + try + { + svt = + dynamic_cast<CIAO::Connector_Servant_Impl_Base *> ( + this->component_poa_->reference_to_servant (compref)); + } + catch (...) + { + throw InvalidComponent (); + } + + if (!svt) + { + throw CIAO::InvalidComponent (); + } + else + { + CIAO_DEBUG (9, + (LM_TRACE, + CLINFO + "Session_Container::set_attributes - " + "Configuring attribute values on " + "component object reference.\n")); + + svt->set_attributes (values); + } + } + catch (const CIAO::InvalidComponent &) + { + CIAO_ERROR (1, + (LM_ERROR, + CLINFO + "Session_Container::set_attributes - " + "Failed to retrieve servant and/or cast " + "to servant pointer.\n")); + throw; + } + catch (const CORBA::Exception &ex) + { + CIAO_ERROR (1, + (LM_ERROR, + CLINFO + "Session_Container::set_attributes - " + "Caught CORBA exception while configuring " + "component attributes: %C\n", + ex._info ().c_str ())); + throw; + } + catch (...) + { + CIAO_ERROR (1, + (LM_ERROR, + CLINFO + "Session_Container::set_attributes - " + "Caught unknown C++ eception while " + "configuring component attributes.\n")); + + throw; + } + } + + void Session_Container::activate_component ( Components::CCMObject_ptr compref) { diff --git a/CIAO/ciao/Containers/Session/Session_Container.h b/CIAO/ciao/Containers/Session/Session_Container.h index b25975389d5..a2ec4a05ae1 100644 --- a/CIAO/ciao/Containers/Session/Session_Container.h +++ b/CIAO/ciao/Containers/Session/Session_Container.h @@ -144,6 +144,10 @@ namespace CIAO ::Components::CCMObject_ptr user, const char * user_port); + /// Set attributes on a component + virtual void set_attributes (Components::CCMObject_ptr compref, + const ::Components::ConfigValues & values); + /// Activate component virtual void activate_component (Components::CCMObject_ptr compref); diff --git a/CIAO/ciao/Deployment/Handlers/CIAO_Deployment_Handlers.mpc b/CIAO/ciao/Deployment/Handlers/CIAO_Deployment_Handlers.mpc new file mode 100644 index 00000000000..c4135507ebc --- /dev/null +++ b/CIAO/ciao/Deployment/Handlers/CIAO_Deployment_Handlers.mpc @@ -0,0 +1,23 @@ +project (CIAO_Deployment_Handlers) : dance_stub, ciao_lib, ciao_output, \ + ciao_session_container, ciao_logger, ciao_componentserver_stub { + dynamicflags = CIAO_LOCALITY_HANDLER_BUILD_DLL + + Source_Files { + Component_Handler.cpp + Container_Handler.cpp + Home_Handler.cpp + Homed_Component_Handler.cpp + CIAO_State.cpp + CIAO_Handler_Common.cpp + Connection_Handler.cpp + } + + Header_Files { + Component_Handler.h + Container_Handler.h + Home_Handler.h + Homed_Component_Handler.h + CIAO_State.h + CIAO_Locality_Handler_Export.h + } +} diff --git a/CIAO/ciao/Deployment/Handlers/CIAO_Handler_Common.cpp b/CIAO/ciao/Deployment/Handlers/CIAO_Handler_Common.cpp new file mode 100644 index 00000000000..ac0ff2e7ff9 --- /dev/null +++ b/CIAO/ciao/Deployment/Handlers/CIAO_Handler_Common.cpp @@ -0,0 +1,63 @@ +// $Id$ +#include "CIAO_Handler_Common.h" + +#include "Deployment/Deployment_PlanErrorC.h" +#include "ciao/Logger/Log_Macros.h" +#include "ciao/Valuetype_Factories/ConfigValue.h" + +namespace CIAO +{ + const char * + Deployment_Common::get_implementation (const char *name, + const ::Deployment::DeploymentPlan &plan) + { + if (name == 0) + throw ::Deployment::PlanError (name, + "No such artifact"); + + for (CORBA::ULong i = 0; + i < plan.artifact.length (); + ++i) + { + if (ACE_OS::strcmp (plan.artifact[i].name.in (), + name) == 0) + { + if (plan.artifact[i].location.length () >= 1 && + plan.artifact[i].location[0] != 0) + return plan.artifact[i].location[0].in (); + else + { + CIAO_ERROR (1, (LM_ERROR, CLINFO + "Component_Handler_i::get_implementation - " + "No valid location for artifact <%C>\n", + name)); + throw ::Deployment::PlanError (name, + "No valid location field\n"); + } + } + } + + CIAO_ERROR (1, (LM_ERROR, CLINFO + "Component_Handler_i::get_implementation - " + "Unable to locate artifact <%C>\n", + name)); + throw ::Deployment::PlanError (name, + "Nonexistant artifact"); + return 0; + } + + void + Deployment_Common::create_attribute_configuration (const ::Deployment::Properties &props, + ::Components::ConfigValues & values) + { + values.length (props.length ()); + + for (CORBA::ULong i = 0; + i < props.length (); + ++i) + { + values[i] = new CIAO::ConfigValue_impl (props[i].name.in (), + props[i].value); + } + } +} diff --git a/CIAO/ciao/Deployment/Handlers/CIAO_Handler_Common.h b/CIAO/ciao/Deployment/Handlers/CIAO_Handler_Common.h new file mode 100644 index 00000000000..6a2901402d8 --- /dev/null +++ b/CIAO/ciao/Deployment/Handlers/CIAO_Handler_Common.h @@ -0,0 +1,41 @@ +/** + * @file CIAO_Handler_Common.h + * @author William R. Otte + * + * Operations common to all CIAO handlers. + * $Id$ + */ +#ifndef CIAO_HANDLER_COMMON_H +#define CIAO_HANDLER_COMMON_H + +#include <map> +#include <string> + +#include "ccm/CCM_StandardConfiguratorC.h" +#include "Deployment/Deployment_DeploymentPlanC.h" +#include "DAnCE/DAnCE_Utility.h" + +namespace CIAO +{ + class Deployment_Common + { + public: + // Temporary hack until Martin's artifact installation work can + // be implemented. + static const char * get_implementation (const char *name, + const ::Deployment::DeploymentPlan &plan); + + static void create_attribute_configuration (const ::Deployment::Properties &props, + ::Components::ConfigValues & values); + struct Instance_Info + { + std::string name; + ::DAnCE::Utility::PMAP_PTR pmap; + }; + + typedef std::map < std::string, Instance_Info > INSTANCES; + + }; +} + +#endif diff --git a/CIAO/ciao/Deployment/Handlers/CIAO_Locality_Handler_Export.h b/CIAO/ciao/Deployment/Handlers/CIAO_Locality_Handler_Export.h new file mode 100644 index 00000000000..e62e00464f2 --- /dev/null +++ b/CIAO/ciao/Deployment/Handlers/CIAO_Locality_Handler_Export.h @@ -0,0 +1,58 @@ + +// -*- C++ -*- +// $Id$ +// Definition for Win32 Export directives. +// This file is generated automatically by generate_export_file.pl CIAO_Locality_Handler +// ------------------------------ +#ifndef CIAO_LOCALITY_HANDLER_EXPORT_H +#define CIAO_LOCALITY_HANDLER_EXPORT_H + +#include "ace/config-all.h" + +#if defined (ACE_AS_STATIC_LIBS) && !defined (CIAO_LOCALITY_HANDLER_HAS_DLL) +# define CIAO_LOCALITY_HANDLER_HAS_DLL 0 +#endif /* ACE_AS_STATIC_LIBS && CIAO_LOCALITY_HANDLER_HAS_DLL */ + +#if !defined (CIAO_LOCALITY_HANDLER_HAS_DLL) +# define CIAO_LOCALITY_HANDLER_HAS_DLL 1 +#endif /* ! CIAO_LOCALITY_HANDLER_HAS_DLL */ + +#if defined (CIAO_LOCALITY_HANDLER_HAS_DLL) && (CIAO_LOCALITY_HANDLER_HAS_DLL == 1) +# if defined (CIAO_LOCALITY_HANDLER_BUILD_DLL) +# define CIAO_Locality_Handler_Export ACE_Proper_Export_Flag +# define CIAO_LOCALITY_HANDLER_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T) +# define CIAO_LOCALITY_HANDLER_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# else /* CIAO_LOCALITY_HANDLER_BUILD_DLL */ +# define CIAO_Locality_Handler_Export ACE_Proper_Import_Flag +# define CIAO_LOCALITY_HANDLER_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T) +# define CIAO_LOCALITY_HANDLER_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# endif /* CIAO_LOCALITY_HANDLER_BUILD_DLL */ +#else /* CIAO_LOCALITY_HANDLER_HAS_DLL == 1 */ +# define CIAO_Locality_Handler_Export +# define CIAO_LOCALITY_HANDLER_SINGLETON_DECLARATION(T) +# define CIAO_LOCALITY_HANDLER_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +#endif /* CIAO_LOCALITY_HANDLER_HAS_DLL == 1 */ + +// Set CIAO_LOCALITY_HANDLER_NTRACE = 0 to turn on library specific tracing even if +// tracing is turned off for ACE. +#if !defined (CIAO_LOCALITY_HANDLER_NTRACE) +# if (ACE_NTRACE == 1) +# define CIAO_LOCALITY_HANDLER_NTRACE 1 +# else /* (ACE_NTRACE == 1) */ +# define CIAO_LOCALITY_HANDLER_NTRACE 0 +# endif /* (ACE_NTRACE == 1) */ +#endif /* !CIAO_LOCALITY_HANDLER_NTRACE */ + +#if (CIAO_LOCALITY_HANDLER_NTRACE == 1) +# define CIAO_LOCALITY_HANDLER_TRACE(X) +#else /* (CIAO_LOCALITY_HANDLER_NTRACE == 1) */ +# if !defined (ACE_HAS_TRACE) +# define ACE_HAS_TRACE +# endif /* ACE_HAS_TRACE */ +# define CIAO_LOCALITY_HANDLER_TRACE(X) ACE_TRACE_IMPL(X) +# include "ace/Trace.h" +#endif /* (CIAO_LOCALITY_HANDLER_NTRACE == 1) */ + +#endif /* CIAO_LOCALITY_HANDLER_EXPORT_H */ + +// End of auto generated file. diff --git a/CIAO/ciao/Deployment/Handlers/CIAO_State.cpp b/CIAO/ciao/Deployment/Handlers/CIAO_State.cpp new file mode 100644 index 00000000000..da27aae66af --- /dev/null +++ b/CIAO/ciao/Deployment/Handlers/CIAO_State.cpp @@ -0,0 +1,158 @@ +// $Id$ + +#include "CIAO_State.h" +#include "ciao/Logger/Log_Macros.h" + +namespace CIAO +{ + void + Deployment_State::add_container (const char *id, + CIAO::Container_ptr container) + { + CIAO_TRACE ("Deployment_State::add_container"); + + if (CIAO_debug_level && // Let's only perform this lookup if we have logging enabled. + this->containers_.find (id) != this->containers_.end ()) + { + CIAO_ERROR (1, (LM_WARNING, CLINFO + "Deployment_State::add_container - " + "Warning: Attempting to add duplicate container reference\n")); + } + + this->containers_[id] = CIAO::Container::_duplicate (container); + } + + void + Deployment_State::remove_container (const char *id) + { + CIAO_TRACE ("Deployment_State::remove_container"); + + CONTAINERS::iterator pos = this->containers_.find (id); + + if (pos != this->containers_.end ()) + this->containers_.erase (pos); + } + + CIAO::Container_ptr + Deployment_State::fetch_container (const char *id) + { + CIAO_TRACE ("Deployment_State::fetch_container"); + + CONTAINERS::iterator pos = this->containers_.find (id); + + if (pos == this->containers_.end ()) return 0; + return CIAO::Container::_duplicate (pos->second.in ()); + } + + void + Deployment_State::add_home (const char *id, + const char *cont_id, + Components::CCMHome_ptr home) + { + CIAO_TRACE ("Deployment_State::add_home"); + + if (CIAO_debug_level && // Let's only perform this lookup if we have logging enabled. + this->homes_.find (id) != this->homes_.end ()) + { + CIAO_ERROR (1, (LM_WARNING, CLINFO + "Deployment_State::add_home - " + "Warning: Attempting to add duplicate home reference\n")); + } + + this->instance_container_[id] = cont_id; + this->homes_[id] = Components::CCMHome::_duplicate (home); + } + + void + Deployment_State::remove_home (const char *id) + { + CIAO_TRACE ("Deployment_State::remove_home"); + + HOMES::iterator pos = this->homes_.find (id); + + if (pos != this->homes_.end ()) + this->homes_.erase (pos); + + INSTANCE_CONTAINER::iterator cont = + this->instance_container_.find (id); + + if (cont != this->instance_container_.end ()) + this->instance_container_.erase (cont); + } + + Components::CCMHome_ptr + Deployment_State::fetch_home (const char *id) + { + CIAO_TRACE ("Deployment_State::fetch_home"); + + HOMES::iterator pos = this->homes_.find (id); + + if (pos == this->homes_.end ()) return 0; + return Components::CCMHome::_duplicate (pos->second.in ()); + } + + void + Deployment_State::add_component (const char *id, + const char *cont_id, + Components::CCMObject_ptr component) + { + CIAO_TRACE ("Deployment_State::add_component"); + + if (CIAO_debug_level && // Let's only perform this lookup if we have logging enabled. + this->components_.find (id) != this->components_.end ()) + { + CIAO_ERROR (1, (LM_WARNING, CLINFO + "Deployment_State::add_component - " + "Warning: Attempting to add duplicate component reference\n")); + } + + this->instance_container_[id] = cont_id; + this->components_[id] = Components::CCMObject::_duplicate (component); + } + + void + Deployment_State::remove_component (const char *id) + { + CIAO_TRACE ("Deployment_State::remove_component"); + + COMPONENTS::iterator pos = this->components_.find (id); + + if (pos != this->components_.end ()) + this->components_.erase (pos); + + INSTANCE_CONTAINER::iterator cont = + this->instance_container_.find (id); + + if (cont != this->instance_container_.end ()) + this->instance_container_.erase (cont); + } + + Components::CCMObject_ptr + Deployment_State::fetch_component (const char *id) + { + CIAO_TRACE ("Deployment_State::fetch_component"); + + COMPONENTS::iterator pos = this->components_.find (id); + + if (pos == this->components_.end ()) return 0; + return Components::CCMObject::_duplicate (pos->second.in ()); + } + + const char * + Deployment_State::instance_to_container (const char *id) + { + CIAO_TRACE ("Deployment_State::instance_to_container"); + + INSTANCE_CONTAINER::const_iterator cont = + this->instance_container_.find (id); + + if (cont != this->instance_container_.end ()) + return cont->second.c_str (); + + CIAO_ERROR (1, (LM_ERROR, CLINFO + "Deployment_State::instance_to_container - " + "Error: Unknown instance ID <%C>\n", + id)); + return 0; + } +} diff --git a/CIAO/ciao/Deployment/Handlers/CIAO_State.h b/CIAO/ciao/Deployment/Handlers/CIAO_State.h new file mode 100644 index 00000000000..557f827745a --- /dev/null +++ b/CIAO/ciao/Deployment/Handlers/CIAO_State.h @@ -0,0 +1,88 @@ +/** + * @file CIAO_State.h + * @author William R. Otte <wotte@dre.vanderbilt.edu> + * + * $Id$ + */ + +#ifndef CIAO_STATE_H +#define CIAO_STATE_H + +#include <map> +#include <string> + +#include "ace/Singleton.h" +#include "ciao/Containers/Container_BaseC.h" +#include "ccm/CCM_HomeC.h" +#include "ccm/CCM_ObjectC.h" +#include "CIAO_Locality_Handler_Export.h" +#include "ciao/Deployment/Handlers/Connection_Handler.h" + +namespace CIAO +{ + /** + * @class Deployment_State + * @brief Singleton collecting state for the instance handlers. + * + */ + class CIAO_Locality_Handler_Export Deployment_State + { + public: + + void add_container (const char *id, + CIAO::Container_ptr container); + + void remove_container (const char *id); + + CIAO::Container_ptr fetch_container (const char *id); + + const char * instance_to_container (const char *id); + + void add_home (const char *id, const char *container_id, + Components::CCMHome_ptr home); + + void remove_home (const char *id); + + Components::CCMHome_ptr fetch_home (const char *id); + + void add_component (const char *id, const char *container_id, + Components::CCMObject_ptr component); + + void remove_component (const char *id); + + Components::CCMObject_ptr fetch_component (const char *id); + + Connection_Handler connection_handler; + + private: + typedef std::map < std::string, + CIAO::Container_var > CONTAINERS; + + CONTAINERS containers_; + + typedef std::map < std::string, std::string > INSTANCE_CONTAINER; + + /// maps instance ids to containers. + INSTANCE_CONTAINER instance_container_; + + typedef std::map < std::string, + Components::CCMHome_var > HOMES; + + HOMES homes_; + + typedef std::map < std::string, + Components::CCMObject_var > COMPONENTS; + + COMPONENTS components_; + }; + + typedef ACE_Singleton <Deployment_State, + ACE_SYNCH_MUTEX> DEPLOYMENT_STATE; + +} + +CIAO_LOCALITY_HANDLER_SINGLETON_DECLARE (ACE_Singleton, + CIAO::Deployment_State, + ACE_SYNCH_MUTEX); + +#endif diff --git a/CIAO/ciao/Deployment/Handlers/Component_Handler.cpp b/CIAO/ciao/Deployment/Handlers/Component_Handler.cpp new file mode 100644 index 00000000000..cec456977d9 --- /dev/null +++ b/CIAO/ciao/Deployment/Handlers/Component_Handler.cpp @@ -0,0 +1,446 @@ +// $Id$ + +#include "Component_Handler.h" +#include "ciao/Logger/Log_Macros.h" +#include "ciao/ComponentServer/CIAO_PropertiesC.h" +#include "ciao/Containers/Container_BaseC.h" +#include "ccm/CCM_ObjectC.h" +#include "CIAO_State.h" + +namespace CIAO +{ + Component_Handler_i::Component_Handler_i (void) + { + CIAO_TRACE ("Component_Handler_i::Component_Handler_i"); + } + + // Destructor + Component_Handler_i::~Component_Handler_i (void) + { + CIAO_TRACE ("Component_Handler_i::~Component_Handler_i"); + } + + + char * + Component_Handler_i::instance_type (void) + { + CIAO_TRACE ("Component_Handler_i::instance_type"); + return CORBA::string_dup ("edu.dre.vanderbilt.dre.CCM.Component"); + } + + + void + Component_Handler_i::install_instance (const ::Deployment::DeploymentPlan &plan, + ::CORBA::ULong instanceRef, + ::CORBA::Any_out instance_reference) + { + CIAO_TRACE ("Component_Handler_i::install_instance"); + + const ::Deployment::InstanceDeploymentDescription &idd (plan.instance[instanceRef]); + const ::Deployment::MonolithicDeploymentDescription &mdd (plan.implementation[idd.implementationRef]); + + DAnCE::Utility::PROPERTY_MAP *pmap; + + ACE_NEW_THROW_EX (pmap, + DAnCE::Utility::PROPERTY_MAP (idd.configProperty.length () + + mdd.execParameter.length ()), + CORBA::NO_MEMORY ()); + + Deployment_Common::Instance_Info info; + info.name = idd.name.in (); + info.pmap.reset (pmap); + + + DAnCE::Utility::build_property_map (*pmap, + mdd.execParameter); + DAnCE::Utility::build_property_map (*pmap, + idd.configProperty); + + CORBA::String_var exec_art, exec_entry, svnt_art, svnt_entry, cont_id; + + using namespace CIAO::Deployment; + CORBA::Any val; + const char *tmp; + + if (pmap->find (SVNT_ENTRYPT, val) == 0) + { + val >>= tmp; + svnt_entry = tmp; + CIAO_DEBUG (9, (LM_TRACE, CLINFO + "Component_Handler_i::install_instance - " + "Found Servant entrypoint %C\n", svnt_entry.in ())); + } + else + { + CIAO_ERROR (1, (LM_ERROR, CLINFO + "Component_Handler_i::install_instance - " + "Error: No Servant entrypoint provided, aborting installation\n")); + throw ::Deployment::PlanError (idd.name.in (), + "No servant entrypoint identified."); + } + + if (pmap->find (SVNT_ARTIFACT, val) == 0) + { + val >>= tmp; + svnt_art = Deployment_Common::get_implementation (tmp, plan); + CIAO_DEBUG (9, (LM_TRACE, CLINFO + "Component_Handler_i::install_instance - " + "Found Servant artifact %C\n", svnt_art.in ())); + } + else + { + CIAO_ERROR (1, (LM_ERROR, CLINFO + "Component_Handler_i::install_instance - " + "Error: No Servant artifact provided, aborting installation\n")); + throw ::Deployment::PlanError (idd.name.in (), + "No servant artifact identified."); + } + + + if (pmap->find (EXEC_ARTIFACT, val) == 0) + { + val >>= tmp; + exec_art = Deployment_Common::get_implementation (tmp, plan); + CIAO_DEBUG (9, (LM_TRACE, CLINFO + "Component_Handler_i::install_instance - " + "Found executor artifact: %C\n", exec_art.in ())); + } + else + { + CIAO_ERROR (1, (LM_ERROR, CLINFO + "Component_Handler_i::install_instance - " + "Error: No Executor artifact provided, aborting installation\n")); + throw ::Deployment::PlanError (idd.name.in (), + "No executory artifact identified.\n"); + } + + if (pmap->find (COMPONENT_FACTORY, val) == 0) + { + val >>= tmp; + exec_entry = tmp; + CIAO_DEBUG (9, (LM_TRACE, CLINFO + "Component_Handler_i::install_instance - " + "Found executor entrypoint: %C\n", exec_entry.in ())); + } + else + { + CIAO_ERROR (1, (LM_ERROR, CLINFO + "Component_Handler_i::install_instance - " + "Error: No Executor artifact provided, aborting installation\n")); + throw ::Deployment::PlanError (idd.name.in (), + "No executor entrypoint provided\n"); + } + + if (pmap->find (CONTAINER_ID, val) == 0) + { + val >>= tmp; + cont_id = tmp; + CIAO_DEBUG (9, (LM_TRACE, CLINFO + "Component_Handler_i::install_instance - " + "Found executor entrypoint: %C\n", exec_entry.in ())); + } + else + { + CIAO_ERROR (4, (LM_INFO, CLINFO + "Component_Handler_i::install_instance - " + "No container provided, using default container for instance <%C>\n", + idd.name.in ())); + cont_id = ""; + } + + ::CIAO::Container_var container = DEPLOYMENT_STATE::instance ()->fetch_container (cont_id); + + if (CORBA::is_nil (container)) + { + CIAO_ERROR (1, (LM_INFO, CLINFO + "Component_Handler_i::install_instance - " + "Container with Id <%C> not installed, aborting.\n", + cont_id.in ())); + throw ::Deployment::PlanError (idd.name.in (), + "Invalid container\n"); + } + + Components::CCMObject_var comp_ref; + + try + { + comp_ref = container->install_component (exec_art, + exec_entry, + svnt_art, + svnt_entry, + idd.name.in ()); + + ::Components::ConfigValues attr_config; + Deployment_Common::create_attribute_configuration (idd.configProperty, + attr_config); + + container->set_attributes (comp_ref.in (), + attr_config); + } + catch (::CORBA::Exception &ex) + { + CIAO_ERROR (1, (LM_ERROR, CLINFO + "Component_Handler_i::install_instance - " + "Caught CORBA exception <%C>\n", + ex._info ().c_str ())); + throw ::Deployment::StartError (idd.name.in (), + ex._info ().c_str ()); + } + catch (...) + { + CIAO_ERROR (1, (LM_ERROR, CLINFO + "Component_Handler_i::install_instance - " + "Caught unknown C++ exception\n")); + throw ::Deployment::StartError (idd.name.in (), + "Unknown C++ exception\n"); + } + + if (CORBA::is_nil (comp_ref)) + { + CIAO_ERROR (1, (LM_ERROR, CLINFO + "Component_Handler_i::install_instance - " + "Container provided nil object reference for component.\n")); + throw ::Deployment::StartError (idd.name.in (), + "Container provided nil object reference"); + } + + this->instances_[idd.name.in ()] = info; + + DEPLOYMENT_STATE::instance ()->add_component (idd.name.in (), + cont_id, + comp_ref.in ()); + + CORBA::Any *retval; + ACE_NEW_THROW_EX (retval, + CORBA::Any (), + CORBA::NO_MEMORY ()); + + (*retval) <<= comp_ref; + instance_reference = retval; + } + + void + Component_Handler_i::activate_instance (const ::Deployment::DeploymentPlan &plan, + ::CORBA::ULong instanceRef, + const ::CORBA::Any &) + { + CIAO_TRACE ("Component_Handler_i::activate_instance"); + + const char *name = plan.instance[instanceRef].name.in (); + + const char *container = + DEPLOYMENT_STATE::instance ()->instance_to_container (name); + + CIAO::Container_var cont = + DEPLOYMENT_STATE::instance ()->fetch_container (container); + + Components::CCMObject_var comp = + DEPLOYMENT_STATE::instance ()->fetch_component (name); + + try + { + cont->activate_component (comp.in ()); + } + catch (CORBA::Exception &ex) + { + CIAO_ERROR (1, (LM_ERROR, CLINFO + "Component_Handler_i::activate_instance - " + "Caught CORBA Exception while activating instance <%C>: %C\n", + name, + ex._info ().c_str ())); + throw ::Deployment::StartError (name, + ex._info ().c_str ()); + } + catch (...) + { + CIAO_ERROR (1, (LM_ERROR, CLINFO + "Component_Handler_i::activate_instance - " + "Caught C++ Exception while activating instance <%C>\n", + name)); + throw ::Deployment::StartError (name, + "Unknown C++ exception during activation"); + } + } + + void + Component_Handler_i::passivate_instance (const ::Deployment::DeploymentPlan &plan, + ::CORBA::ULong instanceRef, + const ::CORBA::Any &) + { + CIAO_TRACE ("Component_Handler_i::passivate_instance"); + + const char *name = plan.instance[instanceRef].name.in (); + + const char *container = + DEPLOYMENT_STATE::instance ()->instance_to_container (name); + + CIAO::Container_var cont = + DEPLOYMENT_STATE::instance ()->fetch_container (container); + + Components::CCMObject_var comp = + DEPLOYMENT_STATE::instance ()->fetch_component (name); + + try + { + cont->passivate_component (comp.in ()); + } + catch (CORBA::Exception &ex) + { + CIAO_ERROR (1, (LM_ERROR, CLINFO + "Component_Handler_i::passivate_instance - " + "Caught CORBA Exception while passivating instance <%C>: %C\n", + name, + ex._info ().c_str ())); + throw ::Deployment::StopError (name, + ex._info ().c_str ()); + } + catch (...) + { + CIAO_ERROR (1, (LM_ERROR, CLINFO + "Component_Handler_i::passivate_instance - " + "Caught C++ Exception while passivating instance <%C>\n", + name)); + throw ::Deployment::StartError (name, + "Unknown C++ exception during passivation"); + } + } + + void + Component_Handler_i::remove_instance (const ::Deployment::DeploymentPlan & plan, + ::CORBA::ULong instanceRef, + const ::CORBA::Any &) + { + CIAO_TRACE ("Component_Handler_i::remove_instance"); + + const char *name = plan.instance[instanceRef].name.in (); + Deployment_Common::INSTANCES::iterator instance + = this->instances_.find (name); + + if (instance == this->instances_.end ()) + { + CIAO_ERROR (1, (LM_ERROR, CLINFO + "Component_Handler_i::remove_instance - " + "Instructed to remove unknown component instance <%C>\n", + name)); + throw ::Deployment::StopError (name, + "Wrong instance handler for component instance\n"); + } + + CIAO_DEBUG (8, (LM_DEBUG, CLINFO + "Component_Handler_i::remove_instance - " + "Attempting removal of component instance <%C>\n", + name)); + + CORBA::Any val; + const char *cont_id; + + if (instance->second.pmap->find (Deployment::CONTAINER_ID, val) == 0) + { + val >>= cont_id; + CIAO_DEBUG (9, (LM_TRACE, CLINFO + "Component_Handler_i::remove_instance - " + "Found component container: %C\n", cont_id)); + } + else + { + CIAO_ERROR (4, (LM_INFO, CLINFO + "Component_Handler_i::install_instance - " + "No container provided, using default container for instance <%C>\n", + name)); + cont_id = ""; + } + + ::CIAO::Container_var container = DEPLOYMENT_STATE::instance ()->fetch_container (cont_id); + + if (CORBA::is_nil (container)) + { + CIAO_ERROR (1, (LM_INFO, CLINFO + "Component_Handler_i::remove_instance - " + "Container with Id <%C> not installed, aborting.\n", + cont_id)); + throw ::Deployment::StopError (name, + "Invalid container\n"); + } + + Components::CCMObject_var ref + = DEPLOYMENT_STATE::instance ()->fetch_component (name); + + try + { + container->uninstall_component (ref); + } + catch (CORBA::Exception &ex) + { + CIAO_ERROR (1, (LM_ERROR, CLINFO + "Component_Handler_i::remove_instance - " + "Caught CORBA exception <%C>\n", + ex._info ().c_str ())); + throw ::Deployment::StopError (name, + ex._info ().c_str ()); + } + catch (...) + { + CIAO_ERROR (1, (LM_ERROR, CLINFO + "Component_Handler_i::remove_instance - " + "Caught unknown C++ exception\n")); + throw ::Deployment::StopError (name, + "Unknown C++ exception\n"); + } + + this->instances_.erase (instance); + DEPLOYMENT_STATE::instance ()->remove_component (name); + + CIAO_DEBUG (4, (LM_INFO, CLINFO + "Component_Handler_i::remove_instance - " + "Instance <%C> successfully removed\n", + name)); + } + + void + Component_Handler_i::provide_endpoint_reference (const ::Deployment::DeploymentPlan & plan, + ::CORBA::ULong connectionRef, + ::CORBA::Any_out endpoint_reference) + { + CIAO_TRACE ("Component_Handler_i::provide_endpoint_reference"); + + DEPLOYMENT_STATE::instance ()->connection_handler.provide_endpoint_reference (plan, + connectionRef, + endpoint_reference); + } + + void + Component_Handler_i::connect_instance (const ::Deployment::DeploymentPlan & plan, + ::CORBA::ULong connectionRef, + const ::CORBA::Any & provided_reference) + { + CIAO_TRACE ("Component_Handler_i::connect_instance"); + + DEPLOYMENT_STATE::instance ()->connection_handler.connect_instance (plan, + connectionRef, + provided_reference); + } + + + void + Component_Handler_i::disconnect_instance (const ::Deployment::DeploymentPlan & plan, + ::CORBA::ULong connectionRef) + { + CIAO_TRACE ("Component_Handler_i::disconnect_instance"); + DEPLOYMENT_STATE::instance ()->connection_handler.disconnect_instance (plan, + connectionRef); + + } + + void + Component_Handler_i::instance_configured (const ::Deployment::DeploymentPlan & plan, + ::CORBA::ULong instanceRef) + { + CIAO_TRACE ("Component_Handler_i::instance_configured"); + + Components::CCMObject_var ref = + DEPLOYMENT_STATE::instance ()->fetch_component (plan.instance[instanceRef].name.in ()); + + ref->configuration_complete (); + } + +} diff --git a/CIAO/ciao/Deployment/Handlers/Component_Handler.h b/CIAO/ciao/Deployment/Handlers/Component_Handler.h new file mode 100644 index 00000000000..abbede50524 --- /dev/null +++ b/CIAO/ciao/Deployment/Handlers/Component_Handler.h @@ -0,0 +1,84 @@ + +// -*- C++ -*- +// $Id$ + +/** + * @file Locality_Manager_Handler_Impl.h + * @author William R. Otte <wotte@dre.vanderbilt.edu> + * + * Installation handler implementation for spawning LocalityManagers. + */ + +#ifndef CIAO_COMPONENT_HANDLER_H +#define CIAO_COMPONENT_HANDLER_H + +#include "DAnCE/DAnCE_LocalityManagerS.h" +#include "DAnCE/DAnCE_Utility.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +#pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +#include "tao/LocalObject.h" +#include "ciao/Deployment/Handlers/CIAO_Locality_Handler_Export.h" +#include "ciao/Deployment/Handlers/CIAO_Handler_Common.h" + +namespace CIAO +{ + class CIAO_LocalityActivator_i; + + class CIAO_Locality_Handler_Export Component_Handler_i + : public virtual DAnCE::InstanceDeploymentHandler, + public virtual ::CORBA::LocalObject + { + public: + // Constructor + Component_Handler_i (void); + + // Destructor + virtual ~Component_Handler_i (void); + + virtual + char * instance_type (void); + + virtual + void install_instance (const ::Deployment::DeploymentPlan & plan, + ::CORBA::ULong instanceRef, + ::CORBA::Any_out instance_reference); + + virtual + void remove_instance (const ::Deployment::DeploymentPlan & plan, + ::CORBA::ULong instanceRef, + const ::CORBA::Any & instance_reference); + + virtual + void activate_instance (const ::Deployment::DeploymentPlan & , + ::CORBA::ULong , + const ::CORBA::Any &); + virtual + void passivate_instance (const ::Deployment::DeploymentPlan & , + ::CORBA::ULong , + const ::CORBA::Any &); + + virtual + void provide_endpoint_reference (const ::Deployment::DeploymentPlan & plan, + ::CORBA::ULong connectionRef, + ::CORBA::Any_out endpoint_reference); + + virtual + void connect_instance (const ::Deployment::DeploymentPlan & plan, + ::CORBA::ULong connectionRef, + const ::CORBA::Any & provided_reference); + + virtual + void disconnect_instance (const ::Deployment::DeploymentPlan & plan, + ::CORBA::ULong connectionRef); + + virtual + void instance_configured (const ::Deployment::DeploymentPlan & plan, + ::CORBA::ULong instanceRef); + private: + Deployment_Common::INSTANCES instances_; + }; +} +#endif diff --git a/CIAO/ciao/Deployment/Handlers/Connection_Handler.cpp b/CIAO/ciao/Deployment/Handlers/Connection_Handler.cpp new file mode 100644 index 00000000000..a4536656a9b --- /dev/null +++ b/CIAO/ciao/Deployment/Handlers/Connection_Handler.cpp @@ -0,0 +1,607 @@ +#include "Connection_Handler.h" +#include "ciao/Logger/Log_Macros.h" +#include "Deployment/Deployment_InvalidConnectionC.h" +#include "CIAO_State.h" +namespace CIAO +{ + void + Connection_Handler::provide_endpoint_reference (const ::Deployment::DeploymentPlan & plan, + ::CORBA::ULong connectionRef, + ::CORBA::Any_out endpoint_reference) + { + CIAO_TRACE ("Component_Handler_i::provide_endpoint_reference"); + + const ::Deployment::PlanConnectionDescription &conn = + plan.connection[connectionRef]; + + try + { + CIAO_DEBUG (9, (LM_TRACE, CLINFO + "Connection_Handler::provide_endpoint_reference - " + "Called for connection <%C>\n", + conn.name.in ())); + + for (CORBA::ULong i = 0; + i < conn.internalEndpoint.length (); + ++i) + { + if (conn.internalEndpoint[i].provider) + { + CORBA::Any *out; + CORBA::Object_var ref; + CORBA::ULong instanceRef = conn.internalEndpoint[i].instanceRef; + Components::CCMObject_var comp = + DEPLOYMENT_STATE::instance ()-> + fetch_component (plan.instance[instanceRef].name.in ()); + + if (CORBA::is_nil (comp.in ())) + { + CIAO_ERROR (1, (LM_ERROR, CLINFO + "Connection_Handler::provide_endpoint_reference - " + "Nil component reference from CIAO_State for <%C>\n", + plan.instance[instanceRef].name.in ())); + throw ::Deployment::InvalidConnection (conn.name.in (), + "Component instance not deployed when " + "gathering connections."); + } + + ACE_NEW_THROW_EX (out, + CORBA::Any (), + CORBA::NO_MEMORY ()); + + endpoint_reference = out; + + switch (conn.internalEndpoint[i].kind) + { + case ::Deployment::Facet: + ref = + comp->provide_facet (conn.internalEndpoint[i].portName.in ()); + (*out) <<= ref.in (); + break; + + case ::Deployment::EventConsumer: + ref = + comp->get_consumer (conn.internalEndpoint[i].portName.in ()); + (*out) <<= ref.in (); + break; + + default: + throw ::Deployment::InvalidConnection (conn.name.in (), + "Invalid provider port type."); + }; + + return; + } + } + } + catch (const CORBA::Exception &ex) + { + CIAO_ERROR (1, (LM_ERROR, CLINFO + "Connection_Handler::provide_endpoint_reference - " + "Caught CORBA Exception <%C> while fetching reference for " + "connection <%C>\n", + ex._info ().c_str (), + plan.connection[connectionRef].name.in ())); + throw ::Deployment::InvalidConnection (plan.connection[connectionRef].name.in (), + ex._info ().c_str ()); + + } + } + + void + Connection_Handler::connect_instance (const ::Deployment::DeploymentPlan & plan, + ::CORBA::ULong c_id, + const ::CORBA::Any & provided_reference) + { + CIAO_TRACE ("Connection_Handler::connect_instance"); + + const ::Deployment::PlanConnectionDescription &conn = plan.connection[c_id]; + const char *name = conn.name.in (); + + if (conn.internalEndpoint.length () == 0) + { + CIAO_ERROR (1, (LM_ERROR, CLINFO + "Connection_Handler::connect_instance - " + "Connection <%C> lacks an internalEndpoint.\n", + name)); + throw ::Deployment::InvalidConnection (name, + "No internal endpoint for connection\n"); + } + + CORBA::ULong endpoint (0); + + if (conn.internalEndpoint.length () > 1) + { + for (CORBA::ULong i = 0; + i < conn.internalEndpoint.length (); + ++i) + { + if (!conn.internalEndpoint[i].provider) + endpoint = i; + } + } + + switch (conn.internalEndpoint[endpoint].kind) + { + case Deployment::Facet: + this->connect_facet (plan, c_id, endpoint, provided_reference); + break; + + case Deployment::SimplexReceptacle: + case Deployment::MultiplexReceptacle: + this->connect_receptacle (plan, c_id, endpoint, provided_reference); + break; + + case Deployment::EventEmitter: + this->connect_emitter (plan, c_id, endpoint, provided_reference); + break; + + case Deployment::EventPublisher: + this->connect_publisher (plan, c_id, endpoint, provided_reference); + break; + + case Deployment::EventConsumer: + this->connect_consumer (plan, c_id, endpoint, provided_reference); + break; + + default: + CIAO_ERROR (1, (LM_ERROR, CLINFO + "Connection_Handler::connect_instance - " + "Unsupported port type.\n")); + throw ::Deployment::InvalidConnection (name, + "Unsupported port type"); + + } + } + + void + Connection_Handler::disconnect_instance (const ::Deployment::DeploymentPlan &, + ::CORBA::ULong) + { + CIAO_TRACE ("Connection_Handler::disconnect_instance"); + // no-op is current behavior, we'll do that for now. + } + + void + Connection_Handler::connect_facet (const ::Deployment::DeploymentPlan & plan, + ::CORBA::ULong connectionRef, + ::CORBA::ULong endpointRef, + const ::CORBA::Any & provided_reference) + { + CIAO_TRACE ("Connection_Handler::connect_facet"); + + const ::Deployment::PlanConnectionDescription &conn = + plan.connection[connectionRef]; + const ::Deployment::PlanSubcomponentPortEndpoint &endpoint = + conn.internalEndpoint[endpointRef]; + + CIAO_DEBUG (6, (LM_DEBUG, CLINFO + "Connection_Handler::connect_facet - " + "Connecting connection <%C> on instance <%C>\n", + conn.name.in (), + plan.instance[endpoint.instanceRef].name.in ())); + + if (this->is_local_facet (conn)) + { + CORBA::ULong other_endpointRef = (endpointRef + 1) % 2; + if (conn.internalEndpoint.length () == 2 && + (conn.internalEndpoint[other_endpointRef].kind == ::Deployment::MultiplexReceptacle || + conn.internalEndpoint[other_endpointRef].kind == ::Deployment::SimplexReceptacle)) + { + const ::Deployment::PlanSubcomponentPortEndpoint &other_endpoint = + conn.internalEndpoint[other_endpointRef]; + this->connect_local_port (plan.instance[endpoint.instanceRef].name.in (), + endpoint.portName.in (), + plan.instance[other_endpoint.instanceRef].name.in (), + other_endpoint.portName.in ()); + return; + } + else + { + CIAO_ERROR (1, (LM_ERROR, CLINFO + "Connection_Handler::connect_facet - " + "Error: Wrong number of internal endpoints for local facet connection\n")); + throw ::Deployment::InvalidConnection (conn.name.in (), + "Local facet connections require exactly 2 internalEndpoints"); + } + } + + if (conn.externalReference.length () == 0) + { + CIAO_ERROR (1, (LM_ERROR, CLINFO + "Connection_Handler::connect_facet - " + "Error: Expected external reference endpoint for connection <%C>", + conn.name.in ())); + throw ::Deployment::InvalidConnection (conn.name.in (), + "Expected external reference connection."); + } + + ::CORBA::Object_var obj; + provided_reference >>= CORBA::Any::to_object (obj); + + ::Components::CCMObject_var provided = ::Components::CCMObject::_narrow (obj.in ()); + + if (CORBA::is_nil (provided)) + { + CIAO_ERROR (1, (LM_ERROR, CLINFO + "Connection_Handler::connect_facet - " + "While connecting <%C>:" + "Provided reference for connection where primary is Facet must be " + "non-nil.\n", + plan.connection[connectionRef].name.in ())); + throw ::Deployment::InvalidConnection (plan.connection[connectionRef].name.in (), + "Provided reference for connection where primary is Facet must " + "be non-nil."); + + } + + ::Components::CCMObject_var facet_provider = + DEPLOYMENT_STATE::instance ()->fetch_component (plan.instance[endpoint.instanceRef].name.in ()); + + if (CORBA::is_nil (facet_provider)) + { + CIAO_ERROR (1, (LM_ERROR, CLINFO + "Connection_Handler::connect_facet - " + "While connecting <%C>:" + "Providing component not deployed.", + plan.connection[connectionRef].name.in ())); + throw ::Deployment::InvalidConnection (plan.connection[connectionRef].name.in (), + "Providing component not deployed."); + } + + CORBA::Object_var facet = + facet_provider->provide_facet (endpoint.portName.in ()); + + ::Components::Cookie_var cookie = provided->connect (conn.externalReference[0].portName.in (), + facet.in ()); + + CIAO_DEBUG (5, (LM_INFO, CLINFO + "Connection_Handler::connect_facet - " + "Connection <%C> successfully established.\n", + conn.name.in ())); + + this->cookies_[conn.name.in ()] = CONNECTION_INFO (cookie, + ::Components::CCMObject::_duplicate (provided)); + } + + void + Connection_Handler::connect_receptacle (const ::Deployment::DeploymentPlan & plan, + ::CORBA::ULong connectionRef, + ::CORBA::ULong endpointRef, + const ::CORBA::Any & provided_reference) + { + const ::Deployment::PlanConnectionDescription &conn = + plan.connection[connectionRef]; + const ::Deployment::PlanSubcomponentPortEndpoint &endpoint = + conn.internalEndpoint[endpointRef]; + + CIAO_DEBUG (6, (LM_DEBUG, CLINFO + "Connection_Handler::connect_receptacle - " + "Connecting connection <%C> on instance <%C>\n", + conn.name.in (), + plan.instance[endpoint.instanceRef].name.in ())); + + if (this->is_local_facet (conn)) + { + CORBA::ULong other_endpointRef = (endpointRef + 1) % 2; + if (conn.internalEndpoint.length () == 2 && + (conn.internalEndpoint[other_endpointRef].kind == ::Deployment::Facet)) + { + const ::Deployment::PlanSubcomponentPortEndpoint &other_endpoint = + conn.internalEndpoint[other_endpointRef]; + this->connect_local_port (plan.instance[other_endpoint.instanceRef].name.in (), + other_endpoint.portName.in (), + plan.instance[endpoint.instanceRef].name.in (), + endpoint.portName.in ()); + return; + } + else + { + CIAO_ERROR (1, (LM_ERROR, CLINFO + "Connection_Handler::connect_receptacle - " + "Error: Wrong number of internal endpoints for local receptacle connection\n")); + throw ::Deployment::InvalidConnection (conn.name.in (), + "Local receptacle connections require exactly 2 internalEndpoints"); + } + } + + ::CORBA::Object_var provided; + + if (!(provided_reference >>= CORBA::Any::to_object (provided))) + { + CIAO_ERROR (1, (LM_ERROR, CLINFO + "Connection_Handler::connect_facet - " + "Unable to extract provided reference to CORBA::Object\n", + plan.connection[connectionRef].name.in ())); + throw ::Deployment::InvalidConnection (plan.connection[connectionRef].name.in (), + "Unable to extract provided reference to CORBA Object."); + } + + if (conn.externalReference.length () != 0) + { + ::Components::CCMObject_var facet_provider = + ::Components::CCMObject::_narrow (provided.in ()); + + if (CORBA::is_nil (facet_provider.in ())) + { + CIAO_ERROR (1, (LM_ERROR, CLINFO + "Connection_Handler::connect_facet - " + "Unable to narrow provided external reference " + "to CCMObject in connection <%C>\n", + conn.name.in ())); + throw ::Deployment::InvalidConnection (conn.name.in (), + "Unable to narrow external reference to CCMObject\n"); + } + + provided = + facet_provider->provide_facet (conn.externalReference[0].portName.in ()); + } + + ::Components::CCMObject_var receptacle = + DEPLOYMENT_STATE::instance ()->fetch_component (plan.instance[endpoint.instanceRef].name.in ()); + + if (CORBA::is_nil (receptacle)) + { + CIAO_ERROR (1, (LM_ERROR, CLINFO + "Connection_Handler::connect_receptacle - " + "While connecting <%C>:" + "Receptacle component <%C> not deployed.\n", + plan.connection[connectionRef].name.in (), + plan.instance[endpoint.instanceRef].name.in ())); + throw ::Deployment::InvalidConnection (plan.connection[connectionRef].name.in (), + "Receptacle component not deployed."); + } + + ::Components::Cookie_var cookie = receptacle->connect (endpoint.portName.in (), + provided.in ()); + CIAO_DEBUG (5, (LM_INFO, CLINFO + "Connection_Handler::connect_receptacle - " + "Connection <%C> successfully established.\n", + conn.name.in ())); + + this->cookies_[conn.name.in ()] = CONNECTION_INFO (cookie, + ::Components::CCMObject::_duplicate (receptacle.in ())); + } + + void + Connection_Handler::connect_publisher (const ::Deployment::DeploymentPlan & plan, + ::CORBA::ULong connectionRef, + ::CORBA::ULong endpointRef, + const ::CORBA::Any & provided_reference) + { + CIAO_TRACE ("Connection_Handler::connect_publisher"); + + const ::Deployment::PlanConnectionDescription &conn = + plan.connection[connectionRef]; + const ::Deployment::PlanSubcomponentPortEndpoint &endpoint = + conn.internalEndpoint[endpointRef]; + + CIAO_DEBUG (6, (LM_DEBUG, CLINFO + "Connection_Handler::connect_publisher - " + "Connecting connection <%C> on instance <%C>\n", + conn.name.in (), + plan.instance[endpoint.instanceRef].name.in ())); + + ::CORBA::Object_var consumer; + + if (!(provided_reference >>= CORBA::Any::to_object (consumer)) || + CORBA::is_nil (consumer.in ())) + { + CIAO_ERROR (1, (LM_ERROR, CLINFO + "Connection_Handler::connect_publisher - " + "Unable to extract provided reference to CORBA::Object\n", + plan.connection[connectionRef].name.in ())); + throw ::Deployment::InvalidConnection (plan.connection[connectionRef].name.in (), + "Unable to extract provided reference to CORBA Object."); + } + + Components::EventConsumerBase_var event = + Components::EventConsumerBase::_unchecked_narrow (consumer); + + ::Components::CCMObject_var publisher = + DEPLOYMENT_STATE::instance ()->fetch_component (plan.instance[endpoint.instanceRef].name.in ()); + + if (CORBA::is_nil (publisher)) + { + CIAO_ERROR (1, (LM_ERROR, CLINFO + "Connection_Handler::connect_publisher - " + "While connecting <%C>:" + "Publishing component not deployed.", + plan.connection[connectionRef].name.in ())); + throw ::Deployment::InvalidConnection (conn.name.in (), + "Publisher component not deployed."); + } + + Components::Cookie_var cookie = publisher->subscribe (endpoint.portName.in (), + event.in ()); + + CIAO_DEBUG (5, (LM_INFO, CLINFO + "Connection_Handler::connect_publisher - " + "Connection <%C> successfully established.\n", + conn.name.in ())); + + this->cookies_[conn.name.in ()] = CONNECTION_INFO (cookie, + ::Components::CCMObject::_duplicate (publisher.in ())); + } + + void + Connection_Handler::connect_consumer (const ::Deployment::DeploymentPlan & plan, + ::CORBA::ULong connectionRef, + ::CORBA::ULong endpointRef, + const ::CORBA::Any &) + { + CIAO_TRACE ("Connection_Handler::connect_subscriber"); + + const ::Deployment::PlanConnectionDescription &conn = + plan.connection[connectionRef]; + const ::Deployment::PlanSubcomponentPortEndpoint &endpoint = + conn.internalEndpoint[endpointRef]; + + CIAO_DEBUG (6, (LM_DEBUG, CLINFO + "Connection_Handler::connect_consumer - " + "Connecting connection <%C> on instance <%C>\n", + conn.name.in (), + plan.instance[endpoint.instanceRef].name.in ())); + + throw ::Deployment::InvalidConnection (conn.name.in (), + "ExternalReference connection of consumers " + "currently unsupported.\n"); + } + + void + Connection_Handler::connect_emitter (const ::Deployment::DeploymentPlan & plan, + ::CORBA::ULong connectionRef, + ::CORBA::ULong endpointRef, + const ::CORBA::Any & provided_reference) + { + CIAO_TRACE ("Connection_Handler::connect_emitter"); + + const ::Deployment::PlanConnectionDescription &conn = + plan.connection[connectionRef]; + const ::Deployment::PlanSubcomponentPortEndpoint &endpoint = + conn.internalEndpoint[endpointRef]; + + CIAO_DEBUG (6, (LM_DEBUG, CLINFO + "Connection_Handler::connect_emitter - " + "Connecting connection <%C> on instance <%C>\n", + conn.name.in (), + plan.instance[endpoint.instanceRef].name.in ())); + + ::CORBA::Object_var consumer; + + if (!(provided_reference >>= CORBA::Any::to_object (consumer)) || + CORBA::is_nil (consumer.in ())) + { + CIAO_ERROR (1, (LM_ERROR, CLINFO + "Connection_Handler::connect_emitter - " + "Unable to extract provided reference to CORBA::Object\n", + plan.connection[connectionRef].name.in ())); + throw ::Deployment::InvalidConnection (plan.connection[connectionRef].name.in (), + "Unable to extract provided reference to CORBA Object."); + } + + Components::EventConsumerBase_var event = + Components::EventConsumerBase::_unchecked_narrow (consumer); + + ::Components::CCMObject_var emitter = + DEPLOYMENT_STATE::instance ()->fetch_component (plan.instance[endpoint.instanceRef].name.in ()); + + if (CORBA::is_nil (emitter)) + { + CIAO_ERROR (1, (LM_ERROR, CLINFO + "Connection_Handler::connect_emitter - " + "While connecting <%C>:" + "Emitting component not deployed.", + plan.connection[connectionRef].name.in ())); + throw ::Deployment::InvalidConnection (conn.name.in (), + "Emitting component not deployed."); + } + + emitter->connect_consumer (endpoint.portName.in (), + event.in ()); + + CIAO_DEBUG (5, (LM_INFO, CLINFO + "Connection_Handler::connect_emitter - " + "Connection <%C> successfully established.\n", + conn.name.in ())); + + ::Components::Cookie_var nil_cookie; + + this->cookies_[conn.name.in ()] = CONNECTION_INFO (nil_cookie, + ::Components::CCMObject::_duplicate (emitter.in ())); + } + + void + Connection_Handler::disconnect_facet (const ::Deployment::DeploymentPlan &, + ::CORBA::ULong) + + { + CIAO_TRACE ("Connection_Handler::disconnect_facet"); + } + + void + Connection_Handler::disconnect_receptacle (const ::Deployment::DeploymentPlan &, + ::CORBA::ULong) + + { + CIAO_TRACE ("Connection_Handler::disconnect_receptacle"); + } + + void + Connection_Handler::disconnect_publisher (const ::Deployment::DeploymentPlan &, + ::CORBA::ULong) + + { + CIAO_TRACE ("Connection_Handler::disconnect_publisher"); + } + + void + Connection_Handler::disconnect_subscriber (const ::Deployment::DeploymentPlan &, + ::CORBA::ULong) + + { + CIAO_TRACE ("Connection_Handler::disconnect_subscriber"); + } + + void + Connection_Handler::connect_local_port (const char *facet_id, + const char *facet_port, + const char *receptacle_id, + const char *receptacle_port) + { + CIAO_TRACE ("Connection_Handler::connect_local_port"); + + const char *facet_cont = + DEPLOYMENT_STATE::instance ()->instance_to_container (facet_id); + const char *recep_cont = + DEPLOYMENT_STATE::instance ()->instance_to_container (receptacle_id); + + if (ACE_OS::strcmp (facet_cont, recep_cont) != 0) + { + CIAO_ERROR (1, (LM_ERROR, CLINFO + "Connection_Handler::connect_local_port - " + "Ports <%C> and <%C> participate in local facet/receptacle connection, " + "but are installed in differing containers <%C> and <%C>\n", + facet_id, + receptacle_id, + facet_cont, + recep_cont)); + throw ::Deployment::InvalidConnection (facet_id, + "Component instance participates in a local connection with " + "a non-local entity."); + } + + CIAO::Container_var cont = + DEPLOYMENT_STATE::instance ()->fetch_container (facet_cont); + + Components::CCMObject_var + facet = DEPLOYMENT_STATE::instance ()->fetch_component (facet_id), + receptacle = DEPLOYMENT_STATE::instance ()->fetch_component (receptacle_id); + + cont->connect_local_facet (facet, + facet_port, + receptacle, + receptacle_port); + CIAO_DEBUG (5, (LM_INFO, CLINFO + "Connection_Handler::connect_local_port - " + "Connected local port <%C>:<%C> to <%C>:<%C>\n", + facet_id, facet_port, + receptacle_id, receptacle_port)); + } + + bool + Connection_Handler::is_local_facet (const ::Deployment::PlanConnectionDescription &conn) + { + CIAO_TRACE ("Connection_Handler::is_local_facet"); + Deployment::Requirements const& deploy_req = conn.deployRequirement; + for (CORBA::ULong i = 0; i < deploy_req.length (); i++) + { + if (ACE_OS::strcmp (deploy_req[i].name, "edu.dre.vanderbilt.DAnCE.ConnectionType") == 0 && + ACE_OS::strcmp (deploy_req[i].resourceType, "Local_Interface") == 0) + { + return true; + } + } + return false; + } +} diff --git a/CIAO/ciao/Deployment/Handlers/Connection_Handler.h b/CIAO/ciao/Deployment/Handlers/Connection_Handler.h new file mode 100644 index 00000000000..b3b8e0fae11 --- /dev/null +++ b/CIAO/ciao/Deployment/Handlers/Connection_Handler.h @@ -0,0 +1,89 @@ +/** + * @file Connection_Handler.h + * @author William R. Otte <wotte@dre.vanderbilt.edu> + * $Id$ + * + * Common connection handling logic for components. + */ + +#ifndef CONNECTION_HANDLER_H +#define CONNECTION_HANDLER_H + +#include "Deployment/Deployment_DeploymentPlanC.h" +#include "ccm/CCM_ObjectC.h" + +#include <map> +#include <string> + +namespace CIAO +{ + class Connection_Handler + { + public: + void + provide_endpoint_reference (const ::Deployment::DeploymentPlan & plan, + ::CORBA::ULong connectionRef, + ::CORBA::Any_out endpoint_reference); + + void connect_instance (const ::Deployment::DeploymentPlan & plan, + ::CORBA::ULong connectionRef, + const ::CORBA::Any & provided_reference); + + void disconnect_instance (const ::Deployment::DeploymentPlan & plan, + ::CORBA::ULong connectionRef); + + private: + void connect_facet (const ::Deployment::DeploymentPlan & plan, + ::CORBA::ULong connectionRef, + ::CORBA::ULong endpoint, + const ::CORBA::Any & provided_reference); + + void connect_receptacle (const ::Deployment::DeploymentPlan & plan, + ::CORBA::ULong connectionRef, + ::CORBA::ULong endpoint, + const ::CORBA::Any & provided_reference); + + void connect_publisher (const ::Deployment::DeploymentPlan & plan, + ::CORBA::ULong connectionRef, + ::CORBA::ULong endpoint, + const ::CORBA::Any & provided_reference); + + void connect_emitter (const ::Deployment::DeploymentPlan & plan, + ::CORBA::ULong connectionRef, + ::CORBA::ULong endpoint, + const ::CORBA::Any & provided_reference); + + void connect_consumer (const ::Deployment::DeploymentPlan & plan, + ::CORBA::ULong connectionRef, + ::CORBA::ULong endpoint, + const ::CORBA::Any & provided_reference); + + void disconnect_facet (const ::Deployment::DeploymentPlan & plan, + ::CORBA::ULong connectionRef); + + + void disconnect_receptacle (const ::Deployment::DeploymentPlan & plan, + ::CORBA::ULong connectionRef); + + void disconnect_publisher (const ::Deployment::DeploymentPlan & plan, + ::CORBA::ULong connectionRef); + + void disconnect_subscriber (const ::Deployment::DeploymentPlan & plan, + ::CORBA::ULong connectionRef); + + void connect_local_port (const char *facet_id, + const char *facet_port, + const char *receptacle_id, + const char *receptacle_port); + + bool is_local_facet (const ::Deployment::PlanConnectionDescription &conn); + + typedef std::pair < ::Components::Cookie_var, + ::Components::CCMObject_var> CONNECTION_INFO; + typedef std::map <std::string, + CONNECTION_INFO> COOKIES; + + COOKIES cookies_; + }; +} +#endif diff --git a/CIAO/ciao/Deployment/Handlers/Container_Handler.cpp b/CIAO/ciao/Deployment/Handlers/Container_Handler.cpp new file mode 100644 index 00000000000..d27dab97c65 --- /dev/null +++ b/CIAO/ciao/Deployment/Handlers/Container_Handler.cpp @@ -0,0 +1,206 @@ +// $Id$ + +#include "Container_Handler.h" +#include "ciao/Logger/Log_Macros.h" +#include "ciao/Containers/Session/Session_Container.h" +#include "ciao/ComponentServer/Server_init.h" + +#include "CIAO_State.h" + +namespace CIAO +{ + Container_Handler_i::Container_Handler_i (const DAnCE::Utility::PROPERTY_MAP &, + CORBA::ORB_ptr orb, + PortableServer::POA_ptr poa) + : orb_ (CORBA::ORB::_duplicate (orb)), + poa_ (PortableServer::POA::_duplicate (poa)) + + { + CIAO_TRACE ("Container_Handler_i::Container_Handler_i"); + CIAO::Server_init (orb_); + + // For the time being, we are going to go ahead and construct a container. + ::Deployment::DeploymentPlan plan; + plan.instance.length (1); + plan.instance[0].name = ""; + + ::CORBA::Any_var any; + this->install_instance (plan, 0, any.out ()); + } + + // Destructor + Container_Handler_i::~Container_Handler_i (void) + { + CIAO_TRACE ("Container_Handler_i::~Container_Handler_i"); + + try + { + // For the time being, we are going to go ahead and delete the default container + ::Deployment::DeploymentPlan plan; + plan.instance.length (1); + plan.instance[0].name = ""; + + CORBA::Any any; + this->remove_instance (plan, 0, any); + } + catch (...) + { //swallow + } + } + + + char * + Container_Handler_i::instance_type (void) + { + CIAO_TRACE ("Container_Handler_i::instance_type"); + return CORBA::string_dup ("edu.dre.vanderbilt.dre.DAnCE.CCM.Container"); + } + + + void + Container_Handler_i::install_instance (const ::Deployment::DeploymentPlan &plan, + ::CORBA::ULong instanceRef, + ::CORBA::Any_out instance_reference) + { + CIAO_TRACE ("Container_Handler_i::install_instance"); + + CIAO::Session_Container *cont (0); + const char *name (plan.instance[instanceRef].name.in ()); + CORBA::PolicyList policies (0); + + CIAO_DEBUG (6, (LM_DEBUG, CLINFO + "Container_Handler_i::install_instance - " + "Creating container with id %C\n", + name)); + ACE_NEW_THROW_EX (cont, + CIAO::Session_Container (this->orb_, + this->poa_, + 0 /* not needed */, + false /* we're always dynanic for the moment */, + 0, /*always dynanic */ + name, + 0 /* no additional policies at this moment */), + CORBA::NO_MEMORY ()); + + CIAO_DEBUG (8, (LM_DEBUG, CLINFO + "Container_Handler_i::install_instance - " + "Container <%C> successfully created\n", + name)); + + CIAO::Container_var container_ref (cont); + + DEPLOYMENT_STATE::instance ()->add_container (name, + cont); + + ::CORBA::Any_ptr outref; + ACE_NEW_THROW_EX (outref, + ::CORBA::Any (), + CORBA::NO_MEMORY ()); + + (*outref) <<= container_ref; + + instance_reference = outref; + } + + void + Container_Handler_i::activate_instance (const ::Deployment::DeploymentPlan & , + ::CORBA::ULong , + const ::CORBA::Any &) + { + CIAO_TRACE ("Container_Handler_i::activate_instance"); + // no activation needed. + } + + void + Container_Handler_i::passivate_instance (const ::Deployment::DeploymentPlan & , + ::CORBA::ULong , + const ::CORBA::Any &) + { + CIAO_TRACE ("Container_Handler_i::passivate_instance"); + // no passivation needed. + } + + void + Container_Handler_i::provide_endpoint_reference (const ::Deployment::DeploymentPlan &, + ::CORBA::ULong, + ::CORBA::Any_out) + { + CIAO_TRACE ("Container_Handler_i::provide_endpoint_reference"); + CIAO_ERROR (1, (LM_ERROR, CLINFO + "Container_Handler_i::provide_endpoint_reference - " + "Unable to provide any endpoints.\n")); + throw CORBA::NO_IMPLEMENT (); + } + + void + Container_Handler_i::remove_instance (const ::Deployment::DeploymentPlan & plan, + ::CORBA::ULong instanceRef, + const ::CORBA::Any &) + { + CIAO_TRACE ("Container_Handler_i::remove_instance"); + + const char *name = plan.instance[instanceRef].name.in (); + + ::CIAO::Container_var cont = + DEPLOYMENT_STATE::instance ()->fetch_container (name); + + if (!cont) + { + CIAO_ERROR (1, (LM_ERROR, CLINFO, + "Container_Handler_i::remove_instance - " + "Error, no contianer with id <%C>", + name)); + throw ::Deployment::StopError (name, + "No container with ID"); + } + + + CIAO_DEBUG (8, (LM_TRACE, CLINFO + "Container_Handler_i::remove_instance - " + "Removing container with Id <%C>\n", + name)); + + DEPLOYMENT_STATE::instance ()->remove_container (name); + + CIAO_DEBUG (5, (LM_TRACE, CLINFO + "Container_Handler_i::remove_instance - " + "Container with Id <%C> removed.\n", + name)); + } + + + void + Container_Handler_i::connect_instance (const ::Deployment::DeploymentPlan &, + ::CORBA::ULong, + const ::CORBA::Any &) + { + CIAO_TRACE ("Container_Handler_i::connect_instance"); + + CIAO_ERROR (1, (LM_ERROR, CLINFO + "Container_Handler_i::connect_instance - ", + "No connections allowed for containers.\n")); + throw CORBA::NO_IMPLEMENT (); + } + + + void + Container_Handler_i::disconnect_instance (const ::Deployment::DeploymentPlan &, + ::CORBA::ULong) + { + CIAO_TRACE ("Container_Handler_i::disconnect_instance"); + + CIAO_ERROR (1, (LM_ERROR, CLINFO + "Container_Handler_i::disconnect_instance - ", + "No connections allowed for containers.\n")); + throw CORBA::NO_IMPLEMENT (); + } + + void + Container_Handler_i::instance_configured (const ::Deployment::DeploymentPlan &, + ::CORBA::ULong) + { + CIAO_TRACE ("Container_Handler_i::instance_configured"); + // nothing to be done + } +} + diff --git a/CIAO/ciao/Deployment/Handlers/Container_Handler.h b/CIAO/ciao/Deployment/Handlers/Container_Handler.h new file mode 100644 index 00000000000..c0ea9e940ff --- /dev/null +++ b/CIAO/ciao/Deployment/Handlers/Container_Handler.h @@ -0,0 +1,87 @@ + +// -*- C++ -*- +// $Id$ + +/** + * @file Locality_Manager_Handler_Impl.h + * @author William R. Otte <wotte@dre.vanderbilt.edu> + * + * Installation handler implementation for spawning LocalityManagers. + */ + +#ifndef CIAO_CONTAINER_HANDLER_H +#define CIAO_CONTAINER_HANDLER_H + +#include "tao/ORB.h" +#include "tao/PortableServer/POAC.h" +#include "DAnCE/DAnCE_LocalityManagerS.h" +#include "DAnCE/DAnCE_Utility.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +#pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +#include "ciao/Deployment/Handlers/CIAO_Locality_Handler_Export.h" +#include "tao/LocalObject.h" +#include <set> +namespace CIAO +{ + class CIAO_LocalityActivator_i; + + class CIAO_Locality_Handler_Export Container_Handler_i + : public virtual DAnCE::InstanceDeploymentHandler, + public virtual ::CORBA::LocalObject + { + public: + // Constructor + Container_Handler_i (const DAnCE::Utility::PROPERTY_MAP &props, + CORBA::ORB_ptr orb, + PortableServer::POA_ptr poa); + + // Destructor + virtual ~Container_Handler_i (void); + + virtual + char * instance_type (void); + + virtual + void install_instance (const ::Deployment::DeploymentPlan & plan, + ::CORBA::ULong instanceRef, + ::CORBA::Any_out instance_reference); + + virtual + void activate_instance (const ::Deployment::DeploymentPlan & , + ::CORBA::ULong , + const ::CORBA::Any &); + virtual + void passivate_instance (const ::Deployment::DeploymentPlan & , + ::CORBA::ULong , + const ::CORBA::Any &); + + virtual + void remove_instance (const ::Deployment::DeploymentPlan & plan, + ::CORBA::ULong instanceRef, + const ::CORBA::Any & instance_reference); + + virtual + void provide_endpoint_reference (const ::Deployment::DeploymentPlan & plan, + ::CORBA::ULong connectionRef, + ::CORBA::Any_out endpoint_reference); + virtual + void connect_instance (const ::Deployment::DeploymentPlan & plan, + ::CORBA::ULong connectionRef, + const ::CORBA::Any & provided_reference); + + virtual + void disconnect_instance (const ::Deployment::DeploymentPlan & plan, + ::CORBA::ULong connectionRef); + + virtual + void instance_configured (const ::Deployment::DeploymentPlan & plan, + ::CORBA::ULong instanceRef); + private: + CORBA::ORB_var orb_; + PortableServer::POA_var poa_; + }; +} +#endif diff --git a/CIAO/ciao/Deployment/Handlers/Home_Handler.cpp b/CIAO/ciao/Deployment/Handlers/Home_Handler.cpp new file mode 100644 index 00000000000..01edd113d5e --- /dev/null +++ b/CIAO/ciao/Deployment/Handlers/Home_Handler.cpp @@ -0,0 +1,366 @@ +// $Id$ + +#include "Home_Handler.h" +#include "ciao/Logger/Log_Macros.h" +#include "ciao/ComponentServer/CIAO_PropertiesC.h" +#include "ciao/Containers/Container_BaseC.h" +#include "CIAO_State.h" + +namespace CIAO +{ + Home_Handler_i::Home_Handler_i (void) + { + CIAO_TRACE ("Home_Handler_i::Home_Handler_i"); + } + + // Destructor + Home_Handler_i::~Home_Handler_i (void) + { + CIAO_TRACE ("Home_Handler_i::~Home_Handler_i"); + } + + + char * + Home_Handler_i::instance_type (void) + { + CIAO_TRACE ("Home_Handler_i::instance_type"); + return CORBA::string_dup ("edu.dre.vanderbilt.dre.CCM.Home"); + } + + + void + Home_Handler_i::install_instance (const ::Deployment::DeploymentPlan &plan, + ::CORBA::ULong instanceRef, + ::CORBA::Any_out instance_reference) + { + CIAO_TRACE ("Home_Handler_i::install_instance"); + + const ::Deployment::InstanceDeploymentDescription &idd (plan.instance[instanceRef]); + const ::Deployment::MonolithicDeploymentDescription &mdd (plan.implementation[idd.implementationRef]); + + DAnCE::Utility::PROPERTY_MAP *pmap; + + ACE_NEW_THROW_EX (pmap, + DAnCE::Utility::PROPERTY_MAP (idd.configProperty.length () + + mdd.execParameter.length ()), + CORBA::NO_MEMORY ()); + + Deployment_Common::Instance_Info info; + info.name = idd.name.in (); + info.pmap.reset (pmap); + + + DAnCE::Utility::build_property_map (*pmap, + mdd.execParameter); + DAnCE::Utility::build_property_map (*pmap, + idd.configProperty); + + CORBA::String_var exec_art, exec_entry, svnt_art, svnt_entry, cont_id; + + using namespace CIAO::Deployment; + CORBA::Any val; + const char *tmp; + + if ((pmap->find (SVNT_ENTRYPT, val)) == 0) + { + val >>= tmp; + svnt_entry = tmp; + CIAO_DEBUG (9, (LM_TRACE, CLINFO + "Home_Handler_i::install_instance - " + "Found Servant entrypoint %C\n", svnt_entry.in ())); + } + else + { + CIAO_ERROR (1, (LM_ERROR, CLINFO + "Home_Handler_i::install_instance - " + "Error: No Servant entrypoint (%C) provided, aborting installation\n", + SVNT_ENTRYPT)); + throw ::Deployment::InvalidComponentExecParameter (idd.name.in (), + "No servant entrypoint identified."); + } + + if (pmap->find (SVNT_ARTIFACT, val) == 0) + { + val >>= tmp; + CIAO_DEBUG (9, (LM_TRACE, CLINFO + "Home_Handler_i::install_instance - " + "Found Servant artifact %C\n", tmp)); + svnt_art = Deployment_Common::get_implementation (tmp, plan); + } + else + { + CIAO_ERROR (1, (LM_ERROR, CLINFO + "Home_Handler_i::install_instance - " + "Error: No Servant artifact provided, aborting installation\n")); + throw ::Deployment::InvalidComponentExecParameter (idd.name.in (), + "No servant artifact identified."); + } + + + if (pmap->find (EXEC_ARTIFACT, val) == 0) + { + val >>= tmp; + exec_art = Deployment_Common::get_implementation (tmp, plan); + CIAO_DEBUG (9, (LM_TRACE, CLINFO + "Home_Handler_i::install_instance - " + "Found executor artifact: %C\n", exec_art.in ())); + } + else + { + CIAO_ERROR (1, (LM_ERROR, CLINFO + "Home_Handler_i::install_instance - " + "Error: No Executor artifact provided, aborting installation\n")); + throw ::Deployment::InvalidComponentExecParameter (idd.name.in (), + "No executory artifact identified.\n"); + } + + if (pmap->find (HOME_FACTORY, val) == 0) + { + val >>= tmp; + exec_entry = tmp; + CIAO_DEBUG (9, (LM_TRACE, CLINFO + "Home_Handler_i::install_instance - " + "Found executor entrypoint: %C\n", exec_entry.in ())); + } + else + { + CIAO_ERROR (1, (LM_ERROR, CLINFO + "Home_Handler_i::install_instance - " + "Error: No Executor artifact provided, aborting installation\n")); + throw ::Deployment::InvalidComponentExecParameter (idd.name.in (), + "No executor entrypoint provided\n"); + } + + if (pmap->find (CONTAINER_ID, val) == 0) + { + val >>= tmp; + cont_id = tmp; + CIAO_DEBUG (9, (LM_TRACE, CLINFO + "Home_Handler_i::install_instance - " + "Found executor entrypoint: %C\n", exec_entry.in ())); + } + else + { + CIAO_ERROR (4, (LM_INFO, CLINFO + "Home_Handler_i::install_instance - " + "No container provided, using default container for instance <%C>\n", + idd.name.in ())); + cont_id = ""; + } + + ::CIAO::Container_var container = DEPLOYMENT_STATE::instance ()->fetch_container (cont_id); + + if (CORBA::is_nil (container)) + { + CIAO_ERROR (1, (LM_INFO, CLINFO + "Home_Handler_i::install_instance - " + "Container with Id <%C> not installed, aborting.\n", + cont_id.in ())); + throw ::Deployment::InvalidComponentExecParameter (idd.name.in (), + "Invalid container\n"); + } + + Components::CCMHome_var home_ref; + + try + { + home_ref = container->install_home (exec_art, + exec_entry, + svnt_art, + svnt_entry, + idd.name.in ()); + } + catch (::CORBA::Exception &ex) + { + CIAO_ERROR (1, (LM_ERROR, CLINFO + "Home_Handler_i::install_instance - " + "Caught CORBA exception <%C>\n", + ex._info ().c_str ())); + throw ::Deployment::StartError (idd.name.in (), + ex._info ().c_str ()); + } + catch (...) + { + CIAO_ERROR (1, (LM_ERROR, CLINFO + "Home_Handler_i::install_instance - " + "Caught unknown C++ exception\n")); + throw ::Deployment::StartError (idd.name.in (), + "Unknown C++ exception\n"); + } + + if (CORBA::is_nil (home_ref)) + { + CIAO_ERROR (1, (LM_ERROR, CLINFO + "Home_Handler_i::install_instance - " + "Container provided nil object reference for home.\n")); + throw ::Deployment::StartError (idd.name.in (), + "Container provided nil object reference"); + } + + this->instances_[idd.name.in ()] = info; + + DEPLOYMENT_STATE::instance ()->add_home (idd.name.in (), cont_id, home_ref.in ()); + + CORBA::Any *retval; + ACE_NEW_THROW_EX (retval, + CORBA::Any (), + CORBA::NO_MEMORY ()); + + (*retval) <<= home_ref; + instance_reference = retval; + } + + + void + Home_Handler_i::activate_instance (const ::Deployment::DeploymentPlan & , + ::CORBA::ULong , + const ::CORBA::Any &) + { + CIAO_TRACE ("Home_Handler_i::activate_instance"); + // no activation needed. + } + + void + Home_Handler_i::passivate_instance (const ::Deployment::DeploymentPlan & , + ::CORBA::ULong , + const ::CORBA::Any &) + { + CIAO_TRACE ("Home_Handler_i::passivate_instance"); + // no passivation needed. + } + + void + Home_Handler_i::remove_instance (const ::Deployment::DeploymentPlan & plan, + ::CORBA::ULong instanceRef, + const ::CORBA::Any &) + { + CIAO_TRACE ("Home_Handler_i::remove_instance"); + + const char *name = plan.instance[instanceRef].name.in (); + Deployment_Common::INSTANCES::iterator instance + = this->instances_.find (name); + + if (instance == this->instances_.end ()) + { + CIAO_ERROR (1, (LM_ERROR, CLINFO + "Home_Handler_i::remove_instance - " + "Instructed to remove unknown home instance <%C>\n", + name)); + throw ::Deployment::StopError (name, + "Wrong instance handler for home instance\n"); + } + + CIAO_DEBUG (8, (LM_DEBUG, CLINFO + "Home_Handler_i::remove_instance - " + "Attempting removal of home instance <%C>\n", + name)); + + CORBA::Any val; + const char *cont_id; + + if (instance->second.pmap->find (Deployment::CONTAINER_ID, val) == 0) + { + val >>= cont_id; + CIAO_DEBUG (9, (LM_TRACE, CLINFO + "Home_Handler_i::remove_instance - " + "Found home container: %C\n", cont_id)); + } + else + { + CIAO_ERROR (4, (LM_INFO, CLINFO + "Home_Handler_i::remove_instance - " + "No container provided, using default container for instance <%C>\n", + name)); + cont_id = ""; + } + + ::CIAO::Container_var container = DEPLOYMENT_STATE::instance ()->fetch_container (cont_id); + + if (CORBA::is_nil (container)) + { + CIAO_ERROR (1, (LM_INFO, CLINFO + "Home_Handler_i::remove_instance - " + "Container with Id <%C> not installed, aborting.\n", + cont_id)); + throw ::Deployment::StopError (name, + "Invalid container\n"); + } + + Components::CCMHome_var ref + = DEPLOYMENT_STATE::instance ()->fetch_home (name); + + try + { + container->uninstall_home (ref); + } + catch (CORBA::Exception &ex) + { + CIAO_ERROR (1, (LM_ERROR, CLINFO + "Home_Handler_i::remove_instance - " + "Caught CORBA exception <%C>\n", + ex._info ().c_str ())); + throw ::Deployment::StopError (name, + ex._info ().c_str ()); + } + catch (...) + { + CIAO_ERROR (1, (LM_ERROR, CLINFO + "Home_Handler_i::remove_instance - " + "Caught unknown C++ exception\n")); + throw ::Deployment::StopError (name, + "Unknown C++ exception\n"); + } + + this->instances_.erase (instance); + + CIAO_DEBUG (4, (LM_INFO, CLINFO + "Home_Handler_i::remove_instance - " + "Instance <%C> successfully removed\n", + name)); + } + + void + Home_Handler_i::provide_endpoint_reference (const ::Deployment::DeploymentPlan &, + ::CORBA::ULong, + ::CORBA::Any_out) + { + CIAO_TRACE ("Home_Handler_i::provide_endpoint_reference"); + CIAO_ERROR (1, (LM_ERROR, CLINFO + "Home_Handler_i::provide_endpoint_reference - " + "Unable to provide any endpoints.\n")); + throw CORBA::NO_IMPLEMENT (); + } + + void + Home_Handler_i::connect_instance (const ::Deployment::DeploymentPlan &, + ::CORBA::ULong, + const ::CORBA::Any &) + { + CIAO_TRACE ("Home_Handler_i::connect_instance"); + CIAO_ERROR (1, (LM_ERROR, CLINFO + "Home_Handler_i::connect_instance - ", + "No connections allowed for homes.\n")); + throw CORBA::NO_IMPLEMENT (); + } + + + void + Home_Handler_i::disconnect_instance (const ::Deployment::DeploymentPlan &, + ::CORBA::ULong) + { + CIAO_TRACE ("Home_Handler_i::disconnect_instance"); + CIAO_ERROR (1, (LM_ERROR, CLINFO + "Home_Handler_i::disconnect_instance - ", + "No connections allowed for homes.\n")); + throw CORBA::NO_IMPLEMENT (); + } + + + void + Home_Handler_i::instance_configured (const ::Deployment::DeploymentPlan &, + ::CORBA::ULong) + { + CIAO_TRACE ("Home_Handler_i::instance_configured"); + // nothing to be done + } +} diff --git a/CIAO/ciao/Deployment/Handlers/Home_Handler.h b/CIAO/ciao/Deployment/Handlers/Home_Handler.h new file mode 100644 index 00000000000..38bd716bc3b --- /dev/null +++ b/CIAO/ciao/Deployment/Handlers/Home_Handler.h @@ -0,0 +1,83 @@ + +// -*- C++ -*- +// $Id$ + +/** + * @file Locality_Manager_Handler_Impl.h + * @author William R. Otte <wotte@dre.vanderbilt.edu> + * + * Installation handler implementation for spawning LocalityManagers. + */ + +#ifndef CIAO_HOME_HANDLER_H +#define CIAO_HOME_HANDLER_H + +#include "DAnCE/DAnCE_LocalityManagerS.h" +#include "DAnCE/DAnCE_Utility.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +#pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +#include "ciao/Deployment/Handlers/CIAO_Locality_Handler_Export.h" +#include "tao/LocalObject.h" + +#include "ciao/Deployment/Handlers/CIAO_Handler_Common.h" + +namespace CIAO +{ + class CIAO_Locality_Handler_Export Home_Handler_i + : public virtual DAnCE::InstanceDeploymentHandler, + public virtual ::CORBA::LocalObject + { + public: + // Constructor + Home_Handler_i (void); + + // Destructor + virtual ~Home_Handler_i (void); + + virtual + char * instance_type (void); + + virtual + void install_instance (const ::Deployment::DeploymentPlan & plan, + ::CORBA::ULong instanceRef, + ::CORBA::Any_out instance_reference); + + virtual + void activate_instance (const ::Deployment::DeploymentPlan & , + ::CORBA::ULong , + const ::CORBA::Any &); + virtual + void passivate_instance (const ::Deployment::DeploymentPlan & , + ::CORBA::ULong , + const ::CORBA::Any &); + + virtual + void remove_instance (const ::Deployment::DeploymentPlan & plan, + ::CORBA::ULong instanceRef, + const ::CORBA::Any & instance_reference); + + virtual + void provide_endpoint_reference (const ::Deployment::DeploymentPlan & plan, + ::CORBA::ULong connectionRef, + ::CORBA::Any_out endpoint_reference); + + virtual + void connect_instance (const ::Deployment::DeploymentPlan & plan, + ::CORBA::ULong connectionRef, + const ::CORBA::Any & provided_reference); + + virtual + void disconnect_instance (const ::Deployment::DeploymentPlan & plan, + ::CORBA::ULong connectionRef); + + virtual + void instance_configured (const ::Deployment::DeploymentPlan & plan, + ::CORBA::ULong instanceRef); + private: + Deployment_Common::INSTANCES instances_; + }; +} +#endif diff --git a/CIAO/ciao/Deployment/Handlers/Homed_Component_Handler.cpp b/CIAO/ciao/Deployment/Handlers/Homed_Component_Handler.cpp new file mode 100644 index 00000000000..4e761ad6eaa --- /dev/null +++ b/CIAO/ciao/Deployment/Handlers/Homed_Component_Handler.cpp @@ -0,0 +1,392 @@ +// $Id$ + +#include "Homed_Component_Handler.h" +#include "ccm/CCM_KeylessCCMHomeC.h" +#include "ciao/Logger/Log_Macros.h" +#include "ciao/ComponentServer/CIAO_PropertiesC.h" +#include "DAnCE/Deployment/Deployment_StartErrorC.h" +#include "CIAO_Handler_Common.h" +#include "CIAO_State.h" + +namespace CIAO +{ + Homed_Component_Handler_i::Homed_Component_Handler_i () + { + CIAO_TRACE ("Homed_Component_Handler_i::Homed_Component_Handler_i"); + } + + // Destructor + Homed_Component_Handler_i::~Homed_Component_Handler_i (void) + { + CIAO_TRACE ("Homed_Component_Handler_i::~Homed_Component_Handler_i"); + } + + + char * + Homed_Component_Handler_i::instance_type (void) + { + CIAO_TRACE ("Homed_Component_Handler_i::instance_type"); + return CORBA::string_dup ("edu.vanderbilt.dre.CCM.HomedComponent"); + } + + + void + Homed_Component_Handler_i::install_instance (const ::Deployment::DeploymentPlan &plan, + ::CORBA::ULong instanceRef, + ::CORBA::Any_out instance_reference) + { + CIAO_TRACE ("Homed_Component_Handler_i::install_instance"); + + const ::Deployment::InstanceDeploymentDescription &idd (plan.instance[instanceRef]); + const ::Deployment::MonolithicDeploymentDescription &mdd (plan.implementation[idd.implementationRef]); + + DAnCE::Utility::PROPERTY_MAP *pmap; + + ACE_NEW_THROW_EX (pmap, + DAnCE::Utility::PROPERTY_MAP (idd.configProperty.length () + + mdd.execParameter.length ()), + CORBA::NO_MEMORY ()); + + Deployment_Common::Instance_Info info; + info.name = idd.name.in (); + info.pmap.reset (pmap); + + + DAnCE::Utility::build_property_map (*pmap, + mdd.execParameter); + DAnCE::Utility::build_property_map (*pmap, + idd.configProperty); + + + using namespace CIAO::Deployment; + CORBA::Any val; + const char *tmp; + + if (pmap->find (COMPONENT_HOME, val) == 0) + { + val >>= tmp; + CIAO_DEBUG (9, (LM_TRACE, CLINFO + "Homed_Component_Handler_i::install_instance - " + "Found component home ID %C\n", tmp)); + } + else + { + CIAO_ERROR (1, (LM_ERROR, CLINFO + "Homed_Component_Handler_i::install_instance - " + "Error: No home ID provided, aborting installation\n")); + throw ::Deployment::StartError (idd.name.in (), + "No Home identified."); + } + + Components::CCMHome_var tmp_home = DEPLOYMENT_STATE::instance ()->fetch_home (tmp); + + Components::KeylessCCMHome_var home = Components::KeylessCCMHome::_narrow (tmp_home); + if (CORBA::is_nil (home)) + { + CIAO_ERROR (1, (LM_ERROR, CLINFO + "Homed_Component_Handler_i::install_instance - " + "Object reference for Home <%C> is not available for component <%C>\n", + tmp, idd.name.in ())); + throw ::Deployment::StartError (idd.name.in (), + "Home ID is not available"); + } + + const char *cont_id = + DEPLOYMENT_STATE::instance ()->instance_to_container (tmp); + + ::CIAO::Container_var container = DEPLOYMENT_STATE::instance ()->fetch_container (cont_id); + + Components::CCMObject_var ref; + try + { + ref = home->create_component (); + + ::Components::ConfigValues attr_config; + Deployment_Common::create_attribute_configuration (idd.configProperty, + attr_config); + + + container->set_attributes (ref.in (), + attr_config); + } + catch (const CORBA::Exception &ex) + { + CIAO_ERROR (1, (LM_ERROR, CLINFO + "Homed_Component_Handler_i::install_instance - " + "Caught CORBA exception while installing component <%C>: %C\n", + idd.name.in (), + ex._info ().c_str ())); + throw ::Deployment::StartError (idd.name.in (), + ex._info ().c_str ()); + } + catch (...) + { + CIAO_ERROR (1, (LM_ERROR, CLINFO + "Homed_Component_Handler_i::install_instance - " + "Caught C++ exception while installing component <%C>\n", + idd.name.in ())); + throw ::Deployment::StartError (idd.name.in (), + "Unknown C++ exception"); + } + + if (CORBA::is_nil (ref.in ())) + { + CIAO_ERROR (1, (LM_ERROR, CLINFO + "Homed_Component_Handler_i::install_instance - " + "Received nil object reference from create on Home <%C> " + "while creating component <%C>\n", + tmp, + idd.name.in ())); + throw ::Deployment::StartError (idd.name.in (), + "Nil reference from home on create"); + } + + + CIAO_DEBUG (4, (LM_ERROR, CLINFO + "Homed_Component_Handler_i::install_instance - " + "Successfully created component <%C>\n", + idd.name.in ())); + + this->instances_[idd.name.in ()] = info; + + DEPLOYMENT_STATE::instance ()->add_component (idd.name.in (), + cont_id, + ref.in ()); + + CORBA::Any *any; + ACE_NEW_THROW_EX (any, + CORBA::Any (), + CORBA::NO_MEMORY ()); + + (*any) <<= ref; + + instance_reference = any; + } + + + void + Homed_Component_Handler_i::activate_instance (const ::Deployment::DeploymentPlan &plan, + ::CORBA::ULong instanceRef, + const ::CORBA::Any &) + { + CIAO_TRACE ("Homed_Component_Handler_i::activate_instance"); + + const char *name = plan.instance[instanceRef].name.in (); + + const char *container = + DEPLOYMENT_STATE::instance ()->instance_to_container (name); + + CIAO::Container_var cont = + DEPLOYMENT_STATE::instance ()->fetch_container (container); + + Components::CCMObject_var comp = + DEPLOYMENT_STATE::instance ()->fetch_component (name); + + try + { + cont->activate_component (comp.in ()); + } + catch (CORBA::Exception &ex) + { + CIAO_ERROR (1, (LM_ERROR, CLINFO + "Homed_Component_Handler_i::activate_instance - " + "Caught CORBA Exception while activating instance <%C>: %C\n", + name, + ex._info ().c_str ())); + throw ::Deployment::StartError (name, + ex._info ().c_str ()); + } + catch (...) + { + CIAO_ERROR (1, (LM_ERROR, CLINFO + "Homed_Component_Handler_i::activate_instance - " + "Caught C++ Exception while activating instance <%C>\n", + name)); + throw ::Deployment::StartError (name, + "Unknown C++ exception during activation"); + } + } + + void + Homed_Component_Handler_i::passivate_instance (const ::Deployment::DeploymentPlan &plan, + ::CORBA::ULong instanceRef, + const ::CORBA::Any &) + { + CIAO_TRACE ("Homed_Component_Handler_i::passivate_instance"); + + const char *name = plan.instance[instanceRef].name.in (); + + const char *container = + DEPLOYMENT_STATE::instance ()->instance_to_container (name); + + CIAO::Container_var cont = + DEPLOYMENT_STATE::instance ()->fetch_container (container); + + Components::CCMObject_var comp = + DEPLOYMENT_STATE::instance ()->fetch_component (name); + + try + { + cont->passivate_component (comp.in ()); + } + catch (CORBA::Exception &ex) + { + CIAO_ERROR (1, (LM_ERROR, CLINFO + "Homed_Component_Handler_i::passivate_instance - " + "Caught CORBA Exception while passivating instance <%C>: %C\n", + name, + ex._info ().c_str ())); + throw ::Deployment::StopError (name, + ex._info ().c_str ()); + } + catch (...) + { + CIAO_ERROR (1, (LM_ERROR, CLINFO + "Homed_Component_Handler_i::passivate_instance - " + "Caught C++ Exception while passivating instance <%C>\n", + name)); + throw ::Deployment::StartError (name, + "Unknown C++ exception during passivation"); + } + } + + void + Homed_Component_Handler_i::remove_instance (const ::Deployment::DeploymentPlan & plan, + ::CORBA::ULong instanceRef, + const ::CORBA::Any &) + { + CIAO_TRACE ("Homed_Component_Handler_i::remove_instance"); + + const char *name = plan.instance[instanceRef].name.in (); + Deployment_Common::INSTANCES::iterator instance + = this->instances_.find (name); + + if (instance == this->instances_.end ()) + { + CIAO_ERROR (1, (LM_ERROR, CLINFO + "Homed_Component_Handler_i::remove_instance - " + "Instructed to remove unknown homed component instance <%C>\n", + name)); + throw ::Deployment::StopError (name, + "Wrong instance handler for homed component instance\n"); + } + + CIAO_DEBUG (8, (LM_DEBUG, CLINFO + "Homed_Component_Handler_i::remove_instance - " + "Attempting removal of homed component instance <%C>\n", + name)); + + using namespace CIAO::Deployment; + CORBA::Any val; + const char *tmp; + + if (instance->second.pmap->find (COMPONENT_HOME, val) == 0) + { + val >>= tmp; + CIAO_DEBUG (9, (LM_TRACE, CLINFO + "Homed_Component_Handler_i::remove_instance - " + "Found component home ID %C\n", tmp)); + } + else + { + CIAO_ERROR (1, (LM_ERROR, CLINFO + "Homed_Component_Handler_i::remove_instance - " + "Error: No home ID provided, aborting removal\n")); + throw ::Deployment::StopError (name, + "No Home identified."); + } + + Components::CCMHome_var home = DEPLOYMENT_STATE::instance ()->fetch_home (tmp); + + if (CORBA::is_nil (home)) + { + CIAO_ERROR (1, (LM_ERROR, CLINFO + "Homed_Component_Handler_i::remove_instance - " + "Object reference for Home <%C> is not available for component <%C>\n", + tmp, name)); + throw ::Deployment::StopError (name, + "Home ID is not available"); + } + + Components::CCMObject_var ref + = DEPLOYMENT_STATE::instance ()->fetch_component (name); + + try + { + home->remove_component (ref.in ()); + } + catch (const CORBA::Exception &ex) + { + CIAO_ERROR (1, (LM_ERROR, CLINFO + "Homed_Component_Handler_i::remove_instance - " + "Caught CORBA exception while removing component <%C>: %C\n", + name, + ex._info ().c_str ())); + throw ::Deployment::StopError (name, + ex._info ().c_str ()); + } + catch (...) + { + CIAO_ERROR (1, (LM_ERROR, CLINFO + "Homed_Component_Handler_i::remove_instance - " + "Caught C++ exception while removing component <%C>\n", + name)); + throw ::Deployment::StopError (name, + "Unknown C++ exception"); + } + + CIAO_DEBUG (4, (LM_INFO, CLINFO + "Homed_Component_Handler_i::remove_instance - " + "Component <%C> successfully removed\n")); + + this->instances_.erase (instance); + + DEPLOYMENT_STATE::instance ()->remove_component (name); + } + + void + Homed_Component_Handler_i::provide_endpoint_reference (const ::Deployment::DeploymentPlan & plan, + ::CORBA::ULong connectionRef, + ::CORBA::Any_out endpoint_reference) + { + CIAO_TRACE ("Homed_Component_Handler_i::provide_endpoint_reference"); + + DEPLOYMENT_STATE::instance ()->connection_handler.provide_endpoint_reference (plan, + connectionRef, + endpoint_reference); + } + + void + Homed_Component_Handler_i::connect_instance (const ::Deployment::DeploymentPlan & plan, + ::CORBA::ULong connectionRef, + const ::CORBA::Any & provided_reference) + { + CIAO_TRACE ("Homed_Component_Handler_i::connect_instance"); + + DEPLOYMENT_STATE::instance ()->connection_handler.connect_instance (plan, + connectionRef, + provided_reference); + } + + + void + Homed_Component_Handler_i::disconnect_instance (const ::Deployment::DeploymentPlan & plan, + ::CORBA::ULong connectionRef) + { + CIAO_TRACE ("Homed_Component_Handler_i::disconnect_instance"); + DEPLOYMENT_STATE::instance ()->connection_handler.disconnect_instance (plan, + connectionRef); + } + + void + Homed_Component_Handler_i::instance_configured (const ::Deployment::DeploymentPlan & plan, + ::CORBA::ULong instanceRef) + { + CIAO_TRACE ("Homed_Component_Handler_i::instance_configured"); + + Components::CCMObject_var ref = + DEPLOYMENT_STATE::instance ()->fetch_component (plan.instance[instanceRef].name.in ()); + + ref->configuration_complete (); + } +} diff --git a/CIAO/ciao/Deployment/Handlers/Homed_Component_Handler.h b/CIAO/ciao/Deployment/Handlers/Homed_Component_Handler.h new file mode 100644 index 00000000000..99f9d081b95 --- /dev/null +++ b/CIAO/ciao/Deployment/Handlers/Homed_Component_Handler.h @@ -0,0 +1,84 @@ + +// -*- C++ -*- +// $Id$ + +/** + * @file Locality_Manager_Handler_Impl.h + * @author William R. Otte <wotte@dre.vanderbilt.edu> + * + * Installation handler implementation for spawning LocalityManagers. + */ + +#ifndef CIAO_HOMED_COMPONENT_HANDLER_H +#define CIAO_HOMED_COMPONENT_HANDLER_H + +#include "DAnCE/DAnCE_LocalityManagerS.h" +#include "DAnCE/DAnCE_Utility.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +#pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +#include "ciao/Deployment/Handlers/CIAO_Locality_Handler_Export.h" +#include "tao/LocalObject.h" +#include "ciao/Deployment/Handlers/CIAO_Handler_Common.h" + +namespace CIAO +{ + class CIAO_LocalityActivator_i; + + class CIAO_Locality_Handler_Export Homed_Component_Handler_i + : public virtual DAnCE::InstanceDeploymentHandler, + public virtual ::CORBA::LocalObject + { + public: + // Constructor + Homed_Component_Handler_i (); + + // Destructor + virtual ~Homed_Component_Handler_i (void); + + virtual + char * instance_type (void); + + virtual + void install_instance (const ::Deployment::DeploymentPlan & plan, + ::CORBA::ULong instanceRef, + ::CORBA::Any_out instance_reference); + + virtual + void activate_instance (const ::Deployment::DeploymentPlan & , + ::CORBA::ULong , + const ::CORBA::Any &); + virtual + void passivate_instance (const ::Deployment::DeploymentPlan & , + ::CORBA::ULong , + const ::CORBA::Any &); + + virtual + void remove_instance (const ::Deployment::DeploymentPlan & plan, + ::CORBA::ULong instanceRef, + const ::CORBA::Any & instance_reference); + + virtual + void provide_endpoint_reference (const ::Deployment::DeploymentPlan & plan, + ::CORBA::ULong connectionRef, + ::CORBA::Any_out endpoint_reference); + + virtual + void connect_instance (const ::Deployment::DeploymentPlan & plan, + ::CORBA::ULong connectionRef, + const ::CORBA::Any & provided_reference); + + virtual + void disconnect_instance (const ::Deployment::DeploymentPlan & plan, + ::CORBA::ULong connectionRef); + + virtual + void instance_configured (const ::Deployment::DeploymentPlan & plan, + ::CORBA::ULong instanceRef); + private: + Deployment_Common::INSTANCES instances_; + }; +} +#endif diff --git a/CIAO/ciao/Servants/Connector_Servant_Impl_Base.cpp b/CIAO/ciao/Servants/Connector_Servant_Impl_Base.cpp index ea9ace05707..64031d265b0 100644 --- a/CIAO/ciao/Servants/Connector_Servant_Impl_Base.cpp +++ b/CIAO/ciao/Servants/Connector_Servant_Impl_Base.cpp @@ -278,6 +278,7 @@ namespace CIAO const char * /* publisher_name */, ::Components::EventConsumerBase_ptr /* subscriber */) { + throw ::Components::InvalidName (); return 0; } @@ -286,6 +287,7 @@ namespace CIAO const char * /* publisher_name */, ::Components::Cookie * /* ck */) { + throw ::Components::InvalidName (); return ::Components::EventConsumerBase::_nil (); } diff --git a/CIAO/ciao/Servants/Home_Servant_Impl_T.cpp b/CIAO/ciao/Servants/Home_Servant_Impl_T.cpp index 5444b2ed0bd..a34a2f8b687 100644 --- a/CIAO/ciao/Servants/Home_Servant_Impl_T.cpp +++ b/CIAO/ciao/Servants/Home_Servant_Impl_T.cpp @@ -163,6 +163,7 @@ namespace CIAO typename COMP_SVNT::_exec_type::_ptr_type exe) { CIAO_TRACE ("Home_Servant_Impl<>::_ciao_activate_component"); + CORBA::Object_var hobj = this->container_->get_objref (this); @@ -193,7 +194,6 @@ namespace CIAO this->container_->install_servant (svt, Container_Types::COMPONENT_t, oid.out ()); - typedef typename COMP_SVNT::_stub_type stub_type; typename COMP_SVNT::_stub_var_type ho = stub_type::_narrow (objref.in ()); @@ -203,7 +203,6 @@ namespace CIAO this->objref_map_.bind ( oid.in (), Components::CCMObject::_duplicate (ccmobjref.in ())); - return ho._retn (); } diff --git a/CIAO/connectors/ami4ccm/examples/Hello/descriptors/run_test.pl b/CIAO/connectors/ami4ccm/examples/Hello/descriptors/run_test.pl index 766e82d9590..6a5d3bb0da6 100755 --- a/CIAO/connectors/ami4ccm/examples/Hello/descriptors/run_test.pl +++ b/CIAO/connectors/ami4ccm/examples/Hello/descriptors/run_test.pl @@ -100,7 +100,7 @@ sub kill_open_processes { $NS->Kill (); $NS->TimedWait (1); } # in case shutdown did not perform as expected - $tg_executor->KillAll ('ciao_componentserver'); + $tg_executor->KillAll ('dance_locality_manager'); } sub run_node_daemons { @@ -110,7 +110,7 @@ sub run_node_daemons { $port = $ports[$i]; $nodename = $nodenames[$i]; $iiop = "iiop://localhost:$port"; - $node_app = "$CIAO_ROOT/bin/ciao_componentserver"; + $node_app = "$DANCE_ROOT/bin/dance_locality_manager"; $d_cmd = "$DANCE_ROOT/bin/dance_node_manager"; $d_param = "-ORBEndpoint $iiop -s $node_app -n $nodename=$iorfile -t 30 --domain-nc corbaloc:rir:/NameService"; diff --git a/CIAO/connectors/dds4ccm/examples/Hello/descriptors/run_1_to_5.pl b/CIAO/connectors/dds4ccm/examples/Hello/descriptors/run_1_to_5.pl index f15d7b4f0cb..54b94bd73b5 100755 --- a/CIAO/connectors/dds4ccm/examples/Hello/descriptors/run_1_to_5.pl +++ b/CIAO/connectors/dds4ccm/examples/Hello/descriptors/run_1_to_5.pl @@ -101,7 +101,7 @@ sub kill_open_processes { $NS->Kill (); $NS->TimedWait (1); } # in case shutdown did not perform as expected - $tg_executor->KillAll ('ciao_componentserver'); + $tg_executor->KillAll ('dance_locality_manager'); } sub run_node_daemons { @@ -111,7 +111,7 @@ sub run_node_daemons { $port = $ports[$i]; $nodename = $nodenames[$i]; $iiop = "iiop://localhost:$port"; - $node_app = "$CIAO_ROOT/bin/ciao_componentserver"; + $node_app = "$DANCE_ROOT/bin/dance_locality_manager"; $d_cmd = "$DANCE_ROOT/bin/dance_node_manager"; $d_param = "-ORBEndpoint $iiop -s $node_app -n $nodename=$iorfile -t 30 --domain-nc corbaloc:rir:/NameService"; diff --git a/CIAO/connectors/dds4ccm/examples/Hello/descriptors/run_5_to_1.pl b/CIAO/connectors/dds4ccm/examples/Hello/descriptors/run_5_to_1.pl index c28adced639..0b8c9d7f9d5 100755 --- a/CIAO/connectors/dds4ccm/examples/Hello/descriptors/run_5_to_1.pl +++ b/CIAO/connectors/dds4ccm/examples/Hello/descriptors/run_5_to_1.pl @@ -101,7 +101,7 @@ sub kill_open_processes { $NS->Kill (); $NS->TimedWait (1); } # in case shutdown did not perform as expected - $tg_executor->KillAll ('ciao_componentserver'); + $tg_executor->KillAll ('dance_locality_manager'); } sub run_node_daemons { @@ -111,7 +111,7 @@ sub run_node_daemons { $port = $ports[$i]; $nodename = $nodenames[$i]; $iiop = "iiop://localhost:$port"; - $node_app = "$CIAO_ROOT/bin/ciao_componentserver"; + $node_app = "$DANCE_ROOT/bin/dance_locality_manager"; $d_cmd = "$DANCE_ROOT/bin/dance_node_manager"; $d_param = "-ORBEndpoint $iiop -s $node_app -n $nodename=$iorfile -t 30 --domain-nc corbaloc:rir:/NameService"; diff --git a/CIAO/connectors/dds4ccm/examples/Hello/descriptors/run_5_to_5.pl b/CIAO/connectors/dds4ccm/examples/Hello/descriptors/run_5_to_5.pl index 522972bf6f2..d4ea507d6d2 100755 --- a/CIAO/connectors/dds4ccm/examples/Hello/descriptors/run_5_to_5.pl +++ b/CIAO/connectors/dds4ccm/examples/Hello/descriptors/run_5_to_5.pl @@ -103,7 +103,7 @@ sub kill_open_processes { $NS->Kill (); $NS->TimedWait (1); } # in case shutdown did not perform as expected - $tg_executor->KillAll ('ciao_componentserver'); + $tg_executor->KillAll ('dance_locality_manager'); } sub run_node_daemons { @@ -113,7 +113,7 @@ sub run_node_daemons { $port = $ports[$i]; $nodename = $nodenames[$i]; $iiop = "iiop://localhost:$port"; - $node_app = "$CIAO_ROOT/bin/ciao_componentserver"; + $node_app = "$DANCE_ROOT/bin/dance_locality_manager"; $d_cmd = "$DANCE_ROOT/bin/dance_node_manager"; $d_param = "-ORBEndpoint $iiop -s $node_app -n $nodename=$iorfile -t 30 --domain-nc corbaloc:rir:/NameService"; diff --git a/CIAO/connectors/dds4ccm/examples/Hello/descriptors/run_receiver.pl b/CIAO/connectors/dds4ccm/examples/Hello/descriptors/run_receiver.pl index 09a8a098e5e..739dd17cd40 100755 --- a/CIAO/connectors/dds4ccm/examples/Hello/descriptors/run_receiver.pl +++ b/CIAO/connectors/dds4ccm/examples/Hello/descriptors/run_receiver.pl @@ -101,7 +101,7 @@ sub kill_open_processes { $NS->Kill (); $NS->TimedWait (1); } # in case shutdown did not perform as expected - $tg_executor->KillAll ('ciao_componentserver'); + $tg_executor->KillAll ('dance_locality_manager'); } sub run_node_daemons { @@ -111,7 +111,7 @@ sub run_node_daemons { $port = $ports[$i]; $nodename = $nodenames[$i]; $iiop = "iiop://localhost:$port"; - $node_app = "$CIAO_ROOT/bin/ciao_componentserver"; + $node_app = "$DANCE_ROOT/bin/dance_locality_manager"; $d_cmd = "$DANCE_ROOT/bin/dance_node_manager"; $d_param = "-ORBEndpoint $iiop -s $node_app -n $nodename=$iorfile -t 30 --domain-nc corbaloc:rir:/NameService"; diff --git a/CIAO/connectors/dds4ccm/examples/Hello/descriptors/run_sender.pl b/CIAO/connectors/dds4ccm/examples/Hello/descriptors/run_sender.pl index c73fc8e11a7..35a6b25f641 100755 --- a/CIAO/connectors/dds4ccm/examples/Hello/descriptors/run_sender.pl +++ b/CIAO/connectors/dds4ccm/examples/Hello/descriptors/run_sender.pl @@ -101,7 +101,7 @@ sub kill_open_processes { $NS->Kill (); $NS->TimedWait (1); } # in case shutdown did not perform as expected - $tg_executor->KillAll ('ciao_componentserver'); + $tg_executor->KillAll ('dance_locality_manager'); } sub run_node_daemons { @@ -111,7 +111,7 @@ sub run_node_daemons { $port = $ports[$i]; $nodename = $nodenames[$i]; $iiop = "iiop://localhost:$port"; - $node_app = "$CIAO_ROOT/bin/ciao_componentserver"; + $node_app = "$DANCE_ROOT/bin/dance_locality_manager"; $d_cmd = "$DANCE_ROOT/bin/dance_node_manager"; $d_param = "-ORBEndpoint $iiop -s $node_app -n $nodename=$iorfile -t 30 --domain-nc corbaloc:rir:/NameService"; diff --git a/CIAO/connectors/dds4ccm/examples/Hello/descriptors/run_test.pl b/CIAO/connectors/dds4ccm/examples/Hello/descriptors/run_test.pl index 40764f5b852..1f2098b0a8b 100755 --- a/CIAO/connectors/dds4ccm/examples/Hello/descriptors/run_test.pl +++ b/CIAO/connectors/dds4ccm/examples/Hello/descriptors/run_test.pl @@ -101,7 +101,7 @@ sub kill_open_processes { $NS->Kill (); $NS->TimedWait (1); } # in case shutdown did not perform as expected - $tg_executor->KillAll ('ciao_componentserver'); + $tg_executor->KillAll ('dance_locality_manager'); } sub run_node_daemons { @@ -111,7 +111,7 @@ sub run_node_daemons { $port = $ports[$i]; $nodename = $nodenames[$i]; $iiop = "iiop://localhost:$port"; - $node_app = "$CIAO_ROOT/bin/ciao_componentserver"; + $node_app = "$DANCE_ROOT/bin/dance_locality_manager"; $d_cmd = "$DANCE_ROOT/bin/dance_node_manager"; $d_param = "-ORBEndpoint $iiop -s $node_app -n $nodename=$iorfile -t 30 --domain-nc corbaloc:rir:/NameService"; diff --git a/CIAO/connectors/dds4ccm/examples/Large_Deployment/descriptors/run_test.pl b/CIAO/connectors/dds4ccm/examples/Large_Deployment/descriptors/run_test.pl index 63828079c7c..99cf3cb0504 100755 --- a/CIAO/connectors/dds4ccm/examples/Large_Deployment/descriptors/run_test.pl +++ b/CIAO/connectors/dds4ccm/examples/Large_Deployment/descriptors/run_test.pl @@ -105,7 +105,7 @@ sub kill_open_processes { $NS->TimedWait (1); } # in case shutdown did not perform as expected - $tg_executor->KillAll ('ciao_componentserver'); + $tg_executor->KillAll ('dance_locality_manager'); } sub run_node_daemons { @@ -115,7 +115,7 @@ sub run_node_daemons { $port = $ports[$i]; $nodename = $nodenames[$i]; $iiop = "iiop://localhost:$port"; - $node_app = "$CIAO_ROOT/bin/ciao_componentserver"; + $node_app = "$DANCE_ROOT/bin/dance_locality_manager"; $d_cmd = "$DANCE_ROOT/bin/dance_node_manager"; $d_param = "-ORBEndpoint $iiop -s $node_app -n $nodename=$iorfile -t 30 --instance-nc corbaloc:rir:/NameService --domain-nc corbaloc:rir:/NameService"; diff --git a/CIAO/connectors/dds4ccm/examples/Quoter/descriptors/run_test.pl b/CIAO/connectors/dds4ccm/examples/Quoter/descriptors/run_test.pl index 44cd3fa00c0..b7569c5d050 100755 --- a/CIAO/connectors/dds4ccm/examples/Quoter/descriptors/run_test.pl +++ b/CIAO/connectors/dds4ccm/examples/Quoter/descriptors/run_test.pl @@ -101,7 +101,7 @@ sub kill_open_processes { $NS->Kill (); $NS->TimedWait (1); } # in case shutdown did not perform as expected - $tg_executor->KillAll ('ciao_componentserver'); + $tg_executor->KillAll ('dance_locality_manager'); } sub run_node_daemons { @@ -111,7 +111,7 @@ sub run_node_daemons { $port = $ports[$i]; $nodename = $nodenames[$i]; $iiop = "iiop://localhost:$port"; - $node_app = "$CIAO_ROOT/bin/ciao_componentserver"; + $node_app = "$DANCE_ROOT/bin/dance_locality_manager"; $d_cmd = "$DANCE_ROOT/bin/dance_node_manager"; $d_param = "-ORBEndpoint $iiop -s $node_app -n $nodename=$iorfile -t 30 --domain-nc corbaloc:rir:/NameService"; diff --git a/CIAO/connectors/dds4ccm/examples/Shapes/descriptors/run_test.pl b/CIAO/connectors/dds4ccm/examples/Shapes/descriptors/run_test.pl index 6ab7070d719..b89b9e9fe20 100755 --- a/CIAO/connectors/dds4ccm/examples/Shapes/descriptors/run_test.pl +++ b/CIAO/connectors/dds4ccm/examples/Shapes/descriptors/run_test.pl @@ -101,7 +101,7 @@ sub kill_open_processes { $NS->Kill (); $NS->TimedWait (1); } # in case shutdown did not perform as expected - $tg_executor->KillAll ('ciao_componentserver'); + $tg_executor->KillAll ('dance_locality_manager'); } sub run_node_daemons { @@ -111,7 +111,7 @@ sub run_node_daemons { $port = $ports[$i]; $nodename = $nodenames[$i]; $iiop = "iiop://localhost:$port"; - $node_app = "$CIAO_ROOT/bin/ciao_componentserver"; + $node_app = "$DANCE_ROOT/bin/dance_locality_manager"; $d_cmd = "$DANCE_ROOT/bin/dance_node_manager"; $d_param = "-ORBEndpoint $iiop -s $node_app -n $nodename=$iorfile -t 30 --domain-nc corbaloc:rir:/NameService"; diff --git a/CIAO/connectors/dds4ccm/performance-tests/Keyed/descriptors/run_pub.pl b/CIAO/connectors/dds4ccm/performance-tests/Keyed/descriptors/run_pub.pl index 7adaac62e2d..91c3431eb52 100755 --- a/CIAO/connectors/dds4ccm/performance-tests/Keyed/descriptors/run_pub.pl +++ b/CIAO/connectors/dds4ccm/performance-tests/Keyed/descriptors/run_pub.pl @@ -109,7 +109,7 @@ sub run_node_daemons { $port = $ports[$i]; $nodename = $nodenames[$i]; $iiop = "iiop://localhost:$port"; - $node_app = "$CIAO_ROOT/bin/ciao_componentserver"; + $node_app = "$DANCE_ROOT/bin/dance_locality_manager"; $d_cmd = "$DANCE_ROOT/bin/dance_node_manager"; $d_param = "-ORBEndpoint $iiop -s $node_app -n $nodename=$iorfile -t 30 --domain-nc corbaloc:rir:/NameService"; diff --git a/CIAO/connectors/dds4ccm/performance-tests/Keyed/descriptors/run_pub3.pl b/CIAO/connectors/dds4ccm/performance-tests/Keyed/descriptors/run_pub3.pl index f210522bace..377748951fc 100755 --- a/CIAO/connectors/dds4ccm/performance-tests/Keyed/descriptors/run_pub3.pl +++ b/CIAO/connectors/dds4ccm/performance-tests/Keyed/descriptors/run_pub3.pl @@ -109,7 +109,7 @@ sub run_node_daemons { $port = $ports[$i]; $nodename = $nodenames[$i]; $iiop = "iiop://localhost:$port"; - $node_app = "$CIAO_ROOT/bin/ciao_componentserver"; + $node_app = "$DANCE_ROOT/bin/dance_locality_manager"; $d_cmd = "$DANCE_ROOT/bin/dance_node_manager"; $d_param = "-ORBEndpoint $iiop -s $node_app -n $nodename=$iorfile -t 30 --domain-nc corbaloc:rir:/NameService"; diff --git a/CIAO/connectors/dds4ccm/performance-tests/Keyed/descriptors/run_pub_BE.pl b/CIAO/connectors/dds4ccm/performance-tests/Keyed/descriptors/run_pub_BE.pl index 7e84b92407a..bdda59a0c92 100755 --- a/CIAO/connectors/dds4ccm/performance-tests/Keyed/descriptors/run_pub_BE.pl +++ b/CIAO/connectors/dds4ccm/performance-tests/Keyed/descriptors/run_pub_BE.pl @@ -109,7 +109,7 @@ sub run_node_daemons { $port = $ports[$i]; $nodename = $nodenames[$i]; $iiop = "iiop://localhost:$port"; - $node_app = "$CIAO_ROOT/bin/ciao_componentserver"; + $node_app = "$DANCE_ROOT/bin/dance_locality_manager"; $d_cmd = "$DANCE_ROOT/bin/dance_node_manager"; $d_param = "-ORBEndpoint $iiop -s $node_app -n $nodename=$iorfile -t 30 --domain-nc corbaloc:rir:/NameService"; diff --git a/CIAO/connectors/dds4ccm/performance-tests/Keyed/descriptors/run_sub.pl b/CIAO/connectors/dds4ccm/performance-tests/Keyed/descriptors/run_sub.pl index 62fc97da27d..741091518cf 100755 --- a/CIAO/connectors/dds4ccm/performance-tests/Keyed/descriptors/run_sub.pl +++ b/CIAO/connectors/dds4ccm/performance-tests/Keyed/descriptors/run_sub.pl @@ -109,7 +109,7 @@ sub run_node_daemons { $port = $ports[$i]; $nodename = $nodenames[$i]; $iiop = "iiop://localhost:$port"; - $node_app = "$CIAO_ROOT/bin/ciao_componentserver"; + $node_app = "$DANCE_ROOT/bin/dance_locality_manager"; $d_cmd = "$DANCE_ROOT/bin/dance_node_manager"; $d_param = "-ORBEndpoint $iiop -s $node_app -n $nodename=$iorfile -t 30 --domain-nc corbaloc:rir:/NameService"; diff --git a/CIAO/connectors/dds4ccm/performance-tests/Keyed/descriptors/run_sub2.pl b/CIAO/connectors/dds4ccm/performance-tests/Keyed/descriptors/run_sub2.pl index 26a273dd7b7..f6bfd970501 100755 --- a/CIAO/connectors/dds4ccm/performance-tests/Keyed/descriptors/run_sub2.pl +++ b/CIAO/connectors/dds4ccm/performance-tests/Keyed/descriptors/run_sub2.pl @@ -109,7 +109,7 @@ sub run_node_daemons { $port = $ports[$i]; $nodename = $nodenames[$i]; $iiop = "iiop://localhost:$port"; - $node_app = "$CIAO_ROOT/bin/ciao_componentserver"; + $node_app = "$DANCE_ROOT/bin/dance_locality_manager"; $d_cmd = "$DANCE_ROOT/bin/dance_node_manager"; $d_param = "-ORBEndpoint $iiop -s $node_app -n $nodename=$iorfile -t 30 --domain-nc corbaloc:rir:/NameService"; diff --git a/CIAO/connectors/dds4ccm/performance-tests/Keyed/descriptors/run_sub3.pl b/CIAO/connectors/dds4ccm/performance-tests/Keyed/descriptors/run_sub3.pl index 8fa41296ab7..f5424baf6f8 100755 --- a/CIAO/connectors/dds4ccm/performance-tests/Keyed/descriptors/run_sub3.pl +++ b/CIAO/connectors/dds4ccm/performance-tests/Keyed/descriptors/run_sub3.pl @@ -109,7 +109,7 @@ sub run_node_daemons { $port = $ports[$i]; $nodename = $nodenames[$i]; $iiop = "iiop://localhost:$port"; - $node_app = "$CIAO_ROOT/bin/ciao_componentserver"; + $node_app = "$DANCE_ROOT/bin/dance_locality_manager"; $d_cmd = "$DANCE_ROOT/bin/dance_node_manager"; $d_param = "-ORBEndpoint $iiop -s $node_app -n $nodename=$iorfile -t 30 --domain-nc corbaloc:rir:/NameService"; diff --git a/CIAO/connectors/dds4ccm/performance-tests/Keyed/descriptors/run_sub_BE.pl b/CIAO/connectors/dds4ccm/performance-tests/Keyed/descriptors/run_sub_BE.pl index d178bdf4359..50d9bfa01fe 100755 --- a/CIAO/connectors/dds4ccm/performance-tests/Keyed/descriptors/run_sub_BE.pl +++ b/CIAO/connectors/dds4ccm/performance-tests/Keyed/descriptors/run_sub_BE.pl @@ -109,7 +109,7 @@ sub run_node_daemons { $port = $ports[$i]; $nodename = $nodenames[$i]; $iiop = "iiop://localhost:$port"; - $node_app = "$CIAO_ROOT/bin/ciao_componentserver"; + $node_app = "$DANCE_ROOT/bin/dance_locality_manager"; $d_cmd = "$DANCE_ROOT/bin/dance_node_manager"; $d_param = "-ORBEndpoint $iiop -s $node_app -n $nodename=$iorfile -t 30 --domain-nc corbaloc:rir:/NameService"; diff --git a/CIAO/connectors/dds4ccm/performance-tests/Keyed/descriptors/run_test.pl b/CIAO/connectors/dds4ccm/performance-tests/Keyed/descriptors/run_test.pl index 943d0e31404..d055a5c2788 100755 --- a/CIAO/connectors/dds4ccm/performance-tests/Keyed/descriptors/run_test.pl +++ b/CIAO/connectors/dds4ccm/performance-tests/Keyed/descriptors/run_test.pl @@ -101,7 +101,7 @@ sub kill_open_processes { $NS->Kill (); $NS->TimedWait (1); } # in case shutdown did not perform as expected - $tg_executor->KillAll ('ciao_componentserver'); + $tg_executor->KillAll ('dance_locality_manager'); } sub run_node_daemons { @@ -111,7 +111,7 @@ sub run_node_daemons { $port = $ports[$i]; $nodename = $nodenames[$i]; $iiop = "iiop://localhost:$port"; - $node_app = "$CIAO_ROOT/bin/ciao_componentserver"; + $node_app = "$DANCE_ROOT/bin/dance_locality_manager"; $d_cmd = "$DANCE_ROOT/bin/dance_node_manager"; $d_param = "-ORBEndpoint $iiop -s $node_app -n $nodename=$iorfile -t 30 --domain-nc corbaloc:rir:/NameService"; diff --git a/CIAO/connectors/dds4ccm/performance-tests/Throughput/descriptors/run_test.pl b/CIAO/connectors/dds4ccm/performance-tests/Throughput/descriptors/run_test.pl index 3eee53ba374..a8e2d629a76 100644 --- a/CIAO/connectors/dds4ccm/performance-tests/Throughput/descriptors/run_test.pl +++ b/CIAO/connectors/dds4ccm/performance-tests/Throughput/descriptors/run_test.pl @@ -103,7 +103,7 @@ sub kill_open_processes { $NS->Kill (); $NS->TimedWait (1); } # in case shutdown did not perform as expected - $tg_executor->KillAll ('ciao_componentserver'); + $tg_executor->KillAll ('dance_locality_manager'); } sub run_node_daemons { @@ -113,7 +113,7 @@ sub run_node_daemons { $port = $ports[$i]; $nodename = $nodenames[$i]; $iiop = "iiop://localhost:$port"; - $node_app = "$CIAO_ROOT/bin/ciao_componentserver"; + $node_app = "$DANCE_ROOT/bin/dance_locality_manager"; $d_cmd = "$DANCE_ROOT/bin/dance_node_manager"; $d_param = "-ORBEndpoint $iiop -s $node_app -n $nodename=$iorfile -t 30 --domain-nc corbaloc:rir:/NameService"; diff --git a/CIAO/connectors/dds4ccm/tests/CSLDeadline/descriptors/run_test.pl b/CIAO/connectors/dds4ccm/tests/CSLDeadline/descriptors/run_test.pl index b611e355ec0..d6d101e660c 100755 --- a/CIAO/connectors/dds4ccm/tests/CSLDeadline/descriptors/run_test.pl +++ b/CIAO/connectors/dds4ccm/tests/CSLDeadline/descriptors/run_test.pl @@ -100,7 +100,7 @@ sub kill_open_processes { $NS->Kill (); $NS->TimedWait (1); } # in case shutdown did not perform as expected - $tg_executor->KillAll ('ciao_componentserver'); + $tg_executor->KillAll ('dance_locality_manager'); } sub run_node_daemons { @@ -110,7 +110,7 @@ sub run_node_daemons { $port = $ports[$i]; $nodename = $nodenames[$i]; $iiop = "iiop://localhost:$port"; - $node_app = "$CIAO_ROOT/bin/ciao_componentserver"; + $node_app = "$DANCE_ROOT/bin/dance_locality_manager"; $d_cmd = "$DANCE_ROOT/bin/dance_node_manager"; $d_param = "-ORBEndpoint $iiop -s $node_app -n $nodename=$iorfile -t 30 --domain-nc corbaloc:rir:/NameService"; diff --git a/CIAO/connectors/dds4ccm/tests/CSLQoS/descriptors/run_test.pl b/CIAO/connectors/dds4ccm/tests/CSLQoS/descriptors/run_test.pl index b2a5229d554..f268769e6f6 100755 --- a/CIAO/connectors/dds4ccm/tests/CSLQoS/descriptors/run_test.pl +++ b/CIAO/connectors/dds4ccm/tests/CSLQoS/descriptors/run_test.pl @@ -101,7 +101,7 @@ sub kill_open_processes { $NS->Kill (); $NS->TimedWait (1); } # in case shutdown did not perform as expected - $tg_executor->KillAll ('ciao_componentserver'); + $tg_executor->KillAll ('dance_locality_manager'); } sub run_node_daemons { @@ -111,7 +111,7 @@ sub run_node_daemons { $port = $ports[$i]; $nodename = $nodenames[$i]; $iiop = "iiop://localhost:$port"; - $node_app = "$CIAO_ROOT/bin/ciao_componentserver"; + $node_app = "$DANCE_ROOT/bin/dance_locality_manager"; $d_cmd = "$DANCE_ROOT/bin/dance_node_manager"; $d_param = "-ORBEndpoint $iiop -s $node_app -n $nodename=$iorfile -t 30 --domain-nc corbaloc:rir:/NameService"; diff --git a/CIAO/connectors/dds4ccm/tests/CSLSampleRejected/descriptors/run_test.pl b/CIAO/connectors/dds4ccm/tests/CSLSampleRejected/descriptors/run_test.pl index 5d0ab35419d..ebadabec718 100755 --- a/CIAO/connectors/dds4ccm/tests/CSLSampleRejected/descriptors/run_test.pl +++ b/CIAO/connectors/dds4ccm/tests/CSLSampleRejected/descriptors/run_test.pl @@ -101,7 +101,7 @@ sub kill_open_processes { $NS->Kill (); $NS->TimedWait (1); } # in case shutdown did not perform as expected - $tg_executor->KillAll ('ciao_componentserver'); + $tg_executor->KillAll ('dance_locality_manager'); } sub run_node_daemons { @@ -111,7 +111,7 @@ sub run_node_daemons { $port = $ports[$i]; $nodename = $nodenames[$i]; $iiop = "iiop://localhost:$port"; - $node_app = "$CIAO_ROOT/bin/ciao_componentserver"; + $node_app = "$DANCE_ROOT/bin/dance_locality_manager"; $d_cmd = "$DANCE_ROOT/bin/dance_node_manager"; $d_param = "-ORBEndpoint $iiop -s $node_app -n $nodename=$iorfile -t 30 --domain-nc corbaloc:rir:/NameService"; diff --git a/CIAO/connectors/dds4ccm/tests/CSLUnexpStat/descriptors/run_test.pl b/CIAO/connectors/dds4ccm/tests/CSLUnexpStat/descriptors/run_test.pl index 66cc403a1fb..8da823fbf05 100755 --- a/CIAO/connectors/dds4ccm/tests/CSLUnexpStat/descriptors/run_test.pl +++ b/CIAO/connectors/dds4ccm/tests/CSLUnexpStat/descriptors/run_test.pl @@ -101,7 +101,7 @@ sub kill_open_processes { $NS->Kill (); $NS->TimedWait (1); } # in case shutdown did not perform as expected - $tg_executor->KillAll ('ciao_componentserver'); + $tg_executor->KillAll ('dance_locality_manager'); } sub run_node_daemons { @@ -111,7 +111,7 @@ sub run_node_daemons { $port = $ports[$i]; $nodename = $nodenames[$i]; $iiop = "iiop://localhost:$port"; - $node_app = "$CIAO_ROOT/bin/ciao_componentserver"; + $node_app = "$DANCE_ROOT/bin/dance_locality_manager"; $d_cmd = "$DANCE_ROOT/bin/dance_node_manager"; $d_param = "-ORBEndpoint $iiop -s $node_app -n $nodename=$iorfile -t 30 --domain-nc corbaloc:rir:/NameService"; diff --git a/CIAO/connectors/dds4ccm/tests/CoherentUpdater/descriptors/run_test.pl b/CIAO/connectors/dds4ccm/tests/CoherentUpdater/descriptors/run_test.pl index 4d9ba95b5f7..62c0e785b5b 100755 --- a/CIAO/connectors/dds4ccm/tests/CoherentUpdater/descriptors/run_test.pl +++ b/CIAO/connectors/dds4ccm/tests/CoherentUpdater/descriptors/run_test.pl @@ -101,7 +101,7 @@ sub kill_open_processes { $NS->Kill (); $NS->TimedWait (1); } # in case shutdown did not perform as expected - $tg_executor->KillAll ('ciao_componentserver'); + $tg_executor->KillAll ('dance_locality_manager'); } sub run_node_daemons { @@ -111,7 +111,7 @@ sub run_node_daemons { $port = $ports[$i]; $nodename = $nodenames[$i]; $iiop = "iiop://localhost:$port"; - $node_app = "$CIAO_ROOT/bin/ciao_componentserver"; + $node_app = "$DANCE_ROOT/bin/dance_locality_manager"; $d_cmd = "$DANCE_ROOT/bin/dance_node_manager"; $d_param = "-ORBEndpoint $iiop -s $node_app -n $nodename=$iorfile -t 30 --domain-nc corbaloc:rir:/NameService"; diff --git a/CIAO/connectors/dds4ccm/tests/CoherentWriter/descriptors/run_test.pl b/CIAO/connectors/dds4ccm/tests/CoherentWriter/descriptors/run_test.pl index 708c17b2051..7b00c89a61f 100755 --- a/CIAO/connectors/dds4ccm/tests/CoherentWriter/descriptors/run_test.pl +++ b/CIAO/connectors/dds4ccm/tests/CoherentWriter/descriptors/run_test.pl @@ -101,7 +101,7 @@ sub kill_open_processes { $NS->Kill (); $NS->TimedWait (1); } # in case shutdown did not perform as expected - $tg_executor->KillAll ('ciao_componentserver'); + $tg_executor->KillAll ('dance_locality_manager'); } sub run_node_daemons { @@ -111,7 +111,7 @@ sub run_node_daemons { $port = $ports[$i]; $nodename = $nodenames[$i]; $iiop = "iiop://localhost:$port"; - $node_app = "$CIAO_ROOT/bin/ciao_componentserver"; + $node_app = "$DANCE_ROOT/bin/dance_locality_manager"; $d_cmd = "$DANCE_ROOT/bin/dance_node_manager"; $d_param = "-ORBEndpoint $iiop -s $node_app -n $nodename=$iorfile -t 30 --domain-nc corbaloc:rir:/NameService"; diff --git a/CIAO/connectors/dds4ccm/tests/DDSWriterEntity/descriptors/run_test.pl b/CIAO/connectors/dds4ccm/tests/DDSWriterEntity/descriptors/run_test.pl index 3ca8a0ee149..58d757ad63f 100755 --- a/CIAO/connectors/dds4ccm/tests/DDSWriterEntity/descriptors/run_test.pl +++ b/CIAO/connectors/dds4ccm/tests/DDSWriterEntity/descriptors/run_test.pl @@ -101,7 +101,7 @@ sub kill_open_processes { $NS->Kill (); $NS->TimedWait (1); } # in case shutdown did not perform as expected - $tg_executor->KillAll ('ciao_componentserver'); + $tg_executor->KillAll ('dance_locality_manager'); } sub run_node_daemons { @@ -111,7 +111,7 @@ sub run_node_daemons { $port = $ports[$i]; $nodename = $nodenames[$i]; $iiop = "iiop://localhost:$port"; - $node_app = "$CIAO_ROOT/bin/ciao_componentserver"; + $node_app = "$DANCE_ROOT/bin/dance_locality_manager"; $d_cmd = "$DANCE_ROOT/bin/dance_node_manager"; $d_param = "-ORBEndpoint $iiop -s $node_app -n $nodename=$iorfile -t 30 --domain-nc corbaloc:rir:/NameService"; diff --git a/CIAO/connectors/dds4ccm/tests/Event_Connection_Test/descriptors/run_test.pl b/CIAO/connectors/dds4ccm/tests/Event_Connection_Test/descriptors/run_test.pl index b2a5229d554..f268769e6f6 100755 --- a/CIAO/connectors/dds4ccm/tests/Event_Connection_Test/descriptors/run_test.pl +++ b/CIAO/connectors/dds4ccm/tests/Event_Connection_Test/descriptors/run_test.pl @@ -101,7 +101,7 @@ sub kill_open_processes { $NS->Kill (); $NS->TimedWait (1); } # in case shutdown did not perform as expected - $tg_executor->KillAll ('ciao_componentserver'); + $tg_executor->KillAll ('dance_locality_manager'); } sub run_node_daemons { @@ -111,7 +111,7 @@ sub run_node_daemons { $port = $ports[$i]; $nodename = $nodenames[$i]; $iiop = "iiop://localhost:$port"; - $node_app = "$CIAO_ROOT/bin/ciao_componentserver"; + $node_app = "$DANCE_ROOT/bin/dance_locality_manager"; $d_cmd = "$DANCE_ROOT/bin/dance_node_manager"; $d_param = "-ORBEndpoint $iiop -s $node_app -n $nodename=$iorfile -t 30 --domain-nc corbaloc:rir:/NameService"; diff --git a/CIAO/connectors/dds4ccm/tests/Getter/descriptors/run_test.pl b/CIAO/connectors/dds4ccm/tests/Getter/descriptors/run_test.pl index d897a3911e9..34a642b693c 100755 --- a/CIAO/connectors/dds4ccm/tests/Getter/descriptors/run_test.pl +++ b/CIAO/connectors/dds4ccm/tests/Getter/descriptors/run_test.pl @@ -101,7 +101,7 @@ sub kill_open_processes { $NS->Kill (); $NS->TimedWait (1); } # in case shutdown did not perform as expected - $tg_executor->KillAll ('ciao_componentserver'); + $tg_executor->KillAll ('dance_locality_manager'); } sub run_node_daemons { @@ -111,7 +111,7 @@ sub run_node_daemons { $port = $ports[$i]; $nodename = $nodenames[$i]; $iiop = "iiop://localhost:$port"; - $node_app = "$CIAO_ROOT/bin/ciao_componentserver"; + $node_app = "$DANCE_ROOT/bin/dance_locality_manager"; $d_cmd = "$DANCE_ROOT/bin/dance_node_manager"; $d_param = "-ORBEndpoint $iiop -s $node_app -n $nodename=$iorfile -t 30 --domain-nc corbaloc:rir:/NameService"; diff --git a/CIAO/connectors/dds4ccm/tests/InstanceHandle/descriptors/run_test.pl b/CIAO/connectors/dds4ccm/tests/InstanceHandle/descriptors/run_test.pl index e39d6647174..8e3d2319d68 100755 --- a/CIAO/connectors/dds4ccm/tests/InstanceHandle/descriptors/run_test.pl +++ b/CIAO/connectors/dds4ccm/tests/InstanceHandle/descriptors/run_test.pl @@ -101,7 +101,7 @@ sub kill_open_processes { $NS->Kill (); $NS->TimedWait (1); } # in case shutdown did not perform as expected - $tg_executor->KillAll ('ciao_componentserver'); + $tg_executor->KillAll ('dance_locality_manager'); } sub run_node_daemons { @@ -111,7 +111,7 @@ sub run_node_daemons { $port = $ports[$i]; $nodename = $nodenames[$i]; $iiop = "iiop://localhost:$port"; - $node_app = "$CIAO_ROOT/bin/ciao_componentserver"; + $node_app = "$DANCE_ROOT/bin/dance_locality_manager"; $d_cmd = "$DANCE_ROOT/bin/dance_node_manager"; $d_param = "-ORBEndpoint $iiop -s $node_app -n $nodename=$iorfile -t 30 --domain-nc corbaloc:rir:/NameService"; diff --git a/CIAO/connectors/dds4ccm/tests/KeyedSamples/descriptors/run_test.pl b/CIAO/connectors/dds4ccm/tests/KeyedSamples/descriptors/run_test.pl index 3ca8a0ee149..58d757ad63f 100755 --- a/CIAO/connectors/dds4ccm/tests/KeyedSamples/descriptors/run_test.pl +++ b/CIAO/connectors/dds4ccm/tests/KeyedSamples/descriptors/run_test.pl @@ -101,7 +101,7 @@ sub kill_open_processes { $NS->Kill (); $NS->TimedWait (1); } # in case shutdown did not perform as expected - $tg_executor->KillAll ('ciao_componentserver'); + $tg_executor->KillAll ('dance_locality_manager'); } sub run_node_daemons { @@ -111,7 +111,7 @@ sub run_node_daemons { $port = $ports[$i]; $nodename = $nodenames[$i]; $iiop = "iiop://localhost:$port"; - $node_app = "$CIAO_ROOT/bin/ciao_componentserver"; + $node_app = "$DANCE_ROOT/bin/dance_locality_manager"; $d_cmd = "$DANCE_ROOT/bin/dance_node_manager"; $d_param = "-ORBEndpoint $iiop -s $node_app -n $nodename=$iorfile -t 30 --domain-nc corbaloc:rir:/NameService"; diff --git a/CIAO/connectors/dds4ccm/tests/KeyedWriter/descriptors/run_test.pl b/CIAO/connectors/dds4ccm/tests/KeyedWriter/descriptors/run_test.pl index 3ca8a0ee149..58d757ad63f 100755 --- a/CIAO/connectors/dds4ccm/tests/KeyedWriter/descriptors/run_test.pl +++ b/CIAO/connectors/dds4ccm/tests/KeyedWriter/descriptors/run_test.pl @@ -101,7 +101,7 @@ sub kill_open_processes { $NS->Kill (); $NS->TimedWait (1); } # in case shutdown did not perform as expected - $tg_executor->KillAll ('ciao_componentserver'); + $tg_executor->KillAll ('dance_locality_manager'); } sub run_node_daemons { @@ -111,7 +111,7 @@ sub run_node_daemons { $port = $ports[$i]; $nodename = $nodenames[$i]; $iiop = "iiop://localhost:$port"; - $node_app = "$CIAO_ROOT/bin/ciao_componentserver"; + $node_app = "$DANCE_ROOT/bin/dance_locality_manager"; $d_cmd = "$DANCE_ROOT/bin/dance_node_manager"; $d_param = "-ORBEndpoint $iiop -s $node_app -n $nodename=$iorfile -t 30 --domain-nc corbaloc:rir:/NameService"; diff --git a/CIAO/connectors/dds4ccm/tests/ListenManyByMany/descriptors/run_test.pl b/CIAO/connectors/dds4ccm/tests/ListenManyByMany/descriptors/run_test.pl index ddeee753cf7..6f8d90928dd 100755 --- a/CIAO/connectors/dds4ccm/tests/ListenManyByMany/descriptors/run_test.pl +++ b/CIAO/connectors/dds4ccm/tests/ListenManyByMany/descriptors/run_test.pl @@ -101,7 +101,7 @@ sub kill_open_processes { $NS->Kill (); $NS->TimedWait (1); } # in case shutdown did not perform as expected - $tg_executor->KillAll ('ciao_componentserver'); + $tg_executor->KillAll ('dance_locality_manager'); } sub run_node_daemons { @@ -111,7 +111,7 @@ sub run_node_daemons { $port = $ports[$i]; $nodename = $nodenames[$i]; $iiop = "iiop://localhost:$port"; - $node_app = "$CIAO_ROOT/bin/ciao_componentserver"; + $node_app = "$DANCE_ROOT/bin/dance_locality_manager"; $d_cmd = "$DANCE_ROOT/bin/dance_node_manager"; $d_param = "-ORBEndpoint $iiop -s $node_app -n $nodename=$iorfile -t 30 --domain-nc corbaloc:rir:/NameService"; diff --git a/CIAO/connectors/dds4ccm/tests/ListenNotEnabled/descriptors/run_test.pl b/CIAO/connectors/dds4ccm/tests/ListenNotEnabled/descriptors/run_test.pl index b2a5229d554..f268769e6f6 100755 --- a/CIAO/connectors/dds4ccm/tests/ListenNotEnabled/descriptors/run_test.pl +++ b/CIAO/connectors/dds4ccm/tests/ListenNotEnabled/descriptors/run_test.pl @@ -101,7 +101,7 @@ sub kill_open_processes { $NS->Kill (); $NS->TimedWait (1); } # in case shutdown did not perform as expected - $tg_executor->KillAll ('ciao_componentserver'); + $tg_executor->KillAll ('dance_locality_manager'); } sub run_node_daemons { @@ -111,7 +111,7 @@ sub run_node_daemons { $port = $ports[$i]; $nodename = $nodenames[$i]; $iiop = "iiop://localhost:$port"; - $node_app = "$CIAO_ROOT/bin/ciao_componentserver"; + $node_app = "$DANCE_ROOT/bin/dance_locality_manager"; $d_cmd = "$DANCE_ROOT/bin/dance_node_manager"; $d_param = "-ORBEndpoint $iiop -s $node_app -n $nodename=$iorfile -t 30 --domain-nc corbaloc:rir:/NameService"; diff --git a/CIAO/connectors/dds4ccm/tests/ListenOneByOne/descriptors/run_test.pl b/CIAO/connectors/dds4ccm/tests/ListenOneByOne/descriptors/run_test.pl index ddeee753cf7..6f8d90928dd 100755 --- a/CIAO/connectors/dds4ccm/tests/ListenOneByOne/descriptors/run_test.pl +++ b/CIAO/connectors/dds4ccm/tests/ListenOneByOne/descriptors/run_test.pl @@ -101,7 +101,7 @@ sub kill_open_processes { $NS->Kill (); $NS->TimedWait (1); } # in case shutdown did not perform as expected - $tg_executor->KillAll ('ciao_componentserver'); + $tg_executor->KillAll ('dance_locality_manager'); } sub run_node_daemons { @@ -111,7 +111,7 @@ sub run_node_daemons { $port = $ports[$i]; $nodename = $nodenames[$i]; $iiop = "iiop://localhost:$port"; - $node_app = "$CIAO_ROOT/bin/ciao_componentserver"; + $node_app = "$DANCE_ROOT/bin/dance_locality_manager"; $d_cmd = "$DANCE_ROOT/bin/dance_node_manager"; $d_param = "-ORBEndpoint $iiop -s $node_app -n $nodename=$iorfile -t 30 --domain-nc corbaloc:rir:/NameService"; diff --git a/CIAO/connectors/dds4ccm/tests/NonChangeableAttribute/descriptors/run_test.pl b/CIAO/connectors/dds4ccm/tests/NonChangeableAttribute/descriptors/run_test.pl index b51ae16243d..3e9d6f53dea 100755 --- a/CIAO/connectors/dds4ccm/tests/NonChangeableAttribute/descriptors/run_test.pl +++ b/CIAO/connectors/dds4ccm/tests/NonChangeableAttribute/descriptors/run_test.pl @@ -101,7 +101,7 @@ sub kill_open_processes { $NS->Kill (); $NS->TimedWait (1); } # in case shutdown did not perform as expected - $tg_executor->KillAll ('ciao_componentserver'); + $tg_executor->KillAll ('dance_locality_manager'); } sub run_node_daemons { @@ -111,7 +111,7 @@ sub run_node_daemons { $port = $ports[$i]; $nodename = $nodenames[$i]; $iiop = "iiop://localhost:$port"; - $node_app = "$CIAO_ROOT/bin/ciao_componentserver"; + $node_app = "$DANCE_ROOT/bin/dance_locality_manager"; $d_cmd = "$DANCE_ROOT/bin/dance_node_manager"; $d_param = "-ORBEndpoint $iiop -s $node_app -n $nodename=$iorfile -t 30 --domain-nc corbaloc:rir:/NameService"; diff --git a/CIAO/connectors/dds4ccm/tests/On_Inconsistent_Topic/descriptors/run_test.pl b/CIAO/connectors/dds4ccm/tests/On_Inconsistent_Topic/descriptors/run_test.pl index 9734de1093a..e4ea54ee190 100755 --- a/CIAO/connectors/dds4ccm/tests/On_Inconsistent_Topic/descriptors/run_test.pl +++ b/CIAO/connectors/dds4ccm/tests/On_Inconsistent_Topic/descriptors/run_test.pl @@ -101,7 +101,7 @@ sub kill_open_processes { $NS->Kill (); $NS->TimedWait (1); } # in case shutdown did not perform as expected - $tg_executor->KillAll ('ciao_componentserver'); + $tg_executor->KillAll ('dance_locality_manager'); } sub run_node_daemons { @@ -111,7 +111,7 @@ sub run_node_daemons { $port = $ports[$i]; $nodename = $nodenames[$i]; $iiop = "iiop://localhost:$port"; - $node_app = "$CIAO_ROOT/bin/ciao_componentserver"; + $node_app = "$DANCE_ROOT/bin/dance_locality_manager"; $d_cmd = "$DANCE_ROOT/bin/dance_node_manager"; $d_param = "-ORBEndpoint $iiop -s $node_app -n $nodename=$iorfile -t 30 --domain-nc corbaloc:rir:/NameService"; diff --git a/CIAO/connectors/dds4ccm/tests/PSLDeadline/descriptors/run_test.pl b/CIAO/connectors/dds4ccm/tests/PSLDeadline/descriptors/run_test.pl index 4ea0f211542..aa5e72be47d 100755 --- a/CIAO/connectors/dds4ccm/tests/PSLDeadline/descriptors/run_test.pl +++ b/CIAO/connectors/dds4ccm/tests/PSLDeadline/descriptors/run_test.pl @@ -101,7 +101,7 @@ sub kill_open_processes { $NS->Kill (); $NS->TimedWait (1); } # in case shutdown did not perform as expected - $tg_executor->KillAll ('ciao_componentserver'); + $tg_executor->KillAll ('dance_locality_manager'); } sub run_node_daemons { @@ -111,7 +111,7 @@ sub run_node_daemons { $port = $ports[$i]; $nodename = $nodenames[$i]; $iiop = "iiop://localhost:$port"; - $node_app = "$CIAO_ROOT/bin/ciao_componentserver"; + $node_app = "$DANCE_ROOT/bin/dance_locality_manager"; $d_cmd = "$DANCE_ROOT/bin/dance_node_manager"; $d_param = "-ORBEndpoint $iiop -s $node_app -n $nodename=$iorfile -t 30 --domain-nc corbaloc:rir:/NameService"; diff --git a/CIAO/connectors/dds4ccm/tests/PSLSampleLost/descriptors/run_test.pl b/CIAO/connectors/dds4ccm/tests/PSLSampleLost/descriptors/run_test.pl index b2a5229d554..f268769e6f6 100755 --- a/CIAO/connectors/dds4ccm/tests/PSLSampleLost/descriptors/run_test.pl +++ b/CIAO/connectors/dds4ccm/tests/PSLSampleLost/descriptors/run_test.pl @@ -101,7 +101,7 @@ sub kill_open_processes { $NS->Kill (); $NS->TimedWait (1); } # in case shutdown did not perform as expected - $tg_executor->KillAll ('ciao_componentserver'); + $tg_executor->KillAll ('dance_locality_manager'); } sub run_node_daemons { @@ -111,7 +111,7 @@ sub run_node_daemons { $port = $ports[$i]; $nodename = $nodenames[$i]; $iiop = "iiop://localhost:$port"; - $node_app = "$CIAO_ROOT/bin/ciao_componentserver"; + $node_app = "$DANCE_ROOT/bin/dance_locality_manager"; $d_cmd = "$DANCE_ROOT/bin/dance_node_manager"; $d_param = "-ORBEndpoint $iiop -s $node_app -n $nodename=$iorfile -t 30 --domain-nc corbaloc:rir:/NameService"; diff --git a/CIAO/connectors/dds4ccm/tests/PortUsage/descriptors/run_test.pl b/CIAO/connectors/dds4ccm/tests/PortUsage/descriptors/run_test.pl index c26f639fb6d..150824a4932 100755 --- a/CIAO/connectors/dds4ccm/tests/PortUsage/descriptors/run_test.pl +++ b/CIAO/connectors/dds4ccm/tests/PortUsage/descriptors/run_test.pl @@ -99,7 +99,7 @@ sub kill_open_processes { $NS->Kill (); $NS->TimedWait (1); } # in case shutdown did not perform as expected - $tg_executor->KillAll ('ciao_componentserver'); + $tg_executor->KillAll ('dance_locality_manager'); } @@ -110,7 +110,7 @@ sub run_node_daemons { $port = $ports[$i]; $nodename = $nodenames[$i]; $iiop = "iiop://localhost:$port"; - $node_app = "$CIAO_ROOT/bin/ciao_componentserver"; + $node_app = "$DANCE_ROOT/bin/dance_locality_manager"; $d_cmd = "$DANCE_ROOT/bin/dance_node_manager"; $d_param = "-ORBEndpoint $iiop -s $node_app -n $nodename=$iorfile -t 30 --domain-nc corbaloc:rir:/NameService"; diff --git a/CIAO/connectors/dds4ccm/tests/QosProfile/descriptors/run_test.pl b/CIAO/connectors/dds4ccm/tests/QosProfile/descriptors/run_test.pl index 82e952240b7..a69f6626029 100755 --- a/CIAO/connectors/dds4ccm/tests/QosProfile/descriptors/run_test.pl +++ b/CIAO/connectors/dds4ccm/tests/QosProfile/descriptors/run_test.pl @@ -101,7 +101,7 @@ sub kill_open_processes { $NS->Kill (); $NS->TimedWait (1); } # in case shutdown did not perform as expected - $tg_executor->KillAll ('ciao_componentserver'); + $tg_executor->KillAll ('dance_locality_manager'); delete_ior_files (); } @@ -112,7 +112,7 @@ sub run_node_daemons { $port = $ports[$i]; $nodename = $nodenames[$i]; $iiop = "iiop://localhost:$port"; - $node_app = "$CIAO_ROOT/bin/ciao_componentserver"; + $node_app = "$DANCE_ROOT/bin/dance_locality_manager"; $d_cmd = "$DANCE_ROOT/bin/dance_node_manager"; $d_param = "-ORBEndpoint $iiop -s $node_app -n $nodename=$iorfile -t 30 --domain-nc corbaloc:rir:/NameService"; diff --git a/CIAO/connectors/dds4ccm/tests/QueryFilter/descriptors/run_test.pl b/CIAO/connectors/dds4ccm/tests/QueryFilter/descriptors/run_test.pl index 708c17b2051..7b00c89a61f 100755 --- a/CIAO/connectors/dds4ccm/tests/QueryFilter/descriptors/run_test.pl +++ b/CIAO/connectors/dds4ccm/tests/QueryFilter/descriptors/run_test.pl @@ -101,7 +101,7 @@ sub kill_open_processes { $NS->Kill (); $NS->TimedWait (1); } # in case shutdown did not perform as expected - $tg_executor->KillAll ('ciao_componentserver'); + $tg_executor->KillAll ('dance_locality_manager'); } sub run_node_daemons { @@ -111,7 +111,7 @@ sub run_node_daemons { $port = $ports[$i]; $nodename = $nodenames[$i]; $iiop = "iiop://localhost:$port"; - $node_app = "$CIAO_ROOT/bin/ciao_componentserver"; + $node_app = "$DANCE_ROOT/bin/dance_locality_manager"; $d_cmd = "$DANCE_ROOT/bin/dance_node_manager"; $d_param = "-ORBEndpoint $iiop -s $node_app -n $nodename=$iorfile -t 30 --domain-nc corbaloc:rir:/NameService"; diff --git a/CIAO/connectors/dds4ccm/tests/QueryFilterListenEvent/descriptors/run_test.pl b/CIAO/connectors/dds4ccm/tests/QueryFilterListenEvent/descriptors/run_test.pl index ddeee753cf7..6f8d90928dd 100755 --- a/CIAO/connectors/dds4ccm/tests/QueryFilterListenEvent/descriptors/run_test.pl +++ b/CIAO/connectors/dds4ccm/tests/QueryFilterListenEvent/descriptors/run_test.pl @@ -101,7 +101,7 @@ sub kill_open_processes { $NS->Kill (); $NS->TimedWait (1); } # in case shutdown did not perform as expected - $tg_executor->KillAll ('ciao_componentserver'); + $tg_executor->KillAll ('dance_locality_manager'); } sub run_node_daemons { @@ -111,7 +111,7 @@ sub run_node_daemons { $port = $ports[$i]; $nodename = $nodenames[$i]; $iiop = "iiop://localhost:$port"; - $node_app = "$CIAO_ROOT/bin/ciao_componentserver"; + $node_app = "$DANCE_ROOT/bin/dance_locality_manager"; $d_cmd = "$DANCE_ROOT/bin/dance_node_manager"; $d_param = "-ORBEndpoint $iiop -s $node_app -n $nodename=$iorfile -t 30 --domain-nc corbaloc:rir:/NameService"; diff --git a/CIAO/connectors/dds4ccm/tests/QueryFilterListenState/descriptors/run_test.pl b/CIAO/connectors/dds4ccm/tests/QueryFilterListenState/descriptors/run_test.pl index ddeee753cf7..6f8d90928dd 100755 --- a/CIAO/connectors/dds4ccm/tests/QueryFilterListenState/descriptors/run_test.pl +++ b/CIAO/connectors/dds4ccm/tests/QueryFilterListenState/descriptors/run_test.pl @@ -101,7 +101,7 @@ sub kill_open_processes { $NS->Kill (); $NS->TimedWait (1); } # in case shutdown did not perform as expected - $tg_executor->KillAll ('ciao_componentserver'); + $tg_executor->KillAll ('dance_locality_manager'); } sub run_node_daemons { @@ -111,7 +111,7 @@ sub run_node_daemons { $port = $ports[$i]; $nodename = $nodenames[$i]; $iiop = "iiop://localhost:$port"; - $node_app = "$CIAO_ROOT/bin/ciao_componentserver"; + $node_app = "$DANCE_ROOT/bin/dance_locality_manager"; $d_cmd = "$DANCE_ROOT/bin/dance_node_manager"; $d_param = "-ORBEndpoint $iiop -s $node_app -n $nodename=$iorfile -t 30 --domain-nc corbaloc:rir:/NameService"; diff --git a/CIAO/connectors/dds4ccm/tests/Reader/descriptors/run_test.pl b/CIAO/connectors/dds4ccm/tests/Reader/descriptors/run_test.pl index 997852c0618..b9ce56fc32c 100755 --- a/CIAO/connectors/dds4ccm/tests/Reader/descriptors/run_test.pl +++ b/CIAO/connectors/dds4ccm/tests/Reader/descriptors/run_test.pl @@ -101,7 +101,7 @@ sub kill_open_processes { $NS->Kill (); $NS->TimedWait (1); } # in case shutdown did not perform as expected - $tg_executor->KillAll ('ciao_componentserver'); + $tg_executor->KillAll ('dance_locality_manager'); } sub run_node_daemons { @@ -111,7 +111,7 @@ sub run_node_daemons { $port = $ports[$i]; $nodename = $nodenames[$i]; $iiop = "iiop://localhost:$port"; - $node_app = "$CIAO_ROOT/bin/ciao_componentserver"; + $node_app = "$DANCE_ROOT/bin/dance_locality_manager"; $d_cmd = "$DANCE_ROOT/bin/dance_node_manager"; $d_param = "-ORBEndpoint $iiop -s $node_app -n $nodename=$iorfile -t 30 --domain-nc corbaloc:rir:/NameService"; diff --git a/CIAO/connectors/dds4ccm/tests/SLDisabled/descriptors/run_test.pl b/CIAO/connectors/dds4ccm/tests/SLDisabled/descriptors/run_test.pl index 66cc403a1fb..8da823fbf05 100755 --- a/CIAO/connectors/dds4ccm/tests/SLDisabled/descriptors/run_test.pl +++ b/CIAO/connectors/dds4ccm/tests/SLDisabled/descriptors/run_test.pl @@ -101,7 +101,7 @@ sub kill_open_processes { $NS->Kill (); $NS->TimedWait (1); } # in case shutdown did not perform as expected - $tg_executor->KillAll ('ciao_componentserver'); + $tg_executor->KillAll ('dance_locality_manager'); } sub run_node_daemons { @@ -111,7 +111,7 @@ sub run_node_daemons { $port = $ports[$i]; $nodename = $nodenames[$i]; $iiop = "iiop://localhost:$port"; - $node_app = "$CIAO_ROOT/bin/ciao_componentserver"; + $node_app = "$DANCE_ROOT/bin/dance_locality_manager"; $d_cmd = "$DANCE_ROOT/bin/dance_node_manager"; $d_param = "-ORBEndpoint $iiop -s $node_app -n $nodename=$iorfile -t 30 --domain-nc corbaloc:rir:/NameService"; diff --git a/CIAO/connectors/dds4ccm/tests/SLManyByMany/descriptors/run_test.pl b/CIAO/connectors/dds4ccm/tests/SLManyByMany/descriptors/run_test.pl index 66cc403a1fb..8da823fbf05 100755 --- a/CIAO/connectors/dds4ccm/tests/SLManyByMany/descriptors/run_test.pl +++ b/CIAO/connectors/dds4ccm/tests/SLManyByMany/descriptors/run_test.pl @@ -101,7 +101,7 @@ sub kill_open_processes { $NS->Kill (); $NS->TimedWait (1); } # in case shutdown did not perform as expected - $tg_executor->KillAll ('ciao_componentserver'); + $tg_executor->KillAll ('dance_locality_manager'); } sub run_node_daemons { @@ -111,7 +111,7 @@ sub run_node_daemons { $port = $ports[$i]; $nodename = $nodenames[$i]; $iiop = "iiop://localhost:$port"; - $node_app = "$CIAO_ROOT/bin/ciao_componentserver"; + $node_app = "$DANCE_ROOT/bin/dance_locality_manager"; $d_cmd = "$DANCE_ROOT/bin/dance_node_manager"; $d_param = "-ORBEndpoint $iiop -s $node_app -n $nodename=$iorfile -t 30 --domain-nc corbaloc:rir:/NameService"; diff --git a/CIAO/connectors/dds4ccm/tests/SLOneByOne/descriptors/run_test.pl b/CIAO/connectors/dds4ccm/tests/SLOneByOne/descriptors/run_test.pl index 66cc403a1fb..8da823fbf05 100755 --- a/CIAO/connectors/dds4ccm/tests/SLOneByOne/descriptors/run_test.pl +++ b/CIAO/connectors/dds4ccm/tests/SLOneByOne/descriptors/run_test.pl @@ -101,7 +101,7 @@ sub kill_open_processes { $NS->Kill (); $NS->TimedWait (1); } # in case shutdown did not perform as expected - $tg_executor->KillAll ('ciao_componentserver'); + $tg_executor->KillAll ('dance_locality_manager'); } sub run_node_daemons { @@ -111,7 +111,7 @@ sub run_node_daemons { $port = $ports[$i]; $nodename = $nodenames[$i]; $iiop = "iiop://localhost:$port"; - $node_app = "$CIAO_ROOT/bin/ciao_componentserver"; + $node_app = "$DANCE_ROOT/bin/dance_locality_manager"; $d_cmd = "$DANCE_ROOT/bin/dance_node_manager"; $d_param = "-ORBEndpoint $iiop -s $node_app -n $nodename=$iorfile -t 30 --domain-nc corbaloc:rir:/NameService"; diff --git a/CIAO/connectors/dds4ccm/tests/SetConnectorAttributes/descriptors/run_test.pl b/CIAO/connectors/dds4ccm/tests/SetConnectorAttributes/descriptors/run_test.pl index b51ae16243d..3e9d6f53dea 100755 --- a/CIAO/connectors/dds4ccm/tests/SetConnectorAttributes/descriptors/run_test.pl +++ b/CIAO/connectors/dds4ccm/tests/SetConnectorAttributes/descriptors/run_test.pl @@ -101,7 +101,7 @@ sub kill_open_processes { $NS->Kill (); $NS->TimedWait (1); } # in case shutdown did not perform as expected - $tg_executor->KillAll ('ciao_componentserver'); + $tg_executor->KillAll ('dance_locality_manager'); } sub run_node_daemons { @@ -111,7 +111,7 @@ sub run_node_daemons { $port = $ports[$i]; $nodename = $nodenames[$i]; $iiop = "iiop://localhost:$port"; - $node_app = "$CIAO_ROOT/bin/ciao_componentserver"; + $node_app = "$DANCE_ROOT/bin/dance_locality_manager"; $d_cmd = "$DANCE_ROOT/bin/dance_node_manager"; $d_param = "-ORBEndpoint $iiop -s $node_app -n $nodename=$iorfile -t 30 --domain-nc corbaloc:rir:/NameService"; diff --git a/CIAO/connectors/dds4ccm/tests/SharedDomainParticipant/DifferentDatatype/descriptors/run_test.pl b/CIAO/connectors/dds4ccm/tests/SharedDomainParticipant/DifferentDatatype/descriptors/run_test.pl index 5a57844e894..0b4a8ad3db9 100755 --- a/CIAO/connectors/dds4ccm/tests/SharedDomainParticipant/DifferentDatatype/descriptors/run_test.pl +++ b/CIAO/connectors/dds4ccm/tests/SharedDomainParticipant/DifferentDatatype/descriptors/run_test.pl @@ -101,7 +101,7 @@ sub kill_open_processes { $NS->Kill (); $NS->TimedWait (1); } # in case shutdown did not perform as expected - $tg_executor->KillAll ('ciao_componentserver'); + $tg_executor->KillAll ('dance_locality_manager'); } sub run_node_daemons { @@ -111,7 +111,7 @@ sub run_node_daemons { $port = $ports[$i]; $nodename = $nodenames[$i]; $iiop = "iiop://localhost:$port"; - $node_app = "$CIAO_ROOT/bin/ciao_componentserver"; + $node_app = "$DANCE_ROOT/bin/dance_locality_manager"; $d_cmd = "$DANCE_ROOT/bin/dance_node_manager"; $d_param = "-ORBEndpoint $iiop -s $node_app -n $nodename=$iorfile -t 30 --domain-nc corbaloc:rir:/NameService"; diff --git a/CIAO/connectors/dds4ccm/tests/SharedDomainParticipant/SameDatatype/descriptors/run_test.pl b/CIAO/connectors/dds4ccm/tests/SharedDomainParticipant/SameDatatype/descriptors/run_test.pl index c1a88c75f90..b25efb7e313 100755 --- a/CIAO/connectors/dds4ccm/tests/SharedDomainParticipant/SameDatatype/descriptors/run_test.pl +++ b/CIAO/connectors/dds4ccm/tests/SharedDomainParticipant/SameDatatype/descriptors/run_test.pl @@ -101,7 +101,7 @@ sub kill_open_processes { $NS->Kill (); $NS->TimedWait (1); } # in case shutdown did not perform as expected - $tg_executor->KillAll ('ciao_componentserver'); + $tg_executor->KillAll ('dance_locality_manager'); } sub run_node_daemons { @@ -111,7 +111,7 @@ sub run_node_daemons { $port = $ports[$i]; $nodename = $nodenames[$i]; $iiop = "iiop://localhost:$port"; - $node_app = "$CIAO_ROOT/bin/ciao_componentserver"; + $node_app = "$DANCE_ROOT/bin/dance_locality_manager"; $d_cmd = "$DANCE_ROOT/bin/dance_node_manager"; $d_param = "-ORBEndpoint $iiop -s $node_app -n $nodename=$iorfile -t 30 --domain-nc corbaloc:rir:/NameService"; diff --git a/CIAO/connectors/dds4ccm/tests/SharedDomainParticipant/SameDatatype/descriptors/run_test_default_qos.pl b/CIAO/connectors/dds4ccm/tests/SharedDomainParticipant/SameDatatype/descriptors/run_test_default_qos.pl index b7b2c12ee80..e41935a32d5 100755 --- a/CIAO/connectors/dds4ccm/tests/SharedDomainParticipant/SameDatatype/descriptors/run_test_default_qos.pl +++ b/CIAO/connectors/dds4ccm/tests/SharedDomainParticipant/SameDatatype/descriptors/run_test_default_qos.pl @@ -101,7 +101,7 @@ sub kill_open_processes { $NS->Kill (); $NS->TimedWait (1); } # in case shutdown did not perform as expected - $tg_executor->KillAll ('ciao_componentserver'); + $tg_executor->KillAll ('dance_locality_manager'); } sub run_node_daemons { @@ -111,7 +111,7 @@ sub run_node_daemons { $port = $ports[$i]; $nodename = $nodenames[$i]; $iiop = "iiop://localhost:$port"; - $node_app = "$CIAO_ROOT/bin/ciao_componentserver"; + $node_app = "$DANCE_ROOT/bin/dance_locality_manager"; $d_cmd = "$DANCE_ROOT/bin/dance_node_manager"; $d_param = "-ORBEndpoint $iiop -s $node_app -n $nodename=$iorfile -t 30 --domain-nc corbaloc:rir:/NameService"; diff --git a/CIAO/connectors/dds4ccm/tests/State_Connection_Test/descriptors/run_test.pl b/CIAO/connectors/dds4ccm/tests/State_Connection_Test/descriptors/run_test.pl index 5d0ab35419d..ebadabec718 100755 --- a/CIAO/connectors/dds4ccm/tests/State_Connection_Test/descriptors/run_test.pl +++ b/CIAO/connectors/dds4ccm/tests/State_Connection_Test/descriptors/run_test.pl @@ -101,7 +101,7 @@ sub kill_open_processes { $NS->Kill (); $NS->TimedWait (1); } # in case shutdown did not perform as expected - $tg_executor->KillAll ('ciao_componentserver'); + $tg_executor->KillAll ('dance_locality_manager'); } sub run_node_daemons { @@ -111,7 +111,7 @@ sub run_node_daemons { $port = $ports[$i]; $nodename = $nodenames[$i]; $iiop = "iiop://localhost:$port"; - $node_app = "$CIAO_ROOT/bin/ciao_componentserver"; + $node_app = "$DANCE_ROOT/bin/dance_locality_manager"; $d_cmd = "$DANCE_ROOT/bin/dance_node_manager"; $d_param = "-ORBEndpoint $iiop -s $node_app -n $nodename=$iorfile -t 30 --domain-nc corbaloc:rir:/NameService"; diff --git a/CIAO/connectors/dds4ccm/tests/UnkeyedSamples/descriptors/run_test.pl b/CIAO/connectors/dds4ccm/tests/UnkeyedSamples/descriptors/run_test.pl index 3ca8a0ee149..58d757ad63f 100755 --- a/CIAO/connectors/dds4ccm/tests/UnkeyedSamples/descriptors/run_test.pl +++ b/CIAO/connectors/dds4ccm/tests/UnkeyedSamples/descriptors/run_test.pl @@ -101,7 +101,7 @@ sub kill_open_processes { $NS->Kill (); $NS->TimedWait (1); } # in case shutdown did not perform as expected - $tg_executor->KillAll ('ciao_componentserver'); + $tg_executor->KillAll ('dance_locality_manager'); } sub run_node_daemons { @@ -111,7 +111,7 @@ sub run_node_daemons { $port = $ports[$i]; $nodename = $nodenames[$i]; $iiop = "iiop://localhost:$port"; - $node_app = "$CIAO_ROOT/bin/ciao_componentserver"; + $node_app = "$DANCE_ROOT/bin/dance_locality_manager"; $d_cmd = "$DANCE_ROOT/bin/dance_node_manager"; $d_param = "-ORBEndpoint $iiop -s $node_app -n $nodename=$iorfile -t 30 --domain-nc corbaloc:rir:/NameService"; diff --git a/CIAO/connectors/dds4ccm/tests/UnkeyedWriter/descriptors/run_test.pl b/CIAO/connectors/dds4ccm/tests/UnkeyedWriter/descriptors/run_test.pl index 58d28e2d477..2ede410c447 100755 --- a/CIAO/connectors/dds4ccm/tests/UnkeyedWriter/descriptors/run_test.pl +++ b/CIAO/connectors/dds4ccm/tests/UnkeyedWriter/descriptors/run_test.pl @@ -101,7 +101,7 @@ sub kill_open_processes { $NS->Kill (); $NS->TimedWait (1); } # in case shutdown did not perform as expected - $tg_executor->KillAll ('ciao_componentserver'); + $tg_executor->KillAll ('dance_locality_manager'); } sub run_node_daemons { @@ -111,7 +111,7 @@ sub run_node_daemons { $port = $ports[$i]; $nodename = $nodenames[$i]; $iiop = "iiop://localhost:$port"; - $node_app = "$CIAO_ROOT/bin/ciao_componentserver"; + $node_app = "$DANCE_ROOT/bin/dance_locality_manager"; $d_cmd = "$DANCE_ROOT/bin/dance_node_manager"; $d_param = "-ORBEndpoint $iiop -s $node_app -n $nodename=$iorfile -t 30 --domain-nc corbaloc:rir:/NameService"; diff --git a/CIAO/connectors/dds4ccm/tests/Updater/descriptors/run_test.pl b/CIAO/connectors/dds4ccm/tests/Updater/descriptors/run_test.pl index 7a20e61732d..f3aaf2add8d 100755 --- a/CIAO/connectors/dds4ccm/tests/Updater/descriptors/run_test.pl +++ b/CIAO/connectors/dds4ccm/tests/Updater/descriptors/run_test.pl @@ -101,7 +101,7 @@ sub kill_open_processes { $NS->Kill (); $NS->TimedWait (1); } # in case shutdown did not perform as expected - $tg_executor->KillAll ('ciao_componentserver'); + $tg_executor->KillAll ('dance_locality_manager'); } sub run_node_daemons { @@ -111,7 +111,7 @@ sub run_node_daemons { $port = $ports[$i]; $nodename = $nodenames[$i]; $iiop = "iiop://localhost:$port"; - $node_app = "$CIAO_ROOT/bin/ciao_componentserver"; + $node_app = "$DANCE_ROOT/bin/dance_locality_manager"; $d_cmd = "$DANCE_ROOT/bin/dance_node_manager"; $d_param = "-ORBEndpoint $iiop -s $node_app -n $nodename=$iorfile -t 30 --domain-nc corbaloc:rir:/NameService"; diff --git a/CIAO/connectors/dds4ccm/tests/VariousTopicsEvent/descriptors/run_test.pl b/CIAO/connectors/dds4ccm/tests/VariousTopicsEvent/descriptors/run_test.pl index 97e2bf434c6..5deb13ea7c7 100755 --- a/CIAO/connectors/dds4ccm/tests/VariousTopicsEvent/descriptors/run_test.pl +++ b/CIAO/connectors/dds4ccm/tests/VariousTopicsEvent/descriptors/run_test.pl @@ -101,7 +101,7 @@ sub kill_open_processes { $NS->Kill (); $NS->TimedWait (1); } # in case shutdown did not perform as expected - $tg_executor->KillAll ('ciao_componentserver'); + $tg_executor->KillAll ('dance_locality_manager'); } sub run_node_daemons { @@ -111,7 +111,7 @@ sub run_node_daemons { $port = $ports[$i]; $nodename = $nodenames[$i]; $iiop = "iiop://localhost:$port"; - $node_app = "$CIAO_ROOT/bin/ciao_componentserver"; + $node_app = "$DANCE_ROOT/bin/dance_locality_manager"; $d_cmd = "$DANCE_ROOT/bin/dance_node_manager"; $d_param = "-ORBEndpoint $iiop -s $node_app -n $nodename=$iorfile -t 30 --domain-nc corbaloc:rir:/NameService"; diff --git a/CIAO/connectors/dds4ccm/tests/VariousTopicsState/descriptors/run_test.pl b/CIAO/connectors/dds4ccm/tests/VariousTopicsState/descriptors/run_test.pl index d7266527ff7..9cfab7e4a8b 100755 --- a/CIAO/connectors/dds4ccm/tests/VariousTopicsState/descriptors/run_test.pl +++ b/CIAO/connectors/dds4ccm/tests/VariousTopicsState/descriptors/run_test.pl @@ -101,7 +101,7 @@ sub kill_open_processes { $NS->Kill (); $NS->TimedWait (1); } # in case shutdown did not perform as expected - $tg_executor->KillAll ('ciao_componentserver'); + $tg_executor->KillAll ('dance_locality_manager'); } sub run_node_daemons { @@ -111,7 +111,7 @@ sub run_node_daemons { $port = $ports[$i]; $nodename = $nodenames[$i]; $iiop = "iiop://localhost:$port"; - $node_app = "$CIAO_ROOT/bin/ciao_componentserver"; + $node_app = "$DANCE_ROOT/bin/dance_locality_manager"; $d_cmd = "$DANCE_ROOT/bin/dance_node_manager"; $d_param = "-ORBEndpoint $iiop -s $node_app -n $nodename=$iorfile -t 30 --domain-nc corbaloc:rir:/NameService"; diff --git a/CIAO/examples/BasicSP/descriptors/BasicSP_Homed.cdp b/CIAO/examples/BasicSP/descriptors/BasicSP_Homed.cdp index cb705023256..d08969cc821 100644 --- a/CIAO/examples/BasicSP/descriptors/BasicSP_Homed.cdp +++ b/CIAO/examples/BasicSP/descriptors/BasicSP_Homed.cdp @@ -215,6 +215,17 @@ <artifact xmi:idref="EC_ExecArtifact" /> <artifact xmi:idref="EC_SvntArtifact" /> <artifact xmi:idref="EC_StubArtifact" /> + <execParameter> + <name>edu.vanderbilt.dre.DAnCE.ImplementationType</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>edu.vanderbilt.dre.CCM.HomedComponent</string> + </value> + </value> + </execParameter> </implementation> <implementation xmi:id="BMClosedEDComponentImplementation"> <name>BMClosedEDComponentImplementation</name> @@ -222,6 +233,17 @@ <artifact xmi:idref="BMClosedED_ExecArtifact" /> <artifact xmi:idref="BMClosedED_SvntArtifact" /> <artifact xmi:idref="BMClosedED_StubArtifact" /> + <execParameter> + <name>edu.vanderbilt.dre.DAnCE.ImplementationType</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>edu.vanderbilt.dre.CCM.HomedComponent</string> + </value> + </value> + </execParameter> </implementation> <implementation xmi:id="BMDeviceComponentImplementation"> <name>BMDeviceComponentImplementation</name> @@ -229,6 +251,17 @@ <artifact xmi:idref="BMDevice_ExecArtifact" /> <artifact xmi:idref="BMDevice_SvntArtifact" /> <artifact xmi:idref="BMDevice_StubArtifact" /> + <execParameter> + <name>edu.vanderbilt.dre.DAnCE.ImplementationType</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>edu.vanderbilt.dre.CCM.HomedComponent</string> + </value> + </value> + </execParameter> </implementation> <implementation xmi:id="BMDisplayComponentImplementation"> <name>BMDisplayComponentImplementation</name> @@ -236,6 +269,17 @@ <artifact xmi:idref="BMDisplay_ExecArtifact" /> <artifact xmi:idref="BMDisplay_SvntArtifact" /> <artifact xmi:idref="BMDisplay_StubArtifact" /> + <execParameter> + <name>edu.vanderbilt.dre.DAnCE.ImplementationType</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>edu.vanderbilt.dre.CCM.HomedComponent</string> + </value> + </value> + </execParameter> </implementation> <instance xmi:id="ECHomeInstance"> <name>ECHome</name> @@ -272,7 +316,7 @@ <source/> <implementation xmi:idref="ECComponentImplementation" /> <configProperty> - <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name> + <name>edu.vanderbilt.dre.CIAO.ComponentHomeId</name> <value> <type> <kind>tk_string</kind> @@ -301,7 +345,7 @@ <source/> <implementation xmi:idref="BMClosedEDComponentImplementation" /> <configProperty> - <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name> + <name>edu.vanderbilt.dre.CIAO.ComponentHomeId</name> <value> <type> <kind>tk_string</kind> @@ -319,7 +363,7 @@ <source/> <implementation xmi:idref="BMDeviceComponentImplementation" /> <configProperty> - <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name> + <name>edu.vanderbilt.dre.CIAO.ComponentHomeId</name> <value> <type> <kind>tk_string</kind> @@ -337,7 +381,7 @@ <source/> <implementation xmi:idref="BMDisplayComponentImplementation" /> <configProperty> - <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name> + <name>edu.vanderbilt.dre.CIAO.ComponentHomeId</name> <value> <type> <kind>tk_string</kind> diff --git a/CIAO/examples/BasicSP/descriptors/run_test.pl b/CIAO/examples/BasicSP/descriptors/run_test.pl index 9c8519a60af..e6b310cd20f 100755 --- a/CIAO/examples/BasicSP/descriptors/run_test.pl +++ b/CIAO/examples/BasicSP/descriptors/run_test.pl @@ -106,7 +106,7 @@ sub kill_open_processes { $NS->TimedWait (1); } # in case shutdown did not perform as expected - $tg_executor->KillAll ('ciao_componentserver'); + $tg_executor->KillAll ('dance_locality_manager'); } sub run_node_daemons { @@ -116,7 +116,7 @@ sub run_node_daemons { $port = $ports[$i]; $nodename = $nodenames[$i]; $iiop = "iiop://localhost:$port"; - $node_app = "$CIAO_ROOT/bin/ciao_componentserver"; + $node_app = "$DANCE_ROOT/bin/dance_locality_manager"; $d_cmd = "$DANCE_ROOT/bin/dance_node_manager"; $d_param = "-ORBEndpoint $iiop -s $node_app -n $nodename=$iorfile -t 30 --instance-nc corbaloc:rir:/NameService"; diff --git a/CIAO/examples/Hello/descriptors/DeploymentPlan.cdp b/CIAO/examples/Hello/descriptors/DeploymentPlan.cdp index a8408215438..217dab0e06c 100644 --- a/CIAO/examples/Hello/descriptors/DeploymentPlan.cdp +++ b/CIAO/examples/Hello/descriptors/DeploymentPlan.cdp @@ -66,6 +66,17 @@ <source/> <artifact xmi:idref="Hello_Receiver_ExecArtifact" /> <artifact xmi:idref="Hello_Receiver_SvntArtifact" /> + <execParameter> + <name>edu.vanderbilt.dre.DAnCE.ImplementationType</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>edu.vanderbilt.dre.CCM.HomedComponent</string> + </value> + </value> + </execParameter> </implementation> <implementation xmi:id="Hello_SenderHomeImplementation"> @@ -125,6 +136,17 @@ <source/> <artifact xmi:idref="Hello_Sender_ExecArtifact" /> <artifact xmi:idref="Hello_Sender_SvntArtifact" /> + <execParameter> + <name>edu.vanderbilt.dre.DAnCE.ImplementationType</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>edu.vanderbilt.dre.CCM.HomedComponent</string> + </value> + </value> + </execParameter> </implementation> <instance xmi:id="Hello_ReceiverHomeInstance"> @@ -164,7 +186,7 @@ <source/> <implementation xmi:idref="Hello_ReceiverComponentImplementation" /> <configProperty> - <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name> + <name>edu.vanderbilt.dre.CIAO.ComponentHomeId</name> <value> <type> <kind>tk_string</kind> @@ -246,7 +268,7 @@ <source/> <implementation xmi:idref="Hello_SenderComponentImplementation" /> <configProperty> - <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name> + <name>edu.vanderbilt.dre.CIAO.ComponentHomeId</name> <value> <type> <kind>tk_string</kind> diff --git a/CIAO/examples/Hello/descriptors/DeploymentPlan_without_ns.cdp b/CIAO/examples/Hello/descriptors/DeploymentPlan_without_ns.cdp index 6d5b3f05780..bc1bddd4c9d 100644 --- a/CIAO/examples/Hello/descriptors/DeploymentPlan_without_ns.cdp +++ b/CIAO/examples/Hello/descriptors/DeploymentPlan_without_ns.cdp @@ -66,6 +66,17 @@ <source/> <artifact xmi:idref="Hello_Receiver_ExecArtifact" /> <artifact xmi:idref="Hello_Receiver_SvntArtifact" /> + <execParameter> + <name>edu.vanderbilt.dre.DAnCE.ImplementationType</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>edu.vanderbilt.dre.CCM.HomedComponent</string> + </value> + </value> + </execParameter> </implementation> <implementation xmi:id="Hello_SenderHomeImplementation"> @@ -125,6 +136,17 @@ <source/> <artifact xmi:idref="Hello_Sender_ExecArtifact" /> <artifact xmi:idref="Hello_Sender_SvntArtifact" /> + <execParameter> + <name>edu.vanderbilt.dre.DAnCE.ImplementationType</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>edu.vanderbilt.dre.CCM.HomedComponent</string> + </value> + </value> + </execParameter> </implementation> <instance xmi:id="Hello_ReceiverHomeInstance"> @@ -153,7 +175,7 @@ <source/> <implementation xmi:idref="Hello_ReceiverComponentImplementation" /> <configProperty> - <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name> + <name>edu.vanderbilt.dre.CIAO.ComponentHomeId</name> <value> <type> <kind>tk_string</kind> @@ -202,7 +224,7 @@ <source/> <implementation xmi:idref="Hello_SenderComponentImplementation" /> <configProperty> - <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name> + <name>edu.vanderbilt.dre.CIAO.ComponentHomeId</name> <value> <type> <kind>tk_string</kind> diff --git a/CIAO/examples/Hello/descriptors/run_test.pl b/CIAO/examples/Hello/descriptors/run_test.pl index d54efbaa8ff..496ee58a5b1 100755 --- a/CIAO/examples/Hello/descriptors/run_test.pl +++ b/CIAO/examples/Hello/descriptors/run_test.pl @@ -105,7 +105,7 @@ sub kill_open_processes { $NS->TimedWait (1); } # in case shutdown did not perform as expected - $tg_executor->KillAll ('ciao_componentserver'); + $tg_executor->KillAll ('dance_locality_manager'); } sub run_node_daemons { @@ -115,7 +115,7 @@ sub run_node_daemons { $port = $ports[$i]; $nodename = $nodenames[$i]; $iiop = "iiop://localhost:$port"; - $node_app = "$CIAO_ROOT/bin/ciao_componentserver"; + $node_app = "$DANCE_ROOT/bin/dance_locality_manager"; $d_cmd = "$DANCE_ROOT/bin/dance_node_manager"; $d_param = "-ORBEndpoint $iiop -s $node_app -n $nodename=$iorfile -t 30 --instance-nc corbaloc:rir:/NameService"; diff --git a/CIAO/examples/Hello/descriptors/run_test_PlanLocality_DifferentProcesses.pl b/CIAO/examples/Hello/descriptors/run_test_PlanLocality_DifferentProcesses.pl index b111f22402b..c88eae6fd42 100755 --- a/CIAO/examples/Hello/descriptors/run_test_PlanLocality_DifferentProcesses.pl +++ b/CIAO/examples/Hello/descriptors/run_test_PlanLocality_DifferentProcesses.pl @@ -89,7 +89,7 @@ sub kill_open_processes { $EM->TimedWait (1); } # in case shutdown did not perform as expected - $tg_executor->KillAll ('ciao_componentserver'); + $tg_executor->KillAll ('dance_locality_manager'); } @@ -100,7 +100,7 @@ sub run_node_daemons { $port = $ports[$i]; $nodename = $nodenames[$i]; $iiop = "iiop://localhost:$port"; - $node_app = "$CIAO_ROOT/bin/ciao_componentserver"; + $node_app = "$DANCE_ROOT/bin/dance_locality_manager"; $d_cmd = "$DANCE_ROOT/bin/dance_node_manager"; $d_param = "-ORBEndpoint $iiop -s $node_app -n $nodename=$iorfile -t 30"; diff --git a/CIAO/examples/Hello/descriptors/run_test_PlanLocality_SameProcess.pl b/CIAO/examples/Hello/descriptors/run_test_PlanLocality_SameProcess.pl index 4f095cab002..23c14752675 100755 --- a/CIAO/examples/Hello/descriptors/run_test_PlanLocality_SameProcess.pl +++ b/CIAO/examples/Hello/descriptors/run_test_PlanLocality_SameProcess.pl @@ -89,7 +89,7 @@ sub kill_open_processes { $EM->TimedWait (1); } # in case shutdown did not perform as expected - $tg_executor->KillAll ('ciao_componentserver'); + $tg_executor->KillAll ('dance_locality_manager'); } @@ -100,7 +100,7 @@ sub run_node_daemons { $port = $ports[$i]; $nodename = $nodenames[$i]; $iiop = "iiop://localhost:$port"; - $node_app = "$CIAO_ROOT/bin/ciao_componentserver"; + $node_app = "$DANCE_ROOT/bin/dance_locality_manager"; $d_cmd = "$DANCE_ROOT/bin/dance_node_manager"; $d_param = "-ORBEndpoint $iiop -s $node_app -n $nodename=$iorfile -t 30"; diff --git a/CIAO/examples/Hello/descriptors/run_test_alias.pl b/CIAO/examples/Hello/descriptors/run_test_alias.pl index 49b76becb98..dd8c35470e0 100755 --- a/CIAO/examples/Hello/descriptors/run_test_alias.pl +++ b/CIAO/examples/Hello/descriptors/run_test_alias.pl @@ -105,7 +105,7 @@ sub kill_open_processes { $NS->TimedWait (1); } # in case shutdown did not perform as expected - $tg_executor->KillAll ('ciao_componentserver'); + $tg_executor->KillAll ('dance_locality_manager'); } sub run_node_daemons { @@ -115,7 +115,7 @@ sub run_node_daemons { $port = $ports[$i]; $nodename = $nodenames[$i]; $iiop = "iiop://localhost:$port"; - $node_app = "$CIAO_ROOT/bin/ciao_componentserver"; + $node_app = "$DANCE_ROOT/bin/dance_locality_manager"; $d_cmd = "$DANCE_ROOT/bin/dance_node_manager"; $d_param = "-ORBEndpoint $iiop -s $node_app -n $nodename=$iorfile -t 30 --instance-nc corbaloc:rir:/NameService"; diff --git a/CIAO/examples/Hello/descriptors/run_test_without_ns.pl b/CIAO/examples/Hello/descriptors/run_test_without_ns.pl index 8208f174e41..eb95e82bec3 100755 --- a/CIAO/examples/Hello/descriptors/run_test_without_ns.pl +++ b/CIAO/examples/Hello/descriptors/run_test_without_ns.pl @@ -89,7 +89,7 @@ sub kill_open_processes { $EM->TimedWait (1); } # in case shutdown did not perform as expected - $tg_executor->KillAll ('ciao_componentserver'); + $tg_executor->KillAll ('dance_locality_manager'); } @@ -100,7 +100,7 @@ sub run_node_daemons { $port = $ports[$i]; $nodename = $nodenames[$i]; $iiop = "iiop://localhost:$port"; - $node_app = "$CIAO_ROOT/bin/ciao_componentserver"; + $node_app = "$DANCE_ROOT/bin/dance_locality_manager"; $d_cmd = "$DANCE_ROOT/bin/dance_node_manager"; $d_param = "-ORBEndpoint $iiop -s $node_app -n $nodename=$iorfile -t 30"; diff --git a/CIAO/examples/Null_Component/descriptors/Null_Homed.cdp b/CIAO/examples/Null_Component/descriptors/Null_Homed.cdp index 2332e2d346e..57d09cfb185 100644 --- a/CIAO/examples/Null_Component/descriptors/Null_Homed.cdp +++ b/CIAO/examples/Null_Component/descriptors/Null_Homed.cdp @@ -1,109 +1,120 @@ <Deployment:DeploymentPlan - xmlns:Deployment="http://www.omg.org/Deployment" - xmlns:xmi="http://www.omg.org/XMI" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd"> + xmlns:Deployment="http://www.omg.org/Deployment" + xmlns:xmi="http://www.omg.org/XMI" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd"> <label>Null_Homed</label> <UUID>Null_Homed</UUID> -<implementation xmi:id="Null_ComponentHomeImplementation"> - <name>Null_ComponentHomeImplementation</name> - <source/> - <artifact xmi:idref="Null_Component_ExecArtifact" /> - <artifact xmi:idref="Null_Component_SvntArtifact" /> - <execParameter> - <!-- entrypoint as exec parameter (see 10.6.1) --> - <name>home factory</name> - <value> - <type> - <kind>tk_string</kind> - </type> + <implementation xmi:id="Null_ComponentHomeImplementation"> + <name>Null_ComponentHomeImplementation</name> + <source/> + <artifact xmi:idref="Null_Component_ExecArtifact" /> + <artifact xmi:idref="Null_Component_SvntArtifact" /> + <execParameter> + <!-- entrypoint as exec parameter (see 10.6.1) --> + <name>home factory</name> <value> - <string>create_Null_ComponentHome_Impl</string> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>create_Null_ComponentHome_Impl</string> + </value> </value> - </value> - </execParameter> - <execParameter> - <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name> - <value> - <type> - <kind>tk_string</kind> - </type> + </execParameter> + <execParameter> + <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name> <value> - <string>create_Null_ComponentHome_Servant</string> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>create_Null_ComponentHome_Servant</string> + </value> </value> - </value> - </execParameter> - <execParameter> - <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name> - <value> - <type> - <kind>tk_string</kind> - </type> + </execParameter> + <execParameter> + <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name> <value> - <string>Null_Component_svnt</string> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>Null_Component_svnt</string> + </value> </value> - </value> - </execParameter> - <execParameter> - <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name> - <value> - <type> - <kind>tk_string</kind> - </type> + </execParameter> + <execParameter> + <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name> <value> - <string>Null_Component_exec</string> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>Null_Component_exec</string> + </value> </value> - </value> - </execParameter> -</implementation> -<implementation xmi:id="Null_ComponentComponentImplementation"> - <name>Null_ComponentComponentImplementation</name> - <source/> - <artifact xmi:idref="Null_Component_ExecArtifact" /> - <artifact xmi:idref="Null_Component_SvntArtifact" /> - <artifact xmi:idref="Null_Component_StubArtifact" /> -</implementation> + </execParameter> + </implementation> + <implementation xmi:id="Null_ComponentComponentImplementation"> + <name>Null_ComponentComponentImplementation</name> + <source/> + <artifact xmi:idref="Null_Component_ExecArtifact" /> + <artifact xmi:idref="Null_Component_SvntArtifact" /> + <artifact xmi:idref="Null_Component_StubArtifact" /> + <execParameter> + <name>edu.vanderbilt.dre.DAnCE.ImplementationType</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>edu.vanderbilt.dre.CCM.HomedComponent</string> + </value> + </value> + </execParameter> + </implementation> <instance xmi:id="Null_ComponentHomeInstance"> - <name>Null_ComponentHome</name> - <node>NodeOne</node> - <!-- hostname --> - <source/> - <implementation xmi:idref="Null_ComponentHomeImplementation" /> -</instance> + <name>Null_ComponentHome</name> + <node>NodeOne</node> + <!-- hostname --> + <source/> + <implementation xmi:idref="Null_ComponentHomeImplementation" /> + </instance> <instance xmi:id="Null_ComponentComponentInstance"> - <name>Null_ComponentComponent</name> - <node>NodeOne</node> - <!-- hostname --> - <source/> - <implementation xmi:idref="Null_ComponentComponentImplementation" /> - <configProperty> - <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name> - <value> - <type> - <kind>tk_string</kind> - </type> + <name>Null_ComponentComponent</name> + <node>NodeOne</node> + <!-- hostname --> + <source/> + <implementation xmi:idref="Null_ComponentComponentImplementation" /> + <configProperty> + <name>edu.vanderbilt.dre.CIAO.ComponentHomeId</name> <value> - <string>Null_ComponentHome</string> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>Null_ComponentHome</string> + </value> </value> - </value> - </configProperty> -</instance> + </configProperty> + </instance> <artifact xmi:id="Null_Component_ExecArtifact"> - <name>Null_Component_exec</name> - <source/> - <node/> - <location>Null_Component_exec</location> -</artifact> -<artifact xmi:id="Null_Component_SvntArtifact"> - <name>Null_Component_svnt</name> - <source/> - <node/> - <location>Null_Component_svnt</location> -</artifact> -<artifact xmi:id="Null_Component_StubArtifact"> - <name>Null_Component_stub</name> - <source/> - <node/> - <location>Null_Component_stub</location> -</artifact> -</Deployment:DeploymentPlan>
\ No newline at end of file + <name>Null_Component_exec</name> + <source/> + <node/> + <location>Null_Component_exec</location> + </artifact> + <artifact xmi:id="Null_Component_SvntArtifact"> + <name>Null_Component_svnt</name> + <source/> + <node/> + <location>Null_Component_svnt</location> + </artifact> + <artifact xmi:id="Null_Component_StubArtifact"> + <name>Null_Component_stub</name> + <source/> + <node/> + <location>Null_Component_stub</location> + </artifact> +</Deployment:DeploymentPlan> diff --git a/CIAO/examples/Null_Component/descriptors/run_test.pl b/CIAO/examples/Null_Component/descriptors/run_test.pl index 1c854d88e2b..0b8c07ca7d8 100755 --- a/CIAO/examples/Null_Component/descriptors/run_test.pl +++ b/CIAO/examples/Null_Component/descriptors/run_test.pl @@ -100,7 +100,7 @@ sub kill_open_processes { } # in case shutdown did not perform as expected - $tg_executor->KillAll ('ciao_componentserver'); + $tg_executor->KillAll ('dance_locality_manager'); } @@ -111,7 +111,7 @@ sub run_node_daemons { $port = $ports[$i]; $nodename = $nodenames[$i]; $iiop = "iiop://localhost:$port"; - $node_app = "$CIAO_ROOT/bin/ciao_componentserver"; + $node_app = "$DANCE_ROOT/bin/dance_locality_manager"; $d_cmd = "$DANCE_ROOT/bin/dance_node_manager"; $d_param = "-ORBEndpoint $iiop -s $node_app -n $nodename=$iorfile -t 30 --domain-nc corbaloc:rir:/NameService --instance-nc corbaloc:rir:/NameService"; diff --git a/CIAO/examples/Null_Component/descriptors/run_test_without_ns.pl b/CIAO/examples/Null_Component/descriptors/run_test_without_ns.pl index f56f270b47d..384f3893135 100755 --- a/CIAO/examples/Null_Component/descriptors/run_test_without_ns.pl +++ b/CIAO/examples/Null_Component/descriptors/run_test_without_ns.pl @@ -90,7 +90,7 @@ sub kill_open_processes { } # in case shutdown did not perform as expected - $tg_executor->KillAll ('ciao_componentserver'); + $tg_executor->KillAll ('dance_locality_manager'); } @@ -101,7 +101,7 @@ sub run_node_daemons { $port = $ports[$i]; $nodename = $nodenames[$i]; $iiop = "iiop://localhost:$port"; - $node_app = "$CIAO_ROOT/bin/ciao_componentserver"; + $node_app = "$DANCE_ROOT/bin/dance_locality_manager"; $d_cmd = "$DANCE_ROOT/bin/dance_node_manager"; $d_param = "-ORBEndpoint $iiop -s $node_app -n $nodename=$iorfile -t 30"; diff --git a/CIAO/examples/Null_Component_Glfa/descriptors/Null_Homed.cdp b/CIAO/examples/Null_Component_Glfa/descriptors/Null_Homed.cdp index 2332e2d346e..61521a0cc07 100644 --- a/CIAO/examples/Null_Component_Glfa/descriptors/Null_Homed.cdp +++ b/CIAO/examples/Null_Component_Glfa/descriptors/Null_Homed.cdp @@ -62,6 +62,17 @@ <artifact xmi:idref="Null_Component_ExecArtifact" /> <artifact xmi:idref="Null_Component_SvntArtifact" /> <artifact xmi:idref="Null_Component_StubArtifact" /> + <execParameter> + <name>edu.vanderbilt.dre.DAnCE.ImplementationType</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>edu.vanderbilt.dre.CCM.HomedComponent</string> + </value> + </value> + </execParameter> </implementation> <instance xmi:id="Null_ComponentHomeInstance"> <name>Null_ComponentHome</name> @@ -77,7 +88,7 @@ <source/> <implementation xmi:idref="Null_ComponentComponentImplementation" /> <configProperty> - <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name> + <name>edu.vanderbilt.dre.CIAO.ComponentHomeId</name> <value> <type> <kind>tk_string</kind> @@ -106,4 +117,4 @@ <node/> <location>Null_Component_stub</location> </artifact> -</Deployment:DeploymentPlan>
\ No newline at end of file +</Deployment:DeploymentPlan> diff --git a/CIAO/examples/Null_Component_Glfa/descriptors/run_test.pl b/CIAO/examples/Null_Component_Glfa/descriptors/run_test.pl index 1c854d88e2b..0b8c07ca7d8 100755 --- a/CIAO/examples/Null_Component_Glfa/descriptors/run_test.pl +++ b/CIAO/examples/Null_Component_Glfa/descriptors/run_test.pl @@ -100,7 +100,7 @@ sub kill_open_processes { } # in case shutdown did not perform as expected - $tg_executor->KillAll ('ciao_componentserver'); + $tg_executor->KillAll ('dance_locality_manager'); } @@ -111,7 +111,7 @@ sub run_node_daemons { $port = $ports[$i]; $nodename = $nodenames[$i]; $iiop = "iiop://localhost:$port"; - $node_app = "$CIAO_ROOT/bin/ciao_componentserver"; + $node_app = "$DANCE_ROOT/bin/dance_locality_manager"; $d_cmd = "$DANCE_ROOT/bin/dance_node_manager"; $d_param = "-ORBEndpoint $iiop -s $node_app -n $nodename=$iorfile -t 30 --domain-nc corbaloc:rir:/NameService --instance-nc corbaloc:rir:/NameService"; diff --git a/CIAO/tests/Bug_2130_Regression/descriptors/run_test.pl b/CIAO/tests/Bug_2130_Regression/descriptors/run_test.pl index d31d6f9c562..b3e0e10ddcd 100755 --- a/CIAO/tests/Bug_2130_Regression/descriptors/run_test.pl +++ b/CIAO/tests/Bug_2130_Regression/descriptors/run_test.pl @@ -86,7 +86,7 @@ sub kill_open_processes { $EM->Kill (); $EM->TimedWait (1); } # in case shutdown did not perform as expected - $tg_executor->KillAll ('ciao_componentserver'); + $tg_executor->KillAll ('dance_locality_manager'); } sub run_node_daemons { @@ -95,7 +95,7 @@ sub run_node_daemons { $iorfile = $iorfiles[$i]; $port = $ports[$i]; $iiop = "iiop://localhost:$port"; - $node_app = "$CIAO_ROOT/bin/ciao_componentserver"; + $node_app = "$DANCE_ROOT/bin/dance_locality_manager"; $d_cmd = "$DANCE_ROOT/bin/dance_node_manager"; $d_param = "-ORBEndpoint $iiop -s $node_app -o $iorfile -a \"-r\""; diff --git a/CIAO/tests/Bug_3769_Regression/descriptors/run_test.pl b/CIAO/tests/Bug_3769_Regression/descriptors/run_test.pl index 24b9dc6ec27..c9aad1fb892 100755 --- a/CIAO/tests/Bug_3769_Regression/descriptors/run_test.pl +++ b/CIAO/tests/Bug_3769_Regression/descriptors/run_test.pl @@ -101,7 +101,7 @@ sub kill_open_processes { $NS->Kill (); $NS->TimedWait (1); } # in case shutdown did not perform as expected - $tg_executor->KillAll ('ciao_componentserver'); + $tg_executor->KillAll ('dance_locality_manager'); } sub run_node_daemons { @@ -111,7 +111,7 @@ sub run_node_daemons { $port = $ports[$i]; $nodename = $nodenames[$i]; $iiop = "iiop://localhost:$port"; - $node_app = "$CIAO_ROOT/bin/ciao_componentserver"; + $node_app = "$DANCE_ROOT/bin/dance_locality_manager"; $d_cmd = "$DANCE_ROOT/bin/dance_node_manager"; $d_param = "-ORBEndpoint $iiop -s $node_app -n $nodename=$iorfile -t 30 --domain-nc corbaloc:rir:/NameService --instance-nc corbaloc:rir:/NameService"; diff --git a/CIAO/tests/Bug_3834_Regression/descriptors/run_test.pl b/CIAO/tests/Bug_3834_Regression/descriptors/run_test.pl index 1c854d88e2b..0b8c07ca7d8 100755 --- a/CIAO/tests/Bug_3834_Regression/descriptors/run_test.pl +++ b/CIAO/tests/Bug_3834_Regression/descriptors/run_test.pl @@ -100,7 +100,7 @@ sub kill_open_processes { } # in case shutdown did not perform as expected - $tg_executor->KillAll ('ciao_componentserver'); + $tg_executor->KillAll ('dance_locality_manager'); } @@ -111,7 +111,7 @@ sub run_node_daemons { $port = $ports[$i]; $nodename = $nodenames[$i]; $iiop = "iiop://localhost:$port"; - $node_app = "$CIAO_ROOT/bin/ciao_componentserver"; + $node_app = "$DANCE_ROOT/bin/dance_locality_manager"; $d_cmd = "$DANCE_ROOT/bin/dance_node_manager"; $d_param = "-ORBEndpoint $iiop -s $node_app -n $nodename=$iorfile -t 30 --domain-nc corbaloc:rir:/NameService --instance-nc corbaloc:rir:/NameService"; diff --git a/CIAO/tests/Bug_3834_Regression/descriptors/run_test_without_ns.pl b/CIAO/tests/Bug_3834_Regression/descriptors/run_test_without_ns.pl index 72c6fee30b6..a7daf9dfa2d 100755 --- a/CIAO/tests/Bug_3834_Regression/descriptors/run_test_without_ns.pl +++ b/CIAO/tests/Bug_3834_Regression/descriptors/run_test_without_ns.pl @@ -90,7 +90,7 @@ sub kill_open_processes { } # in case shutdown did not perform as expected - $tg_executor->KillAll ('ciao_componentserver'); + $tg_executor->KillAll ('dance_locality_manager'); } @@ -101,7 +101,7 @@ sub run_node_daemons { $port = $ports[$i]; $nodename = $nodenames[$i]; $iiop = "iiop://localhost:$port"; - $node_app = "$CIAO_ROOT/bin/ciao_componentserver"; + $node_app = "$DANCE_ROOT/bin/dance_locality_manager"; $d_cmd = "$DANCE_ROOT/bin/dance_node_manager"; $d_param = "-ORBEndpoint $iiop -s $node_app -n $nodename=$iorfile -t 30"; diff --git a/CIAO/tests/IDL_Test/Double_Inherited_Component/run_test.pl b/CIAO/tests/IDL_Test/Double_Inherited_Component/run_test.pl index f2f1074d340..8b51fc6859e 100755 --- a/CIAO/tests/IDL_Test/Double_Inherited_Component/run_test.pl +++ b/CIAO/tests/IDL_Test/Double_Inherited_Component/run_test.pl @@ -103,7 +103,7 @@ sub kill_open_processes { } # in case the planlauncher wasn't able to shut everything down as supposed - $tg_executor->KillAll ('ciao_componentserver'); + $tg_executor->KillAll ('dance_locality_manager'); } sub run_node_daemons { @@ -113,7 +113,7 @@ sub run_node_daemons { $port = $ports[$i]; $nodename = $nodenames[$i]; $iiop = "iiop://localhost:$port"; - $node_app = "$CIAO_ROOT/bin/ciao_componentserver"; + $node_app = "$DANCE_ROOT/bin/dance_locality_manager"; $d_cmd = "$DANCE_ROOT/bin/dance_node_manager"; $d_param = "-ORBEndpoint $iiop -s $node_app -n $nodename=$iorfile -t 30 --domain-nc corbaloc:rir:/NameService"; |