summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhil Mesnier <mesnier_p@ociweb.com>2013-04-10 18:18:09 +0000
committerPhil Mesnier <mesnier_p@ociweb.com>2013-04-10 18:18:09 +0000
commit8fec61ac11d481e9b055e70ef11221121a0386c8 (patch)
treef29eadc77db7d97654d1c68a370ac8119f962fc0
parent73a5dd93f8ed368038e2204d812dbb8072cedf16 (diff)
downloadATCD-pre_oci_asynch_imr_merge.tar.gz
tag the development branchpre_oci_asynch_imr_merge
-rw-r--r--ACE/ChangeLog132
-rw-r--r--ACE/NEWS9
-rw-r--r--ACE/PROBLEM-REPORT-FORM2
-rw-r--r--ACE/THANKS1
-rw-r--r--ACE/VERSION2
-rw-r--r--ACE/ace/CDR_Base.inl6
-rw-r--r--ACE/ace/Functor_T.h1
-rw-r--r--ACE/ace/Functor_T.inl2
-rw-r--r--ACE/ace/Global_Macros.h42
-rw-r--r--ACE/ace/OS_NS_stdio.h3
-rw-r--r--ACE/ace/OS_NS_stdio.inl8
-rw-r--r--ACE/ace/OS_NS_sys_stat.inl2
-rw-r--r--ACE/ace/Process.cpp5
-rw-r--r--ACE/ace/SV_Semaphore_Simple.cpp2
-rw-r--r--ACE/ace/Timer_Wheel_T.cpp3
-rw-r--r--ACE/ace/Version.h4
-rw-r--r--ACE/ace/config-win32-mingw.h19
-rw-r--r--ACE/ace/config-win32-mingw64.h129
-rw-r--r--ACE/ace/config-win32.h10
-rw-r--r--ACE/apps/Gateway/Gateway/Gateway.cpp3
-rwxr-xr-xACE/bin/auto_run_tests.pl3
-rwxr-xr-xACE/bin/diff-builds-and-group-fixed-tests-only.sh2
-rwxr-xr-xACE/bin/fuzz.pl8
-rwxr-xr-xACE/bin/make_release.py2
-rw-r--r--ACE/debian/ace.dsc8
-rw-r--r--ACE/debian/debian.changelog6
-rw-r--r--ACE/debian/debian.control92
-rw-r--r--ACE/debian/libace-6.1.7.docs (renamed from ACE/debian/libace-6.1.8.docs)0
-rw-r--r--ACE/debian/libace-6.1.7.install (renamed from ACE/debian/libace-6.1.8.install)0
-rw-r--r--ACE/debian/libace-flreactor-6.1.7.install (renamed from ACE/debian/libace-flreactor-6.1.8.install)0
-rw-r--r--ACE/debian/libace-foxreactor-6.1.7.install (renamed from ACE/debian/libace-foxreactor-6.1.8.install)0
-rw-r--r--ACE/debian/libace-htbp-6.1.7.install (renamed from ACE/debian/libace-htbp-6.1.8.install)0
-rw-r--r--ACE/debian/libace-inet-6.1.7.install (renamed from ACE/debian/libace-inet-6.1.8.install)0
-rw-r--r--ACE/debian/libace-inet-ssl-6.1.7.install (renamed from ACE/debian/libace-inet-ssl-6.1.8.install)0
-rw-r--r--ACE/debian/libace-qtreactor-6.1.7.install (renamed from ACE/debian/libace-qtreactor-6.1.8.install)0
-rw-r--r--ACE/debian/libace-rmcast-6.1.7.install (renamed from ACE/debian/libace-rmcast-6.1.8.install)0
-rw-r--r--ACE/debian/libace-ssl-6.1.7.NEWS (renamed from ACE/debian/libace-ssl-6.1.8.NEWS)0
-rw-r--r--ACE/debian/libace-ssl-6.1.7.install (renamed from ACE/debian/libace-ssl-6.1.8.install)0
-rw-r--r--ACE/debian/libace-tkreactor-6.1.7.install (renamed from ACE/debian/libace-tkreactor-6.1.8.install)0
-rw-r--r--ACE/debian/libace-tmcast-6.1.7.install (renamed from ACE/debian/libace-tmcast-6.1.8.install)0
-rw-r--r--ACE/debian/libace-xml-utils-6.1.7.install (renamed from ACE/debian/libace-xml-utils-6.1.8.install)0
-rw-r--r--ACE/debian/libace-xtreactor-6.1.7.install (renamed from ACE/debian/libace-xtreactor-6.1.8.install)0
-rw-r--r--ACE/debian/libacexml-6.1.7.docs (renamed from ACE/debian/libacexml-6.1.8.docs)0
-rw-r--r--ACE/debian/libacexml-6.1.7.install (renamed from ACE/debian/libacexml-6.1.8.install)0
-rw-r--r--ACE/debian/libkokyu-6.1.7.docs (renamed from ACE/debian/libkokyu-6.1.8.docs)0
-rw-r--r--ACE/debian/libkokyu-6.1.7.install (renamed from ACE/debian/libkokyu-6.1.8.install)0
-rw-r--r--ACE/debian/libtao-2.1.7.docs (renamed from ACE/debian/libtao-2.1.8.docs)0
-rw-r--r--ACE/debian/libtao-2.1.7.install (renamed from ACE/debian/libtao-2.1.8.install)0
-rw-r--r--ACE/debian/libtao-flresource-2.1.7.install (renamed from ACE/debian/libtao-flresource-2.1.8.install)0
-rw-r--r--ACE/debian/libtao-foxresource-2.1.7.install (renamed from ACE/debian/libtao-foxresource-2.1.8.install)0
-rw-r--r--ACE/debian/libtao-orbsvcs-2.1.7.NEWS (renamed from ACE/debian/libtao-orbsvcs-2.1.8.NEWS)0
-rw-r--r--ACE/debian/libtao-orbsvcs-2.1.7.install (renamed from ACE/debian/libtao-orbsvcs-2.1.8.install)0
-rw-r--r--ACE/debian/libtao-qtresource-2.1.7.install (renamed from ACE/debian/libtao-qtresource-2.1.8.install)0
-rw-r--r--ACE/debian/libtao-tkresource-2.1.7.install (renamed from ACE/debian/libtao-tkresource-2.1.8.install)0
-rw-r--r--ACE/debian/libtao-xtresource-2.1.7.install (renamed from ACE/debian/libtao-xtresource-2.1.8.install)0
-rw-r--r--ACE/docs/ACE-bug-process.html2
-rw-r--r--ACE/docs/Download.html108
-rw-r--r--ACE/docs/bczar/bczar.html12
-rw-r--r--ACE/etc/index.html1
-rw-r--r--ACE/examples/C++NPv1/Reactive_Logging_Server.h3
-rw-r--r--ACE/examples/C++NPv1/Reactive_Logging_Server_Ex.h3
-rw-r--r--ACE/examples/Connection/non_blocking/CPP-acceptor.cpp67
-rw-r--r--ACE/examples/Connection/non_blocking/CPP-acceptor.h15
-rw-r--r--ACE/examples/Connection/non_blocking/CPP-connector.cpp97
-rw-r--r--ACE/examples/Connection/non_blocking/CPP-connector.h12
-rw-r--r--ACE/examples/IPC_SAP/SOCK_SAP/CPP-inserver.cpp4
-rw-r--r--ACE/examples/Reactor/Misc/test_early_timeouts.cpp4
-rw-r--r--ACE/include/makeinclude/platform_macosx_iOS.GNU10
-rw-r--r--ACE/include/makeinclude/platform_mingw32.GNU10
-rw-r--r--ACE/performance-tests/SCTP/SOCK_STREAM_srv.cpp3
-rw-r--r--ACE/rpmbuild/ace-tao.spec6
-rw-r--r--ACE/tests/Manual_Event_Test.cpp2
-rw-r--r--ACE/tests/Map_Test.h4
-rw-r--r--ACE/tests/Process_Env_Test.cpp3
-rw-r--r--ACE/tests/Thread_Timer_Queue_Adapter_Test.cpp3
-rwxr-xr-xACE/tests/run_test.pl2
-rw-r--r--CIAO/CIAO_TAO_DAnCE_OpenDDS_shapes.mwc47
-rw-r--r--CIAO/ChangeLog49
-rw-r--r--CIAO/NEWS3
-rw-r--r--CIAO/PROBLEM-REPORT-FORM6
-rw-r--r--CIAO/VERSION2
-rw-r--r--CIAO/ciao/Version.h4
-rw-r--r--CIAO/connectors/dds4ccm/DDS4CCM-INSTALL.html7
-rw-r--r--CIAO/connectors/dds4ccm/examples/Shapes/Receiver/Shapes_Receiver_exec.cpp85
-rw-r--r--CIAO/connectors/dds4ccm/examples/Shapes/Sender/Shapes_Sender_exec.cpp24
-rw-r--r--CIAO/connectors/dds4ccm/examples/Shapes/descriptors/2013_interop_demo/run_1.cdp498
-rwxr-xr-xCIAO/connectors/dds4ccm/examples/Shapes/descriptors/2013_interop_demo/run_1.pl245
-rw-r--r--CIAO/connectors/dds4ccm/examples/Shapes/descriptors/2013_interop_demo/run_2.cdp1123
-rwxr-xr-xCIAO/connectors/dds4ccm/examples/Shapes/descriptors/2013_interop_demo/run_2.pl245
-rw-r--r--CIAO/connectors/dds4ccm/examples/Shapes/descriptors/2013_interop_demo/run_2.xml42
-rw-r--r--CIAO/connectors/dds4ccm/examples/Shapes/descriptors/2013_interop_demo/run_3.cdp1123
-rwxr-xr-xCIAO/connectors/dds4ccm/examples/Shapes/descriptors/2013_interop_demo/run_3.pl245
-rw-r--r--CIAO/connectors/dds4ccm/examples/Shapes/descriptors/2013_interop_demo/run_3.xml42
-rw-r--r--CIAO/connectors/dds4ccm/examples/Shapes/descriptors/2013_interop_demo/run_4.cdp520
-rwxr-xr-xCIAO/connectors/dds4ccm/examples/Shapes/descriptors/2013_interop_demo/run_4.pl245
-rw-r--r--CIAO/connectors/dds4ccm/examples/Shapes/descriptors/2013_interop_demo/run_4.xml26
-rw-r--r--CIAO/connectors/dds4ccm/examples/Shapes/descriptors/2013_interop_demo/run_6.cdp1123
-rwxr-xr-xCIAO/connectors/dds4ccm/examples/Shapes/descriptors/2013_interop_demo/run_6.pl245
-rw-r--r--CIAO/connectors/dds4ccm/examples/Shapes/descriptors/2013_interop_demo/run_6.xml54
-rw-r--r--CIAO/connectors/dds4ccm/examples/Shapes/descriptors/2013_interop_demo/run_7.cdp520
-rwxr-xr-xCIAO/connectors/dds4ccm/examples/Shapes/descriptors/2013_interop_demo/run_7.pl245
-rw-r--r--CIAO/connectors/dds4ccm/examples/Shapes/descriptors/2013_interop_demo/run_7.xml21
-rw-r--r--CIAO/connectors/dds4ccm/examples/Shapes/descriptors/2013_interop_demo/run_8.cdp840
-rwxr-xr-xCIAO/connectors/dds4ccm/examples/Shapes/descriptors/2013_interop_demo/run_8.pl245
-rw-r--r--CIAO/connectors/dds4ccm/examples/Shapes/descriptors/2013_interop_demo/run_8.xml21
-rw-r--r--CIAO/connectors/dds4ccm/examples/Shapes/descriptors/2013_interop_demo/run_9.cdp520
-rwxr-xr-xCIAO/connectors/dds4ccm/examples/Shapes/descriptors/2013_interop_demo/run_9.pl245
-rw-r--r--CIAO/connectors/dds4ccm/examples/Shapes/descriptors/2013_interop_demo/run_9.xml12
-rw-r--r--DAnCE/ChangeLog9
-rw-r--r--DAnCE/NEWS5
-rw-r--r--DAnCE/PROBLEM-REPORT-FORM6
-rw-r--r--DAnCE/VERSION2
-rw-r--r--DAnCE/dance/Version.h4
-rw-r--r--TAO/ChangeLog207
-rw-r--r--TAO/ChangeLog_Asynch_ImR436
-rw-r--r--TAO/MPC/config/tao_versioning_idl_defaults.mpb1
-rw-r--r--TAO/NEWS6
-rw-r--r--TAO/PROBLEM-REPORT-FORM4
-rw-r--r--TAO/TAO_IDL/be/be_codegen.cpp7
-rw-r--r--TAO/TAO_IDL/be/be_global.cpp40
-rw-r--r--TAO/TAO_IDL/be/be_util.cpp12
-rw-r--r--TAO/TAO_IDL/be_include/be_global.h13
-rw-r--r--TAO/TAO_IDL/util/utl_err.cpp16
-rw-r--r--TAO/VERSION2
-rw-r--r--TAO/bin/tao_other_tests.lst3
-rw-r--r--TAO/docs/Options.html2
-rw-r--r--TAO/orbsvcs/ImplRepo_Service/Adapter_Activator.cpp26
-rw-r--r--TAO/orbsvcs/ImplRepo_Service/Adapter_Activator.h13
-rw-r--r--TAO/orbsvcs/ImplRepo_Service/AsyncAccessManager.cpp535
-rw-r--r--TAO/orbsvcs/ImplRepo_Service/AsyncAccessManager.h196
-rw-r--r--TAO/orbsvcs/ImplRepo_Service/AsyncStartupWaiter.idl18
-rw-r--r--TAO/orbsvcs/ImplRepo_Service/AsyncStartupWaiter_i.cpp167
-rw-r--r--TAO/orbsvcs/ImplRepo_Service/AsyncStartupWaiter_i.h74
-rw-r--r--TAO/orbsvcs/ImplRepo_Service/Forwarder.cpp266
-rw-r--r--TAO/orbsvcs/ImplRepo_Service/Forwarder.h92
-rw-r--r--TAO/orbsvcs/ImplRepo_Service/INS_Locator.cpp147
-rw-r--r--TAO/orbsvcs/ImplRepo_Service/INS_Locator.h21
-rw-r--r--TAO/orbsvcs/ImplRepo_Service/ImR_Locator.cpp2
-rw-r--r--TAO/orbsvcs/ImplRepo_Service/ImR_Locator_i.cpp1218
-rw-r--r--TAO/orbsvcs/ImplRepo_Service/ImR_Locator_i.h217
-rw-r--r--TAO/orbsvcs/ImplRepo_Service/ImR_ResponseHandler.cpp27
-rw-r--r--TAO/orbsvcs/ImplRepo_Service/ImR_ResponseHandler.h42
-rw-r--r--TAO/orbsvcs/ImplRepo_Service/ImplRepo_Service.mpc18
-rw-r--r--TAO/orbsvcs/ImplRepo_Service/LiveCheck.cpp562
-rw-r--r--TAO/orbsvcs/ImplRepo_Service/LiveCheck.h214
-rw-r--r--TAO/orbsvcs/ImplRepo_Service/Locator_Options.cpp32
-rw-r--r--TAO/orbsvcs/ImplRepo_Service/Locator_Options.h1
-rw-r--r--TAO/orbsvcs/ImplRepo_Service/Locator_Repository.cpp76
-rw-r--r--TAO/orbsvcs/ImplRepo_Service/Locator_Repository.h19
-rw-r--r--TAO/orbsvcs/ImplRepo_Service/README10
-rw-r--r--TAO/orbsvcs/ImplRepo_Service/Shared_Backing_Store.cpp95
-rw-r--r--TAO/orbsvcs/orbsvcs/CosEvent/CEC_EventChannel.h3
-rw-r--r--TAO/orbsvcs/orbsvcs/CosEvent/CEC_TypedEventChannel.h3
-rw-r--r--TAO/orbsvcs/orbsvcs/Event/EC_Basic_Factory.cpp4
-rw-r--r--TAO/orbsvcs/tests/FT_Naming/FaultTolerant/client.cpp41
-rwxr-xr-xTAO/orbsvcs/tests/FT_Naming/FaultTolerant/run_backup_restart_test.pl3
-rwxr-xr-xTAO/orbsvcs/tests/FT_Naming/FaultTolerant/run_persistence_test.pl12
-rw-r--r--TAO/orbsvcs/tests/FT_Naming/FaultTolerant/server.cpp10
-rwxr-xr-xTAO/orbsvcs/tests/FT_Naming/Replication/run_test.pl18
-rw-r--r--TAO/orbsvcs/tests/ImplRepo/RestartServer/MessengerClient.cpp12
-rw-r--r--TAO/orbsvcs/tests/ImplRepo/RestartServer/RestartServer.mpc2
-rwxr-xr-xTAO/orbsvcs/tests/ImplRepo/RestartServer/run_test.pl11
-rwxr-xr-xTAO/orbsvcs/tests/ImplRepo/run_test.pl301
-rwxr-xr-xTAO/orbsvcs/tests/ImplRepo/scale_clients/run_test.pl6
-rw-r--r--TAO/orbsvcs/tests/ImplRepo/scale_clients/scale_clients.mpc2
-rw-r--r--TAO/orbsvcs/tests/ImplRepo/servers_interact_on_startup/client.cpp6
-rwxr-xr-xTAO/orbsvcs/tests/ImplRepo/servers_interact_on_startup/run_test.pl35
-rw-r--r--TAO/orbsvcs/tests/ImplRepo/servers_interact_on_startup/server.cpp8
-rwxr-xr-xTAO/orbsvcs/tests/ImplRepo/servers_list/run_test.pl3
-rw-r--r--TAO/orbsvcs/tests/ImplRepo/servers_list/servers_list.mpc2
-rw-r--r--TAO/performance-tests/POA/Object_Creation_And_Registration/registration.cpp3
-rw-r--r--TAO/tao/Adapter.h7
-rw-r--r--TAO/tao/DynamicInterface/AMH_DSI_Response_Handler.cpp1
-rw-r--r--TAO/tao/IORTable/IORTable.h1
-rw-r--r--TAO/tao/IORTable/IORTable.mpc2
-rw-r--r--TAO/tao/IORTable/IORTable.pidl14
-rw-r--r--TAO/tao/IORTable/IOR_Table_Impl.cpp31
-rw-r--r--TAO/tao/IORTable/IOR_Table_Impl.h10
-rw-r--r--TAO/tao/IORTable/Locate_ResponseHandler.cpp90
-rw-r--r--TAO/tao/IORTable/Locate_ResponseHandler.h153
-rw-r--r--TAO/tao/IORTable/Locate_ResponseHandler.inl112
-rw-r--r--TAO/tao/IORTable/Table_Adapter.cpp21
-rw-r--r--TAO/tao/IORTable/Table_Adapter.h4
-rw-r--r--TAO/tao/ImR_Client/ImR_Client.cpp2
-rw-r--r--TAO/tao/ImR_Client/ImR_Client.mpc6
-rw-r--r--TAO/tao/Messaging/AMH_Response_Handler.cpp37
-rw-r--r--TAO/tao/Messaging/AMH_Response_Handler.h1
-rw-r--r--TAO/tao/PortableServer/Key_Adapters.cpp5
-rw-r--r--TAO/tao/TransportCurrent/IIOP_Current_Impl.cpp3
-rw-r--r--TAO/tao/Version.h4
-rw-r--r--TAO/tests/Bug_4097_Regression/Bug_4097_Regression.cpp161
-rw-r--r--TAO/tests/Dynamic_TP/POA_Loader/Dynamic_TP_POA_Test_Dynamic/client.cpp38
-rw-r--r--TAO/tests/Dynamic_TP/POA_Loader/Dynamic_TP_POA_Test_Static/client.cpp38
-rw-r--r--TAO/tests/File_IO/File_i.cpp5
-rw-r--r--TAO/tests/NestedUpcall/MT_Client_Test/client.cpp3
-rw-r--r--TAO/tests/POA/Default_Servant2/File_i.cpp5
-rw-r--r--TAO/utils/logWalker/HostProcess.cpp43
-rw-r--r--TAO/utils/logWalker/HostProcess.h12
-rw-r--r--TAO/utils/logWalker/Invocation.cpp133
-rw-r--r--TAO/utils/logWalker/Invocation.h6
-rw-r--r--TAO/utils/logWalker/Log.cpp18
-rw-r--r--TAO/utils/logWalker/PeerProcess.cpp136
-rw-r--r--TAO/utils/logWalker/PeerProcess.h41
-rw-r--r--TAO/utils/logWalker/Session.cpp41
-rw-r--r--TAO/utils/logWalker/Session.h13
-rw-r--r--TAO/utils/logWalker/Thread.cpp86
-rw-r--r--TAO/utils/logWalker/Thread.h8
207 files changed, 4574 insertions, 11614 deletions
diff --git a/ACE/ChangeLog b/ACE/ChangeLog
index ae8908157b1..39d54578c55 100644
--- a/ACE/ChangeLog
+++ b/ACE/ChangeLog
@@ -1,134 +1,3 @@
-Sun Apr 7 00:20:49 UTC 2013 Douglas C. Schmidt <schmidt@dre.vanderbilt.edu>
-
- * ace/Global_Macros.h: Added documentation for the arguments to
- the ACE_GUARD_XXX macros. Thanks to Neil Youngman <ny at
- youngman dot org dot uk> for contributing this.
-
-Thu Apr 4 16:29:07 UTC 2013 Douglas C. Schmidt <schmidt@dre.vanderbilt.edu>
-
- * examples/Connection/non_blocking/CPP-acceptor.{h,cpp},
- examples/Connection/non_blocking/CPP-connector.{h,cpp}: Replaced
- the use of macros with actual traits since they should be
- available on all C++ compilers we support now.
-
-Thu Apr 4 18:41:36 UTC 2013 Johnny Willemsen <jwillemsen@remedy.nl>
-
- * debian/ace.dsc:
- * debian/debian.changelog:
- * debian/debian.control:
- Updated for new release, thanks to Michael Ganz <michael_ganz at t-online dot de>
- for reporting this
-
-Wed Apr 3 13:41:19 UTC 2013 Adam Mitz <mitza@ociweb.com>
-
- * tests/Manual_Event_Test.cpp:
-
- Corrected time value to actually be 200 msec as noted in the comment.
-
-Wed Apr 3 08:13:00 UTC 2013 Johnny Willemsen <jwillemsen@remedy.nl>
-
- * bin/auto_run_tests.pl:
- * tests/run_test.pl:
- Set some additional variables that can be used with coverity
-
-Tue Apr 2 09:07:13 UTC 2013 Martin Corino <mcorino@remedy.nl>
-
- * ace/OS_NS_stdio.h:
- Fix missing intptr_t declaration on QNX.
-
-Sat Mar 30 18:11:06 UTC 2013 Martin Corino <mcorino@remedy.nl>
-
- * examples/C++NPv1/Reactive_Logging_Server_Ex.h:
- Fixed truncating cast error.
-
-Sat Mar 30 09:44:50 UTC 2013 Martin Corino <mcorino@remedy.nl>
-
- * ace/config-win32-mingw64.h:
- Minor comment update.
-
-Sat Mar 30 09:30:10 UTC 2013 Martin Corino <mcorino@remedy.nl>
-
- * include/makeinclude/platform_mingw32.GNU:
- Added support for latest GCC from MinGW64.
-
- * ace/config-win32.h:
- * ace/config-win32-mingw.h:
- Split support for MinGW64 variants of MinGW compilers
- into separate files because of tricky differences between
- MinGW32 and MinGW64 APIs.
-
- * ace/config-win32-mingw64.h:
- Added separate support file for MinGW64 compilers (both
- 32 and 64 bit).
-
- * ace/CDR_Base.inl:
- More standardized use of ACE_LACKS_INLINE_ASSEMBLY for benefit
- of MinGW64 64bit compiler.
-
- * ace/Functor_T.h:
- * ace/Functor_T.inl:
- * ace/OS_NS_stdio.h:
- * ace/OS_NS_stdio.inl:
- * ace/OS_NS_sys_stat.inl:
- * ace/Process.cpp:
- * ace/SV_Semaphore_Simple.cpp:
- * ace/Timer_Wheel_T.cpp:
- * apps/Gateway/Gateway/Gateway.cpp:
- * examples/C++NPv1/Reactive_Logging_Server.h:
- * examples/C++NPv1/Reactive_Logging_Server_Ex.h:
- * examples/IPC_SAP/SOCK_SAP/CPP-inserver.cpp:
- * examples/Reactor/Misc/test_early_timeouts.cpp:
- * performance-tests/SCTP/SOCK_STREAM_srv.cpp:
- * tests/Map_Test.h:
- * tests/Process_Env_Test.cpp:
- * tests/Thread_Timer_Queue_Adapter_Test.cpp:
- All kinds of minor updates and corrections to silence
- warnings and errors relating to either 64bit Windows or
- the very latest GCC (4.8.0). Mostly precision loss and
- truncating casts.
-
-Thu Mar 28 08:52:43 UTC 2013 Johnny Willemsen <jwillemsen@remedy.nl>
-
- * docs/ACE-bug-process.html:
- Fixed typo
-
-Mon Mar 25 21:03:54 UTC 2013 Abdullah Sowayan <sowayan@gmail.com>
-
- * include/makeinclude/platform_macosx_iOS.GNU:
-
- Minor updates to fix iOS builds.
-
-Fri Mar 22 02:58:06 UTC 2013 Abdullah Sowayan <sowayan@gmail.com>
-
- * include/makeinclude/platform_macosx_iOS.GNU:
-
- Minor updates to fix iOS builds.
-
-Thu Mar 14 12:44:10 UTC 2013 Johnny Willemsen <jwillemsen@remedy.nl>
-
- * bin/make_release.py:
- Exclude new workspace
-
-Thu Mar 14 10:08:55 UTC 2013 Marcel Smit <msmit@remedy.nl>
-
- * bin/fuzz.pl:
- Checking the last part of the given @file entry, instead of
- the filename only.
-
-Thu Mar 14 08:38:57 UTC 2013 Johnny Willemsen <jwillemsen@remedy.nl>
-
- * ChangeLog:
- * NEWS:
- * bin/diff-builds-and-group-fixed-tests-only.sh:
- * docs/Download.html:
- * docs/bczar/bczar.html:
- * etc/index.html:
- Making new x.1.8 public available
-
-Thu Mar 14 09:04:46 CET 2013 Johnny Willemsen <jwillemsen@remedy.nl>
-
- * ACE version 6.1.8 released.
-
Thu Mar 7 19:17:15 UTC 2013 Phil Mesnier <mesnier_p@ociweb.com>
* ace/OS_NS_Thread.cpp:
@@ -141,6 +10,7 @@ Fri Mar 1 11:21:33 UTC 2013 Martin Corino <mcorino@remedy.nl>
Fix for problems with explicit test root and test folders
that are also available in default roots.
+
Thu Feb 28 19:45:03 UTC 2013 Johnny Willemsen <jwillemsen@remedy.nl>
* tests/Compiler_Features_19_Test.cpp:
diff --git a/ACE/NEWS b/ACE/NEWS
index f793f5311a8..a332e899300 100644
--- a/ACE/NEWS
+++ b/ACE/NEWS
@@ -1,15 +1,6 @@
-USER VISIBLE CHANGES BETWEEN ACE-6.1.8 and ACE-6.2.0
-====================================================
-
-. Added MinGW64 as supported platform
-
-. Added support for GCC 4.8.0
-
USER VISIBLE CHANGES BETWEEN ACE-6.1.7 and ACE-6.1.8
====================================================
-. Small bug fixes
-
USER VISIBLE CHANGES BETWEEN ACE-6.1.6 and ACE-6.1.7
====================================================
diff --git a/ACE/PROBLEM-REPORT-FORM b/ACE/PROBLEM-REPORT-FORM
index 6c3e5de79a5..62fb06db0fb 100644
--- a/ACE/PROBLEM-REPORT-FORM
+++ b/ACE/PROBLEM-REPORT-FORM
@@ -40,7 +40,7 @@
To: ace-bugs@list.isis.vanderbilt.edu
Subject: [area]: [synopsis]
- ACE VERSION: 6.1.8
+ ACE VERSION: 6.1.7
HOST MACHINE and OPERATING SYSTEM:
If on Windows based OS's, which version of WINSOCK do you
diff --git a/ACE/THANKS b/ACE/THANKS
index 0193e0fbce7..03a5b7145c8 100644
--- a/ACE/THANKS
+++ b/ACE/THANKS
@@ -2377,7 +2377,6 @@ Phillip LaBanca <labancap at ociweb dot com>
<pkow88776 at onet dot pl>
Journeyer J. Joh <oosaprogrammer at gmail dot com>
Rudy Pot <rpot at aweta dot nl>
-Neil Youngman <ny at youngman dot org dot uk>
I would particularly like to thank Paul Stephenson, who worked with me
at Ericsson in the early 1990's. Paul devised the recursive Makefile
diff --git a/ACE/VERSION b/ACE/VERSION
index 5108ebf6026..e21d14264a3 100644
--- a/ACE/VERSION
+++ b/ACE/VERSION
@@ -1,4 +1,4 @@
-This is ACE version 6.1.8, released Thu Mar 14 09:04:46 CET 2013
+This is ACE version 6.1.7, released Thu Dec 27 10:00:49 CET 2012
If you have any problems with or questions about ACE, please send
e-mail to the ACE mailing list (ace-bugs@list.isis.vanderbilt.edu),
diff --git a/ACE/ace/CDR_Base.inl b/ACE/ace/CDR_Base.inl
index 351c853c2e3..b84470af87f 100644
--- a/ACE/ace/CDR_Base.inl
+++ b/ACE/ace/CDR_Base.inl
@@ -145,14 +145,12 @@ ACE_CDR::swap_8 (const char* orig, char* target)
#elif defined (ACE_HAS_BSWAP_64)
*reinterpret_cast<uint64_t *> (target) =
bswap_64 (*reinterpret_cast<uint64_t const *> (orig));
-#elif (defined (__amd64__) || defined (__x86_64__)) && defined(__GNUG__) \
- && !defined(ACE_LACKS_INLINE_ASSEMBLY)
+#elif (defined (__amd64__) || defined (__x86_64__)) && defined(__GNUG__)
register unsigned long x =
* reinterpret_cast<const unsigned long*> (orig);
asm ("bswapq %1" : "=r" (x) : "0" (x));
*reinterpret_cast<unsigned long*> (target) = x;
-#elif defined(ACE_HAS_PENTIUM) && defined(__GNUG__) \
- && !defined(ACE_LACKS_INLINE_ASSEMBLY)
+#elif defined(ACE_HAS_PENTIUM) && defined(__GNUG__)
register unsigned int i =
*reinterpret_cast<const unsigned int*> (orig);
register unsigned int j =
diff --git a/ACE/ace/Functor_T.h b/ACE/ace/Functor_T.h
index d35f4e2aaef..f8a215c078e 100644
--- a/ACE/ace/Functor_T.h
+++ b/ACE/ace/Functor_T.h
@@ -37,7 +37,6 @@
#endif /* ACE_LACKS_PRAGMA_ONCE */
#include "ace/Functor_String.h"
-#include "ace/Truncate.h"
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/ace/Functor_T.inl b/ACE/ace/Functor_T.inl
index f22672d7fa5..d6cefade1bd 100644
--- a/ACE/ace/Functor_T.inl
+++ b/ACE/ace/Functor_T.inl
@@ -40,7 +40,7 @@ ACE_Pointer_Hash<TYPE>::operator () (TYPE t) const
# pragma warning(push)
# pragma warning(disable : 4311) /* Truncate pointer to unsigned long */
#endif /* ACE_WIN64 */
- return ACE_Utils::truncate_cast<unsigned long> ((intptr_t)t);
+ return reinterpret_cast<unsigned long> (t);
#if defined (ACE_WIN64)
# pragma warning(pop)
#endif /* ACE_WIN64 */
diff --git a/ACE/ace/Global_Macros.h b/ACE/ace/Global_Macros.h
index cf24327650b..74c6d8c3e6b 100644
--- a/ACE/ace/Global_Macros.h
+++ b/ACE/ace/Global_Macros.h
@@ -108,37 +108,17 @@ ACE_END_VERSIONED_NAMESPACE_DECL
// FUZZ: disable check_for_ACE_Guard
-/* Convenient macro for testing for deadlock, as well as for detecting
- * when mutexes fail.
- *
- * The parameters to the ACE_GUARD_XXX macros are used as follows:
- *
- * MUTEX - This is the type used as the template parameter for ACE_Guard
- *
- * OBJ - Name for the guard object. This name should not be declared
- * outside the macro.
- *
- * LOCK - The actual lock (mutex) variable. This should be a variable
- * of type MUTEX, see above.
- *
- * ACTION - Code segment to be run, if and only if the lock is
- * acquired.
- *
- * REACTION - Code segment to be run, if and only if the lock is not
- * acquired.
- *
- * RETURN - A value to be returned from the calling function, if and
- * only if the lock is not acquired.
- *
- * @warning
- * Use of ACE_GUARD() is rarely correct. ACE_GUARD() causes the
- * current function to return if the lock is not acquired. Since
- * merely returning (no value) almost certainly fails to handle the
- * acquisition failure and almost certainly fails to communicate the
- * failure to the caller for the caller to handle, ACE_GUARD() is
- * almost always the wrong thing to do. The same goes for
- * ACE_WRITE_GUARD() and ACE_READ_GUARD() . ACE_GUARD_REACTION() is
- * better because it lets you specify error handling code.
+// Convenient macro for testing for deadlock, as well as for detecting
+// when mutexes fail.
+/* @warning
+ * Use of ACE_GUARD() is rarely correct. ACE_GUARD() causes the current
+ * function to return if the lock is not acquired. Since merely returning
+ * (no value) almost certainly fails to handle the acquisition failure
+ * and almost certainly fails to communicate the failure to the caller
+ * for the caller to handle, ACE_GUARD() is almost always the wrong
+ * thing to do. The same goes for ACE_WRITE_GUARD() and ACE_READ_GUARD() .
+ * ACE_GUARD_REACTION() is better because it lets you specify error
+ * handling code.
*/
#if !defined (ACE_GUARD_ACTION)
#define ACE_GUARD_ACTION(MUTEX, OBJ, LOCK, ACTION, REACTION) \
diff --git a/ACE/ace/OS_NS_stdio.h b/ACE/ace/OS_NS_stdio.h
index 761db883356..411c1e5ee58 100644
--- a/ACE/ace/OS_NS_stdio.h
+++ b/ACE/ace/OS_NS_stdio.h
@@ -27,7 +27,6 @@
#include "ace/os_include/os_stdio.h"
#include "ace/os_include/os_fcntl.h"
-#include "ace/os_include/os_inttypes.h"
#include /**/ "ace/ACE_export.h"
/* OPENVMS needs unistd for cuserid() */
@@ -118,7 +117,7 @@ inline ACE_HANDLE ace_fileno_helper (FILE *fp)
return (ACE_HANDLE)fileno (fp);
# undef fileno
# else
- return (ACE_HANDLE)(intptr_t)ACE_STD_NAMESPACE::fileno (fp);
+ return (ACE_HANDLE)ACE_STD_NAMESPACE::fileno (fp);
# endif /* defined (fileno) */
}
#endif /* !ACE_FILENO_EQUIVALENT */
diff --git a/ACE/ace/OS_NS_stdio.inl b/ACE/ace/OS_NS_stdio.inl
index 60031b4fd63..e24a4024f11 100644
--- a/ACE/ace/OS_NS_stdio.inl
+++ b/ACE/ace/OS_NS_stdio.inl
@@ -583,7 +583,7 @@ ACE_INLINE ACE_HANDLE
ACE_OS::fileno (FILE *stream)
{
#if defined ACE_FILENO_EQUIVALENT
- return (ACE_HANDLE)((intptr_t)ACE_FILENO_EQUIVALENT (stream));
+ return (ACE_HANDLE)ACE_FILENO_EQUIVALENT (stream);
#else
return ace_fileno_helper (stream);
#endif
@@ -1014,12 +1014,6 @@ ACE_OS::vsprintf (wchar_t *buffer, const wchar_t *format, va_list argptr)
// ACE_OS::snprintf().
return vswprintf (buffer, 4096, format, argptr);
-# elif defined (__MINGW64_VERSION_MAJOR) && !defined (WIN64)
- // the MingW64 32bit version causes link errors when using the
- // 'standard' vswprint(). Luckily they have a mingw special.
-
- return __mingw_vswprintf (buffer, format, argptr);
-
# elif defined (ACE_WIN32)
// Windows has vswprintf, but the pre-VC8 signature is from the older
// ISO C standard. Also see ACE_OS::snprintf() for more info on this.
diff --git a/ACE/ace/OS_NS_sys_stat.inl b/ACE/ace/OS_NS_sys_stat.inl
index 0f769cd7cb5..b34d5bdeda0 100644
--- a/ACE/ace/OS_NS_sys_stat.inl
+++ b/ACE/ace/OS_NS_sys_stat.inl
@@ -262,7 +262,7 @@ namespace ACE_OS
return 0;
#elif defined (__BORLANDC__) \
|| defined (_MSC_VER) \
- || (defined (__MINGW32__) && !defined (__MINGW64_VERSION_MAJOR))
+ || defined (__MINGW32__)
ACE_OSCALL_RETURN (ACE_WSTAT_FUNC_NAME (file, stp), int, -1);
#else /* ACE_HAS_WINCE */
ACE_Wide_To_Ascii nfile (file);
diff --git a/ACE/ace/Process.cpp b/ACE/ace/Process.cpp
index 6ba69acbf0e..b3471897404 100644
--- a/ACE/ace/Process.cpp
+++ b/ACE/ace/Process.cpp
@@ -116,14 +116,9 @@ ACE_Process::spawn (ACE_Process_Options &options)
{
#if defined (ACE_WIN32)
# if defined (ACE_WIN64)
-// silence warnings coming from MinGW64 compilers
-# pragma GCC diagnostic push
-# pragma GCC diagnostic ignored "-Wformat"
-# pragma GCC diagnostic ignored "-Wformat-extra-args"
curr_len += ACE_OS::sprintf (&cmd_line_buf[curr_len],
ACE_TEXT (" +H %I64p"),
h);
-# pragma GCC diagnostic pop
# else
curr_len += ACE_OS::sprintf (&cmd_line_buf[curr_len],
ACE_TEXT (" +H %p"),
diff --git a/ACE/ace/SV_Semaphore_Simple.cpp b/ACE/ace/SV_Semaphore_Simple.cpp
index 2b340649ed1..bdf4531f4e1 100644
--- a/ACE/ace/SV_Semaphore_Simple.cpp
+++ b/ACE/ace/SV_Semaphore_Simple.cpp
@@ -141,7 +141,7 @@ ACE_SV_Semaphore_Simple::name_2_key (const char *name)
# pragma warning(push)
# pragma warning(disable : 4312)
#endif /* defined (ACE_WIN32) && defined (_MSC_VER) */
- return (key_t)(intptr_t)ACE::crc32 (name);
+ return (key_t) ACE::crc32 (name);
#if defined (ACE_WIN32) && defined (_MSC_VER)
# pragma warning(pop)
#endif /* defined (ACE_WIN32) && defined (_MSC_VER) */
diff --git a/ACE/ace/Timer_Wheel_T.cpp b/ACE/ace/Timer_Wheel_T.cpp
index cf0f957edd5..2ede9545028 100644
--- a/ACE/ace/Timer_Wheel_T.cpp
+++ b/ACE/ace/Timer_Wheel_T.cpp
@@ -11,7 +11,6 @@
#include "ace/Guard_T.h"
#include "ace/Timer_Wheel_T.h"
#include "ace/Log_Msg.h"
-#include "ace/Truncate.h"
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
@@ -322,7 +321,7 @@ ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY>::generate_timer_id (u_in
# pragma warning(push)
# pragma warning(disable : 4311)
#endif /* ACE_WIN64 */
- long next_cnt = ACE_Utils::truncate_cast<long> ((intptr_t)root->get_act ());
+ long next_cnt = reinterpret_cast<long> (root->get_act ());
#if defined (ACE_WIN64)
# pragma warning(pop)
#endif /* ACE_WIN64 */
diff --git a/ACE/ace/Version.h b/ACE/ace/Version.h
index 38ff9e88a6f..d775c5abd6c 100644
--- a/ACE/ace/Version.h
+++ b/ACE/ace/Version.h
@@ -5,5 +5,5 @@
#define ACE_MAJOR_VERSION 6
#define ACE_MINOR_VERSION 1
-#define ACE_BETA_VERSION 8
-#define ACE_VERSION "6.1.8"
+#define ACE_BETA_VERSION 7
+#define ACE_VERSION "6.1.7"
diff --git a/ACE/ace/config-win32-mingw.h b/ACE/ace/config-win32-mingw.h
index f5f75e59f9c..f711a58665a 100644
--- a/ACE/ace/config-win32-mingw.h
+++ b/ACE/ace/config-win32-mingw.h
@@ -28,7 +28,7 @@
#define ACE_HAS_USER_MODE_MASKS
-#if (__MINGW32_MAJOR_VERSION < 2)
+#if (__MINGW32_MAJOR_VERSION < 2) && (__MINGW64_VERSION_MAJOR < 3)
# error You need a newer version (>= 2.0) of mingw32/w32api
#endif
@@ -38,7 +38,7 @@
# define ACE_FILENO_EQUIVALENT ::_fileno
#endif
-#if (__MINGW32_MAJOR_VERSION >= 3)
+#if (__MINGW32_MAJOR_VERSION >= 3) || (__MINGW64_VERSION_MAJOR >= 3)
# define ACE_HAS_SSIZE_T
# undef ACE_LACKS_STRUCT_DIR
# undef ACE_LACKS_OPENDIR
@@ -51,8 +51,21 @@
# define ACE_LACKS_DIRENT_H
#endif
-#if (__MINGW32_MAJOR_VERSION > 3) || ((__MINGW32_MAJOR_VERSION == 3) && (__MINGW32_MINOR_VERSION >= 15))
+#if (__MINGW32_MAJOR_VERSION > 3) || ((__MINGW32_MAJOR_VERSION == 3) && (__MINGW32_MINOR_VERSION >= 15))
# undef ACE_LACKS_USECONDS_T
+#elif (__MINGW64_VERSION_MAJOR >= 3)
+# undef ACE_LACKS_USECONDS_T
+#endif
+
+#if (__MINGW64_VERSION_MAJOR >= 3)
+# define ACE_HAS_POSIX_TIME 1
+# define ACE_LACKS_TIMESPEC_T 1
+
+# include <stdlib.h>
+# if defined (strtod)
+# undef strtod
+# endif
+#else
# if defined (ACE_LACKS_SIGSET_T)
# undef ACE_LACKS_SIGSET_T
# endif
diff --git a/ACE/ace/config-win32-mingw64.h b/ACE/ace/config-win32-mingw64.h
deleted file mode 100644
index 7c0971be1fe..00000000000
--- a/ACE/ace/config-win32-mingw64.h
+++ /dev/null
@@ -1,129 +0,0 @@
-// -*- C++ -*-
-// $Id$
-
-//
-// The following configuration file is designed to work for win32 and win64
-// platforms using gcc/g++ with mingw64 (http://http://mingw-w64.sourceforge.net/).
-//
-
-#ifndef ACE_CONFIG_WIN32_MINGW64_H
-#define ACE_CONFIG_WIN32_MINGW64_H
-#include /**/ "ace/pre.h"
-
-#ifndef ACE_CONFIG_WIN32_H
-# error Use config-win32.h in config.h instead of this header
-#endif /* ACE_CONFIG_WIN32_H */
-
-#define ACE_CC_PREPROCESSOR "cpp"
-#define ACE_CC_PREPROCESOR_ARGS ""
-
-#if !defined(__MINGW32__) || !defined (__MINGW64_VERSION_MAJOR)
-# error You do not seem to be using mingw64
-#endif
-
-#if defined (WIN64) || defined (__WIN64__)
-# define ACE_SIZEOF_LONG_DOUBLE 16
-#else
-# define ACE_SIZEOF_LONG_DOUBLE 12
-#endif
-
-#include "ace/config-g++-common.h"
-
-#include /**/ <_mingw.h>
-#include /**/ <w32api.h>
-
-#if defined (exception_info)
-# undef exception_info
-#endif
-
-#define ACE_HAS_USER_MODE_MASKS
-
-#if (!defined (__MINGW64_VERSION_MAJOR) || (__MINGW64_VERSION_MAJOR < 2))
-# error You need a newer version (>= 2.0) of mingw32/w32api
-#endif
-
-#include <stdio.h>
-
-#if defined (fileno)
-# undef fileno
-#endif
-#if (__MINGW64_VERSION_MAJOR >= 3)
-# define ACE_FILENO_EQUIVALENT ::_fileno
-#endif
-
-#if (__MINGW64_VERSION_MAJOR >= 2)
-
-# define ACE_HAS_SSIZE_T
-# undef ACE_LACKS_STRUCT_DIR
-# undef ACE_LACKS_OPENDIR
-# undef ACE_LACKS_CLOSEDIR
-# undef ACE_LACKS_READDIR
-# undef ACE_LACKS_TELLDIR
-# undef ACE_LACKS_SEEKDIR
-# undef ACE_LACKS_REWINDDIR
-# undef ACE_LACKS_USECONDS_T
-
-# define ACE_HAS_POSIX_TIME 1
-# define ACE_LACKS_TIMESPEC_T 1
-# define ACE_HAS_NONCONST_SELECT_TIMEVAL 1
-
-# if defined (ACE_HAS_QOS) && !defined (ACE_HAS_WINSOCK2_GQOS)
-# define ACE_HAS_WINSOCK2_GQOS
-# endif
-
-# if defined (WIN64) || defined (__WIN64__)
-# define ACE_LACKS_INLINE_ASSEMBLY
-# endif
-
-# include <stdlib.h>
-# if defined (strtod)
-# undef strtod
-# endif
-
-#else
-# define ACE_LACKS_DIRENT_H
-#endif // __MINGW64_VERSION_MAJOR >= 3
-
-#undef ACE_HAS_WTOF
-
-#define ACE_LACKS_SYS_SHM_H
-#define ACE_LACKS_TERMIOS_H
-#define ACE_LACKS_NETINET_TCP_H
-#define ACE_LACKS_STRRECVFD
-#define ACE_LACKS_STRPTIME
-#define ACE_LACKS_POLL_H
-#define ACE_LACKS_REGEX_H
-#define ACE_LACKS_SYS_MSG_H
-#define ACE_LACKS_PWD_H
-#define ACE_LACKS_SEMAPHORE_H
-#define ACE_LACKS_UCONTEXT_H
-#define ACE_LACKS_SYS_SELECT_H
-#define ACE_LACKS_SYS_RESOURCE_H
-#define ACE_LACKS_SYS_WAIT_H
-#define ACE_LACKS_DLFCN_H
-#define ACE_LACKS_SYS_MMAN_H
-#define ACE_LACKS_SYS_UIO_H
-#define ACE_LACKS_SYS_SOCKET_H
-#define ACE_LACKS_NETINET_IN_H
-#define ACE_LACKS_NETDB_H
-#define ACE_LACKS_NET_IF_H
-#define ACE_LACKS_SYS_IPC_H
-#define ACE_LACKS_SYS_SEM_H
-#define ACE_LACKS_STROPTS_H
-#define ACE_LACKS_SYS_IOCTL_H
-#define ACE_LACKS_PDH_H
-#define ACE_LACKS_PDHMSG_H
-#define ACE_LACKS_STRTOK_R
-#define ACE_LACKS_LOCALTIME_R
-#define ACE_HAS_NONCONST_WCSDUP
-#define ACE_ISCTYPE_EQUIVALENT ::_isctype
-
-#define ACE_INT64_FORMAT_SPECIFIER_ASCII "%I64d"
-#define ACE_UINT64_FORMAT_SPECIFIER_ASCII "%I64u"
-
-#define ACE_ENDTHREADEX(STATUS) ::_endthreadex ((DWORD) (STATUS))
-
-#define ACE_DLL_PREFIX ACE_TEXT ("lib")
-
-#include /**/ "ace/post.h"
-#endif /* ACE_CONFIG_WIN32_MINGW64_H */
diff --git a/ACE/ace/config-win32.h b/ACE/ace/config-win32.h
index 1ada8467838..7cad8a1f1fa 100644
--- a/ACE/ace/config-win32.h
+++ b/ACE/ace/config-win32.h
@@ -26,15 +26,11 @@
// Include the config-win32-* file specific to the compiler
#if defined (_MSC_VER)
-# include "ace/config-win32-msvc.h"
+# include "ace/config-win32-msvc.h"
#elif defined (ACE_HAS_CEGCC) //need to be prior to MINGW32
-# include "ace/config-win32-cegcc.h"
+# include "ace/config-win32-cegcc.h"
#elif defined (__MINGW32__)
-# if defined (__MINGW64_VERSION_MAJOR)
-# include "ace/config-win32-mingw64.h"
-# else
-# include "ace/config-win32-mingw.h"
-# endif
+# include "ace/config-win32-mingw.h"
#elif defined (__DMC__)
# include "ace/config-win32-dmc.h"
#else
diff --git a/ACE/apps/Gateway/Gateway/Gateway.cpp b/ACE/apps/Gateway/Gateway/Gateway.cpp
index b91c8026143..7f14f27603e 100644
--- a/ACE/apps/Gateway/Gateway/Gateway.cpp
+++ b/ACE/apps/Gateway/Gateway/Gateway.cpp
@@ -7,7 +7,6 @@
#include "ace/OS_NS_unistd.h"
#include "ace/Service_Config.h"
#include "ace/Signal.h"
-#include "ace/Truncate.h"
#include "Config_Files.h"
#include "Event_Channel.h"
#include "Gateway.h"
@@ -72,7 +71,7 @@ Gateway::handle_input (ACE_HANDLE h)
ACE_OS::read (h, buf, sizeof (buf));
// Shut us down.
- return this->handle_signal (ACE_Utils::truncate_cast<int> ((intptr_t)h));
+ return this->handle_signal ((int) h);
}
int
diff --git a/ACE/bin/auto_run_tests.pl b/ACE/bin/auto_run_tests.pl
index 10b38b0b9a1..c7f1caf093d 100755
--- a/ACE/bin/auto_run_tests.pl
+++ b/ACE/bin/auto_run_tests.pl
@@ -176,9 +176,6 @@ foreach my $test_lst (@file_list) {
if (! $is_ace_test) {
print "auto_run_tests: $test\n";
- $ENV{COVERITY_TEST_NAME} = $test;
- $ENV{COVERITY_SUITE_NAME} = $test_lst;
- $ENV{COVERITY_TEST_SOURCE} = "$directory/$program";
}
my($orig_dir) = $directory;
diff --git a/ACE/bin/diff-builds-and-group-fixed-tests-only.sh b/ACE/bin/diff-builds-and-group-fixed-tests-only.sh
index 4087013eec1..6389dd876ce 100755
--- a/ACE/bin/diff-builds-and-group-fixed-tests-only.sh
+++ b/ACE/bin/diff-builds-and-group-fixed-tests-only.sh
@@ -3,7 +3,7 @@
if test -z $1; then newdate=`date -u +%Y_%m_%d`; else newdate=$1; fi
if test -z $2; then prefix=`date -u +%Y%m%d%a`; else prefix=$2; fi
-if test -z $3; then olddate=2013_03_14; else olddate=$3; fi
+if test -z $3; then olddate=2012_12_27; else olddate=$3; fi
if test -z $ACE_ROOT; then ACE_ROOT=..; fi
if test -z $TAO_ROOT; then TAO_ROOT=${ACE_ROOT}/TAO; fi
if test -z $CIAO_ROOT; then CIAO_ROOT=${TAO_ROOT}/CIAO; fi
diff --git a/ACE/bin/fuzz.pl b/ACE/bin/fuzz.pl
index 17caee09361..f916e9263c0 100755
--- a/ACE/bin/fuzz.pl
+++ b/ACE/bin/fuzz.pl
@@ -1511,9 +1511,11 @@ sub check_for_mismatched_filename ()
while (<FILE>) {
if (m/\@file\s*([^\s]+)/){
# $file includes complete path, $1 is the name after
- # @file. We must check whether the last part of $file
- # is equal to $1
- if ($file !~ /$1$/) {
+ # @file. We must strip the complete path from $file.
+ # we do that using the basename function from
+ # File::BaseName
+ $filename = basename($file,"");
+ if (!($filename eq $1)){
print_error ("$file:$.: \@file mismatch in $file, found $1");
}
}
diff --git a/ACE/bin/make_release.py b/ACE/bin/make_release.py
index 0ef26368f22..4e717cf3ccc 100755
--- a/ACE/bin/make_release.py
+++ b/ACE/bin/make_release.py
@@ -915,7 +915,7 @@ def generate_workspaces (stage_dir):
mpc_option += ' -relative TAO_ROOT=' + stage_dir + '/ACE_wrappers/TAO '
mpc_option += ' -relative CIAO_ROOT=' + stage_dir + '/ACE_wrappers/TAO/CIAO '
mpc_option += ' -relative DANCE_ROOT=' + stage_dir + '/ACE_wrappers/TAO/DAnCE '
- msvc_exclude_option = ' -exclude TAO/CIAO/CIAO_TAO_DAnCE_OpenDDS.mwc,TAO/CIAO/CIAO_TAO_OpenDDS.mwc,TAO/CIAO/CIAO_TAO_DAnCE_OpenDDS_shapes.mwc '
+ msvc_exclude_option = ' -exclude TAO/CIAO/CIAO_TAO_DAnCE_OpenDDS.mwc,TAO/CIAO/CIAO_TAO_OpenDDS.mwc '
vc10_option = ' -name_modifier *_vc10 '
vc9_option = ' -name_modifier *_vc9 '
diff --git a/ACE/debian/ace.dsc b/ACE/debian/ace.dsc
index 99501edf5ea..81ce56052f1 100644
--- a/ACE/debian/ace.dsc
+++ b/ACE/debian/ace.dsc
@@ -1,10 +1,10 @@
Format: 1.0
-Source: ACE+TAO+CIAO-src-6.1.8
-Version: 2.1.8
+Source: ACE+TAO+CIAO-src-6.1.7
+Version: 2.1.7
Binary: ace
Maintainer: Johnny Willemsen <jwillemsen@remedy.nl>
Architecture: any
-Build-Depends: gcc, make, g++, debhelper (>= 5), dpkg-dev, libssl-dev (>= 0.9.7d), dpatch (>= 2.0.10), libxt-dev (>= 4.3.0), libfltk1.1-dev (>= 1.1.4), libqt4-dev (>= 4.4~rc1-4), tk-dev, zlib1g-dev, docbook-to-man, bzip2, autoconf, automake, libtool, autotools-dev, doxygen, graphviz, libfox-1.6-dev, libzzip-dev, libbz2-dev
+Build-Depends: gcc, make, g++, debhelper (>= 5), libssl-dev (>= 0.9.7d), dpatch (>= 2.0.10), libxt-dev (>= 4.3.0), libfltk1.1-dev (>= 1.1.4), libqt4-dev (>= 4.4~rc1-4), tk-dev (>= 8.4.7), zlib1g-dev, docbook-to-man, bzip2, autoconf, automake, libtool, autotools-dev, doxygen, graphviz
Files:
- e32db91fd4f3ca1e9cd07d77afb9d8d2 45290746 ACE+TAO+CIAO-src-6.1.8.tar.gz
+ 65b34001c9605f056713a7e146b052d1 46346654 ACE+TAO+CIAO-src-6.1.7.tar.gz
diff --git a/ACE/debian/debian.changelog b/ACE/debian/debian.changelog
index fc255bb7d0a..bd10dc517d8 100644
--- a/ACE/debian/debian.changelog
+++ b/ACE/debian/debian.changelog
@@ -1,9 +1,3 @@
-ace (6.1.8-1) experimental; urgency=low
-
- * New upstream release.
-
- -- Johnny Willemsen <jwillemsen@remedy.nl> Thu, 04 Apr 2013 19:01:01 +0200
-
ace (6.1.7-1) experimental; urgency=low
* New upstream release.
diff --git a/ACE/debian/debian.control b/ACE/debian/debian.control
index e72113e0e7d..eb5bd5f260b 100644
--- a/ACE/debian/debian.control
+++ b/ACE/debian/debian.control
@@ -28,7 +28,7 @@ Description: makefile, project, and workspace creator
* mpc-ace: generates project files for a single target
* mwc-ace: generates workspace files for a set of projects
-Package: libace-6.1.8
+Package: libace-6.1.7
Architecture: any
Section: libs
Depends: ${shlibs:Depends}, ${misc:Depends}
@@ -46,7 +46,7 @@ Description: C++ network programming framework
Package: libace-dev
Architecture: any
Section: libdevel
-Depends: libace-6.1.8 (= ${binary:Version}), ${misc:Depends}
+Depends: libace-6.1.7 (= ${binary:Version}), ${misc:Depends}
Suggests: libace-doc, libtao-dev, pkg-config
Replaces: mpc-ace (<< 5.6.3-4)
Description: C++ network programming framework - development files
@@ -63,7 +63,7 @@ Description: C++ network programming framework - documentation
This package contains the ACE overview documentation, tutorials,
examples, and information regarding upstream development.
-Package: libace-ssl-6.1.8
+Package: libace-ssl-6.1.7
Architecture: any
Section: libs
Depends: ${shlibs:Depends}, ${misc:Depends}
@@ -74,12 +74,12 @@ Description: ACE secure socket layer library
Package: libace-ssl-dev
Architecture: any
Section: libdevel
-Depends: libace-ssl-6.1.8 (= ${binary:Version}), libace-dev (= ${binary:Version}), libssl-dev (>= 0.9.7d), ${misc:Depends}
+Depends: libace-ssl-6.1.7 (= ${binary:Version}), libace-dev (= ${binary:Version}), libssl-dev (>= 0.9.7d), ${misc:Depends}
Description: ACE secure socket layer library - development files
This package contains the header files and static library for the ACE
SSL library.
-Package: libace-rmcast-6.1.8
+Package: libace-rmcast-6.1.7
Architecture: any
Section: libs
Depends: ${shlibs:Depends}, ${misc:Depends}
@@ -93,12 +93,12 @@ Description: ACE reliable multicast library
Package: libace-rmcast-dev
Architecture: any
Section: libdevel
-Depends: libace-rmcast-6.1.8 (= ${binary:Version}), libace-dev (= ${binary:Version}), ${misc:Depends}
+Depends: libace-rmcast-6.1.7 (= ${binary:Version}), libace-dev (= ${binary:Version}), ${misc:Depends}
Description: ACE reliable multicast library - development files
This package contains the header files and static library for the ACE
reliable multicast library.
-Package: libace-tmcast-6.1.8
+Package: libace-tmcast-6.1.7
Architecture: any
Section: libs
Depends: ${shlibs:Depends}, ${misc:Depends}
@@ -112,12 +112,12 @@ Description: ACE transactional multicast library
Package: libace-tmcast-dev
Architecture: any
Section: libdevel
-Depends: libace-tmcast-6.1.8 (= ${binary:Version}), libace-dev (= ${binary:Version}), ${misc:Depends}
+Depends: libace-tmcast-6.1.7 (= ${binary:Version}), libace-dev (= ${binary:Version}), ${misc:Depends}
Description: ACE transactional multicast library - development files
This package contains the header files and static library for the ACE
transactional multicast library.
-Package: libace-htbp-6.1.8
+Package: libace-htbp-6.1.7
Architecture: any
Section: libs
Depends: ${shlibs:Depends}, ${misc:Depends}
@@ -131,12 +131,12 @@ Description: ACE protocol over HTTP tunneling library
Package: libace-htbp-dev
Architecture: any
Section: libdevel
-Depends: libace-htbp-6.1.8 (= ${binary:Version}), libace-dev (= ${binary:Version}), ${misc:Depends}
+Depends: libace-htbp-6.1.7 (= ${binary:Version}), libace-dev (= ${binary:Version}), ${misc:Depends}
Description: ACE protocol over HTTP tunneling library - development files
This package contains the header files and static library for the ACE
HTBP library.
-Package: libace-inet-6.1.8
+Package: libace-inet-6.1.7
Architecture: any
Section: libs
Depends: ${shlibs:Depends}, ${misc:Depends}
@@ -147,15 +147,15 @@ Description: ACE Inet protocol library
Package: libace-inet-dev
Architecture: any
Section: libdevel
-Depends: libace-inet-6.1.8 (= ${binary:Version}), libace-dev (= ${binary:Version}), ${misc:Depends}
+Depends: libace-inet-6.1.7 (= ${binary:Version}), libace-dev (= ${binary:Version}), ${misc:Depends}
Description: ACE Inet protocol library - development files
This package contains the header files and static library for the ACE
Inet protocol library.
-Package: libace-inet-ssl-6.1.8
+Package: libace-inet-ssl-6.1.7
Architecture: any
Section: libs
-Depends: libace-inet-6.1.8, libace-ssl-6.1.8, ${shlibs:Depends}, ${misc:Depends}
+Depends: libace-inet-6.1.7, libace-ssl-6.1.7, ${shlibs:Depends}, ${misc:Depends}
Description: ACE SSL-enabled Inet protocol library
This package provides an ACE addon library for clients (and possibly
servers at some point) using Inet protocols which support SSL, such as
@@ -164,7 +164,7 @@ Description: ACE SSL-enabled Inet protocol library
Package: libace-inet-ssl-dev
Architecture: any
Section: libdevel
-Depends: libace-inet-ssl-6.1.8 (= ${binary:Version}), libace-inet-dev (= ${binary:Version}), libace-ssl-dev (= ${binary:Version}), ${misc:Depends}
+Depends: libace-inet-ssl-6.1.7 (= ${binary:Version}), libace-inet-dev (= ${binary:Version}), libace-ssl-dev (= ${binary:Version}), ${misc:Depends}
Description: ACE SSL-enabled Inet protocol library - development files
This package contains the header files and static library for the ACE
SSL-enabled Inet protocol library.
@@ -191,7 +191,7 @@ Description: ACE perfect hash function generator (transitional package)
.
It can be safely removed after installation.
-Package: libacexml-6.1.8
+Package: libacexml-6.1.7
Architecture: any
Section: libs
Depends: ${shlibs:Depends}, ${misc:Depends}
@@ -207,16 +207,16 @@ Package: libacexml-dev
Architecture: any
Section: libdevel
Replaces: libace-dev (<< 5.7.7-4)
-Depends: libacexml-6.1.8 (= ${binary:Version}), libace-dev (= ${binary:Version}), ${misc:Depends}
+Depends: libacexml-6.1.7 (= ${binary:Version}), libace-dev (= ${binary:Version}), ${misc:Depends}
Description: ACE SAX based XML parsing library - development files
This package contains the header files and static library for the ACE
XML parsing library.
-Package: libkokyu-6.1.8
+Package: libkokyu-6.1.7
Architecture: any
Section: libs
Depends: ${shlibs:Depends}, ${misc:Depends}
-Suggests: libtao-2.1.8, libtao-orbsvcs-2.1.8
+Suggests: libtao-2.1.2, libtao-orbsvcs-2.1.7
Description: ACE scheduling and dispatching library
Kokyu is a library designed to provide flexible scheduling and
dispatching services.
@@ -227,12 +227,12 @@ Description: ACE scheduling and dispatching library
Package: libkokyu-dev
Architecture: any
Section: libdevel
-Depends: libkokyu-6.1.8 (= ${binary:Version}), libace-dev (= ${binary:Version}), ${misc:Depends}
+Depends: libkokyu-6.1.7 (= ${binary:Version}), libace-dev (= ${binary:Version}), ${misc:Depends}
Description: ACE scheduling and dispatching library - development files
This package contains the header files and static library for the ACE
scheduling and dispatching library.
-Package: libace-qtreactor-6.1.8
+Package: libace-qtreactor-6.1.7
Architecture: any
Section: libs
Depends: ${shlibs:Depends}, ${misc:Depends}
@@ -251,12 +251,12 @@ Description: ACE-GUI reactor integration for Qt
Package: libace-qtreactor-dev
Architecture: any
Section: libdevel
-Depends: libace-qtreactor-6.1.8 (= ${binary:Version}), libace-dev (= ${binary:Version}), libqt4-dev, ${misc:Depends}
+Depends: libace-qtreactor-6.1.7 (= ${binary:Version}), libace-dev (= ${binary:Version}), libqt4-dev, ${misc:Depends}
Description: ACE-GUI reactor integration for Qt - development files
This package contains header files and static library for the ACE-Qt
reactor integration.
-Package: libace-xtreactor-6.1.8
+Package: libace-xtreactor-6.1.7
Architecture: any
Section: libs
Depends: ${shlibs:Depends}, ${misc:Depends}
@@ -274,12 +274,12 @@ Description: ACE-GUI reactor integration for Xt
Package: libace-xtreactor-dev
Architecture: any
Section: libdevel
-Depends: libace-xtreactor-6.1.8 (= ${binary:Version}), libace-dev (= ${binary:Version}), libxt-dev (>= 6.1.7), ${misc:Depends}
+Depends: libace-xtreactor-6.1.7 (= ${binary:Version}), libace-dev (= ${binary:Version}), libxt-dev (>= 6.1.7), ${misc:Depends}
Description: ACE-GUI reactor integration for Xt - development files
This package contains header files and static library for the ACE-Xt
reactor integration.
-Package: libace-tkreactor-6.1.8
+Package: libace-tkreactor-6.1.7
Architecture: any
Section: libs
Depends: ${shlibs:Depends}, ${misc:Depends}
@@ -298,12 +298,12 @@ Description: ACE-GUI reactor integration for Tk
Package: libace-tkreactor-dev
Architecture: any
Section: libdevel
-Depends: libace-tkreactor-6.1.8 (= ${binary:Version}), libace-dev (= ${binary:Version}), tk-dev (>= 8.5), ${misc:Depends}
+Depends: libace-tkreactor-6.1.7 (= ${binary:Version}), libace-dev (= ${binary:Version}), tk-dev (>= 8.5), ${misc:Depends}
Description: ACE-GUI reactor integration for Tk - development files
This package contains header files and static library for the ACE-Tk
reactor integration.
-Package: libace-flreactor-6.1.8
+Package: libace-flreactor-6.1.7
Architecture: any
Section: libs
Depends: ${shlibs:Depends}, ${misc:Depends}
@@ -321,12 +321,12 @@ Description: ACE-GUI reactor integration for Fl
Package: libace-flreactor-dev
Architecture: any
Section: libdevel
-Depends: libace-flreactor-6.1.8 (= ${binary:Version}), libace-dev (= ${binary:Version}), libfltk1.1-dev (>= 6.1.8), ${misc:Depends}
+Depends: libace-flreactor-6.1.7 (= ${binary:Version}), libace-dev (= ${binary:Version}), libfltk1.1-dev (>= 6.1.7), ${misc:Depends}
Description: ACE-GUI reactor integration for Fl - development files
This package contains header files and static library for the ACE-Fl
reactor integration.
-Package: libace-foxreactor-6.1.8
+Package: libace-foxreactor-6.1.7
Architecture: any
Section: libs
Depends: ${shlibs:Depends}, ${misc:Depends}
@@ -343,12 +343,12 @@ Description: ACE-GUI reactor integration for FOX
Package: libace-foxreactor-dev
Architecture: any
Section: libdevel
-Depends: libace-foxreactor-6.1.8 (= ${binary:Version}), libace-dev (= ${binary:Version}), libfox-1.6-dev, ${misc:Depends}
+Depends: libace-foxreactor-6.1.7 (= ${binary:Version}), libace-dev (= ${binary:Version}), libfox-1.6-dev, ${misc:Depends}
Description: ACE-GUI reactor integration for FOX - development files
This package contains header files and static library for the ACE-FOX
reactor integration.
-Package: libtao-2.1.8
+Package: libtao-2.1.7
Architecture: any
Section: libs
Depends: ${shlibs:Depends}, ${misc:Depends}
@@ -363,7 +363,7 @@ Package: libtao-dev
Architecture: any
Section: libdevel
Replaces: libtao-orbsvcs-dev (<< 5.7.7-4)
-Depends: libtao-2.1.8 (= ${binary:Version}), libace-dev (= ${binary:Version}), ${misc:Depends}
+Depends: libtao-2.1.7 (= ${binary:Version}), libace-dev (= ${binary:Version}), ${misc:Depends}
Suggests: libtao-doc, libtao-orbsvcs-dev
Description: ACE based CORBA ORB core libraries - development files
This package contains the header files for TAO. Due to the size of
@@ -379,7 +379,7 @@ Description: ACE based CORBA ORB core libraries - documentation
This package contains the TAO overview documentation, tutorials,
examples, and information regarding upstream development.
-Package: libtao-orbsvcs-2.1.8
+Package: libtao-orbsvcs-2.1.7
Architecture: any
Section: libs
Depends: ${shlibs:Depends}, ${misc:Depends}
@@ -390,14 +390,14 @@ Package: libtao-orbsvcs-dev
Architecture: any
Section: libdevel
Replaces: libtao-dev (<< 5.7.7-4)
-Depends: libtao-orbsvcs-2.1.8 (= ${binary:Version}), libtao-dev (= ${binary:Version}), ${misc:Depends}
+Depends: libtao-orbsvcs-2.1.7 (= ${binary:Version}), libtao-dev (= ${binary:Version}), ${misc:Depends}
Description: TAO CORBA services - development files
This package contains the header files for the TAO CORBA services.
.
The examples and some documentation have been included as well, but the
static libraries have been left out due to their size (over 400MB).
-Package: libtao-qtresource-2.1.8
+Package: libtao-qtresource-2.1.7
Architecture: any
Section: libs
Depends: ${shlibs:Depends}, ${misc:Depends}
@@ -408,12 +408,12 @@ Description: TAO-GUI reactor integration for Qt
Package: libtao-qtresource-dev
Architecture: any
Section: libdevel
-Depends: libtao-qtresource-2.1.8 (= ${binary:Version}), libace-qtreactor-dev (= ${binary:Version}), libtao-dev (= ${binary:Version}), ${misc:Depends}
+Depends: libtao-qtresource-2.1.7 (= ${binary:Version}), libace-qtreactor-dev (= ${binary:Version}), libtao-dev (= ${binary:Version}), ${misc:Depends}
Description: TAO-GUI reactor integration for Qt - development files
This package contains header files and static library for the TAO-Qt
reactor integration.
-Package: libtao-xtresource-2.1.8
+Package: libtao-xtresource-2.1.7
Architecture: any
Section: libs
Depends: ${shlibs:Depends}, ${misc:Depends}
@@ -424,12 +424,12 @@ Description: TAO-GUI reactor integration for Xt
Package: libtao-xtresource-dev
Architecture: any
Section: libdevel
-Depends: libtao-xtresource-2.1.8 (= ${binary:Version}), libace-xtreactor-dev (= ${binary:Version}), libtao-dev (= ${binary:Version}), ${misc:Depends}
+Depends: libtao-xtresource-2.1.7 (= ${binary:Version}), libace-xtreactor-dev (= ${binary:Version}), libtao-dev (= ${binary:Version}), ${misc:Depends}
Description: TAO-GUI reactor integration for Xt - development files
This package contains header files and static library for the TAO-Xt
reactor integration.
-Package: libtao-flresource-2.1.8
+Package: libtao-flresource-2.1.7
Architecture: any
Section: libs
Depends: ${shlibs:Depends}, ${misc:Depends}
@@ -440,12 +440,12 @@ Description: TAO-GUI reactor integration for Fl
Package: libtao-flresource-dev
Architecture: any
Section: libdevel
-Depends: libtao-flresource-2.1.8 (= ${binary:Version}), libace-flreactor-dev (= ${binary:Version}), libtao-dev (= ${binary:Version}), ${misc:Depends}
+Depends: libtao-flresource-2.1.7 (= ${binary:Version}), libace-flreactor-dev (= ${binary:Version}), libtao-dev (= ${binary:Version}), ${misc:Depends}
Description: TAO-GUI reactor integration for Fl - development files
This package contains header files and static library for the TAO-Fl
reactor integration.
-Package: libtao-tkresource-2.1.8
+Package: libtao-tkresource-2.1.7
Architecture: any
Section: libs
Depends: ${shlibs:Depends}, ${misc:Depends}
@@ -456,12 +456,12 @@ Description: TAO-GUI reactor integration for Tk
Package: libtao-tkresource-dev
Architecture: any
Section: libdevel
-Depends: libtao-tkresource-2.1.8 (= ${binary:Version}), libace-tkreactor-dev (= ${binary:Version}), libtao-dev (= ${binary:Version}), ${misc:Depends}
+Depends: libtao-tkresource-2.1.7 (= ${binary:Version}), libace-tkreactor-dev (= ${binary:Version}), libtao-dev (= ${binary:Version}), ${misc:Depends}
Description: TAO-GUI reactor integration for Tk - development files
This package contains header files and static library for the TAO-Tk
reactor integration.
-Package: libtao-foxresource-2.1.8
+Package: libtao-foxresource-2.1.7
Architecture: any
Section: libs
Depends: ${shlibs:Depends}, ${misc:Depends}
@@ -472,14 +472,14 @@ Description: TAO-GUI reactor integration for FOX
Package: libtao-foxresource-dev
Architecture: any
Section: libdevel
-Depends: libtao-foxresource-2.1.8 (= ${binary:Version}), libace-foxreactor-dev (= ${binary:Version}), libtao-dev (= ${binary:Version}), ${misc:Depends}
+Depends: libtao-foxresource-2.1.7 (= ${binary:Version}), libace-foxreactor-dev (= ${binary:Version}), libtao-dev (= ${binary:Version}), ${misc:Depends}
Description: TAO-GUI reactor integration for FOX - development files
This package contains header files and static library for the TAO-FOX
reactor integration.
Package: tao-idl
Architecture: any
-Depends: g++, libtao-2.1.8 (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends}
+Depends: g++, libtao-2.1.7 (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends}
Description: TAO IDL to C++ compiler
This package provides an Interface Definition Language (IDL) to C++
compiler.
@@ -489,7 +489,7 @@ Description: TAO IDL to C++ compiler
Package: tao-ifr
Architecture: any
-Depends: g++, libtao-2.1.8 (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends}
+Depends: g++, libtao-2.1.7 (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends}
Description: TAO interface repository
CORBA-aware programs can contact an interface repository to get
objects' interfaces at run-time. Then they can use the Dynamic
diff --git a/ACE/debian/libace-6.1.8.docs b/ACE/debian/libace-6.1.7.docs
index 3bdab5b0089..3bdab5b0089 100644
--- a/ACE/debian/libace-6.1.8.docs
+++ b/ACE/debian/libace-6.1.7.docs
diff --git a/ACE/debian/libace-6.1.8.install b/ACE/debian/libace-6.1.7.install
index d9afda38c12..d9afda38c12 100644
--- a/ACE/debian/libace-6.1.8.install
+++ b/ACE/debian/libace-6.1.7.install
diff --git a/ACE/debian/libace-flreactor-6.1.8.install b/ACE/debian/libace-flreactor-6.1.7.install
index 528836aacee..528836aacee 100644
--- a/ACE/debian/libace-flreactor-6.1.8.install
+++ b/ACE/debian/libace-flreactor-6.1.7.install
diff --git a/ACE/debian/libace-foxreactor-6.1.8.install b/ACE/debian/libace-foxreactor-6.1.7.install
index e360f29f5af..e360f29f5af 100644
--- a/ACE/debian/libace-foxreactor-6.1.8.install
+++ b/ACE/debian/libace-foxreactor-6.1.7.install
diff --git a/ACE/debian/libace-htbp-6.1.8.install b/ACE/debian/libace-htbp-6.1.7.install
index 08103fd5cad..08103fd5cad 100644
--- a/ACE/debian/libace-htbp-6.1.8.install
+++ b/ACE/debian/libace-htbp-6.1.7.install
diff --git a/ACE/debian/libace-inet-6.1.8.install b/ACE/debian/libace-inet-6.1.7.install
index 59a73a509d0..59a73a509d0 100644
--- a/ACE/debian/libace-inet-6.1.8.install
+++ b/ACE/debian/libace-inet-6.1.7.install
diff --git a/ACE/debian/libace-inet-ssl-6.1.8.install b/ACE/debian/libace-inet-ssl-6.1.7.install
index b9b8b9045f7..b9b8b9045f7 100644
--- a/ACE/debian/libace-inet-ssl-6.1.8.install
+++ b/ACE/debian/libace-inet-ssl-6.1.7.install
diff --git a/ACE/debian/libace-qtreactor-6.1.8.install b/ACE/debian/libace-qtreactor-6.1.7.install
index 1d371e1e571..1d371e1e571 100644
--- a/ACE/debian/libace-qtreactor-6.1.8.install
+++ b/ACE/debian/libace-qtreactor-6.1.7.install
diff --git a/ACE/debian/libace-rmcast-6.1.8.install b/ACE/debian/libace-rmcast-6.1.7.install
index 86e78259853..86e78259853 100644
--- a/ACE/debian/libace-rmcast-6.1.8.install
+++ b/ACE/debian/libace-rmcast-6.1.7.install
diff --git a/ACE/debian/libace-ssl-6.1.8.NEWS b/ACE/debian/libace-ssl-6.1.7.NEWS
index e5bd0e4aa10..e5bd0e4aa10 100644
--- a/ACE/debian/libace-ssl-6.1.8.NEWS
+++ b/ACE/debian/libace-ssl-6.1.7.NEWS
diff --git a/ACE/debian/libace-ssl-6.1.8.install b/ACE/debian/libace-ssl-6.1.7.install
index 8df45a6d55f..8df45a6d55f 100644
--- a/ACE/debian/libace-ssl-6.1.8.install
+++ b/ACE/debian/libace-ssl-6.1.7.install
diff --git a/ACE/debian/libace-tkreactor-6.1.8.install b/ACE/debian/libace-tkreactor-6.1.7.install
index 12ab35062d2..12ab35062d2 100644
--- a/ACE/debian/libace-tkreactor-6.1.8.install
+++ b/ACE/debian/libace-tkreactor-6.1.7.install
diff --git a/ACE/debian/libace-tmcast-6.1.8.install b/ACE/debian/libace-tmcast-6.1.7.install
index e066131dea0..e066131dea0 100644
--- a/ACE/debian/libace-tmcast-6.1.8.install
+++ b/ACE/debian/libace-tmcast-6.1.7.install
diff --git a/ACE/debian/libace-xml-utils-6.1.8.install b/ACE/debian/libace-xml-utils-6.1.7.install
index 2428ec9f109..2428ec9f109 100644
--- a/ACE/debian/libace-xml-utils-6.1.8.install
+++ b/ACE/debian/libace-xml-utils-6.1.7.install
diff --git a/ACE/debian/libace-xtreactor-6.1.8.install b/ACE/debian/libace-xtreactor-6.1.7.install
index c53614c7208..c53614c7208 100644
--- a/ACE/debian/libace-xtreactor-6.1.8.install
+++ b/ACE/debian/libace-xtreactor-6.1.7.install
diff --git a/ACE/debian/libacexml-6.1.8.docs b/ACE/debian/libacexml-6.1.7.docs
index 002855d7915..002855d7915 100644
--- a/ACE/debian/libacexml-6.1.8.docs
+++ b/ACE/debian/libacexml-6.1.7.docs
diff --git a/ACE/debian/libacexml-6.1.8.install b/ACE/debian/libacexml-6.1.7.install
index d3e912ffa51..d3e912ffa51 100644
--- a/ACE/debian/libacexml-6.1.8.install
+++ b/ACE/debian/libacexml-6.1.7.install
diff --git a/ACE/debian/libkokyu-6.1.8.docs b/ACE/debian/libkokyu-6.1.7.docs
index e8869c513b2..e8869c513b2 100644
--- a/ACE/debian/libkokyu-6.1.8.docs
+++ b/ACE/debian/libkokyu-6.1.7.docs
diff --git a/ACE/debian/libkokyu-6.1.8.install b/ACE/debian/libkokyu-6.1.7.install
index 62854308f96..62854308f96 100644
--- a/ACE/debian/libkokyu-6.1.8.install
+++ b/ACE/debian/libkokyu-6.1.7.install
diff --git a/ACE/debian/libtao-2.1.8.docs b/ACE/debian/libtao-2.1.7.docs
index 803353aba72..803353aba72 100644
--- a/ACE/debian/libtao-2.1.8.docs
+++ b/ACE/debian/libtao-2.1.7.docs
diff --git a/ACE/debian/libtao-2.1.8.install b/ACE/debian/libtao-2.1.7.install
index a80041c6986..a80041c6986 100644
--- a/ACE/debian/libtao-2.1.8.install
+++ b/ACE/debian/libtao-2.1.7.install
diff --git a/ACE/debian/libtao-flresource-2.1.8.install b/ACE/debian/libtao-flresource-2.1.7.install
index 5d4ee6ce57a..5d4ee6ce57a 100644
--- a/ACE/debian/libtao-flresource-2.1.8.install
+++ b/ACE/debian/libtao-flresource-2.1.7.install
diff --git a/ACE/debian/libtao-foxresource-2.1.8.install b/ACE/debian/libtao-foxresource-2.1.7.install
index 6ceb47601aa..6ceb47601aa 100644
--- a/ACE/debian/libtao-foxresource-2.1.8.install
+++ b/ACE/debian/libtao-foxresource-2.1.7.install
diff --git a/ACE/debian/libtao-orbsvcs-2.1.8.NEWS b/ACE/debian/libtao-orbsvcs-2.1.7.NEWS
index ea0759e0ade..ea0759e0ade 100644
--- a/ACE/debian/libtao-orbsvcs-2.1.8.NEWS
+++ b/ACE/debian/libtao-orbsvcs-2.1.7.NEWS
diff --git a/ACE/debian/libtao-orbsvcs-2.1.8.install b/ACE/debian/libtao-orbsvcs-2.1.7.install
index e0e491e9095..e0e491e9095 100644
--- a/ACE/debian/libtao-orbsvcs-2.1.8.install
+++ b/ACE/debian/libtao-orbsvcs-2.1.7.install
diff --git a/ACE/debian/libtao-qtresource-2.1.8.install b/ACE/debian/libtao-qtresource-2.1.7.install
index 172f4c45db8..172f4c45db8 100644
--- a/ACE/debian/libtao-qtresource-2.1.8.install
+++ b/ACE/debian/libtao-qtresource-2.1.7.install
diff --git a/ACE/debian/libtao-tkresource-2.1.8.install b/ACE/debian/libtao-tkresource-2.1.7.install
index 7f543154b5b..7f543154b5b 100644
--- a/ACE/debian/libtao-tkresource-2.1.8.install
+++ b/ACE/debian/libtao-tkresource-2.1.7.install
diff --git a/ACE/debian/libtao-xtresource-2.1.8.install b/ACE/debian/libtao-xtresource-2.1.7.install
index ab5151ed073..ab5151ed073 100644
--- a/ACE/debian/libtao-xtresource-2.1.8.install
+++ b/ACE/debian/libtao-xtresource-2.1.7.install
diff --git a/ACE/docs/ACE-bug-process.html b/ACE/docs/ACE-bug-process.html
index d161b36fc1a..a703c0072f6 100644
--- a/ACE/docs/ACE-bug-process.html
+++ b/ACE/docs/ACE-bug-process.html
@@ -173,7 +173,7 @@ HREF="../tests">ACE_ROOT/tests</A> directory. <P>
<A HREF="http://www.dre.vanderbilt.edu/scoreboard">autobuild
scoreboard</A> please consider contributing one or more autobuilds
that can be used to keep track of changes to your platform/compiler
-combination and ensure things continue to work as the ACE+TAO source
+combiation and ensure things continue to work as the ACE+TAO source
code evolves. <P>
<LI> By submitting bug fixes submitters acknowledge that they have the
diff --git a/ACE/docs/Download.html b/ACE/docs/Download.html
index 7fcc2fe4b94..011337a6c65 100644
--- a/ACE/docs/Download.html
+++ b/ACE/docs/Download.html
@@ -101,128 +101,128 @@ of the ACE, TAO, and CIAO micro release kit is available for
<TR><TH>Filename</TH><TH>Description</TH><TH>Full</TH><TH>Sources only</TH></TR>
<TR><TD>ACE+TAO+CIAO.tar.gz</TD>
<TD>ACE+TAO+CIAO (tar+gzip format)</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-6.1.8.tar.gz">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-6.1.8.tar.gz">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-6.1.7.tar.gz">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-6.1.7.tar.gz">FTP</A>]
</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-src-6.1.8.tar.gz">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-src-6.1.8.tar.gz">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-src-6.1.7.tar.gz">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-src-6.1.7.tar.gz">FTP</A>]
</TD>
</TR>
<TR><TD>ACE+TAO+CIAO.tar.bz2</TD>
<TD>ACE+TAO+CIAO (tar+bzip2 format)</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-6.1.8.tar.bz2">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-6.1.8.tar.bz2">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-6.1.7.tar.bz2">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-6.1.7.tar.bz2">FTP</A>]
</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-src-6.1.8.tar.bz2">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-src-6.1.8.tar.bz2">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-src-6.1.7.tar.bz2">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-src-6.1.7.tar.bz2">FTP</A>]
</TD>
</TR>
<TR><TD>ACE+TAO+CIAO.zip</TD>
<TD>ACE+TAO+CIAO (zip format)</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-6.1.8.zip">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-6.1.8.zip">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-6.1.7.zip">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-6.1.7.zip">FTP</A>]
</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-src-6.1.8.zip">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-src-6.1.8.zip">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-src-6.1.7.zip">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-src-6.1.7.zip">FTP</A>]
</TD>
</TR>
<TR><TD>ACE+TAO+DAnCE.tar.gz</TD>
<TD>ACE+TAO+DAnCE (tar+gzip format)</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+DAnCE-6.1.8.tar.gz">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+DAnCE-6.1.8.tar.gz">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+DAnCE-6.1.7.tar.gz">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+DAnCE-6.1.7.tar.gz">FTP</A>]
</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+DAnCE-src-6.1.8.tar.gz">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+DAnCE-src-6.1.8.tar.gz">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+DAnCE-src-6.1.7.tar.gz">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+DAnCE-src-6.1.7.tar.gz">FTP</A>]
</TD>
</TR>
<TR><TD>ACE+TAO+DAnCE.tar.bz2</TD>
<TD>ACE+TAO+DAnCE (tar+bzip2 format)</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+DAnCE-6.1.8.tar.bz2">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+DAnCE-6.1.8.tar.bz2">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+DAnCE-6.1.7.tar.bz2">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+DAnCE-6.1.7.tar.bz2">FTP</A>]
</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+DAnCE-src-6.1.8.tar.bz2">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+DAnCE-src-6.1.8.tar.bz2">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+DAnCE-src-6.1.7.tar.bz2">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+DAnCE-src-6.1.7.tar.bz2">FTP</A>]
</TD>
</TR>
<TR><TD>ACE+TAO+DAnCE.zip</TD>
<TD>ACE+TAO+DAnCE (zip format)</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+DAnCE-6.1.8.zip">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+DAnCE-6.1.8.zip">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+DAnCE-6.1.7.zip">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+DAnCE-6.1.7.zip">FTP</A>]
</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+DAnCE-src-6.1.8.zip">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+DAnCE-src-6.1.8.zip">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+DAnCE-src-6.1.7.zip">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+DAnCE-src-6.1.7.zip">FTP</A>]
</TD>
</TR>
<TR><TD>ACE+TAO.tar.gz</TD>
<TD>ACE+TAO (tar+gzip format)</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-6.1.8.tar.gz">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-6.1.8.tar.gz">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-6.1.7.tar.gz">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-6.1.7.tar.gz">FTP</A>]
</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-src-6.1.8.tar.gz">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-src-6.1.8.tar.gz">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-src-6.1.7.tar.gz">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-src-6.1.7.tar.gz">FTP</A>]
</TD>
</TR>
<TR><TD>ACE+TAO.tar.bz2</TD>
<TD>ACE+TAO (tar+bzip2 format)</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-6.1.8.tar.bz2">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-6.1.8.tar.bz2">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-6.1.7.tar.bz2">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-6.1.7.tar.bz2">FTP</A>]
</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-src-6.1.8.tar.bz2">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-src-6.1.8.tar.bz2">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-src-6.1.7.tar.bz2">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-src-6.1.7.tar.bz2">FTP</A>]
</TD>
</TR>
<TR><TD>ACE+TAO.zip</TD>
<TD>ACE+TAO (zip format)</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-6.1.8.zip">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-6.1.8.zip">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-6.1.7.zip">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-6.1.7.zip">FTP</A>]
</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-src-6.1.8.zip">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-src-6.1.8.zip">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-src-6.1.7.zip">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-src-6.1.7.zip">FTP</A>]
</TD>
</TR>
<TR><TD>ACE-html.tar.gz</TD>
<TD>Doxygen documentation for ACE+TAO+CIAO (tar+gzip format)</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE-html-6.1.8.tar.gz">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE-html-6.1.8.tar.gz">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE-html-6.1.7.tar.gz">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE-html-6.1.7.tar.gz">FTP</A>]
</TD>
</TR>
<TR><TD>ACE-html.tar.bz2</TD>
<TD>Doxygen documentation for ACE+TAO+CIAO (tar+bzip2 format)</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE-html-6.1.8.tar.bz2">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE-html-6.1.8.tar.bz2">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE-html-6.1.7.tar.bz2">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE-html-6.1.7.tar.bz2">FTP</A>]
</TD>
</TR>
<TR><TD>ACE-html.zip</TD>
<TD>Doxygen documentation for ACE+TAO+CIAO (zip format)</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE-html-6.1.8.zip">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE-html-6.1.8.zip">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE-html-6.1.7.zip">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE-html-6.1.7.zip">FTP</A>]
</TD>
</TR>
<TR><TD>ACE.tar.gz</TD>
<TD>ACE only (tar+gzip format)</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE-6.1.8.tar.gz">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE-6.1.8.tar.gz">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE-6.1.7.tar.gz">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE-6.1.7.tar.gz">FTP</A>]
</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE-src-6.1.8.tar.gz">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE-src-6.1.8.tar.gz">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE-src-6.1.7.tar.gz">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE-src-6.1.7.tar.gz">FTP</A>]
</TD>
</TR>
<TR><TD>ACE.tar.bz2</TD>
<TD>ACE only (tar+bzip2 format)</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE-6.1.8.tar.bz2">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE-6.1.8.tar.bz2">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE-6.1.7.tar.bz2">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE-6.1.7.tar.bz2">FTP</A>]
</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE-src-6.1.8.tar.bz2">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE-src-6.1.8.tar.bz2">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE-src-6.1.7.tar.bz2">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE-src-6.1.7.tar.bz2">FTP</A>]
</TD>
</TR>
<TR><TD>ACE.zip</TD>
<TD>ACE only (zip format)</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE-6.1.8.zip">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE-6.1.8.zip">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE-6.1.7.zip">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE-6.1.7.zip">FTP</A>]
</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE-src-6.1.8.zip">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE-src-6.1.8.zip">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE-src-6.1.7.zip">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE-src-6.1.7.zip">FTP</A>]
</TD>
</TR>
</TABLE>
diff --git a/ACE/docs/bczar/bczar.html b/ACE/docs/bczar/bczar.html
index eff7e8e7983..673b693d566 100644
--- a/ACE/docs/bczar/bczar.html
+++ b/ACE/docs/bczar/bczar.html
@@ -225,7 +225,7 @@
<p><code>$ ssh ..<br>
No default printer<br>
screen<br>
- cd $HOME<br>
+ cd /tmp<br>
rm -rf DOC_ROOT<br>
mkdir DOC_ROOT<br>
export DOC_ROOT=$PWD/DOC_ROOT<br>
@@ -311,15 +311,15 @@
</li></ul>
<code>
screen<br>
- cd $HOME<br>
+ cd /tmp<br>
rm -rf doxygen<br>
mkdir doxygen<br>
cd doxygen<br>
wget https://svn.dre.vanderbilt.edu/viewvc/Middleware/trunk/ACE/docs/svn/config?view=co -O $HOME/.subversion/config<br>
- svn co svn://svn.dre.vanderbilt.edu/DOC/Middleware/tags/ACE+TAO+CIAO-6_1_8/ACE ACE_wrappers<br>
- svn co svn://svn.dre.vanderbilt.edu/DOC/Middleware/tags/ACE+TAO+CIAO-6_1_8/TAO ACE_wrappers/TAO<br>
- svn co svn://svn.dre.vanderbilt.edu/DOC/Middleware/tags/ACE+TAO+CIAO-6_1_8/CIAO ACE_wrappers/TAO/CIAO<br>
- svn co svn://svn.dre.vanderbilt.edu/DOC/Middleware/tags/ACE+TAO+CIAO-6_1_8/DAnCE ACE_wrappers/TAO/DAnCE<br>
+ svn co svn://svn.dre.vanderbilt.edu/DOC/Middleware/tags/ACE+TAO+CIAO-6_1_7/ACE ACE_wrappers<br>
+ svn co svn://svn.dre.vanderbilt.edu/DOC/Middleware/tags/ACE+TAO+CIAO-6_1_7/TAO ACE_wrappers/TAO<br>
+ svn co svn://svn.dre.vanderbilt.edu/DOC/Middleware/tags/ACE+TAO+CIAO-6_1_7/CIAO ACE_wrappers/TAO/CIAO<br>
+ svn co svn://svn.dre.vanderbilt.edu/DOC/Middleware/tags/ACE+TAO+CIAO-6_1_7/DAnCE ACE_wrappers/TAO/DAnCE<br>
cd ACE_wrappers<br>
export ACE_ROOT=$PWD<br>
export TAO_ROOT=$ACE_ROOT/TAO<br>
diff --git a/ACE/etc/index.html b/ACE/etc/index.html
index 6aec7cfc267..85cece6e762 100644
--- a/ACE/etc/index.html
+++ b/ACE/etc/index.html
@@ -35,7 +35,6 @@
<hr>
We do have the documentation for previous releases
<ul>
- <LI><P><A HREF="6.1.8/html">6.1.8</A></P></LI>
<LI><P><A HREF="6.1.7/html">6.1.7</A></P></LI>
<LI><P><A HREF="6.1.6/html">6.1.6</A></P></LI>
<LI><P><A HREF="6.1.5/html">6.1.5</A></P></LI>
diff --git a/ACE/examples/C++NPv1/Reactive_Logging_Server.h b/ACE/examples/C++NPv1/Reactive_Logging_Server.h
index ccabc6a88fe..e7558a16e34 100644
--- a/ACE/examples/C++NPv1/Reactive_Logging_Server.h
+++ b/ACE/examples/C++NPv1/Reactive_Logging_Server.h
@@ -13,7 +13,6 @@
#include "ace/Log_Record.h"
#include "ace/Handle_Set.h"
#include "ace/Basic_Types.h"
-#include "ace/Truncate.h"
#include "ace/os_include/os_fcntl.h"
#include "Iterative_Logging_Server.h"
@@ -36,7 +35,7 @@ protected:
virtual int wait_for_multiple_events () {
active_handles_ = master_handle_set_;
- int width = ACE_Utils::truncate_cast<int> ((intptr_t)active_handles_.max_set ()) + 1;
+ int width = (int)active_handles_.max_set () + 1;
if (select (width,
active_handles_.fdset (),
0, // no write_fds
diff --git a/ACE/examples/C++NPv1/Reactive_Logging_Server_Ex.h b/ACE/examples/C++NPv1/Reactive_Logging_Server_Ex.h
index 31f25498b7e..c839b2453fc 100644
--- a/ACE/examples/C++NPv1/Reactive_Logging_Server_Ex.h
+++ b/ACE/examples/C++NPv1/Reactive_Logging_Server_Ex.h
@@ -18,7 +18,6 @@
#include "Logging_Server.h"
#include "Logging_Handler.h"
#include "ace/Null_Mutex.h"
-#include "ace/Truncate.h"
#include "ace/os_include/os_fcntl.h"
typedef ACE_Hash_Map_Manager<ACE_HANDLE,
@@ -47,7 +46,7 @@ protected:
virtual int wait_for_multiple_events () {
active_read_handles_ = master_handle_set_;
- int width = ACE_Utils::truncate_cast<int> ((intptr_t)active_read_handles_.max_set ()) + 1;
+ int width = (int) active_read_handles_.max_set () + 1;
return ACE::select (width, active_read_handles_);
}
diff --git a/ACE/examples/Connection/non_blocking/CPP-acceptor.cpp b/ACE/examples/Connection/non_blocking/CPP-acceptor.cpp
index 314c004cdb4..608745d721f 100644
--- a/ACE/examples/Connection/non_blocking/CPP-acceptor.cpp
+++ b/ACE/examples/Connection/non_blocking/CPP-acceptor.cpp
@@ -9,14 +9,23 @@
#include "ace/OS_NS_unistd.h"
#include "ace/Signal.h"
-template <typename PEER_STREAM>
-Svc_Handler<PEER_STREAM>::Svc_Handler (ACE_Reactor *r)
+
+
+#define PR_ST_1 ACE_PEER_STREAM_1
+#define PR_ST_2 ACE_PEER_STREAM_2
+#define PR_AC_1 ACE_PEER_ACCEPTOR_1
+#define PR_AC_2 ACE_PEER_ACCEPTOR_2
+#define PR_AD ACE_PEER_STREAM_ADDR
+#define SVH SVC_HANDLER
+
+template <PR_ST_1>
+Svc_Handler<PR_ST_2>::Svc_Handler (ACE_Reactor *r)
: SVC_HANDLER (0, 0, r)
{
}
-template <typename PEER_STREAM> int
-Svc_Handler<PEER_STREAM>::close (u_long)
+template <PR_ST_1> int
+Svc_Handler<PR_ST_2>::close (u_long)
{
ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("calling Svc_Handler close\n")));
@@ -25,10 +34,10 @@ Svc_Handler<PEER_STREAM>::close (u_long)
return 0;
}
-template <typename PEER_STREAM> int
-Svc_Handler<PEER_STREAM>::open (void *)
+template <PR_ST_1> int
+Svc_Handler<PR_ST_2>::open (void *)
{
- typename PEER_STREAM::PEER_ADDR client_addr;
+ PR_AD client_addr;
ACE_TCHAR buf[BUFSIZ];
if (this->peer ().get_remote_addr (client_addr) == -1)
@@ -55,8 +64,8 @@ Svc_Handler<PEER_STREAM>::open (void *)
// Receive and process the data from the client.
-template <typename PEER_STREAM> int
-Svc_Handler<PEER_STREAM>::handle_input (ACE_HANDLE)
+template <PR_ST_1> int
+Svc_Handler<PR_ST_2>::handle_input (ACE_HANDLE)
{
char buf[BUFSIZ];
@@ -85,16 +94,16 @@ Svc_Handler<PEER_STREAM>::handle_input (ACE_HANDLE)
return 0;
}
-template <typename PEER_STREAM> int
-Svc_Handler<PEER_STREAM>::handle_timeout (const ACE_Time_Value &,
+template <PR_ST_1> int
+Svc_Handler<PR_ST_2>::handle_timeout (const ACE_Time_Value &,
const void *)
{
ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("%p\n"), ACE_TEXT ("handle_timeout")));
return 0;
}
-template <typename SVC_HANDLER, typename PEER_ACCEPTOR> int
-IPC_Server<SVC_HANDLER, PEER_ACCEPTOR>::init (int argc, ACE_TCHAR *argv[])
+template <class SVH, PR_AC_1> int
+IPC_Server<SVH, PR_AC_2>::init (int argc, ACE_TCHAR *argv[])
{
const ACE_TCHAR *local_addr = argc > 1
? argv[1]
@@ -146,25 +155,25 @@ IPC_Server<SVC_HANDLER, PEER_ACCEPTOR>::init (int argc, ACE_TCHAR *argv[])
return 0;
}
-template <typename SVC_HANDLER, typename PEER_ACCEPTOR>
-IPC_Server<SVC_HANDLER, PEER_ACCEPTOR>::IPC_Server (void)
+template <class SVH, PR_AC_1>
+IPC_Server<SVH, PR_AC_2>::IPC_Server (void)
: done_handler_ (ACE_Sig_Handler_Ex (ACE_Reactor::end_event_loop))
{
}
-template <typename SVC_HANDLER, typename PEER_ACCEPTOR> int
-IPC_Server<SVC_HANDLER, PEER_ACCEPTOR>::fini (void)
+template <class SVH, PR_AC_1> int
+IPC_Server<SVH, PR_AC_2>::fini (void)
{
return 0;
}
-template <typename SVC_HANDLER, typename PEER_ACCEPTOR>
-IPC_Server<SVC_HANDLER, PEER_ACCEPTOR>::~IPC_Server (void)
+template <class SVH, PR_AC_1>
+IPC_Server<SVH, PR_AC_2>::~IPC_Server (void)
{
}
-template <typename SVC_HANDLER, typename PEER_ACCEPTOR> int
-IPC_Server<SVC_HANDLER, PEER_ACCEPTOR>::handle_close (ACE_HANDLE handle,
+template <class SVH, PR_AC_1> int
+IPC_Server<SVH, PR_AC_2>::handle_close (ACE_HANDLE handle,
ACE_Reactor_Mask mask)
{
ACE_UNUSED_ARG (handle);
@@ -177,8 +186,8 @@ IPC_Server<SVC_HANDLER, PEER_ACCEPTOR>::handle_close (ACE_HANDLE handle,
// Run the interative service.
-template <typename SVC_HANDLER, typename PEER_ACCEPTOR> int
-IPC_Server<SVC_HANDLER, PEER_ACCEPTOR>::svc (void)
+template <class SVH, PR_AC_1> int
+IPC_Server<SVH, PR_AC_2>::svc (void)
{
ACE_TCHAR buf[BUFSIZ];
@@ -198,9 +207,9 @@ IPC_Server<SVC_HANDLER, PEER_ACCEPTOR>::svc (void)
while (ACE_Reactor::event_loop_done () == 0)
{
- SVC_HANDLER sh (this->reactor ());
+ SVH sh (this->reactor ());
- // Create a new <SVC_HANDLER> endpoint, which performs all processing in
+ // Create a new <SVH> endpoint, which performs all processing in
// its <open> method (note no automatic restart if errno ==
// EINTR).
@@ -221,7 +230,7 @@ IPC_Server<SVC_HANDLER, PEER_ACCEPTOR>::svc (void)
this->acceptor ().get_handle ()));
}
- // <SVC_HANDLER>'s destructor closes the stream implicitly but the
+ // <SVH>'s destructor closes the stream implicitly but the
// listening endpoint stays open.
}
@@ -229,4 +238,10 @@ IPC_Server<SVC_HANDLER, PEER_ACCEPTOR>::svc (void)
return 0;
}
+#undef PR_ST_1
+#undef PR_ST_2
+#undef PR_AC_1
+#undef PR_AC_2
+#undef PR_AD
+#undef SVH
#endif /* CPP_ACCEPTOR_C */
diff --git a/ACE/examples/Connection/non_blocking/CPP-acceptor.h b/ACE/examples/Connection/non_blocking/CPP-acceptor.h
index 7d3ccfd4be4..c06caf50b48 100644
--- a/ACE/examples/Connection/non_blocking/CPP-acceptor.h
+++ b/ACE/examples/Connection/non_blocking/CPP-acceptor.h
@@ -13,8 +13,9 @@
#include "ace/Svc_Handler.h"
#include "ace/Sig_Adapter.h"
-template <typename PEER_STREAM>
-class Svc_Handler : public ACE_Svc_Handler <PEER_STREAM, ACE_NULL_SYNCH>
+
+template <ACE_PEER_STREAM_1>
+class Svc_Handler : public ACE_Svc_Handler <ACE_PEER_STREAM_2, ACE_NULL_SYNCH>
{
// = TITLE
// This class does the work once the <ACE_Oneshot_Acceptor> has
@@ -36,12 +37,12 @@ public:
// Handles acceptor timeouts.
private:
- typedef ACE_Svc_Handler <PEER_STREAM, ACE_NULL_SYNCH>
+ typedef ACE_Svc_Handler <ACE_PEER_STREAM_2, ACE_NULL_SYNCH>
SVC_HANDLER;
};
-template <typename SVC_HANDLER, typename PEER_ACCEPTOR>
-class IPC_Server : public ACE_Oneshot_Acceptor<SVC_HANDLER, PEER_ACCEPTOR>
+template <class SVC_HANDLER, ACE_PEER_ACCEPTOR_1>
+class IPC_Server : public ACE_Oneshot_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>
{
// = TITLE
// This class illustrates how the <ACE_Oneshot_Acceptor> works.
@@ -70,10 +71,10 @@ public:
// Run the interative service.
private:
- typedef ACE_Oneshot_Acceptor<SVC_HANDLER, PEER_ACCEPTOR>
+ typedef ACE_Oneshot_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>
inherited;
- typename PEER_ACCEPTOR::PEER_ADDR server_addr_;
+ ACE_PEER_ACCEPTOR_ADDR server_addr_;
// Address of this server.
ACE_Synch_Options options_;
diff --git a/ACE/examples/Connection/non_blocking/CPP-connector.cpp b/ACE/examples/Connection/non_blocking/CPP-connector.cpp
index eb92e82bd2b..a856a88f8af 100644
--- a/ACE/examples/Connection/non_blocking/CPP-connector.cpp
+++ b/ACE/examples/Connection/non_blocking/CPP-connector.cpp
@@ -8,20 +8,29 @@
#include "ace/OS_NS_unistd.h"
#include "ace/Signal.h"
-template <typename PEER_STREAM>
-Peer_Handler<PEER_STREAM>::Peer_Handler (ACE_Reactor *r)
- : action_ (&Peer_Handler<PEER_STREAM>::uninitialized)
+
+
+#define PR_ST_1 ACE_PEER_STREAM_1
+#define PR_ST_2 ACE_PEER_STREAM_2
+#define PR_CO_1 ACE_PEER_CONNECTOR_1
+#define PR_CO_2 ACE_PEER_CONNECTOR_2
+#define PR_AD ACE_PEER_CONNECTOR_ADDR
+#define SVH SVC_HANDLER
+
+template <PR_ST_1>
+Peer_Handler<PR_ST_2>::Peer_Handler (ACE_Reactor *r)
+ : action_ (&Peer_Handler<PR_ST_2>::uninitialized)
{
this->reactor (r);
}
-template <typename PEER_STREAM> int
-Peer_Handler<PEER_STREAM>::open (void *)
+template <PR_ST_1> int
+Peer_Handler<PR_ST_2>::open (void *)
{
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("activating %d\n"),
this->peer ().get_handle ()));
- this->action_ = &Peer_Handler<PEER_STREAM>::connected;
+ this->action_ = &Peer_Handler<PR_ST_2>::connected;
ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("please enter input..: ")));
@@ -50,8 +59,8 @@ Peer_Handler<PEER_STREAM>::open (void *)
return 0;
}
-template <typename PEER_STREAM> int
-Peer_Handler<PEER_STREAM>::close (u_long)
+template <PR_ST_1> int
+Peer_Handler<PR_ST_2>::close (u_long)
{
ACE_ERROR ((LM_ERROR,
ACE_TEXT ("Connect not successful: ending reactor event loop\n")));
@@ -59,15 +68,15 @@ Peer_Handler<PEER_STREAM>::close (u_long)
return 0;
}
-template <typename PEER_STREAM> int
-Peer_Handler<PEER_STREAM>::uninitialized (void)
+template <PR_ST_1> int
+Peer_Handler<PR_ST_2>::uninitialized (void)
{
ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("uninitialized!\n")));
return 0;
}
-template <typename PEER_STREAM> int
-Peer_Handler<PEER_STREAM>::connected (void)
+template <PR_ST_1> int
+Peer_Handler<PR_ST_2>::connected (void)
{
char buf[BUFSIZ];
@@ -97,8 +106,8 @@ Peer_Handler<PEER_STREAM>::connected (void)
}
}
-template <typename PEER_STREAM> int
-Peer_Handler<PEER_STREAM>::stdio (void)
+template <PR_ST_1> int
+Peer_Handler<PR_ST_2>::stdio (void)
{
char buf[BUFSIZ];
@@ -122,26 +131,26 @@ Peer_Handler<PEER_STREAM>::stdio (void)
return -1;
}
-template <typename PEER_STREAM> int
-Peer_Handler<PEER_STREAM>::handle_timeout (const ACE_Time_Value &,
+template <PR_ST_1> int
+Peer_Handler<PR_ST_2>::handle_timeout (const ACE_Time_Value &,
const void *)
{
ACE_ERROR ((LM_ERROR, ACE_TEXT ("Connect timedout. ")));
return this->close ();
}
-template <typename PEER_STREAM> int
-Peer_Handler<PEER_STREAM>::handle_output (ACE_HANDLE)
+template <PR_ST_1> int
+Peer_Handler<PR_ST_2>::handle_output (ACE_HANDLE)
{
ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("in handle_output\n")));
return (this->*action_) ();
}
-template <typename PEER_STREAM> int
-Peer_Handler<PEER_STREAM>::handle_signal (int,
- siginfo_t *,
- ucontext_t *)
+template <PR_ST_1> int
+Peer_Handler<PR_ST_2>::handle_signal (int,
+ siginfo_t *,
+ ucontext_t *)
{
// @@ Note that this code is not portable to all OS platforms since
// it uses print statements within signal handler context.
@@ -150,16 +159,16 @@ Peer_Handler<PEER_STREAM>::handle_signal (int,
return (this->*action_) ();
}
-template <typename PEER_STREAM> int
-Peer_Handler<PEER_STREAM>::handle_input (ACE_HANDLE)
+template <PR_ST_1> int
+Peer_Handler<PR_ST_2>::handle_input (ACE_HANDLE)
{
ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("in handle_input\n")));
return (this->*action_) ();
}
-template <typename PEER_STREAM> int
-Peer_Handler<PEER_STREAM>::handle_close (ACE_HANDLE h,
+template <PR_ST_1> int
+Peer_Handler<PR_ST_2>::handle_close (ACE_HANDLE h,
ACE_Reactor_Mask mask)
{
ACE_DEBUG ((LM_DEBUG,
@@ -167,7 +176,7 @@ Peer_Handler<PEER_STREAM>::handle_close (ACE_HANDLE h,
h,
mask));
- if (this->action_ == &Peer_Handler<PEER_STREAM>::stdio)
+ if (this->action_ == &Peer_Handler<PR_ST_2>::stdio)
{
ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("moving to closed state\n")));
this->reactor ()->end_reactor_event_loop ();
@@ -175,7 +184,7 @@ Peer_Handler<PEER_STREAM>::handle_close (ACE_HANDLE h,
else
{
ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("moving to stdio state\n")));
- this->action_ = &Peer_Handler<PEER_STREAM>::stdio;
+ this->action_ = &Peer_Handler<PR_ST_2>::stdio;
this->peer ().close ();
ACE_OS::rewind (stdin);
@@ -199,8 +208,8 @@ Peer_Handler<PEER_STREAM>::handle_close (ACE_HANDLE h,
return 0;
}
-template <typename SVC_HANDLER, typename PEER_CONNECTOR> int
-IPC_Client<SVC_HANDLER, PEER_CONNECTOR>::svc (void)
+template <class SVH, PR_CO_1> int
+IPC_Client<SVH, PR_CO_2>::svc (void)
{
if (this->reactor ())
this->reactor ()->run_reactor_event_loop ();
@@ -208,20 +217,20 @@ IPC_Client<SVC_HANDLER, PEER_CONNECTOR>::svc (void)
return 0;
}
-template <typename SVC_HANDLER, typename PEER_CONNECTOR> int
-IPC_Client<SVC_HANDLER, PEER_CONNECTOR>::fini (void)
+template <class SVH, PR_CO_1> int
+IPC_Client<SVH, PR_CO_2>::fini (void)
{
return 0;
}
-template <typename SVC_HANDLER, typename PEER_CONNECTOR>
-IPC_Client<SVC_HANDLER, PEER_CONNECTOR>::IPC_Client (void)
+template <class SVH, PR_CO_1>
+IPC_Client<SVH, PR_CO_2>::IPC_Client (void)
: done_handler_ (ACE_Sig_Handler_Ex (ACE_Reactor::end_event_loop))
{
}
-template <typename SVC_HANDLER, typename PEER_CONNECTOR> int
-IPC_Client<SVC_HANDLER, PEER_CONNECTOR>::init (int argc, ACE_TCHAR *argv[])
+template <class SVH, PR_CO_1> int
+IPC_Client<SVH, PR_CO_2>::init (int argc, ACE_TCHAR *argv[])
{
// Call down to the CONNECTOR's open() method to do the
// initialization.
@@ -242,13 +251,13 @@ IPC_Client<SVC_HANDLER, PEER_CONNECTOR>::init (int argc, ACE_TCHAR *argv[])
ACE_TEXT ("%p\n"),
ACE_TEXT ("register_handler")),
-1);
- typename PEER_CONNECTOR::PEER_ADDR remote_addr (r_addr);
+ PR_AD remote_addr (r_addr);
this->options_.set (ACE_Synch_Options::USE_REACTOR,
timeout);
- SVC_HANDLER *sh;
+ SVH *sh;
ACE_NEW_RETURN (sh,
- SVC_HANDLER (this->reactor ()),
+ SVH (this->reactor ()),
-1);
// Connect to the peer.
@@ -264,9 +273,15 @@ IPC_Client<SVC_HANDLER, PEER_CONNECTOR>::init (int argc, ACE_TCHAR *argv[])
return 0;
}
-template <typename SVC_HANDLER, typename PEER_CONNECTOR>
-IPC_Client<SVC_HANDLER, PEER_CONNECTOR>::~IPC_Client (void)
+template <class SVH, PR_CO_1>
+IPC_Client<SVH, PR_CO_2>::~IPC_Client (void)
{
}
+#undef PR_ST_1
+#undef PR_ST_2
+#undef PR_CO_1
+#undef PR_CO_2
+#undef PR_AD
+#undef SVH
#endif /* CPP_CONNECTOR_C */
diff --git a/ACE/examples/Connection/non_blocking/CPP-connector.h b/ACE/examples/Connection/non_blocking/CPP-connector.h
index 5f11cbf27e0..86ce63493f0 100644
--- a/ACE/examples/Connection/non_blocking/CPP-connector.h
+++ b/ACE/examples/Connection/non_blocking/CPP-connector.h
@@ -14,8 +14,8 @@
#include "ace/Svc_Handler.h"
#include "ace/Sig_Adapter.h"
-template <typename PEER_STREAM>
-class Peer_Handler : public ACE_Svc_Handler<PEER_STREAM, ACE_SYNCH>
+template <ACE_PEER_STREAM_1>
+class Peer_Handler : public ACE_Svc_Handler<ACE_PEER_STREAM_2, ACE_SYNCH>
{
// = TITLE
// Handles communication with the server.
@@ -48,12 +48,12 @@ protected:
int connected (void);
int stdio (void);
- int (Peer_Handler<PEER_STREAM>::*action_) (void);
+ int (Peer_Handler<ACE_PEER_STREAM_2>::*action_) (void);
// Keeps track of which state we are in.
};
-template <typename SVC_HANDLER, typename PEER_CONNECTOR>
-class IPC_Client : public ACE_Connector<SVC_HANDLER, PEER_CONNECTOR>
+template <class SVC_HANDLER, ACE_PEER_CONNECTOR_1>
+class IPC_Client : public ACE_Connector<SVC_HANDLER, ACE_PEER_CONNECTOR_2>
{
// = TITLE
// This class illustrates how the <ACE_Connector> works.
@@ -76,7 +76,7 @@ public:
// Run the svc.
private:
- typedef ACE_Connector<SVC_HANDLER, PEER_CONNECTOR>
+ typedef ACE_Connector<SVC_HANDLER, ACE_PEER_CONNECTOR_2>
inherited;
ACE_Synch_Options options_;
diff --git a/ACE/examples/IPC_SAP/SOCK_SAP/CPP-inserver.cpp b/ACE/examples/IPC_SAP/SOCK_SAP/CPP-inserver.cpp
index 2c097321acf..2fb30695bbc 100644
--- a/ACE/examples/IPC_SAP/SOCK_SAP/CPP-inserver.cpp
+++ b/ACE/examples/IPC_SAP/SOCK_SAP/CPP-inserver.cpp
@@ -12,7 +12,7 @@
#include "ace/Basic_Types.h"
#include "ace/OS_NS_sys_select.h"
#include "ace/OS_main.h"
-#include "ace/Truncate.h"
+
// Are we running verbosely?
@@ -328,7 +328,7 @@ run_event_loop (u_short port)
ACE_Time_Value timeout (ACE_DEFAULT_TIMEOUT);
ACE_Handle_Set temp = handle_set;
- int result = ACE_OS::select (ACE_Utils::truncate_cast<int> ((intptr_t)oneway_acceptor.get_handle ()) + 1,
+ int result = ACE_OS::select (int (oneway_acceptor.get_handle ()) + 1,
(fd_set *) temp,
0,
0,
diff --git a/ACE/examples/Reactor/Misc/test_early_timeouts.cpp b/ACE/examples/Reactor/Misc/test_early_timeouts.cpp
index 6ded80b602d..f22ffbb70f4 100644
--- a/ACE/examples/Reactor/Misc/test_early_timeouts.cpp
+++ b/ACE/examples/Reactor/Misc/test_early_timeouts.cpp
@@ -21,7 +21,7 @@
#include "ace/Time_Value.h"
#include "ace/OS_NS_sys_time.h"
#include "ace/OS_NS_sys_select.h"
-#include "ace/Truncate.h"
+
int
@@ -71,7 +71,7 @@ ACE_TMAIN (int, ACE_TCHAR *[])
starting_time_of_day = ACE_OS::gettimeofday ();
// Wait for timeout
- result = ACE_OS::select (ACE_Utils::truncate_cast<int> ((intptr_t)dummy_pipe.read_handle ()), dummy_handle_set, 0, 0, &timeout);
+ result = ACE_OS::select ((int) dummy_pipe.read_handle (), dummy_handle_set, 0, 0, &timeout);
ACE_ASSERT (result == 0);
// Note the time after select
diff --git a/ACE/include/makeinclude/platform_macosx_iOS.GNU b/ACE/include/makeinclude/platform_macosx_iOS.GNU
index 738dedfdc60..015b986690f 100644
--- a/ACE/include/makeinclude/platform_macosx_iOS.GNU
+++ b/ACE/include/makeinclude/platform_macosx_iOS.GNU
@@ -7,11 +7,11 @@ include $(ACE_ROOT)/include/makeinclude/platform_macosx_common.GNU
ifneq (,$(XCODE_ROOT))
XCODE:=$(XCODE_ROOT)
else
- XCODE:=/Applications/Xcode.app
+ XCODE:=/Developer
endif
ifeq ($(IPHONE_TARGET), SIMULATOR)
- IPHONE_PLATFORM:=$(XCODE)/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer
+ IPHONE_PLATFORM:=$(XCODE)/Platforms/iPhoneSimulator.platform/Developer
IPHONE_SDK:=$(IPHONE_PLATFORM)/SDKs/iPhoneSimulator${IPHONE_VERSION}.sdk
IPHONE_HARDWARE_ARCHITECTURE=i386
@@ -24,7 +24,7 @@ endif
ifeq ($(IPHONE_TARGET), HARDWARE)
CROSS-COMPILE=1
- IPHONE_PLATFORM:=$(XCODE)/Contents/Developer/Platforms/iPhoneOS.platform/Developer
+ IPHONE_PLATFORM:=$(XCODE)/Platforms/iPhoneOS.platform/Developer
IPHONE_SDK:=$(IPHONE_PLATFORM)/SDKs/iPhoneOS${IPHONE_VERSION}.sdk
IPHONE_HARDWARE_ARCHITECTURE=armv7
ifeq ($(iphone_codesign),1)
@@ -34,8 +34,8 @@ endif
rwho = 0
endif
-CC:=$(XCODE)/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang
-CXX:=$(XCODE)/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++
+CC:=$(IPHONE_PLATFORM)/usr/bin/clang
+CXX:=$(IPHONE_PLATFORM)/usr/bin/clang++
AR:=$(IPHONE_PLATFORM)/usr/bin/ar
RANLIB:=$(IPHONE_PLATFORM)/usr/bin/ranlib
DLD = $(CXX)
diff --git a/ACE/include/makeinclude/platform_mingw32.GNU b/ACE/include/makeinclude/platform_mingw32.GNU
index dc1ada8ff4c..4e716aed034 100644
--- a/ACE/include/makeinclude/platform_mingw32.GNU
+++ b/ACE/include/makeinclude/platform_mingw32.GNU
@@ -33,13 +33,3 @@ ifeq ($(winsock2),1)
endif
LIBS += -lwsock32 -lnetapi32
-
-ifeq ($(GXX_4_OR_BETTER),1)
- ifeq ($(CXX_MAJOR_VERSION),4)
- ifeq ($(findstring $(CXX_MINOR_VERSION),7 8 9),$(CXX_MINOR_VERSION))
- CPPFLAGS += -Wno-unknown-pragmas
- endif
- else
- CPPFLAGS += -Wno-unknown-pragmas
- endif
-endif
diff --git a/ACE/performance-tests/SCTP/SOCK_STREAM_srv.cpp b/ACE/performance-tests/SCTP/SOCK_STREAM_srv.cpp
index a307e6e127b..a9ff3959a42 100644
--- a/ACE/performance-tests/SCTP/SOCK_STREAM_srv.cpp
+++ b/ACE/performance-tests/SCTP/SOCK_STREAM_srv.cpp
@@ -7,7 +7,6 @@
#include "ace/Thread_Manager.h"
#include "ace/Handle_Set.h"
#include "ace/CDR_Stream.h"
-#include "ace/Truncate.h"
// FUZZ: disable check_for_streams_include
#include "ace/streams.h"
@@ -312,7 +311,7 @@ int ACE_TMAIN (int argc, ACE_TCHAR **argv){
// services. So select was needed to wait on both sockets
// simultaneously. In this test we could just call accept on the
// one socket.
- int result = ACE_OS::select(ACE_Utils::truncate_cast<int> ((intptr_t)acceptor_socket.get_handle()) +1,
+ int result = ACE_OS::select((int) (acceptor_socket.get_handle()) +1,
(fd_set *) temp,
0,
0,
diff --git a/ACE/rpmbuild/ace-tao.spec b/ACE/rpmbuild/ace-tao.spec
index c920af69729..d1ee8a37ac6 100644
--- a/ACE/rpmbuild/ace-tao.spec
+++ b/ACE/rpmbuild/ace-tao.spec
@@ -1,7 +1,7 @@
# Set the version number here.
-%define ACEVER 6.1.8
-%define TAOVER 2.1.8
-%define CIAOVER 1.1.8
+%define ACEVER 6.1.7
+%define TAOVER 2.1.7
+%define CIAOVER 1.1.7
# Conditional build
# Default values are
diff --git a/ACE/tests/Manual_Event_Test.cpp b/ACE/tests/Manual_Event_Test.cpp
index 1539d058d60..3344ff9feb2 100644
--- a/ACE/tests/Manual_Event_Test.cpp
+++ b/ACE/tests/Manual_Event_Test.cpp
@@ -133,7 +133,7 @@ worker (void *)
if (evt.signal () == -1)
ACE_ERROR ((LM_ERROR, ACE_TEXT (" (%P|%t) %p\n"), ACE_TEXT ("signal")));
- ACE_OS::sleep (ACE_Time_Value (0, 200 * 1000)); // 200 msec
+ ACE_OS::sleep (ACE_Time_Value (0, 200 * 1000 * 100)); // 200 msec
}
if (evt.wait () == -1)
diff --git a/ACE/tests/Map_Test.h b/ACE/tests/Map_Test.h
index 276f5ab6325..39b4db9b682 100644
--- a/ACE/tests/Map_Test.h
+++ b/ACE/tests/Map_Test.h
@@ -53,7 +53,7 @@ public:
size_t original_size = key.size ();
// Size of this counter key.
- const size_t counter_key_size = sizeof this->counter_;
+ size_t counter_key_size = sizeof this->counter_;
// Resize to accommodate both the original data and the new key.
key.size (counter_key_size + original_size);
@@ -61,7 +61,7 @@ public:
// Add new key data.
ACE_OS::memcpy (&key[original_size],
&++this->counter_,
- counter_key_size);
+ sizeof this->counter_);
// Success.
return 0;
diff --git a/ACE/tests/Process_Env_Test.cpp b/ACE/tests/Process_Env_Test.cpp
index 185f7302adf..116f800ad5e 100644
--- a/ACE/tests/Process_Env_Test.cpp
+++ b/ACE/tests/Process_Env_Test.cpp
@@ -28,8 +28,7 @@ void create_large_env (setenvfn_t setenv, void *ctx)
static const size_t varsize = 1200;
for (int i = 0; i < 26; i++)
{
- char name[2] = { 'A', '\0' };
- name[0] += i;
+ char name[2] = { 'A' + i, '\0' };
char value[varsize];
ACE_OS::memset (value, 'R', varsize);
value[varsize - 1] = '\0';
diff --git a/ACE/tests/Thread_Timer_Queue_Adapter_Test.cpp b/ACE/tests/Thread_Timer_Queue_Adapter_Test.cpp
index e59f43c621a..a364b027ba5 100644
--- a/ACE/tests/Thread_Timer_Queue_Adapter_Test.cpp
+++ b/ACE/tests/Thread_Timer_Queue_Adapter_Test.cpp
@@ -13,7 +13,6 @@
#include "ace/Timer_Wheel.h"
#include "ace/Timer_Queue_Adapters.h"
-#include "ace/Truncate.h"
#include "test_config.h"
#if defined (ACE_HAS_THREADS)
@@ -144,7 +143,7 @@ class CTestEventHandler : public ICustomEventHandler
/// @param p_vParameter
virtual int operator() (void* p_vParameter)
{
- long iParameter = ACE_Utils::truncate_cast<long> ((intptr_t)p_vParameter);
+ long iParameter = (long) p_vParameter;
ACE_DEBUG((LM_DEBUG,
ACE_TEXT("%I(%t) Incrementing test event handler call count by %d.\n"),
diff --git a/ACE/tests/run_test.pl b/ACE/tests/run_test.pl
index cace3612950..2a4b891baa7 100755
--- a/ACE/tests/run_test.pl
+++ b/ACE/tests/run_test.pl
@@ -115,7 +115,6 @@ sub run_program ($@)
## if the executable doesn't exist, the error will show
## up as part of the previous test.
print "auto_run_tests: tests/$path $arguments\n";
- $ENV{COVERITY_TEST_NAME} = "tests/$path";
my ($program, $dir, $suffix) = fileparse($path);
my $start_dir = getcwd ();
@@ -128,6 +127,7 @@ sub run_program ($@)
unlink "core";
my $P = $target->CreateProcess($program, $arguments);
+
if ($config_list->check_config ('Valgrind')) {
$P->IgnoreExeSubDir(1);
}
diff --git a/CIAO/CIAO_TAO_DAnCE_OpenDDS_shapes.mwc b/CIAO/CIAO_TAO_DAnCE_OpenDDS_shapes.mwc
deleted file mode 100644
index 0df68dd28f7..00000000000
--- a/CIAO/CIAO_TAO_DAnCE_OpenDDS_shapes.mwc
+++ /dev/null
@@ -1,47 +0,0 @@
-// -*- MPC -*-
-// $Id$
-
-workspace {
- $(ACE_ROOT)/ace
- $(ACE_ROOT)/apps/gperf/src
- $(ACE_ROOT)/protocols/ace/INet
- $(TAO_ROOT)/TAO_IDL
- $(TAO_ROOT)/tao
- $(TAO_ROOT)/orbsvcs/orbsvcs/CosNaming.mpc
- $(TAO_ROOT)/orbsvcs/orbsvcs/CosNaming_Serv.mpc
- $(TAO_ROOT)/orbsvcs/orbsvcs/CosNaming_Skel.mpc
- $(TAO_ROOT)/orbsvcs/Naming_Service
- $(TAO_ROOT)/orbsvcs/orbsvcs/Svc_Utils.mpc
- ccm
- ciao
- $(DANCE_ROOT)/dance
- $(DANCE_ROOT)/tools
- connectors/dds4ccm/idl
- connectors/dds4ccm/impl
- $(DDS_ROOT)/DDS_TAOv2.mwc
- $(DDS_ROOT)/examples/DCPS/ishapes
- connectors/dds4ccm/examples/Shapes
- exclude {
- $(DANCE_ROOT)/dance/TargetManager
- $(DANCE_ROOT)/dance/RepositoryManager
- $(DANCE_ROOT)/tools/System_Health
- $(DANCE_ROOT)/tools/Logger_Backend
- $(ACE_ROOT)/ace/Compression
- $(ACE_ROOT)/ace/ETCL
- $(ACE_ROOT)/ace/Monitor_Control
- $(ACE_ROOT)/ace/SSL
- $(TAO_ROOT)/tao/CSD_Framework
- $(TAO_ROOT)/tao/CSD_ThreadPool
- $(TAO_ROOT)/tao/Compression
- $(TAO_ROOT)/tao/Dynamic_TP
- $(TAO_ROOT)/tao/ETCL
- $(TAO_ROOT)/tao/TransportCurrent
- $(TAO_ROOT)/tao/ZIOP
- $(TAO_ROOT)/tao/SmartProxies
- $(TAO_ROOT)/tao/RTCORBA
- $(TAO_ROOT)/tao/RTPortableServer
- $(TAO_ROOT)/tao/RTScheduling
- $(TAO_ROOT)/tao/Monitor
-
- }
-}
diff --git a/CIAO/ChangeLog b/CIAO/ChangeLog
index cef064d4583..fc400ecd880 100644
--- a/CIAO/ChangeLog
+++ b/CIAO/ChangeLog
@@ -1,52 +1,3 @@
-Wed Apr 10 14:08:25 UTC 2013 Johnny Willemsen <jwillemsen@remedy.nl>
-
- * connectors/dds4ccm/DDS4CCM-INSTALL.html:
- Extended instructions for OpenDDS
-
-Thu Mar 14 12:42:30 UTC 2013 Johnny Willemsen <jwillemsen@remedy.nl>
-
- * CIAO_TAO_DAnCE_OpenDDS_shapes.mwc:
- New workspace for compiling just the shapes example with everything
- related to it
-
-Thu Mar 14 08:39:03 UTC 2013 Johnny Willemsen <jwillemsen@remedy.nl>
-
- * NEWS:
- Updated for next release
-
- * connectors/dds4ccm/examples/Shapes/Receiver/Shapes_Receiver_exec.cpp:
- * connectors/dds4ccm/examples/Shapes/Sender/Shapes_Sender_exec.cpp:
- Log topic_name with each message
-
-Thu Mar 14 09:04:46 CET 2013 Johnny Willemsen <jwillemsen@remedy.nl>
-
- * CIAO version 1.1.8 released.
-
-Tue Mar 12 13:49:26 UTC 2013 Johnny Willemsen <jwillemsen@remedy.nl>
-
- * connectors/dds4ccm/examples/Shapes/descriptors/2013_interop_demo/run_1.cdp:
- * connectors/dds4ccm/examples/Shapes/descriptors/2013_interop_demo/run_1.pl:
- * connectors/dds4ccm/examples/Shapes/descriptors/2013_interop_demo/run_2.cdp:
- * connectors/dds4ccm/examples/Shapes/descriptors/2013_interop_demo/run_2.pl:
- * connectors/dds4ccm/examples/Shapes/descriptors/2013_interop_demo/run_2.xml:
- * connectors/dds4ccm/examples/Shapes/descriptors/2013_interop_demo/run_3.cdp:
- * connectors/dds4ccm/examples/Shapes/descriptors/2013_interop_demo/run_3.pl:
- * connectors/dds4ccm/examples/Shapes/descriptors/2013_interop_demo/run_3.xml:
- * connectors/dds4ccm/examples/Shapes/descriptors/2013_interop_demo/run_4.cdp:
- * connectors/dds4ccm/examples/Shapes/descriptors/2013_interop_demo/run_4.pl:
- * connectors/dds4ccm/examples/Shapes/descriptors/2013_interop_demo/run_4.xml:
- * connectors/dds4ccm/examples/Shapes/descriptors/2013_interop_demo/run_6.cdp:
- * connectors/dds4ccm/examples/Shapes/descriptors/2013_interop_demo/run_6.pl:
- * connectors/dds4ccm/examples/Shapes/descriptors/2013_interop_demo/run_7.cdp:
- * connectors/dds4ccm/examples/Shapes/descriptors/2013_interop_demo/run_7.pl:
- * connectors/dds4ccm/examples/Shapes/descriptors/2013_interop_demo/run_8.cdp:
- * connectors/dds4ccm/examples/Shapes/descriptors/2013_interop_demo/run_8.pl:
- * connectors/dds4ccm/examples/Shapes/descriptors/2013_interop_demo/run_8.xml:
- * connectors/dds4ccm/examples/Shapes/descriptors/2013_interop_demo/run_9.cdp:
- * connectors/dds4ccm/examples/Shapes/descriptors/2013_interop_demo/run_9.pl:
- * connectors/dds4ccm/examples/Shapes/descriptors/2013_interop_demo/run_9.xml:
- Various plans for 2013 DDS interop demo
-
Mon Mar 4 12:55:09 UTC 2013 Johnny Willemsen <jwillemsen@remedy.nl>
* connectors/dds4ccm/examples/Shapes/Base/Shapes_Base.idl:
diff --git a/CIAO/NEWS b/CIAO/NEWS
index d48fabf88c3..d94e299c97c 100644
--- a/CIAO/NEWS
+++ b/CIAO/NEWS
@@ -1,6 +1,3 @@
-USER VISIBLE CHANGES BETWEEN CIAO-1.1.8 and CIAO-1.2.0
-=======================================================
-
USER VISIBLE CHANGES BETWEEN CIAO-1.1.7 and CIAO-1.1.8
=======================================================
diff --git a/CIAO/PROBLEM-REPORT-FORM b/CIAO/PROBLEM-REPORT-FORM
index 5c269cc0fa3..c48ae62af24 100644
--- a/CIAO/PROBLEM-REPORT-FORM
+++ b/CIAO/PROBLEM-REPORT-FORM
@@ -41,9 +41,9 @@
To: ciao-users@list.isis.vanderbilt.edu
Subject: [area]: [synopsis]
- CIAO VERSION: 1.1.8
- TAO VERSION : 2.1.8
- ACE VERSION : 6.1.8
+ CIAO VERSION: 1.1.7
+ TAO VERSION : 2.1.7
+ ACE VERSION : 6.1.7
HOST MACHINE and OPERATING SYSTEM:
If on Windows based OS's, which version of WINSOCK do you
diff --git a/CIAO/VERSION b/CIAO/VERSION
index 6a88518017f..5926fbbba1f 100644
--- a/CIAO/VERSION
+++ b/CIAO/VERSION
@@ -1,4 +1,4 @@
-This is CIAO version 1.1.8, released Thu Mar 14 09:04:46 CET 2013
+This is CIAO version 1.1.7, released Thu Dec 27 10:00:49 CET 2012
If you have any problems with or questions about CIAO, please send
e-mail to the CIAO mailing list (ciao-users@list.isis.vanderbilt.edu),
diff --git a/CIAO/ciao/Version.h b/CIAO/ciao/Version.h
index b764bdeecc1..b05c2db39d0 100644
--- a/CIAO/ciao/Version.h
+++ b/CIAO/ciao/Version.h
@@ -5,5 +5,5 @@
#define CIAO_MAJOR_VERSION 1
#define CIAO_MINOR_VERSION 1
-#define CIAO_BETA_VERSION 8
-#define CIAO_VERSION "1.1.8"
+#define CIAO_BETA_VERSION 7
+#define CIAO_VERSION "1.1.7"
diff --git a/CIAO/connectors/dds4ccm/DDS4CCM-INSTALL.html b/CIAO/connectors/dds4ccm/DDS4CCM-INSTALL.html
index a68ce38f6b1..0859078ab93 100644
--- a/CIAO/connectors/dds4ccm/DDS4CCM-INSTALL.html
+++ b/CIAO/connectors/dds4ccm/DDS4CCM-INSTALL.html
@@ -52,12 +52,7 @@ For compiling and installing CIAO see <a href="../../CIAO-INSTALL.html">CIAO-INS
</p>
<p>
To be sure that CIAO, DAnCE and DDS4CCM are build correctly, one might
- use the $CIAO_ROOT/CIAO_TAO_DAnCE.mwc workspace for RTI DDS.
-<p>
-</p>
- When using DDS4CCM with OpenDDS we commend you to use the $CIAO_ROOT/CIAO_TAO_DAnCE_OpenDDS.mwc workspace. This workspace
- will compile all needed parts of ACE, TAO, CIAO, DAnCE, and OpenDDS. OpenDDS has to be compiled before compiling DDS4CCM
- because we are using several of the OpenDDS libraries and the OpenDDS IDL compiler.
+ use the $CIAO_ROOT/CIAO_TAO_DAnCE.mwc workspace for RTI DDS and $CIAO_ROOT/CIAO_TAO_DAnCE_OpenDDS.mwc for OpenDDS.
</p>
<hr>
diff --git a/CIAO/connectors/dds4ccm/examples/Shapes/Receiver/Shapes_Receiver_exec.cpp b/CIAO/connectors/dds4ccm/examples/Shapes/Receiver/Shapes_Receiver_exec.cpp
index 8b221c06b21..26351126be6 100644
--- a/CIAO/connectors/dds4ccm/examples/Shapes/Receiver/Shapes_Receiver_exec.cpp
+++ b/CIAO/connectors/dds4ccm/examples/Shapes/Receiver/Shapes_Receiver_exec.cpp
@@ -84,28 +84,8 @@ namespace CIAO_Shapes_Receiver_Impl
info_out_data_listener_exec_i::on_one_data (const ::ShapeType & datum,
const ::CCM_DDS::ReadInfo & /* info */)
{
- ::Shapes::Reader_var reader =
- this->ciao_context_->get_connection_info_out_data ();
- ::CORBA::Object_var cmp = reader->_get_component ();
- if (::CORBA::is_nil (cmp.in ()))
- {
- ACE_ERROR ((LM_ERROR, "ERROR: info_out_data_listener_exec_i::on_one_data - "
- "Unable to get component interface\n"));
- throw ::CORBA::INTERNAL ();
- }
- ::Shapes::CCM_DDS_Event_var conn =
- ::Shapes::CCM_DDS_Event::_narrow (cmp.in ());
- if (::CORBA::is_nil (conn.in ()))
- {
- ACE_ERROR ((LM_ERROR, "ERROR: info_out_data_listener_exec_i::on_one_data - "
- "Unable to narrow connector interface\n"));
- throw ::CORBA::INTERNAL ();
- }
- CORBA::String_var topic = conn->topic_name ();
-
ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("ShapeType_Listener: ")
- ACE_TEXT ("received shape_info <%C> for <%C> at X <%u> Y <%u> size <%u>\n"),
- topic.in (),
+ ACE_TEXT ("received shape_info for <%C> at X <%u> Y <%u> size <%u>\n"),
datum.color.in (),
datum.x,
datum.y,
@@ -236,31 +216,13 @@ namespace CIAO_Shapes_Receiver_Impl
this->ciao_context_->get_connection_info_out_data ();
if (! ::CORBA::is_nil (reader.in ()))
{
- ::CORBA::Object_var cmp = reader->_get_component ();
- if (::CORBA::is_nil (cmp.in ()))
- {
- ACE_ERROR ((LM_ERROR, "ERROR: Receiver_exec_i::read_one - "
- "Unable to get component interface\n"));
- throw ::CORBA::INTERNAL ();
- }
- ::Shapes::CCM_DDS_Event_var conn =
- ::Shapes::CCM_DDS_Event::_narrow (cmp.in ());
- if (::CORBA::is_nil (conn.in ()))
- {
- ACE_ERROR ((LM_ERROR, "ERROR: Receiver_exec_i::read_one - "
- "Unable to narrow connector interface\n"));
- throw ::CORBA::INTERNAL ();
- }
- CORBA::String_var topic = conn->topic_name ();
-
reader->read_one_last (shape_info, readinfo, ::DDS::HANDLE_NIL);
ACE_Time_Value time;
time <<= readinfo.source_timestamp;
ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("READ_ONE Read_Info ")
ACE_TEXT (" -> date = %#T\n"), &time));
ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("READ ON shape info : ")
- ACE_TEXT ("received shape_info <%C> for <%C> at X <%u> Y <%u> size <%u>\n"),
- topic.in (),
+ ACE_TEXT ("received shape_info for <%C> at X <%u> Y <%u> size <%u>\n"),
shape_info.color.in (),
shape_info.x,
shape_info.y,
@@ -288,23 +250,6 @@ namespace CIAO_Shapes_Receiver_Impl
this->ciao_context_->get_connection_info_out_data ();
if (! ::CORBA::is_nil (reader.in ()))
{
- ::CORBA::Object_var cmp = reader->_get_component ();
- if (::CORBA::is_nil (cmp.in ()))
- {
- ACE_ERROR ((LM_ERROR, "ERROR: Receiver_exec_i::read_all - "
- "Unable to get component interface\n"));
- throw ::CORBA::INTERNAL ();
- }
- ::Shapes::CCM_DDS_Event_var conn =
- ::Shapes::CCM_DDS_Event::_narrow (cmp.in ());
- if (::CORBA::is_nil (conn.in ()))
- {
- ACE_ERROR ((LM_ERROR, "ERROR: Receiver_exec_i::read_all - "
- "Unable to narrow connector interface\n"));
- throw ::CORBA::INTERNAL ();
- }
- CORBA::String_var topic = conn->topic_name ();
-
reader->read_all(shape_infos, readinfoseq);
for(CORBA::ULong i = 0; i < readinfoseq.length(); ++i)
{
@@ -316,8 +261,8 @@ namespace CIAO_Shapes_Receiver_Impl
for(CORBA::ULong i = 0; i < shape_infos.length(); ++i)
{
ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("READ_ALL Shape Info : ")
- ACE_TEXT ("received shape_info <%C> for <%C> at X <%u> Y <%u> size <%u>\n"),
- topic.in (),
+ ACE_TEXT ("received shape_info for <%C> at X <%u> Y <%u> size <%u>\n"),
+ i,
shape_infos[i].color.in (),
shape_infos[i].x,
shape_infos[i].y,
@@ -343,23 +288,6 @@ namespace CIAO_Shapes_Receiver_Impl
this->ciao_context_->get_connection_info_get_fresh_data ();
if (! ::CORBA::is_nil (getter.in ()))
{
- ::CORBA::Object_var cmp = getter->_get_component ();
- if (::CORBA::is_nil (cmp.in ()))
- {
- ACE_ERROR ((LM_ERROR, "ERROR: Receiver_exec_i::get_one - "
- "Unable to get component interface\n"));
- throw ::CORBA::INTERNAL ();
- }
- ::Shapes::CCM_DDS_Event_var conn =
- ::Shapes::CCM_DDS_Event::_narrow (cmp.in ());
- if (::CORBA::is_nil (conn.in ()))
- {
- ACE_ERROR ((LM_ERROR, "ERROR: Receiver_exec_i::get_one - "
- "Unable to narrow connector interface\n"));
- throw ::CORBA::INTERNAL ();
- }
- CORBA::String_var topic = conn->topic_name ();
-
if (getter->get_one (shape_info.out (), readinfo.out ()))
{
ACE_Time_Value time;
@@ -367,8 +295,7 @@ namespace CIAO_Shapes_Receiver_Impl
ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("GET_ONE ReadInfo -> ")
ACE_TEXT ("date = %#T\n"), &time));
ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("GET_ONE ShapeType : ")
- ACE_TEXT ("received shape_info <%C> for <%C> at X <%u> Y <%u> size <%u>\n"),
- topic.in (),
+ ACE_TEXT ("received shape_info for <%C> at X <%u> Y <%u> size <%u>\n"),
shape_info->color.in (),
shape_info->x,
shape_info->y,
@@ -531,7 +458,7 @@ namespace CIAO_Shapes_Receiver_Impl
Receiver_exec_i::ccm_activate (void)
{
::CCM_DDS::DataListenerControl_var lc =
- this->ciao_context_->get_connection_info_out_data_control ();
+ this->ciao_context_->get_connection_info_out_data_control ();
if (::CORBA::is_nil (lc.in ()))
{
diff --git a/CIAO/connectors/dds4ccm/examples/Shapes/Sender/Shapes_Sender_exec.cpp b/CIAO/connectors/dds4ccm/examples/Shapes/Sender/Shapes_Sender_exec.cpp
index 516fb1768ab..13db4011ff7 100644
--- a/CIAO/connectors/dds4ccm/examples/Shapes/Sender/Shapes_Sender_exec.cpp
+++ b/CIAO/connectors/dds4ccm/examples/Shapes/Sender/Shapes_Sender_exec.cpp
@@ -146,26 +146,8 @@ namespace CIAO_Shapes_Sender_Impl
this->ciao_context_->get_connection_info_write_data ();
if (! ::CORBA::is_nil (writer.in ()))
{
- ::CORBA::Object_var cmp = writer->_get_component ();
- if (::CORBA::is_nil (cmp.in ()))
- {
- ACE_ERROR ((LM_ERROR, "ERROR: Sender_exec_i::tick - "
- "Unable to get component interface\n"));
- throw ::CORBA::INTERNAL ();
- }
- ::Shapes::CCM_DDS_Event_var conn =
- ::Shapes::CCM_DDS_Event::_narrow (cmp.in ());
- if (::CORBA::is_nil (conn.in ()))
- {
- ACE_ERROR ((LM_ERROR, "ERROR: Sender_exec_i::tick - "
- "Unable to narrow connector interface\n"));
- throw ::CORBA::INTERNAL ();
- }
- CORBA::String_var topic = conn->topic_name ();
-
writer->write_one (*this->square_, this->instance_handle_);
- ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("UPDATED Shape_info <%C> for <%C> %u:%u:%u\n"),
- topic.in (),
+ ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("UPDATED Shape_info for <%C> %u:%u:%u\n"),
this->square_->color.in (),
this->square_->x,
this->square_->y,
@@ -180,8 +162,8 @@ namespace CIAO_Shapes_Sender_Impl
catch (const CCM_DDS::NonExistent& )
{
ACE_ERROR ((LM_ERROR,
- ACE_TEXT ("Shape_info for <%C> not updated: didn't exist.\n"),
- this->square_->color.in ()));
+ ACE_TEXT ("Shape_info for <%C> not updated: <%C> didn't exist.\n"),
+ this->square_->color.in (), this->square_->color.in ()));
}
catch (const CCM_DDS::InternalError& )
{
diff --git a/CIAO/connectors/dds4ccm/examples/Shapes/descriptors/2013_interop_demo/run_1.cdp b/CIAO/connectors/dds4ccm/examples/Shapes/descriptors/2013_interop_demo/run_1.cdp
deleted file mode 100644
index 0a0df7a5c4b..00000000000
--- a/CIAO/connectors/dds4ccm/examples/Shapes/descriptors/2013_interop_demo/run_1.cdp
+++ /dev/null
@@ -1,498 +0,0 @@
-<!-- $Id$ -->
-<Deployment:DeploymentPlan
- xmlns:Deployment="http://www.omg.org/Deployment"
- xmlns:xmi="http://www.omg.org/XMI"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd">
- <label>Shapes_Depl_1</label>
- <UUID>Shapes_Depl_1</UUID>
-
- <implementation xmi:id="ReceiverComponentImplementation">
- <name>ReceiverComponentImplementation</name>
- <source/>
- <artifact xmi:idref="Receiver_ExecArtifact" />
- <artifact xmi:idref="Receiver_SvntArtifact" />
- <execParameter>
- <!-- entrypoint as exec parameter (see 10.6.1) -->
- <name>component factory</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>create_Shapes_Receiver_Impl</string>
- </value>
- </value>
- </execParameter>
- <execParameter>
- <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>create_Shapes_Receiver_Servant</string>
- </value>
- </value>
- </execParameter>
- <execParameter>
- <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>Receiver_svnt</string>
- </value>
- </value>
- </execParameter>
- <execParameter>
- <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>Receiver_exec</string>
- </value>
- </value>
- </execParameter>
- </implementation>
-
- <implementation xmi:id="Shapes_ConnectorComponentImplementation">
- <name>Shapes_ConnectorComponentImplementation</name>
- <source/>
- <artifact xmi:idref="Shapes_Connector_ExecArtifact" />
- <artifact xmi:idref="Shapes_Connector_SvntArtifact" />
- <execParameter>
- <!-- entrypoint as exec parameter (see 10.6.1) -->
- <name>component factory</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>create_Shapes_DDS_Event_Impl</string>
- </value>
- </value>
- </execParameter>
- <execParameter>
- <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>create_Shapes_DDS_Event_Servant</string>
- </value>
- </value>
- </execParameter>
- <execParameter>
- <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>Shapes_Connector_svnt</string>
- </value>
- </value>
- </execParameter>
- <execParameter>
- <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>Shapes_Connector_exec</string>
- </value>
- </value>
- </execParameter>
- </implementation>
- <implementation xmi:id="SenderComponentImplementation">
- <name>SenderComponentImplementation</name>
- <source/>
- <artifact xmi:idref="Sender_ExecArtifact" />
- <artifact xmi:idref="Sender_SvntArtifact" />
- <execParameter>
- <!-- entrypoint as exec parameter (see 10.6.1) -->
- <name>component factory</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>create_Shapes_Sender_Impl</string>
- </value>
- </value>
- </execParameter>
- <execParameter>
- <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>create_Shapes_Sender_Servant</string>
- </value>
- </value>
- </execParameter>
- <execParameter>
- <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>Sender_svnt</string>
- </value>
- </value>
- </execParameter>
- <execParameter>
- <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>Sender_exec</string>
- </value>
- </value>
- </execParameter>
- </implementation>
- <instance xmi:id="ReceiverComponentInstance">
- <name>ReceiverComponent</name>
- <node>ReceiverNode</node>
- <!-- hostname -->
- <source/>
- <implementation xmi:idref="ReceiverComponentImplementation" />
- <configProperty>
- <name>rate</name>
- <value>
- <type>
- <kind>tk_ulong</kind>
- </type>
- <value>
- <ulong>1</ulong>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>get_data</name>
- <value>
- <type>
- <kind>tk_boolean</kind>
- </type>
- <value>
- <boolean>false</boolean>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>read_data</name>
- <value>
- <type>
- <kind>tk_boolean</kind>
- </type>
- <value>
- <boolean>false</boolean>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>raw_listen</name>
- <value>
- <type>
- <kind>tk_boolean</kind>
- </type>
- <value>
- <boolean>true</boolean>
- </value>
- </value>
- </configProperty>
- </instance>
- <instance xmi:id="Shapes_ConnectorComponentInstance">
- <name>Shapes_ConnectorComponent</name>
- <node>SenderNode</node>
- <!-- hostname -->
- <source/>
- <implementation xmi:idref="Shapes_ConnectorComponentImplementation" />
- <configProperty>
- <name>topic_name</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>Square</string>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>type_name</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>ShapeType</string>
- </value>
- </value>
- </configProperty>
- </instance>
- <instance xmi:id="Shapes_ConnectorComponentInstance2">
- <name>Shapes_ConnectorComponent2</name>
- <node>ReceiverNode</node>
- <!-- hostname -->
- <source/>
- <implementation xmi:idref="Shapes_ConnectorComponentImplementation" />
- <configProperty>
- <name>topic_name</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>Square</string>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>type_name</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>ShapeType</string>
- </value>
- </value>
- </configProperty>
- </instance>
- <instance xmi:id="SenderComponentInstance">
- <name>SenderComponent</name>
- <node>SenderNode</node>
- <!-- hostname -->
- <source/>
- <implementation xmi:idref="SenderComponentImplementation" />
- <configProperty>
- <name>color</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>ORANGE</string>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>rate</name>
- <value>
- <type>
- <kind>tk_ulong</kind>
- </type>
- <value>
- <ulong>10</ulong>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>max_x</name>
- <value>
- <type>
- <kind>tk_ushort</kind>
- </type>
- <value>
- <ushort>225</ushort>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>max_y</name>
- <value>
- <type>
- <kind>tk_ushort</kind>
- </type>
- <value>
- <ushort>250</ushort>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>max_size</name>
- <value>
- <type>
- <kind>tk_ushort</kind>
- </type>
- <value>
- <ushort>50</ushort>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>resize_shape</name>
- <value>
- <type>
- <kind>tk_boolean</kind>
- </type>
- <value>
- <boolean>true</boolean>
- </value>
- </value>
- </configProperty>
- </instance>
-
- <connection>
- <name>info_out_data</name>
- <deployRequirement>
- <name>edu.dre.vanderbilt.DAnCE.ConnectionType</name>
- <resourceType>Local_Interface</resourceType>
- </deployRequirement>
- <internalEndpoint>
- <portName>info_out_data</portName>
- <provider>false</provider>
- <kind>SimplexReceptacle</kind>
- <instance xmi:idref="ReceiverComponentInstance" />
- </internalEndpoint>
- <internalEndpoint>
- <portName>push_consumer_data</portName>
- <provider>true</provider>
- <kind>Facet</kind>
- <instance xmi:idref="Shapes_ConnectorComponentInstance2" />
- </internalEndpoint>
- </connection>
- <connection>
- <name>_listenercontrol</name>
- <deployRequirement>
- <name>edu.dre.vanderbilt.DAnCE.ConnectionType</name>
- <resourceType>Local_Interface</resourceType>
- </deployRequirement>
- <internalEndpoint>
- <portName>info_out_data_control</portName>
- <provider>false</provider>
- <kind>SimplexReceptacle</kind>
- <instance xmi:idref="ReceiverComponentInstance" />
- </internalEndpoint>
- <internalEndpoint>
- <portName>push_consumer_data_control</portName>
- <provider>true</provider>
- <kind>Facet</kind>
- <instance xmi:idref="Shapes_ConnectorComponentInstance2" />
- </internalEndpoint>
- </connection>
- <connection>
- <name>_portstatuslistener</name>
- <deployRequirement>
- <name>edu.dre.vanderbilt.DAnCE.ConnectionType</name>
- <resourceType>Local_Interface</resourceType>
- </deployRequirement>
- <internalEndpoint>
- <portName>info_out_status</portName>
- <provider>true</provider>
- <kind>Facet</kind>
- <instance xmi:idref="ReceiverComponentInstance" />
- </internalEndpoint>
- <internalEndpoint>
- <portName>push_consumer_status</portName>
- <provider>false</provider>
- <kind>SimplexReceptacle</kind>
- <instance xmi:idref="Shapes_ConnectorComponentInstance2" />
- </internalEndpoint>
- </connection>
- <connection>
- <name>_listener</name>
- <deployRequirement>
- <name>edu.dre.vanderbilt.DAnCE.ConnectionType</name>
- <resourceType>Local_Interface</resourceType>
- </deployRequirement>
- <internalEndpoint>
- <portName>info_out_data_listener</portName>
- <provider>true</provider>
- <kind>Facet</kind>
- <instance xmi:idref="ReceiverComponentInstance" />
- </internalEndpoint>
- <internalEndpoint>
- <portName>push_consumer_data_listener</portName>
- <provider>false</provider>
- <kind>SimplexReceptacle</kind>
- <instance xmi:idref="Shapes_ConnectorComponentInstance2" />
- </internalEndpoint>
- </connection>
-
- <connection>
- <name>writer_connection</name>
- <deployRequirement>
- <name>edu.dre.vanderbilt.DAnCE.ConnectionType</name>
- <resourceType>Local_Interface</resourceType>
- </deployRequirement>
- <internalEndpoint>
- <portName>info_write_data</portName>
- <provider>false</provider>
- <kind>SimplexReceptacle</kind>
- <instance xmi:idref="SenderComponentInstance" />
- </internalEndpoint>
- <internalEndpoint>
- <portName>supplier_data</portName>
- <provider>true</provider>
- <kind>Facet</kind>
- <instance xmi:idref="Shapes_ConnectorComponentInstance" />
- </internalEndpoint>
- </connection>
-
- <artifact xmi:id="Sender_ExecArtifact">
- <name>Sender_exec</name>
- <source/>
- <node/>
- <location>Sender_exec</location>
- </artifact>
- <artifact xmi:id="Sender_SvntArtifact">
- <name>Sender_svnt</name>
- <source/>
- <node/>
- <location>Sender_svnt</location>
- </artifact>
- <artifact xmi:id="Sender_StubArtifact">
- <name>Sender_stub</name>
- <source/>
- <node/>
- <location>Sender_stub</location>
- </artifact>
- <artifact xmi:id="Shapes_Connector_ExecArtifact">
- <name>Shapes_Connector_exec</name>
- <source/>
- <node/>
- <location>DDS_Shapes_Connector_exec</location>
- </artifact>
- <artifact xmi:id="Shapes_Connector_SvntArtifact">
- <name>Shapes_Connector_svnt</name>
- <source/>
- <node/>
- <location>DDS_Shapes_Connector_svnt</location>
- </artifact>
- <artifact xmi:id="Shapes_Connector_StubArtifact">
- <name>Shapes_Connector_stub</name>
- <source/>
- <node/>
- <location>DDS_Shapes_Connector_stub</location>
- </artifact>
- <artifact xmi:id="Receiver_ExecArtifact">
- <name>Receiver_exec</name>
- <source/>
- <node/>
- <location>Receiver_exec</location>
- </artifact>
- <artifact xmi:id="Receiver_SvntArtifact">
- <name>Receiver_svnt</name>
- <source/>
- <node/>
- <location>Receiver_svnt</location>
- </artifact>
- <artifact xmi:id="Receiver_StubArtifact">
- <name>Receiver_stub</name>
- <source/>
- <node/>
- <location>Receiver_stub</location>
- </artifact>
-</Deployment:DeploymentPlan>
diff --git a/CIAO/connectors/dds4ccm/examples/Shapes/descriptors/2013_interop_demo/run_1.pl b/CIAO/connectors/dds4ccm/examples/Shapes/descriptors/2013_interop_demo/run_1.pl
deleted file mode 100755
index 80183c57650..00000000000
--- a/CIAO/connectors/dds4ccm/examples/Shapes/descriptors/2013_interop_demo/run_1.pl
+++ /dev/null
@@ -1,245 +0,0 @@
-eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
- & eval 'exec perl -S $0 $argv:q'
- if 0;
-
-# $Id$
-# -*- perl -*-
-
-use lib "$ENV{'ACE_ROOT'}/bin";
-use PerlACE::TestTarget;
-
-$CIAO_ROOT = "$ENV{'CIAO_ROOT'}";
-$TAO_ROOT = "$ENV{'TAO_ROOT'}";
-$DANCE_ROOT = "$ENV{'DANCE_ROOT'}";
-$DDS_ROOT = "$ENV{'DDS_ROOT'}";
-
-$daemons_running = 0;
-$em_running = 0;
-$ns_running = 0;
-
-$nr_daemon = 2;
-@ports = ( 60001, 60002 );
-@iorbases = ( "NodeApp1.ior", "NodeApp2.ior" );
-@iorfiles = 0;
-@nodenames = ( "SenderNode", "ReceiverNode" );
-
-# ior files other than daemon
-$ior_nsbase = "ns.ior";
-$ior_nsfile = 0;
-$ior_embase = "EM.ior";
-$ior_emfile = 0;
-
-# Processes
-$E = 0;
-$EM = 0;
-$NS = 0;
-@DEAMONS = 0;
-
-# targets
-@tg_daemons = 0;
-$tg_naming = 0;
-$tg_exe_man = 0;
-$tg_executor = 0;
-
-$status = 0;
-$cdp_file = "run_1.cdp";
-
-sub create_targets {
- # naming service
- $tg_naming = PerlACE::TestTarget::create_target (1) || die "Create target for ns failed\n";
- $tg_naming->AddLibPath ('../lib');
- # daemon
- for ($i = 0; $i < $nr_daemon; ++$i) {
- $tg_daemons[$i] = PerlACE::TestTarget::create_target ($i+1) || die "Create target for daemon $i failed\n";
- $tg_daemons[$i]->AddLibPath ('../lib');
- }
- # execution manager
- $tg_exe_man = PerlACE::TestTarget::create_target (1) || die "Create target for EM failed\n";
- $tg_exe_man->AddLibPath ('../lib');
- # executor (plan_launcher)
- $tg_executor = PerlACE::TestTarget::create_target (1) || die "Create target for executor failed\n";
- $tg_executor->AddLibPath ('../lib');
-}
-
-sub init_ior_files {
- $ior_nsfile = $tg_naming->LocalFile ($ior_nsbase);
- $ior_emfile = $tg_exe_man->LocalFile ($ior_embase);
- for ($i = 0; $i < $nr_daemon; ++$i) {
- $iorfiles[$i] = $tg_daemons[$i]->LocalFile ($iorbases[$i]);
- }
- delete_ior_files ();
-}
-
-# Delete if there are any .ior files.
-sub delete_ior_files {
- for ($i = 0; $i < $nr_daemon; ++$i) {
- $tg_daemons[$i]->DeleteFile ($iorbases[$i]);
- }
- $tg_naming->DeleteFile ($ior_nsbase);
- $tg_exe_man->DeleteFile ($ior_embase);
- for ($i = 0; $i < $nr_daemon; ++$i) {
- $iorfiles[$i] = $tg_daemons[$i]->LocalFile ($iorbases[$i]);
- }
-}
-
-sub kill_node_daemon {
- for ($i = 0; $i < $nr_daemon; ++$i) {
- $DEAMONS[$i]->Kill (); $DEAMONS[$i]->TimedWait (1);
- }
-}
-
-sub kill_open_processes {
- if ($daemons_running == 1) {
- kill_node_daemon ();
- }
-
- if ($em_running == 1) {
- $EM->Kill (); $EM->TimedWait (1);
- }
-
- if ($ns_running == 1) {
- $NS->Kill (); $NS->TimedWait (1);
- }
- # in case shutdown did not perform as expected
- $tg_executor->KillAll ('dance_locality_manager');
-}
-
-sub run_node_daemons {
- for ($i = 0; $i < $nr_daemon; ++$i) {
- $iorbase = $iorbases[$i];
- $iorfile = $iorfiles[$i];
- $port = $ports[$i];
- $nodename = $nodenames[$i];
- $iiop = "iiop://localhost:$port";
- $node_app = $tg_daemons[$i]->GetArchDir("$DANCE_ROOT/bin/") . "dance_locality_manager";
-
- $d_cmd = "$DANCE_ROOT/bin/dance_node_manager";
- $d_param = "-ORBEndpoint $iiop -s $node_app -n $nodename=$iorfile -t 30 --domain-nc corbaloc:rir:/NameService";
-
- print "Run dance_node_manager with $d_param\n";
-
- $DEAMONS[$i] = $tg_daemons[$i]->CreateProcess ($d_cmd, $d_param);
- $DEAMONS[$i]->Spawn ();
-
- if ($tg_daemons[$i]->WaitForFileTimed($iorbase,
- $tg_daemons[$i]->ProcessStartWaitInterval ()) == -1) {
- print STDERR
- "ERROR: The ior $iorfile file of node daemon $i could not be found\n";
- for (; $i >= 0; --$i) {
- $DEAMONS[$i]->Kill (); $DEAMONS[$i]->TimedWait (1);
- }
- return -1;
- }
- }
- return 0;
-}
-
-create_targets ();
-init_ior_files ();
-
-# Invoke naming service
-
-$NS = $tg_naming->CreateProcess ("$TAO_ROOT/bin/tao_cosnaming", " -ORBEndpoint iiop://localhost:60003 -o $ior_nsfile");
-
-$ns_status = $NS->Spawn ();
-
-if ($ns_status != 0) {
- print STDERR "ERROR: Unable to execute the naming service\n";
- kill_open_processes ();
- exit 1;
-}
-
-print STDERR "Starting Naming Service with -ORBEndpoint iiop://localhost:60003 -o ns.ior\n";
-
-if ($tg_naming->WaitForFileTimed ($ior_nsbase,
- $tg_naming->ProcessStartWaitInterval ()) == -1) {
- print STDERR "ERROR: cannot find naming service IOR file\n";
- $NS->Kill (); $NS->TimedWait (1);
- exit 1;
-}
-
-$ns_running = 1;
-
-# Set up NamingService environment
-$ENV{"NameServiceIOR"} = "corbaloc:iiop:localhost:60003/NameService";
-
-# Invoke node daemon.
-print "Invoking node daemon\n";
-$status = run_node_daemons ();
-
-if ($status != 0) {
- print STDERR "ERROR: Unable to execute the node daemon\n";
- kill_open_processes ();
- exit 1;
-}
-
-$daemons_running = 1;
-
-# Invoke execution manager.
-print "Invoking execution manager (dance_execution_manager.exe) with -e$ior_emfile\n";
-$EM = $tg_exe_man->CreateProcess ("$DANCE_ROOT/bin/dance_execution_manager",
- "-e$ior_emfile --domain-nc corbaloc:rir:/NameService");
-$em_status = $EM->Spawn ();
-
-if ($em_status != 0) {
- print STDERR "ERROR: dance_execution_manager returned $em_status";
- exit 1;
-}
-
-if ($tg_exe_man->WaitForFileTimed ($ior_embase,
- $tg_exe_man->ProcessStartWaitInterval ()) == -1) {
- print STDERR
- "ERROR: The ior file of execution manager could not be found\n";
- kill_open_processes ();
- exit 1;
-}
-
-$em_running = 1;
-
-# Invoke executor - start the application -.
-print "Invoking executor - launch the application -\n";
-
-print "Start dance_plan_launcher.exe with -x $cdp_file -k file://$ior_emfile\n";
-$E = $tg_executor->CreateProcess ("$DANCE_ROOT/bin/dance_plan_launcher",
- "-x $cdp_file -k file://$ior_emfile");
-$pl_status = $E->SpawnWaitKill (2 * $tg_executor->ProcessStartWaitInterval ());
-
-if ($pl_status != 0) {
- print STDERR "ERROR: dance_plan_launcher returned $pl_status\n";
- kill_open_processes ();
- exit 1;
-}
-
-for ($i = 0; $i < $nr_daemon; ++$i) {
- if ($tg_daemons[$i]->WaitForFileTimed ($iorbases[$i],
- $tg_daemons[$i]->ProcessStopWaitInterval ()) == -1) {
- print STDERR "ERROR: The ior file of daemon $i could not be found\n";
- kill_open_processes ();
- exit 1;
- }
-}
-
-print "Sleeping 60 seconds to allow task to complete\n";
-sleep (60);
-
-# Invoke executor - stop the application -.
-print "Invoking executor - stop the application -\n";
-print "by running dance_plan_launcher.exe with -k file://$ior_emfile -x $cdp_file\n";
-
-$E = $tg_executor->CreateProcess ("$DANCE_ROOT/bin/dance_plan_launcher",
- "-k file://$ior_emfile -x $cdp_file -s");
-$pl_status = $E->SpawnWaitKill ($tg_executor->ProcessStartWaitInterval ());
-
-if ($pl_status != 0) {
- print STDERR "ERROR: dance_plan_launcher returned $pl_status\n";
- kill_open_processes ();
- exit 1;
-}
-
-print "Executor returned.\n";
-print "Shutting down rest of the processes.\n";
-
-delete_ior_files ();
-kill_open_processes ();
-
-exit $status;
diff --git a/CIAO/connectors/dds4ccm/examples/Shapes/descriptors/2013_interop_demo/run_2.cdp b/CIAO/connectors/dds4ccm/examples/Shapes/descriptors/2013_interop_demo/run_2.cdp
deleted file mode 100644
index b239738f092..00000000000
--- a/CIAO/connectors/dds4ccm/examples/Shapes/descriptors/2013_interop_demo/run_2.cdp
+++ /dev/null
@@ -1,1123 +0,0 @@
-<!-- $Id$ -->
-<Deployment:DeploymentPlan
- xmlns:Deployment="http://www.omg.org/Deployment"
- xmlns:xmi="http://www.omg.org/XMI"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd">
- <label>Shapes_Depl_1</label>
- <UUID>Shapes_Depl_1</UUID>
-
- <implementation xmi:id="ReceiverComponentImplementation">
- <name>ReceiverComponentImplementation</name>
- <source/>
- <artifact xmi:idref="Receiver_ExecArtifact" />
- <artifact xmi:idref="Receiver_SvntArtifact" />
- <execParameter>
- <!-- entrypoint as exec parameter (see 10.6.1) -->
- <name>component factory</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>create_Shapes_Receiver_Impl</string>
- </value>
- </value>
- </execParameter>
- <execParameter>
- <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>create_Shapes_Receiver_Servant</string>
- </value>
- </value>
- </execParameter>
- <execParameter>
- <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>Receiver_svnt</string>
- </value>
- </value>
- </execParameter>
- <execParameter>
- <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>Receiver_exec</string>
- </value>
- </value>
- </execParameter>
- </implementation>
-
- <implementation xmi:id="Shapes_ConnectorComponentImplementation">
- <name>Shapes_ConnectorComponentImplementation</name>
- <source/>
- <artifact xmi:idref="Shapes_Connector_ExecArtifact" />
- <artifact xmi:idref="Shapes_Connector_SvntArtifact" />
- <execParameter>
- <!-- entrypoint as exec parameter (see 10.6.1) -->
- <name>component factory</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>create_Shapes_DDS_Event_Impl</string>
- </value>
- </value>
- </execParameter>
- <execParameter>
- <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>create_Shapes_DDS_Event_Servant</string>
- </value>
- </value>
- </execParameter>
- <execParameter>
- <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>Shapes_Connector_svnt</string>
- </value>
- </value>
- </execParameter>
- <execParameter>
- <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>Shapes_Connector_exec</string>
- </value>
- </value>
- </execParameter>
- </implementation>
- <implementation xmi:id="SenderComponentImplementation">
- <name>SenderComponentImplementation</name>
- <source/>
- <artifact xmi:idref="Sender_ExecArtifact" />
- <artifact xmi:idref="Sender_SvntArtifact" />
- <execParameter>
- <!-- entrypoint as exec parameter (see 10.6.1) -->
- <name>component factory</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>create_Shapes_Sender_Impl</string>
- </value>
- </value>
- </execParameter>
- <execParameter>
- <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>create_Shapes_Sender_Servant</string>
- </value>
- </value>
- </execParameter>
- <execParameter>
- <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>Sender_svnt</string>
- </value>
- </value>
- </execParameter>
- <execParameter>
- <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>Sender_exec</string>
- </value>
- </value>
- </execParameter>
- </implementation>
-
- <instance xmi:id="SquareReceiverComponentInstance">
- <name>SquareReceiverComponent</name>
- <node>ReceiverNode</node>
- <!-- hostname -->
- <source/>
- <implementation xmi:idref="ReceiverComponentImplementation" />
- <configProperty>
- <name>rate</name>
- <value>
- <type>
- <kind>tk_ulong</kind>
- </type>
- <value>
- <ulong>1</ulong>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>get_data</name>
- <value>
- <type>
- <kind>tk_boolean</kind>
- </type>
- <value>
- <boolean>false</boolean>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>read_data</name>
- <value>
- <type>
- <kind>tk_boolean</kind>
- </type>
- <value>
- <boolean>false</boolean>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>raw_listen</name>
- <value>
- <type>
- <kind>tk_boolean</kind>
- </type>
- <value>
- <boolean>true</boolean>
- </value>
- </value>
- </configProperty>
- </instance>
- <instance xmi:id="CircleReceiverComponentInstance">
- <name>CircleReceiverComponent</name>
- <node>ReceiverNode</node>
- <!-- hostname -->
- <source/>
- <implementation xmi:idref="ReceiverComponentImplementation" />
- <configProperty>
- <name>rate</name>
- <value>
- <type>
- <kind>tk_ulong</kind>
- </type>
- <value>
- <ulong>1</ulong>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>get_data</name>
- <value>
- <type>
- <kind>tk_boolean</kind>
- </type>
- <value>
- <boolean>false</boolean>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>read_data</name>
- <value>
- <type>
- <kind>tk_boolean</kind>
- </type>
- <value>
- <boolean>false</boolean>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>raw_listen</name>
- <value>
- <type>
- <kind>tk_boolean</kind>
- </type>
- <value>
- <boolean>true</boolean>
- </value>
- </value>
- </configProperty>
- </instance>
- <instance xmi:id="TriangleReceiverComponentInstance">
- <name>TriangleReceiverComponent</name>
- <node>ReceiverNode</node>
- <!-- hostname -->
- <source/>
- <implementation xmi:idref="ReceiverComponentImplementation" />
- <configProperty>
- <name>rate</name>
- <value>
- <type>
- <kind>tk_ulong</kind>
- </type>
- <value>
- <ulong>1</ulong>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>get_data</name>
- <value>
- <type>
- <kind>tk_boolean</kind>
- </type>
- <value>
- <boolean>false</boolean>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>read_data</name>
- <value>
- <type>
- <kind>tk_boolean</kind>
- </type>
- <value>
- <boolean>false</boolean>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>raw_listen</name>
- <value>
- <type>
- <kind>tk_boolean</kind>
- </type>
- <value>
- <boolean>true</boolean>
- </value>
- </value>
- </configProperty>
- </instance>
-
- <instance xmi:id="SquareShapes_ConnectorComponentInstance">
- <name>SquareShapes_ConnectorComponent</name>
- <node>SenderNode</node>
- <!-- hostname -->
- <source/>
- <implementation xmi:idref="Shapes_ConnectorComponentImplementation" />
- <configProperty>
- <name>qos_profile</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>run_2#square</string>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>topic_name</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>Square</string>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>type_name</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>ShapeType</string>
- </value>
- </value>
- </configProperty>
- </instance>
- <instance xmi:id="CircleShapes_ConnectorComponentInstance">
- <name>CircleShapes_ConnectorComponent</name>
- <node>SenderNode</node>
- <!-- hostname -->
- <source/>
- <implementation xmi:idref="Shapes_ConnectorComponentImplementation" />
- <configProperty>
- <name>qos_profile</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>run_2#circle</string>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>topic_name</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>Circle</string>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>type_name</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>ShapeType</string>
- </value>
- </value>
- </configProperty>
- </instance>
- <instance xmi:id="TriangleShapes_ConnectorComponentInstance">
- <name>TriangleShapes_ConnectorComponent</name>
- <node>SenderNode</node>
- <!-- hostname -->
- <source/>
- <implementation xmi:idref="Shapes_ConnectorComponentImplementation" />
- <configProperty>
- <name>qos_profile</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>run_2#triangle</string>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>topic_name</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>Triangle</string>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>type_name</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>ShapeType</string>
- </value>
- </value>
- </configProperty>
- </instance>
- <instance xmi:id="SquareShapes_ConnectorComponentInstance2">
- <name>SquareShapes_ConnectorComponent2</name>
- <node>ReceiverNode</node>
- <!-- hostname -->
- <source/>
- <implementation xmi:idref="Shapes_ConnectorComponentImplementation" />
- <configProperty>
- <name>qos_profile</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>run_2#square</string>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>topic_name</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>Square</string>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>type_name</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>ShapeType</string>
- </value>
- </value>
- </configProperty>
- </instance>
- <instance xmi:id="CircleShapes_ConnectorComponentInstance2">
- <name>CircleShapes_ConnectorComponent2</name>
- <node>ReceiverNode</node>
- <!-- hostname -->
- <source/>
- <implementation xmi:idref="Shapes_ConnectorComponentImplementation" />
- <configProperty>
- <name>qos_profile</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>run_2#circle</string>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>topic_name</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>Circle</string>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>type_name</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>ShapeType</string>
- </value>
- </value>
- </configProperty>
- </instance>
- <instance xmi:id="TriangleShapes_ConnectorComponentInstance2">
- <name>TriangleShapes_ConnectorComponent2</name>
- <node>ReceiverNode</node>
- <!-- hostname -->
- <source/>
- <implementation xmi:idref="Shapes_ConnectorComponentImplementation" />
- <configProperty>
- <name>qos_profile</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>run_2#triangle</string>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>topic_name</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>Triangle</string>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>type_name</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>ShapeType</string>
- </value>
- </value>
- </configProperty>
- </instance>
- <instance xmi:id="SquareSenderComponentInstance">
- <name>SquareSenderComponent</name>
- <node>SenderNode</node>
- <!-- hostname -->
- <source/>
- <implementation xmi:idref="SenderComponentImplementation" />
- <configProperty>
- <name>color</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>ORANGE</string>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>rate</name>
- <value>
- <type>
- <kind>tk_ulong</kind>
- </type>
- <value>
- <ulong>10</ulong>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>max_x</name>
- <value>
- <type>
- <kind>tk_ushort</kind>
- </type>
- <value>
- <ushort>225</ushort>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>max_y</name>
- <value>
- <type>
- <kind>tk_ushort</kind>
- </type>
- <value>
- <ushort>250</ushort>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>max_size</name>
- <value>
- <type>
- <kind>tk_ushort</kind>
- </type>
- <value>
- <ushort>50</ushort>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>resize_shape</name>
- <value>
- <type>
- <kind>tk_boolean</kind>
- </type>
- <value>
- <boolean>false</boolean>
- </value>
- </value>
- </configProperty>
- </instance>
- <instance xmi:id="CircleSenderComponentInstance">
- <name>CircleSenderComponent</name>
- <node>SenderNode</node>
- <!-- hostname -->
- <source/>
- <implementation xmi:idref="SenderComponentImplementation" />
- <configProperty>
- <name>color</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>ORANGE</string>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>rate</name>
- <value>
- <type>
- <kind>tk_ulong</kind>
- </type>
- <value>
- <ulong>10</ulong>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>max_x</name>
- <value>
- <type>
- <kind>tk_ushort</kind>
- </type>
- <value>
- <ushort>225</ushort>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>max_y</name>
- <value>
- <type>
- <kind>tk_ushort</kind>
- </type>
- <value>
- <ushort>250</ushort>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>max_size</name>
- <value>
- <type>
- <kind>tk_ushort</kind>
- </type>
- <value>
- <ushort>50</ushort>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>resize_shape</name>
- <value>
- <type>
- <kind>tk_boolean</kind>
- </type>
- <value>
- <boolean>false</boolean>
- </value>
- </value>
- </configProperty>
- </instance>
- <instance xmi:id="TriangleSenderComponentInstance">
- <name>TriangleSenderComponent</name>
- <node>SenderNode</node>
- <!-- hostname -->
- <source/>
- <implementation xmi:idref="SenderComponentImplementation" />
- <configProperty>
- <name>color</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>ORANGE</string>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>rate</name>
- <value>
- <type>
- <kind>tk_ulong</kind>
- </type>
- <value>
- <ulong>10</ulong>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>max_x</name>
- <value>
- <type>
- <kind>tk_ushort</kind>
- </type>
- <value>
- <ushort>225</ushort>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>max_y</name>
- <value>
- <type>
- <kind>tk_ushort</kind>
- </type>
- <value>
- <ushort>250</ushort>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>max_size</name>
- <value>
- <type>
- <kind>tk_ushort</kind>
- </type>
- <value>
- <ushort>50</ushort>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>resize_shape</name>
- <value>
- <type>
- <kind>tk_boolean</kind>
- </type>
- <value>
- <boolean>false</boolean>
- </value>
- </value>
- </configProperty>
- </instance>
-
- <connection>
- <name>square_info_out_data</name>
- <deployRequirement>
- <name>edu.dre.vanderbilt.DAnCE.ConnectionType</name>
- <resourceType>Local_Interface</resourceType>
- </deployRequirement>
- <internalEndpoint>
- <portName>info_out_data</portName>
- <provider>false</provider>
- <kind>SimplexReceptacle</kind>
- <instance xmi:idref="SquareReceiverComponentInstance" />
- </internalEndpoint>
- <internalEndpoint>
- <portName>push_consumer_data</portName>
- <provider>true</provider>
- <kind>Facet</kind>
- <instance xmi:idref="SquareShapes_ConnectorComponentInstance2" />
- </internalEndpoint>
- </connection>
- <connection>
- <name>square_listenercontrol</name>
- <deployRequirement>
- <name>edu.dre.vanderbilt.DAnCE.ConnectionType</name>
- <resourceType>Local_Interface</resourceType>
- </deployRequirement>
- <internalEndpoint>
- <portName>info_out_data_control</portName>
- <provider>false</provider>
- <kind>SimplexReceptacle</kind>
- <instance xmi:idref="SquareReceiverComponentInstance" />
- </internalEndpoint>
- <internalEndpoint>
- <portName>push_consumer_data_control</portName>
- <provider>true</provider>
- <kind>Facet</kind>
- <instance xmi:idref="SquareShapes_ConnectorComponentInstance2" />
- </internalEndpoint>
- </connection>
- <connection>
- <name>square_portstatuslistener</name>
- <deployRequirement>
- <name>edu.dre.vanderbilt.DAnCE.ConnectionType</name>
- <resourceType>Local_Interface</resourceType>
- </deployRequirement>
- <internalEndpoint>
- <portName>info_out_status</portName>
- <provider>true</provider>
- <kind>Facet</kind>
- <instance xmi:idref="SquareReceiverComponentInstance" />
- </internalEndpoint>
- <internalEndpoint>
- <portName>push_consumer_status</portName>
- <provider>false</provider>
- <kind>SimplexReceptacle</kind>
- <instance xmi:idref="SquareShapes_ConnectorComponentInstance2" />
- </internalEndpoint>
- </connection>
- <connection>
- <name>square_listener</name>
- <deployRequirement>
- <name>edu.dre.vanderbilt.DAnCE.ConnectionType</name>
- <resourceType>Local_Interface</resourceType>
- </deployRequirement>
- <internalEndpoint>
- <portName>info_out_data_listener</portName>
- <provider>true</provider>
- <kind>Facet</kind>
- <instance xmi:idref="SquareReceiverComponentInstance" />
- </internalEndpoint>
- <internalEndpoint>
- <portName>push_consumer_data_listener</portName>
- <provider>false</provider>
- <kind>SimplexReceptacle</kind>
- <instance xmi:idref="SquareShapes_ConnectorComponentInstance2" />
- </internalEndpoint>
- </connection>
-
- <connection>
- <name>circle_info_out_data</name>
- <deployRequirement>
- <name>edu.dre.vanderbilt.DAnCE.ConnectionType</name>
- <resourceType>Local_Interface</resourceType>
- </deployRequirement>
- <internalEndpoint>
- <portName>info_out_data</portName>
- <provider>false</provider>
- <kind>SimplexReceptacle</kind>
- <instance xmi:idref="CircleReceiverComponentInstance" />
- </internalEndpoint>
- <internalEndpoint>
- <portName>push_consumer_data</portName>
- <provider>true</provider>
- <kind>Facet</kind>
- <instance xmi:idref="CircleShapes_ConnectorComponentInstance2" />
- </internalEndpoint>
- </connection>
- <connection>
- <name>circle_listenercontrol</name>
- <deployRequirement>
- <name>edu.dre.vanderbilt.DAnCE.ConnectionType</name>
- <resourceType>Local_Interface</resourceType>
- </deployRequirement>
- <internalEndpoint>
- <portName>info_out_data_control</portName>
- <provider>false</provider>
- <kind>SimplexReceptacle</kind>
- <instance xmi:idref="CircleReceiverComponentInstance" />
- </internalEndpoint>
- <internalEndpoint>
- <portName>push_consumer_data_control</portName>
- <provider>true</provider>
- <kind>Facet</kind>
- <instance xmi:idref="CircleShapes_ConnectorComponentInstance2" />
- </internalEndpoint>
- </connection>
- <connection>
- <name>circle_portstatuslistener</name>
- <deployRequirement>
- <name>edu.dre.vanderbilt.DAnCE.ConnectionType</name>
- <resourceType>Local_Interface</resourceType>
- </deployRequirement>
- <internalEndpoint>
- <portName>info_out_status</portName>
- <provider>true</provider>
- <kind>Facet</kind>
- <instance xmi:idref="CircleReceiverComponentInstance" />
- </internalEndpoint>
- <internalEndpoint>
- <portName>push_consumer_status</portName>
- <provider>false</provider>
- <kind>SimplexReceptacle</kind>
- <instance xmi:idref="CircleShapes_ConnectorComponentInstance2" />
- </internalEndpoint>
- </connection>
- <connection>
- <name>circle_listener</name>
- <deployRequirement>
- <name>edu.dre.vanderbilt.DAnCE.ConnectionType</name>
- <resourceType>Local_Interface</resourceType>
- </deployRequirement>
- <internalEndpoint>
- <portName>info_out_data_listener</portName>
- <provider>true</provider>
- <kind>Facet</kind>
- <instance xmi:idref="CircleReceiverComponentInstance" />
- </internalEndpoint>
- <internalEndpoint>
- <portName>push_consumer_data_listener</portName>
- <provider>false</provider>
- <kind>SimplexReceptacle</kind>
- <instance xmi:idref="CircleShapes_ConnectorComponentInstance2" />
- </internalEndpoint>
- </connection>
-
- <connection>
- <name>triangle_info_out_data</name>
- <deployRequirement>
- <name>edu.dre.vanderbilt.DAnCE.ConnectionType</name>
- <resourceType>Local_Interface</resourceType>
- </deployRequirement>
- <internalEndpoint>
- <portName>info_out_data</portName>
- <provider>false</provider>
- <kind>SimplexReceptacle</kind>
- <instance xmi:idref="TriangleReceiverComponentInstance" />
- </internalEndpoint>
- <internalEndpoint>
- <portName>push_consumer_data</portName>
- <provider>true</provider>
- <kind>Facet</kind>
- <instance xmi:idref="TriangleShapes_ConnectorComponentInstance2" />
- </internalEndpoint>
- </connection>
- <connection>
- <name>triangle_listenercontrol</name>
- <deployRequirement>
- <name>edu.dre.vanderbilt.DAnCE.ConnectionType</name>
- <resourceType>Local_Interface</resourceType>
- </deployRequirement>
- <internalEndpoint>
- <portName>info_out_data_control</portName>
- <provider>false</provider>
- <kind>SimplexReceptacle</kind>
- <instance xmi:idref="TriangleReceiverComponentInstance" />
- </internalEndpoint>
- <internalEndpoint>
- <portName>push_consumer_data_control</portName>
- <provider>true</provider>
- <kind>Facet</kind>
- <instance xmi:idref="TriangleShapes_ConnectorComponentInstance2" />
- </internalEndpoint>
- </connection>
- <connection>
- <name>triangle_portstatuslistener</name>
- <deployRequirement>
- <name>edu.dre.vanderbilt.DAnCE.ConnectionType</name>
- <resourceType>Local_Interface</resourceType>
- </deployRequirement>
- <internalEndpoint>
- <portName>info_out_status</portName>
- <provider>true</provider>
- <kind>Facet</kind>
- <instance xmi:idref="TriangleReceiverComponentInstance" />
- </internalEndpoint>
- <internalEndpoint>
- <portName>push_consumer_status</portName>
- <provider>false</provider>
- <kind>SimplexReceptacle</kind>
- <instance xmi:idref="TriangleShapes_ConnectorComponentInstance2" />
- </internalEndpoint>
- </connection>
- <connection>
- <name>triangle_listener</name>
- <deployRequirement>
- <name>edu.dre.vanderbilt.DAnCE.ConnectionType</name>
- <resourceType>Local_Interface</resourceType>
- </deployRequirement>
- <internalEndpoint>
- <portName>info_out_data_listener</portName>
- <provider>true</provider>
- <kind>Facet</kind>
- <instance xmi:idref="TriangleReceiverComponentInstance" />
- </internalEndpoint>
- <internalEndpoint>
- <portName>push_consumer_data_listener</portName>
- <provider>false</provider>
- <kind>SimplexReceptacle</kind>
- <instance xmi:idref="TriangleShapes_ConnectorComponentInstance2" />
- </internalEndpoint>
- </connection>
-
- <connection>
- <name>square_writer_connection</name>
- <deployRequirement>
- <name>edu.dre.vanderbilt.DAnCE.ConnectionType</name>
- <resourceType>Local_Interface</resourceType>
- </deployRequirement>
- <internalEndpoint>
- <portName>info_write_data</portName>
- <provider>false</provider>
- <kind>SimplexReceptacle</kind>
- <instance xmi:idref="SquareSenderComponentInstance" />
- </internalEndpoint>
- <internalEndpoint>
- <portName>supplier_data</portName>
- <provider>true</provider>
- <kind>Facet</kind>
- <instance xmi:idref="SquareShapes_ConnectorComponentInstance" />
- </internalEndpoint>
- </connection>
- <connection>
- <name>circle_writer_connection</name>
- <deployRequirement>
- <name>edu.dre.vanderbilt.DAnCE.ConnectionType</name>
- <resourceType>Local_Interface</resourceType>
- </deployRequirement>
- <internalEndpoint>
- <portName>info_write_data</portName>
- <provider>false</provider>
- <kind>SimplexReceptacle</kind>
- <instance xmi:idref="CircleSenderComponentInstance" />
- </internalEndpoint>
- <internalEndpoint>
- <portName>supplier_data</portName>
- <provider>true</provider>
- <kind>Facet</kind>
- <instance xmi:idref="CircleShapes_ConnectorComponentInstance" />
- </internalEndpoint>
- </connection>
- <connection>
- <name>triangle_writer_connection</name>
- <deployRequirement>
- <name>edu.dre.vanderbilt.DAnCE.ConnectionType</name>
- <resourceType>Local_Interface</resourceType>
- </deployRequirement>
- <internalEndpoint>
- <portName>info_write_data</portName>
- <provider>false</provider>
- <kind>SimplexReceptacle</kind>
- <instance xmi:idref="TriangleSenderComponentInstance" />
- </internalEndpoint>
- <internalEndpoint>
- <portName>supplier_data</portName>
- <provider>true</provider>
- <kind>Facet</kind>
- <instance xmi:idref="TriangleShapes_ConnectorComponentInstance" />
- </internalEndpoint>
- </connection>
-
-
- <artifact xmi:id="Sender_ExecArtifact">
- <name>Sender_exec</name>
- <source/>
- <node/>
- <location>Sender_exec</location>
- </artifact>
- <artifact xmi:id="Sender_SvntArtifact">
- <name>Sender_svnt</name>
- <source/>
- <node/>
- <location>Sender_svnt</location>
- </artifact>
- <artifact xmi:id="Sender_StubArtifact">
- <name>Sender_stub</name>
- <source/>
- <node/>
- <location>Sender_stub</location>
- </artifact>
- <artifact xmi:id="Shapes_Connector_ExecArtifact">
- <name>Shapes_Connector_exec</name>
- <source/>
- <node/>
- <location>DDS_Shapes_Connector_exec</location>
- </artifact>
- <artifact xmi:id="Shapes_Connector_SvntArtifact">
- <name>Shapes_Connector_svnt</name>
- <source/>
- <node/>
- <location>DDS_Shapes_Connector_svnt</location>
- </artifact>
- <artifact xmi:id="Shapes_Connector_StubArtifact">
- <name>Shapes_Connector_stub</name>
- <source/>
- <node/>
- <location>DDS_Shapes_Connector_stub</location>
- </artifact>
- <artifact xmi:id="Receiver_ExecArtifact">
- <name>Receiver_exec</name>
- <source/>
- <node/>
- <location>Receiver_exec</location>
- </artifact>
- <artifact xmi:id="Receiver_SvntArtifact">
- <name>Receiver_svnt</name>
- <source/>
- <node/>
- <location>Receiver_svnt</location>
- </artifact>
- <artifact xmi:id="Receiver_StubArtifact">
- <name>Receiver_stub</name>
- <source/>
- <node/>
- <location>Receiver_stub</location>
- </artifact>
-</Deployment:DeploymentPlan>
diff --git a/CIAO/connectors/dds4ccm/examples/Shapes/descriptors/2013_interop_demo/run_2.pl b/CIAO/connectors/dds4ccm/examples/Shapes/descriptors/2013_interop_demo/run_2.pl
deleted file mode 100755
index ef1b8aae488..00000000000
--- a/CIAO/connectors/dds4ccm/examples/Shapes/descriptors/2013_interop_demo/run_2.pl
+++ /dev/null
@@ -1,245 +0,0 @@
-eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
- & eval 'exec perl -S $0 $argv:q'
- if 0;
-
-# $Id$
-# -*- perl -*-
-
-use lib "$ENV{'ACE_ROOT'}/bin";
-use PerlACE::TestTarget;
-
-$CIAO_ROOT = "$ENV{'CIAO_ROOT'}";
-$TAO_ROOT = "$ENV{'TAO_ROOT'}";
-$DANCE_ROOT = "$ENV{'DANCE_ROOT'}";
-$DDS_ROOT = "$ENV{'DDS_ROOT'}";
-
-$daemons_running = 0;
-$em_running = 0;
-$ns_running = 0;
-
-$nr_daemon = 2;
-@ports = ( 60001, 60002 );
-@iorbases = ( "NodeApp1.ior", "NodeApp2.ior" );
-@iorfiles = 0;
-@nodenames = ( "SenderNode", "ReceiverNode" );
-
-# ior files other than daemon
-$ior_nsbase = "ns.ior";
-$ior_nsfile = 0;
-$ior_embase = "EM.ior";
-$ior_emfile = 0;
-
-# Processes
-$E = 0;
-$EM = 0;
-$NS = 0;
-@DEAMONS = 0;
-
-# targets
-@tg_daemons = 0;
-$tg_naming = 0;
-$tg_exe_man = 0;
-$tg_executor = 0;
-
-$status = 0;
-$cdp_file = "run_2.cdp";
-
-sub create_targets {
- # naming service
- $tg_naming = PerlACE::TestTarget::create_target (1) || die "Create target for ns failed\n";
- $tg_naming->AddLibPath ('../lib');
- # daemon
- for ($i = 0; $i < $nr_daemon; ++$i) {
- $tg_daemons[$i] = PerlACE::TestTarget::create_target ($i+1) || die "Create target for daemon $i failed\n";
- $tg_daemons[$i]->AddLibPath ('../lib');
- }
- # execution manager
- $tg_exe_man = PerlACE::TestTarget::create_target (1) || die "Create target for EM failed\n";
- $tg_exe_man->AddLibPath ('../lib');
- # executor (plan_launcher)
- $tg_executor = PerlACE::TestTarget::create_target (1) || die "Create target for executor failed\n";
- $tg_executor->AddLibPath ('../lib');
-}
-
-sub init_ior_files {
- $ior_nsfile = $tg_naming->LocalFile ($ior_nsbase);
- $ior_emfile = $tg_exe_man->LocalFile ($ior_embase);
- for ($i = 0; $i < $nr_daemon; ++$i) {
- $iorfiles[$i] = $tg_daemons[$i]->LocalFile ($iorbases[$i]);
- }
- delete_ior_files ();
-}
-
-# Delete if there are any .ior files.
-sub delete_ior_files {
- for ($i = 0; $i < $nr_daemon; ++$i) {
- $tg_daemons[$i]->DeleteFile ($iorbases[$i]);
- }
- $tg_naming->DeleteFile ($ior_nsbase);
- $tg_exe_man->DeleteFile ($ior_embase);
- for ($i = 0; $i < $nr_daemon; ++$i) {
- $iorfiles[$i] = $tg_daemons[$i]->LocalFile ($iorbases[$i]);
- }
-}
-
-sub kill_node_daemon {
- for ($i = 0; $i < $nr_daemon; ++$i) {
- $DEAMONS[$i]->Kill (); $DEAMONS[$i]->TimedWait (1);
- }
-}
-
-sub kill_open_processes {
- if ($daemons_running == 1) {
- kill_node_daemon ();
- }
-
- if ($em_running == 1) {
- $EM->Kill (); $EM->TimedWait (1);
- }
-
- if ($ns_running == 1) {
- $NS->Kill (); $NS->TimedWait (1);
- }
- # in case shutdown did not perform as expected
- $tg_executor->KillAll ('dance_locality_manager');
-}
-
-sub run_node_daemons {
- for ($i = 0; $i < $nr_daemon; ++$i) {
- $iorbase = $iorbases[$i];
- $iorfile = $iorfiles[$i];
- $port = $ports[$i];
- $nodename = $nodenames[$i];
- $iiop = "iiop://localhost:$port";
- $node_app = $tg_daemons[$i]->GetArchDir("$DANCE_ROOT/bin/") . "dance_locality_manager";
-
- $d_cmd = "$DANCE_ROOT/bin/dance_node_manager";
- $d_param = "-ORBEndpoint $iiop -s $node_app -n $nodename=$iorfile -t 30 --domain-nc corbaloc:rir:/NameService";
-
- print "Run dance_node_manager with $d_param\n";
-
- $DEAMONS[$i] = $tg_daemons[$i]->CreateProcess ($d_cmd, $d_param);
- $DEAMONS[$i]->Spawn ();
-
- if ($tg_daemons[$i]->WaitForFileTimed($iorbase,
- $tg_daemons[$i]->ProcessStartWaitInterval ()) == -1) {
- print STDERR
- "ERROR: The ior $iorfile file of node daemon $i could not be found\n";
- for (; $i >= 0; --$i) {
- $DEAMONS[$i]->Kill (); $DEAMONS[$i]->TimedWait (1);
- }
- return -1;
- }
- }
- return 0;
-}
-
-create_targets ();
-init_ior_files ();
-
-# Invoke naming service
-
-$NS = $tg_naming->CreateProcess ("$TAO_ROOT/bin/tao_cosnaming", " -ORBEndpoint iiop://localhost:60003 -o $ior_nsfile");
-
-$ns_status = $NS->Spawn ();
-
-if ($ns_status != 0) {
- print STDERR "ERROR: Unable to execute the naming service\n";
- kill_open_processes ();
- exit 1;
-}
-
-print STDERR "Starting Naming Service with -ORBEndpoint iiop://localhost:60003 -o ns.ior\n";
-
-if ($tg_naming->WaitForFileTimed ($ior_nsbase,
- $tg_naming->ProcessStartWaitInterval ()) == -1) {
- print STDERR "ERROR: cannot find naming service IOR file\n";
- $NS->Kill (); $NS->TimedWait (1);
- exit 1;
-}
-
-$ns_running = 1;
-
-# Set up NamingService environment
-$ENV{"NameServiceIOR"} = "corbaloc:iiop:localhost:60003/NameService";
-
-# Invoke node daemon.
-print "Invoking node daemon\n";
-$status = run_node_daemons ();
-
-if ($status != 0) {
- print STDERR "ERROR: Unable to execute the node daemon\n";
- kill_open_processes ();
- exit 1;
-}
-
-$daemons_running = 1;
-
-# Invoke execution manager.
-print "Invoking execution manager (dance_execution_manager.exe) with -e$ior_emfile\n";
-$EM = $tg_exe_man->CreateProcess ("$DANCE_ROOT/bin/dance_execution_manager",
- "-e$ior_emfile --domain-nc corbaloc:rir:/NameService");
-$em_status = $EM->Spawn ();
-
-if ($em_status != 0) {
- print STDERR "ERROR: dance_execution_manager returned $em_status";
- exit 1;
-}
-
-if ($tg_exe_man->WaitForFileTimed ($ior_embase,
- $tg_exe_man->ProcessStartWaitInterval ()) == -1) {
- print STDERR
- "ERROR: The ior file of execution manager could not be found\n";
- kill_open_processes ();
- exit 1;
-}
-
-$em_running = 1;
-
-# Invoke executor - start the application -.
-print "Invoking executor - launch the application -\n";
-
-print "Start dance_plan_launcher.exe with -x $cdp_file -k file://$ior_emfile\n";
-$E = $tg_executor->CreateProcess ("$DANCE_ROOT/bin/dance_plan_launcher",
- "-x $cdp_file -k file://$ior_emfile");
-$pl_status = $E->SpawnWaitKill (2 * $tg_executor->ProcessStartWaitInterval ());
-
-if ($pl_status != 0) {
- print STDERR "ERROR: dance_plan_launcher returned $pl_status\n";
- kill_open_processes ();
- exit 1;
-}
-
-for ($i = 0; $i < $nr_daemon; ++$i) {
- if ($tg_daemons[$i]->WaitForFileTimed ($iorbases[$i],
- $tg_daemons[$i]->ProcessStopWaitInterval ()) == -1) {
- print STDERR "ERROR: The ior file of daemon $i could not be found\n";
- kill_open_processes ();
- exit 1;
- }
-}
-
-print "Sleeping 60 seconds to allow task to complete\n";
-sleep (60);
-
-# Invoke executor - stop the application -.
-print "Invoking executor - stop the application -\n";
-print "by running dance_plan_launcher.exe with -k file://$ior_emfile -x $cdp_file\n";
-
-$E = $tg_executor->CreateProcess ("$DANCE_ROOT/bin/dance_plan_launcher",
- "-k file://$ior_emfile -x $cdp_file -s");
-$pl_status = $E->SpawnWaitKill ($tg_executor->ProcessStartWaitInterval ());
-
-if ($pl_status != 0) {
- print STDERR "ERROR: dance_plan_launcher returned $pl_status\n";
- kill_open_processes ();
- exit 1;
-}
-
-print "Executor returned.\n";
-print "Shutting down rest of the processes.\n";
-
-delete_ior_files ();
-kill_open_processes ();
-
-exit $status;
diff --git a/CIAO/connectors/dds4ccm/examples/Shapes/descriptors/2013_interop_demo/run_2.xml b/CIAO/connectors/dds4ccm/examples/Shapes/descriptors/2013_interop_demo/run_2.xml
deleted file mode 100644
index 1f5b3e83bcc..00000000000
--- a/CIAO/connectors/dds4ccm/examples/Shapes/descriptors/2013_interop_demo/run_2.xml
+++ /dev/null
@@ -1,42 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- $Id$ -->
-<dds xmlns="http://www.omg.org/dds"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.omg.org/dds dds_qos.xsd">
- <qos_profile name="square">
- <datawriter_qos>
- <reliability>
- <kind>RELIABLE_RELIABILITY_QOS</kind>
- </reliability>
- </datawriter_qos>
- <datareader_qos>
- <reliability>
- <kind>RELIABLE_RELIABILITY_QOS</kind>
- </reliability>
- </datareader_qos>
- </qos_profile>
- <qos_profile name="circle">
- <datawriter_qos>
- <reliability>
- <kind>BEST_EFFORT_RELIABILITY_QOS</kind>
- </reliability>
- </datawriter_qos>
- <datareader_qos>
- <reliability>
- <kind>BEST_EFFORT_RELIABILITY_QOS</kind>
- </reliability>
- </datareader_qos>
- </qos_profile>
- <qos_profile name="triangle">
- <datawriter_qos>
- <reliability>
- <kind>BEST_EFFORT_RELIABILITY_QOS</kind>
- </reliability>
- </datawriter_qos>
- <datareader_qos>
- <reliability>
- <kind>RELIABLE_RELIABILITY_QOS</kind>
- </reliability>
- </datareader_qos>
- </qos_profile>
-</dds>
diff --git a/CIAO/connectors/dds4ccm/examples/Shapes/descriptors/2013_interop_demo/run_3.cdp b/CIAO/connectors/dds4ccm/examples/Shapes/descriptors/2013_interop_demo/run_3.cdp
deleted file mode 100644
index 07bd06f248d..00000000000
--- a/CIAO/connectors/dds4ccm/examples/Shapes/descriptors/2013_interop_demo/run_3.cdp
+++ /dev/null
@@ -1,1123 +0,0 @@
-<!-- $Id$ -->
-<Deployment:DeploymentPlan
- xmlns:Deployment="http://www.omg.org/Deployment"
- xmlns:xmi="http://www.omg.org/XMI"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd">
- <label>Shapes_Depl_1</label>
- <UUID>Shapes_Depl_1</UUID>
-
- <implementation xmi:id="ReceiverComponentImplementation">
- <name>ReceiverComponentImplementation</name>
- <source/>
- <artifact xmi:idref="Receiver_ExecArtifact" />
- <artifact xmi:idref="Receiver_SvntArtifact" />
- <execParameter>
- <!-- entrypoint as exec parameter (see 10.6.1) -->
- <name>component factory</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>create_Shapes_Receiver_Impl</string>
- </value>
- </value>
- </execParameter>
- <execParameter>
- <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>create_Shapes_Receiver_Servant</string>
- </value>
- </value>
- </execParameter>
- <execParameter>
- <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>Receiver_svnt</string>
- </value>
- </value>
- </execParameter>
- <execParameter>
- <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>Receiver_exec</string>
- </value>
- </value>
- </execParameter>
- </implementation>
-
- <implementation xmi:id="Shapes_ConnectorComponentImplementation">
- <name>Shapes_ConnectorComponentImplementation</name>
- <source/>
- <artifact xmi:idref="Shapes_Connector_ExecArtifact" />
- <artifact xmi:idref="Shapes_Connector_SvntArtifact" />
- <execParameter>
- <!-- entrypoint as exec parameter (see 10.6.1) -->
- <name>component factory</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>create_Shapes_DDS_Event_Impl</string>
- </value>
- </value>
- </execParameter>
- <execParameter>
- <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>create_Shapes_DDS_Event_Servant</string>
- </value>
- </value>
- </execParameter>
- <execParameter>
- <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>Shapes_Connector_svnt</string>
- </value>
- </value>
- </execParameter>
- <execParameter>
- <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>Shapes_Connector_exec</string>
- </value>
- </value>
- </execParameter>
- </implementation>
- <implementation xmi:id="SenderComponentImplementation">
- <name>SenderComponentImplementation</name>
- <source/>
- <artifact xmi:idref="Sender_ExecArtifact" />
- <artifact xmi:idref="Sender_SvntArtifact" />
- <execParameter>
- <!-- entrypoint as exec parameter (see 10.6.1) -->
- <name>component factory</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>create_Shapes_Sender_Impl</string>
- </value>
- </value>
- </execParameter>
- <execParameter>
- <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>create_Shapes_Sender_Servant</string>
- </value>
- </value>
- </execParameter>
- <execParameter>
- <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>Sender_svnt</string>
- </value>
- </value>
- </execParameter>
- <execParameter>
- <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>Sender_exec</string>
- </value>
- </value>
- </execParameter>
- </implementation>
-
- <instance xmi:id="SquareReceiverComponentInstance">
- <name>SquareReceiverComponent</name>
- <node>ReceiverNode</node>
- <!-- hostname -->
- <source/>
- <implementation xmi:idref="ReceiverComponentImplementation" />
- <configProperty>
- <name>rate</name>
- <value>
- <type>
- <kind>tk_ulong</kind>
- </type>
- <value>
- <ulong>1</ulong>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>get_data</name>
- <value>
- <type>
- <kind>tk_boolean</kind>
- </type>
- <value>
- <boolean>false</boolean>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>read_data</name>
- <value>
- <type>
- <kind>tk_boolean</kind>
- </type>
- <value>
- <boolean>false</boolean>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>raw_listen</name>
- <value>
- <type>
- <kind>tk_boolean</kind>
- </type>
- <value>
- <boolean>true</boolean>
- </value>
- </value>
- </configProperty>
- </instance>
- <instance xmi:id="CircleReceiverComponentInstance">
- <name>CircleReceiverComponent</name>
- <node>ReceiverNode</node>
- <!-- hostname -->
- <source/>
- <implementation xmi:idref="ReceiverComponentImplementation" />
- <configProperty>
- <name>rate</name>
- <value>
- <type>
- <kind>tk_ulong</kind>
- </type>
- <value>
- <ulong>1</ulong>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>get_data</name>
- <value>
- <type>
- <kind>tk_boolean</kind>
- </type>
- <value>
- <boolean>false</boolean>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>read_data</name>
- <value>
- <type>
- <kind>tk_boolean</kind>
- </type>
- <value>
- <boolean>false</boolean>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>raw_listen</name>
- <value>
- <type>
- <kind>tk_boolean</kind>
- </type>
- <value>
- <boolean>true</boolean>
- </value>
- </value>
- </configProperty>
- </instance>
- <instance xmi:id="TriangleReceiverComponentInstance">
- <name>TriangleReceiverComponent</name>
- <node>ReceiverNode</node>
- <!-- hostname -->
- <source/>
- <implementation xmi:idref="ReceiverComponentImplementation" />
- <configProperty>
- <name>rate</name>
- <value>
- <type>
- <kind>tk_ulong</kind>
- </type>
- <value>
- <ulong>1</ulong>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>get_data</name>
- <value>
- <type>
- <kind>tk_boolean</kind>
- </type>
- <value>
- <boolean>false</boolean>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>read_data</name>
- <value>
- <type>
- <kind>tk_boolean</kind>
- </type>
- <value>
- <boolean>false</boolean>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>raw_listen</name>
- <value>
- <type>
- <kind>tk_boolean</kind>
- </type>
- <value>
- <boolean>true</boolean>
- </value>
- </value>
- </configProperty>
- </instance>
-
- <instance xmi:id="SquareShapes_ConnectorComponentInstance">
- <name>SquareShapes_ConnectorComponent</name>
- <node>SenderNode</node>
- <!-- hostname -->
- <source/>
- <implementation xmi:idref="Shapes_ConnectorComponentImplementation" />
- <configProperty>
- <name>qos_profile</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>run_3#square</string>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>topic_name</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>Square</string>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>type_name</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>ShapeType</string>
- </value>
- </value>
- </configProperty>
- </instance>
- <instance xmi:id="CircleShapes_ConnectorComponentInstance">
- <name>CircleShapes_ConnectorComponent</name>
- <node>SenderNode</node>
- <!-- hostname -->
- <source/>
- <implementation xmi:idref="Shapes_ConnectorComponentImplementation" />
- <configProperty>
- <name>qos_profile</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>run_3#circle</string>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>topic_name</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>Circle</string>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>type_name</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>ShapeType</string>
- </value>
- </value>
- </configProperty>
- </instance>
- <instance xmi:id="TriangleShapes_ConnectorComponentInstance">
- <name>TriangleShapes_ConnectorComponent</name>
- <node>SenderNode</node>
- <!-- hostname -->
- <source/>
- <implementation xmi:idref="Shapes_ConnectorComponentImplementation" />
- <configProperty>
- <name>qos_profile</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>run_3#triangle</string>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>topic_name</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>Triangle</string>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>type_name</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>ShapeType</string>
- </value>
- </value>
- </configProperty>
- </instance>
- <instance xmi:id="SquareShapes_ConnectorComponentInstance2">
- <name>SquareShapes_ConnectorComponent2</name>
- <node>ReceiverNode</node>
- <!-- hostname -->
- <source/>
- <implementation xmi:idref="Shapes_ConnectorComponentImplementation" />
- <configProperty>
- <name>qos_profile</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>run_3#square</string>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>topic_name</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>Square</string>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>type_name</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>ShapeType</string>
- </value>
- </value>
- </configProperty>
- </instance>
- <instance xmi:id="CircleShapes_ConnectorComponentInstance2">
- <name>CircleShapes_ConnectorComponent2</name>
- <node>ReceiverNode</node>
- <!-- hostname -->
- <source/>
- <implementation xmi:idref="Shapes_ConnectorComponentImplementation" />
- <configProperty>
- <name>qos_profile</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>run_3#circle</string>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>topic_name</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>Circle</string>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>type_name</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>ShapeType</string>
- </value>
- </value>
- </configProperty>
- </instance>
- <instance xmi:id="TriangleShapes_ConnectorComponentInstance2">
- <name>TriangleShapes_ConnectorComponent2</name>
- <node>ReceiverNode</node>
- <!-- hostname -->
- <source/>
- <implementation xmi:idref="Shapes_ConnectorComponentImplementation" />
- <configProperty>
- <name>qos_profile</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>run_3#triangle</string>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>topic_name</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>Triangle</string>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>type_name</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>ShapeType</string>
- </value>
- </value>
- </configProperty>
- </instance>
- <instance xmi:id="SquareSenderComponentInstance">
- <name>SquareSenderComponent</name>
- <node>SenderNode</node>
- <!-- hostname -->
- <source/>
- <implementation xmi:idref="SenderComponentImplementation" />
- <configProperty>
- <name>color</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>ORANGE</string>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>rate</name>
- <value>
- <type>
- <kind>tk_ulong</kind>
- </type>
- <value>
- <ulong>10</ulong>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>max_x</name>
- <value>
- <type>
- <kind>tk_ushort</kind>
- </type>
- <value>
- <ushort>225</ushort>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>max_y</name>
- <value>
- <type>
- <kind>tk_ushort</kind>
- </type>
- <value>
- <ushort>250</ushort>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>max_size</name>
- <value>
- <type>
- <kind>tk_ushort</kind>
- </type>
- <value>
- <ushort>50</ushort>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>resize_shape</name>
- <value>
- <type>
- <kind>tk_boolean</kind>
- </type>
- <value>
- <boolean>false</boolean>
- </value>
- </value>
- </configProperty>
- </instance>
- <instance xmi:id="CircleSenderComponentInstance">
- <name>CircleSenderComponent</name>
- <node>SenderNode</node>
- <!-- hostname -->
- <source/>
- <implementation xmi:idref="SenderComponentImplementation" />
- <configProperty>
- <name>color</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>ORANGE</string>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>rate</name>
- <value>
- <type>
- <kind>tk_ulong</kind>
- </type>
- <value>
- <ulong>10</ulong>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>max_x</name>
- <value>
- <type>
- <kind>tk_ushort</kind>
- </type>
- <value>
- <ushort>225</ushort>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>max_y</name>
- <value>
- <type>
- <kind>tk_ushort</kind>
- </type>
- <value>
- <ushort>250</ushort>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>max_size</name>
- <value>
- <type>
- <kind>tk_ushort</kind>
- </type>
- <value>
- <ushort>50</ushort>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>resize_shape</name>
- <value>
- <type>
- <kind>tk_boolean</kind>
- </type>
- <value>
- <boolean>false</boolean>
- </value>
- </value>
- </configProperty>
- </instance>
- <instance xmi:id="TriangleSenderComponentInstance">
- <name>TriangleSenderComponent</name>
- <node>SenderNode</node>
- <!-- hostname -->
- <source/>
- <implementation xmi:idref="SenderComponentImplementation" />
- <configProperty>
- <name>color</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>ORANGE</string>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>rate</name>
- <value>
- <type>
- <kind>tk_ulong</kind>
- </type>
- <value>
- <ulong>10</ulong>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>max_x</name>
- <value>
- <type>
- <kind>tk_ushort</kind>
- </type>
- <value>
- <ushort>225</ushort>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>max_y</name>
- <value>
- <type>
- <kind>tk_ushort</kind>
- </type>
- <value>
- <ushort>250</ushort>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>max_size</name>
- <value>
- <type>
- <kind>tk_ushort</kind>
- </type>
- <value>
- <ushort>50</ushort>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>resize_shape</name>
- <value>
- <type>
- <kind>tk_boolean</kind>
- </type>
- <value>
- <boolean>false</boolean>
- </value>
- </value>
- </configProperty>
- </instance>
-
- <connection>
- <name>square_info_out_data</name>
- <deployRequirement>
- <name>edu.dre.vanderbilt.DAnCE.ConnectionType</name>
- <resourceType>Local_Interface</resourceType>
- </deployRequirement>
- <internalEndpoint>
- <portName>info_out_data</portName>
- <provider>false</provider>
- <kind>SimplexReceptacle</kind>
- <instance xmi:idref="SquareReceiverComponentInstance" />
- </internalEndpoint>
- <internalEndpoint>
- <portName>push_consumer_data</portName>
- <provider>true</provider>
- <kind>Facet</kind>
- <instance xmi:idref="SquareShapes_ConnectorComponentInstance2" />
- </internalEndpoint>
- </connection>
- <connection>
- <name>square_listenercontrol</name>
- <deployRequirement>
- <name>edu.dre.vanderbilt.DAnCE.ConnectionType</name>
- <resourceType>Local_Interface</resourceType>
- </deployRequirement>
- <internalEndpoint>
- <portName>info_out_data_control</portName>
- <provider>false</provider>
- <kind>SimplexReceptacle</kind>
- <instance xmi:idref="SquareReceiverComponentInstance" />
- </internalEndpoint>
- <internalEndpoint>
- <portName>push_consumer_data_control</portName>
- <provider>true</provider>
- <kind>Facet</kind>
- <instance xmi:idref="SquareShapes_ConnectorComponentInstance2" />
- </internalEndpoint>
- </connection>
- <connection>
- <name>square_portstatuslistener</name>
- <deployRequirement>
- <name>edu.dre.vanderbilt.DAnCE.ConnectionType</name>
- <resourceType>Local_Interface</resourceType>
- </deployRequirement>
- <internalEndpoint>
- <portName>info_out_status</portName>
- <provider>true</provider>
- <kind>Facet</kind>
- <instance xmi:idref="SquareReceiverComponentInstance" />
- </internalEndpoint>
- <internalEndpoint>
- <portName>push_consumer_status</portName>
- <provider>false</provider>
- <kind>SimplexReceptacle</kind>
- <instance xmi:idref="SquareShapes_ConnectorComponentInstance2" />
- </internalEndpoint>
- </connection>
- <connection>
- <name>square_listener</name>
- <deployRequirement>
- <name>edu.dre.vanderbilt.DAnCE.ConnectionType</name>
- <resourceType>Local_Interface</resourceType>
- </deployRequirement>
- <internalEndpoint>
- <portName>info_out_data_listener</portName>
- <provider>true</provider>
- <kind>Facet</kind>
- <instance xmi:idref="SquareReceiverComponentInstance" />
- </internalEndpoint>
- <internalEndpoint>
- <portName>push_consumer_data_listener</portName>
- <provider>false</provider>
- <kind>SimplexReceptacle</kind>
- <instance xmi:idref="SquareShapes_ConnectorComponentInstance2" />
- </internalEndpoint>
- </connection>
-
- <connection>
- <name>circle_info_out_data</name>
- <deployRequirement>
- <name>edu.dre.vanderbilt.DAnCE.ConnectionType</name>
- <resourceType>Local_Interface</resourceType>
- </deployRequirement>
- <internalEndpoint>
- <portName>info_out_data</portName>
- <provider>false</provider>
- <kind>SimplexReceptacle</kind>
- <instance xmi:idref="CircleReceiverComponentInstance" />
- </internalEndpoint>
- <internalEndpoint>
- <portName>push_consumer_data</portName>
- <provider>true</provider>
- <kind>Facet</kind>
- <instance xmi:idref="CircleShapes_ConnectorComponentInstance2" />
- </internalEndpoint>
- </connection>
- <connection>
- <name>circle_listenercontrol</name>
- <deployRequirement>
- <name>edu.dre.vanderbilt.DAnCE.ConnectionType</name>
- <resourceType>Local_Interface</resourceType>
- </deployRequirement>
- <internalEndpoint>
- <portName>info_out_data_control</portName>
- <provider>false</provider>
- <kind>SimplexReceptacle</kind>
- <instance xmi:idref="CircleReceiverComponentInstance" />
- </internalEndpoint>
- <internalEndpoint>
- <portName>push_consumer_data_control</portName>
- <provider>true</provider>
- <kind>Facet</kind>
- <instance xmi:idref="CircleShapes_ConnectorComponentInstance2" />
- </internalEndpoint>
- </connection>
- <connection>
- <name>circle_portstatuslistener</name>
- <deployRequirement>
- <name>edu.dre.vanderbilt.DAnCE.ConnectionType</name>
- <resourceType>Local_Interface</resourceType>
- </deployRequirement>
- <internalEndpoint>
- <portName>info_out_status</portName>
- <provider>true</provider>
- <kind>Facet</kind>
- <instance xmi:idref="CircleReceiverComponentInstance" />
- </internalEndpoint>
- <internalEndpoint>
- <portName>push_consumer_status</portName>
- <provider>false</provider>
- <kind>SimplexReceptacle</kind>
- <instance xmi:idref="CircleShapes_ConnectorComponentInstance2" />
- </internalEndpoint>
- </connection>
- <connection>
- <name>circle_listener</name>
- <deployRequirement>
- <name>edu.dre.vanderbilt.DAnCE.ConnectionType</name>
- <resourceType>Local_Interface</resourceType>
- </deployRequirement>
- <internalEndpoint>
- <portName>info_out_data_listener</portName>
- <provider>true</provider>
- <kind>Facet</kind>
- <instance xmi:idref="CircleReceiverComponentInstance" />
- </internalEndpoint>
- <internalEndpoint>
- <portName>push_consumer_data_listener</portName>
- <provider>false</provider>
- <kind>SimplexReceptacle</kind>
- <instance xmi:idref="CircleShapes_ConnectorComponentInstance2" />
- </internalEndpoint>
- </connection>
-
- <connection>
- <name>triangle_info_out_data</name>
- <deployRequirement>
- <name>edu.dre.vanderbilt.DAnCE.ConnectionType</name>
- <resourceType>Local_Interface</resourceType>
- </deployRequirement>
- <internalEndpoint>
- <portName>info_out_data</portName>
- <provider>false</provider>
- <kind>SimplexReceptacle</kind>
- <instance xmi:idref="TriangleReceiverComponentInstance" />
- </internalEndpoint>
- <internalEndpoint>
- <portName>push_consumer_data</portName>
- <provider>true</provider>
- <kind>Facet</kind>
- <instance xmi:idref="TriangleShapes_ConnectorComponentInstance2" />
- </internalEndpoint>
- </connection>
- <connection>
- <name>triangle_listenercontrol</name>
- <deployRequirement>
- <name>edu.dre.vanderbilt.DAnCE.ConnectionType</name>
- <resourceType>Local_Interface</resourceType>
- </deployRequirement>
- <internalEndpoint>
- <portName>info_out_data_control</portName>
- <provider>false</provider>
- <kind>SimplexReceptacle</kind>
- <instance xmi:idref="TriangleReceiverComponentInstance" />
- </internalEndpoint>
- <internalEndpoint>
- <portName>push_consumer_data_control</portName>
- <provider>true</provider>
- <kind>Facet</kind>
- <instance xmi:idref="TriangleShapes_ConnectorComponentInstance2" />
- </internalEndpoint>
- </connection>
- <connection>
- <name>triangle_portstatuslistener</name>
- <deployRequirement>
- <name>edu.dre.vanderbilt.DAnCE.ConnectionType</name>
- <resourceType>Local_Interface</resourceType>
- </deployRequirement>
- <internalEndpoint>
- <portName>info_out_status</portName>
- <provider>true</provider>
- <kind>Facet</kind>
- <instance xmi:idref="TriangleReceiverComponentInstance" />
- </internalEndpoint>
- <internalEndpoint>
- <portName>push_consumer_status</portName>
- <provider>false</provider>
- <kind>SimplexReceptacle</kind>
- <instance xmi:idref="TriangleShapes_ConnectorComponentInstance2" />
- </internalEndpoint>
- </connection>
- <connection>
- <name>triangle_listener</name>
- <deployRequirement>
- <name>edu.dre.vanderbilt.DAnCE.ConnectionType</name>
- <resourceType>Local_Interface</resourceType>
- </deployRequirement>
- <internalEndpoint>
- <portName>info_out_data_listener</portName>
- <provider>true</provider>
- <kind>Facet</kind>
- <instance xmi:idref="TriangleReceiverComponentInstance" />
- </internalEndpoint>
- <internalEndpoint>
- <portName>push_consumer_data_listener</portName>
- <provider>false</provider>
- <kind>SimplexReceptacle</kind>
- <instance xmi:idref="TriangleShapes_ConnectorComponentInstance2" />
- </internalEndpoint>
- </connection>
-
- <connection>
- <name>square_writer_connection</name>
- <deployRequirement>
- <name>edu.dre.vanderbilt.DAnCE.ConnectionType</name>
- <resourceType>Local_Interface</resourceType>
- </deployRequirement>
- <internalEndpoint>
- <portName>info_write_data</portName>
- <provider>false</provider>
- <kind>SimplexReceptacle</kind>
- <instance xmi:idref="SquareSenderComponentInstance" />
- </internalEndpoint>
- <internalEndpoint>
- <portName>supplier_data</portName>
- <provider>true</provider>
- <kind>Facet</kind>
- <instance xmi:idref="SquareShapes_ConnectorComponentInstance" />
- </internalEndpoint>
- </connection>
- <connection>
- <name>circle_writer_connection</name>
- <deployRequirement>
- <name>edu.dre.vanderbilt.DAnCE.ConnectionType</name>
- <resourceType>Local_Interface</resourceType>
- </deployRequirement>
- <internalEndpoint>
- <portName>info_write_data</portName>
- <provider>false</provider>
- <kind>SimplexReceptacle</kind>
- <instance xmi:idref="CircleSenderComponentInstance" />
- </internalEndpoint>
- <internalEndpoint>
- <portName>supplier_data</portName>
- <provider>true</provider>
- <kind>Facet</kind>
- <instance xmi:idref="CircleShapes_ConnectorComponentInstance" />
- </internalEndpoint>
- </connection>
- <connection>
- <name>triangle_writer_connection</name>
- <deployRequirement>
- <name>edu.dre.vanderbilt.DAnCE.ConnectionType</name>
- <resourceType>Local_Interface</resourceType>
- </deployRequirement>
- <internalEndpoint>
- <portName>info_write_data</portName>
- <provider>false</provider>
- <kind>SimplexReceptacle</kind>
- <instance xmi:idref="TriangleSenderComponentInstance" />
- </internalEndpoint>
- <internalEndpoint>
- <portName>supplier_data</portName>
- <provider>true</provider>
- <kind>Facet</kind>
- <instance xmi:idref="TriangleShapes_ConnectorComponentInstance" />
- </internalEndpoint>
- </connection>
-
-
- <artifact xmi:id="Sender_ExecArtifact">
- <name>Sender_exec</name>
- <source/>
- <node/>
- <location>Sender_exec</location>
- </artifact>
- <artifact xmi:id="Sender_SvntArtifact">
- <name>Sender_svnt</name>
- <source/>
- <node/>
- <location>Sender_svnt</location>
- </artifact>
- <artifact xmi:id="Sender_StubArtifact">
- <name>Sender_stub</name>
- <source/>
- <node/>
- <location>Sender_stub</location>
- </artifact>
- <artifact xmi:id="Shapes_Connector_ExecArtifact">
- <name>Shapes_Connector_exec</name>
- <source/>
- <node/>
- <location>DDS_Shapes_Connector_exec</location>
- </artifact>
- <artifact xmi:id="Shapes_Connector_SvntArtifact">
- <name>Shapes_Connector_svnt</name>
- <source/>
- <node/>
- <location>DDS_Shapes_Connector_svnt</location>
- </artifact>
- <artifact xmi:id="Shapes_Connector_StubArtifact">
- <name>Shapes_Connector_stub</name>
- <source/>
- <node/>
- <location>DDS_Shapes_Connector_stub</location>
- </artifact>
- <artifact xmi:id="Receiver_ExecArtifact">
- <name>Receiver_exec</name>
- <source/>
- <node/>
- <location>Receiver_exec</location>
- </artifact>
- <artifact xmi:id="Receiver_SvntArtifact">
- <name>Receiver_svnt</name>
- <source/>
- <node/>
- <location>Receiver_svnt</location>
- </artifact>
- <artifact xmi:id="Receiver_StubArtifact">
- <name>Receiver_stub</name>
- <source/>
- <node/>
- <location>Receiver_stub</location>
- </artifact>
-</Deployment:DeploymentPlan>
diff --git a/CIAO/connectors/dds4ccm/examples/Shapes/descriptors/2013_interop_demo/run_3.pl b/CIAO/connectors/dds4ccm/examples/Shapes/descriptors/2013_interop_demo/run_3.pl
deleted file mode 100755
index 1ecb11d259a..00000000000
--- a/CIAO/connectors/dds4ccm/examples/Shapes/descriptors/2013_interop_demo/run_3.pl
+++ /dev/null
@@ -1,245 +0,0 @@
-eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
- & eval 'exec perl -S $0 $argv:q'
- if 0;
-
-# $Id$
-# -*- perl -*-
-
-use lib "$ENV{'ACE_ROOT'}/bin";
-use PerlACE::TestTarget;
-
-$CIAO_ROOT = "$ENV{'CIAO_ROOT'}";
-$TAO_ROOT = "$ENV{'TAO_ROOT'}";
-$DANCE_ROOT = "$ENV{'DANCE_ROOT'}";
-$DDS_ROOT = "$ENV{'DDS_ROOT'}";
-
-$daemons_running = 0;
-$em_running = 0;
-$ns_running = 0;
-
-$nr_daemon = 2;
-@ports = ( 60001, 60002 );
-@iorbases = ( "NodeApp1.ior", "NodeApp2.ior" );
-@iorfiles = 0;
-@nodenames = ( "SenderNode", "ReceiverNode" );
-
-# ior files other than daemon
-$ior_nsbase = "ns.ior";
-$ior_nsfile = 0;
-$ior_embase = "EM.ior";
-$ior_emfile = 0;
-
-# Processes
-$E = 0;
-$EM = 0;
-$NS = 0;
-@DEAMONS = 0;
-
-# targets
-@tg_daemons = 0;
-$tg_naming = 0;
-$tg_exe_man = 0;
-$tg_executor = 0;
-
-$status = 0;
-$cdp_file = "run_3.cdp";
-
-sub create_targets {
- # naming service
- $tg_naming = PerlACE::TestTarget::create_target (1) || die "Create target for ns failed\n";
- $tg_naming->AddLibPath ('../lib');
- # daemon
- for ($i = 0; $i < $nr_daemon; ++$i) {
- $tg_daemons[$i] = PerlACE::TestTarget::create_target ($i+1) || die "Create target for daemon $i failed\n";
- $tg_daemons[$i]->AddLibPath ('../lib');
- }
- # execution manager
- $tg_exe_man = PerlACE::TestTarget::create_target (1) || die "Create target for EM failed\n";
- $tg_exe_man->AddLibPath ('../lib');
- # executor (plan_launcher)
- $tg_executor = PerlACE::TestTarget::create_target (1) || die "Create target for executor failed\n";
- $tg_executor->AddLibPath ('../lib');
-}
-
-sub init_ior_files {
- $ior_nsfile = $tg_naming->LocalFile ($ior_nsbase);
- $ior_emfile = $tg_exe_man->LocalFile ($ior_embase);
- for ($i = 0; $i < $nr_daemon; ++$i) {
- $iorfiles[$i] = $tg_daemons[$i]->LocalFile ($iorbases[$i]);
- }
- delete_ior_files ();
-}
-
-# Delete if there are any .ior files.
-sub delete_ior_files {
- for ($i = 0; $i < $nr_daemon; ++$i) {
- $tg_daemons[$i]->DeleteFile ($iorbases[$i]);
- }
- $tg_naming->DeleteFile ($ior_nsbase);
- $tg_exe_man->DeleteFile ($ior_embase);
- for ($i = 0; $i < $nr_daemon; ++$i) {
- $iorfiles[$i] = $tg_daemons[$i]->LocalFile ($iorbases[$i]);
- }
-}
-
-sub kill_node_daemon {
- for ($i = 0; $i < $nr_daemon; ++$i) {
- $DEAMONS[$i]->Kill (); $DEAMONS[$i]->TimedWait (1);
- }
-}
-
-sub kill_open_processes {
- if ($daemons_running == 1) {
- kill_node_daemon ();
- }
-
- if ($em_running == 1) {
- $EM->Kill (); $EM->TimedWait (1);
- }
-
- if ($ns_running == 1) {
- $NS->Kill (); $NS->TimedWait (1);
- }
- # in case shutdown did not perform as expected
- $tg_executor->KillAll ('dance_locality_manager');
-}
-
-sub run_node_daemons {
- for ($i = 0; $i < $nr_daemon; ++$i) {
- $iorbase = $iorbases[$i];
- $iorfile = $iorfiles[$i];
- $port = $ports[$i];
- $nodename = $nodenames[$i];
- $iiop = "iiop://localhost:$port";
- $node_app = $tg_daemons[$i]->GetArchDir("$DANCE_ROOT/bin/") . "dance_locality_manager";
-
- $d_cmd = "$DANCE_ROOT/bin/dance_node_manager";
- $d_param = "-ORBEndpoint $iiop -s $node_app -n $nodename=$iorfile -t 30 --domain-nc corbaloc:rir:/NameService";
-
- print "Run dance_node_manager with $d_param\n";
-
- $DEAMONS[$i] = $tg_daemons[$i]->CreateProcess ($d_cmd, $d_param);
- $DEAMONS[$i]->Spawn ();
-
- if ($tg_daemons[$i]->WaitForFileTimed($iorbase,
- $tg_daemons[$i]->ProcessStartWaitInterval ()) == -1) {
- print STDERR
- "ERROR: The ior $iorfile file of node daemon $i could not be found\n";
- for (; $i >= 0; --$i) {
- $DEAMONS[$i]->Kill (); $DEAMONS[$i]->TimedWait (1);
- }
- return -1;
- }
- }
- return 0;
-}
-
-create_targets ();
-init_ior_files ();
-
-# Invoke naming service
-
-$NS = $tg_naming->CreateProcess ("$TAO_ROOT/bin/tao_cosnaming", " -ORBEndpoint iiop://localhost:60003 -o $ior_nsfile");
-
-$ns_status = $NS->Spawn ();
-
-if ($ns_status != 0) {
- print STDERR "ERROR: Unable to execute the naming service\n";
- kill_open_processes ();
- exit 1;
-}
-
-print STDERR "Starting Naming Service with -ORBEndpoint iiop://localhost:60003 -o ns.ior\n";
-
-if ($tg_naming->WaitForFileTimed ($ior_nsbase,
- $tg_naming->ProcessStartWaitInterval ()) == -1) {
- print STDERR "ERROR: cannot find naming service IOR file\n";
- $NS->Kill (); $NS->TimedWait (1);
- exit 1;
-}
-
-$ns_running = 1;
-
-# Set up NamingService environment
-$ENV{"NameServiceIOR"} = "corbaloc:iiop:localhost:60003/NameService";
-
-# Invoke node daemon.
-print "Invoking node daemon\n";
-$status = run_node_daemons ();
-
-if ($status != 0) {
- print STDERR "ERROR: Unable to execute the node daemon\n";
- kill_open_processes ();
- exit 1;
-}
-
-$daemons_running = 1;
-
-# Invoke execution manager.
-print "Invoking execution manager (dance_execution_manager.exe) with -e$ior_emfile\n";
-$EM = $tg_exe_man->CreateProcess ("$DANCE_ROOT/bin/dance_execution_manager",
- "-e$ior_emfile --domain-nc corbaloc:rir:/NameService");
-$em_status = $EM->Spawn ();
-
-if ($em_status != 0) {
- print STDERR "ERROR: dance_execution_manager returned $em_status";
- exit 1;
-}
-
-if ($tg_exe_man->WaitForFileTimed ($ior_embase,
- $tg_exe_man->ProcessStartWaitInterval ()) == -1) {
- print STDERR
- "ERROR: The ior file of execution manager could not be found\n";
- kill_open_processes ();
- exit 1;
-}
-
-$em_running = 1;
-
-# Invoke executor - start the application -.
-print "Invoking executor - launch the application -\n";
-
-print "Start dance_plan_launcher.exe with -x $cdp_file -k file://$ior_emfile\n";
-$E = $tg_executor->CreateProcess ("$DANCE_ROOT/bin/dance_plan_launcher",
- "-x $cdp_file -k file://$ior_emfile");
-$pl_status = $E->SpawnWaitKill (2 * $tg_executor->ProcessStartWaitInterval ());
-
-if ($pl_status != 0) {
- print STDERR "ERROR: dance_plan_launcher returned $pl_status\n";
- kill_open_processes ();
- exit 1;
-}
-
-for ($i = 0; $i < $nr_daemon; ++$i) {
- if ($tg_daemons[$i]->WaitForFileTimed ($iorbases[$i],
- $tg_daemons[$i]->ProcessStopWaitInterval ()) == -1) {
- print STDERR "ERROR: The ior file of daemon $i could not be found\n";
- kill_open_processes ();
- exit 1;
- }
-}
-
-print "Sleeping 60 seconds to allow task to complete\n";
-sleep (60);
-
-# Invoke executor - stop the application -.
-print "Invoking executor - stop the application -\n";
-print "by running dance_plan_launcher.exe with -k file://$ior_emfile -x $cdp_file\n";
-
-$E = $tg_executor->CreateProcess ("$DANCE_ROOT/bin/dance_plan_launcher",
- "-k file://$ior_emfile -x $cdp_file -s");
-$pl_status = $E->SpawnWaitKill ($tg_executor->ProcessStartWaitInterval ());
-
-if ($pl_status != 0) {
- print STDERR "ERROR: dance_plan_launcher returned $pl_status\n";
- kill_open_processes ();
- exit 1;
-}
-
-print "Executor returned.\n";
-print "Shutting down rest of the processes.\n";
-
-delete_ior_files ();
-kill_open_processes ();
-
-exit $status;
diff --git a/CIAO/connectors/dds4ccm/examples/Shapes/descriptors/2013_interop_demo/run_3.xml b/CIAO/connectors/dds4ccm/examples/Shapes/descriptors/2013_interop_demo/run_3.xml
deleted file mode 100644
index 18957feeaa7..00000000000
--- a/CIAO/connectors/dds4ccm/examples/Shapes/descriptors/2013_interop_demo/run_3.xml
+++ /dev/null
@@ -1,42 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- $Id$ -->
-<dds xmlns="http://www.omg.org/dds"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.omg.org/dds dds_qos.xsd">
- <qos_profile name="square">
- <datawriter_qos>
- <ownership>
- <kind>SHARED_OWNERSHIP_QOS</kind>
- </ownership>
- </datawriter_qos>
- <datareader_qos>
- <ownership>
- <kind>SHARED_OWNERSHIP_QOS</kind>
- </ownership>
- </datareader_qos>
- </qos_profile>
- <qos_profile name="circle">
- <datawriter_qos>
- <ownership>
- <kind>EXCLUSIVE_OWNERSHIP_QOS</kind>
- </ownership>
- </datawriter_qos>
- <datareader_qos>
- <ownership>
- <kind>EXCLUSIVE_OWNERSHIP_QOS</kind>
- </ownership>
- </datareader_qos>
- </qos_profile>
- <qos_profile name="triangle">
- <datawriter_qos>
- <ownership>
- <kind>EXCLUSIVE_OWNERSHIP_QOS</kind>
- </ownership>
- </datawriter_qos>
- <datareader_qos>
- <ownership>
- <kind>SHARED_OWNERSHIP_QOS</kind>
- </ownership>
- </datareader_qos>
- </qos_profile>
-</dds>
diff --git a/CIAO/connectors/dds4ccm/examples/Shapes/descriptors/2013_interop_demo/run_4.cdp b/CIAO/connectors/dds4ccm/examples/Shapes/descriptors/2013_interop_demo/run_4.cdp
deleted file mode 100644
index cf03725a8be..00000000000
--- a/CIAO/connectors/dds4ccm/examples/Shapes/descriptors/2013_interop_demo/run_4.cdp
+++ /dev/null
@@ -1,520 +0,0 @@
-<!-- $Id$ -->
-<Deployment:DeploymentPlan
- xmlns:Deployment="http://www.omg.org/Deployment"
- xmlns:xmi="http://www.omg.org/XMI"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd">
- <label>Shapes_Depl_1</label>
- <UUID>Shapes_Depl_1</UUID>
-
- <implementation xmi:id="ReceiverComponentImplementation">
- <name>ReceiverComponentImplementation</name>
- <source/>
- <artifact xmi:idref="Receiver_ExecArtifact" />
- <artifact xmi:idref="Receiver_SvntArtifact" />
- <execParameter>
- <!-- entrypoint as exec parameter (see 10.6.1) -->
- <name>component factory</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>create_Shapes_Receiver_Impl</string>
- </value>
- </value>
- </execParameter>
- <execParameter>
- <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>create_Shapes_Receiver_Servant</string>
- </value>
- </value>
- </execParameter>
- <execParameter>
- <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>Receiver_svnt</string>
- </value>
- </value>
- </execParameter>
- <execParameter>
- <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>Receiver_exec</string>
- </value>
- </value>
- </execParameter>
- </implementation>
-
- <implementation xmi:id="Shapes_ConnectorComponentImplementation">
- <name>Shapes_ConnectorComponentImplementation</name>
- <source/>
- <artifact xmi:idref="Shapes_Connector_ExecArtifact" />
- <artifact xmi:idref="Shapes_Connector_SvntArtifact" />
- <execParameter>
- <!-- entrypoint as exec parameter (see 10.6.1) -->
- <name>component factory</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>create_Shapes_DDS_Event_Impl</string>
- </value>
- </value>
- </execParameter>
- <execParameter>
- <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>create_Shapes_DDS_Event_Servant</string>
- </value>
- </value>
- </execParameter>
- <execParameter>
- <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>Shapes_Connector_svnt</string>
- </value>
- </value>
- </execParameter>
- <execParameter>
- <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>Shapes_Connector_exec</string>
- </value>
- </value>
- </execParameter>
- </implementation>
- <implementation xmi:id="SenderComponentImplementation">
- <name>SenderComponentImplementation</name>
- <source/>
- <artifact xmi:idref="Sender_ExecArtifact" />
- <artifact xmi:idref="Sender_SvntArtifact" />
- <execParameter>
- <!-- entrypoint as exec parameter (see 10.6.1) -->
- <name>component factory</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>create_Shapes_Sender_Impl</string>
- </value>
- </value>
- </execParameter>
- <execParameter>
- <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>create_Shapes_Sender_Servant</string>
- </value>
- </value>
- </execParameter>
- <execParameter>
- <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>Sender_svnt</string>
- </value>
- </value>
- </execParameter>
- <execParameter>
- <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>Sender_exec</string>
- </value>
- </value>
- </execParameter>
- </implementation>
- <instance xmi:id="ReceiverComponentInstance">
- <name>ReceiverComponent</name>
- <node>ReceiverNode</node>
- <!-- hostname -->
- <source/>
- <implementation xmi:idref="ReceiverComponentImplementation" />
- <configProperty>
- <name>rate</name>
- <value>
- <type>
- <kind>tk_ulong</kind>
- </type>
- <value>
- <ulong>1</ulong>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>get_data</name>
- <value>
- <type>
- <kind>tk_boolean</kind>
- </type>
- <value>
- <boolean>false</boolean>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>read_data</name>
- <value>
- <type>
- <kind>tk_boolean</kind>
- </type>
- <value>
- <boolean>false</boolean>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>raw_listen</name>
- <value>
- <type>
- <kind>tk_boolean</kind>
- </type>
- <value>
- <boolean>true</boolean>
- </value>
- </value>
- </configProperty>
- </instance>
- <instance xmi:id="Shapes_ConnectorComponentInstance">
- <name>Shapes_ConnectorComponent</name>
- <node>SenderNode</node>
- <!-- hostname -->
- <source/>
- <implementation xmi:idref="Shapes_ConnectorComponentImplementation" />
- <configProperty>
- <name>qos_profile</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>run_4#square</string>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>topic_name</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>Square</string>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>type_name</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>ShapeType</string>
- </value>
- </value>
- </configProperty>
- </instance>
- <instance xmi:id="Shapes_ConnectorComponentInstance2">
- <name>Shapes_ConnectorComponent2</name>
- <node>ReceiverNode</node>
- <!-- hostname -->
- <source/>
- <implementation xmi:idref="Shapes_ConnectorComponentImplementation" />
- <configProperty>
- <name>qos_profile</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>run_4#square</string>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>topic_name</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>Square</string>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>type_name</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>ShapeType</string>
- </value>
- </value>
- </configProperty>
- </instance>
- <instance xmi:id="SenderComponentInstance">
- <name>SenderComponent</name>
- <node>SenderNode</node>
- <!-- hostname -->
- <source/>
- <implementation xmi:idref="SenderComponentImplementation" />
- <configProperty>
- <name>color</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>CYAN</string>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>rate</name>
- <value>
- <type>
- <kind>tk_ulong</kind>
- </type>
- <value>
- <ulong>10</ulong>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>max_x</name>
- <value>
- <type>
- <kind>tk_ushort</kind>
- </type>
- <value>
- <ushort>225</ushort>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>max_y</name>
- <value>
- <type>
- <kind>tk_ushort</kind>
- </type>
- <value>
- <ushort>250</ushort>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>max_size</name>
- <value>
- <type>
- <kind>tk_ushort</kind>
- </type>
- <value>
- <ushort>50</ushort>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>resize_shape</name>
- <value>
- <type>
- <kind>tk_boolean</kind>
- </type>
- <value>
- <boolean>true</boolean>
- </value>
- </value>
- </configProperty>
- </instance>
-
- <connection>
- <name>info_out_data</name>
- <deployRequirement>
- <name>edu.dre.vanderbilt.DAnCE.ConnectionType</name>
- <resourceType>Local_Interface</resourceType>
- </deployRequirement>
- <internalEndpoint>
- <portName>info_out_data</portName>
- <provider>false</provider>
- <kind>SimplexReceptacle</kind>
- <instance xmi:idref="ReceiverComponentInstance" />
- </internalEndpoint>
- <internalEndpoint>
- <portName>push_consumer_data</portName>
- <provider>true</provider>
- <kind>Facet</kind>
- <instance xmi:idref="Shapes_ConnectorComponentInstance2" />
- </internalEndpoint>
- </connection>
- <connection>
- <name>_listenercontrol</name>
- <deployRequirement>
- <name>edu.dre.vanderbilt.DAnCE.ConnectionType</name>
- <resourceType>Local_Interface</resourceType>
- </deployRequirement>
- <internalEndpoint>
- <portName>info_out_data_control</portName>
- <provider>false</provider>
- <kind>SimplexReceptacle</kind>
- <instance xmi:idref="ReceiverComponentInstance" />
- </internalEndpoint>
- <internalEndpoint>
- <portName>push_consumer_data_control</portName>
- <provider>true</provider>
- <kind>Facet</kind>
- <instance xmi:idref="Shapes_ConnectorComponentInstance2" />
- </internalEndpoint>
- </connection>
- <connection>
- <name>_portstatuslistener</name>
- <deployRequirement>
- <name>edu.dre.vanderbilt.DAnCE.ConnectionType</name>
- <resourceType>Local_Interface</resourceType>
- </deployRequirement>
- <internalEndpoint>
- <portName>info_out_status</portName>
- <provider>true</provider>
- <kind>Facet</kind>
- <instance xmi:idref="ReceiverComponentInstance" />
- </internalEndpoint>
- <internalEndpoint>
- <portName>push_consumer_status</portName>
- <provider>false</provider>
- <kind>SimplexReceptacle</kind>
- <instance xmi:idref="Shapes_ConnectorComponentInstance2" />
- </internalEndpoint>
- </connection>
- <connection>
- <name>_listener</name>
- <deployRequirement>
- <name>edu.dre.vanderbilt.DAnCE.ConnectionType</name>
- <resourceType>Local_Interface</resourceType>
- </deployRequirement>
- <internalEndpoint>
- <portName>info_out_data_listener</portName>
- <provider>true</provider>
- <kind>Facet</kind>
- <instance xmi:idref="ReceiverComponentInstance" />
- </internalEndpoint>
- <internalEndpoint>
- <portName>push_consumer_data_listener</portName>
- <provider>false</provider>
- <kind>SimplexReceptacle</kind>
- <instance xmi:idref="Shapes_ConnectorComponentInstance2" />
- </internalEndpoint>
- </connection>
-
- <connection>
- <name>writer_connection</name>
- <deployRequirement>
- <name>edu.dre.vanderbilt.DAnCE.ConnectionType</name>
- <resourceType>Local_Interface</resourceType>
- </deployRequirement>
- <internalEndpoint>
- <portName>info_write_data</portName>
- <provider>false</provider>
- <kind>SimplexReceptacle</kind>
- <instance xmi:idref="SenderComponentInstance" />
- </internalEndpoint>
- <internalEndpoint>
- <portName>supplier_data</portName>
- <provider>true</provider>
- <kind>Facet</kind>
- <instance xmi:idref="Shapes_ConnectorComponentInstance" />
- </internalEndpoint>
- </connection>
-
- <artifact xmi:id="Sender_ExecArtifact">
- <name>Sender_exec</name>
- <source/>
- <node/>
- <location>Sender_exec</location>
- </artifact>
- <artifact xmi:id="Sender_SvntArtifact">
- <name>Sender_svnt</name>
- <source/>
- <node/>
- <location>Sender_svnt</location>
- </artifact>
- <artifact xmi:id="Sender_StubArtifact">
- <name>Sender_stub</name>
- <source/>
- <node/>
- <location>Sender_stub</location>
- </artifact>
- <artifact xmi:id="Shapes_Connector_ExecArtifact">
- <name>Shapes_Connector_exec</name>
- <source/>
- <node/>
- <location>DDS_Shapes_Connector_exec</location>
- </artifact>
- <artifact xmi:id="Shapes_Connector_SvntArtifact">
- <name>Shapes_Connector_svnt</name>
- <source/>
- <node/>
- <location>DDS_Shapes_Connector_svnt</location>
- </artifact>
- <artifact xmi:id="Shapes_Connector_StubArtifact">
- <name>Shapes_Connector_stub</name>
- <source/>
- <node/>
- <location>DDS_Shapes_Connector_stub</location>
- </artifact>
- <artifact xmi:id="Receiver_ExecArtifact">
- <name>Receiver_exec</name>
- <source/>
- <node/>
- <location>Receiver_exec</location>
- </artifact>
- <artifact xmi:id="Receiver_SvntArtifact">
- <name>Receiver_svnt</name>
- <source/>
- <node/>
- <location>Receiver_svnt</location>
- </artifact>
- <artifact xmi:id="Receiver_StubArtifact">
- <name>Receiver_stub</name>
- <source/>
- <node/>
- <location>Receiver_stub</location>
- </artifact>
-</Deployment:DeploymentPlan>
diff --git a/CIAO/connectors/dds4ccm/examples/Shapes/descriptors/2013_interop_demo/run_4.pl b/CIAO/connectors/dds4ccm/examples/Shapes/descriptors/2013_interop_demo/run_4.pl
deleted file mode 100755
index 0596f51235c..00000000000
--- a/CIAO/connectors/dds4ccm/examples/Shapes/descriptors/2013_interop_demo/run_4.pl
+++ /dev/null
@@ -1,245 +0,0 @@
-eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
- & eval 'exec perl -S $0 $argv:q'
- if 0;
-
-# $Id$
-# -*- perl -*-
-
-use lib "$ENV{'ACE_ROOT'}/bin";
-use PerlACE::TestTarget;
-
-$CIAO_ROOT = "$ENV{'CIAO_ROOT'}";
-$TAO_ROOT = "$ENV{'TAO_ROOT'}";
-$DANCE_ROOT = "$ENV{'DANCE_ROOT'}";
-$DDS_ROOT = "$ENV{'DDS_ROOT'}";
-
-$daemons_running = 0;
-$em_running = 0;
-$ns_running = 0;
-
-$nr_daemon = 2;
-@ports = ( 60001, 60002 );
-@iorbases = ( "NodeApp1.ior", "NodeApp2.ior" );
-@iorfiles = 0;
-@nodenames = ( "SenderNode", "ReceiverNode" );
-
-# ior files other than daemon
-$ior_nsbase = "ns.ior";
-$ior_nsfile = 0;
-$ior_embase = "EM.ior";
-$ior_emfile = 0;
-
-# Processes
-$E = 0;
-$EM = 0;
-$NS = 0;
-@DEAMONS = 0;
-
-# targets
-@tg_daemons = 0;
-$tg_naming = 0;
-$tg_exe_man = 0;
-$tg_executor = 0;
-
-$status = 0;
-$cdp_file = "run_4.cdp";
-
-sub create_targets {
- # naming service
- $tg_naming = PerlACE::TestTarget::create_target (1) || die "Create target for ns failed\n";
- $tg_naming->AddLibPath ('../lib');
- # daemon
- for ($i = 0; $i < $nr_daemon; ++$i) {
- $tg_daemons[$i] = PerlACE::TestTarget::create_target ($i+1) || die "Create target for daemon $i failed\n";
- $tg_daemons[$i]->AddLibPath ('../lib');
- }
- # execution manager
- $tg_exe_man = PerlACE::TestTarget::create_target (1) || die "Create target for EM failed\n";
- $tg_exe_man->AddLibPath ('../lib');
- # executor (plan_launcher)
- $tg_executor = PerlACE::TestTarget::create_target (1) || die "Create target for executor failed\n";
- $tg_executor->AddLibPath ('../lib');
-}
-
-sub init_ior_files {
- $ior_nsfile = $tg_naming->LocalFile ($ior_nsbase);
- $ior_emfile = $tg_exe_man->LocalFile ($ior_embase);
- for ($i = 0; $i < $nr_daemon; ++$i) {
- $iorfiles[$i] = $tg_daemons[$i]->LocalFile ($iorbases[$i]);
- }
- delete_ior_files ();
-}
-
-# Delete if there are any .ior files.
-sub delete_ior_files {
- for ($i = 0; $i < $nr_daemon; ++$i) {
- $tg_daemons[$i]->DeleteFile ($iorbases[$i]);
- }
- $tg_naming->DeleteFile ($ior_nsbase);
- $tg_exe_man->DeleteFile ($ior_embase);
- for ($i = 0; $i < $nr_daemon; ++$i) {
- $iorfiles[$i] = $tg_daemons[$i]->LocalFile ($iorbases[$i]);
- }
-}
-
-sub kill_node_daemon {
- for ($i = 0; $i < $nr_daemon; ++$i) {
- $DEAMONS[$i]->Kill (); $DEAMONS[$i]->TimedWait (1);
- }
-}
-
-sub kill_open_processes {
- if ($daemons_running == 1) {
- kill_node_daemon ();
- }
-
- if ($em_running == 1) {
- $EM->Kill (); $EM->TimedWait (1);
- }
-
- if ($ns_running == 1) {
- $NS->Kill (); $NS->TimedWait (1);
- }
- # in case shutdown did not perform as expected
- $tg_executor->KillAll ('dance_locality_manager');
-}
-
-sub run_node_daemons {
- for ($i = 0; $i < $nr_daemon; ++$i) {
- $iorbase = $iorbases[$i];
- $iorfile = $iorfiles[$i];
- $port = $ports[$i];
- $nodename = $nodenames[$i];
- $iiop = "iiop://localhost:$port";
- $node_app = $tg_daemons[$i]->GetArchDir("$DANCE_ROOT/bin/") . "dance_locality_manager";
-
- $d_cmd = "$DANCE_ROOT/bin/dance_node_manager";
- $d_param = "-ORBEndpoint $iiop -s $node_app -n $nodename=$iorfile -t 30 --domain-nc corbaloc:rir:/NameService";
-
- print "Run dance_node_manager with $d_param\n";
-
- $DEAMONS[$i] = $tg_daemons[$i]->CreateProcess ($d_cmd, $d_param);
- $DEAMONS[$i]->Spawn ();
-
- if ($tg_daemons[$i]->WaitForFileTimed($iorbase,
- $tg_daemons[$i]->ProcessStartWaitInterval ()) == -1) {
- print STDERR
- "ERROR: The ior $iorfile file of node daemon $i could not be found\n";
- for (; $i >= 0; --$i) {
- $DEAMONS[$i]->Kill (); $DEAMONS[$i]->TimedWait (1);
- }
- return -1;
- }
- }
- return 0;
-}
-
-create_targets ();
-init_ior_files ();
-
-# Invoke naming service
-
-$NS = $tg_naming->CreateProcess ("$TAO_ROOT/bin/tao_cosnaming", " -ORBEndpoint iiop://localhost:60003 -o $ior_nsfile");
-
-$ns_status = $NS->Spawn ();
-
-if ($ns_status != 0) {
- print STDERR "ERROR: Unable to execute the naming service\n";
- kill_open_processes ();
- exit 1;
-}
-
-print STDERR "Starting Naming Service with -ORBEndpoint iiop://localhost:60003 -o ns.ior\n";
-
-if ($tg_naming->WaitForFileTimed ($ior_nsbase,
- $tg_naming->ProcessStartWaitInterval ()) == -1) {
- print STDERR "ERROR: cannot find naming service IOR file\n";
- $NS->Kill (); $NS->TimedWait (1);
- exit 1;
-}
-
-$ns_running = 1;
-
-# Set up NamingService environment
-$ENV{"NameServiceIOR"} = "corbaloc:iiop:localhost:60003/NameService";
-
-# Invoke node daemon.
-print "Invoking node daemon\n";
-$status = run_node_daemons ();
-
-if ($status != 0) {
- print STDERR "ERROR: Unable to execute the node daemon\n";
- kill_open_processes ();
- exit 1;
-}
-
-$daemons_running = 1;
-
-# Invoke execution manager.
-print "Invoking execution manager (dance_execution_manager.exe) with -e$ior_emfile\n";
-$EM = $tg_exe_man->CreateProcess ("$DANCE_ROOT/bin/dance_execution_manager",
- "-e$ior_emfile --domain-nc corbaloc:rir:/NameService");
-$em_status = $EM->Spawn ();
-
-if ($em_status != 0) {
- print STDERR "ERROR: dance_execution_manager returned $em_status";
- exit 1;
-}
-
-if ($tg_exe_man->WaitForFileTimed ($ior_embase,
- $tg_exe_man->ProcessStartWaitInterval ()) == -1) {
- print STDERR
- "ERROR: The ior file of execution manager could not be found\n";
- kill_open_processes ();
- exit 1;
-}
-
-$em_running = 1;
-
-# Invoke executor - start the application -.
-print "Invoking executor - launch the application -\n";
-
-print "Start dance_plan_launcher.exe with -x $cdp_file -k file://$ior_emfile\n";
-$E = $tg_executor->CreateProcess ("$DANCE_ROOT/bin/dance_plan_launcher",
- "-x $cdp_file -k file://$ior_emfile");
-$pl_status = $E->SpawnWaitKill (2 * $tg_executor->ProcessStartWaitInterval ());
-
-if ($pl_status != 0) {
- print STDERR "ERROR: dance_plan_launcher returned $pl_status\n";
- kill_open_processes ();
- exit 1;
-}
-
-for ($i = 0; $i < $nr_daemon; ++$i) {
- if ($tg_daemons[$i]->WaitForFileTimed ($iorbases[$i],
- $tg_daemons[$i]->ProcessStopWaitInterval ()) == -1) {
- print STDERR "ERROR: The ior file of daemon $i could not be found\n";
- kill_open_processes ();
- exit 1;
- }
-}
-
-print "Sleeping 60 seconds to allow task to complete\n";
-sleep (60);
-
-# Invoke executor - stop the application -.
-print "Invoking executor - stop the application -\n";
-print "by running dance_plan_launcher.exe with -k file://$ior_emfile -x $cdp_file\n";
-
-$E = $tg_executor->CreateProcess ("$DANCE_ROOT/bin/dance_plan_launcher",
- "-k file://$ior_emfile -x $cdp_file -s");
-$pl_status = $E->SpawnWaitKill ($tg_executor->ProcessStartWaitInterval ());
-
-if ($pl_status != 0) {
- print STDERR "ERROR: dance_plan_launcher returned $pl_status\n";
- kill_open_processes ();
- exit 1;
-}
-
-print "Executor returned.\n";
-print "Shutting down rest of the processes.\n";
-
-delete_ior_files ();
-kill_open_processes ();
-
-exit $status;
diff --git a/CIAO/connectors/dds4ccm/examples/Shapes/descriptors/2013_interop_demo/run_4.xml b/CIAO/connectors/dds4ccm/examples/Shapes/descriptors/2013_interop_demo/run_4.xml
deleted file mode 100644
index 6337ac29641..00000000000
--- a/CIAO/connectors/dds4ccm/examples/Shapes/descriptors/2013_interop_demo/run_4.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- $Id$ -->
-<dds xmlns="http://www.omg.org/dds"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.omg.org/dds dds_qos.xsd">
- <qos_profile name="square">
- <datawriter_qos>
- <durability>
- <kind>TRANSIENT_DURABILITY_QOS</kind>
- </durability>
- <history>
- <kind>KEEP_LAST_HISTORY_QOS</kind>
- <depth>100</depth>
- </history>
- </datawriter_qos>
- <datareader_qos>
- <durability>
- <kind>TRANSIENT_DURABILITY_QOS</kind>
- </durability>
- <history>
- <kind>KEEP_LAST_HISTORY_QOS</kind>
- <depth>100</depth>
- </history>
- </datareader_qos>
- </qos_profile>
-</dds>
diff --git a/CIAO/connectors/dds4ccm/examples/Shapes/descriptors/2013_interop_demo/run_6.cdp b/CIAO/connectors/dds4ccm/examples/Shapes/descriptors/2013_interop_demo/run_6.cdp
deleted file mode 100644
index 679c7c7eaa5..00000000000
--- a/CIAO/connectors/dds4ccm/examples/Shapes/descriptors/2013_interop_demo/run_6.cdp
+++ /dev/null
@@ -1,1123 +0,0 @@
-<!-- $Id$ -->
-<Deployment:DeploymentPlan
- xmlns:Deployment="http://www.omg.org/Deployment"
- xmlns:xmi="http://www.omg.org/XMI"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd">
- <label>Shapes_Depl_1</label>
- <UUID>Shapes_Depl_1</UUID>
-
- <implementation xmi:id="ReceiverComponentImplementation">
- <name>ReceiverComponentImplementation</name>
- <source/>
- <artifact xmi:idref="Receiver_ExecArtifact" />
- <artifact xmi:idref="Receiver_SvntArtifact" />
- <execParameter>
- <!-- entrypoint as exec parameter (see 10.6.1) -->
- <name>component factory</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>create_Shapes_Receiver_Impl</string>
- </value>
- </value>
- </execParameter>
- <execParameter>
- <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>create_Shapes_Receiver_Servant</string>
- </value>
- </value>
- </execParameter>
- <execParameter>
- <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>Receiver_svnt</string>
- </value>
- </value>
- </execParameter>
- <execParameter>
- <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>Receiver_exec</string>
- </value>
- </value>
- </execParameter>
- </implementation>
-
- <implementation xmi:id="Shapes_ConnectorComponentImplementation">
- <name>Shapes_ConnectorComponentImplementation</name>
- <source/>
- <artifact xmi:idref="Shapes_Connector_ExecArtifact" />
- <artifact xmi:idref="Shapes_Connector_SvntArtifact" />
- <execParameter>
- <!-- entrypoint as exec parameter (see 10.6.1) -->
- <name>component factory</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>create_Shapes_DDS_Event_Impl</string>
- </value>
- </value>
- </execParameter>
- <execParameter>
- <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>create_Shapes_DDS_Event_Servant</string>
- </value>
- </value>
- </execParameter>
- <execParameter>
- <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>Shapes_Connector_svnt</string>
- </value>
- </value>
- </execParameter>
- <execParameter>
- <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>Shapes_Connector_exec</string>
- </value>
- </value>
- </execParameter>
- </implementation>
- <implementation xmi:id="SenderComponentImplementation">
- <name>SenderComponentImplementation</name>
- <source/>
- <artifact xmi:idref="Sender_ExecArtifact" />
- <artifact xmi:idref="Sender_SvntArtifact" />
- <execParameter>
- <!-- entrypoint as exec parameter (see 10.6.1) -->
- <name>component factory</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>create_Shapes_Sender_Impl</string>
- </value>
- </value>
- </execParameter>
- <execParameter>
- <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>create_Shapes_Sender_Servant</string>
- </value>
- </value>
- </execParameter>
- <execParameter>
- <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>Sender_svnt</string>
- </value>
- </value>
- </execParameter>
- <execParameter>
- <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>Sender_exec</string>
- </value>
- </value>
- </execParameter>
- </implementation>
-
- <instance xmi:id="SquareReceiverComponentInstance">
- <name>SquareReceiverComponent</name>
- <node>ReceiverNode</node>
- <!-- hostname -->
- <source/>
- <implementation xmi:idref="ReceiverComponentImplementation" />
- <configProperty>
- <name>rate</name>
- <value>
- <type>
- <kind>tk_ulong</kind>
- </type>
- <value>
- <ulong>1</ulong>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>get_data</name>
- <value>
- <type>
- <kind>tk_boolean</kind>
- </type>
- <value>
- <boolean>false</boolean>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>read_data</name>
- <value>
- <type>
- <kind>tk_boolean</kind>
- </type>
- <value>
- <boolean>false</boolean>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>raw_listen</name>
- <value>
- <type>
- <kind>tk_boolean</kind>
- </type>
- <value>
- <boolean>true</boolean>
- </value>
- </value>
- </configProperty>
- </instance>
- <instance xmi:id="CircleReceiverComponentInstance">
- <name>CircleReceiverComponent</name>
- <node>ReceiverNode</node>
- <!-- hostname -->
- <source/>
- <implementation xmi:idref="ReceiverComponentImplementation" />
- <configProperty>
- <name>rate</name>
- <value>
- <type>
- <kind>tk_ulong</kind>
- </type>
- <value>
- <ulong>1</ulong>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>get_data</name>
- <value>
- <type>
- <kind>tk_boolean</kind>
- </type>
- <value>
- <boolean>false</boolean>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>read_data</name>
- <value>
- <type>
- <kind>tk_boolean</kind>
- </type>
- <value>
- <boolean>false</boolean>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>raw_listen</name>
- <value>
- <type>
- <kind>tk_boolean</kind>
- </type>
- <value>
- <boolean>true</boolean>
- </value>
- </value>
- </configProperty>
- </instance>
- <instance xmi:id="TriangleReceiverComponentInstance">
- <name>TriangleReceiverComponent</name>
- <node>ReceiverNode</node>
- <!-- hostname -->
- <source/>
- <implementation xmi:idref="ReceiverComponentImplementation" />
- <configProperty>
- <name>rate</name>
- <value>
- <type>
- <kind>tk_ulong</kind>
- </type>
- <value>
- <ulong>1</ulong>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>get_data</name>
- <value>
- <type>
- <kind>tk_boolean</kind>
- </type>
- <value>
- <boolean>false</boolean>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>read_data</name>
- <value>
- <type>
- <kind>tk_boolean</kind>
- </type>
- <value>
- <boolean>false</boolean>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>raw_listen</name>
- <value>
- <type>
- <kind>tk_boolean</kind>
- </type>
- <value>
- <boolean>true</boolean>
- </value>
- </value>
- </configProperty>
- </instance>
-
- <instance xmi:id="SquareShapes_ConnectorComponentInstance">
- <name>SquareShapes_ConnectorComponent</name>
- <node>SenderNode</node>
- <!-- hostname -->
- <source/>
- <implementation xmi:idref="Shapes_ConnectorComponentImplementation" />
- <configProperty>
- <name>qos_profile</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>run_6#square</string>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>topic_name</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>Square</string>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>type_name</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>ShapeType</string>
- </value>
- </value>
- </configProperty>
- </instance>
- <instance xmi:id="CircleShapes_ConnectorComponentInstance">
- <name>CircleShapes_ConnectorComponent</name>
- <node>SenderNode</node>
- <!-- hostname -->
- <source/>
- <implementation xmi:idref="Shapes_ConnectorComponentImplementation" />
- <configProperty>
- <name>qos_profile</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>run_6#circle</string>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>topic_name</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>Circle</string>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>type_name</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>ShapeType</string>
- </value>
- </value>
- </configProperty>
- </instance>
- <instance xmi:id="TriangleShapes_ConnectorComponentInstance">
- <name>TriangleShapes_ConnectorComponent</name>
- <node>SenderNode</node>
- <!-- hostname -->
- <source/>
- <implementation xmi:idref="Shapes_ConnectorComponentImplementation" />
- <configProperty>
- <name>qos_profile</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>run_6#triangle</string>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>topic_name</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>Triangle</string>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>type_name</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>ShapeType</string>
- </value>
- </value>
- </configProperty>
- </instance>
- <instance xmi:id="SquareShapes_ConnectorComponentInstance2">
- <name>SquareShapes_ConnectorComponent2</name>
- <node>ReceiverNode</node>
- <!-- hostname -->
- <source/>
- <implementation xmi:idref="Shapes_ConnectorComponentImplementation" />
- <configProperty>
- <name>qos_profile</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>run_6#square</string>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>topic_name</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>Square</string>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>type_name</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>ShapeType</string>
- </value>
- </value>
- </configProperty>
- </instance>
- <instance xmi:id="CircleShapes_ConnectorComponentInstance2">
- <name>CircleShapes_ConnectorComponent2</name>
- <node>ReceiverNode</node>
- <!-- hostname -->
- <source/>
- <implementation xmi:idref="Shapes_ConnectorComponentImplementation" />
- <configProperty>
- <name>qos_profile</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>run_6#circle</string>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>topic_name</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>Circle</string>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>type_name</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>ShapeType</string>
- </value>
- </value>
- </configProperty>
- </instance>
- <instance xmi:id="TriangleShapes_ConnectorComponentInstance2">
- <name>TriangleShapes_ConnectorComponent2</name>
- <node>ReceiverNode</node>
- <!-- hostname -->
- <source/>
- <implementation xmi:idref="Shapes_ConnectorComponentImplementation" />
- <configProperty>
- <name>qos_profile</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>run_6#triangle</string>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>topic_name</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>Triangle</string>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>type_name</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>ShapeType</string>
- </value>
- </value>
- </configProperty>
- </instance>
- <instance xmi:id="SquareSenderComponentInstance">
- <name>SquareSenderComponent</name>
- <node>SenderNode</node>
- <!-- hostname -->
- <source/>
- <implementation xmi:idref="SenderComponentImplementation" />
- <configProperty>
- <name>color</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>ORANGE</string>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>rate</name>
- <value>
- <type>
- <kind>tk_ulong</kind>
- </type>
- <value>
- <ulong>10</ulong>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>max_x</name>
- <value>
- <type>
- <kind>tk_ushort</kind>
- </type>
- <value>
- <ushort>225</ushort>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>max_y</name>
- <value>
- <type>
- <kind>tk_ushort</kind>
- </type>
- <value>
- <ushort>250</ushort>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>max_size</name>
- <value>
- <type>
- <kind>tk_ushort</kind>
- </type>
- <value>
- <ushort>50</ushort>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>resize_shape</name>
- <value>
- <type>
- <kind>tk_boolean</kind>
- </type>
- <value>
- <boolean>false</boolean>
- </value>
- </value>
- </configProperty>
- </instance>
- <instance xmi:id="CircleSenderComponentInstance">
- <name>CircleSenderComponent</name>
- <node>SenderNode</node>
- <!-- hostname -->
- <source/>
- <implementation xmi:idref="SenderComponentImplementation" />
- <configProperty>
- <name>color</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>ORANGE</string>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>rate</name>
- <value>
- <type>
- <kind>tk_ulong</kind>
- </type>
- <value>
- <ulong>10</ulong>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>max_x</name>
- <value>
- <type>
- <kind>tk_ushort</kind>
- </type>
- <value>
- <ushort>225</ushort>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>max_y</name>
- <value>
- <type>
- <kind>tk_ushort</kind>
- </type>
- <value>
- <ushort>250</ushort>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>max_size</name>
- <value>
- <type>
- <kind>tk_ushort</kind>
- </type>
- <value>
- <ushort>50</ushort>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>resize_shape</name>
- <value>
- <type>
- <kind>tk_boolean</kind>
- </type>
- <value>
- <boolean>false</boolean>
- </value>
- </value>
- </configProperty>
- </instance>
- <instance xmi:id="TriangleSenderComponentInstance">
- <name>TriangleSenderComponent</name>
- <node>SenderNode</node>
- <!-- hostname -->
- <source/>
- <implementation xmi:idref="SenderComponentImplementation" />
- <configProperty>
- <name>color</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>ORANGE</string>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>rate</name>
- <value>
- <type>
- <kind>tk_ulong</kind>
- </type>
- <value>
- <ulong>10</ulong>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>max_x</name>
- <value>
- <type>
- <kind>tk_ushort</kind>
- </type>
- <value>
- <ushort>225</ushort>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>max_y</name>
- <value>
- <type>
- <kind>tk_ushort</kind>
- </type>
- <value>
- <ushort>250</ushort>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>max_size</name>
- <value>
- <type>
- <kind>tk_ushort</kind>
- </type>
- <value>
- <ushort>50</ushort>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>resize_shape</name>
- <value>
- <type>
- <kind>tk_boolean</kind>
- </type>
- <value>
- <boolean>false</boolean>
- </value>
- </value>
- </configProperty>
- </instance>
-
- <connection>
- <name>square_info_out_data</name>
- <deployRequirement>
- <name>edu.dre.vanderbilt.DAnCE.ConnectionType</name>
- <resourceType>Local_Interface</resourceType>
- </deployRequirement>
- <internalEndpoint>
- <portName>info_out_data</portName>
- <provider>false</provider>
- <kind>SimplexReceptacle</kind>
- <instance xmi:idref="SquareReceiverComponentInstance" />
- </internalEndpoint>
- <internalEndpoint>
- <portName>push_consumer_data</portName>
- <provider>true</provider>
- <kind>Facet</kind>
- <instance xmi:idref="SquareShapes_ConnectorComponentInstance2" />
- </internalEndpoint>
- </connection>
- <connection>
- <name>square_listenercontrol</name>
- <deployRequirement>
- <name>edu.dre.vanderbilt.DAnCE.ConnectionType</name>
- <resourceType>Local_Interface</resourceType>
- </deployRequirement>
- <internalEndpoint>
- <portName>info_out_data_control</portName>
- <provider>false</provider>
- <kind>SimplexReceptacle</kind>
- <instance xmi:idref="SquareReceiverComponentInstance" />
- </internalEndpoint>
- <internalEndpoint>
- <portName>push_consumer_data_control</portName>
- <provider>true</provider>
- <kind>Facet</kind>
- <instance xmi:idref="SquareShapes_ConnectorComponentInstance2" />
- </internalEndpoint>
- </connection>
- <connection>
- <name>square_portstatuslistener</name>
- <deployRequirement>
- <name>edu.dre.vanderbilt.DAnCE.ConnectionType</name>
- <resourceType>Local_Interface</resourceType>
- </deployRequirement>
- <internalEndpoint>
- <portName>info_out_status</portName>
- <provider>true</provider>
- <kind>Facet</kind>
- <instance xmi:idref="SquareReceiverComponentInstance" />
- </internalEndpoint>
- <internalEndpoint>
- <portName>push_consumer_status</portName>
- <provider>false</provider>
- <kind>SimplexReceptacle</kind>
- <instance xmi:idref="SquareShapes_ConnectorComponentInstance2" />
- </internalEndpoint>
- </connection>
- <connection>
- <name>square_listener</name>
- <deployRequirement>
- <name>edu.dre.vanderbilt.DAnCE.ConnectionType</name>
- <resourceType>Local_Interface</resourceType>
- </deployRequirement>
- <internalEndpoint>
- <portName>info_out_data_listener</portName>
- <provider>true</provider>
- <kind>Facet</kind>
- <instance xmi:idref="SquareReceiverComponentInstance" />
- </internalEndpoint>
- <internalEndpoint>
- <portName>push_consumer_data_listener</portName>
- <provider>false</provider>
- <kind>SimplexReceptacle</kind>
- <instance xmi:idref="SquareShapes_ConnectorComponentInstance2" />
- </internalEndpoint>
- </connection>
-
- <connection>
- <name>circle_info_out_data</name>
- <deployRequirement>
- <name>edu.dre.vanderbilt.DAnCE.ConnectionType</name>
- <resourceType>Local_Interface</resourceType>
- </deployRequirement>
- <internalEndpoint>
- <portName>info_out_data</portName>
- <provider>false</provider>
- <kind>SimplexReceptacle</kind>
- <instance xmi:idref="CircleReceiverComponentInstance" />
- </internalEndpoint>
- <internalEndpoint>
- <portName>push_consumer_data</portName>
- <provider>true</provider>
- <kind>Facet</kind>
- <instance xmi:idref="CircleShapes_ConnectorComponentInstance2" />
- </internalEndpoint>
- </connection>
- <connection>
- <name>circle_listenercontrol</name>
- <deployRequirement>
- <name>edu.dre.vanderbilt.DAnCE.ConnectionType</name>
- <resourceType>Local_Interface</resourceType>
- </deployRequirement>
- <internalEndpoint>
- <portName>info_out_data_control</portName>
- <provider>false</provider>
- <kind>SimplexReceptacle</kind>
- <instance xmi:idref="CircleReceiverComponentInstance" />
- </internalEndpoint>
- <internalEndpoint>
- <portName>push_consumer_data_control</portName>
- <provider>true</provider>
- <kind>Facet</kind>
- <instance xmi:idref="CircleShapes_ConnectorComponentInstance2" />
- </internalEndpoint>
- </connection>
- <connection>
- <name>circle_portstatuslistener</name>
- <deployRequirement>
- <name>edu.dre.vanderbilt.DAnCE.ConnectionType</name>
- <resourceType>Local_Interface</resourceType>
- </deployRequirement>
- <internalEndpoint>
- <portName>info_out_status</portName>
- <provider>true</provider>
- <kind>Facet</kind>
- <instance xmi:idref="CircleReceiverComponentInstance" />
- </internalEndpoint>
- <internalEndpoint>
- <portName>push_consumer_status</portName>
- <provider>false</provider>
- <kind>SimplexReceptacle</kind>
- <instance xmi:idref="CircleShapes_ConnectorComponentInstance2" />
- </internalEndpoint>
- </connection>
- <connection>
- <name>circle_listener</name>
- <deployRequirement>
- <name>edu.dre.vanderbilt.DAnCE.ConnectionType</name>
- <resourceType>Local_Interface</resourceType>
- </deployRequirement>
- <internalEndpoint>
- <portName>info_out_data_listener</portName>
- <provider>true</provider>
- <kind>Facet</kind>
- <instance xmi:idref="CircleReceiverComponentInstance" />
- </internalEndpoint>
- <internalEndpoint>
- <portName>push_consumer_data_listener</portName>
- <provider>false</provider>
- <kind>SimplexReceptacle</kind>
- <instance xmi:idref="CircleShapes_ConnectorComponentInstance2" />
- </internalEndpoint>
- </connection>
-
- <connection>
- <name>triangle_info_out_data</name>
- <deployRequirement>
- <name>edu.dre.vanderbilt.DAnCE.ConnectionType</name>
- <resourceType>Local_Interface</resourceType>
- </deployRequirement>
- <internalEndpoint>
- <portName>info_out_data</portName>
- <provider>false</provider>
- <kind>SimplexReceptacle</kind>
- <instance xmi:idref="TriangleReceiverComponentInstance" />
- </internalEndpoint>
- <internalEndpoint>
- <portName>push_consumer_data</portName>
- <provider>true</provider>
- <kind>Facet</kind>
- <instance xmi:idref="TriangleShapes_ConnectorComponentInstance2" />
- </internalEndpoint>
- </connection>
- <connection>
- <name>triangle_listenercontrol</name>
- <deployRequirement>
- <name>edu.dre.vanderbilt.DAnCE.ConnectionType</name>
- <resourceType>Local_Interface</resourceType>
- </deployRequirement>
- <internalEndpoint>
- <portName>info_out_data_control</portName>
- <provider>false</provider>
- <kind>SimplexReceptacle</kind>
- <instance xmi:idref="TriangleReceiverComponentInstance" />
- </internalEndpoint>
- <internalEndpoint>
- <portName>push_consumer_data_control</portName>
- <provider>true</provider>
- <kind>Facet</kind>
- <instance xmi:idref="TriangleShapes_ConnectorComponentInstance2" />
- </internalEndpoint>
- </connection>
- <connection>
- <name>triangle_portstatuslistener</name>
- <deployRequirement>
- <name>edu.dre.vanderbilt.DAnCE.ConnectionType</name>
- <resourceType>Local_Interface</resourceType>
- </deployRequirement>
- <internalEndpoint>
- <portName>info_out_status</portName>
- <provider>true</provider>
- <kind>Facet</kind>
- <instance xmi:idref="TriangleReceiverComponentInstance" />
- </internalEndpoint>
- <internalEndpoint>
- <portName>push_consumer_status</portName>
- <provider>false</provider>
- <kind>SimplexReceptacle</kind>
- <instance xmi:idref="TriangleShapes_ConnectorComponentInstance2" />
- </internalEndpoint>
- </connection>
- <connection>
- <name>triangle_listener</name>
- <deployRequirement>
- <name>edu.dre.vanderbilt.DAnCE.ConnectionType</name>
- <resourceType>Local_Interface</resourceType>
- </deployRequirement>
- <internalEndpoint>
- <portName>info_out_data_listener</portName>
- <provider>true</provider>
- <kind>Facet</kind>
- <instance xmi:idref="TriangleReceiverComponentInstance" />
- </internalEndpoint>
- <internalEndpoint>
- <portName>push_consumer_data_listener</portName>
- <provider>false</provider>
- <kind>SimplexReceptacle</kind>
- <instance xmi:idref="TriangleShapes_ConnectorComponentInstance2" />
- </internalEndpoint>
- </connection>
-
- <connection>
- <name>square_writer_connection</name>
- <deployRequirement>
- <name>edu.dre.vanderbilt.DAnCE.ConnectionType</name>
- <resourceType>Local_Interface</resourceType>
- </deployRequirement>
- <internalEndpoint>
- <portName>info_write_data</portName>
- <provider>false</provider>
- <kind>SimplexReceptacle</kind>
- <instance xmi:idref="SquareSenderComponentInstance" />
- </internalEndpoint>
- <internalEndpoint>
- <portName>supplier_data</portName>
- <provider>true</provider>
- <kind>Facet</kind>
- <instance xmi:idref="SquareShapes_ConnectorComponentInstance" />
- </internalEndpoint>
- </connection>
- <connection>
- <name>circle_writer_connection</name>
- <deployRequirement>
- <name>edu.dre.vanderbilt.DAnCE.ConnectionType</name>
- <resourceType>Local_Interface</resourceType>
- </deployRequirement>
- <internalEndpoint>
- <portName>info_write_data</portName>
- <provider>false</provider>
- <kind>SimplexReceptacle</kind>
- <instance xmi:idref="CircleSenderComponentInstance" />
- </internalEndpoint>
- <internalEndpoint>
- <portName>supplier_data</portName>
- <provider>true</provider>
- <kind>Facet</kind>
- <instance xmi:idref="CircleShapes_ConnectorComponentInstance" />
- </internalEndpoint>
- </connection>
- <connection>
- <name>triangle_writer_connection</name>
- <deployRequirement>
- <name>edu.dre.vanderbilt.DAnCE.ConnectionType</name>
- <resourceType>Local_Interface</resourceType>
- </deployRequirement>
- <internalEndpoint>
- <portName>info_write_data</portName>
- <provider>false</provider>
- <kind>SimplexReceptacle</kind>
- <instance xmi:idref="TriangleSenderComponentInstance" />
- </internalEndpoint>
- <internalEndpoint>
- <portName>supplier_data</portName>
- <provider>true</provider>
- <kind>Facet</kind>
- <instance xmi:idref="TriangleShapes_ConnectorComponentInstance" />
- </internalEndpoint>
- </connection>
-
-
- <artifact xmi:id="Sender_ExecArtifact">
- <name>Sender_exec</name>
- <source/>
- <node/>
- <location>Sender_exec</location>
- </artifact>
- <artifact xmi:id="Sender_SvntArtifact">
- <name>Sender_svnt</name>
- <source/>
- <node/>
- <location>Sender_svnt</location>
- </artifact>
- <artifact xmi:id="Sender_StubArtifact">
- <name>Sender_stub</name>
- <source/>
- <node/>
- <location>Sender_stub</location>
- </artifact>
- <artifact xmi:id="Shapes_Connector_ExecArtifact">
- <name>Shapes_Connector_exec</name>
- <source/>
- <node/>
- <location>DDS_Shapes_Connector_exec</location>
- </artifact>
- <artifact xmi:id="Shapes_Connector_SvntArtifact">
- <name>Shapes_Connector_svnt</name>
- <source/>
- <node/>
- <location>DDS_Shapes_Connector_svnt</location>
- </artifact>
- <artifact xmi:id="Shapes_Connector_StubArtifact">
- <name>Shapes_Connector_stub</name>
- <source/>
- <node/>
- <location>DDS_Shapes_Connector_stub</location>
- </artifact>
- <artifact xmi:id="Receiver_ExecArtifact">
- <name>Receiver_exec</name>
- <source/>
- <node/>
- <location>Receiver_exec</location>
- </artifact>
- <artifact xmi:id="Receiver_SvntArtifact">
- <name>Receiver_svnt</name>
- <source/>
- <node/>
- <location>Receiver_svnt</location>
- </artifact>
- <artifact xmi:id="Receiver_StubArtifact">
- <name>Receiver_stub</name>
- <source/>
- <node/>
- <location>Receiver_stub</location>
- </artifact>
-</Deployment:DeploymentPlan>
diff --git a/CIAO/connectors/dds4ccm/examples/Shapes/descriptors/2013_interop_demo/run_6.pl b/CIAO/connectors/dds4ccm/examples/Shapes/descriptors/2013_interop_demo/run_6.pl
deleted file mode 100755
index 89d4d9ce552..00000000000
--- a/CIAO/connectors/dds4ccm/examples/Shapes/descriptors/2013_interop_demo/run_6.pl
+++ /dev/null
@@ -1,245 +0,0 @@
-eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
- & eval 'exec perl -S $0 $argv:q'
- if 0;
-
-# $Id$
-# -*- perl -*-
-
-use lib "$ENV{'ACE_ROOT'}/bin";
-use PerlACE::TestTarget;
-
-$CIAO_ROOT = "$ENV{'CIAO_ROOT'}";
-$TAO_ROOT = "$ENV{'TAO_ROOT'}";
-$DANCE_ROOT = "$ENV{'DANCE_ROOT'}";
-$DDS_ROOT = "$ENV{'DDS_ROOT'}";
-
-$daemons_running = 0;
-$em_running = 0;
-$ns_running = 0;
-
-$nr_daemon = 2;
-@ports = ( 60001, 60002 );
-@iorbases = ( "NodeApp1.ior", "NodeApp2.ior" );
-@iorfiles = 0;
-@nodenames = ( "SenderNode", "ReceiverNode" );
-
-# ior files other than daemon
-$ior_nsbase = "ns.ior";
-$ior_nsfile = 0;
-$ior_embase = "EM.ior";
-$ior_emfile = 0;
-
-# Processes
-$E = 0;
-$EM = 0;
-$NS = 0;
-@DEAMONS = 0;
-
-# targets
-@tg_daemons = 0;
-$tg_naming = 0;
-$tg_exe_man = 0;
-$tg_executor = 0;
-
-$status = 0;
-$cdp_file = "run_6.cdp";
-
-sub create_targets {
- # naming service
- $tg_naming = PerlACE::TestTarget::create_target (1) || die "Create target for ns failed\n";
- $tg_naming->AddLibPath ('../lib');
- # daemon
- for ($i = 0; $i < $nr_daemon; ++$i) {
- $tg_daemons[$i] = PerlACE::TestTarget::create_target ($i+1) || die "Create target for daemon $i failed\n";
- $tg_daemons[$i]->AddLibPath ('../lib');
- }
- # execution manager
- $tg_exe_man = PerlACE::TestTarget::create_target (1) || die "Create target for EM failed\n";
- $tg_exe_man->AddLibPath ('../lib');
- # executor (plan_launcher)
- $tg_executor = PerlACE::TestTarget::create_target (1) || die "Create target for executor failed\n";
- $tg_executor->AddLibPath ('../lib');
-}
-
-sub init_ior_files {
- $ior_nsfile = $tg_naming->LocalFile ($ior_nsbase);
- $ior_emfile = $tg_exe_man->LocalFile ($ior_embase);
- for ($i = 0; $i < $nr_daemon; ++$i) {
- $iorfiles[$i] = $tg_daemons[$i]->LocalFile ($iorbases[$i]);
- }
- delete_ior_files ();
-}
-
-# Delete if there are any .ior files.
-sub delete_ior_files {
- for ($i = 0; $i < $nr_daemon; ++$i) {
- $tg_daemons[$i]->DeleteFile ($iorbases[$i]);
- }
- $tg_naming->DeleteFile ($ior_nsbase);
- $tg_exe_man->DeleteFile ($ior_embase);
- for ($i = 0; $i < $nr_daemon; ++$i) {
- $iorfiles[$i] = $tg_daemons[$i]->LocalFile ($iorbases[$i]);
- }
-}
-
-sub kill_node_daemon {
- for ($i = 0; $i < $nr_daemon; ++$i) {
- $DEAMONS[$i]->Kill (); $DEAMONS[$i]->TimedWait (1);
- }
-}
-
-sub kill_open_processes {
- if ($daemons_running == 1) {
- kill_node_daemon ();
- }
-
- if ($em_running == 1) {
- $EM->Kill (); $EM->TimedWait (1);
- }
-
- if ($ns_running == 1) {
- $NS->Kill (); $NS->TimedWait (1);
- }
- # in case shutdown did not perform as expected
- $tg_executor->KillAll ('dance_locality_manager');
-}
-
-sub run_node_daemons {
- for ($i = 0; $i < $nr_daemon; ++$i) {
- $iorbase = $iorbases[$i];
- $iorfile = $iorfiles[$i];
- $port = $ports[$i];
- $nodename = $nodenames[$i];
- $iiop = "iiop://localhost:$port";
- $node_app = $tg_daemons[$i]->GetArchDir("$DANCE_ROOT/bin/") . "dance_locality_manager";
-
- $d_cmd = "$DANCE_ROOT/bin/dance_node_manager";
- $d_param = "-ORBEndpoint $iiop -s $node_app -n $nodename=$iorfile -t 30 --domain-nc corbaloc:rir:/NameService";
-
- print "Run dance_node_manager with $d_param\n";
-
- $DEAMONS[$i] = $tg_daemons[$i]->CreateProcess ($d_cmd, $d_param);
- $DEAMONS[$i]->Spawn ();
-
- if ($tg_daemons[$i]->WaitForFileTimed($iorbase,
- $tg_daemons[$i]->ProcessStartWaitInterval ()) == -1) {
- print STDERR
- "ERROR: The ior $iorfile file of node daemon $i could not be found\n";
- for (; $i >= 0; --$i) {
- $DEAMONS[$i]->Kill (); $DEAMONS[$i]->TimedWait (1);
- }
- return -1;
- }
- }
- return 0;
-}
-
-create_targets ();
-init_ior_files ();
-
-# Invoke naming service
-
-$NS = $tg_naming->CreateProcess ("$TAO_ROOT/bin/tao_cosnaming", " -ORBEndpoint iiop://localhost:60003 -o $ior_nsfile");
-
-$ns_status = $NS->Spawn ();
-
-if ($ns_status != 0) {
- print STDERR "ERROR: Unable to execute the naming service\n";
- kill_open_processes ();
- exit 1;
-}
-
-print STDERR "Starting Naming Service with -ORBEndpoint iiop://localhost:60003 -o ns.ior\n";
-
-if ($tg_naming->WaitForFileTimed ($ior_nsbase,
- $tg_naming->ProcessStartWaitInterval ()) == -1) {
- print STDERR "ERROR: cannot find naming service IOR file\n";
- $NS->Kill (); $NS->TimedWait (1);
- exit 1;
-}
-
-$ns_running = 1;
-
-# Set up NamingService environment
-$ENV{"NameServiceIOR"} = "corbaloc:iiop:localhost:60003/NameService";
-
-# Invoke node daemon.
-print "Invoking node daemon\n";
-$status = run_node_daemons ();
-
-if ($status != 0) {
- print STDERR "ERROR: Unable to execute the node daemon\n";
- kill_open_processes ();
- exit 1;
-}
-
-$daemons_running = 1;
-
-# Invoke execution manager.
-print "Invoking execution manager (dance_execution_manager.exe) with -e$ior_emfile\n";
-$EM = $tg_exe_man->CreateProcess ("$DANCE_ROOT/bin/dance_execution_manager",
- "-e$ior_emfile --domain-nc corbaloc:rir:/NameService");
-$em_status = $EM->Spawn ();
-
-if ($em_status != 0) {
- print STDERR "ERROR: dance_execution_manager returned $em_status";
- exit 1;
-}
-
-if ($tg_exe_man->WaitForFileTimed ($ior_embase,
- $tg_exe_man->ProcessStartWaitInterval ()) == -1) {
- print STDERR
- "ERROR: The ior file of execution manager could not be found\n";
- kill_open_processes ();
- exit 1;
-}
-
-$em_running = 1;
-
-# Invoke executor - start the application -.
-print "Invoking executor - launch the application -\n";
-
-print "Start dance_plan_launcher.exe with -x $cdp_file -k file://$ior_emfile\n";
-$E = $tg_executor->CreateProcess ("$DANCE_ROOT/bin/dance_plan_launcher",
- "-x $cdp_file -k file://$ior_emfile");
-$pl_status = $E->SpawnWaitKill (2 * $tg_executor->ProcessStartWaitInterval ());
-
-if ($pl_status != 0) {
- print STDERR "ERROR: dance_plan_launcher returned $pl_status\n";
- kill_open_processes ();
- exit 1;
-}
-
-for ($i = 0; $i < $nr_daemon; ++$i) {
- if ($tg_daemons[$i]->WaitForFileTimed ($iorbases[$i],
- $tg_daemons[$i]->ProcessStopWaitInterval ()) == -1) {
- print STDERR "ERROR: The ior file of daemon $i could not be found\n";
- kill_open_processes ();
- exit 1;
- }
-}
-
-print "Sleeping 60 seconds to allow task to complete\n";
-sleep (60);
-
-# Invoke executor - stop the application -.
-print "Invoking executor - stop the application -\n";
-print "by running dance_plan_launcher.exe with -k file://$ior_emfile -x $cdp_file\n";
-
-$E = $tg_executor->CreateProcess ("$DANCE_ROOT/bin/dance_plan_launcher",
- "-k file://$ior_emfile -x $cdp_file -s");
-$pl_status = $E->SpawnWaitKill ($tg_executor->ProcessStartWaitInterval ());
-
-if ($pl_status != 0) {
- print STDERR "ERROR: dance_plan_launcher returned $pl_status\n";
- kill_open_processes ();
- exit 1;
-}
-
-print "Executor returned.\n";
-print "Shutting down rest of the processes.\n";
-
-delete_ior_files ();
-kill_open_processes ();
-
-exit $status;
diff --git a/CIAO/connectors/dds4ccm/examples/Shapes/descriptors/2013_interop_demo/run_6.xml b/CIAO/connectors/dds4ccm/examples/Shapes/descriptors/2013_interop_demo/run_6.xml
deleted file mode 100644
index 88241913449..00000000000
--- a/CIAO/connectors/dds4ccm/examples/Shapes/descriptors/2013_interop_demo/run_6.xml
+++ /dev/null
@@ -1,54 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- $Id$ -->
-<dds xmlns="http://www.omg.org/dds"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.omg.org/dds dds_qos.xsd">
- <qos_profile name="square">
- <publisher_qos>
- <partition>
- <name>
- <element>A</element>
- </name>
- </partition>
- </publisher_qos>
- <subscriber_qos>
- <partition>
- <name>
- <element>A</element>
- </name>
- </partition>
- </subscriber_qos>
- </qos_profile>
- <qos_profile name="circle">
- <publisher_qos>
- <partition>
- <name>
- <element>B</element>
- </name>
- </partition>
- </publisher_qos>
- <subscriber_qos>
- <partition>
- <name>
- <element>A</element>
- </name>
- </partition>
- </subscriber_qos>
- </qos_profile>
- <qos_profile name="triangle">
- <publisher_qos>
- <partition>
- <name>
- <element>*</element>
- </name>
- </partition>
- </publisher_qos>
- <subscriber_qos>
- <partition>
- <name>
- <element>A</element>
- </name>
- </partition>
- </subscriber_qos>
- </qos_profile>
-</dds>
diff --git a/CIAO/connectors/dds4ccm/examples/Shapes/descriptors/2013_interop_demo/run_7.cdp b/CIAO/connectors/dds4ccm/examples/Shapes/descriptors/2013_interop_demo/run_7.cdp
deleted file mode 100644
index 14f2fee924e..00000000000
--- a/CIAO/connectors/dds4ccm/examples/Shapes/descriptors/2013_interop_demo/run_7.cdp
+++ /dev/null
@@ -1,520 +0,0 @@
-<!-- $Id$ -->
-<Deployment:DeploymentPlan
- xmlns:Deployment="http://www.omg.org/Deployment"
- xmlns:xmi="http://www.omg.org/XMI"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd">
- <label>Shapes_Depl_1</label>
- <UUID>Shapes_Depl_1</UUID>
-
- <implementation xmi:id="ReceiverComponentImplementation">
- <name>ReceiverComponentImplementation</name>
- <source/>
- <artifact xmi:idref="Receiver_ExecArtifact" />
- <artifact xmi:idref="Receiver_SvntArtifact" />
- <execParameter>
- <!-- entrypoint as exec parameter (see 10.6.1) -->
- <name>component factory</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>create_Shapes_Receiver_Impl</string>
- </value>
- </value>
- </execParameter>
- <execParameter>
- <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>create_Shapes_Receiver_Servant</string>
- </value>
- </value>
- </execParameter>
- <execParameter>
- <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>Receiver_svnt</string>
- </value>
- </value>
- </execParameter>
- <execParameter>
- <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>Receiver_exec</string>
- </value>
- </value>
- </execParameter>
- </implementation>
-
- <implementation xmi:id="Shapes_ConnectorComponentImplementation">
- <name>Shapes_ConnectorComponentImplementation</name>
- <source/>
- <artifact xmi:idref="Shapes_Connector_ExecArtifact" />
- <artifact xmi:idref="Shapes_Connector_SvntArtifact" />
- <execParameter>
- <!-- entrypoint as exec parameter (see 10.6.1) -->
- <name>component factory</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>create_Shapes_DDS_Event_Impl</string>
- </value>
- </value>
- </execParameter>
- <execParameter>
- <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>create_Shapes_DDS_Event_Servant</string>
- </value>
- </value>
- </execParameter>
- <execParameter>
- <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>Shapes_Connector_svnt</string>
- </value>
- </value>
- </execParameter>
- <execParameter>
- <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>Shapes_Connector_exec</string>
- </value>
- </value>
- </execParameter>
- </implementation>
- <implementation xmi:id="SenderComponentImplementation">
- <name>SenderComponentImplementation</name>
- <source/>
- <artifact xmi:idref="Sender_ExecArtifact" />
- <artifact xmi:idref="Sender_SvntArtifact" />
- <execParameter>
- <!-- entrypoint as exec parameter (see 10.6.1) -->
- <name>component factory</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>create_Shapes_Sender_Impl</string>
- </value>
- </value>
- </execParameter>
- <execParameter>
- <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>create_Shapes_Sender_Servant</string>
- </value>
- </value>
- </execParameter>
- <execParameter>
- <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>Sender_svnt</string>
- </value>
- </value>
- </execParameter>
- <execParameter>
- <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>Sender_exec</string>
- </value>
- </value>
- </execParameter>
- </implementation>
- <instance xmi:id="ReceiverComponentInstance">
- <name>ReceiverComponent</name>
- <node>ReceiverNode</node>
- <!-- hostname -->
- <source/>
- <implementation xmi:idref="ReceiverComponentImplementation" />
- <configProperty>
- <name>rate</name>
- <value>
- <type>
- <kind>tk_ulong</kind>
- </type>
- <value>
- <ulong>1</ulong>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>get_data</name>
- <value>
- <type>
- <kind>tk_boolean</kind>
- </type>
- <value>
- <boolean>false</boolean>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>read_data</name>
- <value>
- <type>
- <kind>tk_boolean</kind>
- </type>
- <value>
- <boolean>false</boolean>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>raw_listen</name>
- <value>
- <type>
- <kind>tk_boolean</kind>
- </type>
- <value>
- <boolean>true</boolean>
- </value>
- </value>
- </configProperty>
- </instance>
- <instance xmi:id="Shapes_ConnectorComponentInstance">
- <name>Shapes_ConnectorComponent</name>
- <node>SenderNode</node>
- <!-- hostname -->
- <source/>
- <implementation xmi:idref="Shapes_ConnectorComponentImplementation" />
- <configProperty>
- <name>qos_profile</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>run_7#square</string>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>topic_name</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>Square</string>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>type_name</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>ShapeType</string>
- </value>
- </value>
- </configProperty>
- </instance>
- <instance xmi:id="Shapes_ConnectorComponentInstance2">
- <name>Shapes_ConnectorComponent2</name>
- <node>ReceiverNode</node>
- <!-- hostname -->
- <source/>
- <implementation xmi:idref="Shapes_ConnectorComponentImplementation" />
- <configProperty>
- <name>qos_profile</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>run_7#square</string>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>topic_name</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>Square</string>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>type_name</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>ShapeType</string>
- </value>
- </value>
- </configProperty>
- </instance>
- <instance xmi:id="SenderComponentInstance">
- <name>SenderComponent</name>
- <node>SenderNode</node>
- <!-- hostname -->
- <source/>
- <implementation xmi:idref="SenderComponentImplementation" />
- <configProperty>
- <name>color</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>MAGENTA</string>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>rate</name>
- <value>
- <type>
- <kind>tk_ulong</kind>
- </type>
- <value>
- <ulong>10</ulong>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>max_x</name>
- <value>
- <type>
- <kind>tk_ushort</kind>
- </type>
- <value>
- <ushort>225</ushort>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>max_y</name>
- <value>
- <type>
- <kind>tk_ushort</kind>
- </type>
- <value>
- <ushort>250</ushort>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>max_size</name>
- <value>
- <type>
- <kind>tk_ushort</kind>
- </type>
- <value>
- <ushort>50</ushort>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>resize_shape</name>
- <value>
- <type>
- <kind>tk_boolean</kind>
- </type>
- <value>
- <boolean>true</boolean>
- </value>
- </value>
- </configProperty>
- </instance>
-
- <connection>
- <name>info_out_data</name>
- <deployRequirement>
- <name>edu.dre.vanderbilt.DAnCE.ConnectionType</name>
- <resourceType>Local_Interface</resourceType>
- </deployRequirement>
- <internalEndpoint>
- <portName>info_out_data</portName>
- <provider>false</provider>
- <kind>SimplexReceptacle</kind>
- <instance xmi:idref="ReceiverComponentInstance" />
- </internalEndpoint>
- <internalEndpoint>
- <portName>push_consumer_data</portName>
- <provider>true</provider>
- <kind>Facet</kind>
- <instance xmi:idref="Shapes_ConnectorComponentInstance2" />
- </internalEndpoint>
- </connection>
- <connection>
- <name>_listenercontrol</name>
- <deployRequirement>
- <name>edu.dre.vanderbilt.DAnCE.ConnectionType</name>
- <resourceType>Local_Interface</resourceType>
- </deployRequirement>
- <internalEndpoint>
- <portName>info_out_data_control</portName>
- <provider>false</provider>
- <kind>SimplexReceptacle</kind>
- <instance xmi:idref="ReceiverComponentInstance" />
- </internalEndpoint>
- <internalEndpoint>
- <portName>push_consumer_data_control</portName>
- <provider>true</provider>
- <kind>Facet</kind>
- <instance xmi:idref="Shapes_ConnectorComponentInstance2" />
- </internalEndpoint>
- </connection>
- <connection>
- <name>_portstatuslistener</name>
- <deployRequirement>
- <name>edu.dre.vanderbilt.DAnCE.ConnectionType</name>
- <resourceType>Local_Interface</resourceType>
- </deployRequirement>
- <internalEndpoint>
- <portName>info_out_status</portName>
- <provider>true</provider>
- <kind>Facet</kind>
- <instance xmi:idref="ReceiverComponentInstance" />
- </internalEndpoint>
- <internalEndpoint>
- <portName>push_consumer_status</portName>
- <provider>false</provider>
- <kind>SimplexReceptacle</kind>
- <instance xmi:idref="Shapes_ConnectorComponentInstance2" />
- </internalEndpoint>
- </connection>
- <connection>
- <name>_listener</name>
- <deployRequirement>
- <name>edu.dre.vanderbilt.DAnCE.ConnectionType</name>
- <resourceType>Local_Interface</resourceType>
- </deployRequirement>
- <internalEndpoint>
- <portName>info_out_data_listener</portName>
- <provider>true</provider>
- <kind>Facet</kind>
- <instance xmi:idref="ReceiverComponentInstance" />
- </internalEndpoint>
- <internalEndpoint>
- <portName>push_consumer_data_listener</portName>
- <provider>false</provider>
- <kind>SimplexReceptacle</kind>
- <instance xmi:idref="Shapes_ConnectorComponentInstance2" />
- </internalEndpoint>
- </connection>
-
- <connection>
- <name>writer_connection</name>
- <deployRequirement>
- <name>edu.dre.vanderbilt.DAnCE.ConnectionType</name>
- <resourceType>Local_Interface</resourceType>
- </deployRequirement>
- <internalEndpoint>
- <portName>info_write_data</portName>
- <provider>false</provider>
- <kind>SimplexReceptacle</kind>
- <instance xmi:idref="SenderComponentInstance" />
- </internalEndpoint>
- <internalEndpoint>
- <portName>supplier_data</portName>
- <provider>true</provider>
- <kind>Facet</kind>
- <instance xmi:idref="Shapes_ConnectorComponentInstance" />
- </internalEndpoint>
- </connection>
-
- <artifact xmi:id="Sender_ExecArtifact">
- <name>Sender_exec</name>
- <source/>
- <node/>
- <location>Sender_exec</location>
- </artifact>
- <artifact xmi:id="Sender_SvntArtifact">
- <name>Sender_svnt</name>
- <source/>
- <node/>
- <location>Sender_svnt</location>
- </artifact>
- <artifact xmi:id="Sender_StubArtifact">
- <name>Sender_stub</name>
- <source/>
- <node/>
- <location>Sender_stub</location>
- </artifact>
- <artifact xmi:id="Shapes_Connector_ExecArtifact">
- <name>Shapes_Connector_exec</name>
- <source/>
- <node/>
- <location>DDS_Shapes_Connector_exec</location>
- </artifact>
- <artifact xmi:id="Shapes_Connector_SvntArtifact">
- <name>Shapes_Connector_svnt</name>
- <source/>
- <node/>
- <location>DDS_Shapes_Connector_svnt</location>
- </artifact>
- <artifact xmi:id="Shapes_Connector_StubArtifact">
- <name>Shapes_Connector_stub</name>
- <source/>
- <node/>
- <location>DDS_Shapes_Connector_stub</location>
- </artifact>
- <artifact xmi:id="Receiver_ExecArtifact">
- <name>Receiver_exec</name>
- <source/>
- <node/>
- <location>Receiver_exec</location>
- </artifact>
- <artifact xmi:id="Receiver_SvntArtifact">
- <name>Receiver_svnt</name>
- <source/>
- <node/>
- <location>Receiver_svnt</location>
- </artifact>
- <artifact xmi:id="Receiver_StubArtifact">
- <name>Receiver_stub</name>
- <source/>
- <node/>
- <location>Receiver_stub</location>
- </artifact>
-</Deployment:DeploymentPlan>
diff --git a/CIAO/connectors/dds4ccm/examples/Shapes/descriptors/2013_interop_demo/run_7.pl b/CIAO/connectors/dds4ccm/examples/Shapes/descriptors/2013_interop_demo/run_7.pl
deleted file mode 100755
index 8f8185790c4..00000000000
--- a/CIAO/connectors/dds4ccm/examples/Shapes/descriptors/2013_interop_demo/run_7.pl
+++ /dev/null
@@ -1,245 +0,0 @@
-eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
- & eval 'exec perl -S $0 $argv:q'
- if 0;
-
-# $Id$
-# -*- perl -*-
-
-use lib "$ENV{'ACE_ROOT'}/bin";
-use PerlACE::TestTarget;
-
-$CIAO_ROOT = "$ENV{'CIAO_ROOT'}";
-$TAO_ROOT = "$ENV{'TAO_ROOT'}";
-$DANCE_ROOT = "$ENV{'DANCE_ROOT'}";
-$DDS_ROOT = "$ENV{'DDS_ROOT'}";
-
-$daemons_running = 0;
-$em_running = 0;
-$ns_running = 0;
-
-$nr_daemon = 2;
-@ports = ( 60001, 60002 );
-@iorbases = ( "NodeApp1.ior", "NodeApp2.ior" );
-@iorfiles = 0;
-@nodenames = ( "SenderNode", "ReceiverNode" );
-
-# ior files other than daemon
-$ior_nsbase = "ns.ior";
-$ior_nsfile = 0;
-$ior_embase = "EM.ior";
-$ior_emfile = 0;
-
-# Processes
-$E = 0;
-$EM = 0;
-$NS = 0;
-@DEAMONS = 0;
-
-# targets
-@tg_daemons = 0;
-$tg_naming = 0;
-$tg_exe_man = 0;
-$tg_executor = 0;
-
-$status = 0;
-$cdp_file = "run_7.cdp";
-
-sub create_targets {
- # naming service
- $tg_naming = PerlACE::TestTarget::create_target (1) || die "Create target for ns failed\n";
- $tg_naming->AddLibPath ('../lib');
- # daemon
- for ($i = 0; $i < $nr_daemon; ++$i) {
- $tg_daemons[$i] = PerlACE::TestTarget::create_target ($i+1) || die "Create target for daemon $i failed\n";
- $tg_daemons[$i]->AddLibPath ('../lib');
- }
- # execution manager
- $tg_exe_man = PerlACE::TestTarget::create_target (1) || die "Create target for EM failed\n";
- $tg_exe_man->AddLibPath ('../lib');
- # executor (plan_launcher)
- $tg_executor = PerlACE::TestTarget::create_target (1) || die "Create target for executor failed\n";
- $tg_executor->AddLibPath ('../lib');
-}
-
-sub init_ior_files {
- $ior_nsfile = $tg_naming->LocalFile ($ior_nsbase);
- $ior_emfile = $tg_exe_man->LocalFile ($ior_embase);
- for ($i = 0; $i < $nr_daemon; ++$i) {
- $iorfiles[$i] = $tg_daemons[$i]->LocalFile ($iorbases[$i]);
- }
- delete_ior_files ();
-}
-
-# Delete if there are any .ior files.
-sub delete_ior_files {
- for ($i = 0; $i < $nr_daemon; ++$i) {
- $tg_daemons[$i]->DeleteFile ($iorbases[$i]);
- }
- $tg_naming->DeleteFile ($ior_nsbase);
- $tg_exe_man->DeleteFile ($ior_embase);
- for ($i = 0; $i < $nr_daemon; ++$i) {
- $iorfiles[$i] = $tg_daemons[$i]->LocalFile ($iorbases[$i]);
- }
-}
-
-sub kill_node_daemon {
- for ($i = 0; $i < $nr_daemon; ++$i) {
- $DEAMONS[$i]->Kill (); $DEAMONS[$i]->TimedWait (1);
- }
-}
-
-sub kill_open_processes {
- if ($daemons_running == 1) {
- kill_node_daemon ();
- }
-
- if ($em_running == 1) {
- $EM->Kill (); $EM->TimedWait (1);
- }
-
- if ($ns_running == 1) {
- $NS->Kill (); $NS->TimedWait (1);
- }
- # in case shutdown did not perform as expected
- $tg_executor->KillAll ('dance_locality_manager');
-}
-
-sub run_node_daemons {
- for ($i = 0; $i < $nr_daemon; ++$i) {
- $iorbase = $iorbases[$i];
- $iorfile = $iorfiles[$i];
- $port = $ports[$i];
- $nodename = $nodenames[$i];
- $iiop = "iiop://localhost:$port";
- $node_app = $tg_daemons[$i]->GetArchDir("$DANCE_ROOT/bin/") . "dance_locality_manager";
-
- $d_cmd = "$DANCE_ROOT/bin/dance_node_manager";
- $d_param = "-ORBEndpoint $iiop -s $node_app -n $nodename=$iorfile -t 30 --domain-nc corbaloc:rir:/NameService";
-
- print "Run dance_node_manager with $d_param\n";
-
- $DEAMONS[$i] = $tg_daemons[$i]->CreateProcess ($d_cmd, $d_param);
- $DEAMONS[$i]->Spawn ();
-
- if ($tg_daemons[$i]->WaitForFileTimed($iorbase,
- $tg_daemons[$i]->ProcessStartWaitInterval ()) == -1) {
- print STDERR
- "ERROR: The ior $iorfile file of node daemon $i could not be found\n";
- for (; $i >= 0; --$i) {
- $DEAMONS[$i]->Kill (); $DEAMONS[$i]->TimedWait (1);
- }
- return -1;
- }
- }
- return 0;
-}
-
-create_targets ();
-init_ior_files ();
-
-# Invoke naming service
-
-$NS = $tg_naming->CreateProcess ("$TAO_ROOT/bin/tao_cosnaming", " -ORBEndpoint iiop://localhost:60003 -o $ior_nsfile");
-
-$ns_status = $NS->Spawn ();
-
-if ($ns_status != 0) {
- print STDERR "ERROR: Unable to execute the naming service\n";
- kill_open_processes ();
- exit 1;
-}
-
-print STDERR "Starting Naming Service with -ORBEndpoint iiop://localhost:60003 -o ns.ior\n";
-
-if ($tg_naming->WaitForFileTimed ($ior_nsbase,
- $tg_naming->ProcessStartWaitInterval ()) == -1) {
- print STDERR "ERROR: cannot find naming service IOR file\n";
- $NS->Kill (); $NS->TimedWait (1);
- exit 1;
-}
-
-$ns_running = 1;
-
-# Set up NamingService environment
-$ENV{"NameServiceIOR"} = "corbaloc:iiop:localhost:60003/NameService";
-
-# Invoke node daemon.
-print "Invoking node daemon\n";
-$status = run_node_daemons ();
-
-if ($status != 0) {
- print STDERR "ERROR: Unable to execute the node daemon\n";
- kill_open_processes ();
- exit 1;
-}
-
-$daemons_running = 1;
-
-# Invoke execution manager.
-print "Invoking execution manager (dance_execution_manager.exe) with -e$ior_emfile\n";
-$EM = $tg_exe_man->CreateProcess ("$DANCE_ROOT/bin/dance_execution_manager",
- "-e$ior_emfile --domain-nc corbaloc:rir:/NameService");
-$em_status = $EM->Spawn ();
-
-if ($em_status != 0) {
- print STDERR "ERROR: dance_execution_manager returned $em_status";
- exit 1;
-}
-
-if ($tg_exe_man->WaitForFileTimed ($ior_embase,
- $tg_exe_man->ProcessStartWaitInterval ()) == -1) {
- print STDERR
- "ERROR: The ior file of execution manager could not be found\n";
- kill_open_processes ();
- exit 1;
-}
-
-$em_running = 1;
-
-# Invoke executor - start the application -.
-print "Invoking executor - launch the application -\n";
-
-print "Start dance_plan_launcher.exe with -x $cdp_file -k file://$ior_emfile\n";
-$E = $tg_executor->CreateProcess ("$DANCE_ROOT/bin/dance_plan_launcher",
- "-x $cdp_file -k file://$ior_emfile");
-$pl_status = $E->SpawnWaitKill (2 * $tg_executor->ProcessStartWaitInterval ());
-
-if ($pl_status != 0) {
- print STDERR "ERROR: dance_plan_launcher returned $pl_status\n";
- kill_open_processes ();
- exit 1;
-}
-
-for ($i = 0; $i < $nr_daemon; ++$i) {
- if ($tg_daemons[$i]->WaitForFileTimed ($iorbases[$i],
- $tg_daemons[$i]->ProcessStopWaitInterval ()) == -1) {
- print STDERR "ERROR: The ior file of daemon $i could not be found\n";
- kill_open_processes ();
- exit 1;
- }
-}
-
-print "Sleeping 60 seconds to allow task to complete\n";
-sleep (60);
-
-# Invoke executor - stop the application -.
-print "Invoking executor - stop the application -\n";
-print "by running dance_plan_launcher.exe with -k file://$ior_emfile -x $cdp_file\n";
-
-$E = $tg_executor->CreateProcess ("$DANCE_ROOT/bin/dance_plan_launcher",
- "-k file://$ior_emfile -x $cdp_file -s");
-$pl_status = $E->SpawnWaitKill ($tg_executor->ProcessStartWaitInterval ());
-
-if ($pl_status != 0) {
- print STDERR "ERROR: dance_plan_launcher returned $pl_status\n";
- kill_open_processes ();
- exit 1;
-}
-
-print "Executor returned.\n";
-print "Shutting down rest of the processes.\n";
-
-delete_ior_files ();
-kill_open_processes ();
-
-exit $status;
diff --git a/CIAO/connectors/dds4ccm/examples/Shapes/descriptors/2013_interop_demo/run_7.xml b/CIAO/connectors/dds4ccm/examples/Shapes/descriptors/2013_interop_demo/run_7.xml
deleted file mode 100644
index 991bb7c34d8..00000000000
--- a/CIAO/connectors/dds4ccm/examples/Shapes/descriptors/2013_interop_demo/run_7.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- $Id$ -->
-<dds xmlns="http://www.omg.org/dds"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.omg.org/dds dds_qos.xsd">
- <qos_profile name="square">
- <datawriter_qos>
- <ownership_strength>
- <value>10</value>
- </ownership_strength>
- <ownership>
- <kind>EXCLUSIVE_OWNERSHIP_QOS</kind>
- </ownership>
- </datawriter_qos>
- <datareader_qos>
- <ownership>
- <kind>EXCLUSIVE_OWNERSHIP_QOS</kind>
- </ownership>
- </datareader_qos>
- </qos_profile>
-</dds>
diff --git a/CIAO/connectors/dds4ccm/examples/Shapes/descriptors/2013_interop_demo/run_8.cdp b/CIAO/connectors/dds4ccm/examples/Shapes/descriptors/2013_interop_demo/run_8.cdp
deleted file mode 100644
index fbb30d6dc3b..00000000000
--- a/CIAO/connectors/dds4ccm/examples/Shapes/descriptors/2013_interop_demo/run_8.cdp
+++ /dev/null
@@ -1,840 +0,0 @@
-<!-- $Id$ -->
-<Deployment:DeploymentPlan
- xmlns:Deployment="http://www.omg.org/Deployment"
- xmlns:xmi="http://www.omg.org/XMI"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd">
- <label>Shapes_Depl_1</label>
- <UUID>Shapes_Depl_1</UUID>
-
- <implementation xmi:id="ReceiverComponentImplementation">
- <name>ReceiverComponentImplementation</name>
- <source/>
- <artifact xmi:idref="Receiver_ExecArtifact" />
- <artifact xmi:idref="Receiver_SvntArtifact" />
- <execParameter>
- <!-- entrypoint as exec parameter (see 10.6.1) -->
- <name>component factory</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>create_Shapes_Receiver_Impl</string>
- </value>
- </value>
- </execParameter>
- <execParameter>
- <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>create_Shapes_Receiver_Servant</string>
- </value>
- </value>
- </execParameter>
- <execParameter>
- <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>Receiver_svnt</string>
- </value>
- </value>
- </execParameter>
- <execParameter>
- <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>Receiver_exec</string>
- </value>
- </value>
- </execParameter>
- </implementation>
-
- <implementation xmi:id="Shapes_ConnectorComponentImplementation">
- <name>Shapes_ConnectorComponentImplementation</name>
- <source/>
- <artifact xmi:idref="Shapes_Connector_ExecArtifact" />
- <artifact xmi:idref="Shapes_Connector_SvntArtifact" />
- <execParameter>
- <!-- entrypoint as exec parameter (see 10.6.1) -->
- <name>component factory</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>create_Shapes_DDS_Event_Impl</string>
- </value>
- </value>
- </execParameter>
- <execParameter>
- <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>create_Shapes_DDS_Event_Servant</string>
- </value>
- </value>
- </execParameter>
- <execParameter>
- <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>Shapes_Connector_svnt</string>
- </value>
- </value>
- </execParameter>
- <execParameter>
- <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>Shapes_Connector_exec</string>
- </value>
- </value>
- </execParameter>
- </implementation>
- <implementation xmi:id="SenderComponentImplementation">
- <name>SenderComponentImplementation</name>
- <source/>
- <artifact xmi:idref="Sender_ExecArtifact" />
- <artifact xmi:idref="Sender_SvntArtifact" />
- <execParameter>
- <!-- entrypoint as exec parameter (see 10.6.1) -->
- <name>component factory</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>create_Shapes_Sender_Impl</string>
- </value>
- </value>
- </execParameter>
- <execParameter>
- <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>create_Shapes_Sender_Servant</string>
- </value>
- </value>
- </execParameter>
- <execParameter>
- <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>Sender_svnt</string>
- </value>
- </value>
- </execParameter>
- <execParameter>
- <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>Sender_exec</string>
- </value>
- </value>
- </execParameter>
- </implementation>
-
- <instance xmi:id="SquareReceiverComponentInstance">
- <name>SquareReceiverComponent</name>
- <node>ReceiverNode</node>
- <!-- hostname -->
- <source/>
- <implementation xmi:idref="ReceiverComponentImplementation" />
- <configProperty>
- <name>rate</name>
- <value>
- <type>
- <kind>tk_ulong</kind>
- </type>
- <value>
- <ulong>1</ulong>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>get_data</name>
- <value>
- <type>
- <kind>tk_boolean</kind>
- </type>
- <value>
- <boolean>false</boolean>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>read_data</name>
- <value>
- <type>
- <kind>tk_boolean</kind>
- </type>
- <value>
- <boolean>false</boolean>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>raw_listen</name>
- <value>
- <type>
- <kind>tk_boolean</kind>
- </type>
- <value>
- <boolean>true</boolean>
- </value>
- </value>
- </configProperty>
- </instance>
- <instance xmi:id="CircleReceiverComponentInstance">
- <name>CircleReceiverComponent</name>
- <node>ReceiverNode</node>
- <!-- hostname -->
- <source/>
- <implementation xmi:idref="ReceiverComponentImplementation" />
- <configProperty>
- <name>rate</name>
- <value>
- <type>
- <kind>tk_ulong</kind>
- </type>
- <value>
- <ulong>1</ulong>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>get_data</name>
- <value>
- <type>
- <kind>tk_boolean</kind>
- </type>
- <value>
- <boolean>false</boolean>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>read_data</name>
- <value>
- <type>
- <kind>tk_boolean</kind>
- </type>
- <value>
- <boolean>false</boolean>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>raw_listen</name>
- <value>
- <type>
- <kind>tk_boolean</kind>
- </type>
- <value>
- <boolean>true</boolean>
- </value>
- </value>
- </configProperty>
- </instance>
- <instance xmi:id="SquareShapes_ConnectorComponentInstance">
- <name>SquareShapes_ConnectorComponent</name>
- <node>SenderNode</node>
- <!-- hostname -->
- <source/>
- <implementation xmi:idref="Shapes_ConnectorComponentImplementation" />
- <configProperty>
- <name>qos_profile</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>run_6#square</string>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>topic_name</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>Square</string>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>type_name</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>ShapeType</string>
- </value>
- </value>
- </configProperty>
- </instance>
- <instance xmi:id="CircleShapes_ConnectorComponentInstance">
- <name>CircleShapes_ConnectorComponent</name>
- <node>SenderNode</node>
- <!-- hostname -->
- <source/>
- <implementation xmi:idref="Shapes_ConnectorComponentImplementation" />
- <configProperty>
- <name>qos_profile</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>run_6#circle</string>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>topic_name</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>Circle</string>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>type_name</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>ShapeType</string>
- </value>
- </value>
- </configProperty>
- </instance>
- <instance xmi:id="SquareShapes_ConnectorComponentInstance2">
- <name>SquareShapes_ConnectorComponent2</name>
- <node>ReceiverNode</node>
- <!-- hostname -->
- <source/>
- <implementation xmi:idref="Shapes_ConnectorComponentImplementation" />
- <configProperty>
- <name>qos_profile</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>run_6#square</string>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>topic_name</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>Square</string>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>type_name</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>ShapeType</string>
- </value>
- </value>
- </configProperty>
- </instance>
- <instance xmi:id="CircleShapes_ConnectorComponentInstance2">
- <name>CircleShapes_ConnectorComponent2</name>
- <node>ReceiverNode</node>
- <!-- hostname -->
- <source/>
- <implementation xmi:idref="Shapes_ConnectorComponentImplementation" />
- <configProperty>
- <name>qos_profile</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>run_6#circle</string>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>topic_name</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>Circle</string>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>type_name</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>ShapeType</string>
- </value>
- </value>
- </configProperty>
- </instance>
- <instance xmi:id="SquareSenderComponentInstance">
- <name>SquareSenderComponent</name>
- <node>SenderNode</node>
- <!-- hostname -->
- <source/>
- <implementation xmi:idref="SenderComponentImplementation" />
- <configProperty>
- <name>color</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>ORANGE</string>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>rate</name>
- <value>
- <type>
- <kind>tk_ulong</kind>
- </type>
- <value>
- <ulong>10</ulong>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>max_x</name>
- <value>
- <type>
- <kind>tk_ushort</kind>
- </type>
- <value>
- <ushort>225</ushort>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>max_y</name>
- <value>
- <type>
- <kind>tk_ushort</kind>
- </type>
- <value>
- <ushort>250</ushort>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>max_size</name>
- <value>
- <type>
- <kind>tk_ushort</kind>
- </type>
- <value>
- <ushort>50</ushort>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>resize_shape</name>
- <value>
- <type>
- <kind>tk_boolean</kind>
- </type>
- <value>
- <boolean>false</boolean>
- </value>
- </value>
- </configProperty>
- </instance>
- <instance xmi:id="CircleSenderComponentInstance">
- <name>CircleSenderComponent</name>
- <node>SenderNode</node>
- <!-- hostname -->
- <source/>
- <implementation xmi:idref="SenderComponentImplementation" />
- <configProperty>
- <name>color</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>ORANGE</string>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>rate</name>
- <value>
- <type>
- <kind>tk_ulong</kind>
- </type>
- <value>
- <ulong>10</ulong>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>max_x</name>
- <value>
- <type>
- <kind>tk_ushort</kind>
- </type>
- <value>
- <ushort>225</ushort>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>max_y</name>
- <value>
- <type>
- <kind>tk_ushort</kind>
- </type>
- <value>
- <ushort>250</ushort>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>max_size</name>
- <value>
- <type>
- <kind>tk_ushort</kind>
- </type>
- <value>
- <ushort>50</ushort>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>resize_shape</name>
- <value>
- <type>
- <kind>tk_boolean</kind>
- </type>
- <value>
- <boolean>false</boolean>
- </value>
- </value>
- </configProperty>
- </instance>
- <connection>
- <name>square_info_out_data</name>
- <deployRequirement>
- <name>edu.dre.vanderbilt.DAnCE.ConnectionType</name>
- <resourceType>Local_Interface</resourceType>
- </deployRequirement>
- <internalEndpoint>
- <portName>info_out_data</portName>
- <provider>false</provider>
- <kind>SimplexReceptacle</kind>
- <instance xmi:idref="SquareReceiverComponentInstance" />
- </internalEndpoint>
- <internalEndpoint>
- <portName>push_consumer_data</portName>
- <provider>true</provider>
- <kind>Facet</kind>
- <instance xmi:idref="SquareShapes_ConnectorComponentInstance2" />
- </internalEndpoint>
- </connection>
- <connection>
- <name>square_listenercontrol</name>
- <deployRequirement>
- <name>edu.dre.vanderbilt.DAnCE.ConnectionType</name>
- <resourceType>Local_Interface</resourceType>
- </deployRequirement>
- <internalEndpoint>
- <portName>info_out_data_control</portName>
- <provider>false</provider>
- <kind>SimplexReceptacle</kind>
- <instance xmi:idref="SquareReceiverComponentInstance" />
- </internalEndpoint>
- <internalEndpoint>
- <portName>push_consumer_data_control</portName>
- <provider>true</provider>
- <kind>Facet</kind>
- <instance xmi:idref="SquareShapes_ConnectorComponentInstance2" />
- </internalEndpoint>
- </connection>
- <connection>
- <name>square_portstatuslistener</name>
- <deployRequirement>
- <name>edu.dre.vanderbilt.DAnCE.ConnectionType</name>
- <resourceType>Local_Interface</resourceType>
- </deployRequirement>
- <internalEndpoint>
- <portName>info_out_status</portName>
- <provider>true</provider>
- <kind>Facet</kind>
- <instance xmi:idref="SquareReceiverComponentInstance" />
- </internalEndpoint>
- <internalEndpoint>
- <portName>push_consumer_status</portName>
- <provider>false</provider>
- <kind>SimplexReceptacle</kind>
- <instance xmi:idref="SquareShapes_ConnectorComponentInstance2" />
- </internalEndpoint>
- </connection>
- <connection>
- <name>square_listener</name>
- <deployRequirement>
- <name>edu.dre.vanderbilt.DAnCE.ConnectionType</name>
- <resourceType>Local_Interface</resourceType>
- </deployRequirement>
- <internalEndpoint>
- <portName>info_out_data_listener</portName>
- <provider>true</provider>
- <kind>Facet</kind>
- <instance xmi:idref="SquareReceiverComponentInstance" />
- </internalEndpoint>
- <internalEndpoint>
- <portName>push_consumer_data_listener</portName>
- <provider>false</provider>
- <kind>SimplexReceptacle</kind>
- <instance xmi:idref="SquareShapes_ConnectorComponentInstance2" />
- </internalEndpoint>
- </connection>
-
- <connection>
- <name>circle_info_out_data</name>
- <deployRequirement>
- <name>edu.dre.vanderbilt.DAnCE.ConnectionType</name>
- <resourceType>Local_Interface</resourceType>
- </deployRequirement>
- <internalEndpoint>
- <portName>info_out_data</portName>
- <provider>false</provider>
- <kind>SimplexReceptacle</kind>
- <instance xmi:idref="CircleReceiverComponentInstance" />
- </internalEndpoint>
- <internalEndpoint>
- <portName>push_consumer_data</portName>
- <provider>true</provider>
- <kind>Facet</kind>
- <instance xmi:idref="CircleShapes_ConnectorComponentInstance2" />
- </internalEndpoint>
- </connection>
- <connection>
- <name>circle_listenercontrol</name>
- <deployRequirement>
- <name>edu.dre.vanderbilt.DAnCE.ConnectionType</name>
- <resourceType>Local_Interface</resourceType>
- </deployRequirement>
- <internalEndpoint>
- <portName>info_out_data_control</portName>
- <provider>false</provider>
- <kind>SimplexReceptacle</kind>
- <instance xmi:idref="CircleReceiverComponentInstance" />
- </internalEndpoint>
- <internalEndpoint>
- <portName>push_consumer_data_control</portName>
- <provider>true</provider>
- <kind>Facet</kind>
- <instance xmi:idref="CircleShapes_ConnectorComponentInstance2" />
- </internalEndpoint>
- </connection>
- <connection>
- <name>circle_portstatuslistener</name>
- <deployRequirement>
- <name>edu.dre.vanderbilt.DAnCE.ConnectionType</name>
- <resourceType>Local_Interface</resourceType>
- </deployRequirement>
- <internalEndpoint>
- <portName>info_out_status</portName>
- <provider>true</provider>
- <kind>Facet</kind>
- <instance xmi:idref="CircleReceiverComponentInstance" />
- </internalEndpoint>
- <internalEndpoint>
- <portName>push_consumer_status</portName>
- <provider>false</provider>
- <kind>SimplexReceptacle</kind>
- <instance xmi:idref="CircleShapes_ConnectorComponentInstance2" />
- </internalEndpoint>
- </connection>
- <connection>
- <name>circle_listener</name>
- <deployRequirement>
- <name>edu.dre.vanderbilt.DAnCE.ConnectionType</name>
- <resourceType>Local_Interface</resourceType>
- </deployRequirement>
- <internalEndpoint>
- <portName>info_out_data_listener</portName>
- <provider>true</provider>
- <kind>Facet</kind>
- <instance xmi:idref="CircleReceiverComponentInstance" />
- </internalEndpoint>
- <internalEndpoint>
- <portName>push_consumer_data_listener</portName>
- <provider>false</provider>
- <kind>SimplexReceptacle</kind>
- <instance xmi:idref="CircleShapes_ConnectorComponentInstance2" />
- </internalEndpoint>
- </connection>
-
- <connection>
- <name>square_writer_connection</name>
- <deployRequirement>
- <name>edu.dre.vanderbilt.DAnCE.ConnectionType</name>
- <resourceType>Local_Interface</resourceType>
- </deployRequirement>
- <internalEndpoint>
- <portName>info_write_data</portName>
- <provider>false</provider>
- <kind>SimplexReceptacle</kind>
- <instance xmi:idref="SquareSenderComponentInstance" />
- </internalEndpoint>
- <internalEndpoint>
- <portName>supplier_data</portName>
- <provider>true</provider>
- <kind>Facet</kind>
- <instance xmi:idref="SquareShapes_ConnectorComponentInstance" />
- </internalEndpoint>
- </connection>
- <connection>
- <name>circle_writer_connection</name>
- <deployRequirement>
- <name>edu.dre.vanderbilt.DAnCE.ConnectionType</name>
- <resourceType>Local_Interface</resourceType>
- </deployRequirement>
- <internalEndpoint>
- <portName>info_write_data</portName>
- <provider>false</provider>
- <kind>SimplexReceptacle</kind>
- <instance xmi:idref="CircleSenderComponentInstance" />
- </internalEndpoint>
- <internalEndpoint>
- <portName>supplier_data</portName>
- <provider>true</provider>
- <kind>Facet</kind>
- <instance xmi:idref="CircleShapes_ConnectorComponentInstance" />
- </internalEndpoint>
- </connection>
- <connection>
- <name>triangle_writer_connection</name>
- <deployRequirement>
- <name>edu.dre.vanderbilt.DAnCE.ConnectionType</name>
- <resourceType>Local_Interface</resourceType>
- </deployRequirement>
- <internalEndpoint>
- <portName>info_write_data</portName>
- <provider>false</provider>
- <kind>SimplexReceptacle</kind>
- <instance xmi:idref="TriangleSenderComponentInstance" />
- </internalEndpoint>
- <internalEndpoint>
- <portName>supplier_data</portName>
- <provider>true</provider>
- <kind>Facet</kind>
- <instance xmi:idref="TriangleShapes_ConnectorComponentInstance" />
- </internalEndpoint>
- </connection>
-
-
- <artifact xmi:id="Sender_ExecArtifact">
- <name>Sender_exec</name>
- <source/>
- <node/>
- <location>Sender_exec</location>
- </artifact>
- <artifact xmi:id="Sender_SvntArtifact">
- <name>Sender_svnt</name>
- <source/>
- <node/>
- <location>Sender_svnt</location>
- </artifact>
- <artifact xmi:id="Sender_StubArtifact">
- <name>Sender_stub</name>
- <source/>
- <node/>
- <location>Sender_stub</location>
- </artifact>
- <artifact xmi:id="Shapes_Connector_ExecArtifact">
- <name>Shapes_Connector_exec</name>
- <source/>
- <node/>
- <location>DDS_Shapes_Connector_exec</location>
- </artifact>
- <artifact xmi:id="Shapes_Connector_SvntArtifact">
- <name>Shapes_Connector_svnt</name>
- <source/>
- <node/>
- <location>DDS_Shapes_Connector_svnt</location>
- </artifact>
- <artifact xmi:id="Shapes_Connector_StubArtifact">
- <name>Shapes_Connector_stub</name>
- <source/>
- <node/>
- <location>DDS_Shapes_Connector_stub</location>
- </artifact>
- <artifact xmi:id="Receiver_ExecArtifact">
- <name>Receiver_exec</name>
- <source/>
- <node/>
- <location>Receiver_exec</location>
- </artifact>
- <artifact xmi:id="Receiver_SvntArtifact">
- <name>Receiver_svnt</name>
- <source/>
- <node/>
- <location>Receiver_svnt</location>
- </artifact>
- <artifact xmi:id="Receiver_StubArtifact">
- <name>Receiver_stub</name>
- <source/>
- <node/>
- <location>Receiver_stub</location>
- </artifact>
-</Deployment:DeploymentPlan>
diff --git a/CIAO/connectors/dds4ccm/examples/Shapes/descriptors/2013_interop_demo/run_8.pl b/CIAO/connectors/dds4ccm/examples/Shapes/descriptors/2013_interop_demo/run_8.pl
deleted file mode 100755
index 0a567fce817..00000000000
--- a/CIAO/connectors/dds4ccm/examples/Shapes/descriptors/2013_interop_demo/run_8.pl
+++ /dev/null
@@ -1,245 +0,0 @@
-eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
- & eval 'exec perl -S $0 $argv:q'
- if 0;
-
-# $Id$
-# -*- perl -*-
-
-use lib "$ENV{'ACE_ROOT'}/bin";
-use PerlACE::TestTarget;
-
-$CIAO_ROOT = "$ENV{'CIAO_ROOT'}";
-$TAO_ROOT = "$ENV{'TAO_ROOT'}";
-$DANCE_ROOT = "$ENV{'DANCE_ROOT'}";
-$DDS_ROOT = "$ENV{'DDS_ROOT'}";
-
-$daemons_running = 0;
-$em_running = 0;
-$ns_running = 0;
-
-$nr_daemon = 2;
-@ports = ( 60001, 60002 );
-@iorbases = ( "NodeApp1.ior", "NodeApp2.ior" );
-@iorfiles = 0;
-@nodenames = ( "SenderNode", "ReceiverNode" );
-
-# ior files other than daemon
-$ior_nsbase = "ns.ior";
-$ior_nsfile = 0;
-$ior_embase = "EM.ior";
-$ior_emfile = 0;
-
-# Processes
-$E = 0;
-$EM = 0;
-$NS = 0;
-@DEAMONS = 0;
-
-# targets
-@tg_daemons = 0;
-$tg_naming = 0;
-$tg_exe_man = 0;
-$tg_executor = 0;
-
-$status = 0;
-$cdp_file = "run_8.cdp";
-
-sub create_targets {
- # naming service
- $tg_naming = PerlACE::TestTarget::create_target (1) || die "Create target for ns failed\n";
- $tg_naming->AddLibPath ('../lib');
- # daemon
- for ($i = 0; $i < $nr_daemon; ++$i) {
- $tg_daemons[$i] = PerlACE::TestTarget::create_target ($i+1) || die "Create target for daemon $i failed\n";
- $tg_daemons[$i]->AddLibPath ('../lib');
- }
- # execution manager
- $tg_exe_man = PerlACE::TestTarget::create_target (1) || die "Create target for EM failed\n";
- $tg_exe_man->AddLibPath ('../lib');
- # executor (plan_launcher)
- $tg_executor = PerlACE::TestTarget::create_target (1) || die "Create target for executor failed\n";
- $tg_executor->AddLibPath ('../lib');
-}
-
-sub init_ior_files {
- $ior_nsfile = $tg_naming->LocalFile ($ior_nsbase);
- $ior_emfile = $tg_exe_man->LocalFile ($ior_embase);
- for ($i = 0; $i < $nr_daemon; ++$i) {
- $iorfiles[$i] = $tg_daemons[$i]->LocalFile ($iorbases[$i]);
- }
- delete_ior_files ();
-}
-
-# Delete if there are any .ior files.
-sub delete_ior_files {
- for ($i = 0; $i < $nr_daemon; ++$i) {
- $tg_daemons[$i]->DeleteFile ($iorbases[$i]);
- }
- $tg_naming->DeleteFile ($ior_nsbase);
- $tg_exe_man->DeleteFile ($ior_embase);
- for ($i = 0; $i < $nr_daemon; ++$i) {
- $iorfiles[$i] = $tg_daemons[$i]->LocalFile ($iorbases[$i]);
- }
-}
-
-sub kill_node_daemon {
- for ($i = 0; $i < $nr_daemon; ++$i) {
- $DEAMONS[$i]->Kill (); $DEAMONS[$i]->TimedWait (1);
- }
-}
-
-sub kill_open_processes {
- if ($daemons_running == 1) {
- kill_node_daemon ();
- }
-
- if ($em_running == 1) {
- $EM->Kill (); $EM->TimedWait (1);
- }
-
- if ($ns_running == 1) {
- $NS->Kill (); $NS->TimedWait (1);
- }
- # in case shutdown did not perform as expected
- $tg_executor->KillAll ('dance_locality_manager');
-}
-
-sub run_node_daemons {
- for ($i = 0; $i < $nr_daemon; ++$i) {
- $iorbase = $iorbases[$i];
- $iorfile = $iorfiles[$i];
- $port = $ports[$i];
- $nodename = $nodenames[$i];
- $iiop = "iiop://localhost:$port";
- $node_app = $tg_daemons[$i]->GetArchDir("$DANCE_ROOT/bin/") . "dance_locality_manager";
-
- $d_cmd = "$DANCE_ROOT/bin/dance_node_manager";
- $d_param = "-ORBEndpoint $iiop -s $node_app -n $nodename=$iorfile -t 30 --domain-nc corbaloc:rir:/NameService";
-
- print "Run dance_node_manager with $d_param\n";
-
- $DEAMONS[$i] = $tg_daemons[$i]->CreateProcess ($d_cmd, $d_param);
- $DEAMONS[$i]->Spawn ();
-
- if ($tg_daemons[$i]->WaitForFileTimed($iorbase,
- $tg_daemons[$i]->ProcessStartWaitInterval ()) == -1) {
- print STDERR
- "ERROR: The ior $iorfile file of node daemon $i could not be found\n";
- for (; $i >= 0; --$i) {
- $DEAMONS[$i]->Kill (); $DEAMONS[$i]->TimedWait (1);
- }
- return -1;
- }
- }
- return 0;
-}
-
-create_targets ();
-init_ior_files ();
-
-# Invoke naming service
-
-$NS = $tg_naming->CreateProcess ("$TAO_ROOT/bin/tao_cosnaming", " -ORBEndpoint iiop://localhost:60003 -o $ior_nsfile");
-
-$ns_status = $NS->Spawn ();
-
-if ($ns_status != 0) {
- print STDERR "ERROR: Unable to execute the naming service\n";
- kill_open_processes ();
- exit 1;
-}
-
-print STDERR "Starting Naming Service with -ORBEndpoint iiop://localhost:60003 -o ns.ior\n";
-
-if ($tg_naming->WaitForFileTimed ($ior_nsbase,
- $tg_naming->ProcessStartWaitInterval ()) == -1) {
- print STDERR "ERROR: cannot find naming service IOR file\n";
- $NS->Kill (); $NS->TimedWait (1);
- exit 1;
-}
-
-$ns_running = 1;
-
-# Set up NamingService environment
-$ENV{"NameServiceIOR"} = "corbaloc:iiop:localhost:60003/NameService";
-
-# Invoke node daemon.
-print "Invoking node daemon\n";
-$status = run_node_daemons ();
-
-if ($status != 0) {
- print STDERR "ERROR: Unable to execute the node daemon\n";
- kill_open_processes ();
- exit 1;
-}
-
-$daemons_running = 1;
-
-# Invoke execution manager.
-print "Invoking execution manager (dance_execution_manager.exe) with -e$ior_emfile\n";
-$EM = $tg_exe_man->CreateProcess ("$DANCE_ROOT/bin/dance_execution_manager",
- "-e$ior_emfile --domain-nc corbaloc:rir:/NameService");
-$em_status = $EM->Spawn ();
-
-if ($em_status != 0) {
- print STDERR "ERROR: dance_execution_manager returned $em_status";
- exit 1;
-}
-
-if ($tg_exe_man->WaitForFileTimed ($ior_embase,
- $tg_exe_man->ProcessStartWaitInterval ()) == -1) {
- print STDERR
- "ERROR: The ior file of execution manager could not be found\n";
- kill_open_processes ();
- exit 1;
-}
-
-$em_running = 1;
-
-# Invoke executor - start the application -.
-print "Invoking executor - launch the application -\n";
-
-print "Start dance_plan_launcher.exe with -x $cdp_file -k file://$ior_emfile\n";
-$E = $tg_executor->CreateProcess ("$DANCE_ROOT/bin/dance_plan_launcher",
- "-x $cdp_file -k file://$ior_emfile");
-$pl_status = $E->SpawnWaitKill (2 * $tg_executor->ProcessStartWaitInterval ());
-
-if ($pl_status != 0) {
- print STDERR "ERROR: dance_plan_launcher returned $pl_status\n";
- kill_open_processes ();
- exit 1;
-}
-
-for ($i = 0; $i < $nr_daemon; ++$i) {
- if ($tg_daemons[$i]->WaitForFileTimed ($iorbases[$i],
- $tg_daemons[$i]->ProcessStopWaitInterval ()) == -1) {
- print STDERR "ERROR: The ior file of daemon $i could not be found\n";
- kill_open_processes ();
- exit 1;
- }
-}
-
-print "Sleeping 60 seconds to allow task to complete\n";
-sleep (60);
-
-# Invoke executor - stop the application -.
-print "Invoking executor - stop the application -\n";
-print "by running dance_plan_launcher.exe with -k file://$ior_emfile -x $cdp_file\n";
-
-$E = $tg_executor->CreateProcess ("$DANCE_ROOT/bin/dance_plan_launcher",
- "-k file://$ior_emfile -x $cdp_file -s");
-$pl_status = $E->SpawnWaitKill ($tg_executor->ProcessStartWaitInterval ());
-
-if ($pl_status != 0) {
- print STDERR "ERROR: dance_plan_launcher returned $pl_status\n";
- kill_open_processes ();
- exit 1;
-}
-
-print "Executor returned.\n";
-print "Shutting down rest of the processes.\n";
-
-delete_ior_files ();
-kill_open_processes ();
-
-exit $status;
diff --git a/CIAO/connectors/dds4ccm/examples/Shapes/descriptors/2013_interop_demo/run_8.xml b/CIAO/connectors/dds4ccm/examples/Shapes/descriptors/2013_interop_demo/run_8.xml
deleted file mode 100644
index 991bb7c34d8..00000000000
--- a/CIAO/connectors/dds4ccm/examples/Shapes/descriptors/2013_interop_demo/run_8.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- $Id$ -->
-<dds xmlns="http://www.omg.org/dds"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.omg.org/dds dds_qos.xsd">
- <qos_profile name="square">
- <datawriter_qos>
- <ownership_strength>
- <value>10</value>
- </ownership_strength>
- <ownership>
- <kind>EXCLUSIVE_OWNERSHIP_QOS</kind>
- </ownership>
- </datawriter_qos>
- <datareader_qos>
- <ownership>
- <kind>EXCLUSIVE_OWNERSHIP_QOS</kind>
- </ownership>
- </datareader_qos>
- </qos_profile>
-</dds>
diff --git a/CIAO/connectors/dds4ccm/examples/Shapes/descriptors/2013_interop_demo/run_9.cdp b/CIAO/connectors/dds4ccm/examples/Shapes/descriptors/2013_interop_demo/run_9.cdp
deleted file mode 100644
index cf03725a8be..00000000000
--- a/CIAO/connectors/dds4ccm/examples/Shapes/descriptors/2013_interop_demo/run_9.cdp
+++ /dev/null
@@ -1,520 +0,0 @@
-<!-- $Id$ -->
-<Deployment:DeploymentPlan
- xmlns:Deployment="http://www.omg.org/Deployment"
- xmlns:xmi="http://www.omg.org/XMI"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd">
- <label>Shapes_Depl_1</label>
- <UUID>Shapes_Depl_1</UUID>
-
- <implementation xmi:id="ReceiverComponentImplementation">
- <name>ReceiverComponentImplementation</name>
- <source/>
- <artifact xmi:idref="Receiver_ExecArtifact" />
- <artifact xmi:idref="Receiver_SvntArtifact" />
- <execParameter>
- <!-- entrypoint as exec parameter (see 10.6.1) -->
- <name>component factory</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>create_Shapes_Receiver_Impl</string>
- </value>
- </value>
- </execParameter>
- <execParameter>
- <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>create_Shapes_Receiver_Servant</string>
- </value>
- </value>
- </execParameter>
- <execParameter>
- <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>Receiver_svnt</string>
- </value>
- </value>
- </execParameter>
- <execParameter>
- <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>Receiver_exec</string>
- </value>
- </value>
- </execParameter>
- </implementation>
-
- <implementation xmi:id="Shapes_ConnectorComponentImplementation">
- <name>Shapes_ConnectorComponentImplementation</name>
- <source/>
- <artifact xmi:idref="Shapes_Connector_ExecArtifact" />
- <artifact xmi:idref="Shapes_Connector_SvntArtifact" />
- <execParameter>
- <!-- entrypoint as exec parameter (see 10.6.1) -->
- <name>component factory</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>create_Shapes_DDS_Event_Impl</string>
- </value>
- </value>
- </execParameter>
- <execParameter>
- <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>create_Shapes_DDS_Event_Servant</string>
- </value>
- </value>
- </execParameter>
- <execParameter>
- <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>Shapes_Connector_svnt</string>
- </value>
- </value>
- </execParameter>
- <execParameter>
- <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>Shapes_Connector_exec</string>
- </value>
- </value>
- </execParameter>
- </implementation>
- <implementation xmi:id="SenderComponentImplementation">
- <name>SenderComponentImplementation</name>
- <source/>
- <artifact xmi:idref="Sender_ExecArtifact" />
- <artifact xmi:idref="Sender_SvntArtifact" />
- <execParameter>
- <!-- entrypoint as exec parameter (see 10.6.1) -->
- <name>component factory</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>create_Shapes_Sender_Impl</string>
- </value>
- </value>
- </execParameter>
- <execParameter>
- <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>create_Shapes_Sender_Servant</string>
- </value>
- </value>
- </execParameter>
- <execParameter>
- <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>Sender_svnt</string>
- </value>
- </value>
- </execParameter>
- <execParameter>
- <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>Sender_exec</string>
- </value>
- </value>
- </execParameter>
- </implementation>
- <instance xmi:id="ReceiverComponentInstance">
- <name>ReceiverComponent</name>
- <node>ReceiverNode</node>
- <!-- hostname -->
- <source/>
- <implementation xmi:idref="ReceiverComponentImplementation" />
- <configProperty>
- <name>rate</name>
- <value>
- <type>
- <kind>tk_ulong</kind>
- </type>
- <value>
- <ulong>1</ulong>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>get_data</name>
- <value>
- <type>
- <kind>tk_boolean</kind>
- </type>
- <value>
- <boolean>false</boolean>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>read_data</name>
- <value>
- <type>
- <kind>tk_boolean</kind>
- </type>
- <value>
- <boolean>false</boolean>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>raw_listen</name>
- <value>
- <type>
- <kind>tk_boolean</kind>
- </type>
- <value>
- <boolean>true</boolean>
- </value>
- </value>
- </configProperty>
- </instance>
- <instance xmi:id="Shapes_ConnectorComponentInstance">
- <name>Shapes_ConnectorComponent</name>
- <node>SenderNode</node>
- <!-- hostname -->
- <source/>
- <implementation xmi:idref="Shapes_ConnectorComponentImplementation" />
- <configProperty>
- <name>qos_profile</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>run_4#square</string>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>topic_name</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>Square</string>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>type_name</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>ShapeType</string>
- </value>
- </value>
- </configProperty>
- </instance>
- <instance xmi:id="Shapes_ConnectorComponentInstance2">
- <name>Shapes_ConnectorComponent2</name>
- <node>ReceiverNode</node>
- <!-- hostname -->
- <source/>
- <implementation xmi:idref="Shapes_ConnectorComponentImplementation" />
- <configProperty>
- <name>qos_profile</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>run_4#square</string>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>topic_name</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>Square</string>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>type_name</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>ShapeType</string>
- </value>
- </value>
- </configProperty>
- </instance>
- <instance xmi:id="SenderComponentInstance">
- <name>SenderComponent</name>
- <node>SenderNode</node>
- <!-- hostname -->
- <source/>
- <implementation xmi:idref="SenderComponentImplementation" />
- <configProperty>
- <name>color</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>CYAN</string>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>rate</name>
- <value>
- <type>
- <kind>tk_ulong</kind>
- </type>
- <value>
- <ulong>10</ulong>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>max_x</name>
- <value>
- <type>
- <kind>tk_ushort</kind>
- </type>
- <value>
- <ushort>225</ushort>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>max_y</name>
- <value>
- <type>
- <kind>tk_ushort</kind>
- </type>
- <value>
- <ushort>250</ushort>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>max_size</name>
- <value>
- <type>
- <kind>tk_ushort</kind>
- </type>
- <value>
- <ushort>50</ushort>
- </value>
- </value>
- </configProperty>
- <configProperty>
- <name>resize_shape</name>
- <value>
- <type>
- <kind>tk_boolean</kind>
- </type>
- <value>
- <boolean>true</boolean>
- </value>
- </value>
- </configProperty>
- </instance>
-
- <connection>
- <name>info_out_data</name>
- <deployRequirement>
- <name>edu.dre.vanderbilt.DAnCE.ConnectionType</name>
- <resourceType>Local_Interface</resourceType>
- </deployRequirement>
- <internalEndpoint>
- <portName>info_out_data</portName>
- <provider>false</provider>
- <kind>SimplexReceptacle</kind>
- <instance xmi:idref="ReceiverComponentInstance" />
- </internalEndpoint>
- <internalEndpoint>
- <portName>push_consumer_data</portName>
- <provider>true</provider>
- <kind>Facet</kind>
- <instance xmi:idref="Shapes_ConnectorComponentInstance2" />
- </internalEndpoint>
- </connection>
- <connection>
- <name>_listenercontrol</name>
- <deployRequirement>
- <name>edu.dre.vanderbilt.DAnCE.ConnectionType</name>
- <resourceType>Local_Interface</resourceType>
- </deployRequirement>
- <internalEndpoint>
- <portName>info_out_data_control</portName>
- <provider>false</provider>
- <kind>SimplexReceptacle</kind>
- <instance xmi:idref="ReceiverComponentInstance" />
- </internalEndpoint>
- <internalEndpoint>
- <portName>push_consumer_data_control</portName>
- <provider>true</provider>
- <kind>Facet</kind>
- <instance xmi:idref="Shapes_ConnectorComponentInstance2" />
- </internalEndpoint>
- </connection>
- <connection>
- <name>_portstatuslistener</name>
- <deployRequirement>
- <name>edu.dre.vanderbilt.DAnCE.ConnectionType</name>
- <resourceType>Local_Interface</resourceType>
- </deployRequirement>
- <internalEndpoint>
- <portName>info_out_status</portName>
- <provider>true</provider>
- <kind>Facet</kind>
- <instance xmi:idref="ReceiverComponentInstance" />
- </internalEndpoint>
- <internalEndpoint>
- <portName>push_consumer_status</portName>
- <provider>false</provider>
- <kind>SimplexReceptacle</kind>
- <instance xmi:idref="Shapes_ConnectorComponentInstance2" />
- </internalEndpoint>
- </connection>
- <connection>
- <name>_listener</name>
- <deployRequirement>
- <name>edu.dre.vanderbilt.DAnCE.ConnectionType</name>
- <resourceType>Local_Interface</resourceType>
- </deployRequirement>
- <internalEndpoint>
- <portName>info_out_data_listener</portName>
- <provider>true</provider>
- <kind>Facet</kind>
- <instance xmi:idref="ReceiverComponentInstance" />
- </internalEndpoint>
- <internalEndpoint>
- <portName>push_consumer_data_listener</portName>
- <provider>false</provider>
- <kind>SimplexReceptacle</kind>
- <instance xmi:idref="Shapes_ConnectorComponentInstance2" />
- </internalEndpoint>
- </connection>
-
- <connection>
- <name>writer_connection</name>
- <deployRequirement>
- <name>edu.dre.vanderbilt.DAnCE.ConnectionType</name>
- <resourceType>Local_Interface</resourceType>
- </deployRequirement>
- <internalEndpoint>
- <portName>info_write_data</portName>
- <provider>false</provider>
- <kind>SimplexReceptacle</kind>
- <instance xmi:idref="SenderComponentInstance" />
- </internalEndpoint>
- <internalEndpoint>
- <portName>supplier_data</portName>
- <provider>true</provider>
- <kind>Facet</kind>
- <instance xmi:idref="Shapes_ConnectorComponentInstance" />
- </internalEndpoint>
- </connection>
-
- <artifact xmi:id="Sender_ExecArtifact">
- <name>Sender_exec</name>
- <source/>
- <node/>
- <location>Sender_exec</location>
- </artifact>
- <artifact xmi:id="Sender_SvntArtifact">
- <name>Sender_svnt</name>
- <source/>
- <node/>
- <location>Sender_svnt</location>
- </artifact>
- <artifact xmi:id="Sender_StubArtifact">
- <name>Sender_stub</name>
- <source/>
- <node/>
- <location>Sender_stub</location>
- </artifact>
- <artifact xmi:id="Shapes_Connector_ExecArtifact">
- <name>Shapes_Connector_exec</name>
- <source/>
- <node/>
- <location>DDS_Shapes_Connector_exec</location>
- </artifact>
- <artifact xmi:id="Shapes_Connector_SvntArtifact">
- <name>Shapes_Connector_svnt</name>
- <source/>
- <node/>
- <location>DDS_Shapes_Connector_svnt</location>
- </artifact>
- <artifact xmi:id="Shapes_Connector_StubArtifact">
- <name>Shapes_Connector_stub</name>
- <source/>
- <node/>
- <location>DDS_Shapes_Connector_stub</location>
- </artifact>
- <artifact xmi:id="Receiver_ExecArtifact">
- <name>Receiver_exec</name>
- <source/>
- <node/>
- <location>Receiver_exec</location>
- </artifact>
- <artifact xmi:id="Receiver_SvntArtifact">
- <name>Receiver_svnt</name>
- <source/>
- <node/>
- <location>Receiver_svnt</location>
- </artifact>
- <artifact xmi:id="Receiver_StubArtifact">
- <name>Receiver_stub</name>
- <source/>
- <node/>
- <location>Receiver_stub</location>
- </artifact>
-</Deployment:DeploymentPlan>
diff --git a/CIAO/connectors/dds4ccm/examples/Shapes/descriptors/2013_interop_demo/run_9.pl b/CIAO/connectors/dds4ccm/examples/Shapes/descriptors/2013_interop_demo/run_9.pl
deleted file mode 100755
index 9ad5a188578..00000000000
--- a/CIAO/connectors/dds4ccm/examples/Shapes/descriptors/2013_interop_demo/run_9.pl
+++ /dev/null
@@ -1,245 +0,0 @@
-eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
- & eval 'exec perl -S $0 $argv:q'
- if 0;
-
-# $Id$
-# -*- perl -*-
-
-use lib "$ENV{'ACE_ROOT'}/bin";
-use PerlACE::TestTarget;
-
-$CIAO_ROOT = "$ENV{'CIAO_ROOT'}";
-$TAO_ROOT = "$ENV{'TAO_ROOT'}";
-$DANCE_ROOT = "$ENV{'DANCE_ROOT'}";
-$DDS_ROOT = "$ENV{'DDS_ROOT'}";
-
-$daemons_running = 0;
-$em_running = 0;
-$ns_running = 0;
-
-$nr_daemon = 2;
-@ports = ( 60001, 60002 );
-@iorbases = ( "NodeApp1.ior", "NodeApp2.ior" );
-@iorfiles = 0;
-@nodenames = ( "SenderNode", "ReceiverNode" );
-
-# ior files other than daemon
-$ior_nsbase = "ns.ior";
-$ior_nsfile = 0;
-$ior_embase = "EM.ior";
-$ior_emfile = 0;
-
-# Processes
-$E = 0;
-$EM = 0;
-$NS = 0;
-@DEAMONS = 0;
-
-# targets
-@tg_daemons = 0;
-$tg_naming = 0;
-$tg_exe_man = 0;
-$tg_executor = 0;
-
-$status = 0;
-$cdp_file = "run_9.cdp";
-
-sub create_targets {
- # naming service
- $tg_naming = PerlACE::TestTarget::create_target (1) || die "Create target for ns failed\n";
- $tg_naming->AddLibPath ('../lib');
- # daemon
- for ($i = 0; $i < $nr_daemon; ++$i) {
- $tg_daemons[$i] = PerlACE::TestTarget::create_target ($i+1) || die "Create target for daemon $i failed\n";
- $tg_daemons[$i]->AddLibPath ('../lib');
- }
- # execution manager
- $tg_exe_man = PerlACE::TestTarget::create_target (1) || die "Create target for EM failed\n";
- $tg_exe_man->AddLibPath ('../lib');
- # executor (plan_launcher)
- $tg_executor = PerlACE::TestTarget::create_target (1) || die "Create target for executor failed\n";
- $tg_executor->AddLibPath ('../lib');
-}
-
-sub init_ior_files {
- $ior_nsfile = $tg_naming->LocalFile ($ior_nsbase);
- $ior_emfile = $tg_exe_man->LocalFile ($ior_embase);
- for ($i = 0; $i < $nr_daemon; ++$i) {
- $iorfiles[$i] = $tg_daemons[$i]->LocalFile ($iorbases[$i]);
- }
- delete_ior_files ();
-}
-
-# Delete if there are any .ior files.
-sub delete_ior_files {
- for ($i = 0; $i < $nr_daemon; ++$i) {
- $tg_daemons[$i]->DeleteFile ($iorbases[$i]);
- }
- $tg_naming->DeleteFile ($ior_nsbase);
- $tg_exe_man->DeleteFile ($ior_embase);
- for ($i = 0; $i < $nr_daemon; ++$i) {
- $iorfiles[$i] = $tg_daemons[$i]->LocalFile ($iorbases[$i]);
- }
-}
-
-sub kill_node_daemon {
- for ($i = 0; $i < $nr_daemon; ++$i) {
- $DEAMONS[$i]->Kill (); $DEAMONS[$i]->TimedWait (1);
- }
-}
-
-sub kill_open_processes {
- if ($daemons_running == 1) {
- kill_node_daemon ();
- }
-
- if ($em_running == 1) {
- $EM->Kill (); $EM->TimedWait (1);
- }
-
- if ($ns_running == 1) {
- $NS->Kill (); $NS->TimedWait (1);
- }
- # in case shutdown did not perform as expected
- $tg_executor->KillAll ('dance_locality_manager');
-}
-
-sub run_node_daemons {
- for ($i = 0; $i < $nr_daemon; ++$i) {
- $iorbase = $iorbases[$i];
- $iorfile = $iorfiles[$i];
- $port = $ports[$i];
- $nodename = $nodenames[$i];
- $iiop = "iiop://localhost:$port";
- $node_app = $tg_daemons[$i]->GetArchDir("$DANCE_ROOT/bin/") . "dance_locality_manager";
-
- $d_cmd = "$DANCE_ROOT/bin/dance_node_manager";
- $d_param = "-ORBEndpoint $iiop -s $node_app -n $nodename=$iorfile -t 30 --domain-nc corbaloc:rir:/NameService";
-
- print "Run dance_node_manager with $d_param\n";
-
- $DEAMONS[$i] = $tg_daemons[$i]->CreateProcess ($d_cmd, $d_param);
- $DEAMONS[$i]->Spawn ();
-
- if ($tg_daemons[$i]->WaitForFileTimed($iorbase,
- $tg_daemons[$i]->ProcessStartWaitInterval ()) == -1) {
- print STDERR
- "ERROR: The ior $iorfile file of node daemon $i could not be found\n";
- for (; $i >= 0; --$i) {
- $DEAMONS[$i]->Kill (); $DEAMONS[$i]->TimedWait (1);
- }
- return -1;
- }
- }
- return 0;
-}
-
-create_targets ();
-init_ior_files ();
-
-# Invoke naming service
-
-$NS = $tg_naming->CreateProcess ("$TAO_ROOT/bin/tao_cosnaming", " -ORBEndpoint iiop://localhost:60003 -o $ior_nsfile");
-
-$ns_status = $NS->Spawn ();
-
-if ($ns_status != 0) {
- print STDERR "ERROR: Unable to execute the naming service\n";
- kill_open_processes ();
- exit 1;
-}
-
-print STDERR "Starting Naming Service with -ORBEndpoint iiop://localhost:60003 -o ns.ior\n";
-
-if ($tg_naming->WaitForFileTimed ($ior_nsbase,
- $tg_naming->ProcessStartWaitInterval ()) == -1) {
- print STDERR "ERROR: cannot find naming service IOR file\n";
- $NS->Kill (); $NS->TimedWait (1);
- exit 1;
-}
-
-$ns_running = 1;
-
-# Set up NamingService environment
-$ENV{"NameServiceIOR"} = "corbaloc:iiop:localhost:60003/NameService";
-
-# Invoke node daemon.
-print "Invoking node daemon\n";
-$status = run_node_daemons ();
-
-if ($status != 0) {
- print STDERR "ERROR: Unable to execute the node daemon\n";
- kill_open_processes ();
- exit 1;
-}
-
-$daemons_running = 1;
-
-# Invoke execution manager.
-print "Invoking execution manager (dance_execution_manager.exe) with -e$ior_emfile\n";
-$EM = $tg_exe_man->CreateProcess ("$DANCE_ROOT/bin/dance_execution_manager",
- "-e$ior_emfile --domain-nc corbaloc:rir:/NameService");
-$em_status = $EM->Spawn ();
-
-if ($em_status != 0) {
- print STDERR "ERROR: dance_execution_manager returned $em_status";
- exit 1;
-}
-
-if ($tg_exe_man->WaitForFileTimed ($ior_embase,
- $tg_exe_man->ProcessStartWaitInterval ()) == -1) {
- print STDERR
- "ERROR: The ior file of execution manager could not be found\n";
- kill_open_processes ();
- exit 1;
-}
-
-$em_running = 1;
-
-# Invoke executor - start the application -.
-print "Invoking executor - launch the application -\n";
-
-print "Start dance_plan_launcher.exe with -x $cdp_file -k file://$ior_emfile\n";
-$E = $tg_executor->CreateProcess ("$DANCE_ROOT/bin/dance_plan_launcher",
- "-x $cdp_file -k file://$ior_emfile");
-$pl_status = $E->SpawnWaitKill (2 * $tg_executor->ProcessStartWaitInterval ());
-
-if ($pl_status != 0) {
- print STDERR "ERROR: dance_plan_launcher returned $pl_status\n";
- kill_open_processes ();
- exit 1;
-}
-
-for ($i = 0; $i < $nr_daemon; ++$i) {
- if ($tg_daemons[$i]->WaitForFileTimed ($iorbases[$i],
- $tg_daemons[$i]->ProcessStopWaitInterval ()) == -1) {
- print STDERR "ERROR: The ior file of daemon $i could not be found\n";
- kill_open_processes ();
- exit 1;
- }
-}
-
-print "Sleeping 60 seconds to allow task to complete\n";
-sleep (60);
-
-# Invoke executor - stop the application -.
-print "Invoking executor - stop the application -\n";
-print "by running dance_plan_launcher.exe with -k file://$ior_emfile -x $cdp_file\n";
-
-$E = $tg_executor->CreateProcess ("$DANCE_ROOT/bin/dance_plan_launcher",
- "-k file://$ior_emfile -x $cdp_file -s");
-$pl_status = $E->SpawnWaitKill ($tg_executor->ProcessStartWaitInterval ());
-
-if ($pl_status != 0) {
- print STDERR "ERROR: dance_plan_launcher returned $pl_status\n";
- kill_open_processes ();
- exit 1;
-}
-
-print "Executor returned.\n";
-print "Shutting down rest of the processes.\n";
-
-delete_ior_files ();
-kill_open_processes ();
-
-exit $status;
diff --git a/CIAO/connectors/dds4ccm/examples/Shapes/descriptors/2013_interop_demo/run_9.xml b/CIAO/connectors/dds4ccm/examples/Shapes/descriptors/2013_interop_demo/run_9.xml
deleted file mode 100644
index b084e767fa3..00000000000
--- a/CIAO/connectors/dds4ccm/examples/Shapes/descriptors/2013_interop_demo/run_9.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- $Id$ -->
-<dds xmlns="http://www.omg.org/dds"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.omg.org/dds dds_qos.xsd">
- <qos_profile name="square">
- <datawriter_qos>
- </datawriter_qos>
- <datareader_qos>
- </datareader_qos>
- </qos_profile>
-</dds>
diff --git a/DAnCE/ChangeLog b/DAnCE/ChangeLog
index cb8660c0335..58f6350b4d8 100644
--- a/DAnCE/ChangeLog
+++ b/DAnCE/ChangeLog
@@ -1,12 +1,3 @@
-Thu Mar 14 08:39:07 UTC 2013 Johnny Willemsen <jwillemsen@remedy.nl>
-
- * NEWS:
- Updated for next release
-
-Thu Mar 14 09:04:46 CET 2013 Johnny Willemsen <jwillemsen@remedy.nl>
-
- * DAnCE version 1.1.8 released.
-
Thu Dec 27 09:19:10 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
* NEWS:
diff --git a/DAnCE/NEWS b/DAnCE/NEWS
index d05633f69db..5254afb35df 100644
--- a/DAnCE/NEWS
+++ b/DAnCE/NEWS
@@ -1,11 +1,6 @@
-USER VISIBLE CHANGES BETWEEN DAnCE-1.1.8 and DAnCE-1.2.0
-=======================================================
-
USER VISIBLE CHANGES BETWEEN DAnCE-1.1.7 and DAnCE-1.1.8
=======================================================
-. None
-
USER VISIBLE CHANGES BETWEEN DAnCE-1.1.6 and DAnCE-1.1.7
=======================================================
diff --git a/DAnCE/PROBLEM-REPORT-FORM b/DAnCE/PROBLEM-REPORT-FORM
index c7a963b0e5c..5810fc908e6 100644
--- a/DAnCE/PROBLEM-REPORT-FORM
+++ b/DAnCE/PROBLEM-REPORT-FORM
@@ -41,9 +41,9 @@
To: ciao-users@list.isis.vanderbilt.edu
Subject: [area]: [synopsis]
- DAnCE VERSION: 1.1.8
- TAO VERSION : 2.1.8
- ACE VERSION : 6.1.8
+ DAnCE VERSION: 1.1.7
+ TAO VERSION : 2.1.7
+ ACE VERSION : 6.1.7
HOST MACHINE and OPERATING SYSTEM:
If on Windows based OS's, which version of WINSOCK do you
diff --git a/DAnCE/VERSION b/DAnCE/VERSION
index e4edbaaa875..5bbaa6d38d8 100644
--- a/DAnCE/VERSION
+++ b/DAnCE/VERSION
@@ -1,4 +1,4 @@
-This is DAnCE version 1.1.8, released Thu Mar 14 09:04:46 CET 2013
+This is DAnCE version 1.1.7, released Thu Dec 27 10:00:49 CET 2012
If you have any problems with or questions about DAnCE, please send
e-mail to the CIAO mailing list (ciao-users@list.isis.vanderbilt.edu),
diff --git a/DAnCE/dance/Version.h b/DAnCE/dance/Version.h
index 7d019eb3c80..96905c8a507 100644
--- a/DAnCE/dance/Version.h
+++ b/DAnCE/dance/Version.h
@@ -5,5 +5,5 @@
#define DAnCE_MAJOR_VERSION 1
#define DAnCE_MINOR_VERSION 1
-#define DAnCE_BETA_VERSION 8
-#define DAnCE_VERSION "1.1.8"
+#define DAnCE_BETA_VERSION 7
+#define DAnCE_VERSION "1.1.7"
diff --git a/TAO/ChangeLog b/TAO/ChangeLog
index 3c10f5b5edc..0698d7a58cb 100644
--- a/TAO/ChangeLog
+++ b/TAO/ChangeLog
@@ -1,210 +1,3 @@
-Thu Apr 4 13:35:46 UTC 2013 Byron Harris <harrisb@ociweb.com>
-
- * orbsvcs/tests/FT_Naming/FaultTolerant/client.cpp:
-
- Avoid output containing "EXCEPTION" that triggers
- test as a failure while allowing for retries in
- the presence of exceptions due to timing issues.
-
-Wed Apr 3 16:40:46 UTC 2013 Byron Harris <harrisb@ociweb.com>
-
- * orbsvcs/tests/FT_Naming/FaultTolerant/client.cpp:
-
- Add additional error checking/output in
- do_persistence_objectgroup_test() to help diagnose test
- failure seen on a few platforms.
-
- * orbsvcs/tests/FT_Naming/FaultTolerant/server.cpp:
-
- Write a status file to indicate server is running.
-
- * orbsvcs/tests/FT_Naming/FaultTolerant/run_persistence_test.pl:
-
- Use server's status file to check that server is running
- since group member IOR files are written after server's IOR
- is written.
-
-Sat Mar 30 18:12:28 UTC 2013 Martin Corino <mcorino@remedy.nl>
-
- * tests/File_IO/File_i.cpp:
- * tests/POA/Default_Servant2/File_i.cpp:
- Fixed int-to-pointer cast warnings.
-
-Sat Mar 30 09:39:40 UTC 2013 Martin Corino <mcorino@remedy.nl>
-
- * orbsvcs/orbsvcs/CosEvent/CEC_EventChannel.h:
- * orbsvcs/orbsvcs/CosEvent/CEC_TypedEventChannel.h:
- * orbsvcs/orbsvcs/Event/EC_Basic_Factory.cpp:
- * performance-tests/POA/Object_Creation_And_Registration/registration.cpp:
- * tao/PortableServer/Key_Adapters.cpp:
- * tao/TransportCurrent/IIOP_Current_Impl.cpp:
- * tests/File_IO/File_i.cpp:
- * tests/NestedUpcall/MT_Client_Test/client.cpp:
- * tests/POA/Default_Servant2/File_i.cpp:
- Added MinGW64 compilers support.
- All kinds of minor updates and corrections to silence
- warnings and errors relating to either 64bit Windows or
- the very latest GCC (4.8.0). Mostly precision loss and
- truncating casts.
-
-Fri Mar 29 13:11:10 UTC 2013 Johnny Willemsen <jwillemsen@remedy.nl>
-
- * MPC/config/tao_versioning_idl_defaults.mpb:
- Zapped empty line
-
- * TAO_IDL/be/be_codegen.cpp:
- * TAO_IDL/be/be_global.cpp:
- * TAO_IDL/be/be_util.cpp:
- * TAO_IDL/be_include/be_global.h:
- Added versioning_include to specify a different versioned
- header include and resolved some problems when trying to
- use versioned namespaces also for the application code
-
-Fri Mar 29 12:26:13 UTC 2013 Johnny Willemsen <jwillemsen@remedy.nl>
-
- * TAO_IDL/util/utl_err.cpp:
- Fixed crash when feeding tao_idl illegal IDL
-
-Thu Mar 28 15:25:46 UTC 2013 Byron Harris <harrisb@ociweb.com>
-
- * bin/tao_other_tests.lst:
-
- Added servers_interact_on_startup test but disabled from
- test statistics for now as it exposes a problem with the
- ImR currently being addressed.
-
- * orbsvcs/tests/ImplRepo/servers_interact_on_startup/Test_i.cpp:
-
- Fixed missing protocol seen on certain compilers.
-
- * orbsvcs/tests/ImplRepo/servers_interact_on_startup/client.cpp:
- * orbsvcs/tests/ImplRepo/servers_interact_on_startup/server.cpp:
-
- Fixed to build with wide characters enabled.
-
- * orbsvcs/tests/ImplRepo/servers_interact_on_startup/run_test.pl:
-
- Made server reply delay long enough to reveal problem under Linux.
-
-Wed Mar 27 13:11:36 UTC 2013 Byron Harris <harrisb@ociweb.com>
-
- * orbsvcs/tests/ImplRepo/servers_interact_on_startup:
- * orbsvcs/tests/ImplRepo/servers_interact_on_startup/README:
- * orbsvcs/tests/ImplRepo/servers_interact_on_startup/Test.idl:
- * orbsvcs/tests/ImplRepo/servers_interact_on_startup/Test_i.h:
- * orbsvcs/tests/ImplRepo/servers_interact_on_startup/Test_i.cpp:
- * orbsvcs/tests/ImplRepo/servers_interact_on_startup/client.cpp:
- * orbsvcs/tests/ImplRepo/servers_interact_on_startup/run_test.pl:
- * orbsvcs/tests/ImplRepo/servers_interact_on_startup/server.cpp:
- * orbsvcs/tests/ImplRepo/servers_interact_on_startup/servers_interact_on_startup.mpc:
-
- Added test for ImR pinging of ill-behaved, interacting servers.
-
-Thu Mar 14 20:21:19 UTC 2013 Byron Harris <harrisb@ociweb.com>
-
- * orbsvcs/tests/ImplRepo/RestartServer/MessengerClient.cpp:
- * orbsvcs/tests/ImplRepo/RestartServer/run_test.pl:
-
- If valgrind is being ran, adjust delay parameters to
- account for valgrind slowing processes down.
-
-Thu Mar 14 15:54:03 UTC 2013 Kevin Stanley <stanleyk@ociweb.com>
-
- * orbsvcs/tests/ImplRepo/run_test.pl:
- * bin/tao_other_tests.lst:
-
- Added test for backup_restart feature for ImR.
-
- * orbsvcs/ImplRepo_Service/Locator_Repository.h:
- * orbsvcs/ImplRepo_Service/Locator_Repository.cpp:
-
- Added method to support recovering the ior from the combined ior
- file when restarting the backup.
-
- * orbsvcs/ImplRepo_Service/README:
-
- Updated documentation to indicate that backup can now be started
- without the primary running when a restart is occuring.
-
- * orbsvcs/ImplRepo_Service/Shared_Backing_Store.cpp:
-
- Implemented feature for restarting backup after a replicated pair
- has been successfully started in the past.
-
- * orbsvcs/tests/FT_Naming/FaultTolerant/run_backup_restart_test.pl:
-
- Added test for restart of FT_Naming_Server backup after the FT
- pair has successfully started in the past.
-
- * tao/ImR_Client/ImR_Client.cpp:
-
- Fixed memory leak. Clean up list_buffer_ array in destructor.
-
-Thu Mar 14 08:39:00 UTC 2013 Johnny Willemsen <jwillemsen@remedy.nl>
-
- * NEWS:
- Updated for next release
-
-Thu Mar 14 09:04:46 CET 2013 Johnny Willemsen <jwillemsen@remedy.nl>
-
- * TAO version 2.1.8 released.
-
-Mon Mar 11 19:25:19 UTC 2013 Byron Harris <harrisb@ociweb.com>
-
- * orbsvcs/ImplRepo_Service/Locator_Options.cpp:
-
- Generate error if more than one persistence mechanism
- type is specifed. Generate error if --primary or --backup
- is based and --directory is not.
-
-Mon Mar 11 16:23:46 UTC 2013 Byron Harris <harrisb@ociweb.com>
-
- * orbsvcs/tests/ImplRepo/RestartServer/RestartServer.mpc:
- * orbsvcs/tests/ImplRepo/scale_clients/scale_clients.mpc:
- * orbsvcs/tests/ImplRepo/servers_list/servers_list.mpc:
-
- For server project add imr_client to base projects
- to support resolving ImR client code for static builds.
-
-Mon Mar 11 14:51:28 UTC 2013 Byron Harris <harrisb@ociweb.com>
-
- * orbsvcs/tests/FT_Naming/Replication/run_test.pl:
-
- Added to wait time for spawn of client as it may
- take longer than 15 seconds to run on some systems
- such as a SPARC T1000.
-
- Removed duplicate function definition causing prototype
- mismatch warning from perl.
-
-Mon Mar 11 13:33:14 UTC 2013 Kevin Stanley <stanleyk@ociweb.com>
-
- * orbsvcs/tests/FT_Naming/FaultTolerant/client.cpp:
-
- Added sleep in test after first failure to allow time for the
- replication to happen between redundant servers.
-
-Mon Mar 11 13:17:41 UTC 2013 Byron Harris <harrisb@ociweb.com>
-
- * NEWS:
- * docs/Options.html:
- * orbsvcs/tests/ImplRepo/RestartServer/MessengerClient.cpp:
-
- Added AIX to systems not supporting -ORBForwardOnReplyClosedLimit.
-
-Mon Mar 11 09:42:00 UTC 2013 Simon Massey <simon dot massey at prismtech dot com>
-
- * tests/Bug_4097_Regression/Bug_4097_Regression.cpp:
-
- Missing main try/catch coverity fix.
-
-Sun Mar 10 05:19:06 UTC 2013 Phil Mesnier <mesnier_p@ociweb.com>
-
- * tests/Dynamic_TP/POA_Loader/Dynamic_TP_POA_Test_Dynamic/client.cpp:
- * tests/Dynamic_TP/POA_Loader/Dynamic_TP_POA_Test_Static/client.cpp:
-
- Fix wchar compatibility.
-
Sat Mar 9 19:08:55 UTC 2013 Phil Mesnier <mesnier_p@ociweb.com>
* tests/Dynamic_TP/POA_Loader/Dynamic_TP_POA_Test_Dynamic/run_test.pl:
diff --git a/TAO/ChangeLog_Asynch_ImR b/TAO/ChangeLog_Asynch_ImR
new file mode 100644
index 00000000000..7f54c39bb62
--- /dev/null
+++ b/TAO/ChangeLog_Asynch_ImR
@@ -0,0 +1,436 @@
+Wed Apr 10 00:58:56 UTC 2013 Phil Mesnier <mesnier_p@ociweb.com>
+
+ * orbsvcs/ImplRepo_Service/LiveCheck.h:
+ * orbsvcs/ImplRepo_Service/LiveCheck.cpp:
+
+ Fix for the reconnect test. Use the fact that a dead server is
+ not scheduled for a ping to throw an immediate exception.
+
+Tue Apr 9 15:44:55 UTC 2013 Phil Mesnier <mesnier_p@ociweb.com>
+
+ * orbsvcs/ImplRepo_Service/ImR_Locator_i.cpp:
+ * orbsvcs/ImplRepo_Service/LiveCheck.cpp:
+
+ Cleaned up explicit debug output, added a catch for errors during
+ connection establishment with the async ping. The AMI callback
+ exception handler is only invoked after a successful send of the
+ invocation. A connection failure is still an exception in the
+ caller's context.
+
+ * orbsvcs/tests/ImplRepo/servers_list/Terminator.cpp:
+ * orbsvcs/tests/ImplRepo/servers_list/run_test.pl:
+
+ Reverted earlier change.
+
+Tue Apr 9 14:42:10 UTC 2013 Phil Mesnier <mesnier_p@ociweb.com>
+
+ * orbsvcs/ImplRepo_Service/ImR_Locator_i.cpp:
+ * orbsvcs/ImplRepo_Service/LiveCheck.h:
+ * orbsvcs/ImplRepo_Service/LiveCheck.cpp:
+
+ Improve the list performance by forcing a poll if an active
+ test is required.
+
+ * orbsvcs/tests/ImplRepo/servers_list/Terminator.cpp:
+ * orbsvcs/tests/ImplRepo/servers_list/run_test.pl:
+
+ enhance the debugging output.
+
+Mon Apr 8 19:02:29 UTC 2013 Phil Mesnier <mesnier_p@ociweb.com>
+
+ * orbsvcs/ImplRepo_Service/AsyncAccessManager.cpp:
+ * orbsvcs/ImplRepo_Service/ImR_Locator_i.cpp:
+ * orbsvcs/ImplRepo_Service/LiveCheck.cpp:
+
+ Clean up earlier debug messages, fix the list operation.
+
+Mon Apr 8 17:13:01 UTC 2013 Phil Mesnier <mesnier_p@ociweb.com>
+
+ * orbsvcs/ImplRepo_Service/AsyncAccessManager.cpp:
+ * orbsvcs/ImplRepo_Service/LiveCheck.h:
+ * orbsvcs/ImplRepo_Service/LiveCheck.cpp:
+
+ More work on PER_CLIENT activations.
+
+Mon Apr 8 03:29:47 UTC 2013 Phil Mesnier <mesnier_p@ociweb.com>
+
+ * orbsvcs/ImplRepo_Service/AsyncAccessManager.h:
+ * orbsvcs/ImplRepo_Service/AsyncAccessManager.cpp:
+ * orbsvcs/ImplRepo_Service/ImR_Locator_i.cpp:
+
+ Coveratge for PER_CLIENT activations.
+
+Sun Apr 7 13:55:15 UTC 2013 Phil Mesnier <mesnier_p@ociweb.com>
+
+ * orbsvcs/ImplRepo_Service/Forwarder.cpp:
+ * orbsvcs/ImplRepo_Service/LiveCheck.cpp:
+
+ Fix for memory leak and scoreboard failures.
+
+Sat Apr 6 12:36:48 UTC 2013 Phil Mesnier <mesnier_p@ociweb.com>
+
+ * orbsvcs/ImplRepo_Service/AsyncAccessManager.cpp:
+ * orbsvcs/ImplRepo_Service/INS_Locator.cpp:
+ * orbsvcs/ImplRepo_Service/ImR_Locator_i.cpp:
+ * orbsvcs/ImplRepo_Service/LiveCheck.cpp:
+
+ More cleanup of development-level debug messages.
+
+ * tao/IORTable/Locate_ResponseHandler.cpp:
+
+ Fix for improper memory management.
+
+Fri Apr 5 21:21:15 UTC 2013 Phil Mesnier <mesnier_p@ociweb.com>
+
+ * orbsvcs/ImplRepo_Service/AsyncAccessManager.cpp:
+ * orbsvcs/ImplRepo_Service/INS_Locator.cpp:
+ * orbsvcs/ImplRepo_Service/LiveCheck.cpp:
+
+ * orbsvcs/tests/ImplRepo/servers_interact_on_startup/run_test.pl:
+
+ * tao/IORTable/Locate_ResponseHandler.h:
+ * tao/IORTable/Locate_ResponseHandler.cpp:
+
+ * tao/Messaging/AMH_Response_Handler.h:
+ * tao/Messaging/AMH_Response_Handler.cpp:
+
+ Clean up some development-level logging. Fixed the memory problems. Continue
+ testing and validating.
+
+Thu Apr 4 23:15:58 UTC 2013 Phil Mesnier <mesnier_p@ociweb.com>
+
+ * orbsvcs/ImplRepo_Service/AsyncAccessManager.cpp:
+ * orbsvcs/ImplRepo_Service/Forwarder.h:
+ * orbsvcs/ImplRepo_Service/Forwarder.cpp:
+ * orbsvcs/ImplRepo_Service/INS_Locator.h:
+ * orbsvcs/ImplRepo_Service/INS_Locator.cpp:
+ * orbsvcs/ImplRepo_Service/ImR_Locator_i.h:
+ * orbsvcs/ImplRepo_Service/ImR_Locator_i.cpp:
+ * orbsvcs/ImplRepo_Service/LiveCheck.cpp:
+ * orbsvcs/ImplRepo_Service/Locator_Repository.h:
+ * orbsvcs/ImplRepo_Service/Locator_Repository.cpp:
+
+ * tao/Adapter.h:
+
+ * tao/DynamicInterface/AMH_DSI_Response_Handler.cpp:
+
+ * tao/IORTable/IORTable.h:
+ * tao/IORTable/IORTable.mpc:
+ * tao/IORTable/IORTable.pidl:
+ * tao/IORTable/IOR_Table_Impl.h:
+ * tao/IORTable/IOR_Table_Impl.cpp:
+ * tao/IORTable/Locate_ResponseHandler.h:
+ * tao/IORTable/Locate_ResponseHandler.inl:
+ * tao/IORTable/Locate_ResponseHandler.cpp:
+ * tao/IORTable/Table_Adapter.h:
+ * tao/IORTable/Table_Adapter.cpp:
+
+ * tao/Messaging/AMH_Response_Handler.h:
+ * tao/Messaging/AMH_Response_Handler.cpp:
+
+ Adding support for an asynchronous IORTable locator. This commit
+ also contains a lot of intermediate debugging artifacts. It still
+ crashes. Committing for easy distribution to other test hosts.
+
+Wed Apr 3 14:20:28 UTC 2013 Phil Mesnier <mesnier_p@ociweb.com>
+
+ * orbsvcs/ImplRepo_Service/ImR_Locator_i.cpp:
+
+ Fix how exceptions are handled when using the sync reponse handler.
+
+ * orbsvcs/tests/ImplRepo/servers_interact_on_startup/run_test.pl:
+
+ Improve the quality of output when run in debug mode.
+
+Tue Apr 2 23:13:50 UTC 2013 Phil Mesnier <mesnier_p@ociweb.com>
+
+ * orbsvcs/ImplRepo_Service/AsyncAccessManager.cpp:
+ * orbsvcs/ImplRepo_Service/Forwarder.cpp:
+ * orbsvcs/ImplRepo_Service/INS_Locator.cpp:
+ * orbsvcs/ImplRepo_Service/ImR_Locator_i.cpp:
+ * orbsvcs/ImplRepo_Service/LiveCheck.h:
+ * orbsvcs/ImplRepo_Service/LiveCheck.cpp:
+
+ Clean up debugging output and improve ping retry logic.
+
+ * utils/logWalker/HostProcess.h:
+ * utils/logWalker/HostProcess.cpp:
+ * utils/logWalker/Log.cpp:
+ * utils/logWalker/PeerProcess.h:
+ * utils/logWalker/PeerProcess.cpp:
+ * utils/logWalker/Session.h:
+ * utils/logWalker/Session.cpp:
+
+ Fix up the endpoint association so multiple log files can correlate.
+
+Tue Apr 2 13:17:44 UTC 2013 Phil Mesnier <mesnier_p@ociweb.com>
+
+ * orbsvcs/ImplRepo_Service/Forwarder.cpp:
+
+ Nightly build cleanup.
+
+Tue Apr 2 01:37:35 UTC 2013 Phil Mesnier <mesnier_p@ociweb.com>
+
+ * orbsvcs/ImplRepo_Service/AsyncAccessManager.cpp:
+ * orbsvcs/ImplRepo_Service/ImR_Locator_i.cpp:
+
+ More debugging added for scoreboard processing.
+
+Mon Apr 1 23:52:37 UTC 2013 Phil Mesnier <mesnier_p@ociweb.com>
+
+ * orbsvcs/ImplRepo_Service/AsyncAccessManager.h:
+ * orbsvcs/ImplRepo_Service/AsyncAccessManager.cpp:
+ * orbsvcs/ImplRepo_Service/ImR_Locator_i.cpp:
+
+ More memory management and state machine improvments
+
+Mon Apr 1 21:28:42 UTC 2013 Phil Mesnier <mesnier_p@ociweb.com>
+
+ * orbsvcs/ImplRepo_Service/AsyncAccessManager.h:
+ * orbsvcs/ImplRepo_Service/AsyncAccessManager.cpp:
+ * orbsvcs/ImplRepo_Service/ImR_Locator_i.h:
+ * orbsvcs/ImplRepo_Service/ImR_Locator_i.cpp:
+ * orbsvcs/ImplRepo_Service/LiveCheck.h:
+ * orbsvcs/ImplRepo_Service/LiveCheck.cpp:
+
+ Improve memory management.
+
+ * utils/logWalker/Log.cpp:
+
+ Improve handling of nested client/server connection
+ completions.
+
+Mon Apr 1 15:51:42 UTC 2013 Phil Mesnier <mesnier_p@ociweb.com>
+
+ * orbsvcs/ImplRepo_Service/ImR_Locator_i.cpp:
+
+ allow collocation calls to support the AMI callbacks.
+
+ * orbsvcs/tests/ImplRepo/servers_interact_on_startup/Test_i.cpp:
+
+ Fix a scoreboard build error.
+
+Fri Mar 29 22:52:42 UTC 2013 Phil Mesnier <mesnier_p@ociweb.com>
+
+ * orbsvcs/ImplRepo_Service/AsyncAccessManager.h:
+ * orbsvcs/ImplRepo_Service/AsyncAccessManager.cpp:
+ * orbsvcs/ImplRepo_Service/Forwarder.cpp:
+ * orbsvcs/ImplRepo_Service/ImR_Locator_i.h:
+ * orbsvcs/ImplRepo_Service/ImR_Locator_i.cpp:
+ * orbsvcs/ImplRepo_Service/LiveCheck.h:
+ * orbsvcs/ImplRepo_Service/LiveCheck.cpp:
+
+ Improve the ping retry state machine, add more diagonstics.
+
+ * utils/logWalker/Log.cpp:
+
+ Fix a memory managment error.
+
+Fri Mar 29 00:23:44 UTC 2013 Phil Mesnier <mesnier_p@ociweb.com>
+
+ * orbsvcs/ImplRepo_Service/ImplRepo_Service.mpc:
+
+ Added messaging library dependency to tao_imr.
+
+Fri Mar 29 00:14:00 UTC 2013 Phil Mesnier <mesnier_p@ociweb.com>
+
+ * orbsvcs/ImplRepo_Service/AsyncAccessManager.h:
+ * orbsvcs/ImplRepo_Service/AsyncAccessManager.cpp:
+ * orbsvcs/ImplRepo_Service/Forwarder.h:
+ * orbsvcs/ImplRepo_Service/Forwarder.cpp:
+ * orbsvcs/ImplRepo_Service/ImR_Locator_i.h:
+ * orbsvcs/ImplRepo_Service/ImR_Locator_i.cpp:
+ * orbsvcs/ImplRepo_Service/ImR_ResponseHandler.h:
+ * orbsvcs/ImplRepo_Service/ImR_ResponseHandler.cpp:
+ * orbsvcs/ImplRepo_Service/ImplRepo_Service.mpc:
+
+ Completed the initial task of transitioning to an AMH Locator servant.
+ Still need to work on the INS_Locator which uses synch calls. Also need to
+ run through regression suite and debug.
+
+ * orbsvcs/ImplRepo_Service/AsyncStartupWaiter.idl:
+ * orbsvcs/ImplRepo_Service/AsyncStartupWaiter_i.h:
+ * orbsvcs/ImplRepo_Service/AsyncStartupWaiter_i.cpp:
+
+ Removed these files.
+
+Thu Mar 28 17:05:52 UTC 2013 Phil Mesnier <mesnier_p@ociweb.com>
+
+ * orbsvcs/ImplRepo_Service/AsyncAccessManager.h:
+ * orbsvcs/ImplRepo_Service/AsyncAccessManager.cpp:
+ * orbsvcs/ImplRepo_Service/ImR_Locator_i.h:
+ * orbsvcs/ImplRepo_Service/ImR_Locator_i.cpp:
+ * orbsvcs/ImplRepo_Service/ImplRepo_Service.mpc:
+ * orbsvcs/ImplRepo_Service/LiveCheck.h:
+ * orbsvcs/ImplRepo_Service/LiveCheck.cpp:
+ * orbsvcs/ImplRepo_Service/Locator_Repository.h:
+
+ Further improvments to the implementation. At the point where the basic ImplRepo
+ test passes.
+
+Tue Mar 26 23:58:50 UTC 2013 Phil Mesnier <mesnier_p@ociweb.com>
+
+ * orbsvcs/ImplRepo_Service/Adapter_Activator.h:
+ * orbsvcs/ImplRepo_Service/Adapter_Activator.cpp:
+ * orbsvcs/ImplRepo_Service/AsyncAccessManager.h:
+ * orbsvcs/ImplRepo_Service/AsyncAccessManager.cpp:
+ * orbsvcs/ImplRepo_Service/Forwarder.h:
+ * orbsvcs/ImplRepo_Service/Forwarder.cpp:
+ * orbsvcs/ImplRepo_Service/ImR_Locator_i.h:
+ * orbsvcs/ImplRepo_Service/ImR_Locator_i.cpp:
+ * orbsvcs/ImplRepo_Service/LiveCheck.h:
+ * orbsvcs/ImplRepo_Service/LiveCheck.cpp:
+ * orbsvcs/ImplRepo_Service/Locator_Options.h:
+ * orbsvcs/ImplRepo_Service/Locator_Options.cpp:
+
+ completed asynch ping tracking and event delivery. Removed sync/asynch
+ behavior option, it didn't work and it was temporary anyway. Stripped the
+ old code that was optional.
+
+Tue Mar 26 16:35:26 UTC 2013 Phil Mesnier <mesnier_p@ociweb.com>
+
+ * orbsvcs/ImplRepo_Service/Forwarder.cpp:
+
+ Clean up error in validating the forward-to IOR.
+
+ * orbsvcs/ImplRepo_Service/ImR_Locator.cpp:
+
+ Clean up the shutdown handler for single-thread use.
+
+ * tao/Messaging/AMH_Response_Handler.cpp:
+
+ Add the explicit handling of ForwardRequest exceptions.
+
+Tue Mar 26 15:52:50 UTC 2013 Byron Harris <harrisb@ociweb.com>
+
+ * bin/tao_other_tests.lst:
+ * orbsvcs/tests/ImplRepo/servers_interact_on_startup:
+ * orbsvcs/tests/ImplRepo/servers_interact_on_startup/README:
+ * orbsvcs/tests/ImplRepo/servers_interact_on_startup/Test.idl:
+ * orbsvcs/tests/ImplRepo/servers_interact_on_startup/Test_i.h:
+ * orbsvcs/tests/ImplRepo/servers_interact_on_startup/Test_i.cpp:
+ * orbsvcs/tests/ImplRepo/servers_interact_on_startup/client.cpp:
+ * orbsvcs/tests/ImplRepo/servers_interact_on_startup/run_test.pl:
+ * orbsvcs/tests/ImplRepo/servers_interact_on_startup/server.cpp:
+ * orbsvcs/tests/ImplRepo/servers_interact_on_startup/servers_interact_on_startup.mpc:
+
+ Added test for ImR pinging of ill-behaved, interacting servers.
+
+Mon Mar 25 20:52:13 UTC 2013 Phil Mesnier <mesnier_p@ociweb.com>
+
+ * orbsvcs/ImplRepo_Service/ImR_Locator_i.h:
+
+ Restore the export macro in the ImR_Locator impl class.
+
+Mon Mar 25 20:41:16 UTC 2013 Phil Mesnier <mesnier_p@ociweb.com>
+
+ * orbsvcs/ImplRepo_Service/Adapter_Activator.cpp:
+
+ Fix policy inconsitency.
+
+Mon Mar 25 17:35:24 UTC 2013 Phil Mesnier <mesnier_p@ociweb.com>
+
+ * orbsvcs/ImplRepo_Service/AsyncAccessManager.h:
+ * orbsvcs/ImplRepo_Service/AsyncAccessManager.cpp:
+ * orbsvcs/ImplRepo_Service/Forwarder.h:
+ * orbsvcs/ImplRepo_Service/Forwarder.cpp:
+ * orbsvcs/ImplRepo_Service/INS_Locator.cpp:
+ * orbsvcs/ImplRepo_Service/ImR_Locator_i.h:
+ * orbsvcs/ImplRepo_Service/ImR_Locator_i.cpp:
+ * orbsvcs/ImplRepo_Service/ImplRepo_Service.mpc:
+ * orbsvcs/ImplRepo_Service/LiveCheck.h:
+ * orbsvcs/ImplRepo_Service/LiveCheck.cpp:
+ * orbsvcs/ImplRepo_Service/Locator_Options.cpp:
+
+ Continue with implementation. Added some temporary debug output, hooked up the
+ sync version of the reactive ping-wait. Started in on the next stage, which is
+ making the rest of the server access Asynchronous. Changed the mode select flag
+ for start up from defaulting to the traditional sync-style of calls to the new
+ asynch style. The temporary command line flag is now --old, to use the old
+ style for comparison.
+
+Fri Mar 22 18:16:00 UTC 2013 Phil Mesnier <mesnier_p@ociweb.com>
+
+ * orbsvcs/ImplRepo_Service/LiveCheck.cpp:
+
+ Fix for a core-on-exit problem.
+
+Tue Mar 19 13:31:43 UTC 2013 Phil Mesnier <mesnier_p@ociweb.com>
+
+ * orbsvcs/ImplRepo_Service/ImR_Locator_i.h:
+ * orbsvcs/ImplRepo_Service/ImR_Locator_i.cpp:
+ * orbsvcs/ImplRepo_Service/ImplRepo_Service.mpc:
+ * orbsvcs/ImplRepo_Service/LiveCheck.h:
+ * orbsvcs/ImplRepo_Service/LiveCheck.cpp:
+
+ Adding new mechanism for pinging servers asynchronously. When the IMR is
+ interested in the status of a server, it now registers a callback object and
+ a ping is scheduled. At the appropriate time, the ping request is sent using
+ AMI. The reply or exception is then handled asynchronously.
+
+ For testing in an otherwise synchronous locator, a blocking ping reply waiter
+ is used.
+
+Thu Mar 14 21:36:30 UTC 2013 Phil Mesnier <mesnier_p@ociweb.com>
+
+ * orbsvcs/ImplRepo_Service/AsyncStartupWaiter_i.cpp:
+ * orbsvcs/ImplRepo_Service/ImR_Locator_i.cpp:
+
+ Some syntactic clean up and apply a fix for a memory leak Kevin applied to
+ the trunk.
+
+ * utils/logWalker/HostProcess.cpp:
+ * utils/logWalker/Invocation.h:
+ * utils/logWalker/Invocation.cpp:
+ * utils/logWalker/Thread.h:
+ * utils/logWalker/Thread.cpp:
+
+ Add a new type of by-thread output that highlights nested upcalls and the
+ processing impact of delaying action on replies.
+
+Mon Mar 11 16:31:08 UTC 2013 Phil Mesnier <mesnier_p@ociweb.com>
+
+ * orbsvcs/ImplRepo_Service/ImR_Locator_i.h:
+ * orbsvcs/ImplRepo_Service/ImR_Locator_i.cpp:
+ * orbsvcs/ImplRepo_Service/Locator_Options.h:
+ * orbsvcs/ImplRepo_Service/Locator_Options.cpp:
+
+ Actually select the DSI/AMH implementation when the asynch
+ option is supplied. Avoid confusion with the option by calling
+ it --asynch rather than the earlier --use_dsi
+
+ * orbsvcs/tests/ImplRepo/scale_clients/run_test.pl:
+
+ Modify the test to verify that both synchronous and asynch
+ implementations work.
+
+Mon Mar 11 01:50:33 UTC 2013 Phil Mesnier <mesnier_p@ociweb.com>
+
+ * orbsvcs/ImplRepo_Service/Adapter_Activator.h:
+ * orbsvcs/ImplRepo_Service/Adapter_Activator.cpp:
+
+ In order to support asynchronous interfaces, the adapter has to use the
+ default servant rather than the servant locator. The servant locator does
+ not give an opportunity for asynch processing.
+
+ * orbsvcs/ImplRepo_Service/Forwarder.h:
+ * orbsvcs/ImplRepo_Service/Forwarder.cpp:
+
+ The initial cut at implementing AMH.
+
+ * orbsvcs/ImplRepo_Service/ImplRepo_Service.mpc:
+ * orbsvcs/ImplRepo_Service/Locator_Options.h:
+ * orbsvcs/ImplRepo_Service/Locator_Options.cpp:
+
+ The feature is optional for now at least.
+
+ * tao/ImR_Client/ImR_Client.mpc:
+
+ Add support for generating asyncronous stubs and skeletons for working
+ with the ImR.
+
+Local Variables:
+mode: change-log
+add-log-time-format: (lambda () (progn (setq tz (getenv "TZ")) (set-time-zone-rule "UTC") (setq time (format-time-string "%a %b %e %H:%M:%S %Z %Y" (current-time))) (set-time-zone-rule tz) time))
+indent-tabs-mode: nil
+End:
diff --git a/TAO/MPC/config/tao_versioning_idl_defaults.mpb b/TAO/MPC/config/tao_versioning_idl_defaults.mpb
index d270fd30b2d..23bc1208716 100644
--- a/TAO/MPC/config/tao_versioning_idl_defaults.mpb
+++ b/TAO/MPC/config/tao_versioning_idl_defaults.mpb
@@ -8,4 +8,5 @@
project : taoidldefaults {
idlflags += -Wb,versioning_begin=TAO_BEGIN_VERSIONED_NAMESPACE_DECL \
-Wb,versioning_end=TAO_END_VERSIONED_NAMESPACE_DECL
+
}
diff --git a/TAO/NEWS b/TAO/NEWS
index c76d3d67c8e..0542243864b 100644
--- a/TAO/NEWS
+++ b/TAO/NEWS
@@ -1,9 +1,5 @@
-USER VISIBLE CHANGES BETWEEN TAO-2.1.8 and TAO-2.2.0
-====================================================
-
USER VISIBLE CHANGES BETWEEN TAO-2.1.7 and TAO-2.1.8
====================================================
-
. Fault Tolerant Implementation Repository [#4091] - The Implementation
Repository Locator now supports a dual-redundant fault tolerant
configuration which provides replication and seamless failover between
@@ -55,7 +51,7 @@ USER VISIBLE CHANGES BETWEEN TAO-2.1.7 and TAO-2.1.8
retry in the presence of COMM_FAILURE, TRANSIENT, OBJECT_NOT_EXIST,
and INV_OBJREF exceptions. In addition, retries can occur if it has
been detected that a connection has closed while waiting for a reply
- (currently not available under FreeBSD, OpenVMS, AIX, and Solaris). This
+ (currently not available under FreeBSD, OpenVMS, and Solaris). This
feature can be used to support fault tolerant services (specifically
the Fault Tolerant Naming and Implementation Repository services
described earlier). The invocation retry support allows
diff --git a/TAO/PROBLEM-REPORT-FORM b/TAO/PROBLEM-REPORT-FORM
index 467531cb1fe..e860e8fc45c 100644
--- a/TAO/PROBLEM-REPORT-FORM
+++ b/TAO/PROBLEM-REPORT-FORM
@@ -40,8 +40,8 @@
To: tao-bugs@list.isis.vanderbilt.edu
Subject: [area]: [synopsis]
- TAO VERSION: 2.1.8
- ACE VERSION: 6.1.8
+ TAO VERSION: 2.1.7
+ ACE VERSION: 6.1.7
HOST MACHINE and OPERATING SYSTEM:
If on Windows based OS's, which version of WINSOCK do you
diff --git a/TAO/TAO_IDL/be/be_codegen.cpp b/TAO/TAO_IDL/be/be_codegen.cpp
index b6c53922f27..09a88c38009 100644
--- a/TAO/TAO_IDL/be/be_codegen.cpp
+++ b/TAO/TAO_IDL/be/be_codegen.cpp
@@ -2657,13 +2657,6 @@ TAO_CodeGen::gen_stub_hdr_includes (void)
"tao/Versioned_Namespace.h",
true);
- if ((be_global->versioning_include () != 0) && (ACE_OS::strlen (be_global->versioning_include ()) > 0))
- {
- this->gen_standard_include (this->client_header_,
- be_global->versioning_include (),
- true);
- }
-
// On some platforms, this include isn't needed if certain command
// line options are present. Rather than try to sort that all out,
// and to keep cross-compiling robust, we always generate this
diff --git a/TAO/TAO_IDL/be/be_global.cpp b/TAO/TAO_IDL/be/be_global.cpp
index 473aae36bc2..2d130d48663 100644
--- a/TAO/TAO_IDL/be/be_global.cpp
+++ b/TAO/TAO_IDL/be/be_global.cpp
@@ -62,7 +62,6 @@ BE_GlobalData::BE_GlobalData (void)
core_versioning_end_ ("\nTAO_END_VERSIONED_NAMESPACE_DECL\n"),
versioning_begin_ (),
versioning_end_ (),
- versioning_include_ (),
client_hdr_ending_ (ACE::strnew ("C.h")),
client_stub_ending_ (ACE::strnew ("C.cpp")),
client_inline_ending_ (ACE::strnew ("C.inl")),
@@ -1111,22 +1110,22 @@ BE_GlobalData::stripped_filename (const char *s)
this->stripped_filename_ = ACE::strnew (s);
}
-const char *
-BE_GlobalData::versioning_begin (void) const
-{
- return this->versioning_begin_.c_str ();
-}
-
void
-BE_GlobalData::versioning_include (const char * s)
+BE_GlobalData::versioning_begin (const char * s)
{
- this->versioning_include_ = s;
+ this->versioning_begin_ =
+ ACE_CString ("\n\n")
+ + ACE_CString (s)
+ + ACE_CString ("\n\n");
+
+ this->core_versioning_end_ += this->versioning_begin_;
+ // Yes, "begin".
}
const char *
-BE_GlobalData::versioning_include (void) const
+BE_GlobalData::versioning_begin (void) const
{
- return this->versioning_include_.c_str ();
+ return this->versioning_begin_.c_str ();
}
const char *
@@ -1144,23 +1143,8 @@ BE_GlobalData::versioning_end (const char * s)
+ ACE_CString ("\n\n");
this->core_versioning_begin_ =
- this->versioning_end_ + // Yes, "end".
- "\nTAO_BEGIN_VERSIONED_NAMESPACE_DECL\n";
-}
-
-void
-BE_GlobalData::versioning_begin (const char * s)
-{
- this->versioning_begin_ =
- ACE_CString ("\n\n")
- + ACE_CString (s)
- + ACE_CString ("\n\n");
-
- this->core_versioning_end_ =
- "\nTAO_END_VERSIONED_NAMESPACE_DECL\n"
- + this->versioning_begin_; // Yes, "begin".
-
- // Yes, "begin".
+ this->versioning_end_ // Yes, "end".
+ + this->core_versioning_begin_; // Initialized in constructor.
}
const char *
diff --git a/TAO/TAO_IDL/be/be_util.cpp b/TAO/TAO_IDL/be/be_util.cpp
index b7d808aa071..d55869c785d 100644
--- a/TAO/TAO_IDL/be/be_util.cpp
+++ b/TAO/TAO_IDL/be/be_util.cpp
@@ -147,7 +147,6 @@ be_util::prep_be_arg (char *s)
static const char arg_post_include[] = "post_include=";
static const char arg_versioning_begin[] = "versioning_begin=";
static const char arg_versioning_end[] = "versioning_end=";
- static const char arg_versioning_include[] = "versioning_include=";
static const char obv_opt_accessor[] = "obv_opt_accessor";
static const char ciao_container_type[] = "ciao_container_type=";
static const char include_guard[] = "include_guard=";
@@ -300,12 +299,6 @@ be_util::prep_be_arg (char *s)
arg + sizeof (arg_versioning_end) - 1;
be_global->versioning_end (val);
}
- else if (ACE_OS::strstr (arg, arg_versioning_include) == arg)
- {
- char const * const val =
- arg + sizeof (arg_versioning_include) - 1;
- be_global->versioning_include (val);
- }
else if (ACE_OS::strstr (arg, dds_impl) == arg)
{
char const * const val =
@@ -531,11 +524,6 @@ be_util::usage (void)
ACE_TEXT (" -Wb,versioning_end\t\t\tSet text that closes a ")
ACE_TEXT ("a \"versioned\" namespace\n")
));
- ACE_DEBUG ((
- LM_DEBUG,
- ACE_TEXT (" -Wb,versioning_include\t\t\tSet text that will be used as include for ")
- ACE_TEXT ("a \"versioned\" namespace\n")
- ));
#endif /* ACE_HAS_VERSIONED_NAMESPACE || TAO_HAS_VERSIONED_NAMESPACE */
ACE_DEBUG ((
LM_DEBUG,
diff --git a/TAO/TAO_IDL/be_include/be_global.h b/TAO/TAO_IDL/be_include/be_global.h
index 919d04a6ffb..560281e9ab0 100644
--- a/TAO/TAO_IDL/be_include/be_global.h
+++ b/TAO/TAO_IDL/be_include/be_global.h
@@ -417,12 +417,6 @@ public:
/// Get text that opens a "versioned" namespace.
const char * versioning_begin (void) const;
- /// Set include file for "versioned" namespace.
- void versioning_include (const char* s);
-
- /// Get include file for "versioned" namespace.
- const char * versioning_include (void) const;
-
/// Get text that opens a "versioned" namespace for core TAO/orbsvcs
/// related code.
const char * core_versioning_begin (void) const;
@@ -969,15 +963,12 @@ private:
/// orbsvcs related code.
ACE_CString core_versioning_end_;
- /// Text that opens a "versioned" namespace.
+ /// Text that opens a "versioned" namepace.
ACE_CString versioning_begin_;
- /// Text that closes a "versioned" namespace.
+ /// Text that closes a "versioned" namepace.
ACE_CString versioning_end_;
- /// Include for versioned namespace include
- ACE_CString versioning_include_;
-
/// Client's header file name ending. Default is "C.h".
char* client_hdr_ending_;
diff --git a/TAO/TAO_IDL/util/utl_err.cpp b/TAO/TAO_IDL/util/utl_err.cpp
index 477e256faf3..af17a0c4b3d 100644
--- a/TAO/TAO_IDL/util/utl_err.cpp
+++ b/TAO/TAO_IDL/util/utl_err.cpp
@@ -935,23 +935,15 @@ void
UTL_Error::inheritance_fwd_error (UTL_ScopedName *n,
AST_Interface *f)
{
- if (f)
- {
- idl_error_header (EIDL_INHERIT_FWD_ERROR,
- f->line (),
- f->file_name ());
- }
-
+ idl_error_header (EIDL_INHERIT_FWD_ERROR,
+ f->line (),
+ f->file_name ());
ACE_ERROR ((LM_ERROR,
"interface "));
n->dump (*ACE_DEFAULT_LOG_STREAM);
ACE_ERROR ((LM_ERROR,
" cannot inherit from forward declared interface "));
- if (f)
- {
- f->local_name ()->dump (*ACE_DEFAULT_LOG_STREAM);
- }
-
+ f->local_name ()->dump (*ACE_DEFAULT_LOG_STREAM);
ACE_ERROR ((LM_ERROR,
"\n"));
idl_global->set_err_count (idl_global->err_count () + 1);
diff --git a/TAO/VERSION b/TAO/VERSION
index 187eefd8542..3282654d3d0 100644
--- a/TAO/VERSION
+++ b/TAO/VERSION
@@ -1,4 +1,4 @@
-This is TAO version 2.1.8, released Thu Mar 14 09:04:46 CET 2013
+This is TAO version 2.1.7, released Thu Dec 27 10:00:49 CET 2012
If you have any problems with or questions about TAO, please send
e-mail to the TAO mailing list (tao-bugs@list.isis.vanderbilt.edu),
diff --git a/TAO/bin/tao_other_tests.lst b/TAO/bin/tao_other_tests.lst
index 8b858de93bf..4130eb1d009 100644
--- a/TAO/bin/tao_other_tests.lst
+++ b/TAO/bin/tao_other_tests.lst
@@ -120,7 +120,6 @@ TAO/orbsvcs/tests/ImplRepo/run_test.pl perclient: !MINIMUM !CORBA_E_COMPACT !COR
TAO/orbsvcs/tests/ImplRepo/run_test.pl persistent_ir_hash: !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !WCHAR !ACE_FOR_TAO
TAO/orbsvcs/tests/ImplRepo/run_test.pl persistent_ir_shared: !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !WCHAR !ACE_FOR_TAO !Win32
TAO/orbsvcs/tests/ImplRepo/run_test.pl failover -replica: !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !WCHAR !ACE_FOR_TAO !Win32
-TAO/orbsvcs/tests/ImplRepo/run_test.pl backup_restart -replica: !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !WCHAR !ACE_FOR_TAO !Win32
TAO/orbsvcs/tests/ImplRepo/run_test.pl persistent_ft -replica: !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !WCHAR !ACE_FOR_TAO !Win32
TAO/orbsvcs/tests/ImplRepo/run_test.pl persistent_listingcorrupt -replica: !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !WCHAR !ACE_FOR_TAO !Win32
TAO/orbsvcs/tests/ImplRepo/run_test.pl persistent_activatorcorrupt -replica: !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !WCHAR !ACE_FOR_TAO !Win32
@@ -136,7 +135,7 @@ TAO/orbsvcs/tests/ImplRepo/ReconnectServer/run_test.pl: !MINIMUM !CORBA_E_COMPAC
TAO/orbsvcs/tests/ImplRepo/ReconnectServer/run_test.pl -forwardalways: !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !WCHAR !ACE_FOR_TAO !LynxOS
TAO/orbsvcs/tests/ImplRepo/ReconnectServer/run_test.pl -forwardonce: !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !WCHAR !ACE_FOR_TAO !LynxOS
TAO/orbsvcs/tests/ImplRepo/RestartServer/run_test.pl: !ST !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !WCHAR !ACE_FOR_TAO !LynxOS !OpenVMS
-TAO/orbsvcs/tests/ImplRepo/servers_interact_on_startup/run_test.pl: !ST !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !WCHAR !ACE_FOR_TAO !LynxOS !OpenVMS !FIXED_BUGS_ONLY
+TAO/orbsvcs/tests/ImplRepo/servers_interact_on_startup/run_test.pl: !ST !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !WCHAR !ACE_FOR_TAO !LynxOS !OpenVMS
TAO/orbsvcs/examples/ImR/Combined_Service/run_test.pl: !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !STATIC !ST !ACE_FOR_TAO !LynxOS
TAO/orbsvcs/examples/CosEC/TypedSimple/run_test.pl: !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !NO_IFR !ACE_FOR_TAO !WCHAR
TAO/orbsvcs/tests/CosEvent/Timeout/run_test.pl: !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !ST !NO_MESSAGING !ACE_FOR_TAO !LynxOS
diff --git a/TAO/docs/Options.html b/TAO/docs/Options.html
index 7d075cabdff..1bd25a2fa66 100644
--- a/TAO/docs/Options.html
+++ b/TAO/docs/Options.html
@@ -996,7 +996,7 @@ having them use the same configurator file.
been detected that a connection is closed when reading a server reply
and having the server possibly process the reqest more than once
is acceptable. This option currently does not work under FreeBSD,
- OpenVMS, AIX, and Solaris.
+ OpenVMS, and Solaris.
The number of retries will not exceed <em>limit</em>.
If this option is used then -ORBForwardOnTransientLimit should
also be used to avoid a TRANSIENT exception being thrown.
diff --git a/TAO/orbsvcs/ImplRepo_Service/Adapter_Activator.cpp b/TAO/orbsvcs/ImplRepo_Service/Adapter_Activator.cpp
index f893b947636..7901744ad84 100644
--- a/TAO/orbsvcs/ImplRepo_Service/Adapter_Activator.cpp
+++ b/TAO/orbsvcs/ImplRepo_Service/Adapter_Activator.cpp
@@ -12,29 +12,30 @@
#include "Adapter_Activator.h"
#include "ace/Log_Msg.h"
+#include "tao/PortableServer/Servant_Base.h"
ImR_Adapter::ImR_Adapter (void)
-: servant_locator_ (0)
+ : default_servant_ (0)
{
}
void
-ImR_Adapter::init (PortableServer::ServantLocator_ptr servant)
+ImR_Adapter::init (TAO_ServantBase * servant)
{
- servant_locator_ = servant;
+ ACE_DEBUG ((LM_DEBUG, "ImR_Adapter::init with default servant\n"));
+ default_servant_ = servant;
}
CORBA::Boolean
ImR_Adapter::unknown_adapter (PortableServer::POA_ptr parent,
- const char *name)
+ const char *name)
{
ACE_ASSERT (! CORBA::is_nil(parent));
ACE_ASSERT (name != 0);
- CORBA::PolicyList policies (2);
- policies.length (2);
+ CORBA::PolicyList policies (3);
const char *exception_message = "Null Message";
-
+ policies.length (3);
try
{
// Servant Retention Policy
@@ -44,8 +45,11 @@ ImR_Adapter::unknown_adapter (PortableServer::POA_ptr parent,
// Request Processing Policy
exception_message = "While PortableServer::POA::create_request_processing_policy";
+
policies[1] =
- parent->create_request_processing_policy (PortableServer::USE_SERVANT_MANAGER);
+ parent->create_request_processing_policy (PortableServer::USE_DEFAULT_SERVANT);
+ policies[2] =
+ parent->create_id_uniqueness_policy (PortableServer::MULTIPLE_ID);
PortableServer::POAManager_var poa_manager =
parent->the_POAManager ();
@@ -56,7 +60,7 @@ ImR_Adapter::unknown_adapter (PortableServer::POA_ptr parent,
poa_manager.in (),
policies);
- exception_message = "While unknown_adapter::policy->destroy";
+ exception_message = "While policy->destroy";
for (CORBA::ULong i = 0; i < policies.length (); ++i)
{
CORBA::Policy_ptr policy = policies[i];
@@ -66,8 +70,8 @@ ImR_Adapter::unknown_adapter (PortableServer::POA_ptr parent,
exception_message = "While child->the_activator";
child->the_activator (this);
- exception_message = "While unknown_adapter, set_servant_manager";
- child->set_servant_manager (this->servant_locator_);
+ exception_message = "While set_servant";
+ child->set_servant (this->default_servant_);
}
catch (const CORBA::Exception& ex)
{
diff --git a/TAO/orbsvcs/ImplRepo_Service/Adapter_Activator.h b/TAO/orbsvcs/ImplRepo_Service/Adapter_Activator.h
index e1396f9c7d4..8a56836c0f1 100644
--- a/TAO/orbsvcs/ImplRepo_Service/Adapter_Activator.h
+++ b/TAO/orbsvcs/ImplRepo_Service/Adapter_Activator.h
@@ -16,7 +16,6 @@
#include "tao/PortableServer/PortableServer.h"
#include "tao/PortableServer/AdapterActivatorC.h"
-#include "tao/PortableServer/ServantLocatorC.h"
#if !defined (ACE_LACKS_PRAGMA_ONCE)
# pragma once
@@ -24,16 +23,18 @@
#include "tao/LocalObject.h"
+class TAO_ServantBase;
+
/**
* @class ImR_Adapter_Activator
*
* @brief Implementation Repository Adapter Activator
*
- * Part of the ServantLocator/AdapterActivator combination that is used to
+ * Part of the DefaultServant/AdapterActivator combination that is used to
* receive forwardable requests from clients. The Adapter Activator creates
* the POA structure that the request expects. For each POA created, the
- * same ServantLocator will be registered in each one.
+ * same DefaultServant will be registered in each one.
*/
class ImR_Adapter
: public PortableServer::AdapterActivator,
@@ -48,10 +49,10 @@ public:
const char *name
);
- void init(PortableServer::ServantLocator_ptr servant);
+ void init(TAO_ServantBase * servant);
private:
- /// The ServantLocator registered in each new POA.
- PortableServer::ServantLocator_ptr servant_locator_;
+ /// the default servant used.
+ TAO_ServantBase *default_servant_;
};
#endif /* IMR_ADAPTER_ACTIVATOR_H */
diff --git a/TAO/orbsvcs/ImplRepo_Service/AsyncAccessManager.cpp b/TAO/orbsvcs/ImplRepo_Service/AsyncAccessManager.cpp
new file mode 100644
index 00000000000..d22a3c10ed2
--- /dev/null
+++ b/TAO/orbsvcs/ImplRepo_Service/AsyncAccessManager.cpp
@@ -0,0 +1,535 @@
+// -*- C++ -*-
+// $Id$
+
+#include "AsyncAccessManager.h"
+#include "ImR_Locator_i.h"
+#include "Locator_Repository.h"
+
+//---------------------------------------------------------------------------
+//---------------------------------------------------------------------------
+
+AsyncAccessManager::AsyncAccessManager (const Server_Info &info,
+ bool manual,
+ ImR_Locator_i &locator)
+ :info_(0),
+ manual_start_ (manual),
+ locator_(locator),
+ poa_(locator.root_poa()),
+ rh_list_(),
+ status_(AAM_INIT),
+ refcount_(1),
+ lock_()
+{
+ this->info_ = new Server_Info (info);
+}
+
+AsyncAccessManager::~AsyncAccessManager (void)
+{
+ delete this->info_;
+}
+
+void
+AsyncAccessManager::started_running (void)
+{
+ this->status_ = AAM_SERVER_STARTED_RUNNING;
+}
+
+bool
+AsyncAccessManager::has_server (const char *s)
+{
+ int result = ACE_OS::strcmp (this->info_->name.c_str(),s);
+ return result == 0;
+}
+
+void
+AsyncAccessManager::add_interest (ImR_ResponseHandler *rh)
+{
+ {
+ ACE_GUARD (TAO_SYNCH_MUTEX, mon, this->lock_);
+ this->rh_list_.push_back (rh);
+ }
+
+ if (this->info_->activation_mode == ImplementationRepository::PER_CLIENT)
+ {
+ if (!this->send_start_request())
+ {
+ this->final_state();
+ }
+ return;
+ }
+
+ if (this->status_ == AAM_SERVER_READY || this->status_ == AAM_SERVER_STARTED_RUNNING)
+ {
+ if (this->locator_.pinger().is_alive (this->info_->name.c_str()))
+ {
+ this->status_ = AAM_SERVER_READY;
+ this->final_state();
+ return;
+ }
+ }
+
+ if (this->status_ == AAM_INIT ||
+ this->status_ == AAM_SERVER_READY ||
+ this->status_ == AAM_SERVER_STARTED_RUNNING)
+ {
+ // This is not a leak. The listener registers with
+ // the pinger and will delete itself when done.
+ AsyncLiveListener *l = 0;
+ ACE_NEW (l, AsyncLiveListener (this->info_->name.c_str(),
+ this,
+ this->locator_.pinger()));
+ if (!l->start())
+ {
+ if (!this->send_start_request())
+ {
+ this->final_state();
+ }
+ }
+ else
+ {
+ if (this->status_ == AAM_SERVER_STARTED_RUNNING)
+ {
+ this->status (AAM_WAIT_FOR_ALIVE);
+ }
+ else
+ {
+ this->status (AAM_WAIT_FOR_PING);
+ }
+ }
+ }
+}
+
+void
+AsyncAccessManager::final_state (void)
+{
+ for (size_t i = 0; i < this->rh_list_.size(); i++)
+ {
+ ImR_ResponseHandler *rh = this->rh_list_[i];
+ if (rh != 0)
+ {
+ if (this->status_ == AAM_SERVER_READY)
+ {
+ rh->send_ior (this->info_->partial_ior.c_str());
+ }
+ else
+ {
+ try
+ {
+ switch (this->status_)
+ {
+ case AAM_NO_ACTIVATOR:
+ throw ImplementationRepository::CannotActivate
+ ("No activator registered for server.");
+ case AAM_NOT_MANUAL:
+ throw ImplementationRepository::CannotActivate
+ ("Cannot implicitly activate MANUAL server.");
+ case AAM_NO_COMMANDLINE:
+ throw ImplementationRepository::CannotActivate
+ ("No command line registered for server.");
+ default:
+ throw ImplementationRepository::CannotActivate
+ ("Unknown Failure");
+ }
+ }
+ catch (CORBA::Exception &ex)
+ {
+ rh->send_exception (ex._tao_duplicate());
+ }
+ }
+ }
+ }
+ this->rh_list_.clear ();
+ if (this->info_->activation_mode == ImplementationRepository::PER_CLIENT ||
+ this->status_ != AAM_SERVER_READY)
+ {
+ AsyncAccessManager_ptr aam (this);
+ this->locator_.remove_aam (aam);
+ aam._retn(); // release w/o decrementing since table held last reference.
+ }
+}
+
+AAM_Status
+AsyncAccessManager::status (void) const
+{
+ return this->status_;
+}
+
+void
+AsyncAccessManager::status (AAM_Status s)
+{
+ ACE_GUARD (TAO_SYNCH_MUTEX, mon, this->lock_);
+ this->status_ = s;
+}
+
+void
+AsyncAccessManager::activator_replied (bool success)
+{
+ if (success)
+ {
+ this->status (AAM_WAIT_FOR_RUNNING);
+ }
+ else
+ {
+ this->status (AAM_NO_ACTIVATOR);
+ this->final_state ();
+ }
+}
+
+void
+AsyncAccessManager::server_is_shutting_down (void)
+{
+ this->status (AAM_SERVER_DEAD);
+ this->final_state ();
+}
+
+void
+AsyncAccessManager::server_is_running (const char *partial_ior,
+ ImplementationRepository::ServerObject_ptr ref)
+{
+ this->status (AAM_WAIT_FOR_ALIVE);
+ this->info_->partial_ior = partial_ior;
+ this->info_->server = ImplementationRepository::ServerObject::_duplicate (ref);
+
+ if (this->locator_.pinger().is_alive (this->info_->name.c_str()))
+ {
+ this->status (AAM_SERVER_READY);
+ this->final_state ();
+ }
+
+ // This is not a leak. The listener registers with
+ // the pinger and will delete itself when done.
+ AsyncLiveListener *l = 0;
+ if (this->info_->activation_mode == ImplementationRepository::PER_CLIENT)
+ {
+ ACE_NEW (l, AsyncLiveListener (this->info_->name.c_str(),
+ this,
+ this->locator_.pinger(),
+ this->info_->server.in()));
+ }
+ else
+ {
+ ACE_NEW (l, AsyncLiveListener (this->info_->name.c_str(),
+ this,
+ this->locator_.pinger()));
+ }
+ if (!l->start())
+ {
+ this->status (AAM_SERVER_DEAD);
+ this->final_state ();
+ }
+}
+
+void
+AsyncAccessManager::ping_replied (LiveStatus server)
+{
+ switch (server)
+ {
+ case LS_ALIVE:
+ case LS_LAST_TRANSIENT:
+ case LS_TIMEDOUT:
+ this->status (AAM_SERVER_READY);
+ break;
+ case LS_DEAD:
+ {
+ if (this->status_ == AAM_WAIT_FOR_PING)
+ {
+ if (this->send_start_request ())
+ {
+ return;
+ }
+ }
+ else
+ {
+ this->status (AAM_SERVER_DEAD);
+ }
+ }
+ break;
+ default:
+ return;
+ }
+ this->final_state();
+}
+
+bool
+AsyncAccessManager::send_start_request (void)
+{
+ if (this->info_->activation_mode == ImplementationRepository::MANUAL &&
+ !this->manual_start_)
+ {
+ this->status (AAM_NOT_MANUAL);
+ return false;
+ }
+
+ if (this->info_->cmdline.length () == 0)
+ {
+ this->status (AAM_NO_COMMANDLINE);
+ return false;
+ }
+
+ Activator_Info_Ptr ainfo =
+ this->locator_.get_activator (this->info_->activator);
+
+ if (ainfo.null () || CORBA::is_nil (ainfo->activator.in ()))
+ {
+ this->status (AAM_NO_ACTIVATOR);
+ return false;
+ }
+
+ PortableServer::ServantBase_var callback = new ActivatorReceiver (this,
+ this->poa_.in());
+ PortableServer::ObjectId_var oid = this->poa_->activate_object (callback.in());
+ CORBA::Object_var obj = this->poa_->id_to_reference (oid.in());
+ ImplementationRepository::AMI_ActivatorHandler_var cb =
+ ImplementationRepository::AMI_ActivatorHandler::_narrow (obj.in());
+
+ ainfo->activator->sendc_start_server (cb.in(),
+ this->info_->name.c_str (),
+ this->info_->cmdline.c_str (),
+ this->info_->dir.c_str (),
+ this->info_->env_vars);
+ this->status (AAM_ACTIVATION_SENT);
+ return true;
+}
+
+AsyncAccessManager *
+AsyncAccessManager::add_ref (void)
+{
+ ACE_GUARD_RETURN (TAO_SYNCH_MUTEX, mon, this->lock_, 0);
+ ++this->refcount_;
+
+ return this;
+}
+
+void
+AsyncAccessManager::remove_ref (void)
+{
+ int count = 0;
+ {
+ ACE_GUARD (TAO_SYNCH_MUTEX, mon, this->lock_);
+ count = --this->refcount_;
+ }
+ if (count == 0)
+ {
+ delete this;
+ }
+}
+
+//---------------------------------------------------------------------------
+//---------------------------------------------------------------------------
+
+AsyncAccessManager_ptr::AsyncAccessManager_ptr (void)
+ : val_ (0)
+{
+}
+
+AsyncAccessManager_ptr::AsyncAccessManager_ptr (AsyncAccessManager *aam)
+ :val_ (aam)
+{
+}
+
+AsyncAccessManager_ptr::AsyncAccessManager_ptr (const AsyncAccessManager_ptr &aam_ptr)
+ :val_ (aam_ptr.clone())
+{
+}
+
+AsyncAccessManager_ptr::~AsyncAccessManager_ptr (void)
+{
+ if (val_ != 0)
+ {
+ val_->remove_ref();
+ }
+}
+
+AsyncAccessManager_ptr &
+AsyncAccessManager_ptr::operator= (const AsyncAccessManager_ptr &aam_ptr)
+{
+ if (val_ != *aam_ptr)
+ {
+ if (val_ != 0)
+ {
+ val_->remove_ref();
+ }
+ val_ = aam_ptr.clone();
+ }
+ return *this;
+}
+
+AsyncAccessManager_ptr &
+AsyncAccessManager_ptr::operator= (AsyncAccessManager *aam)
+{
+ if (val_ != aam)
+ {
+ if (val_ != 0)
+ {
+ val_->remove_ref();
+ }
+ val_ = aam;
+ }
+ return *this;
+}
+
+const AsyncAccessManager *
+AsyncAccessManager_ptr::operator-> () const
+{
+ return val_;
+}
+
+const AsyncAccessManager *
+AsyncAccessManager_ptr::operator* () const
+{
+ return val_;
+}
+
+AsyncAccessManager *
+AsyncAccessManager_ptr::operator-> ()
+{
+ return val_;
+}
+
+AsyncAccessManager *
+AsyncAccessManager_ptr::operator* ()
+{
+ return val_;
+}
+
+bool
+AsyncAccessManager_ptr::operator== (const AsyncAccessManager_ptr &aam_ptr) const
+{
+ return val_ == *aam_ptr;
+}
+
+bool
+AsyncAccessManager_ptr::operator== (const AsyncAccessManager *aam) const
+{
+ return val_ == aam;
+}
+
+AsyncAccessManager *
+AsyncAccessManager_ptr::clone (void) const
+{
+ if (val_ != 0)
+ {
+ val_->add_ref();
+ }
+ return val_;
+}
+
+AsyncAccessManager *
+AsyncAccessManager_ptr::_retn (void)
+{
+ AsyncAccessManager * aam = val_;
+ val_ = 0;
+ return aam;
+}
+
+void
+AsyncAccessManager_ptr::assign (AsyncAccessManager *aam)
+{
+ if (val_ != 0)
+ {
+ val_->remove_ref();
+ }
+ val_ = aam;
+}
+
+//---------------------------------------------------------------------------
+//---------------------------------------------------------------------------
+
+ActivatorReceiver::ActivatorReceiver (AsyncAccessManager *aam,
+ PortableServer::POA_ptr poa)
+ :aam_ (aam->add_ref ()),
+ poa_ (PortableServer::POA::_duplicate (poa))
+{
+}
+
+
+ActivatorReceiver::~ActivatorReceiver (void)
+{
+}
+
+void
+ActivatorReceiver::start_server (void)
+{
+ this->aam_->activator_replied (true);
+ PortableServer::ObjectId_var oid = this->poa_->servant_to_id (this);
+ poa_->deactivate_object (oid.in());
+}
+
+void
+ActivatorReceiver::start_server_excep (Messaging::ExceptionHolder *)
+{
+ this->aam_->activator_replied (false);
+ PortableServer::ObjectId_var oid = this->poa_->servant_to_id (this);
+ poa_->deactivate_object (oid.in());
+}
+
+void
+ActivatorReceiver::shutdown (void)
+{
+ // no-op, just satisfy virtual function
+}
+
+void
+ActivatorReceiver::shutdown_excep (Messaging::ExceptionHolder * )
+{
+ // no-op, just satisfy virtual function
+}
+
+
+//---------------------------------------------------------------------------
+//---------------------------------------------------------------------------
+
+AsyncLiveListener::AsyncLiveListener (const char *server,
+ AsyncAccessManager *aam,
+ LiveCheck &pinger)
+ :LiveListener (server),
+ aam_ (aam->add_ref ()),
+ pinger_ (pinger),
+ status_ (LS_UNKNOWN),
+ per_client_ (false),
+ srv_ref_ (ImplementationRepository::ServerObject::_nil())
+{
+}
+
+AsyncLiveListener::AsyncLiveListener (const char *server,
+ AsyncAccessManager *aam,
+ LiveCheck &pinger,
+ ImplementationRepository::ServerObject_ptr ref)
+ :LiveListener (server),
+ aam_ (aam->add_ref ()),
+ pinger_ (pinger),
+ status_ (LS_UNKNOWN),
+ per_client_ (true),
+ srv_ref_ (ImplementationRepository::ServerObject::_duplicate (ref))
+{
+}
+
+AsyncLiveListener::~AsyncLiveListener (void)
+{
+}
+
+bool
+AsyncLiveListener::start (void)
+{
+ bool rtn = this->per_client_ ? this->pinger_.add_per_client_listener (this,srv_ref_.in())
+ : this->pinger_.add_listener (this);
+ if (!rtn)
+ delete this;
+ return rtn;
+}
+
+bool
+AsyncLiveListener::status_changed (LiveStatus status)
+{
+ this->status_ = status;
+ if (status == LS_TRANSIENT)
+ {
+ return false;
+ }
+ else
+ {
+ this->aam_->ping_replied (status);
+ delete this;
+ }
+ return true;
+}
diff --git a/TAO/orbsvcs/ImplRepo_Service/AsyncAccessManager.h b/TAO/orbsvcs/ImplRepo_Service/AsyncAccessManager.h
new file mode 100644
index 00000000000..358d4efebbd
--- /dev/null
+++ b/TAO/orbsvcs/ImplRepo_Service/AsyncAccessManager.h
@@ -0,0 +1,196 @@
+// -*- C++ -*-
+/*
+ * @file AsyncAccessManager.h
+ *
+ * $Id$
+ *
+ * @author Phil Mesnier <mesnier_p@ociweb.com>
+ */
+
+#ifndef IMR_ASYNCACCESSMANAGER_H_
+#define IMR_ASYNCACCESSMANAGER_H_
+
+#include "locator_export.h"
+
+#include "ImR_ActivatorS.h" // ImR_Activator_AMIS.h
+#include "ace/Vector_T.h"
+#include "ace/SString.h"
+
+#include "Forwarder.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+#pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "LiveCheck.h"
+
+class ImR_Locator_i;
+class ImR_ReplyHandler;
+struct Server_Info;
+
+
+enum AAM_Status
+ {
+ AAM_INIT,
+ AAM_SERVER_STARTED_RUNNING,
+ AAM_ACTIVATION_SENT,
+ AAM_WAIT_FOR_RUNNING,
+ AAM_WAIT_FOR_PING,
+ AAM_WAIT_FOR_ALIVE,
+ AAM_SERVER_READY,
+ AAM_SERVER_DEAD,
+ AAM_NOT_MANUAL,
+ AAM_NO_ACTIVATOR,
+ AAM_NO_COMMANDLINE
+ };
+
+//----------------------------------------------------------------------------
+/*
+ * @class AsyncAccessManager
+ *
+ * @brief manages the state of a request for a server across multiple upcalls
+ *
+ * When a client implicitly or explicitly requests a server reference up to
+ * three distinct actions must occur, each of which involves waiting for
+ * externally triggered events.
+ * 1) if not running, request activation of the server
+ * 2) if activated, wait for server to call in with a ServerObject reference
+ * 3) if not recently pinged, ping the ServerObject to confirm it is alive.
+ *
+ * A single AsyncAccessManager instance is used to track the progress of
+ * an individual server activation. If multiple clients request the same
+ * server instance, then each can be notified when the server is ready. If
+ * a server is configured for per-client activation, each client request
+ * will have its own AAM instance.
+ */
+
+class AsyncAccessManager
+{
+ public:
+ AsyncAccessManager (const Server_Info &info,
+ bool manual,
+ ImR_Locator_i &locator);
+
+ ~AsyncAccessManager (void);
+
+ void started_running (void);
+
+ bool has_server (const char *name);
+
+ void add_interest (ImR_ResponseHandler *rh);
+ AAM_Status status (void) const;
+
+ void activator_replied (bool success);
+ void server_is_running (const char *partial_ior,
+ ImplementationRepository::ServerObject_ptr ref);
+ void server_is_shutting_down (void);
+ void ping_replied (LiveStatus server);
+
+ AsyncAccessManager *add_ref (void);
+ void remove_ref (void);
+
+ private:
+ void final_state (void);
+ void status (AAM_Status s);
+ bool send_start_request (void);
+
+ Server_Info *info_;
+ bool manual_start_;
+ ImR_Locator_i &locator_;
+ PortableServer::POA_var poa_;
+ ACE_Vector<ImR_ResponseHandler *> rh_list_;
+
+ AAM_Status status_;
+
+ int refcount_;
+ TAO_SYNCH_MUTEX lock_;
+};
+
+class AsyncAccessManager_ptr
+{
+public:
+ AsyncAccessManager_ptr (void);
+ AsyncAccessManager_ptr (AsyncAccessManager *aam);
+ AsyncAccessManager_ptr (const AsyncAccessManager_ptr &aam_ptr);
+ ~AsyncAccessManager_ptr (void);
+
+ AsyncAccessManager_ptr &operator = (const AsyncAccessManager_ptr &aam_ptr);
+ AsyncAccessManager_ptr &operator = (AsyncAccessManager *aam);
+ const AsyncAccessManager * operator-> () const;
+ const AsyncAccessManager * operator* () const;
+ AsyncAccessManager * operator-> ();
+ AsyncAccessManager * operator* ();
+ bool operator== (const AsyncAccessManager_ptr &aam_ptr) const;
+ bool operator== (const AsyncAccessManager *aam) const;
+
+ AsyncAccessManager * clone (void) const;
+ AsyncAccessManager * _retn (void);
+
+ void assign (AsyncAccessManager *aam);
+
+private:
+ AsyncAccessManager * val_;
+};
+
+//----------------------------------------------------------------------------
+/*
+ * @class ActivatorReceiver
+ *
+ * @brief callback for handling asynch server startup requests
+ *
+ */
+
+class ActivatorReceiver :
+ public virtual POA_ImplementationRepository::AMI_ActivatorHandler
+{
+public:
+ ActivatorReceiver (AsyncAccessManager *aam,
+ PortableServer::POA_ptr poa);
+ virtual ~ActivatorReceiver (void);
+
+ void start_server (void);
+ void start_server_excep (Messaging::ExceptionHolder * excep_holder);
+
+ void shutdown (void);
+ void shutdown_excep (Messaging::ExceptionHolder * excep_holder);
+
+private:
+ AsyncAccessManager_ptr aam_;
+ PortableServer::POA_var poa_;
+};
+
+
+//----------------------------------------------------------------------------
+/*
+ */
+
+class AsyncLiveListener : public LiveListener
+{
+ public:
+ AsyncLiveListener (const char * server,
+ AsyncAccessManager *aam,
+ LiveCheck &pinger,
+ ImplementationRepository::ServerObject_ptr ref);
+
+ AsyncLiveListener (const char * server,
+ AsyncAccessManager *aam,
+ LiveCheck &pinger);
+
+ virtual ~AsyncLiveListener (void);
+ bool start (void);
+
+ bool status_changed (LiveStatus status);
+
+ private:
+ AsyncAccessManager_ptr aam_;
+ LiveCheck &pinger_;
+ LiveStatus status_;
+ bool per_client_;
+ ImplementationRepository::ServerObject_var srv_ref_;
+};
+
+
+
+
+
+#endif /* IMR_ASYNCACCESSMANGER_H_ */
diff --git a/TAO/orbsvcs/ImplRepo_Service/AsyncStartupWaiter.idl b/TAO/orbsvcs/ImplRepo_Service/AsyncStartupWaiter.idl
deleted file mode 100644
index 92a908888d9..00000000000
--- a/TAO/orbsvcs/ImplRepo_Service/AsyncStartupWaiter.idl
+++ /dev/null
@@ -1,18 +0,0 @@
-// -*- IDL -*-
-
-// $Id$
-
-module ImplementationRepository
-{
- struct StartupInfo {
- string name;
- string partial_ior;
- string ior;
- };
-
- interface AsyncStartupWaiter
- {
- StartupInfo wait_for_startup(in string name);
- };
-};
-
diff --git a/TAO/orbsvcs/ImplRepo_Service/AsyncStartupWaiter_i.cpp b/TAO/orbsvcs/ImplRepo_Service/AsyncStartupWaiter_i.cpp
deleted file mode 100644
index cca2a7a9807..00000000000
--- a/TAO/orbsvcs/ImplRepo_Service/AsyncStartupWaiter_i.cpp
+++ /dev/null
@@ -1,167 +0,0 @@
-// -*- C++ -*-
-//
-// $Id$
-
-#include "AsyncStartupWaiter_i.h"
-#include "ImR_Locator_i.h"
-
-using namespace ImplementationRepository;
-
-AsyncStartupWaiter_i::PendingData::PendingData (const char* p, const char* i)
-: partial_ior (p)
-, ior( i)
-{
-}
-
-AsyncStartupWaiter_i::PendingData::PendingData ()
-{
-}
-
-
-void AsyncStartupWaiter_i::debug (bool dbg)
-{
- debug_ = dbg;
-}
-
-void AsyncStartupWaiter_i::wait_for_startup (AMH_AsyncStartupWaiterResponseHandler_ptr rh,
- const char* name)
-{
- PendingListPtr plst;
- pending_.find(name, plst);
- if (! plst.null () && plst->size () > 0)
- {
- PendingList& tmp = *plst;
- PendingData& pd = tmp[tmp.size () - 1];
- tmp.pop_back ();
-
- if (debug_)
- ACE_DEBUG ((LM_DEBUG, "ImR: Skipping wait due to queued startup info for <%s>.\n", name));
-
- send_response (*rh, name, pd.partial_ior.c_str(), pd.ior.c_str());
-
- }
- else
- {
- RHListPtr lst;
- waiting_.find (name, lst);
- if (lst.null ())
- {
- lst = RHListPtr (new RHList);
- int err = waiting_.bind (name, lst);
- ACE_ASSERT (err == 0);
- ACE_UNUSED_ARG (err);
- }
- lst->push_back (AMH_AsyncStartupWaiterResponseHandler::_duplicate (rh));
- }
-}
-
-void
-AsyncStartupWaiter_i::send_response (ImplementationRepository::AMH_AsyncStartupWaiterResponseHandler& rh,
- const char* name, const char* partial_ior, const char* ior)
-{
- StartupInfo_var si = new StartupInfo();
- si->name = name;
- si->partial_ior = partial_ior;
- si->ior = ior;
-
- try
- {
- rh.wait_for_startup (si.in ());
- }
- catch (const CORBA::Exception& ex)
- {
- if (debug_)
- ex._tao_print_exception (
- "AsyncStartupWaiter_i::send_response ()");
- }
-}
-
-void
-AsyncStartupWaiter_i::unblock_one (const char* name, const char* partial_ior, const char* ior, bool queue) {
- ImplementationRepository::AMH_AsyncStartupWaiterResponseHandler_var rh = get_one_waiter(name);
- if (! CORBA::is_nil(rh.in ()))
- {
- send_response (*rh.in (), name, partial_ior, ior);
- }
- else if (queue)
- {
- if (debug_)
- ACE_DEBUG((LM_DEBUG, "ImR: Queuing startup info.\n"));
-
- PendingListPtr lst;
- pending_.find (name, lst);
- if (lst.null ())
- {
- lst = PendingListPtr (new PendingList);
- int err = pending_.bind (name, lst);
- ACE_ASSERT (err == 0);
- ACE_UNUSED_ARG (err);
- }
- lst->push_back (PendingData (partial_ior, ior));
- }
-}
-
-void
-AsyncStartupWaiter_i::unblock_all (const char* name) {
- RHList tmp;
-
- get_all_waiters (name, tmp);
-
- // This startup info should be ignored when unblocking all, because we
- // don't know the ior or partial_ior at this point.
- StartupInfo_var si = new StartupInfo ();
- si->name = name;
-
- // Note : This method may be called when there are no waiters.
-
- for (size_t i = 0; i < tmp.size(); ++i)
- {
- try
- {
- ImplementationRepository::AMH_AsyncStartupWaiterResponseHandler_var& rh = tmp[i];
-
- rh->wait_for_startup (si.in ());
- }
- catch (const CORBA::Exception& ex)
- {
- if (debug_)
- ex._tao_print_exception (
- "AsyncStartupWaiter_i::unblock_all ()");
- }
- }
-}
-
-ImplementationRepository::AMH_AsyncStartupWaiterResponseHandler_ptr
-AsyncStartupWaiter_i::get_one_waiter (const char* name)
-{
- RHListPtr lst;
- waiting_.find (name, lst);
- if (! lst.null() && lst->size () > 0)
- {
- RHList& rhlst = *lst;
- ImplementationRepository::AMH_AsyncStartupWaiterResponseHandler_var& tmp = rhlst[rhlst.size () - 1];
- ImplementationRepository::AMH_AsyncStartupWaiterResponseHandler_ptr ret = tmp._retn ();
- rhlst.pop_back ();
- return ret;
- }
- return ImplementationRepository::AMH_AsyncStartupWaiterResponseHandler::_nil ();
-}
-
-void
-AsyncStartupWaiter_i::get_all_waiters (const char* name, RHList& ret)
-{
- RHListPtr lst;
- waiting_.find (name, lst);
- if (! lst.null ()) {
- for (size_t i = 0; i < lst->size (); ++i)
- {
- RHList& tmp = *lst;
- ret.push_back (tmp[i]);
- // The ACE_Vector will not destruct the elements when cleared, so we must
- // make sure to do so here.
- tmp[i] = ImplementationRepository::AMH_AsyncStartupWaiterResponseHandler::_nil ();
- }
- lst->clear ();
- }
-}
-
diff --git a/TAO/orbsvcs/ImplRepo_Service/AsyncStartupWaiter_i.h b/TAO/orbsvcs/ImplRepo_Service/AsyncStartupWaiter_i.h
deleted file mode 100644
index 59ee659344d..00000000000
--- a/TAO/orbsvcs/ImplRepo_Service/AsyncStartupWaiter_i.h
+++ /dev/null
@@ -1,74 +0,0 @@
-// -*- C++ -*-
-//
-// $Id$
-
-#ifndef IMR_AsyncStartupWaiterI_H_
-#define IMR_AsyncStartupWaiterI_H_
-
-#include "locator_export.h"
-#include "AsyncStartupWaiterS.h"
-
-#include "ace/Vector_T.h"
-#include "ace/Hash_Map_Manager.h"
-#include "ace/Bound_Ptr.h"
-#include "ace/SString.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-#pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-
-class ImR_Locator_i;
-
-class Locator_Export AsyncStartupWaiter_i : public virtual POA_ImplementationRepository::AMH_AsyncStartupWaiter
-{
- struct PendingData {
- PendingData();
- PendingData(const char* partial_ior, const char* ior);
- ACE_CString partial_ior;
- ACE_CString ior;
- };
- typedef ACE_Vector<PendingData> PendingList;
- typedef ACE_Strong_Bound_Ptr<PendingList, ACE_Null_Mutex> PendingListPtr;
- typedef ACE_Hash_Map_Manager_Ex<ACE_CString,
- PendingListPtr,
- ACE_Hash<ACE_CString>,
- ACE_Equal_To<ACE_CString>,
- ACE_Null_Mutex> PendingMap;
-
- typedef ACE_Vector<ImplementationRepository::AMH_AsyncStartupWaiterResponseHandler_var> RHList;
- typedef ACE_Strong_Bound_Ptr<RHList, ACE_Null_Mutex> RHListPtr;
- typedef ACE_Hash_Map_Manager_Ex<ACE_CString,
- RHListPtr,
- ACE_Hash<ACE_CString>,
- ACE_Equal_To<ACE_CString>,
- ACE_Null_Mutex> WaitingMap;
-
-public:
-
- void wait_for_startup (
- ImplementationRepository::AMH_AsyncStartupWaiterResponseHandler_ptr rh,
- const char* name);
-
- void unblock_one(const char* name, const char* partial_ior, const char* ior, bool queue);
- void unblock_all(const char* name);
-
- void debug(bool dbg);
-
-private:
-
-ImplementationRepository::AMH_AsyncStartupWaiterResponseHandler_ptr
- get_one_waiter(const char* name);
-
-void get_all_waiters(const char* name, RHList& ret);
-
-void send_response(ImplementationRepository::AMH_AsyncStartupWaiterResponseHandler& rh,
- const char* name, const char* partial_ior, const char* ior);
-private:
- WaitingMap waiting_;
- PendingMap pending_;
- bool debug_;
-};
-
-#endif /* AsyncStartupWaiterI_H_ */
-
diff --git a/TAO/orbsvcs/ImplRepo_Service/Forwarder.cpp b/TAO/orbsvcs/ImplRepo_Service/Forwarder.cpp
index 4ca91d7002f..9b143038eb0 100644
--- a/TAO/orbsvcs/ImplRepo_Service/Forwarder.cpp
+++ b/TAO/orbsvcs/ImplRepo_Service/Forwarder.cpp
@@ -22,18 +22,24 @@
#include "tao/PortableServer/POA_Current_Impl.h"
#include "tao/PortableServer/POA_Current.h"
-/**
-* This constructor takes in orb and ImR_Locator_i pointers to store for later
-* use. It also grabs a reference to the POACurrent object for use in
-* preinvoke.
-*/
-ImR_Forwarder::ImR_Forwarder (ImR_Locator_i& imr_impl)
+#include <tao/TAO_Server_Request.h>
+#include <tao/DynamicInterface/Request.h>
+#include <tao/DynamicInterface/Server_Request.h>
+#include <tao/DynamicInterface/AMH_DSI_Response_Handler.h>
+#include <tao/Messaging/AMH_Response_Handler.h>
+
+ImR_DSI_Forwarder::ImR_DSI_Forwarder (ImR_Locator_i& imr_impl)
: locator_ (imr_impl)
+ , orb_ (0)
+{
+}
+
+ImR_DSI_Forwarder::~ImR_DSI_Forwarder (void)
{
}
void
-ImR_Forwarder::init (CORBA::ORB_ptr orb)
+ImR_DSI_Forwarder::init (CORBA::ORB_ptr orb)
{
ACE_ASSERT (! CORBA::is_nil(orb));
this->orb_ = orb;
@@ -47,114 +53,194 @@ ImR_Forwarder::init (CORBA::ORB_ptr orb)
}
catch (const CORBA::Exception&)
{
- ACE_DEBUG ((LM_DEBUG, "ImR_Forwarder::init() Exception ignored.\n"));
}
ACE_ASSERT (!CORBA::is_nil (this->poa_current_var_.in ()));
}
-/**
-* We figure out the intended recipient from the POA name. After activating
-* the server, we throw a forwarding exception to the correct server.
-*
-* The big complicated thing here is that we have to create the forwarding
-* ior based on what we already have. So we combine the endpoint received
-* from activate_server_i and append the objectid from the request to it.
-*/
-PortableServer::Servant
-ImR_Forwarder::preinvoke (const PortableServer::ObjectId &,
- PortableServer::POA_ptr poa,
- const char *,
- PortableServer::ServantLocator::Cookie &)
+void
+ImR_DSI_Forwarder::_dispatch (TAO_ServerRequest &request,
+ TAO::Portable_Server::Servant_Upcall * /*context */ )
{
- ACE_ASSERT (! CORBA::is_nil(poa));
- CORBA::Object_var forward_obj;
-
- try
+ // No need to do any of this if the client isn't waiting.
+ if (request.response_expected ())
{
- CORBA::String_var server_name = poa->the_name();
-
- if (locator_.debug() > 1)
- ACE_DEBUG ((LM_DEBUG, "ImR: Activating server <%s>.\n", server_name.in()));
+ if (!CORBA::is_nil (request.forward_location ()))
+ {
+ request.init_reply ();
+ request.tao_send_reply ();
- // The activator stores a partial ior with each server. We can
- // just tack on the current ObjectKey to get a valid ior for
- // the desired server.
- CORBA::String_var pior = locator_.activate_server_by_name (server_name.in (), false);
+ // No need to invoke in this case.
+ return;
+ }
+ else if (request.sync_with_server ())
+ {
+ // The last line before the call to this function
+ // was an ACE_CHECK_RETURN, so if we're here, we
+ // know there is no exception so far, and that's all
+ // a SYNC_WITH_SERVER client request cares about.
+ request.send_no_exception_reply ();
+ }
+ }
- ACE_CString ior = pior.in ();
+ // Create DSI request object.
+ CORBA::ServerRequest *dsi_request = 0;
+ ACE_NEW (dsi_request,
+ CORBA::ServerRequest (request));
+ try
+ {
+ TAO_AMH_DSI_Response_Handler_var rh;
+ ACE_NEW (rh, TAO_AMH_DSI_Response_Handler(request));
- // Check that the returned ior is the expected partial ior with
- // missing ObjectKey.
- if (ior.find ("corbaloc:") != 0 || ior[ior.length () - 1] != '/')
+ rh->init (request, 0);
+ // Delegate to user.
+ this->invoke (dsi_request, rh.in());
+ }
+ catch (CORBA::Exception& ex)
+ {
+ // Only if the client is waiting.
+ if (request.response_expected () && !request.sync_with_server ())
{
- ACE_ERROR ((LM_ERROR, "ImR_Forwarder::preinvoke () Invalid corbaloc ior.\n\t<%s>\n", ior.c_str()));
- throw CORBA::OBJECT_NOT_EXIST (
- CORBA::SystemException::_tao_minor_code (
- TAO_IMPLREPO_MINOR_CODE,
- 0),
- CORBA::COMPLETED_NO);
+ request.tao_send_reply_exception (ex);
}
+ }
+ CORBA::release (dsi_request);
+}
- CORBA::String_var key_str;
- // Unlike POA Current, this implementation cannot be cached.
- TAO::Portable_Server::POA_Current* tao_current =
- dynamic_cast <TAO::Portable_Server::POA_Current*> (this->poa_current_var_.in ());
-
- ACE_ASSERT(tao_current != 0);
- TAO::Portable_Server::POA_Current_Impl* impl = tao_current->implementation ();
- TAO::ObjectKey::encode_sequence_to_string (key_str.out (), impl->object_key ());
+void
+ImR_DSI_Forwarder::invoke (CORBA::ServerRequest_ptr )
+{
+ // unused method, only asynch invocations are used
+}
- ior += key_str.in();
+char *
+ImR_DSI_Forwarder::_primary_interface (const PortableServer::ObjectId&,
+ PortableServer::POA_ptr)
+{
+ return CORBA::string_dup ("IDL:Object:1.0");
+}
- if (locator_.debug() > 0)
- ACE_DEBUG ((LM_DEBUG, "ImR: Forwarding invocation on <%s> to <%s>\n", server_name.in(), ior.c_str()));
+void
+ImR_DSI_Forwarder::invoke (CORBA::ServerRequest_ptr request,
+ TAO_AMH_DSI_Response_Handler_ptr resp)
+{
+ bool is_oneway = !request->_tao_server_request().response_expected()
+ || request->_tao_server_request().sync_with_server();
- forward_obj =
- this->orb_->string_to_object (ior.c_str ());
- }
- catch (const ImplementationRepository::CannotActivate&)
+ if (is_oneway)
{
- throw CORBA::TRANSIENT (
- CORBA::SystemException::_tao_minor_code (
- TAO_IMPLREPO_MINOR_CODE,
- 0),
- CORBA::COMPLETED_NO);
+ CORBA::release (resp);
+ return; // nothing else to do?
}
- catch (const ImplementationRepository::NotFound&)
+
+ PortableServer::POA_var poa = this->poa_current_var_->get_POA();
+ PortableServer::ObjectId_var oid = this->poa_current_var_->get_object_id ();
+
+ CORBA::String_var server_name = poa->the_name();
+
+ CORBA::String_var key_str;
+ // Unlike POA Current, this implementation cannot be cached.
+ TAO::Portable_Server::POA_Current* tao_current =
+ dynamic_cast <TAO::Portable_Server::POA_Current*> (this->poa_current_var_.in ());
+
+ ACE_ASSERT(tao_current != 0);
+ TAO::Portable_Server::POA_Current_Impl* impl = tao_current->implementation ();
+ TAO::ObjectKey::encode_sequence_to_string (key_str.out (), impl->object_key ());
+
+ ImR_DSI_ResponseHandler * rh = 0;
+ ACE_NEW (rh, ImR_DSI_ResponseHandler(key_str.in(),
+ this->locator_.debug() > 0 ?
+ server_name.in() : "",
+ this->orb_, resp));
+ this->locator_.activate_server_by_name (server_name.in(), false, rh);
+}
+
+void
+ImR_DSI_Forwarder::invoke_get_interface(CORBA::ServerRequest_ptr )
+{
+ // no impl
+}
+
+void
+ImR_DSI_Forwarder::invoke_primary_interface(CORBA::ServerRequest_ptr )
+{
+ // no impl
+}
+
+
+//--------------------------------------------------------------------
+
+ImR_DSI_ResponseHandler::ImR_DSI_ResponseHandler (const char *key,
+ const char *server_name,
+ CORBA::ORB_ptr orb,
+ TAO_AMH_DSI_Response_Handler_ptr resp)
+ :key_str_ (key),
+ server_name_ (server_name),
+ orb_(CORBA::ORB::_duplicate (orb)),
+ resp_ (TAO_AMH_DSI_Response_Handler::_duplicate (resp))
+{
+}
+
+ImR_DSI_ResponseHandler::~ImR_DSI_ResponseHandler (void)
+{
+}
+
+void
+ImR_DSI_ResponseHandler::send_ior (const char *pior)
+{
+ ACE_CString ior = pior;
+
+ // Check that the returned ior is the expected partial ior with
+ // missing ObjectKey.
+ if (ior.find ("corbaloc:") == 0 && ior[ior.length () -1] == '/')
{
- throw CORBA::TRANSIENT (
- CORBA::SystemException::_tao_minor_code (
- TAO_IMPLREPO_MINOR_CODE,
- 0),
- CORBA::COMPLETED_NO);
+ ior += this->key_str_.in();
+
+ CORBA::Object_var forward_obj =
+ this->orb_->string_to_object (ior.c_str ());
+
+ if (!CORBA::is_nil (forward_obj.in ()))
+ {
+ this->resp_->invoke_location_forward(forward_obj.in(), false);
+ delete this;
+ return;
+ }
+ else
+ {
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("ImR_DSI_ResponseHandler::send_ior (): Forward_to ")
+ ACE_TEXT ("reference is nil.\n")));
+ }
}
- catch (const CORBA::Exception& ex)
+ else
{
- ex._tao_print_exception ("Forwarder");
- throw CORBA::TRANSIENT (
- CORBA::SystemException::_tao_minor_code (
- TAO_IMPLREPO_MINOR_CODE,
- 0),
- CORBA::COMPLETED_NO);
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("ImR_ResponseHandler::send_ior (): Invalid corbaloc ior.\n")
+ ACE_TEXT ("\t<%s>\n"),
+ ior.c_str()));
}
- if (!CORBA::is_nil (forward_obj.in ()))
- throw PortableServer::ForwardRequest (forward_obj.in ());
-
- ACE_ERROR ((LM_ERROR, "Error: Forward_to reference is nil.\n"));
- throw CORBA::OBJECT_NOT_EXIST (
- CORBA::SystemException::_tao_minor_code (
- TAO_IMPLREPO_MINOR_CODE,
- 0),
- CORBA::COMPLETED_NO);
+ this->invoke_excep_i (new CORBA::OBJECT_NOT_EXIST
+ (CORBA::SystemException::_tao_minor_code
+ ( TAO_IMPLREPO_MINOR_CODE, 0),
+ CORBA::COMPLETED_NO));
}
void
-ImR_Forwarder::postinvoke (const PortableServer::ObjectId &,
- PortableServer::POA_ptr,
- const char *,
- PortableServer::ServantLocator::Cookie,
- PortableServer::Servant)
+ImR_DSI_ResponseHandler::invoke_excep_i (CORBA::Exception *ex)
{
+ TAO_AMH_DSI_Exception_Holder h(ex);
+ this->resp_->invoke_excep(&h);
+ delete this;
}
+void
+ImR_DSI_ResponseHandler::send_exception (CORBA::Exception *ex)
+{
+ //discard the exception, always throw a transient:
+ delete ex;
+
+ this->invoke_excep_i (new CORBA::TRANSIENT
+ (CORBA::SystemException::_tao_minor_code
+ (TAO_IMPLREPO_MINOR_CODE, 0),
+ CORBA::COMPLETED_NO));
+}
diff --git a/TAO/orbsvcs/ImplRepo_Service/Forwarder.h b/TAO/orbsvcs/ImplRepo_Service/Forwarder.h
index 776735491bd..cc5b91aa674 100644
--- a/TAO/orbsvcs/ImplRepo_Service/Forwarder.h
+++ b/TAO/orbsvcs/ImplRepo_Service/Forwarder.h
@@ -17,45 +17,90 @@
#include "tao/PortableServer/PortableServer.h"
#include "tao/PortableServer/ServantLocatorC.h"
+#include "tao/DynamicInterface/Dynamic_Implementation.h"
+#include "tao/DynamicInterface/AMH_DSI_Response_Handler.h"
+#include "tao/Messaging/Messaging.h"
#if !defined (ACE_LACKS_PRAGMA_ONCE)
# pragma once
#endif /* ACE_LACKS_PRAGMA_ONCE */
#include "tao/LocalObject.h"
-
+#include "ImR_ResponseHandler.h"
class ImR_Locator_i;
+//----------------------------------------------------------------------------
+/**
+ * @class ImR_DSI_ReplyHandler
+ *
+ * @brief specialized reply handler for forward requests that need to send an
+ * ior
+ *
+ * Used to send either a Location_Forward exception, or some other error
+ * exception.
+ */
+
+// forward declare the types used to manage AMH/DSI coupling
+class TAO_AMH_DSI_Response_Handler;
+typedef TAO_AMH_DSI_Response_Handler * TAO_AMH_DSI_Response_Handler_ptr;
+class TAO_AMH_DSI_Response_Handler_var;
+
+class ImR_DSI_ResponseHandler : public ImR_ResponseHandler
+{
+public:
+ ImR_DSI_ResponseHandler (const char *key,
+ const char *server_name,
+ CORBA::ORB_ptr orb,
+ TAO_AMH_DSI_Response_Handler_ptr resp);
+
+ ~ImR_DSI_ResponseHandler (void);
+
+ void send_ior (const char *pior);
+ void send_exception (CORBA::Exception *ex);
+
+private:
+ void invoke_excep_i (CORBA::Exception *ex);
+
+ CORBA::String_var key_str_;
+ CORBA::String_var server_name_;
+ CORBA::ORB_var orb_;
+ TAO_AMH_DSI_Response_Handler_var resp_;
+};
+
+
+//---------------------------------------------------------------------------
/**
* @class ImR_Forwarder:
*
- * @brief Implementation Repository Forwarder
+ * @brief Implementation Repository Forwarder for AMH
*
- * This class provides a ServantLocator implementation that
- * is used to handle arbitrary calls and forward them to the
- * correct place.
+ * This class provides a Default servant implementation that is used to handle
+ * arbitrary calls and forward them to the correct place. Combinds DSI with
+ * AMH to ensure the handling thread is never blocked waiting for an upcall
+ * if one is necessary
*/
-class ImR_Forwarder
- : public PortableServer::ServantLocator,
- public CORBA::LocalObject
+class ImR_DSI_Forwarder : public virtual TAO_DynamicImplementation
{
public:
- ImR_Forwarder (ImR_Locator_i& imr_impl);
-
- /// Called before the invocation begins.
- virtual PortableServer::Servant preinvoke (
- const PortableServer::ObjectId &oid,
- PortableServer::POA_ptr poa,
- const char * operation,
- PortableServer::ServantLocator::Cookie &cookie);
-
- virtual void postinvoke (
- const PortableServer::ObjectId & oid,
- PortableServer::POA_ptr adapter,
- const char * operation,
- PortableServer::ServantLocator::Cookie the_cookie,
- PortableServer::Servant the_servant);
+ ImR_DSI_Forwarder (ImR_Locator_i& imr_impl);
+ virtual ~ImR_DSI_Forwarder (void);
+
+ virtual void _dispatch (TAO_ServerRequest& request,
+ TAO::Portable_Server::Servant_Upcall *context);
+
+ void invoke (CORBA::ServerRequest_ptr request);
+
+ char * _primary_interface(const PortableServer::ObjectId&,
+ PortableServer::POA_ptr);
+
+ void invoke (CORBA::ServerRequest_ptr request,
+ TAO_AMH_DSI_Response_Handler_ptr rh);
+
+ void invoke_get_interface(CORBA::ServerRequest_ptr request);
+
+ void invoke_primary_interface(CORBA::ServerRequest_ptr request);
+
void init(CORBA::ORB_ptr orb);
@@ -70,4 +115,5 @@ private:
CORBA::ORB_ptr orb_;
};
+
#endif /* IMR_FORWARDER_H */
diff --git a/TAO/orbsvcs/ImplRepo_Service/INS_Locator.cpp b/TAO/orbsvcs/ImplRepo_Service/INS_Locator.cpp
index 45dba296075..3528ad269a2 100644
--- a/TAO/orbsvcs/ImplRepo_Service/INS_Locator.cpp
+++ b/TAO/orbsvcs/ImplRepo_Service/INS_Locator.cpp
@@ -13,6 +13,7 @@
#include "INS_Locator.h"
#include "ImR_Locator_i.h"
#include "tao/ORB_Constants.h"
+#include "tao/ORB_Core.h"
INS_Locator::INS_Locator (ImR_Locator_i& loc)
: imr_locator_ (loc)
@@ -25,109 +26,65 @@ INS_Locator::locate (const char* object_key)
ACE_ASSERT (object_key != 0);
try
{
- ACE_CString key (object_key);
- ssize_t poaidx = key.find ('/');
- if (poaidx >= 0)
- {
- key = key.substring (0, poaidx);
- }
-
- if (imr_locator_.debug () > 1)
- ACE_DEBUG ((LM_DEBUG, "ImR: Activating server <%s>.\n", key.c_str ()));
-
CORBA::String_var located =
- this->imr_locator_.activate_server_by_object (key.c_str ());
-
- ACE_CString tmp = located.in ();
- tmp += object_key;
-
- if (imr_locator_.debug () > 0)
- ACE_DEBUG ((LM_DEBUG, "ImR: Forwarding invocation on <%s> to <%s>\n", key.c_str (), tmp.c_str()));
-
- return CORBA::string_dup (tmp.c_str ());
+ this->imr_locator_.activate_server_by_object (object_key);
+ return located._retn();
}
- catch (const ImplementationRepository::CannotActivate&)
+ catch (CORBA::Exception &)
{
- throw CORBA::TRANSIENT (
- CORBA::SystemException::_tao_minor_code (
- TAO_IMPLREPO_MINOR_CODE,
- 0),
- CORBA::COMPLETED_NO);
+ throw CORBA::TRANSIENT (CORBA::SystemException::_tao_minor_code
+ (TAO_IMPLREPO_MINOR_CODE, 0),
+ CORBA::COMPLETED_NO);
}
- catch (const ImplementationRepository::NotFound&)
- {
- ACE_CString objkey (object_key);
-
- // check to see if there are more slashes beyond the first one
- ssize_t poaidx2 = objkey.rfind ('/');
- ssize_t poaidx1 = objkey.find ('/');
- if (poaidx1 <= 0 || poaidx2 <= 0 || poaidx1 == poaidx2)
- {
- throw CORBA::TRANSIENT (
- CORBA::SystemException::_tao_minor_code (
- TAO_IMPLREPO_MINOR_CODE,
- 0),
- CORBA::COMPLETED_NO);
- }
+}
- // remove the data field beyond the last delimiter
- // which is assumed to be the object id.
- ACE_CString key2 = objkey.substring(0, poaidx2);
- while (poaidx2 > poaidx1)
- {
- try
- {
- if (imr_locator_.debug () > 1)
- {
- ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT ("ImR: Try activating server using <%s>.\n"),
- key2.c_str ()));
- }
+void
+INS_Locator::async_locate (::IORTable::Locate_ResponseHandler handler,
+ const char* object_key)
+{
+ ACE_ASSERT (object_key != 0);
- CORBA::String_var located =
- this->imr_locator_.activate_server_by_object (key2.c_str ());
+ Server_Info_Ptr si;
+ ACE_CString key;
+ ACE_CString full (object_key);
+ if (this->imr_locator_.split_key (full, key, si))
+ {
+ ImR_ResponseHandler *rh;
+ ACE_NEW (rh, INS_Loc_ResponseHandler (key.c_str(), handler));
+ this->imr_locator_.activate_server_by_info (si, rh);
+ }
+ else
+ {
+ handler->raise_excep (CORBA::TRANSIENT (CORBA::SystemException::_tao_minor_code
+ (TAO_IMPLREPO_MINOR_CODE, 0),
+ CORBA::COMPLETED_NO));
+ }
+}
- ACE_CString tmp = located.in ();
- tmp += object_key;
- if (imr_locator_.debug () > 0)
- {
- ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT ("ImR: Forwarding invocation on <%s> ")
- ACE_TEXT ("to <%s>\n"), key2.c_str (), tmp.c_str()));
- }
+//----------------------------------------------------------------------------------------
+INS_Loc_ResponseHandler::INS_Loc_ResponseHandler (const char *key,
+ ::IORTable::Locate_ResponseHandler handler)
+ : key_(key),
+ rh_ (handler)
+{
+}
- return CORBA::string_dup (tmp.c_str ());
- }
- catch (const ImplementationRepository::CannotActivate&)
- {
- throw CORBA::TRANSIENT (
- CORBA::SystemException::_tao_minor_code (
- TAO_IMPLREPO_MINOR_CODE,
- 0),
- CORBA::COMPLETED_NO);
- }
- catch (const ImplementationRepository::NotFound&)
- {
- poaidx2 = key2.rfind ('/');
- if (poaidx2 > poaidx1)
- {
- // continue to try again
- key2 = key2.substring(0, poaidx2);
- continue;
- }
- else
- {
- break;
- }
- }
- } // while()
+void
+INS_Loc_ResponseHandler::send_ior (const char *pior)
+{
+ ACE_CString ior = pior;
+ ior += key_;
+ rh_->forward_ior (ior.c_str(), false);
+ delete this;
+}
- // No match is found
- throw CORBA::TRANSIENT (
- CORBA::SystemException::_tao_minor_code (
- TAO_IMPLREPO_MINOR_CODE,
- 0),
- CORBA::COMPLETED_NO);
- }
+void
+INS_Loc_ResponseHandler::send_exception (CORBA::Exception *ex)
+{
+ delete ex;
+ rh_->raise_excep (CORBA::TRANSIENT (CORBA::SystemException::_tao_minor_code
+ (TAO_IMPLREPO_MINOR_CODE, 0),
+ CORBA::COMPLETED_NO));
+ delete this;
}
diff --git a/TAO/orbsvcs/ImplRepo_Service/INS_Locator.h b/TAO/orbsvcs/ImplRepo_Service/INS_Locator.h
index 1e892df895f..3aee6001873 100644
--- a/TAO/orbsvcs/ImplRepo_Service/INS_Locator.h
+++ b/TAO/orbsvcs/ImplRepo_Service/INS_Locator.h
@@ -22,10 +22,25 @@
#endif /* ACE_LACKS_PRAGMA_ONCE */
#include "tao/LocalObject.h"
-
+#include "ImR_ResponseHandler.h"
+#include "tao/IORTable/Locate_ResponseHandler.h"
class ImR_Locator_i;
+class INS_Loc_ResponseHandler : public ImR_ResponseHandler
+{
+public:
+ INS_Loc_ResponseHandler (const char *key, ::IORTable::Locate_ResponseHandler rh);
+
+ // dummy implementations used for internal operations
+ virtual void send_ior (const char *pior);
+ virtual void send_exception (CORBA::Exception *ex);
+
+private:
+ ACE_CString key_;
+ TAO_AMH_Locate_ResponseHandler_var rh_;
+};
+
/**
* @class INS_Locator
*
@@ -35,7 +50,7 @@ class ImR_Locator_i;
* to dynamically receive a IOR to forward in response to an INS request.
*/
class INS_Locator
- : public virtual IORTable::Locator,
+ : public virtual IORTable::AsyncLocator,
public virtual ::CORBA::LocalObject
{
public:
@@ -43,6 +58,8 @@ public:
/// Locate the appropriate IOR.
char* locate (const char *object_key);
+ void async_locate (::IORTable::Locate_ResponseHandler handler,
+ const char *object_key);
private:
ImR_Locator_i& imr_locator_;
diff --git a/TAO/orbsvcs/ImplRepo_Service/ImR_Locator.cpp b/TAO/orbsvcs/ImplRepo_Service/ImR_Locator.cpp
index 9f5fc0b42c6..d244e2b2baf 100644
--- a/TAO/orbsvcs/ImplRepo_Service/ImR_Locator.cpp
+++ b/TAO/orbsvcs/ImplRepo_Service/ImR_Locator.cpp
@@ -25,7 +25,7 @@ ImR_Locator_Shutdown::operator () (int /*which_signal*/)
{
try
{
- this->imr_.shutdown (true);
+ this->imr_.shutdown (false);
}
catch (const CORBA::Exception& ex)
{
diff --git a/TAO/orbsvcs/ImplRepo_Service/ImR_Locator_i.cpp b/TAO/orbsvcs/ImplRepo_Service/ImR_Locator_i.cpp
index 2a6507277df..f2ea2b9de4f 100644
--- a/TAO/orbsvcs/ImplRepo_Service/ImR_Locator_i.cpp
+++ b/TAO/orbsvcs/ImplRepo_Service/ImR_Locator_i.cpp
@@ -20,9 +20,6 @@
static const int DEFAULT_START_LIMIT = 1;
-static const int PING_RETRY_SCHEDULE[] = {0, 10, 100, 500, 1000, 1000, 1000,
- 1000, 5000, 5000};
-
static const ACE_Time_Value DEFAULT_SERVER_TIMEOUT (0, 10 * 1000); // 10ms
/// We want to give shutdown a little more time to work, so that we
@@ -56,8 +53,9 @@ createPersistentPOA (PortableServer::POA_ptr root_poa, const char* poa_name) {
}
ImR_Locator_i::ImR_Locator_i (void)
- : forwarder_ (*this)
+ : dsi_forwarder_ (*this)
, ins_locator_ (0)
+ , aam_set_ ()
, debug_ (0)
, read_only_ (false)
, unregister_if_address_reused_ (false)
@@ -95,8 +93,9 @@ ImR_Locator_i::init_with_orb (CORBA::ORB_ptr orb, Options& opts)
this->root_poa_ = PortableServer::POA::_narrow (obj.in ());
ACE_ASSERT (! CORBA::is_nil (this->root_poa_.in ()));
- this->forwarder_.init (orb);
- this->adapter_.init (& this->forwarder_);
+ this->dsi_forwarder_.init (orb);
+ this->adapter_.init (& this->dsi_forwarder_);
+ this->pinger_.init (orb, ACE_Time_Value (10,0)); // ping_interval_);
// Register the Adapter_Activator reference to be the RootPOA's
// Adapter Activator.
@@ -107,18 +106,8 @@ ImR_Locator_i::init_with_orb (CORBA::ORB_ptr orb, Options& opts)
"ImplRepo_Service");
ACE_ASSERT (! CORBA::is_nil (this->imr_poa_.in ()));
- waiter_svt_.debug (debug_ > 1);
PortableServer::ObjectId_var id =
- PortableServer::string_to_ObjectId ("ImR_AsyncStartupWaiter");
- this->imr_poa_->activate_object_with_id (id.in (), &waiter_svt_);
- obj = this->imr_poa_->id_to_reference (id.in ());
- if (startup_timeout_ > ACE_Time_Value::zero)
- {
- obj = this->set_timeout_policy (obj.in (), startup_timeout_);
- }
- waiter_ = ImplementationRepository::AsyncStartupWaiter::_narrow (obj.in ());
-
- id = PortableServer::string_to_ObjectId ("ImplRepo_Service");
+ PortableServer::string_to_ObjectId ("ImplRepo_Service");
this->imr_poa_->activate_object_with_id (id.in (), this);
obj = this->imr_poa_->id_to_reference (id.in ());
@@ -182,7 +171,7 @@ int
ImR_Locator_i::init (Options& opts)
{
ACE_CString cmdline = opts.cmdline ();
- cmdline += " -orbcollocation no -orbuseimr 0";
+ cmdline += " -orbuseimr 0";
ACE_ARGV av (cmdline.c_str ());
int argc = av.argc ();
ACE_TCHAR** argv = av.argv ();
@@ -226,8 +215,12 @@ ImR_Locator_i::run (void)
}
void
-ImR_Locator_i::shutdown (CORBA::Boolean activators, CORBA::Boolean servers)
+ImR_Locator_i::shutdown
+(ImplementationRepository::AMH_AdministrationResponseHandler_ptr _tao_rh,
+ CORBA::Boolean activators, CORBA::Boolean servers)
{
+ this->pinger_.shutdown ();
+ this->aam_set_.reset ();
if (servers != 0 && this->repository_->servers ().current_size () > 0)
{
// Note : shutdown is oneway, so we can't throw
@@ -258,7 +251,7 @@ ImR_Locator_i::shutdown (CORBA::Boolean activators, CORBA::Boolean servers)
acts[i]->shutdown ();
acts[i] = ImplementationRepository::Activator::_nil ();
}
- catch (const CORBA::Exception& ex)
+ catch (CORBA::Exception& ex)
{
++shutdown_errs;
if (debug_ > 1)
@@ -278,6 +271,8 @@ ImR_Locator_i::shutdown (CORBA::Boolean activators, CORBA::Boolean servers)
// Technically, we should wait for all the activators to unregister, but
// ,for now at least, it doesn't seem worth it.
this->shutdown (false);
+
+ _tao_rh->shutdown ();
}
void
@@ -294,8 +289,6 @@ ImR_Locator_i::fini (void)
if (debug_ > 1)
ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("ImR: Shutting down...\n")));
- this->repository_.release();
-
this->root_poa_->destroy (1, 1);
this->orb_->destroy ();
@@ -303,7 +296,7 @@ ImR_Locator_i::fini (void)
if (debug_ > 0)
ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("ImR: Shut down successfully.\n")));
}
- catch (const CORBA::Exception& ex)
+ catch (CORBA::Exception& ex)
{
ex._tao_print_exception (ACE_TEXT ("ImR_Locator_i::fini"));
throw;
@@ -311,9 +304,11 @@ ImR_Locator_i::fini (void)
return 0;
}
-CORBA::Long
-ImR_Locator_i::register_activator (const char* aname,
- ImplementationRepository::Activator_ptr activator)
+void
+ImR_Locator_i::register_activator
+(ImplementationRepository::AMH_LocatorResponseHandler_ptr _tao_rh,
+ const char* aname,
+ ImplementationRepository::Activator_ptr activator)
{
ACE_ASSERT (aname != 0);
ACE_ASSERT (! CORBA::is_nil (activator));
@@ -335,12 +330,14 @@ ImR_Locator_i::register_activator (const char* aname,
ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("ImR: Activator registered for %C.\n"),
aname));
- return token;
+ _tao_rh->register_activator (token);
}
void
-ImR_Locator_i::unregister_activator (const char* aname,
- CORBA::Long token)
+ImR_Locator_i::unregister_activator
+(ImplementationRepository::AMH_LocatorResponseHandler_ptr _tao_rh,
+ const char* aname,
+ CORBA::Long token)
{
ACE_ASSERT (aname != 0);
Activator_Info_Ptr info = this->get_activator (aname);
@@ -353,6 +350,7 @@ ImR_Locator_i::unregister_activator (const char* aname,
LM_DEBUG,
ACE_TEXT ("ImR: Ignoring unregister activator:%C. Wrong token.\n"),
aname));
+ _tao_rh->unregister_activator ();
return;
}
@@ -371,6 +369,7 @@ ImR_Locator_i::unregister_activator (const char* aname,
ACE_TEXT ("Unknown activator.\n"),
aname));
}
+ _tao_rh->unregister_activator ();
}
void
@@ -382,7 +381,9 @@ ImR_Locator_i::unregister_activator_i (const char* aname)
}
void
-ImR_Locator_i::notify_child_death (const char* name)
+ImR_Locator_i::notify_child_death
+(ImplementationRepository::AMH_LocatorResponseHandler_ptr _tao_rh,
+ const char* name)
{
ACE_ASSERT (name != 0);
@@ -401,10 +402,36 @@ ImR_Locator_i::notify_child_death (const char* name)
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("ImR: Failed to find server in repository.\n")));
}
+ _tao_rh->notify_child_death ();
+}
+
+char*
+ImR_Locator_i::activate_server_by_name (const char* name, bool manual_start)
+{
+ ImR_SyncResponseHandler rh ("", this->orb_.in());
+ this->activate_server_by_name (name, manual_start, &rh);
+ return rh.wait_for_result ();
+}
+
+char*
+ImR_Locator_i::activate_server_by_object (const char* object_name)
+{
+ Server_Info_Ptr si;
+ ACE_CString key;
+ ACE_CString full (object_name);
+ if (this->split_key (full, key, si))
+ {
+ ImR_SyncResponseHandler rh (key.c_str(), this->orb_.in());
+ this->activate_server_by_info (si, &rh);
+ return rh.wait_for_result ();
+ }
+ throw ImplementationRepository::NotFound();
}
void
-ImR_Locator_i::activate_server (const char* server)
+ImR_Locator_i::activate_server
+(ImplementationRepository::AMH_AdministrationResponseHandler_ptr _tao_rh,
+ const char* server)
{
if (debug_ > 1)
{
@@ -412,314 +439,101 @@ ImR_Locator_i::activate_server (const char* server)
server));
}
+ ImR_ResponseHandler *rh = 0;
+ ACE_NEW (rh, ImR_Loc_ResponseHandler (ImR_Loc_ResponseHandler::LOC_ACTIVATE_SERVER, _tao_rh));
+
// This is the version called by tao_imr to activate the server, manually
// starting it if necessary.
- CORBA::String_var cleanup =
- activate_server_by_name (server, true);
+ activate_server_by_name (server, true, rh);
}
-char*
-ImR_Locator_i::activate_server_by_name (const char* name, bool manual_start)
+bool
+ImR_Locator_i::get_info_for_name (const char* name, Server_Info_Ptr &si)
{
- // Activate the server, starting it if necessary. Don't start MANUAL
- // servers unless manual_start=true
- ACE_ASSERT (name != 0);
-
ACE_CString serverKey;
ACE_CString server_id;
bool jacorb_server = false;
- parse_id(name, server_id, serverKey, jacorb_server);
- UpdateableServerInfo info(this->repository_.get(), serverKey);
- if (info.null ())
- {
- ACE_ERROR ((
- LM_ERROR,
- ACE_TEXT ("ImR: Cannot find info for server <%C>\n"),
- name));
- throw ImplementationRepository::NotFound ();
- }
-
- //MDM
- info.edit()->start_count = 0;
-
- return activate_server_i (info, manual_start);
-}
-
-char*
-ImR_Locator_i::activate_server_by_object (const char* object_name)
-{
- ACE_ASSERT (object_name != 0);
-
- // We assume that the first part of the object name is the server name.
- // So a name of foo/bar means that the server name is foo.
- ACE_CString server_name (object_name);
- ACE_CString::size_type pos = server_name.find ('/');
- if (pos != ACE_CString::npos)
- {
- try
- {
- return activate_server_by_name (object_name, false);
- }
- catch (const ImplementationRepository::NotFound&)
- {
- server_name = server_name.substr (pos + 1);
- return activate_server_by_name (server_name.c_str (), false);
- }
- }
- else
- {
- return activate_server_by_name (server_name.c_str (), false);
- }
+ this->parse_id (name, server_id, serverKey, jacorb_server);
+ si = this->repository_->get_server (serverKey);
+ return !si.null();
}
-char*
-ImR_Locator_i::activate_server_i (UpdateableServerInfo& info,
- bool manual_start)
+bool
+ImR_Locator_i::split_key (ACE_CString &full, ACE_CString &key, Server_Info_Ptr &si)
{
- if (info->activation_mode == ImplementationRepository::PER_CLIENT)
+ key = full;
+ if (this->get_info_for_name (full.c_str(), si))
{
- return activate_perclient_server_i (info, manual_start);
+ return true;
}
- while (true)
+ ACE_CString::size_type pos = full.rfind ('/');
+ while (pos != ACE_CString::npos)
{
- if (is_alive (info))
- {
- if (debug_ > 1)
- {
- ACE_DEBUG ((
- LM_DEBUG,
- ACE_TEXT ("ImR: Successfully activated <%C> at \n\t%C\n"),
- info->name.c_str (), info->partial_ior.c_str ()));
- }
- info.edit ()->start_count = 0;
-
- waiter_svt_.unblock_all (info->name.c_str ());
-
- return CORBA::string_dup (info->partial_ior.c_str ());
- }
-
- info.edit()->reset ();
-
- if (! info->starting && info->start_count >= info->start_limit)
+ ACE_CString server = full.substring (0, pos);
+ if (this->get_info_for_name (server.c_str (), si))
{
- if (this->debug_ > 0)
- {
- ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT ("ImR: Cannot Activate <%C>.\n"),
- info->name.c_str ()));
- }
-
- waiter_svt_.unblock_all (info->name.c_str ());
-
- throw ImplementationRepository::CannotActivate(
- "Cannot start server.");
+ return true;
}
-
- // Note: We already updated info with StartupInfo in server_is_running ()
- ImplementationRepository::StartupInfo_var si =
- start_server (info, manual_start, info.edit()->waiting_clients);
+ pos = server.rfind ('/');
}
-}
-char*
-ImR_Locator_i::activate_perclient_server_i (UpdateableServerInfo& shared_info,
- bool manual_start)
-{
- // create a copy of shared_info that can be edited without affecting memory
- // in the repository
- UpdateableServerInfo info (*shared_info);
- do
- {
- ImplementationRepository::StartupInfo* psi =
- start_server (info, manual_start, shared_info.edit()->waiting_clients);
-
- // waiting_clients will be updated by each call to start_server
- shared_info.update_repo ();
- if (psi != 0)
- {
- ImplementationRepository::StartupInfo_var si = psi;
- ACE_ASSERT (info->name == si->name.in ());
- info.edit ()->partial_ior = si->partial_ior.in ();
- info.edit ()->ior = si->ior.in ();
-
- if (is_alive (info))
- {
- if (debug_ > 1)
- {
- ACE_DEBUG ((
- LM_DEBUG,
- ACE_TEXT ("ImR: Successfully activated <%C> at \n\t%C\n"),
- info->name.c_str (), info->partial_ior.c_str ()));
- }
- return CORBA::string_dup (info->partial_ior.c_str ());
- }
- info.edit()->reset ();
- }
- } while (info->start_count < info->start_limit);
-
- if (this->debug_ > 0)
- {
- ACE_DEBUG ((
- LM_DEBUG,
- ACE_TEXT ("ImR: Cannot Activate <%C>.\n"),
- info->name.c_str ()));
- }
- throw ImplementationRepository::CannotActivate("Cannot start server.");
+ return false;
}
-ImplementationRepository::StartupInfo*
-ImR_Locator_i::start_server (UpdateableServerInfo& info, bool manual_start,
- int& waiting_clients)
+void
+ImR_Locator_i::activate_server_by_name (const char* name, bool manual_start,
+ ImR_ResponseHandler *rh)
{
- if (info->activation_mode == ImplementationRepository::MANUAL && ! manual_start)
- {
- if (debug_ > 0)
- ACE_DEBUG ((
- LM_DEBUG,
- ACE_TEXT ("ImR: Cannot start server <%C>. ActivationMode=MANUAL\n"),
- info->name.c_str ()));
-
- throw ImplementationRepository::CannotActivate(
- "Cannot implicitly activate MANUAL server.");
- }
- if (info->cmdline.length () == 0)
- {
- if (debug_ > 0)
- ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("ImR: Cannot start server <%C>.")
- ACE_TEXT (" No command line.\n"), info->name.c_str ()));
- throw ImplementationRepository::CannotActivate(
- "No command line registered for server.");
- }
-
- Activator_Info_Ptr ainfo = get_activator (info->activator);
+ // Activate the server, starting it if necessary. Don't start MANUAL
+ // servers unless manual_start=true
+ ACE_ASSERT (name != 0);
- if (ainfo.null () || CORBA::is_nil (ainfo->activator.in ()))
+ Server_Info_Ptr si;
+ if (!this->get_info_for_name(name, si))
{
- if (debug_ > 0)
- ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("ImR: Cannot start server <%C>. ")
- ACE_TEXT ("Activator <%C> not found.\n"),
- info->name.c_str (), info->activator.c_str ()));
- throw ImplementationRepository::CannotActivate(
- "No activator registered for server.");
+ rh->send_exception ( new ImplementationRepository::NotFound );
+ return;
}
- ImplementationRepository::StartupInfo_var si;
- try
- {
- ++waiting_clients;
-
- if (waiting_clients <= 1 ||
- info->activation_mode == ImplementationRepository::PER_CLIENT)
- {
- info.edit()->starting = true;
- ++(info.edit()->start_count);
- ACE_ASSERT (info->start_count <= info->start_limit);
- if (this->debug_ > 0)
- {
- ACE_DEBUG ((
- LM_DEBUG,
- ACE_TEXT ("ImR: Starting server <%C>. Attempt %d/%d.\n"),
- info->name.c_str (), info->start_count, info->start_limit));
- }
- ainfo->activator->start_server (
- info->name.c_str (),
- info->cmdline.c_str (),
- info->dir.c_str (),
- info->env_vars);
- }
-
- if (info->partial_ior.length () == 0)
- {
- if (this->debug_ > 0)
- {
- ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT ("ImR: Waiting for <%C> to start...\n"),
- info->name.c_str ()));
- }
+ UpdateableServerInfo info (this->repository_.get(), si, true);
- ImplementationRepository::StartupInfo_var si =
- waiter_->wait_for_startup (info->name.c_str ());
+ this->activate_server_i (info, manual_start, rh);
+}
- --waiting_clients;
- info.edit()->starting = false;
+void
+ImR_Locator_i::activate_server_by_info (const Server_Info_Ptr &si,
+ ImR_ResponseHandler *rh)
+{
+ UpdateableServerInfo info (this->repository_.get(), si, true);
+ this->activate_server_i (info, false, rh);
+}
- return si._retn ();
- }
- else // The server_is_running () came in before the wait_for_startup ()
- {
- if (this->debug_ > 0)
- {
- ACE_DEBUG ((
- LM_DEBUG,
- ACE_TEXT ("ImR: <%C> Skipping wait. Already started.\n"),
- info->name.c_str ()));
- }
- --waiting_clients;
- info.edit()->starting = false;
- }
- }
- catch (const CORBA::TIMEOUT&)
- {
- --waiting_clients;
- info.edit()->starting = false;
- // We may have connected successfully, because the timeout could occur before
- // the AsyncStartupWaiter manages to return. In fact, when the ImR is very busy
- // this is the most likely code path.
- if (info->partial_ior.length () == 0)
- {
- if (debug_ > 0)
- ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT ("ImR : Timeout waiting for <%C> to start.\n"),
- info->name.c_str ()));
- info.edit()->reset ();
- }
- }
- catch (const ImplementationRepository::CannotActivate&)
+void
+ImR_Locator_i::activate_server_i (UpdateableServerInfo& info,
+ bool manual_start,
+ ImR_ResponseHandler *rh)
+{
+ AsyncAccessManager_ptr aam;
+ if (info->activation_mode == ImplementationRepository::PER_CLIENT)
{
- --waiting_clients;
- info.edit()->starting = false;
- info.edit()->reset ();
- if (debug_ > 0)
- ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT ("ImR: Activator cannot start <%C>.\n"),
- info->name.c_str ()));
- }
- catch (const CORBA::Exception& ex)
+ AsyncAccessManager *aam_raw;
+ ACE_NEW (aam_raw, AsyncAccessManager (*info, manual_start, *this));
+ aam = aam_raw;
+ this->aam_set_.insert_tail (aam);
+ }
+ else
{
- --waiting_clients;
- info.edit()->starting = false;
- if (debug_ > 0)
- ACE_DEBUG ((
- LM_DEBUG,
- ACE_TEXT ("ImR: Unexpected exception while starting <%C>.\n"),
- info->name.c_str ()));
- if (debug_ > 1)
- ex._tao_print_exception ("");
- info.edit()->reset ();
-
- // Before we reset the activator info, let's see if it's still
- // there then let's keep it around for a while.
- bool dead_activator = false;
- try
- {
- dead_activator = ainfo->activator->_non_existent ();
- }
- catch (const CORBA::Exception&)
- {
- dead_activator = true;
- }
-
- if (dead_activator)
+ aam = this->find_aam (info->name.c_str());
+ if (*aam == 0)
{
- // Activator is damaged - reset our info.
- // Client's trying to restart a server on this host will
- // subsequently be told "no activator found for host ..." or
- // some such.
- ainfo->reset ();
+ AsyncAccessManager *aam_raw;
+ ACE_NEW (aam_raw, AsyncAccessManager (*info, manual_start, *this));
+ aam = aam_raw;
+ this->aam_set_.insert_tail (aam);
}
}
- return 0; // This is not a corba call, so a zero should be ok
+ aam->add_interest (rh);
}
CORBA::Object_ptr
@@ -753,7 +567,7 @@ ImR_Locator_i::set_timeout_policy (CORBA::Object_ptr obj, const ACE_Time_Value&
ret = CORBA::Object::_duplicate (obj);
}
}
- catch (const CORBA::Exception& ex)
+ catch (CORBA::Exception& ex)
{
ex._tao_print_exception (
ACE_TEXT ("ImR_Locator_i::set_timeout_policy ()"));
@@ -763,24 +577,26 @@ ImR_Locator_i::set_timeout_policy (CORBA::Object_ptr obj, const ACE_Time_Value&
}
void
-ImR_Locator_i::add_or_update_server (
- const char* server,
- const ImplementationRepository::StartupOptions &options)
+ImR_Locator_i::add_or_update_server
+(ImplementationRepository::AMH_AdministrationResponseHandler_ptr _tao_rh,
+ const char* server,
+ const ImplementationRepository::StartupOptions &options)
{
ACE_ASSERT (server != 0);
if (this->read_only_)
{
- ACE_DEBUG ((
- LM_DEBUG,
- ACE_TEXT ("ImR: Cannot add/update server <%C> due to locked ")
- ACE_TEXT ("database.\n"),
- server));
- throw CORBA::NO_PERMISSION (
- CORBA::SystemException::_tao_minor_code (
- TAO_IMPLREPO_MINOR_CODE,
- 0),
- CORBA::COMPLETED_NO);
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("ImR: Cannot add/update server <%C> due to locked ")
+ ACE_TEXT ("database.\n"),
+ server));
+ CORBA::Exception *ex =
+ new CORBA::NO_PERMISSION (CORBA::SystemException::_tao_minor_code
+ (TAO_IMPLREPO_MINOR_CODE,0),
+ CORBA::COMPLETED_NO);
+ ImplementationRepository::AMH_AdministrationExceptionHolder h (ex);
+ _tao_rh->add_or_update_server_excep (&h);
+ return;
}
if (debug_ > 0)
@@ -799,7 +615,7 @@ ImR_Locator_i::add_or_update_server (
ACE_CString serverKey;
ACE_CString server_id;
bool jacorb_server = false;
- parse_id(server, server_id, serverKey, jacorb_server);
+ this->parse_id (server, server_id, serverKey, jacorb_server);
UpdateableServerInfo info(this->repository_.get(), serverKey);
if (info.null ())
{
@@ -856,13 +672,15 @@ ImR_Locator_i::add_or_update_server (
options.environment[i].name.in (),
options.environment[i].value.in ()));
}
+
+ _tao_rh->add_or_update_server ();
}
void
-ImR_Locator_i::parse_id(const char* id,
- ACE_CString& server_id,
- ACE_CString& name,
- bool& jacorb_server)
+ImR_Locator_i::parse_id (const char* id,
+ ACE_CString& server_id,
+ ACE_CString& name,
+ bool& jacorb_server)
{
const char *pos = ACE_OS::strchr (id, ':');
if (pos)
@@ -884,20 +702,23 @@ ImR_Locator_i::parse_id(const char* id,
}
void
-ImR_Locator_i::remove_server (const char* name)
+ImR_Locator_i::remove_server
+(ImplementationRepository::AMH_AdministrationResponseHandler_ptr _tao_rh,
+ const char* name)
{
ACE_ASSERT (name != 0);
if (this->read_only_)
{
- ACE_ERROR ((
- LM_ERROR,
- ACE_TEXT ("ImR: Can't remove server <%C> due to locked database.\n"),
- name));
- throw CORBA::NO_PERMISSION (
- CORBA::SystemException::_tao_minor_code (
- TAO_IMPLREPO_MINOR_CODE,
- 0),
- CORBA::COMPLETED_NO);
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("ImR: Can't remove server <%C> due to locked database.\n"),
+ name));
+ CORBA::Exception *ex =
+ new CORBA::NO_PERMISSION (CORBA::SystemException::_tao_minor_code
+ (TAO_IMPLREPO_MINOR_CODE, 0),
+ CORBA::COMPLETED_NO);
+ ImplementationRepository::AMH_AdministrationExceptionHolder h (ex);
+ _tao_rh->remove_server_excep (&h);
+ return;
}
// Note : This will be safe, because any Server_Info_Ptr objects will still
@@ -907,7 +728,7 @@ ImR_Locator_i::remove_server (const char* name)
ACE_CString serverKey;
ACE_CString server_id;
bool jacorb_server = false;
- parse_id(name, server_id, serverKey, jacorb_server);
+ this->parse_id(name, server_id, serverKey, jacorb_server);
Server_Info_Ptr info = this->repository_->get_server (serverKey);
if (! info.null ())
{
@@ -926,7 +747,8 @@ ImR_Locator_i::remove_server (const char* name)
poa->destroy (etherealize, wait);
}
if (this->debug_ > 0)
- ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("ImR: Removed Server <%C>.\n"),
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("ImR: Removed Server <%C>.\n"),
name));
}
}
@@ -934,8 +756,12 @@ ImR_Locator_i::remove_server (const char* name)
{
ACE_ERROR ((LM_ERROR,
ACE_TEXT ("ImR: Can't remove unknown server <%C>.\n"), name));
- throw ImplementationRepository::NotFound ();
+ CORBA::Exception *ex = new ImplementationRepository::NotFound;
+ ImplementationRepository::AMH_AdministrationExceptionHolder h (ex);
+ _tao_rh->remove_server_excep (&h);
+ return;
}
+ _tao_rh->remove_server ();
}
PortableServer::POA_ptr
@@ -946,45 +772,59 @@ ImR_Locator_i::findPOA (const char* name)
bool activate_it = false;
return root_poa_->find_POA (name, activate_it);
}
- catch (const CORBA::Exception&)
+ catch (CORBA::Exception&)
{// Ignore
}
return PortableServer::POA::_nil ();
}
void
-ImR_Locator_i::shutdown_server (const char* server)
+ImR_Locator_i::shutdown_server
+(ImplementationRepository::AMH_AdministrationResponseHandler_ptr _tao_rh,
+ const char* server)
{
ACE_ASSERT (server != 0);
if (this->debug_ > 0)
- ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("ImR: Shutting down server <%C>.\n"),
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("ImR: Shutting down server <%C>.\n"),
server));
ACE_CString name;
ACE_CString server_id;
bool jacorb_server = false;
- parse_id(server, server_id, name, jacorb_server);
+ this->parse_id(server, server_id, name, jacorb_server);
UpdateableServerInfo info(this->repository_.get(), name);
if (info.null ())
{
- ACE_ERROR ((
- LM_ERROR,
- ACE_TEXT ("ImR: shutdown_server () Cannot find info for server <%C>\n"),
- server));
- throw ImplementationRepository::NotFound ();
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("ImR: shutdown_server () Cannot find info for server <%C>\n"),
+ server));
+ CORBA::Exception *ex = new ImplementationRepository::NotFound;
+ ImplementationRepository::AMH_AdministrationExceptionHolder h (ex);
+ _tao_rh->shutdown_server_excep (&h);
+ return;
}
this->connect_server (info);
if (CORBA::is_nil (info->server.in ()))
{
- ACE_ERROR ((
- LM_ERROR,
- ACE_TEXT ("ImR: shutdown_server () Cannot connect to server <%C>\n"),
- server));
- throw ImplementationRepository::NotFound ();
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("ImR: shutdown_server () Cannot connect to server <%C>\n"),
+ server));
+ CORBA::Exception *ex = new ImplementationRepository::NotFound;
+ ImplementationRepository::AMH_AdministrationExceptionHolder h (ex);
+ try
+ {
+ _tao_rh->shutdown_server_excep (&h);
+ }
+ catch (CORBA::Exception &ex)
+ {
+ ex._tao_print_exception (ACE_TEXT ("reporting connect error\n"));
+ }
+ return;
}
try
@@ -995,26 +835,26 @@ ImR_Locator_i::shutdown_server (const char* server)
ImplementationRepository::ServerObject::_unchecked_narrow (obj.in ());
server->shutdown ();
}
- catch (const CORBA::TIMEOUT&)
+ catch (CORBA::TIMEOUT &to_ex)
{
info.edit ()->reset ();
// Note : This is a good thing. It means we didn't waste our time waiting for
// the server to finish shutting down.
if (this->debug_ > 1)
{
- ACE_DEBUG ((
- LM_DEBUG,
- ACE_TEXT ("ImR: Timeout while waiting for <%C> shutdown.\n"),
- server));
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("ImR: Timeout while waiting for <%C> shutdown.\n"),
+ server));
}
- throw;
+ ImplementationRepository::AMH_AdministrationExceptionHolder h (to_ex._tao_duplicate());
+ _tao_rh->shutdown_server_excep (&h);
+ return;
}
- catch (const CORBA::Exception&)
+ catch (CORBA::Exception&)
{
if (this->debug_ > 1)
{
- ACE_DEBUG ((
- LM_DEBUG,
+ ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("ImR: Exception ignored while shutting down <%C>\n"),
server));
}
@@ -1023,12 +863,15 @@ ImR_Locator_i::shutdown_server (const char* server)
// Note : In most cases this has already been done in the server_is_shutting_down ()
// operation, but it doesn't hurt to update it again.
info.edit ()->reset ();
+ _tao_rh->shutdown_server ();
}
void
-ImR_Locator_i::server_is_running (const char* id,
- const char* partial_ior,
- ImplementationRepository::ServerObject_ptr server)
+ImR_Locator_i::server_is_running
+(ImplementationRepository::AMH_AdministrationResponseHandler_ptr _tao_rh,
+ const char* id,
+ const char* partial_ior,
+ ImplementationRepository::ServerObject_ptr server)
{
ACE_ASSERT (id != 0);
ACE_ASSERT (partial_ior != 0);
@@ -1037,45 +880,73 @@ ImR_Locator_i::server_is_running (const char* id,
ACE_CString server_id;
ACE_CString name;
bool jacorb_server = false;
- parse_id(id, server_id, name, jacorb_server);
+ this->parse_id(id, server_id, name, jacorb_server);
if (this->debug_ > 0)
- ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("ImR: Server %C is running at %C.\n"),
- name.c_str (), partial_ior));
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("ImR: Server %C is running at %C.\n"),
+ name.c_str (), partial_ior));
CORBA::String_var ior = orb_->object_to_string (server);
if (this->debug_ > 1)
- ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("ImR: Server %C callback at %C.\n"),
- name.c_str (), ior.in ()));
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("ImR: Server %C callback at %C.\n"),
+ name.c_str (), ior.in ()));
if (this->unregister_if_address_reused_)
this->repository_->unregister_if_address_reused (server_id, name, partial_ior);
+ CORBA::Object_var obj = this->set_timeout_policy (server,ACE_Time_Value (1,0));
+ ImplementationRepository::ServerObject_var s =
+ ImplementationRepository::ServerObject::_narrow (obj.in());
+
UpdateableServerInfo info(this->repository_.get(), name);
if (info.null ())
{
if (this->debug_ > 0)
- ACE_DEBUG ((
- LM_DEBUG,
- ACE_TEXT ("ImR: Auto adding NORMAL server <%C>.\n"),
- name.c_str ()));
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("ImR: Auto adding NORMAL server <%C>.\n"),
+ name.c_str ()));
+ }
ImplementationRepository::EnvironmentList env (0);
this->repository_->add_server (server_id,
- name,
- jacorb_server,
- "", // no activator
- "", // no cmdline
- ImplementationRepository::EnvironmentList (),
- "", // no working dir
- ImplementationRepository::NORMAL,
- DEFAULT_START_LIMIT,
- partial_ior,
- ior.in (),
- ImplementationRepository::ServerObject::_nil () // Will connect at first access
- );
+ name,
+ jacorb_server,
+ "", // no activator
+ "", // no cmdline
+ ImplementationRepository::EnvironmentList (),
+ "", // no working dir
+ ImplementationRepository::NORMAL,
+ DEFAULT_START_LIMIT,
+ partial_ior,
+ ior.in (),
+ s.in ()
+ );
+
+ Server_Info_Ptr temp_info = this->repository_->get_server(name);
+ if (temp_info.null ())
+ {
+ if (this->debug_ > 0)
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("ImR: Auto adding failed, giving up <%C>\n"),
+ name.c_str ()));
+ }
+
+ _tao_rh->server_is_running ();
+ return;
+ }
+
+ this->pinger_.add_server (name.c_str(), s);
+ AsyncAccessManager *aam_raw;
+ ACE_NEW (aam_raw, AsyncAccessManager (*temp_info, true, *this));
+ AsyncAccessManager_ptr aam (aam_raw);
+ aam->started_running ();
+ this->aam_set_.insert (aam);
}
else
{
@@ -1083,107 +954,151 @@ ImR_Locator_i::server_is_running (const char* id,
{
if (! info->server_id.empty())
ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT ("ImR - WARNING: server \"%C\" changed server id from ")
- ACE_TEXT ("\"%C\" to \"%C\" waiting PER_CLIENT clients.\n"),
- name.c_str (), info->server_id.c_str (), server_id.c_str ()));
+ ACE_TEXT ("ImR - WARNING: server \"%C\" changed server id from ")
+ ACE_TEXT ("\"%C\" to \"%C\" waiting PER_CLIENT clients.\n"),
+ name.c_str (), info->server_id.c_str (), server_id.c_str ()));
info.edit ()->server_id = server_id;
}
- if (info->activation_mode != ImplementationRepository::PER_CLIENT) {
- info.edit ()->ior = ior.in ();
- info.edit ()->partial_ior = partial_ior;
- // Will connect at first access
- info.edit ()->server = ImplementationRepository::ServerObject::_nil ();
-
- info.update_repo();
-
- waiter_svt_.unblock_one (name.c_str (), partial_ior, ior.in (), false);
- } else {
- // Note : There's no need to unblock all the waiting request until
- // we know the final status of the server.
- if (info->waiting_clients > 0)
+ if (info->activation_mode != ImplementationRepository::PER_CLIENT)
{
- waiter_svt_.unblock_one (name.c_str (), partial_ior, ior.in (), true);
+ info.edit ()->ior = ior.in ();
+ info.edit ()->partial_ior = partial_ior;
+ info.edit ()->server = s;
+
+ info.update_repo();
+ this->pinger_.add_server (name.c_str(), s);
}
- else if (this->debug_ > 1)
+
+ AsyncAccessManager_ptr aam(this->find_aam (name.c_str()));
+ if (*aam != 0)
+ aam->server_is_running (partial_ior, s);
+ else
{
- ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT ("ImR - Ignoring server_is_running due to no ")
- ACE_TEXT ("waiting PER_CLIENT clients.\n")));
+ if (info->activation_mode != ImplementationRepository::PER_CLIENT)
+ {
+ AsyncAccessManager *aam_raw;
+ ACE_NEW (aam_raw, AsyncAccessManager (*info, true, *this));
+ AsyncAccessManager_ptr aam (aam_raw);
+ aam->started_running ();
+ this->aam_set_.insert (aam);
+ }
}
- }
}
+ _tao_rh->server_is_running ();
}
void
-ImR_Locator_i::server_is_shutting_down (const char* server)
+ImR_Locator_i::server_is_shutting_down
+(ImplementationRepository::AMH_AdministrationResponseHandler_ptr _tao_rh,
+ const char* server)
{
ACE_ASSERT (server != 0);
- UpdateableServerInfo info(this->repository_.get(), server);
+ UpdateableServerInfo info (this->repository_.get(), server);
if (info.null ())
{
if (this->debug_ > 1)
{
- ACE_DEBUG ((
- LM_DEBUG,
- ACE_TEXT ("ImR_Locator_i::server_is_shutting_down: ")
- ACE_TEXT ("Unknown server:%C\n"),
- server));
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("ImR_Locator_i::server_is_shutting_down: ")
+ ACE_TEXT ("Unknown server:%C\n"),
+ server));
}
+ _tao_rh->server_is_shutting_down ();
return;
}
if (this->debug_ > 0)
- ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("ImR: Server <%C> is shutting down.\n"),
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("ImR: Server <%C> is shutting down.\n"),
server));
+ if (info->activation_mode != ImplementationRepository::PER_CLIENT)
+ {
+ this->pinger_.remove_server (server);
+ {
+ AsyncAccessManager_ptr aam = this->find_aam (server);
+ if (*aam != 0)
+ {
+ aam->server_is_shutting_down ();
+ }
+ }
+ }
info.edit ()->reset ();
+ _tao_rh->server_is_shutting_down ();
}
void
-ImR_Locator_i::find (const char* server,
- ImplementationRepository::ServerInformation_out imr_info)
+ImR_Locator_i::find
+(ImplementationRepository::AMH_AdministrationResponseHandler_ptr _tao_rh,
+ const char* server)
{
ACE_ASSERT (server != 0);
ACE_CString serverKey;
ACE_CString server_id;
bool jacorb_server = false;
- parse_id(server, server_id, serverKey, jacorb_server);
+ this->parse_id(server, server_id, serverKey, jacorb_server);
UpdateableServerInfo info(this->repository_.get(), serverKey);
- if (! info.null ())
+ ImplementationRepository::ServerInformation_var imr_info;
+ try
{
- imr_info = info->createImRServerInfo ();
+ if (! info.null ())
+ {
+ imr_info = info->createImRServerInfo ();
- if (this->debug_ > 1)
- ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("ImR: Found server %C.\n"), server));
+ if (this->debug_ > 1)
+ ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("ImR: Found server %C.\n"), server));
+ }
+ else
+ {
+ ACE_NEW_THROW_EX (imr_info, ImplementationRepository::ServerInformation,
+ CORBA::NO_MEMORY ());
+ imr_info->startup.activation= ImplementationRepository::NORMAL;
+ if (this->debug_ > 1)
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("ImR: Cannot find server <%C>\n"),
+ server));
+ }
}
- else
+ catch (CORBA::Exception &ex)
{
- ACE_NEW_THROW_EX (imr_info, ImplementationRepository::ServerInformation,
- CORBA::NO_MEMORY ());
- imr_info->startup.activation= ImplementationRepository::NORMAL;
- if (this->debug_ > 1)
- ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("ImR: Cannot find server <%C>\n"),
- server));
+ ImplementationRepository::AMH_AdministrationExceptionHolder h (ex._tao_duplicate());
+ _tao_rh->find_excep (&h);
+ return;
}
+ _tao_rh->find (imr_info.in());
+ // delete imr_info;
}
void
-ImR_Locator_i::list (CORBA::ULong how_many,
- CORBA::Boolean determine_active_status,
- ImplementationRepository::ServerInformationList_out server_list,
- ImplementationRepository::ServerInformationIterator_out server_iterator)
+ImR_Locator_i::list
+(ImplementationRepository::AMH_AdministrationResponseHandler_ptr _tao_rh,
+ CORBA::ULong how_many,
+ CORBA::Boolean determine_active_status)
{
+ ImplementationRepository::ServerInformationList_var server_list;
+ ImplementationRepository::ServerInformationIterator_var server_iterator;
+
if (this->debug_ > 1)
ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("ImR: List servers.\n")));
// Initialize the out variables, so if we return early, they will
// not be dangling.
server_iterator = ImplementationRepository::ServerInformationIterator::_nil ();
- ACE_NEW_THROW_EX (server_list,
- ImplementationRepository::ServerInformationList (0),
- CORBA::NO_MEMORY ());
+
+ try
+ {
+ ACE_NEW_THROW_EX (server_list,
+ ImplementationRepository::ServerInformationList (0),
+ CORBA::NO_MEMORY ());
+ }
+ catch (CORBA::Exception& ex)
+ {
+ ImplementationRepository::AMH_AdministrationExceptionHolder h (ex._tao_duplicate());
+ _tao_rh->list_excep (&h);
+ return;
+ }
Locator_Repository::SIMap::ENTRY* entry = 0;
Locator_Repository::SIMap::ITERATOR it (this->repository_->servers ());
@@ -1198,10 +1113,11 @@ ImR_Locator_i::list (CORBA::ULong how_many,
server_list->length (n);
if (this->debug_ > 1)
- ACE_DEBUG ((
- LM_DEBUG,
- ACE_TEXT ("ImR_Locator_i::list: Filling ServerList with %d servers\n"),
- n));
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("ImR_Locator_i::list: Filling ServerList with %d servers\n"),
+ n));
+ }
for (CORBA::ULong i = 0; i < n; i++)
{
@@ -1216,7 +1132,7 @@ ImR_Locator_i::list (CORBA::ULong how_many,
if (determine_active_status)
{
UpdateableServerInfo updatable_info (info);
- if (this->is_alive(updatable_info))
+ if (this->is_alive (updatable_info))
{
imr_info->activeStatus = ImplementationRepository::ACTIVE_YES;
}
@@ -1237,33 +1153,32 @@ ImR_Locator_i::list (CORBA::ULong how_many,
if (this->repository_->servers ().current_size () > n)
{
if (this->debug_ > 1)
- ACE_DEBUG ((
- LM_DEBUG,
- ACE_TEXT ("ImR_Locator_i::list: Creating ServerInformation ")
- ACE_TEXT ("Iterator\n")));
-
- ImR_Iterator* imr_iter = 0;
-
- ACE_NEW_THROW_EX (
- imr_iter,
- ImR_Iterator (n, *this->repository_, this->imr_poa_.in ()),
- CORBA::NO_MEMORY ());
-
- PortableServer::ServantBase_var tmp (imr_iter);
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("ImR_Locator_i::list: Creating ServerInformation ")
+ ACE_TEXT ("Iterator\n")));
try
{
+ ImR_Iterator* imr_iter = 0;
+ ACE_NEW_THROW_EX (imr_iter,
+ ImR_Iterator (n, *this->repository_, this->imr_poa_.in ()),
+ CORBA::NO_MEMORY ());
+
+ PortableServer::ServantBase_var tmp (imr_iter);
+
PortableServer::ObjectId_var id =
this->imr_poa_->activate_object (imr_iter);
CORBA::Object_var obj = this->imr_poa_->id_to_reference (id.in ());
server_iterator = ImplementationRepository::
ServerInformationIterator::_unchecked_narrow (obj.in ());
}
- catch (const CORBA::Exception&)
+ catch (CORBA::Exception& ex)
{
- throw;
+ ImplementationRepository::AMH_AdministrationExceptionHolder h (ex._tao_duplicate());
+ _tao_rh->list_excep (&h);
}
}
+ _tao_rh->list (server_list.in(), server_iterator.in());
}
Activator_Info_Ptr
@@ -1314,7 +1229,7 @@ ImR_Locator_i::connect_activator (Activator_Info& info)
ACE_TEXT ("ImR: Connected to activator <%C>\n"),
info.name.c_str ()));
}
- catch (const CORBA::Exception&)
+ catch (CORBA::Exception&)
{
info.reset ();
}
@@ -1342,18 +1257,17 @@ ImR_Locator_i::auto_start_servers (void)
if (info->activation_mode == ImplementationRepository::AUTO_START
&& info->cmdline.length () > 0)
{
- CORBA::String_var cleanup =
- this->activate_server_i (info, true);
+ ImR_ResponseHandler rh;
+ this->activate_server_i (info, true, &rh);
}
}
- catch (const CORBA::Exception& ex)
+ catch (CORBA::Exception& ex)
{
if (this->debug_ > 1)
{
- ACE_DEBUG ((
- LM_DEBUG,
- ACE_TEXT ("ImR: AUTO_START Could not activate <%C>\n"),
- server_entry->ext_id_.c_str ()));
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("ImR: AUTO_START Could not activate <%C>\n"),
+ server_entry->ext_id_.c_str ()));
ex._tao_print_exception ("AUTO_START");
}
// Ignore exceptions
@@ -1401,7 +1315,7 @@ ImR_Locator_i::connect_server (UpdateableServerInfo& info)
ACE_TEXT ("ImR: Connected to server <%C>\n"),
info->name.c_str ()));
}
- catch (const CORBA::Exception&)
+ catch (CORBA::Exception&)
{
info.edit ()->reset ();
}
@@ -1410,234 +1324,206 @@ ImR_Locator_i::connect_server (UpdateableServerInfo& info)
bool
ImR_Locator_i::is_alive (UpdateableServerInfo& info)
{
- const size_t table_size = sizeof (PING_RETRY_SCHEDULE) /
- sizeof (*PING_RETRY_SCHEDULE);
-
- for (size_t i = 0; i < table_size; ++i)
- {
- int status = this->is_alive_i (info);
- if (status == 0)
- return false;
- if (status == 1)
- return true;
-
- // This is evil, but there's not much else we can do for now. We
- // should never reach this code once the ImR Servers are fixed
- // so that they don't lie about server_is_running. Currently,
- // they send this notification during poa creation. We have to
- // run the orb, because the very thing that may be slowing the
- // aliveness of the servers is the fact that they're trying to
- // register more objects with us. In practical testing, we
- // never retried the ping more than once, because the second
- // ping always timed out, even if the servers poa manager had
- // not been activated. The only way we saw multiple retries was
- // if we ran the orb on the server before the poa manager was
- // activated. For this reason, the first retry is immediate,
- // and the orb->run () call is not required. The call will
- // likely timeout, and is_alive will return true.
- if (PING_RETRY_SCHEDULE[i] > 0)
- {
- ACE_Time_Value tv (0, PING_RETRY_SCHEDULE[i] * 1000);
- this->orb_->run (tv);
- }
- }
- if (debug_ > 0)
- {
- ACE_DEBUG ((
- LM_DEBUG,
- ACE_TEXT ("ImR: <%C> Ping retry count exceeded. alive=maybe.\n"),
- info->name.c_str ()));
- }
- // We return true here, because the server *might* be alive, it's just
- // not starting in a timely manner. We can't return false, because then
- // we'll just try to start another instance, and the same thing will
- // likely happen.
- info.edit ()->last_ping = ACE_OS::gettimeofday ();
- return true;
+ this->connect_server (info);
+ SyncListener listener (info->name.c_str(),
+ this->orb_.in(),
+ this->pinger_);
+ return listener.is_alive();
}
int
-ImR_Locator_i::is_alive_i (UpdateableServerInfo& info)
+ImR_Locator_i::debug () const
{
- // This is used by the ACE_TRY below when exceptions are turned off.
+ return this->debug_;
+}
- if (info->ior.length () == 0 || info->partial_ior.length () == 0)
- {
- if (debug_ > 1)
- {
- ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT ("ImR: <%C> not running. alive=false.\n"),
- info->name.c_str ()));
- }
- info.edit ()->last_ping = ACE_Time_Value::zero;
- return 0;
- }
+LiveCheck&
+ImR_Locator_i::pinger (void)
+{
+ return this->pinger_;
+}
- if (ping_interval_ == ACE_Time_Value::zero)
- {
- if (debug_ > 1)
- {
- ACE_DEBUG ((
- LM_DEBUG,
- ACE_TEXT ("ImR: <%C> Ping verification disabled. alive=true.\n"),
- info->name.c_str ()));
- }
- return 1;
- }
+PortableServer::POA_ptr
+ImR_Locator_i::root_poa (void)
+{
+ return PortableServer::POA::_duplicate (this->root_poa_.in());
+}
- if ((ACE_OS::gettimeofday () - info->last_ping) < ping_interval_)
- {
- if (debug_ > 1)
- {
- ACE_DEBUG ((
- LM_DEBUG,
- ACE_TEXT ("ImR: <%C> within ping interval. alive=true.\n"),
- info->name.c_str ()));
- }
- return 1;
- }
+void
+ImR_Locator_i::remove_aam (AsyncAccessManager_ptr &aam)
+{
+ this->aam_set_.remove (aam);
+
+}
+
+AsyncAccessManager *
+ImR_Locator_i::find_aam (const char *name)
+{
- // If we don't have enough information to start the server if it isn't already
- // then we might as well assume it is running. That way the client can get the
- // status directly from the server.
- if (info->cmdline.length () == 0 || ! repository_->has_activator (info->activator))
+ for (AAM_Set::ITERATOR i = this->aam_set_.begin();
+ i != this->aam_set_.end();
+ ++i)
{
- if (debug_ > 1)
+ if ((*i)->has_server (name))
{
- ACE_DEBUG ((
- LM_DEBUG,
- ACE_TEXT ("ImR: Ping verification skipped. <%C> not startable.\n"),
- info->name.c_str ()));
+ return (*i)->add_ref();
}
- return 1;
}
+ return 0;
+}
- this->connect_server (info);
+//-------------------------------------------------------------------------
+
+SyncListener::SyncListener (const char *server,
+ CORBA::ORB_ptr orb,
+ LiveCheck &pinger)
+ :LiveListener (server),
+ orb_ (CORBA::ORB::_duplicate (orb)),
+ pinger_ (pinger),
+ status_ (LS_UNKNOWN),
+ got_it_ (false),
+ callback_ (false)
+{
+}
- if (CORBA::is_nil (info->server.in ()))
+bool
+SyncListener::is_alive (void)
+{
+ this->callback_ = true;
+ while (!this->got_it_)
{
- if (debug_ > 1)
+ if (this->callback_)
{
- ACE_DEBUG ((
- LM_DEBUG,
- ACE_TEXT ("ImR: <%C> Could not connect. alive=false.\n"),
- info->name.c_str ()));
+ if (!this->pinger_.add_poll_listener (this))
+ {
+ return false;
+ }
}
- return 0;
+ this->callback_ = false;
+ ACE_Time_Value delay (10,0);
+ this->orb_->perform_work (delay);
}
+ this->got_it_ = false;
+ return this->status_ == LS_ALIVE;
+}
- try
- {
- // Make a copy, in case the info is updated during the ping.
- ImplementationRepository::ServerObject_var server = info->server;
+bool
+SyncListener::status_changed (LiveStatus status)
+{
+ this->callback_ = true;
+ this->status_ = status;
+ this->got_it_ = (status != LS_TRANSIENT);
+ return true;
+}
- // This will timeout if it takes too long
- server->ping ();
+//---------------------------------------------------------------------------
- if (debug_ > 1)
- {
- ACE_DEBUG ((
- LM_DEBUG,
- ACE_TEXT ("ImR: <%C> Ping successful. alive=true\n"),
- info->name.c_str ()));
- }
- info.edit ()->last_ping = ACE_OS::gettimeofday ();
- }
- catch (const CORBA::TRANSIENT& ex)
- {
- const CORBA::ULong BITS_5_THRU_12_MASK = 0x00000f80;
- switch (ex.minor () & BITS_5_THRU_12_MASK)
- {
- case TAO_INVOCATION_SEND_REQUEST_MINOR_CODE:
- {
- if (debug_ > 1)
- {
- ACE_DEBUG ((
- LM_DEBUG,
- ACE_TEXT ("ImR: <%C> Local TRANSIENT. alive=false.\n"),
- info->name.c_str ()));
- }
- }
- info.edit ()->last_ping = ACE_Time_Value::zero;
- return 0;
- case TAO_POA_DISCARDING:
- case TAO_POA_HOLDING:
- {
- if (debug_ > 1)
- {
- ACE_DEBUG ((
- LM_DEBUG,
- ACE_TEXT ("ImR: <%C> Remote TRANSIENT. alive=maybe.\n"),
- info->name.c_str ()));
- }
- }
- return -1; // We keep trying to ping, because returning 1 now, would just lead
- // to clients getting the same exception. If we can't ping after several
- // attempts, then we'll give up and return 1, letting the client worry about it.
- default:
- {
- if (debug_ > 1)
- {
- ACE_DEBUG ((
- LM_DEBUG,
- ACE_TEXT ("ImR: <%C> TRANSIENT exception. alive=false.\n"),
- info->name.c_str ()));
- }
- info.edit ()->last_ping = ACE_Time_Value::zero;
- }
- return 0;
- }
- }
- catch (const CORBA::TIMEOUT& ex)
+ImR_SyncResponseHandler::ImR_SyncResponseHandler (const char *objkey, CORBA::ORB_ptr orb)
+ :excep_ (0),
+ key_ (objkey),
+ orb_ (CORBA::ORB::_duplicate (orb))
+{
+}
+
+ImR_SyncResponseHandler::~ImR_SyncResponseHandler (void)
+{
+}
+
+void
+ImR_SyncResponseHandler::send_ior (const char *pior)
+{
+ ACE_CString full (pior);
+ full += this->key_;
+ this->result_ = full.c_str();
+}
+
+void
+ImR_SyncResponseHandler::send_exception (CORBA::Exception *ex)
+{
+ this->excep_ = ex->_tao_duplicate();
+}
+
+char *
+ImR_SyncResponseHandler::wait_for_result (void)
+{
+ while (this->result_.in() == 0 && this->excep_ == 0)
{
- if (ex.completed() == CORBA::COMPLETED_NO)
- {
- if (debug_ > 1)
- {
- ACE_DEBUG ((
- LM_DEBUG,
- ACE_TEXT ("ImR: <%C> Ping timed out during connection. ")
- ACE_TEXT ("alive=false.\n"),
- info->name.c_str ()));
- }
- info.edit ()->last_ping = ACE_Time_Value::zero;
- // still potentially ambiguous, the server could be so busy
- // it couldn't even accept a connection. However the more
- // likely assumption is the server is on windows, and is dead,
- // but the host ignored the request rather than rejecting it.
- return 0;
- }
- if (debug_ > 1)
- {
- ACE_DEBUG ((
- LM_DEBUG,
- ACE_TEXT ("ImR: <%C> Ping timed out, maybe completed. ")
- ACE_TEXT ("alive=true.\n"),
- info->name.c_str ()));
- }
- return 1; // This is "alive" as far as we're concerned. Presumably the client
- // will have a less stringent timeout policy, or will want to know
- // about the timeout. In any case, we're only guaranteeing that the
- // server is alive, not that it's responsive.
+ this->orb_->perform_work ();
}
- catch (const CORBA::Exception& ex)
+ if (this->excep_ != 0)
{
- if (debug_ > 1)
- {
- ACE_DEBUG ((
- LM_DEBUG,
- ACE_TEXT ("ImR: <%C> Unexpected Ping exception. alive=false\n"),
- info->name.c_str ()));
- ex._tao_print_exception ("\n");
- }
- info.edit ()->last_ping = ACE_Time_Value::zero;
- return 0;
+ TAO_AMH_DSI_Exception_Holder h(this->excep_);
+ h.raise_invoke ();
}
- return 1;
+ return this->result_._retn();
}
-int
-ImR_Locator_i::debug () const
+//---------------------------------------------------------------------------
+
+ImR_Loc_ResponseHandler::ImR_Loc_ResponseHandler (Loc_Operation_Id opid,
+ ImplementationRepository::AMH_AdministrationResponseHandler_ptr rh)
+ :op_id_ (opid),
+ resp_ (ImplementationRepository::AMH_AdministrationResponseHandler::_duplicate (rh))
{
- return debug_;
}
+
+ImR_Loc_ResponseHandler::~ImR_Loc_ResponseHandler (void)
+{
+}
+
+void
+ImR_Loc_ResponseHandler::send_ior (const char *)
+{
+ switch (this->op_id_)
+ {
+ case LOC_ACTIVATE_SERVER:
+ resp_->activate_server ();
+ break;
+ case LOC_ADD_OR_UPDATE_SERVER:
+ resp_->add_or_update_server ();
+ break;
+ case LOC_REMOVE_SERVER:
+ resp_->remove_server ();
+ break;
+ case LOC_SHUTDOWN_SERVER:
+ resp_->shutdown_server ();
+ break;
+ case LOC_SERVER_IS_RUNNING:
+ resp_->server_is_running ();
+ break;
+ case LOC_SERVER_IS_SHUTTING_DOWN:
+ resp_->server_is_shutting_down ();
+ break;
+ };
+
+ delete this;
+}
+
+void
+ImR_Loc_ResponseHandler::send_exception (CORBA::Exception *ex)
+{
+ ImplementationRepository::AMH_AdministrationExceptionHolder h (ex);
+ switch (this->op_id_)
+ {
+ case LOC_ACTIVATE_SERVER:
+ resp_->activate_server_excep (&h);
+ break;
+ case LOC_ADD_OR_UPDATE_SERVER:
+ resp_->add_or_update_server_excep (&h);
+ break;
+ case LOC_REMOVE_SERVER:
+ resp_->remove_server_excep (&h);
+ break;
+ case LOC_SHUTDOWN_SERVER:
+ resp_->shutdown_server_excep (&h);
+ break;
+ case LOC_SERVER_IS_RUNNING:
+ resp_->server_is_running_excep (&h);
+ break;
+ case LOC_SERVER_IS_SHUTTING_DOWN:
+ resp_->server_is_shutting_down_excep (&h);
+ break;
+ };
+ delete this;
+}
+
diff --git a/TAO/orbsvcs/ImplRepo_Service/ImR_Locator_i.h b/TAO/orbsvcs/ImplRepo_Service/ImR_Locator_i.h
index b895e569e2d..40ffd1c289d 100644
--- a/TAO/orbsvcs/ImplRepo_Service/ImR_Locator_i.h
+++ b/TAO/orbsvcs/ImplRepo_Service/ImR_Locator_i.h
@@ -10,14 +10,15 @@
#include "Adapter_Activator.h"
#include "Activator_Info.h"
#include "Forwarder.h"
+#include "LiveCheck.h"
+#include "ImR_ResponseHandler.h"
#include "Locator_Options.h"
#include "Server_Info.h"
#include "ace/Auto_Ptr.h"
-#include "AsyncStartupWaiter_i.h"
+#include "AsyncAccessManager.h"
#include "tao/IORTable/IORTable.h"
#include "ImR_LocatorS.h"
-#include "AsyncStartupWaiterS.h"
#if !defined (ACE_LACKS_PRAGMA_ONCE)
# pragma once
@@ -35,8 +36,8 @@ class UpdateableServerInfo;
/// requests an activator to take care of activating the
/// corresponding server and raises a forward exception to the
/// client pointing to the correct server.
-class Locator_Export ImR_Locator_i
- : public virtual POA_ImplementationRepository::Locator
+class Locator_Export ImR_Locator_i :
+ public virtual POA_ImplementationRepository::AMH_Locator
{
public:
ImR_Locator_i();
@@ -63,59 +64,100 @@ public:
// Activator->Locator
- virtual CORBA::Long register_activator (const char* name,
- ImplementationRepository::Activator_ptr admin);
- virtual void unregister_activator (const char* name,
- CORBA::Long token);
- virtual void notify_child_death (const char* name);
+ virtual void register_activator
+ (ImplementationRepository::AMH_LocatorResponseHandler_ptr _tao_rh,
+ const char* name,
+ ImplementationRepository::Activator_ptr admin);
+
+ virtual void unregister_activator
+ (ImplementationRepository::AMH_LocatorResponseHandler_ptr _tao_rh,
+ const char* name,
+ CORBA::Long token);
+
+ virtual void notify_child_death
+ (ImplementationRepository::AMH_LocatorResponseHandler_ptr _tao_rh,
+ const char* name);
// tao_imr->Locator
- virtual void activate_server (const char * name);
- virtual void add_or_update_server (const char * name,
- const ImplementationRepository::StartupOptions &options);
- virtual void remove_server (const char * name);
- virtual void shutdown_server (const char * name);
- virtual void find (const char * name,
- ImplementationRepository::ServerInformation_out info);
- virtual void list (
- CORBA::ULong how_many,
- CORBA::Boolean determine_active_status,
- ImplementationRepository::ServerInformationList_out server_list,
- ImplementationRepository::ServerInformationIterator_out server_iterator);
- virtual void shutdown(CORBA::Boolean activators, CORBA::Boolean servers);
+ virtual void activate_server
+ (ImplementationRepository::AMH_AdministrationResponseHandler_ptr _tao_rh,
+ const char * name);
+
+ virtual void add_or_update_server
+ (ImplementationRepository::AMH_AdministrationResponseHandler_ptr _tao_rh,
+ const char * name,
+ const ImplementationRepository::StartupOptions &options);
+
+ virtual void remove_server
+ (ImplementationRepository::AMH_AdministrationResponseHandler_ptr _tao_rh,
+ const char * name);
+
+ virtual void shutdown_server
+ (ImplementationRepository::AMH_AdministrationResponseHandler_ptr _tao_rh,
+ const char * name);
+
+ virtual void find
+ (ImplementationRepository::AMH_AdministrationResponseHandler_ptr _tao_rh,
+ const char * name);
+
+ virtual void list
+ (ImplementationRepository::AMH_AdministrationResponseHandler_ptr _tao_rh,
+ CORBA::ULong how_many,
+ CORBA::Boolean determine_active_status);
+
+ virtual void shutdown
+ (ImplementationRepository::AMH_AdministrationResponseHandler_ptr _tao_rh,
+ CORBA::Boolean activators,
+ CORBA::Boolean servers);
// Server->Locator
- virtual void server_is_running (const char* name,
- const char* partial_ior,
- ImplementationRepository::ServerObject_ptr server_object);
- virtual void server_is_shutting_down (const char * name);
+ virtual void server_is_running
+ (ImplementationRepository::AMH_AdministrationResponseHandler_ptr _tao_rh,
+ const char* name,
+ const char* partial_ior,
+ ImplementationRepository::ServerObject_ptr server_object);
- // Used by the INS_Locator to start a sever given an object name
- char* activate_server_by_object (const char* object_name);
+ virtual void server_is_shutting_down
+ (ImplementationRepository::AMH_AdministrationResponseHandler_ptr _tao_rh,
+ const char * name);
+ // Used by the INS_Locator to start a sever given an object name synchronously
+ char* activate_server_by_object (const char* object_name);
char* activate_server_by_name (const char * name, bool manual_start);
-private:
+ // Asynchronous versions, used by both INS_Locator and Forwarder
+ void activate_server_by_info (const Server_Info_Ptr &si,
+ ImR_ResponseHandler *rh);
+
+ void activate_server_by_name (const char * name,
+ bool manual_start,
+ ImR_ResponseHandler *rh);
- char* activate_server_i (UpdateableServerInfo& info,
- bool manual_start);
+ bool split_key (ACE_CString &full, ACE_CString &key, Server_Info_Ptr &si);
- char* activate_perclient_server_i (UpdateableServerInfo& info,
- bool manual_start);
+ // interfaces to aid with collaboration
- ImplementationRepository::StartupInfo*
- start_server(UpdateableServerInfo& info,
- bool manual_start,
- int& waiting_clients);
+ LiveCheck &pinger (void);
+ PortableServer::POA_ptr root_poa (void);
+ Activator_Info_Ptr get_activator (const ACE_CString& name);
+
+ void remove_aam (AsyncAccessManager_ptr &aam);
+ AsyncAccessManager *find_aam (const char *name);
+
+private:
+
+ bool get_info_for_name (const char *name, Server_Info_Ptr &si);
+
+ void activate_server_i (UpdateableServerInfo& info,
+ bool manual_start,
+ ImR_ResponseHandler *rh);
bool is_alive(UpdateableServerInfo& info);
- int is_alive_i(UpdateableServerInfo& info);
void unregister_activator_i(const char* activator);
- Activator_Info_Ptr get_activator (const ACE_CString& name);
void connect_activator (Activator_Info& info);
void auto_start_servers(void);
@@ -127,11 +169,15 @@ private:
PortableServer::POA_ptr findPOA(const char* name);
- void parse_id(const char* id, ACE_CString& server_id, ACE_CString& name, bool& jacorb_server);
+ void parse_id(const char* id,
+ ACE_CString& server_id,
+ ACE_CString& name,
+ bool& jacorb_server);
+
private:
// The class that handles the forwarding.
- ImR_Forwarder forwarder_;
+ ImR_DSI_Forwarder dsi_forwarder_;
// Used for the forwarding of any type of POA.
ImR_Adapter adapter_;
@@ -139,6 +185,13 @@ private:
/// The locator interface for the IORTable
IORTable::Locator_var ins_locator_;
+ /// The asynch server ping adapter
+ LiveCheck pinger_;
+
+ /// A collection of asynch activator instances
+ typedef ACE_Unbounded_Set<AsyncAccessManager_ptr> AAM_Set;
+ AAM_Set aam_set_;
+
CORBA::ORB_var orb_;
PortableServer::POA_var root_poa_;
PortableServer::POA_var imr_poa_;
@@ -147,14 +200,90 @@ private:
auto_ptr<Locator_Repository> repository_;
- AsyncStartupWaiter_i waiter_svt_;
- ImplementationRepository::AsyncStartupWaiter_var waiter_;
-
bool read_only_;
ACE_Time_Value startup_timeout_;
ACE_Time_Value ping_interval_;
bool unregister_if_address_reused_;
};
+//----------------------------------------------------------------------------
+/*
+ */
+
+class SyncListener : public LiveListener
+{
+ public:
+ SyncListener (const char *server, CORBA::ORB_ptr orb, LiveCheck &pinger);
+
+ bool is_alive (void);
+
+ bool status_changed (LiveStatus status);
+
+ private:
+ CORBA::ORB_var orb_;
+ LiveCheck &pinger_;
+ LiveStatus status_;
+ bool got_it_;
+ bool callback_;
+};
+
+//----------------------------------------------------------------------------
+/*
+ * @class ImR_Loc_ResponseHandler
+ *
+ * @brief specialized reply handler for Locator interface calls which have a
+ * void return.
+ */
+class ImR_SyncResponseHandler : public ImR_ResponseHandler
+{
+public:
+ ImR_SyncResponseHandler (const char *key, CORBA::ORB_ptr orb);
+ virtual ~ImR_SyncResponseHandler (void);
+
+ virtual void send_ior (const char *pior);
+ virtual void send_exception (CORBA::Exception *ex);
+
+ char *wait_for_result (void);
+
+private:
+ CORBA::String_var result_;
+ CORBA::Exception *excep_;
+ ACE_CString key_;
+ CORBA::ORB_var orb_;
+};
+
+//----------------------------------------------------------------------------
+/*
+ * @class ImR_Loc_ResponseHandler
+ *
+ * @brief specialized reply handler for Locator interface calls which have a
+ * void return.
+ */
+class ImR_Loc_ResponseHandler : public ImR_ResponseHandler
+{
+public:
+ enum Loc_Operation_Id
+ {
+ LOC_ACTIVATE_SERVER,
+ LOC_ADD_OR_UPDATE_SERVER,
+ LOC_REMOVE_SERVER,
+ LOC_SHUTDOWN_SERVER,
+ LOC_SERVER_IS_RUNNING,
+ LOC_SERVER_IS_SHUTTING_DOWN,
+ };
+
+ ImR_Loc_ResponseHandler (Loc_Operation_Id opid,
+ ImplementationRepository::AMH_AdministrationResponseHandler_ptr rh);
+ virtual ~ImR_Loc_ResponseHandler (void);
+
+ virtual void send_ior (const char *pior);
+ virtual void send_exception (CORBA::Exception *ex);
+
+private:
+ Loc_Operation_Id op_id_;
+ ImplementationRepository::AMH_AdministrationResponseHandler_var resp_;
+
+};
+
#include /**/ "ace/post.h"
#endif /* IMR_LOCATOR_I_H */
diff --git a/TAO/orbsvcs/ImplRepo_Service/ImR_ResponseHandler.cpp b/TAO/orbsvcs/ImplRepo_Service/ImR_ResponseHandler.cpp
new file mode 100644
index 00000000000..a77398ee72b
--- /dev/null
+++ b/TAO/orbsvcs/ImplRepo_Service/ImR_ResponseHandler.cpp
@@ -0,0 +1,27 @@
+//=============================================================================
+/**
+* @file ImR_ResponseHandler.cpp
+*
+* $Id$
+*/
+//=============================================================================
+
+#include "ImR_ResponseHandler.h"
+
+ImR_ResponseHandler::ImR_ResponseHandler ()
+{
+}
+
+ImR_ResponseHandler::~ImR_ResponseHandler (void)
+{
+}
+
+void
+ImR_ResponseHandler::send_ior (const char *)
+{
+}
+
+void
+ImR_ResponseHandler::send_exception (CORBA::Exception *)
+{
+}
diff --git a/TAO/orbsvcs/ImplRepo_Service/ImR_ResponseHandler.h b/TAO/orbsvcs/ImplRepo_Service/ImR_ResponseHandler.h
new file mode 100644
index 00000000000..c9c0fe7b9ff
--- /dev/null
+++ b/TAO/orbsvcs/ImplRepo_Service/ImR_ResponseHandler.h
@@ -0,0 +1,42 @@
+// -*- C++ -*-
+//=============================================================================
+/**
+ * @file ImR_ResponseHandler.h
+ *
+ * $Id$
+ *
+ */
+//=============================================================================
+
+#ifndef IMR_RESPONSE_HANDLER_H
+#define IMR_RESPONSE_HANDLER_H
+
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "tao/LocalObject.h"
+
+
+//----------------------------------------------------------------------------
+/**
+ * @class ImR_ResponseHandler
+ *
+ * @brief interface serving as the basis for different strategies of activating
+ * servers on demand
+ *
+ */
+
+class ImR_ResponseHandler
+{
+public:
+ ImR_ResponseHandler (void);
+ virtual ~ImR_ResponseHandler (void);
+
+ // dummy implementations used for internal operations
+ virtual void send_ior (const char *pior);
+ virtual void send_exception (CORBA::Exception *ex);
+};
+
+#endif /* IMR_RESPONSE_HANDLER_H */
diff --git a/TAO/orbsvcs/ImplRepo_Service/ImplRepo_Service.mpc b/TAO/orbsvcs/ImplRepo_Service/ImplRepo_Service.mpc
index 881141bd54b..7dc1aad812b 100644
--- a/TAO/orbsvcs/ImplRepo_Service/ImplRepo_Service.mpc
+++ b/TAO/orbsvcs/ImplRepo_Service/ImplRepo_Service.mpc
@@ -5,6 +5,7 @@ project(ImR_Activator_IDL) : orbsvcslib, orbsvcs_output, conv_lib, portableserve
dynamicflags += ACTIVATOR_IDL_BUILD_DLL
idlflags += -Wb,export_macro=ActivatorIDL_Export -Wb,export_include=activator_idl_export.h
idl_files {
+ idlflags += -GH -GC
ImR_Activator.idl
}
source_files {
@@ -25,19 +26,13 @@ project(ImR_Locator_IDL) : orbsvcslib, orbsvcs_output, conv_lib, valuetype, port
dynamicflags += LOCATOR_IDL_BUILD_DLL
idlflags += -Wb,export_macro=LocatorIDL_Export -Wb,export_include=locator_idl_export.h
idl_files {
+ idlflags += -GH
ImR_Locator.idl
}
- idl_files {
- idlflags += -GH
- AsyncStartupWaiter.idl
- }
-
source_files {
ImR_LocatorS.cpp
ImR_LocatorC.cpp
- AsyncStartupWaiterS.cpp
- AsyncStartupWaiterC.cpp
}
header_files {
locator_idl_export.h
@@ -63,19 +58,22 @@ project(ImR_Activator) : orbsvcslib, orbsvcs_output, conv_lib, acexml, avoids_mi
}
}
-project(ImR_Locator) : orbsvcslib, orbsvcs_output, conv_lib, avoids_minimum_corba, avoids_corba_e_compact, avoids_corba_e_micro, iortable, portableserver, messaging, svc_utils, acexml, imr_client, iormanip {
+project(ImR_Locator) : orbsvcslib, orbsvcs_output, conv_lib, avoids_minimum_corba, avoids_corba_e_compact, avoids_corba_e_micro, iortable, portableserver, messaging, svc_utils, acexml, imr_client, iormanip, dynamicinterface {
sharedname = TAO_ImR_Locator
dynamicflags += LOCATOR_BUILD_DLL
after += ImR_Locator_IDL ImR_Activator_IDL
libs += TAO_ImR_Locator_IDL TAO_ImR_Activator_IDL
avoids += uses_wchar
+
Source_Files {
Activator_Info.cpp
Adapter_Activator.cpp
+ AsyncAccessManager.cpp
Forwarder.cpp
ImR_Locator_i.cpp
- AsyncStartupWaiter_i.cpp
+ ImR_ResponseHandler.cpp
INS_Locator.cpp
+ LiveCheck.cpp
Locator_XMLHandler.cpp
Locator_Loader.cpp
Locator_Options.cpp
@@ -133,7 +131,7 @@ project(ImR_Activator_Service) : orbsvcsexe, install, acexml, avoids_minimum_cor
}
-project(tao_imr) : orbsvcsexe, install, avoids_minimum_corba, avoids_corba_e_compact, avoids_corba_e_micro, portableserver, imr_client {
+project(tao_imr) : orbsvcsexe, install, avoids_minimum_corba, avoids_corba_e_compact, avoids_corba_e_micro, portableserver, imr_client, messaging {
install = $(ACE_ROOT)/bin
exename = tao_imr
Source_Files {
diff --git a/TAO/orbsvcs/ImplRepo_Service/LiveCheck.cpp b/TAO/orbsvcs/ImplRepo_Service/LiveCheck.cpp
new file mode 100644
index 00000000000..397db0f27ae
--- /dev/null
+++ b/TAO/orbsvcs/ImplRepo_Service/LiveCheck.cpp
@@ -0,0 +1,562 @@
+// -*- C++ -*-
+// $Id$
+
+#include "LiveCheck.h"
+#include "tao/ORB_Core.h"
+#include "ace/Reactor.h"
+#include "ace/High_Res_Timer.h"
+
+LiveListener::LiveListener (const char *server)
+ : server_(server)
+{
+}
+
+const char *
+LiveListener::server (void) const
+{
+ return this->server_;
+}
+
+//---------------------------------------------------------------------------
+//---------------------------------------------------------------------------
+
+const int LiveEntry::reping_msec_[] = {10, 100, 500, 1000, 1000, 2000, 2000, 5000, 5000};
+int LiveEntry::reping_limit_ = sizeof (LiveEntry::reping_msec_) / sizeof (int);
+
+void
+LiveEntry::set_reping_limit (int max)
+{
+ int array_max = sizeof (LiveEntry::reping_msec_) / sizeof (int);
+ LiveEntry::reping_limit_ = max < array_max && max >= 0 ? max : array_max;
+}
+
+bool
+LiveEntry::reping_available (void)
+{
+ return this->repings_ < this->max_retry_;
+}
+
+int
+LiveEntry::next_reping (void)
+{
+ ACE_GUARD_RETURN (TAO_SYNCH_MUTEX, mon, this->lock_, -1);
+ return this->reping_available() ? LiveEntry::reping_msec_[this->repings_++] : -1;
+}
+
+void
+LiveEntry::max_retry_msec (int msec)
+{
+ ACE_GUARD (TAO_SYNCH_MUTEX, mon, this->lock_);
+ for (this->max_retry_ = 0;
+ this->max_retry_ < LiveEntry::reping_limit_ && msec > 0;
+ ++this->max_retry_)
+ {
+ msec -= LiveEntry::reping_msec_[this->repings_];
+ }
+}
+
+LiveEntry::LiveEntry (LiveCheck *owner,
+ const char *server,
+ ImplementationRepository::ServerObject_ptr ref)
+ : owner_ (owner),
+ server_ (server),
+ ref_ (ImplementationRepository::ServerObject::_duplicate (ref)),
+ liveliness_ (LS_UNKNOWN),
+ next_check_ (ACE_High_Res_Timer::gettimeofday_hr()),
+ retry_count_ (0),
+ repings_ (0),
+ max_retry_ (LiveEntry::reping_limit_),
+ listeners_ (),
+ lock_ ()
+{
+}
+
+LiveEntry::~LiveEntry (void)
+{
+}
+
+void
+LiveEntry::add_listener (LiveListener* ll)
+{
+ ACE_GUARD (TAO_SYNCH_MUTEX, mon, this->lock_);
+ this->listeners_.insert (ll);
+}
+
+void
+LiveEntry::reset_status (void)
+{
+ ACE_GUARD (TAO_SYNCH_MUTEX, mon, this->lock_);
+ if ( this->liveliness_ == LS_ALIVE)
+ {
+ this->liveliness_ = LS_UNKNOWN;
+ this->next_check_ = ACE_High_Res_Timer::gettimeofday_hr();
+ }
+}
+
+LiveStatus
+LiveEntry::status (void) const
+{
+ if ( this->liveliness_ == LS_ALIVE &&
+ this->owner_->ping_interval() != ACE_Time_Value::zero )
+ {
+ ACE_Time_Value now (ACE_High_Res_Timer::gettimeofday_hr());
+ if (now >= this->next_check_)
+ {
+ return LS_UNKNOWN;
+ }
+ }
+ return this->liveliness_;
+}
+
+void
+LiveEntry::status (LiveStatus l)
+{
+ {
+ ACE_GUARD (TAO_SYNCH_MUTEX, mon, this->lock_);
+ this->liveliness_ = l;
+ if (l == LS_ALIVE)
+ {
+ this->retry_count_ = 0;
+ ACE_Time_Value now (ACE_High_Res_Timer::gettimeofday_hr());
+ this->next_check_ = now + owner_->ping_interval();
+ }
+ }
+ Listen_Set remove;
+
+ LiveStatus ls = this->liveliness_;
+ if (ls == LS_TRANSIENT && ! this->reping_available())
+ ls = LS_LAST_TRANSIENT;
+ for (Listen_Set::ITERATOR i(this->listeners_);
+ !i.done();
+ i.advance ())
+ {
+ LiveListener **ll = 0;
+ i.next (ll);
+ if (*ll != 0)
+ {
+ if ((*ll)->status_changed (this->liveliness_))
+ {
+ remove.insert (*ll);
+ }
+ }
+ }
+
+ {
+ ACE_GUARD (TAO_SYNCH_MUTEX, mon, this->lock_);
+ for (Listen_Set::ITERATOR i (remove);
+ !i.done();
+ i.advance ())
+ {
+ LiveListener **ll = 0;
+ i.next (ll);
+ if (*ll != 0)
+ {
+ this->listeners_.remove (*ll);
+ }
+ }
+ }
+
+ if (this->listeners_.size() > 0)
+ {
+ this->owner_->schedule_ping (this);
+ }
+ else
+ {
+ this->owner_->remove_per_client_entry (this);
+ }
+}
+
+const ACE_Time_Value &
+LiveEntry::next_check (void) const
+{
+ return this->next_check_;
+}
+
+bool
+LiveEntry::do_ping (PortableServer::POA_ptr poa)
+{
+ ACE_Time_Value now (ACE_High_Res_Timer::gettimeofday_hr());
+ if (this->liveliness_ == LS_PING_AWAY || this->listeners_.size() == 0)
+ {
+ return false;
+ }
+
+ if (this->next_check_ > now || this->liveliness_ == LS_DEAD)
+ {
+ ACE_Time_Value diff = next_check_ - now;
+ return false;
+ }
+
+ switch (this->liveliness_)
+ {
+ case LS_UNKNOWN:
+ break;
+ case LS_ALIVE:
+ case LS_TIMEDOUT:
+ this->next_check_ = now + owner_->ping_interval();
+ break;
+ case LS_TRANSIENT:
+ {
+ int ms = this->next_reping ();
+ if (ms != -1)
+ {
+ ACE_Time_Value next (ms / 1000, (ms % 1000) * 1000);
+ this->next_check_ = now + next;
+ }
+ else
+ {
+ return false;
+ }
+ }
+ break;
+ default:;
+ }
+
+ PortableServer::ServantBase_var callback = new PingReceiver (this, poa);
+ PortableServer::ObjectId_var oid = poa->activate_object (callback.in());
+ CORBA::Object_var obj = poa->id_to_reference (oid.in());
+ ImplementationRepository::AMI_ServerObjectHandler_var cb =
+ ImplementationRepository::AMI_ServerObjectHandler::_narrow (obj.in());
+ try
+ {
+ this->ref_->sendc_ping (cb.in());
+ ACE_GUARD_RETURN (TAO_SYNCH_MUTEX, mon, this->lock_, false);
+ this->liveliness_ = LS_PING_AWAY;
+ this->retry_count_++;
+ }
+ catch (CORBA::Exception &)
+ {
+ this->status (LS_DEAD);
+ this->retry_count_++;
+ }
+
+ return false;
+}
+
+//---------------------------------------------------------------------------
+//---------------------------------------------------------------------------
+
+PingReceiver::PingReceiver (LiveEntry *entry, PortableServer::POA_ptr poa)
+ :poa_ (PortableServer::POA::_duplicate(poa)),
+ entry_ (entry)
+{
+}
+
+PingReceiver::~PingReceiver (void)
+{
+}
+
+void
+PingReceiver::ping (void)
+{
+ this->entry_->status (LS_ALIVE);
+ PortableServer::ObjectId_var oid = this->poa_->servant_to_id (this);
+ poa_->deactivate_object (oid.in());
+}
+
+void
+PingReceiver::ping_excep (Messaging::ExceptionHolder * excep_holder)
+{
+ try
+ {
+ excep_holder->raise_exception ();
+ }
+ catch (CORBA::TRANSIENT &ex)
+ {
+ const CORBA::ULong BITS_5_THRU_12_MASK = 0x00000f80;
+ switch (ex.minor () & BITS_5_THRU_12_MASK)
+ {
+ case TAO_POA_DISCARDING:
+ case TAO_POA_HOLDING:
+ {
+ this->entry_->status (LS_TRANSIENT);
+ break;
+ }
+ default: //case TAO_INVOCATION_SEND_REQUEST_MINOR_CODE:
+ {
+ this->entry_->status (LS_DEAD);
+ }
+ }
+ }
+ catch (CORBA::TIMEOUT &)
+ {
+ this->entry_->status (LS_TIMEDOUT);
+ }
+ catch (CORBA::Exception &)
+ {
+ this->entry_->status (LS_DEAD);
+ }
+
+ PortableServer::ObjectId_var oid = this->poa_->servant_to_id (this);
+ poa_->deactivate_object (oid.in());
+}
+
+//---------------------------------------------------------------------------
+//---------------------------------------------------------------------------
+
+LiveCheck::LiveCheck ()
+ :ping_interval_(),
+ running_ (false),
+ token_ (100)
+{
+}
+
+LiveCheck::~LiveCheck (void)
+{
+ while (this->entry_map_.current_size() > 0)
+ {
+ LiveEntryMap::iterator i (this->entry_map_);
+ LiveEntryMap::value_type *pair = 0;
+ i.next (pair);
+ this->entry_map_.unbind(pair);
+ delete pair->item();
+ }
+}
+
+void
+LiveCheck::init (CORBA::ORB_ptr orb,
+ const ACE_Time_Value &pi )
+{
+ this->ping_interval_ = pi;
+ ACE_Reactor *r = orb->orb_core()->reactor();
+ this->reactor (r);
+ CORBA::Object_var obj = orb->resolve_initial_references ("RootPOA");
+ this->poa_ = PortableServer::POA::_narrow (obj.in());
+ this->running_ = true;
+}
+
+void
+LiveCheck::shutdown (void)
+{
+ this->running_ = false;
+ this->reactor()->cancel_timer (this);
+}
+
+const ACE_Time_Value &
+LiveCheck::ping_interval (void) const
+{
+ return this->ping_interval_;
+}
+
+int
+LiveCheck::handle_timeout (const ACE_Time_Value &,
+ const void */*tok*/)
+{
+ // long token = reinterpret_cast<long>(tok);
+ if (!this->running_)
+ return -1;
+
+ bool want_reping = false;
+ ACE_Time_Value next;
+ LiveEntryMap::iterator le_end = this->entry_map_.end();
+ for (LiveEntryMap::iterator le = this->entry_map_.begin();
+ le != le_end;
+ ++le)
+ {
+ if (le->item ()->do_ping (poa_.in ()))
+ {
+ LiveStatus status = le->item ()->status ();
+ if (status != LS_DEAD)
+ {
+ if (!want_reping || le->item ()->next_check() < next)
+ {
+ want_reping = true;
+ next = le->item ()->next_check();
+ }
+ }
+ }
+
+ }
+
+ PerClientStack::iterator pe_end = this->per_client_.end();
+ for (PerClientStack::iterator pe = this->per_client_.begin();
+ pe != pe_end;
+ ++pe)
+ {
+ LiveEntry *entry = *pe;
+ if (entry != 0)
+ {
+ bool result = entry->do_ping (poa_.in ());
+ LiveStatus status = entry->status ();
+ if (result)
+ {
+ if (status != LS_DEAD)
+ {
+ if (!want_reping || entry->next_check() < next)
+ {
+ want_reping = true;
+ next = entry->next_check();
+ }
+ }
+ else
+ {
+ this->per_client_.remove (entry);
+ }
+ }
+ else
+ {
+ if (status != LS_PING_AWAY && status != LS_TRANSIENT)
+ {
+ this->per_client_.remove (entry);
+ }
+ }
+ }
+ }
+
+ if (want_reping)
+ {
+ ACE_Time_Value now (ACE_High_Res_Timer::gettimeofday_hr());
+ ACE_Time_Value delay = next - now;
+ ++this->token_;
+ this->reactor()->schedule_timer (this, reinterpret_cast<void *>(this->token_), delay);
+ }
+
+ return 0;
+}
+
+void
+LiveCheck::add_server (const char *server,
+ ImplementationRepository::ServerObject_ptr ref)
+{
+ if (!this->running_)
+ return;
+
+ ACE_CString s (server);
+ LiveEntry *entry = 0;
+ ACE_NEW (entry, LiveEntry (this, server, ref));
+ int result = entry_map_.bind (s, entry);
+ if (result != 0)
+ {
+ LiveEntry *old = 0;
+ result = entry_map_.rebind (s, entry, old);
+ delete old;
+ }
+}
+
+void
+LiveCheck::remove_server (const char *server)
+{
+ ACE_CString s(server);
+ LiveEntry *entry = 0;
+ int result = entry_map_.unbind (s, entry);
+ if (result == 0)
+ delete entry;
+}
+
+void
+LiveCheck::remove_per_client_entry (LiveEntry *e)
+{
+ this->per_client_.remove (e);
+}
+
+bool
+LiveCheck::add_per_client_listener (LiveListener *l,
+ ImplementationRepository::ServerObject_ptr ref)
+{
+ if (!this->running_)
+ return false;
+
+ LiveEntry *entry = 0;
+ ACE_NEW_RETURN (entry, LiveEntry (this, 0, ref), false);
+
+ if (this->per_client_.insert_tail(entry) == 0)
+ {
+ entry->add_listener (l);
+
+ ++this->token_;
+ this->reactor()->schedule_timer (this,
+ reinterpret_cast<void *>(this->token_),
+ ACE_Time_Value::zero);
+ return true;
+ }
+ return false;
+}
+
+bool
+LiveCheck::add_poll_listener (LiveListener *l)
+{
+ if (!this->running_)
+ return false;
+
+ LiveEntry *entry = 0;
+ ACE_CString key (l->server());
+ int result = entry_map_.find (key, entry);
+ if (result == -1 || entry == 0)
+ {
+ return false;
+ }
+
+ entry->add_listener (l);
+ entry->reset_status ();
+ return this->schedule_ping (entry);
+}
+
+bool
+LiveCheck::add_listener (LiveListener *l)
+{
+ if (!this->running_)
+ return false;
+
+ LiveEntry *entry = 0;
+ ACE_CString key (l->server());
+ int result = entry_map_.find (key, entry);
+ if (result == -1 || entry == 0)
+ {
+ return false;
+ }
+
+ entry->add_listener (l);
+ return this->schedule_ping (entry);
+}
+
+bool
+LiveCheck::schedule_ping (LiveEntry *entry)
+{
+ if (!this->running_)
+ return false;
+
+ LiveStatus status = entry->status();
+ if (status == LS_PING_AWAY || status == LS_DEAD)
+ {
+ return status != LS_DEAD;
+ }
+
+ ACE_Time_Value now (ACE_High_Res_Timer::gettimeofday_hr());
+ ACE_Time_Value next = entry->next_check ();
+ ++this->token_;
+ if (next <= now)
+ {
+ this->reactor()->schedule_timer (this,
+ reinterpret_cast<void *>(this->token_),
+ ACE_Time_Value::zero);
+ }
+ else
+ {
+ ACE_Time_Value delay = next - now;
+ this->reactor()->schedule_timer (this,
+ reinterpret_cast<void *>(this->token_),
+ delay);
+ }
+ return true;
+}
+
+LiveStatus
+LiveCheck::is_alive (const char *server)
+{
+ if (!this->running_)
+ return LS_DEAD;
+
+ if (this->ping_interval_ == ACE_Time_Value::zero)
+ {
+ return LS_ALIVE;
+ }
+
+ ACE_CString s(server);
+ LiveEntry *entry = 0;
+ int result = entry_map_.find (s, entry);
+ if (result == 0 && entry != 0)
+ {
+ return entry->status ();
+ }
+ return LS_DEAD;
+}
diff --git a/TAO/orbsvcs/ImplRepo_Service/LiveCheck.h b/TAO/orbsvcs/ImplRepo_Service/LiveCheck.h
new file mode 100644
index 00000000000..b3b643e5363
--- /dev/null
+++ b/TAO/orbsvcs/ImplRepo_Service/LiveCheck.h
@@ -0,0 +1,214 @@
+// -*- C++ -*-
+/*
+ * @file LiveCheck.h
+ *
+ * $Id$
+ *
+ * @author Phil Mesnier <mesnier_p@ociweb.com>
+ */
+
+#ifndef IMR_LIVECHECK_H_
+#define IMR_LIVECHECK_H_
+
+#include "locator_export.h"
+
+#include "tao/ImR_Client/ServerObjectS.h" // ServerObject_AMIS.h
+
+#include "ace/Unbounded_Set.h"
+#include "ace/Hash_Map_Manager.h"
+#include "ace/SString.h"
+#include "ace/Event_Handler.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+#pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+class LiveCheck;
+
+//---------------------------------------------------------------------------
+/*
+ * @enum LiveStatus
+ *
+ * @brief indication of the known condition of a target server
+ *
+ * LS_UNKNOWN - The server hasn't yet been pinged
+ * LS_DEAD - The ping failed for reasons other than POA Activation
+ * LS_ALIVE - The server positively acknowledged a ping
+ * LS_TRANSIENT - The server connected, but acively raised a transient
+ * LS_TIMEDOUT - The server connected, but never returned any result.
+ */
+enum LiveStatus {
+ LS_UNKNOWN,
+ LS_PING_AWAY,
+ LS_DEAD,
+ LS_ALIVE,
+ LS_TRANSIENT,
+ LS_LAST_TRANSIENT,
+ LS_TIMEDOUT
+};
+
+//---------------------------------------------------------------------------
+/*
+ * @class LiveListener
+ *
+ * @brief An interface for receiving asynch liveness status updates
+ *
+ * The code waiting on a confirmation of liveness status creates an instance
+ * of a LiveListener and registers it with the LiveCheck object.
+ * When the desired ping occurs, the status_changed method is called and the
+ * listener is unregistered. It is up to the owner of the listener to re-
+ * register if the ping result was inconclusive, such as a status of TRANSIENT
+ * or TIMEDOUT. Such a decision is based on configuration settings.
+ */
+class Locator_Export LiveListener
+{
+ public:
+ /// Construct a new listener. The server name suppled is used to
+ /// look up a listener entry in the LiveCheck map.
+ LiveListener (const char *server);
+
+ /// called by the asynch ping receiver when a reply or an exception
+ /// is received. Returns true if finished listening
+ virtual bool status_changed (LiveStatus status) = 0;
+
+ /// accessor for the server name. Used by the LiveCheck to associate a listener
+ const char *server (void) const;
+
+ private:
+ const char *server_;
+};
+
+//---------------------------------------------------------------------------
+/*
+ * @class LiveEntry
+ *
+ * @brief Contains a list of interested listeners for a server
+ *
+ * Each server the Locator is interested in has a live entry instance.
+ * This holds the liveliness status and determines the next allowed time
+ * for a ping. Instances of the LiveEntry class are retained until the
+ * locator is no longer interested in the target server.
+ */
+class Locator_Export LiveEntry
+{
+ public:
+ LiveEntry (LiveCheck *owner,
+ const char *server,
+ ImplementationRepository::ServerObject_ptr ref);
+ ~LiveEntry (void);
+
+ void add_listener (LiveListener * ll);
+ LiveStatus status (void) const;
+ void status (LiveStatus l);
+ void reset_status (void);
+
+ bool do_ping (PortableServer::POA_ptr poa);
+ const ACE_Time_Value &next_check (void) const;
+ static void set_reping_limit (int max);
+ bool reping_available (void);
+ int next_reping (void);
+ void max_retry_msec (int max);
+
+ private:
+ LiveCheck *owner_;
+ ACE_CString server_;
+ ImplementationRepository::ServerObject_var ref_;
+ LiveStatus liveliness_;
+ ACE_Time_Value next_check_;
+ short retry_count_;
+ int repings_;
+ int max_retry_;
+
+ typedef ACE_Unbounded_Set<LiveListener *> Listen_Set;
+ Listen_Set listeners_;
+ TAO_SYNCH_MUTEX lock_;
+ static const int reping_msec_ [];
+ static int reping_limit_;
+
+};
+
+//---------------------------------------------------------------------------
+/*
+ * @class PingReceiver
+ *
+ * @brief callback handler for asynch ping requests
+ *
+ * An instance of the ping receiver is used to handle the reply from a ping
+ * request. Instances are created for the ping, then destroyed.
+`*/
+class Locator_Export PingReceiver :
+ public virtual POA_ImplementationRepository::AMI_ServerObjectHandler
+{
+ public:
+ PingReceiver (LiveEntry * entry, PortableServer::POA_ptr poa);
+ virtual ~PingReceiver (void);
+
+ void ping (void);
+ void ping_excep (Messaging::ExceptionHolder * excep_holder);
+
+ private:
+ PortableServer::POA_var poa_;
+ LiveEntry * entry_;
+};
+
+//---------------------------------------------------------------------------
+/*
+ * @class LiveCheck
+ *
+ * @brief The manager class used for pinging servers as needed.
+ *
+ * The LiveCheck class maintains a map of named LiveEntries. When the locator
+ * needs to determine the liveliness of a server, registers a LiveListener
+ * for the desired server. A ping to the server is then scheduled, based on the
+ * limits determined by the entry's state.
+ */
+class Locator_Export LiveCheck : public ACE_Event_Handler
+{
+ public:
+ LiveCheck ();
+ ~LiveCheck (void);
+
+ void init (CORBA::ORB_ptr orb, const ACE_Time_Value &interval);
+ void shutdown (void);
+
+ int handle_timeout (const ACE_Time_Value &current_time,
+ const void *act = 0);
+
+ void add_server (const char *server,
+ ImplementationRepository::ServerObject_ptr ref);
+
+ void remove_server (const char *server);
+
+ void remove_per_client_entry (LiveEntry *entry);
+
+ bool add_listener (LiveListener *listener);
+
+ bool add_poll_listener (LiveListener *listener);
+
+ bool add_per_client_listener (LiveListener *listener,
+ ImplementationRepository::ServerObject_ptr ref);
+
+ bool schedule_ping (LiveEntry *entry);
+
+ LiveStatus is_alive (const char *server);
+
+ const ACE_Time_Value &ping_interval (void) const;
+
+ private:
+ typedef ACE_Hash_Map_Manager_Ex<ACE_CString,
+ LiveEntry *,
+ ACE_Hash<ACE_CString>,
+ ACE_Equal_To<ACE_CString>,
+ TAO_SYNCH_MUTEX> LiveEntryMap;
+ typedef ACE_Unbounded_Set<LiveEntry *> PerClientStack;
+
+ LiveEntryMap entry_map_;
+ PerClientStack per_client_;
+ PortableServer::POA_var poa_;
+ ACE_Time_Value ping_interval_;
+ bool running_;
+ int token_;
+};
+
+#endif /* IMR_LIVECHECK_H_ */
+
diff --git a/TAO/orbsvcs/ImplRepo_Service/Locator_Options.cpp b/TAO/orbsvcs/ImplRepo_Service/Locator_Options.cpp
index bd8e03aeff2..794b0240959 100644
--- a/TAO/orbsvcs/ImplRepo_Service/Locator_Options.cpp
+++ b/TAO/orbsvcs/ImplRepo_Service/Locator_Options.cpp
@@ -43,11 +43,6 @@ Options::parse_args (int &argc, ACE_TCHAR *argv[])
{
ACE_Arg_Shifter shifter (argc, argv);
- // Don't let persistence options co-mingle.
- bool binary_persistence_used = false;
- bool xml_persistence_used = false;
- bool directory_persistence_used = false;
-
while (shifter.is_anything_left ())
{
if (ACE_OS::strcasecmp (shifter.get_current (),
@@ -147,7 +142,6 @@ Options::parse_args (int &argc, ACE_TCHAR *argv[])
this->persist_file_name_ = shifter.get_current ();
this->repo_mode_ = REPO_HEAP_FILE;
- binary_persistence_used = true;
}
else if (ACE_OS::strcasecmp (shifter.get_current (),
ACE_TEXT ("-UnregisterIfAddressReused")) == 0)
@@ -173,7 +167,6 @@ Options::parse_args (int &argc, ACE_TCHAR *argv[])
this->persist_file_name_ = shifter.get_current ();
this->repo_mode_ = REPO_XML_FILE;
- xml_persistence_used = true;
}
else if (ACE_OS::strcasecmp (shifter.get_current (),
ACE_TEXT ("--primary")) == 0)
@@ -206,7 +199,6 @@ Options::parse_args (int &argc, ACE_TCHAR *argv[])
{
this->persist_file_name_ += '/';
}
- directory_persistence_used = true;
}
else if (ACE_OS::strcasecmp (shifter.get_current (),
ACE_TEXT ("-e")) == 0)
@@ -252,26 +244,6 @@ Options::parse_args (int &argc, ACE_TCHAR *argv[])
shifter.consume_arg ();
}
- if ((this->imr_type_ == BACKUP_IMR || this->imr_type_ == PRIMARY_IMR) &&
- !directory_persistence_used)
- {
- ACE_ERROR ((LM_ERROR,
- "Error: Redundancy is used but the "
- "--directory option is not passed\n"));
- this->print_usage ();
- return -1;
- }
-
- if ((binary_persistence_used + directory_persistence_used +
- xml_persistence_used)
- > 1)
- {
- ACE_ERROR ((LM_ERROR,
- "Error: Only one persistence option can be used\n"));
- this->print_usage ();
- return -1;
- }
-
return 0;
}
@@ -326,6 +298,7 @@ Options::print_usage (void) const
ACE_TEXT (" -s Run as a service\n")
ACE_TEXT (" -t secs Server startup timeout.(Default=60s)\n")
ACE_TEXT (" -v msecs Server verification interval.(Default=10s)\n")
+ ACE_TEXT (" --asynch Servant dispatching using asynch method handling\n")
));
}
@@ -596,6 +569,7 @@ Options::unregister_if_address_reused (void) const
}
Options::ImrType
-Options::imr_type(void) const {
+Options::imr_type (void) const
+{
return this->imr_type_;
}
diff --git a/TAO/orbsvcs/ImplRepo_Service/Locator_Options.h b/TAO/orbsvcs/ImplRepo_Service/Locator_Options.h
index 8c62959de12..77d583751bf 100644
--- a/TAO/orbsvcs/ImplRepo_Service/Locator_Options.h
+++ b/TAO/orbsvcs/ImplRepo_Service/Locator_Options.h
@@ -156,6 +156,7 @@ private:
/// The type of ImR Locator this is.
ImrType imr_type_;
+
};
#endif
diff --git a/TAO/orbsvcs/ImplRepo_Service/Locator_Repository.cpp b/TAO/orbsvcs/ImplRepo_Service/Locator_Repository.cpp
index 29630185a29..fd18d93299d 100644
--- a/TAO/orbsvcs/ImplRepo_Service/Locator_Repository.cpp
+++ b/TAO/orbsvcs/ImplRepo_Service/Locator_Repository.cpp
@@ -67,8 +67,8 @@ Locator_Repository::report_ior (PortableServer::POA_ptr )
IORTable::Table_var ior_table = IORTable::Table::_narrow (obj.in ());
ACE_ASSERT (! CORBA::is_nil (ior_table.in ()));
- ior_table->rebind ("ImplRepoService", this->imr_ior_.in());
- ior_table->rebind ("ImR", this->imr_ior_.in());
+ ior_table->bind ("ImplRepoService", this->imr_ior_.in());
+ ior_table->bind ("ImR", this->imr_ior_.in());
// Set up multicast support (if enabled)
if (this->opts_.multicast ())
@@ -121,70 +121,6 @@ Locator_Repository::report_ior (PortableServer::POA_ptr )
}
int
-Locator_Repository::recover_ior (void)
-{
- if (this->registered_)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_TEXT ("ERROR: Repository already registered IOR. ")
- ACE_TEXT ("recover_ior should not be called.\n")), -1);
- }
-
- if (this->opts_.debug () > 0)
- {
- ACE_DEBUG ((LM_INFO, ACE_TEXT ("recover_ior <%C>\n"),
- this->opts_.ior_filename ().c_str()));
- }
-
- // Load the IOR from the specified file if it is available.
- const ACE_TString& combined_ior_file = this->opts_.ior_filename ();
-
- // Check if the file exists. If not, then return 1 indicating
- // we cannot recover our state.
- if (ACE_OS::access (combined_ior_file.c_str (), F_OK) != 0)
- return -1;
-
- try {
- ACE_TString combined_ior = "file://" + combined_ior_file;
-
- CORBA::Object_var combined_obj =
- this->orb_->string_to_object (combined_ior.c_str());
-
- if (!CORBA::is_nil (combined_obj.in ()))
- {
- // Convert the object back into an IOR string to store in the
- // imr_ior_ attribute.
- this->imr_ior_ = this->orb_->object_to_string (combined_obj.in ());
- }
- }
- catch (const CORBA::Exception& ex)
- {
- ex._tao_print_exception ("Attempting to read combined_ior for ImR_Locator\n");
- return -1;
- }
-
- // Register the ImR for use with INS
- CORBA::Object_var obj = this->orb_->resolve_initial_references ("IORTable");
- IORTable::Table_var ior_table = IORTable::Table::_narrow (obj.in ());
- ACE_ASSERT (! CORBA::is_nil (ior_table.in ()));
-
- ior_table->bind ("ImplRepoService", this->imr_ior_.in());
- ior_table->bind ("ImR", this->imr_ior_.in());
-
- // Set up multicast support (if enabled)
- if (this->opts_.multicast ())
- {
- ACE_Reactor* reactor = this->orb_->orb_core ()->reactor ();
- if (this->setup_multicast (reactor, this->imr_ior_.in ()) != 0)
- return -1;
- }
-
- registered_ = true;
-
- return 0;
-}
-
-int
Locator_Repository::setup_multicast (ACE_Reactor* reactor, const char* ior)
{
ACE_ASSERT (reactor != 0);
@@ -508,11 +444,17 @@ UpdateableServerInfo::UpdateableServerInfo (
}
UpdateableServerInfo::UpdateableServerInfo (Locator_Repository* repo,
- const Server_Info_Ptr& si)
+ const Server_Info_Ptr& si,
+ bool reset_start_count)
: repo_(repo),
si_(si),
needs_update_(false)
{
+ if (reset_start_count)
+ {
+ needs_update_ = repo_ != 0;
+ si_->start_count = 0;
+ }
}
UpdateableServerInfo::UpdateableServerInfo (const Server_Info& si)
diff --git a/TAO/orbsvcs/ImplRepo_Service/Locator_Repository.h b/TAO/orbsvcs/ImplRepo_Service/Locator_Repository.h
index 38759b90faa..d38a66525a5 100644
--- a/TAO/orbsvcs/ImplRepo_Service/Locator_Repository.h
+++ b/TAO/orbsvcs/ImplRepo_Service/Locator_Repository.h
@@ -146,9 +146,6 @@ protected:
/// report the ImR Locator's IOR
virtual int report_ior(PortableServer::POA_ptr imr_poa);
- /// recover the ImR Locator's IOR from the persisted file
- virtual int recover_ior(void);
-
int setup_multicast (ACE_Reactor* reactor, const char* imr_ior);
void teardown_multicast();
@@ -199,7 +196,6 @@ private:
virtual int persistent_remove(const ACE_CString& name, bool activator);
};
-
/**
* @class UpdateableServerInfo
*
@@ -218,17 +214,19 @@ public:
/// constructor
/// @param repo the repo to report updates to
/// @param si an already retrieved Server_Info_Ptr
- UpdateableServerInfo(Locator_Repository* repo, const Server_Info_Ptr& si);
+ UpdateableServerInfo(Locator_Repository* repo,
+ const Server_Info_Ptr& si,
+ bool reset_start_count = false);
/// constructor (no repo updates will be performed)
/// @param si a Server_Info to create a non-stored Server_Info_Ptr from
UpdateableServerInfo(const Server_Info& si);
/// destructor (updates repo if needed)
- ~UpdateableServerInfo();
+ ~UpdateableServerInfo(void);
/// explicitly update repo if needed
- void update_repo();
+ void update_repo(void);
/// const Server_Info access
const Server_Info* operator->() const;
@@ -238,13 +236,14 @@ public:
/// retrieve smart pointer to non-const Server_Info
/// and indicate repo update required
- const Server_Info_Ptr& edit();
+ const Server_Info_Ptr& edit(void);
/// force indication of update needed
- void needs_update();
+ void needs_update(void);
/// indicate it Server_Info_Ptr is null
- bool null() const;
+ bool null(void) const;
+
private:
UpdateableServerInfo(const UpdateableServerInfo& );
const UpdateableServerInfo& operator=(const UpdateableServerInfo& );
diff --git a/TAO/orbsvcs/ImplRepo_Service/README b/TAO/orbsvcs/ImplRepo_Service/README
index 20f5a08f359..c5465941cc1 100644
--- a/TAO/orbsvcs/ImplRepo_Service/README
+++ b/TAO/orbsvcs/ImplRepo_Service/README
@@ -238,11 +238,9 @@ profile to not be available in the ior.
At startup the primary must be started first, then the backup. When
a single ImR_Locator goes down, it can be restarted at anytime
-(using the same ORBEndPoints). If they are both shutdown after a successful
-startup of the redundant pair, then either the primary or backup can be
-restarted first. With only a single server running, there is no fault
-tolerance support, but the original fault tolerant ior which was created
-by the backup with the -o option can still be used as long as the ORBEndPoint
+(using the same ORBEndPoints). If they are both shutdown then Fault Tolerant
+ImplRepo_Service will be down until both the primary and backup are restarted
+in that order.. The previous ior file will only remain valid if the ORBEndPoint
list remains the same for both instances.
As long as both the primary and backup ImR_Locators are not shutdown at the
@@ -278,7 +276,7 @@ same time the Fault Tolerant ImplRepo_Service will always be available.
@subsection activator ImR_Activator
-ImR_Activators, as you might have guessed, do the real work of
+ ImR_Activators, as you might have guessed, do the real work of
activating servers or shutting them down and maintaining the information
about servers related to them. Only one instance of an ImR_Activator
can be run on one host. The ImR_Activator is not exposed at all to the
diff --git a/TAO/orbsvcs/ImplRepo_Service/Shared_Backing_Store.cpp b/TAO/orbsvcs/ImplRepo_Service/Shared_Backing_Store.cpp
index 2b8dbf523f4..fb03f8832f5 100644
--- a/TAO/orbsvcs/ImplRepo_Service/Shared_Backing_Store.cpp
+++ b/TAO/orbsvcs/ImplRepo_Service/Shared_Backing_Store.cpp
@@ -614,87 +614,47 @@ Shared_Backing_Store::repo_mode() const
int
Shared_Backing_Store::connect_replicas (Replica_ptr this_replica)
{
- const ACE_TString& replica_ior_file = replica_ior_filename(true);
+ const ACE_TString& replica_ior = replica_ior_filename(true);
if (this->opts_.debug() > 1)
{
ACE_DEBUG((LM_INFO,
- ACE_TEXT("Resolving ImR replica %s\n"), replica_ior_file.c_str()));
+ ACE_TEXT("Resolving ImR replica %s\n"), replica_ior.c_str()));
}
- // Determine if the peer has started previously by checking if the
- // ior file for the replica is there.
- int peer_started_previously = 0;
- if (ACE_OS::access (replica_ior_file.c_str (), F_OK) == 0)
- {
- peer_started_previously = 1;
- }
- else
- this->peer_replica_ =
- ImplementationRepository::UpdatePushNotification::_nil();
+ CORBA::Object_var obj =
+ this->orb_->string_to_object (replica_ior.c_str());
- if (peer_started_previously)
+ if (!CORBA::is_nil (obj.in ()))
{
- ACE_TString replica_ior = "file://" + replica_ior_file;
- CORBA::Object_var obj =
- this->orb_->string_to_object (replica_ior.c_str());
-
- if (!CORBA::is_nil (obj.in ()))
+ bool non_exist = true;
+ try
{
- bool non_exist = true;
- try
- {
- this->peer_replica_ = ImplementationRepository::
- UpdatePushNotification::_narrow (obj.in());
- non_exist = (this->peer_replica_->_non_existent() == 1);
- }
- catch (const CORBA::Exception& )
- {
- // let error be handled below
- }
+ this->peer_replica_ = ImplementationRepository::
+ UpdatePushNotification::_narrow (obj.in());
+ non_exist = (this->peer_replica_->_non_existent() == 1);
+ }
+ catch (const CORBA::Exception& )
+ {
+ // let error be handled below
+ }
- if (non_exist)
- {
- this->peer_replica_ =
- ImplementationRepository::UpdatePushNotification::_nil();
- }
+ if (non_exist)
+ {
+ this->peer_replica_ =
+ ImplementationRepository::UpdatePushNotification::_nil();
}
}
- // Check if a peer IOR is defined
if (CORBA::is_nil (this->peer_replica_.in()))
{
if (this->imr_type_ == Options::BACKUP_IMR)
- { // We are a backup IMR Locator
-
- // If the primary has started at some point in the past, but is
- // not available right now, then we will assume that we are in
- // a restart situation where the backup is being started while
- // the primary is still down. This implies that a successful
- // start of the replication pair has been made in the past and
- // we can use the combined ior from the previous run.
- if (peer_started_previously)
- {
- // Verify that we recovered the IOR successfully. If we did not
- // then fail startup of the backup IMR Locator.
- if (this->recover_ior () == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_TEXT("Error: Unable to retrieve IOR from combined IOR ")
- ACE_TEXT ("file: %C\n"),
- replica_ior_file.c_str()),
- -1);
- }
- else
- { // There has been a startup error. The backup can only be started
- // after the primary has been successfully started.
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_TEXT("Error: Primary has not been started previously.\n ")
- ACE_TEXT ("file: %C\n"),
- replica_ior_file.c_str()),
- -1);
- }
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_TEXT("Error: No primary ImR replica is running <%s>\n"),
+ replica_ior.c_str()), -1);
}
- // For either primary or backup - no connection currently, just wait for peer to start
+ // no connection currently, just wait for backup
return 0;
}
@@ -714,7 +674,7 @@ Shared_Backing_Store::connect_replicas (Replica_ptr this_replica)
{
ACE_ERROR_RETURN ((LM_ERROR,
ACE_TEXT("Error: obj key <%s> is an invalid ImR replica because %s\n"),
- replica_ior_file.c_str(), ip.reason.in()), -1);
+ replica_ior.c_str(), ip.reason.in()), -1);
}
if (opts_.debug() > 9)
@@ -1280,6 +1240,11 @@ Shared_Backing_Store::replica_ior_filename(bool peer_ior_file) const
}
ACE_CString ior =
this->filename_ + IMR_REPLICA[desired_type] + ACE_TEXT(".ior");
+ if (peer_ior_file)
+ {
+ // the peer ior file needs the file prefix
+ ior = "file://" + ior;
+ }
return ior;
}
diff --git a/TAO/orbsvcs/orbsvcs/CosEvent/CEC_EventChannel.h b/TAO/orbsvcs/orbsvcs/CosEvent/CEC_EventChannel.h
index 920841f752c..3154f1c4fde 100644
--- a/TAO/orbsvcs/orbsvcs/CosEvent/CEC_EventChannel.h
+++ b/TAO/orbsvcs/orbsvcs/CosEvent/CEC_EventChannel.h
@@ -32,7 +32,6 @@
#include "orbsvcs/CosEvent/CEC_Defaults.h"
#include "orbsvcs/CosEvent/event_serv_export.h"
#include "ace/Hash_Map_Manager.h"
-#include "ace/Truncate.h"
TAO_BEGIN_VERSIONED_NAMESPACE_DECL
@@ -109,7 +108,7 @@ public:
{
public:
u_long operator() (PortableServer::ServantBase* const & ptr) const {
- return ACE_Utils::truncate_cast<u_long> ((intptr_t)ptr);
+ return reinterpret_cast<u_long> (ptr);
}
};
diff --git a/TAO/orbsvcs/orbsvcs/CosEvent/CEC_TypedEventChannel.h b/TAO/orbsvcs/orbsvcs/CosEvent/CEC_TypedEventChannel.h
index 3cc21b59de3..5d07ebec18f 100644
--- a/TAO/orbsvcs/orbsvcs/CosEvent/CEC_TypedEventChannel.h
+++ b/TAO/orbsvcs/orbsvcs/CosEvent/CEC_TypedEventChannel.h
@@ -35,7 +35,6 @@
#include "ace/Hash_Map_Manager.h"
#include "ace/Null_Mutex.h"
-#include "ace/Truncate.h"
#include "ace/SString.h"
TAO_BEGIN_VERSIONED_NAMESPACE_DECL
@@ -118,7 +117,7 @@ public:
{
public:
u_long operator() (PortableServer::ServantBase* const & ptr) const {
- return ACE_Utils::truncate_cast<u_long> ((intptr_t)ptr);
+ return reinterpret_cast<u_long> (ptr);
}
};
diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_Basic_Factory.cpp b/TAO/orbsvcs/orbsvcs/Event/EC_Basic_Factory.cpp
index 27e04d65611..9dce3bc79f0 100644
--- a/TAO/orbsvcs/orbsvcs/Event/EC_Basic_Factory.cpp
+++ b/TAO/orbsvcs/orbsvcs/Event/EC_Basic_Factory.cpp
@@ -160,10 +160,8 @@ TAO_EC_Basic_Factory::destroy_scheduling_strategy (TAO_EC_Scheduling_Strategy* x
TAO_EC_ProxyPushConsumer_Collection*
TAO_EC_Basic_Factory::create_proxy_push_consumer_collection (TAO_EC_Event_Channel_Base *)
{
-#if defined (__SUNPRO_CC)
// This typedef is a workaround for a SunCC 4.2 bug
typedef TAO_ESF_Proxy_List<TAO_EC_ProxyPushConsumer>::Iterator TAO_EC_Consumer_List_Iterator;
-#endif
return new TAO_ESF_Delayed_Changes<TAO_EC_ProxyPushConsumer,
TAO_ESF_Proxy_List<TAO_EC_ProxyPushConsumer>,
TAO_ESF_Proxy_List<TAO_EC_ProxyPushConsumer>::Iterator,
@@ -179,10 +177,8 @@ TAO_EC_Basic_Factory::destroy_proxy_push_consumer_collection (TAO_EC_ProxyPushCo
TAO_EC_ProxyPushSupplier_Collection*
TAO_EC_Basic_Factory::create_proxy_push_supplier_collection (TAO_EC_Event_Channel_Base *)
{
-#if defined (__SUNPRO_CC)
// This typedef is a workaround for a SunCC 4.2 bug
typedef TAO_ESF_Proxy_List<TAO_EC_ProxyPushSupplier>::Iterator TAO_EC_Supplier_List_Iterator;
-#endif
return new TAO_ESF_Delayed_Changes<TAO_EC_ProxyPushSupplier,
TAO_ESF_Proxy_List<TAO_EC_ProxyPushSupplier>,
TAO_ESF_Proxy_List<TAO_EC_ProxyPushSupplier>::Iterator,
diff --git a/TAO/orbsvcs/tests/FT_Naming/FaultTolerant/client.cpp b/TAO/orbsvcs/tests/FT_Naming/FaultTolerant/client.cpp
index e5e0f6f9c29..820d6f85c13 100644
--- a/TAO/orbsvcs/tests/FT_Naming/FaultTolerant/client.cpp
+++ b/TAO/orbsvcs/tests/FT_Naming/FaultTolerant/client.cpp
@@ -578,10 +578,7 @@ do_failover_name_test (
catch (const CosNaming::NamingContext::NotFound& ex)
{
ex._tao_print_exception (
- ACE_TEXT ("INFO: Unable to resolve object from replica. Sleeping for a second.\n"));
-
- // Give it a second to be processed
- ACE_OS::sleep (1);
+ ACE_TEXT ("INFO: Unable to resolve object from replica.\n"));
// Try again...
try {
@@ -662,9 +659,7 @@ do_failover_name_test (
{
ex._tao_print_exception (
ACE_TEXT ("INFO: Unable to resolve wide context object from ")
- ACE_TEXT ("replica. Sleeping for a second.\n"));
-
- ACE_OS::sleep (1);
+ ACE_TEXT ("replica.\n"));
// Try again to see if it just was a race condition
try {
@@ -1209,9 +1204,7 @@ do_persistence_name_test (
catch (const CosNaming::NamingContext::NotFound& ex)
{
ex._tao_print_exception (
- ACE_TEXT ("ERROR: Unable to resolve object from repository. Sleeping for a second.\n"));
-
- ACE_OS::sleep (1);
+ ACE_TEXT ("ERROR: Unable to resolve object from repository.\n"));
// Try again...
try {
@@ -1297,9 +1290,7 @@ do_persistence_name_test (
{
ex._tao_print_exception (
ACE_TEXT ("INFO: Unable to resolve wide context object from ")
- ACE_TEXT ("repository. Sleeping for a second.\n"));
-
- ACE_OS::sleep (1);
+ ACE_TEXT ("repository.\n"));
// Try again to see if it just was a race condition
try {
@@ -1567,15 +1558,6 @@ do_persistence_objectgroup_test (
std::string member_ior;
in >> member_ior;
- if (!in.good ())
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_TEXT ("ERROR: Unable to read member data ")
- ACE_TEXT ("from file %C\n"),
- member_data_file.c_str ()),
- RC_ERROR);
- }
-
CORBA::Object_var member =
theOrb->string_to_object(member_ior.c_str ());
PortableGroup::Location location_name (1);
@@ -1612,13 +1594,12 @@ do_persistence_objectgroup_test (
ACE_TEXT ("ERROR: No group names found")));
}
}
- catch (const CORBA::Exception& ex)
+ catch (const CORBA::Exception&)
{
ACE_ERROR_RETURN ((LM_ERROR,
ACE_TEXT ("ERROR: Unable to remove member for group %C\n"),
basic_group_name),
RC_ERROR);
- ex._tao_print_exception ("CORBA::Exception caught:");
}
}
@@ -1796,13 +1777,9 @@ do_equivalence_name_test (
try {
CORBA::Object_var obj1_on_replica = root_context_2->resolve (level1);
}
- catch (const CosNaming::NamingContext::NotFound& )
+ catch (const CosNaming::NamingContext::NotFound& ex)
{
- ACE_DEBUG ((LM_INFO,
- "INFO: Unable to resolve object from replica. "
- "Sleeping for a second.\n"));
-
- ACE_OS::sleep (1);
+ ex._tao_print_exception ("INFO: Unable to resolve object from replica.\n");
// Try again...
try {
@@ -1882,9 +1859,7 @@ do_equivalence_name_test (
{
ex._tao_print_exception (
ACE_TEXT ("INFO: Unable to resolve wide context object from ")
- ACE_TEXT ("replica. Sleeping for a second.\n"));
-
- ACE_OS::sleep (1);
+ ACE_TEXT ("replica.\n"));
// Try again to see if it just was a race condition
try {
diff --git a/TAO/orbsvcs/tests/FT_Naming/FaultTolerant/run_backup_restart_test.pl b/TAO/orbsvcs/tests/FT_Naming/FaultTolerant/run_backup_restart_test.pl
index 70ffe60cc3c..ece8e711428 100755
--- a/TAO/orbsvcs/tests/FT_Naming/FaultTolerant/run_backup_restart_test.pl
+++ b/TAO/orbsvcs/tests/FT_Naming/FaultTolerant/run_backup_restart_test.pl
@@ -381,10 +381,9 @@ sub backup_restart_test()
$status = 1;
}
- print_msg("INFO: killing backup server");
$server_status = $NS2->TerminateWaitKill ($server->ProcessStopWaitInterval());
if ($server_status != 0) {
- print STDERR "ERROR: Backup Naming Server shutdown returned $server_status\n";
+ print STDERR "ERROR: server 2 returned $server_status\n";
$status = 1;
}
diff --git a/TAO/orbsvcs/tests/FT_Naming/FaultTolerant/run_persistence_test.pl b/TAO/orbsvcs/tests/FT_Naming/FaultTolerant/run_persistence_test.pl
index f69cccd341d..abb657719a0 100755
--- a/TAO/orbsvcs/tests/FT_Naming/FaultTolerant/run_persistence_test.pl
+++ b/TAO/orbsvcs/tests/FT_Naming/FaultTolerant/run_persistence_test.pl
@@ -257,11 +257,8 @@ my $group_dir = "GroupService";
my $nm_iorfile = "nm.ior";
my $ns_iorfile = "ns.ior";
my $sv_iorfile = "obj.ior";
-my $sv_statusfile = "server.status";
-
my $ns_ref = "--ns file://$ns_iorfile";
my $sv2_iorfile = $server2->LocalFile ($sv_iorfile);
-my $sv2_statusfile = $server2->LocalFile ($sv_statusfile);
@@ -278,7 +275,6 @@ END
$client->DeleteFile ($stderr_file);
$client->DeleteFile ($client_member_file);
$server2->DeleteFile($sv_iorfile);
- $server2->DeleteFile($sv_statusfile);
if ( -d $name_dir ) {
print STDERR "INFO: removing <$name_dir>\n";
@@ -368,9 +364,9 @@ sub persistence_test ()
print STDERR "ERROR: server returned $server_status\n";
exit 1;
}
- if ($server2->WaitForFileTimed ($sv_statusfile,
+ if ($server2->WaitForFileTimed ($sv_iorfile,
$server2->ProcessStartWaitInterval()) == -1) {
- print STDERR "ERROR: cannot find file <$sv_statusfile>\n";
+ print STDERR "ERROR: cannot find file <$sv_iorfile>\n";
$SV2->Kill (); $SV2->TimedWait (1);
exit 1;
}
@@ -510,9 +506,9 @@ sub backup_restore_test ()
print STDERR "ERROR: server returned $server_status\n";
exit 1;
}
- if ($server2->WaitForFileTimed ($sv_statusfile,
+ if ($server2->WaitForFileTimed ($sv_iorfile,
$server2->ProcessStartWaitInterval()) == -1) {
- print STDERR "ERROR: cannot find file <$sv_statusfile>\n";
+ print STDERR "ERROR: cannot find file <$sv_iorfile>\n";
$SV2->Kill (); $SV2->TimedWait (1);
exit 1;
}
diff --git a/TAO/orbsvcs/tests/FT_Naming/FaultTolerant/server.cpp b/TAO/orbsvcs/tests/FT_Naming/FaultTolerant/server.cpp
index 432ccae5558..b107e6464e5 100644
--- a/TAO/orbsvcs/tests/FT_Naming/FaultTolerant/server.cpp
+++ b/TAO/orbsvcs/tests/FT_Naming/FaultTolerant/server.cpp
@@ -3,8 +3,6 @@
#include "LB_server.h"
#include "Basic.h"
-#include <iostream>
-
int
ACE_TMAIN(int argc, ACE_TCHAR *argv[])
{
@@ -111,14 +109,6 @@ ACE_TMAIN(int argc, ACE_TCHAR *argv[])
return 1;
}
- // Use status file instead of IOR to indicate server is ready
- // as basic servant operations are done after server's IOR
- // is written.
- {
- std::ofstream out ("server.status");
- out << "started" << endl;
- }
-
lb_server.orb ()->run ();
ACE_DEBUG ((LM_DEBUG,
diff --git a/TAO/orbsvcs/tests/FT_Naming/Replication/run_test.pl b/TAO/orbsvcs/tests/FT_Naming/Replication/run_test.pl
index c0573a0c4d8..b00a02d342e 100755
--- a/TAO/orbsvcs/tests/FT_Naming/Replication/run_test.pl
+++ b/TAO/orbsvcs/tests/FT_Naming/Replication/run_test.pl
@@ -61,6 +61,18 @@ my $test_primary_iorfile = $test->LocalFile ($primary_iorfile);
$status = 0;
+sub clean_persistence_dir
+{
+ chdir $naming_persistence_dir;
+ opendir(THISDIR, ".");
+ @allfiles = grep(!/^\.\.?$/, readdir(THISDIR));
+ closedir(THISDIR);
+ foreach $tmp (@allfiles){
+ $test->DeleteFile ($tmp);
+ }
+ chdir "..";
+}
+
print "INFO: Running the test in ", getcwd(), "\n";
sub clean_persistence_dir($$)
@@ -162,11 +174,7 @@ print STDERR "Starting Client: $prog $args\n";
$CL = $test->CreateProcess ("$prog", "$args");
-# Some systems may take a very long time to process 100 objects.
-# For example, on a Solaris/SPARC system it was found that it took
-# 8 seconds to bind 100 objects compared to 0.08 seconds on a
-# Linux/Intel computer. So add to the wait time.
-$client = $CL->SpawnWaitKill ($test->ProcessStartWaitInterval() + 105);
+$client = $CL->SpawnWaitKill ($test->ProcessStartWaitInterval());
if ($client != 0) {
print STDERR "ERROR: client returned $client\n";
diff --git a/TAO/orbsvcs/tests/ImplRepo/RestartServer/MessengerClient.cpp b/TAO/orbsvcs/tests/ImplRepo/RestartServer/MessengerClient.cpp
index 1c4daf1fc00..18692e90149 100644
--- a/TAO/orbsvcs/tests/ImplRepo/RestartServer/MessengerClient.cpp
+++ b/TAO/orbsvcs/tests/ImplRepo/RestartServer/MessengerClient.cpp
@@ -6,12 +6,11 @@
#include "ace/OS_NS_unistd.h"
const ACE_TCHAR *ior = ACE_TEXT("file://Messenger.ior");
-int seconds_between_requests = 4;
int
parse_args (int argc, ACE_TCHAR *argv[])
{
- ACE_Get_Opt get_opts (argc, argv, ACE_TEXT("k:d:"));
+ ACE_Get_Opt get_opts (argc, argv, ACE_TEXT("k:"));
int c;
while ((c = get_opts ()) != -1)
@@ -21,16 +20,11 @@ parse_args (int argc, ACE_TCHAR *argv[])
ior = get_opts.opt_arg ();
break;
- case 'd':
- seconds_between_requests = ACE_OS::atoi (get_opts.opt_arg ());
- break;
-
case '?':
default:
ACE_ERROR_RETURN ((LM_ERROR,
"usage: %s "
"-k <ior> "
- "-d <seconds> (Delay between requests) "
"\n",
argv [0]),
-1);
@@ -44,7 +38,7 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[])
{
// Detection of closed on read currently not working certain platforms.
-#if defined (sun) || defined (AIX) || defined (__FreeBSD_version)
+#if defined (sun) || defined (__FreeBSD_version)
return 2;
#endif
@@ -76,7 +70,7 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[])
// Force server to abort to verify it will be brought
// back up when send_message() is called.
messenger->abort(2);
- ACE_OS::sleep(seconds_between_requests);
+ ACE_OS::sleep(4);
ACE_DEBUG ((LM_INFO,
"(%P|%t) - Sending another message after abort of server\n"));
diff --git a/TAO/orbsvcs/tests/ImplRepo/RestartServer/RestartServer.mpc b/TAO/orbsvcs/tests/ImplRepo/RestartServer/RestartServer.mpc
index 71c175c4dd9..61f6b50edbc 100644
--- a/TAO/orbsvcs/tests/ImplRepo/RestartServer/RestartServer.mpc
+++ b/TAO/orbsvcs/tests/ImplRepo/RestartServer/RestartServer.mpc
@@ -7,7 +7,7 @@ project(*idl): taoidldefaults {
custom_only = 1
}
-project(*Server): portableserver, orbsvcsexe, avoids_minimum_corba, iortable, imr_client, avoids_corba_e_micro, threads {
+project(*Server): taoserver, iortable, avoids_minimum_corba, avoids_corba_e_micro, threads {
exename = MessengerServer
after += *idl
Source_Files {
diff --git a/TAO/orbsvcs/tests/ImplRepo/RestartServer/run_test.pl b/TAO/orbsvcs/tests/ImplRepo/RestartServer/run_test.pl
index 9d502a77a40..8c8d2ae5cdc 100755
--- a/TAO/orbsvcs/tests/ImplRepo/RestartServer/run_test.pl
+++ b/TAO/orbsvcs/tests/ImplRepo/RestartServer/run_test.pl
@@ -18,14 +18,6 @@ foreach $i (@ARGV) {
my $extra_timeout = 45;
-my $seconds_between_requests = 4;
-
-# Valgrind may slow down processes enough that an extra delay
-# is needed between client requests.
-if (exists $ENV{'ACE_RUN_VALGRIND_CMD'}) {
- $seconds_between_requests = 10;
-}
-
my $c1 = PerlACE::TestTarget::create_target (1) || die "Create target 1 failed\n";
my $imr = PerlACE::TestTarget::create_target (3) || die "Create target 3 failed\n";
my $act = PerlACE::TestTarget::create_target (4) || die "Create target 4 failed\n";
@@ -95,8 +87,7 @@ $SI = $si->CreateProcess ($tao_imr, "-ORBInitRef ImplRepoService=file://$si_imri
$C1 = $c1->CreateProcess ("MessengerClient", "-k file://$c1_srviorfile ".
"-ORBForwardOnReplyClosedLimit 20 -ORBForwardDelay 500 ".
- "-ORBSvcConf $c1_conffile -ORBdebuglevel $debug_level ".
- "-d $seconds_between_requests");
+ "-ORBSvcConf $c1_conffile -ORBdebuglevel $debug_level");
$SDN = $sdn->CreateProcess ("$tao_imr", "-ORBInitRef ImplRepoService=file://$sdn_imriorfile ".
"shutdown MessengerService");
diff --git a/TAO/orbsvcs/tests/ImplRepo/run_test.pl b/TAO/orbsvcs/tests/ImplRepo/run_test.pl
index f57a9056a46..27f97aa3749 100755
--- a/TAO/orbsvcs/tests/ImplRepo/run_test.pl
+++ b/TAO/orbsvcs/tests/ImplRepo/run_test.pl
@@ -416,32 +416,6 @@ sub shutdown_servers_using_tao_imr
}
###############################################################################
-# Use the TAO IMR through the provided IOR
-
-sub shutdown_servers_using_ior
-{
- my $provided_ior = shift;
- my $target = shift;
-
- for ($index = 0; $index < $num_srvr; ++$index) {
- print "\n\nshutting down server $index using tao_imr\n";
- $TI->Arguments ("-ORBInitRef ImplRepoService" .
- "=file://$provided_ior $refstyle " .
- "shutdown $a_srv_name[$index]");
- my $TI_status = $TI->SpawnWaitKill (
- $target->ProcessStartWaitInterval());
- if ($TI_status != 0) {
- print STDERR "ERROR: tao_imr ($index) returned $TI_status\n";
- kill_act();
- kill_imr();
- return 1;
- }
- print "\n\nshut down server $index using tao_imr\n";
- }
- return 0;
-}
-
-###############################################################################
sub wait_for_imr
{
@@ -2050,8 +2024,6 @@ sub failover_test
$replica_imr->DeleteFile ($replica_imriorfile);
$replica_imr->DeleteFile ($backupiorfile);
- cleanup_replication ();
-
print "\n\nstarting primary tao_imr_locator\n";
$repo{IMR}->Arguments ("-d $test_debug_level -o $repo{imr_imriorfile} " .
"$repo{imr_endpoint_flag} $imr_refstyle $repo{imr_backing_store_flag} ");
@@ -2114,7 +2086,6 @@ sub failover_test
}
print "started tao_imr_activator\n";
- print "Adding servers\n";
if (add_servers (\@repo_for_srvr, \@imr_airplaneiorfile) != 0) {
return 1;
}
@@ -2315,271 +2286,6 @@ sub failover_test
}
###############################################################################
-# Start the primary then the backup. Kill both the primary and the backup and
-# restart the backup and verify it works.
-
-sub backup_restart_test
-{
- if (!$replica) {
- # The failover test needs the -replica flag
- return 0;
- }
-
- my $status = 0;
-
- my $imr_port = 10001 + $imr->RandomPort ();
- my $replica_imr_port = $imr_port + 10;
-
- my %repo;
- setup_repo(\%repo, $imr, $IMR, $imriorfile, $act, $ACT, $actiorfile, $ti,
- $TI, $imr_port, "--primary", $backupiorfile);
-
- my %backup_repo;
- setup_repo(\%backup_repo, $replica_imr, $replica_IMR, $imriorfile,
- $act, $ACT, $actiorfile, $ti, $TI,
- $replica_imr_port, "--backup", $primaryiorfile);
-
- my @repo_for_srvr;
- my @a_srv_imriorfile;
- my @imr_airplaneiorfile;
- my @a_srv_airplaneiorfile;
- for ($index = 0; $index < $num_srvr; ++$index) {
- if ($index == ($num_srvr - 1)) {
- push(@repo_for_srvr, \%backup_repo);
- } else {
- push(@repo_for_srvr, \%repo);
- }
-
- push(@a_srv_imriorfile, $a_srv[$index]->LocalFile ($repo_for_srvr[$index]->{imriorfile}));
- push(@imr_airplaneiorfile, $repo_for_srvr[$index]->{imr}->LocalFile ($airplaneiorfile[$index]));
- push(@a_srv_airplaneiorfile, $a_srv[$index]->LocalFile ($airplaneiorfile[$index]));
- $a_srv[$index]->DeleteFile ($repo_for_srvr[$index]->{imriorfile});
- $a_srv[$index]->DeleteFile ($airplaneiorfile[$index]);
- $a_cli[$index]->DeleteFile ($airplaneiorfile[$index]);
- $repo_for_srvr[$index]->{imr}->DeleteFile ($airplaneiorfile[$index]);
- }
- $imr->DeleteFile ($imriorfile);
- $imr->DeleteFile ($primaryiorfile);
- $act->DeleteFile ($imriorfile);
- $ti->DeleteFile ($imriorfile);
- $act->DeleteFile ($actiorfile);
- $replica_imr->DeleteFile ($replica_imriorfile);
- $replica_imr->DeleteFile ($backupiorfile);
-
- cleanup_replication ();
-
- print "\n\nstarting primary tao_imr_locator\n";
- print STDERR "tao_imr_locator -d $test_debug_level -o $repo{imr_imriorfile} $repo{imr_endpoint_flag} $imr_refstyle $repo{imr_backing_store_flag} \n";
-
- $repo{IMR}->Arguments ("-d $test_debug_level -o $repo{imr_imriorfile} " .
- "$repo{imr_endpoint_flag} $imr_refstyle $repo{imr_backing_store_flag} ");
- my $IMR_status = $repo{IMR}->Spawn ();
- if ($IMR_status != 0) {
- print STDERR "ERROR: ImR Service returned $IMR_status\n";
- return 1;
- }
-
- if (wait_for_imr(\%backup_repo, "replicaiorfile")) {
- return 1;
- }
-
- print "\n\nstarting backup tao_imr_locator\n";
- print STDERR "-d $test_debug_level -o $backup_repo{imriorfile} $imr_refstyle $backup_repo{imr_endpoint_flag} $backup_repo{imr_backing_store_flag}\n";
-
- $backup_repo{IMR}->Arguments ("-d $test_debug_level -o " .
- "$backup_repo{imriorfile} $imr_refstyle " .
- "$backup_repo{imr_endpoint_flag} " .
- "$backup_repo{imr_backing_store_flag}");
- my $replica_IMR_status = $backup_repo{IMR}->Spawn ();
- if ($replica_IMR_status != 0) {
- print STDERR "ERROR: ImR Service replica returned $replica_IMR_status\n";
- return 1;
- }
- if (wait_for_imr(\%repo, "replicaiorfile")) {
- return 1;
- }
- print "started backup tao_imr_locator\n";
-
- if (wait_for_imr(\%repo)) {
- return 1;
- }
- print "started primary tao_imr_locator\n";
-
- for ($index = 0; $index < $num_srvr; ++$index) {
- if ($a_srv[$index]->PutFile ($repo_for_srvr[$index]->{imriorfile}) == -1) {
- print STDERR "ERROR: cannot set file <$a_srv_imriorfile[$index]>\n";
- kill_imr();
- return 1;
- }
- }
-
- print "\n\nstarting tao_imr_activator\n";
- $repo{ACT}->Arguments ("-d $test_debug_level -o $repo{act_actiorfile} " .
- "-ORBInitRef ImplRepoService=file://$repo{act_imriorfile} $refstyle " .
- $repo{act_explicit_flag});
- my $ACT_status = $repo{ACT}->Spawn ();
- if ($ACT_status != 0) {
- print STDERR "ERROR: ImR Activator returned $ACT_status\n";
- return 1;
- }
-
- if ($repo{act}->WaitForFileTimed (
- $repo{actiorfile},
- $repo{act}->ProcessStartWaitInterval()) == -1) {
- print STDERR "ERROR: cannot find file <" .
- $repo{act_actiorfile} . ">\n";
- kill_act();
- kill_imr();
- return 1;
- }
- print "started tao_imr_activator\n";
-
- print "Adding servers\n";
- if (add_servers (\@repo_for_srvr, \@imr_airplaneiorfile) != 0) {
- return 1;
- }
-
- if (add_servers_again (\@repo_for_srvr, \@imr_airplaneiorfile) != 0) {
- return 1;
- }
-
- for ($index = 0; $index < $num_srvr; ++$index) {
- print "\n\nstarting server $index using tao_imr\n";
- $repo_for_srvr[$index]->{TI}->Arguments ("-ORBInitRef ImplRepoService" .
- "=file://$repo_for_srvr[$index]->{ti_imriorfile} $refstyle " .
- "start $a_srv_name[$index]");
- my $TI_status = $repo_for_srvr[$index]->{TI}->SpawnWaitKill (
- $repo_for_srvr[$index]->{ti}->ProcessStartWaitInterval());
- if ($TI_status != 0) {
- print STDERR "ERROR: tao_imr ($index) returned $TI_status\n";
- kill_act();
- kill_imr();
- return 1;
- }
- print "started server $index using tao_imr\n";
- }
-
- for ($index = 0; $index < $num_srvr; ++$index) {
- if ($a_srv[$index]->WaitForFileTimed (
- $airplaneiorfile[$index],
- $a_srv[$index]->ProcessStartWaitInterval()) == -1) {
- print STDERR
- "ERROR: cannot find file <$a_srv_airplaneiorfile[$index]>\n";
- kill_then_timed_wait(\@A_SRV, 1);
- $ACT->Kill (); $ACT->TimedWait (1);
- $IMR->Kill (); $IMR->TimedWait (1);
- return 1;
- }
- if ($a_srv[$index]->GetFile ($airplaneiorfile[$index]) == -1) {
- print STDERR
- "ERROR: cannot retrieve file <$a_srv_airplaneiorfile[$index]>\n";
- kill_then_timed_wait(\@A_SRV, 1);
- $ACT->Kill (); $ACT->TimedWait (1);
- $IMR->Kill (); $IMR->TimedWait (1);
- return 1;
- }
- if ($a_cli[$index]->PutFile ($airplaneiorfile[$index]) == -1) {
- print STDERR "ERROR: cannot set file <$a_cli_airplaneiorfile[$index]>\n";
- kill_then_timed_wait(\@A_SRV, 1);
- $ACT->Kill (); $ACT->TimedWait (1);
- $IMR->Kill (); $IMR->TimedWait (1);
- return 1;
- }
- }
-
- if (start_clients() != 0) {
- return 1;
- }
-
- if (stop_clients() != 0) {
- return 1;
- }
-
- if (shutdown_servers_using_ior($imriorfile, $ti) != 0) {
- return 1;
- }
-
- if (start_clients() != 0) {
- return 1;
- }
-
- if (stop_clients() != 0) {
- return 1;
- }
-
- print "\n\nkilling the primary tao_imr_locator\n";
- $IMR->Kill(); $IMR->TimedWait();
- print "killed the primary tao_imr_locator\n";
-
-
- # Kill the backup and then restart it
- print "\n\nkilling the backup tao_imr_locator\n";
- $replica_IMR->Kill(); $replica_IMR->TimedWait();
- print "killed the backup tao_imr_locator\n";
-
- print "\n\nstarting backup tao_imr_locator\n";
- print "tao_imr_locator -d $test_debug_level -o " .
- "$backup_repo{imriorfile} $imr_refstyle " .
- "$backup_repo{imr_endpoint_flag} " .
- "$backup_repo{imr_backing_store_flag} \n";
- $backup_repo{IMR}->Arguments ("-d $test_debug_level -o " .
- "$backup_repo{imriorfile} $imr_refstyle " .
- "$backup_repo{imr_endpoint_flag} " .
- "$backup_repo{imr_backing_store_flag}");
- $replica_IMR_status = $backup_repo{IMR}->Spawn ();
- if ($replica_IMR_status != 0) {
- print STDERR "ERROR: ImR Service replica returned $replica_IMR_status\n";
- return 1;
- }
- if (wait_for_imr(\%repo, "replicaiorfile")) {
- return 1;
- }
- print "started backup tao_imr_locator again\n";
-
- # Wait for the backup to restart.
- sleep (10);
-
- if (start_clients() != 0) {
- return 1;
- }
-
- if (stop_clients() != 0) {
- return 1;
- }
-
- print STDERR "Shuting down servers after backup restarted\n";
- if (shutdown_servers_using_ior($imriorfile, $ti) != 0) {
- return 1;
- }
-
- print "\n\nkilling the backup tao_imr_locator\n";
- $replica_IMR->Kill(); $replica_IMR->TimedWait();
- print "killed the backup tao_imr_locator\n";
-
- # kill the activator
- $ACT->Kill(); $ACT->TimedWait();
-
- cleanup_replication ();
-
- # clean up IOR files
- for ($index = 0; $index < $num_srvr; ++$index) {
- $a_srv[$index]->DeleteFile ($repo_for_srvr[$index]->{imriorfile});
- $a_srv[$index]->DeleteFile ($airplaneiorfile[$index]);
- $a_cli[$index]->DeleteFile ($airplaneiorfile[$index]);
- $repo_for_srvr[$index]->{imr}->DeleteFile ($airplaneiorfile[$index]);
- }
- $imr->DeleteFile ($imriorfile);
- $imr->DeleteFile ($primaryiorfile);
- $act->DeleteFile ($imriorfile);
- $ti->DeleteFile ($imriorfile);
- $act->DeleteFile ($actiorfile);
- $replica_imr->DeleteFile ($replica_imriorfile);
- $replica_imr->DeleteFile ($backupiorfile);
-
- return $status;
-}
-
-###############################################################################
sub persistent_ft_test
{
@@ -3154,9 +2860,7 @@ my $test_num = 0;
my @tests = ("airplane", "airplane_ir", "nestea", "nestea_ir",
"both_ir", "persistent_ir", "persistent_ir_hash",
- "persistent_ir_shared", "persistent_ft", "failover",
- "backup_restart");
-
+ "persistent_ir_shared", "persistent_ft", "failover");
my @nt_tests = ("nt_service_ir", "persistent_ir_registry");
my $i;
@@ -3245,9 +2949,6 @@ for ($i = 0; $i <= $#ARGV; $i++) {
elsif ($ARGV[$i] eq "failover") {
$ret = failover_test ();
}
- elsif ($ARGV[$i] eq "backup_restart") {
- $ret = backup_restart_test ();
- }
elsif ($ARGV[$i] eq "perclient") {
$ret = perclient();
}
diff --git a/TAO/orbsvcs/tests/ImplRepo/scale_clients/run_test.pl b/TAO/orbsvcs/tests/ImplRepo/scale_clients/run_test.pl
index e90d02d7067..1e5f12834d5 100755
--- a/TAO/orbsvcs/tests/ImplRepo/scale_clients/run_test.pl
+++ b/TAO/orbsvcs/tests/ImplRepo/scale_clients/run_test.pl
@@ -21,6 +21,7 @@ my $server_init_delay = 1;
my $server_reply_delay = 0;
my $rt_timeout_msecs = 0;
my $max_rt_tries = 1;
+my $asynch_loc = "";
if ($#ARGV >= 0) {
for (my $i = 0; $i <= $#ARGV; $i++) {
@@ -59,6 +60,9 @@ if ($#ARGV >= 0) {
elsif ($ARGV[$i] eq "-no_imr") {
$no_imr = 1;
}
+ elsif ($ARGV[$i] eq "-asynch") {
+ $asynch_loc = "--use_dsi";
+ }
else {
usage();
exit 1;
@@ -125,7 +129,7 @@ sub scale_clients_test
my $result = 0;
my $start_time = time();
- $IMR->Arguments ("-d 1 -o $imr_imriorfile -orbendpoint iiop://:$port ");
+ $IMR->Arguments ("-d 1 -o $imr_imriorfile -orbendpoint iiop://:$port $asynch_loc ");
# "-ORBDebugLevel 10 -ORBVerboseLogging");
if ($no_imr) {
diff --git a/TAO/orbsvcs/tests/ImplRepo/scale_clients/scale_clients.mpc b/TAO/orbsvcs/tests/ImplRepo/scale_clients/scale_clients.mpc
index e8275b43b9a..39eff2fa489 100644
--- a/TAO/orbsvcs/tests/ImplRepo/scale_clients/scale_clients.mpc
+++ b/TAO/orbsvcs/tests/ImplRepo/scale_clients/scale_clients.mpc
@@ -8,7 +8,7 @@ project(*idl): taoidldefaults {
custom_only = 1
}
-project(*server): portableserver, orbsvcsexe, avoids_minimum_corba, iortable, imr_client, avoids_corba_e_micro {
+project(*server): taoserver, iortable, avoids_minimum_corba, avoids_corba_e_micro {
after += *idl
exename = server
IDL_Files {
diff --git a/TAO/orbsvcs/tests/ImplRepo/servers_interact_on_startup/client.cpp b/TAO/orbsvcs/tests/ImplRepo/servers_interact_on_startup/client.cpp
index 75a025f8551..1bdafe6b282 100644
--- a/TAO/orbsvcs/tests/ImplRepo/servers_interact_on_startup/client.cpp
+++ b/TAO/orbsvcs/tests/ImplRepo/servers_interact_on_startup/client.cpp
@@ -6,7 +6,7 @@
#include "ace/OS_NS_unistd.h"
int client_num = 0;
-ACE_TCHAR *server_ior = 0;
+ACE_CString server_ior;
int
parse_args (int argc, ACE_TCHAR *argv[])
@@ -50,9 +50,9 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[])
ACE_DEBUG ((LM_DEBUG,
"(%P|%t|%T) Client %d sending request to %s\n",
- client_num, server_ior));
+ client_num, server_ior.c_str ()));
CORBA::Object_var obj =
- orb->string_to_object (server_ior);
+ orb->string_to_object (server_ior.c_str ());
ACE_ASSERT (!CORBA::is_nil (obj.in ()));
Test_var test = Test::_narrow (obj.in());
ACE_ASSERT (!CORBA::is_nil (test.in()));
diff --git a/TAO/orbsvcs/tests/ImplRepo/servers_interact_on_startup/run_test.pl b/TAO/orbsvcs/tests/ImplRepo/servers_interact_on_startup/run_test.pl
index 0975d46b500..00ed208ce2c 100755
--- a/TAO/orbsvcs/tests/ImplRepo/servers_interact_on_startup/run_test.pl
+++ b/TAO/orbsvcs/tests/ImplRepo/servers_interact_on_startup/run_test.pl
@@ -15,7 +15,7 @@ my $debug_level = '0';
my $imr_debug_level = $debug_level;
my $servers_count = 3;
my $client_count = 2;
-my $server_reply_delay = 20;
+my $server_reply_delay = 5;
my $usage = 0;
# Ping interval in milliseconds
@@ -55,7 +55,7 @@ for(my $i = 0; $i <= $client_count; $i++) {
push (@cli, PerlACE::TestTarget::create_target (++$tgt_num)) || die "Create target $tgt_num failed\n";
}
-my $refstyle = "-ORBobjrefstyle URL";
+my $refstyle = ""; # "-ORBobjrefstyle URL";
my $obj_count = 1;
my $port = $imr->RandomPort();
@@ -64,6 +64,7 @@ my $forward_on_exception_arg = "-ORBForwardOnceOnTransient 1";
my $debug_arg = "-ORBDebugLevel $debug_level";
my $imr_debug_arg = "-ORBDebugLevel $imr_debug_level";
if ($imr_debug_level == 10) {
+ $debug_arg = "-ORBDebugLevel $debug_level -ORBVerboseLogging 1 -ORBLogFile";
$imr_debug_arg = $imr_debug_arg . " -ORBVerboseLogging 1 -ORBLogFile imr_loc.log ";
}
@@ -90,6 +91,8 @@ my @srvstatusfile;
my @srv_statusfile;
my @obj;
my @srv_server_cmd;
+my $debug_log_file = "";
+
# Have list indices match server IDs (S1, S2, S3) with first element of list not being used.
for(my $i = 0; $i <= $servers_count; $i++) {
push (@srv, PerlACE::TestTarget::create_target (++$tgt_num)) || die "Create target $tgt_num failed\n";
@@ -106,7 +109,10 @@ for(my $i = 0; $i <= $servers_count; $i++) {
}
for(my $i = 0; $i <= $client_count; $i++) {
- push (@CLI, $cli[$i]->CreateProcess ("client", "$debug_arg -k file://$srviorfile[1] -n $i $forward_on_exception_arg"));
+ if ($debug_level == 10) {
+ $debug_log_file = "test_client_$i" . ".log";
+ }
+ push (@CLI, $cli[$i]->CreateProcess ("client", "-k file://$srviorfile[1] -n $i $forward_on_exception_arg $debug_arg $debug_log_file"));
}
sub cleanup_output {
@@ -140,9 +146,12 @@ sub run_imr_util {
sub register_server_with_activator {
my $srv_id = shift;
my $srv_to_invoke_id = shift;
-
+ my $srv_debug_log = "";
+ if ($debug_level == 10) {
+ $srv_debug_log = "test_server_$srv_id" . ".log";
+ }
$srv_args =
- "$debug_arg -orbuseimr 1 $refstyle ".
+ "$debug_arg $srv_debug_log -orbuseimr 1 $refstyle ".
"$forward_on_exception_arg ".
"-ORBInitRef ImplRepoService=file://$imr_imriorfile -n $srv_id";
@@ -220,8 +229,11 @@ sub run_test
##### Start Activator #####
print_msg ("Start Activator");
-
- $ACT->Arguments ("$debug_arg -d 1 -o $act_actiorfile -ORBInitRef ImplRepoService=file://$act_imriorfile");
+ my $act_debug_log = "";
+ if ($debug_level == 10) {
+ $act_debug_log = "imr_act.log";
+ }
+ $ACT->Arguments ("$debug_arg $act_debug_log -d 1 -o $act_actiorfile -ORBInitRef ImplRepoService=file://$act_imriorfile");
print ">>> " . $ACT->CommandLine () . "\n";
$ACT_status = $ACT->Spawn ();
@@ -239,8 +251,11 @@ sub run_test
##### Start S3 #####
print_msg ("Start S3");
-
- $SRV[3]->Arguments ("$debug_arg -orbuseimr 1 $refstyle -ORBInitRef ImplRepoService=file://$imr_imriorfile ".
+ my $s3_debug_log = "";
+ if ($debug_level == 10) {
+ $s3_debug_log = "test_server_3.log";
+ }
+ $SRV[3]->Arguments ("$debug_arg $s3_debug_log -orbuseimr 1 $refstyle -ORBInitRef ImplRepoService=file://$imr_imriorfile ".
"-d $server_reply_delay -n 3");
print ">>> " . $SRV[3]->CommandLine () . "\n";
$SRV[3]-> Spawn();
@@ -292,7 +307,7 @@ sub run_test
##### Wait for clients to terminate #####
print_msg ("Wait for clients to terminate");
for (my $i = 1; $i <= $client_count; $i++) {
- if ($CLI[$i]->WaitKill ($cli[$i]->ProcessStopWaitInterval () + $server_reply_delay + 60) == -1) {
+ if ($CLI[$i]->WaitKill ($cli[$i]->ProcessStopWaitInterval () + $server_reply_delay + 20) == -1) {
print STDERR "ERROR: client $i not terminated correctly\n";
$status = 1;
}
diff --git a/TAO/orbsvcs/tests/ImplRepo/servers_interact_on_startup/server.cpp b/TAO/orbsvcs/tests/ImplRepo/servers_interact_on_startup/server.cpp
index 08210a261cf..fe6e8980ca7 100644
--- a/TAO/orbsvcs/tests/ImplRepo/servers_interact_on_startup/server.cpp
+++ b/TAO/orbsvcs/tests/ImplRepo/servers_interact_on_startup/server.cpp
@@ -50,7 +50,7 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[])
try {
CORBA::ORB_var orb = CORBA::ORB_init(argc, argv);
- ACE_TCHAR *other_server_ior = 0;
+ ACE_CString other_server_ior;
int server_num = 0;
int reply_delay_secs = 0;
@@ -124,13 +124,13 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[])
table->bind(poa_name.c_str (), test_ior.in());
// Make invocation to other server before POA is activated.
- if (other_server_ior != 0)
+ if (other_server_ior.length () > 0)
{
ACE_DEBUG ((LM_DEBUG,
"(%P|%t|%T) Server %d sending request to %s\n",
- server_num, other_server_ior));
+ server_num, other_server_ior.c_str ()));
CORBA::Object_var other_server =
- orb->string_to_object (other_server_ior);
+ orb->string_to_object (other_server_ior.c_str ());
ACE_ASSERT (!CORBA::is_nil (other_server.in ()));
Test_var test = Test::_narrow (other_server.in());
ACE_ASSERT (!CORBA::is_nil (test.in()));
diff --git a/TAO/orbsvcs/tests/ImplRepo/servers_list/run_test.pl b/TAO/orbsvcs/tests/ImplRepo/servers_list/run_test.pl
index ce08bde5187..1cc0254a984 100755
--- a/TAO/orbsvcs/tests/ImplRepo/servers_list/run_test.pl
+++ b/TAO/orbsvcs/tests/ImplRepo/servers_list/run_test.pl
@@ -305,8 +305,7 @@ sub servers_list_test
my $result = 0;
my $start_time = time();
-
- $IMR->Arguments ("-d 0 -v 1000 -o $imr_imriorfile -orbendpoint iiop://:$port");
+ $IMR->Arguments ("-d $debug_level -v 1000 -o $imr_imriorfile -orbendpoint iiop://:$port");
##### Start ImplRepo #####
$IMR_status = $IMR->Spawn ();
diff --git a/TAO/orbsvcs/tests/ImplRepo/servers_list/servers_list.mpc b/TAO/orbsvcs/tests/ImplRepo/servers_list/servers_list.mpc
index 5ac2135b6b5..eddb8a3e628 100644
--- a/TAO/orbsvcs/tests/ImplRepo/servers_list/servers_list.mpc
+++ b/TAO/orbsvcs/tests/ImplRepo/servers_list/servers_list.mpc
@@ -8,7 +8,7 @@ project(*idl): taoidldefaults {
custom_only = 1
}
-project(*server): portableserver, orbsvcsexe, avoids_minimum_corba, iortable, imr_client, avoids_corba_e_micro, threads {
+project(*server): taoserver, iortable, avoids_minimum_corba, avoids_corba_e_micro, threads {
after += *idl
exename = server
IDL_Files {
diff --git a/TAO/performance-tests/POA/Object_Creation_And_Registration/registration.cpp b/TAO/performance-tests/POA/Object_Creation_And_Registration/registration.cpp
index eb4703c1899..3e769711f33 100644
--- a/TAO/performance-tests/POA/Object_Creation_And_Registration/registration.cpp
+++ b/TAO/performance-tests/POA/Object_Creation_And_Registration/registration.cpp
@@ -20,7 +20,6 @@
#include "tao/ORB_Core.h"
#include "ace/Profile_Timer.h"
#include "ace/Get_Opt.h"
-#include "ace/Truncate.h"
//
// The following macros help take a very precise look into the
@@ -173,7 +172,7 @@ reverse_map_effectiveness (test_i *servants)
// Calculate the effectiveness of the hash.
for (i = 0; i < iterations; i++)
{
- u_long hash_index = ACE_Utils::truncate_cast<u_long> ((intptr_t)&servants[i]) % active_object_map_size;
+ u_long hash_index = u_long (&servants[i]) % active_object_map_size;
hash_counter[hash_index]++;
}
diff --git a/TAO/tao/Adapter.h b/TAO/tao/Adapter.h
index 6a0fd845adc..c0185c7e32a 100644
--- a/TAO/tao/Adapter.h
+++ b/TAO/tao/Adapter.h
@@ -86,7 +86,12 @@ public:
/// Forward the request to another object reference, this decouples
/// the ORB from the PortableServer::ForwardRequest exception
- DS_FORWARD
+ DS_FORWARD,
+
+ /// The request will be forwarded, but using an async call to locate
+ /// the target. Some other entity will actually complete the forward
+ /// or fail.
+ DS_DEFERRED_FORWARD
};
/// Return the name, i.e. the object id used to resolve it in the
diff --git a/TAO/tao/DynamicInterface/AMH_DSI_Response_Handler.cpp b/TAO/tao/DynamicInterface/AMH_DSI_Response_Handler.cpp
index 82d61a2c887..85634b6c6e1 100644
--- a/TAO/tao/DynamicInterface/AMH_DSI_Response_Handler.cpp
+++ b/TAO/tao/DynamicInterface/AMH_DSI_Response_Handler.cpp
@@ -289,6 +289,7 @@ TAO_AMH_DSI_Exception_Holder::_tao_unmarshal (
void
TAO_AMH_DSI_Exception_Holder::raise_invoke ()
{
+ auto_ptr< ::CORBA::Exception> safety (this->exception_);
this->exception_->_raise ();
}
diff --git a/TAO/tao/IORTable/IORTable.h b/TAO/tao/IORTable/IORTable.h
index 7bae99afdb1..f29071c3d3f 100644
--- a/TAO/tao/IORTable/IORTable.h
+++ b/TAO/tao/IORTable/IORTable.h
@@ -40,6 +40,7 @@ TAO_Requires_IORTable_Initializer = TAO_IORTable_Initializer::init ();
TAO_END_VERSIONED_NAMESPACE_DECL
#define TAO_IORTABLE_SAFE_INCLUDE
+#include "tao/IORTable/Locate_ResponseHandler.h"
#include "tao/IORTable/IORTableC.h"
#undef TAO_IORTABLE_SAFE_INCLUDE
diff --git a/TAO/tao/IORTable/IORTable.mpc b/TAO/tao/IORTable/IORTable.mpc
index 7ab07c8d446..b2dd0ab5d6f 100644
--- a/TAO/tao/IORTable/IORTable.mpc
+++ b/TAO/tao/IORTable/IORTable.mpc
@@ -17,7 +17,7 @@ project(*core_idl) : tao_versioning_idl_defaults, install {
}
}
-project(IORTable) : taolib, tao_output, install, taoidldefaults {
+project(IORTable) : taolib, portableserver, dynamicinterface, tao_output, install, taoidldefaults {
after += *core_idl
sharedname = TAO_IORTable
dynamicflags += TAO_IORTable_BUILD_DLL
diff --git a/TAO/tao/IORTable/IORTable.pidl b/TAO/tao/IORTable/IORTable.pidl
index 3725767eaf7..0088477dcd6 100644
--- a/TAO/tao/IORTable/IORTable.pidl
+++ b/TAO/tao/IORTable/IORTable.pidl
@@ -64,6 +64,20 @@ module IORTable
string locate (in string object_key)
raises (NotFound);
};
+
+ /// Callback interface to locate object keys dynamically
+ /**
+ * The application can provide a callback interface to locate object
+ * keys dynamically.
+ */
+ native Locate_ResponseHandler;
+ local interface AsyncLocator : Locator
+ {
+ /// Uses AMH semantics to send IOR for @a object_key via the supplied
+ /// response handler
+ void async_locate (in Locate_ResponseHandler rh, in string object_key);
+
+ };
};
#endif /* TAO_IORTABLE_IORTABLE_PIDL */
diff --git a/TAO/tao/IORTable/IOR_Table_Impl.cpp b/TAO/tao/IORTable/IOR_Table_Impl.cpp
index 64e1ead30b5..664e60231eb 100644
--- a/TAO/tao/IORTable/IOR_Table_Impl.cpp
+++ b/TAO/tao/IORTable/IOR_Table_Impl.cpp
@@ -8,6 +8,8 @@
*/
#include "tao/IORTable/IOR_Table_Impl.h"
+#include "tao/PortableServer/ForwardRequestC.h"
+#include "tao/DynamicInterface/AMH_DSI_Response_Handler.h"
#include "ace/Guard_T.h"
TAO_BEGIN_VERSIONED_NAMESPACE_DECL
@@ -43,6 +45,7 @@ TAO::Objref_Traits <TAO_IOR_Table_Impl>::marshal (const TAO_IOR_Table_Impl_ptr,
}
TAO_IOR_Table_Impl::TAO_IOR_Table_Impl (void)
+ : use_async_(false)
{
}
@@ -68,6 +71,32 @@ TAO_IOR_Table_Impl::find (const char *object_key)
}
void
+TAO_IOR_Table_Impl::async_find (::IORTable::Locate_ResponseHandler handler,
+ const char *object_key)
+{
+ // We don't want the lock held during locate, so make it go out
+ // of scope before then.
+ {
+ ACE_CString key (object_key);
+ ACE_CString ior;
+ TAO_AMH_Locate_ResponseHandler_var rh = handler;
+ ACE_GUARD (TAO_SYNCH_MUTEX, ace_mon, this->lock_);
+ if (this->map_.find (key, ior) == 0)
+ {
+ rh->forward_ior (ior.c_str(), false);
+ return;
+ }
+ if (CORBA::is_nil (this->async_locator_.in ()))
+ {
+ rh->raise_excep (IORTable::NotFound ());
+ return;
+ }
+ }
+
+ this->async_locator_->async_locate (handler, object_key);
+}
+
+void
TAO_IOR_Table_Impl::bind (const char * object_key, const char * IOR)
{
ACE_GUARD (TAO_SYNCH_MUTEX, ace_mon, this->lock_);
@@ -95,6 +124,8 @@ TAO_IOR_Table_Impl::set_locator (IORTable::Locator_ptr locator)
{
ACE_GUARD (TAO_SYNCH_MUTEX, ace_mon, this->lock_);
this->locator_ = IORTable::Locator::_duplicate (locator);
+ this->async_locator_ = IORTable::AsyncLocator::_narrow (locator);
+ this->use_async_ = !CORBA::is_nil (this->async_locator_.in());
}
TAO_END_VERSIONED_NAMESPACE_DECL
diff --git a/TAO/tao/IORTable/IOR_Table_Impl.h b/TAO/tao/IORTable/IOR_Table_Impl.h
index 275a4dd3eea..19c24eb0dda 100644
--- a/TAO/tao/IORTable/IOR_Table_Impl.h
+++ b/TAO/tao/IORTable/IOR_Table_Impl.h
@@ -54,9 +54,17 @@ public:
/// Constructor
TAO_IOR_Table_Impl (void);
+ bool async_available (void) const
+ {
+ return this->use_async_;
+ }
+
/// Find the object, using the locator if it is not on the table.
char *find (const char *object_key);
+ void async_find (::IORTable::Locate_ResponseHandler rh,
+ const char *object_key);
+
/**
* @name The IORTable::Table methods
*
@@ -83,6 +91,8 @@ private:
/// The locator
IORTable::Locator_var locator_;
+ IORTable::AsyncLocator_var async_locator_;
+ bool use_async_;
/// Synchronization
TAO_SYNCH_MUTEX lock_;
diff --git a/TAO/tao/IORTable/Locate_ResponseHandler.cpp b/TAO/tao/IORTable/Locate_ResponseHandler.cpp
new file mode 100644
index 00000000000..cf36cae1ef2
--- /dev/null
+++ b/TAO/tao/IORTable/Locate_ResponseHandler.cpp
@@ -0,0 +1,90 @@
+// -*- C++ -*-
+//=============================================================================
+/**
+ * @file Locate_ResponseHandler.cpp
+ *
+ * $Id$
+ *
+ * @author Phil Mesnier <mesnier_p@ociweb>
+ */
+//=============================================================================
+
+#include "Locate_ResponseHandler.h"
+
+#include "tao/Exception.h"
+#include "tao/ORB_Core.h"
+#include "tao/GIOP_Utils.h"
+#include "tao/PortableServer/Root_POA.h"
+#include "tao/Object.h"
+#include "tao/Pluggable_Messaging_Utils.h"
+#include "tao/TAO_Server_Request.h"
+
+#if !defined (__ACE_INLINE__)
+# include "Locate_ResponseHandler.inl"
+#endif /* ! __ACE_INLINE__ */
+
+TAO_BEGIN_VERSIONED_NAMESPACE_DECL
+
+// The pseudo-object _nil method.
+TAO_AMH_Locate_ResponseHandler_ptr
+TAO_AMH_Locate_ResponseHandler::_nil (void)
+{
+ return (TAO_AMH_Locate_ResponseHandler_ptr) 0;
+}
+
+
+TAO_AMH_Locate_ResponseHandler::TAO_AMH_Locate_ResponseHandler (
+ TAO_ServerRequest & sr)
+ : TAO_AMH_Response_Handler (),
+ orb_ (CORBA::ORB::_duplicate (sr.orb()))
+{
+ this->init (sr,0);
+}
+
+TAO_AMH_Locate_ResponseHandler::~TAO_AMH_Locate_ResponseHandler (void)
+{
+}
+
+void
+TAO_AMH_Locate_ResponseHandler::raise_excep (const CORBA::Exception &ex)
+{
+ this->_tao_rh_send_exception (ex);
+}
+
+void
+TAO_AMH_Locate_ResponseHandler::forward_ior (const char *ior, CORBA::Boolean is_perm)
+{
+ CORBA::Object_var fwd = this->orb_->string_to_object (ior);
+ this->_tao_rh_send_location_forward (fwd, is_perm);
+}
+
+
+void *
+TAO_AMH_Locate_ResponseHandler::_downcast (const char *)
+{
+ return this;
+}
+
+TAO_AMH_Locate_ResponseHandler_ptr
+TAO_AMH_Locate_ResponseHandler::_narrow (CORBA::Object_ptr obj)
+{
+ return TAO_AMH_Locate_ResponseHandler::_unchecked_narrow (obj);
+}
+
+TAO_AMH_Locate_ResponseHandler_ptr
+TAO_AMH_Locate_ResponseHandler::_unchecked_narrow (CORBA::Object_ptr obj)
+{
+ if (CORBA::is_nil (obj))
+ return TAO_AMH_Locate_ResponseHandler::_nil ();
+
+ return dynamic_cast < TAO_AMH_Locate_ResponseHandler_ptr > (obj);
+}
+
+const char*
+TAO_AMH_Locate_ResponseHandler::_interface_repository_id (void) const
+{
+ return 0;
+}
+
+
+TAO_END_VERSIONED_NAMESPACE_DECL
diff --git a/TAO/tao/IORTable/Locate_ResponseHandler.h b/TAO/tao/IORTable/Locate_ResponseHandler.h
new file mode 100644
index 00000000000..8354e053cb2
--- /dev/null
+++ b/TAO/tao/IORTable/Locate_ResponseHandler.h
@@ -0,0 +1,153 @@
+// -*- C++ -*-
+
+
+//=============================================================================
+/**
+ * @file Locate_ResponseHandler.h
+ *
+ * $Id$
+ *
+ * @author Phil Mesnier <mesnier_p@ociweb>
+ */
+//=============================================================================
+
+
+#ifndef TAO_LOCATE_RESPONSEHANDLER_H
+#define TAO_LOCATE_RESPONSEHANDLER_H
+
+#include /**/ "ace/pre.h"
+
+#include "tao/orbconf.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "iortable_export.h"
+#include "tao/Versioned_Namespace.h"
+#include "tao/Messaging/AMH_Response_Handler.h"
+#include "tao/Valuetype/ValueBase.h"
+#include "tao/ORB.h"
+
+TAO_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace CORBA
+{
+ class Exception;
+}
+
+class TAO_AMH_Locate_ResponseHandler;
+
+typedef TAO_AMH_Locate_ResponseHandler *TAO_AMH_Locate_ResponseHandler_ptr;
+
+/**
+ * @class TAO_AMH_Locate_ResponseHandler_var
+ *
+ * @brief The T_var class for response handler
+ *
+ * As any other pseudo object, this class has a T_var class too.
+ *
+ */
+class TAO_IORTable_Export TAO_AMH_Locate_ResponseHandler_var
+{
+public:
+ TAO_AMH_Locate_ResponseHandler_var (void);
+ TAO_AMH_Locate_ResponseHandler_var (TAO_AMH_Locate_ResponseHandler_ptr);
+ TAO_AMH_Locate_ResponseHandler_var (
+ const TAO_AMH_Locate_ResponseHandler_var &);
+ ~TAO_AMH_Locate_ResponseHandler_var (void);
+
+ TAO_AMH_Locate_ResponseHandler_var &operator= (
+ TAO_AMH_Locate_ResponseHandler_ptr);
+ TAO_AMH_Locate_ResponseHandler_var &operator= (
+ const TAO_AMH_Locate_ResponseHandler_var &);
+ TAO_AMH_Locate_ResponseHandler_ptr operator-> (void) const;
+
+ operator const TAO_AMH_Locate_ResponseHandler_ptr &() const;
+ operator TAO_AMH_Locate_ResponseHandler_ptr &();
+
+ TAO_AMH_Locate_ResponseHandler_ptr in (void) const;
+ TAO_AMH_Locate_ResponseHandler_ptr &inout (void);
+ TAO_AMH_Locate_ResponseHandler_ptr &out (void);
+ TAO_AMH_Locate_ResponseHandler_ptr _retn (void);
+ TAO_AMH_Locate_ResponseHandler_ptr ptr (void) const;
+
+private:
+ TAO_AMH_Locate_ResponseHandler_ptr ptr_;
+};
+
+
+/**
+ * @class TAO_AMH_Locate_ResponseHandler
+ *
+ * @brief This is the main class for DSI using AMH.
+ *
+ * With ordinary DSI, the POA calls _dispatch, which in turn calls invoke
+ * on the DSI handler. Invoke completely handles the request, and packages
+ * the result in the request object so that it can be marshalled and sent
+ * back to the caller.
+ *
+ * With the AMH variation, the DSI handler's invoke method starts the
+ * processing, but delegates the result packaging to a response handler.
+ * This way, if the invocation takes a long time, or involves blocking
+ * calls, then the result handling can be managed by another thread.
+ * This is particularly useful for gateway implementations, where the
+ * middle tier should not have to block waiting for replies.
+ *
+ * As this is built on the CORBA object model, there are separate classes
+ * representing the interface and the implementation.
+ *
+ */
+class TAO_IORTable_Export TAO_AMH_Locate_ResponseHandler
+ : public virtual TAO_AMH_Response_Handler
+{
+public:
+ typedef TAO_AMH_Locate_ResponseHandler_ptr _ptr_type;
+ typedef TAO_AMH_Locate_ResponseHandler_var _var_type;
+
+ TAO_AMH_Locate_ResponseHandler (TAO_ServerRequest &sr);
+ ~TAO_AMH_Locate_ResponseHandler (void);
+
+ virtual void raise_excep (const CORBA::Exception &ex);
+
+ virtual void forward_ior (const char *ior, CORBA::Boolean is_perm);
+
+ /// Returns a CORBA::Object_ptr for the target object.
+ CORBA::Object_ptr _this ();
+
+ /// CORBA Object related methods
+ static TAO_AMH_Locate_ResponseHandler* _duplicate (
+ TAO_AMH_Locate_ResponseHandler_ptr);
+ static TAO_AMH_Locate_ResponseHandler* _nil (void);
+ static TAO_AMH_Locate_ResponseHandler* _narrow (CORBA::Object_ptr);
+ static TAO_AMH_Locate_ResponseHandler* _unchecked_narrow (CORBA::Object_ptr);
+
+protected:
+
+ /// Return 0. Should never be used.
+ virtual const char *_interface_repository_id (void) const;
+
+ /// Simply returns "this"
+ virtual void *_downcast (const char *repository_id);
+
+private:
+ CORBA::ORB_var orb_;
+};
+
+
+namespace IORTable
+{
+ // satisfy the native type requirement for the asnyc locate interface
+ typedef const TAO_AMH_Locate_ResponseHandler_var &Locate_ResponseHandler;
+
+}
+
+TAO_END_VERSIONED_NAMESPACE_DECL
+
+#if defined (__ACE_INLINE__)
+# include "Locate_ResponseHandler.inl"
+#endif /* __ACE_INLINE__ */
+
+#include /**/ "ace/post.h"
+
+#endif /* TAO_LOCATE_RESPONSEHANDLER_H */
diff --git a/TAO/tao/IORTable/Locate_ResponseHandler.inl b/TAO/tao/IORTable/Locate_ResponseHandler.inl
new file mode 100644
index 00000000000..ea0497f7d37
--- /dev/null
+++ b/TAO/tao/IORTable/Locate_ResponseHandler.inl
@@ -0,0 +1,112 @@
+// -*- C++ -*-
+// $Id$
+
+TAO_BEGIN_VERSIONED_NAMESPACE_DECL
+
+ACE_INLINE TAO_AMH_Locate_ResponseHandler_ptr
+TAO_AMH_Locate_ResponseHandler::_duplicate (TAO_AMH_Locate_ResponseHandler_ptr x)
+{
+ if (x != 0)
+ {
+ x->_add_ref ();
+ }
+
+ return x;
+}
+
+
+// Inline operations for class TAO_AMH_Locate_ResponseHandler_var
+ACE_INLINE
+TAO_AMH_Locate_ResponseHandler_var::TAO_AMH_Locate_ResponseHandler_var (void)
+ : ptr_ (TAO_AMH_Locate_ResponseHandler::_nil ())
+{
+}
+
+ACE_INLINE
+TAO_AMH_Locate_ResponseHandler_var::TAO_AMH_Locate_ResponseHandler_var (TAO_AMH_Locate_ResponseHandler_ptr p)
+ : ptr_ (p)
+{}
+
+ACE_INLINE
+TAO_AMH_Locate_ResponseHandler_var::~TAO_AMH_Locate_ResponseHandler_var (void)
+{
+ CORBA::release(ptr_);
+}
+
+ACE_INLINE TAO_AMH_Locate_ResponseHandler_ptr
+TAO_AMH_Locate_ResponseHandler_var::ptr (void) const
+{
+ return this->ptr_;
+}
+
+ACE_INLINE
+TAO_AMH_Locate_ResponseHandler_var::TAO_AMH_Locate_ResponseHandler_var (const TAO_AMH_Locate_ResponseHandler_var &p)
+ : ptr_ (TAO_AMH_Locate_ResponseHandler::_duplicate (p.ptr ()))
+{}
+
+ACE_INLINE TAO_AMH_Locate_ResponseHandler_var &
+TAO_AMH_Locate_ResponseHandler_var::operator= (TAO_AMH_Locate_ResponseHandler_ptr p)
+{
+ CORBA::release (this->ptr_);
+ this->ptr_ = p;
+ return *this;
+}
+
+ACE_INLINE TAO_AMH_Locate_ResponseHandler_var &
+TAO_AMH_Locate_ResponseHandler_var::operator= (const TAO_AMH_Locate_ResponseHandler_var &p)
+{
+ if (this != &p)
+ {
+ CORBA::release (this->ptr_);
+ this->ptr_ = TAO_AMH_Locate_ResponseHandler::_duplicate (p.ptr ());
+ }
+ return *this;
+}
+
+ACE_INLINE
+TAO_AMH_Locate_ResponseHandler_var::operator const TAO_AMH_Locate_ResponseHandler_ptr &() const
+{
+ return this->ptr_;
+}
+
+ACE_INLINE
+TAO_AMH_Locate_ResponseHandler_var::operator TAO_AMH_Locate_ResponseHandler_ptr &()
+{
+ return this->ptr_;
+}
+
+ACE_INLINE TAO_AMH_Locate_ResponseHandler_ptr
+TAO_AMH_Locate_ResponseHandler_var::operator-> (void) const
+{
+ return this->ptr_;
+}
+
+ACE_INLINE TAO_AMH_Locate_ResponseHandler_ptr
+TAO_AMH_Locate_ResponseHandler_var::in (void) const
+{
+ return this->ptr_;
+}
+
+ACE_INLINE TAO_AMH_Locate_ResponseHandler_ptr &
+TAO_AMH_Locate_ResponseHandler_var::inout (void)
+{
+ return this->ptr_;
+}
+
+ACE_INLINE TAO_AMH_Locate_ResponseHandler_ptr &
+TAO_AMH_Locate_ResponseHandler_var::out (void)
+{
+ CORBA::release (this->ptr_);
+ this->ptr_ = TAO_AMH_Locate_ResponseHandler::_nil ();
+ return this->ptr_;
+}
+
+ACE_INLINE TAO_AMH_Locate_ResponseHandler_ptr
+TAO_AMH_Locate_ResponseHandler_var::_retn (void)
+{
+ // yield ownership
+ TAO_AMH_Locate_ResponseHandler_ptr val = this->ptr_;
+ this->ptr_ = TAO_AMH_Locate_ResponseHandler::_nil ();
+ return val;
+}
+TAO_END_VERSIONED_NAMESPACE_DECL
diff --git a/TAO/tao/IORTable/Table_Adapter.cpp b/TAO/tao/IORTable/Table_Adapter.cpp
index 34634eae681..994ead28bdd 100644
--- a/TAO/tao/IORTable/Table_Adapter.cpp
+++ b/TAO/tao/IORTable/Table_Adapter.cpp
@@ -9,6 +9,8 @@
#include "tao/IORTable/Table_Adapter.h"
#include "tao/IORTable/IOR_Table_Impl.h"
+#include "tao/IORTable/Locate_ResponseHandler.h"
+
#include "tao/ORB_Core.h"
#include "tao/Server_Strategy_Factory.h"
#include "tao/Object.h"
@@ -93,6 +95,15 @@ TAO_Table_Adapter::dispatch (TAO::ObjectKey &key,
rootref = this->root_;
}
+ if (this->root_->async_available ())
+ {
+ // construct a callback handler
+ TAO_AMH_Locate_ResponseHandler_var rh;
+ ACE_NEW_RETURN (rh, TAO_AMH_Locate_ResponseHandler (request), DS_MISMATCHED_KEY);
+ this->find_object (rh, key);
+ return 0;
+ }
+
if (this->find_object (key, forward_to))
{
request.forward_location (forward_to);
@@ -189,6 +200,16 @@ TAO_Table_Adapter::find_object (TAO::ObjectKey &key,
return true;
}
+
+void
+TAO_Table_Adapter::find_object (IORTable::Locate_ResponseHandler rh,
+ TAO::ObjectKey &key)
+{
+ CORBA::String_var object_key;
+ TAO::ObjectKey::encode_sequence_to_string (object_key.out (), key);
+ root_->async_find (rh, object_key.in ());
+}
+
// ****************************************************************
TAO_Table_Adapter_Factory::TAO_Table_Adapter_Factory (void)
diff --git a/TAO/tao/IORTable/Table_Adapter.h b/TAO/tao/IORTable/Table_Adapter.h
index b0bef6fc05b..73b3a6d10b8 100644
--- a/TAO/tao/IORTable/Table_Adapter.h
+++ b/TAO/tao/IORTable/Table_Adapter.h
@@ -65,6 +65,10 @@ private:
bool find_object (TAO::ObjectKey &key,
CORBA::Object_out forward_to);
+ void find_object (::IORTable::Locate_ResponseHandler rh,
+ TAO::ObjectKey &key);
+
+
/// The ORB Core we belong to
TAO_ORB_Core &orb_core_;
diff --git a/TAO/tao/ImR_Client/ImR_Client.cpp b/TAO/tao/ImR_Client/ImR_Client.cpp
index 66c83596235..fffcfef6398 100644
--- a/TAO/tao/ImR_Client/ImR_Client.cpp
+++ b/TAO/tao/ImR_Client/ImR_Client.cpp
@@ -91,8 +91,6 @@ namespace
{
}
- ~ImRifyProfiles () { delete [] list_buffer_; }
-
CORBA::Object_ptr combined_ior ()
{
const CORBA::ULong pcount = base_profiles_.profile_count ();
diff --git a/TAO/tao/ImR_Client/ImR_Client.mpc b/TAO/tao/ImR_Client/ImR_Client.mpc
index 4350825cc33..95b22fe231e 100644
--- a/TAO/tao/ImR_Client/ImR_Client.mpc
+++ b/TAO/tao/ImR_Client/ImR_Client.mpc
@@ -2,7 +2,7 @@
project(*idl) : tao_versioning_idl_defaults, install {
custom_only = 1
IDL_Files {
- idlflags += -Gp -Gd -Sorb -GA \
+ idlflags += -Gp -Gd -Sorb -GA -GC\
-Wb,export_macro=TAO_IMR_Client_Export \
-Wb,export_include=tao/ImR_Client/imr_client_export.h \
-iC tao/ImR_Client
@@ -11,7 +11,7 @@ project(*idl) : tao_versioning_idl_defaults, install {
}
IDL_Files {
- idlflags += -Gp -Gd -Sorb -GX \
+ idlflags += -Gp -Gd -Sorb -GX -GH \
-Wb,export_macro=TAO_IMR_Client_Export \
-Wb,export_include=tao/ImR_Client/imr_client_export.h \
-iC tao/ImR_Client
@@ -24,7 +24,7 @@ project(*idl) : tao_versioning_idl_defaults, install {
}
}
-project(ImR_Client) : taolib, tao_output, install, portableserver, taoidldefaults, iormanip {
+project(ImR_Client) : taolib, tao_output, install, portableserver, taoidldefaults, iormanip, valuetype, messaging {
after += *idl
sharedname = TAO_ImR_Client
dynamicflags += TAO_IMR_CLIENT_BUILD_DLL
diff --git a/TAO/tao/Messaging/AMH_Response_Handler.cpp b/TAO/tao/Messaging/AMH_Response_Handler.cpp
index 8416ec1c049..bf2ea0b9bbd 100644
--- a/TAO/tao/Messaging/AMH_Response_Handler.cpp
+++ b/TAO/tao/Messaging/AMH_Response_Handler.cpp
@@ -12,6 +12,7 @@
#include "tao/debug.h"
#include "tao/Buffer_Allocator_T.h"
#include "tao/SystemException.h"
+#include "tao/PortableServer/ForwardRequestC.h"
#include "ace/Copy_Disabled.h"
@@ -194,22 +195,36 @@ TAO_AMH_Response_Handler::_tao_rh_send_exception (const CORBA::Exception &ex)
// @@ It appears as if there should be a more efficient way to do
// this: the caller already knows this because it is part of the
// ExceptionHolder information.
- if (CORBA::SystemException::_downcast (&ex))
+
+ const PortableServer::ForwardRequest *fr =
+ PortableServer::ForwardRequest::_downcast (&ex);
+ if (fr != 0)
{
- reply_params.reply_status (GIOP::SYSTEM_EXCEPTION);
+ reply_params.reply_status (GIOP::LOCATION_FORWARD);
+ if (this->mesg_base_->generate_reply_header (this->_tao_out,
+ reply_params) == -1)
+ {
+ throw ::CORBA::INTERNAL ();
+ }
+ this->_tao_out << fr->forward_reference;
}
else
{
- reply_params.reply_status (GIOP::USER_EXCEPTION);
- }
-
- if (this->mesg_base_->generate_exception_reply (this->_tao_out,
- reply_params,
- ex) == -1)
- {
- throw ::CORBA::INTERNAL ();
+ if (CORBA::SystemException::_downcast (&ex))
+ {
+ reply_params.reply_status (GIOP::SYSTEM_EXCEPTION);
+ }
+ else
+ {
+ reply_params.reply_status (GIOP::USER_EXCEPTION);
+ }
+ if (this->mesg_base_->generate_exception_reply (this->_tao_out,
+ reply_params,
+ ex) == -1)
+ {
+ throw ::CORBA::INTERNAL ();
+ }
}
-
// Send the Exception
if (this->transport_->send_message (this->_tao_out,
0,
diff --git a/TAO/tao/Messaging/AMH_Response_Handler.h b/TAO/tao/Messaging/AMH_Response_Handler.h
index 12261a60cfa..36886d31c87 100644
--- a/TAO/tao/Messaging/AMH_Response_Handler.h
+++ b/TAO/tao/Messaging/AMH_Response_Handler.h
@@ -106,6 +106,7 @@ protected:
void _tao_rh_send_location_forward (CORBA::Object_ptr fwd,
CORBA::Boolean is_perm);
+
/// The outgoing CDR stream
/**
* The IDL-generated ResponseHandler implementations used this field
diff --git a/TAO/tao/PortableServer/Key_Adapters.cpp b/TAO/tao/PortableServer/Key_Adapters.cpp
index c8c9d520c30..4d59ff4b642 100644
--- a/TAO/tao/PortableServer/Key_Adapters.cpp
+++ b/TAO/tao/PortableServer/Key_Adapters.cpp
@@ -17,14 +17,13 @@ TAO_Incremental_Key_Generator::TAO_Incremental_Key_Generator (void)
int
TAO_Incremental_Key_Generator::operator() (PortableServer::ObjectId &id)
{
- const size_t cntr_size = sizeof this->counter_;
// Resize to accommodate the counter.
- id.length (cntr_size);
+ id.length (sizeof this->counter_);
// Add new key data.
ACE_OS::memcpy (id.get_buffer (),
&++this->counter_,
- cntr_size);
+ sizeof this->counter_);
// Success.
return 0;
diff --git a/TAO/tao/TransportCurrent/IIOP_Current_Impl.cpp b/TAO/tao/TransportCurrent/IIOP_Current_Impl.cpp
index 2d7a1ff7861..e9cd92fc9d0 100644
--- a/TAO/tao/TransportCurrent/IIOP_Current_Impl.cpp
+++ b/TAO/tao/TransportCurrent/IIOP_Current_Impl.cpp
@@ -1,7 +1,6 @@
// $Id$
#include "ace/INET_Addr.h"
-#include "ace/Truncate.h"
#include "tao/IIOP_Connection_Handler.h"
#include "tao/IIOP_Transport.h"
#include "tao/Transport_Selection_Guard.h"
@@ -71,7 +70,7 @@ namespace TAO
#if defined (TAO_HAS_IIOP) && (TAO_HAS_IIOP != 0)
// Need to use cast to pacify windows compilers complaining
// about the implicit HANDLE -> CORBA::Long conversion.
- return ACE_Utils::truncate_cast<CORBA::Long> ((intptr_t)this->handler ()->get_handle ());
+ return (CORBA::Long) this->handler ()->get_handle ();
#else
throw ::CORBA::NO_IMPLEMENT ();
#endif
diff --git a/TAO/tao/Version.h b/TAO/tao/Version.h
index 1c6d9cff1fc..6a59c5fd4fb 100644
--- a/TAO/tao/Version.h
+++ b/TAO/tao/Version.h
@@ -5,5 +5,5 @@
#define TAO_MAJOR_VERSION 2
#define TAO_MINOR_VERSION 1
-#define TAO_BETA_VERSION 8
-#define TAO_VERSION "2.1.8"
+#define TAO_BETA_VERSION 7
+#define TAO_VERSION "2.1.7"
diff --git a/TAO/tests/Bug_4097_Regression/Bug_4097_Regression.cpp b/TAO/tests/Bug_4097_Regression/Bug_4097_Regression.cpp
index 81440cf3aea..7adeee035ea 100644
--- a/TAO/tests/Bug_4097_Regression/Bug_4097_Regression.cpp
+++ b/TAO/tests/Bug_4097_Regression/Bug_4097_Regression.cpp
@@ -54,102 +54,89 @@ int
ACE_TMAIN(int argc, ACE_TCHAR *argv[])
{
ACE_DEBUG ((LM_DEBUG, "Starting\n"));
- try
+ CORBA::ORB_var orb (CORBA::ORB_init (argc, argv));
+
+ CORBA::Object_var obj (orb->resolve_initial_references ("CodecFactory"));
+ IOP::CodecFactory_var codecFactory (IOP::CodecFactory::_narrow (obj.in ()));
+
+ IOP::Encoding cdr_encoding;
+ cdr_encoding.format = IOP::ENCODING_CDR_ENCAPS;
+ cdr_encoding.major_version = 1;
+ cdr_encoding.minor_version = 2;
+ IOP::Codec_var codec (codecFactory->create_codec (cdr_encoding));
+
+ // Test starts here with first case
+
+ ACE_DEBUG ((LM_DEBUG, "Creating union using default descriminant of mlu_char type\n"));
+ MultiLabelUnion mlu;
+ mlu.mlu_char ('x');
+ CORBA::Any any;
+ any <<= mlu;
+ bool error = checkResult (any, mlu);
+
+ ACE_DEBUG ((LM_DEBUG, "Encode->Decode any with union using default descriminant of mlu_char type\n"));
+ CORBA::OctetSeq_var messageInCDR (codec->encode (any));
+ ACE_DEBUG ((LM_DEBUG, ". Size of encoding is %d\n", messageInCDR->length ()));
+ CORBA::Any_var decoded = codec->decode (messageInCDR);
+ if (!decoded.ptr ())
{
- CORBA::ORB_var orb (CORBA::ORB_init (argc, argv));
-
- CORBA::Object_var obj (orb->resolve_initial_references ("CodecFactory"));
- IOP::CodecFactory_var codecFactory (IOP::CodecFactory::_narrow (obj.in ()));
-
- IOP::Encoding cdr_encoding;
- cdr_encoding.format = IOP::ENCODING_CDR_ENCAPS;
- cdr_encoding.major_version = 1;
- cdr_encoding.minor_version = 2;
- IOP::Codec_var codec (codecFactory->create_codec (cdr_encoding));
-
- // Test starts here with first case
-
- ACE_DEBUG ((LM_DEBUG, "Creating union using default descriminant of mlu_char type\n"));
- MultiLabelUnion mlu;
- mlu.mlu_char ('x');
- CORBA::Any any;
- any <<= mlu;
- bool error = checkResult (any, mlu);
-
- ACE_DEBUG ((LM_DEBUG, "Encode->Decode any with union using default descriminant of mlu_char type\n"));
- CORBA::OctetSeq_var messageInCDR (codec->encode (any));
- ACE_DEBUG ((LM_DEBUG, ". Size of encoding is %d\n", messageInCDR->length ()));
- CORBA::Any_var decoded = codec->decode (messageInCDR);
- if (!decoded.ptr ())
- {
- ACE_DEBUG ((LM_DEBUG, "No decoding\n"));
- error = true;
- }
- else if (checkResult (decoded.in (), mlu))
- {
- error = true;
- }
-
- ACE_DEBUG ((LM_DEBUG, "Creating union using case 0\n"));
- mlu.mlu_char ('y');
- mlu._d (static_cast<CORBA::Long> (0)); // Note first case label for type.
- any <<= mlu;
- if (checkResult (any, mlu))
- {
- error = true;
- }
+ ACE_DEBUG ((LM_DEBUG, "No decoding\n"));
+ error = true;
+ }
+ else if (checkResult (decoded.in (), mlu))
+ {
+ error = true;
+ }
- ACE_DEBUG ((LM_DEBUG, "Encode->Decode any with union using case 0\n"));
- messageInCDR = codec->encode (any);
- ACE_DEBUG ((LM_DEBUG, ". Size of encoding is %d\n", messageInCDR->length ()));
- decoded = codec->decode (messageInCDR);
- if (!decoded.ptr ())
- {
- ACE_DEBUG ((LM_DEBUG, "No decoding\n"));
- error = true;
- }
- else if (checkResult (decoded.in (), mlu))
- {
- error = true;
- }
+ ACE_DEBUG ((LM_DEBUG, "Creating union using case 0\n"));
+ mlu.mlu_char ('y');
+ mlu._d (static_cast<CORBA::Long> (0)); // Note first case label for type.
+ any <<= mlu;
+ if (checkResult (any, mlu))
+ {
+ error = true;
+ }
- ACE_DEBUG ((LM_DEBUG, "Creating union using case 1\n"));
- mlu.mlu_char ('z');
- mlu._d (static_cast<CORBA::Long> (1)); // Note second case label for same type as before
- any <<= mlu;
- if (checkResult (any, mlu))
- {
- error = true;
- }
+ ACE_DEBUG ((LM_DEBUG, "Encode->Decode any with union using case 0\n"));
+ messageInCDR = codec->encode (any);
+ ACE_DEBUG ((LM_DEBUG, ". Size of encoding is %d\n", messageInCDR->length ()));
+ decoded = codec->decode (messageInCDR);
+ if (!decoded.ptr ())
+ {
+ ACE_DEBUG ((LM_DEBUG, "No decoding\n"));
+ error = true;
+ }
+ else if (checkResult (decoded.in (), mlu))
+ {
+ error = true;
+ }
- ACE_DEBUG ((LM_DEBUG, "Encode->Decode any with union using case 1\n"));
- messageInCDR = codec->encode (any);
- ACE_DEBUG ((LM_DEBUG, ". Size of encoding is %d\n", messageInCDR->length ()));
- decoded = codec->decode (messageInCDR);
- if (!decoded.ptr ())
- {
- ACE_DEBUG ((LM_DEBUG, "No decoding\n"));
- error = true;
- }
- else if (checkResult (decoded.in (), mlu))
- {
- error = true;
- }
+ ACE_DEBUG ((LM_DEBUG, "Creating union using case 1\n"));
+ mlu.mlu_char ('z');
+ mlu._d (static_cast<CORBA::Long> (1)); // Note second case label for same type as before
+ any <<= mlu;
+ if (checkResult (any, mlu))
+ {
+ error = true;
+ }
- if (error)
- {
- ACE_DEBUG ((LM_DEBUG, "Test FAILED.\n"));
- return 1;
- }
+ ACE_DEBUG ((LM_DEBUG, "Encode->Decode any with union using case 1\n"));
+ messageInCDR = codec->encode (any);
+ ACE_DEBUG ((LM_DEBUG, ". Size of encoding is %d\n", messageInCDR->length ()));
+ decoded = codec->decode (messageInCDR);
+ if (!decoded.ptr ())
+ {
+ ACE_DEBUG ((LM_DEBUG, "No decoding\n"));
+ error = true;
}
- catch (const CORBA::Exception &ex)
+ else if (checkResult (decoded.in (), mlu))
{
- ex._tao_print_exception ("Test FAILED due to Exception:");
- return 1;
+ error = true;
}
- catch (...)
+
+ if (error)
{
- ACE_DEBUG ((LM_DEBUG, "Test FAILED (UNKNOWN exception).\n"));
+ ACE_DEBUG ((LM_DEBUG, "Test FAILED.\n"));
return 1;
}
diff --git a/TAO/tests/Dynamic_TP/POA_Loader/Dynamic_TP_POA_Test_Dynamic/client.cpp b/TAO/tests/Dynamic_TP/POA_Loader/Dynamic_TP_POA_Test_Dynamic/client.cpp
index bb2cc17034f..1baf4140a3a 100644
--- a/TAO/tests/Dynamic_TP/POA_Loader/Dynamic_TP_POA_Test_Dynamic/client.cpp
+++ b/TAO/tests/Dynamic_TP/POA_Loader/Dynamic_TP_POA_Test_Dynamic/client.cpp
@@ -11,7 +11,7 @@ int client_num = 1;
int report_exception = 1;
bool is_shutdown = false;
int num_threads = 1;
-const ACE_TCHAR *test = ACE_TEXT("");
+const ACE_TCHAR *test = "";
int goal = 0;
int
@@ -47,13 +47,13 @@ parse_args (int argc, ACE_TCHAR *argv[])
case '?':
default:
ACE_ERROR_RETURN ((LM_ERROR,
- ACE_TEXT("usage: %C ")
- ACE_TEXT("[-c <client #>] ")
- ACE_TEXT("[-e (show exception) <0|1>] ")
- ACE_TEXT("[-k <ior>] ")
- ACE_TEXT("[-s (shutdownE)] ")
- ACE_TEXT("[-t <test> <goal>] ")
- ACE_TEXT("\n"),
+ "usage: %s "
+ "[-c <client #>] "
+ "[-e (show exception) <0|1>] "
+ "[-k <ior>] "
+ "[-s (shutdown)] "
+ "[-t <test> <goal>] "
+ "\n",
argv [0]),
-1);
}
@@ -97,11 +97,11 @@ int ClientTask::svc (void)
try
{
ACE_DEBUG((LM_DEBUG,
- ACE_TEXT("Client %d calling server\n"),
+ "Client %d calling server\n",
ndx));
CORBA::String_var the_string = target_->get_string (ndx);
ACE_DEBUG((LM_DEBUG,
- ACE_TEXT("Client %d received return text of: [%s %d].\n"),
+ "Client %d received return text of: [%C %d].\n",
ndx, the_string.in(), ndx));
{
ACE_GUARD_RETURN (ACE_Mutex, mon, this->lock_, -1);
@@ -111,7 +111,7 @@ int ClientTask::svc (void)
catch (const CORBA::NO_IMPLEMENT& )
{
ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT("Client %d caught full queue exception.\n"),
+ "Client %d caught full queue exception.\n",
ndx));
{
ACE_GUARD_RETURN (ACE_Mutex, mon, this->lock_, -1);
@@ -121,14 +121,14 @@ int ClientTask::svc (void)
catch (const CORBA::TRANSIENT& )
{
ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT("Client %d caught transent, retrying.\n"),
+ "Client %d caught transent, retrying.\n",
ndx));
continue;
}
catch (const CORBA::Exception& ex)
{
ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT("Client %d caught other exception. %s\n"),
+ "Client %d caught other exception. %s\n",
ndx, ex._name()));
{
@@ -175,7 +175,7 @@ ACE_TMAIN(int argc, ACE_TCHAR *argv[])
if (hello->_non_existent())
{
ACE_ERROR_RETURN ((LM_ERROR,
- ACE_TEXT("Client: non_existent returns true\n")),
+ "Client: non_existent returns true\n"),
-1);
}
else
@@ -184,7 +184,7 @@ ACE_TMAIN(int argc, ACE_TCHAR *argv[])
catch (CORBA::TRANSIENT &)
{
ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT("Client: got a transient exception with %d tries remaining\n"),
+ "Client: got a transient exception with %d tries remaining\n",
i-1));
}
}
@@ -200,18 +200,18 @@ ACE_TMAIN(int argc, ACE_TCHAR *argv[])
ct.activate (THR_NEW_LWP | THR_JOINABLE, num_threads);
ct.wait ();
ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT("Client: replies = %d, NO_IMPL = %d, other ex = %d\n"),
+ "Client: replies = %d, NO_IMPL = %d, other ex = %d\n",
ct.replies_, ct.nis_, ct.exs_));
if (ct.exs_ > 0)
{
ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT("Client: ERROR: unexpected exception caught.\n")));
+ "Client: ERROR: unexpected exception caught.\n"));
result = -1;
}
else if (ACE_OS::strcasecmp (test, ACE_TEXT ("max_queue")) == 0)
{
ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT("Client: max_queue test, got %d overages, expected %d\n"),
+ "Client: max_queue test, got %d overages, expected %d\n",
ct.nis_, goal));
if (ct.nis_ != goal)
{
@@ -224,7 +224,7 @@ ACE_TMAIN(int argc, ACE_TCHAR *argv[])
catch (const CORBA::Exception& ex)
{
if (report_exception)
- ex._tao_print_exception (ACE_TEXT("Exception caught:"));
+ ex._tao_print_exception ("Exception caught:");
return -1;
}
diff --git a/TAO/tests/Dynamic_TP/POA_Loader/Dynamic_TP_POA_Test_Static/client.cpp b/TAO/tests/Dynamic_TP/POA_Loader/Dynamic_TP_POA_Test_Static/client.cpp
index bb2cc17034f..1baf4140a3a 100644
--- a/TAO/tests/Dynamic_TP/POA_Loader/Dynamic_TP_POA_Test_Static/client.cpp
+++ b/TAO/tests/Dynamic_TP/POA_Loader/Dynamic_TP_POA_Test_Static/client.cpp
@@ -11,7 +11,7 @@ int client_num = 1;
int report_exception = 1;
bool is_shutdown = false;
int num_threads = 1;
-const ACE_TCHAR *test = ACE_TEXT("");
+const ACE_TCHAR *test = "";
int goal = 0;
int
@@ -47,13 +47,13 @@ parse_args (int argc, ACE_TCHAR *argv[])
case '?':
default:
ACE_ERROR_RETURN ((LM_ERROR,
- ACE_TEXT("usage: %C ")
- ACE_TEXT("[-c <client #>] ")
- ACE_TEXT("[-e (show exception) <0|1>] ")
- ACE_TEXT("[-k <ior>] ")
- ACE_TEXT("[-s (shutdownE)] ")
- ACE_TEXT("[-t <test> <goal>] ")
- ACE_TEXT("\n"),
+ "usage: %s "
+ "[-c <client #>] "
+ "[-e (show exception) <0|1>] "
+ "[-k <ior>] "
+ "[-s (shutdown)] "
+ "[-t <test> <goal>] "
+ "\n",
argv [0]),
-1);
}
@@ -97,11 +97,11 @@ int ClientTask::svc (void)
try
{
ACE_DEBUG((LM_DEBUG,
- ACE_TEXT("Client %d calling server\n"),
+ "Client %d calling server\n",
ndx));
CORBA::String_var the_string = target_->get_string (ndx);
ACE_DEBUG((LM_DEBUG,
- ACE_TEXT("Client %d received return text of: [%s %d].\n"),
+ "Client %d received return text of: [%C %d].\n",
ndx, the_string.in(), ndx));
{
ACE_GUARD_RETURN (ACE_Mutex, mon, this->lock_, -1);
@@ -111,7 +111,7 @@ int ClientTask::svc (void)
catch (const CORBA::NO_IMPLEMENT& )
{
ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT("Client %d caught full queue exception.\n"),
+ "Client %d caught full queue exception.\n",
ndx));
{
ACE_GUARD_RETURN (ACE_Mutex, mon, this->lock_, -1);
@@ -121,14 +121,14 @@ int ClientTask::svc (void)
catch (const CORBA::TRANSIENT& )
{
ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT("Client %d caught transent, retrying.\n"),
+ "Client %d caught transent, retrying.\n",
ndx));
continue;
}
catch (const CORBA::Exception& ex)
{
ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT("Client %d caught other exception. %s\n"),
+ "Client %d caught other exception. %s\n",
ndx, ex._name()));
{
@@ -175,7 +175,7 @@ ACE_TMAIN(int argc, ACE_TCHAR *argv[])
if (hello->_non_existent())
{
ACE_ERROR_RETURN ((LM_ERROR,
- ACE_TEXT("Client: non_existent returns true\n")),
+ "Client: non_existent returns true\n"),
-1);
}
else
@@ -184,7 +184,7 @@ ACE_TMAIN(int argc, ACE_TCHAR *argv[])
catch (CORBA::TRANSIENT &)
{
ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT("Client: got a transient exception with %d tries remaining\n"),
+ "Client: got a transient exception with %d tries remaining\n",
i-1));
}
}
@@ -200,18 +200,18 @@ ACE_TMAIN(int argc, ACE_TCHAR *argv[])
ct.activate (THR_NEW_LWP | THR_JOINABLE, num_threads);
ct.wait ();
ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT("Client: replies = %d, NO_IMPL = %d, other ex = %d\n"),
+ "Client: replies = %d, NO_IMPL = %d, other ex = %d\n",
ct.replies_, ct.nis_, ct.exs_));
if (ct.exs_ > 0)
{
ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT("Client: ERROR: unexpected exception caught.\n")));
+ "Client: ERROR: unexpected exception caught.\n"));
result = -1;
}
else if (ACE_OS::strcasecmp (test, ACE_TEXT ("max_queue")) == 0)
{
ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT("Client: max_queue test, got %d overages, expected %d\n"),
+ "Client: max_queue test, got %d overages, expected %d\n",
ct.nis_, goal));
if (ct.nis_ != goal)
{
@@ -224,7 +224,7 @@ ACE_TMAIN(int argc, ACE_TCHAR *argv[])
catch (const CORBA::Exception& ex)
{
if (report_exception)
- ex._tao_print_exception (ACE_TEXT("Exception caught:"));
+ ex._tao_print_exception ("Exception caught:");
return -1;
}
diff --git a/TAO/tests/File_IO/File_i.cpp b/TAO/tests/File_IO/File_i.cpp
index 62ee922a07c..1776c7394c0 100644
--- a/TAO/tests/File_IO/File_i.cpp
+++ b/TAO/tests/File_IO/File_i.cpp
@@ -18,7 +18,6 @@
#include "ace/OS_NS_stdio.h"
#include "ace/OS_NS_fcntl.h"
#include "ace/OS_NS_unistd.h"
-#include "ace/Truncate.h"
// IDL File::System constructor
FileImpl::System::System (PortableServer::POA_ptr poa)
@@ -59,7 +58,7 @@ FileImpl::System::open (const char *file_name,
// convert ACE_HANDLE to a string
ACE_OS::sprintf (file_descriptor_buffer,
"%ld",
- ACE_Utils::truncate_cast<long int> ((intptr_t)file_descriptor));
+ (long int) file_descriptor);
//Create an objectID from the ACE_HANDLE string
PortableServer::ObjectId_var oid =
@@ -144,7 +143,7 @@ FileImpl::Descriptor::fd (void)
PortableServer::ObjectId_to_string (oid1.in ());
// Get the ACE_HANDLE from the string
- return (ACE_HANDLE)(intptr_t)ACE_OS::atol (s.in ());
+ return (ACE_HANDLE) ACE_OS::atol (s.in ());
}
CORBA::Long
diff --git a/TAO/tests/NestedUpcall/MT_Client_Test/client.cpp b/TAO/tests/NestedUpcall/MT_Client_Test/client.cpp
index 66a50c4fa4d..b1d3f5db780 100644
--- a/TAO/tests/NestedUpcall/MT_Client_Test/client.cpp
+++ b/TAO/tests/NestedUpcall/MT_Client_Test/client.cpp
@@ -23,7 +23,6 @@
#include "ace/OS_NS_unistd.h"
#include "ace/OS_NS_fcntl.h"
#include "ace/Malloc_Base.h"
-#include "ace/Truncate.h"
MT_Client_Task::MT_Client_Task (int argc, ACE_TCHAR **argv,
int client_number)
@@ -197,7 +196,7 @@ MT_Client::init (int argc, ACE_TCHAR **argv,
try
{
char buf[64];
- ACE_OS::sprintf (buf, "thread_%lx", ACE_Utils::truncate_cast<long> ((intptr_t)this));
+ ACE_OS::sprintf (buf, "thread_%lx", reinterpret_cast<long> (this));
this->orb_var_ =
CORBA::ORB_init (this->argc_,
diff --git a/TAO/tests/POA/Default_Servant2/File_i.cpp b/TAO/tests/POA/Default_Servant2/File_i.cpp
index 3542cdfc3cf..8dadb95ddd7 100644
--- a/TAO/tests/POA/Default_Servant2/File_i.cpp
+++ b/TAO/tests/POA/Default_Servant2/File_i.cpp
@@ -18,7 +18,6 @@
#include "ace/OS_NS_stdio.h"
#include "ace/OS_NS_fcntl.h"
#include "ace/OS_NS_unistd.h"
-#include "ace/Truncate.h"
#include "tao/PortableServer/PortableServer.h"
// IDL File::System constructor
@@ -61,7 +60,7 @@ FileImpl::System::open (const char *file_name,
// convert ACE_HANDLE to a string
ACE_OS::sprintf (file_descriptor_buffer,
"%ld",
- ACE_Utils::truncate_cast<long int> ((intptr_t)file_descriptor));
+ (long int) file_descriptor);
//Create an objectID from the ACE_HANDLE string
PortableServer::ObjectId_var oid =
@@ -152,7 +151,7 @@ FileImpl::Descriptor::fd (void)
PortableServer::ObjectId_to_string (oid1.in ());
// Get the ACE_HANDLE from the string
- return (ACE_HANDLE)(intptr_t)ACE_OS::atol (s.in ());
+ return (ACE_HANDLE) ACE_OS::atol (s.in ());
}
CORBA::Long
diff --git a/TAO/utils/logWalker/HostProcess.cpp b/TAO/utils/logWalker/HostProcess.cpp
index 486911f4a8c..e2449b14b0a 100644
--- a/TAO/utils/logWalker/HostProcess.cpp
+++ b/TAO/utils/logWalker/HostProcess.cpp
@@ -25,7 +25,7 @@ HostProcess::~HostProcess (void)
!i.done();
i++)
{
- delete reinterpret_cast<ACE_CString *>(i.next()->item_);
+ delete reinterpret_cast<Endpoint *>(i.next()->item_);
}
for (ThreadList::ITERATOR i(this->threads_);
!i.done();
@@ -77,9 +77,10 @@ HostProcess::find_thread (long tid, size_t offset)
}
Thread *
-HostProcess::find_thread_for_peer (const ACE_CString &addr, Session &session)
+HostProcess::find_thread_for_peer (const ACE_CString &addr)
{
Thread *thr = 0;
+ Endpoint ep (addr.c_str());
for (ACE_DLList_Iterator<Thread> i(threads_);
!i.done();
i.advance())
@@ -89,7 +90,7 @@ HostProcess::find_thread_for_peer (const ACE_CString &addr, Session &session)
if (pp == 0)
continue;
- if (pp->match_server_addr(addr, session))
+ if (pp->match_server_addr(ep))
return thr;
}
return 0;
@@ -115,7 +116,8 @@ HostProcess::find_peer (const ACE_CString &addr)
{
PeerProcess *pp = 0;
- (void)this->by_addr_.find(addr,pp);
+ Endpoint ep (addr.c_str());
+ (void)this->by_addr_.find(ep,pp);
return pp;
}
@@ -143,31 +145,31 @@ HostProcess::pid (void) const
}
bool
-HostProcess::has_endpoint (ACE_CString& addr, bool listen)
+HostProcess::has_endpoint (const Endpoint& addr, bool listen)
{
- ACE_CString *a = 0;
AddrList &list = listen ? this->listen_endpoints_ : this->client_endpoints_;
- for (ACE_DLList_Iterator<ACE_CString> i(list);
+ for (ACE_DLList_Iterator<Endpoint> i(list);
!i.done();
- i.advance())
+ ++i)
{
- i.next(a);
- if (*a == addr)
+ Endpoint *elem;
+ i.next (elem);
+ if (*elem == addr)
return true;
}
return false;
}
void
-HostProcess::add_client_endpoint(ACE_CString &addr)
+HostProcess::add_client_endpoint(const Endpoint &addr)
{
- this->client_endpoints_.insert_tail(new ACE_CString (addr));
+ this->client_endpoints_.insert_tail(new Endpoint (addr));
}
void
-HostProcess::add_listen_endpoint(ACE_CString &addr)
+HostProcess::add_listen_endpoint(const Endpoint &addr)
{
- this->listen_endpoints_.insert_tail(new ACE_CString (addr));
+ this->listen_endpoints_.insert_tail(new Endpoint (addr));
}
void
@@ -181,11 +183,12 @@ HostProcess::add_peer(long handle, PeerProcess *peer)
"add_peer, found existing for %d\n",
handle));
}
- const ACE_CString &addr = peer->is_server() ?
+ const Endpoint &addr = peer->is_server() ?
peer->server_addr() : peer->last_client_addr();
int result = this->by_addr_.bind (addr,peer);
if (result < 0)
- ACE_ERROR ((LM_ERROR,"add_peer, cannot bind to addr %s result = %d, %p\n", addr.c_str(), result, "by_addr_.bind"));
+ ACE_ERROR ((LM_ERROR,"add_peer, cannot bind to addr %s result = %d, %p\n",
+ addr.addr_.c_str(), result, "by_addr_.bind"));
PeerNode *node = new PeerNode (handle,peer);
this->by_handle_.insert_tail(node);
@@ -218,13 +221,13 @@ HostProcess::dump_summary (ostream &strm)
{
strm << " listening on ";
size_t count = 0;
- for (ACE_DLList_Iterator <ACE_CString> t_iter (this->listen_endpoints_);
+ for (ACE_DLList_Iterator <Endpoint> t_iter (this->listen_endpoints_);
!t_iter.done();
t_iter.advance())
{
- ACE_CString *ep = 0;
+ Endpoint *ep = 0;
t_iter.next(ep);
- strm << ep->c_str();
+ strm << ep->addr_.c_str();
if (++count < num)
strm << ", ";
}
@@ -283,6 +286,8 @@ HostProcess::dump_thread_invocations (ostream &strm)
t_iter.next(thr);
thr->dump_invocations (strm);
strm << endl;
+ thr->dump_incidents (strm);
+ strm << endl;
}
}
diff --git a/TAO/utils/logWalker/HostProcess.h b/TAO/utils/logWalker/HostProcess.h
index 5cd9f65b8a4..3ae936ee648 100644
--- a/TAO/utils/logWalker/HostProcess.h
+++ b/TAO/utils/logWalker/HostProcess.h
@@ -33,8 +33,8 @@ struct PeerNode
typedef ACE_DLList<Thread> ThreadList;
typedef ACE_DLList<PeerNode> PeerArray;
-typedef ACE_DLList<ACE_CString> AddrList;
-typedef ACE_RB_Tree<ACE_CString, PeerProcess *, ACE_Less_Than<ACE_CString>, ACE_Null_Mutex> PeerProcs;
+typedef ACE_DLList<Endpoint> AddrList;
+typedef ACE_RB_Tree<Endpoint, PeerProcess *, ACE_Less_Than<Endpoint>, ACE_Null_Mutex> PeerProcs;
/*
* HostProcess encapsulates the state related a specific process instance
@@ -58,7 +58,7 @@ public:
Thread * find_thread (long tid, size_t offset);
// Returns a thread that has a pending peer with the supplied address
- Thread * find_thread_for_peer (const ACE_CString& addr, Session &session);
+ Thread * find_thread_for_peer (const ACE_CString& addr);
// Returns a thread that had previously worked with handle h. May return
// a null pointer.
@@ -70,15 +70,15 @@ public:
// returns true if the supplied endpoint has been visited before. This
// may be either a listen endpoint or a client endpoint used to connect
// to another peer.
- bool has_endpoint (ACE_CString& addr, bool listen);
+ bool has_endpoint (const Endpoint& addr, bool listen);
// adds a new endpoint to the list of listen endpoints. Client endpoints
// are added as part of the process to add a new peer process
- void add_client_endpoint (ACE_CString& addr);
+ void add_client_endpoint (const Endpoint& addr);
// adds a new endpoint to the list of listen endpoints. Client endpoints
// are added as part of the process to add a new peer process
- void add_listen_endpoint (ACE_CString& addr);
+ void add_listen_endpoint (const Endpoint& addr);
// add a peer to the connection list. If the peer is not in the
// by_addr_ table, it will be added there too.
diff --git a/TAO/utils/logWalker/Invocation.cpp b/TAO/utils/logWalker/Invocation.cpp
index a7a67bf03d8..25bd4d1da29 100644
--- a/TAO/utils/logWalker/Invocation.cpp
+++ b/TAO/utils/logWalker/Invocation.cpp
@@ -20,7 +20,10 @@ Invocation::Invocation (PeerProcess *peer, Thread *thr, size_t rid)
peer_(peer),
req_id_(rid),
target_(0),
- handle_(thr->active_handle())
+ handle_(thr->active_handle()),
+ finish_reported_(false),
+ req_level_ (0),
+ repl_level_ (0)
{
}
@@ -179,11 +182,11 @@ Invocation::handle (void) const
bool
Invocation::contains (size_t line)
{
- if (this->req_octets_ == 0 || this->repl_octets_ == 0)
+ if (this->req_octets_ == 0 || this->is_oneway())
return false;
return
line > this->req_octets_->log_posn() &&
- line < this->repl_octets_->log_posn();
+ (this->repl_octets_ == 0 || line < this->repl_octets_->log_posn());
}
size_t
@@ -192,6 +195,12 @@ Invocation::req_line (void)
return this->req_octets_ == 0 ? 0 : this->req_octets_->log_posn();
}
+size_t
+Invocation::repl_line (void)
+{
+ return this->repl_octets_ == 0 ? 0 : this->repl_octets_->log_posn();
+}
+
void
Invocation::new_line (ostream &strm, int indent, int offset, bool add_nl, bool show_indent)
{
@@ -200,19 +209,125 @@ Invocation::new_line (ostream &strm, int indent, int offset, bool add_nl, bool s
strm << "\n";
}
- if (indent > 9)
+ int steps = indent / 20;
+ int extra = indent % 20;
+
+ if (steps > 1)
{
if (show_indent)
- strm << "[indent " << indent << "] ---> ";
+ {
+ strm << "[indent " << steps * 20 << "] --->";
+ extra += (indent > 99) ? 5 : 4;
+ }
else
- strm << " ";
+ {
+ extra += 20;
+ }
}
else
{
- indent += offset;
- while (indent-- > 0)
- strm << " ";
+ extra += (steps * 20);
+ }
+
+ extra += offset;
+ while (extra-- > 0)
+ strm << " ";
+}
+
+void
+Invocation::dump_start_line (ostream &strm, size_t indent)
+{
+ if (this->req_octets_ == 0)
+ return;
+ this->req_level_ = indent;
+ strm << setw(7) << this->req_octets_->log_posn() << " " << setw(0);
+
+ const char *opname = "";
+ const char *dir_1 = "sent to ";
+ const char *dir_2 = " in ";
+
+ if (this->req_octets_ != 0)
+ {
+ opname = this->req_octets_->operation();
+ if (this->req_octets_->sending())
+ {
+ dir_1 = "recv for ";
+ dir_2 = " from ";
+ }
}
+
+ this->new_line (strm, indent, 0, false, true);
+
+ strm << "start request ";
+
+ if (opname == 0 || opname[0] == 0)
+ opname = "<no operation>";
+
+ strm << dir_1;
+ if (this->target_ == 0)
+ strm << "<unknown object>" ;
+ else
+ strm << this->target_->name();
+ strm << dir_2 << this->peer_->id() << ", req " << this->req_id_;
+ strm << " [" << opname << "]";
+ if (this->is_oneway())
+ strm << " oneway";
+ else if (this->repl_octets_ == 0)
+ strm << " <no reply found>";
+ strm << endl;
+}
+
+void
+Invocation::dump_finish_line (ostream &strm, size_t indent)
+{
+ bool is_popped = this->repl_level_ > 0 && indent == this->req_level_;
+
+ if (!is_popped && (this->finish_reported_ || this->is_oneway() || this->repl_octets_ == 0))
+ return;
+
+ if (!this->finish_reported_)
+ {
+ this->repl_level_ = indent;
+ }
+
+ this->finish_reported_ = true;
+
+ strm << setw(7) << this->repl_octets_->log_posn() << " " << setw(0);
+
+ const char *opname = "";
+ const char *dir_2 = " in ";
+
+ if (this->req_octets_ != 0)
+ {
+ opname = this->req_octets_->operation();
+ if (this->req_octets_->sending())
+ {
+ dir_2 = " from ";
+ }
+ }
+
+ if (opname == 0 || opname[0] == 0)
+ {
+ opname = "<no operation>";
+ }
+
+ this->new_line (strm, indent, 0, false, true);
+
+ strm << "reply for " << this->peer_->id() << ", req " << this->req_id_;
+ strm << " [" << opname << "]";
+ if (is_popped)
+ {
+ strm << " (reply received at " << this->repl_level_ << " evaluated)";
+ }
+ else
+ {
+ if (indent != this->req_level_)
+ {
+ strm << " (req at level " << this->req_level_ << " reply at " << indent << ")";
+ }
+ }
+
+ strm << endl;
}
void
diff --git a/TAO/utils/logWalker/Invocation.h b/TAO/utils/logWalker/Invocation.h
index dae1e15c823..278b30d7dec 100644
--- a/TAO/utils/logWalker/Invocation.h
+++ b/TAO/utils/logWalker/Invocation.h
@@ -76,6 +76,7 @@ public:
bool contains (size_t line);
size_t req_line (void);
+ size_t repl_line (void);
void add_notify_incident (const ACE_CString &text, size_t offset);
Thread *waiter (void) const;
@@ -83,6 +84,8 @@ public:
void new_line (ostream &strm, int indent, int offset, bool add_nl, bool show_indent);
void dump_detail (ostream &strm, size_t indent, Dump_Mode mode, bool show_handle);
+ void dump_start_line (ostream &strm, size_t indent);
+ void dump_finish_line (ostream &strm, size_t indent);
void dump_special_details (ostream &strm, size_t indent, const char *opname);
private:
@@ -95,6 +98,9 @@ private:
size_t req_id_;
PeerObject *target_;
long handle_;
+ bool finish_reported_;
+ size_t req_level_;
+ size_t repl_level_;
};
#endif // LOG_WALKER_INVOCATION_H
diff --git a/TAO/utils/logWalker/Log.cpp b/TAO/utils/logWalker/Log.cpp
index bc43e48bb98..0d66aeda899 100644
--- a/TAO/utils/logWalker/Log.cpp
+++ b/TAO/utils/logWalker/Log.cpp
@@ -162,7 +162,7 @@ Log::get_preamble ()
}
}
- this->session_.add_process(this->hostproc_);
+ this->session_.add_process (this->hostproc_);
}
this->thr_ = this->hostproc_->find_thread (tid, this->offset_);
return;
@@ -338,7 +338,7 @@ Log::parse_open_listener_i (void)
char *addr = ACE_OS::strchr(this->info_,'<') +1;
char *c = ACE_OS::strchr(addr,'>');
*c = '\0';
- ACE_CString server_addr(addr);
+ Endpoint server_addr(addr);
this->hostproc_->add_listen_endpoint(server_addr);
}
@@ -548,11 +548,11 @@ Log::parse_complete_connection_i (void)
{
PeerProcess *waiter = 0;
c_iter.next(waiter);
- if (waiter != 0 && waiter->match_server_addr (addr, session_))
+ if (waiter != 0 && waiter->match_server_addr (addr))
{
c_iter.remove();
// ACE_DEBUG ((LM_DEBUG,"%d: complete_connection: purging waiter\n",this->offset_));
- delete waiter;
+ // delete waiter;
break;
}
}
@@ -597,7 +597,7 @@ Log::parse_handler_open_i (bool is_ssl)
{
PeerProcess *waiter = 0;
c_iter.next(waiter);
- if (waiter != 0 && waiter->match_server_addr (addr, session_))
+ if (waiter != 0 && waiter->match_server_addr (addr))
{
pp = waiter;
c_iter.remove();
@@ -606,11 +606,13 @@ Log::parse_handler_open_i (bool is_ssl)
// else
// ACE_DEBUG ((LM_DEBUG,"%d: handler_open: no match waiter addr = %s\n",
// this->offset_, (waiter == 0 ? "<null>" : waiter->server_addr().c_str()) ));
-
}
}
- else
+
+ if (pp == 0)
{
+ // ACE_DEBUG ((LM_DEBUG,"%d: handler_open: calling pop_new_connection, addr = %s\n",
+ // this->offset_, addr));
pp = this->thr_->pop_new_connection();
}
if (pp == 0)
@@ -627,7 +629,7 @@ Log::parse_handler_open_i (bool is_ssl)
{
if (pp->is_server())
{
- Transport *t = new Transport (addr, true, this->offset_);
+ Transport *t = new Transport (local_addr.c_str(), true, this->offset_);
pp->add_transport (t);
this->hostproc_->add_client_endpoint (t->client_endpoint_);
}
diff --git a/TAO/utils/logWalker/PeerProcess.cpp b/TAO/utils/logWalker/PeerProcess.cpp
index f3c03a6b03f..3d4dbfac7ce 100644
--- a/TAO/utils/logWalker/PeerProcess.cpp
+++ b/TAO/utils/logWalker/PeerProcess.cpp
@@ -10,11 +10,88 @@
#include "Thread.h"
#include "Session.h"
+Endpoint::Endpoint (void)
+ : addr_ (),
+ host_ (),
+ port_ (),
+ is_localhost_ (false),
+ role_ (ER_UNKNOWN)
+{
+}
+
+Endpoint::Endpoint (const char *addr, EndpointRole role)
+ : addr_ (),
+ host_ (),
+ port_ (),
+ is_localhost_ (false),
+ role_ (ER_UNKNOWN)
+{
+ this->assign (addr, role);
+}
+
+Endpoint::Endpoint (const Endpoint &other)
+{
+ operator = (other);
+}
+
+void
+Endpoint::assign (const char *addr, EndpointRole role)
+{
+ this->addr_ = addr;
+ this->role_ = role;
+ size_t p = addr_.rfind (':');
+ this->port_ = addr_.substring(p);
+ this->host_ = addr_.substring(0,p);
+
+ this->is_localhost_ = this->host_ == "localhost" ||
+ this->host_ == "127.0.0.1" || this->host_ == "[::1]";
+}
+
+Endpoint&
+Endpoint::operator = (const Endpoint &other)
+{
+ this->addr_ = other.addr_;
+ this->role_ = other.role_;
+ this->host_ = other.host_;
+ this->port_ = other.port_;
+ this->is_localhost_ = other.is_localhost_;
+ return *this;
+}
+
+bool
+Endpoint::operator == (const Endpoint &other) const
+{
+ if (this->port_ != other.port_)
+ return false;
+ if (this->is_localhost_ != other.is_localhost_)
+ return false;
+ if (this->is_localhost_)
+ return true;
+ if (this->host_ == other.host_)
+ return true;
+ return Session::is_equivalent (this->host_, other.host_);
+}
+
+bool
+Endpoint::operator < (const Endpoint &other) const
+{
+ if (this->port_ < other.port_)
+ return true;
+ if (this->host_ < other.host_)
+ return true;
+ return false;
+}
+
+bool
+Endpoint::is_client (void) const
+{
+ return this->role_ != ER_SERVER;
+}
+
Transport::Transport (const char *addr, bool is_client, size_t offset)
: handle_ (0),
- client_endpoint_ (addr),
- local_is_client_ (is_client),
+ client_endpoint_ (addr, is_client ? ER_CLIENT : ER_SERVER),
open_offset_ (offset),
close_offset_ (0)
{
@@ -32,11 +109,9 @@ PeerProcess::nextIdent(bool is_server)
PeerProcess::PeerProcess (size_t offset, bool is_server)
: owner_ (0),
remote_ (0),
- server_port_(),
- server_host_(),
- server_(is_server),
+ server_ep_(),
+ is_server_role_(is_server),
ssl_(false),
- localhost_(false),
origin_offset_ (offset),
objects_ (),
object_by_index_ ()
@@ -64,41 +139,22 @@ PeerProcess::~PeerProcess (void)
void
PeerProcess::set_server_addr (const ACE_CString &addr)
{
- size_t p = addr.rfind (':');
- this->server_port_ = addr.substring(p);
- this->server_host_ = addr.substring(0,p);
-
- this->localhost_ = this->server_host_ == "localhost" ||
- this->server_host_ == "127.0.0.1" || this->server_host_ == "[::1]";
+ this->server_ep_.assign (addr.c_str(), this->is_server_role_ ? ER_SERVER : ER_CLIENT);
}
bool
-PeerProcess::match_server_addr (const ACE_CString &addr, Session &session) const
+PeerProcess::match_server_addr (const Endpoint &addr) const
{
- size_t p = addr.rfind (':');
- ACE_CString port = addr.substring (p);
- ACE_CString host = addr.substring (0,p);
- if (port != this->server_port_)
- return false;
-
- if (this->localhost_)
- {
- return host == "localhost" || host == "127.0.0.1" || host == "[::1]";
- }
-
- if (this->server_host_ == host)
- return true;
-
- return session.is_equivalent (this->server_host_, host);
+ return this->server_ep_ == addr;
}
-ACE_CString
+const Endpoint &
PeerProcess::server_addr (void) const
{
- return this->server_host_ + this->server_port_;
+ return this->server_ep_;
}
-const ACE_CString&
+const Endpoint &
PeerProcess::last_client_addr (void) const
{
return this->last_transport_->client_endpoint_;
@@ -107,7 +163,7 @@ PeerProcess::last_client_addr (void) const
bool
PeerProcess::is_server (void) const
{
- return this->server_;
+ return this->is_server_role_;
}
size_t
@@ -159,8 +215,8 @@ PeerProcess::match_hosts (Session *session)
// on the server addr. But if the local side is the server
// then this wants to find the remote based on the Transport
// instance
- if (this->server_)
- this->remote_ = session->find_host(this->server_host_, true);
+ if (this->is_server_role_)
+ this->remote_ = session->find_host(this->server_ep_, true);
else
{
Transport *t = 0;
@@ -272,11 +328,11 @@ PeerProcess::dump_summary (ostream &strm)
strm << " is a ";
if (this->ssl_)
strm << "secure ";
- if (this->server_)
+ if (this->is_server_role_)
strm << "server at ";
else
strm << "client to ";
- strm << this->server_host_ << this->server_port_;
+ strm << this->server_ep_.host_ << ":" << this->server_ep_.port_;
strm << " with " << num_transports << " connections, ";
strm << " referenced " << this->objects_.current_size()
<< " objects in " << this->invocations_.size() << " invocations";
@@ -288,8 +344,8 @@ PeerProcess::dump_summary (ostream &strm)
Transport *tran = 0;
i.next(tran);
strm << " connection[" << tran->handle_ << "] ";
- strm << (tran->local_is_client_ ? "to " : "from ");
- strm << tran->client_endpoint_;
+ strm << (tran->client_endpoint_.is_client() ? "to " : "from ");
+ strm << tran->client_endpoint_.host_ << ":" << tran->client_endpoint_.port_;
strm << " created line " << tran->open_offset_;
if (tran->close_offset_)
strm << " closed line " << tran->close_offset_;
@@ -302,7 +358,7 @@ PeerProcess::dump_object_detail (ostream &strm)
{
strm << this->objects_.current_size()
<< " Objects referenced";
- if (this->server_)
+ if (this->is_server_role_)
strm << " in ";
else
strm << " by ";
@@ -329,7 +385,7 @@ void
PeerProcess::dump_invocation_detail (ostream &strm)
{
strm << "\n " << this->invocations_.size() << " Invocations ";
- strm << (this->server_ ? "to " : "from ");
+ strm << (this->is_server_role_ ? "to " : "from ");
if (this->remote_)
strm << remote_->proc_name();
else
diff --git a/TAO/utils/logWalker/PeerProcess.h b/TAO/utils/logWalker/PeerProcess.h
index f90e4004c34..91378d7d9dd 100644
--- a/TAO/utils/logWalker/PeerProcess.h
+++ b/TAO/utils/logWalker/PeerProcess.h
@@ -19,13 +19,38 @@ class Invocation;
class Session;
class Thread;
+
+enum EndpointRole {
+ ER_UNKNOWN,
+ ER_CLIENT,
+ ER_SERVER
+};
+
+class Endpoint
+{
+public:
+ Endpoint (void);
+ Endpoint (const Endpoint &other);
+ Endpoint (const char *addr, EndpointRole role = ER_UNKNOWN);
+ void assign (const char *addr, EndpointRole role = ER_UNKNOWN);
+ Endpoint & operator = (const Endpoint &other);
+ bool operator == (const Endpoint &other) const;
+ bool operator < (const Endpoint &other) const;
+ bool is_client (void) const;
+
+ ACE_CString addr_;
+ ACE_CString host_;
+ ACE_CString port_;
+ bool is_localhost_;
+ EndpointRole role_;
+};
+
class Transport
{
public:
Transport (const char *addr, bool is_client, size_t offset);
long handle_;
- ACE_CString client_endpoint_;
- bool local_is_client_;
+ Endpoint client_endpoint_;
size_t open_offset_;
size_t close_offset_;
};
@@ -51,8 +76,8 @@ public:
void match_hosts (Session *session);
void set_server_addr (const ACE_CString &addr);
- ACE_CString server_addr (void) const;
- const ACE_CString &last_client_addr (void) const;
+ const Endpoint &server_addr (void) const;
+ const Endpoint &last_client_addr (void) const;
bool is_server (void) const;
size_t offset (void) const;
@@ -62,7 +87,7 @@ public:
Transport *find_transport (long handle);
bool match_local (const char *addr) const;
- bool match_server_addr (const ACE_CString &addr, Session &session) const;
+ bool match_server_addr (const Endpoint &addr) const;
Invocation *new_invocation (size_t req_id, Thread *thr);
Invocation *find_invocation (size_t req_id, long handle);
@@ -79,13 +104,11 @@ private:
char *origin_;
HostProcess *owner_;
HostProcess *remote_;
- ACE_CString server_port_;
- ACE_CString server_host_;
+ Endpoint server_ep_;
TransportList transports_;
Transport *last_transport_;
- bool server_;
+ bool is_server_role_;
bool ssl_;
- bool localhost_;
size_t origin_offset_;
PeerObjectTable objects_;
InvocationList invocations_;
diff --git a/TAO/utils/logWalker/Session.cpp b/TAO/utils/logWalker/Session.cpp
index 8f194415417..e9490844ad4 100644
--- a/TAO/utils/logWalker/Session.cpp
+++ b/TAO/utils/logWalker/Session.cpp
@@ -2,6 +2,7 @@
#include "Session.h"
#include "HostProcess.h"
+#include "PeerProcess.h"
#include "Log.h"
#include "ace/OS_NS_strings.h"
#include "ace/SString.h"
@@ -10,6 +11,10 @@
long
Session::tao_version_ = 200;
+AltAddresses
+Session::alt_addrs_;
+
+
Session::Session (void)
{
ACE_CString n ("localhost");
@@ -72,7 +77,7 @@ Session::alternate_address (const char *addrspec)
return;
ACE_CString name (addrspec,(equal - addrspec));
ACE_CString value (equal+1);
- this->alt_addrs_.bind(name,value);
+ Session::alt_addrs_.bind(name,value);
}
bool
@@ -81,7 +86,7 @@ Session::is_equivalent (const ACE_CString &primary,
{
ACE_CString test(primary);
ACE_CString alt;
- if (this->alt_addrs_.find(test,alt) == 0)
+ if (Session::alt_addrs_.find(test,alt) == 0)
{
return alt == alternate;
}
@@ -95,13 +100,13 @@ Session::default_service (const char *addrspec)
if (equal == 0)
return;
ACE_CString name (addrspec,(equal - addrspec));
- ACE_CString endpoint (equal+1);
+ Endpoint ep (equal+1);
static long next_def_pid = 0;
--next_def_pid;
HostProcess *hp = new HostProcess ("defaulted",next_def_pid);
hp->proc_name(name);
- hp->add_listen_endpoint (endpoint);
+ hp->add_listen_endpoint (ep);
this->processes_.bind(next_def_pid,hp);
this->procs_by_name_.bind(name,hp);
}
@@ -117,26 +122,36 @@ Session::find_process (long pid)
}
HostProcess *
-Session::find_host (ACE_CString &endpoint, bool server)
+Session::find_host_i (const Endpoint &endpoint, bool server)
{
- ACE_CString test(endpoint);
- ACE_CString alternate;
- size_t sep = test.find(':');
- if (this->alt_addrs_.find(test.substring (0,sep),alternate) == 0)
- {
- test = alternate + test.substring(sep);
- }
for (Processes::ITERATOR i (this->processes_); !i.done(); i.advance())
{
Processes::ENTRY *entry;
if (i.next(entry) == 0)
break;
- if (entry->item()->has_endpoint(test, server))
+ if (entry->item()->has_endpoint(endpoint, server))
return entry->item();
}
return 0;
}
+HostProcess *
+Session::find_host (const Endpoint &endpoint, bool server)
+{
+ HostProcess *result = find_host_i (endpoint, server);
+ if (result != 0)
+ return result;
+
+ Endpoint test (endpoint);
+ ACE_CString alternate;
+ if (Session::alt_addrs_.find(endpoint.host_,alternate) == 0)
+ {
+ test.host_ = alternate;
+ return find_host_i (test, server);
+ }
+ return 0;
+}
+
void
Session::make_dir (const char *dirname)
{
diff --git a/TAO/utils/logWalker/Session.h b/TAO/utils/logWalker/Session.h
index 2f4bfb0c85d..bfb8c8da6aa 100644
--- a/TAO/utils/logWalker/Session.h
+++ b/TAO/utils/logWalker/Session.h
@@ -14,6 +14,7 @@
class Log;
class HostProcess;
+class Endpoint;
typedef ACE_RB_Tree<long, HostProcess *, ACE_Less_Than<long>, ACE_Null_Mutex> Processes;
typedef ACE_RB_Tree<ACE_CString, HostProcess *, ACE_Less_Than<ACE_CString>, ACE_Null_Mutex> Procs_By_Name;
@@ -28,14 +29,14 @@ public:
void add_process (HostProcess *proc);
HostProcess *find_process (long pid);
- HostProcess *find_host (ACE_CString &endpoint, bool server);
+ HostProcess *find_host (const Endpoint &endpoint, bool server);
void reconcile (void);
static bool set_tao_version (ACE_TCHAR *str);
static long tao_version (void);
- void alternate_address (const char *string);
- bool is_equivalent (const ACE_CString &primary,
- const ACE_CString &alternate);
+ static void alternate_address (const char *string);
+ static bool is_equivalent (const ACE_CString &primary,
+ const ACE_CString &alternate);
void default_service (const char *string);
void make_dir (const char * );
@@ -47,14 +48,16 @@ public:
void dump ();
private:
+ HostProcess *find_host_i (const Endpoint &endpoint, bool server);
+
ostream * stream_for ( ostream *, HostProcess * = 0, const char * = 0);
Processes processes_;
Procs_By_Name procs_by_name_;
- AltAddresses alt_addrs_;
ACE_CString base_dir_;
ACE_CString outfile_;
static long tao_version_;
+ static AltAddresses alt_addrs_;
};
#endif // LOG_WALKER_SESSION_H
diff --git a/TAO/utils/logWalker/Thread.cpp b/TAO/utils/logWalker/Thread.cpp
index cb19431f45d..3bd7f206ef4 100644
--- a/TAO/utils/logWalker/Thread.cpp
+++ b/TAO/utils/logWalker/Thread.cpp
@@ -6,6 +6,7 @@
#include "GIOP_Buffer.h"
#include "ace/OS_NS_stdio.h"
#include <stack>
+#include <deque>
Thread::Thread (long tid, const char *alias, size_t offset)
: id_(tid),
@@ -223,13 +224,13 @@ Thread::current_invocation (void) const
}
void
-Thread::dump_detail (ostream &strm) const
+Thread::dump_detail (ostream &strm)
{
strm << " " << this->alias_ << " tid = 0x" << hex << this->id_
<< "\tfirst line " << dec << this->first_line_ << "\t"
<< this->server_encounters_ << " requests sent "
<< this->client_encounters_ << " requests received";
- if (nested_ > 0)
+ if (this->count_nesting () > 0)
strm <<", with " << this->nested_ << " nested upcalls, max depth "
<< this->max_depth_;
strm << endl;
@@ -241,6 +242,7 @@ Thread::get_summary (long &sent_reqs,
size_t &sent_size,
size_t &recv_size)
{
+
for (ACE_DLList_Iterator <Invocation> i(this->invocations_);
!i.done();
i.advance())
@@ -264,7 +266,7 @@ void
Thread::dump_invocations (ostream &strm)
{
size_t total_request_bytes = 0;
- strm << " " << this->alias_ << " handled " << this->invocations_.size()
+ strm << this->alias_ << " handled " << this->invocations_.size()
<< " invocations" << endl;
std::stack<Invocation *> nested;
@@ -272,14 +274,17 @@ Thread::dump_invocations (ostream &strm)
!i.done();
i.advance())
{
- Invocation *inv;
+ Invocation *inv = 0;
i.next(inv);
size_t level = 0;
+
while (!nested.empty ())
{
if (nested.top()->contains (inv->req_line ()))
{
level = nested.size();
+ if (level > this->nested_)
+ this->nested_ = level;
break;
}
nested.pop();
@@ -291,3 +296,76 @@ Thread::dump_invocations (ostream &strm)
}
strm << "total request octet count: " << total_request_bytes;
}
+
+void
+Thread::dump_incidents (ostream &strm)
+{
+ if (this->nested_ == 0)
+ return;
+ strm << "\n" << this->alias_ << " handled " << this->invocations_.size()
+ << " invocations with a max nesting level of " << this->nested_ << endl;
+
+ std::deque<Invocation *> nested_queue;
+ for (ACE_DLList_Iterator <Invocation> i (this->invocations_);
+ !i.done();
+ i.advance())
+ {
+ Invocation *inv = 0;
+ i.next(inv);
+ size_t level = nested_queue.size();
+
+ while (!nested_queue.empty ())
+ {
+ Invocation *prev = nested_queue.back ();
+ if (prev->contains (inv->req_line ()))
+ {
+ break;
+ }
+ nested_queue.pop_back ();
+ level--;
+ prev->dump_finish_line (strm, level);
+ }
+ if (nested_queue.size() > 1)
+ {
+ size_t inv_line = inv->req_line ();
+ for (std::deque<Invocation *>::iterator j = nested_queue.begin ();
+ j != nested_queue.end ();
+ j++)
+ {
+ if ((*j)->repl_line () < inv_line)
+ {
+ (*j)->dump_finish_line (strm, level);
+ }
+ }
+ }
+ nested_queue.push_back (inv);
+ inv->dump_start_line (strm, level);
+ }
+}
+
+size_t
+Thread::count_nesting (void)
+{
+ std::stack<Invocation *> nested;
+ for (ACE_DLList_Iterator <Invocation> i (this->invocations_);
+ !i.done();
+ i.advance())
+ {
+ Invocation *inv = 0;
+ i.next(inv);
+ size_t level = 0;
+ while (!nested.empty ())
+ {
+ level = nested.size();
+ if (level > this->nested_)
+ this->nested_ = level;
+ if (nested.top()->contains (inv->req_line ()))
+ {
+ break;
+ }
+ nested.pop ();
+ }
+ nested.push (inv);
+ }
+ return this->nested_;
+}
diff --git a/TAO/utils/logWalker/Thread.h b/TAO/utils/logWalker/Thread.h
index 9e5da0fec12..180bd1bfc43 100644
--- a/TAO/utils/logWalker/Thread.h
+++ b/TAO/utils/logWalker/Thread.h
@@ -37,8 +37,10 @@ public:
void exit_wait (PeerProcess *, size_t linenum);
GIOP_Buffer *giop_target (void);
void set_giop_target (GIOP_Buffer *buffer);
- void dump_detail (ostream &strm) const;
+ void dump_detail (ostream &strm);
void dump_invocations (ostream &strm);
+ void dump_incidents (ostream &strm);
+
void get_summary (long &sent_reqs, long &recv_reqs, size_t &sent_size, size_t &recv_size);
void push_new_connection (PeerProcess *pp);
@@ -54,13 +56,15 @@ public:
void swap_target (void);
bool has_dup (void);
+ size_t count_nesting (void);
+
private:
long id_;
ACE_CString alias_;
size_t max_depth_;
long client_encounters_;
long server_encounters_;
- long nested_;
+ size_t nested_;
PeerProcessStack pending_;
PeerProcess *incoming_;
PeerProcessStack new_connection_;