To migrate from UltraLightClient '08 to UltraLightClient '08
Update 1, please see the migration notes.

Version Notes

UltraLightClient requires the Java Runtime Environment (JRE)
1.4.2 or later on the server and on the client. Some addons (e.g. the
application framework) require JRE 1.5 or later on the server-side.

To deploy an UltraLightClient application in a JEE server, the
server needs to support either at least the Servlet 2.4 specification or
at least the EJB 2.1 specification.

Modules, Parts and Release Structure

The UltraLightClient release includes all components required to
successfully develop and deploy UltraLightClient applications. The
UltraLightClient modules, parts, packages, and the structure of the
current release are described in the following sections.

Modules

The UltraLightClient release is split into modules. Each module
belongs to exactly one of five categories:

All
All UltraLightClient classes.
For convenience, contains all other modules (except samples).

Base
The UltraLightClient core.
Always needed, for development and deployment.

src
Either complete source code or source stubs.
The source stubs are used to enable code completions in IDEs.

webapp
Only for sample modules: ready to deploy web application, i.e. war
files

Parts

Each of these modules can contain up to four parts:

Client
Contains classes to be deployed on the client side.
Runs inside the sandbox.

Trusted
Contains classes to be deployed on the client side.
Does not run inside the sandbox. The additional permissions required
depend on the module.

Server
Contains classes to be deployed on the server side.

Development
Contains all classes needed during development, i.e. the client,
trusted, and server parts plus some additional development classes.

The part names are reflected in the filename of the jar files in
the lib and src directory of the corresponding module, e.g.
ulc-applet-client.jar and ulc-applet-client-src.jar for the classes and
source stubs of the applet module that have to be deployed on the client
side.

The client jar files (placed in WEB-INF/lib and ending in
-client.jar) are prepared by a servlet context listenener you can find
in the easy deployment module:

com.ulcjava.easydeployment.server.ClientJarPreparationListener

The client jar files are signed if a keystore is specified in the
jarsigner.properties file. For testing purposes the project generator
creates a ulctest certificate and copies it into the generated
project.

If getApplicationClass() returns null (which is the default) then the
test uses the application configuration file. By default this is the
ULCApplicationConfiguration.xml file. A test can specify another
application configuration file by overriding
getConfigurationResourceName().

forceAllPermissions => starts the client environment
outside of the sandbox

desktopIntegration

shortcut

desktop => create a desktop shortcut

menu => create a application menu shortcut

association

extension => associate the application with this file
extension

mimeType => associate the application with this mime type

Localizable resources are loaded from resource map. To access this
resources from the client environment the ResourceDownloader Servlet
from the easy deployment module is needed. The following localizable
resource are used:

Migration Notes

Migrating an existing application

To integrate the new features into an existing application you
can perform the following steps.

Application configuration file

Copy the files from <ULC_HOME>/base/configuration/ into the root
source directory of your project. Open the
ULCApplicationConfiguration.xml file and specify the application class
name of your application. Provide all the configuration elements that
you want to use, as for example the lookAndFeel, carrierStreamProvider
or modelAdapterProvider. Add the servlet configuration for the client
properties access to your web.xml:

The number of libraries you need to cope with is reduced dramatically.
You find then in the <ULC_HOME>/all/lib directory. For an
overview of the libraries see Section 3.4 in the
ULCApplicationDevelopmentGuide.

Application framework

To use the features of the application framework it is neccessary that
your application class inherits from
com.ulcjava.applicationframework.application.Application. Rename the
start() method to startup(). You could also inherit from
com.ulcjava.applicationframework.application.SingleFrameApplication and
distribute the creation of the GUI into the different
createStartup...() methods. Code that must be executed before the GUI
is created goes into the initialize() method.
Create a resources package beneath the package of the application class
and create the <ApplicationClassName>.properties file.

Easydeployment

For the easydeployment feature to be working you must have the
application configuration file and the application class must inherit
from com.ulcjava.applicationframework.application.Application.

Copy the content of the WebContent directory that is in
<ULC_HOME>/addon/generators/templates/projecttemplates/server/
to the projects web content directory.

Remove the PersistenceServletContextListener configuration
entry from the web.xml

Copy the libraries for the servlet environment into the
WEB-INF/lib directory. Copy the libraries of your project into the
WEB-INF/lib directory, the libraries that are to be downloaded by the
client must be (re)named to end with -client.jar.