JacORB 2.2 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) - 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 ------------------------------------------- x.y === - Fixes: - fix to allow interoperability with TAO persistent IOR's (#735) 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, ...)