BBj 7.x Classpath Overview

Along with the many new features and enhancements of BBj 7.0 comes a new set of JAR files. New controls, such as BBjBarChart have corresponding JARs associated with them. BBj 7.0 also takes advantage of JAR indexing, which optimizes the search for classes and simplifies the class path.

JAR Indexing

BBj 7.0 includes a main JAR, BBjIndex.jar, which indexes all of the JAR files in the bbjhome/lib directory. As a result, the BBj 7.0 default class path will contain only one jar file: BBjIndex.jar.

JAR indexing optimizes the search process of class loaders in applets and Web start applications. With applets and Web start, it is no longer necessary to list all of the JARs needed for your application. On the server side, JAR indexing makes it easier to run BBj on operating systems, such as SCO, where limits are placed on the length of the class path.

New JAR Set

In addition to the main JAR, BBjIndex.jar, 7.0 adds several new JARs as shown below and combines and/or renames them to reflect their function further. Several new SpellCheckerDictionary-xx.jar files provide spell checker dictionaries in various languages and dialects.

Old Jar Set

New Jar Set

Function

 

BBjIndex.jar

Main jar - indexes all jars below

 

SpellCheckerDictionary-xx.jar (10 jars, listed below)

Localized spell checker dictionaries

 

SpellChecker.jar

Spell checker feature jar

 

JDBCPooling.jar

Connection to third party JDBC databases

 

FontChooser.jar

Font chooser feature jar

 

HelpAll.jar

Contains all third party help

 

Charts.jar

Charts feature jar

skinlf.jar

CustomLookAndFeel.jar

Custom skinning

itext.jar

PDF.jar

Printing and PDF output

config.jar

ConfiguratorHelp.jar

Help for BBj Configurator Application

guibuild.jar

GuiBuilderHelp.jar

Help for BBj GuiBuilder Application

b3odbc.jar

BBjEM.jar

BBjXML.jar

BBjEM.jar

Components for BBj Enterprise Manager application

BBj.jar

BBj.jar

Core server-side BBj components

CustomIDE.jar

RXTXcomm.jar

RXTXcomm.jar

Serial devices (Linux and Windows)

bcel.jar

bcel.jar

BBj code generation

BasisInstall.jar

BasisInstall.jar

Installation and Admin Utility Application

BBjFileSystem.jar

BBjFileSystem.jar

File system components

ThirdParty.jar

ThirdParty.jar

Deprecated in BBj 7.0: duplicate of BBjUtil.jar

BBjUtil.jar

BBjUtil.jar

Core client and server components

BBjJDBC.jar

BBjJDBC.jar

JDBC API

BBjPlugin.jar

BBjPlugin.jar

Sample file system plug-ins

BBjServer.jar

BBjServer.jar

Core components for all BBjServices

BBjSQL.jar

BBjSQL.jar

SQL API

BBjBridge.jar BBjThinClient.jar

BBjThinClient.jar

BBj client-side components

BBjPortID.jar

BBjPortID.jar

BBj port information

 

Because the language dictionaries are rather large, and because most applications do not use all languages, the dictionary files are not included in the standard thin-client jar configuration. When deploying a client application that uses spell checking, be sure to add the required dictionary files to the cache archive.

Language Spell Check Language File(s)
Dutch SpellCheckerDictionary-du.jar
English – American

SpellCheckerDictionary-en.jar
SpellCheckerDictionary-am.jar

English – British

SpellCheckerDictionary-en.jar
SpellCheckerDictionary-br.jar

English – Canadian

SpellCheckerDictionary-en.jar
SpellCheckerDictionary-ca.jar

French SpellCheckerDictionary-fr.jar
German SpellCheckerDictionary-ge.jar
Italian SpellCheckerDictionary-it.jar
Spanish SpellCheckerDictionary-sp.jar
Swedish SpellCheckerDictionary-sw.jar

Table 2. SpellChecker Dictionary Jar Files

How JAR Changes Affect Web Start

In previous revisions of BBj, the ThirdParty.jar was a key jar element listed in the JNLP file. The ThirdParty.jar has been deprecated with BBj 7.0, so it is recommended to change the ThirdParty.jar JNLP element to list BBjUtil.jar instead.

Note: In order to minimize the initial impact of this change, the ThirdParty.jar is now a copy of BBjUtil.jar; this will allow most Web start applications to continue to work without a change in BBj 7.0. However, the change should be noted as the ThirdParty.jar will be removed in future revisions of BBj.

In an effort to reduce redundancy and improve efficiency, classes associated with client-side printing now appear in the new PDF.jar. Any Web start or applets that require client-side printing need to include this jar.

Applications that take advantage of new BBj 7.0 controls will also need to list the associated jar files. For example, a Web start application that uses the BBjBarChart would require a Charts.jar element in the application's JNLP file. Similarly, to take advantage of the new spell checker feature available in all BBj 7.0 text-based controls (see Interface TextControl), a developer would also need to include SpellChecker.jar and SpellCheckerDictionary-xx.jar as elements in the JNLP.

Note: Web start applications can list the BBjIndex.jar as an element to load classes from such unlisted jars as those mentioned above. However, two conditions must be met:

1. The Web start JNLP file must contain a BBjThinClient.jar element and a BBjUtil.jar element. The BBjThinClient.jar must be listed before the BBjIndex.jar element in the application JNLP; the BBjUtil.jar can be found via the BBjIndex.jar.

2. Both the server and client systems must have JDK (Java Development Kit) installed.

One possible drawback to jar indexing in a Web start environment is the lack of caching of the indexed jars on the client. If caching is needed for certain jar files, use the 'lazy' attribute. When used in conjunction with the BBjIndex.jar, the 'lazy' attribute will download the jar on demand, and keep the jar in the client cache. See sample JNLP file below:

<?xml version="1.0" encoding="UTF-8"?>
 <jnlp spec="1.0+"
    codebase="http://www.test.com/jnlp"
    href="indexed.jnlp">
    <information>
       <title>Sample Index JNLP</title>
       <vendor>BASIS International Ltd.</vendor>
       <icon href="myicon.gif"/>
       <description>Sample JNLP With Index and Lazy Elements</description>
      <offline-allowed/>
    </information>
    <security>
        <all-permissions/>
    </security>
    <resources>
    <j2se version="1.5+" inital-heap-size="48m" max-heap-size="48m"/>
    <jar href="BBjThinClient.jar"/>
    <jar href="BBjIndex.jar"/>
    <jar href="BBjUtil.jar"/>
    <jar href="Charts.jar" download="lazy"/>
    <jar href="SpellChecker.jar" download="lazy"/>
    <jar href="SpellCheckerDictionary-en.jar" download="lazy"/>
   
    ... </jnlp>

How JAR Changes Affect Applets

In previous revisions of BBj, the ThirdParty.jar was a key jar element loaded in the applet HTML file or Java Script. The ThirdParty.jar is deprecated with BBj 7.0 so change the ThirdParty.jar element to list BBjUtil.jar instead.

Note: In order to minimize the initial impact of this change, the ThirdParty.jar is now a copy of BBjUtil.jar to allow most applets to continue to work with no change. However, note the change since the ThirdParty.jar will not exist in future revisions of BBj.

In an effort to reduce redundancy and improve efficiency, classes associated with client-side printing now appear in the new PDF.jar. Any Web start or applets that require client-side printing need to include this jar.

Applications that take advantage of new BBj 7.0 controls will also need to list the associated jar files or list the BBjIndex.jar in the HTML or Java script file. Here is a sample Java script with BBjIndex.jar:

string = '';
string += '<object classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93" codebase="http://java.sun.com/products/plugin/autodl/jinstall-1_4_0-win.cab#Version=1,4,0,mn" height="400" width="500">\n';
string
 += '    \n';
string += '    <param name="type" value="application/x-java-applet;version=1.5+">\n';
string
 += '    <param name="scriptable" value="false">\n';
string
 += '    <param name="CODE" value="com.basis.bbj.client.bbjapplet.BBjApplet">\n';
string
 += '    <param name="cache_archive" value="../../lib/BBjThinClient.jar,../../lib/BBjUtil.jar,../../lib/BBjIndex.jar">\n';
string
 += '    <param name="cache_option" value="Plugin">\n';
string += '<param name="cache_version" value="1.0.0.0,1.0.0.0,1.0.0.0">\n';

...


How JAR Changes Affect the Installation

The BBj 7.0 installation will check for and remove any pre-existing BBj jars in the bbjhome/lib directory of the target installation directory. It is important to note that BBj 7.0 must be uninstalled prior to installing an older version of BBj to the same directory. Jar and configuration files new to BBj 7.0 will cause unpredictable behavior in older versions of BBj.