summaryrefslogtreecommitdiff
path: root/modules/CIAO/DAnCE/tests/CIAO
diff options
context:
space:
mode:
Diffstat (limited to 'modules/CIAO/DAnCE/tests/CIAO')
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/CommandlinePassage/CommandlinePassage.idl22
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/CommandlinePassage/CommandlinePassage.mpc124
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/CommandlinePassage/CommandlinePassage_exec.cpp99
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/CommandlinePassage/CommandlinePassage_exec.h54
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/CommandlinePassage/Component.cdp153
-rwxr-xr-xmodules/CIAO/DAnCE/tests/CIAO/CommandlinePassage/run_test.pl245
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/Components/ProcessColocation.idl15
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/Components/ProcessColocation.mpc108
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/Components/ProcessColocation_exec.cpp189
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/Components/ProcessColocation_exec.h126
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/Components/Progressive.idl22
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/Components/Progressive.mpc111
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/Components/Progressive_exec.cpp215
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/Components/Progressive_exec.h141
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/Components/SimpleAttribute.idl25
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/Components/SimpleAttribute.mpc108
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/Components/SimpleAttribute_exec.cpp241
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/Components/SimpleAttribute_exec.h123
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/Components/SimpleCommon.idl23
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/Components/SimpleCommon.mpc79
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/Components/SimpleConsumer.idl21
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/Components/SimpleConsumer.mpc110
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/Components/SimpleConsumer_exec.cpp144
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/Components/SimpleConsumer_exec.h85
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/Components/SimpleEmitter.idl21
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/Components/SimpleEmitter.mpc110
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/Components/SimpleEmitter_exec.cpp131
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/Components/SimpleEmitter_exec.h80
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/Components/SimpleFailure.idl28
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/Components/SimpleFailure.mpc108
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/Components/SimpleFailure_exec.cpp165
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/Components/SimpleFailure_exec.h89
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/Components/SimpleMultipleUser.idl21
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/Components/SimpleMultipleUser.mpc110
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/Components/SimpleMultipleUser_exec.cpp158
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/Components/SimpleMultipleUser_exec.h80
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/Components/SimpleNilFacetProvider.idl23
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/Components/SimpleNilFacetProvider.mpc112
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/Components/SimpleNilFacetProvider_exec.cpp160
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/Components/SimpleNilFacetProvider_exec.h98
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/Components/SimpleNilFacetUser.idl21
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/Components/SimpleNilFacetUser.mpc111
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/Components/SimpleNilFacetUser_exec.cpp159
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/Components/SimpleNilFacetUser_exec.h80
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/Components/SimpleNull.idl14
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/Components/SimpleNull.mpc107
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/Components/SimpleNull_exec.cpp150
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/Components/SimpleNull_exec.h83
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/Components/SimpleProvider.idl21
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/Components/SimpleProvider.mpc111
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/Components/SimpleProvider_exec.cpp166
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/Components/SimpleProvider_exec.h102
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/Components/SimplePublisher.idl21
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/Components/SimplePublisher.mpc110
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/Components/SimplePublisher_exec.cpp129
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/Components/SimplePublisher_exec.h80
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/Components/SimpleUser.idl21
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/Components/SimpleUser.mpc111
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/Components/SimpleUser_exec.cpp151
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/Components/SimpleUser_exec.h80
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/1NodeFailureAtActivate.cdp133
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/1NodeFailureAtStartup.cdp133
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/1NodeNoFailure.cdp133
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/2NodeFailureAtActivate.cdp184
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/2NodeFailureAtStartup.cdp184
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/2NodeNoFailure.cdp184
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/5NodeFailureAtActivate.cdp331
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/5NodeFailureAtStartup.cdp331
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/5NodeNoFailure.cdp331
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/README.txt8
-rwxr-xr-xmodules/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/run_test.pl269
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/EM-Redeployment/README.txt8
-rwxr-xr-xmodules/CIAO/DAnCE/tests/CIAO/EM-Redeployment/run_test.pl223
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/EmitsConnectionExplicitHome.cdp227
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/EmitsConnectionExplicitHome_NS.cdp238
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/MultiplexConnectionExplicitHome.cdp262
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/MultiplexConnectionExplicitHome_NS.cdp339
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/MultiplexConnectionExplicitHome_NS_PL_DP.cdp352
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/MultiplexConnectionExplicitHome_NS_PL_SP.cdp348
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/PublishConnectionExplicitHome.cdp227
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/PublishConnectionExplicitHome_NS.cdp244
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/SimpleComponentExplicitHome.cdp113
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/SimpleProcessColocation.cdp127
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/SimpleProcessColocation_2.cdp168
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/SimpleProcessColocation_Default.cdp208
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/SimplexConnectionExplicitHome.cdp262
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/SimplexConnectionExplicitHome_NS.cdp284
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/SimplexConnectionExplicitHome_NS_PL_DP.cdp297
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/SimplexConnectionExplicitHome_NS_PL_SP.cdp293
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/SimplexConnectionExplicitHome_NilFacet.cdp262
-rwxr-xr-xmodules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/run_test.pl224
-rwxr-xr-xmodules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/run_test_cdr.pl241
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/EmitsConnectionExplicitHome.cdp227
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/MultiplexConnectionExplicitHome.cdp262
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/PublishConnectionExplicitHome.cdp227
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/SimpleAttributeExplicitHome.cdp179
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/SimpleComponentExplicitHome.cdp113
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/SimpleComponentUnhomed.cdp86
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/SimpleHome.cdp90
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/SimpleProcessColocation.cdp127
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/SimpleProcessColocation_2.cdp168
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/SimpleProcessColocation_Default.cdp208
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/SimplexConnectionExplicitHome.cdp262
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/TwoComponentsOneHome.cdp281
-rwxr-xr-xmodules/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/run_test.pl207
-rwxr-xr-xmodules/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/run_test_cdr.pl227
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/Progressive_Deployments/NodeManagerMap.dat4
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/Progressive_Deployments/Plan_A.cdp120
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/Progressive_Deployments/Plan_B.cdp136
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/Progressive_Deployments/Plan_C.cdp265
-rwxr-xr-xmodules/CIAO/DAnCE/tests/CIAO/Progressive_Deployments/run_test.pl245
111 files changed, 16507 insertions, 0 deletions
diff --git a/modules/CIAO/DAnCE/tests/CIAO/CommandlinePassage/CommandlinePassage.idl b/modules/CIAO/DAnCE/tests/CIAO/CommandlinePassage/CommandlinePassage.idl
new file mode 100644
index 00000000000..e01d7c16d2c
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/CommandlinePassage/CommandlinePassage.idl
@@ -0,0 +1,22 @@
+// $Id$
+
+/**
+ * @file
+ * @author Marcel Smit <msmit@remedy.nl>
+ *
+ * by-hand idl3 translation of sender components.
+ */
+
+#ifndef COMMAND_LINE_PASSAGE_IDL_
+#define COMMAND_LINE_PASSAGE_IDL_
+
+#include <Components.idl>
+
+module command_line_test
+{
+ component A
+ {
+ attribute long tc_max;
+ };
+};
+#endif
diff --git a/modules/CIAO/DAnCE/tests/CIAO/CommandlinePassage/CommandlinePassage.mpc b/modules/CIAO/DAnCE/tests/CIAO/CommandlinePassage/CommandlinePassage.mpc
new file mode 100644
index 00000000000..25cd697c345
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/CommandlinePassage/CommandlinePassage.mpc
@@ -0,0 +1,124 @@
+// $Id$
+
+project(CommandlinePassage_idl_gen) : componentidldefaults {
+ after +=
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=COMMANDLINEPASSAGE_STUB_Export \
+ -Wb,stub_export_include=CommandlinePassage_stub_export.h \
+ -Wb,skel_export_macro=COMMANDLINEPASSAGE_SVNT_Export \
+ -Wb,skel_export_include=CommandlinePassage_svnt_export.h \
+ -Wb,exec_export_macro=COMMANDLINEPASSAGE_EXEC_Export \
+ -Wb,exec_export_include=CommandlinePassage_exec_export.h \
+ -I ..
+
+ IDL_Files {
+ CommandlinePassage.idl
+ }
+}
+
+project(CommandlinePassage_lem_gen) : ciaoidldefaults {
+ after += CommandlinePassage_idl_gen
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=COMMANDLINEPASSAGE_EXEC_Export \
+ -Wb,stub_export_include=CommandlinePassage_exec_export.h \
+ -SS -Gxhst -I ..
+
+ IDL_Files {
+ CommandlinePassageE.idl
+ }
+}
+
+project(CommandlinePassage_lem_stub) : ccm_svnt {
+ after += CommandlinePassage_lem_gen CommandlinePassage_stub
+ libs += CommandlinePassage_stub
+ sharedname = CommandlinePassage_lem_stub
+ dynamicflags = COMMANDLINEPASSAGE_EXEC_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ CommandlinePassageEC.cpp
+ }
+
+ Header_Files {
+ CommandlinePassageEC.h
+ CommandlinePassage_exec_export.h
+ }
+
+ Inline_Files {
+ CommandlinePassageEC.inl
+ }
+}
+
+project(CommandlinePassage_stub) : ccm_stub {
+ after += CommandlinePassage_idl_gen
+ libs +=
+ sharedname = CommandlinePassage_stub
+ dynamicflags = COMMANDLINEPASSAGE_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ CommandlinePassageC.cpp
+ }
+
+ Header_Files {
+ CommandlinePassageC.h
+ CommandlinePassage_stub_export.h
+ }
+
+ Inline_Files {
+ CommandlinePassageC.inl
+ }
+}
+
+project(CommandlinePassage_exec) : ciao_executor {
+ after += CommandlinePassage_lem_stub CommandlinePassage_stub
+ sharedname = CommandlinePassage_exec
+ libs += CommandlinePassage_stub CommandlinePassage_lem_stub
+ dynamicflags = COMMANDLINEPASSAGE_EXEC_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ CommandlinePassage_exec.cpp
+ }
+
+ Header_Files {
+ CommandlinePassage_exec.h
+ CommandlinePassage_exec_export.h
+ }
+
+ Inline_Files {
+ }
+}
+
+
+project(CommandlinePassage_svnt) : ciao_servant {
+ after += CommandlinePassage_lem_stub
+ sharedname = CommandlinePassage_svnt
+ libs += CommandlinePassage_stub CommandlinePassage_lem_stub
+ dynamicflags = COMMANDLINEPASSAGE_SVNT_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ CommandlinePassageS.cpp
+ CommandlinePassage_svnt.cpp
+ }
+
+ Header_Files {
+ CommandlinePassageS.h
+ CommandlinePassage_svnt.h
+ CommandlinePassage_svnt_export.h
+ }
+
+ Inline_Files {
+ CommandlinePassageS.inl
+ }
+}
+
diff --git a/modules/CIAO/DAnCE/tests/CIAO/CommandlinePassage/CommandlinePassage_exec.cpp b/modules/CIAO/DAnCE/tests/CIAO/CommandlinePassage/CommandlinePassage_exec.cpp
new file mode 100644
index 00000000000..bb39ab4e3a3
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/CommandlinePassage/CommandlinePassage_exec.cpp
@@ -0,0 +1,99 @@
+// -*- C++ -*-
+// $Id$
+
+#include "CommandlinePassage_exec.h"
+#include "DAnCE/Logger/Log_Macros.h"
+#include "tao/ORB_Core.h"
+#include "tao/Transport_Cache_Manager.h"
+#include "tao/Thread_Lane_Resources.h"
+
+namespace CIAO_command_line_test_A_Impl
+{
+ //============================================================
+ // Pulse generator
+ //============================================================
+
+ Component_exec_i::Component_exec_i (void)
+ : tc_max_ (3)
+ {
+ }
+
+ Component_exec_i::~Component_exec_i (void)
+ {
+ }
+
+ // Port operations.
+ void Component_exec_i::tc_max (CORBA::Long tc_max)
+ {
+ this->tc_max_ = tc_max;
+ }
+
+ CORBA::Long Component_exec_i::tc_max (void)
+ {
+ return this->tc_max_;
+ }
+ // Operations from Components::SessionComponent.
+ void
+ Component_exec_i::set_session_context (
+ ::Components::SessionContext_ptr ctx)
+ {
+ this->context_ =
+ ::command_line_test::CCM_A_Context::_narrow (ctx);
+
+ if ( ::CORBA::is_nil (this->context_.in ()))
+ {
+ throw ::CORBA::INTERNAL ();
+ }
+ }
+
+ void
+ Component_exec_i::configuration_complete (void)
+ {
+ }
+
+ void
+ Component_exec_i::ccm_activate (void)
+ {
+ }
+
+ void
+ Component_exec_i::ccm_passivate (void)
+ {
+ }
+
+ void
+ Component_exec_i::ccm_remove (void)
+ {
+ try
+ {
+ long tc =
+ this->context_->get_CCM_object ()->_get_orb ()->orb_core ()->lane_resources ().transport_cache ().total_size ();
+ ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Transport cache : set <%d>, current_size <%d>\n"),
+ this->tc_max_, tc));
+ if (this->tc_max_ != tc)
+ {
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("ERROR : Commandline parameter isn't not passed properly ")
+ ACE_TEXT ("should be <%d>, is <%d>\n"),
+ this->tc_max_, tc));
+ }
+ }
+ catch (...)
+ {
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("ERROR : Exception caught while checking transport cache.\n")));
+ }
+ }
+
+ extern "C" COMMANDLINEPASSAGE_EXEC_Export ::Components::EnterpriseComponent_ptr
+ create_Component_Impl (void)
+ {
+ ::Components::EnterpriseComponent_ptr retval =
+ ::Components::EnterpriseComponent::_nil ();
+
+ ACE_NEW_NORETURN (
+ retval,
+ Component_exec_i );
+
+ return retval;
+ }
+}
+
diff --git a/modules/CIAO/DAnCE/tests/CIAO/CommandlinePassage/CommandlinePassage_exec.h b/modules/CIAO/DAnCE/tests/CIAO/CommandlinePassage/CommandlinePassage_exec.h
new file mode 100644
index 00000000000..d8bcc90c430
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/CommandlinePassage/CommandlinePassage_exec.h
@@ -0,0 +1,54 @@
+// -*- C++ -*-
+// $Id$
+
+#ifndef COMPONENTLINPASSAGE_EXEC_H_
+#define COMPONENTLINPASSAGE_EXEC_H_
+
+
+#include "CommandlinePassageEC.h"
+
+#include /**/ "CommandlinePassage_exec_export.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "tao/LocalObject.h"
+
+#include <map>
+
+namespace CIAO_command_line_test_A_Impl
+{
+ class Component_exec_i
+ : public virtual A_Exec,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ Component_exec_i (void);
+ virtual ~Component_exec_i (void);
+
+ virtual void
+ tc_max (CORBA::Long tc_max);
+
+ virtual CORBA::Long
+ tc_max (void);
+
+ virtual void
+ set_session_context (
+ ::Components::SessionContext_ptr ctx);
+ virtual void configuration_complete (void);
+ virtual void ccm_activate (void);
+ virtual void ccm_passivate (void);
+ virtual void ccm_remove (void);
+
+ private:
+ ::command_line_test::CCM_A_Context_var context_;
+ CORBA::Long tc_max_;
+ };
+
+ extern "C" COMMANDLINEPASSAGE_EXEC_Export ::Components::EnterpriseComponent_ptr
+ create_Component_Impl (void);
+}
+
+#endif /* ifndef */
+
diff --git a/modules/CIAO/DAnCE/tests/CIAO/CommandlinePassage/Component.cdp b/modules/CIAO/DAnCE/tests/CIAO/CommandlinePassage/Component.cdp
new file mode 100644
index 00000000000..f692ab3a7eb
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/CommandlinePassage/Component.cdp
@@ -0,0 +1,153 @@
+<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>Hello_DDS_Deployment_1</label>
+ <UUID>Hello_DDS_Deployment_1</UUID>
+
+ <!-- Implementations declarations -->
+
+ <!-- Home implementation -->
+
+ <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.ServerExecutable</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="CommandlinePassageComponentImplementation">
+ <name>CommandlinePassageComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="CommandlinePassage_ExecArtifact" />
+ <artifact xmi:idref="CommandlinePassage_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see 10.6.1) -->
+ <name>component factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Component_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_command_line_test_A_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>CommandlinePassage_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>CommandlinePassage_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <instance xmi:id="CompSvrInst">
+ <name>ComponentServerInstance</name>
+ <node>CommandlinePassageNode</node>
+ <source />
+ <implementation xmi:idref="CompSvrImpl" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.CIAO.ComponentServer.Args</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>-ORBSvcConfDirective "static Resource_Factory '-ORBConnectionCacheMax 33'"</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="CommandlinePassageComponentInstance">
+ <name>CommandlinePassageComponent</name>
+ <node>CommandlinePassageNode</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="CommandlinePassageComponentImplementation" />
+ <!-- set both edu.vanderbilt.dre.CIAO.ComponentServer.Args and
+ tc_max to the same number -->
+ <configProperty>
+ <name>tc_max</name>
+ <value>
+ <type>
+ <kind>tk_long</kind>
+ </type>
+ <value>
+ <long>33</long>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <!-- Artifacts declarations -->
+ <artifact xmi:id="CompSvrArt">
+ <name>CompoSvrArtifactName</name>
+ <source />
+ <node />
+ <location>ciao_componentserver</location>
+ </artifact>
+ <artifact xmi:id="CommandlinePassage_ExecArtifact">
+ <name>CommandlinePassage_exec</name>
+ <source/>
+ <node/>
+ <location>CommandlinePassage_exec</location>
+ </artifact>
+ <artifact xmi:id="CommandlinePassage_SvntArtifact">
+ <name>CommandlinePassage_svnt</name>
+ <source/>
+ <node/>
+ <location>CommandlinePassage_svnt</location>
+ </artifact>
+ <artifact xmi:id="CommandlinePassage_StubArtifact">
+ <name>CommandlinePassage_stub</name>
+ <source/>
+ <node/>
+ <location>CommandlinePassage_stub</location>
+ </artifact>
+
+ <localityConstraint>
+ <constraint>SameProcess</constraint>
+ <constrainedInstance xmi:idref="CompSvrInst" />
+ <constrainedInstance xmi:idref="CommandlinePassageComponentInstance" />
+ </localityConstraint>
+
+</Deployment:DeploymentPlan>
diff --git a/modules/CIAO/DAnCE/tests/CIAO/CommandlinePassage/run_test.pl b/modules/CIAO/DAnCE/tests/CIAO/CommandlinePassage/run_test.pl
new file mode 100755
index 00000000000..42e6eb574b4
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/CommandlinePassage/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 = ( "CommandlinePassage.ior" );
+@iorfiles = 0;
+@nodenames = ( "CommandlinePassageNode" );
+
+# 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 = "Component.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 ('ciao_componentserver');
+}
+
+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 = "$CIAO_ROOT/bin/ciao_componentserver";
+
+ $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/modules/CIAO/DAnCE/tests/CIAO/Components/ProcessColocation.idl b/modules/CIAO/DAnCE/tests/CIAO/Components/ProcessColocation.idl
new file mode 100644
index 00000000000..6c38a2dd8f0
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/ProcessColocation.idl
@@ -0,0 +1,15 @@
+// $Id$
+
+#include <Components.idl>
+
+module Simple
+{
+ component ProcessColocation
+ {
+ attribute string process_name;
+ };
+
+ home ProcessColocationHome manages ProcessColocation
+ {
+ };
+};
diff --git a/modules/CIAO/DAnCE/tests/CIAO/Components/ProcessColocation.mpc b/modules/CIAO/DAnCE/tests/CIAO/Components/ProcessColocation.mpc
new file mode 100644
index 00000000000..126ad174031
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/ProcessColocation.mpc
@@ -0,0 +1,108 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl ProcessColocation"
+
+project(ProcessColocation_idl_gen) : componentidldefaults {
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=PROCESSCOLOCATION_STUB_Export \
+ -Wb,stub_export_include=ProcessColocation_stub_export.h \
+ -Wb,skel_export_macro=PROCESSCOLOCATION_SVNT_Export \
+ -Wb,skel_export_include=ProcessColocation_svnt_export.h \
+ -Wb,exec_export_macro=PROCESSCOLOCATION_EXEC_Export \
+ -Wb,exec_export_include=ProcessColocation_exec_export.h
+
+ IDL_Files {
+ ProcessColocation.idl
+ }
+}
+
+project(ProcessColocation_lem_gen) : ciaoidldefaults {
+ custom_only = 1
+ after += ProcessColocation_idl_gen
+ idlflags += -Wb,export_macro=PROCESSCOLOCATION_EXEC_Export \
+ -Wb,export_include=ProcessColocation_exec_export.h \
+ -SS
+
+ IDL_Files {
+ ProcessColocationE.idl
+ }
+}
+
+project(ProcessColocation_stub) : ccm_stub {
+ after += ProcessColocation_idl_gen
+ libs +=
+
+ sharedname = ProcessColocation_stub
+ dynamicflags = PROCESSCOLOCATION_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ ProcessColocationC.cpp
+ }
+
+ Header_Files {
+ ProcessColocationC.h
+ ProcessColocation_stub_export.h
+ }
+
+ Inline_Files {
+ ProcessColocationC.inl
+ }
+}
+
+project(ProcessColocation_exec) : ciao_executor {
+ after += ProcessColocation_lem_gen ProcessColocation_stub
+ sharedname = ProcessColocation_exec
+ libs += ProcessColocation_stub
+
+ dynamicflags = PROCESSCOLOCATION_EXEC_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ ProcessColocationEC.cpp
+ ProcessColocation_exec.cpp
+ }
+
+ Header_Files {
+ ProcessColocationEC.h
+ ProcessColocation_exec.h
+ ProcessColocation_exec_export.h
+ }
+
+ Inline_Files {
+ ProcessColocationEC.inl
+ }
+}
+
+
+project(ProcessColocation_svnt) : ciao_servant {
+ after += ProcessColocation_exec
+ sharedname = ProcessColocation_svnt
+ libs += ProcessColocation_exec \
+ ProcessColocation_stub
+
+ dynamicflags = PROCESSCOLOCATION_SVNT_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ ProcessColocationS.cpp
+ ProcessColocation_svnt.cpp
+ }
+
+ Header_Files {
+ ProcessColocationS.h
+ ProcessColocation_svnt.h
+ ProcessColocation_svnt_export.h
+ }
+
+ Inline_Files {
+ ProcessColocationS.inl
+ }
+}
+
+
diff --git a/modules/CIAO/DAnCE/tests/CIAO/Components/ProcessColocation_exec.cpp b/modules/CIAO/DAnCE/tests/CIAO/Components/ProcessColocation_exec.cpp
new file mode 100644
index 00000000000..2783374c1a5
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/ProcessColocation_exec.cpp
@@ -0,0 +1,189 @@
+// -*- C++ -*-
+// $Id$
+
+#include "ProcessColocation_exec.h"
+#include "DAnCE/Logger/Log_Macros.h"
+#include "ace/Singleton.h"
+
+namespace
+{
+ class Colocation_Tester
+ {
+ public:
+ Colocation_Tester (void)
+ : value_ ("")
+ {
+ }
+
+ ACE_CString value (void)
+ {
+ return value_;
+ }
+
+ void value (const ACE_CString &s)
+ {
+ value_ = s;
+ }
+
+ private:
+ ACE_CString value_;
+ };
+
+ typedef ACE_Singleton <Colocation_Tester,
+ ACE_SYNCH_RECURSIVE_MUTEX> Colocation_Tester_Singleton;
+
+#define TESTER Colocation_Tester_Singleton::instance ()
+}
+
+namespace CIAO_Simple_ProcessColocation_Impl
+{
+ //============================================================
+ // Component Executor Implementation Class: ProcessColocation_exec_i
+ //============================================================
+
+ ProcessColocation_exec_i::ProcessColocation_exec_i (void)
+ {
+ }
+
+ ProcessColocation_exec_i::~ProcessColocation_exec_i (void)
+ {
+ }
+
+ // Supported operations and attributes.
+
+ // Component attributes.
+
+ char *
+ ProcessColocation_exec_i::process_name (void)
+ {
+ return CORBA::string_dup (this->process_name_.c_str ());
+ }
+
+ void
+ ProcessColocation_exec_i::process_name (
+ const char * process_name )
+ {
+ ACE_DEBUG ((LM_EMERGENCY, "Setting attr process name:%C\n",
+ process_name));
+
+ this->process_name_ = process_name;
+ TESTER->value (process_name);
+ }
+
+ // Port operations.
+
+ // Operations from Components::SessionComponent.
+
+ void
+ ProcessColocation_exec_i::set_session_context (
+ ::Components::SessionContext_ptr ctx)
+ {
+ this->context_ =
+ ::Simple::CCM_ProcessColocation_Context::_narrow (ctx);
+
+ if ( ::CORBA::is_nil (this->context_.in ()))
+ {
+ throw ::CORBA::INTERNAL ();
+ }
+ }
+
+ void
+ ProcessColocation_exec_i::configuration_complete (void)
+ {
+ /* Your code here. */
+ }
+
+ void
+ ProcessColocation_exec_i::ccm_activate (void)
+ {
+ ACE_CString value = TESTER->value ();
+
+ if (this->process_name_ != value)
+ {
+ ACE_DEBUG ((LM_EMERGENCY, "ProcessColocation_exec_i::ccm_activate - "
+ "Error: I am colocated with someone I shouldn't be. "
+ "My process value is %C, expected %C\n",
+ value.c_str (),
+ this->process_name_.c_str ()));
+ // throw CORBA::BAD_PARAM ();
+ }
+ }
+
+ void
+ ProcessColocation_exec_i::ccm_passivate (void)
+ {
+ /* Your code here. */
+ }
+
+ void
+ ProcessColocation_exec_i::ccm_remove (void)
+ {
+ /* Your code here. */
+ }
+
+ extern "C" PROCESSCOLOCATION_EXEC_Export ::Components::EnterpriseComponent_ptr
+ create_Simple_ProcessColocation_Impl (void)
+ {
+ ::Components::EnterpriseComponent_ptr retval =
+ ::Components::EnterpriseComponent::_nil ();
+
+ ACE_NEW_RETURN (
+ retval,
+ ProcessColocation_exec_i,
+ ::Components::EnterpriseComponent::_nil ());
+
+ return retval;
+ }
+}
+
+namespace CIAO_Simple_ProcessColocation_Impl
+{
+ //============================================================
+ // Home Executor Implementation Class: ProcessColocationHome_exec_i
+ //============================================================
+
+ ProcessColocationHome_exec_i::ProcessColocationHome_exec_i (void)
+ {
+ }
+
+ ProcessColocationHome_exec_i::~ProcessColocationHome_exec_i (void)
+ {
+ }
+
+ // All operations and attributes.
+
+ // Factory operations.
+
+ // Finder operations.
+
+ // Implicit operations.
+
+ ::Components::EnterpriseComponent_ptr
+ ProcessColocationHome_exec_i::create (void)
+ {
+ ::Components::EnterpriseComponent_ptr retval =
+ ::Components::EnterpriseComponent::_nil ();
+
+ ACE_NEW_THROW_EX (
+ retval,
+ ProcessColocation_exec_i,
+ ::CORBA::NO_MEMORY ());
+
+ return retval;
+ }
+
+ extern "C" PROCESSCOLOCATION_EXEC_Export ::Components::HomeExecutorBase_ptr
+ create_Simple_ProcessColocationHome_Impl (void)
+ {
+ ::Components::HomeExecutorBase_ptr retval =
+ ::Components::HomeExecutorBase::_nil ();
+
+ ACE_NEW_RETURN (
+ retval,
+ ProcessColocationHome_exec_i,
+ ::Components::HomeExecutorBase::_nil ());
+
+ return retval;
+ }
+}
+
diff --git a/modules/CIAO/DAnCE/tests/CIAO/Components/ProcessColocation_exec.h b/modules/CIAO/DAnCE/tests/CIAO/Components/ProcessColocation_exec.h
new file mode 100644
index 00000000000..ed5e8d3d950
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/ProcessColocation_exec.h
@@ -0,0 +1,126 @@
+// -*- C++ -*-
+//
+// $Id$
+
+// **** Code generated by the The ACE ORB (TAO) IDL Compiler v1.6.9 ****
+// TAO and the TAO IDL Compiler have been developed by:
+// Center for Distributed Object Computing
+// Washington University
+// St. Louis, MO
+// USA
+// http://www.cs.wustl.edu/~schmidt/doc-center.html
+// and
+// Distributed Object Computing Laboratory
+// University of California at Irvine
+// Irvine, CA
+// USA
+// http://doc.ece.uci.edu/
+// and
+// Institute for Software Integrated Systems
+// Vanderbilt University
+// Nashville, TN
+// USA
+// http://www.isis.vanderbilt.edu/
+//
+// Information about TAO is available at:
+// http://www.cs.wustl.edu/~schmidt/TAO.html
+
+// TAO_IDL - Generated from
+// be/be_codegen.cpp:1301
+
+#ifndef CIAO_PROCESSCOLOCATION_EXEC_H_
+#define CIAO_PROCESSCOLOCATION_EXEC_H_
+
+#include /**/ "ace/pre.h"
+
+#include "ProcessColocationEC.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include /**/ "ProcessColocation_exec_export.h"
+#include "tao/LocalObject.h"
+#include "ace/String_Base.h"
+
+namespace CIAO_Simple_ProcessColocation_Impl
+{
+ class PROCESSCOLOCATION_EXEC_Export ProcessColocation_exec_i
+ : public virtual ProcessColocation_Exec,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ ProcessColocation_exec_i (void);
+ virtual ~ProcessColocation_exec_i (void);
+
+ // Supported operations and attributes.
+
+ // Component attributes.
+
+ // TAO_IDL - Generated from
+ // be/be_visitor_operation/operation_ch.cpp:46
+
+ virtual char *
+ process_name (void);
+
+ // TAO_IDL - Generated from
+ // be/be_visitor_operation/operation_ch.cpp:46
+
+ virtual void
+ process_name (
+ const char * process_name);
+
+ // Port operations.
+
+ // Operations from Components::SessionComponent.
+
+ virtual void
+ set_session_context (
+ ::Components::SessionContext_ptr ctx);
+
+ virtual void configuration_complete (void);
+
+ virtual void ccm_activate (void);
+ virtual void ccm_passivate (void);
+ virtual void ccm_remove (void);
+
+ private:
+ ACE_CString process_name_;
+ ::Simple::CCM_ProcessColocation_Context_var context_;
+ };
+
+ extern "C" PROCESSCOLOCATION_EXEC_Export ::Components::EnterpriseComponent_ptr
+ create_Simple_ProcessColocation_Impl (void);
+}
+
+namespace CIAO_Simple_ProcessColocation_Impl
+{
+ class PROCESSCOLOCATION_EXEC_Export ProcessColocationHome_exec_i
+ : public virtual ProcessColocationHome_Exec,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ ProcessColocationHome_exec_i (void);
+
+ virtual ~ProcessColocationHome_exec_i (void);
+
+ // All operations and attributes.
+
+ // Factory operations.
+
+ // Finder operations.
+
+ // Implicit operations.
+
+ virtual ::Components::EnterpriseComponent_ptr
+ create (void);
+ };
+
+ extern "C" PROCESSCOLOCATION_EXEC_Export ::Components::HomeExecutorBase_ptr
+ create_Simple_ProcessColocationHome_Impl (void);
+}
+
+#include /**/ "ace/post.h"
+
+#endif /* ifndef */
+
diff --git a/modules/CIAO/DAnCE/tests/CIAO/Components/Progressive.idl b/modules/CIAO/DAnCE/tests/CIAO/Components/Progressive.idl
new file mode 100644
index 00000000000..b9edea73e02
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/Progressive.idl
@@ -0,0 +1,22 @@
+// $Id$
+
+#ifndef SIMPLE_USER_IDL
+#define SIMPLE_USER_IDL
+
+#include "SimpleCommon.idl"
+#include "Components.idl"
+
+module Simple
+{
+ component Progressive
+ {
+ uses Trigger trig_out;
+ provides Trigger trig_in;
+ };
+
+ home ProgressiveHome manages Progressive
+ {
+ };
+};
+
+#endif /*SIMPLE_USER_IDL*/
diff --git a/modules/CIAO/DAnCE/tests/CIAO/Components/Progressive.mpc b/modules/CIAO/DAnCE/tests/CIAO/Components/Progressive.mpc
new file mode 100644
index 00000000000..8bea4ad4474
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/Progressive.mpc
@@ -0,0 +1,111 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl -p SimpleCommon SimpleUser"
+
+project(SimpleCommon_Progressive_idl_gen) : componentidldefaults {
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=PROGRESSIVE_STUB_Export \
+ -Wb,stub_export_include=Progressive_stub_export.h \
+ -Wb,skel_export_macro=PROGRESSIVE_SVNT_Export \
+ -Wb,skel_export_include=Progressive_svnt_export.h \
+ -Wb,exec_export_macro=PROGRESSIVE_EXEC_Export \
+ -Wb,exec_export_include=Progressive_exec_export.h \
+ -Gsv
+
+ IDL_Files {
+ Progressive.idl
+ }
+}
+
+project(SimpleCommon_Progressive_lem_gen) : ciaoidldefaults {
+ after += SimpleCommon_Progressive_idl_gen
+ custom_only = 1
+ idlflags += -Wb,export_macro=PROGRESSIVE_EXEC_Export \
+ -Wb,export_include=Progressive_exec_export.h \
+ -SS
+
+ IDL_Files {
+ ProgressiveE.idl
+ }
+}
+
+project(SimpleCommon_Progressive_stub) : ccm_stub {
+ after += SimpleCommon_Progressive_idl_gen SimpleCommon_stub
+ libs += SimpleCommon_stub
+
+ sharedname = Progressive_stub
+ dynamicflags = PROGRESSIVE_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ ProgressiveC.cpp
+ }
+
+ Header_Files {
+ ProgressiveC.h
+ Progressive_stub_export.h
+ }
+
+ Inline_Files {
+ ProgressiveC.inl
+ }
+}
+
+project(SimpleCommon_Progressive_exec) : ciao_executor {
+ after += SimpleCommon_Progressive_lem_gen SimpleCommon_Progressive_stub
+ sharedname = Progressive_exec
+ libs += Progressive_stub SimpleCommon_stub
+
+ dynamicflags = PROGRESSIVE_EXEC_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ ProgressiveEC.cpp
+ Progressive_exec.cpp
+ }
+
+ Header_Files {
+ ProgressiveEC.h
+ Progressive_exec.h
+ Progressive_exec_export.h
+ }
+
+ Inline_Files {
+ ProgressiveEC.inl
+ }
+}
+
+
+project(SimpleCommon_Progressive_svnt) : ciao_servant {
+ after += SimpleCommon_skel SimpleCommon_Progressive_exec
+ sharedname = Progressive_svnt
+ libs += Progressive_exec \
+ Progressive_stub \
+ SimpleCommon_skel \
+ SimpleCommon_stub
+
+ dynamicflags = PROGRESSIVE_SVNT_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ ProgressiveS.cpp
+ Progressive_svnt.cpp
+ }
+
+ Header_Files {
+ ProgressiveS.h
+ Progressive_svnt.h
+ Progressive_svnt_export.h
+ }
+
+ Inline_Files {
+ ProgressiveS.inl
+ }
+}
+
+
diff --git a/modules/CIAO/DAnCE/tests/CIAO/Components/Progressive_exec.cpp b/modules/CIAO/DAnCE/tests/CIAO/Components/Progressive_exec.cpp
new file mode 100644
index 00000000000..811fdc8f705
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/Progressive_exec.cpp
@@ -0,0 +1,215 @@
+// -*- C++ -*-
+// $Id$
+
+/**
+ * Code generated by the The ACE ORB (TAO) IDL Compiler v1.7.7
+ * TAO and the TAO IDL Compiler have been developed by:
+ * Center for Distributed Object Computing
+ * Washington University
+ * St. Louis, MO
+ * USA
+ * http://www.cs.wustl.edu/~schmidt/doc-center.html
+ * and
+ * Distributed Object Computing Laboratory
+ * University of California at Irvine
+ * Irvine, CA
+ * USA
+ * and
+ * Institute for Software Integrated Systems
+ * Vanderbilt University
+ * Nashville, TN
+ * USA
+ * http://www.isis.vanderbilt.edu/
+ *
+ * Information about TAO is available at:
+ * http://www.cs.wustl.edu/~schmidt/TAO.html
+ **/
+
+// TAO_IDL - Generated from
+// be/be_codegen.cpp:1277
+
+#include "Progressive_exec.h"
+
+#include "DAnCE/Logger/Log_Macros.h"
+
+namespace CIAO_Simple_Progressive_Impl
+{
+ //============================================================
+ // Facet Executor Implementation Class: Trigger_exec_i
+ //============================================================
+ Trigger_exec_i::Trigger_exec_i (bool &triggered,
+ ::Simple::CCM_Progressive_Context_ptr context)
+ : triggered_ (triggered),
+ context_ (context)
+ {
+ DANCE_TRACE ("Trigger_exec_i::Trigger_exec_i (void)");
+ }
+
+ Trigger_exec_i::~Trigger_exec_i (void)
+ {
+ DANCE_TRACE ("Trigger_exec_i::~Trigger_exec_i (void)");
+ }
+
+ // Operations from ::Simple::Trigger
+
+ void
+ Trigger_exec_i::hello (
+ const char * hello )
+ {
+ DANCE_TRACE ("Trigger_exec_i::hello ()");
+ this->triggered_ = true;
+ // Your code here.
+ ACE_DEBUG ((LM_EMERGENCY, "Trigger_exec_i::hello - "
+ "Got the following information from trig port: %C\n",
+ hello));
+
+ ::Simple::Trigger_var trig (this->context_->get_connection_trig_out ());
+
+ if (CORBA::is_nil (trig.in ()))
+ {
+ ACE_ERROR ((LM_ERROR, "SimpleUser_exec_i::ccm_activate () - "
+ "Error: Reference nil for port trig\n"));
+ return;
+ }
+
+ try
+ {
+ trig->hello ("Test successful; hello from SimpleUser.");
+ }
+ catch (CORBA::Exception &ex)
+ {
+ ACE_ERROR ((LM_ERROR, "SimpleUser_exec_i::ccm_activate () - "
+ "Caught CORBA exception, details follow:\n"));
+ ex._tao_print_exception ("SimpleUser_exec_i::ccm_activate () - ");
+ }
+ catch (...)
+ {
+ ACE_ERROR ((LM_ERROR, "SimpleUser_exec_i::ccm_activate () - "
+ "Error: Caught unknown exception whilst invoking reference for port trig.\n"));
+ }
+ }
+
+ //============================================================
+ // Component Executor Implementation Class: Progressive_exec_i
+ //============================================================
+
+ Progressive_exec_i::Progressive_exec_i (void)
+ : triggered_ (false)
+ {
+ }
+
+ Progressive_exec_i::~Progressive_exec_i (void)
+ {
+ }
+
+ // Supported operations and attributes.
+
+ // Component attributes and port operations.
+
+ ::Simple::CCM_Trigger_ptr
+ Progressive_exec_i::get_trig_in (void)
+ {
+ DANCE_TRACE ("SimpleProvider_exec_i::get_trig ()");
+ return new Trigger_exec_i (this->triggered_,
+ this->context_);
+ }
+
+ // Operations from Components::SessionComponent.
+
+ void
+ Progressive_exec_i::set_session_context (
+ ::Components::SessionContext_ptr ctx)
+ {
+ this->context_ =
+ ::Simple::CCM_Progressive_Context::_narrow (ctx);
+
+ if ( ::CORBA::is_nil (this->context_.in ()))
+ {
+ throw ::CORBA::INTERNAL ();
+ }
+ }
+
+ void
+ Progressive_exec_i::configuration_complete (void)
+ {
+ /* Your code here. */
+ }
+
+ void
+ Progressive_exec_i::ccm_activate (void)
+ {
+ /* Your code here. */
+ }
+
+ void
+ Progressive_exec_i::ccm_passivate (void)
+ {
+ /* Your code here. */
+ }
+
+ void
+ Progressive_exec_i::ccm_remove (void)
+ {
+ DANCE_TRACE ("SimpleProvider_exec_i::ccm_remove ()");
+ if (!triggered_)
+ ACE_ERROR ((LM_EMERGENCY, "Error: My facet wasn't triggered!!\n"));
+ }
+
+ extern "C" PROGRESSIVE_EXEC_Export ::Components::EnterpriseComponent_ptr
+ create_Simple_Progressive_Impl (void)
+ {
+ ::Components::EnterpriseComponent_ptr retval =
+ ::Components::EnterpriseComponent::_nil ();
+
+ ACE_NEW_NORETURN (
+ retval,
+ Progressive_exec_i);
+
+ return retval;
+ }
+}
+
+namespace CIAO_Simple_Progressive_Impl
+{
+ //============================================================
+ // Home Executor Implementation Class: ProgressiveHome_exec_i
+ //============================================================
+
+ ProgressiveHome_exec_i::ProgressiveHome_exec_i (void)
+ {
+ }
+
+ ProgressiveHome_exec_i::~ProgressiveHome_exec_i (void)
+ {
+ }
+
+ // Implicit operations.
+
+ ::Components::EnterpriseComponent_ptr
+ ProgressiveHome_exec_i::create (void)
+ {
+ ::Components::EnterpriseComponent_ptr retval =
+ ::Components::EnterpriseComponent::_nil ();
+
+ ACE_NEW_THROW_EX (
+ retval,
+ Progressive_exec_i,
+ ::CORBA::NO_MEMORY ());
+
+ return retval;
+ }
+
+ extern "C" PROGRESSIVE_EXEC_Export ::Components::HomeExecutorBase_ptr
+ create_Simple_ProgressiveHome_Impl (void)
+ {
+ ::Components::HomeExecutorBase_ptr retval =
+ ::Components::HomeExecutorBase::_nil ();
+
+ ACE_NEW_NORETURN (
+ retval,
+ ProgressiveHome_exec_i);
+
+ return retval;
+ }
+}
+
diff --git a/modules/CIAO/DAnCE/tests/CIAO/Components/Progressive_exec.h b/modules/CIAO/DAnCE/tests/CIAO/Components/Progressive_exec.h
new file mode 100644
index 00000000000..bb641913637
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/Progressive_exec.h
@@ -0,0 +1,141 @@
+// -*- C++ -*-
+// $Id$
+
+/**
+ * Code generated by the The ACE ORB (TAO) IDL Compiler v1.7.7
+ * TAO and the TAO IDL Compiler have been developed by:
+ * Center for Distributed Object Computing
+ * Washington University
+ * St. Louis, MO
+ * USA
+ * http://www.cs.wustl.edu/~schmidt/doc-center.html
+ * and
+ * Distributed Object Computing Laboratory
+ * University of California at Irvine
+ * Irvine, CA
+ * USA
+ * and
+ * Institute for Software Integrated Systems
+ * Vanderbilt University
+ * Nashville, TN
+ * USA
+ * http://www.isis.vanderbilt.edu/
+ *
+ * Information about TAO is available at:
+ * http://www.cs.wustl.edu/~schmidt/TAO.html
+ **/
+
+// TAO_IDL - Generated from
+// be/be_codegen.cpp:1216
+
+#ifndef CIAO_PROGRESSIVE_EXEC_0BRVI0_H_
+#define CIAO_PROGRESSIVE_EXEC_0BRVI0_H_
+
+#include /**/ "ace/pre.h"
+
+#include "ProgressiveEC.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include /**/ "Progressive_exec_export.h"
+#include "tao/LocalObject.h"
+
+namespace CIAO_Simple_Progressive_Impl
+{
+ // TAO_IDL - Generated from
+ // be/be_visitor_component/facet_exh.cpp:53
+
+ class PROGRESSIVE_EXEC_Export Trigger_exec_i
+ : public virtual ::Simple::CCM_Trigger,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ Trigger_exec_i (bool &,
+ ::Simple::CCM_Progressive_Context_ptr);
+ virtual ~Trigger_exec_i (void);
+
+ // Operations and attributes from ::Simple::Trigger
+
+ // TAO_IDL - Generated from
+ // be/be_visitor_operation/operation_ch.cpp:37
+
+ virtual void
+ hello (
+ const char * hello);
+
+ private:
+ bool &triggered_;
+ ::Simple::CCM_Progressive_Context_ptr context_;
+ };
+
+ class PROGRESSIVE_EXEC_Export Progressive_exec_i
+ : public virtual Progressive_Exec,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ Progressive_exec_i (void);
+ virtual ~Progressive_exec_i (void);
+
+ //@{
+ /** Supported operations and attributes. */
+
+ //@}
+
+ //@{
+ /** Component attributes and port operations. */
+
+
+ virtual ::Simple::CCM_Trigger_ptr
+ get_trig_in (void);
+ //@}
+
+ //@{
+ /** Operations from Components::SessionComponent. */
+
+ virtual void
+ set_session_context (::Components::SessionContext_ptr ctx);
+
+ virtual void configuration_complete (void);
+
+ virtual void ccm_activate (void);
+ virtual void ccm_passivate (void);
+ virtual void ccm_remove (void);
+ //@}
+
+
+ private:
+ ::Simple::CCM_Progressive_Context_var context_;
+ bool triggered_;
+ };
+
+ extern "C" PROGRESSIVE_EXEC_Export ::Components::EnterpriseComponent_ptr
+ create_Simple_Progressive_Impl (void);
+}
+
+namespace CIAO_Simple_Progressive_Impl
+{
+ class PROGRESSIVE_EXEC_Export ProgressiveHome_exec_i
+ : public virtual ProgressiveHome_Exec,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ ProgressiveHome_exec_i (void);
+
+ virtual ~ProgressiveHome_exec_i (void);
+
+ // Implicit operations.
+
+ virtual ::Components::EnterpriseComponent_ptr
+ create (void);
+ };
+
+ extern "C" PROGRESSIVE_EXEC_Export ::Components::HomeExecutorBase_ptr
+ create_Simple_ProgressiveHome_Impl (void);
+}
+
+#include /**/ "ace/post.h"
+
+#endif /* ifndef */
+
diff --git a/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleAttribute.idl b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleAttribute.idl
new file mode 100644
index 00000000000..7d41978b4de
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleAttribute.idl
@@ -0,0 +1,25 @@
+// $Id$
+
+#ifndef SIMPLE_ATTRIBUTE_IDL
+#define SIMPLE_ATTRIBUTE_IDL
+
+#include "Components.idl"
+
+module Simple
+{
+ component SimpleAttribute
+ {
+ attribute string str_attr;
+ attribute long long_attr;
+ attribute short short_attr;
+ };
+
+ home SimpleAttributeHome manages SimpleAttribute
+ {
+ attribute string str_attr;
+ attribute long long_attr;
+ attribute short short_attr;
+ };
+};
+
+#endif /*SIMPLE_ATTRIBUTE_IDL*/
diff --git a/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleAttribute.mpc b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleAttribute.mpc
new file mode 100644
index 00000000000..26dec1e85f5
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleAttribute.mpc
@@ -0,0 +1,108 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl SimpleAttribute"
+
+project(SimpleAttribute_idl_gen) : componentidldefaults {
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=SIMPLEATTRIBUTE_STUB_Export \
+ -Wb,stub_export_include=SimpleAttribute_stub_export.h \
+ -Wb,skel_export_macro=SIMPLEATTRIBUTE_SVNT_Export \
+ -Wb,skel_export_include=SimpleAttribute_svnt_export.h \
+ -Wb,exec_export_macro=SIMPLEATTRIBUTE_EXEC_Export \
+ -Wb,exec_export_include=SimpleAttribute_exec_export.h
+
+ IDL_Files {
+ SimpleAttribute.idl
+ }
+}
+
+project(SimpleAttribute_lem_gen) : ciaoidldefaults {
+ after += SimpleAttribute_idl_gen
+ custom_only = 1
+ idlflags += -Wb,export_macro=SIMPLEATTRIBUTE_EXEC_Export \
+ -Wb,export_include=SimpleAttribute_exec_export.h \
+ -SS
+
+ IDL_Files {
+ SimpleAttributeE.idl
+ }
+}
+
+project(SimpleAttribute_stub) : ccm_stub {
+ after += SimpleAttribute_idl_gen
+ libs +=
+
+ sharedname = SimpleAttribute_stub
+ dynamicflags = SIMPLEATTRIBUTE_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ SimpleAttributeC.cpp
+ }
+
+ Header_Files {
+ SimpleAttributeC.h
+ SimpleAttribute_stub_export.h
+ }
+
+ Inline_Files {
+ SimpleAttributeC.inl
+ }
+}
+
+project(SimpleAttribute_exec) : ciao_executor {
+ after += SimpleAttribute_lem_gen SimpleAttribute_stub
+ sharedname = SimpleAttribute_exec
+ libs += SimpleAttribute_stub
+
+ dynamicflags = SIMPLEATTRIBUTE_EXEC_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ SimpleAttributeEC.cpp
+ SimpleAttribute_exec.cpp
+ }
+
+ Header_Files {
+ SimpleAttributeEC.h
+ SimpleAttribute_exec.h
+ SimpleAttribute_exec_export.h
+ }
+
+ Inline_Files {
+ SimpleAttributeEC.inl
+ }
+}
+
+
+project(SimpleAttribute_svnt) : ciao_servant {
+ after += SimpleAttribute_exec
+ sharedname = SimpleAttribute_svnt
+ libs += SimpleAttribute_exec \
+ SimpleAttribute_stub
+
+ dynamicflags = SIMPLEATTRIBUTE_SVNT_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ SimpleAttributeS.cpp
+ SimpleAttribute_svnt.cpp
+ }
+
+ Header_Files {
+ SimpleAttributeS.h
+ SimpleAttribute_svnt.h
+ SimpleAttribute_svnt_export.h
+ }
+
+ Inline_Files {
+ SimpleAttributeS.inl
+ }
+}
+
+
diff --git a/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleAttribute_exec.cpp b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleAttribute_exec.cpp
new file mode 100644
index 00000000000..caa0415af75
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleAttribute_exec.cpp
@@ -0,0 +1,241 @@
+// $Id$
+
+#include "SimpleAttribute_exec.h"
+#include "DAnCE/Logger/Log_Macros.h"
+
+namespace CIAO_Simple_SimpleAttribute_Impl
+{
+ //==================================================================
+ // Component Executor Implementation Class: SimpleAttribute_exec_i
+ //==================================================================
+
+ SimpleAttribute_exec_i::SimpleAttribute_exec_i (void)
+ : str_ (""),
+ long_(-1),
+ short_(-1)
+ {
+ }
+
+ SimpleAttribute_exec_i::~SimpleAttribute_exec_i (void)
+ {
+ }
+
+ // Supported or inherited operations.
+
+ // Attribute operations.
+
+ char *
+ SimpleAttribute_exec_i::str_attr ()
+ {
+ // Your code here.
+ return CORBA::string_dup (str_.c_str ());
+ }
+
+ void
+ SimpleAttribute_exec_i::str_attr (const char * str)
+ {
+ DANCE_TRACE ("SimpleAttribute_exec_i::str_attr");
+ // Your code here.
+ this->str_ = str;
+ }
+
+ ::CORBA::Long
+ SimpleAttribute_exec_i::long_attr ()
+ {
+ DANCE_TRACE ("SimpleAttribute_exec_i::long_attr");
+ // Your code here.
+ return long_;
+ }
+
+ void
+ SimpleAttribute_exec_i::long_attr (::CORBA::Long long_attr )
+ {
+ DANCE_TRACE ("SimpleAttribute_exec_i::long_attr");
+ // Your code here.
+ this->long_ = long_attr;
+ }
+
+ ::CORBA::Short
+ SimpleAttribute_exec_i::short_attr ()
+ {
+ // Your code here.
+ return short_;
+ }
+
+ void
+ SimpleAttribute_exec_i::short_attr (::CORBA::Short short_attr )
+ {
+ DANCE_TRACE ("SimpleAttribute_exec_i::short_attr");
+ // Your code here.
+ this->short_ = short_attr;
+ }
+
+ // Port operations.
+
+ // Operations from Components::SessionComponent
+
+ void
+ SimpleAttribute_exec_i::set_session_context (
+ ::Components::SessionContext_ptr ctx)
+ {
+ this->context_ =
+ ::Simple::CCM_SimpleAttribute_Context::_narrow (ctx);
+
+ if (CORBA::is_nil (this->context_.in ()))
+ {
+ throw ::CORBA::INTERNAL ();
+ }
+ }
+
+ void
+ SimpleAttribute_exec_i::configuration_complete ()
+ {
+ // Your code here.
+ }
+
+ void
+ SimpleAttribute_exec_i::ccm_activate ()
+ {
+ // Your code here.
+ if (this->str_ == "" ||
+ this->long_ == -1 ||
+ this->short_ == -1)
+ {
+ ACE_ERROR ((LM_ERROR, "SimpleAttribute_exec_i::ccm_activate - "
+ "Error: Attribute values didin't initialize correctly!\n"));
+ }
+ else
+ {
+ ACE_DEBUG ((LM_EMERGENCY, "SimpleAttribute_exec_i::ccm_activate - "
+ "Test passed! String attribute is %s\n",
+ this->str_.c_str ()));
+ }
+
+ }
+
+ void
+ SimpleAttribute_exec_i::ccm_passivate ()
+ {
+ // Your code here.
+ }
+
+ void
+ SimpleAttribute_exec_i::ccm_remove ()
+ {
+ // Your code here.
+ }
+
+ //==================================================================
+ // Home Executor Implementation Class: SimpleAttributeHome_exec_i
+ //==================================================================
+
+ SimpleAttributeHome_exec_i::SimpleAttributeHome_exec_i (void)
+ : str_ (""),
+ long_(-1),
+ short_(-1)
+ {
+ }
+
+ SimpleAttributeHome_exec_i::~SimpleAttributeHome_exec_i (void)
+ {
+ }
+
+ // Supported or inherited operations.
+
+ // Home operations.
+
+ // Factory and finder operations.
+
+ // Attribute operations.
+
+
+ char *
+ SimpleAttributeHome_exec_i::str_attr ()
+ {
+ // Your code here.
+ return CORBA::string_dup (str_.c_str ());
+ }
+
+ void
+ SimpleAttributeHome_exec_i::str_attr (const char * str)
+ {
+ DANCE_TRACE ("SimpleAttributeHome_exec_i::str_attr");
+ // Your code here.
+ this->str_ = str;
+ }
+
+ ::CORBA::Long
+ SimpleAttributeHome_exec_i::long_attr ()
+ {
+ DANCE_TRACE ("SimpleAttributeHome_exec_i::long_attr");
+ // Your code here.
+ return long_;
+ }
+
+ void
+ SimpleAttributeHome_exec_i::long_attr (::CORBA::Long long_attr )
+ {
+ DANCE_TRACE ("SimpleAttributeHome_exec_i::long_attr");
+ // Your code here.
+ this->long_ = long_attr;
+ }
+
+ ::CORBA::Short
+ SimpleAttributeHome_exec_i::short_attr ()
+ {
+ // Your code here.
+ return short_;
+ }
+
+ void
+ SimpleAttributeHome_exec_i::short_attr (::CORBA::Short short_attr )
+ {
+ DANCE_TRACE ("SimpleAttributeHome_exec_i::short_attr");
+ // Your code here.
+ this->short_ = short_attr;
+ }
+
+ // Implicit operations.
+
+ ::Components::EnterpriseComponent_ptr
+ SimpleAttributeHome_exec_i::create ()
+ {
+ if (this->str_ == "" ||
+ this->long_ == -1 ||
+ this->short_ == -1)
+ {
+ ACE_ERROR ((LM_ERROR, "SimpleAttribute_exec_i::ccm_activate - "
+ "Error: Attribute values didin't initialize correctly!\n"));
+ }
+ else
+ {
+ ACE_DEBUG ((LM_EMERGENCY, "SimpleAttributeHome_exec_i::create - "
+ "Test passed! String attribute is %s\n",
+ this->str_.c_str ()));
+ }
+ ::Components::EnterpriseComponent_ptr retval =
+ ::Components::EnterpriseComponent::_nil ();
+
+ ACE_NEW_THROW_EX (
+ retval,
+ SimpleAttribute_exec_i,
+ ::CORBA::NO_MEMORY ());
+
+ return retval;
+ }
+
+ extern "C" SIMPLEATTRIBUTE_EXEC_Export ::Components::HomeExecutorBase_ptr
+ create_Simple_SimpleAttributeHome_Impl (void)
+ {
+ ::Components::HomeExecutorBase_ptr retval =
+ ::Components::HomeExecutorBase::_nil ();
+
+ ACE_NEW_RETURN (
+ retval,
+ SimpleAttributeHome_exec_i,
+ ::Components::HomeExecutorBase::_nil ());
+
+ return retval;
+ }
+}
+
diff --git a/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleAttribute_exec.h b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleAttribute_exec.h
new file mode 100644
index 00000000000..72a7805247f
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleAttribute_exec.h
@@ -0,0 +1,123 @@
+// $Id$
+
+#ifndef CIAO_SIMPLEATTRIBUTE_EXEC_H
+#define CIAO_SIMPLEATTRIBUTE_EXEC_H
+
+#include /**/ "ace/pre.h"
+
+#include "SimpleAttributeEC.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "SimpleAttribute_exec_export.h"
+#include "tao/LocalObject.h"
+
+namespace CIAO_Simple_SimpleAttribute_Impl
+{
+ class SIMPLEATTRIBUTE_EXEC_Export SimpleAttribute_exec_i
+ : public virtual SimpleAttribute_Exec,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ SimpleAttribute_exec_i (void);
+ virtual ~SimpleAttribute_exec_i (void);
+
+ // Supported or inherited operations.
+
+ // Attribute operations.
+
+ virtual char *
+ str_attr ();
+
+ virtual void
+ str_attr (const char * str_attr);
+
+ virtual ::CORBA::Long
+ long_attr ();
+
+ virtual void
+ long_attr (::CORBA::Long long_attr);
+
+ virtual ::CORBA::Short
+ short_attr ();
+
+ virtual void
+ short_attr (::CORBA::Short short_attr);
+
+ // Port operations.
+
+ // Operations from Components::SessionComponent
+
+ virtual void
+ set_session_context (
+ ::Components::SessionContext_ptr ctx);
+
+ virtual void configuration_complete ();
+
+ virtual void ccm_activate ();
+
+ virtual void ccm_passivate ();
+
+ virtual void ccm_remove ();
+
+ private:
+ ::Simple::CCM_SimpleAttribute_Context_var context_;
+ ACE_CString str_;
+ ::CORBA::Long long_;
+ ::CORBA::Short short_;
+ };
+
+ class SIMPLEATTRIBUTE_EXEC_Export SimpleAttributeHome_exec_i
+ : public virtual SimpleAttributeHome_Exec,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ SimpleAttributeHome_exec_i (void);
+ virtual ~SimpleAttributeHome_exec_i (void);
+
+ // Supported or inherited operations.
+
+ // Home operations.
+
+ // Factory and finder operations.
+
+ // Attribute operations.
+
+ virtual char *
+ str_attr ();
+
+ virtual void
+ str_attr (const char * str_attr);
+
+ virtual ::CORBA::Long
+ long_attr ();
+
+ virtual void
+ long_attr (::CORBA::Long long_attr);
+
+ virtual ::CORBA::Short
+ short_attr ();
+
+ virtual void
+ short_attr (::CORBA::Short short_attr);
+
+ // Implicit operations.
+
+ virtual ::Components::EnterpriseComponent_ptr
+ create ();
+ private:
+ ACE_CString str_;
+ ::CORBA::Long long_;
+ ::CORBA::Short short_;
+ };
+
+ extern "C" SIMPLEATTRIBUTE_EXEC_Export ::Components::HomeExecutorBase_ptr
+ create_Simple_SimpleAttributeHome_Impl (void);
+}
+
+#include /**/ "ace/post.h"
+
+#endif /* CIAO_SIMPLEATTRIBUTE_EXEC_H */
+
diff --git a/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleCommon.idl b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleCommon.idl
new file mode 100644
index 00000000000..92e557c6096
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleCommon.idl
@@ -0,0 +1,23 @@
+// $Id$
+
+#ifndef SIMPLE_COMMON_IDL
+#define SIMPLE_COMMON_IDL
+
+#include "Components.idl"
+
+#pragma ciao lem "SimpleCommonE.idl"
+
+module Simple
+{
+ interface Trigger
+ {
+ void hello (in string hello);
+ };
+
+ eventtype Hello
+ {
+ public string hello_;
+ };
+};
+
+#endif /*SIMPLE_COMMON_IDL*/
diff --git a/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleCommon.mpc b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleCommon.mpc
new file mode 100644
index 00000000000..ff4417ad9a8
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleCommon.mpc
@@ -0,0 +1,79 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl SimpleCommon"
+
+project(SimpleCommon_idl_gen) : ciaoidldefaults, anytypecode {
+ custom_only = 1
+ idlflags += -Gxhst -Gxhsk \
+ -Wb,stub_export_macro=SIMPLECOMMON_STUB_Export \
+ -Wb,stub_export_include=SimpleCommon_stub_export.h \
+ -Wb,skel_export_macro=SIMPLECOMMON_SKEL_Export \
+ -Wb,skel_export_include=SimpleCommon_skel_export.h -Glem
+
+ IDL_Files {
+ SimpleCommon.idl
+ }
+}
+
+project(SimpleCommon_lem_gen) : ciaoidldefaults {
+ custom_only = 1
+ idlflags += -Gxhst \
+ -Wb,export_macro=SIMPLECOMMON_STUB_Export \
+ -Wb,export_include=SimpleCommon_stub_export.h \
+ -SS
+ after += SimpleCommon_idl_gen
+
+ IDL_Files {
+ SimpleCommonE.idl
+ }
+}
+
+project(SimpleCommon_stub) : ccm_stub {
+ after += SimpleCommon_lem_gen
+ libs +=
+
+ sharedname = SimpleCommon_stub
+ dynamicflags = SIMPLECOMMON_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ SimpleCommonC.cpp
+ SimpleCommonEC.cpp
+ }
+
+ Header_Files {
+ SimpleCommonC.h
+ SimpleCommon_stub_export.h
+ }
+
+ Inline_Files {
+ SimpleCommonC.inl
+ }
+}
+
+project(SimpleCommon_skel) : ccm_svnt {
+ after += SimpleCommon_stub
+ sharedname = SimpleCommon_skel
+ libs += SimpleCommon_stub
+
+ dynamicflags = SIMPLECOMMON_SKEL_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ SimpleCommonS.cpp
+ }
+
+ Header_Files {
+ SimpleCommonS.h
+ SimpleCommon_skel_export.h
+ }
+
+ Inline_Files {
+ SimpleCommonS.inl
+ }
+}
+
+
diff --git a/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleConsumer.idl b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleConsumer.idl
new file mode 100644
index 00000000000..3895eacda3c
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleConsumer.idl
@@ -0,0 +1,21 @@
+// $Id$
+
+#ifndef SIMPLE_CONSUMER_IDL
+#define SIMPLE_CONSUMER_IDL
+
+#include "SimpleCommon.idl"
+#include <Components.idl>
+
+module Simple
+{
+ component SimpleConsumer
+ {
+ consumes Hello hello_;
+ };
+
+ home SimpleConsumerHome manages SimpleConsumer
+ {
+ };
+};
+
+#endif /*SIMPLE_CONSUMER_IDL*/
diff --git a/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleConsumer.mpc b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleConsumer.mpc
new file mode 100644
index 00000000000..c63d06d2b98
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleConsumer.mpc
@@ -0,0 +1,110 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl -p SimpleCommon SimpleConsumer"
+
+project(SimpleCommon_SimpleConsumer_idl_gen) : componentidldefaults {
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=SIMPLECONSUMER_STUB_Export \
+ -Wb,stub_export_include=SimpleConsumer_stub_export.h \
+ -Wb,skel_export_macro=SIMPLECONSUMER_SVNT_Export \
+ -Wb,skel_export_include=SimpleConsumer_svnt_export.h \
+ -Wb,exec_export_macro=SIMPLECONSUMER_EXEC_Export \
+ -Wb,exec_export_include=SimpleConsumer_exec_export.h \
+
+ IDL_Files {
+ SimpleConsumer.idl
+ }
+}
+
+project(SimpleCommon_SimpleConsumer_lem_gen) : ciaoidldefaults {
+ after += SimpleCommon_SimpleConsumer_idl_gen
+ custom_only = 1
+ idlflags += -Wb,export_macro=SIMPLECONSUMER_EXEC_Export \
+ -Wb,export_include=SimpleConsumer_exec_export.h \
+ -SS
+
+ IDL_Files {
+ SimpleConsumerE.idl
+ }
+}
+
+project(SimpleCommon_SimpleConsumer_stub) : ccm_stub {
+ after += SimpleCommon_SimpleConsumer_idl_gen SimpleCommon_stub
+ libs += SimpleCommon_stub
+
+ sharedname = SimpleConsumer_stub
+ dynamicflags = SIMPLECONSUMER_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ SimpleConsumerC.cpp
+ }
+
+ Header_Files {
+ SimpleConsumerC.h
+ SimpleConsumer_stub_export.h
+ }
+
+ Inline_Files {
+ SimpleConsumerC.inl
+ }
+}
+
+project(SimpleCommon_SimpleConsumer_exec) : ciao_executor {
+ after += SimpleCommon_SimpleConsumer_lem_gen SimpleCommon_SimpleConsumer_stub
+ sharedname = SimpleConsumer_exec
+ libs += SimpleConsumer_stub SimpleCommon_stub
+
+ dynamicflags = SIMPLECONSUMER_EXEC_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ SimpleConsumerEC.cpp
+ SimpleConsumer_exec.cpp
+ }
+
+ Header_Files {
+ SimpleConsumerEC.h
+ SimpleConsumer_exec.h
+ SimpleConsumer_exec_export.h
+ }
+
+ Inline_Files {
+ SimpleConsumerEC.inl
+ }
+}
+
+
+project(SimpleCommon_SimpleConsumer_svnt) : ciao_servant {
+ after += SimpleCommon_skel SimpleCommon_SimpleConsumer_exec
+ sharedname = SimpleConsumer_svnt
+ libs += SimpleConsumer_exec \
+ SimpleConsumer_stub \
+ SimpleCommon_skel \
+ SimpleCommon_stub
+
+ dynamicflags = SIMPLECONSUMER_SVNT_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ SimpleConsumerS.cpp
+ SimpleConsumer_svnt.cpp
+ }
+
+ Header_Files {
+ SimpleConsumerS.h
+ SimpleConsumer_svnt.h
+ SimpleConsumer_svnt_export.h
+ }
+
+ Inline_Files {
+ SimpleConsumerS.inl
+ }
+}
+
+
diff --git a/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleConsumer_exec.cpp b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleConsumer_exec.cpp
new file mode 100644
index 00000000000..da1836889c9
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleConsumer_exec.cpp
@@ -0,0 +1,144 @@
+// $Id$
+
+#include "SimpleConsumer_exec.h"
+#include "DAnCE/Logger/Log_Macros.h"
+
+namespace CIAO_Simple_SimpleConsumer_Impl
+{
+ //==================================================================
+ // Component Executor Implementation Class: SimpleConsumer_exec_i
+ //==================================================================
+
+ SimpleConsumer_exec_i::SimpleConsumer_exec_i (void) :
+ pushed_ (false)
+ {
+ DANCE_TRACE ("SimpleConsumer_exec_i::SimpleConsumer_exec_i (void)");
+ }
+
+ SimpleConsumer_exec_i::~SimpleConsumer_exec_i (void)
+ {
+ DANCE_TRACE ("SimpleConsumer_exec_i::~SimpleConsumer_exec_i (void)");
+ }
+
+ // Supported or inherited operations.
+
+ // Attribute operations.
+
+ // Port operations.
+
+ void
+ SimpleConsumer_exec_i::push_hello_ (
+ ::Simple::Hello * ev )
+ {
+ DANCE_TRACE ("SimpleConsumer_exec_i::push_hello_ ()");
+ // Your code here.
+
+ this->pushed_ = true;
+ ACE_DEBUG ((LM_EMERGENCY, "SimpleConsumer_exec_i::push_hello_ - "
+ "Received hello event, value is %s\n", ev->hello_ ()));
+ }
+
+ // Operations from Components::SessionComponent
+
+ void
+ SimpleConsumer_exec_i::set_session_context (
+ ::Components::SessionContext_ptr ctx)
+ {
+ DANCE_TRACE ("SimpleConsumer_exec_i::set_session_context ()");
+
+ this->context_ =
+ ::Simple::CCM_SimpleConsumer_Context::_narrow (ctx);
+
+ if (CORBA::is_nil (this->context_.in ()))
+ {
+ throw ::CORBA::INTERNAL ();
+ }
+ }
+
+ void
+ SimpleConsumer_exec_i::configuration_complete ()
+ {
+ DANCE_TRACE ("SimpleConsumer_exec_i::configuration_complete ()");
+ // Your code here.
+ }
+
+ void
+ SimpleConsumer_exec_i::ccm_activate ()
+ {
+ DANCE_TRACE ("SimpleConsumer_exec_i::ccm_activate ()");
+ // Your code here.
+ }
+
+ void
+ SimpleConsumer_exec_i::ccm_passivate ()
+ {
+ DANCE_TRACE ("SimpleConsumer_exec_i::ccm_passivate ()");
+ // Your code here.
+ }
+
+ void
+ SimpleConsumer_exec_i::ccm_remove ()
+ {
+ DANCE_TRACE ("SimpleConsumer_exec_i::ccm_remove ()");
+ if (!pushed_)
+ {
+ ACE_ERROR ((LM_EMERGENCY, "Error: SimpleConsumer didn't get pushed!\n"));
+ }
+ // Your code here.
+ }
+
+ //==================================================================
+ // Home Executor Implementation Class: SimpleConsumerHome_exec_i
+ //==================================================================
+
+ SimpleConsumerHome_exec_i::SimpleConsumerHome_exec_i (void)
+ {
+ DANCE_TRACE ("SimpleConsumerHome_exec_i::SimpleConsumerHome_exec_i (void)");
+ }
+
+ SimpleConsumerHome_exec_i::~SimpleConsumerHome_exec_i (void)
+ {
+ DANCE_TRACE ("SimpleConsumerHome_exec_i::~SimpleConsumerHome_exec_i (void)");
+ }
+
+ // Supported or inherited operations.
+
+ // Home operations.
+
+ // Factory and finder operations.
+
+ // Attribute operations.
+
+ // Implicit operations.
+
+ ::Components::EnterpriseComponent_ptr
+ SimpleConsumerHome_exec_i::create ()
+ {
+ DANCE_TRACE ("SimpleConsumerHome_exec_i::create ()");
+ ::Components::EnterpriseComponent_ptr retval =
+ ::Components::EnterpriseComponent::_nil ();
+
+ ACE_NEW_THROW_EX (
+ retval,
+ SimpleConsumer_exec_i,
+ ::CORBA::NO_MEMORY ());
+
+ return retval;
+ }
+
+ extern "C" SIMPLECONSUMER_EXEC_Export ::Components::HomeExecutorBase_ptr
+ create_Simple_SimpleConsumerHome_Impl (void)
+ {
+ DANCE_TRACE ("create_Simple_SimpleConsumerHome_Impl (void)");
+ ::Components::HomeExecutorBase_ptr retval =
+ ::Components::HomeExecutorBase::_nil ();
+
+ ACE_NEW_RETURN (
+ retval,
+ SimpleConsumerHome_exec_i,
+ ::Components::HomeExecutorBase::_nil ());
+
+ return retval;
+ }
+}
+
diff --git a/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleConsumer_exec.h b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleConsumer_exec.h
new file mode 100644
index 00000000000..d2b0e816302
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleConsumer_exec.h
@@ -0,0 +1,85 @@
+// $Id$
+
+#ifndef CIAO_SIMPLECONSUMER_EXEC_H
+#define CIAO_SIMPLECONSUMER_EXEC_H
+
+#include /**/ "ace/pre.h"
+
+#include "SimpleConsumerEC.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "SimpleConsumer_exec_export.h"
+#include "tao/LocalObject.h"
+
+namespace CIAO_Simple_SimpleConsumer_Impl
+{
+ class SIMPLECONSUMER_EXEC_Export SimpleConsumer_exec_i
+ : public virtual SimpleConsumer_Exec,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ SimpleConsumer_exec_i (void);
+ virtual ~SimpleConsumer_exec_i (void);
+
+ // Supported or inherited operations.
+
+ // Attribute operations.
+
+ // Port operations.
+
+ virtual void
+ push_hello_ (
+ ::Simple::Hello *ev);
+
+ // Operations from Components::SessionComponent
+
+ virtual void
+ set_session_context (
+ ::Components::SessionContext_ptr ctx);
+
+ virtual void configuration_complete ();
+
+ virtual void ccm_activate ();
+
+ virtual void ccm_passivate ();
+
+ virtual void ccm_remove ();
+
+ private:
+ ::Simple::CCM_SimpleConsumer_Context_var context_;
+ bool pushed_;
+ };
+
+ class SIMPLECONSUMER_EXEC_Export SimpleConsumerHome_exec_i
+ : public virtual SimpleConsumerHome_Exec,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ SimpleConsumerHome_exec_i (void);
+ virtual ~SimpleConsumerHome_exec_i (void);
+
+ // Supported or inherited operations.
+
+ // Home operations.
+
+ // Factory and finder operations.
+
+ // Attribute operations.
+
+ // Implicit operations.
+
+ virtual ::Components::EnterpriseComponent_ptr
+ create ();
+ };
+
+ extern "C" SIMPLECONSUMER_EXEC_Export ::Components::HomeExecutorBase_ptr
+ create_Simple_SimpleConsumerHome_Impl (void);
+}
+
+#include /**/ "ace/post.h"
+
+#endif /* CIAO_SIMPLECONSUMER_EXEC_H */
+
diff --git a/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleEmitter.idl b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleEmitter.idl
new file mode 100644
index 00000000000..37431ca8134
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleEmitter.idl
@@ -0,0 +1,21 @@
+// $Id$
+
+#ifndef SIMPLE_EMITTER_IDL
+#define SIMPLE_EMITTER_IDL
+
+#include "SimpleCommon.idl"
+#include "Components.idl"
+
+module Simple
+{
+ component SimpleEmitter
+ {
+ emits Hello hello;
+ };
+
+ home SimpleEmitterHome manages SimpleEmitter
+ {
+ };
+};
+
+#endif /*SIMPLE_EMITTER_IDL*/
diff --git a/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleEmitter.mpc b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleEmitter.mpc
new file mode 100644
index 00000000000..62f942a8498
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleEmitter.mpc
@@ -0,0 +1,110 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl -p SimpleCommon SimpleEmitter"
+
+project(SimpleCommon_SimpleEmitter_idl_gen) : componentidldefaults {
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=SIMPLEEMITTER_STUB_Export \
+ -Wb,stub_export_include=SimpleEmitter_stub_export.h \
+ -Wb,skel_export_macro=SIMPLEEMITTER_SVNT_Export \
+ -Wb,skel_export_include=SimpleEmitter_svnt_export.h \
+ -Wb,exec_export_macro=SIMPLEEMITTER_EXEC_Export \
+ -Wb,exec_export_include=SimpleEmitter_exec_export.h \
+
+ IDL_Files {
+ SimpleEmitter.idl
+ }
+}
+
+project(SimpleCommon_SimpleEmitter_lem_gen) : ciaoidldefaults {
+ after += SimpleCommon_SimpleEmitter_idl_gen
+ custom_only = 1
+ idlflags += -Wb,export_macro=SIMPLEEMITTER_EXEC_Export \
+ -Wb,export_include=SimpleEmitter_exec_export.h \
+ -SS
+
+ IDL_Files {
+ SimpleEmitterE.idl
+ }
+}
+
+project(SimpleCommon_SimpleEmitter_stub) : ccm_stub {
+ after += SimpleCommon_SimpleEmitter_idl_gen SimpleCommon_stub
+ libs += SimpleCommon_stub
+
+ sharedname = SimpleEmitter_stub
+ dynamicflags = SIMPLEEMITTER_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ SimpleEmitterC.cpp
+ }
+
+ Header_Files {
+ SimpleEmitterC.h
+ SimpleEmitter_stub_export.h
+ }
+
+ Inline_Files {
+ SimpleEmitterC.inl
+ }
+}
+
+project(SimpleCommon_SimpleEmitter_exec) : ciao_executor {
+ after += SimpleCommon_SimpleEmitter_lem_gen SimpleCommon_SimpleEmitter_stub
+ sharedname = SimpleEmitter_exec
+ libs += SimpleEmitter_stub SimpleCommon_stub
+
+ dynamicflags = SIMPLEEMITTER_EXEC_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ SimpleEmitterEC.cpp
+ SimpleEmitter_exec.cpp
+ }
+
+ Header_Files {
+ SimpleEmitterEC.h
+ SimpleEmitter_exec.h
+ SimpleEmitter_exec_export.h
+ }
+
+ Inline_Files {
+ SimpleEmitterEC.inl
+ }
+}
+
+
+project(SimpleCommon_SimpleEmitter_svnt) : ciao_servant {
+ after += SimpleCommon_skel SimpleCommon_SimpleEmitter_exec
+ sharedname = SimpleEmitter_svnt
+ libs += SimpleEmitter_exec \
+ SimpleEmitter_stub \
+ SimpleCommon_skel \
+ SimpleCommon_stub
+
+ dynamicflags = SIMPLEEMITTER_SVNT_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ SimpleEmitterS.cpp
+ SimpleEmitter_svnt.cpp
+ }
+
+ Header_Files {
+ SimpleEmitterS.h
+ SimpleEmitter_svnt.h
+ SimpleEmitter_svnt_export.h
+ }
+
+ Inline_Files {
+ SimpleEmitterS.inl
+ }
+}
+
+
diff --git a/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleEmitter_exec.cpp b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleEmitter_exec.cpp
new file mode 100644
index 00000000000..a650d1f3d19
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleEmitter_exec.cpp
@@ -0,0 +1,131 @@
+// $Id$
+
+#include "SimpleEmitter_exec.h"
+#include "DAnCE/Logger/Log_Macros.h"
+
+namespace CIAO_Simple_SimpleEmitter_Impl
+{
+ //==================================================================
+ // Component Executor Implementation Class: SimpleEmitter_exec_i
+ //==================================================================
+
+ SimpleEmitter_exec_i::SimpleEmitter_exec_i (void)
+ {
+ DANCE_TRACE ("SimpleEmitter_exec_i::SimpleEmitter_exec_i (void)");
+ }
+
+ SimpleEmitter_exec_i::~SimpleEmitter_exec_i (void)
+ {
+ DANCE_TRACE ("SimpleEmitter_exec_i::~SimpleEmitter_exec_i (void)");
+ }
+
+ // Supported or inherited operations.
+
+ // Attribute operations.
+
+ // Port operations.
+
+ // Operations from Components::SessionComponent
+
+ void
+ SimpleEmitter_exec_i::set_session_context (
+ ::Components::SessionContext_ptr ctx)
+ {
+ DANCE_TRACE ("SimpleEmitter_exec_i::set_session_context ()");
+ this->context_ =
+ ::Simple::CCM_SimpleEmitter_Context::_narrow (ctx);
+
+ if (CORBA::is_nil (this->context_.in ()))
+ {
+ throw ::CORBA::INTERNAL ();
+ }
+ }
+
+ void
+ SimpleEmitter_exec_i::configuration_complete ()
+ {
+ DANCE_TRACE ("SimpleEmitter_exec_i::configuration_complete ()");
+ // Your code here.
+ }
+
+ void
+ SimpleEmitter_exec_i::ccm_activate ()
+ {
+ DANCE_TRACE ("SimpleEmitter_exec_i::ccm_activate ()");
+ // Your code here.
+
+ ::Simple::Hello_var hello = new OBV_Simple::Hello ("Test successful, hello from SimpleEmitter_exec_i");
+
+ this->context_->push_hello (hello._retn ());
+ }
+
+ void
+ SimpleEmitter_exec_i::ccm_passivate ()
+ {
+ DANCE_TRACE ("SimpleEmitter_exec_i::ccm_passivate ()");
+ // Your code here.
+ }
+
+ void
+ SimpleEmitter_exec_i::ccm_remove ()
+ {
+ DANCE_TRACE ("SimpleEmitter_exec_i::ccm_remove ()");
+ // Your code here.
+ }
+
+ //==================================================================
+ // Home Executor Implementation Class: SimpleEmitterHome_exec_i
+ //==================================================================
+
+ SimpleEmitterHome_exec_i::SimpleEmitterHome_exec_i (void)
+ {
+ DANCE_TRACE ("SimpleEmitterHome_exec_i::SimpleEmitterHome_exec_i (void)");
+ }
+
+ SimpleEmitterHome_exec_i::~SimpleEmitterHome_exec_i (void)
+ {
+ DANCE_TRACE ("SimpleEmitterHome_exec_i::~SimpleEmitterHome_exec_i (void)");
+ }
+
+ // Supported or inherited operations.
+
+ // Home operations.
+
+ // Factory and finder operations.
+
+ // Attribute operations.
+
+ // Implicit operations.
+
+ ::Components::EnterpriseComponent_ptr
+ SimpleEmitterHome_exec_i::create ()
+ {
+ DANCE_TRACE ("SimpleEmitterHome_exec_i::create ()");
+
+ ::Components::EnterpriseComponent_ptr retval =
+ ::Components::EnterpriseComponent::_nil ();
+
+ ACE_NEW_THROW_EX (
+ retval,
+ SimpleEmitter_exec_i,
+ ::CORBA::NO_MEMORY ());
+
+ return retval;
+ }
+
+ extern "C" SIMPLEEMITTER_EXEC_Export ::Components::HomeExecutorBase_ptr
+ create_Simple_SimpleEmitterHome_Impl (void)
+ {
+ DANCE_TRACE ("create_Simple_SimpleEmitterHome_Impl (void)");
+ ::Components::HomeExecutorBase_ptr retval =
+ ::Components::HomeExecutorBase::_nil ();
+
+ ACE_NEW_RETURN (
+ retval,
+ SimpleEmitterHome_exec_i,
+ ::Components::HomeExecutorBase::_nil ());
+
+ return retval;
+ }
+}
+
diff --git a/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleEmitter_exec.h b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleEmitter_exec.h
new file mode 100644
index 00000000000..0501bfb6977
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleEmitter_exec.h
@@ -0,0 +1,80 @@
+// $Id$
+
+#ifndef CIAO_SIMPLEEMITTER_EXEC_H
+#define CIAO_SIMPLEEMITTER_EXEC_H
+
+#include /**/ "ace/pre.h"
+
+#include "SimpleEmitterEC.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "SimpleEmitter_exec_export.h"
+#include "tao/LocalObject.h"
+
+namespace CIAO_Simple_SimpleEmitter_Impl
+{
+ class SIMPLEEMITTER_EXEC_Export SimpleEmitter_exec_i
+ : public virtual SimpleEmitter_Exec,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ SimpleEmitter_exec_i (void);
+ virtual ~SimpleEmitter_exec_i (void);
+
+ // Supported or inherited operations.
+
+ // Attribute operations.
+
+ // Port operations.
+
+ // Operations from Components::SessionComponent
+
+ virtual void
+ set_session_context (
+ ::Components::SessionContext_ptr ctx);
+
+ virtual void configuration_complete ();
+
+ virtual void ccm_activate ();
+
+ virtual void ccm_passivate ();
+
+ virtual void ccm_remove ();
+
+ private:
+ ::Simple::CCM_SimpleEmitter_Context_var context_;
+ };
+
+ class SIMPLEEMITTER_EXEC_Export SimpleEmitterHome_exec_i
+ : public virtual SimpleEmitterHome_Exec,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ SimpleEmitterHome_exec_i (void);
+ virtual ~SimpleEmitterHome_exec_i (void);
+
+ // Supported or inherited operations.
+
+ // Home operations.
+
+ // Factory and finder operations.
+
+ // Attribute operations.
+
+ // Implicit operations.
+
+ virtual ::Components::EnterpriseComponent_ptr
+ create ();
+ };
+
+ extern "C" SIMPLEEMITTER_EXEC_Export ::Components::HomeExecutorBase_ptr
+ create_Simple_SimpleEmitterHome_Impl (void);
+}
+
+#include /**/ "ace/post.h"
+
+#endif /* CIAO_SIMPLEEMITTER_EXEC_H */
+
diff --git a/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleFailure.idl b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleFailure.idl
new file mode 100644
index 00000000000..ac588ab0db6
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleFailure.idl
@@ -0,0 +1,28 @@
+// $Id$
+
+#ifndef SIMPLE_FAILURE_IDL
+#define SIMPLE_FAILURE_IDL
+
+#include "Components.idl"
+
+module Simple
+{
+ enum FailureType {
+ NO_FAILURE,
+ AT_STARTUP,
+ AT_ACTIVATE,
+ AT_PASSIVATE,
+ AT_REMOVE
+ };
+
+ component SimpleFailure
+ {
+ attribute FailureType type_attr;
+ };
+
+ home SimpleFailureHome manages SimpleFailure
+ {
+ };
+};
+
+#endif /*SIMPLE_ATTRIBUTE_IDL*/
diff --git a/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleFailure.mpc b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleFailure.mpc
new file mode 100644
index 00000000000..c5deba22e18
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleFailure.mpc
@@ -0,0 +1,108 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl SimpleFailure"
+
+project(SimpleFailure_idl_gen) : componentidldefaults {
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=SIMPLEATTRIBUTE_STUB_Export \
+ -Wb,stub_export_include=SimpleFailure_stub_export.h \
+ -Wb,skel_export_macro=SIMPLEATTRIBUTE_SVNT_Export \
+ -Wb,skel_export_include=SimpleFailure_svnt_export.h \
+ -Wb,exec_export_macro=SIMPLEATTRIBUTE_EXEC_Export \
+ -Wb,exec_export_include=SimpleFailure_exec_export.h
+
+ IDL_Files {
+ SimpleFailure.idl
+ }
+}
+
+project(SimpleFailure_lem_gen) : ciaoidldefaults {
+ after += SimpleFailure_idl_gen
+ custom_only = 1
+ idlflags += -Wb,export_macro=SIMPLEATTRIBUTE_EXEC_Export \
+ -Wb,export_include=SimpleFailure_exec_export.h \
+ -SS
+
+ IDL_Files {
+ SimpleFailureE.idl
+ }
+}
+
+project(SimpleFailure_stub) : ccm_stub {
+ after += SimpleFailure_idl_gen
+ libs +=
+
+ sharedname = SimpleFailure_stub
+ dynamicflags = SIMPLEATTRIBUTE_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ SimpleFailureC.cpp
+ }
+
+ Header_Files {
+ SimpleFailureC.h
+ SimpleFailure_stub_export.h
+ }
+
+ Inline_Files {
+ SimpleFailureC.inl
+ }
+}
+
+project(SimpleFailure_exec) : ciao_executor {
+ after += SimpleFailure_lem_gen SimpleFailure_stub
+ sharedname = SimpleFailure_exec
+ libs += SimpleFailure_stub
+
+ dynamicflags = SIMPLEATTRIBUTE_EXEC_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ SimpleFailureEC.cpp
+ SimpleFailure_exec.cpp
+ }
+
+ Header_Files {
+ SimpleFailureEC.h
+ SimpleFailure_exec.h
+ SimpleFailure_exec_export.h
+ }
+
+ Inline_Files {
+ SimpleFailureEC.inl
+ }
+}
+
+
+project(SimpleFailure_svnt) : ciao_servant {
+ after += SimpleFailure_exec
+ sharedname = SimpleFailure_svnt
+ libs += SimpleFailure_exec \
+ SimpleFailure_stub
+
+ dynamicflags = SIMPLEATTRIBUTE_SVNT_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ SimpleFailureS.cpp
+ SimpleFailure_svnt.cpp
+ }
+
+ Header_Files {
+ SimpleFailureS.h
+ SimpleFailure_svnt.h
+ SimpleFailure_svnt_export.h
+ }
+
+ Inline_Files {
+ SimpleFailureS.inl
+ }
+}
+
+
diff --git a/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleFailure_exec.cpp b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleFailure_exec.cpp
new file mode 100644
index 00000000000..2fef058d74f
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleFailure_exec.cpp
@@ -0,0 +1,165 @@
+// $Id$
+
+#include "SimpleFailure_exec.h"
+#include "DAnCE/Logger/Log_Macros.h"
+
+namespace CIAO_Simple_SimpleFailure_Impl
+{
+ //==================================================================
+ // Component Executor Implementation Class: SimpleFailure_exec_i
+ //==================================================================
+
+ SimpleFailure_exec_i::SimpleFailure_exec_i (void)
+ : type_ (::Simple::NO_FAILURE)
+ {
+ }
+
+ SimpleFailure_exec_i::~SimpleFailure_exec_i (void)
+ {
+ }
+
+ // Supported or inherited operations.
+
+ // Attribute operations.
+
+ ::Simple::FailureType
+ SimpleFailure_exec_i::type_attr (void)
+ {
+ return this->type_;
+ }
+
+ void
+ SimpleFailure_exec_i::type_attr (
+ ::Simple::FailureType type)
+ {
+ this->type_ = type;
+ }
+
+ // Port operations.
+
+ // Operations from Components::SessionComponent
+
+ void
+ SimpleFailure_exec_i::set_session_context (
+ ::Components::SessionContext_ptr ctx)
+ {
+ this->context_ =
+ ::Simple::CCM_SimpleFailure_Context::_narrow (ctx);
+
+ if (CORBA::is_nil (this->context_.in ()))
+ {
+ throw ::CORBA::INTERNAL ();
+ }
+ }
+
+ void
+ SimpleFailure_exec_i::configuration_complete ()
+ {
+ // Your code here.
+ if (this->type_ == ::Simple::AT_STARTUP)
+ {
+ ACE_ERROR ((LM_ERROR, "SimpleFailure_exec_i::configuration_complete - "
+ "Configured failure!\n"));
+
+ throw ::CORBA::INTERNAL ();
+ }
+ ACE_DEBUG ((LM_INFO, "SimpleFailure_exec_i::configuration_complete - "
+ "Successfully configured!\n"));
+ }
+
+ void
+ SimpleFailure_exec_i::ccm_activate ()
+ {
+ // Your code here.
+ if (this->type_ == ::Simple::AT_ACTIVATE)
+ {
+ ACE_ERROR ((LM_ERROR, "SimpleFailure_exec_i::ccm_activate - "
+ "Configured failure!\n"));
+
+ throw ::CORBA::INTERNAL ();
+ }
+ ACE_DEBUG ((LM_INFO, "SimpleFailure_exec_i::ccm_activate - "
+ "Successfully activated!\n"));
+ }
+
+ void
+ SimpleFailure_exec_i::ccm_passivate ()
+ {
+ // Your code here.
+ if (this->type_ == ::Simple::AT_PASSIVATE)
+ {
+ ACE_ERROR ((LM_ERROR, "SimpleFailure_exec_i::ccm_passivate - "
+ "Configured failure!\n"));
+
+ throw ::CORBA::INTERNAL ();
+ }
+ ACE_DEBUG ((LM_INFO, "SimpleFailure_exec_i::ccm_passivate - "
+ "Successfully deactivated!\n"));
+ }
+
+ void
+ SimpleFailure_exec_i::ccm_remove ()
+ {
+ // Your code here.
+ if (this->type_ == ::Simple::AT_REMOVE)
+ {
+ ACE_ERROR ((LM_ERROR, "SimpleFailure_exec_i::ccm_remove - "
+ "Configured failure!\n"));
+
+ throw ::CORBA::INTERNAL ();
+ }
+ ACE_DEBUG ((LM_INFO, "SimpleFailure_exec_i::ccm_remove - "
+ "Successfully removed!\n"));
+ }
+
+ //==================================================================
+ // Home Executor Implementation Class: SimpleFailureHome_exec_i
+ //==================================================================
+
+ SimpleFailureHome_exec_i::SimpleFailureHome_exec_i (void)
+ {
+ }
+
+ SimpleFailureHome_exec_i::~SimpleFailureHome_exec_i (void)
+ {
+ }
+
+ // Supported or inherited operations.
+
+ // Home operations.
+
+ // Factory and finder operations.
+
+ // Attribute operations.
+
+ // Implicit operations.
+
+ ::Components::EnterpriseComponent_ptr
+ SimpleFailureHome_exec_i::create ()
+ {
+ ::Components::EnterpriseComponent_ptr retval =
+ ::Components::EnterpriseComponent::_nil ();
+
+ ACE_NEW_THROW_EX (
+ retval,
+ SimpleFailure_exec_i,
+ ::CORBA::NO_MEMORY ());
+
+ return retval;
+ }
+
+ extern "C" SIMPLEATTRIBUTE_EXEC_Export ::Components::HomeExecutorBase_ptr
+ create_Simple_SimpleFailureHome_Impl (void)
+ {
+ ::Components::HomeExecutorBase_ptr retval =
+ ::Components::HomeExecutorBase::_nil ();
+
+ ACE_NEW_RETURN (
+ retval,
+ SimpleFailureHome_exec_i,
+ ::Components::HomeExecutorBase::_nil ());
+
+ return retval;
+ }
+}
+
diff --git a/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleFailure_exec.h b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleFailure_exec.h
new file mode 100644
index 00000000000..35d7f2211d5
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleFailure_exec.h
@@ -0,0 +1,89 @@
+// $Id$
+
+#ifndef CIAO_SIMPLEFAILURE_EXEC_H
+#define CIAO_SIMPLEFAILURE_EXEC_H
+
+#include /**/ "ace/pre.h"
+
+#include "SimpleFailureEC.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "SimpleFailure_exec_export.h"
+#include "tao/LocalObject.h"
+
+namespace CIAO_Simple_SimpleFailure_Impl
+{
+ class SIMPLEATTRIBUTE_EXEC_Export SimpleFailure_exec_i
+ : public virtual SimpleFailure_Exec,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ SimpleFailure_exec_i (void);
+ virtual ~SimpleFailure_exec_i (void);
+
+ // Supported or inherited operations.
+
+ // Attribute operations.
+
+ virtual ::Simple::FailureType
+ type_attr (void);
+
+ virtual void
+ type_attr (
+ ::Simple::FailureType type_attr);
+
+ // Port operations.
+
+ // Operations from Components::SessionComponent
+
+ virtual void
+ set_session_context (
+ ::Components::SessionContext_ptr ctx);
+
+ virtual void configuration_complete ();
+
+ virtual void ccm_activate ();
+
+ virtual void ccm_passivate ();
+
+ virtual void ccm_remove ();
+
+ private:
+ ::Simple::CCM_SimpleFailure_Context_var context_;
+ ::Simple::FailureType type_;
+ };
+
+ class SIMPLEATTRIBUTE_EXEC_Export SimpleFailureHome_exec_i
+ : public virtual SimpleFailureHome_Exec,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ SimpleFailureHome_exec_i (void);
+ virtual ~SimpleFailureHome_exec_i (void);
+
+ // Supported or inherited operations.
+
+ // Home operations.
+
+ // Factory and finder operations.
+
+ // Attribute operations.
+
+ // Implicit operations.
+
+ virtual ::Components::EnterpriseComponent_ptr
+ create ();
+ private:
+ };
+
+ extern "C" SIMPLEATTRIBUTE_EXEC_Export ::Components::HomeExecutorBase_ptr
+ create_Simple_SimpleFailureHome_Impl (void);
+}
+
+#include /**/ "ace/post.h"
+
+#endif /* CIAO_SIMPLEFAILURE_EXEC_H */
+
diff --git a/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleMultipleUser.idl b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleMultipleUser.idl
new file mode 100644
index 00000000000..60aec58f9af
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleMultipleUser.idl
@@ -0,0 +1,21 @@
+// $Id$
+
+#ifndef SIMPLE_MULTIPLEUSER_IDL
+#define SIMPLE_MULTIPLEUSER_IDL
+
+#include "SimpleCommon.idl"
+#include "Components.idl"
+
+module Simple
+{
+ component SimpleMultipleUser
+ {
+ uses multiple Trigger trig;
+ };
+
+ home SimpleMultipleUserHome manages SimpleMultipleUser
+ {
+ };
+};
+
+#endif /*SIMPLE_MULTIPLEUSER_IDL*/
diff --git a/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleMultipleUser.mpc b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleMultipleUser.mpc
new file mode 100644
index 00000000000..b20759b54e0
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleMultipleUser.mpc
@@ -0,0 +1,110 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl -p SimpleCommon SimpleMultipleUser"
+
+project(SimpleCom_SimpleMulUser_idl_gen) : componentidldefaults {
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=SIMPLEMULTIPLEUSER_STUB_Export \
+ -Wb,stub_export_include=SimpleMultipleUser_stub_export.h \
+ -Wb,skel_export_macro=SIMPLEMULTIPLEUSER_SVNT_Export \
+ -Wb,skel_export_include=SimpleMultipleUser_svnt_export.h \
+ -Wb,exec_export_macro=SIMPLEMULTIPLEUSER_EXEC_Export \
+ -Wb,exec_export_include=SimpleMultipleUser_exec_export.h \
+
+ IDL_Files {
+ SimpleMultipleUser.idl
+ }
+}
+
+project(SimpleCom_SimpleMulUser_lem_gen) : ciaoidldefaults {
+ after += SimpleCom_SimpleMulUser_idl_gen SimpleCommon_idl_gen
+ custom_only = 1
+ idlflags += -Wb,export_macro=SIMPLEMULTIPLEUSER_EXEC_Export \
+ -Wb,export_include=SimpleMultipleUser_exec_export.h \
+ -SS
+
+ IDL_Files {
+ SimpleMultipleUserE.idl
+ }
+}
+
+project(SimpleCommon_SimpleMultipleUser_stub) : ccm_stub {
+ after += SimpleCommon_stub SimpleCom_SimpleMulUser_idl_gen
+ libs += SimpleCommon_stub
+
+ sharedname = SimpleMultipleUser_stub
+ dynamicflags = SIMPLEMULTIPLEUSER_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ SimpleMultipleUserC.cpp
+ }
+
+ Header_Files {
+ SimpleMultipleUserC.h
+ SimpleMultipleUser_stub_export.h
+ }
+
+ Inline_Files {
+ SimpleMultipleUserC.inl
+ }
+}
+
+project(SimpleCommon_SimpleMultipleUser_exec) : ciao_executor {
+ after += SimpleCom_SimpleMulUser_lem_gen SimpleCommon_SimpleMultipleUser_stub
+ sharedname = SimpleMultipleUser_exec
+ libs += SimpleMultipleUser_stub SimpleCommon_stub
+
+ dynamicflags = SIMPLEMULTIPLEUSER_EXEC_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ SimpleMultipleUserEC.cpp
+ SimpleMultipleUser_exec.cpp
+ }
+
+ Header_Files {
+ SimpleMultipleUserEC.h
+ SimpleMultipleUser_exec.h
+ SimpleMultipleUser_exec_export.h
+ }
+
+ Inline_Files {
+ SimpleMultipleUserEC.inl
+ }
+}
+
+
+project(SimpleCommon_SimpleMultipleUser_svnt) : ciao_servant {
+ after += SimpleCommon_skel SimpleCommon_SimpleMultipleUser_exec
+ sharedname = SimpleMultipleUser_svnt
+ libs += SimpleMultipleUser_exec \
+ SimpleMultipleUser_stub \
+ SimpleCommon_skel \
+ SimpleCommon_stub
+
+ dynamicflags = SIMPLEMULTIPLEUSER_SVNT_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ SimpleMultipleUserS.cpp
+ SimpleMultipleUser_svnt.cpp
+ }
+
+ Header_Files {
+ SimpleMultipleUserS.h
+ SimpleMultipleUser_svnt.h
+ SimpleMultipleUser_svnt_export.h
+ }
+
+ Inline_Files {
+ SimpleMultipleUserS.inl
+ }
+}
+
+
diff --git a/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleMultipleUser_exec.cpp b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleMultipleUser_exec.cpp
new file mode 100644
index 00000000000..a61b791df5b
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleMultipleUser_exec.cpp
@@ -0,0 +1,158 @@
+// $Id$
+
+#include "SimpleMultipleUser_exec.h"
+#include "DAnCE/Logger/Log_Macros.h"
+
+namespace CIAO_Simple_SimpleMultipleUser_Impl
+{
+ //==================================================================
+ // Component Executor Implementation Class: SimpleMultipleUser_exec_i
+ //==================================================================
+
+ SimpleMultipleUser_exec_i::SimpleMultipleUser_exec_i (void)
+ {
+ DANCE_TRACE ("SimpleMultipleUser_exec_i::SimpleMultipleUser_exec_i (void)");
+ }
+
+ SimpleMultipleUser_exec_i::~SimpleMultipleUser_exec_i (void)
+ {
+ DANCE_TRACE ("SimpleMultipleUser_exec_i::~SimpleMultipleUser_exec_i (void)");
+ }
+
+ // Supported or inherited operations.
+
+ // Attribute operations.
+
+ // Port operations.
+
+ // Operations from Components::SessionComponent
+
+ void
+ SimpleMultipleUser_exec_i::set_session_context (
+ ::Components::SessionContext_ptr ctx)
+ {
+ DANCE_TRACE ("SimpleMultipleUser_exec_i::set_session_context ()");
+ this->context_ =
+ ::Simple::CCM_SimpleMultipleUser_Context::_narrow (ctx);
+
+ if (CORBA::is_nil (this->context_.in ()))
+ {
+ throw ::CORBA::INTERNAL ();
+ }
+ }
+
+ void
+ SimpleMultipleUser_exec_i::configuration_complete ()
+ {
+ DANCE_TRACE ("SimpleMultipleUser_exec_i::configuration_complete ()");
+ // Your code here.
+ }
+
+ void
+ SimpleMultipleUser_exec_i::ccm_activate ()
+ {
+ DANCE_TRACE ("SimpleMultipleUser_exec_i::ccm_activate ()");
+
+ ::Simple::SimpleMultipleUser::trigConnections_var conns =
+ this->context_->get_connections_trig ();
+
+ ACE_DEBUG ((LM_NOTICE, "SimpleMultipleUser_exec_i::ccm_activate - "
+ "Got %u connections to my receptacle\n",
+ conns->length ()));
+
+ for (CORBA::ULong i = 0; i < conns->length (); ++i)
+ {
+ try
+ {
+ ACE_DEBUG ((LM_NOTICE, "SimpleMultipleUser_exec_i::ccm_activate - "
+ "Invoking %u'th connection\n", i));
+ ::Simple::Trigger_var trig (conns[i].objref);
+
+ trig->hello ("Test succeeded, hello from SimpleMultipleUser_exec");
+ }
+ catch (const CORBA::Exception &ex)
+ {
+ ACE_ERROR ((LM_ERROR, "SimpleMultipleUser_exec_i::ccm_activate () - "
+ "Caught CORBA exception on %u'th reference, details follow:\n",
+ i));
+ ex._tao_print_exception ("SimpleUser_exec_i::ccm_activate () - ");
+ }
+ catch (...)
+ {
+ ACE_ERROR ((LM_ERROR, "SimpleMultipleUser_exec_i::ccm_activate () - "
+ "Error: Caught unknown exception whilst invoking reference for port trig.\n"));
+ }
+ }
+
+ // Your code here.
+ }
+
+ void
+ SimpleMultipleUser_exec_i::ccm_passivate ()
+ {
+ DANCE_TRACE ("SimpleMultipleUser_exec_i::ccm_passivate ()");
+ // Your code here.
+ }
+
+ void
+ SimpleMultipleUser_exec_i::ccm_remove ()
+ {
+ DANCE_TRACE ("SimpleMultipleUser_exec_i::ccm_remove ()");
+ // Your code here.
+ }
+
+ //==================================================================
+ // Home Executor Implementation Class: SimpleMultipleUserHome_exec_i
+ //==================================================================
+
+ SimpleMultipleUserHome_exec_i::SimpleMultipleUserHome_exec_i (void)
+ {
+ DANCE_TRACE ("SimpleMultipleUserHome_exec_i::SimpleMultipleUserHome_exec_i (void)");
+ }
+
+ SimpleMultipleUserHome_exec_i::~SimpleMultipleUserHome_exec_i (void)
+ {
+ DANCE_TRACE ("SimpleMultipleUserHome_exec_i::~SimpleMultipleUserHome_exec_i (void)");
+ }
+
+ // Supported or inherited operations.
+
+ // Home operations.
+
+ // Factory and finder operations.
+
+ // Attribute operations.
+
+ // Implicit operations.
+
+ ::Components::EnterpriseComponent_ptr
+ SimpleMultipleUserHome_exec_i::create ()
+ {
+ DANCE_TRACE ("SimpleMultipleUserHome_exec_i::create ()");
+ ::Components::EnterpriseComponent_ptr retval =
+ ::Components::EnterpriseComponent::_nil ();
+
+ ACE_NEW_THROW_EX (
+ retval,
+ SimpleMultipleUser_exec_i,
+ ::CORBA::NO_MEMORY ());
+
+ return retval;
+ }
+
+ extern "C" SIMPLEMULTIPLEUSER_EXEC_Export ::Components::HomeExecutorBase_ptr
+ create_Simple_SimpleMultipleUserHome_Impl (void)
+ {
+ DANCE_TRACE ("create_Simple_SimpleMultipleUserHome_Impl (void)");
+ ::Components::HomeExecutorBase_ptr retval =
+ ::Components::HomeExecutorBase::_nil ();
+
+ ACE_NEW_RETURN (
+ retval,
+ SimpleMultipleUserHome_exec_i,
+ ::Components::HomeExecutorBase::_nil ());
+
+ return retval;
+ }
+}
+
diff --git a/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleMultipleUser_exec.h b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleMultipleUser_exec.h
new file mode 100644
index 00000000000..3b61eba9571
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleMultipleUser_exec.h
@@ -0,0 +1,80 @@
+// $Id$
+
+#ifndef CIAO_SIMPLEMULTIPLEUSER_EXEC_H
+#define CIAO_SIMPLEMULTIPLEUSER_EXEC_H
+
+#include /**/ "ace/pre.h"
+
+#include "SimpleMultipleUserEC.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "SimpleMultipleUser_exec_export.h"
+#include "tao/LocalObject.h"
+
+namespace CIAO_Simple_SimpleMultipleUser_Impl
+{
+ class SIMPLEMULTIPLEUSER_EXEC_Export SimpleMultipleUser_exec_i
+ : public virtual SimpleMultipleUser_Exec,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ SimpleMultipleUser_exec_i (void);
+ virtual ~SimpleMultipleUser_exec_i (void);
+
+ // Supported or inherited operations.
+
+ // Attribute operations.
+
+ // Port operations.
+
+ // Operations from Components::SessionComponent
+
+ virtual void
+ set_session_context (
+ ::Components::SessionContext_ptr ctx);
+
+ virtual void configuration_complete ();
+
+ virtual void ccm_activate ();
+
+ virtual void ccm_passivate ();
+
+ virtual void ccm_remove ();
+
+ private:
+ ::Simple::CCM_SimpleMultipleUser_Context_var context_;
+ };
+
+ class SIMPLEMULTIPLEUSER_EXEC_Export SimpleMultipleUserHome_exec_i
+ : public virtual SimpleMultipleUserHome_Exec,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ SimpleMultipleUserHome_exec_i (void);
+ virtual ~SimpleMultipleUserHome_exec_i (void);
+
+ // Supported or inherited operations.
+
+ // Home operations.
+
+ // Factory and finder operations.
+
+ // Attribute operations.
+
+ // Implicit operations.
+
+ virtual ::Components::EnterpriseComponent_ptr
+ create ();
+ };
+
+ extern "C" SIMPLEMULTIPLEUSER_EXEC_Export ::Components::HomeExecutorBase_ptr
+ create_Simple_SimpleMultipleUserHome_Impl (void);
+}
+
+#include /**/ "ace/post.h"
+
+#endif /* CIAO_SIMPLEMULTIPLEUSER_EXEC_H */
+
diff --git a/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleNilFacetProvider.idl b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleNilFacetProvider.idl
new file mode 100644
index 00000000000..7e9b11fe8eb
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleNilFacetProvider.idl
@@ -0,0 +1,23 @@
+// $Id$
+
+#ifndef SIMPLE_PROVIDER_IDL
+#define SIMPLE_PROVIDER_IDL
+
+#include "SimpleCommon.idl"
+#include "Components.idl"
+
+#pragma ciao lem "SimpleNilFacetProviderE.idl"
+
+module Simple
+{
+ component SimpleNilFacetProvider
+ {
+ provides Trigger trig;
+ };
+
+ home SimpleNilFacetProviderHome manages SimpleNilFacetProvider
+ {
+ };
+};
+
+#endif /*SIMPLE_PROVIDER_IDL*/
diff --git a/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleNilFacetProvider.mpc b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleNilFacetProvider.mpc
new file mode 100644
index 00000000000..6862defa599
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleNilFacetProvider.mpc
@@ -0,0 +1,112 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl -p SimpleCommon SimpleNilFacetProvider"
+
+project(SimpleCommon_SNFP_idl_gen) : componentidldefaults {
+ after += SimpleCommon_idl_gen
+ custom_only = 1
+ idlflags += \
+ -Wb,stub_export_macro=SIMPLENILFACETPROVIDER_STUB_Export \
+ -Wb,stub_export_include=SimpleNilFacetProvider_stub_export.h \
+ -Wb,skel_export_macro=SIMPLENILFACETPROVIDER_SVNT_Export \
+ -Wb,skel_export_include=SimpleNilFacetProvider_svnt_export.h \
+ -Wb,exec_export_macro=SIMPLENILFACETPROVIDER_EXEC_Export \
+ -Wb,exec_export_include=SimpleNilFacetProvider_exec_export.h
+
+ IDL_Files {
+ SimpleNilFacetProvider.idl
+ }
+}
+
+project(SimpleCommon_SNFP_lem_gen) : ciaoidldefaults {
+ after += SimpleCommon_SNFP_idl_gen SimpleCommon_idl_gen
+ custom_only = 1
+ idlflags += -Wb,export_macro=SIMPLENILFACETPROVIDER_EXEC_Export \
+ -Wb,export_include=SimpleNilFacetProvider_exec_export.h \
+ -SS
+
+ IDL_Files {
+ SimpleNilFacetProviderE.idl
+ }
+}
+
+project(SimpleCommon_SNFP_stub) : ccm_stub {
+ after += SimpleCommon_SNFP_idl_gen SimpleCommon_stub
+ libs += SimpleCommon_stub
+
+ sharedname = SimpleNilFacetProvider_stub
+ dynamicflags = SIMPLENILFACETPROVIDER_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ SimpleNilFacetProviderC.cpp
+ }
+
+ Header_Files {
+ SimpleNilFacetProviderC.h
+ SimpleNilFacetProvider_stub_export.h
+ }
+
+ Inline_Files {
+ SimpleNilFacetProviderC.inl
+ }
+}
+
+project(SimpleCommon_SNFP_exec) : ciao_executor {
+ after += SimpleCommon_SNFP_lem_gen SimpleCommon_SNFP_stub
+ sharedname = SimpleNilFacetProvider_exec
+ libs += SimpleNilFacetProvider_stub SimpleCommon_stub
+
+ dynamicflags = SIMPLENILFACETPROVIDER_EXEC_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ SimpleNilFacetProviderEC.cpp
+ SimpleNilFacetProvider_exec.cpp
+ }
+
+ Header_Files {
+ SimpleNilFacetProviderEC.h
+ SimpleNilFacetProvider_exec.h
+ SimpleNilFacetProvider_exec_export.h
+ }
+
+ Inline_Files {
+ SimpleNilFacetProviderEC.inl
+ }
+}
+
+
+project(SimpleCommon_SNFP_svnt) : ciao_servant {
+ after += SimpleCommon_skel SimpleCommon_SNFP_exec
+ sharedname = SimpleNilFacetProvider_svnt
+ libs += SimpleNilFacetProvider_exec \
+ SimpleNilFacetProvider_stub \
+ SimpleCommon_skel \
+ SimpleCommon_stub
+
+ dynamicflags = SIMPLENILFACETPROVIDER_SVNT_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ SimpleNilFacetProviderS.cpp
+ SimpleNilFacetProvider_svnt.cpp
+ }
+
+ Header_Files {
+ SimpleNilFacetProviderS.h
+ SimpleNilFacetProvider_svnt.h
+ SimpleNilFacetProvider_svnt_export.h
+ }
+
+ Inline_Files {
+ SimpleNilFacetProviderS.inl
+ }
+}
+
+
diff --git a/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleNilFacetProvider_exec.cpp b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleNilFacetProvider_exec.cpp
new file mode 100644
index 00000000000..5ddbb6691ba
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleNilFacetProvider_exec.cpp
@@ -0,0 +1,160 @@
+// $Id$
+
+#include "SimpleNilFacetProvider_exec.h"
+#include "DAnCE/Logger/Log_Macros.h"
+
+namespace CIAO_Simple_SimpleNilFacetProvider_Impl
+{
+ //==================================================================
+ // Facet Executor Implementation Class: Trigger_exec_i
+ //==================================================================
+
+ Trigger_exec_i::Trigger_exec_i (void)
+ {
+ DANCE_TRACE ("Trigger_exec_i::Trigger_exec_i (void)");
+ }
+
+ Trigger_exec_i::~Trigger_exec_i (void)
+ {
+ DANCE_TRACE ("Trigger_exec_i::~Trigger_exec_i (void)");
+ }
+
+ // Operations from ::Simple::Trigger
+
+ void
+ Trigger_exec_i::hello (
+ const char * hello )
+ {
+ DANCE_TRACE ("Trigger_exec_i::hello ()");
+ // Your code here.
+ ACE_DEBUG ((LM_EMERGENCY, "Trigger_exec_i::hello - "
+ "Got the following information from trig port: %C\n",
+ hello));
+ }
+
+ //==================================================================
+ // Component Executor Implementation Class: SimpleNilFacetProvider_exec_i
+ //==================================================================
+
+ SimpleNilFacetProvider_exec_i::SimpleNilFacetProvider_exec_i (void)
+ {
+ DANCE_TRACE ("SimpleNilFacetProvider_exec_i::SimpleNilFacetProvider_exec_i (void)");
+ }
+
+ SimpleNilFacetProvider_exec_i::~SimpleNilFacetProvider_exec_i (void)
+ {
+ DANCE_TRACE ("SimpleNilFacetProvider_exec_i::~SimpleNilFacetProvider_exec_i (void)");
+ }
+
+ // Supported or inherited operations.
+
+ // Attribute operations.
+
+ // Port operations.
+
+ ::Simple::CCM_Trigger_ptr
+ SimpleNilFacetProvider_exec_i::get_trig ()
+ {
+ DANCE_TRACE ("SimpleNilFacetProvider_exec_i::get_trig ()");
+ return ::Simple::CCM_Trigger::_nil ();
+ }
+
+ // Operations from Components::SessionComponent
+
+ void
+ SimpleNilFacetProvider_exec_i::set_session_context (
+ ::Components::SessionContext_ptr ctx)
+ {
+ DANCE_TRACE ("SimpleNilFacetProvider_exec_i::set_session_context ()");
+ this->context_ =
+ ::Simple::CCM_SimpleNilFacetProvider_Context::_narrow (ctx);
+
+ if (CORBA::is_nil (this->context_.in ()))
+ {
+ throw ::CORBA::INTERNAL ();
+ }
+ }
+
+ void
+ SimpleNilFacetProvider_exec_i::configuration_complete ()
+ {
+ DANCE_TRACE ("SimpleNilFacetProvider_exec_i::configuration_complete ()");
+ // Your code here.
+ }
+
+ void
+ SimpleNilFacetProvider_exec_i::ccm_activate ()
+ {
+ DANCE_TRACE ("SimpleNilFacetProvider_exec_i::ccm_activate ()");
+ // Your code here.
+ }
+
+ void
+ SimpleNilFacetProvider_exec_i::ccm_passivate ()
+ {
+ DANCE_TRACE ("SimpleNilFacetProvider_exec_i::ccm_passivate ()");
+ // Your code here.
+ }
+
+ void
+ SimpleNilFacetProvider_exec_i::ccm_remove ()
+ {
+ DANCE_TRACE ("SimpleNilFacetProvider_exec_i::ccm_remove ()");
+ // Your code here.
+ }
+
+ //==================================================================
+ // Home Executor Implementation Class: SimpleNilFacetProviderHome_exec_i
+ //==================================================================
+
+ SimpleNilFacetProviderHome_exec_i::SimpleNilFacetProviderHome_exec_i (void)
+ {
+ DANCE_TRACE ("SimpleNilFacetProviderHome_exec_i::SimpleNilFacetProviderHome_exec_i (void)");
+ }
+
+ SimpleNilFacetProviderHome_exec_i::~SimpleNilFacetProviderHome_exec_i (void)
+ {
+ DANCE_TRACE ("SimpleNilFacetProviderHome_exec_i::~SimpleNilFacetProviderHome_exec_i (void)");
+ }
+
+ // Supported or inherited operations.
+
+ // Home operations.
+
+ // Factory and finder operations.
+
+ // Attribute operations.
+
+ // Implicit operations.
+
+ ::Components::EnterpriseComponent_ptr
+ SimpleNilFacetProviderHome_exec_i::create ()
+ {
+ DANCE_TRACE ("SimpleNilFacetProviderHome_exec_i::create ()");
+ ::Components::EnterpriseComponent_ptr retval =
+ ::Components::EnterpriseComponent::_nil ();
+
+ ACE_NEW_THROW_EX (
+ retval,
+ SimpleNilFacetProvider_exec_i,
+ ::CORBA::NO_MEMORY ());
+
+ return retval;
+ }
+
+ extern "C" SIMPLENILFACETPROVIDER_EXEC_Export ::Components::HomeExecutorBase_ptr
+ create_Simple_SimpleNilFacetProviderHome_Impl (void)
+ {
+ DANCE_TRACE ("create_Simple_SimpleNilFacetProviderHome_Impl (void)");
+ ::Components::HomeExecutorBase_ptr retval =
+ ::Components::HomeExecutorBase::_nil ();
+
+ ACE_NEW_RETURN (
+ retval,
+ SimpleNilFacetProviderHome_exec_i,
+ ::Components::HomeExecutorBase::_nil ());
+
+ return retval;
+ }
+}
+
diff --git a/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleNilFacetProvider_exec.h b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleNilFacetProvider_exec.h
new file mode 100644
index 00000000000..8e2525029d2
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleNilFacetProvider_exec.h
@@ -0,0 +1,98 @@
+// $Id$
+
+#ifndef CIAO_SIMPLENILFACETPROVIDER_EXEC_H
+#define CIAO_SIMPLENILFACETPROVIDER_EXEC_H
+
+#include /**/ "ace/pre.h"
+
+#include "SimpleNilFacetProviderEC.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "SimpleNilFacetProvider_exec_export.h"
+#include "tao/LocalObject.h"
+
+namespace CIAO_Simple_SimpleNilFacetProvider_Impl
+{
+ class SIMPLENILFACETPROVIDER_EXEC_Export Trigger_exec_i
+ : public virtual ::Simple::CCM_Trigger,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ Trigger_exec_i (void);
+ virtual ~Trigger_exec_i (void);
+
+ // Operations from ::Simple::Trigger
+
+ virtual void
+ hello (
+ const char * hello);
+ };
+
+ class SIMPLENILFACETPROVIDER_EXEC_Export SimpleNilFacetProvider_exec_i
+ : public virtual SimpleNilFacetProvider_Exec,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ SimpleNilFacetProvider_exec_i (void);
+ virtual ~SimpleNilFacetProvider_exec_i (void);
+
+ // Supported or inherited operations.
+
+ // Attribute operations.
+
+ // Port operations.
+
+ virtual ::Simple::CCM_Trigger_ptr
+ get_trig ();
+
+ // Operations from Components::SessionComponent
+
+ virtual void
+ set_session_context (
+ ::Components::SessionContext_ptr ctx);
+
+ virtual void configuration_complete ();
+
+ virtual void ccm_activate ();
+
+ virtual void ccm_passivate ();
+
+ virtual void ccm_remove ();
+
+ private:
+ ::Simple::CCM_SimpleNilFacetProvider_Context_var context_;
+ };
+
+ class SIMPLENILFACETPROVIDER_EXEC_Export SimpleNilFacetProviderHome_exec_i
+ : public virtual SimpleNilFacetProviderHome_Exec,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ SimpleNilFacetProviderHome_exec_i (void);
+ virtual ~SimpleNilFacetProviderHome_exec_i (void);
+
+ // Supported or inherited operations.
+
+ // Home operations.
+
+ // Factory and finder operations.
+
+ // Attribute operations.
+
+ // Implicit operations.
+
+ virtual ::Components::EnterpriseComponent_ptr
+ create ();
+ };
+
+ extern "C" SIMPLENILFACETPROVIDER_EXEC_Export ::Components::HomeExecutorBase_ptr
+ create_Simple_SimpleNilFacetProviderHome_Impl (void);
+}
+
+#include /**/ "ace/post.h"
+
+#endif /* CIAO_SIMPLENILFACETPROVIDER_EXEC_H */
+
diff --git a/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleNilFacetUser.idl b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleNilFacetUser.idl
new file mode 100644
index 00000000000..dde46667e8c
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleNilFacetUser.idl
@@ -0,0 +1,21 @@
+// $Id$
+
+#ifndef SIMPLE_USER_IDL
+#define SIMPLE_USER_IDL
+
+#include "SimpleCommon.idl"
+#include "Components.idl"
+
+module Simple
+{
+ component SimpleNilFacetUser
+ {
+ uses Trigger trig;
+ };
+
+ home SimpleNilFacetUserHome manages SimpleNilFacetUser
+ {
+ };
+};
+
+#endif /*SIMPLE_USER_IDL*/
diff --git a/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleNilFacetUser.mpc b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleNilFacetUser.mpc
new file mode 100644
index 00000000000..1dd5c04b006
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleNilFacetUser.mpc
@@ -0,0 +1,111 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl -p SimpleCommon SimpleNilFacetUser"
+
+project(SimpleCommon_SNFU_idl_gen) : componentidldefaults {
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=SIMPLENILFACETUSER_STUB_Export \
+ -Wb,stub_export_include=SimpleNilFacetUser_stub_export.h \
+ -Wb,skel_export_macro=SIMPLENILFACETUSER_SVNT_Export \
+ -Wb,skel_export_include=SimpleNilFacetUser_svnt_export.h \
+ -Wb,exec_export_macro=SIMPLENILFACETUSER_EXEC_Export \
+ -Wb,exec_export_include=SimpleNilFacetUser_exec_export.h \
+ -Gsv
+
+ IDL_Files {
+ SimpleNilFacetUser.idl
+ }
+}
+
+project(SimpleCommon_SNFU_lem_gen) : ciaoidldefaults {
+ after += SimpleCommon_SNFU_idl_gen
+ custom_only = 1
+ idlflags += -Wb,export_macro=SIMPLENILFACETUSER_EXEC_Export \
+ -Wb,export_include=SimpleNilFacetUser_exec_export.h \
+ -SS
+
+ IDL_Files {
+ SimpleNilFacetUserE.idl
+ }
+}
+
+project(SimpleCommon_SNFU_stub) : ccm_stub {
+ after += SimpleCommon_SNFU_idl_gen SimpleCommon_stub
+ libs += SimpleCommon_stub
+
+ sharedname = SimpleNilFacetUser_stub
+ dynamicflags = SIMPLENILFACETUSER_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ SimpleNilFacetUserC.cpp
+ }
+
+ Header_Files {
+ SimpleNilFacetUserC.h
+ SimpleNilFacetUser_stub_export.h
+ }
+
+ Inline_Files {
+ SimpleNilFacetUserC.inl
+ }
+}
+
+project(SimpleCommon_SNFU_exec) : ciao_executor {
+ after += SimpleCommon_SNFU_lem_gen SimpleCommon_SNFU_stub
+ sharedname = SimpleNilFacetUser_exec
+ libs += SimpleNilFacetUser_stub SimpleCommon_stub
+
+ dynamicflags = SIMPLENILFACETUSER_EXEC_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ SimpleNilFacetUserEC.cpp
+ SimpleNilFacetUser_exec.cpp
+ }
+
+ Header_Files {
+ SimpleNilFacetUserEC.h
+ SimpleNilFacetUser_exec.h
+ SimpleNilFacetUser_exec_export.h
+ }
+
+ Inline_Files {
+ SimpleNilFacetUserEC.inl
+ }
+}
+
+
+project(SimpleCommon_SNFU_svnt) : ciao_servant {
+ after += SimpleCommon_skel SimpleCommon_SNFU_exec
+ sharedname = SimpleNilFacetUser_svnt
+ libs += SimpleNilFacetUser_exec \
+ SimpleNilFacetUser_stub \
+ SimpleCommon_skel \
+ SimpleCommon_stub
+
+ dynamicflags = SIMPLENILFACETUSER_SVNT_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ SimpleNilFacetUserS.cpp
+ SimpleNilFacetUser_svnt.cpp
+ }
+
+ Header_Files {
+ SimpleNilFacetUserS.h
+ SimpleNilFacetUser_svnt.h
+ SimpleNilFacetUser_svnt_export.h
+ }
+
+ Inline_Files {
+ SimpleNilFacetUserS.inl
+ }
+}
+
+
diff --git a/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleNilFacetUser_exec.cpp b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleNilFacetUser_exec.cpp
new file mode 100644
index 00000000000..ea8382a6323
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleNilFacetUser_exec.cpp
@@ -0,0 +1,159 @@
+// $Id$
+
+#include "DAnCE/Logger/Log_Macros.h"
+#include "SimpleNilFacetUser_exec.h"
+
+namespace CIAO_Simple_SimpleNilFacetUser_Impl
+{
+ //==================================================================
+ // Component Executor Implementation Class: SimpleNilFacetUser_exec_i
+ //==================================================================
+
+ SimpleNilFacetUser_exec_i::SimpleNilFacetUser_exec_i (void)
+ {
+ DANCE_TRACE ("SimpleNilFacetUser_exec_i::SimpleNilFacetUser_exec_i (void)");
+ }
+
+ SimpleNilFacetUser_exec_i::~SimpleNilFacetUser_exec_i (void)
+ {
+ DANCE_TRACE ("SimpleNilFacetUser_exec_i::~SimpleNilFacetUser_exec_i (void)");
+ }
+
+ // Supported or inherited operations.
+
+ // Attribute operations.
+
+ // Port operations.
+
+ // Operations from Components::SessionComponent
+
+ void
+ SimpleNilFacetUser_exec_i::set_session_context (
+ ::Components::SessionContext_ptr ctx)
+ {
+ DANCE_TRACE ("SimpleNilFacetUser_exec_i::set_session_context ()");
+ this->context_ =
+ ::Simple::CCM_SimpleNilFacetUser_Context::_narrow (ctx);
+
+ if (CORBA::is_nil (this->context_.in ()))
+ {
+ throw ::CORBA::INTERNAL ();
+ }
+ }
+
+ void
+ SimpleNilFacetUser_exec_i::configuration_complete ()
+ {
+ DANCE_TRACE ("SimpleNilFacetUser_exec_i::configuration_complete ()");
+ // Your code here.
+ }
+
+ void
+ SimpleNilFacetUser_exec_i::ccm_activate ()
+ {
+ DANCE_TRACE ("SimpleNilFacetUser_exec_i::ccm_activate ()");
+ bool caught_exception = false;
+ ::Simple::Trigger_var trig (this->context_->get_connection_trig ());
+
+ if (CORBA::is_nil (trig.in ()))
+ {
+ ACE_ERROR ((LM_ERROR, "SimpleNilFacetUser_exec_i::ccm_activate () - "
+ "Error: Reference nil for port trig\n"));
+ return;
+ }
+
+ try
+ {
+ trig->hello ("Test successful; hello from SimpleNilFacetUser.");
+ }
+ catch (const ::CORBA::INV_OBJREF &)
+ {
+ ACE_DEBUG ((LM_DEBUG, "SimpleNilFacetUser_exec_i::ccm_activate () - "
+ "Caught correct CORBA exception\n"));
+ caught_exception = true;
+ }
+ catch (const CORBA::Exception &ex)
+ {
+ ACE_ERROR ((LM_ERROR, "SimpleNilFacetUser_exec_i::ccm_activate () - "
+ "Caught CORBA exception, details follow:\n"));
+ ex._tao_print_exception ("SimpleNilFacetUser_exec_i::ccm_activate () - ");
+ }
+ catch (...)
+ {
+ ACE_ERROR ((LM_ERROR, "SimpleNilFacetUser_exec_i::ccm_activate () - "
+ "Error: Caught unknown exception whilst invoking reference for port trig.\n"));
+ }
+ if (!caught_exception)
+ {
+ ACE_ERROR ((LM_ERROR, "SimpleNilFacetUser_exec_i::ccm_activate () - "
+ "Error: Didn't catch correct exception\n"));
+ }
+ }
+
+ void
+ SimpleNilFacetUser_exec_i::ccm_passivate ()
+ {
+ DANCE_TRACE ("SimpleNilFacetUser_exec_i::ccm_passivate ()");
+ }
+
+ void
+ SimpleNilFacetUser_exec_i::ccm_remove ()
+ {
+ DANCE_TRACE ("SimpleNilFacetUser_exec_i::ccm_remove ()");
+ }
+
+ //==================================================================
+ // Home Executor Implementation Class: SimpleNilFacetUserHome_exec_i
+ //==================================================================
+
+ SimpleNilFacetUserHome_exec_i::SimpleNilFacetUserHome_exec_i (void)
+ {
+ DANCE_TRACE ("SimpleNilFacetUserHome_exec_i::SimpleNilFacetUserHome_exec_i (void)");
+ }
+
+ SimpleNilFacetUserHome_exec_i::~SimpleNilFacetUserHome_exec_i (void)
+ {
+ DANCE_TRACE ("SimpleNilFacetUserHome_exec_i::~SimpleNilFacetUserHome_exec_i (void)");
+ }
+
+ // Supported or inherited operations.
+
+ // Home operations.
+
+ // Factory and finder operations.
+
+ // Attribute operations.
+
+ // Implicit operations.
+
+ ::Components::EnterpriseComponent_ptr
+ SimpleNilFacetUserHome_exec_i::create ()
+ {
+ DANCE_TRACE ("SimpleNilFacetUserHome_exec_i::create ()");
+ ::Components::EnterpriseComponent_ptr retval =
+ ::Components::EnterpriseComponent::_nil ();
+
+ ACE_NEW_THROW_EX (
+ retval,
+ SimpleNilFacetUser_exec_i,
+ ::CORBA::NO_MEMORY ());
+
+ return retval;
+ }
+
+ extern "C" SIMPLENILFACETUSER_EXEC_Export ::Components::HomeExecutorBase_ptr
+ create_Simple_SimpleNilFacetUserHome_Impl (void)
+ {
+ DANCE_TRACE ("create_Simple_SimpleNilFacetUserHome_Impl (void)");
+ ::Components::HomeExecutorBase_ptr retval =
+ ::Components::HomeExecutorBase::_nil ();
+
+ ACE_NEW_RETURN (
+ retval,
+ SimpleNilFacetUserHome_exec_i,
+ ::Components::HomeExecutorBase::_nil ());
+
+ return retval;
+ }
+}
+
diff --git a/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleNilFacetUser_exec.h b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleNilFacetUser_exec.h
new file mode 100644
index 00000000000..897acf3ba99
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleNilFacetUser_exec.h
@@ -0,0 +1,80 @@
+// $Id$
+
+#ifndef CIAO_SIMPLENILFACETUSER_EXEC_H
+#define CIAO_SIMPLENILFACETUSER_EXEC_H
+
+#include /**/ "ace/pre.h"
+
+#include "SimpleNilFacetUserEC.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "SimpleNilFacetUser_exec_export.h"
+#include "tao/LocalObject.h"
+
+namespace CIAO_Simple_SimpleNilFacetUser_Impl
+{
+ class SIMPLENILFACETUSER_EXEC_Export SimpleNilFacetUser_exec_i
+ : public virtual SimpleNilFacetUser_Exec,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ SimpleNilFacetUser_exec_i (void);
+ virtual ~SimpleNilFacetUser_exec_i (void);
+
+ // Supported or inherited operations.
+
+ // Attribute operations.
+
+ // Port operations.
+
+ // Operations from Components::SessionComponent
+
+ virtual void
+ set_session_context (
+ ::Components::SessionContext_ptr ctx);
+
+ virtual void configuration_complete ();
+
+ virtual void ccm_activate ();
+
+ virtual void ccm_passivate ();
+
+ virtual void ccm_remove ();
+
+ private:
+ ::Simple::CCM_SimpleNilFacetUser_Context_var context_;
+ };
+
+ class SIMPLENILFACETUSER_EXEC_Export SimpleNilFacetUserHome_exec_i
+ : public virtual SimpleNilFacetUserHome_Exec,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ SimpleNilFacetUserHome_exec_i (void);
+ virtual ~SimpleNilFacetUserHome_exec_i (void);
+
+ // Supported or inherited operations.
+
+ // Home operations.
+
+ // Factory and finder operations.
+
+ // Attribute operations.
+
+ // Implicit operations.
+
+ virtual ::Components::EnterpriseComponent_ptr
+ create ();
+ };
+
+ extern "C" SIMPLENILFACETUSER_EXEC_Export ::Components::HomeExecutorBase_ptr
+ create_Simple_SimpleNilFacetUserHome_Impl (void);
+}
+
+#include /**/ "ace/post.h"
+
+#endif /* CIAO_SIMPLENILFACETUSER_EXEC_H */
+
diff --git a/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleNull.idl b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleNull.idl
new file mode 100644
index 00000000000..d8f02901be4
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleNull.idl
@@ -0,0 +1,14 @@
+// $Id$
+
+#include <Components.idl>
+
+module Simple
+{
+ component SimpleNull
+ {
+ };
+
+ home SimpleNullHome manages SimpleNull
+ {
+ };
+};
diff --git a/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleNull.mpc b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleNull.mpc
new file mode 100644
index 00000000000..84fcb5a4d94
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleNull.mpc
@@ -0,0 +1,107 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl SimpleNull"
+
+project(SimpleNull_idl_gen) : componentidldefaults {
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=SIMPLENULL_STUB_Export \
+ -Wb,stub_export_include=SimpleNull_stub_export.h \
+ -Wb,skel_export_macro=SIMPLENULL_SVNT_Export \
+ -Wb,skel_export_include=SimpleNull_svnt_export.h \
+ -Wb,exec_export_macro=SIMPLENULL_EXEC_Export \
+ -Wb,exec_export_include=SimpleNull_exec_export.h
+ IDL_Files {
+ SimpleNull.idl
+ }
+}
+
+project(SimpleNull_lem_gen) : ciaoidldefaults {
+ after += SimpleNull_idl_gen
+ custom_only = 1
+ idlflags += -Wb,export_macro=SIMPLENULL_EXEC_Export \
+ -Wb,export_include=SimpleNull_exec_export.h \
+ -SS
+
+ IDL_Files {
+ SimpleNullE.idl
+ }
+}
+
+project(SimpleNull_stub) : ccm_stub {
+ after += SimpleNull_idl_gen
+ libs +=
+
+ sharedname = SimpleNull_stub
+ dynamicflags = SIMPLENULL_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ SimpleNullC.cpp
+ }
+
+ Header_Files {
+ SimpleNullC.h
+ SimpleNull_stub_export.h
+ }
+
+ Inline_Files {
+ SimpleNullC.inl
+ }
+}
+
+project(SimpleNull_exec) : ciao_executor {
+ after += SimpleNull_lem_gen SimpleNull_stub
+ sharedname = SimpleNull_exec
+ libs += SimpleNull_stub
+
+ dynamicflags = SIMPLENULL_EXEC_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ SimpleNullEC.cpp
+ SimpleNull_exec.cpp
+ }
+
+ Header_Files {
+ SimpleNullEC.h
+ SimpleNull_exec.h
+ SimpleNull_exec_export.h
+ }
+
+ Inline_Files {
+ SimpleNullEC.inl
+ }
+}
+
+
+project(SimpleNull_svnt) : ciao_servant {
+ after += SimpleNull_exec
+ sharedname = SimpleNull_svnt
+ libs += SimpleNull_exec \
+ SimpleNull_stub
+
+ dynamicflags = SIMPLENULL_SVNT_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ SimpleNullS.cpp
+ SimpleNull_svnt.cpp
+ }
+
+ Header_Files {
+ SimpleNullS.h
+ SimpleNull_svnt.h
+ SimpleNull_svnt_export.h
+ }
+
+ Inline_Files {
+ SimpleNullS.inl
+ }
+}
+
+
diff --git a/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleNull_exec.cpp b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleNull_exec.cpp
new file mode 100644
index 00000000000..eab01e30f54
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleNull_exec.cpp
@@ -0,0 +1,150 @@
+// $Id$
+
+#include "SimpleNull_exec.h"
+#include "DAnCE/Logger/Log_Macros.h"
+
+namespace CIAO_Simple_SimpleNull_Impl
+{
+ //==================================================================
+ // Component Executor Implementation Class: SimpleNull_exec_i
+ //==================================================================
+
+ SimpleNull_exec_i::SimpleNull_exec_i (void)
+ {
+ DANCE_TRACE ("SimpleNull_exec_i::SimpleNull_exec_i (void)");
+ ACE_DEBUG ((LM_EMERGENCY, "SimpleNull - Test - Lifecycle event - SimpleNull_exec_i::SimpleNull_exec_i (void)\n"));
+ }
+
+ SimpleNull_exec_i::~SimpleNull_exec_i (void)
+ {
+ DANCE_TRACE ("SimpleNull_exec_i::~SimpleNull_exec_i");
+ ACE_DEBUG ((LM_EMERGENCY, "SimpleNull - Test - Lifecycle event - SimpleNull_exec_i::~SimpleNull_exec_i\n"));
+ }
+
+ // Supported or inherited operations.
+
+ // Attribute operations.
+
+ // Port operations.
+
+ // Operations from Components::SessionComponent
+
+ void
+ SimpleNull_exec_i::set_session_context (
+ ::Components::SessionContext_ptr ctx)
+ {
+ DANCE_TRACE ("SimpleNull_exec_i::set_session_context");
+ ACE_DEBUG ((LM_EMERGENCY, "SimpleNull - Test - Lifecycle event - SimpleNull_exec_i::set_session_context\n"));
+ this->context_ =
+ ::Simple::CCM_SimpleNull_Context::_narrow (ctx);
+
+ if (CORBA::is_nil (this->context_.in ()))
+ {
+ throw ::CORBA::INTERNAL ();
+ }
+ }
+
+ void
+ SimpleNull_exec_i::configuration_complete ()
+ {
+ DANCE_TRACE ("SimpleNull_exec_i::configuration_complete\n");
+ ACE_DEBUG ((LM_EMERGENCY, "SimpleNull - Test - Lifecycle event - SimpleNull_exec_i::configuration_complete\n"));
+ // Your code here.
+ }
+
+ void
+ SimpleNull_exec_i::ccm_activate ()
+ {
+ DANCE_TRACE ("SimpleNull_exec_i::ccm_activate");
+ ACE_DEBUG ((LM_EMERGENCY, "SimpleNull - Test - Lifecycle event - SimpleNull_exec_i::ccm_activate\n"));
+ // Your code here.
+ }
+
+ void
+ SimpleNull_exec_i::ccm_passivate ()
+ {
+ DANCE_TRACE ("SimpleNull_exec_i::ccm_passivate");
+ ACE_DEBUG ((LM_EMERGENCY, "SimpleNull - Test - Lifecycle event - SimpleNull_exec_i::ccm_passivate\n"));
+ // Your code here.
+ }
+
+ void
+ SimpleNull_exec_i::ccm_remove ()
+ {
+ DANCE_TRACE ("SimpleNull_exec_i::ccm_remove");
+ ACE_DEBUG ((LM_EMERGENCY, "SimpleNull - Test - Lifecycle event - SimpleNull_exec_i::ccm_remove\n"));
+ // Your code here.
+ }
+
+ extern "C" SIMPLENULL_EXEC_Export ::Components::EnterpriseComponent_ptr
+ create_Simple_SimpleNull_Impl (void)
+ {
+ ::Components::EnterpriseComponent_ptr retval =
+ ::Components::EnterpriseComponent::_nil ();
+
+ ACE_NEW_RETURN (retval,
+ SimpleNull_exec_i,
+ ::Components::EnterpriseComponent::_nil ());
+
+ return retval;
+ }
+
+ //==================================================================
+ // Home Executor Implementation Class: SimpleNullHome_exec_i
+ //==================================================================
+
+ SimpleNullHome_exec_i::SimpleNullHome_exec_i (void)
+ {
+ DANCE_TRACE ("SimpleNullHome_exec_i::SimpleNullHome_exec_i");
+ ACE_DEBUG ((LM_EMERGENCY, "SimpleNull - Test - Lifecycle event - SimpleNullHome_exec_i::SimpleNullHome_exec_i\n"));
+ }
+
+ SimpleNullHome_exec_i::~SimpleNullHome_exec_i (void)
+ {
+ DANCE_TRACE ("SimpleNullHome_exec_i::~SimpleNullHome_exec_i");
+ ACE_DEBUG ((LM_EMERGENCY, "SimpleNull - Test - Lifecycle event - SimpleNullHome_exec_i::~SimpleNullHome_exec_i\n"));
+ }
+
+ // Supported or inherited operations.
+
+ // Home operations.
+
+ // Factory and finder operations.
+
+ // Attribute operations.
+
+ // Implicit operations.
+
+ ::Components::EnterpriseComponent_ptr
+ SimpleNullHome_exec_i::create ()
+ {
+ DANCE_TRACE ("SimpleNullHome_exec_i::create");
+ ACE_DEBUG ((LM_EMERGENCY, "SimpleNull - Test - Lifecycle event - SimpleNullHome_exec_i::create\n"));
+ ::Components::EnterpriseComponent_ptr retval =
+ ::Components::EnterpriseComponent::_nil ();
+
+ ACE_NEW_THROW_EX (
+ retval,
+ SimpleNull_exec_i,
+ ::CORBA::NO_MEMORY ());
+
+ return retval;
+ }
+
+ extern "C" SIMPLENULL_EXEC_Export ::Components::HomeExecutorBase_ptr
+ create_Simple_SimpleNullHome_Impl (void)
+ {
+ DANCE_TRACE ("create_Simple_SimpleNullHome_Impl");
+ ACE_DEBUG ((LM_EMERGENCY, "SimpleNull - Test - Lifecycle event - create_Simple_SimpleNullHome_Impl\n"));
+ ::Components::HomeExecutorBase_ptr retval =
+ ::Components::HomeExecutorBase::_nil ();
+
+ ACE_NEW_RETURN (
+ retval,
+ SimpleNullHome_exec_i,
+ ::Components::HomeExecutorBase::_nil ());
+
+ return retval;
+ }
+}
+
diff --git a/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleNull_exec.h b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleNull_exec.h
new file mode 100644
index 00000000000..5f0cce9bfbb
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleNull_exec.h
@@ -0,0 +1,83 @@
+// $Id$
+
+#ifndef CIAO_SIMPLENULL_EXEC_H
+#define CIAO_SIMPLENULL_EXEC_H
+
+#include /**/ "ace/pre.h"
+
+#include "SimpleNullEC.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "SimpleNull_exec_export.h"
+#include "tao/LocalObject.h"
+
+namespace CIAO_Simple_SimpleNull_Impl
+{
+ class SIMPLENULL_EXEC_Export SimpleNull_exec_i
+ : public virtual SimpleNull_Exec,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ SimpleNull_exec_i (void);
+ virtual ~SimpleNull_exec_i (void);
+
+ // Supported or inherited operations.
+
+ // Attribute operations.
+
+ // Port operations.
+
+ // Operations from Components::SessionComponent
+
+ virtual void
+ set_session_context (
+ ::Components::SessionContext_ptr ctx);
+
+ virtual void configuration_complete ();
+
+ virtual void ccm_activate ();
+
+ virtual void ccm_passivate ();
+
+ virtual void ccm_remove ();
+
+ private:
+ ::Simple::CCM_SimpleNull_Context_var context_;
+ };
+
+ extern "C" SIMPLENULL_EXEC_Export ::Components::EnterpriseComponent_ptr
+ create_Simple_SimpleNull_Impl (void);
+
+ class SIMPLENULL_EXEC_Export SimpleNullHome_exec_i
+ : public virtual SimpleNullHome_Exec,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ SimpleNullHome_exec_i (void);
+ virtual ~SimpleNullHome_exec_i (void);
+
+ // Supported or inherited operations.
+
+ // Home operations.
+
+ // Factory and finder operations.
+
+ // Attribute operations.
+
+ // Implicit operations.
+
+ virtual ::Components::EnterpriseComponent_ptr
+ create ();
+ };
+
+ extern "C" SIMPLENULL_EXEC_Export ::Components::HomeExecutorBase_ptr
+ create_Simple_SimpleNullHome_Impl (void);
+}
+
+#include /**/ "ace/post.h"
+
+#endif /* CIAO_SIMPLENULL_EXEC_H */
+
diff --git a/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleProvider.idl b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleProvider.idl
new file mode 100644
index 00000000000..ec9859d0130
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleProvider.idl
@@ -0,0 +1,21 @@
+// $Id$
+
+#ifndef SIMPLE_PROVIDER_IDL
+#define SIMPLE_PROVIDER_IDL
+
+#include "SimpleCommon.idl"
+#include "Components.idl"
+
+module Simple
+{
+ component SimpleProvider
+ {
+ provides Trigger trig;
+ };
+
+ home SimpleProviderHome manages SimpleProvider
+ {
+ };
+};
+
+#endif /*SIMPLE_PROVIDER_IDL*/
diff --git a/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleProvider.mpc b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleProvider.mpc
new file mode 100644
index 00000000000..352f35f64b1
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleProvider.mpc
@@ -0,0 +1,111 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl -p SimpleCommon SimpleProvider"
+
+project(SimpleCommon_SimpleProvider_idl_gen) : componentidldefaults {
+ custom_only = 1
+ idlflags += \
+ -Wb,stub_export_macro=SIMPLEPROVIDER_STUB_Export \
+ -Wb,stub_export_include=SimpleProvider_stub_export.h \
+ -Wb,skel_export_macro=SIMPLEPROVIDER_SVNT_Export \
+ -Wb,skel_export_include=SimpleProvider_svnt_export.h \
+ -Wb,exec_export_macro=SIMPLEPROVIDER_EXEC_Export \
+ -Wb,exec_export_include=SimpleProvider_exec_export.h
+
+ IDL_Files {
+ SimpleProvider.idl
+ }
+}
+
+project(SimpleCommon_SimpleProvider_lem_gen) : ciaoidldefaults {
+ after += SimpleCommon_SimpleProvider_idl_gen
+ custom_only = 1
+ idlflags += -Wb,export_macro=SIMPLEPROVIDER_EXEC_Export \
+ -Wb,export_include=SimpleProvider_exec_export.h \
+ -SS
+
+ IDL_Files {
+ SimpleProviderE.idl
+ }
+}
+
+project(SimpleCommon_SimpleProvider_stub) : ccm_stub {
+ after += SimpleCommon_SimpleProvider_idl_gen SimpleCommon_stub
+ libs += SimpleCommon_stub
+
+ sharedname = SimpleProvider_stub
+ dynamicflags = SIMPLEPROVIDER_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ SimpleProviderC.cpp
+ }
+
+ Header_Files {
+ SimpleProviderC.h
+ SimpleProvider_stub_export.h
+ }
+
+ Inline_Files {
+ SimpleProviderC.inl
+ }
+}
+
+project(SimpleCommon_SimpleProvider_exec) : ciao_executor {
+ after += SimpleCommon_SimpleProvider_lem_gen SimpleCommon_SimpleProvider_stub
+ sharedname = SimpleProvider_exec
+ libs += SimpleProvider_stub SimpleCommon_stub
+
+ dynamicflags = SIMPLEPROVIDER_EXEC_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ SimpleProviderEC.cpp
+ SimpleProvider_exec.cpp
+ }
+
+ Header_Files {
+ SimpleProviderEC.h
+ SimpleProvider_exec.h
+ SimpleProvider_exec_export.h
+ }
+
+ Inline_Files {
+ SimpleProviderEC.inl
+ }
+}
+
+
+project(SimpleCommon_SimpleProvider_svnt) : ciao_servant {
+ after += SimpleCommon_skel SimpleCommon_SimpleProvider_exec
+ sharedname = SimpleProvider_svnt
+ libs += SimpleProvider_exec \
+ SimpleProvider_stub \
+ SimpleCommon_skel \
+ SimpleCommon_stub
+
+ dynamicflags = SIMPLEPROVIDER_SVNT_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ SimpleProviderS.cpp
+ SimpleProvider_svnt.cpp
+ }
+
+ Header_Files {
+ SimpleProviderS.h
+ SimpleProvider_svnt.h
+ SimpleProvider_svnt_export.h
+ }
+
+ Inline_Files {
+ SimpleProviderS.inl
+ }
+}
+
+
diff --git a/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleProvider_exec.cpp b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleProvider_exec.cpp
new file mode 100644
index 00000000000..0cd1ffe396b
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleProvider_exec.cpp
@@ -0,0 +1,166 @@
+// $Id$
+
+#include "SimpleProvider_exec.h"
+#include "DAnCE/Logger/Log_Macros.h"
+
+namespace CIAO_Simple_SimpleProvider_Impl
+{
+ //==================================================================
+ // Facet Executor Implementation Class: Trigger_exec_i
+ //==================================================================
+
+ Trigger_exec_i::Trigger_exec_i (bool &triggered)
+ : triggered_ (triggered)
+ {
+ DANCE_TRACE ("Trigger_exec_i::Trigger_exec_i (void)");
+ }
+
+ Trigger_exec_i::~Trigger_exec_i (void)
+ {
+ DANCE_TRACE ("Trigger_exec_i::~Trigger_exec_i (void)");
+ }
+
+ // Operations from ::Simple::Trigger
+
+ void
+ Trigger_exec_i::hello (
+ const char * hello )
+ {
+ DANCE_TRACE ("Trigger_exec_i::hello ()");
+ this->triggered_ = true;
+ // Your code here.
+ ACE_DEBUG ((LM_EMERGENCY, "Trigger_exec_i::hello - "
+ "Got the following information from trig port: %C\n",
+ hello));
+ }
+
+ //==================================================================
+ // Component Executor Implementation Class: SimpleProvider_exec_i
+ //==================================================================
+
+ SimpleProvider_exec_i::SimpleProvider_exec_i (void)
+ : triggered_ (false)
+ {
+ DANCE_TRACE ("SimpleProvider_exec_i::SimpleProvider_exec_i (void)");
+ }
+
+ SimpleProvider_exec_i::~SimpleProvider_exec_i (void)
+ {
+ DANCE_TRACE ("SimpleProvider_exec_i::~SimpleProvider_exec_i (void)");
+ }
+
+ // Supported or inherited operations.
+
+ // Attribute operations.
+
+ // Port operations.
+
+ ::Simple::CCM_Trigger_ptr
+ SimpleProvider_exec_i::get_trig ()
+ {
+ DANCE_TRACE ("SimpleProvider_exec_i::get_trig ()");
+ return new Trigger_exec_i (this->triggered_);
+ }
+
+ // Operations from Components::SessionComponent
+
+ void
+ SimpleProvider_exec_i::set_session_context (
+ ::Components::SessionContext_ptr ctx)
+ {
+ DANCE_TRACE ("SimpleProvider_exec_i::set_session_context ()");
+ this->context_ =
+ ::Simple::CCM_SimpleProvider_Context::_narrow (ctx);
+
+ if (CORBA::is_nil (this->context_.in ()))
+ {
+ throw ::CORBA::INTERNAL ();
+ }
+ }
+
+ void
+ SimpleProvider_exec_i::configuration_complete ()
+ {
+ DANCE_TRACE ("SimpleProvider_exec_i::configuration_complete ()");
+ // Your code here.
+ }
+
+ void
+ SimpleProvider_exec_i::ccm_activate ()
+ {
+ DANCE_TRACE ("SimpleProvider_exec_i::ccm_activate ()");
+ // Your code here.
+ }
+
+ void
+ SimpleProvider_exec_i::ccm_passivate ()
+ {
+ DANCE_TRACE ("SimpleProvider_exec_i::ccm_passivate ()");
+ // Your code here.
+ }
+
+ void
+ SimpleProvider_exec_i::ccm_remove ()
+ {
+ DANCE_TRACE ("SimpleProvider_exec_i::ccm_remove ()");
+ if (!triggered_)
+ ACE_ERROR ((LM_EMERGENCY, "Error: My facet wasn't triggered!!\n"));
+
+ // Your code here.
+ }
+
+ //==================================================================
+ // Home Executor Implementation Class: SimpleProviderHome_exec_i
+ //==================================================================
+
+ SimpleProviderHome_exec_i::SimpleProviderHome_exec_i (void)
+ {
+ DANCE_TRACE ("SimpleProviderHome_exec_i::SimpleProviderHome_exec_i (void)");
+ }
+
+ SimpleProviderHome_exec_i::~SimpleProviderHome_exec_i (void)
+ {
+ DANCE_TRACE ("SimpleProviderHome_exec_i::~SimpleProviderHome_exec_i (void)");
+ }
+
+ // Supported or inherited operations.
+
+ // Home operations.
+
+ // Factory and finder operations.
+
+ // Attribute operations.
+
+ // Implicit operations.
+
+ ::Components::EnterpriseComponent_ptr
+ SimpleProviderHome_exec_i::create ()
+ {
+ DANCE_TRACE ("SimpleProviderHome_exec_i::create ()");
+ ::Components::EnterpriseComponent_ptr retval =
+ ::Components::EnterpriseComponent::_nil ();
+
+ ACE_NEW_THROW_EX (
+ retval,
+ SimpleProvider_exec_i,
+ ::CORBA::NO_MEMORY ());
+
+ return retval;
+ }
+
+ extern "C" SIMPLEPROVIDER_EXEC_Export ::Components::HomeExecutorBase_ptr
+ create_Simple_SimpleProviderHome_Impl (void)
+ {
+ DANCE_TRACE ("create_Simple_SimpleProviderHome_Impl (void)");
+ ::Components::HomeExecutorBase_ptr retval =
+ ::Components::HomeExecutorBase::_nil ();
+
+ ACE_NEW_RETURN (
+ retval,
+ SimpleProviderHome_exec_i,
+ ::Components::HomeExecutorBase::_nil ());
+
+ return retval;
+ }
+}
+
diff --git a/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleProvider_exec.h b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleProvider_exec.h
new file mode 100644
index 00000000000..1ffa389790f
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleProvider_exec.h
@@ -0,0 +1,102 @@
+// $Id$
+
+#ifndef CIAO_SIMPLEPROVIDER_EXEC_H
+#define CIAO_SIMPLEPROVIDER_EXEC_H
+
+#include /**/ "ace/pre.h"
+
+#include "SimpleProviderEC.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "SimpleProvider_exec_export.h"
+#include "tao/LocalObject.h"
+
+namespace CIAO_Simple_SimpleProvider_Impl
+{
+ class SIMPLEPROVIDER_EXEC_Export Trigger_exec_i
+ : public virtual ::Simple::CCM_Trigger,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ Trigger_exec_i (bool &);
+ virtual ~Trigger_exec_i (void);
+
+ // Operations from ::Simple::Trigger
+
+ virtual void
+ hello (
+ const char * hello);
+
+ private:
+ bool &triggered_;
+ };
+
+ class SIMPLEPROVIDER_EXEC_Export SimpleProvider_exec_i
+ : public virtual SimpleProvider_Exec,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ SimpleProvider_exec_i (void);
+ virtual ~SimpleProvider_exec_i (void);
+
+ // Supported or inherited operations.
+
+ // Attribute operations.
+
+ // Port operations.
+
+ virtual ::Simple::CCM_Trigger_ptr
+ get_trig ();
+
+ // Operations from Components::SessionComponent
+
+ virtual void
+ set_session_context (
+ ::Components::SessionContext_ptr ctx);
+
+ virtual void configuration_complete ();
+
+ virtual void ccm_activate ();
+
+ virtual void ccm_passivate ();
+
+ virtual void ccm_remove ();
+
+ private:
+ ::Simple::CCM_SimpleProvider_Context_var context_;
+ bool triggered_;
+ };
+
+ class SIMPLEPROVIDER_EXEC_Export SimpleProviderHome_exec_i
+ : public virtual SimpleProviderHome_Exec,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ SimpleProviderHome_exec_i (void);
+ virtual ~SimpleProviderHome_exec_i (void);
+
+ // Supported or inherited operations.
+
+ // Home operations.
+
+ // Factory and finder operations.
+
+ // Attribute operations.
+
+ // Implicit operations.
+
+ virtual ::Components::EnterpriseComponent_ptr
+ create ();
+ };
+
+ extern "C" SIMPLEPROVIDER_EXEC_Export ::Components::HomeExecutorBase_ptr
+ create_Simple_SimpleProviderHome_Impl (void);
+}
+
+#include /**/ "ace/post.h"
+
+#endif /* CIAO_SIMPLEPROVIDER_EXEC_H */
+
diff --git a/modules/CIAO/DAnCE/tests/CIAO/Components/SimplePublisher.idl b/modules/CIAO/DAnCE/tests/CIAO/Components/SimplePublisher.idl
new file mode 100644
index 00000000000..cee261fd15a
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/SimplePublisher.idl
@@ -0,0 +1,21 @@
+// $Id$
+
+#ifndef SIMPLE_PUBLISHER_IDL
+#define SIMPLE_PUBLISHER_IDL
+
+#include "SimpleCommon.idl"
+#include "Components.idl"
+
+module Simple
+{
+ component SimplePublisher
+ {
+ publishes Hello hello;
+ };
+
+ home SimplePublisherHome manages SimplePublisher
+ {
+ };
+};
+
+#endif /*SIMPLE_PUBLISHER_IDL*/
diff --git a/modules/CIAO/DAnCE/tests/CIAO/Components/SimplePublisher.mpc b/modules/CIAO/DAnCE/tests/CIAO/Components/SimplePublisher.mpc
new file mode 100644
index 00000000000..a4b4544687d
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/SimplePublisher.mpc
@@ -0,0 +1,110 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl -p SimpleCommon SimplePublisher"
+
+project(SimpleCommon_SimplePublisher_idl_gen) : componentidldefaults {
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=SIMPLEPUBLISHER_STUB_Export \
+ -Wb,stub_export_include=SimplePublisher_stub_export.h \
+ -Wb,skel_export_macro=SIMPLEPUBLISHER_SVNT_Export \
+ -Wb,skel_export_include=SimplePublisher_svnt_export.h \
+ -Wb,exec_export_macro=SIMPLEPUBLISHER_EXEC_Export \
+ -Wb,exec_export_include=SimplePublisher_exec_export.h \
+
+ IDL_Files {
+ SimplePublisher.idl
+ }
+}
+
+project(SimpleCommon_SimplePublisher_lem_gen) : ciaoidldefaults {
+ after += SimpleCommon_SimplePublisher_idl_gen
+ custom_only = 1
+ idlflags += -Wb,export_macro=SIMPLEPUBLISHER_EXEC_Export \
+ -Wb,export_include=SimplePublisher_exec_export.h \
+ -SS
+
+ IDL_Files {
+ SimplePublisherE.idl
+ }
+}
+
+project(SimpleCommon_SimplePublisher_stub) : ccm_stub {
+ after += SimpleCommon_SimplePublisher_idl_gen SimpleCommon_stub
+ libs += SimpleCommon_stub
+
+ sharedname = SimplePublisher_stub
+ dynamicflags = SIMPLEPUBLISHER_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ SimplePublisherC.cpp
+ }
+
+ Header_Files {
+ SimplePublisherC.h
+ SimplePublisher_stub_export.h
+ }
+
+ Inline_Files {
+ SimplePublisherC.inl
+ }
+}
+
+project(SimpleCommon_SimplePublisher_exec) : ciao_executor {
+ after += SimpleCommon_SimplePublisher_lem_gen SimpleCommon_SimplePublisher_stub
+ sharedname = SimplePublisher_exec
+ libs += SimplePublisher_stub SimpleCommon_stub
+
+ dynamicflags = SIMPLEPUBLISHER_EXEC_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ SimplePublisherEC.cpp
+ SimplePublisher_exec.cpp
+ }
+
+ Header_Files {
+ SimplePublisherEC.h
+ SimplePublisher_exec.h
+ SimplePublisher_exec_export.h
+ }
+
+ Inline_Files {
+ SimplePublisherEC.inl
+ }
+}
+
+
+project(SimpleCommon_SimplePublisher_svnt) : ciao_servant {
+ after += SimpleCommon_skel SimpleCommon_SimplePublisher_exec
+ sharedname = SimplePublisher_svnt
+ libs += SimplePublisher_exec \
+ SimplePublisher_stub \
+ SimpleCommon_skel \
+ SimpleCommon_stub
+
+ dynamicflags = SIMPLEPUBLISHER_SVNT_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ SimplePublisherS.cpp
+ SimplePublisher_svnt.cpp
+ }
+
+ Header_Files {
+ SimplePublisherS.h
+ SimplePublisher_svnt.h
+ SimplePublisher_svnt_export.h
+ }
+
+ Inline_Files {
+ SimplePublisherS.inl
+ }
+}
+
+
diff --git a/modules/CIAO/DAnCE/tests/CIAO/Components/SimplePublisher_exec.cpp b/modules/CIAO/DAnCE/tests/CIAO/Components/SimplePublisher_exec.cpp
new file mode 100644
index 00000000000..9bbc600dd4a
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/SimplePublisher_exec.cpp
@@ -0,0 +1,129 @@
+// $Id$
+
+#include "SimplePublisher_exec.h"
+#include "DAnCE/Logger/Log_Macros.h"
+
+namespace CIAO_Simple_SimplePublisher_Impl
+{
+ //==================================================================
+ // Component Executor Implementation Class: SimplePublisher_exec_i
+ //==================================================================
+
+ SimplePublisher_exec_i::SimplePublisher_exec_i (void)
+ {
+ DANCE_TRACE ("SimplePublisher_exec_i::SimplePublisher_exec_i (void)");
+ }
+
+ SimplePublisher_exec_i::~SimplePublisher_exec_i (void)
+ {
+ DANCE_TRACE ("SimplePublisher_exec_i::~SimplePublisher_exec_i (void)");
+ }
+
+ // Supported or inherited operations.
+
+ // Attribute operations.
+
+ // Port operations.
+
+ // Operations from Components::SessionComponent
+
+ void
+ SimplePublisher_exec_i::set_session_context (
+ ::Components::SessionContext_ptr ctx)
+ {
+ DANCE_TRACE ("SimplePublisher_exec_i::set_session_context ()");
+ this->context_ =
+ ::Simple::CCM_SimplePublisher_Context::_narrow (ctx);
+
+ if (CORBA::is_nil (this->context_.in ()))
+ {
+ throw ::CORBA::INTERNAL ();
+ }
+ }
+
+ void
+ SimplePublisher_exec_i::configuration_complete ()
+ {
+ DANCE_TRACE ("SimplePublisher_exec_i::configuration_complete ()");
+ // Your code here.
+ }
+
+ void
+ SimplePublisher_exec_i::ccm_activate ()
+ {
+ DANCE_TRACE ("SimplePublisher_exec_i::ccm_activate ()");
+ ::Simple::Hello_var hello = new OBV_Simple::Hello ("Test successful, hello from SimplePublisher_exec_i");
+ this->context_->push_hello (hello._retn ());
+ // Your code here.
+ }
+
+ void
+ SimplePublisher_exec_i::ccm_passivate ()
+ {
+ DANCE_TRACE ("SimplePublisher_exec_i::ccm_passivate ()");
+ // Your code here.
+ }
+
+ void
+ SimplePublisher_exec_i::ccm_remove ()
+ {
+ DANCE_TRACE ("SimplePublisher_exec_i::ccm_remove ()");
+ // Your code here.
+ }
+
+ //==================================================================
+ // Home Executor Implementation Class: SimplePublisherHome_exec_i
+ //==================================================================
+
+ SimplePublisherHome_exec_i::SimplePublisherHome_exec_i (void)
+ {
+ DANCE_TRACE ("SimplePublisherHome_exec_i::SimplePublisherHome_exec_i (void)");
+ }
+
+ SimplePublisherHome_exec_i::~SimplePublisherHome_exec_i (void)
+ {
+ DANCE_TRACE ("SimplePublisherHome_exec_i::~SimplePublisherHome_exec_i (void)");
+ }
+
+ // Supported or inherited operations.
+
+ // Home operations.
+
+ // Factory and finder operations.
+
+ // Attribute operations.
+
+ // Implicit operations.
+
+ ::Components::EnterpriseComponent_ptr
+ SimplePublisherHome_exec_i::create ()
+ {
+ DANCE_TRACE ("SimplePublisherHome_exec_i::create ()");
+ ::Components::EnterpriseComponent_ptr retval =
+ ::Components::EnterpriseComponent::_nil ();
+
+ ACE_NEW_THROW_EX (
+ retval,
+ SimplePublisher_exec_i,
+ ::CORBA::NO_MEMORY ());
+
+ return retval;
+ }
+
+ extern "C" SIMPLEPUBLISHER_EXEC_Export ::Components::HomeExecutorBase_ptr
+ create_Simple_SimplePublisherHome_Impl (void)
+ {
+ DANCE_TRACE ("create_Simple_SimplePublisherHome_Impl (void)");
+
+ ::Components::HomeExecutorBase_ptr retval =
+ ::Components::HomeExecutorBase::_nil ();
+
+ ACE_NEW_RETURN (
+ retval,
+ SimplePublisherHome_exec_i,
+ ::Components::HomeExecutorBase::_nil ());
+
+ return retval;
+ }
+}
+
diff --git a/modules/CIAO/DAnCE/tests/CIAO/Components/SimplePublisher_exec.h b/modules/CIAO/DAnCE/tests/CIAO/Components/SimplePublisher_exec.h
new file mode 100644
index 00000000000..0f5ab965757
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/SimplePublisher_exec.h
@@ -0,0 +1,80 @@
+// $Id$
+
+#ifndef CIAO_SIMPLEPUBLISHER_EXEC_H
+#define CIAO_SIMPLEPUBLISHER_EXEC_H
+
+#include /**/ "ace/pre.h"
+
+#include "SimplePublisherEC.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "SimplePublisher_exec_export.h"
+#include "tao/LocalObject.h"
+
+namespace CIAO_Simple_SimplePublisher_Impl
+{
+ class SIMPLEPUBLISHER_EXEC_Export SimplePublisher_exec_i
+ : public virtual SimplePublisher_Exec,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ SimplePublisher_exec_i (void);
+ virtual ~SimplePublisher_exec_i (void);
+
+ // Supported or inherited operations.
+
+ // Attribute operations.
+
+ // Port operations.
+
+ // Operations from Components::SessionComponent
+
+ virtual void
+ set_session_context (
+ ::Components::SessionContext_ptr ctx);
+
+ virtual void configuration_complete ();
+
+ virtual void ccm_activate ();
+
+ virtual void ccm_passivate ();
+
+ virtual void ccm_remove ();
+
+ private:
+ ::Simple::CCM_SimplePublisher_Context_var context_;
+ };
+
+ class SIMPLEPUBLISHER_EXEC_Export SimplePublisherHome_exec_i
+ : public virtual SimplePublisherHome_Exec,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ SimplePublisherHome_exec_i (void);
+ virtual ~SimplePublisherHome_exec_i (void);
+
+ // Supported or inherited operations.
+
+ // Home operations.
+
+ // Factory and finder operations.
+
+ // Attribute operations.
+
+ // Implicit operations.
+
+ virtual ::Components::EnterpriseComponent_ptr
+ create ();
+ };
+
+ extern "C" SIMPLEPUBLISHER_EXEC_Export ::Components::HomeExecutorBase_ptr
+ create_Simple_SimplePublisherHome_Impl (void);
+}
+
+#include /**/ "ace/post.h"
+
+#endif /* CIAO_SIMPLEPUBLISHER_EXEC_H */
+
diff --git a/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleUser.idl b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleUser.idl
new file mode 100644
index 00000000000..90d4e67e542
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleUser.idl
@@ -0,0 +1,21 @@
+// $Id$
+
+#ifndef SIMPLE_USER_IDL
+#define SIMPLE_USER_IDL
+
+#include "SimpleCommon.idl"
+#include "Components.idl"
+
+module Simple
+{
+ component SimpleUser
+ {
+ uses Trigger trig;
+ };
+
+ home SimpleUserHome manages SimpleUser
+ {
+ };
+};
+
+#endif /*SIMPLE_USER_IDL*/
diff --git a/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleUser.mpc b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleUser.mpc
new file mode 100644
index 00000000000..ff9215fabda
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleUser.mpc
@@ -0,0 +1,111 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl -p SimpleCommon SimpleUser"
+
+project(SimpleCommon_SimpleUser_idl_gen) : componentidldefaults {
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=SIMPLEUSER_STUB_Export \
+ -Wb,stub_export_include=SimpleUser_stub_export.h \
+ -Wb,skel_export_macro=SIMPLEUSER_SVNT_Export \
+ -Wb,skel_export_include=SimpleUser_svnt_export.h \
+ -Wb,exec_export_macro=SIMPLEUSER_EXEC_Export \
+ -Wb,exec_export_include=SimpleUser_exec_export.h \
+ -Gsv
+
+ IDL_Files {
+ SimpleUser.idl
+ }
+}
+
+project(SimpleCommon_SimpleUser_lem_gen) : ciaoidldefaults {
+ after += SimpleCommon_SimpleUser_idl_gen
+ custom_only = 1
+ idlflags += -Wb,export_macro=SIMPLEUSER_EXEC_Export \
+ -Wb,export_include=SimpleUser_exec_export.h \
+ -SS
+
+ IDL_Files {
+ SimpleUserE.idl
+ }
+}
+
+project(SimpleCommon_SimpleUser_stub) : ccm_stub {
+ after += SimpleCommon_SimpleUser_idl_gen SimpleCommon_stub
+ libs += SimpleCommon_stub
+
+ sharedname = SimpleUser_stub
+ dynamicflags = SIMPLEUSER_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ SimpleUserC.cpp
+ }
+
+ Header_Files {
+ SimpleUserC.h
+ SimpleUser_stub_export.h
+ }
+
+ Inline_Files {
+ SimpleUserC.inl
+ }
+}
+
+project(SimpleCommon_SimpleUser_exec) : ciao_executor {
+ after += SimpleCommon_SimpleUser_lem_gen SimpleCommon_SimpleUser_stub
+ sharedname = SimpleUser_exec
+ libs += SimpleUser_stub SimpleCommon_stub
+
+ dynamicflags = SIMPLEUSER_EXEC_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ SimpleUserEC.cpp
+ SimpleUser_exec.cpp
+ }
+
+ Header_Files {
+ SimpleUserEC.h
+ SimpleUser_exec.h
+ SimpleUser_exec_export.h
+ }
+
+ Inline_Files {
+ SimpleUserEC.inl
+ }
+}
+
+
+project(SimpleCommon_SimpleUser_svnt) : ciao_servant {
+ after += SimpleCommon_skel SimpleCommon_SimpleUser_exec
+ sharedname = SimpleUser_svnt
+ libs += SimpleUser_exec \
+ SimpleUser_stub \
+ SimpleCommon_skel \
+ SimpleCommon_stub
+
+ dynamicflags = SIMPLEUSER_SVNT_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ SimpleUserS.cpp
+ SimpleUser_svnt.cpp
+ }
+
+ Header_Files {
+ SimpleUserS.h
+ SimpleUser_svnt.h
+ SimpleUser_svnt_export.h
+ }
+
+ Inline_Files {
+ SimpleUserS.inl
+ }
+}
+
+
diff --git a/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleUser_exec.cpp b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleUser_exec.cpp
new file mode 100644
index 00000000000..c27e6dc4c48
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleUser_exec.cpp
@@ -0,0 +1,151 @@
+// $Id$
+
+#include "SimpleUser_exec.h"
+#include "DAnCE/Logger/Log_Macros.h"
+
+namespace CIAO_Simple_SimpleUser_Impl
+{
+ //==================================================================
+ // Component Executor Implementation Class: SimpleUser_exec_i
+ //==================================================================
+
+ SimpleUser_exec_i::SimpleUser_exec_i (void)
+ {
+ DANCE_TRACE ("SimpleUser_exec_i::SimpleUser_exec_i (void)");
+ }
+
+ SimpleUser_exec_i::~SimpleUser_exec_i (void)
+ {
+ DANCE_TRACE ("SimpleUser_exec_i::~SimpleUser_exec_i (void)");
+ }
+
+ // Supported or inherited operations.
+
+ // Attribute operations.
+
+ // Port operations.
+
+ // Operations from Components::SessionComponent
+
+ void
+ SimpleUser_exec_i::set_session_context (
+ ::Components::SessionContext_ptr ctx)
+ {
+ DANCE_TRACE ("SimpleUser_exec_i::set_session_context ()");
+ this->context_ =
+ ::Simple::CCM_SimpleUser_Context::_narrow (ctx);
+
+ if (CORBA::is_nil (this->context_.in ()))
+ {
+ throw ::CORBA::INTERNAL ();
+ }
+ }
+
+ void
+ SimpleUser_exec_i::configuration_complete ()
+ {
+ DANCE_TRACE ("SimpleUser_exec_i::configuration_complete ()");
+ // Your code here.
+ }
+
+ void
+ SimpleUser_exec_i::ccm_activate ()
+ {
+ DANCE_TRACE ("SimpleUser_exec_i::ccm_activate ()");
+
+ ::Simple::Trigger_var trig (this->context_->get_connection_trig ());
+
+ if (CORBA::is_nil (trig.in ()))
+ {
+ ACE_ERROR ((LM_ERROR, "SimpleUser_exec_i::ccm_activate () - "
+ "Error: Reference nil for port trig\n"));
+ return;
+ }
+
+ // Your code here.
+ try
+ {
+ trig->hello ("Test successful; hello from SimpleUser.");
+ }
+ catch (CORBA::Exception &ex)
+ {
+ ACE_ERROR ((LM_ERROR, "SimpleUser_exec_i::ccm_activate () - "
+ "Caught CORBA exception, details follow:\n"));
+ ex._tao_print_exception ("SimpleUser_exec_i::ccm_activate () - ");
+ }
+ catch (...)
+ {
+ ACE_ERROR ((LM_ERROR, "SimpleUser_exec_i::ccm_activate () - "
+ "Error: Caught unknown exception whilst invoking reference for port trig.\n"));
+ }
+ }
+
+ void
+ SimpleUser_exec_i::ccm_passivate ()
+ {
+ DANCE_TRACE ("SimpleUser_exec_i::ccm_passivate ()");
+ // Your code here.
+ }
+
+ void
+ SimpleUser_exec_i::ccm_remove ()
+ {
+ DANCE_TRACE ("SimpleUser_exec_i::ccm_remove ()");
+ // Your code here.
+ }
+
+ //==================================================================
+ // Home Executor Implementation Class: SimpleUserHome_exec_i
+ //==================================================================
+
+ SimpleUserHome_exec_i::SimpleUserHome_exec_i (void)
+ {
+ DANCE_TRACE ("SimpleUserHome_exec_i::SimpleUserHome_exec_i (void)");
+ }
+
+ SimpleUserHome_exec_i::~SimpleUserHome_exec_i (void)
+ {
+ DANCE_TRACE ("SimpleUserHome_exec_i::~SimpleUserHome_exec_i (void)");
+ }
+
+ // Supported or inherited operations.
+
+ // Home operations.
+
+ // Factory and finder operations.
+
+ // Attribute operations.
+
+ // Implicit operations.
+
+ ::Components::EnterpriseComponent_ptr
+ SimpleUserHome_exec_i::create ()
+ {
+ DANCE_TRACE ("SimpleUserHome_exec_i::create ()");
+ ::Components::EnterpriseComponent_ptr retval =
+ ::Components::EnterpriseComponent::_nil ();
+
+ ACE_NEW_THROW_EX (
+ retval,
+ SimpleUser_exec_i,
+ ::CORBA::NO_MEMORY ());
+
+ return retval;
+ }
+
+ extern "C" SIMPLEUSER_EXEC_Export ::Components::HomeExecutorBase_ptr
+ create_Simple_SimpleUserHome_Impl (void)
+ {
+ DANCE_TRACE ("create_Simple_SimpleUserHome_Impl (void)");
+ ::Components::HomeExecutorBase_ptr retval =
+ ::Components::HomeExecutorBase::_nil ();
+
+ ACE_NEW_RETURN (
+ retval,
+ SimpleUserHome_exec_i,
+ ::Components::HomeExecutorBase::_nil ());
+
+ return retval;
+ }
+}
+
diff --git a/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleUser_exec.h b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleUser_exec.h
new file mode 100644
index 00000000000..7041ae92ba4
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleUser_exec.h
@@ -0,0 +1,80 @@
+// $Id$
+
+#ifndef CIAO_SIMPLEUSER_EXEC_H
+#define CIAO_SIMPLEUSER_EXEC_H
+
+#include /**/ "ace/pre.h"
+
+#include "SimpleUserEC.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "SimpleUser_exec_export.h"
+#include "tao/LocalObject.h"
+
+namespace CIAO_Simple_SimpleUser_Impl
+{
+ class SIMPLEUSER_EXEC_Export SimpleUser_exec_i
+ : public virtual SimpleUser_Exec,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ SimpleUser_exec_i (void);
+ virtual ~SimpleUser_exec_i (void);
+
+ // Supported or inherited operations.
+
+ // Attribute operations.
+
+ // Port operations.
+
+ // Operations from Components::SessionComponent
+
+ virtual void
+ set_session_context (
+ ::Components::SessionContext_ptr ctx);
+
+ virtual void configuration_complete ();
+
+ virtual void ccm_activate ();
+
+ virtual void ccm_passivate ();
+
+ virtual void ccm_remove ();
+
+ private:
+ ::Simple::CCM_SimpleUser_Context_var context_;
+ };
+
+ class SIMPLEUSER_EXEC_Export SimpleUserHome_exec_i
+ : public virtual SimpleUserHome_Exec,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ SimpleUserHome_exec_i (void);
+ virtual ~SimpleUserHome_exec_i (void);
+
+ // Supported or inherited operations.
+
+ // Home operations.
+
+ // Factory and finder operations.
+
+ // Attribute operations.
+
+ // Implicit operations.
+
+ virtual ::Components::EnterpriseComponent_ptr
+ create ();
+ };
+
+ extern "C" SIMPLEUSER_EXEC_Export ::Components::HomeExecutorBase_ptr
+ create_Simple_SimpleUserHome_Impl (void);
+}
+
+#include /**/ "ace/post.h"
+
+#endif /* CIAO_SIMPLEUSER_EXEC_H */
+
diff --git a/modules/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/1NodeFailureAtActivate.cdp b/modules/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/1NodeFailureAtActivate.cdp
new file mode 100644
index 00000000000..80901f25ca4
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/1NodeFailureAtActivate.cdp
@@ -0,0 +1,133 @@
+<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>1NodePlan</label>
+ <UUID>1NodePlan</UUID>
+
+ <!-- Implementations declarations -->
+
+ <!-- Server Dance implementation-->
+ <!-- Home implementation -->
+ <implementation xmi:id="SimpleFailureHomeImplementation">
+ <name>SimpleFailureHomeImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleFailure_ExecArtifact" />
+ <artifact xmi:idref="SimpleFailure_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleFailureHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleFailureHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleFailure_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleFailure_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="SimpleFailureComponentImplementation">
+ <name>SimpleFailureComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleFailure_ExecArtifact" />
+ <artifact xmi:idref="SimpleFailure_SvntArtifact" />
+ </implementation>
+
+ <instance xmi:id="SimpleFailureHomeInstance">
+ <name>SimpleFailureHome</name>
+ <node>Node1</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleFailureHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimpleFailureComponentInstance">
+ <name>SimpleFailureComponent</name>
+ <node>Node1</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleFailureComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleFailureHome</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>type_attr</name>
+ <value>
+ <type>
+ <kind>tk_enum</kind>
+ <enum>
+ <name>FailureType</name>
+ <typeId>IDL:Simple/FailureType:1.0</typeId>
+ <member>NO_FAILURE</member>
+ <member>AT_STARTUP</member>
+ <member>AT_ACTIVATE</member>
+ <member>AT_PASSIVATE</member>
+ <member>AT_REMOVE</member>
+ </enum>
+ </type>
+ <value>
+ <enum>AT_ACTIVATE</enum>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <!-- Artifacts declarations -->
+ <artifact xmi:id="SimpleFailure_ExecArtifact">
+ <name>SimpleFailure_exec</name>
+ <source/>
+ <node/>
+ <location>SimpleFailure_exec</location>
+ </artifact>
+ <artifact xmi:id="SimpleFailure_SvntArtifact">
+ <name>SimpleFailure_svnt</name>
+ <source/>
+ <node/>
+ <location>SimpleFailure_svnt</location>
+ </artifact>
+
+ </Deployment:DeploymentPlan>
diff --git a/modules/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/1NodeFailureAtStartup.cdp b/modules/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/1NodeFailureAtStartup.cdp
new file mode 100644
index 00000000000..8874e3f840a
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/1NodeFailureAtStartup.cdp
@@ -0,0 +1,133 @@
+<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>1NodePlan</label>
+ <UUID>1NodePlan</UUID>
+
+ <!-- Implementations declarations -->
+
+ <!-- Server Dance implementation-->
+ <!-- Home implementation -->
+ <implementation xmi:id="SimpleFailureHomeImplementation">
+ <name>SimpleFailureHomeImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleFailure_ExecArtifact" />
+ <artifact xmi:idref="SimpleFailure_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleFailureHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleFailureHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleFailure_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleFailure_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="SimpleFailureComponentImplementation">
+ <name>SimpleFailureComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleFailure_ExecArtifact" />
+ <artifact xmi:idref="SimpleFailure_SvntArtifact" />
+ </implementation>
+
+ <instance xmi:id="SimpleFailureHomeInstance">
+ <name>SimpleFailureHome</name>
+ <node>Node1</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleFailureHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimpleFailureComponentInstance">
+ <name>SimpleFailureComponent</name>
+ <node>Node1</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleFailureComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleFailureHome</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>type_attr</name>
+ <value>
+ <type>
+ <kind>tk_enum</kind>
+ <enum>
+ <name>FailureType</name>
+ <typeId>IDL:Simple/FailureType:1.0</typeId>
+ <member>NO_FAILURE</member>
+ <member>AT_STARTUP</member>
+ <member>AT_ACTIVATE</member>
+ <member>AT_PASSIVATE</member>
+ <member>AT_REMOVE</member>
+ </enum>
+ </type>
+ <value>
+ <enum>AT_STARTUP</enum>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <!-- Artifacts declarations -->
+ <artifact xmi:id="SimpleFailure_ExecArtifact">
+ <name>SimpleFailure_exec</name>
+ <source/>
+ <node/>
+ <location>SimpleFailure_exec</location>
+ </artifact>
+ <artifact xmi:id="SimpleFailure_SvntArtifact">
+ <name>SimpleFailure_svnt</name>
+ <source/>
+ <node/>
+ <location>SimpleFailure_svnt</location>
+ </artifact>
+
+ </Deployment:DeploymentPlan>
diff --git a/modules/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/1NodeNoFailure.cdp b/modules/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/1NodeNoFailure.cdp
new file mode 100644
index 00000000000..8f773621a35
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/1NodeNoFailure.cdp
@@ -0,0 +1,133 @@
+<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>1NodePlan</label>
+ <UUID>1NodePlan</UUID>
+
+ <!-- Implementations declarations -->
+
+ <!-- Server Dance implementation-->
+ <!-- Home implementation -->
+ <implementation xmi:id="SimpleFailureHomeImplementation">
+ <name>SimpleFailureHomeImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleFailure_ExecArtifact" />
+ <artifact xmi:idref="SimpleFailure_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleFailureHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleFailureHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleFailure_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleFailure_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="SimpleFailureComponentImplementation">
+ <name>SimpleFailureComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleFailure_ExecArtifact" />
+ <artifact xmi:idref="SimpleFailure_SvntArtifact" />
+ </implementation>
+
+ <instance xmi:id="SimpleFailureHomeInstance">
+ <name>SimpleFailureHome</name>
+ <node>Node1</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleFailureHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimpleFailureComponentInstance">
+ <name>SimpleFailureComponent</name>
+ <node>Node1</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleFailureComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleFailureHome</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>type_attr</name>
+ <value>
+ <type>
+ <kind>tk_enum</kind>
+ <enum>
+ <name>FailureType</name>
+ <typeId>IDL:Simple/FailureType:1.0</typeId>
+ <member>NO_FAILURE</member>
+ <member>AT_STARTUP</member>
+ <member>AT_ACTIVATE</member>
+ <member>AT_PASSIVATE</member>
+ <member>AT_REMOVE</member>
+ </enum>
+ </type>
+ <value>
+ <enum>NO_FAILURE</enum>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <!-- Artifacts declarations -->
+ <artifact xmi:id="SimpleFailure_ExecArtifact">
+ <name>SimpleFailure_exec</name>
+ <source/>
+ <node/>
+ <location>SimpleFailure_exec</location>
+ </artifact>
+ <artifact xmi:id="SimpleFailure_SvntArtifact">
+ <name>SimpleFailure_svnt</name>
+ <source/>
+ <node/>
+ <location>SimpleFailure_svnt</location>
+ </artifact>
+
+ </Deployment:DeploymentPlan>
diff --git a/modules/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/2NodeFailureAtActivate.cdp b/modules/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/2NodeFailureAtActivate.cdp
new file mode 100644
index 00000000000..32fae58667c
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/2NodeFailureAtActivate.cdp
@@ -0,0 +1,184 @@
+<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>2NodePlan</label>
+ <UUID>2NodePlan</UUID>
+
+ <!-- Implementations declarations -->
+
+ <!-- Server Dance implementation-->
+ <!-- Home implementation -->
+ <implementation xmi:id="SimpleFailureHomeImplementation">
+ <name>SimpleFailureHomeImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleFailure_ExecArtifact" />
+ <artifact xmi:idref="SimpleFailure_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleFailureHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleFailureHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleFailure_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleFailure_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="SimpleFailureComponentImplementation">
+ <name>SimpleFailureComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleFailure_ExecArtifact" />
+ <artifact xmi:idref="SimpleFailure_SvntArtifact" />
+ </implementation>
+
+ <!-- Node One -->
+
+ <instance xmi:id="SimpleFailureHomeInstance">
+ <name>SimpleFailureHome</name>
+ <node>Node1</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleFailureHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimpleFailureComponentInstance">
+ <name>SimpleFailureComponent</name>
+ <node>Node1</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleFailureComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleFailureHome</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>type_attr</name>
+ <value>
+ <type>
+ <kind>tk_enum</kind>
+ <enum>
+ <name>FailureType</name>
+ <typeId>IDL:Simple/FailureType:1.0</typeId>
+ <member>NO_FAILURE</member>
+ <member>AT_STARTUP</member>
+ <member>AT_ACTIVATE</member>
+ <member>AT_PASSIVATE</member>
+ <member>AT_REMOVE</member>
+ </enum>
+ </type>
+ <value>
+ <enum>NO_FAILURE</enum>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <!-- Node Two -->
+
+ <instance xmi:id="SimpleFailureHome2Instance">
+ <name>SimpleFailureHome2</name>
+ <node>Node2</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleFailureHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimpleFailureComponent2Instance">
+ <name>SimpleFailureComponent2</name>
+ <node>Node2</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleFailureComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleFailureHome2</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>type_attr</name>
+ <value>
+ <type>
+ <kind>tk_enum</kind>
+ <enum>
+ <name>FailureType</name>
+ <typeId>IDL:Simple/FailureType:1.0</typeId>
+ <member>NO_FAILURE</member>
+ <member>AT_STARTUP</member>
+ <member>AT_ACTIVATE</member>
+ <member>AT_PASSIVATE</member>
+ <member>AT_REMOVE</member>
+ </enum>
+ </type>
+ <value>
+ <enum>AT_ACTIVATE</enum>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <!-- Artifacts declarations -->
+ <artifact xmi:id="SimpleFailure_ExecArtifact">
+ <name>SimpleFailure_exec</name>
+ <source/>
+ <node/>
+ <location>SimpleFailure_exec</location>
+ </artifact>
+ <artifact xmi:id="SimpleFailure_SvntArtifact">
+ <name>SimpleFailure_svnt</name>
+ <source/>
+ <node/>
+ <location>SimpleFailure_svnt</location>
+ </artifact>
+
+ </Deployment:DeploymentPlan>
diff --git a/modules/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/2NodeFailureAtStartup.cdp b/modules/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/2NodeFailureAtStartup.cdp
new file mode 100644
index 00000000000..db0b5b819b4
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/2NodeFailureAtStartup.cdp
@@ -0,0 +1,184 @@
+<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>2NodePlan</label>
+ <UUID>2NodePlan</UUID>
+
+ <!-- Implementations declarations -->
+
+ <!-- Server Dance implementation-->
+ <!-- Home implementation -->
+ <implementation xmi:id="SimpleFailureHomeImplementation">
+ <name>SimpleFailureHomeImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleFailure_ExecArtifact" />
+ <artifact xmi:idref="SimpleFailure_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleFailureHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleFailureHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleFailure_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleFailure_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="SimpleFailureComponentImplementation">
+ <name>SimpleFailureComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleFailure_ExecArtifact" />
+ <artifact xmi:idref="SimpleFailure_SvntArtifact" />
+ </implementation>
+
+ <!-- Node One -->
+
+ <instance xmi:id="SimpleFailureHomeInstance">
+ <name>SimpleFailureHome</name>
+ <node>Node1</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleFailureHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimpleFailureComponentInstance">
+ <name>SimpleFailureComponent</name>
+ <node>Node1</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleFailureComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleFailureHome</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>type_attr</name>
+ <value>
+ <type>
+ <kind>tk_enum</kind>
+ <enum>
+ <name>FailureType</name>
+ <typeId>IDL:Simple/FailureType:1.0</typeId>
+ <member>NO_FAILURE</member>
+ <member>AT_STARTUP</member>
+ <member>AT_ACTIVATE</member>
+ <member>AT_PASSIVATE</member>
+ <member>AT_REMOVE</member>
+ </enum>
+ </type>
+ <value>
+ <enum>NO_FAILURE</enum>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <!-- Node Two -->
+
+ <instance xmi:id="SimpleFailureHome2Instance">
+ <name>SimpleFailureHome2</name>
+ <node>Node2</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleFailureHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimpleFailureComponent2Instance">
+ <name>SimpleFailureComponent2</name>
+ <node>Node2</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleFailureComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleFailureHome2</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>type_attr</name>
+ <value>
+ <type>
+ <kind>tk_enum</kind>
+ <enum>
+ <name>FailureType</name>
+ <typeId>IDL:Simple/FailureType:1.0</typeId>
+ <member>NO_FAILURE</member>
+ <member>AT_STARTUP</member>
+ <member>AT_ACTIVATE</member>
+ <member>AT_PASSIVATE</member>
+ <member>AT_REMOVE</member>
+ </enum>
+ </type>
+ <value>
+ <enum>AT_STARTUP</enum>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <!-- Artifacts declarations -->
+ <artifact xmi:id="SimpleFailure_ExecArtifact">
+ <name>SimpleFailure_exec</name>
+ <source/>
+ <node/>
+ <location>SimpleFailure_exec</location>
+ </artifact>
+ <artifact xmi:id="SimpleFailure_SvntArtifact">
+ <name>SimpleFailure_svnt</name>
+ <source/>
+ <node/>
+ <location>SimpleFailure_svnt</location>
+ </artifact>
+
+ </Deployment:DeploymentPlan>
diff --git a/modules/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/2NodeNoFailure.cdp b/modules/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/2NodeNoFailure.cdp
new file mode 100644
index 00000000000..b6a600d09af
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/2NodeNoFailure.cdp
@@ -0,0 +1,184 @@
+<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>2NodePlan</label>
+ <UUID>2NodePlan</UUID>
+
+ <!-- Implementations declarations -->
+
+ <!-- Server Dance implementation-->
+ <!-- Home implementation -->
+ <implementation xmi:id="SimpleFailureHomeImplementation">
+ <name>SimpleFailureHomeImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleFailure_ExecArtifact" />
+ <artifact xmi:idref="SimpleFailure_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleFailureHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleFailureHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleFailure_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleFailure_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="SimpleFailureComponentImplementation">
+ <name>SimpleFailureComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleFailure_ExecArtifact" />
+ <artifact xmi:idref="SimpleFailure_SvntArtifact" />
+ </implementation>
+
+ <!-- Node One -->
+
+ <instance xmi:id="SimpleFailureHomeInstance">
+ <name>SimpleFailureHome</name>
+ <node>Node1</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleFailureHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimpleFailureComponentInstance">
+ <name>SimpleFailureComponent</name>
+ <node>Node1</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleFailureComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleFailureHome</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>type_attr</name>
+ <value>
+ <type>
+ <kind>tk_enum</kind>
+ <enum>
+ <name>FailureType</name>
+ <typeId>IDL:Simple/FailureType:1.0</typeId>
+ <member>NO_FAILURE</member>
+ <member>AT_STARTUP</member>
+ <member>AT_ACTIVATE</member>
+ <member>AT_PASSIVATE</member>
+ <member>AT_REMOVE</member>
+ </enum>
+ </type>
+ <value>
+ <enum>NO_FAILURE</enum>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <!-- Node Two -->
+
+ <instance xmi:id="SimpleFailureHome2Instance">
+ <name>SimpleFailureHome2</name>
+ <node>Node2</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleFailureHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimpleFailureComponent2Instance">
+ <name>SimpleFailureComponent2</name>
+ <node>Node2</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleFailureComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleFailureHome2</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>type_attr</name>
+ <value>
+ <type>
+ <kind>tk_enum</kind>
+ <enum>
+ <name>FailureType</name>
+ <typeId>IDL:Simple/FailureType:1.0</typeId>
+ <member>NO_FAILURE</member>
+ <member>AT_STARTUP</member>
+ <member>AT_ACTIVATE</member>
+ <member>AT_PASSIVATE</member>
+ <member>AT_REMOVE</member>
+ </enum>
+ </type>
+ <value>
+ <enum>NO_FAILURE</enum>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <!-- Artifacts declarations -->
+ <artifact xmi:id="SimpleFailure_ExecArtifact">
+ <name>SimpleFailure_exec</name>
+ <source/>
+ <node/>
+ <location>SimpleFailure_exec</location>
+ </artifact>
+ <artifact xmi:id="SimpleFailure_SvntArtifact">
+ <name>SimpleFailure_svnt</name>
+ <source/>
+ <node/>
+ <location>SimpleFailure_svnt</location>
+ </artifact>
+
+ </Deployment:DeploymentPlan>
diff --git a/modules/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/5NodeFailureAtActivate.cdp b/modules/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/5NodeFailureAtActivate.cdp
new file mode 100644
index 00000000000..9f6315a7ca7
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/5NodeFailureAtActivate.cdp
@@ -0,0 +1,331 @@
+<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>5NodePlan</label>
+ <UUID>5NodePlan</UUID>
+
+ <!-- Implementations declarations -->
+
+ <!-- Server Dance implementation-->
+ <!-- Home implementation -->
+ <implementation xmi:id="SimpleFailureHomeImplementation">
+ <name>SimpleFailureHomeImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleFailure_ExecArtifact" />
+ <artifact xmi:idref="SimpleFailure_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleFailureHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleFailureHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleFailure_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleFailure_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="SimpleFailureComponentImplementation">
+ <name>SimpleFailureComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleFailure_ExecArtifact" />
+ <artifact xmi:idref="SimpleFailure_SvntArtifact" />
+ </implementation>
+
+ <!-- Node One -->
+
+ <instance xmi:id="SimpleFailureHomeInstance">
+ <name>SimpleFailureHome</name>
+ <node>Node1</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleFailureHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimpleFailureComponentInstance">
+ <name>SimpleFailureComponent</name>
+ <node>Node1</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleFailureComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleFailureHome</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>type_attr</name>
+ <value>
+ <type>
+ <kind>tk_enum</kind>
+ <enum>
+ <name>FailureType</name>
+ <typeId>IDL:Simple/FailureType:1.0</typeId>
+ <member>NO_FAILURE</member>
+ <member>AT_STARTUP</member>
+ <member>AT_ACTIVATE</member>
+ <member>AT_PASSIVATE</member>
+ <member>AT_REMOVE</member>
+ </enum>
+ </type>
+ <value>
+ <enum>NO_FAILURE</enum>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <!-- Node Two -->
+
+ <instance xmi:id="SimpleFailureHome2Instance">
+ <name>SimpleFailureHome2</name>
+ <node>Node2</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleFailureHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimpleFailureComponent2Instance">
+ <name>SimpleFailureComponent2</name>
+ <node>Node2</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleFailureComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleFailureHome2</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>type_attr</name>
+ <value>
+ <type>
+ <kind>tk_enum</kind>
+ <enum>
+ <name>FailureType</name>
+ <typeId>IDL:Simple/FailureType:1.0</typeId>
+ <member>NO_FAILURE</member>
+ <member>AT_STARTUP</member>
+ <member>AT_ACTIVATE</member>
+ <member>AT_PASSIVATE</member>
+ <member>AT_REMOVE</member>
+ </enum>
+ </type>
+ <value>
+ <enum>AT_ACTIVATE</enum>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <!-- Node Three -->
+
+ <instance xmi:id="SimpleFailureHome3Instance">
+ <name>SimpleFailureHome3</name>
+ <node>Node3</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleFailureHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimpleFailureComponent3Instance">
+ <name>SimpleFailureComponent3</name>
+ <node>Node3</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleFailureComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleFailureHome3</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>type_attr</name>
+ <value>
+ <type>
+ <kind>tk_enum</kind>
+ <enum>
+ <name>FailureType</name>
+ <typeId>IDL:Simple/FailureType:1.0</typeId>
+ <member>NO_FAILURE</member>
+ <member>AT_STARTUP</member>
+ <member>AT_ACTIVATE</member>
+ <member>AT_PASSIVATE</member>
+ <member>AT_REMOVE</member>
+ </enum>
+ </type>
+ <value>
+ <enum>NO_FAILURE</enum>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <!-- Node Four -->
+
+ <instance xmi:id="SimpleFailureHome4Instance">
+ <name>SimpleFailureHome4</name>
+ <node>Node4</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleFailureHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimpleFailureComponent4Instance">
+ <name>SimpleFailureComponent4</name>
+ <node>Node4</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleFailureComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleFailureHome4</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>type_attr</name>
+ <value>
+ <type>
+ <kind>tk_enum</kind>
+ <enum>
+ <name>FailureType</name>
+ <typeId>IDL:Simple/FailureType:1.0</typeId>
+ <member>NO_FAILURE</member>
+ <member>AT_STARTUP</member>
+ <member>AT_ACTIVATE</member>
+ <member>AT_PASSIVATE</member>
+ <member>AT_REMOVE</member>
+ </enum>
+ </type>
+ <value>
+ <enum>AT_ACTIVATE</enum>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <!-- Node Five -->
+
+ <instance xmi:id="SimpleFailureHome5Instance">
+ <name>SimpleFailureHome5</name>
+ <node>Node5</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleFailureHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimpleFailureComponent5Instance">
+ <name>SimpleFailureComponent5</name>
+ <node>Node5</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleFailureComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleFailureHome5</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>type_attr</name>
+ <value>
+ <type>
+ <kind>tk_enum</kind>
+ <enum>
+ <name>FailureType</name>
+ <typeId>IDL:Simple/FailureType:1.0</typeId>
+ <member>NO_FAILURE</member>
+ <member>AT_STARTUP</member>
+ <member>AT_ACTIVATE</member>
+ <member>AT_PASSIVATE</member>
+ <member>AT_REMOVE</member>
+ </enum>
+ </type>
+ <value>
+ <enum>NO_FAILURE</enum>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <!-- Artifacts declarations -->
+ <artifact xmi:id="SimpleFailure_ExecArtifact">
+ <name>SimpleFailure_exec</name>
+ <source/>
+ <node/>
+ <location>SimpleFailure_exec</location>
+ </artifact>
+ <artifact xmi:id="SimpleFailure_SvntArtifact">
+ <name>SimpleFailure_svnt</name>
+ <source/>
+ <node/>
+ <location>SimpleFailure_svnt</location>
+ </artifact>
+
+ </Deployment:DeploymentPlan>
diff --git a/modules/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/5NodeFailureAtStartup.cdp b/modules/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/5NodeFailureAtStartup.cdp
new file mode 100644
index 00000000000..37718ae6dd1
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/5NodeFailureAtStartup.cdp
@@ -0,0 +1,331 @@
+<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>5NodePlan</label>
+ <UUID>5NodePlan</UUID>
+
+ <!-- Implementations declarations -->
+
+ <!-- Server Dance implementation-->
+ <!-- Home implementation -->
+ <implementation xmi:id="SimpleFailureHomeImplementation">
+ <name>SimpleFailureHomeImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleFailure_ExecArtifact" />
+ <artifact xmi:idref="SimpleFailure_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleFailureHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleFailureHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleFailure_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleFailure_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="SimpleFailureComponentImplementation">
+ <name>SimpleFailureComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleFailure_ExecArtifact" />
+ <artifact xmi:idref="SimpleFailure_SvntArtifact" />
+ </implementation>
+
+ <!-- Node One -->
+
+ <instance xmi:id="SimpleFailureHomeInstance">
+ <name>SimpleFailureHome</name>
+ <node>Node1</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleFailureHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimpleFailureComponentInstance">
+ <name>SimpleFailureComponent</name>
+ <node>Node1</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleFailureComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleFailureHome</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>type_attr</name>
+ <value>
+ <type>
+ <kind>tk_enum</kind>
+ <enum>
+ <name>FailureType</name>
+ <typeId>IDL:Simple/FailureType:1.0</typeId>
+ <member>NO_FAILURE</member>
+ <member>AT_STARTUP</member>
+ <member>AT_ACTIVATE</member>
+ <member>AT_PASSIVATE</member>
+ <member>AT_REMOVE</member>
+ </enum>
+ </type>
+ <value>
+ <enum>NO_FAILURE</enum>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <!-- Node Two -->
+
+ <instance xmi:id="SimpleFailureHome2Instance">
+ <name>SimpleFailureHome2</name>
+ <node>Node2</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleFailureHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimpleFailureComponent2Instance">
+ <name>SimpleFailureComponent2</name>
+ <node>Node2</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleFailureComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleFailureHome2</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>type_attr</name>
+ <value>
+ <type>
+ <kind>tk_enum</kind>
+ <enum>
+ <name>FailureType</name>
+ <typeId>IDL:Simple/FailureType:1.0</typeId>
+ <member>NO_FAILURE</member>
+ <member>AT_STARTUP</member>
+ <member>AT_ACTIVATE</member>
+ <member>AT_PASSIVATE</member>
+ <member>AT_REMOVE</member>
+ </enum>
+ </type>
+ <value>
+ <enum>AT_STARTUP</enum>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <!-- Node Three -->
+
+ <instance xmi:id="SimpleFailureHome3Instance">
+ <name>SimpleFailureHome3</name>
+ <node>Node3</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleFailureHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimpleFailureComponent3Instance">
+ <name>SimpleFailureComponent3</name>
+ <node>Node3</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleFailureComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleFailureHome3</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>type_attr</name>
+ <value>
+ <type>
+ <kind>tk_enum</kind>
+ <enum>
+ <name>FailureType</name>
+ <typeId>IDL:Simple/FailureType:1.0</typeId>
+ <member>NO_FAILURE</member>
+ <member>AT_STARTUP</member>
+ <member>AT_ACTIVATE</member>
+ <member>AT_PASSIVATE</member>
+ <member>AT_REMOVE</member>
+ </enum>
+ </type>
+ <value>
+ <enum>NO_FAILURE</enum>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <!-- Node Four -->
+
+ <instance xmi:id="SimpleFailureHome4Instance">
+ <name>SimpleFailureHome4</name>
+ <node>Node4</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleFailureHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimpleFailureComponent4Instance">
+ <name>SimpleFailureComponent4</name>
+ <node>Node4</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleFailureComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleFailureHome4</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>type_attr</name>
+ <value>
+ <type>
+ <kind>tk_enum</kind>
+ <enum>
+ <name>FailureType</name>
+ <typeId>IDL:Simple/FailureType:1.0</typeId>
+ <member>NO_FAILURE</member>
+ <member>AT_STARTUP</member>
+ <member>AT_ACTIVATE</member>
+ <member>AT_PASSIVATE</member>
+ <member>AT_REMOVE</member>
+ </enum>
+ </type>
+ <value>
+ <enum>AT_STARTUP</enum>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <!-- Node Five -->
+
+ <instance xmi:id="SimpleFailureHome5Instance">
+ <name>SimpleFailureHome5</name>
+ <node>Node5</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleFailureHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimpleFailureComponent5Instance">
+ <name>SimpleFailureComponent5</name>
+ <node>Node5</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleFailureComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleFailureHome5</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>type_attr</name>
+ <value>
+ <type>
+ <kind>tk_enum</kind>
+ <enum>
+ <name>FailureType</name>
+ <typeId>IDL:Simple/FailureType:1.0</typeId>
+ <member>NO_FAILURE</member>
+ <member>AT_STARTUP</member>
+ <member>AT_ACTIVATE</member>
+ <member>AT_PASSIVATE</member>
+ <member>AT_REMOVE</member>
+ </enum>
+ </type>
+ <value>
+ <enum>NO_FAILURE</enum>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <!-- Artifacts declarations -->
+ <artifact xmi:id="SimpleFailure_ExecArtifact">
+ <name>SimpleFailure_exec</name>
+ <source/>
+ <node/>
+ <location>SimpleFailure_exec</location>
+ </artifact>
+ <artifact xmi:id="SimpleFailure_SvntArtifact">
+ <name>SimpleFailure_svnt</name>
+ <source/>
+ <node/>
+ <location>SimpleFailure_svnt</location>
+ </artifact>
+
+ </Deployment:DeploymentPlan>
diff --git a/modules/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/5NodeNoFailure.cdp b/modules/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/5NodeNoFailure.cdp
new file mode 100644
index 00000000000..f01b0da8266
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/5NodeNoFailure.cdp
@@ -0,0 +1,331 @@
+<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>5NodePlan</label>
+ <UUID>5NodePlan</UUID>
+
+ <!-- Implementations declarations -->
+
+ <!-- Server Dance implementation-->
+ <!-- Home implementation -->
+ <implementation xmi:id="SimpleFailureHomeImplementation">
+ <name>SimpleFailureHomeImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleFailure_ExecArtifact" />
+ <artifact xmi:idref="SimpleFailure_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleFailureHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleFailureHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleFailure_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleFailure_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="SimpleFailureComponentImplementation">
+ <name>SimpleFailureComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleFailure_ExecArtifact" />
+ <artifact xmi:idref="SimpleFailure_SvntArtifact" />
+ </implementation>
+
+ <!-- Node One -->
+
+ <instance xmi:id="SimpleFailureHomeInstance">
+ <name>SimpleFailureHome</name>
+ <node>Node1</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleFailureHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimpleFailureComponentInstance">
+ <name>SimpleFailureComponent</name>
+ <node>Node1</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleFailureComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleFailureHome</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>type_attr</name>
+ <value>
+ <type>
+ <kind>tk_enum</kind>
+ <enum>
+ <name>FailureType</name>
+ <typeId>IDL:Simple/FailureType:1.0</typeId>
+ <member>NO_FAILURE</member>
+ <member>AT_STARTUP</member>
+ <member>AT_ACTIVATE</member>
+ <member>AT_PASSIVATE</member>
+ <member>AT_REMOVE</member>
+ </enum>
+ </type>
+ <value>
+ <enum>NO_FAILURE</enum>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <!-- Node Two -->
+
+ <instance xmi:id="SimpleFailureHome2Instance">
+ <name>SimpleFailureHome2</name>
+ <node>Node2</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleFailureHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimpleFailureComponent2Instance">
+ <name>SimpleFailureComponent2</name>
+ <node>Node2</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleFailureComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleFailureHome2</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>type_attr</name>
+ <value>
+ <type>
+ <kind>tk_enum</kind>
+ <enum>
+ <name>FailureType</name>
+ <typeId>IDL:Simple/FailureType:1.0</typeId>
+ <member>NO_FAILURE</member>
+ <member>AT_STARTUP</member>
+ <member>AT_ACTIVATE</member>
+ <member>AT_PASSIVATE</member>
+ <member>AT_REMOVE</member>
+ </enum>
+ </type>
+ <value>
+ <enum>NO_FAILURE</enum>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <!-- Node Three -->
+
+ <instance xmi:id="SimpleFailureHome3Instance">
+ <name>SimpleFailureHome3</name>
+ <node>Node3</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleFailureHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimpleFailureComponent3Instance">
+ <name>SimpleFailureComponent3</name>
+ <node>Node3</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleFailureComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleFailureHome3</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>type_attr</name>
+ <value>
+ <type>
+ <kind>tk_enum</kind>
+ <enum>
+ <name>FailureType</name>
+ <typeId>IDL:Simple/FailureType:1.0</typeId>
+ <member>NO_FAILURE</member>
+ <member>AT_STARTUP</member>
+ <member>AT_ACTIVATE</member>
+ <member>AT_PASSIVATE</member>
+ <member>AT_REMOVE</member>
+ </enum>
+ </type>
+ <value>
+ <enum>NO_FAILURE</enum>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <!-- Node Four -->
+
+ <instance xmi:id="SimpleFailureHome4Instance">
+ <name>SimpleFailureHome4</name>
+ <node>Node4</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleFailureHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimpleFailureComponent4Instance">
+ <name>SimpleFailureComponent4</name>
+ <node>Node4</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleFailureComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleFailureHome4</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>type_attr</name>
+ <value>
+ <type>
+ <kind>tk_enum</kind>
+ <enum>
+ <name>FailureType</name>
+ <typeId>IDL:Simple/FailureType:1.0</typeId>
+ <member>NO_FAILURE</member>
+ <member>AT_STARTUP</member>
+ <member>AT_ACTIVATE</member>
+ <member>AT_PASSIVATE</member>
+ <member>AT_REMOVE</member>
+ </enum>
+ </type>
+ <value>
+ <enum>NO_FAILURE</enum>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <!-- Node Five -->
+
+ <instance xmi:id="SimpleFailureHome5Instance">
+ <name>SimpleFailureHome5</name>
+ <node>Node5</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleFailureHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimpleFailureComponent5Instance">
+ <name>SimpleFailureComponent5</name>
+ <node>Node5</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleFailureComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleFailureHome5</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>type_attr</name>
+ <value>
+ <type>
+ <kind>tk_enum</kind>
+ <enum>
+ <name>FailureType</name>
+ <typeId>IDL:Simple/FailureType:1.0</typeId>
+ <member>NO_FAILURE</member>
+ <member>AT_STARTUP</member>
+ <member>AT_ACTIVATE</member>
+ <member>AT_PASSIVATE</member>
+ <member>AT_REMOVE</member>
+ </enum>
+ </type>
+ <value>
+ <enum>NO_FAILURE</enum>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <!-- Artifacts declarations -->
+ <artifact xmi:id="SimpleFailure_ExecArtifact">
+ <name>SimpleFailure_exec</name>
+ <source/>
+ <node/>
+ <location>SimpleFailure_exec</location>
+ </artifact>
+ <artifact xmi:id="SimpleFailure_SvntArtifact">
+ <name>SimpleFailure_svnt</name>
+ <source/>
+ <node/>
+ <location>SimpleFailure_svnt</location>
+ </artifact>
+
+ </Deployment:DeploymentPlan>
diff --git a/modules/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/README.txt b/modules/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/README.txt
new file mode 100644
index 00000000000..598249c57c7
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/README.txt
@@ -0,0 +1,8 @@
+
+ This script tests redeployment of plans in after initial launch failures.
+ Each test uses 2 descriptors; teh first with a configured launch failure,
+ the second for the same plan except the configured failure.
+
+ As of this moment (2010-03-25) all these tests fail because of shortcomings
+ in the exception handling and teardown logic of the node entities.
+
diff --git a/modules/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/run_test.pl b/modules/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/run_test.pl
new file mode 100755
index 00000000000..5b5eb104ee3
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/run_test.pl
@@ -0,0 +1,269 @@
+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;
+$app_running = 0;
+
+$nr_daemon = 2;
+$port_start = 60001;
+$iorbase = "NodeApp";
+@iorfiles = 0;
+$nodebase = "Node";
+
+# 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;
+
+$nofail_plan = 'SimpleNoFailure.cdp';
+
+$status = 0;
+
+sub create_targets {
+ # naming service
+ $tg_naming = PerlACE::TestTarget::create_target (1) || die "Create target for ns failed\n";
+ $tg_naming->AddLibPath ('..');
+ # daemon
+ @tg_daemons = 0;
+ for ($i = 0; $i < $nr_daemon; ++$i) {
+ $tg_daemons[$i] = PerlACE::TestTarget::create_target ($i+2) || die "Create target for deamon $i failed\n";
+ $tg_daemons[$i]->AddLibPath ('../Components');
+ }
+ # 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);
+ @iorfiles = 0;
+ for ($i = 0; $i < $nr_daemon; ++$i) {
+ $iorfiles[$i] = $tg_daemons[$i]->LocalFile ("$iorbase$i.ior");
+ }
+ 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 ("$iorbase$i.ior");
+ }
+ $tg_naming->DeleteFile ($ior_nsbase);
+ $tg_exe_man->DeleteFile ($ior_embase);
+}
+
+sub kill_node_daemons {
+ for ($i = 0; $i < $nr_daemon; ++$i) {
+ $DEAMONS[$i]->Kill (); $DEAMONS[$i]->TimedWait (1);
+ $tg_daemons[$i]->DeleteFile ("$iorbase$i.ior");
+ }
+ for ($i = 0; $i < $nr_daemon; ++$i) {
+ # in case shutdown did not perform as expected
+ $tg_daemons[$i]->KillAll ('ciao_componentserver');
+ }
+}
+
+sub kill_open_processes {
+ if ($daemons_running == 1) {
+ kill_node_daemons ();
+ }
+
+ if ($em_running == 1) {
+ $EM->Kill (); $EM->TimedWait (1);
+ }
+
+ if ($ns_running == 1) {
+ $NS->Kill (); $NS->TimedWait (1);
+ }
+}
+
+
+sub run_node_daemons {
+ for ($i = 0; $i < $nr_daemon; ++$i) {
+ $iorname = "$iorbase$i.ior";
+ $iorfile = $iorfiles[$i];
+ $port = $port_start+$i;
+ $nodename = $nodebase . ($i + 1);
+ $node_host = $tg_daemons[$i]->HostName ();
+ $iiop = "iiop://$node_host:$port";
+ $node_app = "$CIAO_ROOT/bin/ciao_componentserver";
+
+ $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";
+
+ print "Run node daemon \#$nodename\n";
+ $tg_daemons[$i]->SetEnv ("NameServiceIOR", $tg_exe_man->GetEnv ("NameServiceIOR"));
+
+ $DEAMONS[$i] = $tg_daemons[$i]->CreateProcess ($d_cmd, $d_param);
+ $DEAMONS[$i]->Spawn ();
+
+ if ($tg_daemons[$i]->WaitForFileTimed($iorname,
+ $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;
+}
+
+if ($#ARGV == -1) {
+ opendir(DIR, ".");
+ @files = grep(/\.cdp$/,readdir(DIR));
+ closedir(DIR);
+}
+else {
+ @files = @ARGV;
+}
+
+foreach $file (@files) {
+ if ($file =~ /NoFailure/) {
+ next;
+ }
+
+ print "Starting test for deployment $file\n";
+
+ # determin number of daemons required
+ if ($file =~ /^(\d+)Node/) {
+ $nr_daemon = int($1);
+ } else {
+ # assume 1
+ $nr_daemon = 1;
+ }
+
+ create_targets ();
+ init_ior_files ();
+
+ print STDERR "Starting Naming Service\n";
+
+ my $ns_host = $tg_naming->HostName ();
+ $NS = $tg_naming->CreateProcess ("$TAO_ROOT/orbsvcs/Naming_Service/Naming_Service", "-m 0 -ORBEndpoint iiop://$ns_host:60000 -o $ior_nsfile");
+ $NS->Spawn ();
+
+ 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
+ $tg_exe_man->SetEnv ("NameServiceIOR", "corbaloc:iiop:$ns_host:60000/NameService");
+ $tg_executor->SetEnv ("NameServiceIOR", "corbaloc:iiop:$ns_host:60000/NameService");
+
+ # Invoke node daemon(s).
+ print "Invoking $nr_daemon node daemon(s)\n";
+ $status = run_node_daemons ();
+
+ if ($status != 0) {
+ print STDERR "ERROR: Unable to execute the node daemons\n";
+ kill_open_processes ();
+ exit 1;
+ }
+
+ $daemons_running = 1;
+
+ # Invoke execution manager.
+ print "Invoking execution manager\n";
+ $EM = $tg_exe_man->CreateProcess ("$DANCE_ROOT/bin/dance_execution_manager",
+ "-e$ior_emfile --domain-nc corbaloc:rir:/NameService");
+ $EM->Spawn ();
+
+ 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 -.
+ # (redirect log so testoutput doesn't show expected errors)
+ print "Invoking executor - launch the application -\n";
+ $E = $tg_executor->CreateProcess ("$DANCE_ROOT/bin/dance_plan_launcher",
+ "-x $file -k file://$ior_emfile -l -ORBLogFile dummy.log");
+ $status = $E->SpawnWaitKill (120);
+ if ($status > 0) {
+ print "Launch failed as expected\n";
+
+ print "Teardown the application and attempt relaunch without failure\n";
+ $E = $tg_executor->CreateProcess ("$DANCE_ROOT/bin/dance_plan_launcher",
+ "-k file://$ior_emfile -x $file -s");
+ $status = $E->SpawnWaitKill (120);
+ 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');
+
+ $file =~ s/Failure.*\.cdp$/NoFailure.cdp/;
+
+ # Invoke executor - restart the application -.
+ print "Invoking executor - relaunch the application -\n";
+ $E = $tg_executor->CreateProcess ("$DANCE_ROOT/bin/dance_plan_launcher",
+ "-x $file -k file://$ior_emfile -l -ORBLogFile dummy.log");
+ $status = $E->SpawnWaitKill (120);
+ if ($status != 0) {
+ print STDERR "ERROR: Unexpected error from Launch operation [$status]!\n"
+ }
+
+ $app_running = 1;
+
+ } else {
+ print STDERR "ERROR: Unexpected error from Teardown operation [$status]!\n";
+ }
+ }
+ else {
+ print STDERR "ERROR: Unexpected result from Launch operation [$status]!\n";
+
+ $app_running = 1;
+ }
+
+ if ($app_running) {
+ print "Teardown the application\n";
+ $E = $tg_executor->CreateProcess ("$DANCE_ROOT/bin/dance_plan_launcher",
+ "-k file://$ior_emfile -x $file -s");
+ $E->SpawnWaitKill (120);
+ print "Executor finished.\n";
+ }
+
+ delete_ior_files ();
+ kill_open_processes ();
+}
+
+exit $status;
diff --git a/modules/CIAO/DAnCE/tests/CIAO/EM-Redeployment/README.txt b/modules/CIAO/DAnCE/tests/CIAO/EM-Redeployment/README.txt
new file mode 100644
index 00000000000..cc2a15cd0b9
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/EM-Redeployment/README.txt
@@ -0,0 +1,8 @@
+
+ This script tests redeployment of plans in 'normal' (i.e. non-failure)
+ situations.
+ The script tests the plans from the ExecutionManager-Deployment directory.
+
+ As of this moment (2010-03-25) the components used in several of the plans
+ seem to have problems with the new asynchronous deployment.
+
diff --git a/modules/CIAO/DAnCE/tests/CIAO/EM-Redeployment/run_test.pl b/modules/CIAO/DAnCE/tests/CIAO/EM-Redeployment/run_test.pl
new file mode 100755
index 00000000000..b473b6ea233
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/EM-Redeployment/run_test.pl
@@ -0,0 +1,223 @@
+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;
+
+$repeat = 1;
+
+$nr_daemon = 2;
+@ports = ( 60001, 60002 );
+@iorbases = ( "NodeApp1.ior", "NodeApp2.ior" );
+@iorfiles = 0;
+@nodenames = ( "NodeOne", "NodeTwo" );
+
+# 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;
+
+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+2) || die "Create target for deamon $i failed\n";
+ $tg_daemons[$i]->AddLibPath ('../Components');
+ }
+ # 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);
+}
+
+sub kill_node_daemon {
+ for ($i = 0; $i < $nr_daemon; ++$i) {
+ $DEAMONS[$i]->Kill (); $DEAMONS[$i]->TimedWait (1);
+ }
+ for ($i = 0; $i < $nr_daemon; ++$i) {
+ # in case shutdown did not perform as expected
+ $tg_daemons[$i]->KillAll ('ciao_componentserver');
+ }
+}
+
+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);
+ }
+}
+
+
+sub run_node_daemons {
+ for ($i = 0; $i < $nr_daemon; ++$i) {
+ $iorbase = $iorbases[$i];
+ $iorfile = $iorfiles[$i];
+ $port = $ports[$i];
+ $nodename = $nodenames[$i];
+ $node_host = $tg_daemons[$i]->HostName ();
+ $iiop = "iiop://$node_host:$port";
+ $node_app = "$CIAO_ROOT/bin/ciao_componentserver";
+
+ $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";
+
+ print "Run node daemon\n";
+ $tg_daemons[$i]->SetEnv ("NameServiceIOR", $tg_exe_man->GetEnv ("NameServiceIOR"));
+
+ $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;
+}
+
+if ($#ARGV == -1) {
+ opendir(DIR, "../ExecutionManager-Deployments");
+ @files = grep(/\.cdp$/,readdir(DIR));
+ closedir(DIR);
+}
+else {
+ @files = @ARGV;
+}
+
+create_targets ();
+init_ior_files ();
+
+foreach $file (@files) {
+ $file = '../ExecutionManager-Deployments/'.$file;
+ print "Starting redeployment test for $file\n";
+
+ print STDERR "Starting Naming Service\n";
+
+ my $ns_host = $tg_naming->HostName ();
+ $NS = $tg_naming->CreateProcess ("$TAO_ROOT/orbsvcs/Naming_Service/Naming_Service", "-m 0 -ORBEndpoint iiop://$ns_host:60003 -o $ior_nsfile");
+ $NS->Spawn ();
+
+ 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
+ $tg_exe_man->SetEnv ("NameServiceIOR", "corbaloc:iiop:$ns_host:60003/NameService");
+ $tg_executor->SetEnv ("NameServiceIOR", "corbaloc:iiop:$ns_host: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 daemons\n";
+ kill_open_processes ();
+ exit 1;
+ }
+
+ $daemons_running = 1;
+
+ # Invoke execution manager.
+ print "Invoking execution manager\n";
+ $EM = $tg_exe_man->CreateProcess ("$DANCE_ROOT/bin/dance_execution_manager",
+ "-e$ior_emfile --domain-nc corbaloc:rir:/NameService");
+ $EM->Spawn ();
+
+ 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;
+
+ for ($i = 0; $i <= $repeat; ++$i) {
+ my $iteration = $i+1;
+ # Invoke executor - start the application -.
+ print "#$iteration - Invoking executor - launch the application -\n";
+ $E = $tg_executor->CreateProcess ("$DANCE_ROOT/bin/dance_plan_launcher",
+ "-x $file -k file://$ior_emfile -l");
+ $E->SpawnWaitKill (120);
+
+ print "#$iteration - Teardown the application\n";
+ $E = $tg_executor->CreateProcess ("$DANCE_ROOT/bin/dance_plan_launcher",
+ "-k file://$ior_emfile -x $file -s");
+ $E->SpawnWaitKill (120);
+ print "#$iteration - Executor finished.\n";
+ }
+
+ delete_ior_files ();
+ kill_open_processes ();
+}
+
+delete_ior_files ();
+kill_open_processes ();
+
+exit $status;
diff --git a/modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/EmitsConnectionExplicitHome.cdp b/modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/EmitsConnectionExplicitHome.cdp
new file mode 100644
index 00000000000..01c13b3f3d1
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/EmitsConnectionExplicitHome.cdp
@@ -0,0 +1,227 @@
+<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>SimpleComponent_Home</label>
+ <UUID>SimpleComponent_Home</UUID>
+
+ <!-- Implementations declarations -->
+
+ <!-- Home implementation -->
+ <implementation xmi:id="SimpleEmitterHomeImplementation">
+ <name>SimpleEmitterHomeImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleEmitter_ExecArtifact" />
+ <artifact xmi:idref="SimpleEmitter_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleEmitterHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleEmitterHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleEmitter_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleEmitter_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="SimpleEmitterComponentImplementation">
+ <name>SimpleEmitterComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleEmitter_ExecArtifact" />
+ <artifact xmi:idref="SimpleEmitter_SvntArtifact" />
+ </implementation>
+
+ <implementation xmi:id="SimpleConsumerHomeImplementation">
+ <name>SimpleConsumerHomeImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleConsumer_ExecArtifact" />
+ <artifact xmi:idref="SimpleConsumer_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleConsumerHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleConsumerHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleConsumer_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleConsumer_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="SimpleConsumerComponentImplementation">
+ <name>SimpleConsumerComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleConsumer_ExecArtifact" />
+ <artifact xmi:idref="SimpleConsumer_SvntArtifact" />
+ </implementation>
+
+ <instance xmi:id="SimpleEmitterHomeInstance">
+ <name>SimpleEmitterHome</name>
+ <node>NodeOne</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleEmitterHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimpleEmitterComponentInstance">
+ <name>SimpleEmitterComponent</name>
+ <node>NodeOne</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleEmitterComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleEmitterHome</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="SimpleConsumerHomeInstance">
+ <name>SimpleConsumerHome</name>
+ <node>NodeTwo</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleConsumerHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimpleConsumerComponentInstance">
+ <name>SimpleConsumerComponent</name>
+ <node>NodeTwo</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleConsumerComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleConsumerHome</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <connection>
+ <name>TestConnection</name>
+ <internalEndpoint>
+ <portName>hello</portName>
+ <provider>false</provider>
+ <kind>EventEmitter</kind>
+ <instance xmi:idref="SimpleEmitterComponentInstance" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>hello_</portName>
+ <provider>true</provider>
+ <kind>EventConsumer</kind>
+ <instance xmi:idref="SimpleConsumerComponentInstance" />
+ </internalEndpoint>
+ </connection>
+
+ <!-- Artifacts declarations -->
+ <artifact xmi:id="SimpleEmitter_ExecArtifact">
+ <name>SimpleEmitter_exec</name>
+ <source/>
+ <node/>
+ <location>SimpleEmitter_exec</location>
+ </artifact>
+ <artifact xmi:id="SimpleEmitter_SvntArtifact">
+ <name>SimpleEmitter_svnt</name>
+ <source/>
+ <node/>
+ <location>SimpleEmitter_svnt</location>
+ </artifact>
+
+ <artifact xmi:id="SimpleConsumer_ExecArtifact">
+ <name>SimpleConsumer_exec</name>
+ <source/>
+ <node/>
+ <location>SimpleConsumer_exec</location>
+ </artifact>
+ <artifact xmi:id="SimpleConsumer_SvntArtifact">
+ <name>SimpleConsumer_svnt</name>
+ <source/>
+ <node/>
+ <location>SimpleConsumer_svnt</location>
+ </artifact>
+
+ </Deployment:DeploymentPlan>
diff --git a/modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/EmitsConnectionExplicitHome_NS.cdp b/modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/EmitsConnectionExplicitHome_NS.cdp
new file mode 100644
index 00000000000..6c01f6d36d6
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/EmitsConnectionExplicitHome_NS.cdp
@@ -0,0 +1,238 @@
+<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>SimpleComponent_Home</label>
+ <UUID>SimpleComponent_Home</UUID>
+
+ <!-- Implementations declarations -->
+
+ <!-- Home implementation -->
+ <implementation xmi:id="SimpleEmitterHomeImplementation">
+ <name>SimpleEmitterHomeImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleEmitter_ExecArtifact" />
+ <artifact xmi:idref="SimpleEmitter_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleEmitterHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleEmitterHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleEmitter_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleEmitter_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="SimpleEmitterComponentImplementation">
+ <name>SimpleEmitterComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleEmitter_ExecArtifact" />
+ <artifact xmi:idref="SimpleEmitter_SvntArtifact" />
+ </implementation>
+
+ <implementation xmi:id="SimpleConsumerHomeImplementation">
+ <name>SimpleConsumerHomeImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleConsumer_ExecArtifact" />
+ <artifact xmi:idref="SimpleConsumer_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleConsumerHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleConsumerHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleConsumer_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleConsumer_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="SimpleConsumerComponentImplementation">
+ <name>SimpleConsumerComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleConsumer_ExecArtifact" />
+ <artifact xmi:idref="SimpleConsumer_SvntArtifact" />
+ </implementation>
+
+ <instance xmi:id="SimpleEmitterHomeInstance">
+ <name>SimpleEmitterHome</name>
+ <node>NodeOne</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleEmitterHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimpleEmitterComponentInstance">
+ <name>SimpleEmitterComponent</name>
+ <node>NodeOne</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleEmitterComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleEmitterHome</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.RegisterNaming</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleEmitterComponent</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="SimpleConsumerHomeInstance">
+ <name>SimpleConsumerHome</name>
+ <node>NodeTwo</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleConsumerHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimpleConsumerComponentInstance">
+ <name>SimpleConsumerComponent</name>
+ <node>NodeTwo</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleConsumerComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleConsumerHome</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <connection>
+ <name>TestConnection</name>
+ <internalEndpoint>
+ <portName>hello_</portName>
+ <provider>true</provider>
+ <kind>EventConsumer</kind>
+ <instance xmi:idref="SimpleConsumerComponentInstance" />
+ </internalEndpoint>
+ <externalReference>
+ <location>corbaname:rir:/NameService#SimpleEmitterComponent</location>
+ <provider>false</provider>
+ <portName>hello</portName>
+ <supportedType>Meaningless</supportedType>
+ </externalReference>
+ </connection>
+
+ <!-- Artifacts declarations -->
+ <artifact xmi:id="SimpleEmitter_ExecArtifact">
+ <name>SimpleEmitter_exec</name>
+ <source/>
+ <node/>
+ <location>SimpleEmitter_exec</location>
+ </artifact>
+ <artifact xmi:id="SimpleEmitter_SvntArtifact">
+ <name>SimpleEmitter_svnt</name>
+ <source/>
+ <node/>
+ <location>SimpleEmitter_svnt</location>
+ </artifact>
+
+ <artifact xmi:id="SimpleConsumer_ExecArtifact">
+ <name>SimpleConsumer_exec</name>
+ <source/>
+ <node/>
+ <location>SimpleConsumer_exec</location>
+ </artifact>
+ <artifact xmi:id="SimpleConsumer_SvntArtifact">
+ <name>SimpleConsumer_svnt</name>
+ <source/>
+ <node/>
+ <location>SimpleConsumer_svnt</location>
+ </artifact>
+
+ </Deployment:DeploymentPlan>
diff --git a/modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/MultiplexConnectionExplicitHome.cdp b/modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/MultiplexConnectionExplicitHome.cdp
new file mode 100644
index 00000000000..c5bc81c852a
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/MultiplexConnectionExplicitHome.cdp
@@ -0,0 +1,262 @@
+<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>SimpleComponent_Home</label>
+ <UUID>SimpleComponent_Home</UUID>
+
+ <!-- Implementations declarations -->
+
+ <!-- Home implementation -->
+ <implementation xmi:id="SimpleProviderHomeImplementation">
+ <name>SimpleProviderHomeImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleProvider_ExecArtifact" />
+ <artifact xmi:idref="SimpleProvider_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleProviderHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleProviderHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleProvider_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleProvider_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="SimpleProviderComponentImplementation">
+ <name>SimpleProviderComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleProvider_ExecArtifact" />
+ <artifact xmi:idref="SimpleProvider_SvntArtifact" />
+ </implementation>
+
+ <implementation xmi:id="SimpleMultipleUserHomeImplementation">
+ <name>SimpleMultipleUserHomeImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleMultipleUser_ExecArtifact" />
+ <artifact xmi:idref="SimpleMultipleUser_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleMultipleUserHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleMultipleUserHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleMultipleUser_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleMultipleUser_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="SimpleMultipleUserComponentImplementation">
+ <name>SimpleMultipleUserComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleMultipleUser_ExecArtifact" />
+ <artifact xmi:idref="SimpleMultipleUser_SvntArtifact" />
+ </implementation>
+
+ <instance xmi:id="SimpleProviderHomeInstance">
+ <name>SimpleProviderHome</name>
+ <node>NodeOne</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleProviderHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimpleProviderComponentInstance">
+ <name>SimpleProviderComponent</name>
+ <node>NodeOne</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleProviderComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleProviderHome</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="SimpleMultipleUserHomeInstance">
+ <name>SimpleMultipleUserHome</name>
+ <node>NodeTwo</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleMultipleUserHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimpleMultipleUserComponentInstance">
+ <name>SimpleMultipleUserComponent</name>
+ <node>NodeTwo</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleMultipleUserComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleMultipleUserHome</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="SimpleMultipleUserComponentInstanceReverse">
+ <name>SimpleMultipleUserComponentReverse</name>
+ <node>NodeTwo</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleMultipleUserComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleMultipleUserHome</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <connection>
+ <name>TestConnection</name>
+ <internalEndpoint>
+ <portName>trig</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="SimpleProviderComponentInstance" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>trig</portName>
+ <provider>false</provider>
+ <kind>MultiplexReceptacle</kind>
+ <instance xmi:idref="SimpleMultipleUserComponentInstance" />
+ </internalEndpoint>
+ </connection>
+
+ <connection>
+ <name>TestConnectionReverse</name>
+ <internalEndpoint>
+ <portName>trig</portName>
+ <provider>false</provider>
+ <kind>MultiplexReceptacle</kind>
+ <instance xmi:idref="SimpleMultipleUserComponentInstanceReverse" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>trig</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="SimpleProviderComponentInstance" />
+ </internalEndpoint>
+ </connection>
+
+ <!-- Artifacts declarations -->
+ <artifact xmi:id="SimpleProvider_ExecArtifact">
+ <name>SimpleProvider_exec</name>
+ <source/>
+ <node/>
+ <location>SimpleProvider_exec</location>
+ </artifact>
+ <artifact xmi:id="SimpleProvider_SvntArtifact">
+ <name>SimpleProvider_svnt</name>
+ <source/>
+ <node/>
+ <location>SimpleProvider_svnt</location>
+ </artifact>
+
+ <artifact xmi:id="SimpleMultipleUser_ExecArtifact">
+ <name>SimpleMultipleUser_exec</name>
+ <source/>
+ <node/>
+ <location>SimpleMultipleUser_exec</location>
+ </artifact>
+ <artifact xmi:id="SimpleMultipleUser_SvntArtifact">
+ <name>SimpleMultipleUser_svnt</name>
+ <source/>
+ <node/>
+ <location>SimpleMultipleUser_svnt</location>
+ </artifact>
+
+ </Deployment:DeploymentPlan>
diff --git a/modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/MultiplexConnectionExplicitHome_NS.cdp b/modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/MultiplexConnectionExplicitHome_NS.cdp
new file mode 100644
index 00000000000..fcb44451caa
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/MultiplexConnectionExplicitHome_NS.cdp
@@ -0,0 +1,339 @@
+<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>SimpleComponent_Home</label>
+ <UUID>SimpleComponent_Home</UUID>
+
+ <!-- Implementations declarations -->
+
+ <!-- Home implementation -->
+ <implementation xmi:id="SimpleProviderHomeImplementation">
+ <name>SimpleProviderHomeImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleProvider_ExecArtifact" />
+ <artifact xmi:idref="SimpleProvider_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleProviderHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleProviderHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleProvider_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleProvider_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="SimpleProviderComponentImplementation">
+ <name>SimpleProviderComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleProvider_ExecArtifact" />
+ <artifact xmi:idref="SimpleProvider_SvntArtifact" />
+ </implementation>
+
+ <implementation xmi:id="SimpleMultipleUserHomeImplementation">
+ <name>SimpleMultipleUserHomeImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleMultipleUser_ExecArtifact" />
+ <artifact xmi:idref="SimpleMultipleUser_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleMultipleUserHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleMultipleUserHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleMultipleUser_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleMultipleUser_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="SimpleMultipleUserComponentImplementation">
+ <name>SimpleMultipleUserComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleMultipleUser_ExecArtifact" />
+ <artifact xmi:idref="SimpleMultipleUser_SvntArtifact" />
+ </implementation>
+
+ <instance xmi:id="SimpleProviderHomeInstance">
+ <name>SimpleProviderHome</name>
+ <node>NodeOne</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleProviderHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimpleProviderComponentInstance">
+ <name>SimpleProviderComponent</name>
+ <node>NodeOne</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleProviderComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleProviderHome</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.RegisterNaming</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleProviderComponent</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="SimpleMultipleUserHomeInstance">
+ <name>SimpleMultipleUserHome</name>
+ <node>NodeTwo</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleMultipleUserHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimpleMultipleUserComponentInstance">
+ <name>SimpleMultipleUserComponent</name>
+ <node>NodeTwo</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleMultipleUserComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleMultipleUserHome</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.RegisterNaming</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleMultipleUserComponent</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="SimpleMultipleUserComponentInstanceReverse">
+ <name>SimpleMultipleUserComponentReverse</name>
+ <node>NodeTwo</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleMultipleUserComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleMultipleUserHome</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.RegisterNaming</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleMultipleUserComponentReverse</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <connection>
+ <name>TestConnection</name>
+<!-- <internalEndpoint>
+ <portName>trig</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="SimpleProviderComponentInstance" />
+ </internalEndpoint> -->
+ <internalEndpoint>
+ <portName>trig</portName>
+ <provider>false</provider>
+ <kind>MultiplexReceptacle</kind>
+ <instance xmi:idref="SimpleMultipleUserComponentInstance" />
+ </internalEndpoint>
+ <externalReference>
+ <location>corbaname:rir:/NameService#SimpleProviderComponent</location>
+ <provider>true</provider>
+ <portName>trig</portName>
+ <supportedType>Meaningless</supportedType>
+ </externalReference>
+ </connection>
+
+ <connection>
+ <name>TestConnection_2</name>
+<!-- <internalEndpoint>
+ <portName>trig</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="SimpleProviderComponentInstance" />
+ </internalEndpoint> -->
+ <internalEndpoint>
+ <portName>trig</portName>
+ <provider>false</provider>
+ <kind>MultiplexReceptacle</kind>
+ <instance xmi:idref="SimpleMultipleUserComponentInstance" />
+ </internalEndpoint>
+ <externalReference>
+ <location>corbaname:rir:/NameService#SimpleProviderComponent</location>
+ <provider>true</provider>
+ <portName>trig</portName>
+ <supportedType>Meaningless</supportedType>
+ </externalReference>
+ </connection>
+
+ <connection>
+ <name>TestConnectionReverse</name>
+ <internalEndpoint>
+ <portName>trig</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="SimpleProviderComponentInstance" />
+ </internalEndpoint>
+ <externalReference>
+ <location>corbaname:rir:/NameService#SimpleMultipleUserComponentReverse</location>
+ <provider>false</provider>
+ <portName>trig</portName>
+ <supportedType>Meaningless</supportedType>
+ </externalReference>
+ </connection>
+
+ <connection>
+ <name>TestConnectionReverse_2</name>
+ <internalEndpoint>
+ <portName>trig</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="SimpleProviderComponentInstance" />
+ </internalEndpoint>
+ <externalReference>
+ <location>corbaname:rir:/NameService#SimpleMultipleUserComponentReverse</location>
+ <provider>false</provider>
+ <portName>trig</portName>
+ <supportedType>Meaningless</supportedType>
+ </externalReference>
+ </connection>
+
+ <!-- Artifacts declarations -->
+ <artifact xmi:id="SimpleProvider_ExecArtifact">
+ <name>SimpleProvider_exec</name>
+ <source/>
+ <node/>
+ <location>SimpleProvider_exec</location>
+ </artifact>
+ <artifact xmi:id="SimpleProvider_SvntArtifact">
+ <name>SimpleProvider_svnt</name>
+ <source/>
+ <node/>
+ <location>SimpleProvider_svnt</location>
+ </artifact>
+
+ <artifact xmi:id="SimpleMultipleUser_ExecArtifact">
+ <name>SimpleMultipleUser_exec</name>
+ <source/>
+ <node/>
+ <location>SimpleMultipleUser_exec</location>
+ </artifact>
+ <artifact xmi:id="SimpleMultipleUser_SvntArtifact">
+ <name>SimpleMultipleUser_svnt</name>
+ <source/>
+ <node/>
+ <location>SimpleMultipleUser_svnt</location>
+ </artifact>
+
+ </Deployment:DeploymentPlan>
diff --git a/modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/MultiplexConnectionExplicitHome_NS_PL_DP.cdp b/modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/MultiplexConnectionExplicitHome_NS_PL_DP.cdp
new file mode 100644
index 00000000000..6e00f7d41a8
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/MultiplexConnectionExplicitHome_NS_PL_DP.cdp
@@ -0,0 +1,352 @@
+<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>SimpleComponent_Home</label>
+ <UUID>SimpleComponent_Home</UUID>
+
+ <!-- Implementations declarations -->
+
+ <!-- Home implementation -->
+ <implementation xmi:id="SimpleProviderHomeImplementation">
+ <name>SimpleProviderHomeImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleProvider_ExecArtifact" />
+ <artifact xmi:idref="SimpleProvider_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleProviderHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleProviderHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleProvider_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleProvider_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="SimpleProviderComponentImplementation">
+ <name>SimpleProviderComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleProvider_ExecArtifact" />
+ <artifact xmi:idref="SimpleProvider_SvntArtifact" />
+ </implementation>
+
+ <implementation xmi:id="SimpleMultipleUserHomeImplementation">
+ <name>SimpleMultipleUserHomeImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleMultipleUser_ExecArtifact" />
+ <artifact xmi:idref="SimpleMultipleUser_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleMultipleUserHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleMultipleUserHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleMultipleUser_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleMultipleUser_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="SimpleMultipleUserComponentImplementation">
+ <name>SimpleMultipleUserComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleMultipleUser_ExecArtifact" />
+ <artifact xmi:idref="SimpleMultipleUser_SvntArtifact" />
+ </implementation>
+
+ <instance xmi:id="SimpleProviderHomeInstance">
+ <name>SimpleProviderHome</name>
+ <node>NodeOne</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleProviderHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimpleProviderComponentInstance">
+ <name>SimpleProviderComponent</name>
+ <node>NodeOne</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleProviderComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleProviderHome</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.RegisterNaming</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleProviderComponent</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="SimpleMultipleUserHomeInstance">
+ <name>SimpleMultipleUserHome</name>
+ <node>NodeTwo</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleMultipleUserHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimpleMultipleUserComponentInstance">
+ <name>SimpleMultipleUserComponent</name>
+ <node>NodeTwo</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleMultipleUserComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleMultipleUserHome</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.RegisterNaming</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleMultipleUserComponent</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="SimpleMultipleUserComponentInstanceReverse">
+ <name>SimpleMultipleUserComponentReverse</name>
+ <node>NodeTwo</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleMultipleUserComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleMultipleUserHome</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.RegisterNaming</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleMultipleUserComponentReverse</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <connection>
+ <name>TestConnection</name>
+<!-- <internalEndpoint>
+ <portName>trig</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="SimpleProviderComponentInstance" />
+ </internalEndpoint> -->
+ <internalEndpoint>
+ <portName>trig</portName>
+ <provider>false</provider>
+ <kind>MultiplexReceptacle</kind>
+ <instance xmi:idref="SimpleMultipleUserComponentInstance" />
+ </internalEndpoint>
+ <externalReference>
+ <location>corbaname:rir:/NameService#SimpleProviderComponent</location>
+ <provider>true</provider>
+ <portName>trig</portName>
+ <supportedType>Meaningless</supportedType>
+ </externalReference>
+ </connection>
+
+ <connection>
+ <name>TestConnection_2</name>
+<!-- <internalEndpoint>
+ <portName>trig</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="SimpleProviderComponentInstance" />
+ </internalEndpoint> -->
+ <internalEndpoint>
+ <portName>trig</portName>
+ <provider>false</provider>
+ <kind>MultiplexReceptacle</kind>
+ <instance xmi:idref="SimpleMultipleUserComponentInstance" />
+ </internalEndpoint>
+ <externalReference>
+ <location>corbaname:rir:/NameService#SimpleProviderComponent</location>
+ <provider>true</provider>
+ <portName>trig</portName>
+ <supportedType>Meaningless</supportedType>
+ </externalReference>
+ </connection>
+
+ <connection>
+ <name>TestConnectionReverse</name>
+ <internalEndpoint>
+ <portName>trig</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="SimpleProviderComponentInstance" />
+ </internalEndpoint>
+ <externalReference>
+ <location>corbaname:rir:/NameService#SimpleMultipleUserComponentReverse</location>
+ <provider>false</provider>
+ <portName>trig</portName>
+ <supportedType>Meaningless</supportedType>
+ </externalReference>
+ </connection>
+
+ <connection>
+ <name>TestConnectionReverse_2</name>
+ <internalEndpoint>
+ <portName>trig</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="SimpleProviderComponentInstance" />
+ </internalEndpoint>
+ <externalReference>
+ <location>corbaname:rir:/NameService#SimpleMultipleUserComponentReverse</location>
+ <provider>false</provider>
+ <portName>trig</portName>
+ <supportedType>Meaningless</supportedType>
+ </externalReference>
+ </connection>
+
+ <!-- Artifacts declarations -->
+ <artifact xmi:id="SimpleProvider_ExecArtifact">
+ <name>SimpleProvider_exec</name>
+ <source/>
+ <node/>
+ <location>SimpleProvider_exec</location>
+ </artifact>
+ <artifact xmi:id="SimpleProvider_SvntArtifact">
+ <name>SimpleProvider_svnt</name>
+ <source/>
+ <node/>
+ <location>SimpleProvider_svnt</location>
+ </artifact>
+
+ <artifact xmi:id="SimpleMultipleUser_ExecArtifact">
+ <name>SimpleMultipleUser_exec</name>
+ <source/>
+ <node/>
+ <location>SimpleMultipleUser_exec</location>
+ </artifact>
+ <artifact xmi:id="SimpleMultipleUser_SvntArtifact">
+ <name>SimpleMultipleUser_svnt</name>
+ <source/>
+ <node/>
+ <location>SimpleMultipleUser_svnt</location>
+ </artifact>
+
+ <localityConstraint>
+ <constraint>SameProcess</constraint>
+ <constrainedInstance xmi:idref="SimpleProviderHomeInstance" />
+ <constrainedInstance xmi:idref="SimpleProviderComponentInstance" />
+ </localityConstraint>
+
+ <localityConstraint>
+ <constraint>SameProcess</constraint>
+ <constrainedInstance xmi:idref="SimpleMultipleUserHomeInstance" />
+ <constrainedInstance xmi:idref="SimpleMultipleUserComponentInstance" />
+ <constrainedInstance xmi:idref="SimpleMultipleUserComponentInstanceReverse" />
+ </localityConstraint>
+
+ </Deployment:DeploymentPlan>
diff --git a/modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/MultiplexConnectionExplicitHome_NS_PL_SP.cdp b/modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/MultiplexConnectionExplicitHome_NS_PL_SP.cdp
new file mode 100644
index 00000000000..e5a4daa60c2
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/MultiplexConnectionExplicitHome_NS_PL_SP.cdp
@@ -0,0 +1,348 @@
+<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>SimpleComponent_Home</label>
+ <UUID>SimpleComponent_Home</UUID>
+
+ <!-- Implementations declarations -->
+
+ <!-- Home implementation -->
+ <implementation xmi:id="SimpleProviderHomeImplementation">
+ <name>SimpleProviderHomeImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleProvider_ExecArtifact" />
+ <artifact xmi:idref="SimpleProvider_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleProviderHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleProviderHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleProvider_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleProvider_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="SimpleProviderComponentImplementation">
+ <name>SimpleProviderComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleProvider_ExecArtifact" />
+ <artifact xmi:idref="SimpleProvider_SvntArtifact" />
+ </implementation>
+
+ <implementation xmi:id="SimpleMultipleUserHomeImplementation">
+ <name>SimpleMultipleUserHomeImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleMultipleUser_ExecArtifact" />
+ <artifact xmi:idref="SimpleMultipleUser_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleMultipleUserHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleMultipleUserHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleMultipleUser_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleMultipleUser_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="SimpleMultipleUserComponentImplementation">
+ <name>SimpleMultipleUserComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleMultipleUser_ExecArtifact" />
+ <artifact xmi:idref="SimpleMultipleUser_SvntArtifact" />
+ </implementation>
+
+ <instance xmi:id="SimpleProviderHomeInstance">
+ <name>SimpleProviderHome</name>
+ <node>NodeOne</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleProviderHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimpleProviderComponentInstance">
+ <name>SimpleProviderComponent</name>
+ <node>NodeOne</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleProviderComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleProviderHome</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.RegisterNaming</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleProviderComponent</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="SimpleMultipleUserHomeInstance">
+ <name>SimpleMultipleUserHome</name>
+ <node>NodeTwo</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleMultipleUserHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimpleMultipleUserComponentInstance">
+ <name>SimpleMultipleUserComponent</name>
+ <node>NodeTwo</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleMultipleUserComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleMultipleUserHome</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.RegisterNaming</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleMultipleUserComponent</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="SimpleMultipleUserComponentInstanceReverse">
+ <name>SimpleMultipleUserComponentReverse</name>
+ <node>NodeTwo</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleMultipleUserComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleMultipleUserHome</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.RegisterNaming</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleMultipleUserComponentReverse</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <connection>
+ <name>TestConnection</name>
+<!-- <internalEndpoint>
+ <portName>trig</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="SimpleProviderComponentInstance" />
+ </internalEndpoint> -->
+ <internalEndpoint>
+ <portName>trig</portName>
+ <provider>false</provider>
+ <kind>MultiplexReceptacle</kind>
+ <instance xmi:idref="SimpleMultipleUserComponentInstance" />
+ </internalEndpoint>
+ <externalReference>
+ <location>corbaname:rir:/NameService#SimpleProviderComponent</location>
+ <provider>true</provider>
+ <portName>trig</portName>
+ <supportedType>Meaningless</supportedType>
+ </externalReference>
+ </connection>
+
+ <connection>
+ <name>TestConnection_2</name>
+<!-- <internalEndpoint>
+ <portName>trig</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="SimpleProviderComponentInstance" />
+ </internalEndpoint> -->
+ <internalEndpoint>
+ <portName>trig</portName>
+ <provider>false</provider>
+ <kind>MultiplexReceptacle</kind>
+ <instance xmi:idref="SimpleMultipleUserComponentInstance" />
+ </internalEndpoint>
+ <externalReference>
+ <location>corbaname:rir:/NameService#SimpleProviderComponent</location>
+ <provider>true</provider>
+ <portName>trig</portName>
+ <supportedType>Meaningless</supportedType>
+ </externalReference>
+ </connection>
+
+ <connection>
+ <name>TestConnectionReverse</name>
+ <internalEndpoint>
+ <portName>trig</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="SimpleProviderComponentInstance" />
+ </internalEndpoint>
+ <externalReference>
+ <location>corbaname:rir:/NameService#SimpleMultipleUserComponentReverse</location>
+ <provider>false</provider>
+ <portName>trig</portName>
+ <supportedType>Meaningless</supportedType>
+ </externalReference>
+ </connection>
+
+ <connection>
+ <name>TestConnectionReverse_2</name>
+ <internalEndpoint>
+ <portName>trig</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="SimpleProviderComponentInstance" />
+ </internalEndpoint>
+ <externalReference>
+ <location>corbaname:rir:/NameService#SimpleMultipleUserComponentReverse</location>
+ <provider>false</provider>
+ <portName>trig</portName>
+ <supportedType>Meaningless</supportedType>
+ </externalReference>
+ </connection>
+
+ <!-- Artifacts declarations -->
+ <artifact xmi:id="SimpleProvider_ExecArtifact">
+ <name>SimpleProvider_exec</name>
+ <source/>
+ <node/>
+ <location>SimpleProvider_exec</location>
+ </artifact>
+ <artifact xmi:id="SimpleProvider_SvntArtifact">
+ <name>SimpleProvider_svnt</name>
+ <source/>
+ <node/>
+ <location>SimpleProvider_svnt</location>
+ </artifact>
+
+ <artifact xmi:id="SimpleMultipleUser_ExecArtifact">
+ <name>SimpleMultipleUser_exec</name>
+ <source/>
+ <node/>
+ <location>SimpleMultipleUser_exec</location>
+ </artifact>
+ <artifact xmi:id="SimpleMultipleUser_SvntArtifact">
+ <name>SimpleMultipleUser_svnt</name>
+ <source/>
+ <node/>
+ <location>SimpleMultipleUser_svnt</location>
+ </artifact>
+
+ <localityConstraint>
+ <constraint>SameProcess</constraint>
+ <constrainedInstance xmi:idref="SimpleProviderHomeInstance" />
+ <constrainedInstance xmi:idref="SimpleProviderComponentInstance" />
+ <constrainedInstance xmi:idref="SimpleMultipleUserHomeInstance" />
+ <constrainedInstance xmi:idref="SimpleMultipleUserComponentInstance" />
+ <constrainedInstance xmi:idref="SimpleMultipleUserComponentInstanceReverse" />
+ </localityConstraint>
+
+ </Deployment:DeploymentPlan>
diff --git a/modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/PublishConnectionExplicitHome.cdp b/modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/PublishConnectionExplicitHome.cdp
new file mode 100644
index 00000000000..32747bfc1bf
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/PublishConnectionExplicitHome.cdp
@@ -0,0 +1,227 @@
+<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>SimpleComponent_Home</label>
+ <UUID>SimpleComponent_Home</UUID>
+
+ <!-- Implementations declarations -->
+
+ <!-- Home implementation -->
+ <implementation xmi:id="SimplePublisherHomeImplementation">
+ <name>SimplePublisherHomeImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimplePublisher_ExecArtifact" />
+ <artifact xmi:idref="SimplePublisher_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimplePublisherHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimplePublisherHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimplePublisher_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimplePublisher_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="SimplePublisherComponentImplementation">
+ <name>SimplePublisherComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimplePublisher_ExecArtifact" />
+ <artifact xmi:idref="SimplePublisher_SvntArtifact" />
+ </implementation>
+
+ <implementation xmi:id="SimpleConsumerHomeImplementation">
+ <name>SimpleConsumerHomeImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleConsumer_ExecArtifact" />
+ <artifact xmi:idref="SimpleConsumer_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleConsumerHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleConsumerHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleConsumer_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleConsumer_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="SimpleConsumerComponentImplementation">
+ <name>SimpleConsumerComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleConsumer_ExecArtifact" />
+ <artifact xmi:idref="SimpleConsumer_SvntArtifact" />
+ </implementation>
+
+ <instance xmi:id="SimplePublisherHomeInstance">
+ <name>SimplePublisherHome</name>
+ <node>NodeOne</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimplePublisherHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimplePublisherComponentInstance">
+ <name>SimplePublisherComponent</name>
+ <node>NodeOne</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimplePublisherComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimplePublisherHome</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="SimpleConsumerHomeInstance">
+ <name>SimpleConsumerHome</name>
+ <node>NodeTwo</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleConsumerHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimpleConsumerComponentInstance">
+ <name>SimpleConsumerComponent</name>
+ <node>NodeTwo</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleConsumerComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleConsumerHome</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <connection>
+ <name>TestConnection</name>
+ <internalEndpoint>
+ <portName>hello</portName>
+ <provider>false</provider>
+ <kind>EventPublisher</kind>
+ <instance xmi:idref="SimplePublisherComponentInstance" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>hello_</portName>
+ <provider>true</provider>
+ <kind>EventConsumer</kind>
+ <instance xmi:idref="SimpleConsumerComponentInstance" />
+ </internalEndpoint>
+ </connection>
+
+ <!-- Artifacts declarations -->
+ <artifact xmi:id="SimplePublisher_ExecArtifact">
+ <name>SimplePublisher_exec</name>
+ <source/>
+ <node/>
+ <location>SimplePublisher_exec</location>
+ </artifact>
+ <artifact xmi:id="SimplePublisher_SvntArtifact">
+ <name>SimplePublisher_svnt</name>
+ <source/>
+ <node/>
+ <location>SimplePublisher_svnt</location>
+ </artifact>
+
+ <artifact xmi:id="SimpleConsumer_ExecArtifact">
+ <name>SimpleConsumer_exec</name>
+ <source/>
+ <node/>
+ <location>SimpleConsumer_exec</location>
+ </artifact>
+ <artifact xmi:id="SimpleConsumer_SvntArtifact">
+ <name>SimpleConsumer_svnt</name>
+ <source/>
+ <node/>
+ <location>SimpleConsumer_svnt</location>
+ </artifact>
+
+ </Deployment:DeploymentPlan>
diff --git a/modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/PublishConnectionExplicitHome_NS.cdp b/modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/PublishConnectionExplicitHome_NS.cdp
new file mode 100644
index 00000000000..054e7964bea
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/PublishConnectionExplicitHome_NS.cdp
@@ -0,0 +1,244 @@
+<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>SimpleComponent_Home</label>
+ <UUID>SimpleComponent_Home</UUID>
+
+ <!-- Implementations declarations -->
+
+ <!-- Home implementation -->
+ <implementation xmi:id="SimplePublisherHomeImplementation">
+ <name>SimplePublisherHomeImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimplePublisher_ExecArtifact" />
+ <artifact xmi:idref="SimplePublisher_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimplePublisherHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimplePublisherHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimplePublisher_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimplePublisher_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="SimplePublisherComponentImplementation">
+ <name>SimplePublisherComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimplePublisher_ExecArtifact" />
+ <artifact xmi:idref="SimplePublisher_SvntArtifact" />
+ </implementation>
+
+ <implementation xmi:id="SimpleConsumerHomeImplementation">
+ <name>SimpleConsumerHomeImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleConsumer_ExecArtifact" />
+ <artifact xmi:idref="SimpleConsumer_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleConsumerHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleConsumerHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleConsumer_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleConsumer_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="SimpleConsumerComponentImplementation">
+ <name>SimpleConsumerComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleConsumer_ExecArtifact" />
+ <artifact xmi:idref="SimpleConsumer_SvntArtifact" />
+ </implementation>
+
+ <instance xmi:id="SimplePublisherHomeInstance">
+ <name>SimplePublisherHome</name>
+ <node>NodeOne</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimplePublisherHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimplePublisherComponentInstance">
+ <name>SimplePublisherComponent</name>
+ <node>NodeOne</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimplePublisherComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimplePublisherHome</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.RegisterNaming</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimplePublisherComponentInstance</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="SimpleConsumerHomeInstance">
+ <name>SimpleConsumerHome</name>
+ <node>NodeTwo</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleConsumerHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimpleConsumerComponentInstance">
+ <name>SimpleConsumerComponent</name>
+ <node>NodeTwo</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleConsumerComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleConsumerHome</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <connection>
+ <name>TestConnection</name>
+ <!--<internalEndpoint>
+ <portName>hello</portName>
+ <provider>false</provider>
+ <kind>EventPublisher</kind>
+ <instance xmi:idref="SimplePublisherComponentInstance" />
+ </internalEndpoint>-->
+ <internalEndpoint>
+ <portName>hello_</portName>
+ <provider>true</provider>
+ <kind>EventConsumer</kind>
+ <instance xmi:idref="SimpleConsumerComponentInstance" />
+ </internalEndpoint>
+ <externalReference>
+ <location>corbaname:rir:/NameService#SimplePublisherComponentInstance</location>
+ <provider>false</provider>
+ <portName>hello</portName>
+ <supportedType>Meaningless</supportedType>
+ </externalReference>
+ </connection>
+
+ <!-- Artifacts declarations -->
+ <artifact xmi:id="SimplePublisher_ExecArtifact">
+ <name>SimplePublisher_exec</name>
+ <source/>
+ <node/>
+ <location>SimplePublisher_exec</location>
+ </artifact>
+ <artifact xmi:id="SimplePublisher_SvntArtifact">
+ <name>SimplePublisher_svnt</name>
+ <source/>
+ <node/>
+ <location>SimplePublisher_svnt</location>
+ </artifact>
+
+ <artifact xmi:id="SimpleConsumer_ExecArtifact">
+ <name>SimpleConsumer_exec</name>
+ <source/>
+ <node/>
+ <location>SimpleConsumer_exec</location>
+ </artifact>
+ <artifact xmi:id="SimpleConsumer_SvntArtifact">
+ <name>SimpleConsumer_svnt</name>
+ <source/>
+ <node/>
+ <location>SimpleConsumer_svnt</location>
+ </artifact>
+
+ </Deployment:DeploymentPlan>
diff --git a/modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/SimpleComponentExplicitHome.cdp b/modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/SimpleComponentExplicitHome.cdp
new file mode 100644
index 00000000000..e9af75b1ac4
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/SimpleComponentExplicitHome.cdp
@@ -0,0 +1,113 @@
+<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>SimpleComponent_Home</label>
+ <UUID>SimpleComponent_Home</UUID>
+
+ <!-- Implementations declarations -->
+
+ <!-- Server Dance implementation-->
+ <!-- Home implementation -->
+ <implementation xmi:id="SimpleNullHomeImplementation">
+ <name>SimpleNullHomeImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleNull_ExecArtifact" />
+ <artifact xmi:idref="SimpleNull_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleNullHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleNullHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleNull_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleNull_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="SimpleNullComponentImplementation">
+ <name>SimpleNullComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleNull_ExecArtifact" />
+ <artifact xmi:idref="SimpleNull_SvntArtifact" />
+ </implementation>
+
+ <instance xmi:id="SimpleNullHomeInstance">
+ <name>SimpleNullHome</name>
+ <node>NodeOne</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleNullHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimpleNullComponentInstance">
+ <name>SimpleNullComponent</name>
+ <node>NodeOne</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleNullComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleNullHome</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <!-- Artifacts declarations -->
+ <artifact xmi:id="SimpleNull_ExecArtifact">
+ <name>SimpleNull_exec</name>
+ <source/>
+ <node/>
+ <location>SimpleNull_exec</location>
+ </artifact>
+ <artifact xmi:id="SimpleNull_SvntArtifact">
+ <name>SimpleNull_svnt</name>
+ <source/>
+ <node/>
+ <location>SimpleNull_svnt</location>
+ </artifact>
+
+ </Deployment:DeploymentPlan>
diff --git a/modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/SimpleProcessColocation.cdp b/modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/SimpleProcessColocation.cdp
new file mode 100644
index 00000000000..f50259d17a6
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/SimpleProcessColocation.cdp
@@ -0,0 +1,127 @@
+<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>SimpleComponent_Home</label>
+ <UUID>SimpleComponent_Home</UUID>
+
+ <!-- Implementations declarations -->
+
+ <!-- Server Dance implementation-->
+ <implementation xmi:id="ProcessColocationComponentImplementation">
+ <name>ProcessColocationComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="ProcessColocation_ExecArtifact" />
+ <artifact xmi:idref="ProcessColocation_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>component factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_ProcessColocation_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_ProcessColocation_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ProcessColocation_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ProcessColocation_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <instance xmi:id="ProcessColocationComponentInstance_1">
+ <name>ProcessColocationComponent_One</name>
+ <node>NodeOne</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="ProcessColocationComponentImplementation" />
+
+ <configProperty>
+ <name>process_name</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Process One</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="ProcessColocationComponentInstance_2">
+ <name>ProcessColocationComponent_Two</name>
+ <node>NodeOne</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="ProcessColocationComponentImplementation" />
+ <configProperty>
+ <name>process_name</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Process Two</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <!-- Artifacts declarations -->
+ <artifact xmi:id="ProcessColocation_ExecArtifact">
+ <name>ProcessColocation_exec</name>
+ <source/>
+ <node/>
+ <location>ProcessColocation_exec</location>
+ </artifact>
+ <artifact xmi:id="ProcessColocation_SvntArtifact">
+ <name>ProcessColocation_svnt</name>
+ <source/>
+ <node/>
+ <location>ProcessColocation_svnt</location>
+ </artifact>
+
+ <localityConstraint>
+ <constraint>SameProcess</constraint>
+ <constrainedInstance xmi:idref="ProcessColocationComponentInstance_1" />
+ </localityConstraint>
+
+ <localityConstraint>
+ <constraint>SameProcess</constraint>
+ <constrainedInstance xmi:idref="ProcessColocationComponentInstance_2" />
+ </localityConstraint>
+
+ </Deployment:DeploymentPlan>
diff --git a/modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/SimpleProcessColocation_2.cdp b/modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/SimpleProcessColocation_2.cdp
new file mode 100644
index 00000000000..bed7f909530
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/SimpleProcessColocation_2.cdp
@@ -0,0 +1,168 @@
+<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>SimpleComponent_Home</label>
+ <UUID>SimpleComponent_Home</UUID>
+
+ <!-- Implementations declarations -->
+
+ <!-- Server Dance implementation-->
+ <implementation xmi:id="ProcessColocationComponentImplementation">
+ <name>ProcessColocationComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="ProcessColocation_ExecArtifact" />
+ <artifact xmi:idref="ProcessColocation_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>component factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_ProcessColocation_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_ProcessColocation_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ProcessColocation_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ProcessColocation_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <instance xmi:id="ProcessColocationComponentInstance_1">
+ <name>ProcessColocationComponent_One</name>
+ <node>NodeOne</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="ProcessColocationComponentImplementation" />
+
+ <configProperty>
+ <name>process_name</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Process One</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="ProcessColocationComponentInstance_1_2">
+ <name>ProcessColocationComponent_One_Two</name>
+ <node>NodeOne</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="ProcessColocationComponentImplementation" />
+
+ <configProperty>
+ <name>process_name</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Process One</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="ProcessColocationComponentInstance_2">
+ <name>ProcessColocationComponent_Two</name>
+ <node>NodeOne</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="ProcessColocationComponentImplementation" />
+ <configProperty>
+ <name>process_name</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Process Two</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="ProcessColocationComponentInstance_2_2">
+ <name>ProcessColocationComponent_Two_Two</name>
+ <node>NodeOne</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="ProcessColocationComponentImplementation" />
+ <configProperty>
+ <name>process_name</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Process Two</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <!-- Artifacts declarations -->
+ <artifact xmi:id="ProcessColocation_ExecArtifact">
+ <name>ProcessColocation_exec</name>
+ <source/>
+ <node/>
+ <location>ProcessColocation_exec</location>
+ </artifact>
+ <artifact xmi:id="ProcessColocation_SvntArtifact">
+ <name>ProcessColocation_svnt</name>
+ <source/>
+ <node/>
+ <location>ProcessColocation_svnt</location>
+ </artifact>
+
+ <localityConstraint>
+ <constraint>SameProcess</constraint>
+ <constrainedInstance xmi:idref="ProcessColocationComponentInstance_1" />
+ <constrainedInstance xmi:idref="ProcessColocationComponentInstance_1_2" />
+ </localityConstraint>
+
+ <localityConstraint>
+ <constraint>SameProcess</constraint>
+ <constrainedInstance xmi:idref="ProcessColocationComponentInstance_2" />
+ <constrainedInstance xmi:idref="ProcessColocationComponentInstance_2_2" />
+ </localityConstraint>
+
+ </Deployment:DeploymentPlan>
diff --git a/modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/SimpleProcessColocation_Default.cdp b/modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/SimpleProcessColocation_Default.cdp
new file mode 100644
index 00000000000..b8aa525c2b2
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/SimpleProcessColocation_Default.cdp
@@ -0,0 +1,208 @@
+<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>SimpleComponent_Home</label>
+ <UUID>SimpleComponent_Home</UUID>
+
+ <!-- Implementations declarations -->
+
+ <!-- Server Dance implementation-->
+ <implementation xmi:id="ProcessColocationComponentImplementation">
+ <name>ProcessColocationComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="ProcessColocation_ExecArtifact" />
+ <artifact xmi:idref="ProcessColocation_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>component factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_ProcessColocation_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_ProcessColocation_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ProcessColocation_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ProcessColocation_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <instance xmi:id="ProcessColocationComponentInstance_Default_1">
+ <name>ProcessColocationComponent_Default_One</name>
+ <node>NodeOne</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="ProcessColocationComponentImplementation" />
+
+ <configProperty>
+ <name>process_name</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Default Process</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="ProcessColocationComponentInstance_Default_2">
+ <name>ProcessColocationComponent_Default_Two</name>
+ <node>NodeOne</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="ProcessColocationComponentImplementation" />
+
+ <configProperty>
+ <name>process_name</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Default Process</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="ProcessColocationComponentInstance_1">
+ <name>ProcessColocationComponent_One</name>
+ <node>NodeOne</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="ProcessColocationComponentImplementation" />
+
+ <configProperty>
+ <name>process_name</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Process One</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="ProcessColocationComponentInstance_1_2">
+ <name>ProcessColocationComponent_One_Two</name>
+ <node>NodeOne</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="ProcessColocationComponentImplementation" />
+
+ <configProperty>
+ <name>process_name</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Process One</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="ProcessColocationComponentInstance_2">
+ <name>ProcessColocationComponent_Two</name>
+ <node>NodeOne</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="ProcessColocationComponentImplementation" />
+ <configProperty>
+ <name>process_name</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Process Two</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="ProcessColocationComponentInstance_2_2">
+ <name>ProcessColocationComponent_Two_Two</name>
+ <node>NodeOne</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="ProcessColocationComponentImplementation" />
+ <configProperty>
+ <name>process_name</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Process Two</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <!-- Artifacts declarations -->
+ <artifact xmi:id="ProcessColocation_ExecArtifact">
+ <name>ProcessColocation_exec</name>
+ <source/>
+ <node/>
+ <location>ProcessColocation_exec</location>
+ </artifact>
+ <artifact xmi:id="ProcessColocation_SvntArtifact">
+ <name>ProcessColocation_svnt</name>
+ <source/>
+ <node/>
+ <location>ProcessColocation_svnt</location>
+ </artifact>
+
+ <localityConstraint>
+ <constraint>SameProcess</constraint>
+ <constrainedInstance xmi:idref="ProcessColocationComponentInstance_1" />
+ <constrainedInstance xmi:idref="ProcessColocationComponentInstance_1_2" />
+ </localityConstraint>
+
+ <localityConstraint>
+ <constraint>SameProcess</constraint>
+ <constrainedInstance xmi:idref="ProcessColocationComponentInstance_2" />
+ <constrainedInstance xmi:idref="ProcessColocationComponentInstance_2_2" />
+ </localityConstraint>
+
+ </Deployment:DeploymentPlan>
diff --git a/modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/SimplexConnectionExplicitHome.cdp b/modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/SimplexConnectionExplicitHome.cdp
new file mode 100644
index 00000000000..8283e9e869a
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/SimplexConnectionExplicitHome.cdp
@@ -0,0 +1,262 @@
+<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>SimpleComponent_Home</label>
+ <UUID>SimpleComponent_Home</UUID>
+
+ <!-- Implementations declarations -->
+
+ <!-- Home implementation -->
+ <implementation xmi:id="SimpleProviderHomeImplementation">
+ <name>SimpleProviderHomeImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleProvider_ExecArtifact" />
+ <artifact xmi:idref="SimpleProvider_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleProviderHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleProviderHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleProvider_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleProvider_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="SimpleProviderComponentImplementation">
+ <name>SimpleProviderComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleProvider_ExecArtifact" />
+ <artifact xmi:idref="SimpleProvider_SvntArtifact" />
+ </implementation>
+
+ <implementation xmi:id="SimpleUserHomeImplementation">
+ <name>SimpleUserHomeImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleUser_ExecArtifact" />
+ <artifact xmi:idref="SimpleUser_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleUserHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleUserHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleUser_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleUser_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="SimpleUserComponentImplementation">
+ <name>SimpleUserComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleUser_ExecArtifact" />
+ <artifact xmi:idref="SimpleUser_SvntArtifact" />
+ </implementation>
+
+ <instance xmi:id="SimpleProviderHomeInstance">
+ <name>SimpleProviderHome</name>
+ <node>NodeOne</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleProviderHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimpleProviderComponentInstance">
+ <name>SimpleProviderComponent</name>
+ <node>NodeOne</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleProviderComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleProviderHome</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="SimpleUserHomeInstance">
+ <name>SimpleUserHome</name>
+ <node>NodeTwo</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleUserHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimpleUserComponentInstance">
+ <name>SimpleUserComponent</name>
+ <node>NodeTwo</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleUserComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleUserHome</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="SimpleUserComponentInstanceReverse">
+ <name>SimpleUserComponentReverse</name>
+ <node>NodeTwo</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleUserComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleUserHome</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <connection>
+ <name>TestConnection</name>
+ <internalEndpoint>
+ <portName>trig</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="SimpleProviderComponentInstance" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>trig</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance xmi:idref="SimpleUserComponentInstance" />
+ </internalEndpoint>
+ </connection>
+
+ <connection>
+ <name>TestConnectionReverse</name>
+ <internalEndpoint>
+ <portName>trig</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance xmi:idref="SimpleUserComponentInstanceReverse" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>trig</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="SimpleProviderComponentInstance" />
+ </internalEndpoint>
+ </connection>
+
+ <!-- Artifacts declarations -->
+ <artifact xmi:id="SimpleProvider_ExecArtifact">
+ <name>SimpleProvider_exec</name>
+ <source/>
+ <node/>
+ <location>SimpleProvider_exec</location>
+ </artifact>
+ <artifact xmi:id="SimpleProvider_SvntArtifact">
+ <name>SimpleProvider_svnt</name>
+ <source/>
+ <node/>
+ <location>SimpleProvider_svnt</location>
+ </artifact>
+
+ <artifact xmi:id="SimpleUser_ExecArtifact">
+ <name>SimpleUser_exec</name>
+ <source/>
+ <node/>
+ <location>SimpleUser_exec</location>
+ </artifact>
+ <artifact xmi:id="SimpleUser_SvntArtifact">
+ <name>SimpleUser_svnt</name>
+ <source/>
+ <node/>
+ <location>SimpleUser_svnt</location>
+ </artifact>
+
+ </Deployment:DeploymentPlan>
diff --git a/modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/SimplexConnectionExplicitHome_NS.cdp b/modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/SimplexConnectionExplicitHome_NS.cdp
new file mode 100644
index 00000000000..799ec7d5fa6
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/SimplexConnectionExplicitHome_NS.cdp
@@ -0,0 +1,284 @@
+<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>SimpleComponent_Home</label>
+ <UUID>SimpleComponent_Home</UUID>
+
+ <!-- Implementations declarations -->
+
+ <!-- Home implementation -->
+ <implementation xmi:id="SimpleProviderHomeImplementation">
+ <name>SimpleProviderHomeImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleProvider_ExecArtifact" />
+ <artifact xmi:idref="SimpleProvider_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleProviderHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleProviderHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleProvider_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleProvider_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="SimpleProviderComponentImplementation">
+ <name>SimpleProviderComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleProvider_ExecArtifact" />
+ <artifact xmi:idref="SimpleProvider_SvntArtifact" />
+ </implementation>
+
+ <implementation xmi:id="SimpleUserHomeImplementation">
+ <name>SimpleUserHomeImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleUser_ExecArtifact" />
+ <artifact xmi:idref="SimpleUser_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleUserHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleUserHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleUser_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleUser_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="SimpleUserComponentImplementation">
+ <name>SimpleUserComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleUser_ExecArtifact" />
+ <artifact xmi:idref="SimpleUser_SvntArtifact" />
+ </implementation>
+
+ <instance xmi:id="SimpleProviderHomeInstance">
+ <name>SimpleProviderHome</name>
+ <node>NodeOne</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleProviderHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimpleProviderComponentInstance">
+ <name>SimpleProviderComponent</name>
+ <node>NodeOne</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleProviderComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleProviderHome</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.RegisterNaming</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleProviderComponent</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="SimpleUserHomeInstance">
+ <name>SimpleUserHome</name>
+ <node>NodeTwo</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleUserHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimpleUserComponentInstance">
+ <name>SimpleUserComponent</name>
+ <node>NodeTwo</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleUserComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleUserHome</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.RegisterNaming</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleUserComponent</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="SimpleUserComponentInstanceReverse">
+ <name>SimpleUserComponentReverse</name>
+ <node>NodeTwo</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleUserComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleUserHome</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <connection>
+ <name>TestConnection</name>
+ <internalEndpoint>
+ <portName>trig</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="SimpleProviderComponentInstance" />
+ </internalEndpoint>
+ <externalReference>
+ <location>corbaname:rir:/NameService#SimpleUserComponent</location>
+ <provider>false</provider>
+ <portName>trig</portName>
+ <supportedType>Meaningless</supportedType>
+ </externalReference>
+ </connection>
+
+ <connection>
+ <name>TestConnectionReverse</name>
+ <internalEndpoint>
+ <portName>trig</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance xmi:idref="SimpleUserComponentInstanceReverse" />
+ </internalEndpoint>
+ <externalReference>
+ <location>corbaname:rir:/NameService#SimpleProviderComponent</location>
+ <provider>true</provider>
+ <portName>trig</portName>
+ <supportedType>Meaningless</supportedType>
+ </externalReference>
+ </connection>
+
+ <!-- Artifacts declarations -->
+ <artifact xmi:id="SimpleProvider_ExecArtifact">
+ <name>SimpleProvider_exec</name>
+ <source/>
+ <node/>
+ <location>SimpleProvider_exec</location>
+ </artifact>
+ <artifact xmi:id="SimpleProvider_SvntArtifact">
+ <name>SimpleProvider_svnt</name>
+ <source/>
+ <node/>
+ <location>SimpleProvider_svnt</location>
+ </artifact>
+
+ <artifact xmi:id="SimpleUser_ExecArtifact">
+ <name>SimpleUser_exec</name>
+ <source/>
+ <node/>
+ <location>SimpleUser_exec</location>
+ </artifact>
+ <artifact xmi:id="SimpleUser_SvntArtifact">
+ <name>SimpleUser_svnt</name>
+ <source/>
+ <node/>
+ <location>SimpleUser_svnt</location>
+ </artifact>
+
+ </Deployment:DeploymentPlan>
diff --git a/modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/SimplexConnectionExplicitHome_NS_PL_DP.cdp b/modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/SimplexConnectionExplicitHome_NS_PL_DP.cdp
new file mode 100644
index 00000000000..58eec7a4ff8
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/SimplexConnectionExplicitHome_NS_PL_DP.cdp
@@ -0,0 +1,297 @@
+<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>SimpleComponent_Home</label>
+ <UUID>SimpleComponent_Home</UUID>
+
+ <!-- Implementations declarations -->
+
+ <!-- Home implementation -->
+ <implementation xmi:id="SimpleProviderHomeImplementation">
+ <name>SimpleProviderHomeImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleProvider_ExecArtifact" />
+ <artifact xmi:idref="SimpleProvider_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleProviderHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleProviderHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleProvider_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleProvider_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="SimpleProviderComponentImplementation">
+ <name>SimpleProviderComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleProvider_ExecArtifact" />
+ <artifact xmi:idref="SimpleProvider_SvntArtifact" />
+ </implementation>
+
+ <implementation xmi:id="SimpleUserHomeImplementation">
+ <name>SimpleUserHomeImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleUser_ExecArtifact" />
+ <artifact xmi:idref="SimpleUser_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleUserHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleUserHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleUser_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleUser_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="SimpleUserComponentImplementation">
+ <name>SimpleUserComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleUser_ExecArtifact" />
+ <artifact xmi:idref="SimpleUser_SvntArtifact" />
+ </implementation>
+
+ <instance xmi:id="SimpleProviderHomeInstance">
+ <name>SimpleProviderHome</name>
+ <node>NodeOne</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleProviderHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimpleProviderComponentInstance">
+ <name>SimpleProviderComponent</name>
+ <node>NodeOne</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleProviderComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleProviderHome</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.RegisterNaming</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleProviderComponent</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="SimpleUserHomeInstance">
+ <name>SimpleUserHome</name>
+ <node>NodeTwo</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleUserHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimpleUserComponentInstance">
+ <name>SimpleUserComponent</name>
+ <node>NodeTwo</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleUserComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleUserHome</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.RegisterNaming</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleUserComponent</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="SimpleUserComponentInstanceReverse">
+ <name>SimpleUserComponentReverse</name>
+ <node>NodeTwo</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleUserComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleUserHome</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <connection>
+ <name>TestConnection</name>
+ <internalEndpoint>
+ <portName>trig</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="SimpleProviderComponentInstance" />
+ </internalEndpoint>
+ <externalReference>
+ <location>corbaname:rir:/NameService#SimpleUserComponent</location>
+ <provider>false</provider>
+ <portName>trig</portName>
+ <supportedType>Meaningless</supportedType>
+ </externalReference>
+ </connection>
+
+ <connection>
+ <name>TestConnectionReverse</name>
+ <internalEndpoint>
+ <portName>trig</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance xmi:idref="SimpleUserComponentInstanceReverse" />
+ </internalEndpoint>
+ <externalReference>
+ <location>corbaname:rir:/NameService#SimpleProviderComponent</location>
+ <provider>true</provider>
+ <portName>trig</portName>
+ <supportedType>Meaningless</supportedType>
+ </externalReference>
+ </connection>
+
+ <!-- Artifacts declarations -->
+ <artifact xmi:id="SimpleProvider_ExecArtifact">
+ <name>SimpleProvider_exec</name>
+ <source/>
+ <node/>
+ <location>SimpleProvider_exec</location>
+ </artifact>
+ <artifact xmi:id="SimpleProvider_SvntArtifact">
+ <name>SimpleProvider_svnt</name>
+ <source/>
+ <node/>
+ <location>SimpleProvider_svnt</location>
+ </artifact>
+
+ <artifact xmi:id="SimpleUser_ExecArtifact">
+ <name>SimpleUser_exec</name>
+ <source/>
+ <node/>
+ <location>SimpleUser_exec</location>
+ </artifact>
+ <artifact xmi:id="SimpleUser_SvntArtifact">
+ <name>SimpleUser_svnt</name>
+ <source/>
+ <node/>
+ <location>SimpleUser_svnt</location>
+ </artifact>
+
+ <localityConstraint>
+ <constraint>SameProcess</constraint>
+ <constrainedInstance xmi:idref="SimpleProviderHomeInstance" />
+ <constrainedInstance xmi:idref="SimpleProviderComponentInstance" />
+ </localityConstraint>
+
+ <localityConstraint>
+ <constraint>SameProcess</constraint>
+ <constrainedInstance xmi:idref="SimpleUserHomeInstance" />
+ <constrainedInstance xmi:idref="SimpleUserComponentInstance" />
+ <constrainedInstance xmi:idref="SimpleUserComponentInstanceReverse" />
+ </localityConstraint>
+
+ </Deployment:DeploymentPlan>
diff --git a/modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/SimplexConnectionExplicitHome_NS_PL_SP.cdp b/modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/SimplexConnectionExplicitHome_NS_PL_SP.cdp
new file mode 100644
index 00000000000..fff2817c3ab
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/SimplexConnectionExplicitHome_NS_PL_SP.cdp
@@ -0,0 +1,293 @@
+<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>SimpleComponent_Home</label>
+ <UUID>SimpleComponent_Home</UUID>
+
+ <!-- Implementations declarations -->
+
+ <!-- Home implementation -->
+ <implementation xmi:id="SimpleProviderHomeImplementation">
+ <name>SimpleProviderHomeImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleProvider_ExecArtifact" />
+ <artifact xmi:idref="SimpleProvider_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleProviderHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleProviderHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleProvider_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleProvider_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="SimpleProviderComponentImplementation">
+ <name>SimpleProviderComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleProvider_ExecArtifact" />
+ <artifact xmi:idref="SimpleProvider_SvntArtifact" />
+ </implementation>
+
+ <implementation xmi:id="SimpleUserHomeImplementation">
+ <name>SimpleUserHomeImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleUser_ExecArtifact" />
+ <artifact xmi:idref="SimpleUser_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleUserHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleUserHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleUser_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleUser_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="SimpleUserComponentImplementation">
+ <name>SimpleUserComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleUser_ExecArtifact" />
+ <artifact xmi:idref="SimpleUser_SvntArtifact" />
+ </implementation>
+
+ <instance xmi:id="SimpleProviderHomeInstance">
+ <name>SimpleProviderHome</name>
+ <node>NodeOne</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleProviderHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimpleProviderComponentInstance">
+ <name>SimpleProviderComponent</name>
+ <node>NodeOne</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleProviderComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleProviderHome</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.RegisterNaming</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleProviderComponent</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="SimpleUserHomeInstance">
+ <name>SimpleUserHome</name>
+ <node>NodeTwo</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleUserHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimpleUserComponentInstance">
+ <name>SimpleUserComponent</name>
+ <node>NodeTwo</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleUserComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleUserHome</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.RegisterNaming</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleUserComponent</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="SimpleUserComponentInstanceReverse">
+ <name>SimpleUserComponentReverse</name>
+ <node>NodeTwo</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleUserComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleUserHome</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <connection>
+ <name>TestConnection</name>
+ <internalEndpoint>
+ <portName>trig</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="SimpleProviderComponentInstance" />
+ </internalEndpoint>
+ <externalReference>
+ <location>corbaname:rir:/NameService#SimpleUserComponent</location>
+ <provider>false</provider>
+ <portName>trig</portName>
+ <supportedType>Meaningless</supportedType>
+ </externalReference>
+ </connection>
+
+ <connection>
+ <name>TestConnectionReverse</name>
+ <internalEndpoint>
+ <portName>trig</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance xmi:idref="SimpleUserComponentInstanceReverse" />
+ </internalEndpoint>
+ <externalReference>
+ <location>corbaname:rir:/NameService#SimpleProviderComponent</location>
+ <provider>true</provider>
+ <portName>trig</portName>
+ <supportedType>Meaningless</supportedType>
+ </externalReference>
+ </connection>
+
+ <!-- Artifacts declarations -->
+ <artifact xmi:id="SimpleProvider_ExecArtifact">
+ <name>SimpleProvider_exec</name>
+ <source/>
+ <node/>
+ <location>SimpleProvider_exec</location>
+ </artifact>
+ <artifact xmi:id="SimpleProvider_SvntArtifact">
+ <name>SimpleProvider_svnt</name>
+ <source/>
+ <node/>
+ <location>SimpleProvider_svnt</location>
+ </artifact>
+
+ <artifact xmi:id="SimpleUser_ExecArtifact">
+ <name>SimpleUser_exec</name>
+ <source/>
+ <node/>
+ <location>SimpleUser_exec</location>
+ </artifact>
+ <artifact xmi:id="SimpleUser_SvntArtifact">
+ <name>SimpleUser_svnt</name>
+ <source/>
+ <node/>
+ <location>SimpleUser_svnt</location>
+ </artifact>
+
+ <localityConstraint>
+ <constraint>SameProcess</constraint>
+ <constrainedInstance xmi:idref="SimpleProviderHomeInstance" />
+ <constrainedInstance xmi:idref="SimpleProviderComponentInstance" />
+ <constrainedInstance xmi:idref="SimpleUserHomeInstance" />
+ <constrainedInstance xmi:idref="SimpleUserComponentInstance" />
+ <constrainedInstance xmi:idref="SimpleUserComponentInstanceReverse" />
+ </localityConstraint>
+
+ </Deployment:DeploymentPlan>
diff --git a/modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/SimplexConnectionExplicitHome_NilFacet.cdp b/modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/SimplexConnectionExplicitHome_NilFacet.cdp
new file mode 100644
index 00000000000..e9539795797
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/SimplexConnectionExplicitHome_NilFacet.cdp
@@ -0,0 +1,262 @@
+<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>SimpleComponent_Home</label>
+ <UUID>SimpleComponent_Home</UUID>
+
+ <!-- Implementations declarations -->
+
+ <!-- Home implementation -->
+ <implementation xmi:id="SimpleNilFacetProviderHomeImplementation">
+ <name>SimpleNilFacetProviderHomeImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleNilFacetProvider_ExecArtifact" />
+ <artifact xmi:idref="SimpleNilFacetProvider_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleNilFacetProviderHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleNilFacetProviderHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleNilFacetProvider_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleNilFacetProvider_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="SimpleNilFacetProviderComponentImplementation">
+ <name>SimpleNilFacetProviderComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleNilFacetProvider_ExecArtifact" />
+ <artifact xmi:idref="SimpleNilFacetProvider_SvntArtifact" />
+ </implementation>
+
+ <implementation xmi:id="SimpleNilFacetUserHomeImplementation">
+ <name>SimpleNilFacetUserHomeImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleNilFacetUser_ExecArtifact" />
+ <artifact xmi:idref="SimpleNilFacetUser_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleNilFacetUserHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleNilFacetUserHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleNilFacetUser_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleNilFacetUser_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="SimpleNilFacetUserComponentImplementation">
+ <name>SimpleNilFacetUserComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleNilFacetUser_ExecArtifact" />
+ <artifact xmi:idref="SimpleNilFacetUser_SvntArtifact" />
+ </implementation>
+
+ <instance xmi:id="SimpleNilFacetProviderHomeInstance">
+ <name>SimpleNilFacetProviderHome</name>
+ <node>NodeOne</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleNilFacetProviderHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimpleNilFacetProviderComponentInstance">
+ <name>SimpleNilFacetProviderComponent</name>
+ <node>NodeOne</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleNilFacetProviderComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleNilFacetProviderHome</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="SimpleNilFacetUserHomeInstance">
+ <name>SimpleNilFacetUserHome</name>
+ <node>NodeTwo</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleNilFacetUserHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimpleNilFacetUserComponentInstance">
+ <name>SimpleNilFacetUserComponent</name>
+ <node>NodeTwo</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleNilFacetUserComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleNilFacetUserHome</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="SimpleNilFacetUserComponentInstanceReverse">
+ <name>SimpleNilFacetUserComponentReverse</name>
+ <node>NodeTwo</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleNilFacetUserComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleNilFacetUserHome</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <connection>
+ <name>TestConnection</name>
+ <internalEndpoint>
+ <portName>trig</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="SimpleNilFacetProviderComponentInstance" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>trig</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance xmi:idref="SimpleNilFacetUserComponentInstance" />
+ </internalEndpoint>
+ </connection>
+
+ <connection>
+ <name>TestConnectionReverse</name>
+ <internalEndpoint>
+ <portName>trig</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance xmi:idref="SimpleNilFacetUserComponentInstanceReverse" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>trig</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="SimpleNilFacetProviderComponentInstance" />
+ </internalEndpoint>
+ </connection>
+
+ <!-- Artifacts declarations -->
+ <artifact xmi:id="SimpleNilFacetProvider_ExecArtifact">
+ <name>SimpleNilFacetProvider_exec</name>
+ <source/>
+ <node/>
+ <location>SimpleNilFacetProvider_exec</location>
+ </artifact>
+ <artifact xmi:id="SimpleNilFacetProvider_SvntArtifact">
+ <name>SimpleNilFacetProvider_svnt</name>
+ <source/>
+ <node/>
+ <location>SimpleNilFacetProvider_svnt</location>
+ </artifact>
+
+ <artifact xmi:id="SimpleNilFacetUser_ExecArtifact">
+ <name>SimpleNilFacetUser_exec</name>
+ <source/>
+ <node/>
+ <location>SimpleNilFacetUser_exec</location>
+ </artifact>
+ <artifact xmi:id="SimpleNilFacetUser_SvntArtifact">
+ <name>SimpleNilFacetUser_svnt</name>
+ <source/>
+ <node/>
+ <location>SimpleNilFacetUser_svnt</location>
+ </artifact>
+
+ </Deployment:DeploymentPlan>
diff --git a/modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/run_test.pl b/modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/run_test.pl
new file mode 100755
index 00000000000..8cca3466bed
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/run_test.pl
@@ -0,0 +1,224 @@
+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 = 2;
+@ports = ( 60001, 60002 );
+@iorbases = ( "NodeApp1.ior", "NodeApp2.ior" );
+@iorfiles = 0;
+@nodenames = ( "NodeOne", "NodeTwo" );
+
+# 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;
+
+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+2) || die "Create target for deamon $i failed\n";
+ $tg_daemons[$i]->AddLibPath ('../Components');
+ }
+ # 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);
+ }
+ for ($i = 0; $i < $nr_daemon; ++$i) {
+ # in case shutdown did not perform as expected
+ $tg_daemons[$i]->KillAll ('ciao_componentserver');
+ }
+}
+
+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);
+ }
+}
+
+
+sub run_node_daemons {
+ for ($i = 0; $i < $nr_daemon; ++$i) {
+ $iorbase = $iorbases[$i];
+ $iorfile = $iorfiles[$i];
+ $port = $ports[$i];
+ $nodename = $nodenames[$i];
+ $node_host = $tg_daemons[$i]->HostName ();
+ $iiop = "iiop://$node_host:$port";
+ $node_app = "$CIAO_ROOT/bin/ciao_componentserver";
+
+ $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";
+
+ print "Run node daemon\n";
+
+ ## add NameService env setting to node targets
+ $tg_daemons[$i]->SetEnv ('NameServiceIOR', $tg_exe_man->GetEnv ("NameServiceIOR"));
+
+ $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;
+}
+
+if ($#ARGV == -1) {
+ opendir(DIR, ".");
+ @files = grep(/\.cdp$/,readdir(DIR));
+ closedir(DIR);
+}
+else {
+ @files = @ARGV;
+}
+
+create_targets ();
+init_ior_files ();
+
+foreach $file (@files) {
+ print "Starting test for deployment $file\n";
+
+ print STDERR "Starting Naming Service\n";
+
+ my $ns_host = $tg_naming->HostName ();
+ $NS = $tg_naming->CreateProcess ("$TAO_ROOT/orbsvcs/Naming_Service/Naming_Service", "-m 0 -ORBEndpoint iiop://$ns_host:60003 -o $ior_nsfile");
+ $NS->Spawn ();
+
+ 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
+ $tg_exe_man->SetEnv ("NameServiceIOR", "corbaloc:iiop:$ns_host:60003/NameService");
+ $tg_executor->SetEnv ("NameServiceIOR", "corbaloc:iiop:$ns_host: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 daemons\n";
+ kill_open_processes ();
+ exit 1;
+ }
+
+ $daemons_running = 1;
+
+ # Invoke execution manager.
+ print "Invoking execution manager\n";
+ $EM = $tg_exe_man->CreateProcess ("$DANCE_ROOT/bin/dance_execution_manager",
+ "-e$ior_emfile --domain-nc corbaloc:rir:/NameService");
+ $EM->Spawn ();
+
+ 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";
+ $E = $tg_executor->CreateProcess ("$DANCE_ROOT/bin/dance_plan_launcher",
+ "-x $file -k file://$ior_emfile -l");
+ $E->SpawnWaitKill (120);
+
+ print "Teardown the application\n";
+ $E = $tg_executor->CreateProcess ("$DANCE_ROOT/bin/dance_plan_launcher",
+ "-k file://$ior_emfile -x $file -s");
+ $E->SpawnWaitKill (120);
+ print "Executor finished.\n";
+
+ delete_ior_files ();
+ kill_open_processes ();
+
+ $daemons_running = 0;
+}
+
+delete_ior_files ();
+kill_open_processes ();
+
+exit $status;
diff --git a/modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/run_test_cdr.pl b/modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/run_test_cdr.pl
new file mode 100755
index 00000000000..901a98944bc
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/run_test_cdr.pl
@@ -0,0 +1,241 @@
+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 = 2;
+@ports = ( 60001, 60002 );
+@iorbases = ( "NodeApp1.ior", "NodeApp2.ior" );
+@iorfiles = 0;
+@nodenames = ( "NodeOne", "NodeTwo" );
+
+# 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;
+$tg_convert_plan = 0;
+
+$status = 0;
+
+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+2) || die "Create target for deamon $i failed\n";
+ $tg_daemons[$i]->AddLibPath ('../Components');
+ }
+ # 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 ('..');
+
+ $tg_convert_plan = PerlACE::TestTarget::create_target (1) || die "Could not create target for convert plan\n";
+}
+
+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);
+ }
+ for ($i = 0; $i < $nr_daemon; ++$i) {
+ # in case shutdown did not perform as expected
+ $tg_daemons[$i]->KillAll ('ciao_componentserver');
+ }
+}
+
+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);
+ }
+}
+
+
+sub run_node_daemons {
+ for ($i = 0; $i < $nr_daemon; ++$i) {
+ $iorbase = $iorbases[$i];
+ $iorfile = $iorfiles[$i];
+ $port = $ports[$i];
+ $nodename = $nodenames[$i];
+ $node_host = $tg_daemons[$i]->HostName ();
+ $iiop = "iiop://$node_host:$port";
+ $node_app = "$CIAO_ROOT/bin/ciao_componentserver";
+
+ $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";
+
+ print "Run node daemon\n";
+ $tg_daemons[$i]->SetEnv ("NameServiceIOR", $tg_exe_man->GetEnv ("NameServiceIOR"));
+
+ $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;
+}
+
+if ($#ARGV == -1) {
+ opendir(DIR, ".");
+ @files = grep(/\.cdp$/,readdir(DIR));
+ closedir(DIR);
+}
+else {
+ @files = @ARGV;
+}
+
+create_targets ();
+init_ior_files ();
+
+foreach $file (@files) {
+ print "Starting test for deployment $file\n";
+
+ print STDERR "Starting Naming Service\n";
+
+ my $ns_host = $tg_naming->HostName ();
+ $NS = $tg_naming->CreateProcess ("$TAO_ROOT/orbsvcs/Naming_Service/Naming_Service", "-m 0 -ORBEndpoint iiop://$ns_host:60003 -o $ior_nsfile");
+ $NS->Spawn ();
+
+ 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
+ $tg_exe_man->SetEnv ("NameServiceIOR", "corbaloc:iiop:$ns_host:60003/NameService");
+ $tg_executor->SetEnv ("NameServiceIOR", "corbaloc:iiop:$ns_host: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 daemons\n";
+ kill_open_processes ();
+ exit 1;
+ }
+
+ $daemons_running = 1;
+
+ # Invoke execution manager.
+ print "Invoking execution manager\n";
+ $EM = $tg_exe_man->CreateProcess ("$DANCE_ROOT/bin/dance_execution_manager",
+ "-e$ior_emfile --domain-nc corbaloc:rir:/NameService");
+ $EM->Spawn ();
+
+ 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;
+
+ print "Converting plan to CDR representation\n";
+ $cdr_planbase = "$file" . ".cdr";
+ $cdr_plan = $tg_convert_plan->LocalFile ($cdr_planbase);
+ $convert = $tg_convert_plan->CreateProcess("$DANCE_ROOT/bin/dance_convert_plan",
+ "-x $file -o $cdr_plan");
+
+ $convert->Spawn ();
+
+ if ($tg_convert_plan->WaitForFileTimed ($cdr_planbase,
+ 30) == -1) {
+ print STDERR "ERROR: Convert Plan failed to output $cdr_plan.\n";
+ kill_open_processes ();
+ next;
+ }
+
+ $convert->Kill ();
+
+ # Invoke executor - start the application -.
+ print "Invoking executor - launch the application -\n";
+ $E = $tg_executor->CreateProcess ("$DANCE_ROOT/bin/dance_plan_launcher",
+ "-c $cdr_plan -k file://$ior_emfile -l");
+ $E->SpawnWaitKill (120);
+
+ print "Teardown the application\n";
+ $E = $tg_executor->CreateProcess ("$DANCE_ROOT/bin/dance_plan_launcher",
+ "-k file://$ior_emfile -c $cdr_plan -s");
+ $E->SpawnWaitKill (120);
+ print "Executor finished.\n";
+
+ $tg_convert_plan->DeleteFile ($cdr_planbase);
+ delete_ior_files ();
+ kill_open_processes ();
+}
+
+delete_ior_files ();
+kill_open_processes ();
+
+exit $status;
diff --git a/modules/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/EmitsConnectionExplicitHome.cdp b/modules/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/EmitsConnectionExplicitHome.cdp
new file mode 100644
index 00000000000..6ac17b1e9e9
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/EmitsConnectionExplicitHome.cdp
@@ -0,0 +1,227 @@
+<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>SimpleComponent_Home</label>
+ <UUID>SimpleComponent_Home</UUID>
+
+ <!-- Implementations declarations -->
+
+ <!-- Home implementation -->
+ <implementation xmi:id="SimpleEmitterHomeImplementation">
+ <name>SimpleEmitterHomeImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleEmitter_ExecArtifact" />
+ <artifact xmi:idref="SimpleEmitter_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleEmitterHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleEmitterHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleEmitter_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleEmitter_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="SimpleEmitterComponentImplementation">
+ <name>SimpleEmitterComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleEmitter_ExecArtifact" />
+ <artifact xmi:idref="SimpleEmitter_SvntArtifact" />
+ </implementation>
+
+ <implementation xmi:id="SimpleConsumerHomeImplementation">
+ <name>SimpleConsumerHomeImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleConsumer_ExecArtifact" />
+ <artifact xmi:idref="SimpleConsumer_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleConsumerHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleConsumerHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleConsumer_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleConsumer_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="SimpleConsumerComponentImplementation">
+ <name>SimpleConsumerComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleConsumer_ExecArtifact" />
+ <artifact xmi:idref="SimpleConsumer_SvntArtifact" />
+ </implementation>
+
+ <instance xmi:id="SimpleEmitterHomeInstance">
+ <name>SimpleEmitterHome</name>
+ <node>Node</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleEmitterHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimpleEmitterComponentInstance">
+ <name>SimpleEmitterComponent</name>
+ <node>Node</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleEmitterComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleEmitterHome</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="SimpleConsumerHomeInstance">
+ <name>SimpleConsumerHome</name>
+ <node>Node</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleConsumerHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimpleConsumerComponentInstance">
+ <name>SimpleConsumerComponent</name>
+ <node>Node</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleConsumerComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleConsumerHome</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <connection>
+ <name>TestConnection</name>
+ <internalEndpoint>
+ <portName>hello</portName>
+ <provider>false</provider>
+ <kind>EventEmitter</kind>
+ <instance xmi:idref="SimpleEmitterComponentInstance" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>hello_</portName>
+ <provider>true</provider>
+ <kind>EventConsumer</kind>
+ <instance xmi:idref="SimpleConsumerComponentInstance" />
+ </internalEndpoint>
+ </connection>
+
+ <!-- Artifacts declarations -->
+ <artifact xmi:id="SimpleEmitter_ExecArtifact">
+ <name>SimpleEmitter_exec</name>
+ <source/>
+ <node/>
+ <location>SimpleEmitter_exec</location>
+ </artifact>
+ <artifact xmi:id="SimpleEmitter_SvntArtifact">
+ <name>SimpleEmitter_svnt</name>
+ <source/>
+ <node/>
+ <location>SimpleEmitter_svnt</location>
+ </artifact>
+
+ <artifact xmi:id="SimpleConsumer_ExecArtifact">
+ <name>SimpleConsumer_exec</name>
+ <source/>
+ <node/>
+ <location>SimpleConsumer_exec</location>
+ </artifact>
+ <artifact xmi:id="SimpleConsumer_SvntArtifact">
+ <name>SimpleConsumer_svnt</name>
+ <source/>
+ <node/>
+ <location>SimpleConsumer_svnt</location>
+ </artifact>
+
+ </Deployment:DeploymentPlan>
diff --git a/modules/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/MultiplexConnectionExplicitHome.cdp b/modules/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/MultiplexConnectionExplicitHome.cdp
new file mode 100644
index 00000000000..45ff31929c3
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/MultiplexConnectionExplicitHome.cdp
@@ -0,0 +1,262 @@
+<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>SimpleComponent_Home</label>
+ <UUID>SimpleComponent_Home</UUID>
+
+ <!-- Implementations declarations -->
+
+ <!-- Home implementation -->
+ <implementation xmi:id="SimpleProviderHomeImplementation">
+ <name>SimpleProviderHomeImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleProvider_ExecArtifact" />
+ <artifact xmi:idref="SimpleProvider_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleProviderHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleProviderHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleProvider_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleProvider_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="SimpleProviderComponentImplementation">
+ <name>SimpleProviderComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleProvider_ExecArtifact" />
+ <artifact xmi:idref="SimpleProvider_SvntArtifact" />
+ </implementation>
+
+ <implementation xmi:id="SimpleMultipleUserHomeImplementation">
+ <name>SimpleMultipleUserHomeImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleMultipleUser_ExecArtifact" />
+ <artifact xmi:idref="SimpleMultipleUser_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleMultipleUserHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleMultipleUserHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleMultipleUser_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleMultipleUser_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="SimpleMultipleUserComponentImplementation">
+ <name>SimpleMultipleUserComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleMultipleUser_ExecArtifact" />
+ <artifact xmi:idref="SimpleMultipleUser_SvntArtifact" />
+ </implementation>
+
+ <instance xmi:id="SimpleProviderHomeInstance">
+ <name>SimpleProviderHome</name>
+ <node>Node</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleProviderHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimpleProviderComponentInstance">
+ <name>SimpleProviderComponent</name>
+ <node>Node</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleProviderComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleProviderHome</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="SimpleMultipleUserHomeInstance">
+ <name>SimpleMultipleUserHome</name>
+ <node>Node</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleMultipleUserHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimpleMultipleUserComponentInstance">
+ <name>SimpleMultipleUserComponent</name>
+ <node>Node</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleMultipleUserComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleMultipleUserHome</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="SimpleMultipleUserComponentInstanceReverse">
+ <name>SimpleMultipleUserComponentReverse</name>
+ <node>Node</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleMultipleUserComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleMultipleUserHome</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <connection>
+ <name>TestConnection</name>
+ <internalEndpoint>
+ <portName>trig</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="SimpleProviderComponentInstance" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>trig</portName>
+ <provider>false</provider>
+ <kind>MultiplexReceptacle</kind>
+ <instance xmi:idref="SimpleMultipleUserComponentInstance" />
+ </internalEndpoint>
+ </connection>
+
+ <connection>
+ <name>TestConnectionReverse</name>
+ <internalEndpoint>
+ <portName>trig</portName>
+ <provider>false</provider>
+ <kind>MultiplexReceptacle</kind>
+ <instance xmi:idref="SimpleMultipleUserComponentInstanceReverse" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>trig</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="SimpleProviderComponentInstance" />
+ </internalEndpoint>
+ </connection>
+
+ <!-- Artifacts declarations -->
+ <artifact xmi:id="SimpleProvider_ExecArtifact">
+ <name>SimpleProvider_exec</name>
+ <source/>
+ <node/>
+ <location>SimpleProvider_exec</location>
+ </artifact>
+ <artifact xmi:id="SimpleProvider_SvntArtifact">
+ <name>SimpleProvider_svnt</name>
+ <source/>
+ <node/>
+ <location>SimpleProvider_svnt</location>
+ </artifact>
+
+ <artifact xmi:id="SimpleMultipleUser_ExecArtifact">
+ <name>SimpleMultipleUser_exec</name>
+ <source/>
+ <node/>
+ <location>SimpleMultipleUser_exec</location>
+ </artifact>
+ <artifact xmi:id="SimpleMultipleUser_SvntArtifact">
+ <name>SimpleMultipleUser_svnt</name>
+ <source/>
+ <node/>
+ <location>SimpleMultipleUser_svnt</location>
+ </artifact>
+
+ </Deployment:DeploymentPlan>
diff --git a/modules/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/PublishConnectionExplicitHome.cdp b/modules/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/PublishConnectionExplicitHome.cdp
new file mode 100644
index 00000000000..53a0a54482d
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/PublishConnectionExplicitHome.cdp
@@ -0,0 +1,227 @@
+<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>SimpleComponent_Home</label>
+ <UUID>SimpleComponent_Home</UUID>
+
+ <!-- Implementations declarations -->
+
+ <!-- Home implementation -->
+ <implementation xmi:id="SimplePublisherHomeImplementation">
+ <name>SimplePublisherHomeImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimplePublisher_ExecArtifact" />
+ <artifact xmi:idref="SimplePublisher_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimplePublisherHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimplePublisherHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimplePublisher_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimplePublisher_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="SimplePublisherComponentImplementation">
+ <name>SimplePublisherComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimplePublisher_ExecArtifact" />
+ <artifact xmi:idref="SimplePublisher_SvntArtifact" />
+ </implementation>
+
+ <implementation xmi:id="SimpleConsumerHomeImplementation">
+ <name>SimpleConsumerHomeImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleConsumer_ExecArtifact" />
+ <artifact xmi:idref="SimpleConsumer_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleConsumerHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleConsumerHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleConsumer_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleConsumer_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="SimpleConsumerComponentImplementation">
+ <name>SimpleConsumerComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleConsumer_ExecArtifact" />
+ <artifact xmi:idref="SimpleConsumer_SvntArtifact" />
+ </implementation>
+
+ <instance xmi:id="SimplePublisherHomeInstance">
+ <name>SimplePublisherHome</name>
+ <node>Node</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimplePublisherHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimplePublisherComponentInstance">
+ <name>SimplePublisherComponent</name>
+ <node>Node</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimplePublisherComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimplePublisherHome</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="SimpleConsumerHomeInstance">
+ <name>SimpleConsumerHome</name>
+ <node>Node</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleConsumerHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimpleConsumerComponentInstance">
+ <name>SimpleConsumerComponent</name>
+ <node>Node</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleConsumerComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleConsumerHome</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <connection>
+ <name>TestConnection</name>
+ <internalEndpoint>
+ <portName>hello</portName>
+ <provider>false</provider>
+ <kind>EventPublisher</kind>
+ <instance xmi:idref="SimplePublisherComponentInstance" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>hello_</portName>
+ <provider>true</provider>
+ <kind>EventConsumer</kind>
+ <instance xmi:idref="SimpleConsumerComponentInstance" />
+ </internalEndpoint>
+ </connection>
+
+ <!-- Artifacts declarations -->
+ <artifact xmi:id="SimplePublisher_ExecArtifact">
+ <name>SimplePublisher_exec</name>
+ <source/>
+ <node/>
+ <location>SimplePublisher_exec</location>
+ </artifact>
+ <artifact xmi:id="SimplePublisher_SvntArtifact">
+ <name>SimplePublisher_svnt</name>
+ <source/>
+ <node/>
+ <location>SimplePublisher_svnt</location>
+ </artifact>
+
+ <artifact xmi:id="SimpleConsumer_ExecArtifact">
+ <name>SimpleConsumer_exec</name>
+ <source/>
+ <node/>
+ <location>SimpleConsumer_exec</location>
+ </artifact>
+ <artifact xmi:id="SimpleConsumer_SvntArtifact">
+ <name>SimpleConsumer_svnt</name>
+ <source/>
+ <node/>
+ <location>SimpleConsumer_svnt</location>
+ </artifact>
+
+ </Deployment:DeploymentPlan>
diff --git a/modules/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/SimpleAttributeExplicitHome.cdp b/modules/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/SimpleAttributeExplicitHome.cdp
new file mode 100644
index 00000000000..d66eef2c70b
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/SimpleAttributeExplicitHome.cdp
@@ -0,0 +1,179 @@
+<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>SimpleComponent_Home</label>
+ <UUID>SimpleComponent_Home</UUID>
+
+ <!-- Implementations declarations -->
+
+ <!-- Server Dance implementation-->
+ <!-- Home implementation -->
+ <implementation xmi:id="SimpleAttributeHomeImplementation">
+ <name>SimpleAttributeHomeImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleAttribute_ExecArtifact" />
+ <artifact xmi:idref="SimpleAttribute_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleAttributeHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleAttributeHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleAttribute_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleAttribute_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="SimpleAttributeComponentImplementation">
+ <name>SimpleAttributeComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleAttribute_ExecArtifact" />
+ <artifact xmi:idref="SimpleAttribute_SvntArtifact" />
+ </implementation>
+
+ <instance xmi:id="SimpleAttributeHomeInstance">
+ <name>SimpleAttributeHome</name>
+ <node>Node</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleAttributeHomeImplementation" />
+ <configProperty>
+ <name>str_attr</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Initialized Attribute!</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>long_attr</name>
+ <value>
+ <type>
+ <kind>tk_long</kind>
+ </type>
+ <value>
+ <long>1</long>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>short_attr</name>
+ <value>
+ <type>
+ <kind>tk_short</kind>
+ </type>
+ <value>
+ <short>1</short>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="SimpleAttributeComponentInstance">
+ <name>SimpleAttributeComponent</name>
+ <node>Node</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleAttributeComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleAttributeHome</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>str_attr</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Initialized Attribute!</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>long_attr</name>
+ <value>
+ <type>
+ <kind>tk_long</kind>
+ </type>
+ <value>
+ <long>1</long>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>short_attr</name>
+ <value>
+ <type>
+ <kind>tk_short</kind>
+ </type>
+ <value>
+ <short>1</short>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <!-- Artifacts declarations -->
+ <artifact xmi:id="SimpleAttribute_ExecArtifact">
+ <name>SimpleAttribute_exec</name>
+ <source/>
+ <node/>
+ <location>SimpleAttribute_exec</location>
+ </artifact>
+ <artifact xmi:id="SimpleAttribute_SvntArtifact">
+ <name>SimpleAttribute_svnt</name>
+ <source/>
+ <node/>
+ <location>SimpleAttribute_svnt</location>
+ </artifact>
+
+ </Deployment:DeploymentPlan>
diff --git a/modules/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/SimpleComponentExplicitHome.cdp b/modules/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/SimpleComponentExplicitHome.cdp
new file mode 100644
index 00000000000..5632d219c48
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/SimpleComponentExplicitHome.cdp
@@ -0,0 +1,113 @@
+<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>SimpleComponent_Home</label>
+ <UUID>SimpleComponent_Home</UUID>
+
+ <!-- Implementations declarations -->
+
+ <!-- Server Dance implementation-->
+ <!-- Home implementation -->
+ <implementation xmi:id="SimpleNullHomeImplementation">
+ <name>SimpleNullHomeImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleNull_ExecArtifact" />
+ <artifact xmi:idref="SimpleNull_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleNullHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleNullHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleNull_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleNull_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="SimpleNullComponentImplementation">
+ <name>SimpleNullComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleNull_ExecArtifact" />
+ <artifact xmi:idref="SimpleNull_SvntArtifact" />
+ </implementation>
+
+ <instance xmi:id="SimpleNullHomeInstance">
+ <name>SimpleNullHome</name>
+ <node>Node</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleNullHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimpleNullComponentInstance">
+ <name>SimpleNullComponent</name>
+ <node>Node</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleNullComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleNullHome</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <!-- Artifacts declarations -->
+ <artifact xmi:id="SimpleNull_ExecArtifact">
+ <name>SimpleNull_exec</name>
+ <source/>
+ <node/>
+ <location>SimpleNull_exec</location>
+ </artifact>
+ <artifact xmi:id="SimpleNull_SvntArtifact">
+ <name>SimpleNull_svnt</name>
+ <source/>
+ <node/>
+ <location>SimpleNull_svnt</location>
+ </artifact>
+
+ </Deployment:DeploymentPlan>
diff --git a/modules/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/SimpleComponentUnhomed.cdp b/modules/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/SimpleComponentUnhomed.cdp
new file mode 100644
index 00000000000..e31930188d2
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/SimpleComponentUnhomed.cdp
@@ -0,0 +1,86 @@
+<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>SimpleComponent_Home</label>
+ <UUID>SimpleComponent_Home</UUID>
+
+ <!-- Implementations declarations -->
+
+ <!-- Server Dance implementation-->
+ <implementation xmi:id="SimpleNullComponentImplementation">
+ <name>SimpleNullComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleNull_ExecArtifact" />
+ <artifact xmi:idref="SimpleNull_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>component factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleNull_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleNull_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleNull_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleNull_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <instance xmi:id="SimpleNullComponentInstance">
+ <name>SimpleNullComponent</name>
+ <node>Node</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleNullComponentImplementation" />
+ </instance>
+
+ <!-- Artifacts declarations -->
+ <artifact xmi:id="SimpleNull_ExecArtifact">
+ <name>SimpleNull_exec</name>
+ <source/>
+ <node/>
+ <location>SimpleNull_exec</location>
+ </artifact>
+ <artifact xmi:id="SimpleNull_SvntArtifact">
+ <name>SimpleNull_svnt</name>
+ <source/>
+ <node/>
+ <location>SimpleNull_svnt</location>
+ </artifact>
+
+ </Deployment:DeploymentPlan>
diff --git a/modules/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/SimpleHome.cdp b/modules/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/SimpleHome.cdp
new file mode 100644
index 00000000000..a63da21f0f6
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/SimpleHome.cdp
@@ -0,0 +1,90 @@
+<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>SimpleComponent_Home</label>
+ <UUID>SimpleComponent_Home</UUID>
+
+ <!-- Implementations declarations -->
+
+ <!-- Server Dance implementation-->
+ <!-- Home implementation -->
+ <implementation xmi:id="SimpleNullHomeImplementation">
+ <name>SimpleNullHomeImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleNull_ExecArtifact" />
+ <artifact xmi:idref="SimpleNull_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleNullHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleNullHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleNull_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleNull_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <!-- Instances declarations -->
+
+ <!-- Server Dance instances-->
+ <instance xmi:id="SimpleNullHomeInstance">
+ <name>SimpleNullHome</name>
+ <node>Node</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleNullHomeImplementation" />
+ </instance>
+
+ <!-- Artifacts declarations -->
+ <artifact xmi:id="SimpleNull_ExecArtifact">
+ <name>SimpleNull_exec</name>
+ <source/>
+ <node/>
+ <location>SimpleNull_exec</location>
+ </artifact>
+ <artifact xmi:id="SimpleNull_SvntArtifact">
+ <name>SimpleNull_svnt</name>
+ <source/>
+ <node/>
+ <location>SimpleNull_svnt</location>
+ </artifact>
+
+ </Deployment:DeploymentPlan>
diff --git a/modules/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/SimpleProcessColocation.cdp b/modules/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/SimpleProcessColocation.cdp
new file mode 100644
index 00000000000..f7cc1b23270
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/SimpleProcessColocation.cdp
@@ -0,0 +1,127 @@
+<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>SimpleComponent_Home</label>
+ <UUID>SimpleComponent_Home</UUID>
+
+ <!-- Implementations declarations -->
+
+ <!-- Server Dance implementation-->
+ <implementation xmi:id="ProcessColocationComponentImplementation">
+ <name>ProcessColocationComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="ProcessColocation_ExecArtifact" />
+ <artifact xmi:idref="ProcessColocation_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>component factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_ProcessColocation_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_ProcessColocation_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ProcessColocation_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ProcessColocation_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <instance xmi:id="ProcessColocationComponentInstance_1">
+ <name>ProcessColocationComponent_One</name>
+ <node>Node</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="ProcessColocationComponentImplementation" />
+
+ <configProperty>
+ <name>process_name</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Process One</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="ProcessColocationComponentInstance_2">
+ <name>ProcessColocationComponent_Two</name>
+ <node>Node</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="ProcessColocationComponentImplementation" />
+ <configProperty>
+ <name>process_name</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Process Two</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <!-- Artifacts declarations -->
+ <artifact xmi:id="ProcessColocation_ExecArtifact">
+ <name>ProcessColocation_exec</name>
+ <source/>
+ <node/>
+ <location>ProcessColocation_exec</location>
+ </artifact>
+ <artifact xmi:id="ProcessColocation_SvntArtifact">
+ <name>ProcessColocation_svnt</name>
+ <source/>
+ <node/>
+ <location>ProcessColocation_svnt</location>
+ </artifact>
+
+ <localityConstraint>
+ <constraint>SameProcess</constraint>
+ <constrainedInstance xmi:idref="ProcessColocationComponentInstance_1" />
+ </localityConstraint>
+
+ <localityConstraint>
+ <constraint>SameProcess</constraint>
+ <constrainedInstance xmi:idref="ProcessColocationComponentInstance_2" />
+ </localityConstraint>
+
+ </Deployment:DeploymentPlan>
diff --git a/modules/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/SimpleProcessColocation_2.cdp b/modules/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/SimpleProcessColocation_2.cdp
new file mode 100644
index 00000000000..23da5a45e3b
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/SimpleProcessColocation_2.cdp
@@ -0,0 +1,168 @@
+<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>SimpleComponent_Home</label>
+ <UUID>SimpleComponent_Home</UUID>
+
+ <!-- Implementations declarations -->
+
+ <!-- Server Dance implementation-->
+ <implementation xmi:id="ProcessColocationComponentImplementation">
+ <name>ProcessColocationComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="ProcessColocation_ExecArtifact" />
+ <artifact xmi:idref="ProcessColocation_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>component factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_ProcessColocation_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_ProcessColocation_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ProcessColocation_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ProcessColocation_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <instance xmi:id="ProcessColocationComponentInstance_1">
+ <name>ProcessColocationComponent_One</name>
+ <node>Node</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="ProcessColocationComponentImplementation" />
+
+ <configProperty>
+ <name>process_name</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Process One</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="ProcessColocationComponentInstance_1_2">
+ <name>ProcessColocationComponent_One_Two</name>
+ <node>Node</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="ProcessColocationComponentImplementation" />
+
+ <configProperty>
+ <name>process_name</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Process One</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="ProcessColocationComponentInstance_2">
+ <name>ProcessColocationComponent_Two</name>
+ <node>Node</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="ProcessColocationComponentImplementation" />
+ <configProperty>
+ <name>process_name</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Process Two</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="ProcessColocationComponentInstance_2_2">
+ <name>ProcessColocationComponent_Two_Two</name>
+ <node>Node</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="ProcessColocationComponentImplementation" />
+ <configProperty>
+ <name>process_name</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Process Two</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <!-- Artifacts declarations -->
+ <artifact xmi:id="ProcessColocation_ExecArtifact">
+ <name>ProcessColocation_exec</name>
+ <source/>
+ <node/>
+ <location>ProcessColocation_exec</location>
+ </artifact>
+ <artifact xmi:id="ProcessColocation_SvntArtifact">
+ <name>ProcessColocation_svnt</name>
+ <source/>
+ <node/>
+ <location>ProcessColocation_svnt</location>
+ </artifact>
+
+ <localityConstraint>
+ <constraint>SameProcess</constraint>
+ <constrainedInstance xmi:idref="ProcessColocationComponentInstance_1" />
+ <constrainedInstance xmi:idref="ProcessColocationComponentInstance_1_2" />
+ </localityConstraint>
+
+ <localityConstraint>
+ <constraint>SameProcess</constraint>
+ <constrainedInstance xmi:idref="ProcessColocationComponentInstance_2" />
+ <constrainedInstance xmi:idref="ProcessColocationComponentInstance_2_2" />
+ </localityConstraint>
+
+ </Deployment:DeploymentPlan>
diff --git a/modules/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/SimpleProcessColocation_Default.cdp b/modules/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/SimpleProcessColocation_Default.cdp
new file mode 100644
index 00000000000..68ea0ce0c70
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/SimpleProcessColocation_Default.cdp
@@ -0,0 +1,208 @@
+<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>SimpleComponent_Home</label>
+ <UUID>SimpleComponent_Home</UUID>
+
+ <!-- Implementations declarations -->
+
+ <!-- Server Dance implementation-->
+ <implementation xmi:id="ProcessColocationComponentImplementation">
+ <name>ProcessColocationComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="ProcessColocation_ExecArtifact" />
+ <artifact xmi:idref="ProcessColocation_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>component factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_ProcessColocation_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_ProcessColocation_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ProcessColocation_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ProcessColocation_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <instance xmi:id="ProcessColocationComponentInstance_Default_1">
+ <name>ProcessColocationComponent_Default_One</name>
+ <node>Node</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="ProcessColocationComponentImplementation" />
+
+ <configProperty>
+ <name>process_name</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Default Process</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="ProcessColocationComponentInstance_Default_2">
+ <name>ProcessColocationComponent_Default_Two</name>
+ <node>Node</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="ProcessColocationComponentImplementation" />
+
+ <configProperty>
+ <name>process_name</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Default Process</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="ProcessColocationComponentInstance_1">
+ <name>ProcessColocationComponent_One</name>
+ <node>Node</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="ProcessColocationComponentImplementation" />
+
+ <configProperty>
+ <name>process_name</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Process One</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="ProcessColocationComponentInstance_1_2">
+ <name>ProcessColocationComponent_One_Two</name>
+ <node>Node</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="ProcessColocationComponentImplementation" />
+
+ <configProperty>
+ <name>process_name</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Process One</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="ProcessColocationComponentInstance_2">
+ <name>ProcessColocationComponent_Two</name>
+ <node>Node</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="ProcessColocationComponentImplementation" />
+ <configProperty>
+ <name>process_name</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Process Two</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="ProcessColocationComponentInstance_2_2">
+ <name>ProcessColocationComponent_Two_Two</name>
+ <node>Node</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="ProcessColocationComponentImplementation" />
+ <configProperty>
+ <name>process_name</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Process Two</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <!-- Artifacts declarations -->
+ <artifact xmi:id="ProcessColocation_ExecArtifact">
+ <name>ProcessColocation_exec</name>
+ <source/>
+ <node/>
+ <location>ProcessColocation_exec</location>
+ </artifact>
+ <artifact xmi:id="ProcessColocation_SvntArtifact">
+ <name>ProcessColocation_svnt</name>
+ <source/>
+ <node/>
+ <location>ProcessColocation_svnt</location>
+ </artifact>
+
+ <localityConstraint>
+ <constraint>SameProcess</constraint>
+ <constrainedInstance xmi:idref="ProcessColocationComponentInstance_1" />
+ <constrainedInstance xmi:idref="ProcessColocationComponentInstance_1_2" />
+ </localityConstraint>
+
+ <localityConstraint>
+ <constraint>SameProcess</constraint>
+ <constrainedInstance xmi:idref="ProcessColocationComponentInstance_2" />
+ <constrainedInstance xmi:idref="ProcessColocationComponentInstance_2_2" />
+ </localityConstraint>
+
+ </Deployment:DeploymentPlan>
diff --git a/modules/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/SimplexConnectionExplicitHome.cdp b/modules/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/SimplexConnectionExplicitHome.cdp
new file mode 100644
index 00000000000..f3f1e1ca6e9
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/SimplexConnectionExplicitHome.cdp
@@ -0,0 +1,262 @@
+<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>SimpleComponent_Home</label>
+ <UUID>SimpleComponent_Home</UUID>
+
+ <!-- Implementations declarations -->
+
+ <!-- Home implementation -->
+ <implementation xmi:id="SimpleProviderHomeImplementation">
+ <name>SimpleProviderHomeImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleProvider_ExecArtifact" />
+ <artifact xmi:idref="SimpleProvider_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleProviderHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleProviderHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleProvider_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleProvider_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="SimpleProviderComponentImplementation">
+ <name>SimpleProviderComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleProvider_ExecArtifact" />
+ <artifact xmi:idref="SimpleProvider_SvntArtifact" />
+ </implementation>
+
+ <implementation xmi:id="SimpleUserHomeImplementation">
+ <name>SimpleUserHomeImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleUser_ExecArtifact" />
+ <artifact xmi:idref="SimpleUser_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleUserHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleUserHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleUser_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleUser_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="SimpleUserComponentImplementation">
+ <name>SimpleUserComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleUser_ExecArtifact" />
+ <artifact xmi:idref="SimpleUser_SvntArtifact" />
+ </implementation>
+
+ <instance xmi:id="SimpleProviderHomeInstance">
+ <name>SimpleProviderHome</name>
+ <node>Node</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleProviderHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimpleProviderComponentInstance">
+ <name>SimpleProviderComponent</name>
+ <node>Node</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleProviderComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleProviderHome</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="SimpleUserHomeInstance">
+ <name>SimpleUserHome</name>
+ <node>Node</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleUserHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimpleUserComponentInstance">
+ <name>SimpleUserComponent</name>
+ <node>Node</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleUserComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleUserHome</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="SimpleUserComponentInstanceReverse">
+ <name>SimpleUserComponentReverse</name>
+ <node>Node</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleUserComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleUserHome</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <connection>
+ <name>TestConnection</name>
+ <internalEndpoint>
+ <portName>trig</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="SimpleProviderComponentInstance" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>trig</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance xmi:idref="SimpleUserComponentInstance" />
+ </internalEndpoint>
+ </connection>
+
+ <connection>
+ <name>TestConnectionReverse</name>
+ <internalEndpoint>
+ <portName>trig</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance xmi:idref="SimpleUserComponentInstanceReverse" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>trig</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="SimpleProviderComponentInstance" />
+ </internalEndpoint>
+ </connection>
+
+ <!-- Artifacts declarations -->
+ <artifact xmi:id="SimpleProvider_ExecArtifact">
+ <name>SimpleProvider_exec</name>
+ <source/>
+ <node/>
+ <location>SimpleProvider_exec</location>
+ </artifact>
+ <artifact xmi:id="SimpleProvider_SvntArtifact">
+ <name>SimpleProvider_svnt</name>
+ <source/>
+ <node/>
+ <location>SimpleProvider_svnt</location>
+ </artifact>
+
+ <artifact xmi:id="SimpleUser_ExecArtifact">
+ <name>SimpleUser_exec</name>
+ <source/>
+ <node/>
+ <location>SimpleUser_exec</location>
+ </artifact>
+ <artifact xmi:id="SimpleUser_SvntArtifact">
+ <name>SimpleUser_svnt</name>
+ <source/>
+ <node/>
+ <location>SimpleUser_svnt</location>
+ </artifact>
+
+ </Deployment:DeploymentPlan>
diff --git a/modules/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/TwoComponentsOneHome.cdp b/modules/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/TwoComponentsOneHome.cdp
new file mode 100644
index 00000000000..e02732e05bb
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/TwoComponentsOneHome.cdp
@@ -0,0 +1,281 @@
+<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>SimpleComponent_Home</label>
+ <UUID>SimpleComponent_Home</UUID>
+
+ <!-- Implementations declarations -->
+
+ <!-- Home implementation -->
+ <implementation xmi:id="SimpleProviderHomeImplementation">
+ <name>SimpleProviderHomeImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleProvider_ExecArtifact" />
+ <artifact xmi:idref="SimpleProvider_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleProviderHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleProviderHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleProvider_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleProvider_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="SimpleProviderComponentImplementation">
+ <name>SimpleProviderComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleProvider_ExecArtifact" />
+ <artifact xmi:idref="SimpleProvider_SvntArtifact" />
+ </implementation>
+
+ <implementation xmi:id="SimpleUserHomeImplementation">
+ <name>SimpleUserHomeImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleUser_ExecArtifact" />
+ <artifact xmi:idref="SimpleUser_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleUserHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleUserHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleUser_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleUser_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="SimpleUserComponentImplementation">
+ <name>SimpleUserComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleUser_ExecArtifact" />
+ <artifact xmi:idref="SimpleUser_SvntArtifact" />
+ </implementation>
+
+ <instance xmi:id="SimpleProviderHomeInstance">
+ <name>SimpleProviderHome</name>
+ <node>Node</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleProviderHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimpleProviderComponentInstance">
+ <name>SimpleProviderComponent</name>
+ <node>Node</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleProviderComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleProviderHome</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="SimpleProviderComponentInstanceOne">
+ <name>SimpleProviderComponentOne</name>
+ <node>Node</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleProviderComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleProviderHome</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="SimpleUserHomeInstance">
+ <name>SimpleUserHome</name>
+ <node>Node</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleUserHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimpleUserComponentInstance">
+ <name>SimpleUserComponent</name>
+ <node>Node</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleUserComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleUserHome</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="SimpleUserComponentInstanceReverse">
+ <name>SimpleUserComponentReverse</name>
+ <node>Node</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleUserComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleUserHome</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <connection>
+ <name>TestConnection</name>
+ <internalEndpoint>
+ <portName>trig</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="SimpleProviderComponentInstance" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>trig</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance xmi:idref="SimpleUserComponentInstance" />
+ </internalEndpoint>
+ </connection>
+
+ <connection>
+ <name>TestConnectionReverse</name>
+ <internalEndpoint>
+ <portName>trig</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance xmi:idref="SimpleUserComponentInstanceReverse" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>trig</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="SimpleProviderComponentInstanceOne" />
+ </internalEndpoint>
+ </connection>
+
+ <!-- Artifacts declarations -->
+ <artifact xmi:id="SimpleProvider_ExecArtifact">
+ <name>SimpleProvider_exec</name>
+ <source/>
+ <node/>
+ <location>SimpleProvider_exec</location>
+ </artifact>
+ <artifact xmi:id="SimpleProvider_SvntArtifact">
+ <name>SimpleProvider_svnt</name>
+ <source/>
+ <node/>
+ <location>SimpleProvider_svnt</location>
+ </artifact>
+
+ <artifact xmi:id="SimpleUser_ExecArtifact">
+ <name>SimpleUser_exec</name>
+ <source/>
+ <node/>
+ <location>SimpleUser_exec</location>
+ </artifact>
+ <artifact xmi:id="SimpleUser_SvntArtifact">
+ <name>SimpleUser_svnt</name>
+ <source/>
+ <node/>
+ <location>SimpleUser_svnt</location>
+ </artifact>
+
+ </Deployment:DeploymentPlan>
diff --git a/modules/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/run_test.pl b/modules/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/run_test.pl
new file mode 100755
index 00000000000..71c656d841b
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/run_test.pl
@@ -0,0 +1,207 @@
+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 = ( "NodeApp1.ior" );
+@iorfiles = 0;
+@nodenames = ( "NodeOne" );
+
+# ior files other than daemon
+$ior_nsbase = "ns.ior";
+$ior_nsfile = 0;
+$ior_embase = "EM.ior";
+$ior_emfile = 0;
+$ior_applicationbase = "Node_APP.ior";
+$ior_application = 0;
+$ior_ambase = "Node_AM.ior";
+$ior_am = 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;
+
+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 ('../Components');
+ }
+ # 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]);
+ }
+ $ior_application = $tg_executor->LocalFile ($ior_applicationbase);
+ $ior_am = $tg_executor->LocalFile ($ior_ambase);
+ 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]);
+ }
+
+ $tg_executor->DeleteFile ($ior_applicationbase);
+ $tg_executor->DeleteFile ($ior_ambase);
+}
+
+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 ('ciao_componentserver');
+}
+
+
+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 = "$CIAO_ROOT/bin/ciao_componentserver";
+
+ $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";
+
+ print "Run node daemon\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;
+}
+
+if ($#ARGV == -1) {
+ opendir(DIR, ".");
+ @files = grep(/\.cdp$/,readdir(DIR));
+ closedir(DIR);
+}
+else {
+ @files = @ARGV;
+}
+
+create_targets ();
+init_ior_files ();
+
+foreach $file (@files) {
+ print "Starting test for deployment $file\n";
+
+ print STDERR "Starting Naming Service\n";
+
+ $NS = $tg_naming->CreateProcess ("$TAO_ROOT/orbsvcs/Naming_Service/Naming_Service", "-m 0 -ORBEndpoint iiop://localhost:60003 -o $ior_nsfile");
+ $NS->Spawn ();
+
+ 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 daemons\n";
+ kill_open_processes ();
+ exit 1;
+ }
+
+ $daemons_running = 1;
+
+ # Invoke executor - start the application -.
+ print "Invoking executor - launch the application -\n";
+ $E = $tg_executor->CreateProcess ("$DANCE_ROOT/bin/dance_plan_launcher",
+ "-x $file -n file://NodeApp1.ior -l -oNode");
+ $E->SpawnWaitKill (120);
+
+ print "Teardown the application\n";
+ $E = $tg_executor->CreateProcess ("$DANCE_ROOT/bin/dance_plan_launcher",
+ "-n file://NodeApp1.ior -a file://$ior_application -m file://$ior_am -s");
+ $E->SpawnWaitKill (120);
+ print "Executor finished.\n";
+
+ delete_ior_files ();
+ kill_open_processes ();
+}
+
+delete_ior_files ();
+kill_open_processes ();
+
+exit $status;
diff --git a/modules/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/run_test_cdr.pl b/modules/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/run_test_cdr.pl
new file mode 100755
index 00000000000..8c09290d6dc
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/run_test_cdr.pl
@@ -0,0 +1,227 @@
+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 = ( "NodeApp1.ior" );
+@iorfiles = 0;
+@nodenames = ( "NodeOne" );
+
+# ior files other than daemon
+$ior_nsbase = "ns.ior";
+$ior_nsfile = 0;
+$ior_embase = "EM.ior";
+$ior_emfile = 0;
+$ior_applicationbase = "Node_APP.ior";
+$ior_application = 0;
+$ior_ambase = "Node_AM.ior";
+$ior_am = 0;
+
+# Processes
+$E = 0;
+$EM = 0;
+$NS = 0;
+@DEAMONS = 0;
+
+# targets
+@tg_daemons = 0;
+$tg_naming = 0;
+$tg_exe_man = 0;
+$tg_executor = 0;
+$tg_convert_plan = 0;
+
+$status = 0;
+
+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 ('../Components');
+ }
+ # 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 ('..');
+
+ $tg_convert_plan = PerlACE::TestTarget::create_target (1) || die "Could not create target for convert plan\n";
+}
+
+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]);
+ }
+ $ior_application = $tg_executor->LocalFile ($ior_applicationbase);
+ $ior_am = $tg_executor->LocalFile ($ior_ambase);
+
+ 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 ('ciao_componentserver');
+}
+
+
+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 = "$CIAO_ROOT/bin/ciao_componentserver";
+
+ $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";
+
+ print "Run node daemon\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;
+}
+
+if ($#ARGV == -1) {
+ opendir(DIR, ".");
+ @files = grep(/\.cdp$/,readdir(DIR));
+ closedir(DIR);
+}
+else {
+ @files = @ARGV;
+}
+
+create_targets ();
+init_ior_files ();
+
+foreach $file (@files) {
+ print "Starting test for deployment $file\n";
+
+ print STDERR "Starting Naming Service\n";
+
+ $NS = $tg_naming->CreateProcess ("$TAO_ROOT/orbsvcs/Naming_Service/Naming_Service", "-m 0 -ORBEndpoint iiop://localhost:60003 -o $ior_nsfile");
+ $NS->Spawn ();
+
+ 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 daemons\n";
+ kill_open_processes ();
+ exit 1;
+ }
+
+ $daemons_running = 1;
+
+ print "Converting plan to CDR representation\n";
+ $cdr_planbase = "$file" . ".cdr";
+ $cdr_plan = $tg_convert_plan->LocalFile ($cdr_planbase);
+ $convert = $tg_convert_plan->CreateProcess("$DANCE_ROOT/bin/dance_convert_plan",
+ "-x $file -o $cdr_plan");
+
+ $convert->Spawn ();
+
+ if ($tg_convert_plan->WaitForFileTimed ($cdr_planbase,
+ 30) == -1) {
+ print STDERR "ERROR: Convert Plan failed to output $cdr_plan.\n";
+ kill_open_processes ();
+ next;
+ }
+
+ $convert->Kill ();
+
+ # Invoke executor - start the application -.
+ print "Invoking executor - launch the application -\n";
+ $E = $tg_executor->CreateProcess ("$DANCE_ROOT/bin/dance_plan_launcher",
+ "-c $file.cdr -n file://NodeApp1.ior -l -oNode");
+ $E->SpawnWaitKill (120);
+
+ print "Teardown the application\n";
+ $E = $tg_executor->CreateProcess ("$DANCE_ROOT/bin/dance_plan_launcher",
+ "-n file://NodeApp1.ior -a file://Node_APP.ior -m file://Node_AM.ior -s");
+ $E->SpawnWaitKill (120);
+ print "Executor finished.\n";
+
+ $tg_convert_plan->DeleteFile ($cdr_planbase);
+
+ delete_ior_files ();
+ kill_open_processes ();
+}
+
+delete_ior_files ();
+kill_open_processes ();
+
+exit $status;
diff --git a/modules/CIAO/DAnCE/tests/CIAO/Progressive_Deployments/NodeManagerMap.dat b/modules/CIAO/DAnCE/tests/CIAO/Progressive_Deployments/NodeManagerMap.dat
new file mode 100644
index 00000000000..b1a16bd0c28
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Progressive_Deployments/NodeManagerMap.dat
@@ -0,0 +1,4 @@
+NodeOne corbaloc:iiop:localhost:60001/NodeOne.NodeManager
+
+
+NodeTwo corbaloc:iiop:localhost:60002/NodeTwo.NodeManager
diff --git a/modules/CIAO/DAnCE/tests/CIAO/Progressive_Deployments/Plan_A.cdp b/modules/CIAO/DAnCE/tests/CIAO/Progressive_Deployments/Plan_A.cdp
new file mode 100644
index 00000000000..ee716fd3187
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Progressive_Deployments/Plan_A.cdp
@@ -0,0 +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">
+ <label>Progressive_A</label>
+ <UUID>Progressive_A</UUID>
+
+ <!-- Implementations declarations -->
+ <implementation xmi:id="ProgressiveHomeImplementation">
+ <name>ProgressiveHomeImplementation</name>
+ <source/>
+ <artifact xmi:idref="Progressive_ExecArtifact" />
+ <artifact xmi:idref="Progressive_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_ProgressiveHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_ProgressiveHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Progressive_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Progressive_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="ProgressiveComponentImplementation">
+ <name>ProgressiveComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="Progressive_ExecArtifact" />
+ <artifact xmi:idref="Progressive_SvntArtifact" />
+ </implementation>
+
+ <instance xmi:id="ProgressiveHomeInstance">
+ <name>ProgressiveHome</name>
+ <node>NodeTwo</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="ProgressiveHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="ProgressiveComponentInstance">
+ <name>ProgressiveComponent</name>
+ <node>NodeTwo</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="ProgressiveComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ProgressiveHome</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.RegisterNaming</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Progressive_A</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <artifact xmi:id="Progressive_ExecArtifact">
+ <name>Progressive_exec</name>
+ <source/>
+ <node/>
+ <location>Progressive_exec</location>
+ </artifact>
+ <artifact xmi:id="Progressive_SvntArtifact">
+ <name>Progressive_svnt</name>
+ <source/>
+ <node/>
+ <location>Progressive_svnt</location>
+ </artifact>
+
+ </Deployment:DeploymentPlan>
diff --git a/modules/CIAO/DAnCE/tests/CIAO/Progressive_Deployments/Plan_B.cdp b/modules/CIAO/DAnCE/tests/CIAO/Progressive_Deployments/Plan_B.cdp
new file mode 100644
index 00000000000..6642f413142
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Progressive_Deployments/Plan_B.cdp
@@ -0,0 +1,136 @@
+<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>Progressive_B</label>
+ <UUID>Progressive_B</UUID>
+
+ <!-- Implementations declarations -->
+ <implementation xmi:id="ProgressiveHomeImplementation">
+ <name>ProgressiveHomeImplementation</name>
+ <source/>
+ <artifact xmi:idref="Progressive_ExecArtifact" />
+ <artifact xmi:idref="Progressive_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_ProgressiveHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_ProgressiveHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Progressive_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Progressive_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="ProgressiveComponentImplementation">
+ <name>ProgressiveComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="Progressive_ExecArtifact" />
+ <artifact xmi:idref="Progressive_SvntArtifact" />
+ </implementation>
+
+ <instance xmi:id="ProgressiveHomeInstance">
+ <name>ProgressiveHome</name>
+ <node>NodeTwo</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="ProgressiveHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="ProgressiveComponentInstance">
+ <name>ProgressiveComponent</name>
+ <node>NodeTwo</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="ProgressiveComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ProgressiveHome</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.RegisterNaming</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Progressive_B</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <connection>
+ <name>TestConnection</name>
+ <internalEndpoint>
+ <portName>trig_out</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance xmi:idref="ProgressiveComponentInstance" />
+ </internalEndpoint>
+ <externalReference>
+ <location>corbaname:rir:/NameService#Progressive_A</location>
+ <provider>true</provider>
+ <portName>trig_in</portName>
+ <supportedType>Meaningless</supportedType>
+ </externalReference>
+ </connection>
+
+ <artifact xmi:id="Progressive_ExecArtifact">
+ <name>Progressive_exec</name>
+ <source/>
+ <node/>
+ <location>Progressive_exec</location>
+ </artifact>
+ <artifact xmi:id="Progressive_SvntArtifact">
+ <name>Progressive_svnt</name>
+ <source/>
+ <node/>
+ <location>Progressive_svnt</location>
+ </artifact>
+
+ </Deployment:DeploymentPlan>
diff --git a/modules/CIAO/DAnCE/tests/CIAO/Progressive_Deployments/Plan_C.cdp b/modules/CIAO/DAnCE/tests/CIAO/Progressive_Deployments/Plan_C.cdp
new file mode 100644
index 00000000000..dc62694effa
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Progressive_Deployments/Plan_C.cdp
@@ -0,0 +1,265 @@
+<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>SimpleComponent_Home</label>
+ <UUID>SimpleComponent_Home</UUID>
+
+ <!-- Implementations declarations -->
+
+ <!-- Home implementation -->
+ <implementation xmi:id="SimpleProviderHomeImplementation">
+ <name>SimpleProviderHomeImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleProvider_ExecArtifact" />
+ <artifact xmi:idref="SimpleProvider_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleProviderHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleProviderHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleProvider_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleProvider_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="SimpleProviderComponentImplementation">
+ <name>SimpleProviderComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleProvider_ExecArtifact" />
+ <artifact xmi:idref="SimpleProvider_SvntArtifact" />
+ </implementation>
+
+ <implementation xmi:id="SimpleUserHomeImplementation">
+ <name>SimpleUserHomeImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleUser_ExecArtifact" />
+ <artifact xmi:idref="SimpleUser_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleUserHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleUserHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleUser_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleUser_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="SimpleUserComponentImplementation">
+ <name>SimpleUserComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleUser_ExecArtifact" />
+ <artifact xmi:idref="SimpleUser_SvntArtifact" />
+ </implementation>
+
+ <instance xmi:id="SimpleProviderHomeInstance">
+ <name>SimpleProviderHome</name>
+ <node>NodeOne</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleProviderHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimpleProviderComponentInstance">
+ <name>SimpleProviderComponent</name>
+ <node>NodeOne</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleProviderComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleProviderHome</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.RegisterNaming</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleProviderComponent</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="SimpleUserHomeInstance">
+ <name>SimpleUserHome</name>
+ <node>NodeTwo</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleUserHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimpleUserComponentInstance">
+ <name>SimpleUserComponent</name>
+ <node>NodeTwo</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleUserComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleUserHome</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.RegisterNaming</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleUserComponent</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <connection>
+ <name>TestConnection</name>
+ <internalEndpoint>
+ <portName>trig</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="SimpleProviderComponentInstance" />
+ </internalEndpoint>
+ <externalReference>
+ <location>corbaname:rir:/NameService#Progressive_A</location>
+ <provider>false</provider>
+ <portName>trig_out</portName>
+ <supportedType>Meaningless</supportedType>
+ </externalReference>
+ </connection>
+
+ <connection>
+ <name>TestConnectionReverse</name>
+ <internalEndpoint>
+ <portName>trig</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance xmi:idref="SimpleUserComponentInstance" />
+ </internalEndpoint>
+ <externalReference>
+ <location>corbaname:rir:/NameService#Progressive_B</location>
+ <provider>true</provider>
+ <portName>trig_in</portName>
+ <supportedType>Meaningless</supportedType>
+ </externalReference>
+ </connection>
+
+ <!-- Artifacts declarations -->
+ <artifact xmi:id="SimpleProvider_ExecArtifact">
+ <name>SimpleProvider_exec</name>
+ <source/>
+ <node/>
+ <location>SimpleProvider_exec</location>
+ </artifact>
+ <artifact xmi:id="SimpleProvider_SvntArtifact">
+ <name>SimpleProvider_svnt</name>
+ <source/>
+ <node/>
+ <location>SimpleProvider_svnt</location>
+ </artifact>
+
+ <artifact xmi:id="SimpleUser_ExecArtifact">
+ <name>SimpleUser_exec</name>
+ <source/>
+ <node/>
+ <location>SimpleUser_exec</location>
+ </artifact>
+ <artifact xmi:id="SimpleUser_SvntArtifact">
+ <name>SimpleUser_svnt</name>
+ <source/>
+ <node/>
+ <location>SimpleUser_svnt</location>
+ </artifact>
+
+ </Deployment:DeploymentPlan>
diff --git a/modules/CIAO/DAnCE/tests/CIAO/Progressive_Deployments/run_test.pl b/modules/CIAO/DAnCE/tests/CIAO/Progressive_Deployments/run_test.pl
new file mode 100755
index 00000000000..c06d1ad5bcf
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Progressive_Deployments/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 = 2;
+@ports = ( 60001, 60002 );
+@iorbases = ( "NodeApp1.ior", "NodeApp2.ior" );
+@iorfiles = 0;
+@nodenames = ( "NodeOne", "NodeTwo" );
+
+$status = 0;
+$dat_file = "NodeManagerMap.dat";
+$cdp_file = "DeploymentPlan.cdp";
+
+# 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;
+
+sub create_targets {
+ # naming service
+ $tg_naming = PerlACE::TestTarget::create_target (1) || die "Create target for ns failed\n";
+ $tg_naming->AddLibPath ('../lib');
+ # 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 ('../Components');
+ }
+ # execution manager
+ $tg_exe_man = PerlACE::TestTarget::create_target (1) || die "Create target for EM failed\n";
+ $tg_exe_man->AddLibPath ('../lib');
+ # executor (plan_launcher)
+ $tg_executor = PerlACE::TestTarget::create_target (1) || die "Create target for executor failed\n";
+ $tg_executor->AddLibPath ('../lib');
+}
+
+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_daemons {
+ for ($i = 0; $i < $nr_daemon; ++$i) {
+ $DEAMONS[$i]->Kill (); $DEAMONS[$i]->TimedWait (1);
+ }
+}
+
+sub kill_open_processes {
+ if ($daemons_running == 1) {
+ kill_node_daemons ();
+ }
+
+ 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 ('ciao_componentserver');
+}
+
+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 = "$CIAO_ROOT/bin/ciao_componentserver";
+
+ $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";
+
+ 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 0 -ORBEndpoint iiop://localhost:60003 -o $ior_nsfile");
+
+print STDERR "Starting Naming Service with -m 0 -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 daemons\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 --node-map $dat_file");
+$EM->Spawn ();
+
+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 -l\n";
+$E = $tg_executor->CreateProcess ("$DANCE_ROOT/bin/dance_plan_launcher",
+ "-x Plan_A.cdp -k file://$ior_emfile -l");
+$E->SpawnWaitKill (2*$tg_executor->ProcessStartWaitInterval ());
+
+print "Start dance_plan_launcher.exe with -x $cdp_file -k file://$ior_emfile -l\n";
+$E = $tg_executor->CreateProcess ("$DANCE_ROOT/bin/dance_plan_launcher",
+ "-x Plan_B.cdp -k file://$ior_emfile -l");
+$E->SpawnWaitKill (2*$tg_executor->ProcessStartWaitInterval ());
+
+print "Start dance_plan_launcher.exe with -x $cdp_file -k file://$ior_emfile -l\n";
+$E = $tg_executor->CreateProcess ("$DANCE_ROOT/bin/dance_plan_launcher",
+ "-x Plan_C.cdp -k file://$ior_emfile -l");
+$E->SpawnWaitKill (2*$tg_executor->ProcessStartWaitInterval ());
+
+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;
+ }
+}
+
+# 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 -s\n";
+$E = $tg_executor->CreateProcess ("$DANCE_ROOT/bin/dance_plan_launcher",
+ "-k file://$ior_emfile -x Plan_A.cdp -s");
+$E->SpawnWaitKill ($tg_executor->ProcessStopWaitInterval ());
+
+print "by running dance_plan_launcher.exe with -k file://$ior_emfile -x $cdp_file -s\n";
+$E = $tg_executor->CreateProcess ("$DANCE_ROOT/bin/dance_plan_launcher",
+ "-k file://$ior_emfile -x Plan_B.cdp -s");
+$E->SpawnWaitKill ($tg_executor->ProcessStopWaitInterval ());
+
+print "by running dance_plan_launcher.exe with -k file://$ior_emfile -x $cdp_file -s\n";
+$E = $tg_executor->CreateProcess ("$DANCE_ROOT/bin/dance_plan_launcher",
+ "-k file://$ior_emfile -x Plan_C.cdp -s");
+$E->SpawnWaitKill ($tg_executor->ProcessStopWaitInterval ());
+
+print "Executor returned.\n";
+print "Shutting down rest of the processes.\n";
+
+delete_ior_files ();
+kill_open_processes ();
+
+exit $status;