BBj 10.x Classpath Overview

BBj 10.0 includes a new automatic JAR caching feature that greatly simplifies BBj thin client deployment. It is not 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 instructed 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:

 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.

 Language

Spell Check Language File(s)

activation.jar Redistributable Java WSDP component
asm-all-3.1.jar BBj code generation
axiom-api-1.2.8.jar XML manipulation
axiom-impl-1.2.8.jar XML manipulation
axis2-adb-1.5.jar Web services
axis2-kernel-1.5.jar Web services
axis2-transport-http-1.5.jar Web services
axis2-transport-local-1.5.jar Web services
BasisHttpServerProvider.jar Embedded Jetty web server
BasisInstall.jar Installation and Admin Utility Application
BBj.jar Core server-side BBj components
BBjAdminAPI.jar API used to talk to the Admin server for BBjServices
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
bcmail-jdk16-144.jar PDF signing
bcprov-jdk16-144.jar PDF signing
bus.jar BASIS Update Service
ChileCompanyWebService.jar Chile Company Web Service demo
commons-beanutils-1.7.jar JasperReports (BBJasper)
commons-cli-1.2.jar Web services API
commons-codec-1.3.jar Web services coder/decoder
commons-collections-2.1.jar JasperReports (BBJasper)
commons-digester-1.7.jar JasperReports (BBJasper)
commons-httpclient-3.1.jar Web service client
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
DemoClientFiles.jar BBj demo images
examples.jar BBj demo package
ExamplesProperties.jar BBj demo property files
ExtIndex.jar Index on non-BASIS jars
ExtUtil.jar BBJasper and LaunchDock
Fax.jar Faxing capabilities
FedExWebServiceClient.jar FedEx Web Service demo
FontChooser.jar Font chooser feature jar
gdata-client-1.0.jar Google Docs
gdata-core-1.0.jar Google Docs
gdata-docs-3.0.jar Google Docs
gdata-media-1.0.jar Google Docs
google-collect-1.0-rc2.jar Java collection utility
groovy-all-1.5.5.jar Groovy language (BBJasper)
GuiBuilderHelp.jar Help for BBj GuiBuilder Application
gwt-user-2.0.3.jar Google Web Toolkit
HelpAll.jar Contains all third party help
httpcore-4.0.jar Web Service transport components
InterFaxClient.jar Faxing capabilities
iText-2.1.7.jar PDF library
JarRegistrationServiceClient.jar Registering ClientObject jars
JarRegistrationServiceClientLib.jar Registering ClientObject jars
jasperreports-3.1.2.jar JasperReports (BBJasper)
java_cup.jar BBj language grammar
jcommon-1.0.16.jar Jfree charts
JDBCPooling-internal.jar Connection to third party JDBC databases
JDBCPooling.jar Connection to third party JDBC databases
jdic.jar Native desktop facilities
jdic_native_applet.jar Native desktop facilities
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
jfreechart-1.0.13.jar Jfree charts
jfreechart-experimental.jar Jfree charts
jna.jar Native libraries
mail.jar Redistributable Java WSDP component
neethi-2.0.4.jar Web Service framework
outline.jar Online copy interface in Enterprise Manager
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
swingx-1.0.jar Swing layout extensions
ThirdParty.jar Deprecated: duplicate of BBjUtil.jar
TimingFramework.jar

Timing framework

Translator.jar Demo translation resource bundle
unboundid-ldapsdk-se.jar LDAP API
wsdl4j-1.6.2.jar Web Services toolkit
XmlSchema-1.4.3.jar XML creation/manipulation

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.jarwas deprecated in 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 a copy of BBjUtil.jar; this will allow most Web start applications to continue to work without a change in BBj 10.0. However, note the change that the ThirdParty.jar will be removed in future revisions of BBj.

The BBj code generation jar, asm-all-3.1.jar, is a required element in BBj 9.0. The BBjBootstrap.jar plays a  significant role in BBj 10.0 and is 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 as m-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 BBj code generation jar, asm-all-3.1.jar, is a required element in BBj 9.0. The BBjBootstrap.jar plays a significant role in BBj 10.0 and isa mandatory element in applet HTMLl 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 as an element to load classes from such unlisted jars as those mentioned above, including the m-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 10.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 10.0 must be uninstalled prior to installing an older version of BBj to the same directory. Jar and configuration files new to BBj 10.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

   BBj 9.x Classpath Overview