BBj 8.x Classpath Overview
In BBj 8.0, Jar Registration allows end users to use Java classes developed as ClientObjects. With this functionality comes a new set of jar files. As with the previous version, BBj 8.0 takes advantage of jar indexing; the BBj classpath requires only one jar: BBjIndex.jar.
Note: The BBj 8.0 installation also includes an optional Demos feature that will install an additional set of jars needed to run the demos. As these jars are likely to change as the demos change, they do not appear in the table below.
New JAR Sets
New and updated JARS are highlighted.
Jar |
Function |
activation.jar |
Redistributable Java WSDP component |
BasisInstall.jar |
Installation and Admin Utility Application |
BBj.jar |
Core server-side BBj components |
BBjBootstrap.jar |
Used to validate ClientObject jars |
BBjEM.jar |
Components for BBj Enterprise Manager application |
BBjFilesystem.jar |
File system components |
BBjIndex.jar |
Main jar - indexes all other BBj jars |
BBjJDBC.jar |
JDBC API |
BBjPlugin.jar |
Sample file system plug-ins |
BBjPortID.jar |
BBj port information |
BBjServer.jar |
BBjServer.jar |
BBjSql.jar |
SQL API |
BBjThinClient.jar |
BBj client-side components |
BBjUtil.jar |
Core client and server components |
bcel.jar |
BBj code generation |
Charts.jar |
Charts feature jar |
ConfiguratorHelp.jar |
Help for BBj Configurator Application |
CustomIDE.jar |
Custom images and files for the BASIS IDE |
CustomLookAndFeel.jar |
Custom skinning |
FastInfoset.jar |
Redistributable Java WSDP component |
FontChooser.jar |
Font chooser feature jar |
GuiBuilderHelp.jar |
Help for BBj GuiBuilder Application |
HelpAll.jar |
Contains all third party help |
JarRegistrationServiceClient.jar |
Registering ClientObject jars |
java_cup.jar |
Parsing BBj programs |
jaxrpc-api.jar |
Redistributable Java WSDP component |
jaxrpc-impl.jar |
Redistributable Java WSDP component |
jaxrpc-spi.jar |
Redistributable Java WSDP component |
JDBCPooling.jar |
Connection to third party JDBC databases |
jsr173_api.jar |
Redistributable Java WSDP component |
mail.jar |
Redistributable Java WSDP component |
PDF.jar |
Printing and PDF output |
RXTXcomm.jar |
Serial devices (Linux and Windows) |
saaj-api.jar |
Redistributable Java WSDP component |
saaj-impl.jar |
Redistributable Java WSDP component |
saaj-ri.jar |
Redistributable Java WSDP component |
SpellChecker.jar |
Spell checker feature jar |
ThirdParty.jar |
Deprecated: duplicate of BBjUtil.jar |
Table 1. Core BBj Jar Files
Below, Table 2. lists nine SpellCheckerDictionary-xx.jar files that provide spell checker dictionaries in various languages and dialects.
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 8.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 8.0. However, note the change that 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 using certain 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 spell checker in text-based controls (see Interface TextControl), a developer would also need to include SpellChecker.jar and SpellCheckerDictionary-xx.jar as elements in the JNLP.
To take advantage of the new ClientObjects feature in BBj 8.0, add a BBjBootstrap.jar element to the JNLP file, along with any newly created jars with custom Java classes. For more information on ClientObjects and Jar Registration, see the ClientObject Tutorial and Jar Registration.
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.
3. Custom ClientObject jars, created by developers, are not indexed by the BBjIndex.jar and must be listed as separate elements in the JNLP file.
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.6+" inital-heap-size="48m" max-heap-size="48m"/>
<jar href="BBjThinClient.jar"/>
<jar href="BBjIndex.jar"/>
<jar href="BBjUtil.jar"/>
<jar href="CustomClientObject.jar" download="lazy"/>
<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 8.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.
To take advantage of the new ClientObjects feature in an applet, the BBjBootstrap.jar element must be listed in the HTML or Java script file, along with any custom ClientObject jar files. For more information on ClientObjects and Jar Registration, see the ClientObject Tutorial and Jar Registration.
As noted above, BBjIndex.jar – the main BBj jar, which indexes all other BBj jars – can be listed as an element in an applet or web start JNLP file. However, custom ClientObject jars are not indexed by the BBjIndex.jar and must be listed separately.
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.6+">\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/CustomClientObject.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,1.0.0.0">\n';
...
How JAR Changes Affect the Installation
The BBj 8.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 8.0 must be uninstalled prior to installing an older version of BBj to the same directory. Jar and configuration files new to BBj 8.0 will cause unpredictable behavior in older versions of BBj.