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:

Tips:

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:

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:

Linux:

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:

Known problems:

[ top ]


Enterprise JavaBeans (EJB)

Tips:

Using Borland Enterprise Server 5.0

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:

Using WebSphere 3.5:

JBuilder supports WebSphere 3.5 (EJB 1.0):

Using WebSphere 4.0.1 Advanced Edition/Single Server:

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

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:

[ 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.

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:

[ 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:

[ top ]


Debugger

Tips:

Known problems:

[ 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:

Known problems:

[ top ]


Database and JDataStore

Tips:

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:

Known Problems:

[ 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:

[ top ]


Macintosh

Known Problems:

[ top ]


Samples

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

Known Problems:

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.

[ 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:

Other Known Problems:

[ 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:

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:

[ 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 ]