Release notes for xmlBlaster (http://www.xmlBlaster.org) The "r99999" numbers are Subversion revision numbers. Changes for current svn ======================= o r16909 Java client library: Reject publish() etc. calls when state is DEAD o r16905 EmailDriver removed duplicate getAddressServer() o r16900 Updated to hsqldb_1_8_0_9 o r16897 First hack to tunnel callback of cluster master by re-using the slaves connection o r16888 Java: Fixed hsqldb shutdown in JdbcConnectionPool.java to release .lck file if (this.managerCount < 1) shutdown() to be discussed o r16885 Cluster code refactored o r16870 Cluster: Fixed parsing connect qos in cluster environment (supports now attributes) Renamed NodeInfo to NodeConnectQos o r16870 Java: Refactored protocol API connect(): removed explicit AddressServer argument (was redundant) Fixed SessionInfo.updateConnectQos() so the new connectQos is available during processing Passing now isAsync mode flag to avoid looping connection if connectQos is from client queue o r16838 Java: Fixed xmlBlasterAccess.leaveServer() client side memory leak o r16830 Clustering: Extended RoundRobin to properly handle domain routing with empty domain (support for acceptDefault and acceptOtherDefault) o r16804 Singleton approach to avoid race condition which could create two SessionInfo instances Avoid max number of sessions check when session is loaded from persistency during startup o r16817 Checkpoint plugin: Added client side Checkpoint client.publish.ack (used for cluster tracing) o r16809 Added extended JMX access to cluster configuration without shutdown (transient changes only) Changed to thread safe re-configuration during operation o r16803 Bugfix: Qos XML creation escaping properly illegal XML characters StatusQosSaxFactory/DisconnectQosSaxFactory/QueuePropertyBase/QueryQosSaxFactory/MsgKeySaxFactory o r16783 Bugfix: SOCKET with XmlScript markup (instead of XBF) configures now correctly from xmlBlaster.properties for callbacks and responses o r16780 Bugfix: Topic life cycle Changed topic creation state change to go directly to ALIVE on publish and not go over UNREFERENCED as this could trigger a DEAD inbetween if destroy delay is configured to 0 (or a small value) o r16779 Bugfix: DropIfNotDeliverable mime plugin: Fixed possible dead lock situation o r16766 Bugfix: A SaxParseException of a message QoS left the MsgQosSaxFactory in inconstent state and operation of xmlBlaster is broken as follow up parses can swallow QoS tags like o r16763 Force AjaxServlet to UTF-8 processing to support e.g. Umlauts o r16762 Servlet 2.4 API copied from apache-tomcat-5.5.23/common/lib" servlet.jar o r16757 The EventPlugin now sends emails asynchronously from a separate thread decoupled over a RAM based producer/consumer queue. This is to protect the xmlBlaster core against blocking or slow SMTP agents. See http://www.xmlblaster.org/xmlBlaster/doc/requirements/admin.events.html (mail.sendAsync) See http://www.xmlblaster.org/xmlBlaster/doc/requirements/protocol.email.html (asyncSendQueueSizeMax) o r16744 Incompatible change of security plugin I_Session: 1) Added method 'public ConnectQosServer init(ConnectQosServer connectQos, Map map)' You need to add a dummy implementation if you use an own security plugin: public ConnectQosServer init(ConnectQosServer connectQos, Map map) throws XmlBlasterException { return connectQos; } 2) Removed unused method public String init(String securityQos_literal) 3) The method public boolean verify(I_SecurityQos securityQos) can now throw an XmlBlasterException Session configuration in ConnectQos: maxSessions and clearSessions can now be controlled in a security plugin to behave for pubSessionId<0 and pubSessionId>0 differently. Remote configuration with ConnectQos is not yet implemented. See ConnectQosServer#setSessionLimitsPubSessionIdSpecific(boolean) o r16738 Extended remoteProperty handling from clients (similar to existing jconsole functionality) Create a remote property: java javaclients.HelloWorldPublish -oid __sys__remoteProperties -connect/qos/clientProperty[__remoteProperties] true -connect/qos/clientProperty[myProperty] AAAAAA -session.name OTHER/1 Access it: java javaclients.HelloWorldGet -clientProperty[__sessionName] OTHER/1 -oid __sys__remoteProperties Destroy it: java javaclients.HelloWorldPublish -oid __sys__remoteProperties -clientProperty[__sessionName] OTHER/1 -content clear o r16729 Added database dead lock recovery, on deadlock retry once. Added delegate for DB access to retry on dead lock situation (seldom case with SQLServer) Globales Setting (xmlBlaster.properties) to have old behaviour: xmlBlaster/useJdbcManagerDelegate=false Jdbc specific setting (only if above is true, else ignored) in JdbcStorage[MicrosoftSQLServer]: maxExceptionRetries=2 retrySleepMillis=0 Performance tuning hint: [ create index IX_DATAID ON XB_ENTRIES (XB_dataId) - improvment not tested] (The primary key must remain a compound key of xb_dataId and queueName) create index IX_QUEUENAME ON XB_ENTRIES (queueName) create index IX_CB_QUEUE ON XB_ENTRIES (prio DESC, XB_dataId ASC) create index IX_DURABLE ON XB_ENTRIES (durable) o r16722 Persistence queue/msgstore performance tuning Reduced query interaction to 1/3 on startup Cleanup for transient entries in one select on startup Reload of cached numOfEntries, numOfPersistenEntries and numOfBytes and numOfPersistentBytes is now done with one select o r16720 EventPlugin: Added $_{loginName} and $_{pubSessionId} support o r16718 Replication: Strings containing control chars (ASCII < 13) are now base64 encoded o r16712 EventPlugin: Sending now ConnectQos-remoteProperty for callbackState events o r16710 EventPlugin: Sending now ConnectQos-remoteProperty preparsed in Login/Logout event clientProperty o r16708 EventPlugin: Added recursion detection for subscribe/unSubscribe events Added clientProperty '_url' for XPath use case o r16706 EventPlugin: Added client properties to event from SubscribeQos and UnSubscribeQos o r16702 Fixed MsgUnit - Qos XML markup: escape not allowed chars o r16693 Fixed XPath query multi threading bug, reported by John Horner 2008-01-12 o r16689 Added recursive flag to filewatcher (to scan directories recursively). o r16676 C++ client library: Added ~ConnectQosData() because of crash on MacOSX o r16674 When an exception occurs in the update method it was converted to a COMMUNICATION and the original information was lost: now it is passed as embedded. o r16660 Catching client side exceptions of type other than user.* and communication.* and converting them to "user.update.internalError" o r16657 Fix to not shutdown xmlBlaster for severe client side exceptions during callback Problem could not occure for Java or C++ clients o r16654 Dead message generation: Now detecting 'isErrorHandled' specific for each queue instance (and not only for each MsgUnit). o r16652 C++ Implemented same I_PostSendEvent error handling as in Java Changes for 1.6.2 [2007-12-03] r16646 'Openroads' ================================================= o r16639 Implemented I_PostSendListener for java clients and server to get notification on *asynchronous* send messages from queue: 1. postSend() delivers the ReturnQos 2. sendingFailed() delivers the Exception Fixed java client: Now toDead() is called for all erroCodes despite communication The previous code called toDead() only for user exceptions. o r16630 C++ client now compiles with xerces 2.8 (64bit or 32bit) o r16621 The FileWatcher and FileWriter can be managed by the HTML based replication monitor (similar to the database replication) o r16621 FileWatcher plugin for Java (supporting streaming mode for huge files) http://www.xmlblaster.org/xmlBlaster/doc/requirements/contrib.filewatcher.html o r16614 FileWriter plugin for Java and C++ (supporting streaming mode) http://www.xmlblaster.org/xmlBlaster/doc/requirements/contrib.filewriter.html Note: Incompatible rename from Reveiver to FileWriter (attrib names changed as well) o r16601 Added Scheduler Plugin: it is now possible to define operations to be scheduled. see http://www.xmlblaster.org/xmlBlaster/doc/requirements/contrib.scheduler.html o r16586 Added ServerScope (if any) object to Global when cloning Global o r16582 Added streaming publisher (which chunks big messages into smaller chunks) o r16561 Memory leak fix for EventPlugin, it was introduced about r16357 (EventPlugin notification when queue threshold is reached) o r16532 Logging with XbFormatter: Changed to use ISO 8601 date and time for logging o r16531 Added Checkpoint plugin to support tracing the message flow with customized log files See http://www.xmlblaster.org/xmlBlaster/doc/requirements/admin.checkpoint.html for usage details (and xmlBlasterPlugins.xml to activate it and logging.properties to configure amount of details logged). See javadoc of xmlBlaster/src/java/org/xmlBlaster/util/checkpoint/Checkpoint.java o r16528 Adjustable SmtpClient mail timeout (see xmlBlasterPlugins.xml example) 3600000 600000 o r16518 C++ Fixed putToQueue(): Now always if POLLING or other messages in queue o r16510-r16514 C++ I_PostSendListener introduced You can now be notified after a message from client side tail back queue has been send to xmlBlaster (e.g. to access the real PublishReturnQos) See PublishDemo.cpp postSend() as an example o r16506 C++ Timestamp: Fix for time going backwards o r16500 C++ RamQueuePlugin: Fixed typo which prevented sending limited maxNumOfEntries r16501 C++ ConnectionsHandler: Each tailback msg send from client queue is now instantly removed from queue (no bulk acks) o r16493 Dead lock fix between callback ping and reconnect thread (reported by Xavier) Now all threads enter the syncs hierarchical over the DispatchManager o r16471 contrib: incompatible interface change in I_ResultCb: needed to make alter table recreate the trigger on the master side of a replication o r16469 removed double spanning of poll timer when going from ALIVE to POLLING o r16467 Replication: fixed in trigger timestamp is always using '.': was using locale punctuator resulting in an exception on the writing side. Also made writer more tollerant (would handle a comma now) o r16457 Continue loading sessions from persistence even if one fails (e.g. because of changed authentication) TODO: Implement generic approach to handle such sessions (security plugin should grant access if coming from persistent store). o r16449 JMX control - Added SessionInfo getCbQueueBytes() and getCbQueueBytesCache() These are the bytes of the refence objects only (not containing the message itself) - Fixed allowedToReconfigureTopicAndFixWrongLimits() typo at: if (currentMaxEntries > historyProps.getMaxEntries()) - Added reportMemoryOverview() and reportMemoryOverviewToFile(String file) on node level - Added I_Map: getNumOfCachedEntries and getNumOfCachedBytes Configuration of persistence/msgUnitStore/maxEntriesCache persistence/msgUnitStore/maxEntries persistence/msgUnitStore/maxBytesCache persistence/msgUnitStore/maxBytes and the history queue equivalents is now enforced on restart of xmlBlaster during persistent topic recovery Bugfix of checkConsistency(I_Map, fixIt, reportFileName) which reported leaks which probably weren't. o r16444 removed synchronized in CacheQueueInterceptorPlugin.clear since it caused a deadlock when clearing a callback queue and publishing messages at the same time o r16442 Fixed to avoid remote DNS hostname lookup if hostname given is raw IP Added to avoid DNS localHostname lookup if localHostname given is raw IP o r16430 EventPlugin: Added missing support for wildcards in event type callbackState client/*/session/*/event/callbackState o r16416 Bugfix XmlScript over SOCKET: Fixed to use configured parser on callback ping o r16411 Bugfix: Fixed XmlScript over SOCKET handling for incoming EOF See http://www.xmlblaster.org/xmlBlaster/doc/requirements/protocol.socket.html#script Changes for 1.6.1 [2007-08-02] r16408 ===================================== o r16405 Bugfix: Added automatical conversion to from Global to ServerScope for native publish calls to RequestBroker This had for example inpact when a EventPlugin configuration without a configured PublishQos was used. o r16404 Added DropIfNotDeliverable mime plugin: Drops messages if subscriber is in POLLING state See xmlBlaster/src/java/org/xmlBlaster/contrib/mime/DropIfNotDeliverable.java javadoc for details o r16400/16402 Performance fix: If more than ~1000 clients connect the login got very slow This scales now to several thousand clients without performance degradation o r16387 C-client library: Fixed SIGSEG and memory leak when the system has no more threads available Recovery of such a situation is now stable Changes for 1.6 [2007-07-25] r16384 =================================== o r16378 Fixed cluster swapping which could lead to 'MethodName: The given methodName=msg_xml is unknown' o r16371 C++ extension: Added xmlBlasterAccess.receive(oid, maxEntries, timeout, consumable) to peek/take messages from server side queues (history, subject and callback queue) see http://www.xmlBlaster.org/xmlBlaster/doc/requirements/engine.qos.queryspec.QueueQuery.html o r16359,16360 acceptWrongSenderAddress is now configurable using JMX/jconsole see http://www.xmlBlaster.org/xmlBlaster/doc/requirements/admin.errorHandling.html why you could need this o r16357 EventPlugin notification when queue threshold is reached o r16339 Added jconsole/JMX support to increase on a running system the maxNumOfEntries and maxNumOfBytes of a map (msgUnitStore), the changes are persistently and durable after a xmlBlaster re-start. Added threshold alarm events (e.g. 90% full) for msgUnitStore, see http://www.xmlblaster.org/xmlBlaster/doc/requirements/admin.events.html o r16332 fixed excessive CPU Usage due to short loops for logs in Execute (native cmd line invoker) o r16331 fixed hole which could generate a meat not found in postHandleNextMessages. Would only happen when using the I_MsgDispatchInterceptor plugin. o r16323 Added BlockingQueueWrapper: a wrapper around I_Queue to invoke blocking peeks o r16315 Fixed JDBC ping for MSSQLServer Fixed performance bottleneck when RAM part of CacheQueue is full o r16312 C client library avoids DNS lookup if raw ip4 address given o r16309 Added server timestamp (ISO, UTC, nano precision) to ConnectReturnQos: 2007-07-09 10:36:38.189000005Z o r16307 Extended C# client library for java like System.currentTimeMillis handling with C# DateTime o r16292 ClientProperties of ConnectQos can now be copied to remoteProperties, see See: http://www.xmlblaster.org/xmlBlaster/doc/requirements/interface.connect.html#remoteProperty o r16264 SocketUrl: changed the Exception to be a communication for cases where the host is temporarly unavailable. If you have a positive SessionId it will go in polling (as opposed to before where it went to dead) o r16283 Replication: Added property 'dbWriter.quoteColumnNames=false', set to true for DB2 host sinks (e.g. "COMMENT") o r16280 Replication: Bugfix in SqlRow.java to prevent double base64 encoded client properties for renamed columns o r16273 Added events for queue thresholds (subject- callback and history queues) o r16263 Contrib: changed I_Info.putObject implementations when passing null they now remove the entry as specified in javadoc o r16256 Replication: writer now uses and passes a cloned row (SqlInfo does not change). Invocation of I_PrePostStatement even for CREATE, ALTER and DROP. Added Attributes for descriptions created by metadata. o r16249 C client library, WINDOWS only: Bugfix: Added WSASetLastError(0) o r16243 Replication: Added configurable XSL transformation on DbWriter side, e.g. 'dbWriter.xslTransformerName=mydbtrans.xsl' Added readOnly flag when using SpecificReadonly o r16241 Replication: Added Oracle -> DB2 replication support o r16235 Replication: fixed msg counting when sending multiple transactions in one message o r16233 added reconfiguration of topic properties possible by re-sending an administrative message o r16231 embedded XmlBlaster: fix when specifying an alternative properties file o r16230 Parsing of xmlBlasterPlugins.xml has been modified to allow re-use of same attribute parser o r16222 Replication: Added readonly variant on source database with classical DbWatcher approach Added configurable 'dbinfo.url' to force another database for DBINFO table o r16207 Fixed replication loading of specific jdbc.drivers from specific properties files o r16203 Fixed admin.event plugin to escape illegal XML entities like '&' in send notification o r16195 Fixed PersistenceCachePlugin.getAll(I_EntryFilter) which could lead to duplicate intercept calls o r16193 Fixed topicId lookup in checkConsistency() o r16187 Fixed cluster client queue to have unique storageId Use -xmlBlaster/cluster/useLegacyClientQueueName true forces old behavior o r16185 Fixed using ServerScope in ConnectQos which used wrong ServerEntryFactor on client side o r16182 QueryQosData.java: Escape subscriptionId if it contains apos to avoid invalid XML o r16181 ServerEntryFactory.java: Changed to ignore case of type during persistence recovery o r16178 fix: failsave + authentication errors now kill the connection (they went in polling before) o r16170 EmbeddedXmlBlaster: changed the way the global is created since the embedded would otherwise use the default xmlBlaster.properties o r16168 Updated to ant-contrib/cpptasks from svn 2007-05-20 To try to resolve C/C++ compilation/runtime problems with Windows crazy manifest approach o r16164 C++ client library: Fixed generatedSubscriptionId to escape ' quote to prevent malformed QoS XML o r16145 added to get missing code to retrieve also props with no prefix (for example java.version) to Global o r16134 The setting 'java -DxmlBlaster/initClassName=mypackage.MyClass ...' allows to load an initial class instance directly after Main(String[]) o r16130 Extended SOCKET protocol plugin to immediately forward the EOF on client disconnect to support callback configurations with switched off pinging (e.g. mobile phones with high cost GPRS/UMTS). o r16109 Added switch -xmlBlaster/jmx/support false or -xmlBlaster/jmx/createSecurityManager false to support embedded EJB3 jboss plugin without loosing JMX jconsole support o r16078 Update to HSQLDB 1.8.0.7 from September 2006 o r16075 The SOCKET connection transports the client side IP address to the security plugins Extension by Xavier Roques Changes for 1.5.1 [2007-02-26] r16061 ===================================== o r16059 Bugfix: The queue entry reference counting could lead to leaked msgUnit entries on I_Queue.clear() calls o r16057 Removed invocation recorder, it was unused and deprecated o r16051/r16053 Bugfix: Support for r15953 subscriptionId in cluster environment o r16050 Prevent clients from using same login name as server cluster.node.id o r16045 C client library fix for Win32 and WinCE You can now pass raw IP address without DNS lookup o r16022 Bugfix C client library The disconnect is not oneway (see protocol.socket specification), this bug was introduced in r15972 2007-02-07. Fixed memory leak for unexpected reveived messages (does not happen in normal operation). Increased max. waiting on pending update threads to 10 sec (during shutdown). o r16022 Bugfix The new SessionName '/session/' tag introduced a subtle bug which could lead to failed reconnect on same session. This bug was introduced with revision r15523 o r16021 Bugfix & extension for administrative 'event/callbackState' It now fires on the initial login a "ALIVE" or "POLLING" event The subjectId and/or the publicSessionId can now be a wildcard "*". The connect and disconnect event now support wildcarded subjectId. See: http://www.xmlblaster.org/xmlBlaster/doc/requirements/admin.events.html o r15994 Added C and C++ project files for eclipse and VC++2005 See xmlBlaster/src/c/README and xmlBlaster/src/c++/README See xmlBlaster/demo/socket/README and xmlBlaster/demo/c++/README o r15980 C++ client library: Partially added support for WINCE Porting to MSXML and fixing errno.h in omnithread is missing o r15967-r15972 Mac OSX c client library compilation patch Changes for 1.5 [2007-01-28] r15961 =================================== o r15953 C++ and Java client library now create client side subscriptionId if pubSessionId>0 and multiSubscribe=false (fail safe operation). Like this we avoid returning a temporary subscriptionId if a subscribe is queued on client side (during POLLING). o r15949 made volatile all variables which are used in a double checked locking idiom (should be safe in new MEM Model as JDK 1.5) o r15934 Fixed java client library for changing client side IP address Reconnect is now supported. Security fix which allowed hijacking the callback address o r15930 Dead letter is now not containing ... anymore Is send already QoS o r15906 Switched off dynamically loadable plugins as a default setting. See http://www.xmlBlaster.org/xmlBlaster/doc/requirements/engine.runlevel.howto.html#dynamic o r15866 added the possibility to disable going to polling if a response timeout comes from a ping: use dispatch/callback/stallOnPingTimeout=true or/and dispatch/connection/stallOnPingTimeout=true. This property is passed in the AddressBase o r15851 C# client: Csharp support extended o Supporting C and C++ clients as unmanaged code on Windows CE and normal Windows o Supporting C# as managed code on Windows CE and normal Windows and Mono/Linux See http://www.xmlBlaster.org/xmlBlaster/doc/requirements/client.c.windowsCE.html See http://www.xmlblaster.org/xmlBlaster/doc/requirements/client.csharp.html o r15794 C++ client: Changed PublishReturnQos and SubscribeReturnQos in case of client side queueing to be identical to java client behaviour: state id="OK" (previously it was "QUEUED") state info="QUEUED (previously it was "") See http://www.xmlBlaster.org/xmlBlaster/doc/requirements/interface.subscribe.html#return o r15750 C client: Full Windows CE port (including pthreads 2.7.0 and zlib 1.2.3) See http://www.xmlBlaster.org/xmlBlaster/doc/requirements/client.c.windowsCE.html o r15742 C client: First runnable Windows CE port (without pthreads) Added: -DWINCE compiler define Open: Is there any getenv() for Windows CE?, how to handle errno.h? Changed: -DDLL_BUILD to -D_WINDLL __FreeBSD__ code in helper.c is probably broken (needs testing) o r15735 dispatch statistics are cleaned up on the client side on reconnect also, this fixes a failing reconnect in case the update had activities, the connection ping detected a stale connection and the update ping did not return. o r15733 Fixed introduced error when removing entries from queues where the metadata returned 0 for maxNumSequences. o r15727 C client: Finished port to VC8 with support for VC7 and VC6. o r15713 Cb ignores ping failure in case an update is blocking (no activity). On the client side however an exception is thrown to allow a reconnect o r15697 C++ client: Added client side queue accessor to xmlBlasterAccess->getQueue() o r15684 Fixed I_Queue.clear() of cache queue implementation It only removed the entries in the cache but now it correctly removes the swapped out persistent messages as well TODO: Add a testcase o r15682 Added java.sql.Connection delegate DebugConnection.java for advanced failure detection (contains assert code only) o r15644 Fixed htpasswd plugin for '*:' entries. This feature got lost during adding of authorization code (see r15446). Is now assured by testcase o r15643 Added experimental maxFetchSize to limit queries. Default to unlimited as before, example: QueuePlugin[CACHE][1.0]=org.xmlBlaster.util.queue.cache.CacheQueueInterceptorPlugin, persistentQueue=JDBC,transientQueue=RAM,maxFetchSize=100 o r15629 Added I_StreamingCallback which can be passed to an XmlBlasterAccess.connect. You can thereby read messages in streaming mode. A client side update queue having the same cfg as the client queue can be optionally used. Changes for 1.4 [2006-10-22] r15612 =================================== o r15591 FilePoller: Fixed file.delete() with a hack, it failed sometimes on Windows platforms o r15587 SQL92Filter plugin has as default now switched caching of prepared query off See http://www.xmlBlaster.org/xmlBlaster/doc/requirements/mime.plugin.access.sql92.html o r15582 Updated cup parser from 'CUP v0.10k Parser' to 'CUP v0.11a beta 20060608 Parser' o r15571 Changed I_SecurityQos interface to have exchangable SecurityQos for ldap,htpasswd,simple This allows changing the server side security plugin (from for example htpasswd to ldap) even if the client is not touched. o r15563 Bugfix: Thread/memory leak on clients with failed authentication and not closing the socket o r15562 Bugfix: NPE during callback of oneway messages o r15557 Added switch -xmlBlaster/useSessionMarker (defaults to false) To switch between old "client/joe/1" notation and new "client/joe/session/1" notation Default is again false to be backward compatible with older clients, should be changed to true on release 2.0 o r15556 Fixed C++ client to handle 'joe/2' or 'joe/session/2' or 'client/joe/session/2' syntax o r15549 Fixed the possible NPE in SocketConnection in case a client wants to use it directly. It can now read the cfg out of the Global properties too, thanks to Oliver Fels. o r15541 Fixed plugin load/unload/reload lifecycle, fixed plugin JMX re-registration o r15534 Added support for dynamically loaded plugins, the jar file is send in the message content See http://www.xmlBlaster.org/xmlBlaster/doc/requirements/engine.runlevel.howto.html#dynamic o r15525 added cleanup of reads in dispatch statistics when an exception occurs when writing to the socket (normally by pings). Without it clients would not reconnect if the exception occured when receiving messages. o r15524 Using now default XML parser of the virtual machine (usually no configuration is needed in xmlBlaster.properties anymore) o r15523 Changed default syntax from 'client/joe/1' to 'client/joe/session/1 Passing old notation is still supported o r15522 Added default XML parser / XSL settings for IBM JDK 1.4 and IBM JDK 1.5 o r15513 You can now send messages containing one plugin as in xmlBlasterPlugins.xml and this is dynamically added without xmlBlaster restart. Further configuration can be done over jconsole. Sending a jar file with plugin specific code is not yet implemented. Example: java javaclients.HelloWorldPublish -oid __sys__RunlevelManager -contentFile plugin.xml o r15511 Added support for runlevel plugin activation/deactivation from JMX / jconsole o r15506 Fixed C client library cast for Solaris Changes for 1.3 [2006-09-10] r15505 =================================== o r15504 Fixed NPE in CacheQueueInterceptorPlugin.removeQueueSizeListener() if queue is shutdown o r15490 Fixed JMS_REPLY_TO = "__jms:JMSReplyTo" to contain new introduced "__jms:" prefix o r15488 Fixed QueueQueryPlugin / receive() to support multiple blocking clients on same queue instance o r15485 added to MINSTR token for currentTime to the DbWatcher TimestampDetector o r15465 receive() leaking threads fixed: The I_Queue implementations now fire changed() in shutdown as well allowing the blocking queue query threads to return. Before the receive() threads were leaked if the queue disappeared as a notify was never triggered o r15459 Bugfix receive(): Could deadlock because of synchronize declaration in CoreHandler o r15446 htpassed plugin: Extended to support authorization on 'xpath:' and 'domain:' specific access o r15438 SOCKET protocol: Calling xmlBlaster core is now in a dispatched thread to support concurrent ping() and other method invocations. Fixes for example long lasting subscribes and blocking gets. o r15419 added dispatch statistic to client dispatcher and added bypass of ping in case there is a writing- or reading activity on that dispatcher. This fixes ping failures due to ongoing write/read operations o r15413 XmlRpc callback: Fixed to throw COMMUNICATION exceptions on ping or updateOneway failures and for update() exceptions thrown on server side o r15412 Prevent NPE if topicProperty is null o r15397 -Fixed dump to file (added out.close()) -Nicer, human readable dump conforming to XmlScript markup -Added reference counting check, see I_AdminMap.checkConsistency() and I_AdminNode.checkConsistency() -Fixed to activate destroyTimeout setting when administrative or coming from persistence on startup -Fixed eliminating topicHandler duplicates in persistent store during startup -Changed persistent messages to be transient for session callback queues with negative session ID as those wouldn't be found deterministic after restart o r15390 ConnectionPool now throws away Connection in case of an exception in the jdbc queue o r15381 C# client library: Added Csharp wrapper around xmlBlaster client C library (xmlBlaster/src/csharp/NativeC.cs) See http://www.xmlBlaster.org/xmlBlaster/doc/requirements/client.csharp.html o r15357 I_Entry.removed is now invoked outside synchronize in queues to avoid deadlock o r15348 Increased information density of server side logging (similar to good old org.jutils times) o r153xx I_Queue implementation: the toDestroyed() callback is now outside any synchronized o r15337 Property.java: when retrieving someCtx* only someCtx's childs where returned, now the exact match is returned too. o r15334 changed the threading pool of dispatcher since it was only using minimumPoolSize o r15326 Fixed spam prevention if client logs in after a PtP arrived in its callback queue (with forceQueueing=true) o r15323 Changed server side behavior on COMMUNICATION exceptions thrown actively from client side Accept now client side COMMUNICATION exception This should only be thrown by the client side low level protocol library on demand (e.g. on socket shutdownCbServer()) o r15313 htpasswd plugin extension: Added primitive authorization support based on method name and topic oid See: http://www.xmlBlaster.org/xmlBlaster/doc/requirements/security.htpasswd.html#authorization Changed to allow empty passwords (like "joe::") which grants access for joe o r15308 C client library: Removed pthread dependency when compiling single thread version with -DXB_NO_PTHREADS o r15294 Fix for XMLRPC protocol layer to transform all weired, client thrown exceptions into a "user.update.internalError" instead of a "internal.unkown" o r15293 Fix for SOCKET protocol layer to transform all weired, client thrown exceptions into a "user.update.internalError" instead of a "internal.unkown". (Is correctly done by IOR protocol) o r15280, r15288-r15290 Bugfix in xmlBlaster server-core (TopicHandler) Major redesign to handle race conditions: All access to a TopicHandler instance is no single threaded and done over TopicAccessor All access over reference counting / weak references is done as 'dirty read' Fixed double TopicHandler unregister on erase(false) o r15261 JMX invocations: Fixed invocation with none-String arguments, see See http://www.xmlBlaster.org/xmlBlaster/doc/requirements/admin.http.html#jmx o r15256 Fixed switching off erase notification, added test case Thanks to Brad Clements for reporting o r15250 XmlRpc callback (server side): Fixed recognition of COMMUNICATION errorCode to avoid going to DEAD when callback server of client disappeared temporary o r15244 EventPlugin: Added fix to only send JMX events when configured o r15234 Added java client side API methods for synchronous access: Access xmlBlaster server side queues MsgUnit[] receive(String oid, int maxEntries, long timeout, boolean consumable) The synchrnous request/reply pattern MsgUnit[] request(MsgUnit msgUnit, long timeout, int maxEntries) See I_XmlBlasterAccess.java o r15220 Added possibility to configure to send XmlBlaster script markup over the SOCKET protocol layer with all benefits like tunneling back, compression and SSL See http://www.xmlBlaster.org/xmlBlaster/doc/requirements/protocol.socket.html#script Fixed propress listener reporting in XbfParser.java o r15214 Email protocol now functional between cluster nodes, see example configuration xmlBlaster/demo/javaclients/cluster/email/README o r15207 Bugfix Java: The Callback QoS could loose the callback address due to a bug in the ConnectQos parser (e.g. when reloaded from persistence) o r15203 added ping qos to clientside ping (was ignored previously) o r15192 Added simple jmx framework for contrib plugins with a first implementation TimestampChangeDetector. o r15187 Fix to compile again for J2ME o r15170 Fixed NPE in TopicHandler (reported by David Kerry) o r15183 Added a swing console for arbitrary classes executions. Supports input and colored xmlBlaster highlighting of logs o r15179 Replication: on exceptions the connection was not thrown away from the pool. This has now been fixed. o r15177 Fixed responseTimeout pingResponseTimeout and updateResponseTimeout when negative o r15158 Fixed serverTimestamp on status.html o r15157 Bugfix disconnect(): Fixed clear session queue to be before shutdown o r15144 Bugfix C++ Corba only closeSocket(s) added because of handle leak reported by James Cazier o r15139 Bugfix for ant XmlBlasterTask: Closing file output streams o r15137 Bugfix killClient() does now properly destroy clients which have no session for example clients which came to live with a PtP message. o r15124 Added client property variant: ... to support base64 client properties of type String which are not UTF-8 encoded o r15093 Extended XmlScript with Like this XmlScript can be used with the request/reply pattern (useful as a ANT task) o r15055 RequestReplyExecutor.java returns now address.clone TODO - pass specific address of client for authentication o r15047 Added xmlBlaster ant task This allows to access xmlBlaster from within ant with the xmlBlaster XML scripting language See: http://www.xmlblaster.org/xmlBlaster/doc/api/org/xmlBlaster/contrib/ant/XmlBlasterTask.html o r15041 Patch from Balázs Póka which makes defensive cast to URLClassLoader Allows Java WebStart and none standalone apps. o r15038 Big topic DOM: Changed default encoding from ISO-8859-1 to UTF-8 This is configurable with -xmlBlaster/topicDom/encoding for backward compatible behaviour o r15037 Bugfix TopicHandler (multi threading issue) By Eugene Wu for topic going unintended into unreferenced for volatile messages o r15029 Corba xmlBlaster.idl testing 'wstring' instead of 'string' - Java client to java server works fine (encoding UTF-8, windows-1252 etc.) - Testing with mico 2.3.12 works fine only for 'string' The 'wstring' variant lost its QoS during connect() so we stay with 'string' o r15014 MX4J Adaptor could not find the necessary xsl in Windows. This issue is now fixed. o r15006 Added 'domain' to erase event o r15003 XPathFilter bugfix Does not throw exception anymore for not wellformed message content o r15002 Java client library methods added to I_XmlBlasterAccess - Added convenience method to send an administrative command to xmlBlaster String sendAdministrativeCommand(String command) - Added convenience method to switch callback dispatcher on/off void setCallbackDispatcherActive(boolean activate) o r14995 DbWatcher changes - Removed changeDetector.postUpdateStatement - Added converter.postStatement - Added changeDetector.ignoreExistingDataOnStartup o r14987,r14988 Refactored security framework - incompatible security interface change of interfaces I_Subject, I_Session, I_MsgSecurityInterceptor - isAuthorized is now a method of the I_Session instead of the I_Subject - isAuthorized gets now extended informations to be able to authorize on data instance level - importMessage() and exportMessage() have now extended arguments o r14985 Upgraded to jaxen-1.1-beta-8.jar from http://jaxen.org (2006-04-01) Removed in xmlBlaster/lib/xpath: saxpath.jar jaxen-core.jar jaxen-dom.jar Added xmlBlaster/lib/jaxen.jar o r14981 Extended MIME XPath filter: - Depending on the configuration the XPath can now query the QoS OR the message content The default is as before the message content - Optionally you can supply a XSL file name which is used to transform the message content (deprecated again) - The plugin type name is now dynamically determined to support multiple plugins http://www.xmlblaster.org/xmlBlaster/doc/requirements/mime.plugin.access.xpath.html o r14976 FileLocator handle now http:// and ftp:// and file: schemas to lookup configuration files http://www.xmlblaster.org/xmlBlaster/doc/requirements/util.property.html o r14974 Extended XPath filter FilePoller: Changed copyOnMove=true as default setting o r14974 FilePoller: Changed copyOnMove=true as default setting o r14973 FilePoller: Fix for case insensitive OS, Fix for failing renameTo o r14970 Added support for all JMX commands for our http/HTML native access, see requirement http://www.xmlblaster.org/xmlBlaster/doc/requirements/admin.http.html o r14956 changed repository structure for tags/branches and trunk and devorced it from other repositories. o r14952 RemoteProperties changed: Now new sent properties merge with existing ones - setting 'msgUnit.content=set' will overwrite existing remoteProperties (behaves as old version) Changes for 1.2 [2006-03-13] r14936 =================================== o r14921 The new JDK14 logging can now be controlled by telnet commands or JMX o r14918 Administrative commands - Added telnet support for 'session' class specified - Fixed Message command access with arguments o r14916 Admin-commands: Removed deprecated getNumSubscriptions and getSubscriptionList o r14914 Refactored common CORBA classes to org.xmlBlaster.util package o r14909 Cluster fixes - Setting retries=-1 as a default for remote cluster login - Default is now to not disconnect at the remote clusters during shutdown The old behavior can be forced by adding a tag. - Bugfix to not forward the '__persistenceId' marker client property from subscribeQos to the remote node - Fixed cluster example: Added SubscriptionPersistencePlugin to xmlBlasterPlugins.xml o r14874 - r14876 Added XmlBlasterException hook to react customized on XmlBlasterExceptions The default implementation (see Main.java) does an immediate exit of xmlBlaster for error codes defined, for example "-xmlBlaster/panicErrorCodes resource.db.unknown,resource.db.unavailable" The exit does not shutdown with the RunlevelManager but kills the instance immediately. You can add your own hook implementation (here MyHandler.java) with java -Dorg.xmlBlaster.util.I_XmlBlasterExceptionHandler=MyHandler org.xmlBlaster.Main -Changed to load signal catcher already in HALTED_POST o r14867 Added SocketGetter to the contrib package. o r14845 Removed jutils completely, if you have used org.jutils code in your clients please port it, for some time you can download jutils.jar from http://www.xmlBlaster.org/jutils.jar The XML dump shows some timestamps now in ISO_8601 format. o r14840 Renamed engine.Global to engine.ServerScope This is an incompatible change which touches low level native plugins only o r14812 - r14839 Incompatible changes from jutils logging to java.util logging. see helper script xmlBlaster/bin/convertJutilsToJavaLogging.sh o r14781 telnet access refactored, some access method names are changed, e.g. - getCbQueueEntries() -> getCallbackQueueEntries(String query) - "get topic/..." now access all I_AdminTopic methods o r14787 Consuming queue query - added consuming query for subject queue - added consuming query for history queue (telnet access not yet finished) see http://www.xmlblaster.org/xmlBlaster/doc/requirements/engine.qos.queryspec.QueueQuery.html o r14780 Extended telnet features (requirement admin.telnet) - Added support to invoke operations without bean-get/set convention - Added support for setters with multiple arguments, separated by '&' o r14779 Extended EventPlugin (requirement admin.event) - Extended to support configurable event sources additionally to heartbeat - New, configurable jmx/publish/smtp content "$_{xml}" o r14779 EventPlugin admin.event - Extended to support configurable event sources additionally to heartbeat - New, configurable jmx/publish/smtp content "$_{xml}" o r14777 Incompatible change of return markup of telnet commands The returned string is now plain without key/qos markup for text/plain requests. Changed to lookup operation methods without set prefix o r14772 Added transient map to SessionInfo to hold remote, client side properties; Extended EventPlugin to send remote, client side properties; Extended RequestBroker to capture topics of type '__sys__remoteProperties' o r14765 nested ClientProperties are now allowed in ClientProperties after fix in XmlQoSBase o r14756 email protocol: Added switch for 'addExpiresHeader' and JMX accessor Fixed 'breakLongMessageIdLine' for max 72 char per line and added JMX accessor o r14743 added ENCODING_FORCE_PLAIN to allow nested xml inside a ClientProperty o r14753 Added getPingRoundTripDelay() and getRoundTripDelay() for JMX or telnet observation o r14751 email protocol Removed xmlBlaster specific expires header 'X-xmlBlaster-ExpiryDate:' but keeping 'Expires:' Changed tag to be fully ISO 8601 date time formatting compatible like '1997-07-16T19:20:30.678Z' and is always UTC o r14741 Removed trim() for string ClientProperties o r14733 Added EraseKey and EraseQos (as ClientProperty) send to cluster slaves on topic erases so that slave knows the erase properties Reported by Jonathan Clark o r14729 Bugfix removed forceDestroy check to have a NotifySubscribersAboutErase if the boolean is set to get erase events for cluster slaves (with erase done on master) by Jonathan Clark o "14720 changed signature of Global.getStackTraceAsString (allows an exception now) o r14716 replication: fix to check consistency of old replKey when initializing o r14699 ReplaceVariable.java: changed ReplaceVariable to allow hits with attribute on second tag o r14696 Bugfix for XML XPath query of topics. Was introduced some month ago and affected missing attribute values under JDL 1.5 only o r14689 JMX Extended support to specify RMI server host/port, xmlBlaster/jmx/rmiserver/hostname and xmlBlaster/jmx/rmiserver/port 6011 o r14686 in SessionInfo passing the correct dispatcher status flag when recreating the dispatcher o r14676 Email protocol: Added 'Expires: Fri, 27 Jan 2006 13:01:17 +0100 (CET)' header (RFChttp://www.faqs.org/rfcs/rfc2156.html) o r14668 Email protocol fix: Handling now CR LF which could be added for long lines to by MTA o r14635 Added full JMX control for FilePollerPlugin o r14632 EventPlugin: Check if client has a callback configured to avoid NPE o r14627 Removed outdated XML parser configuration for servlet (http and applet) Changes for 1.1.1 [2006-01-16] r14622 ===================================== o r14632 EventPlugin added check for client callback to prevent NPE o r14620 Bugfix potential memory leak (ClientSubscriptions.java): Added shutdown() for XPath subscriptions o r14613 Changed getNativeConnectArgs() It is not forcing CACHE,1.0 anymore as this is the default setting o r14612 Bugfix potential memory leak (SocketDriver.java): Removed nulling of secretSessionId to prevent memory leak o r14611 Bugfix potential memory leak (SubscriptionInfo.java): In SubscriptionInfo fixed shutdown to prevent from JMX mbean memory leak o r14608 Bugfix potential memory leak (ContextNode.java): Added WeakReference for ContextNode childs to avoid memory leaks. o r14586 POP3 bugfix: Fixed single connection leak on startup, the Store was not closed o r14579 SMTP/POP3 Url: Added handling for '@' in username or password o r14572 Removed missleading log.error for SOCKET protocol about missing response listener o r14565 Fixed deadlock with manually started RMI JMX and rmiregistry o r14561 cluster bug fix necessary as ClusterManager is loaded as plugin since r14422 o r14545 Refactored naming convention for admin.events requirements o r14525 Reworked LowMemoryDetector to be more useful for admin.events.xml o r14486 Runlevel manager: Added create attribute The new create attribute allows to suppress loading a plugin from xmlBlasterPlugins.xml o r14486,r14500,r14501 Added extended support to send internal core events. Example: startupRunlevel.9,shutdownRunlevel.8 where the number is the runlevel you want to observe. See: http://www.xmlblaster.org/xmlBlaster/doc/requirements/admin.events.html o r14481 Added native plugin to trigger xmlBlaster internal events as emails Currently log.error or/and log.warning, see EventPlugin in xmlBlasterPlugins.xml o r14438,r14439 C++-client library: size_t, int64_t cleanup o r14437 C-client library: size_t, int64_t cleanup o r14436 Removed obsolete jndi-jdk1_3_1.jar o r14429 Email protocol Bugfix for loop protection Changed configuration defaults to be human readable Changed holdbackExpireTimeout default to 20000 milli seconds Changes for 1.1 [2005-12-22] r14429 "Xmas release" ================================================== o r14422 Changed ClusterManager to be configured in xmlBlasterPlugins.xml Please update xmlBlasterPlugins.xml Removed the now obsolete '-cluster true' parameter. Changed protocol plugins to startup in runlevel 4 instead of 3 o r14419 Fixed reflection code for JDK 1.5 in XML dom.write() o r14412 C client library: Changed responseTimeout from one minute to unlimited o r14408 Removed parser.jar and jaxp.jar as we dropped support for JDK 1.3 Removed collections.jar (needed for JDK 1.1) o r14379 added DbWriter: see http://www.xmlblaster.org/xmlBlaster/doc/requirements/contrib.dbwriter.html o r14354 XmlBlaster native (jutils r14357) logging: Added '-maxLogFileLines 50000 -maxLogFileCounter 9' configuration o r14338 Email protocol: Fixed memory leak for loop detection code o r14337 Changed to have unique JMX name to avoid conflict if multiple plugins are started for SocketDriver, SmtpClient and Pop3Driver o r14336 Added JMX control for CorbaDriver and XmlRpcDriver o r14334 Email protocol: Ported to support multiple requests in one email o r14329 Email protocol: Fixed multiple connection loop protection, added simple use case for manual GUI usage o r14316 Added setSessionTimeout(long) for admin/JMX access o r14307 Bugfix email protocol: Fixed authentication, host/port setting and inline content of SmtpClient.java o r14302 Email protocol: Introduced email expiry header 'X-xmlBlaster-ExpiryDate:2005-12-24 16:45:12' o r14295 BUGFIX: Fixed resetting of SaxParser state, could lead to buggy parsing if previous parse threw an exception Had no impact when accessing the server from our Java and C++ client library. Thanks to Cyrille for finding this bug o r14291 added a persistent java.util.Map as org.xmlBlaster.util.PersistentMap. Instances can also be retrieved with java.util.Global.getPersistentMap(String) or with new PersistentMap(String). o r14264,r14268 Java/C++: Changed default setting of /burstMode/maxEntries from unlimited to 1 Like this each message in the callback queue is send seperately if not otherwise configured. o r14251,r14267,r14319 USER_UPDATE_HOLDBACK (and COMMUNICATION_USER_HOLDBACK) introduced (for all protocols) You can throw this on client side in your update() method: Like this the server queues the message and sets the dispatcActive to false. You need to manually activate the dispatcher again. Will be changed again, use with care. o r14226 SOCKET&email Refactored Latch handling and added interruptInvocation() to be able to interrupt pending method calls (currently JMX exposed for email only) o r14196-r14298 Added DisconnectQos configurations: dispatch/connection/shutdownDispatcher true/fale dispatch/connection/shutdownCbServer true/false dispatch/connection/leaveServer true/false o r14192 ContextNode now uses StringPairTokenizer.parseLine() which handles quotes and accepts empty instanceNames o r14191 Fixed ContextNode.addChild to update the parent link Added ContextNode.mergeChildTree() and getChild() for easy lookup Removed Global from ContextNode constructor and valueOf() method Fixed JMX registration to have global unique entries (for example for Pop3Poller with a native client) o r14186 Changed DispachManager to fix a loop when using I_MsgInterceptor and in Polling Mode o r14180 Java client library: Added '-dispatch/connection/doSendConnect false' for clients behind a firewall which can only receive callback messages, see http://www.xmlblaster.org/xmlBlaster/doc/requirements/interface.connect.html#doSendConnect o r14161 Enhancements - Added lazy Smtp and Pop3 initialization - Fixed to not send initial ping to avoid deadlock (email protocol driver) - Added updateResponseTimeout to configure update() specific timeouts (SOCKET and email protocol) - Changed SmtpClient configuration to URL syntax - Added email store in Pop3Driver to hold emails until a bean registers interest for it (see holdbackExpireTimeout) o r14161 Added specific method invocation timeouts (for 'SOCKET' and 'email' protocol only) Fires if a method invocation does not return: responseTimeout connect(), subscribe(), publish(), unSubscribe(), erase(), disconnect() and oneway variants updateResponseTimeout update() pingResponseTimeout ping() from client to server and vice versa o r14158 Removed global.isServer() as it was redundant with global.isServerSide() o r14139 HtmlMonitorPlugin.java Using byte[] instead of String due to failure at image loading. ReplaceVariables is used only for text-mime-types now. o r14135 Added method in JmxWrapper to invoke methods called from the HmlMonitorPlugin. This enables us to call MBean-methods from within a website which runs in the HtmlMonitorPlugin. o r14125 XmlBlasterAccess.java: Changed getDispatchStatistic() to avoid potential deadlock if an update receives during connect o r14119 Java: Added possibility to initialize complete xmlBlaster client library without sending a connect() to the xmlBlaster server (see XmlBlasterAccess). o r14087 Java SOCKET protocol: Changed the default responseTimeout from one minute to 'forever'. o TODO: C/C++ SOCKET protocol driver Change the default responseTimeout from one minute to 'forever'. o r14081 Changed default communication protocol from IOR (Corba) to SOCKET o r14058 Functional email protocol driver with or without ZLIB compression o r14050 http/j2me: Fixed possible IndexOutOfBound and NegativeArray exceptions in http servlet o r14049 C++: Added possibility to add s for protocol configuration to ConnectQos o r14045 Java: Added possibility to add s for protocol configuration to ConnectQos o r14043 The QoS attributes are enforced to be case sensitive o r14041 changed LOCAL protocol: simplified and decoupled client from slave: now they can start in random sequence o Added C# (C sharp) XMLRPC client o r14023 Added Macromedia Flash Player XMLRPC demo client (Cyrille) See xmlBlaster/demo/flash/xmrpc/README o r14039 Fixed ClientEvent to transport ConnectQos o r14020 Extended XmlScripting with exception handling o r14007 Partly fix for expiry of volatile message timing out during publish processing This bug could led to NPE o r13977 Added usage help for JMX (jconsole) o r13949 -xmlBlaster/jdk14loggingCapture defaults now to true Like this als java.util.logging will be automatically redirected to our jutils logging This is for the server and the client library o r13929 Refactor SOCKET protocol classes to reuse code for EMAIL protocol driver o r13909 added contrib task in build.xml Changes for 1.0.7 [2005-10-26] r13887 "Xmas release patch 7" ============================================================ o r13886 Added support for crimson XML parser if forced for JDK 1.5 (last JDK1.3 compatible change) o r13880 Ported org.w3c.dom.ls.DOMImplementationLS JDK 1.5 dependency to reflection o r13871 C++ client lib: Fixed missing initialization of progressListener_ o r13870 and r13876 Suppress missleading exception when connection is DEAD but worker active o r13857 Extended Applet support (with real time callback) for more than one applet in same servlet-session. o r13845 Added JMX methods to clear or remove messages from callback queue o r13842 moved some classes in contrib packages o r13825 Bugfix for 'no meat found' This could lead to a looping callback message and subscriber not receiving msgs anymore. Removed misleading log.error in same context Reported by Marshall Shapiro 2005-10-10 o r13824 Queue persistence entries are now recovered even if new data is available at the back o r13815 removed Global and made java logging to Execute o r13805 Added applet ping method, extended example applet and docu o r13786 fixed bug on DbWatcher (TimestampChangeDetector) when number of digits changed it previously did not detect change. o r13764 Added constructors with no global to ClientProperties (other are deprecated) o r13753 removed Global from EncodableData o r13750 added flag copyOnMove to file poller (allows archiving on remotely mounted file systems) o r13726,r13727 Removed jclark-omquery-xpath engine dependeny from xmlBlaster core for JDK >= 1.5 o r137187,r13718 Ported to use native XML parser when running with >= JDK 1.5 But still uses crimson for JDK 1.2,1.3 and 1.4 See http://www.xmlBlaster.org/FAQ.html#xml-parser http://www.xmlblaster.org/xmlBlaster/doc/client-api/org/xmlBlaster/util/XmlNotPortable.html - xmlBlaster.properties has changed, please use the new template - engine.service.rdbms requirements will only run with JDK 1.5 from now on Please remove those lines in your xmlBlaster.properties: javax.xml.parsers.SAXParserFactory=org.apache.crimson.jaxp.SAXParserFactoryImpl javax.xml.parsers.DocumentBuilderFactory=org.apache.crimson.jaxp.DocumentBuilderFactoryImpl o r13713,r13714 C++ Fixed progress listener registration in offline mode o r13710 fixed an empty type attr in EncodableData is now a String. Parsing of ClientProperty is now autoencoding on unencoded strings. o r13709 DbWatcher has changed the schema. Now the isSigned attribute is 'signed', isReadOnly is 'readOnly' and isNullable is 'nullable'. The later is an integer. Added the parameter 'changeDetector.postUpdateStatement' to DbWatcher configuration. o r13702 Added memory heap observation, see '-xmlBlaster/jmx/observeLowMemory true' in http://www.xmlblaster.org/xmlBlaster/doc/requirements/admin.jmx.html o r13694 Sending JMX notifications on client login/logout and on log.error Changes for 1.0.6 [2005-08-10] r13689 "Xmas release patch 6" ============================================================ o r13680 Added prevention of duplicate persistent subscribes in persistent storage o r13677 Added I_Storage o r13667-13669 Added embedded message dumper for persistent queue and persistent map implementation o r13667 JDBC persistence: Trimming columns 'type' and 'flag' After DB export -> import there could occur some white spaces Changes for 1.0.5 [2005-08-08] r13663 "Xmas release patch 5" ============================================================ o NOTE: You need to remove the 'HtmlMonitorPlugin' section in xmlBlasterPlugins.xml to be able to run with JDK 1.3. It uses the logging from JDK 1.4. o Tested C and C++ client library with icc 9.0 (the new Intel C++ compiler release) o r13656 Bugifx Memoryleak for XPath unSubscribes On XPath subscriptions which hit many topics the unSubscribe could lead to a memory leak in the server. o r13655 JMX: Fixed so that JMX queue names displayed are identical to the database name XB_ENTRIES.queueNames o r13649 Added JMX methods - I_ProgressListener for SOCKET protocol plugin - Callback delivery states and statistics - Added client side queue dumping o r13638 Added JMX observation for SubscriptionInfo and the I_Map cache implementation Added javadoc for JMX methods, see for example I_AdminNode o r13635 Fixed Sql92Filter mime plugin bug reported by Nelson Silva teste2 Filtering failed when type='String' was specified o r13626 MS SQLServer 2005 support added See xmlBlaster/config/xmlBlaster.properties.template o r13593 C client library Added progress listener function pointer to access the number of read bytes on socket during receive Try C demo: Subscriber -session.name "SUB/1" -reportUpdateProgress true o r13588 JMX extended for hierarchical view in jconsole (ContextNode) o r13579,r13580 JMX control for Java clients to monitor and control the client side connection o r13575,r13577 Added message file dump operations for JMX o r13558 log4cplus port/bugfix to VC++ 2005 It crashed in strftime() because of unknown %q option o r13545-r13568 New native web based monitoring Start xmlBlaster and try in your browser: http://YOUR-IP:3412/status.html See http://www.xmlblaster.org/screenshot.html#native - Added LogNotifierDeviceFactory - Added file loader from CLASSPATH, global.getFromClasspath() - Added more administrative access methods o r13539 Added native plugin which delivers a simple HTML page with the xmlBlaster status. The delivered page is configurable to show any administrative command. o r13525-13528 Added native http based xmlBlaster monitoring plugin (generic HTML design is still under construction) o r13524 adjusted Xerces-C++ build settings Sax2Parser.h und Sax2Parser.cpp: fixed includes Use xerces.include.dir xerces.lib.dir in build.properties to set the location of the Xerces-C++ Library to be used for the C++ Part. XMLCPP_HOME and XMLCPP_VER is not supported anymore. o r13513 C++ client library Added convenience method XmlBlasterAccess.setCallbackDispatcherActive(bool) o r13505 Changed C++ ConnectQos to be reference counted Added convenience method XmlBlasterAccess.sendAdministrativeCommand() o r13502 Bugfix C++ integration of C client library Return value of bool update(...) changed to XMLBLASTER_C_bool On Windows C++ bool is a 'char' and the C bool is a 'int' This mismatch left 3 bytes on the EAX register undefined and lead to wrong bool settings when passing a bool from C++ to C. o r13491,r13492 JMX Added jmxremote.jar to compile on JDK < 1.5 o Added administrative access methods, for example "numPublish", "numSubscribe" etc. Renamed "numUpdates" to "numUpdate" o r13477-r13482 Added JMX functionality for session, topic and queue handling o r13470,r13474 Extended query string syntax The constructors of GetKey(String,String) EraseKey(String,String) SubscribeKey(String,String) UnSubscribeKey(String,String) accept now the query string in URL syntax, for example a topic oid like "Hello" or "oid:Hello" or a query like "xpath://key", "domain:CLUSTER" Topic oid is now checked to not contain apostrophe ' or " o r13463 Bugfix user.security.authentication.accessdenied - Collecting new ConnectReturnQos after reconnect - Setting new instanceId on multiple connect() calls o r13462 Bugfix user.security.authentication.accessdenied Java client library now does another connect() if accessdenied is thrown from server. This can happen when a client session is destroyed in the server as an administrative task or by other means. Note: If the client is not fail safe configured and his callback address is buggy, the server always destroys the session and the client always reconnects which could lead to a loop. o r13461 Dispatcher change (java) Moved all protocol driver shutdown calls outside of synchronization blocks to avoid deadlocks if shutdown blocks and client wants to reconnect. o r13460 SOCKET protocol driver change (java) Moved all native socket close() calls outside of synchronization blocks. Like this a blocking system call won't deadlock the clients reconnect attempts. Changed to pass thru communication exceptions. o r13459 Bugfix SOCKET protocol driver Catching now throwable to always ensure the release of invocation locks Otherwise a blocked thread could result o r13459 Bugfix SOCKET protocol fail safe reconnect: SO_LINGER changed from one minute to 0 The java socket.close() could block in the kernel when the ethernet cable was plugged out. SO_LINGER>0: Try to send any unsent data on close(socket) The UNIX kernel waits very long and ignores the given time SO_LINGER=0: Discard remaining data on close() <-- Choose this to avoid blocking socket close() calls Default: The kernel tries to send queued data even after close() o r13458 Bugfix SOCKET protocol fail safe reconnect plugin/socket/responseTimeout callback exceptions are handled now as communication exception and trigger polling for client instead of creating dead messages. o r13449 C++ client library - Cleanup of true/false string handling - Extended ConnectQos to handle "refreshSession", "reconnected" and "instanceId" - Bugfix Base64 clientProperty handling in ConnectQos SAX parsing - WARNING: The AddressBase class is now reference counted, you may not create any Address instance on the stack, always use 'new Address(...)' or 'new CbAddress(...)'. Please access methods with '->' instead of '.'. - Threads: omni_mutex locks now support recursive entry, the same thread may enter recursively This extends POSIX 1.c: There the results of recursively locking the mutex is undefined and usually blocks. - Changed fail safe reconnect to make an initial try directly after detection - Added getInstanceId() to Global - XmlBlasterAccess.cpp Bugfix for multiple connect() calls. Changed invocationMutex to allow recursive calls, set xmlBlaster/invocationMutex/recursive=false for old behavior. - Cleanup of bool converter methods and "true"/"false" usage "1", "true" and "TRUE" are evaluated to true. - Changed Timeout::addOrRefreshTimeoutListener() to ignore key<=0 (and r13465) - Bugfix for method Timeout::refreshTimeoutListener() o r13428-13432 ConnectReturnQos Added instanceId which is unique when restarting the server o r13427 Bugfix for reconnect (java client library) Fixes for IOR and XMLRPC the reconnect behaviour if client session was killed by administrative task o r13409 Extended JMX support Added 'build -DADD_JMXTOOLS=true ... dist' configuration to add jmxtools.jar to distribution (needed for HTMLAdaptor) o r13402 Extended JMX support - Observe/change Logging o r13397 Added port for persistency in Firebird database http://www.xmlblaster.org/xmlBlaster/doc/requirements/queue.jdbc.firebird.html Donated by Chris Lau ckl_88@yahoo.ca under LGPL Changes for 1.0.4 [2005-07-04] r13388 "Xmas release patch 4" ============================================================ o r13381 Added JMX support http://www.xmlblaster.org/xmlBlaster/doc/requirements/admin.jmx.html - New configuration parameters - Changed admin interface to support operations besides propertiy getter/setter e.g. operation killClient() instead of getKillClient() - Changed getKillClient() to operation killClient() - Changed getKillSession() to operation killSession() - Added TopicHandler MBean control - Added TopicHandler eraseTopic and accessors administrative commands - SubjectInfo does subjectQueue.shutdown() now in its shutdown() instead of finalize() - RequestBroker.java: fixed internal login to be a session - Added MBean to CacheQueue implementation (not yet for RAM or JDBC) - CacheQueueInterceptorPlugin: Check for multiple shutdown added - CacheQueueInterceptorPlugin: JMX getters added o r13375 Bugfix FilePoller Added fix r13316 again, it was lost during r13325 patch o r13354 Windows C/C++ pthread update to 2.5.0 (http://sourceware.org/pthreads-win32/) Note: The library name has changed from pthreadVC.dll to pthreadVC2.dll o r13372 HelloWorldSubscribe - Added some more configuration parameters - Added fail safe subscribe handling (without persistent subscription) - Added re-subscribe on erase - Added extended file dump capabilities with locking Changes for 1.0.3 [2005-05-16] r13349 "Xmas release patch 3" ============================================================ o r13335 C and C++ client library Port to Microsoft VC++ 8 Express 2005 beta2 o r13338 Java SOCKET protocol (server side): Changed to avoid DNS host name lookup on connect which could lead to blocking for a missing DNS server (reverse lookup) until timeout occurred. o r13335 C++ client library Removed needless comma after namespace declaration to compile with g++ 4.0 o r13330 C++ client library Forced to not put SubscribeQos into client side persistent queue (SQLite) even whith persisten=true, as we have not yet coded the retrieval (RAM based queueing only) o r13327 added pure regex to filepoller plugin. o r13323 Bugfix C++ client library Fixed reconnect when server was away and C++ ping hasn't yet detected it o r13322 finalized dispatcherActive property (r13300) Now it works on reconnect as well o r13319 Changed SOCKET timeout behaviour (Java/C/C++ clients) Changed to throw COMMUNICATION_TIMEOUT instead of RESOURCE_EXHAUST when the method call with SOCKET blocks after the specified timeout. Like that the not delivered message is queued by default, before the exeception was thrown back to the client code. o r13316 Bugfix FilePoller Fixed session timeout after one day Fixed deadlock on xmlBlaster shutdown if FilePoller had problems o r13310 Bugfix cluster ClusterNode.getConnectionState() did not reliable tell the truth Thanks to Michael Lum o r13308 and r13313 and r13314 C++ client library Added client side persistence code for subscribe() (deserialize is not finished) Added client side queueing for subscribe(), currently RAM based only Moved priority handling to QosData.cpp o r13300 Added dispatcherActive property to ConnectQos to support inhibiting callbacks on login, see http://www.xmlblaster.org/xmlBlaster/doc/requirements/interface.connect.html#dispatcherActive http://www.xmlblaster.org/xmlBlaster/doc/requirements/interface.connect.html#dispatcherActiveExample o r13299 C++ client library Fixed to send command line callback address property settings with ConnectQos o r13295 Added new server methods for administrative access: getServerTimestampMillis(): Access current server time in milli seconds getServerTimestamp(): Access current server time, e.g. "2005-03-21 11:18:12.622" o r13280 Removed outdated SOAP protocol plugins Changes for 1.0.2 [2005-02-24] r13271 "Xmas release patch 2" ============================================================ o r13266 Bugfix for QosData.clone() which didn't deep clone the client property map This could have impact on the reported sessionId for __sys__Login and __sys__Logout events. o r13267 __sys__Login and __sys__Logout events now return the public session id in the "__publicSessionId" client property as a long and the cluster wide unique absoluteName with "__absoluteName". The old "__sessionId" is not supported anymore. http://www.xmlblaster.org/xmlBlaster/doc/requirements/engine.LoginLogoutEvent.html o r13263 build.xml for C/C++: Added CFLAGS and LDFLAGS so one can configure C/C++ compilation and linkage Remove /usr/lib path for library as it is default and prevented a /usr/lib64 path on 64 bit machines o r13261 C/C++ port to Xeon 64 bit, added CFLAGS and LDFLAGS to build.properties (for example you can force 32 bit compilation on 64 bit machines with -m32 for g++) o r13257 Setting duplicateUpdates to deprecated, please use 'multiSubscribe' as described in requirement http://www.xmlblaster.org/xmlBlaster/doc/requirements/engine.qos.subscribe.multiSubscribe.html o r13247 Removed bug from Persistent Sessions. When a session was initially persistent and reconnect was specified transient, a resource leak resulted. o r13237 C++ client library XmlBlasterAccess: Added getGlobal() and getCallback() accessors Added XmlBlasterAccessRef to support reference counted handling o r13236 C++ client library Global: Added GlobalRef to support reference counted handling Added createInstance() and destroyInstance() to handle multiple instances of Global o r13233 Added I_Map.remove(long uniqueId) o r13230 Removed bug on persistent subscriptions. Recovered persistent subscriptions where not removed when unsubscribing or disconnecting. Changes for 1.0.1 [2005-02-08] r13220 "Xmas release patched" ============================================================ o r13215 Passing AddressServer from each protocol plugin into the core to be able to do protocol specific decisions. Used for example with the AvailabilityChecker to allow LOCAL access for small runlevels and for future use for the Authentication/Authorization plugins to do IP specific decisions. o r13212-r13214 Added support to erase message instances but not the topic itself See http://www.xmlblaster.org/xmlBlaster/doc/requirements/interface.erase.html o r13202 StartupTasks plugin added See http://www.xmlBlaster.org/xmlBlaster/doc/requirements/admin.startupTasks.html o r13187 Redirect xmlBlaster logging to JDK 1.4 java.util.logging framework See http://www.xmlBlaster.org/xmlBlaster/doc/requirements/util.log.plugin.html#JDK14 o r13180 cpptasks.jar - Updated cpp tasks (C/C++ compilation) to CVS version from 2005-02-03 o r13178 JavascriptCallback.java - Escape quotation marks in XML content as suggested by Paul Wujek Xp2 Telecom Inc. o r13174 Extended DeadMessageDumper: Changed to create missing directory, now supports ${} replacement See http://www.xmlBlaster.org/xmlBlaster/doc/requirements/admin.errorHandling.html o r13173 More detailed logging for mime XPathFilter plugin o r13168 C client library ported to HPUX 11.11 with gcc 3.4.3 cd xmlBlaster/demo/c/socket/bin gcc -g -o Publisher ../../../../build.tmp/objC/Publisher.o -L/home/ruff/xmlBlaster/lib -lxmlBlasterClientC -L/usr/lib -lpthread o r13163 DbWatcher - Fixed INSERT reporting o r13161 DbWatcher - Fixed DROP message to contain correct colGroupValue o r13159 DbWatcher - Fixed NPE when no dataConverter is configured o r13157 Changed C++ compilation to use SOCKET protocol as default o r13152 DbWatcher - TimestampChangeDetector.java: Ignoring DELETE detection as it is detected only under seldom circumstances o r13142 DbWatcher - MD5ChangeDetector.java: Bugfix to do MD5 calculation on resultSet.getString(i) instead of resultSet.getObject(i). o r13141 DbWatcher.java: Added NPE check in shutdown(), trimming config settings, using new select() variant. o r13140 Added NPE check in DbPool.java, added new select() variant in I_DbPool.java o r13136 Bugfix SOCKET callback driver Bugfix for isAlive() detection, had impact on failsave reconnect behavior from xmlBlaster server callback to client. Happened only when both remained alive on temporary network interruption (or if callback address was same) and only if at least one partner is running on Windows. o r13127 added update with open transaction to DbPool o r13125 added autocommit and rollback to DbPool o r13121 added publish to the php xmlrpc demo library o r13110 Added DbWatcher framework to poll for changes on databases and report them as XML formatted messages, see http://www.xmlblaster.org/xmlBlaster/doc/requirements/contrib.dbwatcher.html o r13094 Added XmlBlasterJdk14LoggingHandler.java which redirects JDK 1.4 logging to our framework. This may be useful for native plugins which already use JDK 1.4 logging. Switch redirection off with '-xmlBlaster/jdk14loggingCapture false' The code is load by reflection to still support JDK 1.3 runtimes. Changes for 1.0 [2004-12-23] r13076 "Xmas release" ================================================== o r13070 Added compilation property 'build -Dneed.JDK.14=true ...' to activate code snippets which are not JDK 1.3 compatible. Changes for 1.RC4 [2004-12-19] r13059 ===================================== o Fixed release zip to run with JDK 1.3 without recompilation o r13057 Added SSL property 'findStoreInXmlBlasterSearchPath' to support keyStore/trustStore lookup in CLASSPATH Implemented for Java client side only. The feature is currently not activated to have JDK 1.3 compatibility, please recompile xmlBlaster with 'build -Dneed.JDK.14=true clean all' to have it, see http://www.xmlblaster.org/xmlBlaster/doc/requirements/protocol.socket.html#SSL2 o C client library: - r13048 Added XMLBLASTER_ prefix to LOG_INFO, LOG_WARN ... to avoid namespace clash with syslog.h; Thanks to David Kerry o C++ client library: - r13045 Bugfix for SAX parsing of ClientProperties: encoding of received message was ignored o r13043 SOCKET SSL communication: Added property 'needClientAuth' to support authentication of connecting clients as well, see http://www.xmlblaster.org/xmlBlaster/doc/requirements/protocol.socket.html#SSL2 o r13038 jutils-logging Fixed synchronization gap when making log-backup files o r13035 FilePoller final release o r13033 Fixed xmlBlasterPlugins.xml SAX parse to - allow sub-tags as attribute value - support inner CDATA sections in attribute markup Changes for 1.RC3 [2004-12-08] r12997 ===================================== o r13013 Added filepoller plugin to retrieve and publish files from a directory o r13013 Added getter in Global for properties when mixed with plugin properties o r13013 Added I_PluginConfig interface o r12995 Changed subscription ID to be unique over time o r12988 Bugfix in script: CDATA in content are not passed through anymore and duplication of content does not happen anymore o C client library: - r12985 Added XMLBLASTER_NO_RCSID switch for broken svnversion/rcsid workaround o C++ client library: - r12985 Added XMLBLASTER_NO_RCSID switch for broken svnversion/rcsid workaround - r12985 Changed compilation workaround from "__sun" to "__SUNPRO_CC" as g++ on Sun does not need it Changes for 1.RC2 [2004-12-01] r12978 ===================================== o r12963 better handling of possible interrupted exception in ConnectionPool o r12961 Added ConnectQos to xml server dump (without security parts) o r12960 Fixed delay of callback polling after a client reconnect o r12956 build.xml: JFlex and JavaCup are invoked only if files not up to date. o r12954 Bugfix: Topic erase notification events could dead lock when at the same time a subscriber callback delivery took place o r12950 it is now possible to send CDATA in content when using xmlBlaster script o r12948 Bugfix: The combination of subscribe() and get() on the same topic with cluster=true failed Thanks to Michal Masa xmasam@sgi.felk.cvut.cz o r12938 login- and logout events now return the public session id in the "__sessionId" client property as a long o r12936 Added subversion property "svn:eol-style=native" to resolve CRLF (Win) and LF (UNIX) problems Thanks to David Viner dviner@yahoo-inc.com o r12932 Bugfix: hierarchical sync sequence: TopicHandler, MsgUnitWrapper, MsgUnitCache to avoid deadlock o r12930 util.Global now throws IllegalArgumentException if loading of Property instance fails o r12818 Extended multiSubscribe support - Fixed multiSubscribe=false for XPath queries - Added support to reconfigure AccessFilter settings for existing subscriptions See: http://www.xmlblaster.org/xmlBlaster/doc/requirements/engine.qos.subscribe.multiSubscribe.html o C++ client library: - C++ Xerces must be newer 2.4 (?), it must include xercesc/util/TransService.hpp - r12958 duplicateUpdates defaults now to true to have identical behaviour for Java and C++ - r12937 FreeBSD port, support for BOOST added again, thanks to Viner, David - r12877 Added xerces initialization from main thread, as on Windows it crashed sometimes if initialized from callback thread - r12871 Extended clientProperty API - r12870 Added xerces XMLPlatformUtils::Initialize PanicHandler - r12870 Added locale setting for xerces XMLPlatformUtils::Initialize, adjust with for example - xmlBlaster/locale "de_DE.iso-8859-1" or "en_US.UTF-8" - r12864 SOCKET driver: Removed obsolet mutex and obsolete thread - r12846 Changed connection_==0 check to be thread safe, passing now logging states to C library - r12823,r12825 Added sax configuration usage help Added virtual destructor to avoid memory leak Fixed SAX parsing for encodings different to US-ASCII, changed default SAX encoding to "iso-8859-1" (Using "UTF-8" with our xmlKey and xmlQos has still problems with our std::string usage) Added configuration possibility for SAX parse encoding with '-xmlBlaster/encoding' Fixed error message for SAX parse errors - r12820 Extending XmlBlasterException from std::exception to support catching by base class, added what() method, removed dummy stack trace output. - r12799 Added leaveServer() method See: http://www.xmlblaster.org/xmlBlaster/doc/doxygen/cpp/html/classorg_1_1xmlBlaster_1_1client_1_1XmlBlasterAccess.html#a28 o C client library: - r12919,r12927 FreeBSD port, thanks to Viner, David - r12852 Callback thread cleanup is now done detached the mode is adjustable with -plugin/socket/detachCbThread=true/false (false will do a pthread_join()) - r12845 Removed creating of two threads if UDP is switched off - r12842 Added stop flag for immediate shutdown detection, added free(rawMsg) in EOF case - r12828,r12861 Fixed multithreading bug on shutdown, now we can savely leave the server without disconnect() - r12781 Added missing pthread_cond_destroy() and pthread_mutex_destroy() - r12777 Memory leak fix for Udp return - r12778 Memory leak fix for calling connect() multiple times o r12772-r12774 Added workaround for ActiveX bridge to transfer byte[] See: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4887461 See: http://www.xmlblaster.org/xmlBlaster/doc/requirements/client.activex.html Changes for 1.RC1 [2004-10-28] r12758 ===================================== o r12706,r12709 Added subversion revision number as exception text prefix, for example ex.getMessage()="r12702 Can't load your plugin" o r12703 Upgraded ANT from version 1.6.1 to version 1.6.2 o r12696 Added org.xmlBlaster.engine.DeadMessageDumper plugin to dump dead messages to hard disk, supports republishing (see javadoc) o r12689,r12690 Added '__deadMessageReason' ClientProperty to dead messages o r12685,r12686 New server flag -xmlBlaster/acceptWrongSenderAddress/ true/false [false] -xmlBlaster/acceptWrongSenderAddress/joe true Allows user 'joe' to send a wrong sender address in PublishQos Useful to resend dead messages with 'javaclients.script.XmlScript' o r12681 Checking subscription handle to be null to avoid IllegalArgumentException Thanks to aaron@mindwidgets.com o r12665 Java client library: fail safe mode Remember public and secret sessionId on client side for reconnect attempts (For future enhancement of pubSessionId<0 and persistent sessions) o r12664 Java client library: Bugfix get() and async mode Catching get() requests in async mode and throw an exception o r12663 Java client library: Bugfix switch to sync mode Added dispatchManager.trySyncMode(true) to force immediate sync mode after polling even for empty client queue o r12662 Java client library: FEATURE refreshSession Added ConnectQos.refreshSession tag for automated client side session refresh Example: connectQos.setRefreshSession(true) o Changed from cvs to subversion on 2004-10-17, see http://subversion.tigris.org/ o Added new property to delay xmlBlaster startup, for example -xmlBlaster/sleepOnStartup 5000 sets it to 5 seconds. Useful for example for Windows Service startup delay to wait on MSSQLServer JDBC listener o J2ME: - Ported String concat with '+' to StringBuffer.append() - Fixed compilation for JDK 1.5 (forcing target 1.4) o Added administrative access to a subscription dump for a client. Try something like java javaclients.HelloWorldSubscribe -session.name joe/1 -xpath //key java javaclients.HelloWorldGet -oid '__cmd:client/joe/1/?subscriptionDump' o Bugfix: Plugins with no package names did throw NPE o Plugin configuration of protocol plugins Fixed to check properties from plugin configuration in xmlBlaster.properties o Added separate links for client side Java API and complete Java API on homepage. o Cluster configuration change The xml configuration expects now a standard ConnectQos markup instead of the old specific section. The old markup is still working but deprecated. See http://www.xmlblaster.org/xmlBlaster/doc/requirements/interface.connect.html See http://www.xmlblaster.org/xmlBlaster/doc/requirements/cluster.html o Java client API change: The ConnectQos constructor can now throw an XmlBlasterException if loading of SecurityPlugin fails o htpassed authentication: - The password files are now trimmed (leading and trailing spaces are removed) - We now support startWith() and endsWith() in mode 'Security.Server.Plugin.htpasswd.allowPartialUsername=true' - We now support '*:48fdja94jfd' entries which allow to set a wildcard password A matching specific user like 'joe:dfkj843f81' has precedence in password evaluation - Replaced StreamTokenizer code with simpler line based file read because of problems with special chars - Changed comments to start with '#' instead of '//' See: http://www.xmlBlaster.org/xmlBlaster/doc/requirements/security.htpasswd.html o Cluster support: PtP messages now use the same cluster lookup code as Pub/Sub and are fully cluster routing enabled. o Java client library: Changed ClientErrorHandler to not remove client side queue entries on certain exceptions o Bugfix in PtP cluster forwarding: In some cases the destination QoS got lost o SOCKET SSL Renamed configuration 'keystore' to 'keyStore' to conform to javas system property Renamed configuration 'keystorepassword' to 'keyStorePassword' to conform to javas system property Added 'trustStore' lookup on client side o xmlBlaster.properties.template: Added CbProtocolPlugin[SOCKET][1.0] and CbProtocolPlugin[socket_ssl][1.0] as dummy plugins. Those dummies are needed for persistent session recovery. o Reintroduced notify for XPATH subscriptions (they were removed in 0.91) NOTE: XPath subscriptions will match again if the erased topic is recreated Exact subscriptions are lost when a topic is explicitely erased, a subscriber would need to re-subscribe on a erased topic if needed. This is an important difference, the erase notify is essential for exact subscriptions so they now about the stale subscription. o SOCKET UDP support: Added paramter to switch on/off the server side UDP listener (defaults to false) -plugin/socket/startUdpListener true/false o SOCKET compression for Java server and clients added The compression is based on jzlib and supports 2 ways of compression namely 'stream based' and 'message content' based. http://www.xmlblaster.org/xmlBlaster/doc/requirements/protocol.socket.html#compress Thanks to Bal�zs P�ka bpoka@axelero.hu o SOCKET SSL support for Java server and clients added, the usage is simple, see http://www.xmlblaster.org/xmlBlaster/doc/requirements/protocol.socket.html#SSL Thanks to Bal�zs P�ka bpoka@axelero.hu o SOCKET incompatible change: The disconnect returns a server side ACK now (from SOCKET protocol layer). This is a fix of the protocol.socket requirement: disconnect can throw an exception and therefore it also needs to have a return value o SOCKET incompatible change: Behaviour changed on client side so that disconnect() always makes a shutdown even on low level exceptions o SOCKET java protocol plugin: Fixed memory leak on InterruptedIOException (very seldom case) o C client library: - r12860 Timeout.cpp: Fixed shutdown with join(); Checking class state on method calls; Added catch(...) for error handling - r12858 Threading library: Added mode to start threads detached: start(bool detached) - r12854 Changed from winsock.h to Winsock2.h to have SD_BOTH - r12750 Upgrade to pthreads-dll-2004-06-22 - r12746 Windows flag '/YX' added for precompiled headers - r12710 Added subversion revision number, see getXmlBlasterVersion() - Added zlib:stream compression support - Added C client API documentation with doxygen, see http://www.xmlblaster.org/xmlBlaster/doc/doxygen/c/html/index.html - Changed 'ExceptionStruct: bool remote;' to type 'int' to have 4 byte struct alignment It crashed when called from VC7 C++ into C - Added a 'D' to .so/.sl/.dll shared library name for debugging version, for example "xmlBlasterClientCD.dll" You can switch off debugging with "c.debug=false" in build.properties => "xmlBlasterClientC.dll" - Changed CallbackServer again to close socket on server EOF to avoid clients thread blocking - Fixed handling of remote xmlBlaster server exceptions in C client library - We support now a debugging so/dll compilation with an added 'D' parallel to the optimized lib - Fixed callback ping return for SOCKET protocol o C++ client library: - r12858 Threading lib: Added mode to start threads detached: start(bool detached) - r12755 "user.name" is used instead of "user" to find out the default user - r12746 Windows flag '/YX' added for precompiled headers - r12743 BUGIFX: lexical_cast from string (or char*) to bool is now handled on a special implementation - r12711 Added subversion revision number, see Global::getRevisionNumber() - Fixed setting of XmlBlasterAccess::getServerNodeId() - Modified Log4Cplus logging: 1. We are now forwarding all xmlBlaster.properties and command line settings to log4cplus, so you could configure everything in xmlBlaster.properties instead of a separate log4cplus.properties 2. log4cplus is extended to do ${xy} variable replacement not only from environment but from itself as well (recursion depth is one). - Added zlib:stream compression support with via C SOCKET protocol plugin - Incompatible API change (the compiler will tell you everything - no risk!): o 'class Destination' constructor expects now the new SessionName instead of SessionQos o updateQos.getSender()->getAbsoluteName() instead of '.' as SessionNameRef is reference counted o Removed namespace from header: Clients now may need to add using namespace org::xmlBlaster::util::qos; - Updated C++ client API documentation with doxygen, see http://www.xmlblaster.org/xmlBlaster/doc/doxygen/cpp/html/index.html - New methods for XmlBlasterAccess: isAlive(), isPolling(), isDead() - SecurityQos constructor now accepts the security plugin name - Fixed reading of default client name - Fixed setting default SecurtiyQos userId from SessionName - Bugfix: Fixed to pass configuration settings to C-SOCKET layer on reconnect - Bugfix: Corrected sender name in PublishQos after reconnect and flushing queue - Added a 'D' to .so/.sl/.dll shared library name for debugging version, for example "xmlBlasterClientD.dll" You can switch off debugging with "cpp.debug=false" in build.properties => "xmlBlasterClient.dll" - Fixed initial queueing of connect request if xmlBlaster server is not available (ConnectQos is not queued anymore) - We support now a debugging so/dll compilation with an added 'D' parallel to the optimized lib - Changed to initialize callback address in ConnectQos only if a callback server is created - Changed to only install a CORBA callback server if necessary Thanks to pikaiyuan@163.com - Fixed Windows C++ compile in build.xml (unresolved externals) Thanks to Bjoern Ruff Changes for 0.91 [2004-08-30] ============================= o Perl client library: - Added a retries and delay option to the subscribe/callback tag - Added ReuseAddr => 1 to the Frontier::Daemon Contributed by Jason Martin o Python client library: - Added missing return values for remote calls, added publishArr() o C client library: - Bugfix in messageUnitToXmlLimited() for msg content smaller 5 bytes - Added support for UDP based publishOneway() and updateOneway() Contributed by Michal Masa - Added PTHREAD_CREATE_DETACHED to cleanup resources - Fixed publishOneway() to be a real 'oneway' Fixed reusingConnectionSocket check on shutdown of callback server Thanks to Michal Masa for reporting - Extended multi threading to support calling methods like publish() and subscribe() from within the update() callback thread. - Fixed C demo clients to use xmlBlasterFree() instead of free() directly Thanks to Martin Johnson o C++ client library: - Added UDP datagram support via SOCKET protocol, try java org.xmlBlaster.Main -plugin/socket/useUdpForOneway true -plugin/socket/startUdpListener true PublishDemo -protocol SOCKET -numPublish 5 -oneway true -plugin/socket/useUdpForOneway true SubscribeDemo -protocol SOCKET -updateOneway true -plugin/socket/useUdpForOneway true C: HelloWorldUdp -plugin/socket/useUdpForOneway true - Fixed publishOneway() - Added support to SubscribeQos - ClientProperty: Fixed float/double etc. assignement warning for templates - Removed boost source from our C++ source tree (we use omnithread) - Requests are now threadsafe: mutual block on requests (update thread is not blocked). For example a publish can not be done simultaneously as a publish on the same connection. - Fixed bug in lexical_cast for string to string on solaris - QueueFactory and ParserFactory are now stateless (no global nor log) - Bugfix in C++ client properties: empty spaces are allowed inside strings. - CorbaDriverFactory and SocketDriverFactory in C++ client keep now driver instances with Global* as key instead of instanceName. - Added individual callbacks for subscriptions - Added DisconnectQos::setClearClientQueue - Global constructors are now public. The user is responsible for cleaning up additional Global instances. o RMI protocol driver: Commented out RMI in property files, this protocol driver is currently buggy. o MsgUnitRaw needs to implement Serializable for RMI but may not use it for J2ME, this issue needs to be resolved o Incompatible JDBC persistence change: -> Removed XB_NODES table (is backward compatible) -> Removed XB_QUEUES table (is backward compatible) -> Removed column 'nodeId' from XB_ENTRIES (is NOT backward compatible) If you need to upgrade xmlBlaster having legacy data in database do manually a "alter table XB_ENTRIES drop column 'nodeId'". Otherwise just drop all old database tables (for HSQLDB remove its files in the tmp directory, on Windows the default %HOMEPATH%\tmp location for user 'joe' is "C:\Documents and Settings\joe\tmp" and on Linux "$HOME/tmp") Exception text is: [Aug 28, 2004 2:47:15 PM ERROR XmlBlaster.MainThread org.xmlBlaster.engine.msgstore.cache.PersistenceCachePlugin-topicStore:xmlBlaster_192_168_1_4_3412] put: an error occurred when writing to the persistent queue, the persistent entry __sys__UserList/2004-08-28 14:47:15.814 will temporarily be handled as transient. Is the DB up and running ? XmlBlasterException errorCode=[resource.db.unknown] serverSideException=true location=[JdbcManagerCommonTable.addEntry] message=[An unknown error with the backend database using JDBC occurred -> http://www.xmlblaster.org/xmlBlaster/doc/requirements/admin.errorcodes.listing.html#resource.db.unknown : java.sql.SQLException: Column count does not match in statement [INSERT INTO XB_ENTRIES VALUES ( ?, ?, ?, ?, ?, ?, ?)]] [See URL http://www.xmlblaster.org/xmlBlaster/doc/requirements/admin.errorcodes.listing.html#resource.db.unknown]state o Fixed double initialization of mime plugins o Cluster: Fixed clustered get() to not return message twice o Fixed to deliver correct queue size in UpdateQos o Server side SOCKET plugin: Added support to choose between UDP or TCP for publishOneway() and updateOneway() Contributed by Michal Masa o Server side SOCKET plugin: Added support for multiple SOCKET plugin instances with separate configurations. o Configuration attributes in xmlBlasterPlugin.xml are now used as default settings for all protocol plugins o Added separate statistic counter for updateOneway o Added updateOneway flag to SubscribeQos to control callback delivery for this subscription o Fixed XML dump of properties (jutils.jar) o Bugfix for sending ERASE events in UNREFERENCED topics with XPath subscription Topics delivered by XPATH subscriptions don't send erase notifications when they disappear as they match again if the appear again o XmlRpc access: Added support for message contents of type 'String' besides 'byte[]' o Support for JDK 1.5 by forcing source/target compilation to 1.4 o ClientProperty: Forcing Base64 for & character in string client property o XPath mime plugin extension It is now configurable for which mime types the XPath plugin takes affect, see http://www.xmlblaster.org/xmlBlaster/doc/requirements/mime.plugin.access.xpath.html Thanks to Robert Leftwich o SOCKET bugfix: java client did not return callback ping which resulted in a client disconnect o added missing logkit and avalon framework to distribution- and client distribution build o Fixed topic lifecycle: XPATH subscriptions don't prevent a topic from going to dead anymore Thanks to David Kerry o Fixed xml dump to be well formed again o Fixed get() mime filter query plugin load bug Thanks to jlc.xmlblaster.0504@jambotech.com o Added Sql92Selectors (with a mime plugin which queries the ClientProperties of the qos the same way as jms MessageSelector do Changes for 0.903 [2004-05-13] ============================== o Fixed telnet access bug which was introduced in 0.902 o C client library - Bugfix: hostname copy from command line - Added property dump o C++ client library - Bugfix: Client side Address was hold twice (in ConnectQos and in ClientQueueProperty) and was not dumped with toXml() Changes for 0.902 [2004-05-11] ============================== o RunlevelManager: Fixed PRE/POST event traversal o SOCKET protocol: Fixed memory leak on timeout exception, added marker for serverSide exception o Ping is now returning AvailabilityChecker information to support an application level ping for different run levels. Extended Java client library to react accordingly. o Changed the admin interface to take a key and a qos (this affects only get) o C++ client library got support for a client side persistent queue, see http://www.xmlblaster.org/xmlBlaster/doc/requirements/client.cpp.queue.html o C++ client library - Introduced abstract queue interface (I_Queue) and queue factory to be able to add arbitrary queue implementations as plugins. - Bugfix for default logging: loglevel settings inherited from I_Log - Bugfix reading of xmlBlaster.properties: Line extensions are now recognized - Extended Property class to preset ${user.home}, ${user.name}, ${file.separator} and ${path.separator} to support replacement in xmlBlaster.properties - Bugfix of failsafe mode when a publish noticed connection loss before ping thread - Changed to activate failsafe mode even without a connectionProblem listener if -dispatch/connection/delay is > 0 Changes for 0.901 [2004-04-27] ============================== o Added persistent session and persistent subscriptions for revovery after server crash or server restart: http://www.xmlblaster.org/xmlBlaster/doc/requirements/engine.persistence.session.html http://www.xmlblaster.org/xmlBlaster/doc/requirements/engine.persistence.subscription.html o Changed synchronization of disconnecting a client which could be a portential dead lock if a shutdown and a client disconnect comes simultaneously o Added an 'AvailabilityChecker' to protect xmlBlaster in the different run levels. This is another step for enhanced maintenance modes. o Changed delivered Postgres SQL driver from jdbc7.2dev-1.2.jar to pg74.213.jdbc2.jar (renamed to postgresql.jar) wich supports PostgreSQL 7.4 o Changed jacorb to ver. 2.1. This to eliminate a nasty bug causing an implicit redelivery of messages. Moved jacorb jar files to xmlBlaster/lib/jacorb NOTE: You need to use the ajusted xmlBlaster/config/jacorb.properties.template (which is copied into xmlBlaster.jar) if you use your own jacorb.jar. NOTE: The name of the property jacorb.verbosity has changed to jacorb.log.default.verbosity o Fixed release generation to remove build.tmp and keep the 'build' script. o Bugfix in PersistentCachePlugin (I_Map, msgUnitStore) - swapping with ascending messages sizes could fail (Thanks to Dimitri.Devriendt@ses-astra.com) - synchronized setProperties() (Thanks to Dimitri.Devriendt@ses-astra.com) - numOfBytes calculation was buggy if swapping o Bugfix in JDBC service module to handle NULL db entries Thanks to zzwzyz@hotmail.com o Added two new requirements: http://www.xmlblaster.org/xmlBlaster/doc/requirements/security.ldap.html http://www.xmlblaster.org/xmlBlaster/doc/requirements/security.htpasswd.html o Fixed htpasswd plugin to trim CR/LF Thanks to zzwzyz@hotmail.com o Added support for C and C++ based persistent queue based on http://www.sqlite.org http://www.xmlblaster.org/xmlBlaster/doc/requirements/client.c.queue.html o Added possibility to activate/inhibit dispatch of callback entries (SessionInfo.activateDispatcher) o Added support for primitive and buildin types such as Boolean, Short, Integer, Float and Double in admin messages o Added new QoS 'newestFirst' to control the deliver ordering of messages when querying the history queue with 'get()' or 'subscribe()' o C++ client library: - Fixed passing callback settings from command line - Extended Property.cpp to replace ${...} variables from xmlBlaster.properties - Fixed duplicate holding of CallbackAddress - Fixed SAX parsing of literal priority in QoS - Fixed wrong value when overwriting in Property.setProperty() - Fixed memory leak of 8 bytes in SocketDriver wrapper class - Fixed string bug in lexical_cast.h - Fixed setting of 'if (log_.trace) ...' check for log4cpp embedding - Fixed in SocketDriver plugin that all properties are passed to the C SOCKET library instead of only the command line arguments o Fixed rare possible dead lock for PtP messages auto-creating subjectInfo and simultaneous login of this subject o Changed xmlBlaster dump to contain only legal tag names conforming to xml 1.0 spec (changed Property in jutils.jar). o changed ant to 1.6.1 o Tested on IBM s390: Linux 2.4.19-4 SMP s390 Java client/server, C++ and C compiles (g++ 3.2.2) and runs fine o AppletServlet is now processing binary data too (client class sends it in the body of the request) o Added properties to limit the burst mode size of callback invocations: -dispatch/callback/burstMode/maxEntries The maximum bulk size of a callback invocation [-1] -1 takes all entries available in the callback RAM queue possibly limited by maxBytes -dispatch/callback/burstMode/maxBytes The maximum bulk size of a callback invocation [-1] -1L takes all entries available in the callback RAM queue possibly limited by maxEntries o Bugfix: C SOCKET client library, fixed uninitialized memory read in memmove call o changed the JdbcConnectionPool to be handled by Doug Lea's classes o Added Thread Name to Logs o Added a demo applet with XML script access to xmlBlaster. Location: xmlBlaster/demo/http/applet/XmlScript.java Compile: build deploy_war (and start tomcat + xmlBlaster server) Load: http://localhost:8080/xmlBlaster/XmlScript.html (in mozilla, konqueror, appletviewer, explorer) o Bugfix for JXPath generation of ClientProperty in QoS (impact on tiny applet example only) o Updated utils.jar to CVS version from 2004-03-19, contains Property bug fix for ArrayOutOfBoundsException o JDBC configuration: Added column name prefix, used for MS-SQLServer to prefix reserved DB names 'byteSize' and 'dataId', see colNamePrefix=XB_ in xmlBlaster.properties.template (the prefix is internally converted to uppercase) o modified http.applet protocol to allow invocations from standalone apps and from j2me o Renamed admin access to subjectInfo getCbQueueNumMsgs to getSubjectQueueNumMsgs o Added ActiveX (Windows) control to support access from C# and VisualBasic.net http://www.xmlblaster.org/xmlBlaster/doc/requirements/client.activex.html o Fixed to rethrow XmlBLasterException from inside SAX parsing o Fixed build.xml to not need -DJVM.target=1.4 for JDK 1.5 Changes for 0.9 [2004-02-23] ============================ o Ported java code to JDK 1.5 - As 'enum' is now (Jdk1.5) a reserved keyword we renamed our package 'enum' to 'def' by replacing the token '.enum.' to '.def.' in the complete source tree. - Compiling: build -DJVM.target=1.4 delete all o SOCKET protocol on Java client side: - Fixed exception handling from update() calls - Added 'virtual' callback server shutdown - Fixed MsgUnit[] return from get() call to be of length=0 if no message is returned Before the array contained one entry with empty key/qos o The msgStore cache implementation supports now LRU (last recently used) lookup o Added setter and getter for subject queue property in ConnectQos o Added a shuffler thread to forward entries from SubjectQueue to SessionQueue (to achieve Thread safety). o Added I_QueueSizeListener to listen to changes in size of a queue o Bugfix: Reconfiguration of client reconnect (same pubSessionId) supports now queue properties and sync/async reconfiguration (with or without a client side callback server) o Extended forceQueuing=true support for PtP messages sent to a specific session which does not yet exist. This will automatically establish a callback session queue for the destination o Added support for a sync connected client to reconnect in async mode (by providing a callback address). Sync connected clients may receive PtP messages which are stored in their session queue until the client reconnects with a callback address and the queued messages are delivered. Switching an async client on the fly to sync mode (by reconnecting without a callback address) is currently not supported. o XmlScriptInterpreter now uses a Reader (InputStream was starting processing AFTER reading whole stream). o Added persistent session+subscription support in C++ o Global.detachJdbcManagerCommonTable() removed (was obsolete) o The EntryFactories are now threadsafe and the Global.getEntryFactory now does not take any name and the factory is a singleton. EntryFactory.getName does not exist anymore. I_StoragePlugin.getType can be used instead o Added XmlScriptInterpreter which can execute xmlBlaster commands from an xml file (in a way similar to ant, maven and jelly) o Nested key tags are now allowed inside key o Added a new class EncodableData (ClientProperty now extends from it) o Eliminated MsgTopicErrorHandler since used nowhere o Changed build.xml for C and C++ compilation Now the source files are copied to a separate destination To build C or C++ do a cleanup first (before you checkout the new code): build c-delete build cpp-delete or remove the outdated msgUtil_CopyByAnt.c and Global_CopyByAnt.cpp files manually o C++ client library (Incompatible API change): - The update() method argument 'content' has changed from 'void *' to 'const unsigned char *' - The global.getLog() method now returns the interface I_Log (an abstract class) to the logging framework instead of the Log.cpp implementation itself. This allows to plug in your own logging framework o C++ client library: - xmlBlaster.properties is read (-propertyFile ... or in $HOME or in $XMLBLASTER_HOME) - Added native SOCKET protocol plugin based on the C-client library - Added logging abstraction interface to support different logging implementations - Added log4cplus 1.0.1 logging library to xmlBlaster distribution see http://log4cplus.sourceforge.net (Apache license) - Fixed command line usage, try 'HelloWorld2 -help' - Fixed memory leak for some XmlBlasterExceptions thrown - Logging cleanup (switchable xterm colors) - Added Global::getCompiler() - Fixed LifeTimeManager to have destruction sequence reversed to creation sequence - Added map to LifeTimeManager to support registered object lookup by key - Bugfix for lexical_cast and lexical_cast which rounded to only 6 digits - Added Base64 support for ClientProperty - Bugfix: SAX parsers are now thread safe - Renamed msgQosData.getForceDestroy() to isForceDestroy() - Other minor changes o C-client library: Fixed to return secretSessionId in update() method Fixed to return isOneway in update() method Fixed get() return without a match Renamed xmlBlasterAccess->userData to userObject to avoid ambiguity o C-client library (Incompatible API change): - Fixed unSubscribe() and erase() to return now 'QosArr *' instead of 'char *'. - ping() now wants a third argument 'xmlBlasterException*' - Added user specific object to be returned to the logging callback (logUserP) See xmlBlaster/demo/c/socket/HelloWorld3.c for a usage example. o Renamed build.sh to build. Now on UNIX and Windows the build command is the same, for example 'build all', note that you have to manually delete the old 'build' directory o Fixed dead messages "__sys__deadMessage" to contain the complete key and qos of its embedded message. The clientProperty keys are "__key", "__qos", "__oid" and "__rcvTimestamp". The latter two are added for convenience reasons only. o Extended ClientProperties to transfer blob data, introduced base64 encoding if illegal characters are transferred see http://www.xmlblaster.org/xmlBlaster/doc/requirements/engine.qos.clientProperty.html o Added protection for publisher thread to never do cleanup of callbacks (avoid dead locks) o manifest.xmlBlaster: Added missing jhotdraw.jar, demo.jar and testsuite.jar o C-client: changed include in pthread.h for simpler compilation o Corrected spelling from to o Fixed update problem when content is empty o Fixed dead letter handling on callback queue overflow o C-client library: Fixed bug in trim() which lead on stress tests to corrupted messages. Thanks to FdGiglio@naples.sema.slb.com o JDK 1.2 runtime support: The current jacorb.jar does NOT run with JDK 1.2 To run xmlBlaster with JDK 1.2 you have these options: - Download an older jacorb.jar and throw it into xmlBlaster/lib or - Switch off the corba plugin in xmlBlasterPlugins.xml, now the server runs fine. For java clients use the SOCKET protocol with the option '-protocol SOCKET' (RMI and XML-RPC are fine too). NOTE: You can compile xmlBlaster with JDK 1.3 (or 1.4) and still run it with JDK 1.2. If you need to compile xmlBlaster with JDK 1.2 please exclude the JMX stuff in build.xml (uncomment those): build.sh delete; build.sh xmlBlaster (Parts of the testsuite won't compile with JDK 1.2) o Fixed hsqldb.jar to compile/run with JDK 1.3 and 1.2 again. o Fixed dead message loop if a dead message subscriber subscribed on other messages as well and than crashed. o Fixed synchronization gap on client login, SubjectInfo registered before it was fully initialized Thanks to Dimitri Devriendt his detailed report. o C++ client library: Created an abstract xml layer to allow to easily implement other xml parsers than xerces o Changed the Subscribeable flag to Subscribable o Updated LDAP authentication demo, see xmlBlaster/demo/ldap/README o ConnectQos: - Renamed setSecurityPluginData() to loadClientPlugin() - Renamed I_ClientPlugin.getSecurityQos() to createSecurityQos() - Removed setSecurityInterceptor() and getSecurityInterceptor() - Removed getSecurityPluginType() and getSecurityPluginVersion() and setSecurityQos() o C++ client: Ported to multi threaded Corba mico 2.3.11 o Added a new ant task 'javadocs-client' which only creates the Java client side API documentation. o Added tiny Applet which supports asynchronous callbacks using a persistent http connection, see http://www.xmlblaster.org/xmlBlaster/doc/requirements/client.java.applet.html http://www.xmlblaster.org/xmlBlaster/doc/requirements/client.browser.html o Moved HelloWorld*.java examples to directory xmlBlaster/demo to avoid package name problems o QosData: embedded each client property with CDATA (java and c++) o Fixed mouse sensitive area in chessRhino.svg Changes for 0.85e (beta) [2003-10-31] ===================================== o Ported C client library to OSF1 V5.1 1885 alpha Thanks to FdGiglio@naples.sema.slb.com o Cluster: Fixed that protocol settings for embeded cluster clients are respected (The setting CREATED_BY_SETTER is now enforced to be stronger than env settings) o XmlBlaster cluster now support unSubscribe() routing o Changed subscription ID to be cluster wide unique o Bugfix cluster setup: Catching forever looping PtP messages in a clustered environment o Bugfix for corrupted PublishQos, occurring since 0.85c o Added publish QoS sender name check (authentication) to avoid spoofing o C-client: Fixed gcc warnings on IBM s390 (with Linux) for printf() and sscanf() with %u and size_t o Fixed NPE in graphical chat demo o Fixed NPE for ctor with null argument: client.PublishQos(null) o Removed the nowhere documented "message.lifeTime" property o added I_MsgDistributor plugin (acts in TopicHandler) o Changed signature for I_AccessPlugin.check(...) by removing the publisherSessionInfo o added multiple ConnectionStatusListeners to DispatchManager o changed nomenclature from 'Delivery' to 'Dispatch' to avoid confusion. Need to take the new xmlBlaster.properties Changes for 0.85d (beta) [2003-10-12] ===================================== o Bugfix which randomly threw IllegalStateException, occurring since 0.85c o Fixed C client library bugs (memmove, zero msg payload and possible thread lock gap) see http://www.xmlblaster.org/xmlBlaster/doc/requirements/client.c.socket.html o Added type to client properties in qos http://www.xmlblaster.org/xmlBlaster/doc/requirements/interface.publish.html o Some more work is done on the JMS Java client library, see http://www.xmlblaster.org/xmlBlaster/doc/requirements/jms.html Changes for 0.85c (beta) [2003-10-05] ===================================== o Bugfix for queueing PtP messages when there are session which have set isPtpAllowed==false o Fixed to not put none subscribable PtP messages to the history queue o Added limited support to reconfigure a subject queue from CACHE to RAM during operation. o Fixed internal error dump when expired history entry is subscribed. o XmlBlasterException now dumps an online URL with detailed informations. Please use new xmlBlaster.properties.template o Protected core authentication against unwanted access by plugin developers and native client developers, see AuthenticateProtector.java, SubjectInfoProtector.java, SessionInfoProtector.java o Bugfix for queue plugin configuration transport in QoS, e.g. -queue/connection/defaultPlugin RAM,1.0 o Fixed client side thread demand by implementing lazy instantiation. This for example reduces the number of xmlBlaster specific threads from 5 to 1 for a Java SOCKET connection. o Fixed possible thread leak in java client library when using many client connections and Global is not garbage collected frequently enough by the JVM o Updated Perl support, see http://www.xmlblaster.org/xmlBlaster/doc/requirements/client.perl.html o Bugfix for topics with a destroy delay of 0 msec. Reported by Dominique Petitpierre Changes for 0.85beta [2003-09-24] ================================= o Changed all getBytes to getBinaryStream in JdbcManagerCommonTable and changed signature of I_EntryFactory.createEntry to take an input stream (due to problems with Oracle 9i and BLOB) o Changed default type for Oracle to BLOB (since RAW LONG is deprecated in 9i). Max Blob size is 4GB o Added a Key and Qos cache for publish (the literal is the key and the Data is the value) -> 15 % better performance o Added clientProperty tag to most of the qos (only StatusQos don't have it) o Added support to set and lookup the engine.Global (via GlobalUtil) for the j2ee components. o Finished the LOCAL protocol. o Added flag enableBatchMode in the jdbc queue plugins o added storage of blob in DummyEntry (before it was a fictive size, now its complete size is stored/retrieved from the DB). o Moved to JacORB 2.0 beta 2 + (cvs) from 2003-09-14 15:00 You can check out this version with: cvs -d :pserver:anonymous@www.jacorb.org/cvsroot/jacorb checkout -D '2003-09-14 15:00' JacORB idl.jar is patched to contain JacORB/lib/logkit.jar o Updated XPathFilter to support Jaxen XPath extension functions, also added the functions RecursiveTextFunction and ContainsIgnoreCaseFunction. o Updated j2ee components to the latest API changes. Also fixed property handling so that xmlBlaster.properties is not loaded by default. xmlBlaster.properties and xmlBlasterPlugins.xml is removed from the xmlBlaster.jar to not upset the propertyloading. o Changed ClassLoaderFactory to be interface based, now pluggable with property classLoaderFactory. Moved implementing ClassLoaderFactory to StandaloneClassLoaderFactory and added a ContextClassLoaderFactory to be used in certain embedded environments. o Bugfix in Timeout.java - userData is now correctly passed - addOrRefreshTimeoutListener() acts now correctly on all situations Reported by Xavier Roques, xRoques@infovista.com o Ported chess demo to batik 1.5, cleanup of event queue o Moved getJdbcQueueManagerCommonTable from util.Global to JdbcQueueCommonTablePlugin so that the manager is not referenced outside the plugin it serves. Moved also wipeOutDB from Global to the queue plugin). o Property loading cleanup in Global.java Thanks to Peter Antman for the discussion o Fixed build.xml 'dist' task to include HSQLDB o Bugfix in persistence layer for huge messages. Reported by pikaiyuan o The jmxgui now uses only one XmlBlasterAccess to communicate with xmlBlaster o fix in JdbcQueueManager to avoid batch mode invocations if the DB does not support this feature (particularly for hsqldb) o The SVG Javascript chess example is updated to this new release with some bugfixes, see http://www.xmlblaster.org/xmlBlaster/doc/requirements/client.javascript.rhino.html o Bugfix Java client library: In fail safe mode on client reconnect the subscribe specific callback redirect got lost and updates where delivered to the default callback handle. (The bug was introduced in 0.849 when fixing a memory leak). o Removed deprecated classes from package org.xmlBlaster.client: EraseKeyWrapper.java EraseQosWrapper.java GetKeyWrapper.java GetQosWrapper.java PublishKeyWrapper.java PublishQosWrapper.java SubscribeKeyWrapper.java SubscribeQosWrapper.java UnSubscribeKeyWrapper.java UnSubscribeQosWrapper.java EraseRetQos.java I_RetQos.java PublishRetQos.java SubscribeRetQos.java UpdateKey.java UpdateQos.java GetQos.java Please use the packages org.xmlBlaster.client.key and org.xmlBlaster.client.qos instead o Fixed build.bat to take more command line parameters o Added new connect QoS setting 'reconnectSameClientOnly' which allows us to enforce a client singleton - if you need to assure that a client can only connect exactly once, see http://www.xmlblaster.org/xmlBlaster/doc/requirements/interface.connect.html http://www.xmlblaster.org/xmlBlaster/doc/requirements/client.configuration.html o Exhaust of maxSessions throws now ErrorCode.USER_CONFIGURATION_MAXSESSION o JAVA client: Calling xmlBlasterAccess.connect() multiple times without disconnect() throws now ErrorCode.USER_CONNECT_MULTIPLE o Removed deprecated org.xmlBlaster.util.ConnectQos org.xmlBlaster.util.ConnectReturnQos org.xmlBlaster.util.DisconnectQos please use siblings from package org.xmlBlaster.client.qos Changes for 0.849 [2003-07-15] ============================== o Bugfix Java client library: Fixed memory leak for reconnecting clients with subscribes using specific callbacks. o Changed behavior that '-version' and '-type' is not read from env anymore, only the more qualified variants like '-queue/connection/version' o Fixed HSQLDB plugin to create a seperate DB instance for each client or server instance in directory ${user.home}/tmp o Added Property replacement variant $_{XYZ} which does NOT throw an exception if XYZ is not found o C++: Added first code to embedd C SOCKET lib as a C++ protocol plugin, see COMPILE_SOCKET_PLUGIN and COMPILE_CORBA_PLUGIN switches in build.xml o C++: Removed ALl 'using namespace' declarations from C++ header files. o Implemented hsqldb as the embedded database. Persistence is now supported per default o Added C wrapper to embedd C tests into JUnit testing, try build.sh total build.sh runTestsAndReport which creates a report: http://www.xmlblaster.org/xmlBlaster/doc/test/report/html/index.html o Removed a2Blaster (for authentication/authorization). The a2Blaster project is developed further commercially and like this of no use for us. o Removed complete Xindice support as the persistence layer changed. To add Xindice again it needs to implement the persistent queue framework, see http://www.xmlblaster.org/xmlBlaster/doc/requirements/queue.html o Removed outdated and UNIX only jacorb.sh java_orbacus.sh mico.sh orbacus.sh They where mainly used for Makefiles o Removed all Makefiles, please use now 'ant' and 'build.xml' NOTE: xmlBlaster/config/xmlBlaster-autoconf.tar.gz still exists but probably needs a face lift. o Bugfix in cluster configuration, switch off naming service and setting other address parameters is now possible from configuration file. Reported by Michael Atighetchi. o Bugfix clustering for get() by Michael Atighetchi. A node X was only forwarding get requests to other nodes if a subscription has been established to X and a message had been successfully served to that subscription. Now, get() requests are always forwarded to the right other nodes. o Added MethodName argument to exportMessage in security message interceptor o Zhang Zhi Wei added a Microsoft SQL Server port for our persistence layer http://www.xmlblaster.org/xmlBlaster/doc/requirements/queue.jdbc.sqlserver.html o Completed ANSI-C client library for sync and async xmlBlaster access: http://www.xmlblaster.org/xmlBlaster/doc/requirements/client.c.socket.html o Added support for OmniORB 4.0.1 (C++ client library) o Bugfix C++ object cleanup by Martin Johnson o Removed deprecated property scanning precedence, see PropEnv.java o Bugfix to report nicer wrong configuration setting o Bugfix '-pluginsFile /yourdirectory/yourfile.xml' works now as expected Changes for 0.848 [23, May 2003] ================================ o Fix in XmlBlasterException for MakeFormat with index > {9} IBM JDK 1.3.1 can't handle it (i believe 1.4 handles it now). o Changed protocol plugin loading behavior. Now we throw an exception if the protocol plugin is not found instead of choosing the default protocol as fallback. o Updated requirements o Incompatible changes (update xmlBlaster.properties and xmlBlasterPlugins.xml): 1. Removed XmlBlasterConnection.java, please use XmlBlasterAccess.java Removed I_ConnectionProblems.java, please use I_ConnectionStateListener.java 2. XmlBlasterAccess.initCbServer(String loginName, String type, String version) -> initCbServer(String loginName, CallbackAddress cbAddress) 3. Protocol "XML-RPC" renamed to "XMLRPC" -> client server communication will not work between this and the previous release. 4. The protocol address is now configurable with Address.java/CallbackAddress.java with the method public void setPluginProperty(String key, String value); or the old way with glob.setProperty() AddressBase.java is redesigned, please check the javadoc. Further you can hardcode a destination host directly with e.g. address.setType("XMLRPC"); address.setRawAddress("http://192.168.2.5:9955/"); 5. Renamed property to new schema, try java org.xmlBlaster.Main -help (server side usage) java HelloWorld3 -help (client side usage) These replacements where made: hostname -> bootstrapHostname port -> bootstrapPort socket.port -> dispatch/connection/plugin/socket/port socket.hostname -> dispatch/connection/plugin/socket/hostname socket.cb.multiThreaded -> dispatch/connection/plugin/socket/multiThreaded socket.threadPrio -> dispatch/connection/plugin/socket/threadPrio socket.responseTimeout -> dispatch/connection/plugin/socket/responseTimeout socket.responseTimeout -> plugin/socket/responseTimeout (server) ns -> dispatch/connection/plugin/ior/useNameService ns -> plugin/ior/useNameService (server) ior -> dispatch/callback/plugin/ior/iorString ior -> dispatch/connection/plugin/ior/iorString ior -> plugin/ior/iorString (server) ior.file -> dispatch/connection/plugin/ior/iorFile ior.portCB -> dispatch/callback/plugin/ior/port ior.hostnameCB -> dispatch/callback/plugin/ior/hostname ior.port -> dispatch/connection/plugin/ior/port ior.port -> plugin/ior/port (server) ior.hostname -> dispatch/connection/plugin/ior/hostname ior.hostname -> plugin/ior/hostname (server) xmlrpc.port -> dispatch/connection/plugin/xmlrpc/port xmlrpc.hostname -> dispatch/connection/plugin/xmlrpc/hostname xmlrpc.portCB -> dispatch/callback/plugin/xmlrpc/port xmlrpc.hostnameCB -> dispatch/callback/plugin/xmlrpc/hostname iorHost -> hostname iorPort -> port (3411) rmi.registryPortCB -> dispatch/callback/plugin/rmi/registryPort rmi.registryPort -> dispatch/connection/plugin/rmi/registryPort rmi.AuthServer.url -> dispatch/connection/plugin/rmi/AuthServerUrl 6. The ConnectQos xml markup changed from
to
7. Please copy the new config/xmlBlaster.properties.template to $HOME/xmlBlaster.properties Please copy the new config/xmlBlasterPlugins.xml.template to $HOME/xmlBlasterPlugins.xml o Bugfix: Server side command line usage was showing client side usage as well o BUGIFX: PropBoolean had wrong Boolean to boolean conversion o Bugfix Perl: Outdated sessionId markup in ConnectQos, fixed by Dominique.Petitpierre@adm.unige.ch o Bugfix C-XmlRpc: Added missing ping(), reported by Dominique.Petitpierre@adm.unige.ch o Added basic support to connect to xmlBlaster from simple C with SOCKET protocol, see xmlBlaster/src/c/README o Changed socket protocol parser to be more tolerant on partial messages (needed for C SOCKET client). This change is backward compatible. o Added MethodName argument to I_MsgSecurityInterceptor.importMessage to allow for creation of MsgUnit from MsgUnitRaw within security plugins Changes for 0.847 [12, May 2003] ================================ o Michele Laghi added a graphic chat demo using xmlBlaster. It can be used for example to discuss designs and the remote participants drawings are instantly copied to the other users. See xmlBlaster/demo/javaclients/graphical/README o Added Martin's managed objects in the c++ clients o Java client library interface change, removed method boolean disconnect(DisconnectQos disconnectQos, boolean clearClientQueue, boolean shutdown, boolean shutdownCb) Please configure the options in DisconnectQos and use disconnect(DisconnectQos) o Bugfix in java client library. If the client side tail back queue contains persistent entries on disconnect they are kept and resent on new connection of the same client (same pubSessionId). http://www.xmlblaster.org/xmlBlaster/doc/requirements/interface.disconnect.html o Merged basic JMX support from branch jmx_gui o Bugfix: