PLANNED MAJOR CHANGES TARGETED FOR TAO-1.4.3 ==================================================== - (Johnny/Ossama) Bug 1420-Protocols in Transport Cache not amenable for strict policy enforcement - (Johnny/Ossama) Bug 1476-SyncScope::NONE blocks during connects - (Johnny/Ossama) Location Forwarding fixes - (Ossama) Typecode refactoring fixes - (Ossama) Remainder of CSIv2 code that didn't make it into TAO 1.4.2 - (Ossama/Jeff) Skeleton refactoring - (Johnny/Ossama) POA refactoring/modularization - (JTC/Ossama) autoconf support for TAO - (Bala) Implementation Repository enhancements - (OCI) Naming Service implementation fixes - (OCI) Wait on LF No Upcalls wait strategy - (OCI) Parse-magic-bytes re-integration - (OCI) TSS memory leak fixes (Bug 1542) - (OCI) [hopeful] Notification Service EventReliability and ConnectionReliability QoS - (OCI) better compatibility with JDK orb 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 spawing 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. Advanced CSIv2 features will be available in the next beta. 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 #pragam 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 defaul 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 respository ids for explicit, implicit and equivalent interfaces for component homes. . Fixed bugs in the generation of marshaling and demarshaling code for aggragate 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 operartion 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 regerssions 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 fallback 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 intial 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.