BBj 7.x Classpath Overview
Description
Along with the many new features and enhancements of BBj 7.00 comes a new set of JAR files. New controls, such as BBjBarChart have corresponding JARs associated with them. BBj 7.00 also takes advantage of JAR indexing, which optimizes the search for classes and simplifies the class path.
JAR Indexing
BBj 7.00 includes a main JAR, BBjIndex.jar,
which indexes all of the JAR files in the bbjhome/lib
directory. As a result, the BBj 7.00 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.00: 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 |
| English – British |
SpellCheckerDictionary-en.jar |
| English – Canadian |
SpellCheckerDictionary-en.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.00, 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.00. 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.00 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.00 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.00 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.00 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.00 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.00 must be uninstalled
prior to installing an older version of BBj to the same directory. Jar
and configuration files new to BBj 7.00 will cause unpredictable behavior
in older versions of BBj.