4.5

New Features

SOA Integration through Data Services

"Integrate with enterprise data"

Platform 4.5 pushes the data framework another step forward with the integration of data services that allow declarative connection to enterprise data. Users can, using XML, configure simple and complex requests for web services and databases as well as custom data services.

Features

  1. Fully declarative with additional APIs where appropriate
  2. Web Services support
    • SOAP
    • REST
  3. SQL Data connection via JDBC
  4. Programmable pre-processors and post-processors
  5. Support for WSDL auto generating parameter types
  6. Interface for extension (custom data service)


For SOAP web services requests Nexaweb provides automatic WSDL lookup to configure the request data types. Data Services work with the existing data binding functionality by populating data sources that can be bound to user interfaces. Configuration of parameters can be fully client side, or can be done on the server with XML or through
pre-processors that modify requests before they are dispatched. Post-processors can also be implemented on the server to manipulate response data from the enterprise data service.


The interface for Data Services on the server is open and can be implemented to create custom data services that hook into the overall flow.

Important Notes

  • Use retrieveAndProcessAsynchronously to dispatch requests; these will be handled per the application server's threading model. Response will come back to the client asynchronously.

See the documentation on data services.


Data Validation

"Validate user input without code"

The validation framework makes it possible to declaratively define user input validation behavior. This behavior can include changing the color of user interface widgets, disabling buttons, and displaying dialog boxes to alert the user to take action to fix the input.


Features

  1. Declarative validation of user input
  2. Support for custom validators
  3. Support for validation chains where multiple validators are used

Built in validator types

  • requiredFieldValidator
  • stringLengthValidator
  • integerValidator
  • decimalValidator
  • rangeValidator
  • dateValidator
  • currencyValidator

See the documentation on data validation.

Headless Client Operation

"Dual mode deployment options; back-office integration"

Headless client functionality allows the Java client to run with the user interface disabled. This allows dual mode deployment: some users interacting with a Nexaweb user interface, and some deployments simply communicating with back office operations such as databases, providing a web service feed, etc.

Features

  1. This feature is enabled in the command line with "-headless true"
  2. All user interface elements have been disabled
  3. Enhanced logging has been added to provide the necessary flexibility required for a non user interface deployment

Important Notes

  1. No effort has been made to reduce the size of the client JAR in headless mode; the binary code that provides user interface functionality is still there, it has simply been disabled
  2. This functionality is not supported in the Applet client or the Auto Updating Desktop client

See the documentation on headless client.

New Logging Features

"Improve logging flexibility"

In conjunction with the headless client feature, new and more flexible logging functionality has been added; see getLogProvider in client session and LogFactory.getLog for details.

Features

  1. Syntax for configuring logs in nexaweb-client.xml is now uniform with the syntax in nexaweb-server.xml
  2. APIs have been extended to enable custom log consumer development
  3. Two default log consumers are now available for the client
    • ConsoleLogConsumer - outputs log messages to the client console
    • DialogLogConsumer - outputs error and exceptionmessages to a dialog box

Support for Drop Shadows

Drop shadows available for user interface elements; see the dropShadowOffset and dropShadowColor attributes in the XML UI documentation.

See the documentation for more.

Client Side XML Processing

"Improve UI responsiveness"

A new API has been added, "processXML", that enables developers to cache user interface XML on the client and process when needed. This allows an applications to have caching mechanisms tailored to the specific mechanics of that applications interface.

Important Notes

  • This feature does not provide out of the box caching functionality, it is necessary to provide a caching mechanism in conjunction with this function.

See the documentation for more.

Updated Default Stylesheet

The default style sheet has been updated.

To access the previous style sheet, download from the Nexaweb compatibility repository.

Release Notes and Known Issues

Differences from Nexaweb Java Client

Move from NXML to XAL as the syntax of choice for the user interface; the primary changes include:

  • New schema
  • Migration of attribute names and values to CSS/HTML style names
  • New layout panels replacing the current concept of panel + layout tag
  • XAL as the root tag and namespace
  • No more "://"; simply use ":" moving forward
  • "px" is required for measure values

XAL Schema is different from NXML

  1. Three schemas have been created: Core, HTML, Java. The core schema has extension points for technology specific element and attribute support
  2. Layout managers have been removed, instead managed layout panes have been provided
  3. Differences in basic types: size specifications, color specifications; measure values now require a suffix to identify units, for Java this must be "px", for JavaScript it can be any HTML supported value such as px, %, em, pt; color specifications support more names in JavaScript, they also support both RGB and Hex notation.
  4. Bounding types (list of four things) are handled in HTML style; this means they are space separated in a 1 to 4 list system (in NXML it was either 1 or 4). This specifies all | top/bottom, left/right | top, left/right, bottom | top, right, bottom, left.
  5. Attributes have changed generally to be closer to HTML; for example fontColor becomes color, bgColor becomes backgroundColor, img becomes image
  6. Orientation components now have a horizontal and vertical component instead of a base component with an orientation attribute; for instanace slider becomes horizontalSlider and verticalSlider
  7. Window, Dialog, rootPane, desktopPane are now all defined to have one element which will take up there entire content area
  8. Chart and SVG are not part of the XAL language specification

Important user interface differences between Java and Ajax:

  • The Java product builds the user interface by drawing to the screen. All user interface elements are drawn to the screen by the Nexaweb client using Java graphics package. Styling is completely native to Nexaweb and includes linearGradients, dropShadows etc.
  • The Ajax product builds the user interface by composing HTML elements. Styling is performed and limited to CSS. Most effects are achieved with background images.

Features not supported in this version

Technology Limitations:

  1. linearGradient styles will not be supported. However, using images, most components will look the same.
  2. Charting and SVG are not supported. Some browsers support SVG, but support is not universal. There are examples of SVG engines done using HTML DIVs and absolute positioning, these are not efficient. A better approach to high quality graphics is to use Flash or other plugin technologies integrated into the Nexaweb application.
  3. Keyboard navigation (many limitations)

Features not supported in this version:

  1. NFC will not work with XAL; it will continue to work for NXML. This will be addressed in future releases
  2. Scrollbar as a separate component, this will likely be dropped permanently in both technologies; scrollPane is supported
  3. Slider
  4. cardPane
  5. Drag and Drop functionality (may have limited support in the release)
  6. Validation framework
  7. Tab order
  8. Keyboard navigation - later releases will have better support

Troubleshooting

XInclude


If an xInclude seems to be failing, run through this checklist of potential problems

  1. Are you sure the included XAL file is being loaded? There are FireFox plugins such as FireBUg that can tell you what files have been requested by your XAL application. Look for your included file.
  2. Is the XAL file you're including using valid XML?
  3. Is there only one rootNode in the included file? Make sure that the rootNode is NOT <Xal>. It should be a XAL pane or an element.
  4. Does the rootnode have a namespace? Most likely, the namespace would be xmlns="http://openxal.org/ui". Try putting that as an attribute-value pair in your rootNode.
  5. Does your included XAL show up in the generated source? Tools such as FireBug allow you to view the HTML source generated by your XAL application. If you can find your included content there, try giving your rootNode a backgroundColor, width, and height. You may see it show up.

Ajax Issues

Image Caching and IE 6

Dynamic user interface powered by Ajax uses images to enable much of the dynamic nature of the UI; this involves getting and setting images rapidly on the fly. IE 6 has a limitation with image cache - it does not check it for images, instead getting the image on the server. This is discussed here and various other places. The workaround is to configure the web server not to add an expires HTTP header.


Cached XAL files

XAL files are cached by the browser. This means that refreshing your application page will not get the latest copy of the XAL file that was edited. This can also be managed by the web server. Another way is to add the header to the page, possible if using server side script technology such as JSP or PHP. In PHP this can be done with: header ( 'cache-control: no-cache' );


Deploying XAL files to IIS

IIS does not recognize files with a .xal file extension and does not send them by default. This can be worked around by setting a mime type for XAL text/xml; another workaround is to rename the files with a .xml extension. This behavior does not exist on any application servers or on Apache web server.

IE 6 Performance

There is a known issue with poor IE 6 performance.  This is being resolved with progressive versions of the Nexaweb Platform, however Microsoft has also released a patch for it.

A patch from Microsoft can be downloaded from their support website: http://support.microsoft.com/kb/919237