Changes

[2010-03-15] RefleX 0.4.0-beta

Main changes

  • Serializers for SVG to PNG, GIF, JPG and XSLFO or XHTML+CSS to PDF, PS, etc. See serializer examples.
  • XSLT stylesheets can be compile to Java bytecode and use in transformations like stylesheets. See complied stylesheets examples.
  • Impact of upgrade of third-party libraries: the case of the DOM-elements name supplied by the Web client in WUnit has changed; this mean that XPath expressions used to refer to HTML elements have to be changed: e.g. replace $wunit:document//DIV[@id='foo'] by $wunit:document//div[@id='foo'].

Enhancements

  • Filtering facilities: classes that are deriving from XMLFilterImpl can be specified as sources with <xcl:transform>. See XMLFilterImpl examples
  • More features with the res URI scheme; for referred classes that appear to be interfaces or abstract classes, a concrete implementation is looked up with the discovery mechanism, and a singleton then a default constructor are considered.
  • Enhancement of the documentation.
  • More feature with <xcl:parse-html>

Fixed bugs

  • Fix HTTP URIs that differ only with the query string and were resolved to the same file object.
  • Fix issues when filling forms in WUnit for checkboxes, radio buttons, textareas, and select options.
  • Fix bug with xcl:group(). Impact on the RDBMS module. More test cases with JUnit and XUnit.
  • Fix bug with VFS that fails to handle IPv6 adresses.

[2008-08-08] RefleX 0.3.2-beta

Main changes

Enhancements

  • Repackaging the source distribution (that only contain the "src" directory); moving Winstone to the "lib" directory.
  • Starting a test suite for ASL.

Fixed bugs

  • Conflict with Xerces and Java 6 : the Xerces libraries has been upgraded.
  • Clearer distinction between sequences of a single item and standalone single items (<xcl:for-each>).
  • A schema can be referred in a catalog, allowing to <asl:validate> without a schema reference.
  • Fix run scripts for the XQuery tutorial.

[2008-06-08] RefleX 0.3.1-beta

Main changes

  • WUnit : for unit tests of Web applications.
  • Some changes in the Web module has broken the compatibility with the previous versions (see below).
  • Test suites for WUnit, the Web module, and the Web applications of the tutorials.

Enhancements

  • Web module refactoring :
    • the $web:match property is deprecated and replaced by an attribute of the $web:request property : $web:request/@web:match.
    • $web:application/@web:init-param is deprecated ; the init parameters are now exposed as the children of the $web:application property.
    • $web:application/@web:path is deprecated ; it is replaced by $web:application/@web:application-path in order to be consistent with $web:request/@web:application-path.
    • $web:service/@* are deprecated (except @web:info) ; the init parameters are now exposed as the children of the $web:service property.
    • $web:session/@web:id is deprecated and the session ID is now exposed as the name of the $web:session property.
    • by default, the MIME type is set by <web:mapping> according to the incoming URL extension if the @mime-type attribute is missing.
    • the children of the $web:request property is now enhanced to handle files to upload transparently.
    • $web:cookies are fully supported.
    • Unification of the local-name of attributes related to character encoding with similar attributes in other modules : they are all local-named "encoding".
    • Other transparent enhancements were made within that module : all contents and attributes of X-operable objects are deferred collections ; maps of attributes are made with prototypes.
    • there is now a JUnit test suite for the Web module that will avoid regression like when upgrading from 0.2.1 to 0.3.0 (see the bug fixed in the Web module below).
  • Utilities for handling named items within collections.
  • Scanner tool.
  • An XSLT stylesheet for XUnit is available.
  • Better performance for retrieving attributes.
  • Can <exp:invoke> an active sheet as a file.
  • Now, you can <xcl:sleep> a while.
  • The case of elements and attributes of parsed HTML documents is now those indicated in the specification.
  • Upgrade of some libraries.
  • Creating a file for a jar resource that doesn't exist in the classpath won't fail when using the res:/// URI scheme.
  • If XUnit/WUnit are found in the classpath, the relevant catalog is automatically appended to the engine when using the CLI.
  • The CLI accept XSLT output keys for serializing XML results.
  • Simplification of launch commands for CLI and Web applications.
  • Better SQL support. Tutorials with SQL are runnable directly.

Fixed bugs

  • Web : the query string were no longer accessible directly with XPath ; users had to use $web:request/node()[name()='foo'] instead of $web:request/foo for handling .../example.html?foo=FOO. This kind of issue should no longer occur as WUnit allow writing non-regression tests for Web applications.
  • Empty text nodes were selectable with XPath.
  • Missing synchronization on @xcl:timeout.
  • Add a namespace declaration when an attribute bound to a namespace URI is added to an element.
  • Add a named item that is not an attribute as not an attribute.
  • Context inheritance in child dataset (used in macros).
  • XInclude : by default, XMLBuilder was performing a lax parsing that was causing bad results ; this has been changed to a strict parsing mode.

[2007-12-02] RefleX 0.3.0-beta

Main changes

  • Upgrade of third-party libraries.
  • Some changes has broken the compatibility with the previous versions (see below).

Enhancements

  • XQuery support through XML:DB in <io:request>.
  • New material : @exp:use-catalog for making standalone active sheets.
  • Foreign attribute declarations that omit their @source attribute denote marker attributes.
  • URI scheme unification : the res scheme can be now an opaque URI or a hierarchical URI ; it is used both for accessing internal resources (res:///org/acme/foo/icons/Bar.png) and classes (res:org.acme.foo.Bar) ; the class scheme is deprecated.
  • Test suites for XPath, the EXP module, the I/O module, and the system module.
  • New material : @xcl:timeout
  • When using <xcl:transform>, parameters bound to the XSLT namespace URI override those specified in the stylesheet.
  • <io:copy> also copy the MIME type and the encoding to the target if they are available and the target is a file (if the relevant file system allows those data to be updated).

Planned changes

The following changes that were planned in the previous release have broken the compatibility with the previous versions :

  • Moving classes from org.inria.reflex to org.inria.ns.reflex for alignment with INRIA's namespace server. You'll have to update your own Java code if you use these classes in your Java programs. If you didn't write any Java code that use RefleX's classes, you're not affected.
  • Moving Active Tags' namespace URIs from http://www.inria.fr/xml/active-tags/... to http://ns.inria.org/active-tags/... for alignment with INRIA's namespace server. You'll have to update your active sheets.
  • Removing backward compatibility of @XXX-type attributes related to XML parsing with @style. You'll have to update your active sheets everywhere you have specified explicitely that you want DOM, SAX, or STREAM.
  • Changing the default parsing behaviour from "lax" to "strict". You'll have to update your active sheets if they intend to parse XML fragments, and explicitely ask for the lax behaviour.
  • Changing the EXP module ; some tags and attributes have been renamed ; if you have designed custom modules, you'll have to make some updates in your XML files. Changing @impl with @source in <exp:XXX>.
  • Upgrade the I/O module to be conform to the last release of the specifications.

Fixed bugs

  • Fixing URI resolutions when parsing stylesheets on Windows.
  • Setting the right base URI for resolving catalog references.
  • Fixing @enable-prefixes usage on <exp:unmarshal>.
  • Fixing export values with <exp:invoke>.
  • Fixing @short-name on #io:x-file.
  • Force running the macro-code when the content fails.
  • Fixing memory consumption when processing XPath patterns with extra-large SAX-streams (13GB).
  • Fixing issue with SAX fragment parsing.

[2007-08-02] RefleX 0.2.1-beta

Enhancements

  • Pipelines and filters are working both with DOM and SAX.
  • Refactorization of XPath navigation for non-XML objects (in progress).
  • Better support of XPath operations with typed datas (PSVI).
  • Unification of the @XXX-type attributes related to XML parsing with the same one (@style="tree|stream") in actions. @style becomes dynamic ; backward compatibility is preserved.
  • At user option, parsing XML (@mode) can be "strict" or "lax" (default for preserving backward compatibility) ; in the previous version, it was always "lax" (which allows to parse XML fragments).
  • The default path to the active sheet for Web applications has been changed.
  • XUnit : <xunit:assert-value-equals> is a new tag ; a progress indicator is displayed while running test suites.

Fixed bugs

  • Fixing issues with XInclude ; RefleX passes the tests of the W3C's test suite for DOM and SAX inclusions.
  • Fixing bad evaluation of XPath patterns starting with //.
  • Successive XPointer schemes were raising an error.
  • Fixing bad resolution of relative URLs whithin a packed file (zip, tar...) while parsing.
  • Patching VFS to avoid irrelevant HTTP call when parsing URLs.
  • Fixing bad operation : renaming an element was causing the lost of some attributes.
  • Some errors weren't reported when validating with ASL.
  • A foreign type reference wasn't resolved correctly from a textual content in ASL.
  • Fixing @xml:base when parsing with DOM.
  • Better error handling when streaming.

[2006-11-20] RefleX 0.2.0-beta

Main changes

  • XPath filtering on SAX streams
  • Implementation of Active Catalogs
  • XUnit testing

Enhancements

  • New sections : Active Blog and Active Tests.
  • Junitization and XUnitization.
  • Strong SAX support (read the article) : user-define filters are available with XPath capabilities (XPath can walk across the tree even with SAX). SAX can read flat text files ; Regexp can be used on text. SAX events can be merged / dispatched on several channels.
  • XInclude and the XPointer framework are now supported.
  • The global SAX machinery has been also refactoried.
  • Refactoring XOperator and MasterXOperator ; entries of dynamic map are now bound to their owner, and can be used as referent in Active Update operations.
  • Support for canonical paths (see also xcl:canonical-path()) and QName sets : when an XPath pattern or a canonical path or a set of QNames are set as an attribute value or as a text node, the appropriate namespace bindings are added (which might cause changing some prefixes in some QNames).
  • Better support for macro tags (<exp:init>). Few more tags (<exp:unmarshal>, <exp:invoke>)
  • $web:session is available
  • Now, there is an active schema for standard XML attributes.
  • Now, there is a compile target to the Ant build file ! There is also a junit target.
  • Batch scripts for the Windows platform.

Fixed bugs

  • Some objects were cached forever.
  • Validation errors when parsing with SAX weren't reported.
  • Fixing bad URI resolution while using catalogs.
  • The data sets weren't acquired by the processor instance that owns macros tags, which cause the bad resolution of relative file references in the macros. Fixed in macro tags, macro functions, and macro properties.
  • The parent hierarchy of processor instances was not set, which cause catalog lookup fails.
  • Fail to resolve namespace URIs for "xml" and "xmlns" in XMLHelper.
  • Fixing the base location in external identifier resolver and URI reference resolver.
  • Fixing a bug while browsing some XPath axes.
  • <xcl:loop> were looping for ever.
  • The namespace URIs of an attribute that have a prefix unbounded is now resolved regarding the element to which it is inserted into.

[2006-03-23] RefleX 0.1.3-alpha

Enhancements

  • Web : more support for HTTP requests (#web:x-request) and HTTP responses (#web:x-response)
  • Active Update : more support for XComponent
  • Tips & tricks : new section
  • <web:service> can define a <xcl:fallback> action.
  • Better error management.
  • A variable name that has a prefix not bound to a namespace URI is now an error (previously, it was not found).
  • Upgrade to Neko HTML v0.9.5, fixing several issues

Fixed bugs

  • Null attribute values are changed to "" in <xcl:attribute>.
  • A fallback action that failed was able to invoke itself, causing an infinite loop.
  • EXP custom module : an element called recursively were not exporting properties.
  • I/O : error when copying a file that has just been written.
  • io:exists() : the macro were using a bad attribute name.
  • Fixing the string value of objects.
  • Preventing errors when attempting to clear Web responses.
  • Fixing the canonical path for non-prefixed attributes in XMLHelper.

[2006-01-23] RefleX 0.1.2-alpha

Enhancements

  • Upgrade to VFS RC7, fixing some URI/file issues
  • Feed the "How-To" section, update tutorials, add "troubleshootings" section.
  • Errors are now localizable ; when a stack trace is displayed, now it is done only once.
  • I/O : URI relocalization in io:resolve-uri().
  • Misc arrangements in XML:DB : adding dynamic attributes in XFile.
  • Better XPath and PSVI integration with ASL.

Fixed bugs

  • Some bugs with XML caching : SAX to DOM was ineffective in SAXSplitter ; URIReferenceResolver didn't stored correctly XMLBuilder.
  • Bug fixed : text encoding was not used by URIReferenceResolver when resolving text:[encoding]:uri
  • Web : the @mime-type attribute in the <web:mapping> element was inefficient. HTTP headers can be added to #web:x-response with Active Update operations.
  • Fixing prefixes in QNames for correct display of the qualified name of X-operables objects.
  • EXP custom module : such module was not known by the engine if it uses itself.
  • Fixing the canonical path for attributes in XMLHelper.

[2005-12-06] RefleX 0.1.1-alpha

  • Announce.
  • More tutorials.
  • Bug fix in dynamic lists while grouping results.
  • Changing namespace lookup strategy in QNames due to xmlns attributes that don't have the xmlns namespace.
  • Exportable datas in EXP.
  • Using resources in Active Catalogs.

[2005-11-21] RefleX 0.1.0-alpha

First public release. No longer available.