StreamLink for Browsers 4.4.11-2 - Release Note
==========================================
Introduction
============
Overview
========
This document provides release notes for all minor releases based
on version 4.4 of StreamLink for Browsers
Related Documents
=================
* RTML User Guide
* RTSL User Guide
Components
==========
* SL4B 4.4.11-2
* RTML compatibility layer
* RTSL compatibility layer
Product Information
===================
Product Name: StreamLink for Browsers
Latest Version Number: 4.4.11-2
Latest Release Date: 18 Dec 2007
Known Issues
============
JavaScript RTTP provider issues:
It is not currently possible to open two or more windows within a single
instance of a browser (e.g. by using the CTRL-N shortcut) containing SL4B
enabled pages that connect to the same Liberator. This is due to a standard
configuration option within the browser (both in Microsoft Internet Explorer
and Mozilla Firefox), which restricts the browser to only being able to open
two concurrent connections to the same server.
Requesting a type 2 or type 3 record object from the Liberator with a field
list results in an incorrect and/or incomplete image being received.
The JavaScript RTTP provider does not work if the SL4B-enabled page is
served up over http, whilst the Liberator connection is over https, or vice
versa. This is a limitation of XMLHttpRequest object.
Object creation and deletion methods return undefined, rather than true or
false to indicate whether the action was successful or not.
RTTP page objects are currently unsupported by the JavaScript RTTP provider.
Throttle messages are unsupported by the JavaScript RTTP provider, attempts
to invoke the setThrottleObject(), setThrottleObjects() and
setGlobalThrottle() methods will result in exceptions being thrown.
Applet RTTP provider issues:
The multiupdates configuration option causes errors in a SL4B enabled page
that has requested directory object(s) from the Liberator.
The multiupdates configuration option causes a Java/JavaScript security
exception in Mozilla Firefox and the SL4B-enabled page is loaded from a
different web server to the Liberator.
Master/Slave frame issue:
A script error occurs if the master frame is specifically reloaded whilst a
slave frame is still open. This results in the slave frame being detached
from the master, and it will cease to receive updates.
Debug console issue:
The "about:blank" debugwindowtype attribute is not always reliable for
launching a debug console in IE. Sometimes the console displays the error
message "DebugWindow Error: Exception occurred whilst processing
window.onload ([object Error])". This is due to a timing issue with the
document.domain property being set. Refreshing the browser page typically
resolves this.
KeyMaster support:
The bug fix that allows an SL4B client to re-request a KeyMaster token each
time the client needs to log into a Liberator has introduced a dependency on
KeyMaster 4.3. From version 4.3 onwards, it is not possible for SL4B to
request a token from a pre-version 4.3 KeyMaster. Please update to the
latest version of KeyMaster accordingly.
Additionally, the KeyMaster URL must use the same protocol (e.g. http or
https) as used by the Liberator, and the commondomain property may now need
to be explicitly set if the common domain for the SL4B-enabled page and the
Liberator, is not also common to the KeyMaster; typically if the
SL4B-enabled page is hosted on the Liberator machine, but KeyMaster is not.
Appending HTML to the body:
The innerHTML attribute can not be used to append data directly to the
document's body tag (e.g. document.body.innerHTML += "
some text
")
if the JavaScript RTTP provider is being used, since this causes the page
to be reparsed.
RTSL compatibility issue:
When the JavaScript RTTP provider is used, filtered news headline requests
made via the RTSL_GetObject(s) methods must include the text filter=xyz,
otherwise the filter will not be applied. For example, the request
RTSL_GetObject("/DEMO/NEWS", "A&B&C") must be changed to
RTSL_GetObject("/DEMO/NEWS", "filter=A&B&C,A&B&C").
Version History
===============
Version 4.4.11-2 - 18 Dec 2007
==============================
New Features
SL4B 4.4.11-2
Reconnection results in subscriptions being lost:
When SL4B reconnects to a Liberator it automatically re-subscribes to
all the data it was subscribed to. If the Liberator was recently
restarted, it is possible that the DataSource providing some of that
data is not yet connected in which case the re-subscription will fail
and an "Unavailable" response will be received. Documentation has been
added to the SL4B overview page describing how the "required-state"
configuration option can be used on the Liberator to prevent this issue
(PSL4B-25).
Session Id logged at the "notify" level:
The RTTP session identifier is now output at the "notify" log level.
This makes it easier to match up a client log with the server logs
(PSL4B-163).
"nooptimeout" configuration attribute added:
Configuration attribute "nooptimeout" added. This allows the time to
wait for a heartbeat (NOOP) response to be set independently of how
often a heartbeat (NOOP) is sent (the "noopinterval" attribute)
(PSL4B-106).
SL4B_LogMessageListener interface added:
It is now possible to attach a listener to the SL4B_Logger that will
be notified of all messages being output to the SL4B console. This
allows the messages to be output to an integrated application log
(PSL4B-166).
Failover documentation improved:
The documentation for the failover behaviour of the library has been
improved to clarify that the client will only failover when its
connection to the Liberator is lost. If the connection between the
Liberator and one of its DataSources is lost then it is up to the
Liberator to reconnect to the that DataSource, rather than for the
client to connect to another Liberator (PSL4B-118).
connectionAttempt() method added and connectionWarning() enhanced:
A new method has been added to the SL4B_ConnectionListener interface,
connectionAttempt(), which is invoked each time the library attempts
to connect to a Liberator. It is informed of the Liberator URL that is
being connected to, and what type of connection is being used. The
connectionWarning() method has also been updated such that it now
provides information why it was invoked (i.e. due to a lost connection
or due to a failed connection), the Liberator URL and the connection
type (PSL4B-169).
connectionError() behaviour changed when failover is configured:
The connectionError() method on the SL4B_ConnectionListener will only
be invoked once the library has attempted to connect to all of the
Liberators that have been configured within the failover XML.
Previously this method was invoked after a connection to each
Liberator failed (PSL4B-172).
Error for invalid "service" configuration attribute is unhelpful:
If an invalid "service" attribute value is specified the library now
reports what the problem is. Previously the SL4B log console contained
the message "[object: Error]" (PSL4B-105).
Suppressed exceptions now logged at "Error" log level:
When a user callback method is invoked, the library makes the call
within a try..catch block. This prevents exceptions thrown by the user
code (e.g. attempting to update the value of a cell that doesn't
exist) from impacting future updates from being processed and sent out
by the library. These exceptions are logged at the "Error" log level.
Previously they were logged at the "Warn" log level(PSL4B-174).
Safari support (experimental):
Minor internal changes have been made to enable SL4B to work in
Apple's Safari browser. Please note that this is currently not an
officially supported browser (PSL4B-167).
Bug Fixes
SL4B 4.4.11-2
Prevent session reconnect if field map not already returned
If field map is not already returned from Liberator then always do a
full login, this prevents data being returned to the client with
incorrect field names (PSL4B-173).
Version 4.4.10-4 - 12 Oct 2007
==============================
New Features
SL4B 4.4.10-4
None.
Bug Fixes
SL4B 4.4.10-4
Clients are unable to connect when latency is enabled:
Fixed an issue where clients occasionally fail to connect to the
Liberator when latency measurements are enabled. This was due to a
race condition between the clock sync and login messages; if a sync
was sent before a login the library could get into a state where it
would never send the login to the server (PSL4B-158).
Cannot navigate to an Excel spreadsheet from an SL4B enabled page:
Fixed an issue when an infinite unload cycle occurred if the user
attempted to navigate away from an SL4B page to a URL that required
the download dialog to pop up, such as for an Excel spreadsheet or a
Word document. This issue only occurred in IE (PSL4B-148).
Average latency calculation is incorrect:
Fixed two issues which resulted in an incorrect average latency being
returned from the SL4B_Statistics instance. The first issue was that
the number of latency measurements was being returned, rather than the
average latency. The second issue only occurred if the client and
server clocks were in sync with each other and resulted in the latency
measurements occasionally being ignored (PSL4B-151).
Average latency is sent to the Liberator as a decimal:
Fixed issue where the average latency is published to the Liberator as
a decimal. It is now rounded to the nearest millisecond before it is
sent within a clock sync message. This allows the average latency to
be viewed within the Enterprise Management Console (PSL4B-154).
Clock sync messages only sent when the client is logged in:
Clock sync messages are now only sent when the client has successfully
logged into the Liberator. Previously these could be sent before the
client had logged in (PSL4B-159).
Latency example updated to use the correct configuration attribute:
Updated the latency.html example page to use the enableLatency
configuration attribute (PSL4B-160).
Suppressed exceptions are now logged at the error level:
Exceptions thrown by callback methods are now logged at the error
level rather than the warn level (PSL4B-174).
Version 4.4.9-4 - 18 Sep 2007
=============================
New Features
SL4B 4.4.9-4
Flash and images price update SL4B example page:
Added an SL4B example page to demonstrate the use of both flash and
images to reflect price updates.
Configurable quote-list SL4B example page:
Added an SL4B example page to demonstrate the ability to add/remove
object subscriptions and adjust fields requested dynamically.
Connection log messages can be confusing:
The messages generated when the client is attempting to establish a
connection have been updated to make them more descriptive
(PSL4B-144).
Library compression:
This release uses a new tool to compress the size of the SL4B library.
Bug Fixes
SL4B 4.4.9-4
Liberator URL Check:
When adding different Liberator URL's to check (i.e. url-check.gif),
we now use closures to keep reference to which url has responded.
The old queuing technique caused blocking errors if the onload
event never occurred.
Version 4.4.8-3 - 24 Aug 2007
=============================
New Features
SL4B 4.4.8-3
Image/update flag added to recordMultiUpdated() callback:
An extra argument has been added to the SL4B_AbstractSubscriber
recordMultiUpdated() callback method. This indicates whether the data
passed into the callback represents a cached image for the record, or
whether it represents an update (PSL4B-126).
User application control of loading process:
Added configuration attribute "enableautoloading" that enables an
application to invoke SL4B load/beforeunload methods automatically
or manually. Previously this was always automatic, and therefore
meant that custom application loading logic was not always possible
(PSL4B-138).
Bug Fixes
SL4B 4.4.8-3
Client delays requests for 5 seconds when configured for failover:
Removed a 5 second delay that is used by the failover RTTP provider,
which prevented any requests from being sent to the Liberator during
this period. This delay was previously necessary to ensure that the a
Liberator that had been restarted had time to connect to its
DataSources, however this can now be achieved via the Liberator
"required-state" configuration option instead - please see the
Liberator Administration Guide for more information (PSL4B-132).
Clock sync messages do not check XHR object is ready before sending
Fixed a bug that was apparent on slow networks where clock
synchronisation messages were sent immediately (to increase their
accuracy) rather than placing them on the end of the queue, to the
point where messages were being sent even before the XML HTTP Request
object was not yet ready to be re-used again. (PSL4B-139).
Version 4.4.7-1 - 19 Jul 2007
=============================
New Features
SL4B 4.4.7-1
None.
Bug Fixes
SL4B 4.4.7-1
Script error occurs when viewing the status page:
Fixed bug where the type 5 connection URL was generated incorrectly
when the SL4B enabled page was hosted from the Liberator and its URL
ends with a /, as happens with the status page (PSL4B-128).
Memory leak when using pop out windows:
Fixed a problem with the flash library where the queue to remove
update flashes stopped being processed, resulting in all further
updates being pushed onto the queue, but not popped off. This issue
only occurs when slave frames were used. The memory used by the
browser kept growing as the queue kept increasing in size (PSL4B-130).
Type 5 connection cannot be established:
Fixed issue where the type 5 connection URL was failing to be
constructed correctly when an SL4B enabled page was hosted from a
sub directory of a web server, and the reference to the SL4B
library was absolute (e.g. /streaming/sl4b/index.js) rather than
relative (PSL4B-131).
Version 4.4.6-4 - 29 Jun 2007
=============================
New Features
SL4B 4.4.6-4
None.
Bug Fixes
SL4B 4.4.6-4
Client reconnects every few seconds:
Fixed issue where the library attempts to reconnect to the Liberator
every few seconds, even when it has established a connection and is
receiving a steady stream of data. This issue only occurred for type 5
connections (PSL4B-107).
Incorrect session id is sent to the Liberator:
An old session id is sent to the Liberator when a request that was
queued up when the client was connected to a previous session, but
the client has subsequently disconnected and reconnected to a new
session. This resulted in the Liberator ignoring the request, and
therefore the SL4B library expected response queue becoming out of
sync. The session id is now only added to a message at the point it is
sent, rather than when it is queued (PSL4B-111).
Null session id is sent to the Liberator:
A null session id is sent to the Liberator when a request that was
queued up when the client was attempting to reconnect to the
Liberator. This resulted in the Liberator ignoring the request, and
therefore the SL4B library expected response queue becoming out of
sync. The session id is now only added to a message at the point it is
sent, rather than when it is queued (PSL4B-110).
Illegal messages are sent after a reconnect:
Fixed issue where the library sent illegal messages to the Liberator
after a reconnect. This problem occurred when messages had been queued
up whilst the client was disconnected. It only impacted the messages
generated for requests for multiple objects and for discards
(PSL4B-101).
Latency measurement is always 0:
Fixed problem where the latency was not being calculated for record
images and updates. This issue only occurred for type 5 connections.
"undefined" field list incorrectly requested from Liberator:
Fixed issue where the client requested on object without a field list.
This should subscribe to an object for all fields, however the library
was incorrecly subscribing with a field list of "undefined"
(PSL4B-117).
Script error occurs when an SL4B-enabled page is closed:
Fixed issue where a script error occurred when the browser is closed.
This issue was introduced by PSL4B-109 (see 4.4.5) where the version
of the ActiveX control is logged (PSL4B-116).
RTTP news stories do not work:
Fixed issue where the library ignored news story image updates, which
resulted in news stories being unavailable when using the JavaScript
RTTP provider (PSL4B-121).
Version 4.4.5-2 - 14 Jun 2007
=============================
New Features
SL4B 4.4.5-2
Initial updates should not flash:
When the first update is displayed using the flash library for a
particular element it will not generate a flash. Previously it did,
which resulted in more processing being carried out than was
necessary, particularly when a page initially loaded (PSL4B-108).
XMLHttpRequest ActiveX control updated:
The way in which the library loads the XMLHttpRequest ActiveX control
has been updated such that it attempts to use the latest version first
(MSXML2.XMLHttp.6.0) before attempting to load the older versions. It
also logs which version it has decided to use (PSL4B-109).
Bug Fixes
SL4B 4.4.5-2
None.
Version 4.4.4-2 - 24 May 2007
=============================
New Features
SL4B 4.4.4-2
streaming-type5.js loaded from web server:
The streaming-type5.js file is now loaded from the web server that the
rest of the SL4B library is loaded from, instead of loading it from
the Liberator. This change has no functional impact, however it makes
it easier to handle upgrades to the library - if a version of this
file is loaded from a Liberator with a different version of the SL4B
library to the one that was loaded from the web server, then there may
be a conflict which will result in script errors (PSL4B-98).
Bug Fixes
SL4B 4.4.4-2
Record updates are not always passed onto the subscriber:
The performance improvements for the record update processing
(PSL4B-70) introduced in version 4.4.3 occassionally cause an
exception to be thrown whilst batching together a group of record
updates. As a result any updates contained within that batch will not
be passed onto the registered subscribers. This cause of the exception
has been fixed (PSL4B-97).
Version 4.4.3-5 - 17 May 2007
=============================
New Features
SL4B 4.4.3-5
Record update performance improvements:
The performance of the record update processing has been profiled, and
some hotspots have been removed in processing RTTP update messages.
Specifically:
Consecutive record updates are now grouped and processed 'en bloc'
(PSL4B-70).
Expensive typeof operation performed every time the getFieldName() and
getFieldValue() methods were invoked on the SL4B_RecordFieldData
object have been removed (PSL4B-69).
The callback queue used internally by the library is now bypassed by
record updates (PSL4B-68).
Added NOOP interval configuration attribute:
A new configuration attribute (noopinterval) has been added for
setting the interval between NOOP heartbeat messages, the default is
5000ms (PSL4B-81).
Bug Fixes
SL4B 4.4.3-5
Attempt to discard unsubscribed object log message:
Fixed issue with the logic that determined whether a discard was for
an object that had been subscribed to previously or not. It resulted
in a log message being output occassionally when objects were
discarded that had previously been subscribed to (PSL4B-59, PSL4B-82).
Script error occurs when contributing data to unavailable object:
Fixed issue introduced by the changes for PSL4B-65, which added
support for custom Auth module error codes. A script error occurred
whenever an error response was received when the client attempted to
contribute data to an object (PSL4B-85).
Failover provider and container objects incompatibility:
Fixed issue with the failover RTTP provider which meant that a client
was unable to modify its subscription (e.g. the window size) if more
than one container object was requested. Regardless of which container
key was passed into the appropriate container method, the operation
was always performed on the last container object that was requested
(PSL4B-87, PSL4B-90).
NOOP messages are always sent out:
NOOP messages are now sent out at the correct interval and only when
no messages have been received by the client(PSL4B-88).
Re-subscription to auto directories fails after failover:
Fixed issue which prevented auto directories from being re-subscribed
to once the client fails over to connect to a new server. The client
re-subscribed to the wrong object name (PSL4B-64).
Version 4.4.2 - 26 Apr 2007
===========================
New Features
SL4B 4.4.2
Added Clocksync and Latency measurement:
Measurement of message latency has been added. To be able to accurately
measure latency the client/server clocks are periodically synchronised.
Configuration attributes have been added for configuring clock sync
and message latency measurement.
documentation improved:
Updated the documentation for the failover element to
clarify that it must container both a and a
element (PSL4B-60).
Added support for custom Auth module responses:
Added support for the the status codes that can optionally be returned
by an Auth module when an object read denied or write denied response
is sent to the client. These status codes can be used to allow the
client to understand why it received the denied response. The status
code is included as an additional argument in the objectReadDenied,
objectWriteDenied and contribFailed callback methods (PSL4B-65).
Bug Fixes
SL4B 4.4.2
Auto directory methods not supported by the FailoverRttpProvider:
Fixed issue where the getAutoDirectory() and removeAutoDirectory()
methods were not supported by the SL4B_FailoverRttpProvider. An
exception was thrown whenever one of these methods was invoked
(PSL4B-63).
Default "serverurl" value is incorrect:
Fixed issue where the default value for the "serverurl" configuration
attribute was being evaluated incorrectly when sl4b was loaded from a
directory other than /sl4b (PSL4B-58).
Popup window example works with default installation:
Fixed issue with the popup window example which prevented it from
working when running against a standard windows installation, where
the example is hosted from the Liberator itself (PSL4B-28).
Invalid multiple line message handling:
Fixed issue where an RTTP message with no content would be mistaken
for a multiple line message when the rttp code, sequence number or
object number ended with a - character (PSL4B-48).
Cannot discard a container requested with a field list:
Fixed issue where the removeContainer() method did not send a discard
to the Liberator if the container had been requested with a field list
(PSL4B-62).
Login message queued behind requested after reconnection:
Fixed issue where the login message was being queued up behind other
messages once the client reconnected to a Liberator. This resulted in
the other messages failing with a "Not logged in" response. The login
message is now inserted at the front of the queue (PSL4B-66).
Advanced directory example doesn't work:
Fixed issue within the advanced directory example which meant that it
requested an undefined object, which resulted in the example not
working. This issue was caused by initialise() method being invoked
before the constructor had initialised its member variables. Although
this had worked in previous versions of the library, it has ceased to
work since the change to the default value for the "updatebatchfreq"
configuration attribute was made in version 4.4.0 (PSL4B-74).
Re-request messages sent with old session id:
Fixed issue where RTTP messages had been queued up whilst the client
reconnected to the Liberator were sent with the old session id, rather
than the new one that was obtained upon reconnection (PSL4B-75).
Invalid session id error causes response queue corruption:
Added handling for RTTP error responses, such as "Invalid Session Id"
to the library. Previously these were ignored, which resulted in the
expected response queue becoming corrupted. This in turn could result
in updates for one object being sent out for a different object
(PSL4B-67).
Version 4.4.1 - 10 Apr 2007
===========================
New Features
SL4B 4.4.1
Improved support for broadcast DataSources after failover:
Queued requests now wait for 10 seconds after re-login to re-request
symbols. This reduces the possibility of an "unavailable" message from
a broadcast DataSource due to data structures not being initialised
in a newly started Liberator.
Bug Fixes
SL4B 4.4.1
getContainer() method returns undefined for a FailoverRttpProvider:
Fixed issue where the getContainer() method returned "undefined" when
the client was configured to use an SL4B_FailoverRttpProvider. This
prevented the container paging functionality introduced in 4.4.0 from
working in conjunction with failover (PSL4B-38).
Re-subscription to container objects fails after failover:
Fixed issue which prevented container objects from being re-subscribed
to once the client fails over to connect to a new server. The client
re-subscribed to the wrong object name (PSL4B-64).
Version 4.4.0 - 30 Mar 2007
===========================
New Features
SL4B 4.4.0
Container object API change:
Container objects now support paging (the ability to request a
subset of a container's contents), through the functions setWindow
and clearWindow (ICNOI-6).
Container structure change events now include the size of the
container (ICNOI-2), and the order changes of linked objects
(ICNOI-3).
Liberator compatibility:
Backwards compatibility with Liberator versions prior to 4.4.0 has
been broken with respect to Autodirectory and Container objects
(ICNOI-20).
Default value for "updatebatchfreq" attribute changed:
The default value for the "updatebatchfreq" configuration attribute
has been changed to 0 when the JavaScript RTTP provider is used, and
cannot be modified.
Bug Fixes
SL4B 4.4.0
Type 5 connection remains open after page is closed:
Fixed issue where a type 5 connection remained open after an SL4B
enabled page was closed. This prevented an end user from being able
to receive any streaming updates if they navigated to another SL4B
enabled page that connected to the same Liberator during the same
browser session (PSL4B-47).
empty.html now loaded from the web server SL4B is hosted from:
To avoid issues with https pages warning that they contain insecure
data, SL4B loads a placeholder file (empty.html) into its hidden
IFrames. This file is now loaded from the web server that the SL4B
library is hosted from, rather than the Liberator, as this can cause
an issue when the Liberator is down in some browsers, particularly if
they are configured to redirect to another page that breaks out of a
frameset when a 404 page not found response is received.
Not found responses not passed to subscribers for filtered requests:
Fixed issue when the client requested an object that does not exist
with a filter, and the object not found response sent by the Liberator
was not passed onto the relevant subscriber (PSL4B-55).
Container structure events bypassed the callback queue:
Fixed issue where the container structure callback events bypassed the
callback queue, which meant that it was possible for the client to
receive a new container structure event before object updates are
received for the previous container structure.
Version 4.3.1 - 01 Mar 2007
===========================
New Features
SL4B 4.3.1
Long session ID support:
Support added for the long session ids that Liberator can now be
configured to send. Previously session ids were limited to 6
characters, however this length can be modified using the
session-id-len setting within the Liberator configuration file.
"maxgetlength" attribute added:
This configuration attribute has been added to allow the maximum
length of a message being sent via an HTTP GET to be modified. If an
RTTP message is longer than this value then it will be sent via an
HTTP POST. This value should be set to zero if HTTP POST should always
be used to send messages to the Liberator.
KeyMaster keep alive functionality can be disabled:
The KeyMaster session keep alive functionality can now be disabled by
specifying a non positive integer value for the
"keymasterkeepaliveinterval" configuration attribute.
KeyMaster URL can now contain predefined query string parameters:
The KeyMaster URL that is specified via the "keymasterurl"
configuration attribute can now contain query string parameters. The
library will determine whether a question mark has already been added
to the URL, and if so, will append its parameters after an ampersand.
Bug Fixes
SL4B 4.3.1
KeyMaster username and token displayed in the browser status bar:
Fixed issue where the username and token returned by KeyMaster were
displayed within the browser status bar. The status bar now contains
a message that confirms that the user was successfully authenticated
by KeyMaster, but omits any further details.
Version 4.3.0 - 19 Feb 2007
===========================
New Features
SL4B 4.3.0
ZUN failover:
SL4B now provides server failover functionality, allowing a client
application that has lost its connection to a server to failover
and connect to another server instead.
To enable the failover functionality, the client must specify an
XML file in the service configuration attribute that defines the
servers that are available and their relationship with each other.
KeyMaster keep alive:
Support for a configurable polling request has been added to allow an
SL4B enabled page to keep a single sign-on session alive with
KeyMaster. The period between polls is specified using the
"keymasterkeepaliveinterval" configuration attribute.
Permission object support:
Support added for the new RTTP permission object. Please see the
AbstractSubscriber documentation for more information.
Master/slave frame functionality works with JavaScript RTTP provider:
It is now possible to use the slave frames in conjunction with a
master frame that is using the JavaScript RTTP provider to connect to
a Liberator. This requires both the master and slave frames to set the
new "commondomain" configuration attribute (please see below).
"commondomain" attribute added:
This configuration attribute has been added to allow the SL4B library
to set the value of document.domain property within an SL4B-enabled.
This makes it easier to avoid JavaScript security issues, preventing
two pages from being able to communicate with each other. Please see
the main SL4B API documentation overview for more information
(PSL4B-32).
"debugwindowtype" attribute added:
This configuration attribute has been added to allow the way in which
the SL4B debug window is opened to be modified to suit the other
configuration options within the page. The default "html" will be
suitable in most instances, however the "about:blank" option may be
preferable if the applet RTTP provider and a standard credentials
provider are used and the "commondomain" attribute has not been set.
Default "rttpprovider" attribute value modified:
The default value of the "rttpprovider" configuration attribute has
been changed to "javascript". In previous versions this was "applet".
Default "connectiontimeout" attribute value modified:
The default value of the "connectiontimeout" configuration attribute
has been changed to "15000". In previous versions this was "5000".
This had resulted in the JavaScript RTTP provider timing out too
quickly when attempting to make a type 5 connection over the Internet.
Slave frames can launch debug console windows:
Slave frames can now launch their own debug console window which is
independent of the master frames debug console. Previously only the
master frame could launch a debug console. Please note that the slave
frame does not connect directly to the Liberator, it connects via the
master frame, therefore the slave frame console will not contain any
entries regarding the RTTP messages.
Parameterised transform functions in RTML:
RTML now supports parameterised transform functions. The first
parameter is the value of the update, the second parameter is the
user configured parameter setting (if present). The third parameter is
the updated object name and the forth parameter is the updated field
name. This means that the same transform function can be used for
different fields and objects.
Display and numeric (for comparison) return values from RTML transforms:
The RTML_TransformResult class can be used to return a result from a
transform function. This class holds both a value used for numerical
comparison (RTML_TransformResult.value) and the value used for display
(RTML_TransformResult.displayValue). This allows a non-parsable value
to be displayed, but with the correct colour flashing.
Backwards compatibility for RTML added:
Previous RTML quote attributes are now available in SL4B.
The available attributes are as follows:
bgchange, bg, bgdn, bgup, bgeq, fgchange, fgflash, fg,
fgup, fgdn, fgeq, flashtime, plus, transform, fractionhandling,
indicator, gfxup, gfxdn, gfxeq, toDP, round, addCommas and toSF.
Due to improvements and no longer requiring the Java Applet,
the following RTML attributes have not been implemented:
makeDefault, formatString, isEncoded and javaClassName.
Improved RTML attribute positioning:
Quote elements attributes can be now specified in parent tags
in the HTML DOM. This allows setting a particular attribute for a
group of child elements only once.
E.g. The bg and fg attributes can be applied to the whole HTML
by specifying the values for these attribute in the tag.
Bug Fixes
SL4B 4.3.0
KeyMaster reconnect:
KeyMaster will now obtain a new token each time a connection to
Liberator is required (including session reconnection). This fix has
introduced a dependency on KeyMaster 4.3 (please see the list of
known issues).
Null field values received for non existant fields:
Fixed issue where null field values were returned when a second
request for a record with non existent fields was made (PSL4B-13).
Multiplexing of container updates:
Fixed issue where some subscribers were not being notified of updates
to a container object. This issue only occurred if multiple
subscriptions were made to the same container object, in which case
only the first subscriber that was registered was notified of updates.
Commas are not displayed correcting in Firefox by the flash library:
Fixed issue in Firefox where certain values were not displayed
correctly when commas were being added, for example "10000" was
displayed as "0,000" rather than "10,000".
Popup window example:
Fixed issue with the popup window example which did not work when
loaded from the default Liberator installation.
Requesting blank object name results in corrupted subscriptions:
Fixed issue where SL4B allowed requests for an object with an empty
string for a name. This resulted in the subscriptions becoming
corrupted, such that subsequent updates would be sent to the wrong
subscribers. Requests for blank object names are now logged, and the
request is ignored.
RTML incompatibility with prototype library:
Fixed issue where the RTML compatibility layer threw exceptions within
a web page that also included the prototype JavaScript library.
Version 4.2.1 - 09 Aug 2006
===========================
New Features
SL4B 4.2.1
ConnectionListener.credentialsRetrieved callback method:
A new callback method, credentialsRetrieved, has been added to the
ConnectionListener interface to allow an SL4B enabled page to know
when the credentials that will be used to login to the Liberator have
been obtained. This is especially useful where a Caplin KeyMaster is
used.
Bug Fixes
SL4B 4.2.1
RTTP message encoding/decoding fixed:
Fixed issues with the encoding and decoding of RTTP messages. These
issues only manifested themselves if a message included a character
that needed to be encoded or decoded, which is typically occurs
infrequently.
Infinite loop occurs when exception is thrown:
Fixed issue where the library entered an infinite loop whilst
generating the stack trace for an exception that was thrown during
connection or reconnection.
KeyMaster use over https:
Fixed issue with the request for user credentials from a KeyMaster
using https. If the username passed up to the Liberator contained
characters such as @ and . the request failed in IE.
Version 4.2.0 - 13 Jun 2006
===========================
New Features
SL4B 4.2.0
Reduced number of deployed files:
The SL4B deployment release now consists of the minimal number of
files. This improves initial startup speed.
New object type support:
Auto directory, container, news headline and news story objects are
now supported. Helper methods have been added to the
SL4B_AbstractRttpProvider interface to simplify how auto directory,
container and news headline objects are requested.
Image filtering support:
Support added to allow an SL4B-enabled page to apply image filters to
record requests. Update filters are still supported and are used by
default. Please see the documentation for the
SL4B_AbstractRttpProvider's getFilteredObject method for more
information.
Object data contribution support:
RTTP contribution is now supported by the JavaScript RTTP provider,
allowing an RTTP client to send data to the Liberator. The client must
have write access for the data for this to be successful.
Object creation and deletion support:
A client can create and delete objects on the Liberator using the
JavaScript RTTP provider, provided that they have suitable
permissions.
Bug Fixes
SL4B 4.2.0
JavaScript RTTP provider multiple subscriber fix:
Previously, if a subscriber requests an object that has previously
been requested by another subscriber, both subscribers received an
"image" update, even if the first subscriber had previously been sent
the update. This is now fixed. (BTS 2984)
Object not found event issue:
Bug fix for JavaScript RTTP provider when an object not found event is
returned by an active source. This was being processed identically to
a object not found response which resulted in the next item being
incorrectly removed from the request queue.
Object discard problem with JavaScript RTTP provider:
The JavaScript RTTP provider did not handle object discard responses
correctly, which resulted in a script error if an object that had not
been requested previously was discarded. This resulted in the internal
expected response queue becoming corrupted.
Script error when an object is removed from a container:
Bug fix for issue where a script error occurs when an object removed
message is received for an object within a container. This was caused
by a discard being erroneously sent to the Liberator. (BTS 3024)
Object status messages not sent on session reconnects:
When a client loses its connection to a Liberator it automatically
attempts to reconnect. When it reconnects to the Liberator it will
attempt to bind to the clients previous session. If this session
reconnect is successful, no object status messages are being sent,
which results in the status remaining as stale, which was sent when
the connection was initially lost. This problem has been resolved,
such that when the client reconnects to a session the last object
status message it received for each object subscription is sent.
(BTS 3000)
Erroneous record update generated for an object placeholder response:
Bug fix for issue where a record update was generated when an object
placeholder response was received from the Liberator. The placeholder
response is used for an object that comes from an active DataSource
and is not in the Liberator's cache at the time of the request. A
record update is no longer generated when this response is received.
Version 4.1.3 - 18 May 2006
===========================
New Features
SL4B 4.1.3
None.
Bug Fixes
SL4B 4.1.3
Custom page onload event handler invoked twice:
Custom onload and onbeforeunload handlers defined within an
SL4B-enabled page were invoked twice. This has been fixed to ensure
the event handler is only invoked once. (BTS 2996)
Version 4.1.2 - 08 May 2006
===========================
New Features
SL4B 4.1.2
Connection listener interface:
Connection Listener interface (SL4B_ConnectionListener) added, which
allows a client to register a class to be notified of connection
events (e.g. connection OK). The listener can interact with the RTTP
provider whilst processing an event, for example forcing another
reconnection attempt after the SL4B library's previous attempt to
reconnect has failed.
Firefox 1.5 request enhancement:
Altered the way SL4B works to take advantage of the way in which
Firefox 1.5 uses the XMLHTTPRequest object as compared to Firefox 1.0.
This means that the JavaScript container no longer needs to be
reloaded for every message being sent to the Liberator.
RTSL element cache implementation added:
Added a RTSL "element cache" compatibility layer to the existing RTSL
functionality which allows the efficient lookup of HTML elements
within the users page by the SL4B library.
Documentation enhancements:
Enhancement of the existing SL4B documentation to restructure the
overview section of the API guide, to include a Frequently Asked
Questions section and improve the readability and clarity of the
class-level documentation.
SL4B log level configurable via the page query string:
The SL4B log (debug) level can be specified via the page query string.
This is achieved by adding the "debug=desired_debug_level" to the
page's query string.
Debug message rationalisation.
Debug messages within the SL4B library have been rationalised to
enable better identification of issues and logging of information at
the appropriate level.
Bug Fixes
SL4B 4.1.2
Type 3 connection bug fix:
Fixed issue with the JavaScript RTTP provider type 3 connection that
resulted in the client establishing many connections to the Liberator
(BTS2951).
Secure/non secure items warning when liberator is down:
Fixed issue where by a secure/non-secure warning dialog box was
displayed to the user when SL4B was hosted over HTTPS. If Liberator
was down, then the request for the JavaScript container page would
fail and the HTTP error file (404 error page) was loaded from the
user's PC over HTTP, thus causing the pop up dialog box.
OnLoad event doesn't fire when page is refreshed:
Fixed issue where refreshing a page with a type 5 connection to
Liberator resulted in no onload event being triggered.
Logout not sent to liberator when page is closed:
Fixed an issue to ensure that JavaScript RTTP provider sends a logout
message to Liberator when the user closes the web page. Previously
this was not performed and the user's session was only deleted after
the user session timed out on Liberator.
Large request issue in Firefox 1.0:
Fixed issue with large requests/discards and Firefox 1.0 for the
JavaScript RTTP provider. Large messages needed to be split up and
sent to the Liberator separately. This resulted in a reconnection and
continued failure to subscribe properly.
Version 4.1.1 - 13 Apr 2006
===========================
New Features
SL4B 4.1.1
SL4B accessor object:
A single SL4B accessor (SL4B_Accessor) object has been created to
provide a centralised place that references to the core SL4B objects,
such as the RTTP provider, can be obtained. This replaces the
following objects, all of which have been deleted:
SL4B_RttpProviderAccessor, SL4B_ConfigurationAccessor,
SL4B_BrowserAdapterAccessor, SL4B_ExceptionHandlerAccessor and
SL4B_CredentialsProviderAccessor.
Bug Fixes
SL4B 4.1.1
None.
Version 4.1.0 - 05 Apr 2006
===========================
New Features
SL4B 4.1.0
JavaScript RTTP provider performance:
Performance enhancements made to increase the number of updates per
second that the JavaScript RTTP provider could process.
Bug Fixes
SL4B 4.1.0
Secure/non secure items warning:
Fixed known issue where a "Secure/Non Secure Items" warning message
was displayed by Microsoft Internet Explorer, if the web page and
Liberator connection use https.
Browser history issue:
Fixed known issue where HTML files that were loaded into hidden
iframes by the JavaScript RTTP provider were added to the browser
history, resulting in the back button behaving in an unexpected way.
Version 4.0.1 - 24 Jan 2006
===========================
New Features
SL4B 4.0.1
JavaScript RTTP Provider directory support:
Added support for directory object updates in JavaScript RTTP
provider.
Version 4.0.0 - 13 Jan 2006
===========================
New Features
SL4B 4.0.0
RTML and RTSL within the same web page:
It is now possible to include RTML and RTSL within the same web page.
RTML "quote" tags can be included within the page to display some of
the live data, whilst the RTSL functions and callback functions can be
used for more advanced data requests and/or manipulation.
Mozilla Firefox browser support:
Both RTML and RTSL will work within the Mozilla Firefox browser,
running on either Windows or Linux.
Pure JavaScript connectivity option:
SL4B (including both RTML and RTSL) can be configured to use a pure
JavaScript connection to the Liberator, with no need to download a
Java applet. This both reduces the download size of the SL4B library,
and resolves issues any firewall and/or http proxy issues between the
client and the Liberator, where the firewall/proxy prevent the
download of Java class/jar files.
Shared configuration file:
The configuration parameters for SL4B can be externalised in a
JavaScript file that can be shared by many web pages. Previously the
configuration of each web page needed to be set separately. This does
not prevent each web page defining its own configuration, or
overriding the configuration within the external file, if necessary.
Bug Fixes
SL4B 4.0.0
None.