
                   JacORB RELEASE NOTES

                      www.jacorb.org
        ________________________________________

 Features

        - free CORBA 2.0/2.3/3.0 implementation (LGPL license)

        - 100% Java, no native code
        - fully multithreaded, very good performance

        - IDL compiler, complies to rev. 2.3 of the Java language mapping
        - DII, DSI
        - native IIOP, supports IIOP 1.2 Code sets and IIOP over SSL
        - GIOP 1.2, Bidirectional GIOP
        - ETF
        - POA
        - QoS (timing policies, sync scope)
        - AMI (callback model)
        - OBV
        - DynAny
        - Implementation Repository with GUI
        - Interface Repository with GUI
        - Applet support

        - Portable Interceptors (for service context passing)

        - Object Service implementations
                - Interoperable Naming Service (with graphical interface)
                - Trading Service (extension of Mark Spruiell's JTrader,
                  separately available).
                - Notification and Event Service (by Alphonse Bendt)
                - Transaction, collection and concurrency services
                    (by Alex Sinishin and Viacheslav Tararin of DekaSoft
                    Ltd., Ukraine,taras@deka.kp.km.ua)



   H I S T O R Y      O F     C H A N G E S
 -------------------------------------------

2.3.1
=====

    JacORB now uses SLF4J for logging, which allows users to select a
    logging backend simply by putting another jar on the classpath.
    All major logging backends are supported, including Log4J, JCL,
    and JDK logging, with the latter now being the default in the
    distribution.  See the JacORB Programming Guide for details about
    the new logging architecture.

    In the course of this, the dependency on Apache Avalon has been
    removed.

    - ORB:
        - new configuration option jacorb.iiop.alternate_addresses,
          allows adding TAG_ALTERNATE_IIOP_ADDRESS components to
          IIOP profiles without using interceptors (thanks to
          RemedyIT for suggestion and sponsoring)
        - pass message details from UserException's as ServiceContext over
          the wire if JacORB specific helper/skeleton code is used 
          [-generate_helper jacorb] (JAC#144).
        - Fix for iteration during shutdown (JAC#264).
        - added more strict checking of correct string sizes during
          demarshalling of CDR streams (JAC#288).
        - fix for broken socket connect timeout mechanism (JAC#375).
        - fix for bug during logfile initialization routine
          that caused the creation of multiple empty logfiles (JAC#384).
        - fixes for stream closure with sync scope none (JAC#410).
          
    - IDL Compiler:
        - added option that allows to control the portability level of
          the generated helper classes
          [-generate_helper deprecated|portable|jacorb] (JAC#516).
        - removed -omg option (#72,#98)
        - Enhance generation to close streams (RTJ#476/JAC#410).
        
    - Interface Repository:
        - fix to allow IDL files that use #pragma prefix to be loaded into 
          the IR (#367).
    - Fixes:
        - fix to allow interoperability with TAO persistent IOR's (#735)
        - removed usage of the deprecated read_fixed/write_fixed methods from
          the ORB core and generated code (JAC#516).
        - fixed wstring valuetype interoperability issue with the sun orb (JAC#352).
        - patch from bugzilla #708 to fix occasional deadlock/timeout issue within 
          GIOPConnections (JAC#359).
        - let POA.reference_to_servant raise BAD_PARM if a null reference is passed in (JAC#415).
          
    - Documentation
        - enhanced socket factory documentation (JAC#376)
        
2.3
===
    - ORB:
        - new property: jacorb.listener.server_socket_timeout. This is a
          workaround for Java bug #4344135 and is is only useful in conjunction
          with the SI&C SSL socket factories.
        - Fix recursive typecode bug.
        - Fixed CDROutputStream to correctly handle RMI object replacement.
        - Improve protocol/IOR rebind handling.
        - fixes for shutdown/applet reload (bugzilla #459).
        - Fix for interceptors service context propagation.
        - Fix for interceptor multithreading and exception handling.
        - Fix for client interceptor send_request forward exception detection
          and propagation.
        - Fix for timeout overrides (bugzilla #611).
        - new properties: jacorb.net.tcp_listener and jacorb.security.ssl.ssl_listener for
          specifying the respective listener interfaces to receive event notifications.
        - new properties: jacorb.connection.server.keepalive and
          jacorb.connection.client.keepalive to configure TCP KeepAlive on sockets.
        - Logging additions for debugging.
        - Added AcceptorExceptionListener for notifications by the
          serversocket acceptor thread. NOTE: The default behaviour now is
          to shutdown the ORB whenever an Error or SSLException is thrown
          by accept().
        - new property: jacorb.enhanced_thread_name to allow additional information to be
          added temporarily to the Thread name
        - Fix for invoking an operation when the ORB has been destroyed.
        - Any: added better support for Streamable values.
        - Any: use TypeCode.equivalent() instead of TypeCode.equal()
          in equal() as per specification.
        - Any: fix extract_string(), extract_wstring(), didn't
          account for value being insterted as a stream.
        - Fix for PolicyManager. ADD_OVERRIDE didn't work.
        - CDRStream typecode marshaling cleaned up.
        - Fix for POA dispatching with transient objects.
        - Added org.jacorb.orb.factory.FixedAddressSocketFactory that
          binds client sockets to the address specified by the property
          "OAIAddr".
        - Add IORMutator plugin.
        - if the value of jacorb.connection.client.max_receptor_threads
          is exceeded, a NO_RESOURCES exception is thrown instead of a
          hang.
        - Fix OutOfMemory issue when parsing invalid IOR's.
        - Fix for hanging process when shutting down POA after accessing a destroyed object (bugzilla #400).
        - Change default connect_timeout to 90000
        - new property: jacorb.codeset. By default this is on. If off, JacORB will ignore
          all codeset component info profiles and will turn off explicit marshalling with
          codesets (re Strings). Fixes for char transmission.
        - use new Socket API to specify timeouts during Socket.connect
          instead of using our own timeout implementation.
        - new property interop.sun to fix RMI/IIOP related interoperability issues
          with the Sun ORB (see also http://lists.spline.inf.fu-berlin.de/mailman/htdig/jacorb-developer/2006-May/008251.html).
    - IDL Compiler:
        - Support for attribute exceptions (getraises/setraises) has been added to the compiler.
        - Add option (-genEnhanced) to generate toString/equals on stubs. Only implemented
          in StructType so far.
        - Optimized generated code when using octet sequences.
        - fix for boxed valuetype with sequences generation (bugzilla #429).
        - fix to use options -diistub and -ami_callback in conjunction (bugzilla #687).
          thanks to Thomas Leineweber for providing the patch.
        - fixes for line number output and error messages from compiler.
        - Use any speed accessors like insert_long/extract_long in Helper
          classes for aliased basetypes.
        - fixed invalid handling of forward decl of CORBA::TypeCode
        - Improve generation for IDL exceptions.
        - Fix for invalid IDL compilation.
        - fix for "IDL compiler fails for typedef within valuetype declaration" (bugzilla #601). thanks
          to Thomas Leineweber for providing the patch.
    - Tools:
        - Updated 'dior' utility to decode realtime policies.
    - Security:
        - new property: jacorb.security.randomClassPlugin. Used by developers to plugin their
          own SecureRandom initialisation.
        - SecurityLevel 2 and IAIK support removed.
    - Documentation:
        - Added chapter on threads to Programming Guide.
        - Enhanced logging documentation.
        - Enhanced description of configuration properties.
    - Fixes:
        - fixed bugzilla #721. Thanks to Scott Melby for reporting and providing a fix.
        - fixed bugzilla #667. Thanks to Rich Doyle for reporting and providing a fix.
2.2.5
=====
    - Documentation
        - Updated and merged JacIDL HTML into ProgrammingGuide.
        - Improved SSL documentation
        - Document all available loggers
        - Improved property documentation
        - Improved command line documentation.
    - IDL Compiler:
        - Fix for ValueType generation
        - Improve error checking in compiler.
        - Fix to remove ObjectHelper class generation.
        - Fix typedef bounded string generation bug.
    - ORB:
        - DynValue idl added
        - Enhance Any equals for value comparison.
        - Improve typecode error checking.
        - Fix for using an Object Reference inside a DynAny
        - new properties (jacorb.connection.client.max_idle_receptor_threads,
          jacorb.connection.client.max_receptor_threads, jacorb.connection.server.max_idle_receptor_threads,
          jacorb.connection.server.max_receptor_threads) to control size of the MessageReceptorPool
        - name all threads created by JacORB (bugzilla #472)
        - new property: jacorb.orb_initializer.fail_on_error. Control if errors
          caused by an ORBInitializer will make ORB.init() fail or not.
    - POA:
        - new property: jacorb.poa.thread_pool_shared. This is to share a
          single thread pool amongst all the POAs.
    - IDL:
        - Added CosProperty.idl
    - Logging:
        - singleton ORB uses a logfile if the property
          jacorb.logfile is set.

2.2.4
=====

    - JacORB now supports IPv6, thanks to work by David Hartman.
    - POA:
        - Fix usage of implname with transient and persistent servers (see the Programming Guide).
    - IDL Compiler:
        - improve JacIDL Ant task initialisation.
2.2.3
=====

      - The IDL compiler can now generate DII stubs, using the new option
        "-diistub".  Thanks to Thomas Leineweber for adding this feature.

      - New properties are available for assigning protocol-independent
        addresses:
         * OAAddress=<protocol_name>://<protocol_address>
           for example: OAAddress=iiop://myhost:1234
           OAIAddr and OAPort are still used to make IIOP-specific addresses,
           but are superceded by OAAddress
         * jacorb.ior_proxy_address=<prot_name>://<prot_addr>
           supercedes jacorb.ior_proxy_host and jacorb.proxy_port
         * jacorb.imr.ior_proxy_address
        Note that OASSLPort is still necessary when configuring a specific
        SSL port number even when using OAAddress.

        - ported the notification service to use the
          JSR 166 backport (http://www.mathcs.emory.edu/dcl/util/backport-util-concurrent)
          instead of util.concurrent.

        - added JMX support for the notification service.


2.2
====

      - new and enhanced:
         * ORB configuration is more flexible now:
                - a new, common properties file orb.properties is considered
                - multiple ORBs in a single JVM can now have separate configurations
           (please consult the Programming Guide for details).

         * namemanager GUI improved (shortcuts, color, bind IOR options)

         * There is a new property jacorb.connection.client.connect_timeout,
           which specifies a timeout for the initial TCP/IP connection attempt.

         * The new property jacorb.poa.check_reply_end_time specifies
           whether any ReplyEndTimePolicy (or RelativeRoundtripTimeoutPolicy)
           should also be checked on the server side.  This requires that
           the clocks of the client and server machine are synchronized to
           the same order of magnitude as the timeout.  The default for
           this property is off, unlike previous releases, where this check
           was always done.

         * IDL compile has a new option -in <file> with which it will accept
           files that do not end in ".idl"

      - maintenance:

         * Removed property jacorb.security.change_ssl_roles and the
           associated "Change SSL Roles" feature.

         * removed scalability bottleneck due to superflous synchronization

         * Usage of JacORB loggers generally more consistent

2.1
====

      - new:

         * Implementation of the ORB PolicyManager interface to
           set QoS policies ORB-wide

         * CDR 1.2 Portable Interceptor codec

         * "-cldc10" IDL compiler option to generate J2ME/CLDC1.0
           compatible stub code

         * Removed deprecated option -i on the IDL Compiler

         * logging enhancements (more structured logger name spaces)

      - fixed:

         * connection management problem that resulted in hanging
           clients

         * server-side memory leaks (#456/458)

         * incompatibility with libraries in existing J2SDK 1.4
           installations ("endorsed dir")

2.0 (GA)
======

      - You can now use IORInterceptors to add new profiles to IORs
        (rather than just adding components to profiles that were
        created by the ORB).  To achieve this, the IORInfo object
        that is passed to IORInterceptors now implements a special
        JacORB interface, org.jacorb.orb.portableInterceptors.IORInfoExt.
        This interface provides methods to look up existing profiles
        and add new ones to an IOR.

      - rename property jacorb.connection.server_timeout to
        jacorb.connection.server.timeout, for consistency

      - added property
        "jacorb.connection.client.timeout_ignores_pending_messages"
        which controls if client-side idle timeouts take care of
        pending messages or not.

      - added property "jacorb.connection.client.retry_on_failure"
        which controls if network failures on existing connections
        should yield a COMM_FAILURE or should trigger a remarshaling
        of all pending messages.

      - IDL compiler:
        minor bug fixes
        new option -unchecked_narrow

      - ORB performance improvements

      - more logging clean up


2.0 beta 3
==========

      - loads of bug fixes
      - more ETF work (corbaloc support)
      - IDL compiler now generated code only if the IDL file is more recent
        than any previously generated code.
      - remorphing of logging, now using Apache Avalon interfaces to go
        to Logkit
      - Synchronization fixes.
      - ORB:
        - Added proprietary call ORB::addObjectKey.

2.0 beta 2
==========

      - bug fixes only, no new functionality

2.0 beta 1
==========

      - Logging:
        - Added property 'jacorb.logfile.append' to support appending to
          rather than overwriting an existing log file.
        - Added property 'jacorb.logfile.maxLogSize' to support rolling logs.
        - Added property 'jacorb.log.timestamp' to control whether log
          messages are timestamped or not.

      - ORB:
        - Added property 'jacorb.interop.indirection_encoding_disable' to turn
          off indirection encoding for repeated typecodes.
        - Added property 'jacorb.dns.enable' to control whether DNS
          names should be used in IORs.
        - AMI (Asynchronous Method Invocation) is implemented.
          At present, there is only support for the callback model.
        - All QoS timing policies are implemented.
        - SyncScopePolicy is implemented.
        - The transport layer now conforms to the draft of the
          Extensible Transport Framework (ETF, mars/2003-02-01)
          (see Programming Guide for details).
        - Two new properties, jacorb.poa.queue_wait and
          jacorb.poa.queue_min allow the server to block when the
          request queue is full.
        - Fix for ClientRequestInfo target field value.
        - Fix for marshaling of negative fixed values.
        - Fix for reply status value for server side portable interceptors.
        - Fix for generation of some basic type sequence holders.
        - Fix for connection idle timeouts: These timeouts will now
          respect pending messages.
        - ApplicationExceptionHelper class fix for types with repository
          identifiers including a prefix.
        - Added server-side connection management (see programming
          guide)
        - Added support for GIOP CloseConnection messages.
        - Added port range server socket factory support.

      - IMR:
        - Added property 'jacorb.imr.endpoint_port_number' for port IMR
          runs on.

      - IDL Compiler:
                - fixed inheritance error (bug #345)
                - now using the Aoachae logkit loggin API

      - Notification Services: now included! HOT!

1.4.1
=====

   - Naming Service:
         - Configuration property added to control purging of non active
           entries on list operation.
         - Configuration property added to run on fixed port.

   - bug fixes:
         - ORB:
               - Reverted to old (1.3) IOR format to maintain backwards
                 compatibility.
               - Added support for GIOP 1.2 Fragments
         - IDL Compiler:
               - Fix for long long constant assignment from constant.
         - Tools:
               - Updated 'dior' utility to decode ORB type tagged components.
         - IMR:
               - Allow crashed servers to be restarted by ServerStartupDaemon.
               - Fix restarting server on fixed port [223].
               - Fix when pinging objects to prevent 'non-jacorb object' warning.
               - Fix multiple pings in replyNewLocation
         - DII:
               - Fix for client connection timeout with deferred requests.
   - ORB:
        - Two new client timeout policies to replace jacorb.connection.client_timeout:
        - jacorb.connection.client.pending_reply_timeout - For request timeout
        - jacorb.connection.client.idle_timeout - For connection timeout

   - SSL:
        - Changed SSL usage policy: SSL will now only be used, if both
          sides support it and at least one side requires it. If the
          client requires SSL, but the server doesn't support it, a
          NO_PERMISSION exception is thrown.

1.4.0
=====

   - bug fixes:
         - ORB:
               - Fix for delegate to stop infinite loop of calling from ImR
                 to server and back again if server is down.
               - Fix to TypeCode::equal and TypeCode::equivalent operations
                 for handling recursive TypeCodes.
               - Implementation of Request interface now throws BAD_INV_ORDER
                 exception when appropriate.
               - The work_pending and perform_work operations now throw
                 BAD_INV_ORDER if the ORB has been shutdown.
               - Fix to corbaloc URL parsing to recognize corbaloc:rir URLs
                 with no key string specified.
               - Fix to parsing of IOR resources to allow multiple levels of
                 indirection before an IOR or corbaloc URL is
                 obtained.
               - CodeSet support:
                 - Now putting CodeSet Tagged Component into correct
                   (MULTIPLE_COMPONENTS) profile.
                 - Not adding the CodeSetInfo interceptor anymore, if
                   GIOP 1.0 is used.
                 - Ignoring any CodeSet service contexts if GIOP 1.0
                   is used.
                 - Now throwing CODESET_INCOMPATIBLE exception, if no
                   matching code sets can be found.

         - Portable Interceptors:
               - Fix so that interceptors registered with an ORB initializer
                 are also applied to any objects registered as initial
                 references.
         - IMR:
               - Fix for restarting persistent server with same POA/Impl name.

   - POA:
         - Added an extra byte to object keys that contains a flag to
           indicate the Lifespan Policy of the POA managing the object.

   - ORB:
         - Implemented the DII threading operations:
               - send_multiple_requests_deferred
               - send_multiple_requests_oneway
               - poll_next_response
               - get_next_response
         - Added the TAG_ORB_TYPE component to IORs to indicate that they are
           generated by JacORB.
         - Added the property "jacorb.use_imr_endpoint" that when switched off
           will write the server endpoint into the IOR instead of the ImR
           endpoint (defaults to on).
         - Use the server address specified by the "jacorb.ior_proxy_host" and
           "jacorb.ior_proxy_port" properties when registering a POA with the
           ImR (if these properties are set).
         - Implemented a failover mechanism in the client Delegate whereby
           the Delegate is able to find the ImR if the ImR goes down and comes
           back up at a new address.
         - Added property "jacorb.suppress_no_props_warning" that will
           suppress the warning message when no properties file can be
           found (if set to "on").
         - Added property "jacorb.orb.objectKeyMap" to map object keys to
           arbitrary (hopefully readable) strings, which in turn permit
           the construction of short and simple corbaloc: IORs
         - (Re-)Added support for UTF-8 for IDL types char and string

   - DynAny:
         - Implemented DynFixed interface.

   - Build:
         - JacORB classes directory no longer needed in CLASSPATH to
           build JacORB.

   - GIOP:
         - Added missing functionality to handle LocateRequests and
           LocateReplies.

   - Appligator:
         - New portable interceptor based implementation. Updates
           to support multiple appligators in different subnets and
           disable appligator use in local subnet. No HTTP tunneling.

   - IMR:
         - Background saving thread implemented.
           New property "jacorb.imr.port_number" to configure a fixed port.

   - Naming Service:
         - added command line switch -p to make server come up on a given
           port (convenience)
         - made the file name command line argument optional
         - Name Service can now be accessed using corbaloc: IORs with using
           NameService as the object key

   - Tools:
         - New 'fixior' utility provided to patch port and host information
           into an IOR.

   - IDL Compiler:
         - Flag '-nofinal' can be used to generate code where the class
           definitions are not final.
         - Forward and multiple declaration of Unions, ValueTypes, Structs
           and Interfaces
         - now compiles the complete set of IDL value type definitions

   - Domain Management:
         - removed this component to reduce code and library size since
           noone seems to use it

1.4 beta 4:
===========

    - bug fixes:
          - Fixed bug that would lead to a NullPointerException
            when using corbaloc IORs without the explicit protocol
            qualifier (i.e. corbaloc::<host>:<port>/<object key>).


        The following just didn't make it into the beta 3 release
        notes:

    - SSL/JSSE
          - added properties
              jacorb.security.ssl.server.cipher_suites
              jacorb.security.ssl.client.cipher_suites
        that allow for setting the enabled cipher suites for
        JSSE

        - SSL/IAIK
             - incompatibility notice: Please note that the IAIK SSL
           and JCE libraries don't work using the JDK 1.4. This is
           because the JDK 1.4 only accepts signed cryptography
           providers, but the IAIK JCE isn't.

    - Corbaloc with SSL

             - added new corbaloc protocol qualifier "ssliop" to allow
           for using corbaloc IORs together with SSL. Also added
           properties
                jacorb.security.ssl.corbaloc_ssliop.supported_options
                jacorb.security.ssl.corbaloc_ssliop.required_options
           to be able to configure these SSL connections.


1.4 beta 3:
===========

        - Documentation:
                Additional chapter added covering the dynamic any classes.
                Appendix added describing the various configuration properties.

        - Sockets:
                Support has been added for configurable socket factories.
                An additional factory has been provided that supports the
                use of ports from a configurable range to support firewall
                traversal.

        - Initial References:
                Support has been added for resolving object references
                from JNDI and as resources. This can be done using
                'jndi:' or 'resource:' based URLs. Unrecognised URL
                types are now passed down to the underlying JDK for
                processing ('https:', 'ftp:' etc.). Note that the
                javax.naming package required for JNDI support is not
                included in the JDK 1.2 and this package must be added
                explicitly to the CLASSPATH.

        - Local Objects:
                The org.jacorb.orb.LocalityConstrainedObject class has
                been superseded by org.omg.CORBA.LocalObject class as
                defined in the CORBA 2.4 IDL to Java mapping specification.
                Locally constrained objects, such as portable interceptors,
                should now extend this class.

         - Portable Interceptors:
               - Adapted to CORBA 2.5 IDL (ForwardRequest exception
                 now doesn't have the permanent flag anymore)

         - SSL/JSSE:
               - Integrated patch to be able to access the peers
                 certificates also using JSSE 1.0.2 with a JDK < 1.4
               - Added property
                 "jacorb.security.ssl.server.cipher_suites" to allow
                 selecting ciphersuites (Sun-JSSE only)

         - ORB:
               - Added support for corbaloc:ssliop style IORs to be
                 able to use corbaloc together with SSL. WARNING: This
                 is not (yet ;-) standardized by the OMG, but
                 agreed-upon by many more (TAO, MICO, ...) open source
                 ORBs. The SSL behaviour defaults to
                 EstablishTrustInTarget, but can also be configured by
                 the properties
                 jacorb.security.ssl.corbaloc_ssliop.supported_options
                 jacorb.security.ssl.corbaloc_ssliop.required_options


        - bug fixes:
                Naming Service:
                        - Fix for handling of name strings containing escaped
                          characters.
                DII:
                        - User exceptions now correctly encapsuled within
                          Request environment.
                IDL Compiler:
                        - Fix for unions with long long discriminator type.
                        - Fix for unions with anonymous arrays.
                        - Fix for interface with operations using wchar or
                          wstring inout parameters.
                        - Fix for typedef'd any holder class.
                        - Fix for long long constant values.
                        - Fix for large fixed constant values.
                        - Fix for constant enum values.
                        - Fix for format checking of fixed point types.
                        - Fix for code generation for local interfaces.
                Any:
                        - Fix for equal operation on aliased types.
                        - Fix for equal operation on wchar type.
                        - Fix for insertion and extraction of basic types when
                          any contains an aliased (from typedef) basic type.
                        - Fix for insert_Object operation to determine the
                          IDL name from the RepositoryId.
                        - Fix for read_value and write_value operations to make
                          them more portable.
                        - Fix for read_value and write_value operations where
                          Any contained wchar type.
                        - Added insert_fixed(BigDecimal) operation to CORBA
                          interface.
                        - Fix to insert_fixed(BigDecimal, TypeCode) operation
                          to check TypeCode parameter.
                ORB:
                        - Fix for IORs not containing zero character padding.
                        - Passing a null to object_to_string now returns the
                          correct string for a null object reference.
                        - Passing a local object to object_to_string now
                          throws a MARSHAL exception.
                        - Current and Principal deprecated. Use of any
                          operations for these types will throw NO_IMPLEMENT.
                        - DII support operations on singleton ORB now correctly
                          throw NO_IMPLEMENT.
                        - The create_operation_list operation is now
                          implemented.
                        - Added helper classes for CORBA system exceptions.
                DynAny:
                        - Operations called on a DynAny that has been
                          destroyed now throw an OBJECT_NOT_EXIST exception.
                        - Enabled creation of DynAnys with TCKind tk_null and
                          tk_void.
                        - Fixed the get_dyn_any/insert_dyn_any operations.
                        - Fixed handling of user exceptions.
                        - Fixed initialization of current position for
                          DynStructs and DynUnions.
                        - Fixed iteration operations for DynUnions.
                        - Fixed implementation of DynUnion operations
                          set_to_no_active_member, set_to_default_member and
                          set_discriminator.
                TypeCode:
                        - Fix for CDRInputStream::read_TypeCode operation to
                          handle recursive and repeated TypeCodes.
                        - Fix for ORBSingleton::create_struct_tc and
                          ORBSingleton::create_union_tc operations to
                          correctly construct recursive TypeCodes.
                        - Fix for TypeCode API to correctly handle recursive
                          TypeCodes.
                        - Fix for CDRInputStream and CDROutputStream to
                          correctly calculate the indirection offset value
                          for recursive and repeated TypeCodes.
                        - The create_native_tc, create_local_interface_tc and
                          create_abstract_interface_tc operations are now
                          implemented.
                        - Added validation of parameters to the
                          create_<type>_tc operations.
                        - Fix for _type() operation in FixedHolder class to
                          correctly determine TypeCodes of fixed point values.

1.4 beta 2:
===========

        - bug fixes
                ImR: used wrong name for property jacorb.implname
                Marshalling:
                        - occasionally, wrong buffer sizes were
                          calculated in CDROutputStream
                        - more bugs fixed for recursive and
                          repeated TypeCode
                IDL Compiler fix to handle escape characters

        - Added build compatibility to the JDK 1.4 and fixed
          compatibility problems with JDK 1.2

        - Portable Interceptors:
                   - Adapted to new IDL which requires interceptors
                     to implement operation destroy().

                   - Merged module IOP_N (Codecs, etc.) into module
                     IOP for JDK 1.4 compatibility.

        - SSL Support changes:
                   - Dropped direct support for the separately
                     downloadable jsse1.0.2 (please see
                     README.jsse_1_0_2 in the sun_jsse dir).

                   - Added support for the JDK 1.4, which now also
                     includes generic access to the peers certificates
                     via our partial Security Level 2 implementation.

        - new OBV demo

1.4 beta 1:
===========

        - This beta compiles only on JDK 1.3 or greater. We will also
          support JDK 1.2 in the next release, but will give up
          backwards compatibility with JDK 1.1.

        - bug fixes:
                in Any (equals()) and TypeCode (equivalent)
                marshalling streams:
                        recursive and repeated TypeCodes
                DynAnys:
                        diverse bugs, e.g., treat aliased types correctly
                        made implementations purely local
                IDL compiler:
                        name resolution bugs
                POA and ORB:
                        memory leaks, local invocations
                IAIK SSL:
                        fixed bug that prevented mutual authentication
                        in non-role-change mode.
                Delegate/ImR:
                        fixed bug that caused exceptions when multiple
                        concurrent requests were issued to the ImR.

        - Appligator/HTTP tunneling:
                not supported in this beta ! (please wait for the next
                release...)

        - SSL support changes:

                - added support for Suns SSL implementation
                  JSSE. Please note that for technical reasons, it
                  isn't possible to access the clients certificates on
                  the server side when Sun JSSE is used. To use Sun
                  JSSE instead of IAIKs classes, please set the
                  following properties:

                  jacorb.ssl.socket_factory=org.jacorb.security.ssl.sun_jsse.SSLSocketFactory
                  jacorb.ssl.server_socket_factory=org.jacorb.security.ssl.sun_jsse.SSLServerSocketFactory

                - Made a change in the SSL package structure: classes
                  for IAIKs libraries that were formerly in package
                  org.jacorb.security.ssl are now in the package
                  org.jacorb.security.ssl.iaik. This makes it
                  necessary to adapt the socket facory properties:

                  jacorb.ssl.socket_factory=org.jacorb.security.ssl.iaik.SSLSocketFactory
                  jacorb.ssl.server_socket_factory=org.jacorb.security.ssl.iaik.SSLServerSocketFactory

                - Removed property

                  jacorb.security.enforce_ssl

                  Enforcing SSL can now be achieved by setting the
                  required and supported options. Please see the
                  Programming Guide for more details on these
                  properties.

                - Replaced properties

                  jacorb.security.ssl.supported_options
                  jacorb.security.ssl.required_options

                  by

                  jacorb.security.ssl.client.supported_options
                  jacorb.security.ssl.client.required_options
                  jacorb.security.ssl.server.supported_options
                  jacorb.security.ssl.server.required_options

                  This allows for a more fine-grained setup of
                  SSL. Please see the Programming Guide for more
                  details on these properties.

                - modified the property "jacorb.security.keystore". It
                  now allows three ways of specifying the keystore
                  location:
                  a) absolute path
                  b) relative path to current dir
                  c) relative path to users home dir
                  These possibilities are searched in the order give above.

        - OBV support added
                some feature are still unimplemented:
                  - valuetype inheritance
                  - value factories (use causes npe's in the compiler!)
                  - code downloading
                  - custom marshalling

        - GIOP 1.2 and bidirectional GIOP

1.3.30:
=======

        - fixed a problem with client-side connection time outs (clients
             would only time out once, and not also after subsequent
             reconnects).

             Involved changing some of COMM_FAILURE exceptions thrown
             in the runtime to IMP_LIMIT for tiemouts - these are the
             ones yu want to catch! Also changed a few others to
             TRANSIENT where they are appropriate for failures in
             the *initial* connection setup.

        - IDL compiler bug fixes:

             fixed bugs in constant expressions

             Compiler now resets internal table between IDL files passed
                on the same command line

             Compiler did not complain if oneway operations declare
                exceptions or return types other than void. Now it does.

             Compiler did not complain about identifiers in the same
                scope that differed only in case, which it should according
                to the spec. Now it correctly rejects definitions like
                "teST" and "TEst".

             Compiler did not check the IDL 2.3 rules for redefinition of
                interfaces etc. in nested scopes, now it does. (If that
                breaks your IDL files, use the new switch -sloppy_names
                to have the compiler behave as before.)

             Fixed Problems in generated code
                - String members in exceptions and structs are now initialized
                  to "", otherwise there can be CORBA.MARSHAL exceptions
                  at runtime because of null values.
                - generated code in multi-dimensional sequences now
                  compiles with javac.
                - Arrays of anys: generated code now compiles with javac.
                - Corrected references to holder classes for out
                  parameters for types aliased to string

             Additional bug fixes...

        - added support for inverse DNS lookup of IP addresses, so IORs
          contain fully qualified host names instead of IP numbers. See
          INSTALL file for details.

        - added properties "jacorb.ior_proxy_[host|port]" that replace
          the actual host/port where the ORB listens for requests. This
          is for cases where servers are hidden behind proxies / firewalls.

        - fixed a bug where a release() or a LocationForward on a shared
          object reference caused the irregular termination of other
          concurrent requests over that reference.

        - added property "custom.props" which can contain a comma separated
          list of additional properties files. These properties will override
          properties set in the jacorb.properties file. This is useful for
          setups with multiple servers/clients, where each process needs its
          own configuration.

        - fixed bugs in trader build files (leftover from "org" change).

        - added "auto-register" feature to the ImR. This will register
          servers, that don't need to be restarted automatically, on their
          first startup, so they don't have to be registered manually. This
          feature is activated  via a  "-a" switch  to the  ImR process  or
          by  setting the property "jacorb.imr.allow_auto_register" to "on".

        - renamed property "jacorb.ImplementationRepositoryURL" to
          "ORBInitRef.ImplementationRepository", so the ImR is available
          through resolve_initial_references().

        - accepting now ORBInitializer class properties in the form of
          "org.omg.PortableInterceptor.ORBInitializerClass.<class name>"
          for compliance reasons. Old form of
          "org.omg.PortableInterceptor.ORBInitializerClass.<name>=<class name>"
          is still supported.


1.3.21:
=======
        - internal redesign: all package names now begin with "org.jacorb"
          NOTE: You MUST change existing jacorb.properties files to
          reflect these changes where property values point to JacORB
          classes, e.g. the value for property:

              org.omg.PortableInterceptor.ORBInitializerClass.standard_init

          must be changed to:

              org.jacorb.orb.standardInterceptors.IORInterceptorInitializer

        - IDL compiler:
                . added the -nostub switch to suppress generation of client
                  stubs
                . added the -sloppy_forward switch for forward declared
                  interfaces without definitions
                . name resolution bug fixed
                . stricter checks in lots of places (thanks to Paul Locke)
                . minor bug fixes

        - Any marshalling bugs for alias types fixed

        - fixed diverse bugs in wstring support

        - enhanced dior tool to display character codeset information

        - fixed minor bug in internal buffer management

        - fixed bug in fallback code after a non-permanent ForwardRequest
          by a portable interceptor

        - added few properties to allow for tailor-made authentication
          implementations (aka PrincipalAuthenticator). Also fixed a
          few minor glitches in the SSL setup, so that we can now
          interoperate with, e.g., Orbacus' SSL.

1.3.11:
=======
        - fixed two minor but annoying syntax errors in the source
          code... (jacorb/ir/gui/ModelBuilder.java and
          jacorb/orb/domain/gui/BrowserFrame.java). Also fixed
          broken jacorb.jar file


1.3.0:
======
        new:
                - Interface Repository with GUI Browser

        improvements and bug fixes:
                - Programming Guide:
                        - new chapter, update
                        - now in HTML
                - fixed a memory leak
                - Implementation Repository now uses a thread pool internally
                - IDL compiler
                        - function of -i2jpackage switch fixed
                        - code generated for helper method narrow()
                          now compliant (throw BAD_PARAM rather than
                          return null)
                - name server: fixed a problem with reloading persistent state
                        after restarting
                - dior utility (ParsedIOR class) now corretcly
                  displays multiple profiles
                - updated build files
                - ...

Changes for 1.2.3:

        moved build files to Ant 1.2

        fixed build files for Linux with JDK 1.3

        fixed bug: too many client-side releases of object references
                (could result in INV_OBJREF exceptions)


Changes for 1.2.2:

        fixed memory leaks
                server: properly release servant delegated
                client: added a finalizer to generated stubs

        allow "file:/"-IORs again

        added client-side time outs (see properties file)

        changed check for OAIAddr property (address selection
                on multi-homed hosts)

        IDL compiler:
                fixed bug in code generated for multi-dimensional sequences
                fixed bug in escapeing mechanism for reserved words

        fixed bug in LocateRequest code

        fixed bug in CorbaLoc

        fixed debug output for applets (thanks to Frank Lange of Philips)

Changes for 1.2.1:

        fixed a bug in connection management (null pointer in
                reconnect())

        removed a few build problems (dependance on non-security
                package from within orb, generate idl and jaco scripts
                automatically)

        updated compiler version number


Changes for 1.2:
================

        - new:
                - Domain Service
                - HTTP tunneling
                - improved SSL integration

        - IDL compiler:
                - #pragma version works now
                - accepts value type definitions
                  (but only syntacically :-), no code is generated)
                - bug fixes (typedefs, any)

        - Implementation Repository: minor changes and fixes

        - ORB: fixed ORBInitRef, now a Java property

        - bug fixes:
                - Any/TypeCode bug
                - ServiceContext bug (alignment)

        - lots of minor stuff

Changes for 1.1:
================

        - Interoperable Naming Service extensions
                - standardized name-to-string conversions
                - convenient URL schemes for object references

        - IIOP over SSL
                - first alpha release, includes a KeyStoreManager GUI

        - Portable Interceptors

        - Collection and Concurrency services

        - Appligator bug fixes and resource usage improvements

        - IDL compiler improvements (by Matt Briggs, Vertel Inc.)
                - new compiler switch no_skel to suppress skeleton
                  code generation
                - extended preprocessor support
                - removed inter-package dependencies

        - Improved Language Mapping compliance and IDL compiler bug fixes
                - correct helper generation for typedef's
                - ...

        - much easier to install and configure, (no more bootclasspath
          fiddling, coexist with Sun JDK CORBA classes)

        - new, platform-independent build files (for Jakarta's Ant)

        - internal bug fixes (memory managament, memory leaks,
          CDR encapsulation size  tolerance, ...)
