# JBuilder 6

## Release Notes

This document contains a subset of known problems, workarounds and tips for JBuilder 6.

## Table of Contents

> General
> Installation
> Enterprise JavaBeans (EJB)
> Web Development
> Team Development
> XML
> Debugger
> Designer
> Database and JDataStore
> Runtime
> Help Viewer
> Linux/Solaris
> Macintosh
> Samples
> Performance
> International
> Documentation
> Copyrights, conditions and disclaimers

## General

For the latest JBuilder FAQ's and TI's, please visit:

- FAQ's: http://community.borland.com/all/0,1435,c|3|10,00.html
- TI's: http://community.borland.com/all/0,1435,c|3|9,00.html

### Tips:

- If you experience significant repainting or flickering problems under Windows, try uncommenting the following line in the `jdk.config` file:

      vmparam -Dsun.java2d.noddraw

- JBuilder 6 contains a new dependency checker that provides more information to the new in-memory project repository. It's enabled by default. The old dependency checker is still available. You can revert to the old dependency checker by adding this line to the `jbuilder.config` file:

      vmparam -Duse.old.bmj

- When "Synchronize Output Dir" is turned on, all of the class files in the output path directory that do not have source files are deleted during compilation.
- JBuilder's own configuration files are placed in the `lib/ext` directory. This can cause problems when users copy the contents of their old `lib/ext` directory, including old configuration files, which can then cause problems in JBuilder.

### Using JBuilder 5 and JBuilder 6:

Some of the changes in JBuilder 6 make it extremely inconvenient to share the `.jbuilder5` directory with an installation of JBuilder 6. As a service to our customers, we put the settings for JBuilder 6 in a new directory, `.jbuilder6`.

Note: JBuilder 6 shares the following directories with previous versions of JBuilder:

- `.dbpilot`

You can change the location where JBuilder looks for your `.jbuilderx` directory by adding the following entry in the `jbuilder.config` file:

    vmparam -Djbuilder.home=path to the parent directory for .jbuilder-dir

where .jbuilder-dir is the name of your alternate home directory.

[ top ]

## Installation

### Tips:

- For explicit installation instructions, look at the following file for your platform:
  - `setup_windows.html`
  - `setup_linux.html`
  - `setup_solaris.html`
  - `setup_macintosh.html`

  It is very important to follow those directions.

### Linux:

- Possible Problem: System minimum configuration meets or exceeds specified requirements, but JBuilder runs slowly.
  Solution: The Linux kernel has problems with a few motherboard/BIOS not reporting total memory available. To check that all installed memory is being recognized, type the following at a shell prompt:

  >     cat /proc/meminfo

  the output will include a line looking like:

  >     MemTotal: ######## kB

  where "########" should equal the amount of memory your computer has. If it doesn't, you'll need to explicitly tell the kernel by editing the file `/etc/lilo.conf`.

  Details for doing this can be found at: http://www.redhat.com/support/docs/faqs/rhl_general_faq/FAQ-7.html

- [116456] Installing JBuilder results in the jdk1.3.1 dir being empty.
  Workaround: The `uncompress` program is not installed. Install it from your Linux CD, then install JBuilder 6.

### Uninstalling JBuilder 6:

To uninstall JBuilder 6, run the following from the Uninstallxxxxxxx directory (where xxxxxxx is the name of the JBuilder edition you installed) under the directory where you installed JBuilder 6:

- Windows: Do one of the following:
  - Run the following from the directory where you installed JBuilder 6: `Uninstallxxxxxxx\Uninstallxxxxxxx.exe`.
  - Choose Start|Programs|JBuilder 6|Uninstall JBuilder 6 xxxxxxx.
  /
  - Choose Settings|Control Panel|Add/Remove programs and select JBuilder 6xxxxxxx from the list.
- Linux: `Uninstallxxxxxxx`
- Solaris: `Uninstallxxxxxxx`

### Known problems:

- Solaris only:
  - The Browse CD button does not work on the main installation launcher.
    Workaround: Verify that `dtfile` (typically in `/usr/dt/bin`) is in your PATH.
  - The "JBuilder on the Web" or "Setup information for JBuilder 6" buttons do not work.
    Workaround: Verify that `netscape` (typically in `/opt/NSCPcom`) is in your PATH.
- [100311] Warnings are issued when installing JBuilder 6:

      Warning:
        Name: HorScrollBar
        Class: XmScrollBar
        The specified scrollbar value is greater than the maximum scrollbar value minus the scrollbar slider size.

- [114178] The installer overwrites JDK settings in the Windows registry.
  Workaround:
  1. Export the JavaSoft registry key.
  2. Install JBuilder.
  3. Double-click the exported `.reg` file to put the old keys back.
- [123127] When a user reinstalls JBuilder to a different directory than the first time, the default JDK configuration points to wrong location. The user cannot compile code.

[ top ]

## Enterprise JavaBeans (EJB)

### Tips:

- See the Enterprise JavaBeans Developer's Guide for a tutorial and additional information on developing and deploying EJBs using JBuilder 6.
- To use additional service packs for your application server, you will need to update your application server properties accordingly:
  1. Choose Project|Default Project Properties.
  2. Click the Servers tab.
  3. Click the ... (ellipsis) button for the application servers.
  4. Select your application server in the Select Application Server dialog.
  5. Click Edit.
  6. Add the correct service pack jar (e.g `weblogic510sp10boot.jar`) to the class path.

### Using Borland Enterprise Server 5.0

- The Tools|EJB deployment menu option for a project using Borland Enterprise Server 5.0 will now launch the Borland Enterprise Server 5.0 console. To bring up the deployment wizard from the console, select Tasks|Deploy J2EE modules to a partition. To ensure that the console detects a server, ensure that the port, username and password are correct. The default username and password for the server is admin/admin.
  Note: This wizard will not deploy to a standalone EJB container (as launched within JBuilder)
- The deploy context menu options for an EJB/EAR module launches a deploy command line utility which should not be used in conjunction with the deployment wizard
- Starting Borland Enterprise Server 5.0 inside JBuilder launches the standalone EJB container. To deploy to a full fledged server running outside JBuilder using the deploy context menu options for an EJB/EAR module:
  1. Right click on the EJB/EAR module and select Properties
  2. Select the Deployment tab and enter the server name

  Note: Deploying an EAR using the deploy context menu options for a EAR module will only deploy the EJB modules in the EAR. To deploy the complete contents of an EAR, use the console.

- The EJB module node in the project view now displays deployment descriptor element nodes. The JDBC Data sources node will not display JDBC 2 data sources. To view JDBC 2 data source properties for an EJB 2.0 module, use the schema view in the structure pane.

### Using Borland AppServer 4.5

JBuilder 6 supports Borland AppServer 4.5 (BAS) as your application server for project development. There are few manual changes required for proper operation:

1. In general, development with BAS 4.5 will be much cleaner and smoother if you do not set up Borland Enterprise Server 5 (BES).
2. If you do have BES 5 set up, you need to do the following to make sure the BAS 4.5 classes are used where appropriate:
   1. By default the BES 5 ORB will be defined as the one to be used by JBuilder. Choose Tools|Enterprise Setup|CORBA|"Edit" Visibroker configuration, then modify the path for ORB tools to be the BAS 4.5 `home\bin` directory, and the library to be the BAS 4.5 client library. Make sure to remove all generated classes and files, and rebuild your project if the AppServer previously set up for it was BES 5.
   2. Ensure that your project only contains BAS 4.5 library references (choose Project|Properties|Paths tab|Required Libraries) -- all BES 5 library references need to be removed, or you will run into class conflicts when you build or deploy.
3. The Deployment and client jar creation wizards (Tools|EJB Deployment) will not work for deployment to BAS 4.5, so these menus are disabled. You can deploy to BAS 4.5 by using the right click deploy menus on the EJB modules and EAR groups or the BAS 4.5 console.
4. Due to conflicting versions of JDS libraries between BAS 4.5.1 and JBuilder, the EJB container does not startup when deploying entity beans which use JDataStore 4.
   Workaround:
   1. Change the following libraries:
      - JDataStore Server
      - Data Express
      to point to the jars installed with BAS 4.5.1.
   2. Delete the AppServer working directory under the project directory.
   It is not recommended that you attempt to use JDataStore 5 with BAS 4.5.1. This configuration has not been tested.

### Using WebLogic 5.1:

JBuilder 6, by default, supports Service Pack 10.

If you have set up the WebLogic 5.1 application server, it will have created a WebLogic 5.1 client library for your project. If this library is part of your project classpath, you might get some strange compiler errors when building your EJB. The `weblogicaux.jar` overrides some Java classes.

### Using WebLogic 6.x:

JBuilder 6 provides EJB 1.1/EJB 2.0 support for the WebLogic Application Server 6.x:

- JBuilder 6 requires WebLogic 6.0 with Service Pack 2 or Weblogic 6.1 for proper operation.
- The configuration options are similar to those for WebLogic 5.1:
  1. Select Tools|Enterprise Setup|Application Server. There is a new tab specifically for WebLogic 6.x.
  2. To ensure that the server starts successfully, verify that the following VM parameters are set correctly:
     `-Dweblogic.Domain` (where Domain points to your WebLogic 6.x domain name [the default is "mydomain"])
     `bea.home` points to the correct directory for the base BEA directory (the default is the parent directory of the WebLogic 6.x home directory)
- To use DataExpress for EJB with WebLogic, you need to add both `weblogic.jar` and a `jndi.properties` file to the JBuilder class path. Otherwise, the JNDI lookups in the UI Designer will not work.

### Using WebSphere 3.5:

JBuilder supports WebSphere 3.5 (EJB 1.0):

- You must use the IBM JDK (JDK 1.2.2) that ships with WebSphere for your WebSphere projects. When you set up the WebSphere application server, that JDK is automatically defined and set as the JDK for the current project. The JDK for the project is also set to IBM's JDK when you switch application servers. Since this JDK does not support JDI, it cannot be used to debug.
  Workaround: WebSphere 3.5 FixPack 3 now has a patch for the JDK which includes JDI support. The fix pack can be downloaded from the IBM support site.
  After installing the fix pack copy the following files from `JDK_HOME\jre\bin` to `JDK_HOME\bin`: `dt_socket.dll`, `dt_shmem.dll`, and `jdwp.dll`. You will not be able to debug without these files in the `JDK_HOME\bin`. The debugger does not stop at breakpoints in the server. This is a bug in the IBM JDK.
- The Entity Bean Modeler does not support CMP as WebSphere uses proprietary mapping for CMP.
- WebSphere 3.5 does not support deployment at startup. The application server must first be started, and then its jars need to be deployed. Because of this restriction, all the options that apply to selecting EJB jars for deployment at application server startup are disabled.
- For deployment to work successfully on Unix systems, before JBuilder is started, the system PATH variable needs to be modified to include (in the beginning of the path) the <IBM JDK HOME>\bin directory.

### Using WebSphere 4.0.1 Advanced Edition/Single Server:

JBuilder supports WebSphere 4.0.1 Advanced Edition/Single Server (EJB 1.1):

- JBuilder supports 'Meet-in-the-middle' CMP entity bean support for WebSphere 4.0.1 Advanced Edition
  http://www-4.ibm.com/software/webservers/appserv/doc/v40/ae/infocenter/index.html
  The proprietary CMP descriptors are generated using the WebSphere tool 'ejbdeploy'. To make any modifications to the default names provided for database table/column names, edit the deployment descriptors by hand as described in the WebSphere documentation.
  Note: WebSphere 4.0.1 Single Server ejbdeploy does not generate CMP descriptors
- WebSphere 4.0.1 Advanced Edition schema name definition in the proprietary CMP descriptor
  If the database schema name used is different from the username, manually modify the Schema.dbxmi file as follows:
  1. Rebuild the project to generate the CMP descriptors
  2. Double-click on the EJB module node in the project view to open the EJB module viewer
  3. Click on the source view for Schema.dbxmi
  4. Add the following line above the last line of the source: `lt;RDBSchema:RDBSchema xmi:id="RDBSchema_1" name="<your schema name>" database="<database_id>" tables="<table_id>"/>`
  5. Rebuild the project to incorporate the change
- To import existing IBM proprietary descriptors into JBuilder:
  1. Create a new project
  2. Click on Project|Project Properties. On the Servers page set the target application server as WebSphere 4.0 Advanced Edition
  3. If you have not created an EJB module in JBuilder for your EJBs, create an EJB module in JBuilder
  4. Right click on the EJB module and select Properties
  5. Add the proprietary descriptors to the module
  6. Right click on the project and select Add Files/Packages. Import the bean source into the project
  7. Double-click on the EJB module node in the project view to open the EJB module viewer
  8. In JBuilder, the proprietary descriptors are regenerated based on the timestamp of the standard descriptor i.e. ejb-jar.xml. Modify the DD source for ejb-jar.xml to change the timestamp
  9. Rebuild the project

### Using iPlanet 6.0:

The `ias-web.xml` file is not automatically generated in this release of JBuilder. You can create one manually and configure JBuilder to insert it into the WAR file so you can deploy the WAR. To do so:

1. Put your `ias-web.xml` file under the `WEB-INF` sub directory of your Web Application node (created using the File| New...|Web| Web Application wizard). The `WEB-INF` directory will be created under the directory you specify as the "context's document root" directory in the wizard.
2. Right click on the Web Application node in the project pane, select Properties...|Directories, and check the 'Include regular content in WEB-INF and subdirectories" checkbox.

These steps will add the `ias-web.xml` to the WAR when its Web Application is built. You might also want to add the `ias-web.xml` as a regular file in your project so you can edit it. It will not appear under the "Deployment descriptors" node under the Web Application node.

By default, the WAR will also include all the required client libraries of your project (e.g., `javax.jar`, `iasclient.jar`, etc.). To exclude them, right click on the Web Application node in the project pane, select Properties...|Dependencies. Select the "iPlanet 6.0 Client" library (and any other libraries you wish to exclude from the WAR file), and select the "Never include any classes or resources" radio button. The status for the library you selected should change to "Exclude All" and none of those files will be included in the WAR file.

### Known problems:

- [88651] Verification error from DD Editor if the EJB has a custom interface that either the home or remote interface extends, and a container transaction is specified for a method in the custom interface.
- [106714] java2iiop cannot handle non-ascii file names.
- [123122] Starting JBuilder with a relative path or from any directory other than `JB_HOME/bin` does not enable enterprise functionality. This will happen for any configuration file in `lib/ext` which uses relative paths.
  Workaround : Always start JBuilder from `JB_HOME/bin`.
- [122633] Calling `remove` on an entity bean with a wrapped primary key class throws a `ClassCastException` in the container.
- [122024] Duplicated bean source files are created if the bean name is modified with name ending with the word "Bean".
- [116609] The Persistence Manager generates code which does not compile when the bean uses the data types `java.sql.Clob` or `java.sql.Blob`.
- [121838] Incorrect deployment descriptors generated for Borland Enterprise Server 5.0 for EJB 2.0 entity beans referencing tables with case sensitive table/column names.
  Workaround: Double click on the EJB 2.0 module and click on the DD source viewer. Edit the source for ejb-borland.xml and add double quotes (") around the case sensitive table/column names.
- [122630] DD editor viewer for CMP 1.1 Get Metadata does not retrieve column names for a fully qualified table name i.e. schema-name.table-name.
  Workaround: In the CMP 1.1 viewer remove the schema name from the table name
- [123162] Application server has to be setup for CORBA tools (idl2java, java2idl) to be used.
- [117983] WebLogic: Error output from `bcjW.exe` is not being seen by the user when running `ejbc` to create and compile stub files for WebLogic. (Using `bcjW` is otherwise more desirable than `javac` because it is faster and suppresses the console window.)
  Workaround: Configure either `javac` or `jikes` to be the compiler.
- The WebLogic `ejbc` compiler generates compilation errors in the following cases:
  - The WebLogic project is created in a directory which contains spaces.
  - The classpath contains spaces.
  Workaround: Users should avoid spaces in the project directory or the classpath.
- [103941] WebLogic 6.0: Data from entity bean is not loaded into the EJB Client dataset object.
  Workaround: Add the client jar to the application server's classpath before starting up WebLogic.
  1. From within JBuilder, select Project|Project Properties, Servers tab.
  2. Edit the definition for WebLogic 6.x and add the jar to the class path.
- [104384] DataExpress for EJB components cannot be used in the UI Designer with WebSphere due to an issue with the IBM JDK.
- [104764] Weblogic 6.x: After successfully running an application using DataExpress for EJB components and shutting down the application server, rebuilding the project throws a `ConnectionRefused` exception in the console.
  Workaround: Close and re-open the project.
- [107839] EJB JAR files created using JBuilder 4 have incompatibilities with JBuilder 6.
  Workaround: Right click your EJB Group in the project pane, then choose Properties|Content. Change the properties needed to provide the desired result.
- [108395] WebSphere (FixPack 3) only: Debugger does not stop at breakpoints in the server. This is an issue with the IBM JDK that ships with WebSphere. Check the IBM WebSphere Application Server Support page for additional service packs which might correct this problem.
- [123487] The default BES server configuration does not include `BES_HOME/SonicMQ/lib/client.jar`. This is needed if MDB's are being deployed.
  Workaround: When starting the container, always select "Add project classpath" (Project|Project Properties|Run|EJB page).

[ top ]

## Web Development with Borland Enterprise Server 5.0 and JBuilder 6

This document provides specific information about working with Borland Enterprise Server 5.0 web server/appserver and JBuilder. Borland Enterprise Server 5.0 ships with Tomcat 4.0.

### Using Borland Enterprise Server 5.0 and Tomcat 3.2

Note: Borland Enterprise Server 5.0 has to be installed and setup using Tools|Enterprise Setup. After completing enterprise setup, go through the following steps to work with Tomcat 3.2:

1. Create a new project.
2. Choose Project|Project Properties.
3. Click the Servers tab.
4. Select Tomcat 3.2 in the drop down list. Click Setup.
5. Select the Required Libraries tab. Click Add.
6. Highlight the library definition for Borland Enterprise Server 5.0 Client, then click <OK>.

### Using Borland Enterprise Server 5.0 as a web/application server

Borland Enterprise Server 5.0 has to be installed and setup using Tools|Enterprise Setup.

- To setup/startup the web container:
  1. Create a new project
  2. Choose Project | Project Properties.
  3. Select the Servers tab. Select "Application server is web server".
  4. Create a new web application.
  5. Create a web component (e.g. JSP, servlet, etc.).
  6. Rebuild the project
  7. Select the Run|JSP/Servlet tab. Enter the following parameter in "VM Parameters": `-Dvbroker.agent.port=<osagent port>`
  8. Right-click on the web component that you wish to run, then choose Web Run to start the server partition which will start the web and EJB containers.
- To work with WARs/EJB jars go through the following steps:
  1. Follow steps to setup the web container.
  2. Modify the file `BES_HOME/var/servers/YOURSERVERNAME/adm/properties/partitions/standard/partition.properties` and change the directive `container.classloader.policy` to `container` (i.e. `container.classloader.policy=container`).
  3. Right-click on the web component that you wish to run, then choose Web Run to start the web container.
- To work with EARs go through the following steps:
  1. Follow steps to setup the web container.
  2. Create a EAR to bundle the individual archives and rebuild the EAR group node in JBuilder.
  3. Modify the file `BES_HOME/var/servers/YOURSERVERNAME/adm/properties/partitions/standard/partition.properties` and change the directive `container.classloader.policy` to `per_module` (i.e. `container.classloader.policy=per_module`).
  4. Right-click on the web component that you wish to run, then choose Web Run to start the web container.
- To change the web server port number:
  1. Edit the file `BES_HOME/var/servers/YOURSERVERNAME/adm/properties/partitions/standard/tomcat/conf/server.xml`.
  2. Search for the line `Define a non-SSL HTTP/1.1 Connector on port 8080`. Modify the `port` attribute from 8080 (default) to the port number you wish to use.
- For a clean shutdown of the web container:
  1. Disable security in the application server:
     - Edit the file `BES_HOME/var/servers/YOURSERVERNAME/adm/properties/partitions/standard/management_vbroker.properties`.
     - Add the line `vbroker.security.disable=true`.
     - Edit `BES_HOME/var/servers/YOURSERVERNAME/adm/properties/management_vbroker.properties`.
     - Add the line `vbroker.security.disable=true`.
  2. Start an osagent process on the management port of the server, run `osagent -p <port no.>` from the `BES_HOME/bin` directory. (Note: The default management port is 42424. To find out the management port for your server, start up the console from `BES_HOME/bin`).
- To add project dependencies to the web container's classpath:
  1. Copy the required jars to BES_HOME/var/servers/YOURSERVERNAME/partitions/standard/lib before starting up the web container within JBuilder.

Note: The default application server install includes `ROOT.war`, which contains the default context. If you deploy an EAR that contains a default context, you must delete `ROOT.war` (or rename its extension) so that it does not load and cause a conflict. If deploying WARs (with the container classloader policy), the resulting WAR is automatically copied to the partition as `ROOT.war`, in which case there is no conflict. Please note that it is the `<context-root>!ROOT!</context-root>` in the `web-borland.xml` file that designates the context as root, not the file name.
If you are working on a named context but have the root context in an already deployed archive, the internal web browser in JBuilder will attempt to load once that archive is loaded by the container, because the root context can potentially match any URL. You'll then probably get a "Document not found" error. To prevent this, remove `ROOT.war` if you're not using it or overwriting it.

[ top ]

## Team Development

### Tips:

To take full advantage of CVS capabilities in JBuilder, it is recommended that you use the version of CVS that is installed with JBuilder (version 1.10.8 or later).

For projects that are under version control, it is recommended you do not use "New Folder" feature from the Project Pane. It is better to organize your project using JBuilder's automatic source package discovery, or by choosing Add Files/Packages.

### Using CVS with SSH:

It is possible to use SSH to have a secure connection to a CVS server when using the Team Development features of JBuilder. SSH provides a way of connecting to a host machine using strong encryption, thus assuring that confidential data is kept confidential.

JBuilder supports this option. You need to use SSH1 (SSH2 could work but has not been tested) and the connection has to be configured in such a way that SSH will not prompt for a password. This is extremely important. Failing to configure SSH to connect without a password will cause JBuilder to "freeze" until the SSH program is explicitly terminated. (Please refer to the SSH documentation for more information.)

To test if your connection is configured correctly, before trying it in JBuilder, enter `ssh` followed by the name of the server you want to connect to. For example, if the server is called `codecentral`, enter:

>     ssh codecentral

If SSH connects to the server without prompting you for a password, you can use SSH in JBuilder.

After SSH is properly configured, you need to specify some parameters on the CVS configuration page. To do this:

1. Choose Team|Configure Version Control.
2. From the CVS configuration page, select "Ext" for the connection type.
3. Enter the name of the server and your username on that server.
4. For "Remote shell", enter `ssh`.

After these parameters have been specified, you can perform all the CVS operations in a secure environment that uses strong encryption for data transfer.

### Known problems:

- Error: "The CVS Client is either not installed or not located in your PATH. Please install CVS or add CVS to your PATH settings." When using Microsoft Windows 98, you will encounter this error when attempting to use CVS with JBuilder 6 for the first time. To correct this problem, do the following:
  1. Exit JBuilder 6.
  2. In you JBuilder `bin` directory, rename the file `cvs95.exe` to `cvs.exe`.
  3. Restart JBuilder 6.
- [111690] Checking in a large project into ClearCase takes quite a bit of time. When a large project is being checked in, JBuilder appears to be locked up--there are no repaints etc. You can look in the Task Manager to verify that `cleartools.exe` is running.
- [111845] Windows only: If a user attempts to run `CVSHelper.exe` without having the `cygwin` tools installed, they will receive an "Unable to locate DLL" error because CVSHelper cannot locate `cygwin1.dll` in the user's path.
  Workaround: Copy `cygwin1.dll` from the `cvshelper` directory into a directory in your path.
- [121874] A Macintosh-specific version of CVS is not installed.
  Workaround: Download and install the Developer Tools at: http://www.opensource.apple.com/tools/cvs/.

[ top ]

## XML

### Tips:

If transformation of your XML document fails, check to see if you are using the correct version of the stylesheet specification, http://www.w3.org/1999/XSL/Transform, and not the working draft.

Castor now requires 2001 schema support, <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">. If an older version is used, an error or exception might occur. The Castor sample has been updated: `<jbuilder>/samples/tutorials/XML/databinding/fromSchema/Castor.jpx`. The same is true for XML schema validation. You can find the latest Xerces schema samples with 2001 schema support in `<jbuilder>/extras/xerces/data/`.

Castor has been updated and there is a change to the `Castor.jpx` sample in `<jbuilder>/samples/tutorials/XML/databinding/fromSchema/`. When Castor generates the class file, `XmlEmployees.java`, the order of parameters in the `setXmlEmployee(int index, XmlEmployee vXmlEmployee)` method has been switched with the index now being the first parameter. `DB_Castor.java` and the online documentation for the tutorial have been updated. However, the printed documentation still reflects the incorrect order of parameters. See the online tutorial for the corrected documentation, "Schema databinding with Castor" in the XML Developer's Guide.

### Known problems:

- [100635] Trying to Transform a XML file that has multiple stylesheets will not add all the stylesheets to the drop-down list if the entry in the `xsl` declaration has a new line in it: `?XML-stylesheet ...`
  Workaround: Put the `xsl` declaration in one line without breaks.
- [109759] There is an inconsistency in the requirement for putting quotation marks around table names in the XMLDBMSTable and XTable components. XTable requires quotation marks; XMLDBMSTable does not.
- [109254] Trying to transfer data to Interbase using XMLDBMSBeans causes JBuilder to hang.
  Workaround: Download the InterClient/InterServer 2.02 patch from http://www.borland.com/devsupport/interbase/.

[ top ]

## Debugger

### Tips:

- When a class is compiled without debug information, the debugger will not be able to see any local variable information. However, it can see the "this" object. If you are debugging and only the "this" object shows up, it could mean that the class was built with no debug information. It could also mean that there are no local variables in the class.
- In JDK 1.3.0, 1.3.0_01, and 1.3.0_02, debugging using the classic VM is much faster than debugging with HotSpot. If you see a noticeable slowdown in your program when you debug it, try adding the `-classic` option as the first VM parameter in your project (Project|Project Properties, Run tab, VM Parameters) before you debug. Note that JBuilder 6 will do this by default as appropriate for these JDKs.
- JBuilder now has a checkbox in the Configure JDKs dialog (use Tools|Configure JDKs) that allows you to set whether the `classic` parameter will be automatically added to the debug command line when using this JDK in your project. JBuilder tries to default this checkbox appropriately. If the JDK is one that does not support a classic VM, this option will not be selected.
- If you are experiencing intermittent crashes when debugging in JBuilder under Windows, this could be caused by the presense of the `dt_shmem.dll` in the JDK. This DLL is used as an implementation of the debugging protocol on Windows (used in communication between the debugger and debuggee), and causes intermittent problems. To avoid using this DLL, remove it from any JDKs you are planning to use for debugging, and make sure that any directories that contain this DLL do not appear on your system PATH. If you do this, the alternate `dt_socket.dll` will be used for the debugging protocol. This DLL does not appear to have the problems of `dt_shmem.dll`.

### Known problems:

- [100401] Linux only: Choosing Step Over causes JBuilder to freeze.
  Workaround: Add the `-classic` option as the first VM parameter in your project (Project|Project Properties, Run tab, VM Parameters) when debugging.

[ top ]

## Designer

The Designer now supports VisualAge auto-generated code. You can not only view sources generated by VisualAge, but also use the Designer with the sources without having to modify the sources in any way. Using the Designer to add additional components, copy/paste, moving components between containers, move to first, move to last, and changing properties and constraints is all supported.

### Tips:

#### "Red Beans"

If you see one of your components as a red box with its class name at the top, JBuilder has not been able to create an instance of that component for the designer. This is called a "Red Bean". Some reasons you might see a Red Bean are:

1. The class or its constructor is not public.
2. The class threw exceptions on every constructor JBuilder tried.
3. The class is the "this" object and it extends an abstract class.

Items (1) and (2) can be fixed by supplying a proper default constructor or subclassing that class in order to provide a default constructor. Item (3) is more complex. Whenever JBuilder needs to instantiate an object to be the "this" object, it encounters a paradox. It cannot instantiate the object you are designing. To circumvent this problem, JBuilder always attempts to instantiate the superclass of the "this" object. If the superclass is abstract, it cannot be instantiated. Here is the solution:

In the file `.jbuilder6/user.properties`, you will find a line that looks like:

>     designer;proxy.java.awt.Component=com.borland.jbuilder.designer.dt.ComponentProxy

This line says that whenever you are forced to instantiate `com.sun.java.swing.JComponent` (which is abstract), you will find an acceptable concrete proxy class for it in:

>     com.borland.jbuilder.dt.JComponentProxy

You may add your own proxy objects using this pattern. The proxy class does not need to do anything other than the following:

- Extend the abstract class in question.
- Be concrete (not be declared abstract itself).
- Be public (both the class and its constructor).

### Known problems:

- [108178] Attempting to define an event handler with the same name as the event results in generated code that overflows the stack when executed. This code is completely legal, it just calls itself recursively.

[ top ]

## Database and JDataStore

### Tips:

- You can upgrade your JDataStore files to the latest version with the JDataStore Explorer by choosing Tools|Upgrade JDataStore. A backup copy of the original file is created.
- When creating new JDataStores using the JDataStore Explorer, you can specify the version of the new JDataStore. Using the JDataStore Explorer,
  1. Choose File|New.
  2. For File version, select one of these options:
     - JDS 3.51 and IAS 4.1x compatible
       Selecting this option sets the new JDataStore to be created so that it is compatible with the Inprise Application Server 4.1x or other applications that use JDataStore 3.51. If you select this option, you cannot use JDataStore 4 features such as user authentication or encryption.
     - JDS 4 and BAS 4.5x compatible
       Selecting this option sets the new JDataStore to be created so that it is compatible with the Borland Application Server 4.5x or other applications that use JDataStore 4. If you select this option, you cannot use new JDataStore 5 features.
     - JDS 5.0
       Selecting this option sets the new JDataStore to be created so you can take advantage of new JDataStore 5. If you select this option, the JDataStore you create cannot be used by the Borland Application Server 4.5x (or earlier) or other applications that use JDataStore 3.51/4. JDataStore 5 is compatible with Borland Enterprise Server 5.0.

  If you create a 3.51 JDataStore, or have an existing 3.51 JDataStore, and you wish to add JDS 4 features to that JDataStore, you can upgrade it at any time. To do so:

  1. Start the JDataStore Explorer
  2. Open the 3.51 JDataStore you want to upgrade.
  3. Choose Tools|Upgrade.
- In order to use the DataExpress components for connection pooling (in the `com.borland.javax.sql` package), you will need to have an Java 2 Enterprise Edition (J2EE) implementation on your classpath. The preferred way to do this is to install the BES 5.0 (included with JBuilder Enterprise). You can also download J2EE release 1.2.1 from java.sun.com/j2ee/download.html.

  After you have installed a J2EE implementation, add the following lines to your `jbuilder.config` file:

  >     addpath C:/j2sdkee1.2.1/lib/j2ee.jar
  >     addpath C:/j2sdkee1.2.1/lib/jhall.jar
  >     addpath C:/j2sdkee1.2.1/lib/ejb10deployment.jar

  You will also need to create a library for J2EE in JBuilder:

  1. Start JBuilder.
  2. Choose Tools|Configure Libraries.
  3. Click New.
  4. Enter the name for the new library (e.g. J2EE1.2.1).
  5. Click Add.
  6. Drill down to the directory where the .jar files are located.
  7. Select the three J2EE .jar files and press OK.
  8. Click OK.
- The JDataStore License dialog box contains a Browse button that you can use to more easily manage several clients with their own licenses. You might enter their serial numbers and license keys, then distribute their `jdatastore.license` files. To do this,
  1. Start the JDataStore Explorer.
  2. From the License dialog box, select a target destintation for license file, add or edit license information, and save the file.

  Repeat this process, saving the license file to a different directory each time, for each client.

- If you set up the Borland Enterprise Server before licensing JDataStore, the license for JDataStore that is installed with the Borland Enterprise Server will be on your classpath when you run JBuilder, but not when you run your application from JBuilder. To correct this:
  1. Start JBuilder.
  2. Choose Tools|JDataStore Explorer.
  3. When the JDataStore Explorer starts, choose File|License Manager.
  4. Click Browse.
  5. Navigate to your `jbuilder/lib` directory. No license should be found. (A note on the Swing directory browser: The Ok button is only enabled when the desired directory is shown in the "File name" field.)
  6. Enter your JDataStore serial number and license key.

### Application Deployment:

Information on deploying the JDataStore JDBC server for remote access is described in "Deploying the JDataStore JDBC server" in the JDataStore Developer's Guide. Tips for reducing the deployed size of JDataStore client applications can be found in "Pruning deployed resources" in the JDataStore Developer's Guide.

[ top ]

## Runtime

### Running JDK 1.2 Applets:

In order to run an applet on Solaris or Linux from within JBuilder, you must add the Open Tools SDK library to your project. Failing to add this library can lead to an exception about a "NoClassDefFoundError:AppletTestbed." This problem currently affects some of the applet samples, including the Primes Swing sample.

[ top ]

## Help Viewer

### Tips:

- To access internet sites from the Help Viewer through a proxy server, add the following two lines to your `jbuilder.config` file:

      vmparam -Dhttp.proxyHost=xx.xx.xx.xx
      vmparam -Dhttp.proxyPort=xx

  replacing xx.xx.xx.xx with ID of your proxy host, and xx with your proxy port number.

- To launch help viewer in separate VM, add the following line to your `jbuilder.config` file:

      vmparam -Dcom.borland.jbuilder.help.vm=true

### Known Problems:

- [91845] Cannot print a topic from the Help Viewer that contains large blocks of source code. The topic will print until it reaches the code block, then print out multiple blank pages.
  Workaround: Print the topic using your web browser or from the PDF files available on your product CD or from the JBuilder web site.

[ top ]

## Linux/Solaris

### Tips:

#### Printing on Linux and Solaris platforms

A workaround for users on Unix platforms who do not need to use AWT components in the designer and want to be able to select a printer that is different than `lpr` is to comment out the line in the `jbuilder.config` file that adds the LightWeight Toolkit to the boot path as shown:

>     # Put the Lightweight Toolkit on the boot path
>     #addbootpath ../lib/lawt.jar

### Known Problems:

- [75424] Cannot directly cut and paste between Java applications and the KDE utilities.
  Workaround: Use the X-windows clipboard to copy items between applications.
- [90559] When a new window pops open (CodeInsight, code templates, etc.), focus to the editor is lost. (This works properly using KDE.)
  Workaround: (For GNOME users) Go to the Control Center and change the "Focus Behavior" so that "Dialog windows inherit the focus from their parent" is turned off.
- [104833] CodeInsight pop-up windows do not display when using the KDE 2.1.1 desktop manager.
- [123114] Using the Metal look-and-feel on Solaris, the background color of the "this" object in the Designer is the same as the color of the design surface itself; you have nothing but the object's nibs to tell you where it is.
  Workaround: Use the Motif look-and-feel instead.

[ top ]

## Macintosh

### Known Problems:

- [117237] After opening three browsers (two with projects opened) and minimizing and restoring several times, the JBuilder session locked up. Working with multiple browsers and doing minimize/restore may lead to problems on OS X.
- [117925] Running JBuilder with the system display set to millions of colors causes en "invalid memory allocation (Error code 10016)" error at the command line. Using 1024 x 768 resolution seems to work properly.
- [121874] A Macintosh-specific version of CVS is not installed.
  Workaround: Download and install the Developer Tools at: http://www.opensource.apple.com/tools/cvs/.
- [123131] The JdbNavField component does not work properly under the Aqua look-and-feel. Incremental search on Strings finds one value correctly, then tries to find a second that matches the first. It should be looking for another match on the user's input.
  Workaround: Run using the Metal look-and-feel instead.

[ top ]

## Samples

The `samples.html` file should be viewed in the JBuilder AppBrowser or from the link in the Welcome Project.

### Known Problems:

- "Error # 914: unable to write to output directory". If you have installed JBuilder as root but are running as a regular user, you need to copy the entire samples tree to a directory in which you have full read/write permissions in order to run them. While it is possible to copy projects individually from the sample tree, there are several samples which require access to files in peer-level directories. Such samples have been modified to look automatically for such files relative to the default sample tree hierarchy and display a message at runtime indicating the path being used to locate such files.

  An easy way to copy the entire samples tree is to use the `cp -R` command. For example, to copy the tree to a `samples` subdirectory of your home directory, do the following:

  >     % cd
  >     % cp -R /usr/local/jbuilder/samples

- [73147] You must compile the JDataStore, dbSwing and DataExpress samples before using them in the Designer. This will make classes and data available to the designer.
  If you open a sample in the Designer and get an error message such as `Filename property set to null` or `URL cannot be null`, open the file in the editor, modify the source (such as a adding and removing a space), then rebuild the project. You should now be able to open the project in the Designer without errors.
- [80347] The project files for the RMI sample (and some other samples) point to `/usr/local/jbuilder` by default.
  Workaround: Change this path in your project settings after opening the project.
- [87072] Chess server fails to run when launched by user (Unix only: JBuilder installed by root). The error message is: `Could not listen on port: 100, java.net.BindException: Permission denied.` If running as a user (not root), the `basePort` var in ChessServer.java has to be 1027. Line 29 in `ChessServer.java` is currently:

  >     final static in basePort = 101;

  To run the client, you have to change the value in this line from 101 to 1027.
- [89125] SqlTools\xmlservlet
  1. `dx.jar`, `jds.jar,` and `jdsremote.jar` need to be added to the batch or shell file, if they are not already listed.
  2. JDK 1.3.1 needs to be in your path before running the sample.
- [122986] The Project HTML file for the `CreditCardApproval` application says you need an InterClient libary. It should say that you must define an InterClient library, then define it as a database driver through the Database Drivers page of Tools|Enterprise Setup. Otherwise, the InterClient driver will not be found.

The OnlineStore sample requires the use of platform-specific InterBase database (.gdb) files in the `OnlineStore/database` subdirectory. Database files are provided for the Windows, Solaris, and Linux platforms. Before running the OnlineStore sample, you will need to copy both of the platform-specific acmecb and cliffhanger databases to filenames with the normal `.gdb` file extension. For example, to run the sample on Windows, copy `acmecb.gdb.windows` to `acmecb.gdb` and `cliffhanger.gdb.windows` to `cliffhanger.gdb`.

[ top ]

## Performance

These are some suggestions for improving local performance of JBuilder 6.

- Adding "-Xverify:none" to your launch script will decrease the load time for JBuilder 6 on the Linux and Solaris platforms.
- Set VM heap usage settings to values you think are typical for your usage of the product. This avoids the degradation that occurs because the VM resists growing its heap. For medium to large projects, try the following VM settings:

  >     -ms48m -mx128m

  You will need to experiment and fine tune these heap settings to your usage pattern.
- You can get smoother garbage collection performance by enabling incremental GC. Use the following VM setting to do this:

  >     -Xincgc

  It is worth noting that the incremental garbage collector, while smoothing GC hiccups, also slows the VM down noticeably. We suggest using this only if you experience long GC induced pauses while using JBuilder 6.
- You can reduce the amount of background source parsing for the structure pane by increasing the parsing time delay. To do this, right click the structure pane and select properties. Increase the Parse Delay setting.

[ top ]

## International

### Installing to a Japanese NEC machine:

[75607] If you are installing JBuilder to a Japanese NEC computer and the install program causes an operating system error message saying that "Drive C: is not ready... the drive door may be open...", press the <Ignore> button in this dialog. Install will then complete normally. (The <Abort> button should also work.)

### Japanese Fonts on Linux:

[75704][75705] If you experience problems displaying Japanese fonts on Linux, you may need to update the file, `<jdk1.3.1>/jre/lib/font.properties.ja`. JavaSoft's web site has instructions on how to do this in Japanese: Directions to modify the font.properties file (in Japanese).

### Command Line Compiler:

- [79877] (Windows platforms only) European versions of the command line compilers (bcj and bmj) may display accented characters incorrectly in a console window. The workaround is to invoke the compiler as follows (Note: `<path_to_JBuilder>/lib/jbuilder.jar` must be on your classpath):

  >     java -Dfile.encoding=Cp850 com.borland.compiler.frontend.Main -encoding Cp1252 myFile.java

  The first encoding option above is passed to the Virtual Machine and the second encoding option is passed to the compiler. Please note that this example assumes Code Page 850 is used in the console window (as shown by the `chcp` command), and that your java files are encoded in Code Page 1252 (which is the case when a Windows based editor was used, rather than an "old style" DOS-based editor).

  If your program sends accented characters to the console window, they will be displayed correctly if you use the following (assuming your console window uses Code Page 850, as shown by the DOS `chcp` command):

  >     java -Dfile.encoding=Cp850 myClassFile

### Other Known Problems:

- [69954] JDK1.3.1 JVM can't handle default locale override settings on Japanese OS.
- [70027] When `IntlSwingSupport` is dropped on a Frame in the designer, it may be instantiated after other class members such as a `JFileChooser`, `JOptionPane`, or `JColorChooser`, which means the translated resources are loaded too late for initial display purposes. Instantiating `IntlSwingSupport` as early as possible during your application startup will fix this problem.
- [70954] Emacs keymap "Set Mark" is actually Ctrl-2 instead of Ctrl-Space, or Ctrl-@ under Japanese Keyboard.
- [71929] Can't display localized exception messages of the native method calls correctly under a non-English locale. If these messages must be read, UNIX users can display them in English by setting the "LANG" environment variable to the POSIX "C" locale. For example UNIX users would execute at the command prompt: export LANG=C.
- [72107] Undo <Ctrl_> under Emacs keymap is mapped to <Ctrl Shift -(hyphen)> using Japanese Keyboard.
- [72519] Undo <Ctrl_> under Emacs keymap does not work using French Keyboard. The workaround is to use <Ctrl x><u> or use the keymap editor to customize the keymapping.
- [73279] If the environment variable, LC_CTYPE, is set to the POSIX 'C' locale, the Sparc Compose key may not function for certain versions of Xlib client libraries.
- [74063] (Japanese OS only) Under bold and italic attributes, the cursor will stop in the middle of a character. To workaround the problem, add the following line to `jbuilder6/bin/jbuilder.config:`
  `vmparam -Dprimetime.editor.useVariableWidthFont= true`
  After the update, remove `~/.jbuilder6/user.properties` before launching JBuilder.
- [86689] Opening a new window will switch to the default locale's keyboard, ignoring the Windows default keyboard.
- [90162] (Japanese Linux only) Closing dialog with XIM window open causes JBuilder to hang.
- [90839] (Windows 2000 Chinese edition) If you cannot display Chinese characters, you need to create a `font.properties.zh.NT5.0` in the `<jdk1.3.1>/jre/lib` directory. Please check the JavaSoft web site to fix this file (in English.) See "Adding Fonts to the Java Runtime".
- [91509] The Linux and Solaris versions of the `jdk.config` files should include the following line:
  `#vmparam -Dfile.encoding=ISO8859_1`
  Uncomment this line if you are having problems with your default file encoding. This problem is evident in some locales.
- [107292] A patch is available for JSPs running in Japanese patch. See http://www.ingrid.org/jajakarta.
- [109510] French keyboard under Solaris and Linux only: Shortcut keys for setting numbered bookmarks (Ctrl + Shift + "#") and jumping to numbered bookmarks (Ctrl + "#") don't work. Use the keymap editor to customize the keymapping.

[ top ]

## Documentation

Check the JBuilder Technical Publication web site, http://www.borland.com/techpubs/jbuilder, for updates to the documentation.

For the latest JBuilder FAQ's and TI's, please visit:

- FAQ's: http://community.borland.com/all/0,1435,c|3|10,00.html
- TI's: http://community.borland.com/all/0,1435,c|3|9,00.html

All of the printed documentation is also available in PDF format in the `pdf` directory on your JBuilder 6 product CD. See "The JBuilder documentation set" in Introducing JBuilder for a complete list of books and PDF files.

If you downloaded your version of JBuilder 6, the PDF files are also available for download from the JBuilder Technical Publication web site, http://www.borland.com/techpubs/jbuilder.

### Known Problems:

- References in the documentation to the `.jbuilder` or `.jbuilder5` directory should refer to the `.jbuilder6` directory.
- [112751] In "Using DataExpress for EJB Components" in the Enterprise Application Developer's Guide, the location of the sample project is incorrect. The location of the sample project is `jbuilder6/samples/Ejb/Ejb11/EjbDx.jpx`.
- [122843] A change to the Add/Commit functionality change is not reflected in the CVS tutorial.
  Workaround: After step 7, the user needs to commit the files separately before going on to the next step.
- [123060] Project and working directories are described as synonymous. They are not. The working directory is the default directory where the project looks for an application's files when the application is run. The project directory is the parent of the entire project.

[ top ]

## Copyrights, conditions and disclaimers

### Borland Software Corporation

Copyright © 1997, 2001 Borland Software Corporation. All rights reserved. All Borland brand and product names are trademarks or registered trademarks of Borland Software Corporation in the United States and other countries. Other product names are trademarks or registered trademarks of their respective holders.

No part of this publication may be reproduced, transmitted, stored in a retrieval system, or translated into any human or computer language, in any form, or by any means, electronic, mechanical, magnetic, optical, chemical, manual, or otherwise, without the prior written permission of the copyright owner, Borland Software Corporation.

The copyrighted software that accompanies this manual is licensed to the End User for use only in strict accordance with the End User License Agreement which Licensee should read carefully before using the software.

U.S. GOVERNMENT RESTRICTED RIGHTS

THIS SOFTWARE AND DOCUMENTATION ARE PROVIDED WITH RESTRICTED RIGHTS. USE, DUPLICATION OR DISCLOSURE BY THE GOVERNMENT IS SUBJECT TO RESTRICTIONS AS SET FORTH IN SUBPARAGRAPH (c)(1)(ii) OF THE RIGHTS IN TECHNICAL DATA AND COMPUTER SOFTWARE CLAUSE AT DFARS 252.227-7013 OR SUBPARAGRAPHS (a)-(d) OF THE COMMERCIAL COMPUTER LICENSED TECHNOLOGY-RESTRICTED RIGHTS AT 48 CFR 52.227-19, AS APPLICABLE. THIS SOFTWARE IS UNPUBLISHED UNDER THE COPYRIGHT LAWS OF THE UNITED STATES. ALL RIGHTS RESERVED.

CONTRACTOR/MANUFACTURER IS BORLAND SOFTWARE CORPORATION.

Borland® and the Borland logo are trademarks of Borland Software Corporation.

Refer to the file DEPLOY.TXT located in the redist directory of your JBuilder product for a complete list of files that you can distribute in accordance with the JBuilder License Statement and Limited Warranty.

Borland may have patents and/or pending patent applications covering subject matter in this document. The furnishing of this document does not give you any license to these patents.

### Apache Software Foundation

This product includes software developed by the Apache Software Foundation (http://www.apache.org/).

    The Apache Software License, Version 1.1

    Copyright (c) 2000 The Apache Software Foundation. All rights
    reserved.

    Redistribution and use in source and binary forms, with or without
    modification, are permitted provided that the following conditions
    are met:

    1. Redistributions of source code must retain the above copyright
       notice, this list of conditions and the following disclaimer.

    2. Redistributions in binary form must reproduce the above copyright
       notice, this list of conditions and the following disclaimer in
       the documentation and/or other materials provided with the
       distribution.

    3. The end-user documentation included with the redistribution,
       if any, must include the following acknowledgment:
          "This product includes software developed by the
           Apache Software Foundation (http://www.apache.org/)."
       Alternately, this acknowledgment may appear in the software itself,
       if and wherever such third-party acknowledgments normally appear.

    4. The names "Apache" and "Apache Software Foundation" must
       not be used to endorse or promote products derived from this
       software without prior written permission. For written
       permission, please contact apache@apache.org.

    5. Products derived from this software may not be called "Apache",
       nor may "Apache" appear in their name, without prior written
       permission of the Apache Software Foundation.

    THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED
    WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
    OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
    DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
    ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
    SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
    LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
    USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
    ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
    OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
    OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
    SUCH DAMAGE.
    ====================================================================

    This software consists of voluntary contributions made by many
    individuals on behalf of the Apache Software Foundation. For more
    information on the Apache Software Foundation, please see
    http://www.apache.org/.

    Portions of this software are based upon public domain software
    originally written at the National Center for Supercomputing Applications,
    University of Illinois, Urbana-Champaign.

### ExoLab Group

This product includes software developed by the ExoLab Group (http://www.exolab.org/).

    Copyright 1999 (C) ExoLab Group. All Rights Reserved.

    Redistribution and use of this software and associated documentation
    ("Software"), with or without modification, are permitted provided
    that the following conditions are met:

    1. Redistributions of source code must retain copyright statements
    and notices. Redistributions must also contain a copy of this
    document.

    2. Redistributions in binary form must reproduce the above copyright
    notice, this list of conditions and the following disclaimer in the
    documentation and/or other materials provided with the distribution.

    3. The name "ExoLab" must not be used to endorse or promote products
    derived from this Software without prior written permission of
    ExoLab Group. For written permission, please contact
    info@exolab.org.

    4. Products derived from this Software may not be called "ExoLab"
    nor may "ExoLab" appear in their names without prior written
    permission of ExoLab Group. Exolab is a registered
    trademark of ExoLab Group.

    5. Due credit should be given to the ExoLab Project
    (http://www.exolab.org/).

    THIS SOFTWARE IS PROVIDED BY EXOFFICE TECHNOLOGIES AND CONTRIBUTORS
    "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT
    NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
    FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
    EXOFFICE TECHNOLOGIES OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
    INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
    SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
    HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
    STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
    ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
    OF THE POSSIBILITY OF SUCH DAMAGE.

### XML-DBMS

XML-DBMS, along with its source code, is freely available for use in both commercial and non-commercial settings. It is not copyrighted and has absolutely no warranty. Use it as you will.

For additional information on XML-DBMS, please see http://www.rpbourret.com/xmldbms.

### JDOM

    Copyright (C) 2000 Brett McLaughlin & Jason Hunter.
    All rights reserved.

    Redistribution and use in source and binary forms, with or without
    modification, are permitted provided that the following conditions
    are met:

     1. Redistributions of source code must retain the above copyright
        notice, this list of conditions, and the following disclaimer.

     2. Redistributions in binary form must reproduce the above copyright
        notice, this list of conditions, and the disclaimer that follows
        these conditions in the documentation and/or other materials
        provided with the distribution.

     3. The name "JDOM" must not be used to endorse or promote products
        derived from this software without prior written permission. For
        written permission, please contact license@jdom.org.

     4. Products derived from this software may not be called "JDOM", nor
        may "JDOM" appear in their name, without prior written permission
        from the JDOM Project Management (pm@jdom.org).

    In addition, we request (but do not require) that you include in the
    end-user documentation provided with the redistribution and/or in the
    software itself an acknowledgement equivalent to the following:
        "This product includes software developed by the
         JDOM Project (http://www.jdom.org/)."
    Alternatively, the acknowledgment may be graphical using the logos
    available at http://www.jdom.org/images/logos.

    THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
    WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
    OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
    DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
    ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
    SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
    LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
    USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
    ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
    OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
    OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
    SUCH DAMAGE.

    This software consists of voluntary contributions made by many
    individuals on behalf of the JDOM Project and was originally
    created by Brett McLaughlin <brett@jdom.org> and
    Jason Hunter <jhunter@jdom.org>. For more information on the
    JDOM Project, please see <http://www.jdom.org/>.

[ top ]

### JUnit

IBM Public License Version 1.0 THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS IBM PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. 1. DEFINITIONS "Contribution" means: a) in the case of International Business Machines Corporation ("IBM"), the Original Program, and b) in the case of each Contributor, i) changes to the Program, and ii) additions to the Program; where such changes and/or additions to the Program originate from and are distributed by that particular Contributor. A Contribution 'originates' from a Contributor if it was added to the Program by such Contributor itself or anyone acting on such Contributor's behalf. Contributions do not include additions to the Program which: (i) are separate modules of software distributed in conjunction with the Program under their own license agreement, and (ii) are not derivative works of the Program. "Contributor" means IBM and any other entity that distributes the Program. "Licensed Patents " mean patent claims licensable by a Contributor which are necessarily infringed by the use or sale of its Contribution alone or when combined with the Program. "Original Program" means the original version of the software accompanying this Agreement as released by IBM, including source code, object code and documentation, if any. "Program" means the Original Program and Contributions. "Recipient" means anyone who receives the Program under this Agreement, including all Contributors. 2. GRANT OF RIGHTS a) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide, royalty-free copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, distribute and sublicense the Contribution of such Contributor, if any, and such derivative works, in source code and object code form. b) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide, royalty-free patent license under Licensed Patents to make, use, sell, offer to sell, import and otherwise transfer the Contribution of such Contributor, if any, in source code and object code form. This patent license shall apply to the combination of the Contribution and the Program if, at the time the Contribution is added by the Contributor, such addition of the Contribution causes such combination to be covered by the Licensed Patents. The patent license shall not apply to any other combinations which include the Contribution. No hardware per se is licensed hereunder. c) Recipient understands that although each Contributor grants the licenses to its Contributions set forth herein, no assurances are provided by any Contributor that the Program does not infringe the patent or other intellectual property rights of any other entity. Each Contributor disclaims any liability to Recipient for claims brought by any other entity based on infringement of intellectual property rights or otherwise. As a condition to exercising the rights and licenses granted hereunder, each Recipient hereby assumes sole responsibility to secure any other intellectual property rights needed, if any. For example, if a third party patent license is required to allow Recipient to distribute the Program, it is Recipient's responsibility to acquire that license before distributing the Program. d) Each Contributor represents that to its knowledge it has sufficient copyright rights in its Contribution, if any, to grant the copyright license set forth in this Agreement. 3. REQUIREMENTS A Contributor may choose to distribute the Program in object code form under its own license agreement, provided that: a) it complies with the terms and conditions of this Agreement; and b) its license agreement: i) effectively disclaims on behalf of all Contributors all warranties and conditions, express and implied, including warranties or conditions of title and non-infringement, and implied warranties or conditions of merchantability and fitness for a particular purpose; ii) effectively excludes on behalf of all Contributors all liability for damages, including direct, indirect, special, incidental and consequential damages, such as lost profits; iii) states that any provisions which differ from this Agreement are offered by that Contributor alone and not by any other party; and iv) states that source code for the Program is available from such Contributor, and informs licensees how to obtain it in a reasonable manner on or through a medium customarily used for software exchange. When the Program is made available in source code form: a) it must be made available under this Agreement; and b) a copy of this Agreement must be included with each copy of the Program. Each Contributor must include the following in a conspicuous location in the Program: Copyright ©2001, International Business Machines Corporation and others. All Rights Reserved. In addition, each Contributor must identify itself as the originator of its Contribution, if any, in a manner that reasonably allows subsequent Recipients to identify the originator of the Contribution. 4. COMMERCIAL DISTRIBUTION Commercial distributors of software may accept certain responsibilities with respect to end users, business partners and the like. While this license is intended to facilitate the commercial use of the Program, the Contributor who includes the Program in a commercial product offering should do so in a manner which does not create potential liability for other Contributors. Therefore, if a Contributor includes the Program in a commercial product offering, such Contributor ("Commercial Contributor") hereby agrees to defend and indemnify every other Contributor ("Indemnified Contributor") against any losses, damages and costs (collectively "Losses") arising from claims, lawsuits and other legal actions brought by a third party against the Indemnified Contributor to the extent caused by the acts or omissions of such Commercial Contributor in connection with its distribution of the Program in a commercial product offering. The obligations in this section do not apply to any claims or Losses relating to any actual or alleged intellectual property infringement. In order to qualify, an Indemnified Contributor must: a) promptly notify the Commercial Contributor in writing of such claim, and b) allow the Commercial Contributor to control, and cooperate with the Commercial Contributor in, the defense and any related settlement negotiations. The Indemnified Contributor may participate in any such claim at its own expense. For example, a Contributor might include the Program in a commercial product offering, Product X. That Contributor is then a Commercial Contributor. If that Commercial Contributor then makes performance claims, or offers warranties related to Product X, those performance claims and warranties are such Commercial Contributor's responsibility alone. Under this section, the Commercial Contributor would have to defend claims against the other Contributors related to those performance claims and warranties, and if a court requires any other Contributor to pay any damages as a result, the Commercial Contributor must pay those damages. 5. NO WARRANTY EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely responsible for determining the appropriateness of using and distributing the Program and assumes all risks associated with its exercise of rights under this Agreement, including but not limited to the risks and costs of program errors, compliance with applicable laws, damage to or loss of data, programs or equipment, and unavailability or interruption of operations. 6. DISCLAIMER OF LIABILITY EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. 7. GENERAL If any provision of this Agreement is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this Agreement, and without further action by the parties hereto, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable. If Recipient institutes patent litigation against a Contributor with respect to a patent applicable to software (including a cross-claim or counterclaim in a lawsuit), then any patent licenses granted by that Contributor to such Recipient under this Agreement shall terminate as of the date such litigation is filed. In addition, If Recipient institutes patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Program itself (excluding combinations of the Program with other software or hardware) infringes such Recipient's patent(s), then such Recipient's rights granted under Section 2(b) shall terminate as of the date such litigation is filed. All Recipient's rights under this Agreement shall terminate if it fails to comply with any of the material terms or conditions of this Agreement and does not cure such failure in a reasonable period of time after becoming aware of such noncompliance. If all Recipient's rights under this Agreement terminate, Recipient agrees to cease use and distribution of the Program as soon as reasonably practicable. However, Recipient's obligations under this Agreement and any licenses granted by Recipient relating to the Program shall continue and survive. IBM may publish new versions (including revisions) of this Agreement from time to time. Each new version of the Agreement will be given a distinguishing version number. The Program (including Contributions) may always be distributed subject to the version of the Agreement under which it was received. In addition, after a new version of the Agreement is published, Contributor may elect to distribute the Program (including its Contributions) under the new version. No one other than IBM has the right to modify this Agreement. Except as expressly stated in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to the intellectual property of any Contributor under this Agreement, whether expressly, by implication, estoppel or otherwise. All rights in the Program not expressly granted under this Agreement are reserved. This Agreement is governed by the laws of the State of New York and the intellectual property laws of the United States of America. No party to this Agreement will bring a legal action under this Agreement more than one year after the cause of action arose. Each party waives its rights to a jury trial in any resulting litigation.

[ top ]