Release Notes
June 6, 2008
About UltraLightClient 6.3 Release Candidate 1
Release 6.3 Release Candidate 1 includes the following new features:
| Feature | Description |
| ULC Application Development Guide | A document that instantly gets you productive. Learn from experienced UltraLightClient developers instead of your errors. |
| Data Types Improvements | Data types are now able to provide error feedback. The number based data types provide an API to configure the rounding mode. |
| Project Wizard | UltraLightClient comes with an ant based project wizard that
generates a ready to use Eclipse project for you. The generated
project contains a sample application that uses all the new new
features of UltraLightClient. So using the generator is an easy way to
explore these new features. No more need to manually setup your UltraLightClient project. Get productive quickly and avoid common pitfalls. No more need to setup Server deployment, as you can start the generated application in development as well as in client-server mode. For more informations have a look at the tutorial in the ULC Application Development Guide that comes with the release.
|
| Application Framework | UltraLightClient now comes with a simple application
framework that provides the following features:
|
| Form Model | This release now includes a high-level components to ease the
development of forms. For more informations have a look at the It's all about the form... blog post.
|
| Sortable Table | Tables are now sortable out of the box. For more informations
have a look at the The invisible model blog post.
|
| Table Binding | There is now an easy mechanism to bind beans to tables. For more informations have a look at the The invisible model blog post. |
| Easy Configuration | The whole application configuration has been simplified. You
now are able to configure all aspects of your application (e.g. look
and feel, client services to use) at one central place. This
configuration is respected by all deployment options (development,
Applet, JNLP, Standalone, Servlet). For more informations have a look at the One file to rule them all blog post.
|
| Easy Deployment | UltraLightClient now comes with convenience Servlets that
return default HTML pages and JNLP files that start your application. No more need to write custom HTML/JSP pages and JNLP files. |
For more informations on the new features have a look at the
- Screencast.
- The big easy blog post.
- Tutorial in the new UltraLightClient Application Development Guide.
Please see the ULC 6.2.2 release notes for previous release notes.
The sections Fixed Bugs and Implemented Feature Requests give an overview of the most important differences between UltraLightClient 6.2.2 and UltraLightClient 6.3.
To migrate from UltraLightClient 6.2.2 to UltraLightClient 6.3, please see the migration notes.
Version Notes
UltraLightClient 6.3 requires the Java Runtime Environment (JRE) 1.4.2 or later on the server and on the client. The application framework add on requires JRE 1.5 or later.
To deploy an UltraLightClient application in a J2EE 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:
- Base
The UltraLightClient core.
Always needed, for development and deployment. - Container
Server-side integrations into containers, e.g. Servlet, EJB.
Only needed for server deployment. - Environment
Client-side integrations into environments, e.g. Applet, JNLP.
Only needed for client deployment. - Addon
Utilities and extensions, e.g. test framework, QTP integration.
Only needed on demand. - Sample
Samples demonstrating the usage of UltraLightClient, e.g. Hello, ULCSet, OnlineShop.
Not needed during development or deployment.
The category and module names are reflected in the directory structure of the release, e.g. environment/applet for the applet module that belongs to the environement category.
A module directory contains subdirectories with the following contents:
- lib
Jar files that contain the module classes.
For sample and add-on modules the required libraries. - resource
Only for sample modules: the required resources, e.g. images, property files - 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.
Release Structure
| ulc-6.3 | UltraLightClient 6.3 home directory |
| addon testframework qtpintegration |
Add-ons to the UltraLightClient base framework |
| base | UltraLightClient base framework |
| container ejb servlet |
J2EE server integration including EJB container integration and Servlet container integration. |
| doc addon ULCQTPIntegrationGuide.pdf ULCTestFrameworkGuide.pdf apidoc ULCArchitectureGuide.pdf ULCApplicationDevelopmentGuide.pdf ULCDeploymentGuide.pdf ULCEssentialsGuide.pdf ULCExtensionGuide.pdf ULCInstallGuide.pdf ULCReferenceGuide.pdf ULCTestFramework.pdf ULCWhitePaper.pdf |
UltraLightClient documentation |
| environment applet jnlp standalone |
Client environment integration for applet deployment, JNLP deployment, and standalone deployment. |
| license | the jar file with the deployment license key |
| previous_releasenotes | Previous release notes |
| sample hello onlineshop pie teammembers tomcat trusted ulcdndset ulcset |
Sample applications with ready to run Tomcat Servlet container |
| build.txt | Contains the build number |
| LicenseAgreement.pdf | The license Agreement |
| releasenotes.html | This document |
Fixed Bugs
| PR | Description | Comments |
| UBA-7285 | Input is not blocked for heavy weight popup menus | |
| UBA-7351 | UITextComponent.setValue() does not respect default value of associated data type | |
| UBA-7363 | MemoryLeak in DefaultModelAdapterProvider | The list of frames (ULCFrame.getFrames()) and the list of owned windows (ULCWindow.getOwnedWindows()) have the same issue. Fixed these two places as well. |
| UBA-7392 | The source stub for ULCLazyLoadingContainer is corrupt | |
| UBA-7411 | AllPermissionsFileService.chooseFile() does not throw a ServiceException | |
| UBA-7412 | setText and setMnemonic on ULCLabel and ULCAbstractButton do not update the displayedMnemonicIndex property | |
| UBA-7413 | UIScrollPane.BasicScrollPane.setCorner() breaks with recent JRE6 | |
| UBA-7414 | ULCComboBox should not trigger an model event on client-side while synchronizing state | |
| UBA-7416 | UISession.waitForIdle() may lead to a dead-lock when invoked from multiple threads | |
| UBA-7417 | Editable combobox does not function properly as an enabler | The enabling condition for combo boxes now depends on the
combo box being editable or not:
|
| UBA-7423 | Possible deadlock when UISession is created on EDT | |
| UBA-7426 | Cell based popup menus do not work correctly in ULCTableTree if the selection is not set before the popup is triggered | |
| UBA-7427 | ULCScrollBar should report positon 1 if knob has reached maximum | |
| UBA-7439 | getInvoker() on ULCPopupMenu of a ULCTableTree returns null. | |
| UBA-7442 | ULCList.setSelectedIndex() does not clear previous selection | |
| UBA-7444 | Editors are not loaded to the client side | |
| UBA-7446 | The textual representation of a ULCTable / ULCTableTree drag operation takes model indexes instead of view indexes | |
| UBA-7452 | Session serialization is broken for round trip listeners that reference frames |
Implemented Feature Requests
| PR | Description | Comments |
| UBA-6840 | Creating a custom cell renderer without an empty constructor does not work and no error message is displayed | |
| UBA-6879 | I18N for ULCPercentDataType | New API:
|
| UBA-6961 | ULCNumberDataType does not round correctly | New API:
|
| UBA-7034 | JNLP integration should not manage cookies in JRE 1.5 | |
| UBA-7054 | ULCTable should provide an API to sort / filter rows as JTable in Java 6 | New API:
|
| UBA-7286 | Improve support for ULC applications that do not provide their own root | New API:
|
| UBA-7367 | Add missing documentation for the following extension APIs | |
| UBA-7387 | Provide support for forms | New API:
|
| UBA-7388 | Provide simple application framework | New API:
|
| UBA-7389 | Simplify Servlet deployment | New API:
|
| UBA-7390 | Provide default bindings for table models | New API:
|
| UBA-7391 | Provide template generators | New API:
|
| UBA-7415 | Provide a way to avoid the caching of renderer components for specific cases | New API:
|
| UBA-7418 | Make Toolkit.getDefaultToolkit().getMenuShortcutKeyMask() available on Server Side | New API:
|
| UBA-7419 | Provide an API to enable / disable user interaction verification | New API:
|
| UBA-7420 | Provide application API to get the type of the client environment and the type of the server container | New API:
|
| UBA-7428 | ULCTable should provide a fillsViewportHeight property | New API:
|
| UBA-7430 | Provide ClientContext.getLookAndFeelSupportsWindowDecorations() API | New API:
|
| UBA-7431 | Provide ClientContext.setLocale() API to set client locale | New API:
|
| UBA-7443 | UITextComponent should provide access to the most recent DataTypeConversionException | New API:
|
| UBA-7450 | Simplify application configuration | New API:
|
| UBA-7451 | Add cookbook style document to the release | New API:
|
Migration Notes
ApplicationContext.getContainerAdapterClassName()
Replacement ApplicationContext.getContainerAdapterClassName() with ApplicationContext.getServerContainerType(). The new API returns an int that identifies the server container type the application is deployed into:
- DEVELOPMENT: Development container type
- EJB: EJB container type
- LOCAL: Local container type
- SERVLET: Servlet container type
- UNDEFINED: unknown container type
Known Problems and Limitations
You can find known problems and limitations in our issue database.
Product and company names herein may be trademarks of their respective owners.



