// $Id$ The following TAO applications test and illustate various Portable Object Adapter (POA) interfaces and their usage scenarios. . Identity The example shows the identity between servants, ids, and references. . POA_Destruction The program tests the destruction of a POA during an upcall. . Default_Servant This program tests the behavior of POA::id_to_servant() and POA::reference_to_servant() with the use of default servants. . Object_Reactivation This program tests the reactivation of a servant that has been deactivated but not removed from the Active Object Map yet. . Excessive_Object_Deactivations This program tests for excessive deactivations of a servant. The test checks excessive deactivations in a POA with SYSTEM_ID and other POA with USER_ID. The test also check for excessive deactivations during upcalls. . Non_Servant_Upcalls This program check the users ability to make calls on a POA during non-servant upcalls. In this example, a servant which is being destroyed during because of a deactivate_object() call, tries to deactivate another object in its destructor. . wait_for_completion This program tests the feature of the POA. . Single_Threaded_POA This program tests to make sure that two threads cannot call servants in a single threaded POA simultaneously. At the same time, it makes sure that a servant can call itself or other servants in the same POA while in an upcall. . Etherealization This program tests for deactivation and etherealization of reference counted and non reference counted servants. . Persistent_ID This test checks the combination of PERSISTENT & SYSTEM_ID POA policies. . Policies This program tests the construction of POA policies, both through the generic ORB::create_policy interface and the PortableServer specific interfaces. . MT_Servant_Locator This program tests that multiple calls to the Servant Locator can take place simultaneously. . Nested_Non_Servant_Upcalls This program tests that nested non-servant upcalls are handled correctly.