PLANNED MAJOR CHANGES "SOMETIME IN THE FUTURE" (i.e., exact beta not known)
===========================================================================

- (Johnny/Ossama) Bug 1420-Protocols in Transport Cache not amenable for
  strict policy enforcement

- (Johnny/Ossama) Location Forwarding fixes

- (Johnny/Ossama) POA refactoring/modularization

  . ONGOING - ETA 10/31 -- currently targeted for TAO 1.4.5.

- (JTC/Ossama) autoconf support for TAO

  . ONGOING - ETA unknown

- (Ossama) Typecode overhaul

  . ONGOING - ETA 11/12 -- currently targeted for TAO 1.4.5.  60% complete.

- (Ossama/Jeff) Skeleton refactoring

  . ONGOING - ETA 11/10 -- currently targeted for TAO 1.4.5.  75% complete.

- (Ossama) Remainder of CSIv2 code that didn't make it into TAO 1.4.2

  . ONGOING - ETA 2/30 -- currently targeted for TAO 1.4.5.

PLANNED MAJOR CHANGES TARGETED FOR 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 ACE_x_cast macros are deprecated and will be removed
  after the x.5.1 release. The TAO core libraries will be updated before
  the x.4.5 release

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.  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 #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 <subscribed_types>
  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.
