BBj 9.x Classpath Overview
BBj 9.0 includes a new automatic jar caching feature that greatly simplifies BBj thin client deployment. It is no longer necessary to specify custom jars in Java Web Start jnlp files or applets, so long as the jar is in the BBjServices classpath. Additionally, a second index jarhas been added in BBj 9.0, instructing the thin client how to download the needed jars through the existing socket. ExtIndex.jar indexes all third party jars that are installed with BBj. Jars in this index can be changed by developers and re-registered. All jars used by BBjServices are indexed in either BBjIndex.jar or ExtIndex.jar but not both.
Note:
The BBj 9.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.
NOTE:
To determine which version of a third party JAR BBj supports, check the version number that is included in the name of the JAR file. For example, <bbj install dir>/lib/jasperreports-javaflow-6.20.5.jar means that the currently installed version of BBj is compatible with version 6.20.5 of Jasper Studio.
New JAR Sets
New and updated JARS are highlighted.
Jar |
Function |
activation.jar |
Redistributable Java WSDP component |
asm-all-3.1.jar |
BBj code generation |
BasisHttpServerProvider.jar |
Embedded Jetty web server |
BasisInstall.jar |
Installation and Admin Utility Application |
BBj.jar |
Core server-side BBj components |
BBjBootstrap.jar |
Used to validate ClientObjectjars |
BBjEM.jar |
Components for BBj Enterprise Manager application |
BBjFilesystem.jar |
File system components |
BBjIndex.jar |
Mainjar - 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 featurejar |
commons-beanutils-1.7.jar |
JasperReports (BBJasper) |
commons-collections-2.1.jar |
JasperReports (BBJasper) |
commons-digester-1.7.jar |
JasperReports (BBJasper) |
commons-javaflow-20060411.jar |
JasperReports (BBJasper) |
commons-logging-1.1.1.jar |
JasperReports (BBJasper) |
ConfiguratorHelp.jar |
Help for BBj Configurator Application |
CustomIDE.jar |
Custom images and files for the BASIS IDE |
CustomLookAndFeel.jar |
Custom skinning |
ExtIndex.jar |
Index on non-BASIS jars |
ExtUtil.jar |
BBJasper and LaunchDock |
Fax.jar |
Faxing capabilities |
FontChooser.jar |
Font chooser featurejar |
GuiBuilderHelp.jar |
Help for BBj GuiBuilder Application |
HelpAll.jar |
Contains all third party help |
InterFaxClient.jar |
Faxing capabilities |
JarRegistrationServiceClient.jar |
Registering ClientObjectjars |
jasperreports-3.1.2.jar |
JasperReports (BBJasper) |
java_cup.jar |
BBj language grammar |
JDBCPooling.jar |
Connection to third party JDBC databases |
jdt-compiler-3.1.1.jar |
JasperReports (BBJasper) |
jetty-6.1.14.jar |
Embedded Jetty web server |
jetty-util-6.1.14.jar |
Embedded Jetty web server |
JettyHttpServerProvider-6.1.14.jar |
Embedded Jetty web server |
mail.jar |
Redistributable Java WSDP component |
outline.jar |
Online copy interface in Enterprise Manager |
PDF.jar |
Printing and PDF output |
PDFRenderer.jar |
Generating PDF files |
poi-3.0.1-FINAL-20070705.jar |
JasperReports (BBJasper) |
rfax.jar |
Faxing capabilities |
RXTXcomm.jar |
Serial devices (Linux and Windows) |
servlet-api-2.5-6.1.14.jar |
Embedded Jetty web server |
SpellChecker.jar |
Spell checker featurejar |
ThirdParty.jar |
Deprecated: duplicate of BBjUtil.jar |
Table 1. Core BBj Jar Files
Table 2. below lists nineSpellCheckerDictionary-xx.jarfiles 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, theThirdParty.jar was a key jar element listed in the JNLP file. The ThirdParty.jarwas deprecated in BBj 8.0, so it is recommended to change theThirdParty.jarJNLP element to listBBjUtil.jarinstead.
Note:In order to minimize the initial impact of this change, theThirdParty.jaris a copy ofBBjUtil.jar; this will allow most Web start applications to continue to work without a change in BBj 9.0. However, note the change that theThirdParty.jarwill be removed in future revisions of BBj.
The new BBj code generation jar, asm-all-3.1.jar, is a requried element in BBj 9.0. TheBBjBootstrap.jarplays a more significant role in BBj 9.0 and is also now a mandatory element in the JNLP file.
Note: Web start applications can list the BBjIndex.jar as an element to load classes from such unlisted jars as those mentioned above, including the BBjBootstrap.jar and asm-all-3.1.jar. However, these two conditions must be met:
1. The Web start JNLP file must contain aBBjThinClient.jarelement and aBBjUtil.jarelement. TheBBjThinClient.jarmust be listed before theBBjIndex.jarelement in the application JNLP.
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.6+" inital-heap-size="48m" max-heap-size="48m"/>
<jar href="BBjThinClient.jar"/>
<jar href="BBjUtil.jar"/>
<jar href="BBjBootstrap.jar"/>
<jar href="BBjIndex.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, theThirdParty.jar was a key jar element loaded in the applet HTML file or Java Script. TheThirdParty.jarwas deprecated in BBj 8.0 so change theThirdParty.jarelement to listBBjUtil.jarinstead.
Note:In order to minimize the initial impact of this change, theThirdParty.jaris a copy ofBBjUtil.jarto allow most applets to continue to work with no change. However, note the change since theThirdParty.jarwill not exist in future revisions of BBj.
The new BBj code generation jar, asm-all-3.1.jar, is a required element in BBj 9.0. TheBBjBootstrap.jarplays a more significant role in BBj 9.0 and is also now a mandatory element in applet html or java script files.
Note:Applet html or .js files can list theBBjIndex.jaras an element to load classes from such unlisted jars as those mentioned above, including theBBjBootstrap.jarand asm-all-3.1.jar. However, these two conditions must be met:
1. The applet file must contain a BBjThinClient.jar element and aBBjUtil.jarelement.
2. Both the server and client systems must have JDK (Java Development Kit) installed.
Here is a sample Java script with BBjIndex.jar:
string = '';
string += '<object classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93" codebase="http://java.sun.com/update/1.6.0/jinstall-6-windows-i586.cab#Version=1,4,0,mn" height="800" width="800">\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/BBjBootstrap.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 9.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 9.0 must be uninstalled prior to installing an older version of BBj to the same directory. Jar and configuration files new to BBj 9.0 will cause unpredictable behavior in older versions of BBj.
See Also
For earlier versions of BBj, see