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 jar
has 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.

New JAR Sets

New in BBj 9.0

 

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

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 feature jar

GuiBuilderHelp.jar

Help for BBj GuiBuilder Application

HelpAll.jar

Contains all third party help

InterFaxClient.jar

Faxing capabilities

JarRegistrationServiceClient.jar

Registering ClientObject jars

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 feature jar

ThirdParty.jar

Deprecated: duplicate of BBjUtil.jar

Table 1. Core BBj Jar Files


Table 2. below 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
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 was deprecated in BBj 8.0, so it is recommended to change the ThirdParty.jarJNLP element to list BBjUtil.jarinstead.

Note: In order to minimize the initial impact of this change, the ThirdParty.jar is a copy of BBjUtil.jar; this will allow most Web start applications to continue to work without a change in BBj 9.0. However, note the change that the ThirdParty.jar will 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. The BBjBootstrap.jar plays 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 a BBjThinClient.jar element and a BBjUtil.jar element. The BBjThinClient.jar must be listed before the BBjIndex.jar element 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, the ThirdParty.jar was a key jar element loaded in the applet HTML file or Java Script. The ThirdParty.jar was deprecated in 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 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.

The new BBj code generation jar, asm-all-3.1.jar, is a required element in BBj 9.0. The BBjBootstrap.jar plays 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 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 applet file must contain a BBjThinClient.jar element and a BBjUtil.jar element.

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. Jarand configuration files new to BBj 9.0 will cause unpredictable behavior in older versions of BBj.

See Also

For earlier versions of BBj, see

   BBj 7.x Classpath Overview

   BBj 8.x Classpath Overview





______________________________________________________________________________________

Copyright BASIS International Ltd. BBj®, Visual PRO/5®, PRO/5®, and BBx® are registered trademarks.