summaryrefslogtreecommitdiff
path: root/TAO/orbsvcs
diff options
context:
space:
mode:
authorpradeep <pradeep@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2000-08-18 20:21:19 +0000
committerpradeep <pradeep@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2000-08-18 20:21:19 +0000
commit0a0f74ba6269bebdc6c4d7859c94d9567c002ddf (patch)
tree9b01e4f02d26376b024eb19291556fae43b65991 /TAO/orbsvcs
parent5276fe14aad565a4fa37b7b3703952a12e7df6bf (diff)
downloadATCD-0a0f74ba6269bebdc6c4d7859c94d9567c002ddf.tar.gz
Fri Aug 18 15:20:50 2000 Pradeep Gore <pradeep@cs.wustl.edu>
Diffstat (limited to 'TAO/orbsvcs')
-rw-r--r--TAO/orbsvcs/tests/Notify/Basic/ConnectDisconnect.cpp2
-rw-r--r--TAO/orbsvcs/tests/Notify/Basic/IdAssignment.cpp417
-rw-r--r--TAO/orbsvcs/tests/Notify/Basic/IdAssignment.h58
-rw-r--r--TAO/orbsvcs/tests/Notify/Basic/LifeCycleTest.cpp239
-rw-r--r--TAO/orbsvcs/tests/Notify/Basic/LifeCycleTest.h46
-rw-r--r--TAO/orbsvcs/tests/Notify/Basic/Makefile372
-rw-r--r--TAO/orbsvcs/tests/Notify/Basic/README33
7 files changed, 1164 insertions, 3 deletions
diff --git a/TAO/orbsvcs/tests/Notify/Basic/ConnectDisconnect.cpp b/TAO/orbsvcs/tests/Notify/Basic/ConnectDisconnect.cpp
index 679c369be22..93f88d281b6 100644
--- a/TAO/orbsvcs/tests/Notify/Basic/ConnectDisconnect.cpp
+++ b/TAO/orbsvcs/tests/Notify/Basic/ConnectDisconnect.cpp
@@ -4,7 +4,7 @@
#include "ace/Get_Opt.h"
#include "ConnectDisconnect.h"
-ACE_RCSID (Notify_Tests, ConnectDisconnect, "$")
+ACE_RCSID (Notify_Tests, ConnectDisconnect, "$Id$")
#define CD_IMPLEMENT_ENTITY(X)\
\
diff --git a/TAO/orbsvcs/tests/Notify/Basic/IdAssignment.cpp b/TAO/orbsvcs/tests/Notify/Basic/IdAssignment.cpp
new file mode 100644
index 00000000000..c6728bbefbd
--- /dev/null
+++ b/TAO/orbsvcs/tests/Notify/Basic/IdAssignment.cpp
@@ -0,0 +1,417 @@
+// $Id$
+
+#include "ace/Arg_Shifter.h"
+#include "ace/Get_Opt.h"
+#include "orbsvcs/CosNamingC.h"
+#include "orbsvcs/CosNotifyCommC.h"
+#include "IdAssignment.h"
+
+ACE_RCSID (Notify_Tests, IdAssignment, "$Id$")
+
+IdAssignment::IdAssignment (void)
+ :iter_ (3),
+ ec_count_ (3),
+ consumer_admin_count_ (3),
+ supplier_admin_count_ (3)
+{
+}
+
+IdAssignment::~IdAssignment ()
+{
+}
+
+int
+IdAssignment::parse_args(int argc, char *argv[])
+{
+ ACE_Arg_Shifter arg_shifter (argc, argv);
+
+ char *current_arg = 0;
+ while (arg_shifter.is_anything_left ())
+ {
+ if ((current_arg = arg_shifter.get_the_parameter ("-iter")))
+ {
+ this->iter_ = ACE_OS::atoi (current_arg);
+ // The number of times to repeat the test
+ arg_shifter.consume_arg ();
+ }
+ if ((current_arg = arg_shifter.get_the_parameter ("-ec_count")))
+ {
+ this->ec_count_ = ACE_OS::atoi (current_arg);
+ arg_shifter.consume_arg ();
+ }
+ if ((current_arg = arg_shifter.get_the_parameter ("-ca_count")))
+ {
+ this->consumer_admin_count_ = ACE_OS::atoi (current_arg);
+ arg_shifter.consume_arg ();
+ }
+ if ((current_arg = arg_shifter.get_the_parameter ("-sa_count")))
+ {
+ this->supplier_admin_count_ = ACE_OS::atoi (current_arg);
+ arg_shifter.consume_arg ();
+ }
+ else if (arg_shifter.cur_arg_strncasecmp ("-?") == 0)
+ {
+ ACE_DEBUG((LM_DEBUG,
+ "usage: %s "
+ "-iter <count>",
+ "-ec_count <count>",
+ "-ca_count <count>",
+ "-sa_count <count>\n",
+ argv[0], argv[0]));
+
+ arg_shifter.consume_arg ();
+
+ return -1;
+ }
+ else
+ {
+ arg_shifter.ignore_arg ();
+ }
+ }
+ return 0;
+}
+
+void
+IdAssignment::init(int argc, char *argv[], CORBA::Environment &ACE_TRY_ENV)
+{
+ CORBA::ORB_var orb = CORBA::ORB_init(argc, argv, "", ACE_TRY_ENV);
+ ACE_CHECK;
+
+ CORBA::Object_var rootObj = orb->resolve_initial_references("NameService",
+ ACE_TRY_ENV);
+ ACE_CHECK;
+
+ if (CORBA::is_nil(rootObj.in()))
+ {
+ ACE_ERROR ((LM_ERROR,
+ " (%P|%t) Unable to resolve naming service !\n"));
+ return;
+
+ }
+ CosNaming::NamingContext_var rootNC =
+ CosNaming::NamingContext::_narrow(rootObj.in(), ACE_TRY_ENV);
+ ACE_CHECK;
+
+ CosNaming::Name name(1);
+ name.length(1);
+ name[0].id = CORBA::string_dup("NotifyEventChannelFactory");
+
+ CORBA::Object_var obj = rootNC->resolve(name, ACE_TRY_ENV);
+ ACE_CHECK;
+
+ if (CORBA::is_nil(obj.in()))
+ {
+ ACE_ERROR((LM_ERROR,
+ " (%P|%t) Unable to locate Notify_Service \n"));
+ return;
+ }
+
+ notify_factory_ = CosNotifyChannelAdmin::EventChannelFactory::_narrow(
+ obj.in(),
+ ACE_TRY_ENV);
+ ACE_CHECK;
+
+}
+
+CosNotifyChannelAdmin::ChannelID
+IdAssignment::create_ec(CORBA::Environment &ACE_TRY_ENV)
+{
+ CosNotifyChannelAdmin::ChannelID id;
+ CosNotification::QoSProperties initial_qos;
+ CosNotification::AdminProperties initial_admin;
+ CosNotifyChannelAdmin::EventChannel_var ec =
+ notify_factory_->create_channel(initial_qos,
+ initial_admin,
+ id,
+ ACE_TRY_ENV);
+// ACE_CHECK_RETURN;
+
+ return id;
+}
+
+
+void
+IdAssignment::destroy_ec(CosNotifyChannelAdmin::ChannelID id,
+ CORBA::Environment &ACE_TRY_ENV)
+{
+ CosNotifyChannelAdmin::EventChannel_var ec =
+ notify_factory_->get_event_channel(id, ACE_TRY_ENV);
+
+ ACE_CHECK;
+
+ if (CORBA::is_nil(ec.in()))
+ {
+ ACE_ERROR((LM_ERROR,
+ " (%P|%t) Unable to find event channel\n"));
+ return;
+
+ }
+
+ ec->destroy(ACE_TRY_ENV);
+ ACE_CHECK;
+}
+
+CosNotifyChannelAdmin::AdminID
+IdAssignment::create_supplier_admin (CosNotifyChannelAdmin::ChannelID channel_id,
+ CORBA::Environment &ACE_TRY_ENV)
+{
+ CosNotifyChannelAdmin::AdminID adminid;
+ CosNotifyChannelAdmin::InterFilterGroupOperator ifgop =
+ CosNotifyChannelAdmin::OR_OP;
+
+ CosNotifyChannelAdmin::EventChannel_var ec =
+ notify_factory_->get_event_channel(channel_id, ACE_TRY_ENV);
+
+ ACE_CHECK_RETURN (0);
+
+ if (CORBA::is_nil(ec.in()))
+ {
+ ACE_ERROR((LM_ERROR,
+ " (%P|%t) Unable to find event channel\n"));
+ return 0;
+
+ }
+
+ CosNotifyChannelAdmin::SupplierAdmin_var supplier_admin =
+ ec->new_for_suppliers (ifgop, adminid, ACE_TRY_ENV);
+ ACE_CHECK_RETURN (0);
+
+ if (CORBA::is_nil (supplier_admin.in()))
+ ACE_ERROR_RETURN ((LM_ERROR,
+ " (%P|%t) Unable to create supplier admin\n"),0);
+
+ ACE_DEBUG((LM_DEBUG, "created supplier admin\n"));
+
+ return adminid;
+}
+
+CosNotifyChannelAdmin::AdminID
+IdAssignment::create_consumer_admin (CosNotifyChannelAdmin::ChannelID channel_id,
+ CORBA::Environment &ACE_TRY_ENV)
+{
+ CosNotifyChannelAdmin::AdminID adminid;
+ CosNotifyChannelAdmin::InterFilterGroupOperator ifgop =
+ CosNotifyChannelAdmin::OR_OP;
+
+ CosNotifyChannelAdmin::EventChannel_var ec =
+ notify_factory_->get_event_channel(channel_id, ACE_TRY_ENV);
+
+ ACE_CHECK_RETURN (0);
+
+ if (CORBA::is_nil(ec.in()))
+ {
+ ACE_ERROR((LM_ERROR,
+ " (%P|%t) Unable to find event channel\n"));
+ return 0;
+
+ }
+
+ CosNotifyChannelAdmin::ConsumerAdmin_var consumer_admin =
+ ec->new_for_consumers (ifgop, adminid, ACE_TRY_ENV);
+ ACE_CHECK_RETURN (0);
+
+ if (CORBA::is_nil (consumer_admin.in()))
+ ACE_ERROR_RETURN ((LM_ERROR,
+ " (%P|%t) Unable to create consumer admin\n"),0);
+
+ ACE_DEBUG((LM_DEBUG, "created consumer admin\n"));
+
+ return adminid;
+}
+
+
+void
+IdAssignment::destroy_consumer_admin (CosNotifyChannelAdmin::ChannelID channel_id,
+ CosNotifyChannelAdmin::AdminID admin_id,
+ CORBA::Environment &ACE_TRY_ENV)
+{
+ CosNotifyChannelAdmin::EventChannel_var ec =
+ notify_factory_->get_event_channel(channel_id, ACE_TRY_ENV);
+
+ ACE_CHECK;
+
+ if (CORBA::is_nil(ec.in()))
+ {
+ ACE_ERROR((LM_ERROR,
+ " (%P|%t) Unable to find event channel\n"));
+ return;
+
+ }
+
+ CosNotifyChannelAdmin::ConsumerAdmin_var consumer_admin =
+ ec->get_consumeradmin (admin_id, ACE_TRY_ENV);
+ ACE_CHECK;
+
+ if (CORBA::is_nil (consumer_admin.in()))
+ ACE_ERROR ((LM_ERROR,
+ " (%P|%t) Unable to get consumer admin\n"));
+
+ consumer_admin->destroy(ACE_TRY_ENV);
+ ACE_CHECK;
+
+ ACE_DEBUG((LM_DEBUG, "destroyed consumer admin\n"));
+}
+
+
+void
+IdAssignment::destroy_supplier_admin (CosNotifyChannelAdmin::ChannelID channel_id,
+ CosNotifyChannelAdmin::AdminID admin_id,
+ CORBA::Environment &ACE_TRY_ENV)
+{
+ CosNotifyChannelAdmin::EventChannel_var ec =
+ notify_factory_->get_event_channel(channel_id, ACE_TRY_ENV);
+
+ ACE_CHECK;
+
+ if (CORBA::is_nil(ec.in()))
+ {
+ ACE_ERROR((LM_ERROR,
+ " (%P|%t) Unable to find event channel\n"));
+ }
+
+ CosNotifyChannelAdmin::SupplierAdmin_var supplier_admin =
+ ec->get_supplieradmin (admin_id, ACE_TRY_ENV);
+ ACE_CHECK;
+
+ if (CORBA::is_nil (supplier_admin.in()))
+ ACE_ERROR ((LM_ERROR,
+ " (%P|%t) Unable to get supplier admin\n"));
+
+ supplier_admin->destroy(ACE_TRY_ENV);
+ ACE_CHECK;
+
+ ACE_DEBUG((LM_DEBUG, "destroyed supplier admin\n"));
+}
+
+void
+IdAssignment::run_test(CORBA::Environment &ACE_TRY_ENV)
+{
+ CosNotifyChannelAdmin::ChannelID* ec_id =
+ new CosNotifyChannelAdmin::ChannelID [this->ec_count_];
+
+ CosNotifyChannelAdmin::AdminID* consumer_admin_id =
+ new CosNotifyChannelAdmin::AdminID [this->consumer_admin_count_];
+
+ CosNotifyChannelAdmin::AdminID* supplier_admin_id =
+ new CosNotifyChannelAdmin::AdminID [this->supplier_admin_count_];
+
+ //*************** ************ ************ ************ ************
+
+ for (int i = 0; i < this->iter_; ++i)
+ {
+ int ec_count;
+ for (ec_count = 0; ec_count < this->ec_count_; ++ec_count)
+ {
+ ec_id [ec_count] = create_ec(ACE_TRY_ENV);
+ ACE_CHECK;
+
+ // connect <consumer_admin_count_> number of consumers to the current ec.
+ for (int cons_count = 0; cons_count < this->consumer_admin_count_; ++cons_count)
+ {
+ consumer_admin_id [cons_count] = create_consumer_admin (ec_id [ec_count],
+ ACE_TRY_ENV);
+ ACE_CHECK;
+ }
+
+ // connect <supplier_admin_count_> number of suppliers to the current ec.
+ for (int supp_count = 0; supp_count < this->supplier_admin_count_; ++supp_count)
+ {
+ supplier_admin_id [supp_count] = create_supplier_admin (ec_id [ec_count],
+ ACE_TRY_ENV);
+ ACE_CHECK;
+ }
+ }
+
+ // destroy the ec, the admins should destroy too.
+ for (ec_count = 0; ec_count < this->ec_count_; ++ec_count)
+ {
+ this->destroy_ec (ec_id [ec_count], ACE_TRY_ENV);
+ ACE_CHECK;
+ }
+
+ } // for
+
+
+ //*************** ************ ************ ************ ************ ************
+ // repeat, but this time destroy the admins explicity
+ for (i = 0; i < this->iter_; ++i)
+ {
+ int ec_count;
+ for (ec_count = 0; ec_count < this->ec_count_; ++ec_count)
+ {
+ ec_id [ec_count] = create_ec(ACE_TRY_ENV);
+ ACE_CHECK;
+
+ int cons_count, supp_count;
+ // connect <consumer_admin_count_> number of consumers to the current ec.
+ for (cons_count = 0; cons_count < this->consumer_admin_count_; ++cons_count)
+ {
+ consumer_admin_id [cons_count] = create_consumer_admin (ec_id [ec_count],
+ ACE_TRY_ENV);
+ ACE_CHECK;
+ }
+
+ // connect <supplier_admin_count_> number of suppliers to the current ec.
+ for (supp_count = 0; supp_count < this->supplier_admin_count_; ++supp_count)
+ {
+ supplier_admin_id [supp_count] = create_supplier_admin (ec_id [ec_count],
+ ACE_TRY_ENV);
+ ACE_CHECK;
+ }
+ // destroy the admins
+
+ // destroy consumer admins
+ for (cons_count = 0; cons_count < this->consumer_admin_count_; ++cons_count)
+ {
+ destroy_consumer_admin (ec_id [ec_count],consumer_admin_id [cons_count],
+ ACE_TRY_ENV);
+ ACE_CHECK;
+ }
+
+ // destroy supplier admins
+ for (supp_count = 0; supp_count < this->supplier_admin_count_; ++supp_count)
+ {
+ destroy_supplier_admin (ec_id [ec_count], supplier_admin_id [supp_count],
+ ACE_TRY_ENV);
+ ACE_CHECK;
+ }
+
+ } // ec_count
+
+ // destroy the ec,
+ for (ec_count = 0; ec_count < this->ec_count_; ++ec_count)
+ {
+ this->destroy_ec (ec_id [ec_count], ACE_TRY_ENV);
+ ACE_CHECK;
+ }
+
+ } // for
+
+ //*************** ************ ************ ************ ************ ************
+}
+
+int main(int argc, char* argv[])
+{
+ ACE_DECLARE_NEW_CORBA_ENV;
+ ACE_TRY
+ {
+ IdAssignment test;
+
+ test.parse_args (argc, argv);
+
+ test.init(argc, argv, ACE_TRY_ENV);
+ ACE_TRY_CHECK;
+
+ test.run_test(ACE_TRY_ENV);
+ ACE_TRY_CHECK;
+ }
+ ACE_CATCHANY
+ {
+ ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION,
+ "Caught exception:");
+ return 1;
+ }
+ ACE_ENDTRY;
+ ACE_DEBUG ((LM_DEBUG, "IdAssignment test suceeded\n"));
+ return 0;
+}
diff --git a/TAO/orbsvcs/tests/Notify/Basic/IdAssignment.h b/TAO/orbsvcs/tests/Notify/Basic/IdAssignment.h
new file mode 100644
index 00000000000..a1b4f7e293d
--- /dev/null
+++ b/TAO/orbsvcs/tests/Notify/Basic/IdAssignment.h
@@ -0,0 +1,58 @@
+/* -*- C++ -*- */
+// $Id$
+// ==========================================================================
+//
+// = FILENAME
+// LifeCycleTest.h
+//
+// = DESCRIPTION
+// Test to check if ec, admin are assigned id's correctly.
+//
+// = AUTHORS
+// Chanaka Liyanaarachchi <chanaka@ociweb.com> and Pradeep Gore <pradeep@cs.wustl.edu>
+//
+// ==========================================================================
+
+#ifndef IDASSIGNMENT_H
+#define IDASSIGNMENT_H
+
+#include "orbsvcs/CosNotifyChannelAdminC.h"
+
+class IdAssignment
+{
+public:
+ IdAssignment (void);
+ ~IdAssignment ();
+
+ int parse_args(int argc, char *argv[]);
+ void init(int argc, char *argv[], CORBA::Environment &ACE_TRY_ENV);
+ void run_test(CORBA::Environment &ACE_TRY_ENV);
+
+private:
+ CosNotifyChannelAdmin::ChannelID create_ec(CORBA::Environment &ACE_TRY_ENV);
+ void destroy_ec(CosNotifyChannelAdmin::ChannelID id,
+ CORBA::Environment &ACE_TRY_ENV);
+
+ CosNotifyChannelAdmin::AdminID create_supplier_admin (CosNotifyChannelAdmin::ChannelID channel_id, CORBA::Environment &ACE_TRY_ENV);
+ CosNotifyChannelAdmin::AdminID create_consumer_admin (CosNotifyChannelAdmin::ChannelID channel_id, CORBA::Environment &ACE_TRY_ENV);
+
+ void destroy_consumer_admin (CosNotifyChannelAdmin::ChannelID channel_id, CosNotifyChannelAdmin::AdminID admin_id, CORBA::Environment &ACE_TRY_ENV);
+ void destroy_supplier_admin (CosNotifyChannelAdmin::ChannelID channel_id, CosNotifyChannelAdmin::AdminID admin_id, CORBA::Environment &ACE_TRY_ENV);
+
+ // = Data members
+ CosNotifyChannelAdmin::EventChannelFactory_var notify_factory_;
+
+ int iter_;
+ // Number of iterations for the test.
+
+ int ec_count_;
+ // Numbers of EC's to create.
+
+ int consumer_admin_count_;
+ // Number of consumer admins to create per ec.
+
+ int supplier_admin_count_;
+ // Number of consumer admins to create per ec.
+};
+
+#endif /* IDASSIGNMENT_H */
diff --git a/TAO/orbsvcs/tests/Notify/Basic/LifeCycleTest.cpp b/TAO/orbsvcs/tests/Notify/Basic/LifeCycleTest.cpp
new file mode 100644
index 00000000000..68e448c9477
--- /dev/null
+++ b/TAO/orbsvcs/tests/Notify/Basic/LifeCycleTest.cpp
@@ -0,0 +1,239 @@
+//$Id$
+
+#include "ace/Arg_Shifter.h"
+#include "ace/Get_Opt.h"
+#include <orbsvcs/CosNamingC.h>
+#include <orbsvcs/CosNotifyCommC.h>
+#include <orbsvcs/CosNotifyChannelAdminC.h>
+
+#include "LifeCycleTest.h"
+
+ACE_RCSID (Notify_Tests, LifeCycleTest, "$Id$")
+
+LifeCycleTest::LifeCycleTest (void)
+ :count_ (10) // default
+{
+}
+
+LifeCycleTest::~LifeCycleTest ()
+{
+}
+
+int
+LifeCycleTest::parse_args(int argc, char *argv[])
+{
+ ACE_Arg_Shifter arg_shifter (argc, argv);
+
+ char *current_arg = 0;
+ while (arg_shifter.is_anything_left ())
+ {
+ if ((current_arg = arg_shifter.get_the_parameter ("-count")))
+ {
+ this->count_ = ACE_OS::atoi (current_arg);
+ // The number of times to create and destroy
+ arg_shifter.consume_arg ();
+ }
+ else if (arg_shifter.cur_arg_strncasecmp ("-?") == 0)
+ {
+ ACE_DEBUG((LM_DEBUG,
+ "usage: %s "
+ "-count testcount \n",
+ argv[0], argv[0]));
+
+ arg_shifter.consume_arg ();
+
+ return -1;
+ }
+ else
+ {
+ arg_shifter.ignore_arg ();
+ }
+ }
+ return 0;
+}
+
+void
+LifeCycleTest::init(int argc, char* argv[], CORBA::Environment &ACE_TRY_ENV)
+{
+ CORBA::ORB_var orb = CORBA::ORB_init(argc, argv, "", ACE_TRY_ENV);
+ ACE_CHECK;
+
+ CORBA::Object_var rootObj = orb->resolve_initial_references("NameService",
+ ACE_TRY_ENV);
+ ACE_CHECK;
+
+ if (CORBA::is_nil(rootObj.in()))
+ {
+ ACE_ERROR ((LM_ERROR,
+ " (%P|%t) Unable to resolve naming service !\n"));
+ return;
+ }
+ CosNaming::NamingContext_var rootNC =
+ CosNaming::NamingContext::_narrow(rootObj.in(),
+ ACE_TRY_ENV);
+ ACE_CHECK;
+
+ CosNaming::Name name(1);
+ name.length(1);
+ name[0].id = CORBA::string_dup("NotifyEventChannelFactory");
+
+ CORBA::Object_var obj = rootNC->resolve(name, ACE_TRY_ENV);
+ ACE_CHECK;
+
+ notify_factory_ =
+ CosNotifyChannelAdmin::EventChannelFactory::_narrow(obj.in(),
+ ACE_TRY_ENV);
+ ACE_CHECK;
+
+ if (CORBA::is_nil(notify_factory_.in()))
+ {
+ ACE_ERROR ((LM_ERROR,
+ " (%P|%t) Unable to locate Notify_Service \n"));
+
+ return;
+ }
+}
+
+void
+LifeCycleTest::run_test(CORBA::Environment &ACE_TRY_ENV)
+{
+ for (int i = 0; i < this->count_; ++i)
+ {
+ this->create_ec(ACE_TRY_ENV);
+ this->create_supplier_admin(ACE_TRY_ENV);
+ this->create_consumer_admin(ACE_TRY_ENV);
+ this->destroy_consumer_admin(ACE_TRY_ENV);
+ this->destroy_supplier_admin(ACE_TRY_ENV);
+ this->destroy_ec(ACE_TRY_ENV);
+ }
+}
+
+void
+LifeCycleTest::create_ec(CORBA::Environment &ACE_TRY_ENV)
+{
+ CosNotifyChannelAdmin::ChannelID id;
+ CosNotification::QoSProperties initial_qos;
+ CosNotification::AdminProperties initial_admin;
+
+ ec_ = notify_factory_->create_channel(initial_qos,
+ initial_admin,
+ id,
+ ACE_TRY_ENV);
+ ACE_CHECK;
+
+ if (CORBA::is_nil (ec_.in())) {
+ ACE_ERROR ((LM_ERROR,
+ " (%P|%t) Unable to create event channel\n"));
+ return;
+ }
+
+ ACE_DEBUG((LM_DEBUG, "created event channel\n"));
+}
+
+
+void
+LifeCycleTest::create_supplier_admin(CORBA::Environment &ACE_TRY_ENV)
+{
+ CosNotifyChannelAdmin::AdminID adminid;
+ CosNotifyChannelAdmin::InterFilterGroupOperator ifgop =
+ CosNotifyChannelAdmin::OR_OP;
+
+ supplier_admin_ = ec_->new_for_suppliers (ifgop, adminid, ACE_TRY_ENV);
+ ACE_CHECK;
+
+ if (CORBA::is_nil (supplier_admin_.in())) {
+ ACE_ERROR ((LM_ERROR,
+ " (%P|%t) Unable to create supplier admin\n"));
+ return;
+ }
+
+ ACE_DEBUG((LM_DEBUG, "created supplier admin\n"));
+}
+
+void
+LifeCycleTest::create_consumer_admin(CORBA::Environment &ACE_TRY_ENV)
+{
+ CosNotifyChannelAdmin::AdminID adminid;
+ CosNotifyChannelAdmin::InterFilterGroupOperator ifgop =
+ CosNotifyChannelAdmin::OR_OP;
+
+ consumer_admin_ = ec_->new_for_consumers (ifgop, adminid, ACE_TRY_ENV);
+ ACE_CHECK;
+
+ if (CORBA::is_nil (consumer_admin_.in())) {
+ ACE_ERROR ((LM_ERROR,
+ " (%P|%t) Unable to find supplier admin\n"));
+ return;
+ }
+
+ ACE_DEBUG((LM_DEBUG, "created consumer admin\n"));
+}
+
+void
+LifeCycleTest::destroy_supplier_admin(CORBA::Environment &ACE_TRY_ENV)
+{
+ supplier_admin_->destroy(ACE_TRY_ENV);
+ ACE_CHECK;
+
+ ACE_DEBUG((LM_DEBUG, "destroyed supplier admin\n"));
+}
+
+void
+LifeCycleTest::destroy_consumer_admin(CORBA::Environment &ACE_TRY_ENV)
+{
+ consumer_admin_->destroy(ACE_TRY_ENV);
+ ACE_CHECK;
+
+ ACE_DEBUG((LM_DEBUG, "destroyed consumer admin\n"));
+}
+
+void
+LifeCycleTest::destroy_ec(CORBA::Environment &ACE_TRY_ENV)
+{
+ ec_->destroy(ACE_TRY_ENV);
+ ACE_CHECK;
+ ACE_DEBUG((LM_DEBUG, "destroyed event channel\n"));
+}
+
+
+int
+main(int argc, char *argv[])
+{
+ ACE_DECLARE_NEW_CORBA_ENV;
+ ACE_TRY
+ {
+ LifeCycleTest test;
+
+ test.parse_args (argc, argv);
+
+ test.init(argc, argv, ACE_TRY_ENV);
+ ACE_TRY_CHECK;
+
+ test.run_test(ACE_TRY_ENV);
+ ACE_TRY_CHECK;
+ }
+ ACE_CATCH(CosNotification::UnsupportedAdmin, ex)
+ {
+ ACE_PRINT_EXCEPTION (ex, "Unsupported Admin Properties");
+ }
+ ACE_CATCH(CosNotification::UnsupportedQoS, ex)
+ {
+ ACE_PRINT_EXCEPTION (ex, "Unsupported QoS Properties");
+ }
+ ACE_CATCH(CosNotifyChannelAdmin::AdminNotFound, ex)
+ {
+ ACE_PRINT_EXCEPTION (ex, "destroying admin object");
+ }
+ ACE_CATCH(CosNotifyChannelAdmin::AdminNotFound, ex)
+ {
+ ACE_PRINT_EXCEPTION (ex, "destroying admin object");
+ }
+ ACE_CATCHANY
+ {
+ ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION,
+ "Caught exception:");
+ return 1;
+ }
+ ACE_ENDTRY;
+ return 0;
+}
diff --git a/TAO/orbsvcs/tests/Notify/Basic/LifeCycleTest.h b/TAO/orbsvcs/tests/Notify/Basic/LifeCycleTest.h
new file mode 100644
index 00000000000..bba9561b41b
--- /dev/null
+++ b/TAO/orbsvcs/tests/Notify/Basic/LifeCycleTest.h
@@ -0,0 +1,46 @@
+/* -*- C++ -*- */
+// $Id$
+// ==========================================================================
+//
+// = FILENAME
+// LifeCycleTest.h
+//
+// = DESCRIPTION
+// Test to check it ec and admin objects are destroyed.
+//
+// = AUTHOR
+// Chanaka Liyanaarachchi <chanaka@ociweb.com>
+//
+// ==========================================================================
+
+#ifndef NOTIFY_LIFECYCLETST_H
+#define NOTIFY_LIFECYCLETST_H
+
+class LifeCycleTest
+{
+public:
+ LifeCycleTest (void);
+ ~LifeCycleTest ();
+
+ void init(int argc, char *argv[], CORBA::Environment &ACE_TRY_ENV);
+ void run_test(CORBA::Environment &ACE_TRY_ENV);
+ int parse_args(int argc, char *argv[]);
+
+private:
+ void create_ec(CORBA::Environment &ACE_TRY_ENV);
+ void create_supplier_admin(CORBA::Environment &ACE_TRY_ENV);
+ void create_consumer_admin(CORBA::Environment &ACE_TRY_ENV);
+ void destroy_ec(CORBA::Environment &ACE_TRY_ENV);
+ void destroy_supplier_admin(CORBA::Environment &ACE_TRY_ENV);
+ void destroy_consumer_admin(CORBA::Environment &ACE_TRY_ENV);
+
+ CosNotifyChannelAdmin::EventChannelFactory_var notify_factory_;
+ CosNotifyChannelAdmin::EventChannel_var ec_;
+ CosNotifyChannelAdmin::SupplierAdmin_var supplier_admin_;
+ CosNotifyChannelAdmin::ConsumerAdmin_var consumer_admin_;
+
+ int count_;
+ // number of times to create destroy.
+};
+
+#endif /* NOTIFY_LIFECYCLETST_H */
diff --git a/TAO/orbsvcs/tests/Notify/Basic/Makefile b/TAO/orbsvcs/tests/Notify/Basic/Makefile
index 728f81572bf..0b1a9d3a7d0 100644
--- a/TAO/orbsvcs/tests/Notify/Basic/Makefile
+++ b/TAO/orbsvcs/tests/Notify/Basic/Makefile
@@ -12,7 +12,9 @@ ifndef TAO_ROOT
TAO_ROOT = $(ACE_ROOT)/TAO
endif # ! TAO_ROOT
-BIN2 = ConnectDisconnect
+BIN2 = ConnectDisconnect \
+ LifeCycleTest \
+ IdAssignment
#### If the orbsvcs library wasn't built with all components, don't
#### try to build certain tests.
@@ -28,6 +30,7 @@ LDLIBS = -lNotifyTests -lTAO_CosNotification -lTAO_Svc_Utils -lTAO_CosNaming -lT
CPPFLAGS += -I../lib -I$(TAO_ROOT) -I$(TAO_ROOT)/orbsvcs \
$(foreach svc, $(TAO_ORBSVCS), -DTAO_ORBSVCS_HAS_$(svc))
+ BIN = $(BIN2)
#----------------------------------------------------------------------------
# Include macros and targets
#----------------------------------------------------------------------------
@@ -432,6 +435,373 @@ endif # Notify
../lib/Notify_PushSupplier.h ../lib/Notify_SequencePushConsumer.h \
../lib/Notify_SequencePushSupplier.h
+.obj/LifeCycleTest.o .obj/LifeCycleTest.so .shobj/LifeCycleTest.o .shobj/LifeCycleTest.so: LifeCycleTest.cpp \
+ $(ACE_ROOT)/ace/Arg_Shifter.h \
+ $(ACE_ROOT)/ace/pre.h \
+ $(ACE_ROOT)/ace/OS.h \
+ $(ACE_ROOT)/ace/config-sunos5.6.h \
+ $(ACE_ROOT)/ace/config-sunos5.5.h \
+ $(ACE_ROOT)/ace/post.h \
+ $(ACE_ROOT)/ace/ACE_export.h \
+ $(ACE_ROOT)/ace/svc_export.h \
+ $(ACE_ROOT)/ace/ace_wchar.h \
+ $(ACE_ROOT)/ace/OS_Dirent.h \
+ $(ACE_ROOT)/ace/OS_Export.h \
+ $(ACE_ROOT)/ace/OS_Dirent.inl \
+ $(ACE_ROOT)/ace/OS_String.h \
+ $(ACE_ROOT)/ace/OS_String.inl \
+ $(ACE_ROOT)/ace/OS_Memory.h \
+ $(ACE_ROOT)/ace/OS_Memory.inl \
+ $(ACE_ROOT)/ace/OS_TLI.h \
+ $(ACE_ROOT)/ace/OS_TLI.inl \
+ $(ACE_ROOT)/ace/Min_Max.h \
+ $(ACE_ROOT)/ace/streams.h \
+ $(ACE_ROOT)/ace/Basic_Types.h \
+ $(ACE_ROOT)/ace/Basic_Types.i \
+ $(ACE_ROOT)/ace/Trace.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/Log_Msg.h \
+ $(ACE_ROOT)/ace/Log_Record.h \
+ $(ACE_ROOT)/ace/Log_Priority.h \
+ $(ACE_ROOT)/ace/Log_Record.i \
+ $(ACE_ROOT)/ace/Get_Opt.h \
+ $(ACE_ROOT)/ace/ACE.h \
+ $(ACE_ROOT)/ace/ACE.i \
+ $(ACE_ROOT)/ace/Get_Opt.i \
+ LifeCycleTest.h
+
+.obj/IdAssignment.o .obj/IdAssignment.so .shobj/IdAssignment.o .shobj/IdAssignment.so: IdAssignment.cpp \
+ $(ACE_ROOT)/ace/Arg_Shifter.h \
+ $(ACE_ROOT)/ace/pre.h \
+ $(ACE_ROOT)/ace/OS.h \
+ $(ACE_ROOT)/ace/config-sunos5.6.h \
+ $(ACE_ROOT)/ace/config-sunos5.5.h \
+ $(ACE_ROOT)/ace/post.h \
+ $(ACE_ROOT)/ace/ACE_export.h \
+ $(ACE_ROOT)/ace/svc_export.h \
+ $(ACE_ROOT)/ace/ace_wchar.h \
+ $(ACE_ROOT)/ace/OS_Dirent.h \
+ $(ACE_ROOT)/ace/OS_Export.h \
+ $(ACE_ROOT)/ace/OS_Dirent.inl \
+ $(ACE_ROOT)/ace/OS_String.h \
+ $(ACE_ROOT)/ace/OS_String.inl \
+ $(ACE_ROOT)/ace/OS_Memory.h \
+ $(ACE_ROOT)/ace/OS_Memory.inl \
+ $(ACE_ROOT)/ace/OS_TLI.h \
+ $(ACE_ROOT)/ace/OS_TLI.inl \
+ $(ACE_ROOT)/ace/Min_Max.h \
+ $(ACE_ROOT)/ace/streams.h \
+ $(ACE_ROOT)/ace/Basic_Types.h \
+ $(ACE_ROOT)/ace/Basic_Types.i \
+ $(ACE_ROOT)/ace/Trace.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/Log_Msg.h \
+ $(ACE_ROOT)/ace/Log_Record.h \
+ $(ACE_ROOT)/ace/Log_Priority.h \
+ $(ACE_ROOT)/ace/Log_Record.i \
+ $(ACE_ROOT)/ace/Get_Opt.h \
+ $(ACE_ROOT)/ace/ACE.h \
+ $(ACE_ROOT)/ace/ACE.i \
+ $(ACE_ROOT)/ace/Get_Opt.i \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingC.h \
+ $(TAO_ROOT)/tao/corba.h \
+ $(TAO_ROOT)/tao/corbafwd.h \
+ $(ACE_ROOT)/ace/CDR_Stream.h \
+ $(ACE_ROOT)/ace/Message_Block.h \
+ $(ACE_ROOT)/ace/Malloc.h \
+ $(ACE_ROOT)/ace/Malloc_Base.h \
+ $(ACE_ROOT)/ace/Based_Pointer_T.h \
+ $(ACE_ROOT)/ace/Based_Pointer_T.i \
+ $(ACE_ROOT)/ace/Based_Pointer_T.cpp \
+ $(ACE_ROOT)/ace/Based_Pointer_Repository.h \
+ $(ACE_ROOT)/ace/Singleton.h \
+ $(ACE_ROOT)/ace/Synch.h \
+ $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
+ $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
+ $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
+ $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
+ $(ACE_ROOT)/ace/Synch.i \
+ $(ACE_ROOT)/ace/Synch_T.h \
+ $(ACE_ROOT)/ace/Event_Handler.h \
+ $(ACE_ROOT)/ace/Event_Handler.i \
+ $(ACE_ROOT)/ace/Synch_T.i \
+ $(ACE_ROOT)/ace/Thread.h \
+ $(ACE_ROOT)/ace/Thread.i \
+ $(ACE_ROOT)/ace/Atomic_Op.i \
+ $(ACE_ROOT)/ace/Synch_T.cpp \
+ $(ACE_ROOT)/ace/Singleton.i \
+ $(ACE_ROOT)/ace/Singleton.cpp \
+ $(ACE_ROOT)/ace/Object_Manager.h \
+ $(ACE_ROOT)/ace/Object_Manager.i \
+ $(ACE_ROOT)/ace/Managed_Object.h \
+ $(ACE_ROOT)/ace/Managed_Object.i \
+ $(ACE_ROOT)/ace/Managed_Object.cpp \
+ $(ACE_ROOT)/ace/Malloc.i \
+ $(ACE_ROOT)/ace/Malloc_T.h \
+ $(ACE_ROOT)/ace/Free_List.h \
+ $(ACE_ROOT)/ace/Free_List.i \
+ $(ACE_ROOT)/ace/Free_List.cpp \
+ $(ACE_ROOT)/ace/Malloc_T.i \
+ $(ACE_ROOT)/ace/Malloc_T.cpp \
+ $(ACE_ROOT)/ace/Memory_Pool.h \
+ $(ACE_ROOT)/ace/Signal.h \
+ $(ACE_ROOT)/ace/Containers.h \
+ $(ACE_ROOT)/ace/Containers.i \
+ $(ACE_ROOT)/ace/Containers_T.h \
+ $(ACE_ROOT)/ace/Containers_T.i \
+ $(ACE_ROOT)/ace/Containers_T.cpp \
+ $(ACE_ROOT)/ace/Signal.i \
+ $(ACE_ROOT)/ace/Mem_Map.h \
+ $(ACE_ROOT)/ace/Mem_Map.i \
+ $(ACE_ROOT)/ace/Memory_Pool.i \
+ $(ACE_ROOT)/ace/Message_Block.i \
+ $(ACE_ROOT)/ace/Message_Block_T.h \
+ $(ACE_ROOT)/ace/Message_Block_T.i \
+ $(ACE_ROOT)/ace/Message_Block_T.cpp \
+ $(ACE_ROOT)/ace/SString.h \
+ $(ACE_ROOT)/ace/SString.i \
+ $(ACE_ROOT)/ace/CDR_Stream.i \
+ $(TAO_ROOT)/tao/try_macros.h \
+ $(TAO_ROOT)/tao/orbconf.h \
+ $(ACE_ROOT)/ace/CORBA_macros.h \
+ $(TAO_ROOT)/tao/varbase.h \
+ $(TAO_ROOT)/tao/TAO_Export.h \
+ $(TAO_ROOT)/tao/corbafwd.i \
+ $(TAO_ROOT)/tao/Environment.h \
+ $(TAO_ROOT)/tao/Environment.i \
+ $(TAO_ROOT)/tao/ORB.h \
+ $(TAO_ROOT)/tao/Exception.h \
+ $(TAO_ROOT)/tao/Exception.i \
+ $(TAO_ROOT)/tao/IOR_LookupTable.h \
+ $(ACE_ROOT)/ace/Hash_Map_Manager.h \
+ $(ACE_ROOT)/ace/Functor.h \
+ $(ACE_ROOT)/ace/Functor.i \
+ $(ACE_ROOT)/ace/Functor_T.h \
+ $(ACE_ROOT)/ace/Functor_T.i \
+ $(ACE_ROOT)/ace/Functor_T.cpp \
+ $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
+ $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
+ $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
+ $(ACE_ROOT)/ace/Service_Config.h \
+ $(ACE_ROOT)/ace/Service_Object.h \
+ $(ACE_ROOT)/ace/Shared_Object.h \
+ $(ACE_ROOT)/ace/Shared_Object.i \
+ $(ACE_ROOT)/ace/Service_Object.i \
+ $(ACE_ROOT)/ace/Service_Config.i \
+ $(ACE_ROOT)/ace/Reactor.h \
+ $(ACE_ROOT)/ace/Handle_Set.h \
+ $(ACE_ROOT)/ace/Handle_Set.i \
+ $(ACE_ROOT)/ace/Timer_Queue.h \
+ $(ACE_ROOT)/ace/Timer_Queue_T.h \
+ $(ACE_ROOT)/ace/Timer_Queue_T.i \
+ $(ACE_ROOT)/ace/Timer_Queue_T.cpp \
+ $(ACE_ROOT)/ace/Reactor.i \
+ $(ACE_ROOT)/ace/Reactor_Impl.h \
+ $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \
+ $(TAO_ROOT)/tao/Services.h \
+ $(TAO_ROOT)/tao/Sequence.h \
+ $(TAO_ROOT)/tao/Managed_Types.h \
+ $(TAO_ROOT)/tao/Managed_Types.i \
+ $(TAO_ROOT)/tao/Sequence.i \
+ $(TAO_ROOT)/tao/Sequence_T.h \
+ $(TAO_ROOT)/tao/Sequence_T.i \
+ $(TAO_ROOT)/tao/Sequence_T.cpp \
+ $(TAO_ROOT)/tao/Services.i \
+ $(TAO_ROOT)/tao/IORManipulation.h \
+ $(TAO_ROOT)/tao/LocalObject.h \
+ $(TAO_ROOT)/tao/Object.h \
+ $(TAO_ROOT)/tao/Object.i \
+ $(TAO_ROOT)/tao/LocalObject.i \
+ $(TAO_ROOT)/tao/IORC.h \
+ $(TAO_ROOT)/tao/IORC.i \
+ $(TAO_ROOT)/tao/Interceptor.h \
+ $(TAO_ROOT)/tao/InterceptorC.h \
+ $(TAO_ROOT)/tao/IOPC.h \
+ $(TAO_ROOT)/tao/CDR.h \
+ $(TAO_ROOT)/tao/CDR.i \
+ $(TAO_ROOT)/tao/IOPC.i \
+ $(TAO_ROOT)/tao/InterceptorC.i \
+ $(TAO_ROOT)/tao/Interceptor.i \
+ $(TAO_ROOT)/tao/PolicyC.h \
+ $(TAO_ROOT)/tao/CurrentC.h \
+ $(TAO_ROOT)/tao/CurrentC.i \
+ $(TAO_ROOT)/tao/Encodable.h \
+ $(TAO_ROOT)/tao/Typecode.h \
+ $(TAO_ROOT)/tao/Typecode.i \
+ $(TAO_ROOT)/tao/PolicyC.i \
+ $(TAO_ROOT)/tao/ORB.i \
+ $(TAO_ROOT)/tao/Any.h \
+ $(TAO_ROOT)/tao/Any.i \
+ $(TAO_ROOT)/tao/NVList.h \
+ $(TAO_ROOT)/tao/NVList.i \
+ $(TAO_ROOT)/tao/Principal.h \
+ $(TAO_ROOT)/tao/Principal.i \
+ $(TAO_ROOT)/tao/Request.h \
+ $(TAO_ROOT)/tao/Context.h \
+ $(TAO_ROOT)/tao/Context.i \
+ $(TAO_ROOT)/tao/MessagingC.h \
+ $(TAO_ROOT)/tao/ValueBase.h \
+ $(TAO_ROOT)/tao/ValueBase.i \
+ $(TAO_ROOT)/tao/ValueFactory.h \
+ $(TAO_ROOT)/tao/ValueFactory.i \
+ $(TAO_ROOT)/tao/TimeBaseC.h \
+ $(TAO_ROOT)/tao/TimeBaseC.i \
+ $(TAO_ROOT)/tao/PollableC.h \
+ $(TAO_ROOT)/tao/PollableC.i \
+ $(TAO_ROOT)/tao/MessagingC.i \
+ $(TAO_ROOT)/tao/Request.i \
+ $(TAO_ROOT)/tao/Server_Request.h \
+ $(TAO_ROOT)/tao/Object_KeyC.h \
+ $(TAO_ROOT)/tao/Object_KeyC.i \
+ $(TAO_ROOT)/tao/Server_Request.i \
+ $(TAO_ROOT)/tao/POA.h \
+ $(TAO_ROOT)/tao/Object_Adapter.h \
+ $(TAO_ROOT)/tao/Key_Adapters.h \
+ $(ACE_ROOT)/ace/Map.h \
+ $(ACE_ROOT)/ace/Map_T.h \
+ $(ACE_ROOT)/ace/Pair.h \
+ $(ACE_ROOT)/ace/Pair_T.h \
+ $(ACE_ROOT)/ace/Pair_T.i \
+ $(ACE_ROOT)/ace/Pair_T.cpp \
+ $(ACE_ROOT)/ace/Map_Manager.h \
+ $(ACE_ROOT)/ace/Map_Manager.i \
+ $(ACE_ROOT)/ace/Map_Manager.cpp \
+ $(ACE_ROOT)/ace/Active_Map_Manager.h \
+ $(ACE_ROOT)/ace/Active_Map_Manager.i \
+ $(ACE_ROOT)/ace/Active_Map_Manager_T.h \
+ $(ACE_ROOT)/ace/Active_Map_Manager_T.i \
+ $(ACE_ROOT)/ace/Active_Map_Manager_T.cpp \
+ $(ACE_ROOT)/ace/Map_T.i \
+ $(ACE_ROOT)/ace/Map_T.cpp \
+ $(TAO_ROOT)/tao/PortableServerC.h \
+ $(TAO_ROOT)/tao/PortableServerC.i \
+ $(TAO_ROOT)/tao/Key_Adapters.i \
+ $(TAO_ROOT)/tao/Server_Strategy_Factory.h \
+ $(TAO_ROOT)/tao/poa_macros.h \
+ $(TAO_ROOT)/tao/Servant_Base.h \
+ $(TAO_ROOT)/tao/Servant_Base.i \
+ $(TAO_ROOT)/tao/Active_Object_Map.h \
+ $(TAO_ROOT)/tao/Active_Object_Map.i \
+ $(TAO_ROOT)/tao/RTCORBAC.h \
+ $(TAO_ROOT)/tao/RTCORBAC.i \
+ $(TAO_ROOT)/tao/Object_Adapter.i \
+ $(TAO_ROOT)/tao/POAManager.h \
+ $(TAO_ROOT)/tao/POAManager.i \
+ $(TAO_ROOT)/tao/POA.i \
+ $(TAO_ROOT)/tao/Stub.h \
+ $(TAO_ROOT)/tao/Pluggable.h \
+ $(ACE_ROOT)/ace/Message_Queue.h \
+ $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
+ $(ACE_ROOT)/ace/Message_Queue_T.h \
+ $(ACE_ROOT)/ace/Message_Queue_T.i \
+ $(ACE_ROOT)/ace/Message_Queue_T.cpp \
+ $(ACE_ROOT)/ace/Strategies.h \
+ $(ACE_ROOT)/ace/Strategies_T.h \
+ $(ACE_ROOT)/ace/Synch_Options.h \
+ $(ACE_ROOT)/ace/Synch_Options.i \
+ $(ACE_ROOT)/ace/Thread_Manager.h \
+ $(ACE_ROOT)/ace/Thread_Manager.i \
+ $(ACE_ROOT)/ace/Strategies_T.i \
+ $(ACE_ROOT)/ace/Strategies_T.cpp \
+ $(ACE_ROOT)/ace/Service_Repository.h \
+ $(ACE_ROOT)/ace/Service_Types.h \
+ $(ACE_ROOT)/ace/Service_Types.i \
+ $(ACE_ROOT)/ace/Service_Repository.i \
+ $(ACE_ROOT)/ace/WFMO_Reactor.h \
+ $(ACE_ROOT)/ace/WFMO_Reactor.i \
+ $(ACE_ROOT)/ace/Strategies.i \
+ $(ACE_ROOT)/ace/Message_Queue.i \
+ $(TAO_ROOT)/tao/Pluggable.i \
+ $(TAO_ROOT)/tao/MProfile.h \
+ $(TAO_ROOT)/tao/Profile.h \
+ $(TAO_ROOT)/tao/Tagged_Components.h \
+ $(TAO_ROOT)/tao/CONV_FRAMEC.h \
+ $(TAO_ROOT)/tao/CONV_FRAMEC.i \
+ $(TAO_ROOT)/tao/Tagged_Components.i \
+ $(TAO_ROOT)/tao/Profile.i \
+ $(TAO_ROOT)/tao/MProfile.i \
+ $(TAO_ROOT)/tao/Stub.i \
+ $(TAO_ROOT)/tao/params.h \
+ $(TAO_ROOT)/tao/params.i \
+ $(TAO_ROOT)/tao/ORB_Core.h \
+ $(TAO_ROOT)/tao/Policy_Manager.h \
+ $(TAO_ROOT)/tao/POA_CORBA.h \
+ $(TAO_ROOT)/tao/DynAnyC.h \
+ $(TAO_ROOT)/tao/DynAnyC.i \
+ $(TAO_ROOT)/tao/DomainC.h \
+ $(TAO_ROOT)/tao/DomainC.i \
+ $(TAO_ROOT)/tao/Policy_Manager.i \
+ $(TAO_ROOT)/tao/Resource_Factory.h \
+ $(TAO_ROOT)/tao/Protocol_Factory.h \
+ $(TAO_ROOT)/tao/TAO_Singleton_Manager.h \
+ $(TAO_ROOT)/tao/TAO_Singleton_Manager.inl \
+ $(TAO_ROOT)/tao/TAO_Singleton.h \
+ $(TAO_ROOT)/tao/TAO_Singleton.inl \
+ $(TAO_ROOT)/tao/TAO_Singleton.cpp \
+ $(TAO_ROOT)/tao/ORB_Core.i \
+ $(ACE_ROOT)/ace/Dynamic_Service.h \
+ $(ACE_ROOT)/ace/Dynamic_Service.cpp \
+ $(TAO_ROOT)/tao/Operation_Table.h \
+ $(TAO_ROOT)/tao/debug.h \
+ $(TAO_ROOT)/tao/Client_Strategy_Factory.h \
+ $(TAO_ROOT)/tao/Invocation.h \
+ $(TAO_ROOT)/tao/Synch_Reply_Dispatcher.h \
+ $(TAO_ROOT)/tao/Reply_Dispatcher.h \
+ $(TAO_ROOT)/tao/Reply_Dispatcher.i \
+ $(TAO_ROOT)/tao/GIOP_Message_State.h \
+ $(TAO_ROOT)/tao/Pluggable_Messaging.h \
+ $(TAO_ROOT)/tao/Pluggable_Messaging_Utils.h \
+ $(TAO_ROOT)/tao/Pluggable_Messaging_Utils.i \
+ $(TAO_ROOT)/tao/Pluggable_Messaging.i \
+ $(TAO_ROOT)/tao/GIOP_Message_State.i \
+ $(TAO_ROOT)/tao/Synch_Reply_Dispatcher.i \
+ $(TAO_ROOT)/tao/TAOC.h \
+ $(TAO_ROOT)/tao/Priority_Mapping_Manager.h \
+ $(TAO_ROOT)/tao/Priority_Mapping.h \
+ $(TAO_ROOT)/tao/Priority_Mapping.i \
+ $(TAO_ROOT)/tao/Priority_Mapping_Manager.i \
+ $(TAO_ROOT)/tao/TAOC.i \
+ $(TAO_ROOT)/tao/operation_details.h \
+ $(TAO_ROOT)/tao/target_specification.h \
+ $(TAO_ROOT)/tao/target_specification.i \
+ $(TAO_ROOT)/tao/operation_details.i \
+ $(TAO_ROOT)/tao/Invocation.i \
+ $(TAO_ROOT)/tao/InconsistentTypeCodeC.h \
+ $(TAO_ROOT)/tao/DynAny_i.h \
+ $(TAO_ROOT)/tao/ObjectIDList.h \
+ $(TAO_ROOT)/tao/ObjectIDList.i \
+ $(TAO_ROOT)/tao/WrongTransactionC.h \
+ $(TAO_ROOT)/tao/InterfaceC.h \
+ $(TAO_ROOT)/tao/ifrfwd.h \
+ $(TAO_ROOT)/tao/BoundsC.h \
+ $(TAO_ROOT)/tao/BoundsC.i \
+ $(TAO_ROOT)/tao/MessagingS.h \
+ $(TAO_ROOT)/tao/TimeBaseS.h \
+ $(TAO_ROOT)/tao/TimeBaseS_T.h \
+ $(TAO_ROOT)/tao/TimeBaseS_T.i \
+ $(TAO_ROOT)/tao/TimeBaseS_T.cpp \
+ $(TAO_ROOT)/tao/TimeBaseS.i \
+ $(TAO_ROOT)/tao/MessagingS_T.h \
+ $(TAO_ROOT)/tao/MessagingS_T.i \
+ $(TAO_ROOT)/tao/MessagingS_T.cpp \
+ $(TAO_ROOT)/tao/MessagingS.i \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/Naming/naming_export.h \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingC.i \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/CosNotifyCommC.h \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/Notify/notify_export.h \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/CosNotificationC.h \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/CosNotificationC.i \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/CosEventCommC.h \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/CosEventCommC.i \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/CosNotifyCommC.i \
+ IdAssignment.h \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/CosNotifyChannelAdminC.h \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/CosNotifyFilterC.h \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/CosNotifyFilterC.i \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/CosEventChannelAdminC.h \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/CosEventChannelAdminC.i \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/CosNotifyChannelAdminC.i
+
.obj/Updates.o .obj/Updates.so .shobj/Updates.o .shobj/Updates.so: Updates.cpp \
$(ACE_ROOT)/ace/Arg_Shifter.h \
$(ACE_ROOT)/ace/pre.h \
diff --git a/TAO/orbsvcs/tests/Notify/Basic/README b/TAO/orbsvcs/tests/Notify/Basic/README
index fd45d4e69d0..76b86577efe 100644
--- a/TAO/orbsvcs/tests/Notify/Basic/README
+++ b/TAO/orbsvcs/tests/Notify/Basic/README
@@ -5,7 +5,38 @@ Updates:
This test will check if the subscription and publication update messages
from the event channel are properly received from the Notify Service.
+Command line parameters:
+"-updates <update_count>",
+
+where <update_count> is how many updates to send.
+
ConnectDisconnect:
-----------------
Connects/Disconnects consumers and suppliers in a loop to test connect
-and disconnect to admin objects. \ No newline at end of file
+and disconnect to admin objects.
+
+Command line parameters:
+
+"-count <testcount>",
+"-consumers <number_of_consumers>",
+"-suppliers <number_of_suppliers>",
+
+LifeCycleTest:
+-------------
+Creates and destroys EC and Admin objects.
+
+Command line parameters:
+"-count testcount"
+
+where <testcount> is how many times we want to create/destroy.
+
+IdAssignment:
+------------
+This test exercies Id generation by creating ec and admin objects and
+using the assigned ids to lookup these objects and destroy them.
+
+Command line parameters:
+"-iter <count>", count is how many times to repeat this test.
+"-ec_count <count>", count is number of ec objects to create
+"-ca_count <count>", count is number of consumer admin (ca) objects to create
+"-sa_count <count>\n", count is number of supplier admin (sa) objects to create