PLANNED MAJOR CHANGES "SOMETIME IN THE FUTURE" (i.e., exact beta not known) =========================================================================== . (JTC) provide example Telecom Log Service Persistance Strategies that use BerkeleyDB, ODBC, etc. Refine Strategy interface as required. . (JTC) autoconf support for tests and examples subdirectories. . (OCI) Reenable support in the Notification service for BlockingPolicy, DiscardPolicy, and OrderPolicy. (Note: BlockingPolicy requires -ORBWaitStrategy rw) . (OCI) Fix various memory and thread leaks in the Notification Service. . (OCI) Fix Notification Service use of PacingInterval and MaximumBatchSize. . (OCI) Fix Notification Service detection of dead consumers. . (Wallace) Finish Distributed Scheduling Service implementation. PLANNED MAJOR CHANGES TARGETED FOR TAO-1.5.2 ==================================================== . (Remedy) Finish and integrate new sequence implementation made by Carlos O'Ryan. This also includes a rework of the TAO_String_Managers and CORBA::(W)String implementations. This is ready in the sequenceupdate branch but can't be merged until 1.5.2 because it breaks with vc6. . (Remedy) Add possibility to set customer allocators to be used by the ORB for marshaling and demarshaling PLANNED MAJOR CHANGES TARGETED FOR TAO-1.4.9 ==================================================== . (OCI) Made TAO compilable when ACE_USES_WCHAR is set USER VISIBLE CHANGES BETWEEN TAO-1.4.7 and TAO-1.4.8 ==================================================== . Fixed bugs in code generation for interfaces that inherit from both concrete and abstract interfaces. . Subset Anys and TypeCodes to a separate library. If you use Any/TypeCode or one of the core TAO libs uses it you should link the AnyTypeCode library with your application . PICurrent is moved to the PI library . POACurrent has been moved back from PI_Server to PortableServer . Added IPv6 support for IIOP . When Any and TypeCode generation is suppressed when compiling IDL no typecodes are generated anymore for user exceptions, they are not needed for the operation of the ORB . When making AMI invocation and the send blocks we buffer the message and send it out when the transport is available again . Emulated C++ exceptions are not maintained anymore. We are keeping the macros in the TAO code until x.5.1 is out, if nobody sponsors maintenance at that moment the macros will be removed from TAO. See also http://deuce.doc.wustl.edu/bugzilla/show_bug.cgi?id=2256 . Support the latest AMI mapping, the old mapping will be kept working until 1.5.1 has been released. If you need the old mapping add the define TAO_HAS_DEPRECATED_EXCEPTION_HOLDER to your config.h file before you build TAO and the TAO_IDL compiler . Added CodecFactory::create_codec_with_codesets to create a codec with a specific codeset. See OMG issue 6050 for the background. . PortableInterceptor::IORInterceptor has been splitted in IORInterceptor and IORInterceptor_3_0. If you use IORInterceptors read the ChangeLog for the details, maybe you have to update your code! . Added the new Custom Servant Dispatching (CSD) feature to provide user applications with the ability to implement and "plug-in" custom strategies to handle the dispatching of requests to servants. This new feature is not currently tested for VxWorks. See TAO release notes for more information. . Added support for an TAO "versioned" namespace. When enabled, TAO library sources will be placed within a namespace of the user's choice or a namespace of the form TAO_1_4_7 by default, where "1_4_7" is the TAO major, minor and beta versions. The default may be overridden by defining the TAO_VERSIONED_NAMESPACE_NAME preprocessor symbol. Enable overall versioned namespace support by adding "versioned_namespace=1" to your MPC default.features file. . Changed generated signatures of some valuetype member accessor/mutator pairs to be consistent with IN parameter semantics. . Added spec-required generation of member-initializing constructor for valuetypes. See C++ mapping (03-06-03) section 1.17.2. Closes Bugzilla #2270. . Added default include paths $TAO_ROOT, $TAO_ROOT/tao, $TAO_ROOT/orbsvcs, and $CIAO_ROOT/ciao to IDL compiler execution, eliminating the need to add them explicitly to the command line. . Added immediate exits to IDL compiler when some name clash errors are encountered, avoiding a crash if parsing is continued. Closes Bugzilla #2281. . Changed the behavior of the _default() method (generated for IDL unions that have an explicit or implicit default case label) to clean up memory used by the freed member, if necessary. . Fixed bug in IDL compiler when handling a native exception in an operation declared in Messaging::ExceptionHolder. . Although not presently supported by CIAO, added error checking to the IDL compiler's parsing of IDL home primary keys, which constrain the basic valuetype syntax in several ways. . Fixed order of generated base class stub constructor calls when the IDL interface has both concrete and abstract parents. . Fixed a bug in the handling of forward declared interfaces that have both concrete and abstract parents. . Fixed the command line parsing to preserve the literal quotes if they are used in an include path that has a space. Closes Bugzilla #2219. . Many changes related to refactoring of Anys and Typecodes into a separate library (POC is Johnny Willemsen ). . Merging of many Notification Service changes/fixes from OCITAO to the DOC version. These generally addressed stability issues such as memory leaks, thread leaks, etc. . Introduction of the versioned namespaces changed the name of the factory function used for dynamically loading the Notification Service persistence mechanisms. See the service configurator file in orbsvcs/tests/Notify/XML_Persistence for an example. USER VISIBLE CHANGES BETWEEN TAO-1.4.6 and TAO-1.4.7 ==================================================== . The Telecom Logging Service now supports dynamically loaded Strategies which can be used to implement a persistent log record store. If none are specified, a default in-memory hash table implementation is used. . The CodecFactory is moved to its own library. If you use this in your application include tao/CodecFactory/CodecFactory.h and link the TAO_CodecFactory with your app . The ORBInitializer registry, PolicyFactory registry and ORBInitInfo are moved to the new PI library. If you use these clases include tao/PI/PI.h in your application code and link the new TAO_PI library with your application. . All server side PortableInterceptor support is moved to the new TAO_PI_Server library. If you use this, include tao/PI_Server/PI_Server.h in your application code and link the new TAO_PI_Server lib . A new set of examples and support code that show how to set up a multicast-based federation of Notification Services is now available in $TAO_ROOT/orbsvcs/examples/Notify/Federation. . Hard coded loading of services with Service Configurator now uses the ACE_DYNAMIC_SERVICE_DIRECTIVE macro which also works when the xml version of service config is enabled. . The Codeset negotiation support is in its own library. The hooks are still present in the ORB Core to dynamically load the codeset support if needed. This behavior is overridden by the new ORB_init option -ORBNegotiateCodesets 0. . The Boxed Value Type as specified by the OMG is now accepted by the TAO_IDL compiler. . TAO clients now parse the OMG specified TAG_ALTERNATE_IIOP_ADDRESS profile component. To generate IORs using that component, add the new ORB_init option, -ORBUseSharedProfiles 1. . Refactored TAO's codeset negotiation feature to be optionally loadable. The implementation is now in a separate library, TAO_Codeset. Applications not wishing to use codeset support may pass -ORBNegotiateCodesets 0 to ORB_init() to avoid loading the library. When building dynamic applications codeset negotiation is available by default. For static applications, the default is to *not* include codeset negotiation. Staticly linked apps needing codeset negotiation support must do two things: - Define the new MPC feature "negotiate_codesets=1" in default.features and regenerate makefiles - Add "#include " somewhere in their application source. Placing this in the source file that includes calling ORB_init() is probably the best place. . Added CORBA::Object::_repository_id() and CORBA::Object::_get_orb() as described by the spec. USER VISIBLE CHANGES BETWEEN TAO-1.4.5 and TAO-1.4.6 ==================================================== . The RTOldEvent library has been removed. The RTEvent library has been split in a stub/skel and serv library. . Support for bi-directional communication over SSLIOP. . Servants are now always reference counted, in accordance with changes to the CORBA specification. . Added a -x option to catior that works like -f except that it reads the IOR from standard input rather than from a file. This makes catior much more like the unix "cat" command, and enables it to be used in a pipeline. . Changed the precedence rules for the -ORBListenEndpoints (aka -ORBEndpoint) so that the host identifier (either hostname or IP address) that appears in IIOP profiles is determined thus: 1. value from hostname_in_ior (if specified); 2. setting of -ORBDottedDecimalAddresses option; 3. value for hostname in -ORBListenEndpoints specification; 4. whatever TAO magically comes up with based on system configuration A new test (TAO/tests/IOR_Endpoint_Hostnames) verifies the operation of this feature. . Changed the way that Bidirectional endpoint processing happens when -ORBDottedDecimalAddresses 1 is in effect. The previous behavior always used the setting of the receiver, but that caused problems when the sender and receiver were not using the same dotted decimal addresses setting. Bidirectional endpoint processing now uses whatever the sender provides as the hostname since that's also what will be in that sender's IORs. . Added a configuration property -ORBIMREndpointsInIOR [0|1] that controls whether ImR endpoints are written into persistent IORs. See $(TAO_ROOT)/docs/Options.html and bugzilla #2123 for usage. . Increment the refcount on the servant in the id_to_servant and reference_to_servant methods of the POA. . Improved g++ 4.0 support. A number of RTTI related problems have been fixed, in addition to removal of duplicate internal ORB related singleton instances. . Fixed assertion that occured in some thru-POA collocated calls. . Fixed CORBA::UnknownUserException Any insertion problem. . Fixed TypeCode equivalence failure when comparing aliased and unaliased TypeCodes of the same type. USER VISIBLE CHANGES BETWEEN TAO-1.4.4 and TAO-1.4.5 ==================================================== . The POA is rewritten so that it uses strategies for its implementation. . The ImR handling is moved to the new ImR_Client library. If your server needs to register itself to the ImR you have to link the new ImR_Client library . The MIOP part of the POA is moved to the GOA. See the latest version of the MIOP specification. You have to link now with the PortableGroup library and retrieve a GOA instead of the RootPOA. . Implemented several missing parts of POA functionality as described by the latest corba specification. Missing functionality, incorrect exceptions, incorrect minor codes and much more. . Splitted the huge PortableServer.pidl file in several smaller files and regenerated all the generated files in the repository. . Move TAO_ORB_Manager from PortableServer to Utils library, this is a helper class. . The POA has been split in Root_POA and Regular_POA, on this we will more in the future so that the Root_POA just pulls in the minimal set of things needed. . The RootPOA now has "RootPOA" as its adapter name, previously it had an empty string. This is required by the CORBA specification, you can overrule this by defining TAO_DEFAULT_ROOTPOA_NAME if you want to reduce the "RootPOA" string to be shorter, e.g., "". . Added support for GNU G++ 4.0. Additional details in ACE `NEWS' file. . Explicit template support has been dropped for TAO and it is not possible to use it anymore. . CORBALOC/CORBANAME patched a memory leak and fixed performance related to the use of defaulted object keys. . Added support for Visual Age on AIX . Made it possible to run most ORB core test with VxWorks in a cross host scenario where one part of the test runs on the host and the other part of the test runs on the VxWorks target . The skeletons generated by the TAO_IDL compiler have been refactored to significantly reduce the size of server applications. Please see http://www.dre.vanderbilt.edu/Stats/ for metrics that illustrate the magnitude of the reduction. . New TypeCode implementation that reduces the size of TypeCodes in memory at run-time. USER VISIBLE CHANGES BETWEEN TAO-1.4.3 and TAO-1.4.4 ==================================================== . Reimplemented the way that TAO_Transport deals with GIOP headers. In some cases partial GIOP message headers were read and used as if a full GIOP header were received. [Bug 1681] . GIOP fragment handling has changed where a single large allocation and copy occurs at the end of a fragment chain instead of an allocation and copy for every fragment received. . The tao-config script has been replaced by pkg-config metadata files which are installed in ${prefix}/lib/pkgconfig by the automake build. . SHMIOP respects now the dotted decimal addresses setting. When this is set it uses ip addresses instead of hostnames. . Removed the usage of the ACE_x_cast macros, we are using the C++ casts from now on. The TAO core libraries will be updated before the x.4.5 release. . Removed MPC code that creates unused and unnecessary subfolders in Visual Studio projects and makefiles. . Fixed unclosed temporary file created by the IDL compiler on platforms that lack mkstemp. [BUGID:2026] . Fixed IDL compiler bug related to handling null object references in a sequence. [BUGID:2027] . Made behavior when marshaling null value of an abstract interface similar to the behavior of CORBA::Object. . Made use of 'true' and 'false' with CORBA::Boolean more consistent in TAO source code and generated code. . Fixed bug in code generation for typedefs of IDL arrays that are not declared at global scope or in a module (i.e., in an interface, valuetype, eventtype or home). . Fixed bug in code generation of parent operations in AMI ReplyHandler interfaces. . Changed remaining instances of C-style casts in generated code to the appropriate C++-style cast. . Fixed typo in code generation of bounded sequences of CORBA::Object. . Fixed bug in code generation for attributes which are unaliased bounded (w)strings. . Changed implementation of TAO::Unknown_IDL_Type (a subclass of TAO::Any_Impl used when an Any is first decoded from the wire or created from a Dynamic Any) to contain its value in a TAO_InputCDR stream rather than an ACE_Message_Block*, thus cleaning up alignment and memory management code related to this type. USER VISIBLE CHANGES BETWEEN TAO-1.4.2 and TAO-1.4.3 ==================================================== . New pluggable protocol for GIOP over HTBP, known as HTIOP. Source in orbsvcs/orbsvcs/HTIOP. . All TAO-specific vendor IDs are now found in the "TAO" namespace. Documentation for these constants has also been improved in a number of cases. . Further reduced inter-header dependencies, which should improve compilation times for TAO and TAO applications. . Fixed memory leak in CDR encapsulation Codec's encode_value() method. . Modified PerlACE scripts for Tests/test environment to allow per-platform customization of process startup delay. Used the changes in various run_test scripts. . SyncScope::NONE blocks during connects [Bug 1476]. . Improved compatibility with JDK orb. . Added Wait on LF No Upcalls (MT_NOUPCALLS) wait strategy. However, recent experiences with it indicate there may be problems in scenarios other than its original motivating case (see ChangeLog). This feature should be considered EXPERIMENTAL, and use it at your own risk. . New CORBALOC parsing is available. This feature allows TAO clients to use any third-party pluggable protocol in corbaloc strings. . Fixed bug that caused memory fault when incoming object reference contains an unknown profile. . Fixed problem in some modules when platform lacks unsigned long long support. . Modified catior to allow decoding of additional protocols. . The PortableServer library isn't depended anymore on the ObjRefTemplate and IORInterceptor libraries. ObjRefTemplate and IORInterceptor are loaded on demand and depend on PortableServer. . IDL compiler can be built for environments that lack unsigned long long. . Reduced the amount of code generated by the TAO_IDL compiler when using forward declarations. . Naming Service implementation memory leak fixes. . Split ORB Services into stub, skeleton, and implementation libraries. Changes to the Naming, Trading, Event, Notification, and Logging Services have been committed. . Common utilities (tao_imr, tao_ifr, nslist, nsadd, nsdel, NamingViewer) now installed in $ACE_ROOT/bin. . Changed #includes of orbsvcs header files to be consistent. The pathname now always contains a "orbsvcs/" prefix. . Notification Service EventReliability and ConnectionReliability QoS have been added to bring the DOC version of Notification Service into feature parity (in this area) with OCITAO's 1.3a version of the Notification Service. Note that due to changes between 1.3a's source base and DOC's 1.4.3 source base, this is a re-implementation of the changes and not a simple port. In addition to the changes made directly to the Notification Service a number of test and example programs have been created for the reliable notification service. These programs may be found in subdirectories of $TAO_ROOT/orbsvcs/tests/Notify. A README file in each directory provides more detailed information, and a run_test.pl script is included to run the example or test. . A change has been made to the Notification Service IDL to improve build times and reduce the Notification Service footprint. The change suppresses the generation proxy and stub code for the many interfaces that are specified by the OMG, but are not implemented in TAO. . Implementation Repository refactored to allow the locator and activator to be used as services in the ACE Service Configurator framework. The locator and activator services have been split into separate libraries and executables. There have also been miscellaneous bugs fixed and performance enhancements made. . Fixed Load Balancer binary generation problem. Libraries were being created rather than executables. . Work around MSVC++ 6 namespace brain damage in new Security/SSLIOP code. . Fixed memory management problem in SecurityLevel3 code. USER VISIBLE CHANGES BETWEEN TAO-1.4.1 and TAO-1.4.2 ==================================================== . Overall - Support for g++ 3.4.1. - Support added for latest HP aCC compiler. - Improved Doxygen documentation. - Reduced header file dependencies, which should speedup compilation and help minimize static footprint. . ORB - Fixed memory leak in DII exception handling. - Fixed insertion of label values when creating a union type code with create_union_tc(). - Support for retrieving AMI and AMH reply handlers from a local memory pool. - Fixed location forwarding to collocated objects. . POA It is now possible to pass user-defined policies unknown to the POA with corresponding registered policy factories to the POA::create_POA() method via its policy list parameter, as required by the CORBA specification. . TAO_IDL - Closed security hole on platforms that support mkstemp() function. - Fixed potential buffer overrun problem. - A number of scoped name bugs have been fixed, including some workarounds for MSVC++ 6 scope resolution problems. - Fixed mixing of *Implicit and *Explicit inheritance lines when the there is a chain of inheritance in component homes. - Improved error checking of component and home declarations. - Code generation for valuetypes that support one or more abstract interfaces. - Added new "-GA" option that causes CORBA::Any operators and TypeCode bodies to be generated in a separate "fooA.cpp" file. Helps reduce footprint for applications that do not use Anys or TypeCodes. - Added required _downcast() method to generated value factories. - Disabled generation of implementation class for abstract interfaces. - Removed support for reading an IDL file from stdin. This feature is legacy code used for debugging the IDL compiler in the early days of its implementation, and is not useful in application situations. - Generated stub/skeleton inline files now end in ".inl" instead of ".i". The latter is generally used as the extension for pre-processed C sources. - Process multiple IDL files in a single execution by iteration in a single process, rather than spawning a process for each file as before. - Added the remaining spec-defined sequences of predefined types to the CORBA namespace in TAO. . Added CPU utilization load monitor to TAO's Cygnus load balancer. . Added basic CSIv2 support, which is the latest CORBA Security architecture specification. USER VISIBLE CHANGES BETWEEN TAO-1.4 and TAO-1.4.1 ================================================== ORB --- . Changed the name of a parameter to the TAO type code internal method to avoid a name clash with STL. . Added the spec-required ostream insertion operator for CORBA::Exception* to go with the existing ostream insertion operator for CORBA::Exception&. . Moved the above ostream insertion operators into the CORBA namespace, so they cannot be accidentally hidden by an application. . Moved the declaration of Any operators for some ORB types so that the corresponding definitions may remain unlinked if the Any operators are not used in an application. . Fixed typo in type code factory code that is compiled only when ACE_SWAP_ON_WRITE is defined. . Several fixes to MakeProjectCreator (MPC) files, which generate GNU makefiles, Borland makefiles, and Microsoft Visual Studio project files. . Fixed Any insertion and extraction operators for bounded strings and wstrings to prevent an error if they are inserted as bounded with bound 0 and extracted as unbounded, or vice versa. . Deprecated the TAO-specific _type() method for exceptions. which is no longer used anywhere in TAO, and is retained solely for backward compatibility. . Fixed bug in TAO_SSLIOP pluggable protocol that prevented large requests from being sent. [Bug 1429] . Cleaned up interceptor memory leaks that occurred when CORBA::ORB::destroy() was called. . Fixed problem where a ServerRequestInterceptor could be called after the ORB was shutdown. [Bug 1642] . Overhauled PICurrent support to fix several problems. [Bug 1215, 1738] . SSLIOP documentation is now available. . Fixed memory leaks in servers when the ORB is operating in a thread-per-connection mode. This problem showed up when clients keep connecting and disconnecting from the servers. . Fixed memory leaks in AMI clients that connect to a servers over unreliable connections that keeps getting dropped. . Fixed a race connection in Any_Impl implementation. . Fixed a byte order problem with DSI gateways . Added support for OVATION to work with this BFO of TAO. IDL COMPILER ------------- . Changed the names of some local variables in generated operation code, to reduce that chance of a name clash. . Fixed bug where a #pragma version directive is sometimes not reflected in the generated repository id. . Disambiguated generated template instantiations for array _var, _out and _forany classes, when two or more arrays have the same element type and bound. . Added check for a name clash between a valuetype member and the first segment of a scoped name referenced in the valuetype. . Fixed incorrect code generation for the CDR operator of a struct/union/exception with an undefined forward declared interface member. . Fixed incorrect code generation for operation arguments that are typedefs of char, octet and boolean. . Fixed bug in handling complex recursive types. . Added -GId command line option to generate line and file debug info in *I.* files, similar to what is already generated in *C.* and *S.* files. This debug info generation is now off by default in *I.* files. . Fixed the handling of included orb.idl file to generate corresponding C++ includes for the files orb.idl itself includes, which contain spec-required declarations of sequences of basic CORBA types. . Fixed generation of ORB file includes triggered by the presence of one or more abstract interfaces in an IDL file. . Added check to the generation of _setup_collocation() method for abstract interfaces, to make it more robust. . Added a version of the realpath() system function that can be used with LynxOS, which does not have a native version. . Fixed code generation for bounded strings and wstrings when they appear anonymously (without a typedef) as operation parameters. . Fixed code generation of flat names for AMI-related types. . Fixed errors in code generation of sequences of components and eventtypes. . Fixed code generation of CDR operators for aggregate types that contain one or more abstract interfaces. . Fixed bogus errors produced when there are repeated forward declarations of an interface. . Fixed errors in some use cases of the propagation of a #pragma prefix directive to nested scopes in generated repository ids. . Fixed errors in code generation for attributes in Asynchronous Method Handler (AMH) classes. . Fixed a bug that caused the IDL compiler to crash when it sees certain kinds of illegal IDL. . Fixed problems in the interaction of checks for local interface and for null object reference when marshaling an interface member of an aggregate type. . Fixed generation of operations inherited by a local interface from a non-local one - these operations must be regenerated as pure virtual. . Added a space between some generated template parameter opening brackets and a leading double colon of a fully scoped name, since some compilers would read "<:" as the digraph character for ']'. . Fixed bug in code generation for an array of typedef of string and wstring. . Fixed a bug in the generation of repository ids for explicit, implicit and equivalent interfaces for component homes. . Fixed bugs in the generation of marshaling and demarshaling code for aggregate types with component or eventtype members. ORB SERVICES: ------------- IFR: --- . Fixed bug in creating entries for attributes, which in CORBA 3.x may have separate get- and set- exceptions lists. . Added some method overrides to disambiguate multiple inheritance problems some compilers would have in classes added to support CORBA 3.0 extensions. . Fixed bugs in entering attributes of abstract and local interfaces, and in querying for attributes of components. . Added a "-m" option to IFR_Service to enable multicast discovery of the service. LOAD BALANCING -------------- . Added two new strategies, namely LoadAverage and LoadMinimum. NOTIFICATION SERVICE: --------------------- . Corrected the implementation to add the caller's to the Admin Object's types. This solves the problem that if a proxy's connect_structured_push_consumer() is called *AFTER* the proxy's subscription_change(), then the subscriptions do not work. . Added the -NoUpdates option to the Notification svc.conf options. If this option is specified, the subscription_change/offer_change messages are NOT sent to proxy objects. This option is useful to turn off entire updates for applications that do not reply on subscription_change/offer_change messages. USER VISIBLE CHANGES BETWEEN TAO-1.3.6 and TAO-1.4 ================================================== IDL COMPILER: ------------- . Fixed bug related to the order of #pragma prefix and #include directives . Fixed bug in generation of copy constructor for AMH interface classes. . Fixed incorrect handling of a parameter name in an AMI sendc_xxx operation that clashes with a C++ keyword. . Readded the generation of _unchecked_narrow () back into the stub code since it is required by the latest OMG CORBA specification. CORE ORB ------- . SCIOP endpoints are not created by default. They need explicit specification of -ORBEndpoint sciop:// at startup. . Fixed a bug that caused the ORB to dump a core when server side interceptors returns an exception and if the operation parameters contains a sequence an out parameter. . Fixed a bug that caused extraction of basic data types that are aliased from an Any. . Added a couple of regressions tests for some of AMH features. . Lots of other bug fixes (see the bottom of this message for a complete list of bugzilla bugids fixed in this beta). . Fixed a problem with dynamic loading of the ORB. This was introduced by "magic" static constructors in the TAO PortableServer headers where dynamic loading/unloading of the ORB failed. . Added an option, -ORBDisableRTCollocation which allows users to disable the RT collocation technique used by TAO and fall back on the default collocation technique used for the vanilla ORB. . Prevent the TP_Reactor used within TAO from exiting when it receives a EINTR during select (). ORB SERVICES ------------ . Added new security variable so that libTAO_Security could be built independently of libTAO_SSLIOP, and set the default to true. . An initial implementation of the FTCORBA spec has been added to TAO. This release features an initial cut of ReplicationManager, FaultNotifier, and a FaultDetector. Please see $TAO_ROOT/orbsvcs/tests/FT_App/README for a simple example that uses the different FTCORBA features that have been implemented in TAO. . Fixed a bug, in PG_ObjectGroupManager::remove_member () methods which caused the group entry to be available in the location_map when a member of the object group is removed.