summaryrefslogtreecommitdiff
path: root/CIAO
diff options
context:
space:
mode:
authorJohnny Willemsen <jwillemsen@remedy.nl>2012-09-27 09:01:09 +0000
committerJohnny Willemsen <jwillemsen@remedy.nl>2012-09-27 09:01:09 +0000
commitb6093adbdd49598b34e467e27f4d84eb6fcbc508 (patch)
treeff6eb668f4007ed3c9237028dd203a10bcc62b72 /CIAO
parent5ffa6b74c00a887f9a01ab8c9252a17b014fd572 (diff)
downloadATCD-b6093adbdd49598b34e467e27f4d84eb6fcbc508.tar.gz
Diffstat (limited to 'CIAO')
-rw-r--r--CIAO/examples/Hello_Event/Hello_Base/Hello_Base.idl23
-rw-r--r--CIAO/examples/Hello_Event/Hello_Base/Hello_Base.mpc109
-rw-r--r--CIAO/examples/Hello_Event/Receiver/Receiver.idl19
-rw-r--r--CIAO/examples/Hello_Event/Receiver/Receiver.mpc140
-rw-r--r--CIAO/examples/Hello_Event/Receiver/Receiver_exec.cpp142
-rw-r--r--CIAO/examples/Hello_Event/Receiver/Receiver_exec.h113
-rw-r--r--CIAO/examples/Hello_Event/Sender/Sender.idl29
-rw-r--r--CIAO/examples/Hello_Event/Sender/Sender.mpc159
-rw-r--r--CIAO/examples/Hello_Event/Sender/Sender_exec.cpp180
-rw-r--r--CIAO/examples/Hello_Event/Sender/Sender_exec.h142
-rw-r--r--CIAO/examples/Hello_Event/Sender/starter.cpp88
-rw-r--r--CIAO/examples/Hello_Event/descriptors/DeploymentPlan.cdp257
-rw-r--r--CIAO/examples/Hello_Event/descriptors/DeploymentPlan_without_ns.cdp224
-rw-r--r--CIAO/examples/Hello_Event/descriptors/NodeManagerMap.cdd50
-rwxr-xr-xCIAO/examples/Hello_Event/descriptors/NodeMap.cdd29
-rwxr-xr-xCIAO/examples/Hello_Event/descriptors/PlanLocality_DifferentProcesses.cdp226
-rwxr-xr-xCIAO/examples/Hello_Event/descriptors/PlanLocality_SameProcess.cdp222
-rwxr-xr-xCIAO/examples/Hello_Event/descriptors/run_NodeDaemons.pl42
-rwxr-xr-xCIAO/examples/Hello_Event/descriptors/run_test.pl236
-rwxr-xr-xCIAO/examples/Hello_Event/descriptors/run_test_PlanLocality_DifferentProcesses.pl204
-rwxr-xr-xCIAO/examples/Hello_Event/descriptors/run_test_PlanLocality_SameProcess.pl204
-rwxr-xr-xCIAO/examples/Hello_Event/descriptors/run_test_shs.pl272
-rwxr-xr-xCIAO/examples/Hello_Event/descriptors/run_test_without_ns.pl204
-rw-r--r--CIAO/examples/Hello_Event/descriptors/shs.ciao.localityconfig9
-rw-r--r--CIAO/examples/Hello_Event/descriptors/shs.localityconfig7
-rw-r--r--CIAO/examples/Hello_Event/step-by-step.html317
26 files changed, 3647 insertions, 0 deletions
diff --git a/CIAO/examples/Hello_Event/Hello_Base/Hello_Base.idl b/CIAO/examples/Hello_Event/Hello_Base/Hello_Base.idl
new file mode 100644
index 00000000000..8df663a1c26
--- /dev/null
+++ b/CIAO/examples/Hello_Event/Hello_Base/Hello_Base.idl
@@ -0,0 +1,23 @@
+//$Id$:
+
+#ifndef CIAO_HELLO_IDL
+#define CIAO_HELLO_IDL
+
+#include <Components.idl>
+
+#pragma ciao lem "../Hello_Base/Hello_BaseE.idl"
+
+module Hello
+{
+ interface ReadMessage
+ {
+ string get_message();
+ };
+
+ eventtype TimeOut
+ {
+ public string data;
+ };
+};
+
+#endif /* CIAO_HELLO_IDL */
diff --git a/CIAO/examples/Hello_Event/Hello_Base/Hello_Base.mpc b/CIAO/examples/Hello_Event/Hello_Base/Hello_Base.mpc
new file mode 100644
index 00000000000..b8f35ae53cc
--- /dev/null
+++ b/CIAO/examples/Hello_Event/Hello_Base/Hello_Base.mpc
@@ -0,0 +1,109 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl -e -n -l../lib -o../lib Hello_Base"
+
+project(Hello_Base_idl_gen) : componentidldefaults, avoids_ccm_noevent {
+ custom_only = 1
+
+ idlflags += -Wb,stub_export_macro=HELLO_BASE_STUB_Export \
+ -Wb,stub_export_include=Hello_Base_stub_export.h \
+ -Wb,skel_export_macro=HELLO_BASE_SKEL_Export \
+ -Wb,skel_export_include=Hello_Base_skel_export.h \
+ -Gxhex -Gxhsk -Gxhst
+
+ IDL_Files {
+ Hello_Base.idl
+ }
+}
+
+project(Hello_Base_lem_gen) : ciaoidldefaults, avoids_ccm_noevent {
+ after += Hello_Base_idl_gen
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=HELLO_BASE_LEM_STUB_Export \
+ -Wb,stub_export_include=Hello_Base_lem_stub_export.h \
+ -SS -Gxhst
+
+ IDL_Files {
+ Hello_BaseE.idl
+ }
+}
+
+project(Hello_Base_lem_stub) : ccm_svnt, avoids_ccm_noevent {
+ after += Hello_Base_lem_gen Hello_Base_stub
+ libs += Hello_Base_stub
+
+ libpaths += ../lib
+ libout = ../lib
+ sharedname = Hello_Base_lem_stub
+ dynamicflags += HELLO_BASE_LEM_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ Hello_BaseEC.cpp
+ }
+
+ Header_Files {
+ Hello_BaseEC.h
+ Hello_Base_lem_stub_export.h
+ }
+
+ Inline_Files {
+ Hello_BaseEC.inl
+ }
+}
+
+project(Hello_Base_stub) : ccm_stub, avoids_ccm_noevent {
+ after += Hello_Base_idl_gen
+ libs +=
+
+ libpaths += ../lib
+ libout = ../lib
+ sharedname = Hello_Base_stub
+ dynamicflags += HELLO_BASE_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ Hello_BaseC.cpp
+ }
+
+ Header_Files {
+ Hello_BaseC.h
+ Hello_Base_stub_export.h
+ }
+
+ Inline_Files {
+ Hello_BaseC.inl
+ }
+}
+
+
+project(Hello_Base_skel) : ciao_executor, avoids_ccm_noevent {
+ after += Hello_Base_stub Hello_Base_lem_stub
+ sharedname = Hello_Base_skel
+ libs += Hello_Base_stub
+
+
+ libpaths += ../lib
+ libout = ../lib
+ dynamicflags += HELLO_BASE_SKEL_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ Hello_BaseS.cpp
+ }
+
+ Header_Files {
+ Hello_BaseS.h
+ Hello_Base_skel_export.h
+ }
+
+ Inline_Files {
+ }
+}
+
+
diff --git a/CIAO/examples/Hello_Event/Receiver/Receiver.idl b/CIAO/examples/Hello_Event/Receiver/Receiver.idl
new file mode 100644
index 00000000000..92ae30acb36
--- /dev/null
+++ b/CIAO/examples/Hello_Event/Receiver/Receiver.idl
@@ -0,0 +1,19 @@
+//$Id$:
+
+#ifndef RECEIVER_IDL
+#define RECEIVER_IDL
+
+#include "../Hello_Base/Hello_Base.idl"
+
+module Hello
+{
+ component Receiver
+ {
+ uses ReadMessage read_message;
+ consumes TimeOut click_in;
+
+ attribute short iterations;
+ };
+
+};
+#endif /*RECEIVER_IDL*/
diff --git a/CIAO/examples/Hello_Event/Receiver/Receiver.mpc b/CIAO/examples/Hello_Event/Receiver/Receiver.mpc
new file mode 100644
index 00000000000..c1d6b30836d
--- /dev/null
+++ b/CIAO/examples/Hello_Event/Receiver/Receiver.mpc
@@ -0,0 +1,140 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl -e -l ../lib -o ../lib -p Hello_Base Receiver"
+
+project(Hello_Base_Receiver_idl_gen) : componentidldefaults, avoids_ccm_noevent {
+ custom_only = 1
+
+ idlflags += -Wb,stub_export_macro=RECEIVER_STUB_Export \
+ -Wb,stub_export_include=Receiver_stub_export.h \
+ -Wb,skel_export_macro=RECEIVER_SVNT_Export \
+ -Wb,skel_export_include=Receiver_svnt_export.h \
+ -Wb,exec_export_macro=RECEIVER_EXEC_Export \
+ -Wb,exec_export_include=Receiver_exec_export.h \
+ -Gxhex -Gxhsk -Gxhst
+
+ IDL_Files {
+ Receiver.idl
+ }
+}
+
+project(Hello_Base_Receiver_lem_gen) : ciaoidldefaults, avoids_ccm_noevent {
+ after += Hello_Base_Receiver_idl_gen
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=RECEIVER_LEM_STUB_Export \
+ -Wb,stub_export_include=Receiver_lem_stub_export.h \
+ -SS -Gxhst
+
+ IDL_Files {
+ ReceiverE.idl
+ }
+}
+
+project(Hello_Base_Receiver_lem_stub) : ccm_svnt, avoids_ccm_noevent {
+ after += Hello_Base_Receiver_lem_gen Hello_Base_Receiver_stub Hello_Base_stub Hello_Base_lem_stub
+ libs += Hello_Base_stub Hello_Base_lem_stub Receiver_stub
+
+ libpaths += ../lib
+ libout = ../lib
+ sharedname = Receiver_lem_stub
+ dynamicflags += RECEIVER_LEM_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ ReceiverEC.cpp
+ }
+
+ Header_Files {
+ ReceiverEC.h
+ Receiver_lem_stub_export.h
+ }
+
+ Inline_Files {
+ ReceiverEC.inl
+ }
+}
+
+project(Hello_Base_Receiver_stub) : ccm_stub, avoids_ccm_noevent {
+ after += Hello_Base_Receiver_idl_gen Hello_Base_stub Hello_Base_lem_stub
+ libs += Hello_Base_stub Hello_Base_lem_stub
+
+ libpaths += ../lib
+ libout = ../lib
+ sharedname = Receiver_stub
+ dynamicflags += RECEIVER_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ ReceiverC.cpp
+ }
+
+ Header_Files {
+ ReceiverC.h
+ Receiver_stub_export.h
+ }
+
+ Inline_Files {
+ ReceiverC.inl
+ }
+}
+
+project(Hello_Base_Receiver_exec) : ciao_executor, avoids_ccm_noevent {
+ after += Hello_Base_lem_stub Hello_Base_Receiver_lem_stub Hello_Base_Receiver_stub
+ sharedname = Receiver_exec
+ libs += Hello_Base_lem_stub Receiver_stub Receiver_lem_stub Hello_Base_stub Hello_Base_lem_stub
+
+ libpaths += ../lib
+ libout = ../lib
+ dynamicflags += RECEIVER_EXEC_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ Receiver_exec.cpp
+ }
+
+ Header_Files {
+ Receiver_exec.h
+ Receiver_exec_export.h
+ }
+
+ Inline_Files {
+ }
+}
+
+
+project(Hello_Base_Receiver_svnt) : ciao_servant, avoids_ccm_noevent {
+ after += Hello_Base_skel Hello_Base_lem_stub Hello_Base_Receiver_lem_stub
+ sharedname = Receiver_svnt
+ libs += Receiver_stub Receiver_lem_stub \
+ Hello_Base_skel \
+ Hello_Base_stub \
+ Hello_Base_lem_stub
+
+ libpaths += ../lib
+ libout = ../lib
+ dynamicflags += RECEIVER_SVNT_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ ReceiverS.cpp
+ Receiver_svnt.cpp
+ }
+
+ Header_Files {
+ ReceiverS.h
+ Receiver_svnt.h
+ Receiver_svnt_export.h
+ }
+
+ Inline_Files {
+ }
+}
+
+
diff --git a/CIAO/examples/Hello_Event/Receiver/Receiver_exec.cpp b/CIAO/examples/Hello_Event/Receiver/Receiver_exec.cpp
new file mode 100644
index 00000000000..e7ea1966612
--- /dev/null
+++ b/CIAO/examples/Hello_Event/Receiver/Receiver_exec.cpp
@@ -0,0 +1,142 @@
+// -*- C++ -*-
+// $Id$
+
+/**
+ * Code generated by the The ACE ORB (TAO) IDL Compiler v2.0.2
+ * 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
+ **/
+
+#include "Receiver_exec.h"
+#include "ace/OS_NS_unistd.h"
+
+namespace CIAO_Hello_Receiver_Impl
+{
+
+ /**
+ * Component Executor Implementation Class: Receiver_exec_i
+ */
+
+ Receiver_exec_i::Receiver_exec_i (void)
+ : iterations_ (10)
+ {
+ }
+
+ Receiver_exec_i::~Receiver_exec_i (void)
+ {
+ }
+
+ // Supported operations and attributes.
+
+ // Component attributes and port operations.
+
+ void
+ Receiver_exec_i::push_click_in (
+ ::Hello::TimeOut * ev)
+ {
+ /* Your code here. */
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("Receiver - Informed by the Sender with message [%C]\n"),
+ ev->data ()));
+ Hello::ReadMessage_var rev = this->ciao_context_->get_connection_read_message ();
+ if (CORBA::is_nil (rev.in ()))
+ throw CORBA::BAD_INV_ORDER ();
+ for (CORBA::Short i = 0; i < this->iterations_; ++i)
+ {
+ CORBA::String_var str = rev->get_message ();
+ ACE_DEBUG ((LM_DEBUG,
+ "Receiver - Got message from the sender [%C].\n",
+ str.in ()));
+ ACE_Time_Value tv (1, 0);
+ ACE_OS::sleep (tv);
+ }
+ }
+
+ ::CORBA::Short
+ Receiver_exec_i::iterations (void)
+ {
+ return this->iterations_;
+ }
+
+ void
+ Receiver_exec_i::iterations (
+ const ::CORBA::Short iterations)
+ {
+ this->iterations_ = iterations;
+ }
+
+ // Operations from Components::SessionComponent.
+
+ void
+ Receiver_exec_i::set_session_context (
+ ::Components::SessionContext_ptr ctx)
+ {
+ this->ciao_context_ =
+ ::Hello::CCM_Receiver_Context::_narrow (ctx);
+
+ if ( ::CORBA::is_nil (this->ciao_context_.in ()))
+ {
+ throw ::CORBA::INTERNAL ();
+ }
+ }
+
+ void
+ Receiver_exec_i::configuration_complete (void)
+ {
+ /* Your code here. */
+ ACE_DEBUG ((LM_DEBUG,
+ "Receiver_exec_i::configuration_complete\n"));
+ }
+
+ void
+ Receiver_exec_i::ccm_activate (void)
+ {
+ /* Your code here. */
+ ACE_DEBUG ((LM_DEBUG, "Receiver_exec_i::ccm_activate\n"));
+ }
+
+ void
+ Receiver_exec_i::ccm_passivate (void)
+ {
+ /* Your code here. */
+ ACE_DEBUG ((LM_DEBUG, "Receiver_exec_i::ccm_passivate\n"));
+ }
+
+ void
+ Receiver_exec_i::ccm_remove (void)
+ {
+ /* Your code here. */
+ ACE_DEBUG ((LM_DEBUG, "Receiver_exec_i::ccm_remove\n"));
+ }
+
+ extern "C" RECEIVER_EXEC_Export ::Components::EnterpriseComponent_ptr
+ create_Hello_Receiver_Impl (void)
+ {
+ ::Components::EnterpriseComponent_ptr retval =
+ ::Components::EnterpriseComponent::_nil ();
+
+ ACE_NEW_NORETURN (
+ retval,
+ Receiver_exec_i);
+
+ return retval;
+ }
+}
diff --git a/CIAO/examples/Hello_Event/Receiver/Receiver_exec.h b/CIAO/examples/Hello_Event/Receiver/Receiver_exec.h
new file mode 100644
index 00000000000..3d13c3a5e0a
--- /dev/null
+++ b/CIAO/examples/Hello_Event/Receiver/Receiver_exec.h
@@ -0,0 +1,113 @@
+// -*- C++ -*-
+// $Id$
+
+/**
+ * Code generated by the The ACE ORB (TAO) IDL Compiler v2.0.2
+ * 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
+ **/
+#ifndef CIAO_RECEIVER_EXEC_RZ2R5K_H_
+#define CIAO_RECEIVER_EXEC_RZ2R5K_H_
+
+#include /**/ "ace/pre.h"
+
+#include "ReceiverEC.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include /**/ "Receiver_exec_export.h"
+#include "tao/LocalObject.h"
+
+namespace CIAO_Hello_Receiver_Impl
+{
+
+ /**
+ * Component Executor Implementation Class: Receiver_exec_i
+ */
+
+ class Receiver_exec_i
+ : public virtual Receiver_Exec,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ Receiver_exec_i (void);
+ virtual ~Receiver_exec_i (void);
+
+ /** @name Supported operations and attributes. */
+ //@{
+
+ //@}
+
+ /** @name Component attributes and port operations. */
+ //@{
+
+ virtual void
+ push_click_in (
+ ::Hello::TimeOut * ev);
+
+ virtual ::CORBA::Short iterations (void);
+
+ virtual void iterations (::CORBA::Short iterations);
+ //@}
+
+ /** @name 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);
+ //@}
+
+ /** @name User defined public operations. */
+ //@{
+
+ //@}
+
+ private:
+ ::Hello::CCM_Receiver_Context_var ciao_context_;
+
+ /** @name Component attributes. */
+ //@{
+
+ ::CORBA::Short iterations_;
+ //@}
+
+ /** @name User defined members. */
+ //@{
+
+ //@}
+
+ /** @name User defined private operations. */
+ //@{
+
+ //@}
+ };
+
+ extern "C" RECEIVER_EXEC_Export ::Components::EnterpriseComponent_ptr
+ create_Hello_Receiver_Impl (void);
+}
+
+#include /**/ "ace/post.h"
+
+#endif /* ifndef */
diff --git a/CIAO/examples/Hello_Event/Sender/Sender.idl b/CIAO/examples/Hello_Event/Sender/Sender.idl
new file mode 100644
index 00000000000..edf43943bfc
--- /dev/null
+++ b/CIAO/examples/Hello_Event/Sender/Sender.idl
@@ -0,0 +1,29 @@
+//$Id$
+
+#ifndef SENDER_IDL
+#define SENDER_IDL
+
+
+#include "../Hello_Base/Hello_Base.idl"
+#include "tao/StringSeq.pidl"
+
+module Hello
+{
+ /* This is a Sender specific interface which will be used to get the
+ * process start.
+ */
+
+ interface trigger
+ {
+ void start ();
+ };
+
+ component Sender supports trigger
+ {
+ provides ReadMessage push_message;
+ publishes TimeOut click_out;
+
+ attribute string local_message;
+ };
+};
+#endif /*SENDER_IDL*/
diff --git a/CIAO/examples/Hello_Event/Sender/Sender.mpc b/CIAO/examples/Hello_Event/Sender/Sender.mpc
new file mode 100644
index 00000000000..739ab7594f6
--- /dev/null
+++ b/CIAO/examples/Hello_Event/Sender/Sender.mpc
@@ -0,0 +1,159 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl -e -l ../lib -o ../lib -c starter -p Hello_Base Sender"
+
+project(Hello_Base_Sender_idl_gen) : componentidldefaults, avoids_ccm_noevent {
+ custom_only = 1
+
+ idlflags += -Wb,stub_export_macro=SENDER_STUB_Export \
+ -Wb,stub_export_include=Sender_stub_export.h \
+ -Wb,skel_export_macro=SENDER_SVNT_Export \
+ -Wb,skel_export_include=Sender_svnt_export.h \
+ -Wb,exec_export_macro=SENDER_EXEC_Export \
+ -Wb,exec_export_include=Sender_exec_export.h \
+ -Gxhex -Gxhsk -Gxhst
+
+ IDL_Files {
+ Sender.idl
+ }
+}
+
+project(Hello_Base_Sender_lem_gen) : ciaoidldefaults, avoids_ccm_noevent {
+ after += Hello_Base_Sender_idl_gen
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=SENDER_LEM_STUB_Export \
+ -Wb,stub_export_include=Sender_lem_stub_export.h \
+ -SS -Gxhst
+
+ IDL_Files {
+ SenderE.idl
+ }
+}
+
+project(Hello_Base_Sender_lem_stub) : ccm_svnt, avoids_ccm_noevent {
+ after += Hello_Base_Sender_lem_gen Hello_Base_Sender_stub Hello_Base_stub Hello_Base_lem_stub
+ libs += Hello_Base_stub Hello_Base_lem_stub Sender_stub
+
+ libpaths += ../lib
+ libout = ../lib
+ sharedname = Sender_lem_stub
+ dynamicflags += SENDER_LEM_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ SenderEC.cpp
+ }
+
+ Header_Files {
+ SenderEC.h
+ Sender_lem_stub_export.h
+ }
+
+ Inline_Files {
+ SenderEC.inl
+ }
+}
+
+project(Hello_Base_Sender_stub) : ccm_stub, avoids_ccm_noevent {
+ after += Hello_Base_Sender_idl_gen Hello_Base_stub Hello_Base_lem_stub
+ libs += Hello_Base_stub Hello_Base_lem_stub
+
+ libpaths += ../lib
+ libout = ../lib
+ sharedname = Sender_stub
+ dynamicflags += SENDER_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ SenderC.cpp
+ }
+
+ Header_Files {
+ SenderC.h
+ Sender_stub_export.h
+ }
+
+ Inline_Files {
+ SenderC.inl
+ }
+}
+
+project(Hello_Base_Sender_exec) : ciao_executor, avoids_ccm_noevent {
+ after += Hello_Base_lem_stub Hello_Base_Sender_lem_stub Hello_Base_Sender_stub
+ sharedname = Sender_exec
+ libs += Hello_Base_lem_stub Sender_stub Sender_lem_stub Hello_Base_stub Hello_Base_lem_stub
+
+ libpaths += ../lib
+ libout = ../lib
+ dynamicflags += SENDER_EXEC_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ Sender_exec.cpp
+ }
+
+ Header_Files {
+ Sender_exec.h
+ Sender_exec_export.h
+ }
+
+ Inline_Files {
+ }
+}
+
+
+project(Hello_Base_Sender_svnt) : ciao_servant, avoids_ccm_noevent {
+ after += Hello_Base_skel Hello_Base_lem_stub Hello_Base_Sender_lem_stub
+ sharedname = Sender_svnt
+ libs += Sender_stub Sender_lem_stub \
+ Hello_Base_skel \
+ Hello_Base_stub \
+ Hello_Base_lem_stub
+
+ libpaths += ../lib
+ libout = ../lib
+ dynamicflags += SENDER_SVNT_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ SenderS.cpp
+ Sender_svnt.cpp
+ }
+
+ Header_Files {
+ SenderS.h
+ Sender_svnt.h
+ Sender_svnt_export.h
+ }
+
+ Inline_Files {
+ }
+}
+
+project (Hello_Base_starter) : ccm_stub, valuetype, avoids_ccm_noevent {
+ exename = starter
+ after += Hello_Base_Sender_stub
+ libs += Sender_stub Hello_Base_stub Hello_Base_lem_stub
+
+ libpaths += ../lib
+ IDL_Files {
+ }
+
+ Source_Files {
+ starter.cpp
+ }
+
+ Header_Files {
+ }
+
+ Inline_Files {
+ }
+}
+
diff --git a/CIAO/examples/Hello_Event/Sender/Sender_exec.cpp b/CIAO/examples/Hello_Event/Sender/Sender_exec.cpp
new file mode 100644
index 00000000000..cf8ef4f7eca
--- /dev/null
+++ b/CIAO/examples/Hello_Event/Sender/Sender_exec.cpp
@@ -0,0 +1,180 @@
+// -*- C++ -*-
+// $Id$
+
+/**
+ * Code generated by the The ACE ORB (TAO) IDL Compiler v2.0.2
+ * 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
+ **/
+
+#include "Sender_exec.h"
+
+namespace CIAO_Hello_Sender_Impl
+{
+
+ /**
+ * Facet Executor Implementation Class: push_message_exec_i
+ */
+
+ push_message_exec_i::push_message_exec_i (
+ ::Hello::CCM_Sender_Context_ptr ctx,
+ Sender_exec_i& sender)
+ : ciao_context_ (
+ ::Hello::CCM_Sender_Context::_duplicate (ctx))
+ , sender_ (sender)
+ {
+ }
+
+ push_message_exec_i::~push_message_exec_i (void)
+ {
+ }
+
+ // Operations from ::Hello::ReadMessage
+
+ char *
+ push_message_exec_i::get_message (void)
+ {
+ /* Your code here. */
+ CORBA::String_var message = this->sender_.local_message();
+ ACE_DEBUG ((LM_EMERGENCY, "Sender returning message: [%C]\n",
+ message.in ()));
+ return CORBA::string_dup (message.in ());
+ }
+
+ /**
+ * Component Executor Implementation Class: Sender_exec_i
+ */
+
+ Sender_exec_i::Sender_exec_i (void)
+ : local_message_ ("Hello, world!")
+ {
+ }
+
+ Sender_exec_i::~Sender_exec_i (void)
+ {
+ }
+
+ // Supported operations and attributes.
+
+ void
+ Sender_exec_i::start (void)
+ {
+ /* Your code here. */
+ Hello::TimeOut_var event = new OBV_Hello::TimeOut;
+ event->data ("ACE/TAO/CIAO");
+ ACE_DEBUG ((LM_EMERGENCY, "Sender initiates the process.\n"));
+ this->ciao_context_->push_click_out (event.in ());
+ }
+
+ // Component attributes and port operations.
+
+ ::Hello::CCM_ReadMessage_ptr
+ Sender_exec_i::get_push_message (void)
+ {
+ if ( ::CORBA::is_nil (this->ciao_push_message_.in ()))
+ {
+ push_message_exec_i *tmp = 0;
+ ACE_NEW_RETURN (
+ tmp,
+ push_message_exec_i (
+ this->ciao_context_.in (),
+ *this),
+ ::Hello::CCM_ReadMessage::_nil ());
+
+ this->ciao_push_message_ = tmp;
+ }
+
+ return
+ ::Hello::CCM_ReadMessage::_duplicate (
+ this->ciao_push_message_.in ());
+ }
+
+ char *
+ Sender_exec_i::local_message (void)
+ {
+ return ::CORBA::string_dup (this->local_message_.in ());
+ }
+
+ void
+ Sender_exec_i::local_message (
+ const char * local_message)
+ {
+ this->local_message_ = ::CORBA::string_dup (local_message);
+ }
+
+ // Operations from Components::SessionComponent.
+
+ void
+ Sender_exec_i::set_session_context (
+ ::Components::SessionContext_ptr ctx)
+ {
+ this->ciao_context_ =
+ ::Hello::CCM_Sender_Context::_narrow (ctx);
+
+ if ( ::CORBA::is_nil (this->ciao_context_.in ()))
+ {
+ throw ::CORBA::INTERNAL ();
+ }
+ }
+
+ void
+ Sender_exec_i::configuration_complete (void)
+ {
+ /* Your code here. */
+ ACE_DEBUG ((LM_EMERGENCY,
+ "Sender_exec_i::configuration_complete\n"));
+ }
+
+ void
+ Sender_exec_i::ccm_activate (void)
+ {
+ /* Your code here. */
+ ACE_DEBUG ((LM_EMERGENCY,
+ "Sender_exec_i::ccm_activate\n"));
+ }
+
+ void
+ Sender_exec_i::ccm_passivate (void)
+ {
+ /* Your code here. */
+ ACE_DEBUG ((LM_EMERGENCY, "Sender_exec_i::ccm_passivate\n"));
+ }
+
+ void
+ Sender_exec_i::ccm_remove (void)
+ {
+ /* Your code here. */
+ ACE_DEBUG ((LM_EMERGENCY, "Sender_exec_i::ccm_remove\n"));
+ }
+
+ extern "C" SENDER_EXEC_Export ::Components::EnterpriseComponent_ptr
+ create_Hello_Sender_Impl (void)
+ {
+ ::Components::EnterpriseComponent_ptr retval =
+ ::Components::EnterpriseComponent::_nil ();
+
+ ACE_NEW_NORETURN (
+ retval,
+ Sender_exec_i);
+
+ return retval;
+ }
+}
diff --git a/CIAO/examples/Hello_Event/Sender/Sender_exec.h b/CIAO/examples/Hello_Event/Sender/Sender_exec.h
new file mode 100644
index 00000000000..9cb5cd83f4a
--- /dev/null
+++ b/CIAO/examples/Hello_Event/Sender/Sender_exec.h
@@ -0,0 +1,142 @@
+// -*- C++ -*-
+// $Id$
+
+/**
+ * Code generated by the The ACE ORB (TAO) IDL Compiler v2.0.2
+ * 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
+ **/
+#ifndef CIAO_SENDER_EXEC_NECH9V_H_
+#define CIAO_SENDER_EXEC_NECH9V_H_
+
+#include /**/ "ace/pre.h"
+
+#include "SenderEC.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include /**/ "Sender_exec_export.h"
+#include "tao/LocalObject.h"
+
+namespace CIAO_Hello_Sender_Impl
+{
+ class Sender_exec_i;
+ /**
+ * Provider Executor Implementation Class: push_message_exec_i
+ */
+
+ class push_message_exec_i
+ : public virtual ::Hello::CCM_ReadMessage,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ push_message_exec_i (
+ ::Hello::CCM_Sender_Context_ptr ctx,
+ Sender_exec_i& sender);
+ virtual ~push_message_exec_i (void);
+
+ /** @name Operations and attributes from Hello::ReadMessage */
+ //@{
+
+ virtual
+ char * get_message (void);
+ //@}
+
+ private:
+ ::Hello::CCM_Sender_Context_var ciao_context_;
+ Sender_exec_i& sender_;
+
+ };
+
+ /**
+ * Component Executor Implementation Class: Sender_exec_i
+ */
+
+ class Sender_exec_i
+ : public virtual Sender_Exec,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ Sender_exec_i (void);
+ virtual ~Sender_exec_i (void);
+
+ /** @name Supported operations and attributes. */
+ //@{
+
+ virtual void start (void);
+
+ //@}
+
+ /** @name Component attributes and port operations. */
+ //@{
+
+ virtual ::Hello::CCM_ReadMessage_ptr
+ get_push_message (void);
+
+ virtual char * local_message (void);
+
+ virtual void local_message (const char * local_message);
+ //@}
+
+ /** @name 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);
+ //@}
+
+ /** @name User defined public operations. */
+ //@{
+
+ //@}
+
+ private:
+ ::Hello::CCM_Sender_Context_var ciao_context_;
+
+ /** @name Component attributes. */
+ //@{
+ ::Hello::CCM_ReadMessage_var ciao_push_message_;
+
+ ::CORBA::String_var local_message_;
+ //@}
+
+ /** @name User defined members. */
+ //@{
+
+ //@}
+
+ /** @name User defined private operations. */
+ //@{
+
+ //@}
+ };
+
+ extern "C" SENDER_EXEC_Export ::Components::EnterpriseComponent_ptr
+ create_Hello_Sender_Impl (void);
+}
+
+#include /**/ "ace/post.h"
+
+#endif /* ifndef */
diff --git a/CIAO/examples/Hello_Event/Sender/starter.cpp b/CIAO/examples/Hello_Event/Sender/starter.cpp
new file mode 100644
index 00000000000..4a1c04fbe9a
--- /dev/null
+++ b/CIAO/examples/Hello_Event/Sender/starter.cpp
@@ -0,0 +1,88 @@
+//$Id$:
+
+#include "SenderC.h"
+#include "ace/Get_Opt.h"
+
+// IOR file of the Sender
+const ACE_TCHAR * ior = 0;
+const char * message = 0;
+
+int
+parse_args (int argc, ACE_TCHAR *argv[])
+{
+ ACE_Get_Opt get_opts (argc, argv, ACE_TEXT("k:m:"));
+ int c = 0;
+
+ while ((c = get_opts ()) != -1)
+ {
+ switch (c)
+ {
+ case 'k':
+ ior = get_opts.opt_arg ();
+ break;
+
+ case 'm':
+ message = ACE_TEXT_ALWAYS_CHAR(get_opts.opt_arg ());
+ break;
+
+ case '?': // display help for use of the server.
+ default:
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "Usage: %s\n"
+ "-k <Sender IOR> (default is file://Sender.ior)\n",
+ "-m <Message>\n",
+ argv [0]),
+ -1);
+ break;
+ }
+ }
+
+ if (ior == 0)
+ {
+ ior = ACE_TEXT("file://Sender.ior");
+ }
+
+ return 0;
+}
+
+int
+ACE_TMAIN (int argc, ACE_TCHAR *argv[])
+{
+ try
+ {
+ // Initialize orb
+ CORBA::ORB_var orb = CORBA::ORB_init (argc, argv);
+
+ if (parse_args (argc, argv) != 0)
+ {
+ return -1;
+ }
+
+ CORBA::Object_var obj = orb->string_to_object (ior);
+
+ Hello::Sender_var sender = Hello::Sender::_narrow (obj.in ());
+
+ if (CORBA::is_nil (sender.in ()))
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "Unable to acquire Sender's objref\n"),
+ -1);
+ }
+
+ if (message)
+ {
+ sender->local_message (message);
+ }
+
+ sender->start ();
+
+ orb->destroy ();
+ }
+ catch (const CORBA::Exception& ex)
+ {
+ ex._tao_print_exception ("Unknown exception\n");
+ return -1;
+ }
+
+ return 0;
+}
diff --git a/CIAO/examples/Hello_Event/descriptors/DeploymentPlan.cdp b/CIAO/examples/Hello_Event/descriptors/DeploymentPlan.cdp
new file mode 100644
index 00000000000..530921c2934
--- /dev/null
+++ b/CIAO/examples/Hello_Event/descriptors/DeploymentPlan.cdp
@@ -0,0 +1,257 @@
+<!-- $Id$ -->
+<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_Deployment_1</label>
+ <UUID>Hello_Deployment_1</UUID>
+
+ <!-- Implementations declarations -->
+
+ <implementation xmi:id="ReceiverComponentImplementation">
+ <name>ReceiverComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="Receiver_ExecArtifact" />
+ <artifact xmi:idref="Receiver_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see 10.6.1) -->
+ <name>component factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Hello_Receiver_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Hello_Receiver_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Receiver_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Receiver_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="SenderComponentImplementation">
+ <name>SenderComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="Sender_ExecArtifact" />
+ <artifact xmi:idref="Sender_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see 10.6.1) -->
+ <name>component factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Hello_Sender_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Hello_Sender_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Sender_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Sender_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <instance xmi:id="ReceiverComponentInstance">
+ <name>ReceiverComponent</name>
+ <node>ReceiverNode</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="ReceiverComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.InstanceIOR</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Receiver.ior</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>iterations</name>
+ <value>
+ <type>
+ <kind>tk_short</kind>
+ </type>
+ <value>
+ <short>10</short>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.RegisterNaming</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Receiver</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="SenderComponentInstance">
+ <name>SenderComponent</name>
+ <node>SenderNode</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SenderComponentImplementation" />
+ <configProperty>
+ <name>local_message</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>hello, world!</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.InstanceIOR</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Sender.ior</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.RegisterNaming</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Sender</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <connection>
+ <name>MessageConnection</name>
+ <internalEndpoint>
+ <portName>read_message</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance xmi:idref="ReceiverComponentInstance" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>push_message</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="SenderComponentInstance" />
+ </internalEndpoint>
+ </connection>
+
+ <connection>
+ <name>EventConnection</name>
+ <internalEndpoint>
+ <portName>click_out</portName>
+ <provider>false</provider>
+ <kind>EventPublisher</kind>
+ <instance xmi:idref="SenderComponentInstance" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>click_in</portName>
+ <provider>true</provider>
+ <kind>EventConsumer</kind>
+ <instance xmi:idref="ReceiverComponentInstance" />
+ </internalEndpoint>
+ </connection>
+
+ <!-- Artifacts declarations -->
+ <artifact xmi:id="Receiver_ExecArtifact">
+ <name>Receiver_exec</name>
+ <source/>
+ <node/>
+ <location>Receiver_exec</location>
+ </artifact>
+ <artifact xmi:id="Receiver_SvntArtifact">
+ <name>Receiver_svnt</name>
+ <source/>
+ <node/>
+ <location>Receiver_svnt</location>
+ </artifact>
+
+ <artifact xmi:id="Sender_ExecArtifact">
+ <name>Sender_exec</name>
+ <source/>
+ <node/>
+ <location>Sender_exec</location>
+ </artifact>
+ <artifact xmi:id="Sender_SvntArtifact">
+ <name>Sender_svnt</name>
+ <source/>
+ <node/>
+ <location>Sender_svnt</location>
+ </artifact>
+
+</Deployment:DeploymentPlan>
diff --git a/CIAO/examples/Hello_Event/descriptors/DeploymentPlan_without_ns.cdp b/CIAO/examples/Hello_Event/descriptors/DeploymentPlan_without_ns.cdp
new file mode 100644
index 00000000000..8396ead84d7
--- /dev/null
+++ b/CIAO/examples/Hello_Event/descriptors/DeploymentPlan_without_ns.cdp
@@ -0,0 +1,224 @@
+<!-- $Id$ -->
+<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_Deployment_1</label>
+ <UUID>Hello_Deployment_1</UUID>
+
+ <!-- Implementations declarations -->
+
+ <implementation xmi:id="Hello_ReceiverComponentImplementation">
+ <name>Hello_ReceiverComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="Hello_Receiver_ExecArtifact" />
+ <artifact xmi:idref="Hello_Receiver_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see 10.6.1) -->
+ <name>component factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Hello_Receiver_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Hello_Receiver_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Receiver_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Receiver_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="Hello_SenderComponentImplementation">
+ <name>Hello_SenderComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="Hello_Sender_ExecArtifact" />
+ <artifact xmi:idref="Hello_Sender_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see 10.6.1) -->
+ <name>component factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Hello_Sender_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Hello_Sender_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Sender_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Sender_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <instance xmi:id="Hello_ReceiverComponentInstance">
+ <name>Hello_ReceiverComponent</name>
+ <node>ReceiverNode</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="Hello_ReceiverComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.InstanceIOR</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Receiver.ior</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="Hello_SenderComponentInstance">
+ <name>Hello_SenderComponent</name>
+ <node>SenderNode</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="Hello_SenderComponentImplementation" />
+ <configProperty>
+ <name>local_message</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>hello, world!</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.InstanceIOR</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Sender.ior</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <connection>
+ <name>MessageConnection</name>
+ <internalEndpoint>
+ <portName>read_message</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance xmi:idref="Hello_ReceiverComponentInstance" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>push_message</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="Hello_SenderComponentInstance" />
+ </internalEndpoint>
+ </connection>
+
+ <connection>
+ <name>EventConnection</name>
+ <internalEndpoint>
+ <portName>click_out</portName>
+ <provider>false</provider>
+ <kind>EventPublisher</kind>
+ <instance xmi:idref="Hello_SenderComponentInstance" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>click_in</portName>
+ <provider>true</provider>
+ <kind>EventConsumer</kind>
+ <instance xmi:idref="Hello_ReceiverComponentInstance" />
+ </internalEndpoint>
+ </connection>
+
+ <!-- Artifacts declarations -->
+ <artifact xmi:id="Hello_Receiver_ExecArtifact">
+ <name>Receiver_exec</name>
+ <source/>
+ <node/>
+ <location>Receiver_exec</location>
+ </artifact>
+ <artifact xmi:id="Hello_Receiver_SvntArtifact">
+ <name>Receiver_svnt</name>
+ <source/>
+ <node/>
+ <location>Receiver_svnt</location>
+ </artifact>
+
+ <artifact xmi:id="Hello_Sender_ExecArtifact">
+ <name>Sender_exec</name>
+ <source/>
+ <node/>
+ <location>Sender_exec</location>
+ </artifact>
+ <artifact xmi:id="Hello_Sender_SvntArtifact">
+ <name>Sender_svnt</name>
+ <source/>
+ <node/>
+ <location>Sender_svnt</location>
+ </artifact>
+
+</Deployment:DeploymentPlan>
diff --git a/CIAO/examples/Hello_Event/descriptors/NodeManagerMap.cdd b/CIAO/examples/Hello_Event/descriptors/NodeManagerMap.cdd
new file mode 100644
index 00000000000..0bac35a3e21
--- /dev/null
+++ b/CIAO/examples/Hello_Event/descriptors/NodeManagerMap.cdd
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<Deployment:domain 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">
+
+ <UUID>83D02FE2-A0BD-11DF-A038-005056C00008</UUID>
+
+ <label/>
+
+ <node>
+ <name>SenderNode</name>
+ <label/>
+ <resource>
+ <name>Node Address</name>
+ <resourceType>edu.vanderbilt.dre.DAnCE.NodeAddress</resourceType>
+ <property>
+ <name>edu.vanderbilt.dre.DAnCE.StringIOR</name>
+ <kind>Attribute</kind>
+ <dynamic>false</dynamic>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>corbaloc:iiop:localhost:60001</string>
+ </value>
+ </value>
+ </property>
+ </resource>
+ </node>
+ <node>
+ <name>ReceiverNode</name>
+ <label/>
+ <resource>
+ <name>Node Address</name>
+ <resourceType>edu.vanderbilt.dre.DAnCE.NodeAddress</resourceType>
+ <property>
+ <name>edu.vanderbilt.dre.DAnCE.StringIOR</name>
+ <kind>Attribute</kind>
+ <dynamic>false</dynamic>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>corbaloc:iiop:localhost:60002</string>
+ </value>
+ </value>
+ </property>
+ </resource>
+ </node>
+</Deployment:domain> \ No newline at end of file
diff --git a/CIAO/examples/Hello_Event/descriptors/NodeMap.cdd b/CIAO/examples/Hello_Event/descriptors/NodeMap.cdd
new file mode 100755
index 00000000000..a48f4bc245b
--- /dev/null
+++ b/CIAO/examples/Hello_Event/descriptors/NodeMap.cdd
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<Deployment:domain 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">
+
+ <UUID>83D02FE2-A0BD-11DF-A038-005056C00008</UUID>
+
+ <label/>
+
+ <node>
+ <name>NodeOne</name>
+ <label/>
+ <resource>
+ <name>Node Address</name>
+ <resourceType>edu.vanderbilt.dre.DAnCE.NodeAddress</resourceType>
+ <property>
+ <name>edu.vanderbilt.dre.DAnCE.StringIOR</name>
+ <kind>Attribute</kind>
+ <dynamic>false</dynamic>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>corbaloc:iiop:localhost:60001</string>
+ </value>
+ </value>
+ </property>
+ </resource>
+ </node>
+</Deployment:domain>
diff --git a/CIAO/examples/Hello_Event/descriptors/PlanLocality_DifferentProcesses.cdp b/CIAO/examples/Hello_Event/descriptors/PlanLocality_DifferentProcesses.cdp
new file mode 100755
index 00000000000..b5e971f22c0
--- /dev/null
+++ b/CIAO/examples/Hello_Event/descriptors/PlanLocality_DifferentProcesses.cdp
@@ -0,0 +1,226 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<!-- $Id$ -->
+<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">
+
+ <UUID>C5CA23E2-2004-11DF-8000-000C2916C803</UUID>
+
+ <implementation xmi:id="_5FFE7D8E-2003-11DF-B472-000C2916C803">
+ <name>PICML_default_xme_file.ComponentImplementations.Hello_ReceiverImpl.Hello_ReceiverImpl</name>
+ <source/>
+ <artifact xmi:idref="_5FFE7D8E-2003-11DF-B474-000C2916C803"/>
+ <artifact xmi:idref="_5FFE7D8E-2003-11DF-B475-000C2916C803"/>
+ <execParameter>
+ <name>component factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Hello_Receiver_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>PICML_default_xme_file.ImplementationArtifacts.Hello_ReceiverArtifacts.Hello_Receiver_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Hello_Receiver_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>PICML_default_xme_file.ImplementationArtifacts.Hello_ReceiverArtifacts.Hello_Receiver_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="_5FFE7D8E-2003-11DF-B473-000C2916C803">
+ <name>PICML_default_xme_file.ComponentImplementations.Hello_SenderImpl.Hello_SenderImpl</name>
+ <source/>
+ <artifact xmi:idref="_5FFE7D8E-2003-11DF-B476-000C2916C803"/>
+ <artifact xmi:idref="_5FFE7D8E-2003-11DF-B477-000C2916C803"/>
+ <execParameter>
+ <name>component factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Hello_Sender_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>PICML_default_xme_file.ImplementationArtifacts.Hello_SenderArtifacts.Hello_Sender_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Hello_Sender_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>PICML_default_xme_file.ImplementationArtifacts.Hello_SenderArtifacts.Hello_Sender_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <instance xmi:id="_A7F51814-2003-11DF-8000-000C2916C803">
+ <name>PICML_default_xme_file.ComponentImplementations.NewComponentImplementationContainer.ComponentAssembly.Receiver</name>
+ <node>NodeOne</node>
+ <source/>
+ <implementation xmi:idref="_5FFE7D8E-2003-11DF-B472-000C2916C803"/>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.InstanceIOR</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Hello_ReceiverImpl.ior</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="_AC04995C-2003-11DF-8000-000C2916C803">
+ <name>PICML_default_xme_file.ComponentImplementations.NewComponentImplementationContainer.ComponentAssembly.Sender</name>
+ <node>NodeOne</node>
+ <source/>
+ <implementation xmi:idref="_5FFE7D8E-2003-11DF-B473-000C2916C803"/>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.InstanceIOR</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Sender.ior</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>local_message</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>hello, world!</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <connection>
+ <name>PICML_default_xme_file.ComponentImplementations.NewComponentImplementationContainer.ComponentAssembly.Receiver:read_message::PICML_default_xme_file.ComponentImplementations.NewComponentImplementationContainer.ComponentAssembly.Sender:push_message</name>
+ <internalEndpoint>
+ <portName>read_message</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance xmi:idref="_A7F51814-2003-11DF-8000-000C2916C803"/>
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>push_message</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="_AC04995C-2003-11DF-8000-000C2916C803"/>
+ </internalEndpoint>
+ </connection>
+
+ <connection>
+ <name>PICML_default_xme_file.ComponentImplementations.NewComponentImplementationContainer.ComponentAssembly.Sender:click_out::PICML_default_xme_file.ComponentImplementations.NewComponentImplementationContainer.ComponentAssembly.Receiver:click_in</name>
+ <internalEndpoint>
+ <portName>click_out</portName>
+ <provider>false</provider>
+ <kind>EventPublisher</kind>
+ <instance xmi:idref="_AC04995C-2003-11DF-8000-000C2916C803"/>
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>click_in</portName>
+ <provider>true</provider>
+ <kind>EventConsumer</kind>
+ <instance xmi:idref="_A7F51814-2003-11DF-8000-000C2916C803"/>
+ </internalEndpoint>
+ </connection>
+
+ <artifact xmi:id="_5FFE7D8E-2003-11DF-B474-000C2916C803">
+ <name>PICML_default_xme_file.ImplementationArtifacts.Hello_ReceiverArtifacts.Hello_Receiver_svnt</name>
+ <source/>
+ <node/>
+ <location>Receiver_svnt</location>
+ </artifact>
+
+ <artifact xmi:id="_5FFE7D8E-2003-11DF-B475-000C2916C803">
+ <name>PICML_default_xme_file.ImplementationArtifacts.Hello_ReceiverArtifacts.Hello_Receiver_exec</name>
+ <source/>
+ <node/>
+ <location>Receiver_exec</location>
+ </artifact>
+
+ <artifact xmi:id="_5FFE7D8E-2003-11DF-B476-000C2916C803">
+ <name>PICML_default_xme_file.ImplementationArtifacts.Hello_SenderArtifacts.Hello_Sender_svnt</name>
+ <source/>
+ <node/>
+ <location>Sender_svnt</location>
+ </artifact>
+
+ <artifact xmi:id="_5FFE7D8E-2003-11DF-B477-000C2916C803">
+ <name>PICML_default_xme_file.ImplementationArtifacts.Hello_SenderArtifacts.Hello_Sender_exec</name>
+ <source/>
+ <node/>
+ <location>Sender_exec</location>
+ </artifact>
+
+ <localityConstraint>
+ <constraint>DifferentProcess</constraint>
+ <constrainedInstance xmi:idref="_AC04995C-2003-11DF-8000-000C2916C803"/>
+ </localityConstraint>
+
+ <localityConstraint>
+ <constraint>DifferentProcess</constraint>
+ <constrainedInstance xmi:idref="_A7F51814-2003-11DF-8000-000C2916C803"/>
+ </localityConstraint>
+
+</Deployment:DeploymentPlan>
diff --git a/CIAO/examples/Hello_Event/descriptors/PlanLocality_SameProcess.cdp b/CIAO/examples/Hello_Event/descriptors/PlanLocality_SameProcess.cdp
new file mode 100755
index 00000000000..e97de2a7f07
--- /dev/null
+++ b/CIAO/examples/Hello_Event/descriptors/PlanLocality_SameProcess.cdp
@@ -0,0 +1,222 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<!-- $Id$ -->
+<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">
+
+ <UUID>CCA28448-2004-11DF-8000-000C2916C803</UUID>
+
+ <implementation xmi:id="_5FFE7D8E-2003-11DF-B472-000C2916C803">
+ <name>PICML_default_xme_file.ComponentImplementations.Hello_ReceiverImpl.Hello_ReceiverImpl</name>
+ <source/>
+ <artifact xmi:idref="_5FFE7D8E-2003-11DF-B474-000C2916C803"/>
+ <artifact xmi:idref="_5FFE7D8E-2003-11DF-B475-000C2916C803"/>
+ <execParameter>
+ <name>component factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Hello_Receiver_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>PICML_default_xme_file.ImplementationArtifacts.Hello_ReceiverArtifacts.Hello_Receiver_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Hello_Receiver_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>PICML_default_xme_file.ImplementationArtifacts.Hello_ReceiverArtifacts.Hello_Receiver_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="_5FFE7D8E-2003-11DF-B473-000C2916C803">
+ <name>PICML_default_xme_file.ComponentImplementations.Hello_SenderImpl.Hello_SenderImpl</name>
+ <source/>
+ <artifact xmi:idref="_5FFE7D8E-2003-11DF-B476-000C2916C803"/>
+ <artifact xmi:idref="_5FFE7D8E-2003-11DF-B477-000C2916C803"/>
+ <execParameter>
+ <name>component factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Hello_Sender_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>PICML_default_xme_file.ImplementationArtifacts.Hello_SenderArtifacts.Hello_Sender_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Hello_Sender_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>PICML_default_xme_file.ImplementationArtifacts.Hello_SenderArtifacts.Hello_Sender_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <instance xmi:id="_A7F51814-2003-11DF-8000-000C2916C803">
+ <name>PICML_default_xme_file.ComponentImplementations.NewComponentImplementationContainer.ComponentAssembly.Receiver</name>
+ <node>NodeOne</node>
+ <source/>
+ <implementation xmi:idref="_5FFE7D8E-2003-11DF-B472-000C2916C803"/>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.InstanceIOR</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Hello_ReceiverImpl.ior</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="_AC04995C-2003-11DF-8000-000C2916C803">
+ <name>PICML_default_xme_file.ComponentImplementations.NewComponentImplementationContainer.ComponentAssembly.Sender</name>
+ <node>NodeOne</node>
+ <source/>
+ <implementation xmi:idref="_5FFE7D8E-2003-11DF-B473-000C2916C803"/>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.InstanceIOR</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Sender.ior</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>local_message</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>hello, world!</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <connection>
+ <name>PICML_default_xme_file.ComponentImplementations.NewComponentImplementationContainer.ComponentAssembly.Receiver:read_message::PICML_default_xme_file.ComponentImplementations.NewComponentImplementationContainer.ComponentAssembly.Sender:push_message</name>
+ <internalEndpoint>
+ <portName>read_message</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance xmi:idref="_A7F51814-2003-11DF-8000-000C2916C803"/>
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>push_message</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="_AC04995C-2003-11DF-8000-000C2916C803"/>
+ </internalEndpoint>
+ </connection>
+
+ <connection>
+ <name>PICML_default_xme_file.ComponentImplementations.NewComponentImplementationContainer.ComponentAssembly.Sender:click_out::PICML_default_xme_file.ComponentImplementations.NewComponentImplementationContainer.ComponentAssembly.Receiver:click_in</name>
+ <internalEndpoint>
+ <portName>click_out</portName>
+ <provider>false</provider>
+ <kind>EventPublisher</kind>
+ <instance xmi:idref="_AC04995C-2003-11DF-8000-000C2916C803"/>
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>click_in</portName>
+ <provider>true</provider>
+ <kind>EventConsumer</kind>
+ <instance xmi:idref="_A7F51814-2003-11DF-8000-000C2916C803"/>
+ </internalEndpoint>
+ </connection>
+
+ <artifact xmi:id="_5FFE7D8E-2003-11DF-B474-000C2916C803">
+ <name>PICML_default_xme_file.ImplementationArtifacts.Hello_ReceiverArtifacts.Hello_Receiver_svnt</name>
+ <source/>
+ <node/>
+ <location>Receiver_svnt</location>
+ </artifact>
+
+ <artifact xmi:id="_5FFE7D8E-2003-11DF-B475-000C2916C803">
+ <name>PICML_default_xme_file.ImplementationArtifacts.Hello_ReceiverArtifacts.Hello_Receiver_exec</name>
+ <source/>
+ <node/>
+ <location>Receiver_exec</location>
+ </artifact>
+
+ <artifact xmi:id="_5FFE7D8E-2003-11DF-B476-000C2916C803">
+ <name>PICML_default_xme_file.ImplementationArtifacts.Hello_SenderArtifacts.Hello_Sender_svnt</name>
+ <source/>
+ <node/>
+ <location>Sender_svnt</location>
+ </artifact>
+
+ <artifact xmi:id="_5FFE7D8E-2003-11DF-B477-000C2916C803">
+ <name>PICML_default_xme_file.ImplementationArtifacts.Hello_SenderArtifacts.Hello_Sender_exec</name>
+ <source/>
+ <node/>
+ <location>Sender_exec</location>
+ </artifact>
+
+ <localityConstraint>
+ <constraint>SameProcess</constraint>
+ <constrainedInstance xmi:idref="_A7F51814-2003-11DF-8000-000C2916C803"/>
+ <constrainedInstance xmi:idref="_AC04995C-2003-11DF-8000-000C2916C803"/>
+ </localityConstraint>
+
+</Deployment:DeploymentPlan>
diff --git a/CIAO/examples/Hello_Event/descriptors/run_NodeDaemons.pl b/CIAO/examples/Hello_Event/descriptors/run_NodeDaemons.pl
new file mode 100755
index 00000000000..50b3930fc64
--- /dev/null
+++ b/CIAO/examples/Hello_Event/descriptors/run_NodeDaemons.pl
@@ -0,0 +1,42 @@
+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;
+
+$tg = PerlACE::TestTarget::create_target (1) || die "Create target for ns failed\n";
+
+$iorbase1 = "NodeApp1.ior";
+$iorfile1 = $tg->LocalFile ($iorbase1);
+$iorbase2 = "NodeApp2.ior";
+$iorfile2 = $tg->LocalFile ($iorbase2);
+
+#for ($iter = 0; $iter <= $#ARGV; $iter++) {
+# if ($ARGV[$iter] eq "-h" || $ARGV[$iter] eq "-?") {
+# print "Run_Test Perl script for NodeApplicationTest \n\n";
+# print "run_test \n";
+# print "\n";
+# print "-h -- prints this information\n";
+# exit 0;
+# }
+#}
+
+$iorfile1 = $tg->DeleteFile ($iorbase1);
+$iorfile2 = $tg->DeleteFile ($iorbase2);
+
+$CIAO_ROOT=$ENV{'CIAO_ROOT'};
+
+$SV1 = $tg->CreateProcess ("$DANCE_ROOT/bin/dance_node_manager",
+ "-ORBEndpoint iiop://localhost:10001 -s $DANCE_ROOT/bin/dance_locality_manager");
+
+$SV2 = $tg->CreateProcess ("$DANCE_ROOT/bin/dance_node_manager",
+ "-ORBEndpoint iiop://localhost:20001 -s $DANCE_ROOT/bin/dance_locality_manager");
+
+$SV1->Spawn ();
+$SV2->Spawn ();
+
+sleep (99999999999);
diff --git a/CIAO/examples/Hello_Event/descriptors/run_test.pl b/CIAO/examples/Hello_Event/descriptors/run_test.pl
new file mode 100755
index 00000000000..7d4fb2e9057
--- /dev/null
+++ b/CIAO/examples/Hello_Event/descriptors/run_test.pl
@@ -0,0 +1,236 @@
+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 = ( "SenderNode", "ReceiverNode" );
+
+$status = 0;
+$cdp_file = "DeploymentPlan.cdp";
+
+$controller_exec = "$CIAO_ROOT/examples/Hello/Sender/starter";
+
+# 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 daemon $i failed\n";
+ $tg_daemons[$i]->AddLibPath ('../lib');
+ }
+ # 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 ('dance_locality_manager');
+}
+
+sub run_node_daemons {
+ for ($i = 0; $i < $nr_daemon; ++$i) {
+ $iorbase = $iorbases[$i];
+ $iorfile = $iorfiles[$i];
+ $port = $ports[$i];
+ $nodename = $nodenames[$i];
+ $iiop = "iiop://localhost:$port";
+ $node_app = $tg_daemons[$i]->GetArchDir("$DANCE_ROOT/bin/") . "dance_locality_manager";
+
+ $d_cmd = "$DANCE_ROOT/bin/dance_node_manager";
+ $d_param = "-ORBEndpoint $iiop -s $node_app -n $nodename=$iorfile -t 30 --domain-nc corbaloc:rir:/NameService";
+
+ print "Run dance_node_manager with $d_param\n";
+
+ $DEAMONS[$i] = $tg_daemons[$i]->CreateProcess ($d_cmd, $d_param);
+ $DEAMONS[$i]->Spawn ();
+
+ if ($tg_daemons[$i]->WaitForFileTimed($iorbase,
+ $tg_daemons[$i]->ProcessStartWaitInterval ()) == -1) {
+ print STDERR
+ "ERROR: The ior $iorfile file of node daemon $i could not be found\n";
+ for (; $i >= 0; --$i) {
+ $DEAMONS[$i]->Kill (); $DEAMONS[$i]->TimedWait (1);
+ }
+ return -1;
+ }
+ }
+ return 0;
+}
+
+create_targets ();
+init_ior_files ();
+
+# Invoke naming service
+
+$NS = $tg_naming->CreateProcess ("$TAO_ROOT/orbsvcs/Naming_Service/tao_cosnaming", "-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 --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";
+
+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 $cdp_file -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;
+ }
+}
+
+print "Invoking the controller ($controller_exec -k file://Sender.ior)\n";
+$CTRL = $tg_executor->CreateProcess ("$controller_exec", "-k file://Sender.ior");
+$result = $CTRL->SpawnWaitKill ($tg_executor->ProcessStartWaitInterval ());
+
+if ($result != 0) {
+ print STDERR "ERROR: The controller returned $result\n";
+ $status = 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 $cdp_file -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;
diff --git a/CIAO/examples/Hello_Event/descriptors/run_test_PlanLocality_DifferentProcesses.pl b/CIAO/examples/Hello_Event/descriptors/run_test_PlanLocality_DifferentProcesses.pl
new file mode 100755
index 00000000000..ccf44c53969
--- /dev/null
+++ b/CIAO/examples/Hello_Event/descriptors/run_test_PlanLocality_DifferentProcesses.pl
@@ -0,0 +1,204 @@
+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'}";
+$DANCE_ROOT = "$ENV{'DANCE_ROOT'}";
+
+$daemons_running = 0;
+$em_running = 0;
+
+$daemons = 1;
+@ports = ( 60001 );
+@iorbases = ( "NodeApp1.ior" );
+@iorfiles = 0;
+@nodenames = ( "NodeOne" );
+
+$status = 0;
+$dat_file = "NodeMap.cdd";
+$cdp_file = "PlanLocality_DifferentProcesses.cdp";
+
+$controller_exec = "$CIAO_ROOT/examples/Hello/Sender/starter";
+
+# ior files other than daemon
+$ior_embase = "EM.ior";
+$ior_emfile = 0;
+
+# Processes
+$E = 0;
+$EM = 0;
+@DEAMONS = 0;
+
+# targets
+@tg_daemons = 0;
+$tg_exe_man = 0;
+$tg_executor = 0;
+
+sub create_targets {
+ # daemon
+ for ($i = 0; $i < $daemons; ++$i) {
+ $tg_daemons[$i] = PerlACE::TestTarget::create_target ($i+1) || die "Create target for daemon $i failed\n";
+ $tg_daemons[$i]->AddLibPath ('../lib');
+ }
+ # 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_emfile = $tg_exe_man->LocalFile ($ior_embase);
+ for ($i = 0; $i < $daemons; ++$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 < $daemons; ++$i) {
+ $tg_daemons[$i]->DeleteFile ($iorbases[$i]);
+ }
+ $tg_exe_man->DeleteFile ($ior_embase);
+ for ($i = 0; $i < $daemons; ++$i) {
+ $iorfiles[$i] = $tg_daemons[$i]->LocalFile ($iorbases[$i]);
+ }
+}
+
+sub kill_node_daemons {
+ for ($i = 0; $i < $daemons; ++$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);
+ }
+ # in case shutdown did not perform as expected
+ $tg_executor->KillAll ('dance_locality_manager');
+}
+
+
+sub run_node_daemons {
+ for ($i = 0; $i < $daemons; ++$i) {
+ $iorbase = $iorbases[$i];
+ $iorfile = $iorfiles[$i];
+ $port = $ports[$i];
+ $nodename = $nodenames[$i];
+ $iiop = "iiop://localhost:$port";
+ $node_app = $tg_daemons[$i]->GetArchDir("$DANCE_ROOT/bin/") . "dance_locality_manager";
+
+ $d_cmd = "$DANCE_ROOT/bin/dance_node_manager";
+ $d_param = "-ORBEndpoint $iiop -s $node_app -n $nodename=$iorfile -t 30";
+
+ 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 node daemons.
+print "Invoking node daemons\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 --cdd $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\n";
+$E = $tg_executor->CreateProcess ("$DANCE_ROOT/bin/dance_plan_launcher",
+ "-x $cdp_file -k file://$ior_emfile");
+$E->SpawnWaitKill (2*$tg_executor->ProcessStartWaitInterval ());
+
+for ($i = 0; $i < $$daemons; ++$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 "Invoking the controller ($controller_exec -k file://Sender.ior)\n";
+$CTRL = $tg_executor->CreateProcess ("$controller_exec", "-k file://Sender.ior");
+$result = $CTRL->SpawnWaitKill ($tg_executor->ProcessStartWaitInterval ());
+
+if ($result != 0) {
+ print STDERR "ERROR: The controller returned $result\n";
+ $status = 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\n";
+
+$E = $tg_executor->CreateProcess ("$DANCE_ROOT/bin/dance_plan_launcher",
+ "-k file://$ior_emfile -x $cdp_file -s");
+
+$pl_status = $E->SpawnWaitKill ($tg_executor->ProcessStartWaitInterval ());
+
+if ($pl_status != 0) {
+ print STDERR "ERROR: dance_plan_launcher returned $pl_status\n";
+ kill_open_processes ();
+ exit 1;
+}
+
+print "Executor returned.\n";
+print "Shutting down rest of the processes.\n";
+
+delete_ior_files ();
+kill_open_processes ();
+
+exit $status;
diff --git a/CIAO/examples/Hello_Event/descriptors/run_test_PlanLocality_SameProcess.pl b/CIAO/examples/Hello_Event/descriptors/run_test_PlanLocality_SameProcess.pl
new file mode 100755
index 00000000000..d32ce8cc057
--- /dev/null
+++ b/CIAO/examples/Hello_Event/descriptors/run_test_PlanLocality_SameProcess.pl
@@ -0,0 +1,204 @@
+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'}";
+$DANCE_ROOT = "$ENV{'DANCE_ROOT'}";
+
+$daemons_running = 0;
+$em_running = 0;
+
+$daemons = 1;
+@ports = ( 60001);
+@iorbases = ( "NodeApp1.ior" );
+@iorfiles = 0;
+@nodenames = ( "NodeOne" );
+
+$status = 0;
+$dat_file = "NodeMap.cdd";
+$cdp_file = "PlanLocality_SameProcess.cdp";
+
+$controller_exec = "$CIAO_ROOT/examples/Hello/Sender/starter";
+
+# ior files other than daemon
+$ior_embase = "EM.ior";
+$ior_emfile = 0;
+
+# Processes
+$E = 0;
+$EM = 0;
+@DEAMONS = 0;
+
+# targets
+@tg_daemons = 0;
+$tg_exe_man = 0;
+$tg_executor = 0;
+
+sub create_targets {
+ # daemon
+ for ($i = 0; $i < $daemons; ++$i) {
+ $tg_daemons[$i] = PerlACE::TestTarget::create_target ($i+1) || die "Create target for daemon $i failed\n";
+ $tg_daemons[$i]->AddLibPath ('../lib');
+ }
+ # 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_emfile = $tg_exe_man->LocalFile ($ior_embase);
+ for ($i = 0; $i < $daemons; ++$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 < $daemons; ++$i) {
+ $tg_daemons[$i]->DeleteFile ($iorbases[$i]);
+ }
+ $tg_exe_man->DeleteFile ($ior_embase);
+ for ($i = 0; $i < $daemons; ++$i) {
+ $iorfiles[$i] = $tg_daemons[$i]->LocalFile ($iorbases[$i]);
+ }
+}
+
+sub kill_node_daemons {
+ for ($i = 0; $i < $daemons; ++$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);
+ }
+ # in case shutdown did not perform as expected
+ $tg_executor->KillAll ('dance_locality_manager');
+}
+
+
+sub run_node_daemons {
+ for ($i = 0; $i < $daemons; ++$i) {
+ $iorbase = $iorbases[$i];
+ $iorfile = $iorfiles[$i];
+ $port = $ports[$i];
+ $nodename = $nodenames[$i];
+ $iiop = "iiop://localhost:$port";
+ $node_app = $tg_daemons[$i]->GetArchDir("$DANCE_ROOT/bin/") . "dance_locality_manager";
+
+ $d_cmd = "$DANCE_ROOT/bin/dance_node_manager";
+ $d_param = "-ORBEndpoint $iiop -s $node_app -n $nodename=$iorfile -t 30";
+
+ 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 node daemons.
+print "Invoking node daemons\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 --cdd $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\n";
+$E = $tg_executor->CreateProcess ("$DANCE_ROOT/bin/dance_plan_launcher",
+ "-x $cdp_file -k file://$ior_emfile");
+$E->SpawnWaitKill (2*$tg_executor->ProcessStartWaitInterval ());
+
+for ($i = 0; $i < $$daemons; ++$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 "Invoking the controller ($controller_exec -k file://Sender.ior)\n";
+$CTRL = $tg_executor->CreateProcess ("$controller_exec", "-k file://Sender.ior");
+$result = $CTRL->SpawnWaitKill ($tg_executor->ProcessStartWaitInterval ());
+
+if ($result != 0) {
+ print STDERR "ERROR: The controller returned $result\n";
+ $status = 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\n";
+
+$E = $tg_executor->CreateProcess ("$DANCE_ROOT/bin/dance_plan_launcher",
+ "-k file://$ior_emfile -x $cdp_file -s");
+
+$pl_status = $E->SpawnWaitKill ($tg_executor->ProcessStartWaitInterval ());
+
+if ($pl_status != 0) {
+ print STDERR "ERROR: dance_plan_launcher returned $pl_status\n";
+ kill_open_processes ();
+ exit 1;
+}
+
+print "Executor returned.\n";
+print "Shutting down rest of the processes.\n";
+
+delete_ior_files ();
+kill_open_processes ();
+
+exit $status;
diff --git a/CIAO/examples/Hello_Event/descriptors/run_test_shs.pl b/CIAO/examples/Hello_Event/descriptors/run_test_shs.pl
new file mode 100755
index 00000000000..f115d6b83da
--- /dev/null
+++ b/CIAO/examples/Hello_Event/descriptors/run_test_shs.pl
@@ -0,0 +1,272 @@
+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 = ( "SenderNode", "ReceiverNode" );
+
+$status = 0;
+$dat_file = "NodeManagerMap.cdd";
+$cdp_file = "DeploymentPlan.cdp";
+
+$controller_exec = "$CIAO_ROOT/examples/Hello/Sender/starter";
+
+# ior files other than daemon
+$ior_nsbase = "ns.ior";
+$ior_nsfile = 0;
+$ior_shsbase = "SHS_Daemon.ior";
+$ior_shsfile = 0;
+$ior_embase = "EM.ior";
+$ior_emfile = 0;
+
+# Processes
+$E = 0;
+$EM = 0;
+$NS = 0;
+$SHS = 0;
+@DEAMONS = 0;
+
+# targets
+@tg_daemons = 0;
+$tg_naming = 0;
+$tg_shs = 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');
+ # shs
+ $tg_shs = PerlACE::TestTarget::create_target (1) || die "Create target for ns failed\n";
+ $tg_shs->AddLibPath ('../lib');
+ # daemon
+ for ($i = 0; $i < $nr_daemon; ++$i) {
+ $tg_daemons[$i] = PerlACE::TestTarget::create_target ($i+1) || die "Create target for daemon $i failed\n";
+ $tg_daemons[$i]->AddLibPath ('../lib');
+ }
+ # 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_shsfile = $tg_naming->LocalFile ($ior_shsbase);
+ $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_shs->DeleteFile ($ior_shsbase);
+ $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);
+ }
+
+ if ($shs_running == 1) {
+ $SHS->Kill ();
+ $SHS->TimedWait (1);
+ }
+
+ # in case shutdown did not perform as expected
+ $tg_executor->KillAll ('dance_locality_manager');
+}
+
+sub run_node_daemons {
+ for ($i = 0; $i < $nr_daemon; ++$i) {
+ $iorbase = $iorbases[$i];
+ $iorfile = $iorfiles[$i];
+ $port = $ports[$i];
+ $nodename = $nodenames[$i];
+ $iiop = "iiop://localhost:$port";
+ $node_app = $tg_daemons[$i]->GetArchDir("$DANCE_ROOT/bin/") . "dance_locality_manager";
+
+ $d_cmd = "$DANCE_ROOT/bin/dance_node_manager";
+ $d_param = "-ORBEndpoint $iiop -s $node_app -n $nodename=$iorfile -t 30 --instance-nc corbaloc:rir:/NameService --locality-config shs.localityconfig";
+
+ 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/tao_cosnaming", "-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";
+
+
+print "Starting SHS daemon\n";
+$SHS = $tg_shs->CreateProcess ("$DANCE_ROOT/bin/dance_shs_daemon", "");
+
+$shs_status = $SHS->Spawn ();
+
+if ($shs_status != 0) {
+ print STDERR "ERROR: Unable to execute the SHS daemon\n";
+ kill_open_processes ();
+ exit 1;
+}
+
+if ($tg_shs->WaitForFileTimed ($ior_shsbase,
+ $tg_shs->ProcessStartWaitInterval ()) == -1) {
+ print STDERR "ERROR: cannot find SHS IOR file\n";
+ $SHS->Kill (); $SHS->TimedWait (1);
+ exit 1;
+}
+
+$shs_running = 1;
+# 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 --cdd $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 $cdp_file -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;
+ }
+}
+
+print "Invoking the controller ($controller_exec -k file://Sender.ior)\n";
+$CTRL = $tg_executor->CreateProcess ("$controller_exec", "-k file://Sender.ior");
+$result = $CTRL->SpawnWaitKill ($tg_executor->ProcessStartWaitInterval ());
+
+if ($result != 0) {
+ print STDERR "ERROR: The controller returned $result\n";
+ $status = 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 $cdp_file -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;
diff --git a/CIAO/examples/Hello_Event/descriptors/run_test_without_ns.pl b/CIAO/examples/Hello_Event/descriptors/run_test_without_ns.pl
new file mode 100755
index 00000000000..dcc4f99ffc5
--- /dev/null
+++ b/CIAO/examples/Hello_Event/descriptors/run_test_without_ns.pl
@@ -0,0 +1,204 @@
+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'}";
+$DANCE_ROOT = "$ENV{'DANCE_ROOT'}";
+
+$daemons_running = 0;
+$em_running = 0;
+
+$daemons = 2;
+@ports = ( 60001, 60002 );
+@iorbases = ( "NodeApp1.ior", "NodeApp2.ior" );
+@iorfiles = 0;
+@nodenames = ( "SenderNode", "ReceiverNode" );
+
+$status = 0;
+$dat_file = "NodeManagerMap.cdd";
+$cdp_file = "DeploymentPlan_without_ns.cdp";
+
+$controller_exec = "$CIAO_ROOT/examples/Hello/Sender/starter";
+
+# ior files other than daemon
+$ior_embase = "EM.ior";
+$ior_emfile = 0;
+
+# Processes
+$E = 0;
+$EM = 0;
+@DEAMONS = 0;
+
+# targets
+@tg_daemons = 0;
+$tg_exe_man = 0;
+$tg_executor = 0;
+
+sub create_targets {
+ # daemon
+ for ($i = 0; $i < $daemons; ++$i) {
+ $tg_daemons[$i] = PerlACE::TestTarget::create_target ($i+1) || die "Create target for daemon $i failed\n";
+ $tg_daemons[$i]->AddLibPath ('../lib');
+ }
+ # 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_emfile = $tg_exe_man->LocalFile ($ior_embase);
+ for ($i = 0; $i < $daemons; ++$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 < $daemons; ++$i) {
+ $tg_daemons[$i]->DeleteFile ($iorbases[$i]);
+ }
+ $tg_exe_man->DeleteFile ($ior_embase);
+ for ($i = 0; $i < $daemons; ++$i) {
+ $iorfiles[$i] = $tg_daemons[$i]->LocalFile ($iorbases[$i]);
+ }
+}
+
+sub kill_node_daemons {
+ for ($i = 0; $i < $daemons; ++$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);
+ }
+ # in case shutdown did not perform as expected
+ $tg_executor->KillAll ('dance_locality_manager');
+}
+
+
+sub run_node_daemons {
+ for ($i = 0; $i < $daemons; ++$i) {
+ $iorbase = $iorbases[$i];
+ $iorfile = $iorfiles[$i];
+ $port = $ports[$i];
+ $nodename = $nodenames[$i];
+ $iiop = "iiop://localhost:$port";
+ $node_app = $tg_daemons[$i]->GetArchDir("$DANCE_ROOT/bin/") . "dance_locality_manager";
+
+ $d_cmd = "$DANCE_ROOT/bin/dance_node_manager";
+ $d_param = "-ORBEndpoint $iiop -s $node_app -n $nodename=$iorfile -t 30";
+
+ 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 node daemons.
+print "Invoking node daemons\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 --cdd $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\n";
+$E = $tg_executor->CreateProcess ("$DANCE_ROOT/bin/dance_plan_launcher",
+ "-x $cdp_file -k file://$ior_emfile");
+$E->SpawnWaitKill (2*$tg_executor->ProcessStartWaitInterval ());
+
+for ($i = 0; $i < $$daemons; ++$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 "Invoking the controller ($controller_exec -k file://Sender.ior)\n";
+$CTRL = $tg_executor->CreateProcess ("$controller_exec", "-k file://Sender.ior");
+$result = $CTRL->SpawnWaitKill ($tg_executor->ProcessStartWaitInterval ());
+
+if ($result != 0) {
+ print STDERR "ERROR: The controller returned $result\n";
+ $status = 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\n";
+
+$E = $tg_executor->CreateProcess ("$DANCE_ROOT/bin/dance_plan_launcher",
+ "-k file://$ior_emfile -x $cdp_file -s");
+
+$pl_status = $E->SpawnWaitKill ($tg_executor->ProcessStartWaitInterval ());
+
+if ($pl_status != 0) {
+ print STDERR "ERROR: dance_plan_launcher returned $pl_status\n";
+ kill_open_processes ();
+ exit 1;
+}
+
+print "Executor returned.\n";
+print "Shutting down rest of the processes.\n";
+
+delete_ior_files ();
+kill_open_processes ();
+
+exit $status;
diff --git a/CIAO/examples/Hello_Event/descriptors/shs.ciao.localityconfig b/CIAO/examples/Hello_Event/descriptors/shs.ciao.localityconfig
new file mode 100644
index 00000000000..76ef7856a63
--- /dev/null
+++ b/CIAO/examples/Hello_Event/descriptors/shs.ciao.localityconfig
@@ -0,0 +1,9 @@
+edu.vanderbilt.dre.DAnCE.InstanceHandler CIAO_Deployment_Handlers create_Container_Handler
+edu.vanderbilt.dre.DAnCE.InstanceHandler CIAO_Deployment_Handlers create_Home_Handler
+edu.vanderbilt.dre.DAnCE.InstanceHandler CIAO_Deployment_Handlers create_Component_Handler
+edu.vanderbilt.dre.DAnCE.InstanceHandler CIAO_Deployment_Handlers create_Homed_Component_Handler
+edu.vanderbilt.dre.DAnCE.DeploymentInterceptor CIAO_Deployment_Interceptors create_CIAO_StoreReferences
+edu.vanderbilt.dre.DAnCE.DeploymentInterceptor DAnCE_Error_Interceptors create_DAnCE_Standard_Error
+edu.vanderbilt.dre.DAnCE.DeploymentInterceptor DAnCE_SHS_Interceptors create_DAnCE_SHS_Interceptor
+
+
diff --git a/CIAO/examples/Hello_Event/descriptors/shs.localityconfig b/CIAO/examples/Hello_Event/descriptors/shs.localityconfig
new file mode 100644
index 00000000000..dd6ba826aba
--- /dev/null
+++ b/CIAO/examples/Hello_Event/descriptors/shs.localityconfig
@@ -0,0 +1,7 @@
+edu.vanderbilt.dre.DAnCE.InstanceHandler CIAO_Deployment_Handlers create_Container_Handler
+edu.vanderbilt.dre.DAnCE.InstanceHandler CIAO_Deployment_Handlers create_Home_Handler
+edu.vanderbilt.dre.DAnCE.InstanceHandler CIAO_Deployment_Handlers create_Component_Handler
+edu.vanderbilt.dre.DAnCE.InstanceHandler CIAO_Deployment_Handlers create_Homed_Component_Handler
+edu.vanderbilt.dre.DAnCE.DeploymentInterceptor CIAO_Deployment_Interceptors create_CIAO_StoreReferences
+edu.vanderbilt.dre.DAnCE.DeploymentInterceptor DAnCE_SHS_Interceptors create_DAnCE_SHS_Interceptor
+edu.vanderbilt.dre.DAnCE.DeploymentInterceptor DAnCE_Error_Interceptors create_DAnCE_Standard_Error
diff --git a/CIAO/examples/Hello_Event/step-by-step.html b/CIAO/examples/Hello_Event/step-by-step.html
new file mode 100644
index 00000000000..6b939601d79
--- /dev/null
+++ b/CIAO/examples/Hello_Event/step-by-step.html
@@ -0,0 +1,317 @@
+<!--//$Id$ -->
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+ <title>Step-By-Step of How to build a CIAO application</title>
+</head>
+
+<body
+ text = "#000000"
+ link = "#000fff"
+ vLink= "#ff0f0f"
+ aLink = "#0000ff"
+ bgColor = "#ffffff">
+
+<hr>
+<h2>Simple <a href="http://www.dre.vanderbilt.edu/CIAO">CIAO</a> tutorial</h2>
+<b>Note:</b>
+<ul>
+ <li><a href="http://www.dre.vanderbilt.edu/cosmic">CoSMIC</a> tools are not used in this tutorial.</li>
+ <li>This is only a <em>GENERAL</em> way of building up a CIAO application and deploying it with DAnCE.
+ The user could always change the process in his own way. For example: the IDL file content, the project structure etc.
+ </li>
+ <li>An CCM application may consist of several components, deployed on several (hardware) nodes, which work
+ together as one big application.
+ </li>
+ <li>To download the code of this example please refer to the SVN repository at <code>$CIAO_ROOT/examples/Hello</code>.</li>
+</ul>
+<hr>
+
+<h2>Example Description</h2>
+This Hello example is contructed in the following ways:
+<ol>
+ <li>There are 2 components in the application: Sender and Receiver</li>
+ <li>The Sender will send out the timeout event to the Receiver.</li>
+ <li>Upon receiving the timeout event, the Receiver will go and fetch data from the Sender. </li>
+ <li>The user could deploy multiple instances of the Receiver without changing any C++/idl source code.</li>
+</ol>
+
+<hr>
+
+<h2>Code generation</h2>
+Note that an user only need to write the IDL files. All the rest of the files can be generated.
+The following code generators are used throughout this example:
+<ul>
+ <li><code>$CIAO_ROOT/bin/generate_component_mpc.pl</code><br/>
+ This perl script is able to generate MPC files out of a single name.
+ <a href="http://downloads.ociweb.com/MPC/MakeProjectCreator.pdf">MPC</a> is a utility we use
+ to generate makefiles or VC project/solution files for all
+ <a href="http://www.cs.wustl.edu/~schmidt/ACE.html">ACE</a>,
+ <a href="http://www.cs.wustl.edu/~schmidt/TAO.html">TAO</a> and
+ <a href="http://www.cs.wustl.edu/~schmidt/CIAO.html">CIAO</a>
+ libraries and executables.<br/>
+ </li>
+ <li><code>$ACE_ROOT/bin/tao_idl</code>
+ Besides all the stub and skeleton code, the TAO IDL compiler is also suitable to generate the
+ so called executor files. An executor C++ code file contains the business logic
+ the user need to write. Since this should be deployable by the DAnCE framework, there're
+ some restriction to this code. The TAO IDL compiler takes care of that.
+ </li>
+ <li><code>$ACE_ROOT/bin/mwc.pl</code>
+ This script will generate VS solutions and/or GNU makefiles out of the generated
+ MPC files.
+ </li>
+</ul>
+All these generators will be handled throughout this tutorial.
+<br/><br/>
+If there's a ccm_noevent entry in your default.features (location
+<code>$ACE_ROOT/bin/MakeProjectCreator/config/</code>), make sure it's set to 0 (nil)!
+
+<hr>
+
+<h2>Step-By-Step</h2>
+<h3>Hello_Base</h3>
+
+<ol>
+ <li>Write an IDL file (<a href="./Hello_Base/Hello_Base.idl"><code>Hello_Base.idl</code></a>) which contains all
+ the interfaces and events common to all the components. The reason
+ we do this is because the generated lib of this idl file will be
+ linked in by all the components in the application. To reduce the size
+ of the component lib we have to include only the necesary part. In
+ this example, we have an eventtype <code>timeout</code> and an
+ interface <code>ReadMessage</code>, which are used by both the
+ Sender and the Receiver, so we put both of them in <a href="Hello_Base/Hello_Base.idl">Hello_Base.idl</a>.
+ </li>
+ <br/>
+ <li>Look at the <a href="Hello_Base/Hello_Base.mpc"><code>Hello_Base.mpc</code></a> file to get an idea how the Hello_Base_stub
+ and Hello_Base_svnt projects are organized.<br/>
+ There's a utility in $CIAO_ROOT/bin, called generate_component_mpc. This a perl script which is able to generate a complete
+ mpc file based on a given name. The commandline used to generate <code>Hello_Base.mpc</code> is:<br/>
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<code>$CIAO_ROOT/bin/generate_component_mpc.pl -e -n -l../lib -o../lib Hello_Base</code><br/>
+ Use <code>$CIAO_ROOT/bin/generate_component_mpc.pl --help</code> to get more information about this tool.
+ See also the <a href="../../tutorials/Quoter/Simple/01.html">Quoter tutorial</a> for more information.
+ </li>
+</ol>
+
+<hr>
+
+<h3>For Every Component</h3>
+
+<ol>
+ <li>Execute : <br>
+ <ul>
+ <li><code>$CIAO_ROOT/bin/generate_component_mpc.pl -e -l ../lib -o ../lib -c starter -p Hello_Base Sender</code> in Sender directory.
+ The <code>-c</code> option will be handled <a href="#entry_point">later</a> on in the step-by-step.
+ </li>
+ <li><code>$CIAO_ROOT/bin/generate_component_mpc.pl -e -l ../lib -o ../lib -p Hello_Base Receiver</code> in Receiver directory
+ </li>
+ </ul>
+ <b>Note:</b>
+ <ul>
+ <li>There're different directories for <code>"Hello_Base", "Sender", "Receiver"</code> respectively.
+ </li>
+ <li>All output DLL's/executable will be stored in a separate directory, called "lib".
+ </li>
+ </ul>
+
+ <br/>
+
+ <li>Write an IDL file for every component (<a href="Sender/Sender.idl"><code>Sender.idl</code></a> and
+ <a href="Receiver/Receiver.idl"><code>Receiver.idl</code></a>). <br> Here you can put the
+ component specific IDL definitions in this file. In this example we have a interface <code>trigger</code>
+ specific to the Sender. Please note that the Sender component
+ <code>"supports"</code> (IDL keyword) this interface. This interface can be used by
+ <a href="Sender/starter.cpp"><code>starter</code></a> (an IDL 2 client) to start the application.
+ </li>
+
+ <br/>
+
+ <li>There's a possibility that the TAO IDL compiler can generate a 'template'
+ for the executor code (=business logic).
+ Steps to generate the executor files:
+ <ol>
+ <li>Backup the following files to a temporary directory:<br/>
+ <ul>
+ <li>Sender/Sender_exec.cpp
+ </li>
+ <li>Sender/Sender_exec.h
+ </li>
+ <li>Receiver/Receiver_exec.cpp
+ </li>
+ <li>Receiver/Receiver_exec.h
+ </li>
+ </ul>
+ </li>
+ <li>Add -Gex to the <code>idlflags</code> entry in the
+ IDL generator projects in the MPC file, meaning
+ </li>
+ <ul>
+ <li>Project <code>Hello_Base_Sender_idl_gen</code> in Sender/Sender.mpc
+ </li>
+ <li>Project <code>Hello_Base_Receiver_idl_gen</code> in Receiver/Receiver.mpc
+ </li>
+ </ul>
+ <li>Generate GNUmakefiles / VS project files and build
+ </li>
+ <li>Remove -Gex(r) again
+ </li>
+ <li>Generate GNUmakefiles / VS project files (and build)
+ </li>
+ </ol>
+ <b>Mind the last step! The TAO IDL compiler does not check whether the
+ executor file already exists. It will overwrite the existing!</b><br/><br/>
+ After step 2 the following files should be overwritten:
+ <ul>
+ <li>Sender/Sender_exec.cpp
+ </li>
+ <li>Sender/Sender_exec.h
+ </li>
+ <li>Receiver/Receiver_exec.cpp
+ </li>
+ <li>Receiver/Receiver_exec.h
+ </li>
+ </ul>
+ </li>
+</ol>
+
+Performing all steps could be troublesome to a new CCM user. The
+best way of learning this is to just do it more than once. I'll also help to
+read the example source code. If you are familliar with CORBA programming,
+it should not take too much time before you can declare yourself as a CCM programmer.<br/>
+
+<hr>
+
+<a name="entry_point"><h3>The Entry Point</h3></a>
+
+After both components are implemented we still need a small program to
+initialize the process. In Sender.idl there is a Sender specific
+interface with a single method in it created for this purpose. Hence
+there is a CORBA client application called <code>starter</code>. The
+<code>starter</code> will make a invocation on a supported interface
+called <code>trigger</code> on the Sender component to get the whole
+distributed application started. The <code>starter</code> will first
+obtain the Sender component object reference through the ior string
+supplied as a command argument. Please see the the last part of
+<code>Sender/Sender.mpc</code> file for details. <br/>
+
+<hr>
+
+<h3>Build</h3>
+
+This example assumes that ACE/TAO/CIAO/DANCE is build. If not, please
+follow the instructions to build these frameworks.<br/>
+<b>Tip : </b>Experienced users may want to use <code>$CIAO_ROOT/CIAO_TAO_DAnCE.mwc</code>
+to generate the needed VC project/solutions or GNU make files.<br/>
+
+Perform the following steps to build this example: <br/>
+<ol>
+ <li>Navigate to <code>$CIAO_ROOT/examples/Hello</code>
+ </li>
+ <li>For windows:<br/>
+ <ul>
+ <li>Visual C++ 2005: execute <code>$ACE_ROOT/bin/mwc.pl -type vc8</code>
+ </li>
+ <li>Visual C++ 2008: execute <code>$ACE_ROOT/bin/mwc.pl -type vc9</code>
+ </li>
+ <li>Visual C++ 2010: execute <code>$ACE_ROOT/bin/mwc.pl -type vc10</code>
+ </li>
+ </ul>
+ </li>
+ <li>For linux:<br/>
+ Execute <code>$ACE_ROOT/bin/mwc.pl -type gnuace</code>.
+ </li>
+</ol>
+Build this example using Visual Studio or make.<br/>
+
+<hr>
+
+<h3>Assemble</h3>
+
+Now we can step forward to build the assembly. Here we are going to
+build the simplest case only, which is 1 Receiver and 1 Sender. If you
+are interested in CIAO you could try 1 Sender with multiple
+Receivers. However, you need to change the Sender.idl to make it
+<em>publishes</em> timeout event instead of <em>emits</em> event.<br>
+Note: Creating the deployment plan descriptor is a tedious and error-prone job,
+you can download <a href="http://www.dre.vanderbilt.edu/cosmic">CoSMIC</a> to
+assist you in this step.
+<br/><br/>
+You need to create an XML descriptor file to describe your <em>deployment plan</em>,
+which is defined in a <em>Deployment Plan Descriptor</em> (.cdp)
+(see <a href="./descriptors/DeploymentPlan.cdp">Hello deployment plan<a>).
+In this file, you need to declaratively specify how the component assembly is
+constructed. Specificly, you need to specify the component types, component instances,
+component connections, implementation artifact descriptions, and whether you
+want to register component instances with naming service.
+<br/><br/>
+
+<hr>
+
+<h3>Deploy with <A href="../../docs/releasenotes/dance.html">DAnCE</A></h3>
+Once the DeploymentPlan is ready, the apllication can be deployed, using the newly
+created Deployment Plan.
+<br/><br/>
+
+Next figure shows how DAnCE will handle the deployment plan.<br/>
+
+<img width="70%" height="80%" src="./dance_deployment_runtime.png" />
+<br/><br/>
+
+To deploy the application, we're using perl scripts to launch the executables
+of which DAnCE consist.
+A perl script typically launches the DAnCE executables in this order:
+<ol>
+ <li>Naming service (if needed).
+ </li>
+ <li>A DAnCE Node Manager for each node.
+ </li>
+ <li>The DAnCE Execution Manager.
+ </li>
+ <li>The DAnCE Plan Launcher.
+ </li>
+</ol>
+
+See <a href=./descriptors/run_test.pl">run_test.pl</a> for an example.
+
+<br><br>
+
+The two most important variations:
+<ol>
+ <li>Deploying the application, using the naming service. See
+ <a href=./descriptors/run_test.pl">run_test.pl</a>.
+ </li>
+ <li>Deploying the application, without the use of the naming service. See
+ <a href=./descriptors/run_test_without_ns.pl">run_test_without_ns.pl</a>
+ </li>
+</ol>
+When using the first option, one will need to write a cdd-file. This file dictates
+which nodes are available in the system and which CORBA IIOP is necessary to
+contact these. Click <a href="./descriptors/NodeManagerMap.cdd">here</a> for
+an example of a CDD file.
+
+
+<hr>
+<h3>More Features</h3>
+<ul>
+ <li>Running the components in the same process:
+ see <a href="./descriptors/PlanLocality_SameProcess.cdp">PlanLocality_SameProcess.cdp</a>
+ at the end of this file.
+ </li>
+ <li>Running the components in the different process:
+ see <a href="./descriptors/PlanLocality_DifferentProcesses.cdp">PlanLocality_DifferentProcesses.cdp</a>
+ at the end of this file.
+ </li>
+ <li>Using the Health and Status interceptors.
+ see <a href="./descriptors/run_test_shs.pl">run_test_shs.pl</a>,
+ <a href="./descriptors/shs.ciao.localityconfig">shs.ciao.localityconfig</a>, and
+ <a href="./descriptors/shs.localityconfig">shs.localityconfig</a>.
+ </li>
+</ul>
+
+<br><br>
+
+<hr>
+<b>Email: </b><a href="mailto:"</a<ADDRESS>ciao-users@list.isis.vanderbilt.edu</ADDRESS>
+</body>
+</html>
+