VisiBroker for Java 3.2 Release Notes

[03.02.00.C2.05]

Table of Contents

Latest Information
Release Contents
Changes Since 3.1
Known Issues
Platform Certification
Compatibility with JDK 1.0.2
Compatibility with JDK 1.2
Compatibility with other VisiBroker Releases
Interoperability with other VisiBroker Releases
Use with Netscape Communicator/Navigator 4.0
Printing Version Information

Latest Information

For the latest technical information relating to this release please visit Visigenic's ORB Central web pages.

Release Contents

VisiBroker for Java 3.2 consists of NOTE: Support for SSL over IIOP is available as a separate add-on product, VisiBroker SSL Pack for Java.

Changes Since 3.1

VisiBroker for Java 3.2 contains many improvements over the last release including important fixes and new features.  All of the changes are outlined below.  It is very important that this section be read carefully since the changes in this release affect all developers. For information on changes prior to this release, please visit ORB Central.

Upgrading from 3.1

When upgrading from VisiBroker for Java 3.1, it is recommended that you remove VisiBroker for Java 3.1 from your system before installing VisiBroker for Java 3.2.

New Features in 3.2

VisiBroker Developer for Java 3.2 contains many new features and enhancements over VisiBroker Developer for Java 3.1.  A brief outline is provided below, followed by detailed descriptions of the changes.

CORBA Portability

As part of the OMG Java/IDL language mapping, the OMG specifies mechanisms by which a user may replace an ORB implementation using the org.omg.CORBA.ORBClass property.  VisiBroker for Java 3.2 contains several improvements which allow it to be swapped in place of any other compliant ORB.  This ORB replacement feature has been tested successfully against early versions of JDK 1.2 which includes a minimal Java ORB.

VisiBroker for Java currently supports several variations of the org.omg.CORBA.ORB.init() method.  The OMG specification states that the singleton ORB returned by the no argument ORB.init() can only be used to create TypeCodes and Anys.  VisiBroker for Java 3.2 now optionally provides compliant behavior by setting a Java system property in your application.  To obtain compliant behavior define the system property org.omg.CORBA.ORBSingletonClass to com.visigenic.vbroker.orb.ORBSingleton.  For example on a JavaSoft VM one would run the following command:

It is recommended that users modify their programs to be compliant in order to provide the most compatibility with future versions of VisiBroker for Java.   Note, a compliant program will run on previous versions of VisiBroker for Java 3.x as well.  The only change required by applications is to call org.omg.CORBA.ORB.init(String[] args, java.util.Properties properties) instead of org.omg.CORBA.ORB.init() to initialize an ORB from within an application.  The table below summarizes the changes required for applets and applications.  All examples provided with this product use the new methods.  In the application method, args represents the command line argument passed into your applications main() routine.  In the applet method, applet represents the applet instance (i.e. your applet's this reference).  Note: Calling the application and applet versions of ORB.init() return a new instance of the ORB each time they are called.
 
  Old method New method
application org.omg.CORBA.ORB.init() org.omg.CORBA.ORB.init(args, null)
applet org.omg.CORBA.ORB.init(applet) org.omg.CORBA.ORB.init(applet, null)

Dynamic Any Support

VBJ 3.2 fully supports the recently adopted OMG Dynamic Any (DynAny) specification.  DynAnys provide a portable and convenient way to build complex data structures without requiring the availability of static class definitions provided by the IDL compiler.  For complete information on this new feature please consult the VBJ 3.2 documentation and the provided DynAny example.

Native Windows Executables

Native windows executables are now provided on all Microsoft Windows platforms instead of Windows batch files.  The executables provide more robust behavior and configuration options to the user.  The default VM to be used by VBJ can now be selected on the command line of all executables or by changing a registry setting using the vregedit tool.  When changing the VM, one should also change the value of VBROKER_TAG, which indicate what flag to use when passing system properties to the VM.  For JavaSoft VMs this flag is "-D" for the Microsoft VM (i.e. jview) this flag should be set to  "/d:".

Updated Interface Repository

The Interface Repository (IR) has been updated to be compliant with the CORBA 2.1 specification.

Updated IDL Compiler

The IDL compiler (idl2java) has been updated to support the IDL grammar as defined by CORBA 2.1.  This new grammar adds support for more complex nested types such as nested structures.  The IDL compiler has also been significantly enhanced to provide very detailed error messages.

Object Wrappers

VisiBroker's object wrapper feature allows you to define methods that are to be invoked when client application invokes a method on a bound object or when a server application receives an operation request. Unlike the interceptor feature described in Chapter 16, which is invoked at the ORB level, object wrappers are invoked at the object level prior to the call reaching the stub or the implementation, irrespective of whether the call results in network communication or not. Also object wrappers get invoked on the server side when the ORB makes upcalls to the object implementation. In fact, you can design object wrappers that return results without the operation request ever reaching the target object (i.e., stub on the client, or implementation on the server).

ORB Management Interfaces

The ORB Management Interfaces in VBJ 3.2 offers a new way of monitoring and managing the ORB. This new feature allows the developer to query and change properties of the ORB and Object Adapters during runtime.   Please consult the documentation for full details on this new feature.

GateKeeper

The GateKeeper has been significantly improved in several areas.  The GateKeeper now includes an advanced graphical configuration tool (gkconfig) which can be used to configure all aspects of the GateKeeper's operation.  This tool is now the preferred way of configuring all GateKeeper options.  The GateKeeper now reads all of its configuration information from a properties file rather than the command line.  The gkconfig tool should be used to generate the configuration file.   Note, many command line options to the GateKeeper are no longer supported.  It is strongly recommended that the GateKeeper documentation be reviewed thoroughly before upgrading to the latest version.

The GateKeeper internal architecture has also been improved to provide improved performance and transparency to clients and servers using the GateKeeper as a proxy.

Minor enhancements and bug fixes in 3.2

The following is a brief outline and description of the enhancements and bugs fixed in VisiBroker for Java 3.2.  Some fixes resulted in an incompatible change with VisiBroker for Java 3.1 and are so indicated.  Note: This list is not complete; if you have a question about a particular failure, please contact Visigenic technical support.

Incompatible changes

ORB runtime

GateKeeper

Compiler Tools

Known Issues

Platform Certification

This release has been certified for the following Java Virtual Machines (JVMs): In addition, this release has been certified with the following operating systems: With the exception of the osagent, osfind, and locserv executables, the VisiBroker for Java ORB is written entirely in Java and can run in any Java 1.1-compatible environment.  For a complete list of Java-enabled platforms, click here.

Compatibility with JDK 1.0.2

VisiBroker for Java 3.2 is also compatible with JVMs which are compatible with JDK 1.0.2 with the following restrictions:

Compatibility with JDK 1.2

VisiBroker for Java 3.2 has been tested with JDK 1.2 Beta 2 from JavaSoft, but has not been officially certified on that VM.  Final certification will be made upon release of the final version of JDK 1.2 from JavaSoft.  Below are the list of known issues when using the JDK 1.2:

Compatibility with other VisiBroker for Java Releases

Compatibility with VisiBroker for Java 2.5

Compatibility with VisiBroker for Java 1.2

Interoperability with other VisiBroker Releases

VisiBroker for Java 3.2 is fully interoperable with VisiBroker for C++ 3.x.  Communicating with VisiBroker for C++ 3.x requires no runtime flags.  VisiBroker for Java 3.2  is "on-the-wire" interoperable with: As a result of clarifications in the original OMG IIOP specification, minor IIOP wire format changes have been necessary in VisiBroker for Java 3.0.  However, full backwards compatibility is supported that enables client programs and servers running on VisiBroker for Java 3.0 to interoperate with existing client programs and servers running on VisiBroker for Java 1.2/2.5 and VisiBroker for C++ 2.x. With this backwards compatibility, in addition to 3.0-to-3.0 communication, 3.0 client programs can talk seamlessly to Java 1.2/2.5 and C++ 2.x servers, and Java 1.2/2.5 and C++ 2.x client programs can talk seamlessly to 3.0 servers.

In environments where previous versions of VisiBroker for Java and VisiBroker for C++ are being used, it is necessary to enable backwards compatibility.  As described in the Programmer's Guide, to turn backwards compatibility on, the following runtime property (or Applet parameter) must be set to "true":

For example, to run the bank client example application on VisiBroker for Java 3.0 with backwards compatibility turned on, the following command would be used: Or, the following line would be added to the applet tag of the ClientApplet.html file:

Use with Netscape Communicator/Navigator 4.0

Printing Version Information

VisiBroker for Java 3.2 provides mechanisms for printing version information for the binaries and libraries included in this release.  In general use the executable vbver followed by the file to query version information.  For example vbver osagent.exe on Windows NT prints: Similarly, vbver vbjorb.jar prints: To obtain version information for the utilities (such as idl2java, irep, idl2ir, etc.), pass the -version argument to the
utility.  For example, idl2java -version prints: Note that the version information that appears above may not exactly match your release.