summaryrefslogtreecommitdiff
path: root/modules/CIAO/examples/DevGuideExamples
diff options
context:
space:
mode:
authorWilliam R. Otte <wotte@dre.vanderbilt.edu>2009-06-01 18:23:45 +0000
committerWilliam R. Otte <wotte@dre.vanderbilt.edu>2009-06-01 18:23:45 +0000
commit9c5a6f34cd042eed0c03d0e1368ccd8cb0194ddc (patch)
treee722e8b485dd99aaa9efa8679bdde6eb1b71ed76 /modules/CIAO/examples/DevGuideExamples
parentdc25598c5fe36d33b5ff9e94a59e90f79cf42dba (diff)
downloadATCD-9c5a6f34cd042eed0c03d0e1368ccd8cb0194ddc.tar.gz
branching/tagging
Diffstat (limited to 'modules/CIAO/examples/DevGuideExamples')
-rw-r--r--modules/CIAO/examples/DevGuideExamples/CIAO.mwc5
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/Administrator.cidl24
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/Administrator.idl24
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/Administrator.mpc116
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/Administrator_Client.cpp120
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/Administrator_Client_IDL2.cpp10
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/Administrator_Client_IDL2.mpc45
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/Administrator_Client_IDL3.cpp10
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/Administrator_Client_IDL3.mpc29
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/Administrator_exec_export.h58
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/Administrator_exec_i.cpp260
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/Administrator_exec_i.h112
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/Administrator_stub_export.h58
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/Administrator_svnt_export.h58
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/History.idl19
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/History_exec_i.cpp96
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/History_exec_i.h70
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/Message.idl21
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/Messenger.cidl24
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/Messenger.idl30
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/Messenger.mpc146
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/Messenger_exec_export.h58
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/Messenger_exec_i.cpp254
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/Messenger_exec_i.h129
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/Messenger_stub_export.h58
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/Messenger_svnt_export.h58
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/Publication.idl17
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/Publication_exec_i.cpp82
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/Publication_exec_i.h70
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/Receiver.cidl23
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/Receiver.idl23
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/Receiver.mpc115
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/Receiver_exec_export.h58
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/Receiver_exec_i.cpp177
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/Receiver_exec_i.h102
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/Receiver_stub_export.h58
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/Receiver_svnt_export.h58
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/Runnable.idl17
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/Runnable_exec_i.cpp61
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/Runnable_exec_i.h65
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/StaticDAnCE/Messenger_StaticDAnCE.mpc18
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/StaticDAnCE/README.txt35
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/StaticDAnCE/StaticDAnCEApp.cpp102
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/StaticDAnCE/plan.h47
-rwxr-xr-xmodules/CIAO/examples/DevGuideExamples/Messenger/StaticDAnCE/run_test.pl110
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Administrator.ccd47
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Administrator.cid34
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Administrator.cpd15
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Administrator_Exec.iad40
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Administrator_Stub.iad30
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Administrator_Svnt.iad40
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Application-flattened.cdp255
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Application.cdp25
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Application.pcd23
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/ApplicationNodeMap.dat5
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Deployment.xsd776
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Domain.cdd24
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Libraries.iad11
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Messenger.ccd90
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Messenger.cid37
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Messenger.cpd15
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/MessengerAssembly.ccd31
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/MessengerAssembly.cid110
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/MessengerAssembly.cpd13
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Messenger_Exec.iad40
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Messenger_Stub.iad25
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Messenger_Svnt.iad40
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/README_15a5
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Receiver.ccd48
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Receiver.cid34
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Receiver.cpd11
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Receiver_Exec.iad40
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Receiver_Stub.iad29
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Receiver_Svnt.iad40
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/XMI.xsd35
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/admin.dat7
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/package.tpd8
-rwxr-xr-xmodules/CIAO/examples/DevGuideExamples/Messenger/descriptors/run_test.pl117
-rw-r--r--modules/CIAO/examples/DevGuideExamples/readme.txt12
79 files changed, 5242 insertions, 0 deletions
diff --git a/modules/CIAO/examples/DevGuideExamples/CIAO.mwc b/modules/CIAO/examples/DevGuideExamples/CIAO.mwc
new file mode 100644
index 00000000000..dd297256b34
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/CIAO.mwc
@@ -0,0 +1,5 @@
+// -*- MPC -*-
+// $Id$
+
+workspace {
+}
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator.cidl b/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator.cidl
new file mode 100644
index 00000000000..d980177be03
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator.cidl
@@ -0,0 +1,24 @@
+// $Id$
+
+/**
+ * @file Administrator.cidl
+ *
+ * @author Don Busch <busch_d@ociweb.com>
+ */
+
+#ifndef ADMINISTRATOR_CIDL
+#define ADMINISTRATOR_CIDL
+
+#include "Administrator.idl"
+
+composition session Administrator_Impl
+{
+ home executor AdministratorHome_Exec
+ {
+ implements AdministratorHome;
+ manages Administrator_Exec;
+ };
+};
+
+#endif
+
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator.idl b/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator.idl
new file mode 100644
index 00000000000..67bb016e157
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator.idl
@@ -0,0 +1,24 @@
+// $Id$
+
+/**
+ * @file Administrator.idl
+ *
+ * @author Don Busch <busch_d@ociweb.com>
+ */
+
+#ifndef ADMINISTRATOR_IDL
+#define ADMINISTRATOR_IDL
+
+#include <Components.idl>
+#include "Runnable.idl"
+#include "Publication.idl"
+
+component Administrator {
+ uses multiple Runnable runnables;
+ uses multiple Publication content;
+};
+
+home AdministratorHome manages Administrator {};
+
+#endif
+
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator.mpc b/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator.mpc
new file mode 100644
index 00000000000..97156d338ec
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator.mpc
@@ -0,0 +1,116 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl -p Messenger Administrator"
+
+project(Messenger_Administrator_idl_gen) : ciaoidldefaults, anytypecode, avoids_ace_for_tao {
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=ADMINISTRATOR_STUB_Export \
+ -Wb,stub_export_include=Administrator_stub_export.h \
+ -Wb,skel_export_macro=ADMINISTRATOR_SVNT_Export \
+ -Wb,skel_export_include=Administrator_svnt_export.h
+
+ IDL_Files {
+ Administrator.idl
+ }
+}
+
+project(Messenger_Administrator_cidl_gen) : ciaocidldefaults, ciaoidldefaults, avoids_ace_for_tao {
+ custom_only = 1
+ cidlflags += --svnt-export-macro ADMINISTRATOR_SVNT_Export \
+ --svnt-export-include Administrator_svnt_export.h
+ idlflags += -Wb,export_macro=ADMINISTRATOR_EXEC_Export \
+ -Wb,export_include=Administrator_exec_export.h \
+ -SS
+
+ CIDL_Files {
+ Administrator.cidl
+ }
+
+ IDL_Files {
+ AdministratorE.idl
+ }
+}
+
+project(Messenger_Administrator_stub) : ccm_stub, avoids_ace_for_tao {
+ after += Messenger_Administrator_idl_gen Messenger_stub
+ libs += Messenger_stub
+
+ sharedname = Administrator_stub
+ dynamicflags = ADMINISTRATOR_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ AdministratorC.cpp
+ }
+
+ Header_Files {
+ AdministratorC.h
+ Administrator_stub_export.h
+ }
+
+ Inline_Files {
+ AdministratorC.inl
+ }
+}
+
+project(Messenger_Administrator_exec) : ciao_executor, avoids_ace_for_tao {
+ after += Messenger_Administrator_cidl_gen Messenger_Administrator_stub
+ sharedname = Administrator_exec
+ libs += Administrator_stub Messenger_stub
+
+ dynamicflags = ADMINISTRATOR_EXEC_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ AdministratorEC.cpp
+ Administrator_exec_i.cpp
+ }
+
+ Header_Files {
+ AdministratorEC.h
+ Administrator_exec_i.h
+ Administrator_exec_export.h
+ }
+
+ Inline_Files {
+ AdministratorEC.inl
+ }
+}
+
+
+project(Messenger_Administrator_svnt) : ciao_servant, avoids_ace_for_tao {
+ after += Messenger_svnt Messenger_Administrator_exec
+ sharedname = Administrator_svnt
+ libs += Administrator_exec \
+ Administrator_stub \
+ Messenger_svnt \
+ Messenger_stub
+
+ dynamicflags = ADMINISTRATOR_SVNT_BUILD_DLL
+
+ CIDL_Files {
+ }
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ AdministratorS.cpp
+ Administrator_svnt.cpp
+ }
+
+ Header_Files {
+ AdministratorS.h
+ Administrator_svnt.h
+ Administrator_svnt_export.h
+ }
+
+ Inline_Files {
+ AdministratorS.inl
+ }
+}
+
+
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator_Client.cpp b/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator_Client.cpp
new file mode 100644
index 00000000000..15378b35b78
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator_Client.cpp
@@ -0,0 +1,120 @@
+// $Id$
+
+/**
+ * @file Administrator_Client.cpp
+ *
+ * Do NOT put this file in a project; it is included by
+ * Administrator_Client_IDL2.cpp and Administrator_Client_IDL3.cpp
+ * This file will not build on its own.
+ *
+ * @author Don Busch <busch_d@ociweb.com>
+ */
+
+#include "ace/Get_Opt.h"
+#include <iostream>
+
+const ACE_TCHAR* ior = ACE_TEXT ("file://Messenger.ior");
+
+int
+parse_args (int argc, ACE_TCHAR *argv[])
+{
+ ACE_Get_Opt get_opts (argc, argv, "k:");
+ int c;
+
+ while ((c = get_opts ()) != -1)
+ switch (c)
+ {
+ case 'k':
+ ior = get_opts.optarg;
+ break;
+
+ case '?':
+ default:
+ std::cerr << "usage: " << argv[0] << " -k <ior>" << std::endl;
+ return -1;
+ break;
+ }
+ return 0;
+}
+
+int
+svc( Runnable_ptr runnable, Publication_ptr publication )
+{
+ enum SelectionType { START=1, STOP, CHANGE_PERIOD, CHANGE_TEXT, EXIT };
+
+ bool done = false;
+ do {
+ std::cout << "\nWhat do you want to do to the Messenger(s)?" << std::endl;
+ std::cout << START << ". Start" << std::endl;
+ std::cout << STOP << ". Stop" << std::endl;
+ std::cout << CHANGE_PERIOD << ". Change Publication Period" << std::endl;
+ std::cout << CHANGE_TEXT << ". Change Publication Text" << std::endl;
+ std::cout << EXIT << ". Exit" << std::endl;
+
+ char selection_text[10];
+ std::cout << "Please enter a selection: ";
+ std::cin.getline( selection_text, sizeof(selection_text) );
+ int selection = ACE_OS::atoi(selection_text);
+
+ switch (selection) {
+ case START: {
+ runnable->start();
+ break;
+ }
+ case STOP: {
+ runnable->stop();
+ break;
+ }
+ case CHANGE_PERIOD: {
+ char period[10];
+ std::cout << "Please enter a new period in seconds: ";
+ std::cin.getline( period, sizeof( period ) );
+ publication->period( ACE_OS::atoi(period) );
+ break;
+ }
+ case CHANGE_TEXT: {
+ char buffer[1024];
+ std::cout << "Please enter new text: ";
+ std::cin.getline( buffer, sizeof(buffer) );
+ publication->text( buffer );
+ break;
+ }
+ case EXIT: {
+ done = true;
+ break;
+ }
+ default:
+ std::cout << "Please enter a valid option" << std::endl;
+ }
+ } while ( !done );
+
+ return 0;
+}
+
+int
+ACE_TMAIN (int argc, ACE_TCHAR *argv[])
+{
+ if (parse_args (argc, argv) != 0) {
+ return 1;
+ }
+
+ try {
+ CORBA::ORB_var orb = CORBA::ORB_init (argc, argv);
+
+ // get Messenger object
+ CORBA::Object_var obj = orb->string_to_object(ior);
+ Messenger_var messenger = Messenger::_narrow (obj.in());
+
+ Runnable_var runnable = messenger->provide_control();
+ Publication_var publication = messenger->provide_content ();
+
+ svc( runnable.in(), publication.in() );
+
+ return 0;
+ }
+ catch(const CORBA::Exception& ex) {
+ std::cerr << "Caught CORBA::Exception: " << std::endl << ex << std::endl;
+ }
+
+ return 1;
+}
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator_Client_IDL2.cpp b/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator_Client_IDL2.cpp
new file mode 100644
index 00000000000..399faa40389
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator_Client_IDL2.cpp
@@ -0,0 +1,10 @@
+// $Id$
+
+/**
+ * @file Administrator_Client_IDL2.cpp
+ *
+ * @author Don Busch <busch_d@ociweb.com>
+ */
+
+#include "idl2/Messenger_IDL2C.h"
+#include "Administrator_Client.cpp"
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator_Client_IDL2.mpc b/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator_Client_IDL2.mpc
new file mode 100644
index 00000000000..e67cd4b30ba
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator_Client_IDL2.mpc
@@ -0,0 +1,45 @@
+// $Id$
+
+project(Administrator_Client_IDL2_Compile): taoidl3toidl2defaults, avoids_ace_for_tao {
+ // ensures that only idl3-to-idl2 processing is performed
+ custom_only = 1
+
+ idl3toidl2flags += -I. -o idl2
+
+ IDL3TOIDL2_Files {
+ gendir = idl2
+ Runnable.idl
+ Publication.idl
+ Message.idl
+ History.idl
+ Administrator.idl
+ Messenger.idl
+ }
+}
+
+project(Administrator_Client_IDL2): ccm_stub, valuetype, avoids_ace_for_tao {
+ after += Administrator_Client_IDL2_Compile
+
+ exename = Administrator_Client_IDL2
+ idlflags += -Sm -Iidl2 -o idl2 -SS
+
+ IDL_Files {
+ gendir = idl2
+ idl2/Runnable_IDL2.idl
+ idl2/Publication_IDL2.idl
+ idl2/Message_IDL2.idl
+ idl2/History_IDL2.idl
+ idl2/Administrator_IDL2.idl
+ idl2/Messenger_IDL2.idl
+ }
+
+ Source_Files {
+ Administrator_Client_IDL2.cpp
+ idl2/Administrator_IDL2C.cpp
+ idl2/Messenger_IDL2C.cpp
+ idl2/Publication_IDL2C.cpp
+ idl2/Runnable_IDL2C.cpp
+ idl2/History_IDL2C.cpp
+ idl2/Message_IDL2C.cpp
+ }
+}
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator_Client_IDL3.cpp b/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator_Client_IDL3.cpp
new file mode 100644
index 00000000000..6e83b57165f
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator_Client_IDL3.cpp
@@ -0,0 +1,10 @@
+// $Id$
+
+/**
+ * @file Administrator_Client_IDL3.cpp
+ *
+ * @author Don Busch <busch_d@ociweb.com>
+ */
+
+#include "MessengerC.h"
+#include "Administrator_Client.cpp"
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator_Client_IDL3.mpc b/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator_Client_IDL3.mpc
new file mode 100644
index 00000000000..b044b2d2eee
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator_Client_IDL3.mpc
@@ -0,0 +1,29 @@
+// $Id$
+
+// @file Administrator_Client_IDL3.mpc
+//
+// @author Don Busch <busch_d@ociweb.com>
+
+project(Administrator_Client_IDL3): ccm_stub, valuetype, avoids_ace_for_tao {
+ after += Messenger_stub
+ libs += Messenger_stub
+ after += Administrator_Client_IDL2_Compile
+
+ exename = Administrator_Client_IDL3
+
+ IDL_Files {
+ // IDL stubs are linked from the Messenger_stub library;
+ // this empty section prevents all of the IDL stub code from
+ // being linked into this executable as well
+ }
+
+ Header_Files {
+ // this empty section prevents all of the header files
+ // being includes in this project
+ }
+
+ Source_Files {
+ Administrator_Client_IDL3.cpp
+ }
+}
+
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator_exec_export.h b/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator_exec_export.h
new file mode 100644
index 00000000000..6cfb8385b61
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator_exec_export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl ADMINISTRATOR_EXEC
+// ------------------------------
+#ifndef ADMINISTRATOR_EXEC_EXPORT_H
+#define ADMINISTRATOR_EXEC_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (ADMINISTRATOR_EXEC_HAS_DLL)
+# define ADMINISTRATOR_EXEC_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && ADMINISTRATOR_EXEC_HAS_DLL */
+
+#if !defined (ADMINISTRATOR_EXEC_HAS_DLL)
+# define ADMINISTRATOR_EXEC_HAS_DLL 1
+#endif /* ! ADMINISTRATOR_EXEC_HAS_DLL */
+
+#if defined (ADMINISTRATOR_EXEC_HAS_DLL) && (ADMINISTRATOR_EXEC_HAS_DLL == 1)
+# if defined (ADMINISTRATOR_EXEC_BUILD_DLL)
+# define ADMINISTRATOR_EXEC_Export ACE_Proper_Export_Flag
+# define ADMINISTRATOR_EXEC_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define ADMINISTRATOR_EXEC_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* ADMINISTRATOR_EXEC_BUILD_DLL */
+# define ADMINISTRATOR_EXEC_Export ACE_Proper_Import_Flag
+# define ADMINISTRATOR_EXEC_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define ADMINISTRATOR_EXEC_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* ADMINISTRATOR_EXEC_BUILD_DLL */
+#else /* ADMINISTRATOR_EXEC_HAS_DLL == 1 */
+# define ADMINISTRATOR_EXEC_Export
+# define ADMINISTRATOR_EXEC_SINGLETON_DECLARATION(T)
+# define ADMINISTRATOR_EXEC_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* ADMINISTRATOR_EXEC_HAS_DLL == 1 */
+
+// Set ADMINISTRATOR_EXEC_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (ADMINISTRATOR_EXEC_NTRACE)
+# if (ACE_NTRACE == 1)
+# define ADMINISTRATOR_EXEC_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define ADMINISTRATOR_EXEC_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !ADMINISTRATOR_EXEC_NTRACE */
+
+#if (ADMINISTRATOR_EXEC_NTRACE == 1)
+# define ADMINISTRATOR_EXEC_TRACE(X)
+#else /* (ADMINISTRATOR_EXEC_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define ADMINISTRATOR_EXEC_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (ADMINISTRATOR_EXEC_NTRACE == 1) */
+
+#endif /* ADMINISTRATOR_EXEC_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator_exec_i.cpp b/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator_exec_i.cpp
new file mode 100644
index 00000000000..84af7a536da
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator_exec_i.cpp
@@ -0,0 +1,260 @@
+// $Id$
+//
+// **** Code generated by the ****
+// **** Component Integrated ACE ORB (CIAO) CIDL Compiler ****
+// CIAO has been developed by:
+// Center for Distributed Object Computing
+// Washington University
+// St. Louis, MO
+// USA
+// http://www.cs.wustl.edu/~schmidt/doc-center.html
+// CIDL Compiler has been developed by:
+// Institute for Software Integrated Systems
+// Vanderbilt University
+// Nashville, TN
+// USA
+// http://www.isis.vanderbilt.edu/
+//
+// Information about CIAO is available at:
+// http://www.dre.vanderbilt.edu/CIAO
+
+#include "Administrator_exec_i.h"
+#include "ciao/CIAO_common.h"
+
+// MY CODE
+#include <iostream>
+#include <string>
+
+namespace CIDL_Administrator_Impl
+{
+ //==================================================================
+ // Component Executor Implementation Class: Administrator_exec_i
+ //==================================================================
+
+ Administrator_exec_i::Administrator_exec_i (void)
+ {
+ }
+
+ Administrator_exec_i::~Administrator_exec_i (void)
+ {
+ }
+
+ // Supported or inherited operations.
+
+ // Attribute operations.
+
+ // Port operations.
+
+ // Operations from Components::SessionComponent
+
+ void
+ Administrator_exec_i::set_session_context (
+ ::Components::SessionContext_ptr ctx)
+ {
+ this->context_ =
+ ::CCM_Administrator_Context::_narrow (ctx);
+
+ if (CORBA::is_nil (this->context_.in ()))
+ {
+ throw ::CORBA::INTERNAL ();
+ }
+ }
+
+ void
+ Administrator_exec_i::ccm_activate ()
+ {
+ // Your code here.
+
+ // MY CODE
+ ACE_DEBUG((LM_INFO, ACE_TEXT("ccm_activate\n" )));
+
+ // Activate the Task
+ this->activate();
+ }
+
+ void
+ Administrator_exec_i::ccm_passivate ()
+ {
+ // Your code here.
+
+ // MY CODE
+ ACE_DEBUG((LM_INFO, ACE_TEXT("ccm_passivate\n" )));
+ }
+
+ void
+ Administrator_exec_i::ccm_remove ()
+ {
+ // Your code here.
+ ACE_DEBUG((LM_INFO, ACE_TEXT("ccm_remove\n")));
+ }
+
+ void
+ Administrator_exec_i::configuration_complete (void)
+ {
+ ACE_DEBUG ((LM_INFO, ACE_TEXT("configuration_complete\n")));
+ }
+
+ // Overridden from ACE_Task_Base
+ int
+ Administrator_exec_i::svc()
+ {
+ enum SelectionType { START=1, STOP, CHANGE_PERIOD, CHANGE_TEXT,EXIT };
+
+ bool done = false;
+ do {
+ std::cout << "\nWhat do you want to do to the Messenger(s)?" << std::endl;
+ std::cout << START << ". Start" << std::endl;
+ std::cout << STOP << ". Stop" << std::endl;
+ std::cout << CHANGE_PERIOD << ". Change Publication Period" << std::endl;
+ std::cout << CHANGE_TEXT << ". Change Publication Text" << std::endl;
+ std::cout << EXIT << ". Exit" << std::endl;
+
+ char selection_text[10];
+ std::cout << "Please enter a selection: ";
+ std::cin.getline( selection_text, sizeof(selection_text) );
+ int selection = ACE_OS::atoi(selection_text);
+
+ switch (selection) {
+ case START:
+ startPublishing();
+ break;
+ case STOP:
+ stopPublishing();
+ break;
+ case CHANGE_PERIOD:
+ changePublicationPeriod();
+ break;
+ case CHANGE_TEXT:
+ changePublicationText();
+ break;
+ case EXIT: {
+ done = true;
+ break;
+ }
+ default:
+ std::cout << "Please enter a valid option" << std::endl;
+ }
+ } while ( !done );
+
+ return 0;
+ }
+
+ void Administrator_exec_i::startPublishing()
+ {
+ // Get the attached Runnable facet(s)
+ ::Administrator::runnablesConnections_var connections =
+ this->context_->get_connections_runnables();
+
+ std::cout << "Starting Publication" << std::endl;
+ for ( CORBA::ULong i = 0; i < connections->length(); ++i ) {
+ Runnable_var runnable = (*connections)[i].objref;
+ runnable->start();
+ }
+ }
+
+ void Administrator_exec_i::stopPublishing()
+ {
+ // Get the attached Runnable facet(s)
+ ::Administrator::runnablesConnections_var connections =
+ this->context_->get_connections_runnables();
+
+ std::cout << "Stopping Publication" << std::endl;
+ for ( CORBA::ULong i = 0; i < connections->length(); ++i ) {
+ Runnable_var runnable = (*connections)[i].objref;
+ runnable->stop();
+ }
+ }
+
+ void Administrator_exec_i::changePublicationPeriod()
+ {
+ // Get the attached Publication facet(s)
+ ::Administrator::contentConnections_var contents =
+ this->context_->get_connections_content();
+
+ char period[10];
+ std::cout << "Please enter a new period in seconds: ";
+ std::cin.getline( period, sizeof( period ) );
+ for ( CORBA::ULong i = 0; i < contents->length(); ++i ) {
+ Publication_var publication = (*contents)[i].objref;
+ publication->period( ACE_OS::atoi(period) );
+ }
+ }
+
+ void Administrator_exec_i::changePublicationText()
+ {
+ // Get the attached Publication facet(s)
+ ::Administrator::contentConnections_var contents =
+ this->context_->get_connections_content();
+
+ char buffer[1024];
+ std::cout << "Please enter new text: ";
+ std::cin.getline( buffer, sizeof(buffer) );
+ for ( CORBA::ULong i = 0; i < contents->length(); ++i ) {
+ Publication_var publication = (*contents)[i].objref;
+ publication->text( buffer );
+ }
+ }
+
+ extern "C" ADMINISTRATOR_EXEC_Export ::Components::EnterpriseComponent_ptr
+ create_Administrator_Impl (void)
+ {
+ ::Components::EnterpriseComponent_ptr retval =
+ ::Components::EnterpriseComponent::_nil ();
+
+ ACE_NEW_RETURN (retval,
+ Administrator_exec_i,
+ ::Components::EnterpriseComponent::_nil ());
+
+ return retval;
+ }
+
+ //==================================================================
+ // Home Executor Implementation Class: AdministratorHome_exec_i
+ //==================================================================
+
+ AdministratorHome_exec_i::AdministratorHome_exec_i (void)
+ {
+ }
+
+ AdministratorHome_exec_i::~AdministratorHome_exec_i (void)
+ {
+ }
+
+ // Supported or inherited operations.
+
+ // Home operations.
+
+ // Factory and finder operations.
+
+ // Attribute operations.
+
+ // Implicit operations.
+
+ ::Components::EnterpriseComponent_ptr
+ AdministratorHome_exec_i::create ()
+ {
+ ::Components::EnterpriseComponent_ptr retval =
+ ::Components::EnterpriseComponent::_nil ();
+
+ ACE_NEW_THROW_EX (
+ retval,
+ Administrator_exec_i,
+ ::CORBA::NO_MEMORY ());
+
+ return retval;
+ }
+
+ extern "C" ADMINISTRATOR_EXEC_Export ::Components::HomeExecutorBase_ptr
+ create_AdministratorHome_Impl (void)
+ {
+ ::Components::HomeExecutorBase_ptr retval =
+ ::Components::HomeExecutorBase::_nil ();
+
+ ACE_NEW_RETURN (
+ retval,
+ AdministratorHome_exec_i,
+ ::Components::HomeExecutorBase::_nil ());
+
+ return retval;
+ }
+}
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator_exec_i.h b/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator_exec_i.h
new file mode 100644
index 00000000000..405202583c7
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator_exec_i.h
@@ -0,0 +1,112 @@
+// $Id$
+//
+// **** Code generated by the ****
+// **** Component Integrated ACE ORB (CIAO) CIDL Compiler ****
+// CIAO has been developed by:
+// Center for Distributed Object Computing
+// Washington University
+// St. Louis, MO
+// USA
+// http://www.cs.wustl.edu/~schmidt/doc-center.html
+// CIDL Compiler has been developed by:
+// Institute for Software Integrated Systems
+// Vanderbilt University
+// Nashville, TN
+// USA
+// http://www.isis.vanderbilt.edu/
+//
+// Information about CIAO is available at:
+// http://www.dre.vanderbilt.edu/CIAO
+
+#ifndef CIAO_ADMINISTRATOR_EXEC_H
+#define CIAO_ADMINISTRATOR_EXEC_H
+
+#include /**/ "ace/pre.h"
+
+#include "AdministratorEC.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "Administrator_exec_export.h"
+#include "tao/LocalObject.h"
+
+#include "ace/Task.h"
+
+namespace CIDL_Administrator_Impl
+{
+ class ADMINISTRATOR_EXEC_Export Administrator_exec_i
+ : public virtual Administrator_Exec,
+ public virtual ::CORBA::LocalObject,
+ public virtual ACE_Task_Base
+ {
+ public:
+ Administrator_exec_i (void);
+ virtual ~Administrator_exec_i (void);
+
+ // Supported or inherited operations.
+
+ // Attribute operations.
+
+ // Port operations.
+
+ // Operations from Components::SessionComponent
+
+ virtual void
+ set_session_context (
+ ::Components::SessionContext_ptr ctx);
+
+ virtual void configuration_complete (void);
+
+ virtual void ccm_activate ();
+
+ virtual void ccm_passivate ();
+
+ virtual void ccm_remove ();
+
+ // Overridden from ACE_Task_Base
+ int svc();
+
+ private:
+
+ void startPublishing();
+ void stopPublishing();
+ void changePublicationPeriod();
+ void changePublicationText();
+
+ ::CCM_Administrator_Context_var context_;
+ };
+
+ extern "C" ADMINISTRATOR_EXEC_Export ::Components::EnterpriseComponent_ptr
+ create_Administrator_Impl (void);
+
+ class ADMINISTRATOR_EXEC_Export AdministratorHome_exec_i
+ : public virtual AdministratorHome_Exec,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ AdministratorHome_exec_i (void);
+ virtual ~AdministratorHome_exec_i (void);
+
+ // Supported or inherited operations.
+
+ // Home operations.
+
+ // Factory and finder operations.
+
+ // Attribute operations.
+
+ // Implicit operations.
+
+ virtual ::Components::EnterpriseComponent_ptr
+ create ();
+ };
+
+ extern "C" ADMINISTRATOR_EXEC_Export ::Components::HomeExecutorBase_ptr
+ create_AdministratorHome_Impl (void);
+}
+
+#include /**/ "ace/post.h"
+
+#endif /* CIAO_ADMINISTRATOR_EXEC_H */
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator_stub_export.h b/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator_stub_export.h
new file mode 100644
index 00000000000..22b4ec62ce4
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator_stub_export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl ADMINISTRATOR_STUB
+// ------------------------------
+#ifndef ADMINISTRATOR_STUB_EXPORT_H
+#define ADMINISTRATOR_STUB_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (ADMINISTRATOR_STUB_HAS_DLL)
+# define ADMINISTRATOR_STUB_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && ADMINISTRATOR_STUB_HAS_DLL */
+
+#if !defined (ADMINISTRATOR_STUB_HAS_DLL)
+# define ADMINISTRATOR_STUB_HAS_DLL 1
+#endif /* ! ADMINISTRATOR_STUB_HAS_DLL */
+
+#if defined (ADMINISTRATOR_STUB_HAS_DLL) && (ADMINISTRATOR_STUB_HAS_DLL == 1)
+# if defined (ADMINISTRATOR_STUB_BUILD_DLL)
+# define ADMINISTRATOR_STUB_Export ACE_Proper_Export_Flag
+# define ADMINISTRATOR_STUB_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define ADMINISTRATOR_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* ADMINISTRATOR_STUB_BUILD_DLL */
+# define ADMINISTRATOR_STUB_Export ACE_Proper_Import_Flag
+# define ADMINISTRATOR_STUB_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define ADMINISTRATOR_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* ADMINISTRATOR_STUB_BUILD_DLL */
+#else /* ADMINISTRATOR_STUB_HAS_DLL == 1 */
+# define ADMINISTRATOR_STUB_Export
+# define ADMINISTRATOR_STUB_SINGLETON_DECLARATION(T)
+# define ADMINISTRATOR_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* ADMINISTRATOR_STUB_HAS_DLL == 1 */
+
+// Set ADMINISTRATOR_STUB_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (ADMINISTRATOR_STUB_NTRACE)
+# if (ACE_NTRACE == 1)
+# define ADMINISTRATOR_STUB_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define ADMINISTRATOR_STUB_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !ADMINISTRATOR_STUB_NTRACE */
+
+#if (ADMINISTRATOR_STUB_NTRACE == 1)
+# define ADMINISTRATOR_STUB_TRACE(X)
+#else /* (ADMINISTRATOR_STUB_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define ADMINISTRATOR_STUB_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (ADMINISTRATOR_STUB_NTRACE == 1) */
+
+#endif /* ADMINISTRATOR_STUB_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator_svnt_export.h b/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator_svnt_export.h
new file mode 100644
index 00000000000..6c79eef8299
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator_svnt_export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl ADMINISTRATOR_SVNT
+// ------------------------------
+#ifndef ADMINISTRATOR_SVNT_EXPORT_H
+#define ADMINISTRATOR_SVNT_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (ADMINISTRATOR_SVNT_HAS_DLL)
+# define ADMINISTRATOR_SVNT_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && ADMINISTRATOR_SVNT_HAS_DLL */
+
+#if !defined (ADMINISTRATOR_SVNT_HAS_DLL)
+# define ADMINISTRATOR_SVNT_HAS_DLL 1
+#endif /* ! ADMINISTRATOR_SVNT_HAS_DLL */
+
+#if defined (ADMINISTRATOR_SVNT_HAS_DLL) && (ADMINISTRATOR_SVNT_HAS_DLL == 1)
+# if defined (ADMINISTRATOR_SVNT_BUILD_DLL)
+# define ADMINISTRATOR_SVNT_Export ACE_Proper_Export_Flag
+# define ADMINISTRATOR_SVNT_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define ADMINISTRATOR_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* ADMINISTRATOR_SVNT_BUILD_DLL */
+# define ADMINISTRATOR_SVNT_Export ACE_Proper_Import_Flag
+# define ADMINISTRATOR_SVNT_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define ADMINISTRATOR_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* ADMINISTRATOR_SVNT_BUILD_DLL */
+#else /* ADMINISTRATOR_SVNT_HAS_DLL == 1 */
+# define ADMINISTRATOR_SVNT_Export
+# define ADMINISTRATOR_SVNT_SINGLETON_DECLARATION(T)
+# define ADMINISTRATOR_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* ADMINISTRATOR_SVNT_HAS_DLL == 1 */
+
+// Set ADMINISTRATOR_SVNT_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (ADMINISTRATOR_SVNT_NTRACE)
+# if (ACE_NTRACE == 1)
+# define ADMINISTRATOR_SVNT_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define ADMINISTRATOR_SVNT_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !ADMINISTRATOR_SVNT_NTRACE */
+
+#if (ADMINISTRATOR_SVNT_NTRACE == 1)
+# define ADMINISTRATOR_SVNT_TRACE(X)
+#else /* (ADMINISTRATOR_SVNT_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define ADMINISTRATOR_SVNT_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (ADMINISTRATOR_SVNT_NTRACE == 1) */
+
+#endif /* ADMINISTRATOR_SVNT_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/History.idl b/modules/CIAO/examples/DevGuideExamples/Messenger/History.idl
new file mode 100644
index 00000000000..c83cadf03bb
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/History.idl
@@ -0,0 +1,19 @@
+// $Id$
+
+/**
+ * @file History.idl
+ *
+ * @author Don Busch <busch_d@ociweb.com>
+ */
+
+#ifndef HISTORY_IDL
+#define HISTORY_IDL
+
+#include "Message.idl"
+
+interface History {
+ Messages get_all();
+ Message get_latest();
+};
+
+#endif
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/History_exec_i.cpp b/modules/CIAO/examples/DevGuideExamples/Messenger/History_exec_i.cpp
new file mode 100644
index 00000000000..7689075fccb
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/History_exec_i.cpp
@@ -0,0 +1,96 @@
+// $Id$
+//
+// **** Code generated by the ****
+// **** Component Integrated ACE ORB (CIAO) CIDL Compiler ****
+// CIAO has been developed by:
+// Center for Distributed Object Computing
+// Washington University
+// St. Louis, MO
+// USA
+// http://www.cs.wustl.edu/~schmidt/doc-center.html
+// CIDL Compiler has been developed by:
+// Institute for Software Integrated Systems
+// Vanderbilt University
+// Nashville, TN
+// USA
+// http://www.isis.vanderbilt.edu/
+//
+// Information about CIAO is available at:
+// http://www.dre.vanderbilt.edu/CIAO
+
+#include "History_exec_i.h"
+#include "ciao/CIAO_common.h"
+
+namespace CIDL_Messenger_Impl
+{
+ //==================================================================
+ // Facet Executor Implementation Class: History_exec_i
+ //==================================================================
+
+ History_exec_i::History_exec_i (void)
+ {
+ }
+
+ History_exec_i::~History_exec_i (void)
+ {
+ }
+
+ // Operations from ::History
+
+ ::Messages *
+ History_exec_i::get_all ()
+ {
+ // Your code here.
+
+ // MY CODE
+ ACE_Guard<TAO_SYNCH_MUTEX> guard(this->lock_);
+
+ ACE_DEBUG((LM_INFO, ACE_TEXT("History_i::get_all\n") ));
+
+ // create a Messages sequence, set its length
+ ::Messages* retval = new ::Messages();
+ retval->length( this->messages_.size() );
+
+ // iterate through the MessageList, copying messages into the return sequence
+ CORBA::ULong i = 0;
+ for ( MessageList::iterator messageItr = this->messages_.begin();
+ messageItr != this->messages_.end();
+ ++messageItr )
+ {
+ // because the MessageList contains Message_vars, reference counting
+ // upon assignment into the sequence is handled properly for us.
+ (*retval)[i++] = *messageItr;
+ }
+ return retval;
+ }
+
+ ::Message *
+ History_exec_i::get_latest ()
+ {
+ // Your code here.
+
+ // MY CODE
+ ACE_Guard<TAO_SYNCH_MUTEX> guard(this->lock_);
+
+ ACE_DEBUG((LM_INFO, ACE_TEXT("History_i::get_latest\n") ));
+
+ // just get the last message from the history. because the MessageList
+ // contains Message_vars, _var to _var assigmnent handles the reference
+ // counting properly for us.
+ ::Message_var retval = this->messages_.back();
+ return retval._retn();
+ }
+
+ // MY CODE
+ void
+ History_exec_i::add( ::Message* message )
+ {
+ ACE_Guard<TAO_SYNCH_MUTEX> guard(lock_);
+
+ // bump up the reference count; we don't own it.
+ // the _var in the STL list takes ownership of the "copy"
+ message->_add_ref();
+ this->messages_.push_back( message );
+ }
+}
+
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/History_exec_i.h b/modules/CIAO/examples/DevGuideExamples/Messenger/History_exec_i.h
new file mode 100644
index 00000000000..6594ebb2505
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/History_exec_i.h
@@ -0,0 +1,70 @@
+// $Id$
+//
+// **** Code generated by the ****
+// **** Component Integrated ACE ORB (CIAO) CIDL Compiler ****
+// CIAO has been developed by:
+// Center for Distributed Object Computing
+// Washington University
+// St. Louis, MO
+// USA
+// http://www.cs.wustl.edu/~schmidt/doc-center.html
+// CIDL Compiler has been developed by:
+// Institute for Software Integrated Systems
+// Vanderbilt University
+// Nashville, TN
+// USA
+// http://www.isis.vanderbilt.edu/
+//
+// Information about CIAO is available at:
+// http://www.dre.vanderbilt.edu/CIAO
+
+#ifndef CIAO_HISTORY_EXEC_H
+#define CIAO_HISTORY_EXEC_H
+
+#include /**/ "ace/pre.h"
+
+#include "MessengerEC.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "Messenger_exec_export.h"
+#include "tao/LocalObject.h"
+
+// MY CODE
+#include <list>
+#include "ace/Thread_Mutex.h"
+
+namespace CIDL_Messenger_Impl
+{
+ class MESSENGER_EXEC_Export History_exec_i
+ : public virtual ::CCM_History,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ History_exec_i (void);
+ virtual ~History_exec_i (void);
+
+ // Operations from ::History
+
+ virtual ::Messages *get_all ();
+
+ virtual ::Message *get_latest ();
+
+ // MY CODE
+
+ void add( ::Message* message);
+
+ private:
+ TAO_SYNCH_MUTEX lock_;
+
+ typedef std::list< ::Message_var> MessageList;
+ MessageList messages_;
+ };
+}
+
+#include /**/ "ace/post.h"
+
+#endif /* CIAO_HISTORY_EXEC_H */
+
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/Message.idl b/modules/CIAO/examples/DevGuideExamples/Messenger/Message.idl
new file mode 100644
index 00000000000..2e3aee687b0
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/Message.idl
@@ -0,0 +1,21 @@
+// $Id$
+
+/**
+ * @file Message.idl
+ *
+ * @author Don Busch <busch_d@ociweb.com>
+ */
+
+#ifndef MESSAGE_IDL
+#define MESSAGE_IDL
+
+#include <Components.idl>
+
+eventtype Message {
+ public string subject;
+ public string user;
+ public string text;
+};
+typedef sequence<Message> Messages;
+
+#endif
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/Messenger.cidl b/modules/CIAO/examples/DevGuideExamples/Messenger/Messenger.cidl
new file mode 100644
index 00000000000..08559aafe0e
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/Messenger.cidl
@@ -0,0 +1,24 @@
+// $Id$
+
+/**
+ * @file Messenger.cidl
+ *
+ * @author Don Busch <busch_d@ociweb.com>
+ */
+
+#ifndef MESSENGER_CIDL
+#define MESSENGER_CIDL
+
+#include "Messenger.idl"
+
+composition session Messenger_Impl
+{
+ home executor MessengerHome_Exec
+ {
+ implements MessengerHome;
+ manages Messenger_Exec;
+ };
+};
+
+#endif
+
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/Messenger.idl b/modules/CIAO/examples/DevGuideExamples/Messenger/Messenger.idl
new file mode 100644
index 00000000000..518dcfee754
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/Messenger.idl
@@ -0,0 +1,30 @@
+// $Id$
+
+/**
+ * @file Messenger.idl
+ *
+ * @author Don Busch <busch_d@ociweb.com>
+ */
+
+#ifndef MESSENGER_IDL
+#define MESSENGER_IDL
+
+#include <Components.idl>
+#include "Runnable.idl"
+#include "Publication.idl"
+#include "Message.idl"
+#include "History.idl"
+
+component Messenger {
+ attribute string subject;
+
+ provides Runnable control;
+ provides Publication content;
+
+ publishes Message message_publisher;
+ provides History message_history;
+};
+
+home MessengerHome manages Messenger {};
+
+#endif
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/Messenger.mpc b/modules/CIAO/examples/DevGuideExamples/Messenger/Messenger.mpc
new file mode 100644
index 00000000000..5c3023be9e2
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/Messenger.mpc
@@ -0,0 +1,146 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl Messenger"
+
+project(Messenger_idl_gen) : ciaoidldefaults, anytypecode, avoids_ace_for_tao {
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=MESSENGER_STUB_Export \
+ -Wb,stub_export_include=Messenger_stub_export.h \
+ -Wb,skel_export_macro=MESSENGER_SVNT_Export \
+ -Wb,skel_export_include=Messenger_svnt_export.h
+
+ IDL_Files {
+ Runnable.idl
+ Publication.idl
+ Message.idl
+ History.idl
+ Messenger.idl
+ }
+}
+
+project(Messenger_cidl_gen) : ciaocidldefaults, ciaoidldefaults, avoids_ace_for_tao {
+ custom_only = 1
+ cidlflags += --svnt-export-macro MESSENGER_SVNT_Export \
+ --svnt-export-include Messenger_svnt_export.h
+ idlflags += -Wb,export_macro=MESSENGER_EXEC_Export \
+ -Wb,export_include=Messenger_exec_export.h \
+ -SS
+
+ CIDL_Files {
+ Messenger.cidl
+ }
+
+ IDL_Files {
+ MessengerE.idl
+ }
+}
+
+project(Messenger_stub) : ccm_stub, avoids_ace_for_tao {
+ after += Messenger_idl_gen
+
+ sharedname = Messenger_stub
+ dynamicflags = MESSENGER_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ RunnableC.cpp
+ PublicationC.cpp
+ MessageC.cpp
+ HistoryC.cpp
+ MessengerC.cpp
+ }
+
+ Header_Files {
+ RunnableC.h
+ PublicationC.h
+ MessageC.h
+ HistoryC.h
+ MessengerC.h
+ Messenger_stub_export.h
+ }
+
+ Inline_Files {
+ RunnableC.inl
+ PublicationC.inl
+ MessageC.inl
+ HistoryC.inl
+ MessengerC.inl
+ }
+}
+
+project(Messenger_exec) : ciao_executor, avoids_ace_for_tao {
+ after += Messenger_cidl_gen Messenger_stub
+ sharedname = Messenger_exec
+ libs += Messenger_stub
+
+ dynamicflags = MESSENGER_EXEC_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ MessengerEC.cpp
+ Messenger_exec_i.cpp
+ Publication_exec_i.cpp
+ History_exec_i.cpp
+ Runnable_exec_i.cpp
+ }
+
+ Header_Files {
+ MessengerEC.h
+ Messenger_exec_i.h
+ Publication_exec_i.h
+ History_exec_i.h
+ Runnable_exec_i.h
+ Messenger_exec_export.h
+ }
+
+ Inline_Files {
+ MessengerEC.inl
+ }
+}
+
+project(Messenger_svnt) : ciao_servant, avoids_ace_for_tao {
+ after += Messenger_exec
+ sharedname = Messenger_svnt
+ libs += Messenger_exec \
+ Messenger_stub
+
+ dynamicflags = MESSENGER_SVNT_BUILD_DLL
+
+ CIDL_Files {
+ }
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ RunnableS.cpp
+ PublicationS.cpp
+ MessageS.cpp
+ HistoryS.cpp
+ MessengerS.cpp
+ Messenger_svnt.cpp
+ }
+
+ Header_Files {
+ RunnableS.h
+ PublicationS.h
+ MessageS.h
+ HistoryS.h
+ MessengerS.h
+ Messenger_svnt.h
+ Messenger_svnt_export.h
+ }
+
+ Inline_Files {
+ RunnableS.inl
+ PublicationS.inl
+ MessageS.inl
+ HistoryS.inl
+ MessengerS.inl
+ }
+}
+
+
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/Messenger_exec_export.h b/modules/CIAO/examples/DevGuideExamples/Messenger/Messenger_exec_export.h
new file mode 100644
index 00000000000..7aa56acc1c9
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/Messenger_exec_export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl MESSENGER_EXEC
+// ------------------------------
+#ifndef MESSENGER_EXEC_EXPORT_H
+#define MESSENGER_EXEC_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (MESSENGER_EXEC_HAS_DLL)
+# define MESSENGER_EXEC_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && MESSENGER_EXEC_HAS_DLL */
+
+#if !defined (MESSENGER_EXEC_HAS_DLL)
+# define MESSENGER_EXEC_HAS_DLL 1
+#endif /* ! MESSENGER_EXEC_HAS_DLL */
+
+#if defined (MESSENGER_EXEC_HAS_DLL) && (MESSENGER_EXEC_HAS_DLL == 1)
+# if defined (MESSENGER_EXEC_BUILD_DLL)
+# define MESSENGER_EXEC_Export ACE_Proper_Export_Flag
+# define MESSENGER_EXEC_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define MESSENGER_EXEC_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* MESSENGER_EXEC_BUILD_DLL */
+# define MESSENGER_EXEC_Export ACE_Proper_Import_Flag
+# define MESSENGER_EXEC_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define MESSENGER_EXEC_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* MESSENGER_EXEC_BUILD_DLL */
+#else /* MESSENGER_EXEC_HAS_DLL == 1 */
+# define MESSENGER_EXEC_Export
+# define MESSENGER_EXEC_SINGLETON_DECLARATION(T)
+# define MESSENGER_EXEC_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* MESSENGER_EXEC_HAS_DLL == 1 */
+
+// Set MESSENGER_EXEC_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (MESSENGER_EXEC_NTRACE)
+# if (ACE_NTRACE == 1)
+# define MESSENGER_EXEC_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define MESSENGER_EXEC_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !MESSENGER_EXEC_NTRACE */
+
+#if (MESSENGER_EXEC_NTRACE == 1)
+# define MESSENGER_EXEC_TRACE(X)
+#else /* (MESSENGER_EXEC_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define MESSENGER_EXEC_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (MESSENGER_EXEC_NTRACE == 1) */
+
+#endif /* MESSENGER_EXEC_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/Messenger_exec_i.cpp b/modules/CIAO/examples/DevGuideExamples/Messenger/Messenger_exec_i.cpp
new file mode 100644
index 00000000000..b38d0fd383e
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/Messenger_exec_i.cpp
@@ -0,0 +1,254 @@
+// $Id$
+//
+// **** Code generated by the ****
+// **** Component Integrated ACE ORB (CIAO) CIDL Compiler ****
+// CIAO has been developed by:
+// Center for Distributed Object Computing
+// Washington University
+// St. Louis, MO
+// USA
+// http://www.cs.wustl.edu/~schmidt/doc-center.html
+// CIDL Compiler has been developed by:
+// Institute for Software Integrated Systems
+// Vanderbilt University
+// Nashville, TN
+// USA
+// http://www.isis.vanderbilt.edu/
+//
+// Information about CIAO is available at:
+// http://www.dre.vanderbilt.edu/CIAO
+
+#include "Messenger_exec_i.h"
+#include "ciao/CIAO_common.h"
+
+// MY CODE
+#include "ace/OS.h"
+#include "History_exec_i.h"
+#include "Runnable_exec_i.h"
+#include "Publication_exec_i.h"
+
+namespace CIDL_Messenger_Impl
+{
+ //==================================================================
+ // Component Executor Implementation Class: Messenger_exec_i
+ //==================================================================
+
+ Messenger_exec_i::Messenger_exec_i ()
+ : subject_( "Test Subject" ),
+ user_( "ciao_user" )
+ {
+ this->control_ = new Runnable_exec_i();
+ this->history_ = new History_exec_i();
+ this->content_ = new Publication_exec_i(
+ "The quick brown fox jumped over the lazy dog",
+ 2 );
+ }
+
+ Messenger_exec_i::~Messenger_exec_i (void)
+ {
+ this->control_->_remove_ref();
+ this->history_->_remove_ref();
+ this->content_->_remove_ref();
+ }
+
+ // MY CODE
+ int Messenger_exec_i::svc() {
+
+ ACE_DEBUG((LM_INFO, ACE_TEXT("svc()\n")));
+
+ while (1)
+ {
+ ACE_OS::sleep( this->content_->period() );
+
+ // get the run_lock from the Runnable executor; we have an
+ // agreement with the Runnable executor that we must posess the
+ // run_lock to publish
+ ACE_Guard<TAO_SYNCH_MUTEX> guard( this->control_->get_run_lock() );
+
+ // create a message to publish
+ ::Message_var msg = new ::OBV_Message();
+ msg->subject( this->subject() );
+ msg->text( this->content_->text() );
+ msg->user( CORBA::string_dup( this->user_.c_str() ) );
+
+ // add the message to the message history
+ this->history_->add( msg.in() );
+
+ ACE_DEBUG((LM_INFO, ACE_TEXT("Messenger_exec_i::svc: publishing message\n") ));
+
+ // publish to all interested consumers
+ this->context_->push_message_publisher( msg.in() );
+
+ ACE_DEBUG((LM_INFO,
+ ACE_TEXT("Published Message on subject %s\n User %s\n Text %s\n"),
+ msg->subject(),
+ msg->user(),
+ msg->text() ));
+ }
+
+ ACE_DEBUG((LM_INFO, ACE_TEXT("svc(): Gracefully stopping publication\n")));
+ return 0;
+ }
+
+ // Supported or inherited operations.
+
+ // Attribute operations.
+
+ char*
+ Messenger_exec_i::subject ()
+ {
+ return CORBA::string_dup( this->subject_.c_str() );
+ }
+
+ void
+ Messenger_exec_i::subject ( const char* subject)
+ {
+ this->subject_ = CORBA::string_dup( subject );
+ }
+
+ // Port operations.
+
+ ::CCM_Runnable_ptr
+ Messenger_exec_i::get_control ()
+ {
+ // Your code here.
+
+ // MY CODE
+
+ // bump up ref count because we give up ownership when we return this
+ this->control_->_add_ref();
+ return this->control_;
+ }
+
+ ::CCM_Publication_ptr
+ Messenger_exec_i::get_content ()
+ {
+ // Your code here.
+
+ // MY CODE
+
+ // bump up ref count because we give up ownership when we return this
+ this->content_->_add_ref();
+ return this->content_;
+ }
+
+ ::CCM_History_ptr
+ Messenger_exec_i::get_message_history ()
+ {
+ // Your code here.
+
+ // MY CODE
+
+ // bump up ref count because we give up ownership when we return this
+ this->history_->_add_ref();
+ return this->history_;
+ }
+
+ // Operations from Components::SessionComponent
+
+ void
+ Messenger_exec_i::set_session_context (
+ ::Components::SessionContext_ptr ctx)
+ {
+ this->context_ =
+ ::CCM_Messenger_Context::_narrow (ctx);
+
+ if (CORBA::is_nil (this->context_.in ()))
+ {
+ throw ::CORBA::INTERNAL ();
+ }
+ }
+
+ void
+ Messenger_exec_i::configuration_complete ()
+ {
+ /* Your code here. */
+ }
+
+ void
+ Messenger_exec_i::ccm_activate ()
+ {
+ /* Your code here. */
+ ACE_DEBUG((LM_INFO, ACE_TEXT("Messenger_exec_i::ccm_activate\n")));
+ this->activate();
+ }
+
+ void
+ Messenger_exec_i::ccm_passivate ()
+ {
+ /* Your code here. */
+ ACE_DEBUG((LM_INFO, ACE_TEXT("Messenger_exec_i::ccm_passivate\n")));
+ }
+
+ void
+ Messenger_exec_i::ccm_remove ()
+ {
+ /* Your code here. */
+ ACE_DEBUG((LM_INFO, ACE_TEXT("Messenger_exec_i::ccm_remove\n")));
+ }
+
+
+ extern "C" MESSENGER_EXEC_Export ::Components::EnterpriseComponent_ptr
+ create_Messenger_Impl (void)
+ {
+ ::Components::EnterpriseComponent_ptr retval =
+ ::Components::EnterpriseComponent::_nil ();
+
+ ACE_NEW_RETURN (retval,
+ Messenger_exec_i,
+ ::Components::EnterpriseComponent::_nil ());
+
+ return retval;
+ }
+
+ //==================================================================
+ // Home Executor Implementation Class: MessengerHome_exec_i
+ //==================================================================
+
+ MessengerHome_exec_i::MessengerHome_exec_i (void)
+ {
+ }
+
+ MessengerHome_exec_i::~MessengerHome_exec_i (void)
+ {
+ }
+
+ // Supported or inherited operations.
+
+ // Home operations.
+
+ // Factory and finder operations.
+
+ // Attribute operations.
+
+ // Implicit operations.
+
+ ::Components::EnterpriseComponent_ptr
+ MessengerHome_exec_i::create ()
+ {
+ ::Components::EnterpriseComponent_ptr retval =
+ ::Components::EnterpriseComponent::_nil ();
+
+ ACE_NEW_THROW_EX (
+ retval,
+ Messenger_exec_i,
+ ::CORBA::NO_MEMORY ());
+
+ return retval;
+ }
+
+ extern "C" MESSENGER_EXEC_Export ::Components::HomeExecutorBase_ptr
+ create_MessengerHome_Impl (void)
+ {
+ ::Components::HomeExecutorBase_ptr retval =
+ ::Components::HomeExecutorBase::_nil ();
+
+ ACE_NEW_RETURN (
+ retval,
+ MessengerHome_exec_i,
+ ::Components::HomeExecutorBase::_nil ());
+
+ return retval;
+ }
+}
+
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/Messenger_exec_i.h b/modules/CIAO/examples/DevGuideExamples/Messenger/Messenger_exec_i.h
new file mode 100644
index 00000000000..0f9122ceafb
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/Messenger_exec_i.h
@@ -0,0 +1,129 @@
+// $Id$
+//
+// **** Code generated by the ****
+// **** Component Integrated ACE ORB (CIAO) CIDL Compiler ****
+// CIAO has been developed by:
+// Center for Distributed Object Computing
+// Washington University
+// St. Louis, MO
+// USA
+// http://www.cs.wustl.edu/~schmidt/doc-center.html
+// CIDL Compiler has been developed by:
+// Institute for Software Integrated Systems
+// Vanderbilt University
+// Nashville, TN
+// USA
+// http://www.isis.vanderbilt.edu/
+//
+// Information about CIAO is available at:
+// http://www.dre.vanderbilt.edu/CIAO
+
+#ifndef CIAO_MESSENGER_EXEC_H
+#define CIAO_MESSENGER_EXEC_H
+
+#include /**/ "ace/pre.h"
+
+#include "Messenger_svnt.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "Messenger_exec_export.h"
+#include "tao/LocalObject.h"
+
+// MY CODE
+#include <string>
+#include "ace/Task.h"
+
+namespace CIDL_Messenger_Impl
+{
+ class Runnable_exec_i;
+ class Publication_exec_i;
+ class History_exec_i;
+
+ class MESSENGER_EXEC_Export Messenger_exec_i
+ : public virtual Messenger_Exec,
+ public virtual ::CORBA::LocalObject,
+ public virtual ACE_Task_Base
+ {
+ public:
+ Messenger_exec_i (void);
+ virtual ~Messenger_exec_i (void);
+
+ // Supported or inherited operations.
+
+ // Attribute operations.
+
+ virtual char *subject ();
+
+ virtual void subject (const char * subject);
+
+ // Port operations.
+
+ virtual ::CCM_Runnable_ptr get_control ();
+
+ virtual ::CCM_Publication_ptr get_content ();
+
+ virtual ::CCM_History_ptr get_message_history ();
+
+ // Operations from Components::SessionComponent
+
+ virtual void set_session_context ( ::Components::SessionContext_ptr ctx);
+
+ virtual void configuration_complete (void);
+
+ virtual void ccm_activate ();
+
+ virtual void ccm_passivate ();
+
+ virtual void ccm_remove ();
+
+ // MY CODE
+ virtual int svc();
+
+ private:
+ ::CCM_Messenger_Context_var context_;
+
+ // MY CODE
+ Runnable_exec_i* control_;
+ Publication_exec_i* content_;
+ History_exec_i* history_;
+
+ std::string subject_;
+ const std::string user_;
+ };
+
+ extern "C" MESSENGER_EXEC_Export ::Components::EnterpriseComponent_ptr
+ create_Messenger_Impl (void);
+
+ class MESSENGER_EXEC_Export MessengerHome_exec_i
+ : public virtual MessengerHome_Exec,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ MessengerHome_exec_i (void);
+ virtual ~MessengerHome_exec_i (void);
+
+ // Supported or inherited operations.
+
+ // Home operations.
+
+ // Factory and finder operations.
+
+ // Attribute operations.
+
+ // Implicit operations.
+
+ virtual ::Components::EnterpriseComponent_ptr
+ create ();
+ };
+
+ extern "C" MESSENGER_EXEC_Export ::Components::HomeExecutorBase_ptr
+ create_MessengerHome_Impl (void);
+}
+
+#include /**/ "ace/post.h"
+
+#endif /* CIAO_MESSENGER_EXEC_H */
+
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/Messenger_stub_export.h b/modules/CIAO/examples/DevGuideExamples/Messenger/Messenger_stub_export.h
new file mode 100644
index 00000000000..7e4502b434f
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/Messenger_stub_export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl MESSENGER_STUB
+// ------------------------------
+#ifndef MESSENGER_STUB_EXPORT_H
+#define MESSENGER_STUB_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (MESSENGER_STUB_HAS_DLL)
+# define MESSENGER_STUB_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && MESSENGER_STUB_HAS_DLL */
+
+#if !defined (MESSENGER_STUB_HAS_DLL)
+# define MESSENGER_STUB_HAS_DLL 1
+#endif /* ! MESSENGER_STUB_HAS_DLL */
+
+#if defined (MESSENGER_STUB_HAS_DLL) && (MESSENGER_STUB_HAS_DLL == 1)
+# if defined (MESSENGER_STUB_BUILD_DLL)
+# define MESSENGER_STUB_Export ACE_Proper_Export_Flag
+# define MESSENGER_STUB_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define MESSENGER_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* MESSENGER_STUB_BUILD_DLL */
+# define MESSENGER_STUB_Export ACE_Proper_Import_Flag
+# define MESSENGER_STUB_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define MESSENGER_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* MESSENGER_STUB_BUILD_DLL */
+#else /* MESSENGER_STUB_HAS_DLL == 1 */
+# define MESSENGER_STUB_Export
+# define MESSENGER_STUB_SINGLETON_DECLARATION(T)
+# define MESSENGER_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* MESSENGER_STUB_HAS_DLL == 1 */
+
+// Set MESSENGER_STUB_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (MESSENGER_STUB_NTRACE)
+# if (ACE_NTRACE == 1)
+# define MESSENGER_STUB_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define MESSENGER_STUB_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !MESSENGER_STUB_NTRACE */
+
+#if (MESSENGER_STUB_NTRACE == 1)
+# define MESSENGER_STUB_TRACE(X)
+#else /* (MESSENGER_STUB_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define MESSENGER_STUB_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (MESSENGER_STUB_NTRACE == 1) */
+
+#endif /* MESSENGER_STUB_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/Messenger_svnt_export.h b/modules/CIAO/examples/DevGuideExamples/Messenger/Messenger_svnt_export.h
new file mode 100644
index 00000000000..088b1c1ccbc
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/Messenger_svnt_export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl MESSENGER_SVNT
+// ------------------------------
+#ifndef MESSENGER_SVNT_EXPORT_H
+#define MESSENGER_SVNT_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (MESSENGER_SVNT_HAS_DLL)
+# define MESSENGER_SVNT_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && MESSENGER_SVNT_HAS_DLL */
+
+#if !defined (MESSENGER_SVNT_HAS_DLL)
+# define MESSENGER_SVNT_HAS_DLL 1
+#endif /* ! MESSENGER_SVNT_HAS_DLL */
+
+#if defined (MESSENGER_SVNT_HAS_DLL) && (MESSENGER_SVNT_HAS_DLL == 1)
+# if defined (MESSENGER_SVNT_BUILD_DLL)
+# define MESSENGER_SVNT_Export ACE_Proper_Export_Flag
+# define MESSENGER_SVNT_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define MESSENGER_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* MESSENGER_SVNT_BUILD_DLL */
+# define MESSENGER_SVNT_Export ACE_Proper_Import_Flag
+# define MESSENGER_SVNT_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define MESSENGER_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* MESSENGER_SVNT_BUILD_DLL */
+#else /* MESSENGER_SVNT_HAS_DLL == 1 */
+# define MESSENGER_SVNT_Export
+# define MESSENGER_SVNT_SINGLETON_DECLARATION(T)
+# define MESSENGER_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* MESSENGER_SVNT_HAS_DLL == 1 */
+
+// Set MESSENGER_SVNT_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (MESSENGER_SVNT_NTRACE)
+# if (ACE_NTRACE == 1)
+# define MESSENGER_SVNT_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define MESSENGER_SVNT_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !MESSENGER_SVNT_NTRACE */
+
+#if (MESSENGER_SVNT_NTRACE == 1)
+# define MESSENGER_SVNT_TRACE(X)
+#else /* (MESSENGER_SVNT_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define MESSENGER_SVNT_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (MESSENGER_SVNT_NTRACE == 1) */
+
+#endif /* MESSENGER_SVNT_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/Publication.idl b/modules/CIAO/examples/DevGuideExamples/Messenger/Publication.idl
new file mode 100644
index 00000000000..43cf29228cc
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/Publication.idl
@@ -0,0 +1,17 @@
+// $Id$
+
+/**
+ * @file Publication.idl
+ *
+ * @author Don Busch <busch_d@ociweb.com>
+ */
+
+#ifndef PUBLICATION_IDL
+#define PUBLICATION_IDL
+
+interface Publication {
+ attribute string text;
+ attribute unsigned short period;
+};
+
+#endif
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/Publication_exec_i.cpp b/modules/CIAO/examples/DevGuideExamples/Messenger/Publication_exec_i.cpp
new file mode 100644
index 00000000000..d8ff6aaa794
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/Publication_exec_i.cpp
@@ -0,0 +1,82 @@
+// $Id$
+//
+// **** Code generated by the ****
+// **** Component Integrated ACE ORB (CIAO) CIDL Compiler ****
+// CIAO has been developed by:
+// Center for Distributed Object Computing
+// Washington University
+// St. Louis, MO
+// USA
+// http://www.cs.wustl.edu/~schmidt/doc-center.html
+// CIDL Compiler has been developed by:
+// Institute for Software Integrated Systems
+// Vanderbilt University
+// Nashville, TN
+// USA
+// http://www.isis.vanderbilt.edu/
+//
+// Information about CIAO is available at:
+// http://www.dre.vanderbilt.edu/CIAO
+
+#include "Publication_exec_i.h"
+#include "ciao/CIAO_common.h"
+
+namespace CIDL_Messenger_Impl
+{
+ //==================================================================
+ // Facet Executor Implementation Class: Publication_exec_i
+ //==================================================================
+
+ Publication_exec_i::Publication_exec_i (
+ const char* text, CORBA::UShort period)
+ : text_( text ),
+ period_( period)
+ {
+ }
+
+ Publication_exec_i::~Publication_exec_i (void)
+ {
+ }
+
+ // Operations from ::Publication
+
+ char*
+ Publication_exec_i::text ()
+ {
+ ACE_Guard<TAO_SYNCH_MUTEX> guard(this->lock_);
+
+ return CORBA::string_dup( this->text_.c_str() );
+ }
+
+ void
+ Publication_exec_i::text (
+ const char* text)
+ {
+ ACE_Guard<TAO_SYNCH_MUTEX> guard(this->lock_);
+
+ this->text_ = text;
+ ACE_DEBUG((LM_INFO, ACE_TEXT("publication text changed to %C\n"), text ));
+ }
+
+ CORBA::UShort
+ Publication_exec_i::period ()
+ {
+ ACE_Guard<TAO_SYNCH_MUTEX> guard(this->lock_);
+
+ return this->period_;
+ }
+
+ void
+ Publication_exec_i::period (CORBA::UShort period)
+ {
+ ACE_Guard<TAO_SYNCH_MUTEX> guard( this->lock_ );
+
+ if ( period > 0 ) {
+ this->period_ = period;
+ ACE_DEBUG((LM_INFO, ACE_TEXT("publication period changed to %d seconds\n"), period ));
+ } else {
+ ACE_DEBUG((LM_INFO, ACE_TEXT("ignoring a negative period of %d\n"), period ));
+ }
+ }
+}
+
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/Publication_exec_i.h b/modules/CIAO/examples/DevGuideExamples/Messenger/Publication_exec_i.h
new file mode 100644
index 00000000000..f49245980ad
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/Publication_exec_i.h
@@ -0,0 +1,70 @@
+// $Id$
+//
+// **** Code generated by the ****
+// **** Component Integrated ACE ORB (CIAO) CIDL Compiler ****
+// CIAO has been developed by:
+// Center for Distributed Object Computing
+// Washington University
+// St. Louis, MO
+// USA
+// http://www.cs.wustl.edu/~schmidt/doc-center.html
+// CIDL Compiler has been developed by:
+// Institute for Software Integrated Systems
+// Vanderbilt University
+// Nashville, TN
+// USA
+// http://www.isis.vanderbilt.edu/
+//
+// Information about CIAO is available at:
+// http://www.dre.vanderbilt.edu/CIAO
+
+#ifndef CIAO_PUBLICATION_EXEC_H
+#define CIAO_PUBLICATION_EXEC_H
+
+#include /**/ "ace/pre.h"
+
+#include "MessengerEC.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "Messenger_exec_export.h"
+#include "tao/LocalObject.h"
+
+// MY CODE
+#include <string>
+#include "ace/Thread_Mutex.h"
+
+namespace CIDL_Messenger_Impl
+{
+ class MESSENGER_EXEC_Export Publication_exec_i
+ : public virtual ::CCM_Publication,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ Publication_exec_i (const char* text, CORBA::UShort period);
+ virtual ~Publication_exec_i (void);
+
+ // Operations from ::Publication
+
+ virtual char* text ();
+
+ virtual void text ( const char* text);
+
+ virtual CORBA::UShort period ();
+
+ virtual void period ( CORBA::UShort period);
+
+ private:
+ std::string text_;
+ CORBA::UShort period_;
+
+ TAO_SYNCH_MUTEX lock_;
+ };
+}
+
+#include /**/ "ace/post.h"
+
+#endif /* CIAO_PUBLICATION_EXEC_H */
+
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/Receiver.cidl b/modules/CIAO/examples/DevGuideExamples/Messenger/Receiver.cidl
new file mode 100644
index 00000000000..1deaf19ed2d
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/Receiver.cidl
@@ -0,0 +1,23 @@
+// $Id$
+
+/**
+ * @file Receiver.cidl
+ *
+ * @author Don Busch <busch_d@ociweb.com>
+ */
+
+#ifndef RECEIVER_CIDL
+#define RECEIVER_CIDL
+
+#include "Receiver.idl"
+
+composition session Receiver_Impl
+{
+ home executor ReceiverHome_Exec
+ {
+ implements ReceiverHome;
+ manages Receiver_Exec;
+ };
+};
+
+#endif
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/Receiver.idl b/modules/CIAO/examples/DevGuideExamples/Messenger/Receiver.idl
new file mode 100644
index 00000000000..2d22feceb70
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/Receiver.idl
@@ -0,0 +1,23 @@
+// $Id$
+
+/**
+ * @file Receiver.idl
+ *
+ * @author Don Busch <busch_d@ociweb.com>
+ */
+
+#ifndef RECEIVER_IDL
+#define RECEIVER_IDL
+
+#include <Components.idl>
+#include "Message.idl"
+#include "History.idl"
+
+component Receiver {
+ consumes Message message_consumer;
+ uses History message_history;
+};
+
+home ReceiverHome manages Receiver {};
+
+#endif
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/Receiver.mpc b/modules/CIAO/examples/DevGuideExamples/Messenger/Receiver.mpc
new file mode 100644
index 00000000000..19f4e42a94b
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/Receiver.mpc
@@ -0,0 +1,115 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl -p Messenger Receiver"
+
+project(Messenger_Receiver_idl_gen) : ciaoidldefaults, anytypecode, avoids_ace_for_tao {
+ 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
+
+ IDL_Files {
+ Receiver.idl
+ }
+}
+
+project(Messenger_Receiver_cidl_gen) : ciaocidldefaults, ciaoidldefaults, avoids_ace_for_tao {
+ custom_only = 1
+ cidlflags += --svnt-export-macro RECEIVER_SVNT_Export \
+ --svnt-export-include Receiver_svnt_export.h
+
+ CIDL_Files {
+ Receiver.cidl
+ }
+
+ IDL_Files {
+ ReceiverE.idl
+ }
+}
+
+project(Messenger_Receiver_stub) : ccm_stub, avoids_ace_for_tao {
+ after += Messenger_Receiver_idl_gen Messenger_stub
+ libs += Messenger_stub
+
+ 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(Messenger_Receiver_exec) : ciao_executor, avoids_ace_for_tao {
+ after += Messenger_Receiver_cidl_gen Messenger_Receiver_stub
+ sharedname = Receiver_exec
+ libs += Receiver_stub Messenger_stub
+
+ dynamicflags = RECEIVER_EXEC_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ ReceiverEC.cpp
+ Receiver_exec_i.cpp
+ }
+
+ Header_Files {
+ ReceiverEC.h
+ Receiver_exec_i.h
+ Receiver_exec_export.h
+ }
+
+ Inline_Files {
+ ReceiverEC.inl
+ }
+}
+
+
+project(Messenger_Receiver_svnt) : ciao_servant, avoids_ace_for_tao {
+ after += Messenger_svnt Messenger_Receiver_exec
+ sharedname = Receiver_svnt
+ libs += Receiver_exec \
+ Receiver_stub \
+ Messenger_svnt \
+ Messenger_stub
+
+ dynamicflags = RECEIVER_SVNT_BUILD_DLL
+
+ CIDL_Files {
+ }
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ ReceiverEC.cpp
+ ReceiverS.cpp
+ Receiver_svnt.cpp
+ }
+
+ Header_Files {
+ ReceiverEC.h
+ ReceiverS.h
+ Receiver_svnt.h
+ Receiver_svnt_export.h
+ }
+
+ Inline_Files {
+ ReceiverS.inl
+ }
+}
+
+
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/Receiver_exec_export.h b/modules/CIAO/examples/DevGuideExamples/Messenger/Receiver_exec_export.h
new file mode 100644
index 00000000000..9ae7b9ce799
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/Receiver_exec_export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl RECEIVER_EXEC
+// ------------------------------
+#ifndef RECEIVER_EXEC_EXPORT_H
+#define RECEIVER_EXEC_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (RECEIVER_EXEC_HAS_DLL)
+# define RECEIVER_EXEC_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && RECEIVER_EXEC_HAS_DLL */
+
+#if !defined (RECEIVER_EXEC_HAS_DLL)
+# define RECEIVER_EXEC_HAS_DLL 1
+#endif /* ! RECEIVER_EXEC_HAS_DLL */
+
+#if defined (RECEIVER_EXEC_HAS_DLL) && (RECEIVER_EXEC_HAS_DLL == 1)
+# if defined (RECEIVER_EXEC_BUILD_DLL)
+# define RECEIVER_EXEC_Export ACE_Proper_Export_Flag
+# define RECEIVER_EXEC_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define RECEIVER_EXEC_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* RECEIVER_EXEC_BUILD_DLL */
+# define RECEIVER_EXEC_Export ACE_Proper_Import_Flag
+# define RECEIVER_EXEC_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define RECEIVER_EXEC_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* RECEIVER_EXEC_BUILD_DLL */
+#else /* RECEIVER_EXEC_HAS_DLL == 1 */
+# define RECEIVER_EXEC_Export
+# define RECEIVER_EXEC_SINGLETON_DECLARATION(T)
+# define RECEIVER_EXEC_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* RECEIVER_EXEC_HAS_DLL == 1 */
+
+// Set RECEIVER_EXEC_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (RECEIVER_EXEC_NTRACE)
+# if (ACE_NTRACE == 1)
+# define RECEIVER_EXEC_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define RECEIVER_EXEC_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !RECEIVER_EXEC_NTRACE */
+
+#if (RECEIVER_EXEC_NTRACE == 1)
+# define RECEIVER_EXEC_TRACE(X)
+#else /* (RECEIVER_EXEC_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define RECEIVER_EXEC_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (RECEIVER_EXEC_NTRACE == 1) */
+
+#endif /* RECEIVER_EXEC_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/Receiver_exec_i.cpp b/modules/CIAO/examples/DevGuideExamples/Messenger/Receiver_exec_i.cpp
new file mode 100644
index 00000000000..25873719be4
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/Receiver_exec_i.cpp
@@ -0,0 +1,177 @@
+// $Id$
+//
+// **** Code generated by the ****
+// **** Component Integrated ACE ORB (CIAO) CIDL Compiler ****
+// CIAO has been developed by:
+// Center for Distributed Object Computing
+// Washington University
+// St. Louis, MO
+// USA
+// http://www.cs.wustl.edu/~schmidt/doc-center.html
+// CIDL Compiler has been developed by:
+// Institute for Software Integrated Systems
+// Vanderbilt University
+// Nashville, TN
+// USA
+// http://www.isis.vanderbilt.edu/
+//
+// Information about CIAO is available at:
+// http://www.dre.vanderbilt.edu/CIAO
+
+#include "Receiver_exec_i.h"
+#include "ciao/CIAO_common.h"
+
+namespace CIDL_Receiver_Impl
+{
+ //==================================================================
+ // Component Executor Implementation Class: Receiver_exec_i
+ //==================================================================
+
+ Receiver_exec_i::Receiver_exec_i (void)
+ {
+ }
+
+ Receiver_exec_i::~Receiver_exec_i (void)
+ {
+ }
+
+ // Supported or inherited operations.
+
+ // Attribute operations.
+
+ // Port operations.
+
+ void
+ Receiver_exec_i::push_message_consumer (::Message * ev)
+ {
+ /* Your code here. */
+
+ // MY CODE
+
+ CORBA::String_var subject = ev->subject();
+ CORBA::String_var user = ev->user();
+ CORBA::String_var text = ev->text();
+
+ ACE_DEBUG((LM_INFO,
+ ACE_TEXT("Received Message:\n Subject: %s\n User: %s\n Text: %s\n"),
+ subject.in(),
+ user.in(),
+ text.in() ));
+
+ // Use the history to (inefficiently) get the total number of messages
+ // published on this item so far
+ ::History_var history =
+ this->context_->get_connection_message_history();
+ ::Messages_var messages = history->get_all();
+ ACE_DEBUG((LM_INFO,
+ ACE_TEXT(" Subject \"%s\" has published %d messages so far\n"),
+ subject.in(),
+ messages->length() ));
+ }
+
+ // Operations from Components::SessionComponent
+
+ void
+ Receiver_exec_i::set_session_context (
+ ::Components::SessionContext_ptr ctx)
+ {
+ this->context_ =
+ ::CCM_Receiver_Context::_narrow (ctx);
+
+ if (CORBA::is_nil (this->context_.in ()))
+ {
+ throw ::CORBA::INTERNAL ();
+ }
+ }
+
+ void
+ Receiver_exec_i::configuration_complete ()
+ {
+ /* Your code here. */
+ ACE_DEBUG((LM_INFO, ACE_TEXT("Receiver_exec_i::configuration_complete\n")));
+ }
+
+ void
+ Receiver_exec_i::ccm_activate ()
+ {
+ // Your code here.
+ ACE_DEBUG((LM_INFO, ACE_TEXT("Receiver_exec_i::ccm_activate\n")));
+ }
+
+ void
+ Receiver_exec_i::ccm_passivate ()
+ {
+ /* Your code here. */
+ ACE_DEBUG((LM_INFO, ACE_TEXT("Receiver_exec_i::ccm_passivate\n")));
+ }
+
+ void
+ Receiver_exec_i::ccm_remove ()
+ {
+ /* Your code here. */
+ ACE_DEBUG((LM_INFO, ACE_TEXT("Receiver_exec_i::ccm_remove\n")));
+ }
+
+ extern "C" RECEIVER_EXEC_Export ::Components::EnterpriseComponent_ptr
+ create_Receiver_Impl (void)
+ {
+ ::Components::EnterpriseComponent_ptr retval =
+ ::Components::EnterpriseComponent::_nil ();
+
+ ACE_NEW_RETURN (retval,
+ Receiver_exec_i,
+ ::Components::EnterpriseComponent::_nil ());
+
+ return retval;
+ }
+
+ //==================================================================
+ // Home Executor Implementation Class: ReceiverHome_exec_i
+ //==================================================================
+
+ ReceiverHome_exec_i::ReceiverHome_exec_i (void)
+ {
+ }
+
+ ReceiverHome_exec_i::~ReceiverHome_exec_i (void)
+ {
+ }
+
+ // Supported or inherited operations.
+
+ // Home operations.
+
+ // Factory and finder operations.
+
+ // Attribute operations.
+
+ // Implicit operations.
+
+ ::Components::EnterpriseComponent_ptr
+ ReceiverHome_exec_i::create ()
+ {
+ ::Components::EnterpriseComponent_ptr retval =
+ ::Components::EnterpriseComponent::_nil ();
+
+ ACE_NEW_THROW_EX (
+ retval,
+ Receiver_exec_i,
+ ::CORBA::NO_MEMORY ());
+
+ return retval;
+ }
+
+ extern "C" RECEIVER_EXEC_Export ::Components::HomeExecutorBase_ptr
+ create_ReceiverHome_Impl (void)
+ {
+ ::Components::HomeExecutorBase_ptr retval =
+ ::Components::HomeExecutorBase::_nil ();
+
+ ACE_NEW_RETURN (
+ retval,
+ ReceiverHome_exec_i,
+ ::Components::HomeExecutorBase::_nil ());
+
+ return retval;
+ }
+}
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/Receiver_exec_i.h b/modules/CIAO/examples/DevGuideExamples/Messenger/Receiver_exec_i.h
new file mode 100644
index 00000000000..1d257f45b31
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/Receiver_exec_i.h
@@ -0,0 +1,102 @@
+// $Id$
+//
+// **** Code generated by the ****
+// **** Component Integrated ACE ORB (CIAO) CIDL Compiler ****
+// CIAO has been developed by:
+// Center for Distributed Object Computing
+// Washington University
+// St. Louis, MO
+// USA
+// http://www.cs.wustl.edu/~schmidt/doc-center.html
+// CIDL Compiler has been developed by:
+// Institute for Software Integrated Systems
+// Vanderbilt University
+// Nashville, TN
+// USA
+// http://www.isis.vanderbilt.edu/
+//
+// Information about CIAO is available at:
+// http://www.dre.vanderbilt.edu/CIAO
+
+#ifndef CIAO_RECEIVER_EXEC_H
+#define CIAO_RECEIVER_EXEC_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 CIDL_Receiver_Impl
+{
+ class RECEIVER_EXEC_Export Receiver_exec_i
+ : public virtual Receiver_Exec,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ Receiver_exec_i (void);
+ virtual ~Receiver_exec_i (void);
+
+ // Supported or inherited operations.
+
+ // Attribute operations.
+
+ // Port operations.
+
+ virtual void push_message_consumer (::Message *ev);
+
+ // Operations from Components::SessionComponent
+
+ virtual void
+ set_session_context (::Components::SessionContext_ptr ctx);
+
+ virtual void configuration_complete ();
+
+ virtual void ccm_activate ();
+
+ virtual void ccm_passivate ();
+
+ virtual void ccm_remove ();
+
+ private:
+ ::CCM_Receiver_Context_var context_;
+ };
+
+ extern "C" RECEIVER_EXEC_Export ::Components::EnterpriseComponent_ptr
+ create_Receiver_Impl (void);
+
+ class RECEIVER_EXEC_Export ReceiverHome_exec_i
+ : public virtual ReceiverHome_Exec,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ ReceiverHome_exec_i (void);
+ virtual ~ReceiverHome_exec_i (void);
+
+ // Supported or inherited operations.
+
+ // Home operations.
+
+ // Factory and finder operations.
+
+ // Attribute operations.
+
+ // Implicit operations.
+
+ virtual ::Components::EnterpriseComponent_ptr
+ create ();
+ };
+
+ extern "C" RECEIVER_EXEC_Export ::Components::HomeExecutorBase_ptr
+ create_ReceiverHome_Impl (void);
+}
+
+#include /**/ "ace/post.h"
+
+#endif /* CIAO_RECEIVER_EXEC_H */
+
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/Receiver_stub_export.h b/modules/CIAO/examples/DevGuideExamples/Messenger/Receiver_stub_export.h
new file mode 100644
index 00000000000..ad411db973f
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/Receiver_stub_export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl RECEIVER_STUB
+// ------------------------------
+#ifndef RECEIVER_STUB_EXPORT_H
+#define RECEIVER_STUB_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (RECEIVER_STUB_HAS_DLL)
+# define RECEIVER_STUB_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && RECEIVER_STUB_HAS_DLL */
+
+#if !defined (RECEIVER_STUB_HAS_DLL)
+# define RECEIVER_STUB_HAS_DLL 1
+#endif /* ! RECEIVER_STUB_HAS_DLL */
+
+#if defined (RECEIVER_STUB_HAS_DLL) && (RECEIVER_STUB_HAS_DLL == 1)
+# if defined (RECEIVER_STUB_BUILD_DLL)
+# define RECEIVER_STUB_Export ACE_Proper_Export_Flag
+# define RECEIVER_STUB_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define RECEIVER_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* RECEIVER_STUB_BUILD_DLL */
+# define RECEIVER_STUB_Export ACE_Proper_Import_Flag
+# define RECEIVER_STUB_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define RECEIVER_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* RECEIVER_STUB_BUILD_DLL */
+#else /* RECEIVER_STUB_HAS_DLL == 1 */
+# define RECEIVER_STUB_Export
+# define RECEIVER_STUB_SINGLETON_DECLARATION(T)
+# define RECEIVER_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* RECEIVER_STUB_HAS_DLL == 1 */
+
+// Set RECEIVER_STUB_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (RECEIVER_STUB_NTRACE)
+# if (ACE_NTRACE == 1)
+# define RECEIVER_STUB_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define RECEIVER_STUB_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !RECEIVER_STUB_NTRACE */
+
+#if (RECEIVER_STUB_NTRACE == 1)
+# define RECEIVER_STUB_TRACE(X)
+#else /* (RECEIVER_STUB_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define RECEIVER_STUB_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (RECEIVER_STUB_NTRACE == 1) */
+
+#endif /* RECEIVER_STUB_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/Receiver_svnt_export.h b/modules/CIAO/examples/DevGuideExamples/Messenger/Receiver_svnt_export.h
new file mode 100644
index 00000000000..51ed45dc299
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/Receiver_svnt_export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl RECEIVER_SVNT
+// ------------------------------
+#ifndef RECEIVER_SVNT_EXPORT_H
+#define RECEIVER_SVNT_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (RECEIVER_SVNT_HAS_DLL)
+# define RECEIVER_SVNT_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && RECEIVER_SVNT_HAS_DLL */
+
+#if !defined (RECEIVER_SVNT_HAS_DLL)
+# define RECEIVER_SVNT_HAS_DLL 1
+#endif /* ! RECEIVER_SVNT_HAS_DLL */
+
+#if defined (RECEIVER_SVNT_HAS_DLL) && (RECEIVER_SVNT_HAS_DLL == 1)
+# if defined (RECEIVER_SVNT_BUILD_DLL)
+# define RECEIVER_SVNT_Export ACE_Proper_Export_Flag
+# define RECEIVER_SVNT_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define RECEIVER_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* RECEIVER_SVNT_BUILD_DLL */
+# define RECEIVER_SVNT_Export ACE_Proper_Import_Flag
+# define RECEIVER_SVNT_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define RECEIVER_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* RECEIVER_SVNT_BUILD_DLL */
+#else /* RECEIVER_SVNT_HAS_DLL == 1 */
+# define RECEIVER_SVNT_Export
+# define RECEIVER_SVNT_SINGLETON_DECLARATION(T)
+# define RECEIVER_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* RECEIVER_SVNT_HAS_DLL == 1 */
+
+// Set RECEIVER_SVNT_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (RECEIVER_SVNT_NTRACE)
+# if (ACE_NTRACE == 1)
+# define RECEIVER_SVNT_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define RECEIVER_SVNT_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !RECEIVER_SVNT_NTRACE */
+
+#if (RECEIVER_SVNT_NTRACE == 1)
+# define RECEIVER_SVNT_TRACE(X)
+#else /* (RECEIVER_SVNT_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define RECEIVER_SVNT_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (RECEIVER_SVNT_NTRACE == 1) */
+
+#endif /* RECEIVER_SVNT_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/Runnable.idl b/modules/CIAO/examples/DevGuideExamples/Messenger/Runnable.idl
new file mode 100644
index 00000000000..61515b7c17a
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/Runnable.idl
@@ -0,0 +1,17 @@
+// $Id$
+
+/**
+ * @file Runnable.idl
+ *
+ * @author Don Busch <busch_d@ociweb.com>
+ */
+
+#ifndef RUNNABLE_IDL
+#define RUNNABLE_IDL
+
+interface Runnable {
+ void start();
+ void stop();
+};
+
+#endif
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/Runnable_exec_i.cpp b/modules/CIAO/examples/DevGuideExamples/Messenger/Runnable_exec_i.cpp
new file mode 100644
index 00000000000..564f432121c
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/Runnable_exec_i.cpp
@@ -0,0 +1,61 @@
+// $Id$
+//
+// **** Code generated by the ****
+// **** Component Integrated ACE ORB (CIAO) CIDL Compiler ****
+// CIAO has been developed by:
+// Center for Distributed Object Computing
+// Washington University
+// St. Louis, MO
+// USA
+// http://www.cs.wustl.edu/~schmidt/doc-center.html
+// CIDL Compiler has been developed by:
+// Institute for Software Integrated Systems
+// Vanderbilt University
+// Nashville, TN
+// USA
+// http://www.isis.vanderbilt.edu/
+//
+// Information about CIAO is available at:
+// http://www.dre.vanderbilt.edu/CIAO
+
+#include "Runnable_exec_i.h"
+#include "ciao/CIAO_common.h"
+
+namespace CIDL_Messenger_Impl
+{
+ //==================================================================
+ // Facet Executor Implementation Class: Runnable_exec_i
+ //==================================================================
+
+ Runnable_exec_i::Runnable_exec_i ()
+ {
+ // initially in "stopped" state
+ this->stop();
+ }
+
+ Runnable_exec_i::~Runnable_exec_i (void)
+ {
+ // don't own anything
+ }
+
+ // Operations from ::Runnable
+
+ void
+ Runnable_exec_i::start ()
+ {
+ this->run_lock_.release();
+ }
+
+ void
+ Runnable_exec_i::stop ()
+ {
+ this->run_lock_.acquire();
+ }
+
+ TAO_SYNCH_MUTEX&
+ Runnable_exec_i::get_run_lock ()
+ {
+ return this->run_lock_;
+ }
+}
+
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/Runnable_exec_i.h b/modules/CIAO/examples/DevGuideExamples/Messenger/Runnable_exec_i.h
new file mode 100644
index 00000000000..71c394204ed
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/Runnable_exec_i.h
@@ -0,0 +1,65 @@
+// $Id$
+//
+// **** Code generated by the ****
+// **** Component Integrated ACE ORB (CIAO) CIDL Compiler ****
+// CIAO has been developed by:
+// Center for Distributed Object Computing
+// Washington University
+// St. Louis, MO
+// USA
+// http://www.cs.wustl.edu/~schmidt/doc-center.html
+// CIDL Compiler has been developed by:
+// Institute for Software Integrated Systems
+// Vanderbilt University
+// Nashville, TN
+// USA
+// http://www.isis.vanderbilt.edu/
+//
+// Information about CIAO is available at:
+// http://www.dre.vanderbilt.edu/CIAO
+
+#ifndef CIAO_RUNNABLE_EXEC_H
+#define CIAO_RUNNABLE_EXEC_H
+
+#include /**/ "ace/pre.h"
+
+#include "Messenger_svnt.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "Messenger_exec_export.h"
+
+// MY CODE
+#include "tao/LocalObject.h"
+#include "ace/Thread_Mutex.h"
+
+namespace CIDL_Messenger_Impl
+{
+ class MESSENGER_EXEC_Export Runnable_exec_i
+ : public virtual ::CCM_Runnable,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ Runnable_exec_i ();
+ virtual ~Runnable_exec_i (void);
+
+ // Operations from ::Runnable
+
+ virtual void start ();
+
+ virtual void stop ();
+
+ // MY CODE
+ TAO_SYNCH_MUTEX& get_run_lock();
+
+ private:
+ TAO_SYNCH_MUTEX run_lock_;
+ };
+}
+
+#include /**/ "ace/post.h"
+
+#endif /* CIAO_RUNNABLE_EXEC_H */
+
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/StaticDAnCE/Messenger_StaticDAnCE.mpc b/modules/CIAO/examples/DevGuideExamples/Messenger/StaticDAnCE/Messenger_StaticDAnCE.mpc
new file mode 100644
index 00000000000..caae6351bbc
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/StaticDAnCE/Messenger_StaticDAnCE.mpc
@@ -0,0 +1,18 @@
+// -*- MPC -*-
+// $Id$
+
+project(Messenger_StaticDAnCE) {
+ exename = Messenger_StaticDAnCE
+ requires += dummy_label
+
+ libs += Receiver_stub Administrator_stub Messenger_stub
+ libs += Receiver_svnt Administrator_svnt Messenger_svnt
+ libs += Receiver_exec Administrator_exec Messenger_exec
+ libpaths += ..
+
+ after += Receiver_exec Administrator_exec Messenger_exec
+
+ Source_Files {
+ StaticDAnCEApp.cpp
+ }
+}
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/StaticDAnCE/README.txt b/modules/CIAO/examples/DevGuideExamples/Messenger/StaticDAnCE/README.txt
new file mode 100644
index 00000000000..71cfbcf947f
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/StaticDAnCE/README.txt
@@ -0,0 +1,35 @@
+// $Id$
+
+plan.h
+-------
+generated by running
+$CIAO_ROOT/DAnCE/StaticConfiguration/StaticDAnCEParser -p
+ ../descriptors/Application-flattened.cdp
+
+Messenger_StaticDAnCE.mpc
+-------------------------
+started with a copy of StaticDAnCEApp.mpc.tmpl from
+ $CIAO_ROOT/DAnCE/StaticConfiguration
+changed project name and exe name
+replaces example libs with libs built in the .. directory
+added the after += line
+
+StaticDAnCEApp.cpp
+------------------
+copied from StaticDAnCEApp.cpp.tmpl in $CIAO_ROOT/DAnCE/StaticConfiguration
+
+run_test.pl
+-----------
+a modified copy of the ../descriptors/run_test.pl script that uses the static
+application in place of the NodeManager to run the Messenger_Node (port 44000)
+
+To run the test on the target, start the Messenger_StaticDAnCE executable
+(with -ORBEndpoint iiop://:44000) first on the target.
+Then comment out the spawning of process NA4 in the run_test.pl script.
+Also modify the final line of ../descriptors/ApplicationNodeMap.dat to
+replace host with the hostname or IP address of the target system.
+
+Known issues:
+- During shutodwn the Execution_Manager will print out some exceptions when
+it tries to communicate with the Messenger_StaticDAnCE process that has
+already terminated.
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/StaticDAnCE/StaticDAnCEApp.cpp b/modules/CIAO/examples/DevGuideExamples/Messenger/StaticDAnCE/StaticDAnCEApp.cpp
new file mode 100644
index 00000000000..daf16e8cbba
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/StaticDAnCE/StaticDAnCEApp.cpp
@@ -0,0 +1,102 @@
+// $Id$
+
+#include "Container_Base.h"
+#include "NodeManager/NodeManager_Impl.h"
+#include "ace/OS_NS_stdio.h"
+#include "ace/streams.h"
+#include "ace/Get_Opt.h"
+#include "tao/IORTable/IORTable.h"
+#include "tao/CDR.h"
+#include "plan.h"
+
+int
+ACE_TMAIN (int argc, ACE_TCHAR *argv[])
+{
+ // Initialize the ORB so that CORBA::Any will work
+ //
+ CORBA::ORB_var orb =
+ CORBA::ORB_init (argc,
+ argv);
+ try
+ {
+ // Get reference to Root POA.
+ CORBA::Object_var obj
+ = orb->resolve_initial_references ("RootPOA");
+
+ PortableServer::POA_var poa
+ = PortableServer::POA::_narrow (obj.in ());
+
+ // Activate POA manager
+ PortableServer::POAManager_var mgr
+ = poa->the_POAManager ();
+
+ mgr->activate ();
+
+ int homes_table_size =
+ sizeof (homes_table)/sizeof(HomeAttributes);
+
+ CIAO::HOMECREATOR_FUNCPTR_MAP home_creator_fptr_map;
+ CIAO::HOMESERVANTCREATOR_FUNCPTR_MAP homesvnt_creator_fptr_map;
+ CIAO::Static_Config_EntryPoints_Maps static_config_entrypoints_maps;
+ static_config_entrypoints_maps.home_creator_funcptr_map_ = &home_creator_fptr_map;
+ static_config_entrypoints_maps.home_servant_creator_funcptr_map_ = &homesvnt_creator_fptr_map;
+
+ int i=0;
+ for (i=0; i<homes_table_size; ++i)
+ {
+ home_creator_fptr_map.bind (homes_table[i].executor_entrypt_,
+ homes_table[i].executor_fptr_);
+
+ homesvnt_creator_fptr_map.bind (homes_table[i].servant_entrypt_,
+ homes_table[i].servant_fptr_);
+ }
+
+ CIAO::Static_NodeManager_Impl *static_node_manager_impl;
+ // Create and install the CIAO Daemon servant
+
+ ACE_DEBUG ((LM_DEBUG, "creating static_node_manager\n"));
+
+ static_node_manager_impl =
+ new CIAO::Static_NodeManager_Impl("NodeManager",
+ orb.in (),
+ poa.in (),
+ "", //exe location
+ "", //exe options
+ 0, //spawn delay
+ &static_config_entrypoints_maps);
+
+ static_node_manager_impl->init ();
+
+ CORBA::Object_var table_object =
+ orb->resolve_initial_references ("IORTable");
+
+ IORTable::Table_var adapter =
+ IORTable::Table::_narrow (table_object.in ());
+
+ if (CORBA::is_nil (adapter.in ()))
+ ACE_ERROR_RETURN ((LM_ERROR, "Nil IORTable\n"), -1);
+
+ CIAO::NodeManagerDaemon_var manager =
+ static_node_manager_impl->_this ();
+
+ CORBA::String_var str =
+ orb->object_to_string (manager.in ());
+
+ adapter->bind ("NodeManager",
+ str.in ());
+
+ // Run the main event loop for the ORB.
+ orb->run ();
+
+ poa->destroy (1, 1);
+
+ orb->destroy ();
+ }
+ catch (CORBA::Exception& ex)
+ {
+ ex._tao_print_exception ("Caught CORBA Exception: ");
+ return -1;
+ }
+
+ return 0;
+}
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/StaticDAnCE/plan.h b/modules/CIAO/examples/DevGuideExamples/Messenger/StaticDAnCE/plan.h
new file mode 100644
index 00000000000..a5732221e75
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/StaticDAnCE/plan.h
@@ -0,0 +1,47 @@
+// $Id$
+
+#include "Session_Container.h"
+
+extern "C" ::Components::HomeExecutorBase_ptr create_MessengerHome_Impl (void);
+extern "C" ::PortableServer::Servant create_MessengerHome_Servant
+ (::Components::HomeExecutorBase_ptr p,
+ ::CIAO::Session_Container *c,
+ const char*
+ );
+extern "C" ::Components::HomeExecutorBase_ptr create_ReceiverHome_Impl (void);
+extern "C" ::PortableServer::Servant create_ReceiverHome_Servant
+ (::Components::HomeExecutorBase_ptr p,
+ ::CIAO::Session_Container *c,
+ const char*
+ );
+extern "C" ::Components::HomeExecutorBase_ptr create_ReceiverHome_Impl (void);
+extern "C" ::PortableServer::Servant create_ReceiverHome_Servant
+ (::Components::HomeExecutorBase_ptr p,
+ ::CIAO::Session_Container *c,
+ const char*
+ );
+extern "C" ::Components::HomeExecutorBase_ptr create_AdministratorHome_Impl (void);
+extern "C" ::PortableServer::Servant create_AdministratorHome_Servant
+ (::Components::HomeExecutorBase_ptr p,
+ ::CIAO::Session_Container *c,
+ const char*
+ );
+struct HomeAttributes
+{
+ char const * component_instance_name_;
+ /// Specify the entrypoint to component executor DLL.
+ char const * executor_entrypt_;
+ ::CIAO::HomeFactory executor_fptr_;
+ /// Specify the entrypoint to component servant DLL.
+ char const * servant_entrypt_;
+ ::CIAO::ServantFactory servant_fptr_;
+};
+/// Homes
+HomeAttributes homes_table[]=
+{
+ {"Messenger_Instance", "create_MessengerHome_Impl", create_MessengerHome_Impl, "create_MessengerHome_Servant", create_MessengerHome_Servant},
+ {"First_Receiver_Instance", "create_ReceiverHome_Impl", create_ReceiverHome_Impl, "create_ReceiverHome_Servant", create_ReceiverHome_Servant},
+ {"Second_Receiver_Instance", "create_ReceiverHome_Impl", create_ReceiverHome_Impl, "create_ReceiverHome_Servant", create_ReceiverHome_Servant},
+ {"Administrator_Instance", "create_AdministratorHome_Impl", create_AdministratorHome_Impl, "create_AdministratorHome_Servant", create_AdministratorHome_Servant}
+};
+
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/StaticDAnCE/run_test.pl b/modules/CIAO/examples/DevGuideExamples/Messenger/StaticDAnCE/run_test.pl
new file mode 100755
index 00000000000..e7e707f253d
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/StaticDAnCE/run_test.pl
@@ -0,0 +1,110 @@
+# $Id$
+
+eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
+ & eval 'exec perl -S $0 $argv:q'
+ if 0;
+
+use Env (ACE_ROOT);
+use lib "$ACE_ROOT/bin";
+use PerlACE::Run_Test;
+
+$emior= PerlACE::LocalFile ("em.ior");
+unlink $emior;
+$plior= PerlACE::LocalFile ("pl.ior");
+unlink $plior;
+
+if (defined $ENV{'CIAO_ROOT'}) {
+ $CIAO_ROOT = $ENV{'CIAO_ROOT'};
+}
+else {
+ $CIAO_ROOT = $ACE_ROOT/TAO/CIAO;
+}
+
+$NA = new PerlACE::Process ("$CIAO_ROOT/DAnCE/NodeApplication/NodeApplication");
+$NA_cmd = $NA->Executable ();
+
+$NA1 = new PerlACE::Process ("$CIAO_ROOT/DAnCE/NodeManager/NodeManager",
+ "-ORBEndpoint iiop://localhost:11000 -s $NA_cmd");
+
+$NA2 = new PerlACE::Process ("$CIAO_ROOT/DAnCE/NodeManager/NodeManager",
+ "-ORBEndpoint iiop://localhost:22000 -s $NA_cmd");
+
+$NA3 = new PerlACE::Process ("$CIAO_ROOT/DAnCE/NodeManager/NodeManager",
+ "-ORBEndpoint iiop://localhost:33000 -s $NA_cmd");
+
+$NA4 = new PerlACE::Process ("Messenger_StaticDAnCE",
+ "-ORBEndpoint iiop://:44000");
+
+# Each Node Manager lauches a Node Application process.
+open(STDIN, "<../descriptors/admin.dat");
+$Ret1 = $NA1->Spawn ();
+if($Ret1 == -1) {
+ print STDERR "ERROR: Administrator returned <$Ret1>\n"
+}
+
+$Ret2 = $NA2->Spawn ();
+if($Ret2 == -1) {
+ print STDERR "ERROR: Receiver 1 returned <$Ret2>\n"
+}
+
+$Ret3 = $NA3->Spawn ();
+if($Ret3 == -1) {
+ print STDERR "ERROR: Receiver 2 returned <$Ret3>\n"
+}
+
+$Ret4 = $NA4->Spawn ();
+if($Ret4 == -1) {
+ print STDERR "ERROR: Messenger returned <$Ret4>\n"
+}
+
+#Start an Execution Manager
+$EM = new PerlACE::Process ("$CIAO_ROOT/DAnCE/ExecutionManager/Execution_Manager", "-o $emior -i ../descriptors/ApplicationNodeMap.dat");
+
+$Ret5 = $EM->Spawn ();
+if($Ret5 == -1) {
+ print STDERR "ERROR: Execution Manager returned <$Ret5>\n"
+}
+
+if (PerlACE::waitforfile_timed ($emior, 5) == -1) {
+ print STDERR "ERROR: cannot find file <$emior>\n";
+ $EM->Kill();
+ unlink $emior;
+ exit 1;
+}
+
+sleep(5);
+#Start the plan launcher
+$EX = new PerlACE::Process ("$CIAO_ROOT/DAnCE/Plan_Launcher/plan_launcher",
+ "-p ../descriptors/Application-flattened.cdp ".
+ "-k file://$emior -o $plior");
+
+#Stop the plan launcher
+$EX2 = new PerlACE::Process ("$CIAO_ROOT/DAnCE/Plan_Launcher/plan_launcher",
+ "-k file://$emior -i file://$plior");
+
+$Ret6 = $EX->Spawn ();
+if($Ret6 == -1) {
+ print STDERR "ERROR: plan launcher returned <$Ret6>\n"
+}
+
+sleep(10);
+
+$Ret7 = $EX2->Spawn ();
+if($Ret7 == -1) {
+ print STDERR "ERROR: plan launcher (shutdown) returned <$Ret7>\n"
+}
+
+sleep(5);
+$EX2->Kill();
+$EX->Kill();
+$EM->Kill();
+
+$NA1->Kill();
+$NA2->Kill();
+$NA3->Kill();
+$NA4->Kill();
+
+unlink $emior;
+unlink $plior;
+
+exit 0;
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Administrator.ccd b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Administrator.ccd
new file mode 100644
index 00000000000..23ba49bb84c
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Administrator.ccd
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<Deployment:ComponentInterfaceDescription
+ 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>Administrator Component</label>
+ <specificType>IDL:Administrator:1.0</specificType>
+ <supportedType>IDL:Administrator:1.0</supportedType>
+ <idlFile>Administrator.idl</idlFile>
+
+ <port>
+ <name>runnables</name>
+ <exclusiveProvider>false</exclusiveProvider>
+ <exclusiveUser>true</exclusiveUser>
+ <optional>true</optional>
+ <provider>false</provider>
+ <supportedType>IDL:Runnable:1.0</supportedType>
+ <specificType>IDL:Runnable:1.0</specificType>
+ <kind>MultiplexReceptacle</kind>
+ </port>
+
+ <port>
+ <name>content</name>
+ <exclusiveProvider>false</exclusiveProvider>
+ <exclusiveUser>true</exclusiveUser>
+ <optional>true</optional>
+ <provider>false</provider>
+ <supportedType>IDL:Publication:1.0</supportedType>
+ <specificType>IDL:Publication:1.0</specificType>
+ <kind>MultiplexReceptacle</kind>
+ </port>
+
+ <!-- infoProperty elements are optional, and are non-functional -->
+ <infoProperty>
+ <name>comment</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>This CCD describes the Administrator's interface</string>
+ </value>
+ </value>
+ </infoProperty>
+
+</Deployment:ComponentInterfaceDescription>
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Administrator.cid b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Administrator.cid
new file mode 100644
index 00000000000..af9e9a4c677
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Administrator.cid
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<Deployment:ComponentImplementationDescription
+ 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>Administrator Implementation</label>
+ <implements href="Administrator.ccd"/>
+ <monolithicImpl>
+ <primaryArtifact>
+ <name>Administrator_Stub</name>
+ <referencedArtifact href="Administrator_Stub.iad"/>
+ </primaryArtifact>
+ <primaryArtifact>
+ <name>Administrator_Svnt</name>
+ <referencedArtifact href="Administrator_Svnt.iad"/>
+ </primaryArtifact>
+ <primaryArtifact>
+ <name>Administrator_Exec</name>
+ <referencedArtifact href="Administrator_Exec.iad"/>
+ </primaryArtifact>
+ </monolithicImpl>
+ <configProperty>
+ <name>ComponentIOR</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Administrator.ior</string>
+ </value>
+ </value>
+ </configProperty>
+</Deployment:ComponentImplementationDescription>
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Administrator.cpd b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Administrator.cpd
new file mode 100644
index 00000000000..972966462e6
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Administrator.cpd
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<Deployment:ComponentPackageDescription
+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>Administrator Component</label>
+ <realizes href="Administrator.ccd"/>
+ <implementation>
+ <name>AdministratorImpl</name>
+ <referencedImplementation href="Administrator.cid"/>
+ </implementation>
+
+</Deployment:ComponentPackageDescription>
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Administrator_Exec.iad b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Administrator_Exec.iad
new file mode 100644
index 00000000000..81b7a16da7a
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Administrator_Exec.iad
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<Deployment:ImplementationArtifactDescription
+ 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>Administrator Executor Artifact</label>
+ <location>Administrator_exec</location>
+ <dependsOn>
+ <name>ACE/TAO/CIAO</name>
+ <referencedArtifact href="Libraries.iad"/>
+ </dependsOn>
+ <dependsOn>
+ <name>Administrator_Stub</name>
+ <referencedArtifact href="Administrator_Stub.iad"/>
+ </dependsOn>
+ <execParameter>
+ <name>entryPoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>createAdministratorHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <!-- infoProperty elements are optional, and are non-functional -->
+ <infoProperty>
+ <name>comment</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>This IAD describes the Administrator's executor library</string>
+ </value>
+ </value>
+ </infoProperty>
+</Deployment:ImplementationArtifactDescription>
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Administrator_Stub.iad b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Administrator_Stub.iad
new file mode 100644
index 00000000000..931fc371710
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Administrator_Stub.iad
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<Deployment:ImplementationArtifactDescription
+ 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>Administrator Stub Artifact</label>
+ <location>Administrator_stub</location>
+ <dependsOn>
+ <name>ACE/TAO/CIAO</name>
+ <referencedArtifact href="Libraries.iad"/>
+ </dependsOn>
+ <dependsOn>
+ <name>Messenger_Stub</name>
+ <referencedArtifact href="Messenger_Stub.iad"/>
+ </dependsOn>
+
+ <!-- infoProperty elements are optional, and are non-functional -->
+ <infoProperty>
+ <name>comment</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>This IAD describes the Administrator's stub library</string>
+ </value>
+ </value>
+ </infoProperty>
+</Deployment:ImplementationArtifactDescription>
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Administrator_Svnt.iad b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Administrator_Svnt.iad
new file mode 100644
index 00000000000..6774a107ef0
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Administrator_Svnt.iad
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<Deployment:ImplementationArtifactDescription
+ 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>Administrator Servant Artifact</label>
+ <location>Administrator_svnt</location>
+ <dependsOn>
+ <name>ACE/TAO/CIAO</name>
+ <referencedArtifact href="Libraries.iad"/>
+ </dependsOn>
+ <dependsOn>
+ <name>Administrator_Stub</name>
+ <referencedArtifact href="Administrator_Stub.iad"/>
+ </dependsOn>
+ <execParameter>
+ <name>entryPoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>createAdministratorHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <!-- infoProperty elements are optional, and are non-functional -->
+ <infoProperty>
+ <name>comment</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>This IAD describes the Administrator's servant library</string>
+ </value>
+ </value>
+ </infoProperty>
+</Deployment:ImplementationArtifactDescription>
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Application-flattened.cdp b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Application-flattened.cdp
new file mode 100644
index 00000000000..d01ec12e2db
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Application-flattened.cdp
@@ -0,0 +1,255 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<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>Messenger Deployment Plan</label>
+
+ <!-- realizes -->
+
+ <!-- implementation* -->
+
+ <implementation id="MessengerImpl"> <!-- from Messenger.cpd -->
+ <name>MessengerImpl</name>
+ <source></source>
+ <!-- from Messenger.cid -->
+ <artifact>Messenger_Stub</artifact>
+ <artifact>Messenger_Svnt</artifact>
+ <artifact>Messenger_Exec</artifact>
+ </implementation>
+
+ <implementation id="ReceiverImpl"> <!-- from Receiver.cpd -->
+ <name>ReceiverImpl</name>
+ <source></source>
+ <artifact>Receiver_Stub</artifact>
+ <artifact>Receiver_Svnt</artifact>
+ <artifact>Receiver_Exec</artifact>
+ </implementation>
+
+ <implementation id="AdministratorImpl"> <!-- from Administrator.cpd -->
+ <name>AdministratorImpl</name>
+ <source></source>
+ <artifact>Administrator_Stub</artifact>
+ <artifact>Administrator_Svnt</artifact>
+ <artifact>Administrator_Exec</artifact>
+ </implementation>
+
+ <!-- instance* -->
+
+ <instance id="Messenger_Instance_ID">
+ <name>Messenger_Instance</name>
+ <node>Messenger_Node</node>
+ <source></source>
+ <implementation>MessengerImpl</implementation>
+ </instance>
+ <instance id="First_Receiver_Instance_ID">
+ <name>First_Receiver_Instance</name>
+ <node>First_Receiver_Node</node>
+ <source></source>
+ <implementation>ReceiverImpl</implementation>
+ </instance>
+ <instance id="Second_Receiver_Instance_ID">
+ <name>Second_Receiver_Instance</name>
+ <node>Second_Receiver_Node</node>
+ <source></source>
+ <implementation>ReceiverImpl</implementation>
+ </instance>
+ <instance id="Administrator_Instance_ID">
+ <name>Administrator_Instance</name>
+ <node>Administrator_Node</node>
+ <source></source>
+ <implementation>AdministratorImpl</implementation>
+ </instance>
+
+ <!-- connection* -->
+
+ <connection>
+ <name>Messenger_to_First_Receiver_Publish</name>
+ <internalEndpoint>
+ <portName>message_publisher</portName>
+ <kind>EventPublisher</kind>
+ <instance>Messenger_Instance_ID</instance>
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>message_consumer</portName>
+ <kind>EventConsumer</kind>
+ <instance>First_Receiver_Instance_ID</instance>
+ </internalEndpoint>
+ </connection>
+
+ <connection>
+ <name>Messenger_to_First_Receiver_History</name>
+ <internalEndpoint>
+ <portName>message_history</portName>
+ <kind>Facet</kind>
+ <instance>Messenger_Instance_ID</instance>
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>message_history</portName>
+ <kind>SimplexReceptacle</kind>
+ <instance>First_Receiver_Instance_ID</instance>
+ </internalEndpoint>
+ </connection>
+
+ <connection>
+ <name>Messenger_to_Second_Receiver_Publish</name>
+ <internalEndpoint>
+ <portName>message_publisher</portName>
+ <kind>EventPublisher</kind>
+ <instance>Messenger_Instance_ID</instance>
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>message_consumer</portName>
+ <kind>EventConsumer</kind>
+ <instance>Second_Receiver_Instance_ID</instance>
+ </internalEndpoint>
+ </connection>
+
+ <connection>
+ <name>Messenger_to_Second_Receiver_History</name>
+ <internalEndpoint>
+ <portName>message_history</portName>
+ <kind>Facet</kind>
+ <instance>Messenger_Instance_ID</instance>
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>message_history</portName>
+ <kind>SimplexReceptacle</kind>
+ <instance>Second_Receiver_Instance_ID</instance>
+ </internalEndpoint>
+ </connection>
+
+ <connection>
+ <name>Messenger_to_Administrator_Control</name>
+ <internalEndpoint>
+ <portName>control</portName>
+ <kind>Facet</kind>
+ <instance>Messenger_Instance_ID</instance>
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>runnables</portName>
+ <kind>SimplexReceptacle</kind>
+ <instance>Administrator_Instance_ID</instance>
+ </internalEndpoint>
+ </connection>
+
+ <connection>
+ <name>Messenger_to_Administrator_Content</name>
+ <internalEndpoint>
+ <portName>content</portName>
+ <kind>Facet</kind>
+ <instance>Messenger_Instance_ID</instance>
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>content</portName>
+ <kind>SimplexReceptacle</kind>
+ <instance>Administrator_Instance_ID</instance>
+ </internalEndpoint>
+ </connection>
+
+ <!-- artifact* (exec, svnt) -->
+
+ <artifact id="Messenger_Stub">
+ <name>Messenger_Stub</name>
+ <source></source>
+ <node></node>
+ <location>Messenger_stub</location>
+ </artifact>
+ <artifact id="Messenger_Svnt">
+ <name>Messenger_Svnt</name>
+ <source></source>
+ <node></node>
+ <location>Messenger_svnt</location>
+ <execParameter>
+ <name>entryPoint</name>
+ <value>
+ <type><kind>tk_string</kind></type>
+ <value><string>create_MessengerHome_Servant</string></value>
+ </value>
+ </execParameter>
+ </artifact>
+ <artifact id="Messenger_Exec">
+ <name>Messenger_Exec</name>
+ <source></source>
+ <node></node>
+ <location>Messenger_exec</location>
+ <execParameter>
+ <name>entryPoint</name>
+ <value>
+ <type><kind>tk_string</kind></type>
+ <value><string>create_MessengerHome_Impl</string></value>
+ </value>
+ </execParameter>
+ </artifact>
+
+ <artifact id="Receiver_Stub">
+ <name>Receiver_Stub</name>
+ <source></source>
+ <node></node>
+ <location>Receiver_stub</location>
+ </artifact>
+ <artifact id="Receiver_Svnt">
+ <name>Receiver_Svnt</name>
+ <source></source>
+ <node></node>
+ <location>Receiver_svnt</location>
+ <execParameter>
+ <name>entryPoint</name>
+ <value>
+ <type><kind>tk_string</kind></type>
+ <value><string>create_ReceiverHome_Servant</string></value>
+ </value>
+ </execParameter>
+ </artifact>
+ <artifact id="Receiver_Exec">
+ <name>Receiver_Exec</name>
+ <source></source>
+ <node></node>
+ <location>Receiver_exec</location>
+ <execParameter>
+ <name>entryPoint</name>
+ <value>
+ <type><kind>tk_string</kind></type>
+ <value><string>create_ReceiverHome_Impl</string></value>
+ </value>
+ </execParameter>
+ </artifact>
+
+ <artifact id="Administrator_Stub">
+ <name>Administrator_Stub</name>
+ <source></source>
+ <node></node>
+ <location>Administrator_stub</location>
+ </artifact>
+ <artifact id="Administrator_Svnt">
+ <name>Administrator_Svnt</name>
+ <source></source>
+ <node></node>
+ <location>Administrator_svnt</location>
+ <execParameter>
+ <name>entryPoint</name>
+ <value>
+ <type><kind>tk_string</kind></type>
+ <value><string>create_AdministratorHome_Servant</string></value>
+ </value>
+ </execParameter>
+ </artifact>
+ <artifact id="Administrator_Exec">
+ <name>Administrator_Exec</name>
+ <source></source>
+ <node></node>
+ <location>Administrator_exec</location>
+ <execParameter>
+ <name>entryPoint</name>
+ <value>
+ <type><kind>tk_string</kind></type>
+ <value><string>create_AdministratorHome_Impl</string></value>
+ </value>
+ </execParameter>
+ </artifact>
+
+
+</Deployment:deploymentPlan>
+
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Application.cdp b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Application.cdp
new file mode 100644
index 00000000000..9e774373c2f
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Application.cdp
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<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>Messenger Deployment Plan</label>
+ <instance xmi:id="Messenger_Instance_ID">
+ <name>Messenger_Instance</name>
+ <node>Messenger_Node</node>
+ </instance>
+ <instance xmi:id="First_Receiver_Instance_ID">
+ <name>First_Receiver_Instance</name>
+ <node>First_Receiver_Node</node>
+ </instance>
+ <instance xmi:id="Second_Receiver_Instance_ID">
+ <name>Second_Receiver_Instance</name>
+ <node>Second_Receiver_Node</node>
+ </instance>
+ <instance xmi:id="Administrator_Instance_ID">
+ <name>Administrator_Instance</name>
+ <node>Administrator_Node</node>
+ </instance>
+</Deployment:DeploymentPlan>
+
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Application.pcd b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Application.pcd
new file mode 100644
index 00000000000..70635a4850b
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Application.pcd
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<Deployment:PackageConfiguration
+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>Messenger Application Configuration</label>
+ <basePackage href="MessengerAssembly.cpd"/>
+
+ <!-- CIAO does not yet pay attention to this -->
+ <configProperty>
+ <name>subject</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>My Subject</string>
+ </value>
+ </value>
+ </configProperty>
+</Deployment:PackageConfiguration>
+
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/ApplicationNodeMap.dat b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/ApplicationNodeMap.dat
new file mode 100644
index 00000000000..91fbbfd4d20
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/ApplicationNodeMap.dat
@@ -0,0 +1,5 @@
+Administrator_Node corbaloc:iiop:localhost:11000/Administrator_Node.NodeManager
+First_Receiver_Node corbaloc:iiop:localhost:22000/First_Receiver_Node.NodeManager
+Second_Receiver_Node corbaloc:iiop:localhost:33000/Second_Receiver_Node.NodeManager
+Messenger_Node corbaloc:iiop:localhost:44000/Messenger_Node.NodeManager
+
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Deployment.xsd b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Deployment.xsd
new file mode 100644
index 00000000000..ae9bc21965d
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Deployment.xsd
@@ -0,0 +1,776 @@
+<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:xmi="http://www.omg.org/XMI"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:Deployment="http://www.omg.org/Deployment"
+ targetNamespace="http://www.omg.org/Deployment">
+
+ <xsd:import namespace="http://www.omg.org/XMI" schemaLocation="XMI.xsd" />
+
+
+ <xsd:complexType name="Any">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="type" type="Deployment:DataType"/>
+ <xsd:element name="value" type="Deployment:DataValue"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="Any" type="Deployment:Any"/>
+ <xsd:complexType name="DataType">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="kind" type="Deployment:TCKind"/>
+ <xsd:element name="enum" type="Deployment:EnumType"/>
+ <xsd:element name="objref" type="Deployment:ObjrefType"/>
+ <xsd:element name="boundedString" type="Deployment:BoundedStringType"/>
+ <xsd:element name="fixed" type="Deployment:FixedType"/>
+ <xsd:element name="array" type="Deployment:ArrayType"/>
+ <xsd:element name="sequence" type="Deployment:SequenceType"/>
+ <xsd:element name="alias" type="Deployment:AliasType"/>
+ <xsd:element name="struct" type="Deployment:StructType"/>
+ <xsd:element name="value" type="Deployment:ValueType"/>
+ <xsd:element name="union" type="Deployment:UnionType"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="DataType" type="Deployment:DataType"/>
+ <xsd:complexType name="DataValue">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="short" type="xsd:short"/>
+ <xsd:element name="long" type="xsd:int"/>
+ <xsd:element name="ushort" type="xsd:unsignedShort"/>
+ <xsd:element name="ulong" type="xsd:unsignedInt"/>
+ <xsd:element name="float" type="xsd:float"/>
+ <xsd:element name="double" type="xsd:double"/>
+ <xsd:element name="boolean" type="xsd:boolean"/>
+ <xsd:element name="octet" type="xsd:unsignedByte"/>
+ <xsd:element name="opaque" type="xsd:base64Binary"/>
+ <xsd:element name="objref" type="xsd:string"/>
+ <xsd:element name="enum" type="xsd:string"/>
+ <xsd:element name="string" type="xsd:string"/>
+ <xsd:element name="longlong" type="xsd:long"/>
+ <xsd:element name="ulonglong" type="xsd:unsignedLong"/>
+ <xsd:element name="longdouble" type="xsd:double"/>
+ <xsd:element name="fixed" type="xsd:string"/>
+ <xsd:element name="any" type="Deployment:Any"/>
+ <xsd:element name="typecode" type="Deployment:DataType"/>
+ <xsd:element name="element" type="Deployment:DataValue"/>
+ <xsd:element name="discriminator" type="Deployment:DataValue"/>
+ <xsd:element name="value" type="Deployment:DataValue"/>
+ <xsd:element name="boxedValue" type="Deployment:DataValue"/>
+ <xsd:element name="member" type="Deployment:NamedValue"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="DataValue" type="Deployment:DataValue"/>
+
+
+ <xsd:complexType name="EnumType">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="typeId" type="xsd:string"/>
+ <xsd:element name="member" type="xsd:string"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="EnumType" type="Deployment:EnumType"/>
+ <xsd:complexType name="ObjrefType">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="typeId" type="xsd:string"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+
+
+ <xsd:element name="ObjrefType" type="Deployment:ObjrefType"/>
+ <xsd:complexType name="BoundedStringType">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="bound" type="xsd:string"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="BoundedStringType" type="Deployment:BoundedStringType"/>
+ <xsd:complexType name="FixedType">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="digits" type="xsd:string"/>
+ <xsd:element name="scale" type="xsd:string"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="FixedType" type="Deployment:FixedType"/>
+ <xsd:complexType name="ArrayType">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="length" type="xsd:string"/>
+ <xsd:element name="elementType" type="Deployment:DataType"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="ArrayType" type="Deployment:ArrayType"/>
+ <xsd:complexType name="SequenceType">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="bound" type="xsd:string"/>
+ <xsd:element name="elementType" type="Deployment:DataType"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="SequenceType" type="Deployment:SequenceType"/>
+ <xsd:complexType name="AliasType">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="typeId" type="xsd:string"/>
+ <xsd:element name="elementType" type="Deployment:DataType"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="AliasType" type="Deployment:AliasType"/>
+ <xsd:complexType name="StructType">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="typeId" type="xsd:string"/>
+ <xsd:element name="member" type="Deployment:StructMemberType"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="StructType" type="Deployment:StructType"/>
+ <xsd:complexType name="StructMemberType">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="type" type="Deployment:DataType"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="StructMemberType" type="Deployment:StructMemberType"/>
+ <xsd:complexType name="ValueType">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="typeId" type="xsd:string"/>
+ <xsd:element name="modifier" type="xsd:string"/>
+ <xsd:element name="baseType" type="Deployment:DataType"/>
+ <xsd:element name="member" type="Deployment:ValueMemberType"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="ValueType" type="Deployment:ValueType"/>
+ <xsd:complexType name="ValueMemberType">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="visibility" type="xsd:string"/>
+ <xsd:element name="type" type="Deployment:DataType"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="ValueMemberType" type="Deployment:ValueMemberType"/>
+ <xsd:complexType name="UnionType">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="typeId" type="xsd:string"/>
+ <xsd:element name="default" type="Deployment:UnionMemberType"/>
+ <xsd:element name="discriminatorType" type="Deployment:DataType"/>
+ <xsd:element name="member" type="Deployment:UnionMemberType"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="UnionType" type="Deployment:UnionType"/>
+ <xsd:complexType name="UnionMemberType">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="type" type="Deployment:DataType"/>
+ <xsd:element name="label" type="Deployment:DataValue"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="UnionMemberType" type="Deployment:UnionMemberType"/>
+ <xsd:complexType name="NamedValue">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="value" type="Deployment:DataValue"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="NamedValue" type="Deployment:NamedValue"/>
+ <xsd:complexType name="Bridge">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="label" type="xsd:string"/>
+ <xsd:element name="connect" type="Deployment:Interconnect"/>
+ <xsd:element name="resource" type="Deployment:Resource"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="Bridge" type="Deployment:Bridge"/>
+ <xsd:complexType name="Interconnect">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="label" type="xsd:string"/>
+ <xsd:element name="connection" type="Deployment:Bridge"/>
+ <xsd:element name="connect" type="Deployment:Node"/>
+ <xsd:element name="resource" type="Deployment:Resource"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="Interconnect" type="Deployment:Interconnect"/>
+ <xsd:complexType name="Node">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="label" type="xsd:string"/>
+ <xsd:element name="connection" type="Deployment:Interconnect"/>
+ <xsd:element name="sharedResource" type="Deployment:SharedResource"/>
+ <xsd:element name="resource" type="Deployment:Resource"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="Node" type="Deployment:Node"/>
+ <xsd:complexType name="Resource">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="resourceType" type="xsd:string"/>
+ <xsd:element name="property" type="Deployment:SatisfierProperty"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="Resource" type="Deployment:Resource"/>
+ <xsd:complexType name="SharedResource">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="resourceType" type="xsd:string"/>
+ <xsd:element name="node" type="Deployment:Node"/>
+ <xsd:element name="property" type="Deployment:SatisfierProperty"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="SharedResource" type="Deployment:SharedResource"/>
+ <xsd:complexType name="Domain">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="UUID" type="xsd:string"/>
+ <xsd:element name="label" type="xsd:string"/>
+ <xsd:element name="sharedResource" type="Deployment:SharedResource"/>
+ <xsd:element name="node" type="Deployment:Node"/>
+ <xsd:element name="interconnect" type="Deployment:Interconnect"/>
+ <xsd:element name="bridge" type="Deployment:Bridge"/>
+ <xsd:element name="infoProperty" type="Deployment:Property"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="Domain" type="Deployment:Domain"/>
+ <xsd:complexType name="PlanPropertyMapping">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="source" type="xsd:string"/>
+ <xsd:element name="externalName" type="xsd:string"/>
+ <xsd:element name="delegatesTo" type="Deployment:PlanSubcomponentPropertyReference"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="PlanPropertyMapping" type="Deployment:PlanPropertyMapping"/>
+ <xsd:complexType name="PlanSubcomponentPropertyReference">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="propertyName" type="xsd:string"/>
+ <xsd:element name="instance" type="Deployment:InstanceDeploymentDescription"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="PlanSubcomponentPropertyReference" type="Deployment:PlanSubcomponentPropertyReference"/>
+ <xsd:complexType name="PlanSubcomponentPortEndpoint">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="portName" type="xsd:string"/>
+ <xsd:element name="provider" type="xsd:string"/>
+ <xsd:element name="kind" type="Deployment:CCMComponentPortKind"/>
+ <xsd:element name="instance" type="Deployment:InstanceDeploymentDescription"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="PlanSubcomponentPortEndpoint" type="Deployment:PlanSubcomponentPortEndpoint"/>
+ <xsd:complexType name="PlanConnectionDescription">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="source" type="xsd:string"/>
+ <xsd:element name="deployRequirement" type="Deployment:Requirement"/>
+ <xsd:element name="externalEndpoint" type="Deployment:ComponentExternalPortEndpoint"/>
+ <xsd:element name="internalEndpoint" type="Deployment:PlanSubcomponentPortEndpoint"/>
+ <xsd:element name="externalReference" type="Deployment:ExternalReferenceEndpoint"/>
+ <xsd:element name="deployedResource" type="Deployment:ConnectionResourceDeploymentDescription"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="PlanConnectionDescription" type="Deployment:PlanConnectionDescription"/>
+ <xsd:complexType name="InstanceDeploymentDescription">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="node" type="xsd:string"/>
+ <xsd:element name="source" type="xsd:string"/>
+ <xsd:element name="implementation" type="Deployment:MonolithicDeploymentDescription"/>
+ <xsd:element name="configProperty" type="Deployment:Property"/>
+ <xsd:element name="deployedResource" type="Deployment:InstanceResourceDeploymentDescription"/>
+ <xsd:element name="deployedSharedResource" type="Deployment:InstanceResourceDeploymentDescription"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="InstanceDeploymentDescription" type="Deployment:InstanceDeploymentDescription"/>
+ <xsd:complexType name="MonolithicDeploymentDescription">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="source" type="xsd:string"/>
+ <xsd:element name="artifact" type="Deployment:ArtifactDeploymentDescription"/>
+ <xsd:element name="execParameter" type="Deployment:Property"/>
+ <xsd:element name="deployRequirement" type="Deployment:Requirement"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="MonolithicDeploymentDescription" type="Deployment:MonolithicDeploymentDescription"/>
+ <xsd:complexType name="ArtifactDeploymentDescription">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="location" type="xsd:string"/>
+ <xsd:element name="node" type="xsd:string"/>
+ <xsd:element name="source" type="xsd:string"/>
+ <xsd:element name="execParameter" type="Deployment:Property"/>
+ <xsd:element name="deployRequirement" type="Deployment:Requirement"/>
+ <xsd:element name="deployedResource" type="Deployment:ResourceDeploymentDescription"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="ArtifactDeploymentDescription" type="Deployment:ArtifactDeploymentDescription"/>
+
+
+ <xsd:complexType name="DeploymentPlan">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="UUID" type="xsd:string"/>
+ <xsd:element name="label" type="xsd:string"/>
+ <xsd:element name="realizes" type="Deployment:ComponentInterfaceDescription"/>
+ <xsd:element name="implementation" type="Deployment:MonolithicDeploymentDescription"/>
+ <xsd:element name="instance" type="Deployment:InstanceDeploymentDescription"/>
+ <xsd:element name="connection" type="Deployment:PlanConnectionDescription"/>
+ <xsd:element name="externalProperty" type="Deployment:PlanPropertyMapping"/>
+ <xsd:element name="dependsOn" type="Deployment:ImplementationDependency"/>
+ <xsd:element name="artifact" type="Deployment:ArtifactDeploymentDescription"/>
+ <xsd:element name="infoProperty" type="Deployment:Property"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="DeploymentPlan" type="Deployment:DeploymentPlan"/>
+
+
+ <xsd:complexType name="ResourceDeploymentDescription">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="requirementName" type="xsd:string"/>
+ <xsd:element name="resourceName" type="xsd:string"/>
+ <xsd:element name="resourceValue" type="Deployment:Any"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="ResourceDeploymentDescription" type="Deployment:ResourceDeploymentDescription"/>
+ <xsd:complexType name="InstanceResourceDeploymentDescription">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="resourceUsage" type="Deployment:ResourceUsageKind"/>
+ <xsd:element name="requirementName" type="xsd:string"/>
+ <xsd:element name="resourceName" type="xsd:string"/>
+ <xsd:element name="resourceValue" type="Deployment:Any"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="InstanceResourceDeploymentDescription" type="Deployment:InstanceResourceDeploymentDescription"/>
+ <xsd:complexType name="ConnectionResourceDeploymentDescription">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="targetName" type="xsd:string"/>
+ <xsd:element name="requirementName" type="xsd:string"/>
+ <xsd:element name="resourceName" type="xsd:string"/>
+ <xsd:element name="resourceValue" type="Deployment:Any"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="ConnectionResourceDeploymentDescription" type="Deployment:ConnectionResourceDeploymentDescription"/>
+ <xsd:complexType name="Capability">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="resourceType" type="xsd:string"/>
+ <xsd:element name="property" type="Deployment:SatisfierProperty"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="Capability" type="Deployment:Capability"/>
+ <xsd:complexType name="ComponentPropertyDescription">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="type" type="Deployment:DataType"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="ComponentPropertyDescription" type="Deployment:ComponentPropertyDescription"/>
+ <xsd:complexType name="ComponentPortDescription">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="specificType" type="xsd:string"/>
+ <xsd:element name="supportedType" type="xsd:string"/>
+ <xsd:element name="provider" type="xsd:string"/>
+ <xsd:element name="exclusiveProvider" type="xsd:string"/>
+ <xsd:element name="exclusiveUser" type="xsd:string"/>
+ <xsd:element name="optional" type="xsd:string"/>
+ <xsd:element name="kind" type="Deployment:CCMComponentPortKind"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="ComponentPortDescription" type="Deployment:ComponentPortDescription"/>
+ <xsd:complexType name="ComponentInterfaceDescription">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="label" type="xsd:string"/>
+ <xsd:element name="UUID" type="xsd:string"/>
+ <xsd:element name="specificType" type="xsd:string"/>
+ <xsd:element name="supportedType" type="xsd:string"/>
+ <xsd:element name="idlFile" type="xsd:string"/>
+ <xsd:element name="configProperty" type="Deployment:Property"/>
+ <xsd:element name="port" type="Deployment:ComponentPortDescription"/>
+ <xsd:element name="property" type="Deployment:ComponentPropertyDescription"/>
+ <xsd:element name="infoProperty" type="Deployment:Property"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="ComponentInterfaceDescription" type="Deployment:ComponentInterfaceDescription"/>
+ <xsd:complexType name="ImplementationArtifactDescription">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="label" type="xsd:string"/>
+ <xsd:element name="UUID" type="xsd:string"/>
+ <xsd:element name="location" type="xsd:string"/>
+ <xsd:element name="execParameter" type="Deployment:Property"/>
+ <xsd:element name="deployRequirement" type="Deployment:Requirement"/>
+ <xsd:element name="dependsOn" type="Deployment:NamedImplementationArtifact"/>
+ <xsd:element name="infoProperty" type="Deployment:Property"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="ImplementationArtifactDescription" type="Deployment:ImplementationArtifactDescription"/>
+ <xsd:complexType name="MonolithicImplementationDescription">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="execParameter" type="Deployment:Property"/>
+ <xsd:element name="primaryArtifact" type="Deployment:NamedImplementationArtifact"/>
+ <xsd:element name="deployRequirement" type="Deployment:ImplementationRequirement"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="MonolithicImplementationDescription" type="Deployment:MonolithicImplementationDescription"/>
+ <xsd:complexType name="AssemblyPropertyMapping">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="externalName" type="xsd:string"/>
+ <xsd:element name="delegatesTo" type="Deployment:SubcomponentPropertyReference"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="AssemblyPropertyMapping" type="Deployment:AssemblyPropertyMapping"/>
+ <xsd:complexType name="SubcomponentPropertyReference">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="propertyName" type="xsd:string"/>
+ <xsd:element name="instance" type="Deployment:SubcomponentInstantiationDescription"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="SubcomponentPropertyReference" type="Deployment:SubcomponentPropertyReference"/>
+ <xsd:complexType name="SubcomponentPortEndpoint">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="portName" type="xsd:string"/>
+ <xsd:element name="instance" type="Deployment:SubcomponentInstantiationDescription"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="SubcomponentPortEndpoint" type="Deployment:SubcomponentPortEndpoint"/>
+ <xsd:complexType name="AssemblyConnectionDescription">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="deployRequirement" type="Deployment:Requirement"/>
+ <xsd:element name="externalEndpoint" type="Deployment:ComponentExternalPortEndpoint"/>
+ <xsd:element name="internalEndpoint" type="Deployment:SubcomponentPortEndpoint"/>
+ <xsd:element name="externalReference" type="Deployment:ExternalReferenceEndpoint"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="AssemblyConnectionDescription" type="Deployment:AssemblyConnectionDescription"/>
+ <xsd:complexType name="SubcomponentInstantiationDescription">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="package" type="Deployment:ComponentPackageDescription"/>
+ <xsd:element name="configProperty" type="Deployment:Property"/>
+ <xsd:element name="selectRequirement" type="Deployment:Requirement"/>
+ <xsd:element name="reference" type="Deployment:ComponentPackageReference"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="SubcomponentInstantiationDescription" type="Deployment:SubcomponentInstantiationDescription"/>
+ <xsd:complexType name="ComponentAssemblyDescription">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="instance" type="Deployment:SubcomponentInstantiationDescription"/>
+ <xsd:element name="connection" type="Deployment:AssemblyConnectionDescription"/>
+ <xsd:element name="externalProperty" type="Deployment:AssemblyPropertyMapping"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="ComponentAssemblyDescription" type="Deployment:ComponentAssemblyDescription"/>
+ <xsd:complexType name="ComponentImplementationDescription">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="label" type="xsd:string"/>
+ <xsd:element name="UUID" type="xsd:string"/>
+ <xsd:element name="implements" type="Deployment:ComponentInterfaceDescription"/>
+ <xsd:element name="assemblyImpl" type="Deployment:ComponentAssemblyDescription"/>
+ <xsd:element name="monolithicImpl" type="Deployment:MonolithicImplementationDescription"/>
+ <xsd:element name="configProperty" type="Deployment:Property"/>
+ <xsd:element name="capability" type="Deployment:Capability"/>
+ <xsd:element name="dependsOn" type="Deployment:ImplementationDependency"/>
+ <xsd:element name="infoProperty" type="Deployment:Property"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="ComponentImplementationDescription" type="Deployment:ComponentImplementationDescription"/>
+ <xsd:complexType name="ComponentPackageReference">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="requiredUUID" type="xsd:string"/>
+ <xsd:element name="requiredName" type="xsd:string"/>
+ <xsd:element name="requiredType" type="xsd:string"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="ComponentPackageReference" type="Deployment:ComponentPackageReference"/>
+ <xsd:complexType name="ComponentPackageDescription">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="label" type="xsd:string"/>
+ <xsd:element name="UUID" type="xsd:string"/>
+ <xsd:element name="realizes" type="Deployment:ComponentInterfaceDescription"/>
+ <xsd:element name="configProperty" type="Deployment:Property"/>
+ <xsd:element name="implementation" type="Deployment:PackagedComponentImplementation"/>
+ <xsd:element name="infoProperty" type="Deployment:Property"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="ComponentPackageDescription" type="Deployment:ComponentPackageDescription"/>
+ <xsd:complexType name="PackageConfiguration">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="label" type="xsd:string"/>
+ <xsd:element name="UUID" type="xsd:string"/>
+ <xsd:element name="specializedConfig" type="Deployment:PackageConfiguration"/>
+ <xsd:element name="basePackage" type="Deployment:ComponentPackageDescription"/>
+ <xsd:element name="reference" type="Deployment:ComponentPackageReference"/>
+ <xsd:element name="selectRequirement" type="Deployment:Requirement"/>
+ <xsd:element name="configProperty" type="Deployment:Property"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="PackageConfiguration" type="Deployment:PackageConfiguration"/>
+ <xsd:complexType name="PackagedComponentImplementation">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="referencedImplementation" type="Deployment:ComponentImplementationDescription"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="PackagedComponentImplementation" type="Deployment:PackagedComponentImplementation"/>
+ <xsd:complexType name="NamedImplementationArtifact">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="referencedArtifact" type="Deployment:ImplementationArtifactDescription"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="NamedImplementationArtifact" type="Deployment:NamedImplementationArtifact"/>
+ <xsd:complexType name="ImplementationRequirement">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="resourceUsage" type="Deployment:ResourceUsageKind"/>
+ <xsd:element name="resourcePort" type="xsd:string"/>
+ <xsd:element name="componentPort" type="xsd:string"/>
+ <xsd:element name="resourceType" type="xsd:string"/>
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="property" type="Deployment:Property"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="ImplementationRequirement" type="Deployment:ImplementationRequirement"/>
+ <xsd:complexType name="RequirementSatisfier">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="resourceType" type="xsd:string"/>
+ <xsd:element name="property" type="Deployment:SatisfierProperty"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="RequirementSatisfier" type="Deployment:RequirementSatisfier"/>
+ <xsd:complexType name="SatisfierProperty">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="kind" type="Deployment:SatisfierPropertyKind"/>
+ <xsd:element name="value" type="Deployment:Any"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="SatisfierProperty" type="Deployment:SatisfierProperty"/>
+ <xsd:complexType name="Requirement">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="resourceType" type="xsd:string"/>
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="property" type="Deployment:Property"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="Requirement" type="Deployment:Requirement"/>
+ <xsd:complexType name="Property">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="value" type="Deployment:Any"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="Property" type="Deployment:Property"/>
+ <xsd:complexType name="ExternalReferenceEndpoint">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="location" type="xsd:string"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="ExternalReferenceEndpoint" type="Deployment:ExternalReferenceEndpoint"/>
+ <xsd:complexType name="ComponentExternalPortEndpoint">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="portName" type="xsd:string"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="ComponentExternalPortEndpoint" type="Deployment:ComponentExternalPortEndpoint"/>
+ <xsd:complexType name="ImplementationDependency">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="requiredType" type="xsd:string"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="ImplementationDependency" type="Deployment:ImplementationDependency"/>
+ <xsd:complexType name="TopLevelPackageDescription">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="package" type="Deployment:PackageConfiguration"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="TopLevelPackageDescription" type="Deployment:TopLevelPackageDescription"/>
+ <xsd:simpleType name="TCKind">
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="tk_null"/>
+ <xsd:enumeration value="tk_void"/>
+ <xsd:enumeration value="tk_short"/>
+ <xsd:enumeration value="tk_long"/>
+ <xsd:enumeration value="tk_ushort"/>
+ <xsd:enumeration value="tk_ulong"/>
+ <xsd:enumeration value="tk_float"/>
+ <xsd:enumeration value="tk_double"/>
+ <xsd:enumeration value="tk_boolean"/>
+ <xsd:enumeration value="tk_char"/>
+ <xsd:enumeration value="tk_octet"/>
+ <xsd:enumeration value="tk_any"/>
+ <xsd:enumeration value="tk_TypeCode"/>
+ <xsd:enumeration value="tk_Principal"/>
+ <xsd:enumeration value="tk_objref"/>
+ <xsd:enumeration value="tk_struct"/>
+ <xsd:enumeration value="tk_union"/>
+ <xsd:enumeration value="tk_enum"/>
+ <xsd:enumeration value="tk_string"/>
+ <xsd:enumeration value="tk_sequence"/>
+ <xsd:enumeration value="tk_array"/>
+ <xsd:enumeration value="tk_alias"/>
+ <xsd:enumeration value="tk_except"/>
+ <xsd:enumeration value="tk_longlong"/>
+ <xsd:enumeration value="tk_ulonglong"/>
+ <xsd:enumeration value="tk_longdouble"/>
+ <xsd:enumeration value="tk_wchar"/>
+ <xsd:enumeration value="tk_wstring"/>
+ <xsd:enumeration value="tk_wfixed"/>
+ <xsd:enumeration value="tk_value"/>
+ <xsd:enumeration value="tk_value_box"/>
+ <xsd:enumeration value="tk_native"/>
+ <xsd:enumeration value="tk_abstract_interface"/>
+ <xsd:enumeration value="tk_local_interface"/>
+ <xsd:enumeration value="tk_component"/>
+ <xsd:enumeration value="tk_home"/>
+ <xsd:enumeration value="tk_event"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+ <xsd:simpleType name="ResourceUsageKind">
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="None"/>
+ <xsd:enumeration value="InstanceUsesResource"/>
+ <xsd:enumeration value="ResourceUsesInstance"/>
+ <xsd:enumeration value="PortUsesResource"/>
+ <xsd:enumeration value="ResourceUsesPort"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+ <xsd:simpleType name="CCMComponentPortKind">
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="Facet"/>
+ <xsd:enumeration value="SimplexReceptacle"/>
+ <xsd:enumeration value="MultiplexReceptacle"/>
+ <xsd:enumeration value="EventEmitter"/>
+ <xsd:enumeration value="EventPublisher"/>
+ <xsd:enumeration value="EventConsumer"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+ <xsd:simpleType name="SatisfierPropertyKind">
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="Quantity"/>
+ <xsd:enumeration value="Capacity"/>
+ <xsd:enumeration value="Minimum"/>
+ <xsd:enumeration value="Maximum"/>
+ <xsd:enumeration value="Attribute"/>
+ <xsd:enumeration value="Selection"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+</xsd:schema>
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Domain.cdd b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Domain.cdd
new file mode 100644
index 00000000000..54a8c1f5a82
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Domain.cdd
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<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">
+<label>Messenger Application Domain</label>
+<node>
+ <name>Messenger_Node</name>
+ <label>Messenger's Node</label>
+</node>
+<node>
+ <name>First_Receiver_Node</name>
+ <label>First Receiver's Node</label>
+</node>
+<node>
+ <name>Second_Receiver_Node</name>
+ <label>Second Receiver's Node</label>
+</node>
+<node>
+ <name>Administrator_Node</name>
+ <label>Administrator's Node</label>
+</node>
+</Deployment:Domain>
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Libraries.iad b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Libraries.iad
new file mode 100644
index 00000000000..d861613c157
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Libraries.iad
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<Deployment:ImplementationArtifactDescription
+ 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>ACE/TAO/CIAO Libraries</label>
+ <location>$ACE_ROOT/lib/ACE</location>
+ <location>$ACE_ROOT/lib/TAO</location>
+ <location>$ACE_ROOT/lib/CIAO_Client</location>
+</Deployment:ImplementationArtifactDescription>
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Messenger.ccd b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Messenger.ccd
new file mode 100644
index 00000000000..cf79d7fb9f7
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Messenger.ccd
@@ -0,0 +1,90 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<Deployment:ComponentInterfaceDescription
+ 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>Messenger Component</label>
+ <specificType>IDL:Messenger:1.0</specificType>
+ <idlFile>Messenger.idl</idlFile>
+
+ <property>
+ <name>subject</name>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ </property>
+
+ <port>
+ <name>control</name>
+ <exclusiveProvider>false</exclusiveProvider>
+ <exclusiveUser>false</exclusiveUser>
+ <optional>true</optional>
+ <provider>true</provider>
+ <supportedType>IDL:Runnable:1.0</supportedType>
+ <specificType>IDL:Runnable:1.0</specificType>
+ <kind>Facet</kind>
+ </port>
+
+ <port>
+ <name>content</name>
+ <exclusiveProvider>false</exclusiveProvider>
+ <exclusiveUser>false</exclusiveUser>
+ <optional>true</optional>
+ <provider>true</provider>
+ <supportedType>IDL:Publication:1.0</supportedType>
+ <specificType>IDL:Publication:1.0</specificType>
+ <kind>Facet</kind>
+ </port>
+
+ <port>
+ <name>message_publisher</name>
+ <exclusiveProvider>false</exclusiveProvider>
+ <exclusiveUser>false</exclusiveUser>
+ <optional>true</optional>
+ <provider>false</provider>
+ <supportedType>IDL:Message:1.0</supportedType>
+ <specificType>IDL:Message:1.0</specificType>
+ <kind>EventPublisher</kind>
+ </port>
+
+ <port>
+ <name>message_history</name>
+ <exclusiveProvider>false</exclusiveProvider>
+ <exclusiveUser>false</exclusiveUser>
+ <optional>true</optional>
+ <provider>true</provider>
+ <supportedType>IDL:History:1.0</supportedType>
+ <specificType>IDL:History:1.0</specificType>
+ <kind>Facet</kind>
+ </port>
+
+ <!-- Default value for subject property, can be overridden.
+ CIAO does not process this (yet)
+ -->
+ <configProperty>
+ <name>subject</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Default Subject</string>
+ </value>
+ </value>
+ </configProperty>
+
+ <!-- infoProperty elements are optional, and are non-functional -->
+ <infoProperty>
+ <name>comment</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>This CCD describes the Messenger's interface</string>
+ </value>
+ </value>
+ </infoProperty>
+
+</Deployment:ComponentInterfaceDescription>
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Messenger.cid b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Messenger.cid
new file mode 100644
index 00000000000..c4e934f1ee2
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Messenger.cid
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<Deployment:ComponentImplementationDescription
+ 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>Messenger Implementation</label>
+ <implements href="Messenger.ccd"/>
+ <monolithicImpl>
+ <primaryArtifact>
+ <name>Messenger_Stub</name>
+ <referencedArtifact href="Messenger_Stub.iad"/>
+ </primaryArtifact>
+ <primaryArtifact>
+ <name>Messenger_Svnt</name>
+ <referencedArtifact href="Messenger_Svnt.iad"/>
+ </primaryArtifact>
+ <primaryArtifact>
+ <name>Messenger_Exec</name>
+ <referencedArtifact href="Messenger_Exec.iad"/>
+ </primaryArtifact>
+ </monolithicImpl>
+
+ <configProperty>
+ <name>ComponentIOR</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Messenger.ior</string>
+ </value>
+ </value>
+ </configProperty>
+
+</Deployment:ComponentImplementationDescription>
+
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Messenger.cpd b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Messenger.cpd
new file mode 100644
index 00000000000..ee624b9bce5
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Messenger.cpd
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<Deployment:ComponentPackageDescription
+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>Messenger Component</label>
+ <realizes href="Messenger.ccd"/>
+ <implementation>
+ <name>MessengerImpl</name>
+ <referencedImplementation href="Messenger.cid"/>
+ </implementation>
+
+</Deployment:ComponentPackageDescription>
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/MessengerAssembly.ccd b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/MessengerAssembly.ccd
new file mode 100644
index 00000000000..c048d99133d
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/MessengerAssembly.ccd
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<Deployment:ComponentInterfaceDescription
+ 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>Messenger Assembly</label>
+
+ <property>
+ <name>subject</name>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ </property>
+
+ <!-- Default value for subject property, can be overridden.
+ CIAO does not process this (yet)
+ -->
+ <configProperty>
+ <name>subject</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Default Subject</string>
+ </value>
+ </value>
+ </configProperty>
+
+</Deployment:ComponentInterfaceDescription>
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/MessengerAssembly.cid b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/MessengerAssembly.cid
new file mode 100644
index 00000000000..bd0bf4e56ce
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/MessengerAssembly.cid
@@ -0,0 +1,110 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<Deployment:ComponentImplementationDescription
+ 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>Messenger Assembly</label>
+ <implements href="MessengerAssembly.ccd"/>
+ <assemblyImpl>
+ <instance xmi:id="a_Messenger">
+ <name>Messenger_Instance</name>
+ <package href="Messenger.cpd"/>
+ </instance>
+ <instance xmi:id="first_Receiver">
+ <name>First_Receiver_Instance</name>
+ <package href="Receiver.cpd"/>
+ </instance>
+ <instance xmi:id="second_Receiver">
+ <name>Second_Receiver_Instance</name>
+ <package href="Receiver.cpd"/>
+ </instance>
+ <instance xmi:id="a_Administrator">
+ <name>Administrator_Instance</name>
+ <package href="Administrator.cpd"/>
+ </instance>
+
+ <connection>
+ <name>Messenger_to_First_Receiver_Publish</name>
+ <internalEndpoint>
+ <portName>message_publisher</portName>
+ <instance xmi:idref="a_Messenger"/>
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>message_consumer</portName>
+ <instance xmi:idref="first_Receiver"/>
+ </internalEndpoint>
+ </connection>
+ <connection>
+ <name>Messenger_to_First_Receiver_History</name>
+ <internalEndpoint>
+ <portName>message_history</portName>
+ <instance xmi:idref="a_Messenger"/>
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>message_history</portName>
+ <instance xmi:idref="first_Receiver"/>
+ </internalEndpoint>
+ </connection>
+
+ <connection>
+ <name>Messenger_to_Second_Receiver_Publisher</name>
+ <internalEndpoint>
+ <portName>message_publisher</portName>
+ <instance xmi:idref="a_Messenger"/>
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>message_consumer</portName>
+ <instance xmi:idref="second_Receiver"/>
+ </internalEndpoint>
+ </connection>
+ <connection>
+ <name>Messenger_to_Second_Receiver_History</name>
+ <internalEndpoint>
+ <portName>message_history</portName>
+ <instance xmi:idref="a_Messenger"/>
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>message_history</portName>
+ <instance xmi:idref="second_Receiver"/>
+ </internalEndpoint>
+ </connection>
+
+ <connection>
+ <name>Messenger_to_Administrator_Control</name>
+ <internalEndpoint>
+ <portName>control</portName>
+ <instance xmi:idref="a_Messenger"/>
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>runnables</portName>
+ <instance xmi:idref="a_Administrator"/>
+ </internalEndpoint>
+ </connection>
+ <connection>
+ <name>Messenger_to_Administrator_Content</name>
+ <internalEndpoint>
+ <portName>content</portName>
+ <instance xmi:idref="a_Messenger"/>
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>content</portName>
+ <instance xmi:idref="a_Administrator"/>
+ </internalEndpoint>
+ </connection>
+
+ <!--
+ Not sure that externalName has to match.
+ Don't know if CIAO processes this yet.
+ -->
+ <externalProperty>
+ <name>Subject Mapping</name>
+ <externalName>subject</externalName>
+ <delegatesTo>
+ <propertyName>subject</propertyName>
+ <instance xmi:idref="a_Messenger"/>
+ </delegatesTo>
+ </externalProperty>
+
+ </assemblyImpl>
+</Deployment:ComponentImplementationDescription>
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/MessengerAssembly.cpd b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/MessengerAssembly.cpd
new file mode 100644
index 00000000000..a719ad571c9
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/MessengerAssembly.cpd
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<Deployment:ComponentPackageDescription
+ 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>Messenger Assembly Package</label>
+ <realizes href="MessengerAssembly.ccd"/>
+ <implementation>
+ <name>Messenger Application</name>
+ <referencedImplementation href="MessengerAssembly.cid"/>
+ </implementation>
+</Deployment:ComponentPackageDescription>
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Messenger_Exec.iad b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Messenger_Exec.iad
new file mode 100644
index 00000000000..0b8cef2092c
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Messenger_Exec.iad
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<Deployment:ImplementationArtifactDescription
+ 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>Messenger Executor Artifact</label>
+ <location>Messenger_exec</location>
+ <dependsOn>
+ <name>ACE/TAO/CIAO</name>
+ <referencedArtifact href="Libraries.iad"/>
+ </dependsOn>
+ <dependsOn>
+ <name>Messenger_Stub</name>
+ <referencedArtifact href="Messenger_Stub.iad"/>
+ </dependsOn>
+ <execParameter>
+ <name>entryPoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>createMessengerHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <!-- infoProperty elements are optional, and are non-functional -->
+ <infoProperty>
+ <name>comment</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>This IAD describes the Messenger's executor library</string>
+ </value>
+ </value>
+ </infoProperty>
+</Deployment:ImplementationArtifactDescription>
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Messenger_Stub.iad b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Messenger_Stub.iad
new file mode 100644
index 00000000000..50447209f50
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Messenger_Stub.iad
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<Deployment:ImplementationArtifactDescription
+ 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>Messenger Stub Artifact</label>
+ <location>Messenger_stub</location>
+ <dependsOn>
+ <name>ACE/TAO/CIAO</name>
+ <referencedArtifact href="Libraries.iad"/>
+ </dependsOn>
+ <!-- infoProperty elements are optional, and are non-functional -->
+ <infoProperty>
+ <name>comment</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>This IAD describes the Messenger's stub library</string>
+ </value>
+ </value>
+ </infoProperty>
+</Deployment:ImplementationArtifactDescription>
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Messenger_Svnt.iad b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Messenger_Svnt.iad
new file mode 100644
index 00000000000..29b83d63e53
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Messenger_Svnt.iad
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<Deployment:ImplementationArtifactDescription
+ 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>Messenger Servant Artifact</label>
+ <location>Messenger_svnt</location>
+ <dependsOn>
+ <name>ACE/TAO/CIAO</name>
+ <referencedArtifact href="Libraries.iad"/>
+ </dependsOn>
+ <dependsOn>
+ <name>Messenger_Stub</name>
+ <referencedArtifact href="Messenger_Stub.iad"/>
+ </dependsOn>
+ <execParameter>
+ <name>entryPoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>createMessengerHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <!-- infoProperty elements are optional, and are non-functional -->
+ <infoProperty>
+ <name>comment</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>This IAD describes the Messenger's servant library</string>
+ </value>
+ </value>
+ </infoProperty>
+</Deployment:ImplementationArtifactDescription>
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/README_15a b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/README_15a
new file mode 100644
index 00000000000..ac466837dc4
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/README_15a
@@ -0,0 +1,5 @@
+Deployment has changed in CIAO 0.5a (part of TAO 1.5a), now we use the plan
+launcher, which reads a single XML file called a flattened deployment plan.
+In our example, that file is Application-flattened.cdp. All the other XML
+files in this directory are here for reference and to correspond to the 1.4a
+TAO Developer's Guide, but they are not actually used.
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Receiver.ccd b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Receiver.ccd
new file mode 100644
index 00000000000..3094ae368dc
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Receiver.ccd
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<Deployment:ComponentInterfaceDescription
+ 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>Receiver Component</label>
+ <specificType>IDL:Receiver:1.0</specificType>
+ <supportedType>IDL:Receiver:1.0</supportedType>
+ <idlFile>Receiver.idl</idlFile>
+
+ <port>
+ <name>message_consumer</name>
+ <exclusiveProvider>false</exclusiveProvider>
+ <exclusiveUser>false</exclusiveUser>
+ <optional>false</optional>
+ <provider>true</provider>
+ <supportedType>IDL:Message:1.0</supportedType>
+ <specificType>IDL:Message:1.0</specificType>
+ <kind>EventConsumer</kind>
+ </port>
+
+ <port>
+ <name>message_history</name>
+ <exclusiveProvider>false</exclusiveProvider>
+ <exclusiveUser>true</exclusiveUser>
+ <optional>true</optional>
+ <provider>false</provider>
+ <supportedType>IDL:History:1.0</supportedType>
+ <specificType>IDL:History:1.0</specificType>
+ <kind>SimplexReceptacle</kind>
+ </port>
+
+ <!-- infoProperty elements are optional, and are non-functional -->
+ <infoProperty>
+ <name>comment</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>This CCD describes the Receiver's interface</string>
+ </value>
+ </value>
+ </infoProperty>
+
+</Deployment:ComponentInterfaceDescription>
+
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Receiver.cid b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Receiver.cid
new file mode 100644
index 00000000000..c5c85d648da
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Receiver.cid
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<Deployment:ComponentImplementationDescription
+ 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>Receiver Implementation</label>
+ <implements href="Receiver.ccd"/>
+ <monolithicImpl>
+ <primaryArtifact>
+ <name>Receiver_Stub</name>
+ <referencedArtifact href="Receiver_Stub.iad"/>
+ </primaryArtifact>
+ <primaryArtifact>
+ <name>Receiver_Svnt</name>
+ <referencedArtifact href="Receiver_Svnt.iad"/>
+ </primaryArtifact>
+ <primaryArtifact>
+ <name>Receiver_Exec</name>
+ <referencedArtifact href="Receiver_Exec.iad"/>
+ </primaryArtifact>
+ </monolithicImpl>
+ <configProperty>
+ <name>ComponentIOR</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Receiver.ior</string>
+ </value>
+ </value>
+ </configProperty>
+</Deployment:ComponentImplementationDescription>
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Receiver.cpd b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Receiver.cpd
new file mode 100644
index 00000000000..8b8ff890fa2
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Receiver.cpd
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<Deployment:ComponentPackageDescription 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>Receiver Component</label>
+ <realizes href="Receiver.ccd"/>
+ <implementation>
+ <name>ReceiverImpl</name>
+ <referencedImplementation href="Receiver.cid"/>
+ </implementation>
+
+</Deployment:ComponentPackageDescription>
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Receiver_Exec.iad b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Receiver_Exec.iad
new file mode 100644
index 00000000000..adcee103c94
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Receiver_Exec.iad
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<Deployment:ImplementationArtifactDescription
+ 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>Receiver Executor Artifact</label>
+ <location>Receiver_exec</location>
+ <dependsOn>
+ <name>ACE/TAO/CIAO</name>
+ <referencedArtifact href="Libraries.iad"/>
+ </dependsOn>
+ <dependsOn>
+ <name>Receiver_Stub</name>
+ <referencedArtifact href="Receiver_Stub.iad"/>
+ </dependsOn>
+ <execParameter>
+ <name>entryPoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>createReceiverHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <!-- infoProperty elements are optional, and are non-functional -->
+ <infoProperty>
+ <name>comment</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>This IAD describes the Receiver's executor library</string>
+ </value>
+ </value>
+ </infoProperty>
+</Deployment:ImplementationArtifactDescription>
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Receiver_Stub.iad b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Receiver_Stub.iad
new file mode 100644
index 00000000000..63d7e37cc8e
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Receiver_Stub.iad
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<Deployment:ImplementationArtifactDescription
+ 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>Receiver Stub Artifact</label>
+ <location>Receiver_stub</location>
+ <dependsOn>
+ <name>ACE/TAO/CIAO</name>
+ <referencedArtifact href="Libraries.iad"/>
+ </dependsOn>
+ <dependsOn>
+ <name>Messenger_Stub</name>
+ <referencedArtifact href="Messenger_Stub.iad"/>
+ </dependsOn>
+ <!-- infoProperty elements are optional, and are non-functional -->
+ <infoProperty>
+ <name>comment</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>This IAD describes the Receiver's stub library</string>
+ </value>
+ </value>
+ </infoProperty>
+</Deployment:ImplementationArtifactDescription>
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Receiver_Svnt.iad b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Receiver_Svnt.iad
new file mode 100644
index 00000000000..8e3bf58d965
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Receiver_Svnt.iad
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<Deployment:ImplementationArtifactDescription
+ 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>Receiver Servant Artifact</label>
+ <location>Receiver_svnt</location>
+ <dependsOn>
+ <name>ACE/TAO/CIAO</name>
+ <referencedArtifact href="Libraries.iad"/>
+ </dependsOn>
+ <dependsOn>
+ <name>Receiver_Stub</name>
+ <referencedArtifact href="Receiver_Stub.iad"/>
+ </dependsOn>
+ <execParameter>
+ <name>entryPoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>createReceiverHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <!-- infoProperty elements are optional, and are non-functional -->
+ <infoProperty>
+ <name>comment</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>This IAD describes the Receiver's servant library</string>
+ </value>
+ </value>
+ </infoProperty>
+</Deployment:ImplementationArtifactDescription>
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/XMI.xsd b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/XMI.xsd
new file mode 100644
index 00000000000..f4adac91934
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/XMI.xsd
@@ -0,0 +1,35 @@
+<?xml version="1.0" ?>
+<xsd:schema targetNamespace="http://www.omg.org/XMI" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation='http://www.w3.org/2001/XMLSchema XMLSchema.xsd'>
+ <xsd:attribute name="id" type="xsd:ID" />
+ <xsd:attributeGroup name="IdentityAttribs">
+ <xsd:attribute form="qualified" name="label" type="xsd:string" use="optional" />
+ <xsd:attribute form="qualified" name="uuid" type="xsd:string" use="optional" />
+ </xsd:attributeGroup>
+ <xsd:attributeGroup name="LinkAttribs">
+ <xsd:attribute name="href" type="xsd:string" use="optional" />
+ <xsd:attribute form="qualified" name="idref" type="xsd:IDREF" use="optional" />
+ </xsd:attributeGroup>
+ <xsd:attributeGroup name="ObjectAttribs">
+ <xsd:attributeGroup ref="xmi:IdentityAttribs" />
+ <xsd:attributeGroup ref="xmi:LinkAttribs" />
+ <xsd:attribute fixed="2.0" form="qualified" name="version" type="xsd:string" use="optional" />
+ <xsd:attribute form="qualified" name="type" type="xsd:QName" use="optional" />
+ </xsd:attributeGroup>
+ <xsd:complexType name="Extension">
+ <xsd:choice maxOccurs="unbounded" minOccurs="0">
+ <xsd:any processContents="lax" />
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" />
+ <xsd:attributeGroup ref="xmi:ObjectAttribs" />
+ <xsd:attribute name="extender" type="xsd:string" use="optional" />
+ <xsd:attribute name="extenderID" type="xsd:string" use="optional" />
+ </xsd:complexType>
+ <xsd:element name="Extension" type="xmi:Extension" />
+ <xsd:complexType name="Any">
+ <xsd:choice maxOccurs="unbounded" minOccurs="0">
+ <xsd:any processContents="skip" />
+ </xsd:choice>
+ <xsd:anyAttribute processContents="skip" />
+ </xsd:complexType>
+</xsd:schema>
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/admin.dat b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/admin.dat
new file mode 100644
index 00000000000..f5815bb1f60
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/admin.dat
@@ -0,0 +1,7 @@
+1
+3
+1
+4
+Changing the publication text!
+2
+5
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/package.tpd b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/package.tpd
new file mode 100644
index 00000000000..f481b6bd789
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/package.tpd
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<Deployment:TopLevelPackageDescription
+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">
+ <package href="Application.pcd"/>
+</Deployment:TopLevelPackageDescription>
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/run_test.pl b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/run_test.pl
new file mode 100755
index 00000000000..77b1711b3be
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/run_test.pl
@@ -0,0 +1,117 @@
+# $Id$
+
+eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
+ & eval 'exec perl -S $0 $argv:q'
+ if 0;
+
+use Env (ACE_ROOT);
+use lib "$ACE_ROOT/bin";
+use PerlACE::Run_Test;
+
+$emior= PerlACE::LocalFile ("em.ior");
+unlink $emior;
+$plior= PerlACE::LocalFile ("pl.ior");
+unlink $plior;
+
+if (defined $ENV{'CIAO_ROOT'}) {
+ $CIAO_ROOT = $ENV{'CIAO_ROOT'};
+}
+else {
+ $CIAO_ROOT = "$ACE_ROOT/TAO/CIAO";
+}
+
+if (defined $ENV{'DANCE_ROOT'}) {
+ $DANCE_ROOT = $ENV{'DANCE_ROOT'};
+}
+else {
+ $DANCE_ROOT = "$ACE_ROOT/TAO/CIAO/DAnCE";
+}
+
+
+$NA = new PerlACE::Process ("$CIAO_ROOT/bin/ciao_componentserver");
+$NA_cmd = $NA->Executable ();
+
+$NA1 = new PerlACE::Process ("$DANCE_ROOT/bin/dance_node_manager",
+ "-ORBEndpoint iiop://localhost:11000 -s $NA_cmd -n Administrator_Node");
+
+$NA2 = new PerlACE::Process ("$DANCE_ROOT/bin/dance_node_manager",
+ "-ORBEndpoint iiop://localhost:22000 -s $NA_cmd -n First_Receiver_Node");
+
+$NA3 = new PerlACE::Process ("$DANCE_ROOT/bin/dance_node_manager",
+ "-ORBEndpoint iiop://localhost:33000 -s $NA_cmd -n Second_Receiver_Node");
+
+$NA4 = new PerlACE::Process ("$DANCE_ROOT/bin/dance_node_manager",
+ "-ORBEndpoint iiop://localhost:44000 -s $NA_cmd -n Messenger_Node");
+
+# Each Node Manager lauches a Node Application process.
+open(STDIN, "<admin.dat");
+$Ret1 = $NA1->Spawn ();
+if($Ret1 == -1) {
+ print STDERR "ERROR: Administrator returned <$Ret1>\n"
+}
+
+$Ret2 = $NA2->Spawn ();
+if($Ret2 == -1) {
+ print STDERR "ERROR: Receiver 1 returned <$Ret2>\n"
+}
+
+$Ret3 = $NA3->Spawn ();
+if($Ret3 == -1) {
+ print STDERR "ERROR: Receiver 2 returned <$Ret3>\n"
+}
+
+$Ret4 = $NA4->Spawn ();
+if($Ret4 == -1) {
+ print STDERR "ERROR: Messenger returned <$Ret4>\n"
+}
+
+#Start an Execution Manager
+$EM = new PerlACE::Process ("$DANCE_ROOT/bin/dance_execution_manager", "-e$emior --node-map ApplicationNodeMap.dat");
+
+$Ret5 = $EM->Spawn ();
+if($Ret5 == -1) {
+ print STDERR "ERROR: Execution Manager returned <$Ret5>\n"
+}
+
+if (PerlACE::waitforfile_timed ($emior, 5) == -1) {
+ print STDERR "ERROR: cannot find file <$emior>\n";
+ $EM->Kill();
+ unlink $emior;
+ exit 1;
+}
+
+sleep(5);
+#Start the plan launcher
+$EX = new PerlACE::Process ("$DANCE_ROOT/bin/dance_plan_launcher",
+ "-x Application-flattened_Unhomed.cdp -k file://$emior ");
+
+#Stop the plan launcher
+$EX2 = new PerlACE::Process ("$DANCE_ROOT/bin/dance_plan_launcher",
+ "-k file://$emior -x Application-flattened_Unhomed.cdp");
+
+$Ret6 = $EX->Spawn ();
+if($Ret6 == -1) {
+ print STDERR "ERROR: plan launcher returned <$Ret6>\n"
+}
+
+sleep(10);
+
+$Ret7 = $EX2->Spawn ();
+if($Ret7 == -1) {
+ print STDERR "ERROR: plan launcher (shutdown) returned <$Ret7>\n"
+}
+
+sleep(5);
+
+$NA1->Kill();
+$NA2->Kill();
+$NA3->Kill();
+$NA4->Kill();
+$EX->Kill();
+$EX2->Kill();
+$EM->Kill();
+
+unlink $emior;
+unlink $plior;
+
+exit 0;
diff --git a/modules/CIAO/examples/DevGuideExamples/readme.txt b/modules/CIAO/examples/DevGuideExamples/readme.txt
new file mode 100644
index 00000000000..f6efa4d084f
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/readme.txt
@@ -0,0 +1,12 @@
+"These examples were developed by and are included in this
+distribution with the permission of Object Computing, Inc. (OCI)
+for the purpose of illustrating the usage of certain features of
+The ACE ORB (TAO) as described in OCI's TAO Developer's Guide.
+They are provided as is with no warranty, expressed or implied.
+Though the examples are believed to illustrate correct usage of
+TAO, OCI does not actively maintain them in this distribution and
+does not guarantee their accuracy or their suitability for any
+particular use. OCI does provide additional distributions of TAO
+and provides commercial support for TAO. Visit
+http://www.theaceorb.com or contact sales@ociweb.com for more
+information on OCI's business model with respect to TAO." \ No newline at end of file