LIGHTSTREAMER CHANGELOG ======================= This file contains the changelog for the following components: - Lightstreamer Server - SDK for Java Adapter Development - SDK for .NET Adapter Development - SDK for Adapter Remoting Infrastructure - SDK for Web Client Development - SDK for Flash/Flex Client Development (JS Bridge) - SDK for Flash/Flex Client Development (Native AS) - SDK for Java SE Client Development - SDK for Java ME Client Development - SDK for .NET Client Development - SDK for Generic Client Development - SDK for JMX Extension Development -------------------- Lightstreamer Server -------------------- 3.5 build 1422 Released on 23 Sep 2008 Introduced a basic support for multiple Data Adapters that feed the same client session. A Metadata/Data Adapter Pair can now be generalized to an "Adapter Set", made up of a single Metadata Adapter and one or multiple Data Adapters. The configuration of an Adapter Set is made possible by an extension of the "adapters.xml" syntax; the element can be included multiple times and the new "name" attribute must be used to uniquely identify the Data Adapters within the Adapter Set. The new element can be used inside the and elements in order to relocate and distinguish the installation directories of the various Adapters. See the included deployment examples for details. The configured name should be used by the clients to identify the Data Adapters that supply the specific requested items. For backward compatibility, a missing name in the configuration file or in a client request defaults to the "DEFAULT" name. Extended the log in the Adapter initialization phase. Data Adapters are now uniquely identified in the form: AdapterSetName/DataAdapterName Changed the policy for Data and Metadata Adapter loading. All the configured Adapters are now loaded in parallel, while before they were loaded in sequence. Note, however, that the previous Adapter loading policy was never declared. Introduced the support for inclusion of the internal monitoring Data Adapter in custom Adapter Sets. See the General Concepts document for documentation on the available items and fields. Directly accessing the pre-installed "MONITOR" Adapter Set from custom clients is now deprecated. The "MONITOR" Adapter Set is only needed by the pre-installed Monitor Console. Extended the Internal Monitor front-end, with information about the local instance of the Server. Similarly, configuration details of the configured server sockets are available through the internal monitoring Data Adapter. Fixed a bug on the Internal Monitor front-end, which caused the Server address not to be shown after a disconnection and reconnection. Supported the extension to the "notifyUser", "notifyNewSession", "getItems" and "getSchema" Adapter interface methods. See the various Adapter interface SDKs for details. Introduced the and configuration elements, which help deploying the Server with a custom directory structure. Introduced the configuration element, to customize the URL path to be used for push requests by web clients (whose default is still /lightstreamer). Improved the management of sendMessage for Web Clients. The possibility of discarding messages that have come too late has been minimized. Extended the custom LSProducer log4j appender to accept generic appender configuration elements (but for ). Fixed a bug that might cause the first update after the snapshot to be filtered if it came very close to the snapshot and the buffer size was 1. This filtering would have been undesirable if the next update had happened to come after a significant time. Fixed a bug in the parsing of the "adapters.xml" files; the element values are now trimmed before use. Fixed a bug that might disturb the slowing algorithm provided by the Web Client Library, which can be enabled by a client page through setSlowingEnabled. Improved the handling of very frequent pollig requests. Improved the packet dimensioning heuristics for the case of asynchronous polling with no minimum interpoll time protection set. Moved the logging of notifications of polling requests from the "LightstreamerLogger.requests" category to the "LightstreamerLogger.requests.polling" subcategory, so that it can be selectively filtered out. Added on the "LightstreamerLogger.webServer" category the logging of notifications of requests for static resources related to push requests. Changed the suggested default for the "LightstreamerLogger.webServer", "LightstreamerLogger.connections" and "LightstreamerLogger.requests.polling" to WARN level. Changed the default configuration setting for , from 30000 (only useful with very slow clients/networks) to 5000 ms. Suppressed the error log for SSL handshake errors caused by the a client side connection reset. Changed the default installation of the Server in order to host new demos; these include existing HTML and Flash/Flex examples and brand new demos. Both the pre-deployed Adapter Set and the pre-deployed front-end pages have been extended; the deployment directory structure has also been revised. 3.4.8 build 1398 Released on 6 Mar 2008 Fixed a bug affecting the dispatching of events in the following cases: - Items requested in DISTINCT mode with snapshot (only snapshot events could be affected) - Items requested in DISTINCT and RAW mode at the same time - Items requested in COMMAND and RAW mode at the same time (only non-snapshot ADD and DELETE events could be affected) In all those cases, the bug might cause some events to be sent with null field values. Note that the bug always caused the following warning to be logged: "Data type other than String or byte array received in update event" Fixed a bug that might cause configuration subelements to be missed, in case they were defined immediately after the containing elements, as in "val". Commonly used configuration files were not affected, as elements and sublements are usually placed in different lines of text. Hidden the LS_password argument value from the log of client requests for new sessions. Added the configuration element to override. Changed the session ID generation algorithm. 3.4.7 build 1395 Released on 11 Feb 2008 Inhibited socket reuse when refusing a request for a new session because of the load shedding mechanism. Added a configuration element to customize the error page, which is returned upon unexpected request URLs. See in lightstreamer_conf.xml and the basic "ErrorPage.html" page added under "conf". Introduced a simple variable-expansion feature for the Server configuration file. See the introduction comment in lightstreamer_conf.xml. Fixed a bug which caused a logging operation to throw an exception. This only happened when the DEBUG level or the custom TRACE level were enabled on the LightstreamerLogger.preprocessor category. This also caused the processing of all updates to fail. 3.4.6 build 1393 Released on 4 Jan 2008 Revised and simplified the error page, which is returned upon unexpected request URIs. Extended the scope of the new configuration element to some error messages returned by the Server, which still reported the Server version number. 3.4.6 build 1391 Released on 6 Dec 2007 Excluded the logging of the health check requests from the filtering imposed by the configuration element. 3.4.6 build 1390 Added the configuration element, that allows the Server version number to be excluded from the "Server" HTTP header response. Improved the checks for incorrect answers from the Data or Metadata Adapter. 3.4.6 build 1389 Released on 22 Nov 2007 Extended the notifications to web clients for sessions closed on the server side to the case of polling, when the closure occurs between two polling requests. In these cases, the web client library version 4.2.2 or newer will no longer try to recover by opening a new session. Fixed a bug which affected the notifications to web clients for sessions closed on the server side; the bug prevented them from reaching the client in case a rebind had taken place. 3.4.6 build 1387 Fixed a bug which might cause error notifications to web clients (intended for the onServerError event handler) to fail and issue a javascript error. 3.4.6 build 1385 Released on 15 Nov 2007 Changed the format of the included build.number file. Introduced the notification to the clients of the name of the server socket which handles a session request (the name is the one assigned through the or configuration element). Introduced a special /lightstreamer/healthcheck request that can be used by load balancers to test the responsiveness of each Server instance in a cluster. See the configuration element for details. Fixed a compatibility issue with Nokia Browser, which prevented some client requests from being received by the Server. 3.4.5 build 1383 Changed the policy for the management of the conversion of update event field values to a transferrable format. See the new configuration element for details. Fixed a compatibility bug that, under particular configuration settings, could lead to a "NoSuchMethodError" in the startup phase if JDK 1.4 were used, thus causing the Server startup to fail. 3.4.5 build 1382 Fixed a bug related to the management of unexpected conditions from the NIO library. In case the "Unexpected empty read/write on a readable/writable socket; forcing a 50 ms pause" message was issued, the pause might be significantly longer. 3.4.5 build 1380 Changed the default configuration for the events_pool_size and pump_pool_size configuration elements. Now each pool starts with one thread for each available processor. 3.4.5 build 1376 Removed a compatibility issue with Flex player under Internet Explorer, which prevented HTTPS connections to Lightstreamer Server from working. 3.4.5 build 1375 Removed redundand calls to the wantsTablesNotification API. 3.4.5 build 1374 Upgraded the included log4j library to the latest version (1.2.15). The library introduces a new TRACE level, which is not used and should not be confused with the TRACE#com.lightstreamer.log4j.TraceLevel custom level. Added a check to prevent possible browser-originated duplicated messages upon sendMessage calls issued by web clients. The check is effective since Web Client Library version 4.2 build 1320. Introduced a configuration flag to suppress the use of special notifications in order to send unchanged fields to the clients. See the Server configuration element for details. Revised and extended the TRACE level logging of request management problems. 3.4.4 build 1369 Added the support for the customization of the choice of a suitable cipher suite operated by the Server upon each new HTTPS connection. See the Server configuration element for details. 3.4.4 build 1364 Fixed a bug on the management of SSL connections that might cause the writing of very long fields to fail and the whole connection to be closed. 3.4.4 build 1361 Added a workaround for a problem with native Flex clients running under IE, which might cause the start of the streaming to be delayed. The library for native Flex clients is still to be released at this moment. 3.4.4 build 1360 Revised and extended the implementation of the HTTP protocol, though it is still based on HTTP 1.0 version. Introduced the "LightstreamerLogger.connections.http" logger, which reports at WARN level each case in which an HTTP header is ignore because of a protocol implementation limitation. It is assumed that no client actually uses those header values. The default configuration of the logger hides such notifications. Slight improvement on real bandwidth estimation for text mode connections. 3.4.4 build 1355 Extended the text client interface in order to let the client ask for Server capabilities (see the LS_report_info querystring parameter). 3.4.3 build 1353 Fixed a bug which might cause the initial license check to fail when in the presence of some unusual network interfaces. 3.4.3 build 1352 Changed the policy for the allocation of the IO buffers. The buffers are now allocated in heap space rather than in native space. The IO buffers are usually small (about 1 KB). 3.4.3 build 1351 Revised some details in the text output protocol syntax; forced the use of \r\n as the line separator in the answers to control requests, instead of a system dependent line separator. This ensures better compliance with the protocol documentation in "Network Protocol Tutorial.pdf", with no impact on the existing client libraries. Fixed some mistakes in the documentation of the various error notifications. 3.4.3 build 1350 Fixed a bug in the embedded Monitor Console that could prevent log lines filtering in case of high logging activity. 3.4.3 build 1347 Added the support for native Flex clients. See the "flex_crossdomain_enabled" element in the Server configuration file for a detailed comment. The library for native Flex clients is still to be released at this moment. 3.4.3 build 1345 Removed the dependencies on Sun's proprietary APIs. This required changing the BASE64 enconding/decoding implementation. This also required changing the user-agent specified in the connection to the proxy if proxy authentication is needed in order to access the Trial License Server. 3.4.3 build 1344 Fixed a bug (that was introduced in build 1321) which might cause the Server to enqueue in an incorrect order events for the same item coming from the Data Adapter within the same millisecond. The bug only affects events notified by the Data Adapter through any of the "update" methods; the "smartUpdate" methods, available when the SmartDataProvider interface is implemented, are handled correctly. The bug may also affect events coming within a larger time interval, in case the System.currentTimeMillis implementation precision is broader than one millisecond. For instance, on some Windows systems, the precision is about 15 ms. 3.4.3 build 1340 Introduced a workaround for Sun's bug 6403933 (about NIO implementation), which might cause 100% CPU usage for short intervals in Linux. It replaces a simpler workaround, that forced the NIO thread to sleep for 50 ms in those cases. 3.4.3 build 1337 Fixed a bug in the support for the internal Load Test Toolkit, which, on some machines, might cause errors of a few milliseconds in the measured times; this might even lead to small negative latencies. 3.4.3 build 1336 Fixed an error in the MetadataProviderAdapter javadoc: the getUserSessions method is deprecated. 3.4.3 build 1334 Fixed a bug affecting the management of the HTTP requests with the HEAD method. Revised the log messages related to license check. 3.4.3 build 1331 Improved the protection of the pages supplied by the Server in order to carry user data. See the and elements in the Server configuration file. Note: the configuration for the new element set in the default Server configuration file assumes Web Client Library version 4.2 build 1309 or above on the client side; in order to support previous versions, just remove the new configuration element. Fixed a bug on the management of RAW mode and unfiltered dispatching when a maximum frequency limit is imposed by the Edition. This kind of service is no longer refused, but rather it is supported subject to the frequency limit. Note that this may cause significant data latency if the source update frequency is higher than the frequency limit imposed by the Edition. 3.4.2 build 1325 Removed a compatibility issue introduced on version 3.4.2 build 1323 that prevented the Server from running on a 1.4 JVM. 3.4.2 build 1324 Improved security and vulnerability prevention. 3.4.2 build 1323 Fixed a bug that might cause a javascript error on the client in case of unlicensed client version. Added extensions to the web interface in order to support the new 4.2 Web Client Library. The thick client interface has not changed. Upgraded the internal monitor pages to Web Client Library version 4.2. Viewing the internal monitor with the current production, development or demo license may be no longer allowed. The old internal monitor pages can be restored by replacing lib/ls-monitor.jar with the old one. 3.4.1 build 1322 Revised the internal locking strategy, in order to minimize synchronization requirements for the processing of Data Adapter update notifications. 3.4 build 1321 Fixed a bug that affected items requested in COMMAND mode: the end-of-snapshot notification to the client could be delayed until the first update was produced by the Data Adapter. 3.4 build 1320 Fixed a bug that prevented the correct loading of a configuration file starting with a comment node. 3.4 build 1316 Introduced suitable configuration flags for the sizing of the internal thread pool devoted to the management of the client requests. See the sample configuration file for details. 3.4 build 1313 Improved the encoding of special characters in the push stream in order to use less bytes for typical JSON-style data values. Fixed a bug that might cause the available bandwidth not being completely used in case of polling with an unlimited bandwidth granted to the session. 3.4 build 1309 Extended the logging in case of problems in trial license check. Moved the native libraries to a single "native" directory, under "lib". 3.4 build 1308 Extended the sample Metadata Adapters (i.e. FileBasedProvider and LiteralBasedProvider)in order to support the configuration, in adapters.xml, of the allowed subscription modes for the various items, inquired by the Kernel through the "modeMayBeAllowed" method. The default behaviour is still to allow any mode for any item, but this is not recommended, because the Server does not support more than one mode out of MERGE, DISTINCT and COMMAND for the same item. In such a case, the Server would just manage each item in the mode specified by the first Client request it receives for the item. 3.4 build 1307 Tested the compatibility with the new Java 1.6 release. Extended the support for production licenses on all platforms, if java 1.6 is used to run the Server. 3.4 build 1306 Added the support for production licenses on the x86_64 processors, running either Windows or Linux. Addressed a compatibility issue with Opera browser, gaining a slight improvement on client-side performances. 3.4 build 1305 Added the and configuration elements, that allow the thread pools devoted to the management of the events flow to be sized, based on the number of processors. The default size of these thread pools has been changed from 10 to 1. 3.4 build 1300 Fixed a bug that prevented the Server to communicate the configuration setting to the web clients for an early check of the length of the requests. 3.4 build 1299 Improved the heuristic strategy adopted by the Server in order to identify connections kept open by intermediate proxies but closed on the client side. 3.4 build 1298 Introduction of Server 3.4 - Web Client 4.1 release. -------------------------------- SDK for Java Adapter Development -------------------------------- 3.5 build 1422 (compatible with Server since 3.5) Released on 23 Sep 2008 Extended the MetadataProvider interface. A third argument has been added to the "notifyUser" method; the argument carries information about the HTTP headers of the originating client request. Also, a third argument has been added to the "notifyNewSession" method; the argument carries various information about the originating client request. Moreover, a new argument, carrying the current session name, has been added to the "getItems" and "getSchema" methods. Note that this breaks the compatibility of new Metadata Adapters with the old versions of the Server. Old Metadata Adapter source code still compiles with the new interface library only provided that the Adapter class inherits from one of the supplied LiteralBasedProvider or FileBasedProvider. Anyway, any old Metadata Adapter binaries are supported by the new Server, which just looks for an old version of "notifyUser", "notifyNewSession", "getItems" or "getSchema" method when it can't find a new version. Only old binaries in which a local overload happens to match the new signature may not work properly. Extended the interface specifications to the basic support for multiple Data Adapters introduced in the Server. Now, the Metadata Adapter must manage inquiries for items that may pertain to different Data Adapters; however, the interface has not been extended to carry Data Adapter information (this will not be performed until the next major release). Hence, the Metadata Adapter must be able to answer to the inquiries based on the item name only. Extended the conditions in which an update event, after being passed to the ItemEventListener, can still be used by the Data Adapter. Revised and extended the included examples. 3.4.8 build 1398 (compatible with Server since 3.3.1 b1) Released on 6 Mar 2008 3.4.7 build 1395 (compatible with Server since 3.3.1 b1) Released on 11 Feb 2008 Clarified on the javadocs the conditions in which an update event, after being passed to the ItemEventListener, can still be used by the Data Adapter. Also clarified the conditions in which a custom Metadata Adapter can be used when the LiteralBasedProvider is requested by client API specifications. 3.4.6 build 1393 (compatible with Server since 3.3.1 b1) Released on 4 Jan 2008 3.4.6 build 1391 (compatible with Server since 3.3.1 b1) Released on 6 Dec 2007 3.4.6 build 1389 (compatible with Server since 3.3.1 b1) Released on 22 Nov 2007 3.4.6 build 1385 (compatible with Server since 3.3.1 b1) Released on 15 Nov 2007 3.4.4 build 1372 (compatible with Server since 3.3.1 b1) Tested the sample Adapters for compatibility with the new version of log4j libraries used for the Server (1.2.15). Upgraded the JMS example generator to include log4j library version 1.2.15. 3.4.4 build 1364 (compatible with Server since 3.3.1 b1) Extended the provided JMS-based StockListDemo Data Adapter example, by adding configuration istructions for the JBoss Messaging JMS provider. 3.4.3 build 1362 (compatible with Server since 3.3.1 b1) Extended the reusable Metadata Adapters provided with the SDK. The new "prefilter_frequency" configuration parameter is now supported. 3.4.1 build 1322 (compatible with Server since 3.3.1 b1) Revised and clarified the Data Adapter interface requirements, in order to avoid possible issues due to a lack of synchronization. See the Data Adapter interface javadocs for details. Revised the sample StockListDemo Data Adapter source code accordingly. 3.4 build 1309 (compatible with Server since 3.3.1 b1) Introduced a new example Data Adapter, named StockListDemo_JMS_DataAdapter, which demonstrates getting data for the StockListDemo front-end from an external generator process, through JMS. 3.3.1 b1 build 1254 (compatible with Server since 3.3.1 b1) Current version upon introduction of Server 3.4 - Web Client 4.1 release. -------------------------------- SDK for .NET Adapter Development -------------------------------- 1.5.3168.20853 (compatible with Adapter Remoting Infrastructure since 1.2) Released on 23 Sep 2008 Extended the IMetadataProvider interface, according to the corresponding extensions on the Server Adapter Interface 3.5. Note that this breaks the compatibility of new Remote Metadata Adapters with the old versions of Lightstreamer. However, old Remote Metadata Adapters run by old versions of the .NET Adapter SDK still run with the new version of Lightstreamer Server and the Proxy Adapter. Extended the interface specifications, so that the basic support for multiple Data Adapters introduced in the Server since 3.5 is taken into account. Now, a Remote Metadata Adapter must manage inquiries for items that may pertain to different Data Adapters; however, the interface has not been extended to carry Data Adapter information (this will not be performed until the next major release). Hence, the Remote Metadata Adapter must be able to answer to the inquiries based on the item name only. Revised the API documentation. Revised the deployment details of the included example. Extended the included StockListDemo Adapter Set example; added an alternative deployment of the Proxy Adapters that uses the new RobustNetworkingDataProvider included in Adapter Remoting Infrastructure version 1.2 (see the "Deployment_LS(robust)" subdirectory). Extended the log of the initialization phase. 1.3.2960.18717 (compatible with Adapter Remoting Infrastructure since 1.1) Released on 11 Feb 2008 Revised the API documentation. 1.3.2893.27841 (compatible with Adapter Remoting Infrastructure since 1.1) Released on 6 Dec 2007 Removed the burst.cs source file from the sample source files in DotNetStockListDemo\src_data_adapter; the example was not part of the StockListDemo Data Adapter. 1.3.2837.24089 (compatible with Adapter Remoting Infrastructure since 1.1) Released on 9 Oct 2007 Removed the deployment case based on the "piped" mode from the Remote StockListDemo Adapter example included. Only the standard "socket" mode is now shown. 1.3.2819.29975 (compatible with Adapter Remoting Infrastructure since 1.1) Removed a locale-dependent date formatting in the provided StockListDemo example, which might cause compatibility issues with some of the provided example clients. 1.3.2798.29601 (compatible with Adapter Remoting Infrastructure since 1.1) Simplified the LiteralBasedProvider.cs sample code. 1.3.2795.18928 (compatible with Adapter Remoting Infrastructure since 1.1) Improved the custom adapter initialization through the MetadataProviderServer and DataProviderServer classes, by using empty hashtables as the default to be supplied for the adapters Init call. Added checks for null item lists or field lists returned by GetItems or GetSchema. 1.3.2747.24605 (compatible with Adapter Remoting Infrastructure since 1.1) Added a version of the library identified with a "strong name". This, among other benefits, makes it possible to register the DLL in the Global Access Cache. See the SDK README.TXT for details. 1.3.2746.18556 (compatible with Adapter Remoting Infrastructure since 1.1) Fixed a bug that prevented the use of null values in the update events; actually, they are allowed, though just considered as missing fields. 1.3.2725.16801 (compatible with Adapter Remoting Infrastructure since 1.1) Fixed a bug in the Adapter initialization phase, which might cause an Adapter with a slow Init() method to be used before Init() termination. Propagated to Start() any exceptions thrown in the Init() method; previously, they were notified to the custom asynchronous exception handler. Added a DEBUG level log for all request, reply and notify lines (see the sample exe.config configuration files). 1.3.2641.18418 (compatible with Adapter Remoting Infrastructure since 1.1) Extended the Server abstract class, which offers the support for custom Remote Server main programs. Custom exception handling is now possible. Revised the StockListDemo sample code and sample deployment, in order to add the demonstration of a sample custom server. 1.2.2613.30708 (compatible with Adapter Remoting Infrastructure since 1.1) Revised and clarified the Data Adapter interface requirements, in order to avoid possible issues due to a lack of synchronization. See the Data Adapter interface documentation for details. Revised the sample StockListDemo Data Adapter source code accordingly. 1.1.2488.16523 (compatible with Adapter Remoting Infrastructure since 1.0) Current version upon introduction of Server 3.4 - Web Client 4.1 release. --------------------------------------- SDK for Adapter Remoting Infrastructure --------------------------------------- 1.2 build 34 (compatible with Server Adapter Interface since 3.5) Released on 23 Sep 2008 Extended the "Notify User", "Notify New Session", "Get Items" and "Get Schema" methods on the Metadata Provider Protocol, according to the corresponding extensions on the Server Adapter Interface 3.5. All new arguments have been added on the end. Note that this breaks the compatibility of new Remote Servers with the old versions of Lightstreamer Server. However, old Remote Servers are still supported by the new Lightstreamer Server as long as the Proxy Adapter is not upgraded; in fact, the new Lightstreamer Server still supports older Proxy Adapters. Extended the protocol specifications, so that the basic support for multiple Data Adapters introduced in the Server since 3.5 is taken into account. Now, a Remote Metadata Adapter must be aware that it may have to manage inquiries for items that may pertain to different Data Adapters; however, the Metadata Adapter communication protocol has not been extended to carry Data Adapter information (this will not be performed until the next major release). Hence, the Remote Metadata Adapter must be able to answer to the inquiries based on the item name only. Introduced the RobustNetworkedDataProvider, a new version of the Proxy Data Adapter which includes the management of the unavailability of the Remote Data Adapter. See the sample configuration file under the SDK's conf/sockets(robust) directory for details. Removed caching of the "Get Items" and "Get Schema" calls results. This can be considered as a bug fix, since returning different values upon subsequent calls of "Get Items" or "Get Schema" with the same arguments is allowed. This may cause an increase of "Get Items" and "Get Schema" calls to the Remote Server, though this is limited to calls with the same user name. Changed the order of opening of the server sockets for the Networked Proxy Data Adapters. The NotifySocket is now opened first. This fixes a bug in the Remote .NET Server, which could lead to a race condition. Changed the name and format of the included build and version number files. Extended the log of the initialization phase. 1.1 build 25 (compatible with Server Adapter Interface since 3.3.1) Released on 9 Oct 2007 Improved internal cache management of user profile data. 1.1 build 24 (compatible with Server Adapter Interface since 3.3.1) Revised some exception messages. 1.1 build 23 (compatible with Server Adapter Interface since 3.3.1) Tested the Proxy Adapter for compatibility with the new version of log4j libraries used for the Server (1.2.15). 1.1 build 22 (compatible with Server Adapter Interface since 3.3.1) Revised the protocol and the protocol documentation. Some update event notifications have been eliminated, as not really different than the "Update by Map" notification. They are still temporarily supported by the Proxy Adapter. Added examples of Proxy Adapter configuration. Such examples were mistakenly missing until now. Changed the management of the server sockets used to accept the connections from the Remote Servers. The server sockets are now closed after the Remote Server connections have been established. Added timeout checks also for the requests performed asynchronously. This may cause FailureException returned by slow subscribe/unsubscribe requests to be ignored. 1.1 build 21 (compatible with Server Adapter Interface since 3.3.1) Improved the performance in case of a burst of subscriptions. 1.1 build 19 (compatible with Server Adapter Interface since 3.3.1) Fixed a bug that might cause a misleading exception to be reported in case of high subscription load. 1.1 build 17 (compatible with Server Adapter Interface since 3.3.1) Revised the error management for base64 decoding. 1.1 build 16 (compatible with Server Adapter Interface since 3.3.1) Improvement on the Adapter performances. 1.1 build 15 (compatible with Server Adapter Interface since 3.3.1) Improvement on the Adapter performances. 1.1 build 13 (compatible with Server Adapter Interface since 3.3.1) Extended the remoting protocol, in order to enforce the association of each update notification with a specific subscribe request instance. See the remoting protocol documentation for details. Fixed a bug that might cause unexpected behavior, in the (unlikely) event of fast subscribe-unsubscribe or unsubscribe-subscribe sequences. 1.0 build 12 (compatible with Server Adapter Interface since 3.3.1) Improved the initialization phase, to manage the case in which the Remote Adapter produces update events before any subscription (this may make sense in some cases, though the updates are ignored). 1.0 build 10 (compatible with Server Adapter Interface since 3.3.1) Current version upon introduction of Server 3.4 - Web Client 4.1 release. ------------------------------ SDK for Web Client Development ------------------------------ 4.3 build 1346 (compatible with Server since 3.5) Released on 23 Sep 2008 Extended the Table interface in order to take advantage of the support for multiple Data Adapters on the same session, introduced in Lightstreamer Server with version 3.5. See "setDataAdapter" on the JSDocs for details. Added error code 17 to the "onServerDeny" event handler to notify request refusal because the requested Data Adapter was not found. Extended the "onServerDeny" event handler so as to include table information. Added error code 2 to the "onServerError" event handler to notify request refusal because the requested Adapter Set was not found. Added error code 29 to the "onServerDeny" event handler to notify special cases previously included in the code 24 case. Introduced the MultiMetapush tables. See the new "MultiDynaMetapushTable" class and the "setCommandLogic" method for the "NonVisualTable" class in the jsdocs for details. An extension to the field naming conventions is needed for fields from a MultiMetapush table; this applies to many methods where field names/indexes are involved. Extended the onServerDeny and onLostUpdates event handlers specifically for the MultiMetapush case. Introduced the setServerUrlPath method, to use a customized URL path for requests to the Server. The same URL path should be configured on the Server through the new configuration element. Extended the "createEngine" function in order to make it possible to suppress the default handling of the "status change" event. Previously, it could only be disabled after Engine loading. See the jsdocs for the "PushPage" class for details. Changed the default for the setPollingInterval method from 500 to 0 ms. This means that pure "asynchronous polling" (a.k.a. "long polling") will be adopted by default when polling is selected. In other words, by default the polling cycle follow each other with no pauses on the client side, only subjected to pauses on the server side. Disabled the recovery of streaming connections that are buffered in the initial part when the data flow is finally received. Added the setBufferedStreamingHandled method in the Policy object to allow the mechanism to be enabled. Revised the slowing algorithm. In case slow client processing is detected on streaming sessions, switch to smart-polling is now performed. In case slow processing is detected on polling sessions, the polling is slowed down. The slowing algorithm is now enabled by default. Fixed a bug on the Engine migration algorithm, which might prevent successful engine recovery in specific cases. Also improved the algorithm in terms of speed. Fixed a bug which might prevent session sharing from working correctly when two applications coming from different domains define their own Engine pages with the same name (however, domain restrictions still prevented a Push-page from accessing the wrong Engine page). Serialized the onEngineReady and onEngineCreation events with data events, so that they cannot be issued before data events coming through the involved Engine instance. Added checks to ensure that the unsubscription requests to the Server related to closed non-master push-pages are done in short time. Fixed a bug on the "autoscroll" support for Dyna tables, which affected scroll bar positioning. Fixed a bug that might cause the setClearOnDisconnected setting not to be honoured. Fixed a bug on table names handling, which might cause incorrect management for non-alphanumeric table names. Fixed a bug that might prevent screen table reuse from working correctly. A second addTable call on the same table ID could throw an exception in case some cell was dynamically removed in the meantime and one of setClearOnAdd/Remove/Disconnected was called with true. Fixed a bug that might cause wrong subscription requests to be issued to the Server in case of a fast remove-add sequence of the same table. Fixed a small memory leak after table removal. Fixed some spurious occurrences of the "createEngine() has already been called" and "Unable to find the Engine" debug alerts. Fixed an issue with some spurious entries generated in the browser history at Engine loading. This was only observed with multiple Push-Pages on the same frameset. Extended the client alert messages about exceptions thrown in a custom callback. The exception stack trace, where available, is now included. Added checks to cross-frame accesses to avoid javascript errors during the browser shutdown transient. Fixed a bug with no effect on the front-end operation; the bug only happened for some browsers and manifested itself by issuing a request to the Server for the "lsblank.html" page with a wrong path. Addressed a compatibility problem with Firefox browser that prevents the "SHARE_SESSION" policy on "createEngine" from working when different application instances come from different hosts, despite the domain setting. The "NEW_SESSION" policy is now automatically applied in those cases. Addressed a compatibility issue with Firefox 3, which might prevent or delay engine loading upon page refresh. Addressed a compatibility issue which might affect fading effects on Safari browser. Addressed a compatibility issue with Safari for the iPhone. Improved the Engine initialization phase on Safari 3.1. Addressed a compatibility issue with Internet Explorer 5.5 and Opera 7.54, by which createEngine could only be called in the static part of the page. Ensured compatibility with the new Opera 9.5 browser (while older library versions are not compatible). Ensured compatibility with the new Google Chrome browser. Put a check to avoid sending bandwidth requests on rebinds to a session that is supplied by a Server whose Edition does not allow it. Changed the "UNLIMITED" constant for "setMaxBandwidth" to "unlimited". However, the constant is recognized in a case insensitive way. Limited the cases for the warning about multiple instances of the same application; removed some not significant cases. Added checks on the supplied engine name in createEngine; if any character is not allowed, a client error is issued. Extended the support for URLEncoding request values. Any UTF-8 character can now be used in names (e.g. item names, passwords, send message arguments). Improved the demo front-ends and added new ones. Removed the demo deployment examples from the "examples" folder as now all demos are pre-deployed into the Server. Ported the included demos to the new preconfigured Adapters deployment. 4.2.3 build 1329.12 (compatible with Server since 3.4.6) Released on 6 Mar 2008 Extended the NonVisualTable in order to better manage items subscribed to in COMMAND mode. See setCommandLogic in the jsdocs for details. Revised the documentation of UpdateItemInfo, which was not clear about the command logic behaviour. Revised the documentation of group, schema, item and field descriptors; fixed documentation errors about descriptors for extra fields. 4.2.2 build 1329.9 (compatible with Server since 3.4.6) Released on 11 Feb 2008 Fixed a bug that might cause the getTables method on a PushPage object to fail with an exception. 4.2.2 build 1329.7 (compatible with Server since 3.4.6) Released on 4 Jan 2008 4.2.2 build 1329.6 (compatible with Server since 3.4.6) Fixed a compatibility issue with Internet Explorer 6, which affected cookie management and could prevent multiple application istances from finding an engine to share when "SHARE_SESSIONS" was specified in "createEngine". 4.2.2 build 1329.4 (compatible with Server since 3.4.6) Released on 22 Nov 2007 Fixed a bug, introduced in build 1323, which caused the "onClientAlert" and "onServerError" event handlers to be called with wrong values for the arguments. 4.2.2 build 1329.3 (compatible with Server since 3.4.6) Revised the implementation of the access to the Master Push-page from a Push-page starting in a newly created popup. Under particular conditions, the access could fail on Internet Explorer. Reduced the occurrences of the "Unable to find the Engine" debug alert to only signal when the Engine has not been found after a significant time has elapsed since page start. 4.2.2 build 1329.1 (compatible with Server since 3.4.6) Released on 15 Nov 2007 Changed the format of the included build.number file. Changed the management of the case in which an active session is closed on the Server side. The event is now notified to the onServerError event handler; error codes from 30 to 39 have been reserved for these notifications. As a consequence, the default handling is to issue an alert and the status is set to DISCONNECTED, without any recovery attempt. Added new methods to notify the client of some load balancing details. See "getSessionServerName" and "getSessionServerAddress" in the jsdocs for the LightstreamerEngine class for details. Fixed a bug on Safari compatibility management which prevented reconnections after disconnections from working correctly on Safari. 4.2.1 build 1329 (compatible with Server since 3.4.2) Addressed a compatibility problem with Opera browser, which prevents the "SHARE_SESSION" policy on "createEngine" from working when different application instances run on different windows. The "NEW_SESSION" policy is now automatically applied in those cases. 4.2.1 build 1328 (compatible with Server since 3.4.2) Fixed a bug that prevented full reentrancy support in onClientError and onStatusChange; now any API method can be called from inside any event handler. 4.2.1 build 1323 (compatible with Server since 3.4.2) Introduced the "Engine migration" feature, which provides automatic recovery from Engine closure when the SHARE_SESSION policy is used for Engine creation. This brings a number of consequences, some of which may pose small backward compatibility issues: - Upon migration, no call to onEngineCreation is performed; the Engine object supplied to onEngineReady has been automatically configured based on the last available state of the previous object. This is limited to the SHARE_SESSION case. - The "isMasterPushPage" method has been introduced, to make it possible to identify the Master Push-Page also in case of migration. This is not limited to the SHARE_SESSION case. - After migration, any page may have become the Master Push-Page, even a page which, on starting, called "seekEngine" rather than "createEngine". This is limited to the SHARE_SESSION case. - As event handlers for the Engine object are not restored upon migration, they should not be set in onEngineCreation, but only in onEngineReady; handlers that should be specific for the Master Push-Page can be set after testing for "isMasterPushPage". This is limited to the SHARE_SESSION case. - The Engine object supplied to onEngineCreation and onEngineReady is now a local proxy; it is different than the object that can still be accessed through the deprecated "lsengine_config.js" and "getEngineReference". This is not limited to the SHARE_SESSION case. - The received Engine object only shows the event handlers locally defined on the Push-Page; the initial value of the handlers is "undefined". This is not limited to the SHARE_SESSION case. - Any page can now set event handlers for the Engine object and handlers set by different pages are all executed, each in the local Push-Page context; only if no handlers are defined for an event, a default handler is executed in the Engine page context. This is not limited to the SHARE_SESSION case. Removed the documentation of the methods that were deprecated upon introduction of the 4.2 version. 4.2 build 1320 (compatible with Server since 3.4.2) Fixed a compatibility issue with Internet Explorer, which could prevent the correct page initialization when the library "js" files were included inside the page body element. Fixed a bug that, under particular conditions, might cause a call to "onEngineReady" to receive a not fully initialized LightstreamerEngine object. 4.2 build 1319 (compatible with Server since 3.4.2) Fixed a compatibility issue with Safari browser, which could bring the focus to the master pushpage when session rebind occurred. Fixed a bug that could prevent the stream-sense algorithm from behaving correctly with Safari browser. Added a check to prevent possible browser-originated duplicated messages upon sendMessage calls. The check is effective since Server version 3.4.4 build 1371. Extended the setRemoteAlertsOnClientError method to add optional limits on the length and overall number of messages to be sent to the Server. 4.2 build 1318 (compatible with Server since 3.4.2) Fixed a bug that might cause some onEngineLost event handler calls to be lost when immediately followed by the subsequent onEngineReady call. 4.2 build 1317 (compatible with Server since 3.4.2) Fixed a bug on the management of the ScrollTable, which caused cell value formatting, set through onChangingValues, to be lost upon scrolling. 4.2 build 1316 (compatible with Server since 3.4.2) Improved the library startup phase, by eliminating some unnecessary page requests; this also eliminates a problem, related with uneven session requests distribution, observed with some load balancers. 4.2 build 1314 (compatible with Server since 3.4.2) Assured the compatibility with the OpenAjax Hub 1.0 4.2 build 1312 (compatible with Server since 3.4.2) Added the onClientAlert event handler, which gives the application control over the notification to the user of critical conditions, related to its environment, that prevent the application from working. See the jsdocs for the PushPage class for details. 4.2 build 1309 (compatible with Server since 3.4.2) Added the support for the Server configuration element, introduced in Server version 3.4.3. 4.2 build 1308 (compatible with Server since 3.4.2) Revised the Server denomination in some error and notification messages. 4.2 build 1307 (compatible with Server since 3.4.2) Revised the management of the debug alerts and onClientError notifications in the startup phases. The initial setting for debug and remote alerts on the Engine page is now inherited from the Master Push-Page. Error notifications occurring before Engine page or Push-Page initialization are now buffered and sent to the proper listener upon initialization completion. 4.2 build 1306 (compatible with Server since 3.4.2) Fixed a bug that limited the StreamSense behaviour under Safari 1.x. Restricted the "seekEngine" behaviour in order to prevent a Push-Page from linking to an Engine page created by a different instance of the same front-end application if the "onSimilarEngineFound" argument passed to the "createEngine" method was "FAIL" or "NEW_SESSION". In these cases, it is mandatory that a pointer to a reference Push-Page is provided to "seekEngine", in order to link to a suitable Engine. 4.2 build 1302 (compatible with Server since 3.4.2) Added new utility methods to the LightstreamerEngine object. See "getPushPages" in the JSDocs for lsengine.js and "getWindowReference", "getClassName", "getTables" in the JSDocs for lspushpage.js for details. Revised the way in which the Engine is added to the front-end. The "setEngineReference", "loadEngine", "loadEngineMinimal" and "getEngineReference" methods have been deprecated in favour of the new "createEngine" and "seekEngine" methods. The "onEngineCreation" event handler has also been added in support of "createEngine". This also makes any direct reference to the "lsengine.html" page and to the "lsengine_config.js" configuration file deprecated. See the JSDocs for lspushpage.js for details. Revised the way in which conflicts on the Engine page are handled. This typically applies to situations in which the same Lightstreamer-enabled application is opened twice on the same browser instance. The concept of application name has replaced that of Engine name. In particular, the "getApplicationName" method now replaces "getEngineName". See also "createEngine" and "seekEngine" in the JSDocs for lspushpage.js for details. Changed the URLs used for the streaming connections to the Server. This should make it more evident, when investigating on the current loading activity on the browser, that a streaming connection is in place. 4.1.1 build 1300 (compatible with Server since 3.3.4) Improved security and vulnerability prevention. 4.1 build 1290 (compatible with Server since 3.3.4) Addressed an issue with Safari browser, in which an ongoing streaming page blocks all page load requests on any parent page (this only affects programmatic requests, not clicking the "refresh" button, for instance). A typical case is when replacing the main Push Page, which holds the Engine Page as an IFRAME. Now, calling changeStatus("DISCONNECTED") before requesting the new page load ensures the correct behaviour on all browsers. 4.1 build 1289 (compatible with Server since 3.3.4) Fixed an obfuscation bug which prevented the recently addede "onStart" event handler from being visible. 4.1 build 1286 (compatible with Server since 3.3.4) Revised and improved the StreamSense algorithm and the various mechanisms for the recovery after unexpected disconnections from the Server. 4.1 build 1284 (compatible with Server since 3.3.4) Addressed a compatibility problem with the KHTML browsers (e.g. Safari) that could cause the "getEngineReference" method to return a wrong value when called too early. Now, a null pointer will be returned in these cases, until a correct value could be returned. 4.1 build 1283 (compatible with Server since 3.3.4) Overcome a compatibility problem with Opera, that could prevent the full initialization of Pushpages defined as siblings of the Engine page. In fact, the "onload" event handler may not be called by Opera on such Pushpages. 4.1 build 1281 (compatible with Server since 3.3.4) Fixed a bug, introduced with build 1279, that affected the recovery with polling when streaming was not allowed, for applications where long user names were used. 4.1 build 1280 (compatible with Server since 3.3.4) Fixed a bug that affected visualization in case of visual tables with holes (i.e. tables with fields for which cells are defined for some but not all rows). Guaranteed the compatibility with TIBCO General Interface on all browsers. Added a lookup for the OpenAjax hub services; if found, the "Lightstreamer" prefix is registered. 4.1 build 1279 (compatible with Server since 3.3.4) Improved the mechanism of recovery after unexpected disconnections. If streaming was active, only streaming connection attempts will be tried. Improved the mechanism of recovery of subscription requests that don't reach the Server. Redundant requests (which may cause error notifies on the Server log) are minimized. 4.1 build 1273 (compatible with Server since 3.3.4) Improved the efficiency of the DOM manipulation. Found an issue about using the full hostname as the domain name in Internet Explorer. The issue was never observed before and might have been introduced by recent upgrades (possibly on the browser side). The issue has not been solved, as it should not impact production scenarios. Using the Web Server hostname as a subpart of Lightstreamer Server hostname should be avoided, though page redirections or similar techniques. 4.1 build 1272 (compatible with Server since 3.3.4) Fixed a bug that affected push cells that were defined with nested HTML markup, rather than just text, as their initial content. For such cells, the initial content were not correctly preserved at startup. Now, if HTML push is enabled for the related table, the initial content is fully preserved; otherwise, using nested HTML as the initial cell content is no longer supported. 4.1 build 1266 (compatible with Server since 3.3.4) Fixed a bug in the cell fading implementation that might, in case of big pages, cause a 100% CPU usage if cell fading were enabled. 4.1 build 1265 (compatible with Server since 3.3.4) Addressed an issue with memory allocation in Firefox. A pushing page, continuously changing the cell contents on the screen through a VisualTable subinstance, could cause Firefox to allocate a growing amount of memory. Now the memory growth is still present, but negligible. No growth of the memory usage has been observed with IE. 4.1 build 1264 (compatible with Server since 3.3.4) Fixed a bug on the getTable method of the PushPage class, which might, in some cases, raise a javascript error. 4.1 build 1261 (compatible with Server since 3.3.4) Added the "onStart" event handler on all Table objects, in order to notify that a table has been successfully subscribed to through the Server. It may also notify that the table has been resubscribed to, in case of connection restart. Addressed an issue with domain setting in Firefox. Setting the domain as being the same as the hostname is now possible. This technique can be used when Lightstreamer Server and the Web Server are on different ports of the same machine. Addressed a compatibility issue with Opera browser, gaining a slight performance improvement. 4.1 build 1258 (compatible with Server since 3.3.4) Fixed a bug that might cause very long subscription requests to be refused. Fixed a bug on the management of subscription problems that might, in case of slow connections, cause table subscriptions to be performed twice, with the second subscription replacing the first one. 4.1 build 1257 (compatible with Server since 3.3.4) Removed trailing compatibility conflicts with some javascript frameworks. Fixed a bug that might prevent the correct recovery of a ChartTable in case of stream connection recovery. 4.1 build 1255 (compatible with Server since 3.3.4) Introduction of Server 3.4 - Web Client 4.1 release. ------------------------------------------------- SDK for Flash/Flex Client Development (JS Bridge) ------------------------------------------------- 1.1 build 27.65 (Compatible with Web Client SDK version 4.3 build 1346) Released on 23 Sep 2008 Extended the FlashTable interface in order to take advantage of the support for multiple Data Adapters on the same session, introduced in Lightstreamer Server with version 3.5. Introduced the support for item and field name arrays as an alternative to groups and schema ids, already available in other client SDKs. The FlashTable constructor has been extended and so have been the FlashUpdateItemInfo methods and the FlashTable event handlers. See the jsdocs for details. Existing code is not affected by the extensions. Fixed a bug that might cause a javascript exception to be issued upon a change of status invoked by any page, after a page containing a FlashBridge was closed. Fixed a compatibility issue with Internet Explorer 7, which may prevent the "onStatusChange" event from being received by a non-master Push-page. Removed a compatibility issue with Safari browser, which might prevent the data from reaching the flash object. Ported the included examples to the new preconfigured Adapters deployment. Slightly changed the directory structure of the included examples. 1.0 build 18.48.12 (Compatible with Web Client SDK version 4.2.3 build 1329.12) Released on 6 Mar 2008 Ported to the current Web Client Library build. 1.0 build 18.48.9 (Compatible with Web Client SDK version 4.2.2 build 1329.9) Released on 11 Feb 2008 Ported to the current Web Client Library build. 1.0 build 18.48.7 (Compatible with Web Client SDK version 4.2.2 build 1329.7) Released on 4 Jan 2008 Ported to the current Web Client Library build. 1.0 build 18.48.4 (Compatible with Web Client SDK version 4.2.2 build 1329.4) Released on 22 Nov 2007 Ported to the current Web Client Library build. 1.0 build 18.48.1 (Compatible with Web Client SDK version 4.2.2 build 1329.1) Released on 15 Nov 2007 Changed the format of the included JsBuild.number and AsBuild.number files. Ported to the current Web Client Library build. 1.0 build 18.48 (Compatible with Web Client SDK version 4.2.1 build 1329) Ported to the current Web Client Library build. 1.0 build 18.47 (Compatible with Web Client SDK version 4.2.1 build 1328) Fixed a bug which prevented the creation of a flash bridge dynamically (i.e. after the page had been loaded). Added a check for the case in which the callbacks installed on the flash object cannot be accessed. This case now stops any operation by the flash object. Removed a compatibility issue with Opera browser, which prevented the data to reach the flash object. Ported to the current Web Client Library build. 1.0 build 18.36 (Compatible with Web Client SDK version 4.2 build 1317) Ported to the current Web Client Library build. 1.0 build 17.32 (Compatible with Web Client SDK version 4.2 build 1313) Ported to the current Web Client Library build. 1.0 build 17.31 (Compatible with Web Client SDK version 4.2 build 1312) Ported to the current Web Client Library build. 1.0 build 15.30 (Compatible with Web Client SDK version 4.2 build 1311) Ported to the current Web Client Library build. 1.0 build 15.28 (Compatible with Web Client SDK version 4.2 build 1309) Ported to the current Web Client Library build. 1.0 build 15.26 (Compatible with Web Client SDK version 4.2 build 1307) Ported to the current Web Client Library build. 1.0 build 14.21 (Compatible with Web Client SDK version 4.2 build 1302) Ported to the current Web Client Library build. 1.0 build 12.19 (Compatible with Web Client SDK version 4.1.1 build 1300) Ported to the current Web Client Library build. 1.0 build 11.9 (Compatible with Web Client SDK version 4.1 build 1290) Included in Lightstreamer distribution. ------------------------------------------------- SDK for Flash/Flex Client Development (Native AS) ------------------------------------------------- 1.1 build 33 (Compatible with Server since 3.5) Released on 23 Sep 2008 Extended the Table interface in order to take advantage of the support for multiple Data Adapters on the same session, introduced in Lightstreamer Server with version 3.5. In case an unexistent Data Adapter is specified, a ControlErrorEvent with the new error code 17 will be issued. Introduced the MultiMetapush tables. See the new "setMultiMetapush" method for the "VisualTable" class and the new "setCommandLogic" method for the "NonVisualTable" class in the asdocs for details. An extension to the field naming conventions is needed for fields from a MultiMetapush tables; this applies to many methods where field names/indexes are involved. Extended ControlErrorEvent and LostUpdatesEvent specifically for the MultiMetapush case. Extended the "NonVisualTable" class in order to better manage items subscribed to in COMMAND mode. See the new "setCommandLogic" method in the asdocs for details. Introduced the getOldFieldValue method in the NonVisualItemUpdateEvent class. Discontinued the return of the "UNCHANGED" special value from getFieldValue; the current value is always returned, as values can be recognized as being unchanged through the isFieldChanged method. Added a retry mechanism to handle subscription request problems. Added a new event, SubscriptionEvent, to provide notifications for successful subscriptions before the actual update flow. Improved the recovery from connection problems. See the new setRetryTimeout method in the ConnectionPolicy class. Disabled the recovery of streaming connections that are buffered in the initial part when the data flow is finally received. Added the setBufferedStreamingHandled method in the ConnectionPolicy class to allow the mechanism to be enabled. Fixed a bug on the "NonVisualTable" management, which caused the "getItem" method of all "NonVisualItemUpdateEvent" received to return an item index, even when an item name was available. Fixed a bug on URLEncoding of client requests. Requests with non-alphanumeric names (item names or user names, for instance) might be handled in a wrong way. Fixed a bug that caused the ControlConnectionErrorEvent not to be issued correctly. Introduced a logging engine that can be used to print internal client library log. See the com.lightstreamer.as_client.logger.Logger class. Ported the included examples to the new preconfigured Adapters deployment. Slightly changed the directory structure of the included examples. 1.0.1 build 24.11 (Compatible with Server since 3.4.4) Released on 6 Mar 2008 Fixed a bug which might prevent the connection recovery after a Server restart from working. However, the bug only manifested itself on "debug players". Ensured that any operation on the connection state (e.g. disconnections and new connections) can be performed while handling any event, without conflicts. 1.0.1 build 24.9 (Compatible with Server since 3.4.4) Released on 11 Feb 2008 Fixed a bug on the setKeyPolicy method of the VisualTable class, which only affected the case in which a number was supplied as either argument. Fixed a bug that caused "\u" patterns in the field values to be automatically expanded as "\uxxxx" unicode sequences. They should rather be preserved and made visible to custom code. Fixed a bug that might cause any connection retry to fail after the first attempt to connect to the Server had failed. 1.0.1 build 24.4 (Compatible with Server since 3.4.4) Released on 4 Jan 2008 Fixed a bug which prevented the notifications for lost events from being correctly forwarded to client code. Fixed a bug which might cause some update events to be lost in case of a burst of updates from the Server. Fixed a bug which prevented error responses upon stream or control requests from being correctly notified to client code. Revised the ControlErrorEvent event class; the reference to the involved Table object is now provided. 1.0 build 24 (Compatible with Server since 3.4.4) Released on 19 Oct 2007 Improved the included demo, in order to allow Server host, port and protocol to be configured without the need for a recompilation. 1.0 build 23 (Compatible with Server since 3.4.4) Included in Lightstreamer distribution. ---------------------------------- SDK for Java SE Client Development ---------------------------------- 2.3 build 1062 (compatible with Server since 3.5) Released on 23 Sep 2008 Extended SimpleTableInfo ("lsclient" interface) and Item ("lsproxy" interface) in order to take advantage of the support for multiple Data Adapters on the same session, introduced in Lightstreamer Server with version 3.5. In case an unexistent Data Adapter is specified, a PushServerException with the PushServerException.SERVER_REFUSAL error code will be returned upon subscription. Introduced the new HandyTableListener for the "lsclient" interface and added subscription methods based on it. The new listener gets rid of the special UNCHANGED values and supports COMMAND logic. Deprecated SimpleTableListener, ExtendedTableListener and FastItemsListener and the subscription methods based on them. Changed the supplied sample code to use the new listener. Deprecated the "topMaxFrequency" and "slowingFactor" members of ConnectionConstraints, used in both interfaces. Added a missing documentation for setRange, which is ignored for ExtendedTableInfo ("lsclient" interface). Ported the included examples to the new preconfigured Adapters deployment. 2.2.2 build 1054.3 (compatible with Server since 3.3.1) Released on 11 Feb 2008 Fixed bugs about the notifications to the ConnectionListener ("lsclient" interface). Failure of an internal rebind now causes onFailure instead of onDataError. The documented notification sequence pattern also contained a mistake. Added a check for an empty array passed to unsubscribeTables in "lsclient" interface. This prevents an error issued by the Server. Changed the format of the included build.number file. 2.2.2 build 1054 (compatible with Server since 3.3.1) Released on 3 Sep 2007 2.2.2 build 1052 (compatible with Server since 3.3.1) Fixed a bug on the bandwidth estimate feature of the "lsproxy" interface. 2.2.2 build 1051 (compatible with Server since 3.3.1) Fixed some bugs which prevented the correct working of the library when used by an applet. 2.2.2 build 1050 (compatible with Server since 3.3.1) Added a check that makes a trailing "/" in the "pushServerUrl" and "pushServerControlUrl" connection properties be managed. 2.2.2 build 1049 (compatible with Server since 3.3.1) Changed the default for the suggested response Content-Length for the streaming connections. Now, the size is no longer left as the server default, but it is set to a very long value (50000000). 2.2.2 build 1044 (compatible with Server since 3.3.1) Added a check to transparently split a batch of control requests if it would exceed the limit for the length of a request HTTP body configured for the Server. Server version 3.4.4 or greater is needed for this functionality to be enabled. 2.2.2 build 1045 (compatible with Server since 3.3.1) Restored the documentation, which, on the previous build, was corrupted. 2.2.2 build 1044 (compatible with Server since 3.3.1) Removed an outdated note on the SimpleTableInfo constructor documentation. 2.2.2 build 1038 (compatible with Server since 3.3.1) Current version upon introduction of Server 3.4 - Web Client 4.1 release. ---------------------------------- SDK for Java ME Client Development ---------------------------------- 2.1 build 110 (compatible with Server since 3.5) Released on 23 Sep 2008 Extended the SimpleTableInfo interface in order to take advantage of the support for multiple Data Adapters on the same session, introduced in Lightstreamer Server with version 3.5. Introduced the new HandyTableListener and added subscription methods based on it. The new listener gets rid of the special UNCHANGED values and supports COMMAND logic. Extended the supplied sample code to use the new listener. Revised the connection error management. Improved the recovery from connection problems. Changed the default retry timeout to 5000 ms. Disabled by default the recovery of streaming connections that are buffered in the initial part when the data flow is finally received. Added the setBufferedStreamingHandled method in the ConnectionPolicy class to allow the above mechanism to be enabled. No reconnection attempts are now performed after an explicit Server refusal for a session request (notified through onServerError). Notifications for errors upon requests for sending messages or changing bandwidth are now notified through onClientError rather than onServerError; the same applies to errors on unsubscription requests. Fixed an error in the javadocs; the closeConnectionInternal method on LSClient is not public. Added a missing documentation for setRange, which is ignored for ExtendedTableInfo. Fixed the deployment of the demo example. The provided jad file was supposed to reference to the provided jar file rather than the online demo jar, available in Lightstreamer website. Ported the included examples to the new preconfigured Adapters deployment. 2.0.2 build 101.10 (Compatible with Server since 3.3.1) Released on 6 Mar 2008 Ensured that any operation on the connection state (e.g. disconnections and new connections) can be performed while handling any event, without conflicts. 2.0.2 build 101.8 (compatible with Server since 3.3.1) Released on 11 Feb 2008 Added the setRetryTimeout method on the ConnectionPolicy class. This helps avoid connection attempt loops. Allowed the modification of the "isMidp2" flag on the LSClient class, but just for testing purpose. Improved the performances of the library. Fixed a bug which caused the setKeepAliveInterval method of the ConnectionPolicy class to be ineffective. 2.0.1 build 101.3 (compatible with Server since 3.3.1) Released on 4 Jan 2008 Revised the reconnection attempt loop after an unsuccessful connection attempt. A protection timeout after each connection failure has been added. Fixed a bug which prevented the interruption of the attempt loop upon a subsequent closeConnection. 2.0.1 build 101.2 (compatible with Server since 3.3.1) Fixed a bug which prevented the notifications for lost events from being correctly forwarded to client code. Fixed a bug which prevented error responses upon stream or control requests from being correctly notified to client code. Extended the SimpleTableListener and ExtendedTableListener interfaces with the onControlError method. Changed the format of the included build.number file. 2.0 build 101 (compatible with Server since 3.3.1) Released on 3 Sep 2007 2.0 build 100 (compatible with Server since 3.3.1) Changed the default for the suggested response Content-Length for the streaming connections. Now, the size is no longer left as the server default, but is set to 1000000. Added the setContentLength method to the ConnectionInfo interface in order to customize the Content-Length. Added a check to transparently split a batch of control requests if it would exceed the limit for the length of a request HTTP body configured for the Server. Server version 3.4.4 or greater is needed for this functionality to be enabled. Changed the package name of the supplied example source code. 2.0 build 88 (compatible with Server since 3.3.1) Included in Lightstreamer distribution. ------------------------------- SDK for .NET Client Development ------------------------------- 1.1.3169.20524 (compatible with Server since 3.5) Released on 23 Sep 2008 Extended the SimpleTableInfo class in order to take advantage of the support for multiple Data Adapters on the same session, introduced in Lightstreamer Server with version 3.5. In case a nonexistent Data Adapter is specified, a PushServerException with the PushServerException.SERVER_REFUSAL error code will be returned upon subscription. Introduced the new IHandyTableListener and added subscription methods based on it. The new listener gets rid of the special UNCHANGED values and supports COMMAND logic. Deprecated ISimpleTableListener, IExtendedTableListener and IFastItemsListener and the subscription methods based on them. Changed the supplied sample code to use the new listener. Deprecated the "topMaxFrequency" and "slowingFactor" members of ConnectionConstraints. Fixed the documentation of PushConnException, whose constructors are not public. Added a missing documentation for setRange, which is ignored for ExtendedTableInfo. Ported the included examples to the new preconfigured Adapters deployment. 1.0.2958.28575 (compatible with Server since 3.3.1) Released on 11 Feb 2008 Fixed bugs about the notifications to the ConnectionListener. Failure caused by problems during a rebind is now properly notified. The documented notification sequence pattern also contained a mistake. Added a check for an empty array passed to UnsubscribeTables. This prevents an error issued by the Server. Fixed a bug, which caused the default Adapter name to be "STOCKLISTDEMO" instead of null (which means the Server default). Fixed an issue in the API documentation, which suppressed all notifications about exceptions that can be thrown by API calls. Changed the default connection URL in the included demo. 1.0.2837.23804 (compatible with Server since 3.3.1) Released on 9 Oct 2007 1.0.2749.29308 (compatible with Server since 3.3.1) Added a check that makes a trailing "/" in the "pushServerUrl" and "pushServerControlUrl" connection properties be managed. 1.0.2747.29135 (compatible with Server since 3.3.1) Added a version of the library identified with a "strong name". This, among other benefits, makes it possible to register the DLL in the Global Access Cache. See the SDK README.TXT for details. 1.0.2739.27446 (compatible with Server since 3.3.1) Changed the default for the suggested response Content-Length for the streaming connections. Now, the size is no longer left as the server default, but is set to a very long value (50000000). 1.0.2735.20708 (compatible with Server since 3.3.1) Fixed a bug which might cause undesired delays while reading the updates from the socket stream. The delays only consisted in an unnecessary wait for the next packet; therefore, such delays were small and could be significant only with a low overall update rate, though still limited by the keepalive rate. 1.0.2721.23222 (compatible with Server since 3.3.1) Added a check to transparently split a batch of control requests if it would exceed the limit for the length of a request HTTP body configured for the Server. Server version 3.4.4 or greater is needed for this functionality to be enabled. Extended the PushConnException to include the origin exception. This may help diagnostics and recovery actions in the calling code. 1.0.2692.31072 (compatible with Server since 3.3.1) Temporarily disabled the reuse of HTTP connections in the .NET 2.0 library, as a workaround for a known limitation in .NET 2.0 HTTP implementation, which issues a connection error when an underlying attempt to reuse a kept-alive connection fails. 1.0.2657.23049 (compatible with Server since 3.3.1) Removed an outdated note on the SimpleTableInfo constructor documentation. 1.0.2547.16940 (compatible with Server since 3.3.1) Fixed a bug in the example StockListDemo client. Until now, the client did not consider the host and port command line parameters. 1.0.2453.20102 (compatible with Server since 3.3.1) Current version upon introduction of Server 3.4 - Web Client 4.1 release. ---------------------------------- SDK for Generic Client Development ---------------------------------- 3.5 build 1422 (compatible with Server since 3.5) Released on 23 Sep 2008 Extended the Control Connection protocol to the basic support for multiple Data Adapters introduced in the Server. A new request argument, "LS_data_adapter" allows the client to specify the name of the Data Adapter that supplies all the items in the requested table. Added an error case for streaming/polling connections in which the requested Adapter Set is not found (previously, an HTTP 500 error was returned). This may pose compatibility issues on old clients. Discontinued the LS_top_max_frequency and LS_slowing_factor request parameters and the related TopMaxFrequency and SlowingFactor return headers. However, old clients which use the above parameters and headers are still supported. Modified the meaning of the MaxBandwidth return header on the streaming and polling connection, which was not useful at all. The header is now always sent and it reports the server-side constraint (see the protocol documentation for details). This may pose compatibility issues on old clients. Fixed an error in the protocol documentation in paragraph 4.1: the Server answer does not contain space characters. Changed the examples included in the protocol documentation document. Now they are based on a local installation of Lightstreamer Server, rather than the installation running on Lightstreamer site. 3.4.8 build 1398 (compatible with Server since 3.4.6) Released on 6 Mar 2008 3.4.7 build 1395 (compatible with Server since 3.4.6) Released on 11 Feb 2008 Added an error case for attempts to rebind to a session that was created from an HTML client (previously, it was a SYNC ERROR case). Added an error case for control connections which fail because of some unexpected precondition (e.g. a delete of a nonexistent subscription). Previously, this kind of error gave rise to a generic error page and could stop the evaluation of an aggregated control request. 3.4.6 build 1393 (compatible with Server since 3.4.6) Released on 4 Jan 2008 3.4.6 build 1391 (compatible with Server since 3.4.6) Released on 6 Dec 2007 Fixed an error in the protocol documentation, in paragraph 4.6.3 The keyword for the "overflow" message, reported as "O", is actually "OV". Fixed an out-of-date reference in the protocol documentation, in paragraph 2.1.3 Removed spurious lines in the protocol documentation, in paragraph 4.1 3.4.6 build 1389 (compatible with Server since 3.4.6) Released on 22 Nov 2007 3.4.6 build 1385 (compatible with Server since 3.4.6) Released on 15 Nov 2007 Introduced the notification, upon session start, of the name of the server socket which handles a session request (the name is the one assigned through the or configuration element). 3.4.5 build 1376 (compatible with Server since 3.4) Fixed an error in the protocol documentation. The LS_requested_buffer_size, LS_requested_max_frequency and LS_snapshot parameter names for the "Multiple Window Mode" (paragraph 4.3.2) should be followed by a window counter. The related examples were also wrong. 3.4.4 build 1362 (compatible with Server since 3.4) Created a dedicated directory within Lightstreamer distribution (previously the documentation was at DOCs/SDKs root level). --------------------------------- SDK for JMX Extension Development --------------------------------- 3.5 build 1422 (compatible with Server since 3.5) Released on 23 Sep 2008 As a consequence of the introduction of the Adapter Sets, extended the search pattern of the "DataAdapterMBean" instances. See the DataAdapterMBean javadoc for details. Removed the (still not implemented) "getMetadataAdapter" and "getDataAdapter" methods in the SessionMBean; replaced them with the "getAdapterSet" method. Implemented the "getUsername" and the new "getAdapterSet" methods of the SessionMBean. Removed the (still not implemented) "TopMaxFrequency" and "SlowingFactor" settings. Removed the MonitorProvider.txt documentation file. As a consequence of the new support for including the monitoring Data Adapter in custom Adapter Sets, accessing monitor data through the "MONITOR" Adapter Set is now deprecated. 3.4.8 build 1398 (compatible with Server since 3.4) Released on 6 Mar 2008 3.4.7 build 1395 (compatible with Server since 3.4) Released on 11 Feb 2008 3.4.6 build 1393 (compatible with Server since 3.4) Released on 4 Jan 2008 3.4.6 build 1391 (compatible with Server since 3.4) Released on 6 Dec 2007 Improved the supplied documentation. 3.4.6 build 1389 (compatible with Server since 3.4) Released on 22 Nov 2007 3.4.6 build 1385 (compatible with Server since 3.4) Released on 15 Nov 2007 3.4.5 build 1373 (compatible with Server since 3.4) Added suitable documentation for the monitoring statistics which the Server makes available to external clients. 3.4.4 build 1366 (compatible with Server since 3.4) Revised the getDelayMillis method of the Load MBean. Revised the documentation of the getQueueStageHTTPAccept and getQueueStageHTTPSAccept methods of the Load MBean, which was not correct since version 3.4. 3.4 build 1298 (compatible with Server since 3.4) Current version upon introduction of Server 3.4 - Web Client 4.1 release.