Gerald Brose
brose@inf.fu-berlin.de


	   JacORB 1.2 RELEASE NOTES
	____________________________________

 Features

	- free CORBA 2.0 implementation (LGPL license)

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

	- IDL compile, complies to rev. 2.3 of the Java language mapping
	- DII, DSI, native IIOP
	- POA (by Reimo Tiedemann)
	- DynAny
	- Implementation Repository with GUI (by Nicolas Noffke)
	- Applet support and HTTP tunneling(by Sebastian Mueller)
	- IIOP 1.1 and Code set support (by Martin Devera)
	- IIOP over SSL (by Andre Benevenuti)
	- Portable Interceptors, (by Nicolas Noffke, for service context passing)
	- Domain Management (Herbert Kiefer)

	- Object Service implementations
		- Interoperable Naming Service (with graphical interface)

		- Trading Service (extension of Mark Spruiell's JTrader 
		     by Nicolas Noffke)
		- event service

		- transaction, collection and concurrency service
	            (by Alex Sinishin and Viacheslav Tararin of DekaSoft 
		    Ltd., Ukraine,taras@deka.kp.km.ua)


 Missing:

	- Interface Repository
	- OBV

 Roadmap:

	- extend SSL support
	- partial Security Service

-----------------------------------------------------------------------------

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 OAIAddress 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

-------------------------------------------------------------------------------

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

Changes in beta 2:

	1) fixed IDL compiler bugs:
	 	- unions that are contained in structs are ok now
		- sequences of anys had some wrong code generated in helpers
		- string constants can now be "" (const string x = "";)
		- typedef and declaration on a single line ok now.

	2) fixed a bug in generating object IDs

	3) added a compiler switch -i to include import statements 
	   into generated Java code

	4) added a compiler switch -local to generate code for local stubs 
           that let invocations local to a process bypass full marshalling

	5) cleaned up IDL code of COSS files in JacORB1_0/idl 

	6) changed shell scripts to use /bin/sh rather than /usr/bin/csh
	   (as suggested by Knut-Havard Aksnes)


Changes in beta 3: (1 June 1999)

	1) fixed a most embarrassing bug in the marshalling code for object
	   references. 

	2) added a few missing IDL files for COSS

Changes in beta 4: (3 June 1999)

	1) fixed orb.resolve_initial_references()

	2) fixed a class cast bug in naming/namemanager/ContextNode.java

	3) fixed a problem with sending null references in orb/CDROutputStream

	4) fixed a few POA subtleties

Changes in beta 5: (10 June)

	1) request-level interceptors on server side are working now

	2) IDL compiler bug fixes:
		- unions with switch type short needed additional cast
		- multi-dimensional sequences had errors in helpers
		- multiple typedefs for a single base type were not allowed
		- a few problems in the scanner fixed when including
		  IDL files
		- other minor fixes...

	3) POA bugs around object ID generation and comparisons fixed

	4) enabled GIOP Locate Request messages

	5) Makefiles:
		- there is now a Windows version of the main Makefile that
		  has backslashes (Makefile.win, sent in by Tararin Slavik),
		- a newUnix version of the main Makefile generates the 
		  "jaco" script according to Makefile.configure parameters,
		  so there is no need to edit it separately (contributed by Bruno Boettcher)

Changes in beta 6: (18 June)

	1) fixed a marshalling error in encapsulations that caused interoperability
	   problems when sending complex structured data types (thanks to Mike Davis
	   mdavis@rwii.com for pointing it out to me!)

	2) made interceptors configurable through properties (the ORB is
	   faster if interceptors are configured out because some copying
	   of buffers can be avoided!)

	3) introduced caching of object references

	4) improved POA code design (nothing functionally new, though)

Changes in beta 7: (29 Jun)

	1) fixed a bug in the name server that would allow objects to be
	   registered only with the kind attribute of the name set to 
	   "service"

	2) fixed a bug in server requests that would not allow repeatedly
	   unmarshalling requests (which is necessary for interceptors)

	3) fixed a (minor) aligment bug 

	4) aligned behaviour of the IDL compiler: included files with "
	   are searched relative to the inlcuding file, those included 
	   using #include <> are properly searched for in the include path
	   now. Also fixed two minor bugs in the compiler

	5) multiple clients of a single connection are now properly notified of 
	   communication failures. In earlier versions, only a single thread
	   was notified and all other threads just remained blocked.

	6) cleaned up the marshalling code a little (cosmetic changes only)

	   (Thanks to Toby Allsopp and Ross Millen of Peace Software for 
 	    useful hints and suggestions as well as bug reports.)


Changes for beta 8 (12 Jul):

	1) IDL compiler bug fixes
		- inclusion bug: resulted in swallowing the first line
		  in an included IDL file
		- name scopes: the -p option did (but should not) influence
		  repository IDs
		- IDL grammar: the grammar for the IDL parser did not allow
		  empty specifications. It does now.
		- A Java API call that was incompatible with JDK 1.1 has been
		  changed back.
		- global scope: fixed a bug in generating helpers for IDL interfaces
		  in global scope, i.e. without enclosing modules

	2) An error in the server-side multi-threading resulted in single-threaded
	   execution.

	3) Location forwarding is now enabled (thanks to Markus Lindermeier
	   for a few suggestions).

	4) A bug in the connection management code lead to multiple connections
	   being opened to the same destination under certain circumstances.


Changes for beta 9 (24 July 99)

	1) IDL compiler (keeps getting better and better...)

		a) bug fixes: further inclusion bugs, nested #ifdefs, 
			      name resolution bugs, name table bug  and others

		b) new features: compiler switch "-all" generates code for 
				all included files. An additional #pragma can
				be used to inhibit code generation for individual
				files (cf. <orb.idl>)
				the compiler can be given multiple .idl files on
				one command line

	2) Name changes for generated classes:

		IDL interface Foo yields skeleton classes FooPOA and FooPOATie
		instead of POA_Foo and POA_Foo_tie. This is to keep up with
		the ever-changing IDL/Java language mapping

	3) Change in DII Request implementation allows for simple redirection
	   of calls using request-level interceptors (cf. interceptors example)

	4) Other bug fixes not worth detailed explanations



Changes for beta 10 (4 August 1999)

	1) new: DynAny supported (API according to CORBA 2.3)

	2) new: Trading Service, JacORB now includes a port of
	   Mark Spruiell's JTrader (v 0.2, later versions now
	   dstributed by Object Oriented Concepts, Inc.)

	3) Name Service:
		- fixed a bug in BindingIterator
		- removed restrictions for kind attributes in names: 
		  kinds can now be chosen freely

	4) IDL compiler 
		- improvements: IDL files that include OMG definitions can
				now refer to names from these files without
				enclosing the #include in modules org and omg
				and scoping all references org::omg::
		- bug fixes: Union helper generation, ...

	5) Directory structure:
		separated src/ and classes/


Changes for beta 11 (11 August 1999)

	1) updated, corrected and added Makefiles

	2) fixed two bugs in the NamingService

	3) fixed a few minor bugs in the IDL compiler

	4) fixed a bug in connection management that would not allow
	   connections to peers with high port numbers

	5) added a method "_this(orb)" to generated skeletons

	6) fixed Anys to support longlong data types (thanks to Al Davis)

	7) removed a few calls to JDK1.2-only API operations


Changes for Beta 12 (7 October 1999)


	1) Added support for fixed point IDL data type.

	2) Trading service supports trader links (federations) and
	   has a different package structure now.

	3) Changed support for local invocations: only one stub class
	   for both local and remote invocations now. Added a proprietary
	   "#pragma local" that signals locality constraints for interfaces
	   to the IDL compiler.

	4) Interceptors on both client and server side are now guaranteed
	   to be executed in the same thread. On the server side, this is
	   also the same thread that executes the invocation on the servant.

	5) IDL compiler bugs that are fixed now: 
		- overrestrictive checks for bounded sequences, 
		- support unions with boolean switch type, 
		- -I option allows multiple paths
		- #include always searches include path

	6) Naming service bug fixes

	7) (few) POA fixes

	8) Added missing Makefiles and corrected others.

	9) Added a commandline option that allows to set the server's IP address
	   (for multi-homed hosts): -DOAIAddr=xxx


Changes for Beta 13 (2 November 1999):

	1) new: applet support: "Appligator", a request gateway (IIOP proxy) 
		(HTTP tunneling is upcoming)

	2) new: Implementation Repository (central repository, one server 
		startup daemon on each host), (a GUI management tool is upcoming)

	3) new: Code set support

	4) changes in name server implementation: name server now saves state
	   and reloads state at startup, can also be configured to shut down
	   after a specified period of time.

	5) IDL compiler:
		- now checks for (most) Java reserved names and prepends
		  underscores
		- generates code for nested type specs.  (e.g. structs in unions)

	6) minor bug fixes


Changes for Beta 14: (27 November 1999)


	1) Removed all calls to the  JDK 1.2 API to make JacORB usable
		under JDK 1.1, also changed Makefiles to allow building
		JacORB under 1.1

	2) Name Server: fixed a bug that lead to a WRONG POLICY exception
		when creating sub contexts. Minor fixes.

	3) Connection management: removed a potential deadlock problem when
		connections are lost, allow retry values of 0

	4) Fixed  an interoperability  bug when  sending  or receiving
		CORBA system exceptions.

	5) IDL compiler: added new options -i2jpackage for flexible output
		package redirections and -D for the external definition of
		preprocessor symbols. Fixed a bug in mapping Java reserved
		names.

	6) Implementation Repository: new GUI

	7) Fixed a bug that would not let out arguments of DII invocation
	        get returned.

	8) Minor changes:
		Added class jacorb.util.Version with a static method get() 
		to retrieve JacORB version information.
		Moved classes Debug and Environment to a new package jacorb.util



--
Changes for Beta 15:

	Beta 15 introduces the transaction service, improves performance
	and fixes a number of bugs.

	1) fixed the following IDL compiler problems
		- errors in helper classes for fixed point types
		- name resolution for constant expressions in bounded
		  strings and within struct members
		- name resolution for enum members for enums declared in
		  global scope
		- errononeous stub code for calling getter methods (IDL
		  attributes
		- compiler error when #pragma prefix is set to the empty string
		- incorrect any insertion code in helpers for object types
		- errors in helpers for sequence types
		- allow more than just a single space after a #define
		- add octet to const types, ie. allow "const octet 0x7;"
		- (plus other fixes I have already forgotten...)

	2) Name Server:
		- bug fix (creating more than one context within
		  another led to exceptions), 

		- redesign: now use ServantActivators to load/store
		  persistent state

		- usage change: 
			- no more file name argument for persistent state
			- additional property: jacorb.naming.db_dir as a
			  target directory for files to store state in.

	3) Transaction Service:
		- new implementation by Viacheslav Tararin, I added a simple 
		  transaction demo
		- no nested transactions, explicit context propagation

	4) POA: 

		- create POAs in holding state (a la spec.). NOTE: This requires
		  the POA's POAMonitor to be activated before requests can be
		  accepted!! Consequently, if your code does not contain a
		  a call to poa.the_POAMonitor().activate(), it needs fixing!!!!

		- Fixed a bug in POA invocation context handling plus a smaller
		   synchronization bug 
		- made request processor thread priorities configurable

	5) Improved design (and thus performance) for Appligator

	6) Event Service bug fixed (null pointer exceptions with try_pull())

	7) IDL compiler classes now reside in their own idl.jar archive

	8) Introduced a buffer manager class (reduces memory footprint
	   and improves performance)

	9) Corrected reference caching so that colocated objects can
	   always be recognized and local call optimized

	10) added a simple hello world demo that does not use the name service
	   as a more gentle introduction to CORBA programming.

	plus: Other bug fixes, especially in Makefiles


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

