Consultor Eletrônico



Kbase 21030: OPEN CLIENT: How to determine the changes with Java 1.3 & Progress Version 9.1C
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   10/15/2008
Status: Verified

GOAL:

How to determine what the changes are with OpenClient and Java 1.3

FACT(s) (Environment):

Progress 9.1C

FIX:

Starting with Progress Version 9.1C we have migrated to using Java 1.3. This migration means a few changes for Open Client developers.


1) For Java Clients Talking to AppServer --
Java appears in the Java Open Client scenario in several places:

A) The application developer has written the client code in a
certain version of Java and compiles it with a certain version
of the Java compiler

B) The ProxyGen tool compiles the proxy using a certain version of
the compiler, as specified by the application developer

C) The client code and proxy together run using a certain JVM

D) ProxyGen runs using a certain JVM

E) Progress compiles the dynamic API code using the Javasoft 1.3
compiler

Our compatibility story is:

a) Items 1.A, 1.B and 1.C above should be the same version of Java.
That is, we support only configurations in which the application
developer uses the same version of Java to:

- Compile the client code (compiler version)

- Compile the proxy (compiler version) in ProxyGen

- Run the client/proxy (JVM version)

b) We support items 1.A, 1.B and 1.C (together) being any of:

- Javasoft 1.1.X

- Javasoft 1.2

- Javasoft 1.3

- Microsoft (latest version is based on 1.1.X)

c) Interactive ProxyGen runs only on Windows using the Microsoft
JVM. Batch-mode ProxyGen runs on Windows (using the Microsoft
JVM) and on all our supported 9.1C UNIX platforms (it can use
the Javasoft 1.1.X, Javasoft 1.2 or Javasoft 1.3 JVM).

d) The application developer who works on Windows can do all three
development steps on Windows: compiling the client code, running
ProxyGen and running the client.

The application developer who works on UNIX can do items A and B
above on any one of our supported 9.1C UNIX platforms: compiling
the client code and running the client (and proxy). They must
run interactive ProxyGen on Windows at least once; after they
initially run ProxyGen, if the 4GL code that runs on the
AppServer changes, they may be able to run batch-mode ProxyGen
on the UNIX platform (rather than interactive ProxyGen on
Windows), depending on the nature of the changes to that 4GL
code.

e) However, in one situation, the application developer has to use
the new file o4glrt1.zip. In particular, this affects Java
clients that:

- Use input temp-table parameters in calls to the AppServer, and

- Extend our InputResultSet.java class (which we make available
in com.progress.open4gl)

- Get compiled using a Javasoft 1.1.X compiler

For Java clients in this situation, in order to compile the
client code (1.A) using a 1.1.X Java compiler, the application
developer must put o4glrt1.zip into the CLASSPATH ahead of
o4glrt.zip (Progress already requires them to include
o4glrt.zip).

If an application developer has (for example) a client that
they already compiled against 9.1B using 1.1.X, they will not
need to use o4glrt1.zip unless they needs to recompile the
client code. That is, the class files from the 9.1B version of
the client code will work fine as-is against 9.1C without
involving o4glrt1.zip.

f) NOTE: there is a change from 9.1B for application developers
who:

- Use input temp-table parameters in calls to the AppServer, and

- Extend our InputResultSet.java class (which we make available
in com.progress.open4gl)

- Compile using a Javasoft 1.2 compiler

In this situation, in 9.1B, we required the application
developer to put o4glrt2.zip into the CLASSPATH before they
compiled the client code. With 9.1C, we no longer ship
o4glrt2.zip, and application developers can compile their client
with the 1.2 Java compiler without using this file.

If an a.pplication developer has a client that they already
compiled against 9.1B using the 1.2 compiler, they can use the
same class files with 9.1C, they do not need to recompile
anything. However, if they do recompile the client code (with
the Javasoft 1.2 compiler), they should make sure that CLASSPATH
does not refer to o4glrt2.zip.

2) For ActiveX Clients Talking to AppServer

For ActiveX clients, we expect and require that:

A) The application developer will compile the proxy with the
Microsoft Java compiler (based on 1.1.X)

B) The application developer will run the client (and proxy) under
the Microsoft JVM (based on 1.1.X).

3) Compatibility Between Client and Application Server

We have not changed the protocol between client and AppServer, for
9.1C, so the compatibility story (which versions of Progress you
can use to generate your client side versus which versions of the
AppServer they can run against) should be the same as for 9.1B..