Release NotesMarch 11, 2002
About ULC 5.0ULC 5.0 is the second public release of the Ultra Light Client technology. It introduces a seamless integration into the J2EE architecture. ULC applications can be deployed in Servlet as well as in EJB containers. Minor API changes have been applied to be as close as possible to the well known Swing API. Section Changes gives an overview of the most important differences between releases 4.0 and 5.0.
Version NotesULC 5.0 requires the Java Runtime Environment (JRE) 1.2.2 or later.
The ULC client has been tested on Windows 2000 with the follwong deployment options:
- Applet: Running the ULC client as an Applet has been tested with the following browsers:
- Netscape Navigator 4.7.9, 6.2
- Microsoft Internet Explorer 5.0, 5.5, 6.0
- Java Web Start: Running the ULC client using Java Web Start has been tested with Java Web Start 1.0.1_01 and Java Web Start 1.0.1_02.
The ULC server has been tested on Windows 2000 and Red Hat Linux 6.2 with the follwong deployment options:
- Servlet container: The Servlet integration has been tested on
- EJB container: The EJB integration has been tested on
What's in this ReleaseULC 5.0 includes the following components:
- ULC Base: The base framework required for ULC application development.
- ULC Servlet container integration: The components required for application deployment in Servlet containers.
- ULC EJB container integration: The components required for application deployment in EJB containers.
- ULC Applet Client integration: The components required for client deployment as applets.
- ULC JNLP Client integration: The components required for client deployment using JNLP/Java Web Start.
- ULC Standalone Client integration: The components required for standalone client deployment.
- ULC sample applications: Sample ULC applications (also demonstrating deployment).
- ULC documentation
Release StructureULC 5.0 is distributed with the following directory and file structure (in the trial version, only the sample sources are available):
ulc-5.0 releasenotes.html this file doc ULC documentation apidoc ULCDevGuide.pdf ULC Developer Guide ULCWhitePaper.pdf ULC White Paper base ULC base framework lib ulc-base-client.jar client base module (used for client deployment) ulc-base-server.jar server base module (used for server deployment) ulc-base-development.jar development base module (additions for application development) src container J2EE server integration ejb EJB container integration lib ulc-ejb-client.jar client ejb module (contains connector to EJB container) ulc-ejb-server.jar server ejb module (contains EJB container adapter) src servlet servlet container integration lib ulc-servlet-client.jar client servlet module (contains connector to servlet container) ulc-servlet-server.jar server servlet module (contains servlet container adapter) src environment client environment integration applet applet deployment lib ulc-applet-client.jar client applet module (contains applet integration) ulc-applet-server.jar server applet module (contains server component to access applet content pane) ulc-applet-development.jar development applet module (contains embedded applet development runner) src jnlp jnlp deployment lib ulc-jnlp-client.jar client jnlp module (contains launcher for jnlp deployment) src standalone standalone deployment lib ulc-standalone-client.jar client standalone module (contains launcher for standalone deployment) src sample ULC sample applications hello simple hello world application bin run.bat batch file to run the hello world sample lib hello-server.jar hello application classes (to be deployed to the server) src webapp hello.war hello web application (servlet container with applet and jnlp client) pie sample application illustrating the extension mechanism bin run.bat batch file to run the pie sample lib pie-client.jar pie extension classes pie-server.jar pie application classes (contains the server side extension) src webapp pie.war pie web application (servlet container with applet and jnlp client) teammembers sample application illustrating a master detail view bin run.bat batch file to run the teammembers sample lib teammembers-server.jar teammembers application classes (to be deployed to the server) src webapp teammembers.war teammembers web application (servlet container with applet and jnlp client) ulcset sample application illustrating the use of most ULC widgets bin run.bat batch file to run the ulcset sample lib ulcset-server.jar ulcset application classes (to be deployed to the server) src webapp ulcset.war ulcset web application (servlet container with applet and jnlp client)
- The package structure has changed, most importantly, all
com.ulcjava.application.*classes and subpackages have been moved to
ULCShellhas been split into
ULCDialogaccording to Swing.
ULCAppletPanehas been introduced to use the applet`s content pane as a window container.
ULCFieldhas been split into
ULCPasswordFieldaccording to Swing.
ULCAlertdo no longer support the blocking variant of the show method, a window listener must be used to execute code after the window has been closed.
ULCVBoxhave been replaced by
ULCNotebookhas been replaced by
ULCPagebookhas been replaced by
ULChas been renamed to
ULCFilehas been replaced by file upload and download services.
- ULC transport concept has been replaced by J2EE server container integration and the appropriate connectors on the client side.
ULCHasChangedEnablerhas been introduced, replacing the enabling behavior of the former
- A development runner is provided which executes server and client within the same address space.
- New application services are provided (
- Client integration is now provided for standalone, applet and jnlp.
- ULC applications no longer have to be subclassed from
ULCContext, they must only implement the
- Top level windows must no longer be added to an application.
- Tables and tree-tables do no longer require their models to be subclasses of ULC models, appropriate model interfaces are provided instead.
ULCShell.setDisposeOnClose()have been replaced by
ULCTriggerconcept has been removed. Input blocking is now the default behavior during event handling.
IWindowListenerinterface has been reduced to
windowMovedevents are no longer propagated to the server, the appropriate properties are updated however.
ULCFormModelhas been removed.
- Notification policies are no longer supported, client to server updates are now handled transparently.
ULCCompositehas been removed.
- No visual builder is supported in release 5.0.
|16||IllegalArgumentException in UI Engine when moving toolbar.|
|28||Wrong message sent by ULCLabel.|
|42||InternalFrame does not work with jdk 1.3.|
|48||ULCField.getText() throws exception on uninitialized field.|
|84||WindowClosedEvent not received.|
|86||Specifying selection mode in ULCTreeTable constructor is broken.|
|87||Multiple selection in ULCTreeTable problem.|
|106||ULCHtmlPane: fUrlString is not kept in sync with the content of the pane.|
|114||ULCShell.add() does not relayout the shell.|
|116||ULCApplication.setHelpContext() only works after the corresponding ULCContext object has been uploaded.|
|117||UI Engine as applet does not seem to do the necessary clean up in the stop() method.|
|120||ULCItemList and ULCComboBox implement the IEnabler interface. They do not work as enablers however.|
|137||ULCShell resize on setVisible().|
|163||Bringing up a ULCAlert without a parent frame does not work (NullPointerException).|
|191||ULCComboBox does not enable listeners.|
|212||Deselecting in tables does not force the enabler to be re-evaluated.|
|214||Deselecting table rows do not produce SelectionChangedEvent.|
|228||Pressing ESC when an ULCAlert is displayed leads to UI Engine exception.|
|240||ULCColumn: Tooltip text in label acting as HeaderRenderer is not shown|
|283||ULCMenuItem.setAccelerator() wrong shortcut when using non-capital letters.|
|306||fireChangeEvent() in form model always sets a ULCComboBox to true.|
|312||ULCTreeTable.expandNode() does only expand nodes that are already visible or prefetched.|
|318||Setting attributeNames on a ULCSortedItemList before connecting it to the table model does not work.|
|326||Deleting a row corrupts ULCTable when the table has been scrolled before.|
|327||Very often the wait cursor does not disappear.|
|331||ULCComboBox: events are generated when still choosing among selection.|
|332||ULCComboBox: changing the model should not transmit the whole model again.|
|345||UIComboBox: flushDirtyData() can throw NullPointerException.|
|348||ULCComboBox: wrong behavior for setSelectedItem() when item not in model.|
- Removal of tree nodes in ULCTableTree does not work properly. Workaround: ITableTreeModel implementations must notify listeners about removal of nodes just before they actually remove the nodes.
- The input blocker does not work properly with JDK Version 1.4, a wrong window may get the focus.
- Setting the selection on tables only work if the table is uploaded. Workaround: call
upload()before setting the selection.
- When running a ULC applet in Netscape 4.7x, text fields sometimes do not get the focus. Workaround: switch to an other window and then back to the applet. This problem does not exist with Internet Explorer and Netscape 6.x.