The SuperWabaJump Toolkit
What is the SuperWabaJump tookit?
As its name suggests, the
SuperWabaJump tookit is a fusion of the
SuperWaba programming interface with the
Jump code generation tools. The SuperWabaJump Tookit provides the tools and libraries necessary to convert an application using SuperWaba and the SuperWaba VM into a standalone application built on Jump.
The SuperWabaJump Toolkit is not a replacement for SuperWaba or for Jump. SuperWaba can run on a much wider selection of hardware than Jump, and it is much more mature. Jump can produce applications that do not use the SuperWaba API, that use Palm OS directly to produce compact and fast native applications.
The version number of this toolkit uses the numbering scheme of the version of SuperWaba with which it is intended to be compatible.
License
The
SuperWabaJump Toolkit is distributed under The GNU Lesser Public License (LGPL), which means that it is treated as a library.
What are the benefits?
There are two main benefits from using the SuperWabaJump toolkit.
- The toolkit produces monolithic standalone applications.
- The toolkit is generally much faster than SuperWaba on the same platform.
- The toolkit produces native machine code, which is much harder to reverse engineer.
How it works
The SuperWabaJump Toolkit is designed to take a SuperWaba application and convert it into a stand-alone program to run on Palm OS. The resulting program does not run in a virtual machine (VM). Nor does it repackage the SuperWaba virtual machine and classes into a single binary file. Instead real machine code is generated by conversion of application's class files. As a result Jump applications, including those built with the SuperWabaJump Toolkit, can run substantially faster.
Jump is able to treat pdb files created by SuperWaba's Warp utility in a similar way to jar files. It can read the class file data directly from a SuperWaba application's pdb file(s). The pdb file is simply placed on the classpath like a regular jar file. This means that during the conversion process Jump can have access to all the classes that make up the application simply by specifying the path to the application's pdb file as part of the classpath.
The SuperWabaJump Toolkit also includes a class library of components that replaces some parts of SuperWaba. This class library contains the so-called native methods, which would otherwise be provided by the SuperWaba VM. The class library is provided in the file
swj.jar. This jar file must be placed before the standard Jump jar file and the SuperWaba jar file on the classpath. This order is important to ensure that the toolkit versions are used! Never put the SuperWaba.pdb file on the classpath because it contains SuperWaba specific versions of the standard java/lang classes.
Limitations
- Palm OS 3.5, or greater, is required.
- The order in which classes are initialized is different from SuperWaba. In particular, applications should not rely on static class initialization of some classes being performed after the main window has been constructed. However, there is a compiler command line option that sacrifices some speed and code size for improved compatibility with virtual machine behaviour (-y).
- Currently Palm OS 5 devices with high-density screens display external fonts double size. The problem does not occur with standard fonts. The problem does not occur on Palm OS 5 devices with low-density screens such as the Zire 21.The problem does not occur on Sony Palm OS 4.x devices with high-resolution screens and the problem does not occur when using low-res emulation (-DLOWRES).
- Jump does not use Unicode for strings.
- Package superwaba.ext.xplat.io.scanner is completely untested.
- No database support. Package superwaba.ext.xplat.sql.db2e is not yet supported.
- No Printer support. The Printer Driver will not work.
- Native class libraries are not supported, although scanner support is built in.
- Dynamic class loading. Applications that rely on success or failure of Vm.attachLibrary() to determine whether some feature is available may get confused. The toolkit always return true from this method.
Additional Libraries
After you download the toolkit, you may also need:
--
PeterDickerson? - 18 Dec 2003
--
GuilhermeCHazan - 24 Jan 2004
--
PeterDickerson? - 30 Jan 2004
--
GuilhermeCHazan - 11 Jun 2004