
                   JacORB RELEASE NOTES

                      www.jacorb.org
        ________________________________________

 Features

        - free CORBA 2.0/2.3/3.0/3.1 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 (IIOP, MIOP and IIOP NIO transports)
        - 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)
        - Compatible with TAO Implementation Repository
        - Support redundancy retrying for Implementation Repository and Naming
          Service



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

( Note: For commit history see https://github.com/JacORB/JacORB )


3.8
===
    - ORB
         - Fix for null ptr in IIOPAddress (BZ1025)
         - Improve network ordering (BZ1023)
         - Add VMware for network ordering (BZ1024)
         - Fixes for byte order selecting.
         - Add ASCII and MacRoman as aliases for the ISO-8859-1 codeset
         - Fix for bidirectional IIOP where the client creates a callback IOR with alternate
           addresses. (BZ1026)
         - Add jacodbg script to enable attaching a remote debugger to a shell-started process
         - Fix to prevent COMM_FAILURE in concurrent handling of ForwardRequest in Portable Interceptors. (BZ1014)

    - Misc
         - Upgrade to SLF4j 1.7.14


3.7
===
    - ORB
         - Fix threading issue with Delegate/ReplyGroup (BZ1010).
         - Fix invocation reentrancy issues (BZ1011, BZ1012).
         - Fix for retry loops on exceptions that occur using forwarded references (BZ1013).
         - Fix for spin-lock on corbaname resolution failure (BZ1018)
         - Fix for spin-lock on other forwarded IOR resolution failure (BZ1018)

    - POA
         - Add spec-compliant minor codes for POA raised system exceptions.
         - Improve performance of thread pool on high-volume systems.
    - IDL
         - Fix for i2jpackage option causing rejection of valid module definition.
    - Misc
         - Remove slf4j-jdk14 as a compile-time dependency of core/services (BZ1016).

3.6.1
=====
    - ORB
         - Handle null from NetworkInterface (BZ1005).
         - Fix for race condition in IMR.
         - Fix race condition (BZ1007).
         - Prevent extraneous client side forwarding loop (BZ1009).

3.6
===
    - ORB
         - Improved client handling of references with multiple profiles.
         - Client IOR traversal is not dependant on IMR use.
         - Fix for threading issue with CodeSet (BZ994).
         - Fix for threading issue with Configuration (BZ991).
         - Fix for read_fixed (BZ996).
         - Fix for nested invocations and timeouts (BZ940).
         - Further improvements to network address retrieval code. Real interfaces
           (e.g. Ethernet/WLAN) will be prioritised over virtual interfaces
           (e.g. VMWare, VirtualBox, Docker) via the JVM system property
           jacorb.network.virtual which defaults to VirtualBox,VMWare,vboxnet,docker
         - Fixes for IPv6/MIOP parsing.
         - Remove deferredArrayQueue to avoid stream corruption/improve performance.
         - Revert releasing target object after DII invocation due to multithreading issues. (BZ1000)
         - Fix for client reconnecting to restarted servers (BZ967)
         - Fix for close issues in GIOPConnection (BZ1002)
         - Add compatibility check for special operations.
         - Ensure IIOP close doesn't throw exceptions.
    - Misc
        - Convert demos to Maven layout.
        - Add Travis-CI Integration.
        - Improve documentation and add https://jacorb.github.io/JacORB javadoc API.
        - Add appserver demo.

3.5
===
    - ORB
         - Simplify network address retrieval code.
         - Protect against OutOfMemory in GIOPConnection::receiveMessages to prevent client hanging.
         - Handle reconnecting via a closed connection to a persistent server (BZ975).
         - Fix for local interceptors and slots (BZ976)
         - Simplify logging.
         - Fix for CodeSet tag appearing twice in multi-profile IORs
         - Deprecate defining org.jacorb.orb.standardInterceptors.IORInterceptorInitializer as a
           standard interceptor; it is now implicitly defined by jacorb.codeset QoS.
         - Fix for 4 byte UTF-8 conversion (BZ969)
         - Codeset configuration : by default they are now enabled.
         - Fix for port / endpoint initialisation.
         - Fix for ORB instances sharing Current information.
         - Fixed SSL properties reading and processing (BZ#820).
         - Improve SAS Error propagation (and add tests).
         - Removed unused GSSUP code.
         - Fix for forward request handling for special operations (BZ#979)
         - Fix for connection closure/server restart with multiple connections (BZ#986)
         - Move Singleton debug code into Diagnostic class to avoid JDK issues.
         - Improve ordering of network addresses.
         - Fix for creation of corbaloc with IPv6
         - Fix internal ordering of ORBEndpoints
         - Fix for interceptors and restarted server (BZ#983)
    - Documentation
        - Minor fixes.
    - Misc
        - Add Jacoco Coverage to regression suite.
        - Convert source code to Maven layout.
        - Upgrade to SLF4J 1.7.6
        - Fixes for Javadoc under JDK 8.
        - Run subset of regression tests with the IMR
        - Improve test system stability

3.4
===
    - ORB
         - Default Sync scope for oneways is now configurable via jacorb.default_sync_scope property.
         - Add new getDelegate to ClientRequestInfoImpl Public API
         - Fix for repository_id on remote method invocation. (BZ972)
         - Improve encapsulation of internal code.
    - IDL
         - Improve logging formatting.
         - Escape parameter argument if it clashes with an enclosing module. (BZ974)
    - Misc
         - Fix logging to be consistent throughout the ORB and Services.
         - Add ability to configure the 'clock' format in the logging to be
           NONE, TIME or DATE_TIME. Default is NONE.
         - Improved Logging documentation.
         - Added org.jacorb.util.Diagnostic class to print out useful environmental information.

3.4-Beta
========
    - ORB
         - Improve ORBSingleton logging.
         - Fix interceptor BAD_PARAM minor codes (BZ961)
         - Default to closing client connections completely on error.
           Rename QoS jacorb.delegate.disconnect_after_systemexception to
           jacorb.connection.client.disconnect_after_systemexception. (BZ967)
         - Clear fragments on connection close. (BZ949)
         - Implement ContextList (BZ968)
         - Fix for servicecontext propagation (BZ960)
         - Fix for streamable any (BZ968)
         - Release target object after DII invocation.
    - IDL
         - Fix for logging.
         - Fix for Struct with String typedef type to be output as initialised type.
    - Misc
         - Improve documentation for SLF4J logging and maven.
         - Split jacorb.jar into jacorb.jar and jacorb-omgapi.jar.
           The OMG stubs are now held soley within jacorb-omgapi.
         - Correct Maven dependencies.
         - Correct default logging configuration (at INFO level).
         - PrintIOR can now interpret TAG_RMI_CUSTOM_MAX_STREAM_FORMAT.

3.3
===
    - ORB
         - Fix for built-in interceptors and local calls (BZ956/957).
           Add new isLocalInterceptors to *RequestInfoImpl Public API
         - Add fix to prevent non-compilant buffers from being returned to the buffer manager (BZ958).
         - Add public ctor to CDROutputStream to allow specifying a predetermined buffer size,
           as well as a releaseBuffer method to let the application take ownership of the buffer
           from the stream for use after the stream goes out of scope. (BZ958)
    - Misc
         - Improve Version output to incorporate the SHA (and autogenerate).
3.3beta
=======
    - ORB
         - Improve encapsulation of internal code.
         - Implement the method validate_connection.
         - Support setting the ORB ID using the -DORBId option.
         - Support multi-network interfaces using -ORBListenEndpoints option.
         - Change logging to debug level (https://bugzilla.redhat.com/show_bug.cgi?id=950294).
         - Add public API for Client/ServerRequestInfo.
         - Add fix for NIO with large requests (BZ939).
         - Add fix for disconnect logic on bad connection (BZ947).
         - Add fix for rootpoa creation with bad socket (BZ943).
         - Add fix for non_existent (BZ953).
         - Add fix for rewrite on OutputStream with large sizes (BZ941).

    - POA
         - Add fix for exception in interceptors breaking requestprocesor thread. (BZ946)
         - Add fix for requestprocessor pooling. (BZ946)

    - TAO ImR/NS Compatibility
        - Implement the new property "jacorb.use_tao_imr".
        - Support redundancy for failing over to a secondary ImR or a NS service
          when the current service is no longer available.  JacORB will iterate
          the profiles the ImR-ified IOR while attempting to re-establish
          conversations with the targeted ImR or Naming Service (NS).
        - JacORB is inter-operable with the TAO ImR by setting the new property
          "jacorb.use_tao_imr" to "on".
        - Add demo and integration test suites for TAO ImR, and TAO NS.

    - Misc
         - Add integration test suite for JacORB ImR.
         - Default logging now supports showing class & method information.
         - Support compiling with IBM JDK 1.6/1.7.
         - Fix logging for nested exception traces.
    - IDL
         - Fix for line endings in generated code (BZ942)
    - IR
         - Improved the performance of RepositoryID to class name conversion (BZ962)

3.2
===
    - ORB
         - Fix for UCS-2 codeset encoding.
         - Fix for RMI-IIOP Exception marshalling.
         - Fix for unnecessary duplicate in ServantDelegate.
         - Fix for logging output (Bugzilla 937).
         - Improve fix for associating Servant with an ORB (Bug 923).
         - Only call removeContext if addContext has been called (Bug 925).
         - Fix for multiple removeLocalRequest calls.
    - Notification
         - Fix for ProxyPullSupplier (Bug 804)
         - Fix for disorderd events (Bug 716)
    - IDL Compiler
         - Add flag to turn off timestamps in generated code.
         - Fix for alias interface operations.
         - Updated IDL files to http://www.omg.org/spec/CORBA/3.1.1
         - Updates for IDL to Java Language Mapping 1.3 (formal/2008-01-11)
    - Misc
        - Support for JDK 7
        - Move Ant dependency to IDL compiler.
        - Deploy a zip of the IDL files with the IDL compiler.
        - Add Maven demo and documentation.
        - Remove the neccessity to generate the bin scripts.
        - Improve documentation.

3.1
===
    - ORB
        - Fix current_component with DynArray/DynStruct/DynSequence to conform to spec.
        - Output iiop version when printing Corbaloc URLs
        - Call _this_object on Servants for ServantManager created objects.
        - When selecting an address for localhost attempt to find non-loopback first
          for both IPv4 and IPv6.
        - Fix for portable interceptor ordering issue with colocated calls.
    - IDL Compiler:
        - Predefined preprocessor symbols are now built into the compiler
          rather than included from the jacorbdefs.idl file, which has been
          deprecated.
    - Naming Service
        - Fix for NameManager display/cyclic detection. Fix for refresh counter.
    - Misc
        - Fix Maven GAV for IDL compiler.

3.0
===
    - ORB
        - Fix issue with handling Locate Requests
        - Add ability to transmit OBJECT_FORWARD on receiving a
          Locate Request with short object key.
    - Documentation
        - Add missing properties.
    - Misc
        - Fix for demo compilation.
        - Add Maven pom wrappers.
        - Add SendingContext IDL

3.0 RC 1
========
    - ORB:
        - Fix for interceptors & exception propagation.
        - Fix for backwards compatibility with stubs and reply_status.
        - Fix for configuration caching issue.
        - Fix for IPv6 socket creation.
    - IDL:
        - Fix for union IDL compilation.
    - Misc:
        - Include org.omg.TimeBase in jacorb.jar
        - Rename JDK15TypeCode* to TypeCode*Impl

3.0 beta 2
==========
    - ORB:
        - Refactor ETF factories to remove static information.
        - Provide public createObjectIOR functions in ParsedIOR.
        - Refactor internal use of Singleton ORB and provide a new
          org.omg.CORBA.ORBSingleton to avoid clashes with e.g. JDK Singleton.
        - Add implementation of ValueInput/OutputStream
        - Add support for ISO8859-15
        - Fix for interop with Glassfish.
        - Remove static information from ETF Factories.
    - POA:
        - Add timeout for poa threadpool.
        - Fix for NullPointer in POA destroy.
        - Add QoS to run Servant code in its own context classloader.
    - IDL Compiler
        - Avoid create_local_interface_tc generation if using deprecated.
        - In Helpers, for cached typecode, change lazy holder pattern to double checked
          locking.
    - Fixes:
        - Fixed empty configuration parameters' values processing for Integer,
          Long, Float and Boolean types.
        - Integrate suggested patch from Bug 810 to address the problem of
          an infinite loop that might be raised due to certain errors when
          using the Implementation Repository (IMR).  Note that this is an
          incomplete fix. Along with Bug 896, interactions with the IMR
          require general updating, which is an effort that will require
          sponsorship.
        - Fix for compiling omg/IOP.idl
	- Fix for bug 915. This prevents massively threaded clients from
          processing multiple Location Forward messages from the IMR,
 	  discarding and resending requests to the target server.
    - Misc:
        - Improve version identification in output/jar manifests.
        - Fixes for building under Windows platforms.
        - Add wrapper scripts enabling IMR_SSD, the service startup daemon,
          to be registered as a windows NT service.
        - Changed level of some logging output to be quieter.
        - Minimum JDK is now 1.6.

3.0 beta 1
==========
    - ORB:
        - Timer Queue implementation added prior to NIO has been merged
          with the Selector framework used to support NIO. The write timeouts
          for blocking I/O still work and the interface is the same.
        - now supports non-blocking I/O for the client side. Makes use of the
          Java nio package. Connection establishment, sending requests and
          awaiting response can now be timed and nonblocking.
        - fix that allows custom SocketFactory class plugins to
          specify their dependency on the ORB either as
          org.jacorb.orb.ORB or org.omg.CORBA.ORB in their
          constructor.
        - changed PICurrent's set_slot/get_slot to raise BAD_INV_ORDER
          if they're called from within an ORB initializer.
        - provided a implementation for org.omg.CORBA.ValueBaseHelper.
        - Improve checks for if an ORB has been shutdown.
        - fix Object::duplicate(4.3.2.1).
        - Fix for initialisation of a ServantDelegate
        - Change set_policy_overrides to match 4.3.9.1 specification.
        - fix possible race condition with the value factory hashmap.
        - modified the JSSE socket factories to throw INITIALIZE if
          no ssl keystore is set or if the filename is wrong.
        - made the object key mapping feature more efficient (ORB.addObjectKey,
          properties jacorb.orb.objectKeyMap).
        - Remove finalize from Delegate to improve performance and scalability. Client code is now
          responsible for calling _release on CORBA Objects as necessary.
        - fixed a bug that prevented to use an ORB with
          jacorb.giop_minor_version=0.
        - improved PrintIOR output.
        - fixed handling of -ORBInitRef parameters and added handling
          of -ORBDefaultInitRef parameter.
        - fixes for platform java detection in jaco script.
        - fixed issue with deadlock in AOM - move access to requestController
          outside synchronised block.
        - added more strict checking for wstring/wchar types during demarshalling
          GIOP 1.0 does not allow them.
        - fixed issue where exceptions during AMI didn't work
          if the IDL was specified with pragma prefix.
        - fix ExceptionHolderImpl Configuration
        - fix for the IIOPLoopback feature. It didn't work when connecting to
          the actual IP of the host instead of 127.0.0.1.
        - added property to enable the Socket Option SO_REUSEADDR
        - Fix for nullpointer within Delegate when multiple threads call release.
          for server sockets (jacorb.connection.server.reuse_address).
        - allow to configure eager/lazy DNS resolution.
        - fixes for BiDirectional GIOP and SSL.
        - fix for client interceptor send_request exception propagation.
        - fixes for DynUnion.to_any.
        - fix for initialising the ORB with properties.
        - allow SSL keystore to be configurable.
        - call shutdownOutput before closing socket as recommended by
          http://java.sun.com/j2se/1.5.0/docs/guide/net/articles/connection_release.html
        - applied patch from JacORB Bugzilla #801 for AOM Thread creation.
        - New MIOP ETF transport added. Original design and implementation by Alysson Bessani.
          Further work on implementation, specification compliance, interoperability and
          integration by Nick Cross.
        - Updated Java mapping from 02-01-02 to 03-01-02 and simplified IDL files [Bugzilla 451].
        - Add test for to verify OMG stub code get_component is available.
        - fix jacorb.giop_minor_version property usage (bugzilla 879).
        - Fix for handling of max_server_connections. (bugzilla 878).
        - Fix for decoding and output of IORs with multiple TAG_ALTERNATE_IIOP_ADDRESS.
        - Allow the ORBs internal deferredArrayWrites to be configurable.
        - BufferManager implementation has been reworked - code simplifying and
          tiding.
        - Added buffer manager expansion policies support.
        - added jacorb.dns.force_lookup property that allow to turn on/off FQDN host
          name reverse lookup for IIOPAddress and IORs.
        - Fixed error in Codeset configuration setting NCSW.
        - Added optional thread ID to log output. Use property
          jacorb.log.showThread to enable.
        - Added new explicit timeout for blocked sends, use properties
          jacorb.connection.request.write_timeout and
          jacorb.connection.reply.write_timeout to enable.
        - Fixed incorrect child POA processing (bugzilla #806).
        - Performance optimisations
        - Added property to disable client orb policies for performance.
        - Fixed SSL properties reading and processing (bugzilla #820).
        - Implemented portable interceptors correctly for local objects.
        - New lines in log messages fix (bugzilla #873).
        - Remove ReplyReceiver from pending_replies if an error happens when reading the reply.
        - Fix servantdelegate bind issue to prevent cached object delegate being set to null.
        - Fix for Current overwriting in local calls between Client/ServerRequestInfo
        - Fix for sync policies and null pointer within Delegate.
        - Propagate objectId to ServerRequestInfo for local calls.
        - Fix for setting port address to zero when SSL is in use or when an
          IORInterceptor adds a CSI component with transport protection.
          (24.5.1 from CORBA 04-03-01).
        - Added jacorb.interop.null_string_encoding to allow handling of null strings.
          Thanks to Fabiano Ghisla.
        - Bind client socket to wildcard address instead of localhost in
          PortRangeSocketFactory
        - Allow OAIAddr to be specified when using PortRangeSocketFactory.
        - Fix for the incorrect GIOP v1.1 message header creation in RequestOutputStream
        - Fix delegate bind issue to prevent cached object delegate being set to null.
        - Fix for oneway/sync scope none with parameters.
        - An implementation of the Object::create_request operation has been added with an exception list.
        - Fix for attribute setting of jacorb.security.ssl.*.protocols
        - Apply optimisation for string marshalling.
        - Add TypeCode equal/hashcode
        - Fixed marshalling error: Found indirection marker, but no corresponding original typecode.
        - Change default of compactTypecodes to be off (no compaction)
        - Fix for non-configured CDRInputStream when created with a ORBSingleton.
        - Fix for the problem with handling negative values in DynFixed.
        - Fix for the high CPU load issue on the Windows hosts caused by default configuration
          re-reading.
        - Fix for request handling to ensure RelativeRoundtripPolicy and REQUEST_DURATION_POLICY
          timeouts bound the entire invocation including any embedded invocations/re-invocations.
        - Fix to ensure that current contexts are added and cleared correctly when handling
          embedded calls.
        - Fix for local interceptors to prevent client PICurrent being overwritten by
          a server PICurrent.
        - Improved Configuration storage and made the usage more consistent.
        - Added PKCS key storage type and CRL support for SSL (experimental, bugzilla 883).
        - Fix for chunking and boolean types.
        - Allow ORB props/args to be propagated to the Singleton config.
        - Add system property jacorb.classloaderpolicy for whether to resolve classes via thread
          context class loader or the defining class loader.
        - Fix for Bug852 - preserve original typecode when marshalling objects within Any
          (thanks to Zoltan Bordas of OpenSpirit Corp).

    - POA:
        - Fix for reference_to_id error checking.
        - Modify AOMRemoval thread to shutdown on POA shutdown.
        - Add fix for policy operation name clash.
        - Fix for incorrect opsHash keys for AMI POA (bug894)

    - IDL Compiler:
        - Fix for IDL compiler issue where a union with an enum discriminator could send through
          a non-defined value.
        - Fix for IDL compiler issue forward declared interface and inherited interface.
        - Fix for IDL compiler issue where compiler generates incorrect type code for sequences
          of local interface.
        - Fix for IDL compiler issue with constant long long generation.
        - fixed issue where the IDL compiler generated imports for the
          unnamed package.
        - fixed issue where the IDL compiler removed a custom backend set
          through the API.
        - fixed issue where nested sequences would result in invalid java
          code.
        - changed generated stub code so that rmi repository id is skipped
          for idl defined valuetypes.
        - additional parentheses around const expression in labels in unions.
        - fixed issue in generated code when extracting sequence from any.
        - fixed issue where holder classes for user-defined exceptions
          weren't generated.
        - fixed IDL parser issue where repository ID using pragma prefix
          with more than 1 space before ID caused an parse error.
        - fixes for IDL compiler struct/typedef/array compilation outside
          of modules.
        - Enhance generation to close inputstreams.
        - Enhance generation to null delegate objects.
        - fixed issue where CR/LF symbols were incorrect in generated
          files (bugzilla #483).
        - fixed issue where IDL compiler generates erroneous code for
          the infinity float values (bugzilla #851).
        - fix for IDL detecting the bounds violations for string type.
        - changed IDL compiler logging from Apache LogKit to native JDK
          logging.
        - applied patch from JacORB bugzila #673/674 which fixes issue where
          Helper.type() method implementation for recursive valuetypes was
          incorrect.
        - add default serialVersionUID generation (#802).
        - Use HashMap rather than Hashtable in skeleton code.
        - Support for typeprefix has been added to the idl compiler.
        - Reset include path between multiple runs of jacidl.
        - Fixes for IDL compiler union discriminators.
        - Added -sloppy_identifiers to permit certain illegal identifiers.
        - Enhance Ant JacIDL task to add error checking, pass sloppy identifiers and
          i2jpackage through.
        - Fix for IDL compiler union generation - added additional check that prevents explicitly
          defined cases usage for __default(_discriminator) method.
        - Fix for IDL compiler when the enum declaration is used in 'switch' clause of union.
        - Fix for IDL integer types ranges checking.
        - Fixes for IDL compiler when concatenating string literals.
        - Fix for IDL compiler array naming.
        - Fix for IDL compiler unary minus in constant definition.
        - Fix for IDL compiler package generation for nested types (Bugzilla #700).
        - Fix for IDL compiler unions scope processing.
        - Fix typecode for typedef'd array (Bugzilla #703).
        - Fix for IDL compiler failure when multiple unions specify the same branch name.
        - Fix for IDL compiler issue where Java keywords that have been added
          since JDK1.5 are used as identifiers.
        - Fix for IDL compiler issue where compiler incorrectly checks discriminator in default
          branch.
        - Fix for IDL compiler issue where no error is generated when a forward declared union is
          defined as an interface.
        - Fix for newline parsing with included files.
        - Fix for typedef with array and operator.
        - Fix for IDL compiler for generation of system exception classes.
        - native types containing #pragma prefix "omg.org" weren't processed properly.
        - Improve and fix toString on stubs for UnionType.
        - Implemented Portability Stubs and Skeletons as per 4.21.6 of IDL to Java Mapping
        - Improve typecode generation to use lazy initialization class holder idiom.
        - Refactor to simplify code (bug715)
        - Refactor previous typecode generation change to use volatile/synchronised and double checked locking instead.

    - Naming Service:
        - Fix for BindingIterator leak (Bugzilla 647).
        - Renamed configuration properties and default to off.
        - Work around cyclic graphs when running NamingManager
        - Fix for memory leaks (Bugzilla 835) and Mico interoperability (Bugzilla 617).

    - Interface Repository:
        - use a persistent POA for the repository servant.
        - Fix IDL to remove is_abstract to bring into compliance with specification.
        - Fix for problem with encapsulated modules loading (Bugzilla 884).

    - Tools:
        - enhanced dior's ability to recognize different ORB types.
        - enhanced dior to allow parsing of multiline IOR files.
        - enhanced dior to add optional output of corbaloc strings.

    - Documentation
        - Configuration layout and network configuration improved.
        - added section about the usage of corbaloc in conjunction
          with SSL enabled servers.
        - Classloader chapter added.
        - added buffer manager factory configuration details.
        - update SSL/SAS documentation.
        - added NAT and firewall network configuration section.
        - Updates for installation.

    - Misc
        - Update SLF4J libraries to 1.6.4
        - Split ORB jar delivery into jacorb.jar (ORB/IMR/IR/NamingService) and
          jacorb-services.jar (all other services e.g. Notification/Transaction/Collection)/

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.
        - fix for broken socket connect timeout mechanism.
        - fix for bug during logfile initialization routine
          that caused the creation of multiple empty logfiles.
        - fixes for stream closure with sync scope none.

    - 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).

    - 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.
        - patch from bugzilla #708 to fix occasional deadlock/timeout issue within
          GIOPConnections.
        - let POA.reference_to_servant raise BAD_PARM if a null reference is passed in.

    - Documentation
        - enhanced socket factory documentation

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 Apache logkit logging 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, ...)
