========================================================================
     
                          VisualAge for Java
                             Version 3.0

                     Integrated Development Tools

                            Release Notes

========================================================================

Table of Contents

1.0 Web browsers
    1.1 Launching web browsers on Windows
    1.2 Color limitation with Netscape on OS/2
    1.3 Running applets in a web browser
2.0 Printing
    2.1 Printing Problems
    2.2 Linux Printing
3.0 Import SmartGuide
4.0 Debugger 
    4.1 Security manager
    4.2 Breakpoints in classes.zip class files
    4.3 Breakpoints in constructors
    4.4 Breakpoints move when editting code
5.0 Scrapbook and Inspectors
6.0 Code assist
    6.1 Availability of code assist
    6.2 Activating code assist
    6.3 Code assist limitations
7.0 UNIX
    7.1 UNIX - font sizes
    7.2 AIX - Readability of Japanese fonts
    7.3 UNIX - Shared libraries
    7.4 Solaris - Timestamps
    7.5 Solaris - Accelerators
    7.6 UNIX - Printing
    7.7 AIX - Undo formatting
8.0 Caching
    8.1 Setting up the cache
    8.2 Clearing the caches
9.0 Japanese .jar files
10.0 Japanese fonts 
    10.1 Japanese fonts on OS/2
    10.2 Japanese fonts in Options dialog
11.0 Javadoc doclets [Java2 version
12.0 Miscellaneous
    12.1 VisualAge for Java does not support Logitech scroll mouse
    12.2 Startup problem


1.0 Web browsers

1.1 Launching web browsers on Windows

Windows has two different types of file associations for web based
documentation. The first type of association is for .htm and .html
files launched locally (e.g. c:\index.htm). The second is for non-
local files in URL format (e.g. http://www.software.ibm.com/ad/vajava) 
and is called "URL - Hypertext Transfer Protocol".  VisualAge for
Java uses the first association for most Help menu items, and the
second one for the Help->Support menu item.  Typically when a web
browser is installed it configures both of these associations
automatically. 

If a VisualAge for Java Help menu option fails to open a web browser
it means your associations are not properly configured.  To determine
if the associations in Windows are properly setup, go to the Windows
Start menu and choose Run. Type in the name of an .htm file or a URL
(e.g.  'http://www.software.ibm.com/ad/vajava'). In both cases, a web
browser should open. If a web browser fails to open it means your
associations are not properly configured.

In the event the web browser does not open, you can either reinstall
the web browser, manually configure your Windows associations or in
VisualAge for Java go to the Help page of the Window->Options dialog
and choose 'Specify browser path' instead of 'Use file association'.


1.2 Color limitation with Netscape on OS/2

When running Netscape 2.2 simultaneously with the VisualAge IDE on
OS/2 Warp 4 in 256 color mode, the IDE is unable to get all the
colors needed to draw widgets and graphics.

    Workarounds: 
        1) Disable palette awareness in Netscape.  (by unchecking the 
           palette aware option on the General Preferences Color page.)
        2) Use 16-bit color mode.


1.3 Running applets in a web browser

If your exported applet does not run in your web browser ensure that
your browser supports JDK 1.1.7A.  Consult the web browser's
vendor site for any JDK related fixes. Also, ensure that your
web browser's security settings are correct for running your applet.



2.0 Printing

2.1 Printing Problems

Some printer drivers provide incorrect information about the size of
the fonts used in the driver.  Others have problems scaling images or
drawing lines properly.  These problems are most commonly found in
PCL printer drivers.

Printer driver problems can cause some of the following symptoms
when printing from VisualAge for Java:
    - text runs off the right margin of a page
    - text extends outside of its rectangle in the class graph
    - class graph icons are positioned improperly
    - unexpected lines are drawn in class graphs

These problems can often be solved by ensuring that you have the
latest printer driver that is available for your printer.  If your
printer supports PCL and Postscript, try the Postscript version of
the driver.  It is usually more accurate.

The following drivers have exhibited these kinds of problems:
    IBM Network Printer 17 PCL - OS/2 <older versions>
    IBM Network Printer PCL Driver 1.14 - Windows 95


2.2 Linux Printing

When the printer port is defined, the printer port name must match the 
last word in the printing command. 

Setting up a printer port:
    1) Select File->Print Setup from the workbench.
    2) In the 'Printer Setup' dialog, press the 'Install' button.
    3) In the 'Printer Installation' dialog, press the 'Add Printer' 
        button.
    4) Then press the 'Define New Port...' button, in the 
        'Add Printer' dialog, 
    5) In the 'Ports' dialog, enter 'lpr=lpr'
        (or 'myPrinter=lpr -T myPrinter' if you to call it myPrinter).
    6) Press the 'Add-Replace' button.
    7) Press 'Dismiss' to close the 'Ports' dialog.
    8) In the 'Add Printer', select the printer device.
    9) Select the 'lpr=lpr' in the 'Current Port Defintions' list
        (or 'myPrinter=lpr -T myPrinter' in the list).
    10) Press the 'Add Selected' button.
    11) Press the 'Dismiss' button to close the 'Add Printer' dialog.
    12) Press the 'Dismiss' button to close the 'Printer Installation' 
        dialog.
    13) In the 'Printer Setup' dialog, press the 'Options...' button.
    14) In the 'Options' dialog, select the printer name with the 'lpr' 
        port that was just defined.
    15) Press OK to close the 'Options' dialog.
    16) Press 'Save' in the 'Printer Setup' dialog.
    17) Press 'Apply' to close the 'Printer Setup' dialog.



3.0 Import SmartGuide

When importing from directories, you should typically not select a
subdirectory of a package hierarchy as the root for import. If you do,
the resources will be copied incorrectly.  For example, if you were to
"Export" the "IBM Java Examples" project, the result is a directory
structure such as:

    \com\ibm\ivj\examples\awttextframework
    \com\ibm\ivj\examples\awttestlauncher
    \com\ibm\ivj\examples\awttests
    etc.

To import from directories you should choose the directory which
contains the com subdirectory and use the "Details..." prompter to
select the subdirectories you want. The subdirectory structure for
the resources will be recreated when you import.



4.0 Debugger 

4.1 Security manager

Installing a security manager that does not allow complete access to
members and properties can cause exceptions or missing fields in the
debugger due to introspection failures.  This affects SecurityManager
and its subclasses.

    Workaround: 
        Don't use a security manager when debugging code, or ensure that
        your security manager allows access to members and properties.


4.2 Breakpoints in classes.zip class files

Breakpoints placed in external class files found in classes.zip
may not trigger. 
    Workaround: 
        Place the breakpoint in the copy of the class
        which is located in your Workspace.


4.3 Breakpoints in constructors

When a breakpoint is set in a constructor, it may appear in the line 
of code below the line that you want. This same problem also causes
the debugger to improperly highlight the constructor code when you
are stepping through it.
    Workaround:
        If the breakpoint is appearing on the wrong line, you can
	add a large comment above the constructor definition.


4.4 Breakpoints move when editing code

Breakpoints move to different lines when new lines of code are inserted
or deleted above them. 
    Workaround:
        Clear all the breakpoints in the method before adding new
	lines of code or removing code and set them again after
	the method is saved.



5.0 Scrapbook and Inspectors

Displaying extremely long single lines (> 10K) in the scrapbook can 
cause an exception depending on the platform and graphics driver.
In some situations an exception may not occur but a noticable delay
will occur as the text is inserted.
    Workaround:
        If an exception occurs remove the scrapbook page.
 


6.0 Code assist

6.1 Availability of code assist

Code assist is available in a method source view, Scrapbook,
Inspector, breakpoint modify dialog and the event-to-code connection
editor of the Visual Composition Editor. A limited form of code assist 
is available in the class source view.  Code assist generally requires 
that your code prior to the current cursor location be syntactically 
correct. An exception to this is the Scrapbook and Inspector where, if
a syntactic error is found, code assist will use only the source back 
to the first empty line or the beginning of the line. Also the limited
code assist in the class definition considers only the current word and
provides completion for types and statics based on the last saved class
definition.


6.2 Activating code assist

To activate code assist press Ctrl-Space or Ctrl-L.  On some Japanese
platforms Ctrl-Space is reserved for IME activation.  In this
situation Ctrl-L can be used to activate code assist. These keys can
be modified using the keybindings in the options dialog.
    

6.3 Code assist limitations

This section describes some of the limitations of code assist:

-  In the case where a possible field completion would be hidden by a
   visible local variable with the same name, code assist will not
   filter out the hidden field and will still present it as part of 
   the user selection. Note that even having picked up the field, 
   compilation will bind to the local variable.  For example, after 
   defining the following class X, browse its constructor.
   class X {
       int value;
       X(int value){
           this.value = value }
   }
   When requesting code assistance in the constructor, in the right 
   hand side of the assignment: this.value = val<code assist> VisualAge 
   will find two completions: the field and the local, where actually 
   the local variable is hiding the field.
   
-  There are some locations where code assist will propose type
   completions where it should not. Selecting and inserting a 
   type in this case will result in invalid source.  
   For example the completions for:  
       new Thread(s<code assist here>
   will list some types (such as short) where no
   possible Java construction could require a type in this case.

-  If a type name needs to be qualified and it is not, no code assist
   will be available for static members. For example:
      public String newMethod ( ) {
        ResourceBundle a = ResourceBundle.<code assist>
   does not produce a list but
      public String newMethod ( ) {
        java.util.ResourceBundle a = java.util.ResourceBundle.<assist>
   will produce a list. The easiest way to produce a qualified name
   in this case (assuming you do not want to add this class/package
   to the import list) is to place the cursor before the period and
   activate code assist. Select the class name from the list and it 
   will be fully qualified for you automatically if required.



7.0 UNIX

7.1 UNIX - font sizes

If the font selected from the Options dialog seems smaller or larger
than expected, a possible problem is the X font path.  From a
terminal window, examine the output of the "xdpyinfo" command to
determine the resolution of screen #0.  (The resolution will be
similar to: "91x92 dots per inch").  Then examine the current font
path by typing "xset q".  The font path will likely include "100dpi"
and "75dpi" directories.  The font path should be set such that the
directory with the resolution closest to the screen resolution comes
first.  (e.g. in the case of a screen resolution of 91x92, the 100dpi
directory should come first in the font path.)

The font path can be set with the "xset fp= Path,..." command,
followed by the "xset fp rehash" command.  (See the xset man page for
more information).  Note that font path will be reset when you logout
and back into the window manager.  Therefore, to have it set each
time you login, add the xset command to either your window manager's
startup script, or shell startup or your login script.


7.2 UNIX - Readability of Japanese fonts

On AIX and Solaris, many fonts, especially non-English fonts, do not
scale well to small sizes.  Fonts will always look best if you pick a
size that has a defined bitmap version available at that size.  To
find the sizes of the bitmap versions of a font, use the "xlsfonts"
command.  Please refer to the xlsfonts man page for more information.


7.3 UNIX - Shared libraries

VisualAge for Java uses shared libraries which reside in the
ide/program directory.  On AIX the file extension of these files is
".a", on Solaris, it is ".so". You must ensure that your system is
properly configured before running VisualAge for Java, otherwise the
environment will not be able to locate these shared libraries.

The easiest way to ensure the libraries are found is to set the
environment variable LIBPATH (on AIX) or LD_LIBRARY_PATH (on Solaris)
to include the ide/program directory. For example, if you installed
VisualAge for Java in /usr/local/vajava, then add the directory
/usr/local/vajava/ide/program to your LD_LIBRARY_PATH.  How you do
this depends on which shell you are using (e.g. csh, ksh, etc.).
Please refer to the documentation for your shell for information
regarding setting environment variables.

You may choose to set this variable when you log in (i.e. in your
.cshrc, .profile, .login, or related startup file), or you may wish
to create a shell script to run VisualAge for Java which sets the
variable for you. For example,

#!/bin/sh
export LIBPATH=$LIBPATH:/usr/local/vajava/ide/program
cd /usr/local/vajava/ide/program
./ide


7.4 Solaris - Timestamps

Due to a problem in Solaris OS, dates on the locale en_CA are
displayed as 6//17//98.  This problem does not appear to occur on
en_US for Solaris. This problem may also occur with some other
locales on Solaris.


7.5 Solaris - Accelerators

Accelerators are not supported on Solaris due to a degradation
of performance caused by the platform menu support under certain
usage patterns. This problem does not occur on any other platform,
including AIX. 


7.6 UNIX - Printing

VisualAge for Java uses the Bristol X printer libraries to support
printing. These libaries require Postscript printer support. 


7.7 AIX - Undo formatting

In some cases, it is possible to get a system error to occur when
an 'Undo' is performed after formatting the method source.



8.0 Caching

8.1 Setting up the cache

A disk cache and a memory cache are used by VisualAge for Java to
improve .class file access time for classes in the IDE.

The memory cache is used to keep a number of classes resident in
memory.  Every time the IDE is started, only the most frequently used
classes are maintained in the memory cache.  The memory cache
preferred size is user settable from the Options dialog on the
General / Cache page.  This value is the number of classes that will
be preserved when the IDE is started.  Any class found in the cache
can be almost instantaneously dynamically loaded.  A system with a
large amount of RAM can take advantage of a large memory cache; a
system with a limited amount of RAM should keep the memory cache
small - this will allow VisualAge to flush unused classes.

The disk cache is used to help fill the memory cache.  When an IDE
class must be loaded, the disk cache is searched first and if the
class is not there it is loasded from the repository.  The resulting
class is then put in the memory cache. The disk cache improves
performance, but does not have as significant an impact as the memory
cache. There are two variables that the developer can control on the
disk cache: (1) disk cache enable, and (2) disk cache preferred size.

To enable the disk cache, the directory named "cache" must exist as a
subdirectory of the ide directory.  There are at least two reasons
why you may not want to enable the disk cache.  First, systems with
limited available disk space should not use the disk cache.  Second,
if accessing the repository is almost as fast as accessing the cache
directory, the disk cache provides no additional value.  

The disk cache preferred size is the number of classes (files) that
will be preserved when the IDE is exited (or saved while remaining in
the IDE).  The most frequently used .class files are maintained in
the disk cache; all other files in the directory are deleted.


8.2 Clearing the caches

When a developer selects Clear the Memory Cache (from the Options
dialog), the contents of the memory cache will be discarded the next
time the IDE is started.

When a developer selects Clear the Disk Cache (from the Options
dialog), contents of the cache directory will be immediately
discarded.



9.0 Japanese .jar files

If types and resources with Japanese names are exported to a .jar
file, the files within the .jar do not have Japanese names but rather
render the names as single byte characters.  The lack of support for
Japanese names is a current limitation of .jar files.



10.0 Japanese fonts 

10.1 Japanese fonts on OS/2

With some fonts on OS/2 Japanese, the very top of some "tall"
characters may not be visible.  For example, this has been seen with
the Mincho 8 point font for the "[" and "]" characters.  However, the
same Mincho 8 point font has been observed to display correctly on
other OS/2 machines.  This problem is machine and font specific. If
this occurs another font should be selected.


10.2 Japanese fonts in Options dialog

If the "dialog" font in the Options dialog is set to an English font
(e.g. adobe helvetica) on a Japanese machine, the font will not
contain the necessary Japanese characters, so the Options dialog
itself becomes unreadable.  
    Workaround:
        The Options dialog can still be used to set the dialog font
        back to a Japanese font.  The keyboard arrow keys may
        have to be used instead of the mouse to make
        selections when the Options dialog is in this state.



11.0 Javadoc doclets [Java2 version]

When using doclets not provided with the default installation the
following steps are needed:

    1. Create a project for your doclets (e.g. Doclets).
    2. Select the project and open the Properties dialog.
    3. Mark the project as an Extension (if you set this as the default 
        it will make it easier for other team members to load). This
        will assure that resources are copied to the correct location
        on import. It will also allow the doclet class to be found when
        javadoc is run.
    4. Import the doclet's classes into the project. (This is also a
        good time to version the project).
    5. Select the Java component(s) you wish to document.
    6. Open the Javadoc wizard from 'Selected->Document->Generate 
        Javadoc' menu.
    7. Select the doclet you wish to use.
    8. The last page of the wizard will allow you to set any doclet 
        specific options.

Third party doclets can differ widely in implementation and command-
line options. Be sure and read all documentation provided by the 
doclet supplier.



12.0 Miscellaneous
	
12.1 VisualAge for Java does not support Logitech scroll mouse

Some Logitech mice with drivers that remap scrolling action to the 
mouse will cause a system error to occur when it is used to scroll.

12.2 Startup problem

If you receive the following error message during startup:

	The following error(s) were detected during the startup sequence which
	may interfere with correct operation:

	1)Error accessing ivj.dat: OS error 11001
	2)Error accessing ivj.dat: OS error 11001

	Do you wish to continue anyway?

Verify that the server address in your ide.ini can be resolved and pinged.
You may need to contact your network addministrator and confirm your
machine is properly configured.
