Project History
Release History.
- Version 1.3 (January 23, 2008)
- Version 1.2.1 (April 5th, 2005)
- Version 1.2 (August 8, 2003)
- Version 1.2beta (June 19, 2003)
- Version 1.1 (14 March 2003)
- Version 1.0 (12-2002)
History of Changes.
Version 1.3 (January 23, 2008)
Saved reports: the prefered output format and associated parameters can be stored as part of a saved report. (bruno) Data sources can now be grouped into catalogs, just like reports. The catalogs are specified in the datasources.xml file, in a similar manner as for reports. (bruno) New report feature: step interaction validators. These validators are executed after the individual input fields (parameters and conditions) are validated successfully. They allow to test on the relationship between fields, for example that the value of one input field should be less than the value of another input field. (bruno) New report feature: row-handlers. This allows to plug in handlers which modify the result set rows before outputting them, in a streaming fashion (similar to the SAX XML event parser API). (bruno) Fixes XRP-125. It is now possible to have multiple files for the same user resource bundle. Splitting up the resource bundles in related messages can help managing them. (bruno) Fixes XRP-136. Changed login.html and loginfailed.html to .xml equivalents which are produced by a jx-template. This is to enable to build up absolute paths to images and CSS resources. (bruno) Servlet authentication: all users should now belong to a global role (by default we name it "everyone"), in order for authentication to work. This is the result of Tomcat following the servlet specification closer, making it impossible to define the authorization constraint such that all authentication users are OK regardless of the role. (bruno) Compatibility with newer Cocoon versions: added missing commons-lang reference for xreporter-cocoon to build. (bruno) Make xreporter compile on Java 1.5 and Java 1.6 (as part of this, upgraded javacc to version 4.0). (bruno) Default to Cocoon 2.1.10: adjusted local.build.properties to match this Cocoon release. (bruno) The Cocoon FOP block has a dependency on the Batik block, which was missing in the sample local.blocks.properties. (bruno) IMPORTANT Changed the behaviour of the division operator in the query language, divisions are now performed with high precission. A new integer division operator has been added, using "\" infix notation, for example "5 \ 3". (bruno) Fixes XRP-115. Dependencies: upgraded to commons-httpclient 3.1. Removed dependency on excalibur-concurrent, standard Java 1.5 techniques are now used. Upgraded the included MySQL JDBC driver. (bruno) CSV output now include the charset in the HTTP Content-Type header. (bruno) Fixes XRP-128. Started making use of new Java 1.5 features like generics and the enhanced for-loop to make the code more readable. (bruno) A new attribute on column definitions, allow-order-by, allows to disable these columns from custom order by, similar as the current allow-qbe attribute does. (bruno) On the orderby SQL part, one can add an attribute named "append" containing extra order by clauses which will be added after the user-selected order by. (bruno) Fixes XRP-107. For parameters and conditions with selection lists, the 'short description', if any, is now remembered (also in saved reports and persistent URLs) and available when displaying the output. (bruno) Fixes XRP-55. For saved reports, allow to execute the report on another datasource than the one saved in the report. (bruno) Fixes XRP-134. Make number parsing "non-lenient", i.e. fail when there is extra data after the entered number. (bruno) Fixes XRP-121. To improve error reporting in the case where an error occurs while the xReporter server produces its XML response, the XML response is now first buffered to a byte array until the response is fully generated. (bruno) Fixes XRP-72. Fixed some incorrect data in the 'large data set' test data. (bruno) Arbitrary attributes can be added to datasources. These attributes are available via the DataSource interface, and can be useful in Java extensions. (bruno) 'xreporter seed' now creates the src/java directory (bruno) build.properties read by xreporter-cocoon build can now reference environment variables (was already the case for xreporter build) (bruno) Charting functionality has been added. (bruno) Fixes XRP-102. It is now possible to implement new report output format types, next to the default ones. It also possible to configure format types on a per-report level. (bruno) The menu of the available output formats is now configurable on per-report basis. (bruno) Fixes XRP-66. It is possible to have multiple configurations of one output format type for the same report. So you can have e.g. multiple different PDF stylings of the same report. (bruno) Fixes XRP-67. A new "fast excel" output format has been added which is many times faster for large data sets. The "fast excel" is implemented by a serializer which directly converts xReporter's XML format to Excel, rather than going through XSLT and the HSSF serializer. The downside is that format does not support customization of the output format. (bruno) Persistent URLs can now link to a specific output format. (bruno) Fixes XRP-68. Playing nice with cocoon's HSSFSerializer requires us to specify style- region blocks in ranges smaller then 2000 cells. (mpo) Fixes XRP-116. Explicitely specifying the cast to use avoiding mis-interpretations between an autoboxing java 1.5 compiler and a targetting 1.4 compatible output. (mpo) Thanks to Jeroen Goubert. Fixes XRP-112. Ironing out a minor glitch introduced by recent enhancements to the expression language. (mpo) Thanks to Simoni Gianni. Fixes XRP-113. Fix for mis-interpreted dates and doubles in generated ms-excel files when running the cocoon-server in a locale different from 'en'. (mpo) Thanks to Kristof Van Cleemput. Fixes XRP-39. Several enhancements to the expression language, notably the possibility for infix notation for 'and' and 'or' (can also be written respectively as '&&' and '||'), and a new Round() function. For people using the expression library, there is now the ability to get the list of variables used in an expression. Contributed by Simone Gianni. (bruno) Fixes XRP-113. Applied patch allowing to have multiple path-elements for classpath inside config.xml (mpo) Fixes XRP-114. Applied patch fixing the incomplete error-pipeline. (mpo) Thanks to Jorg Heymans. Fixes XRP-96. Allow SavedQueries to be accessible by not only the creator. Introducing the concept of 'public-saved-reports'. (mpo) Fixes XRP-106. Upgraded mysql driver to 3.0.17-ga. Previous version had encoding issues with static parts in Prepared Statements. (mpo) Introduce temptable/@sub-name to allow for arbitrary suffixing (without whitespace) of the temp-table-name. (mpo) Thanks to Jurgen De Moortel. Fixes XRP-105. Allow for ultimatley flexibile output generation through a custom defined OutputGenerator (i.e. user defined Avalon Component/Java class). (mpo) Fixes XRP-104. Allow for more flexibility in the 'configure columns' interaction. End-users now get the ability to also just 'skip' a column. (mpo) Fixes XRP-103. Fixed issue about the chunked off chunk-size at the end of the resultset. (mpo) Fixes XRP-53. Upgrade for the mysql driver. (mpo)
Version 1.2.1 (April 5th, 2005)
Solving single line env export for shell scripts on solaris. (mpo) Thanks to John Shott. Fixes XRP-29. Committed enhancements XRP-18 and 19 (included server information and forced destroy of report instances) (mpo) Thanks to Bill Bruyn. Fixes XRP-18, XRP-19. Fixed issue with wrong context-paths for interaction.js. (mpo) Committed enhancement XRP-17. Solving 'ambiguous column name' error in the QBE. (mpo) Thanks to Jurgen De Moortel. Fixes XRP-17. Committed enhancement XRP-16. Extra NVL function. (mpo) Thanks to Bill Bruyn. Fixes XRP-16. Committed enhancement XRP-15. Better support for operators requiring multiple arguments (e.g. in, not in,..). (mpo) Thanks to Bill Bruyn. Fixes XRP-15. Fixed bug XRP-8. (mpo) Thanks to Jasmeet Bhatia. Fixes XRP-8. Added a @field attribute to <temptable idref=".."> to survive the whitespace issue. (mpo) Thanks to Bill Bruyn. Added two new date functions to the expression language: AddDate() and SetTime() (mpo) Thanks to Elliot Wiltshire. Enabled the build scripts for cygwin adepts. (mpo) Updated dependencies on both ant (to 1.6.1) and xerces-j (to 2.6.1) (mpo) Added support for letting xreporter bind to a specific IP address/hostname for use on multi-host machines. (i.e. configuring different IP addresses on the same hardware) (mpo) Thanks to Elliot WiltShire. Added support for a new syntax for <group>-ing of reports. Groups can now act on more then one column and can implicitely describe a default summary-field (through group/@label and group/@expression) to be used as the combined value of the grouping columns. (mpo) Upgraded ICU4J library to version 2.6 (jar has become smaller). (bruno) Ported the presentation layer to Cocoon 2.1. Cocoon 2.0.4 is not supported anymore. (bruno) Fixed a NullPointerException when trying to group on a column containing NULL values. (bruno) Fixed date handling in Excel output for reports with grouping. (bruno) Added german translation of the resource bundles, contributed by Uwe Stelzer. (bruno) Added norwegian translation of the resource bundles, contributed by Espen Stromsnes. (bruno) Added italian translation of the resource bundles, contributed by Giovanni Martano. (bruno) Support the stylesheet customisation technique also for POI (gnumeric/excel) stylesheets. In gnumeric.xsl, handle the case where the report XML is not a recognized format. (bruno) Thanks to Espen Stromsnes.
Version 1.2 (August 8, 2003)
The reports directory can now be at a different location from the rest of the configuration files, by using the reports.home property in the build.properties file. (bruno) Thanks to Tim Larson. Support the old resultset navigation (not using absolute navigation) again, while also supporting the current implementation. This can be configured in the config.xml using the new "resultset-navigation-strategy" element. This allows to use the DB2 JDBC driver. (bruno) If a JDBC driver consists of multiple jars, then those can now all be listed in the location attribute using comma as the separator. (bruno) Support fixed width columns and alignment in text (CSV) output by specifying them in a parameterisation file. Support XSL transformations in the CSV pipeline. (bruno) Thanks to Tim Larson. Fixed the fragile logout link. The logout link should now be correct independent of the servlet context path onto which Cocoon is mounted. (bruno) Thanks to Tim Larson. Added the possibility to define links between reports. This allows to have a kind of "drill down" functionality. In the link you can specify parameters that should be passed on to the new report. The links are defined in the report definition. See the new report documentation below the title "Linking between reports". There is also a new sample in the testconf to illustrate this feature (see the pres_party_master and pres_party_detail reports). (bruno) Grouping is now supported in the Excel output. (bruno) Added a couple of new date functions to the expression language: BeginOfMonth, EndOfMonth, BeginOfQuarter, EndOfQuarter, BeginOfYear, EndOfYear. (bruno) Thanks to Wim Van Acker. Fixed a bug in the type-checking of the comparison functions of the expression language. Thanks to Wim Van Acker for spotting this one. (bruno) Marked *.bat files as executable in CVS to please cygwin users. (bruno) Added a few functions to the expression language: DaysInMonth, Month and Year. (bruno)
Version 1.2beta (June 19, 2003)
It is now possible to go back to the interaction steps from the output page. To enable this the name of the first step which has an interaction part is included in the report output metadata. Also, after submitting a step, the parameters and conditions of the next steps and QBE, column and sort settings are not cleared anymore. (bruno) Excel output: added an extra sheet containing some common report metadata (user, title, description, datasource, ...), a description of the QBE query, and the parameters and conditions entered during interaction steps. Based on a contribution by Jurgen de Moortel. (bruno) A description of the QBE configuration is now included in the report output metadata. The default output.xsl stylesheet will also display this. Structurally the description is the same as what is inserted in the SQL statement, but instead of field names the column titles from the report definition are used, and instead of the actual SQL operators more descriptive representations are used, and the values are also formatted as they would otherwise be displayed to the user. (bruno) Values of parameters and conditions are now included in the report metadata on the report "output" page. The default HTML stylesheet will also show them. Contributed by Irv Salisbury. Note: the "name" that is displayed for the parameter or condition is the one specified in the title-element of the parameter or condition (in the report definition). Previously the title element served no purpose. You can simply copy the prompt element and rename it to title to start with (see also the example reports included in the testconf). The difference between the title and prompt elements is that the prompt is what is shown when the user is asked for something, while the title is shown when the value is outputted. Both can of course refer to the same resource bundle key. (bruno) Made the XML Schema validation easily usable by integrating it into the main build script. You can now simply enter "xreporter validate" in an xReporter configuration directory and it will validate all the reports in the reports directory (= all files with an xml extension). This script will ignore any DOCTYPEs or xsi:noNamespaceSchemaLocation attributes you may have set, but will instead always use xReporter's schema. (bruno) Made build system more robust and clean by dropping the use of the build.xml file within the xReporter configuration directory (aka conf.home). Instead you should now use the 'xreporter' and 'xreporter-cocoon' scripts (located within the bin directories of the respective repositories). See the upgrading document for more details. Note that the Ant build files themselves didn't change, it is only the way they are launched that has changed. (bruno) xReporter now periodically (by default: every 10 seconds) examines the content of the report directory to see if there are any reports changed, removed or added. This means it is no longer required to restart Phoenix each time you make a change to a report definition file. Report instances already living in memory will keep working against the "old" report definition they were created for. (bruno) User resource bundles (thus ReportMessages and DataSourceMessages) will now be automatically reloaded when they change, it is no longer necessary to restart Phoenix. The files are checked by a background thread which runs (by default) every 5 seconds. (bruno) Consistency change: the xr:customer element is moved from xr:info to xr:info/xr:user/xr:customer. (bruno) Users can now save their reports. The saved state includes everything a user can modify or enter: the values entered during the interaction steps, the column layout, the QBE conditions and the sort order. The reports are stored in a database. In the outerthought skin, you'll see a "Save report" link in the left navigation, and a "Saved reports" link in the top (blue) navigation. (bruno) Values entered for parameters and conditions can now be remembered by xReporter. This happens on a per-user basis. For example, if a user enters a value in a parameter in some interaction step, and at a later time select that same report again, the same value will be there again. This feature is activated simply by adding an attribute 'store="someid"' on the parameter of condition. This feature works across reports: if the same id is used for a parameter in two different reports, they will share the same value. The only requirement is that their types (string, long, ...) are the same. The values are stored in a database table. For an examle report, see the bigtabl2 report included in the testconf. (bruno) Added a "green bar" effect (alternating rows in the output table have a different background color). Enabled in both the outerthought and default skins. The actual color is set in the CSS. (bruno) All authorisation related code that was previously scattered around in DataSourceManager, UserManager and ReportManager has been pulled out of there and moved into a new AuthorisationManager component. This makes it easier to implement your own authorisation. Next to that, authorisation-related logging is now quite detailed (if you lower the log level of the "authorisationmanager" target to DEBUG in the environment.xml file). (bruno) Spanish translations of the resource bundles have been added, thanks to Antonio Gallardo. (bruno) (MIGHT BE) IMPORTANT: to synchronize file deletions when deploying to Cocoon, the deploy target will now first delete the mount/xreporter directory. (bruno) When having e.g. 51 rows with chunking per 50, navigating to the 51th row was not possible. (bruno) Added sortcode to reports, reports are sorted on this sortcode in the reportcatalog. (bruno) (Some) support for IN and NOT IN operators in the presentation layer (backend support was already there). You can enter up to 4 values for these operators. (bruno) In the XML output for an interaction step, in the datatype description the base type (string, date, ...) was missing. (bruno) The xreporter-cocoon part of xReporter can now also run on Java 1.3. (bruno)
Version 1.1 (14 March 2003)
Added more extensive parametrization possibilities in the pdf generation pipe. (Check the PDF on the 'presidentgrouping' report. (You'll need to copy the src/textcases/reports/customlayout/fo/presidentgrouping.xml to your conf.home) (mpo) Introducing and advocating (in doco's) the usage of build.properties to avoid adding -D flags to the commandline for each build cycle. (mpo) Found all resourceBundles in the distribution and changed them to survive non en-US locales on the server side. (also inside xreporter-cocoon) (mpo) Changed the i18n documentation (added warning to others) accordingly. (mpo) Removed incorrect and unneeded references to css files from the login.html and loginfailed.html pages. (bruno) Added support for grouping and calculating summaries in reports. These are specified using <group>-tags in the report definitions. See the "presidentgrouping" example and the updated report documentation. Also updated the XML Schema to reflect these changes, and added new testcases related to grouping. (bruno) Made use of IBM's BigDecimal class internal to those classes that really need its functionality (especially in the expression language). (bruno) Fixed some important errors in the XML Schema: some elements were required by the schema while in fact they are not, and the keyref checking for temptable id's was too strict. (bruno) Added validate.xml/validate.sh scripts to help in checking the XML Schema for report definitions. See the notes on top of the validate.xml file for usage instructions. This uses the Xerces XML Schema validation and does full schema checking (to check the schema itself for correctness). The schema used for validation is specified externally, so that the report definitions don't need to contain references to the schema. (bruno) Did a major rewrite of the overview document in the documentation. (bruno) Did some refactoring to minimize dependency on IBM's ICU4J library. This becomes important when we'd like to release some components of xReporter as standalone modules, without requiring that big jar. (*) in some places removed use of IBM's classes completely because they were not needed (Java's default was sufficient) (*) for the rest, moved all use of the ICU4J library behind a facade class (I18nSupport), which will test in a static initialiser whether the ICU4J library is present. If it is, it will make use of it, and otherwise fall back to what's available in the JDK. (bruno) Added build target "standalone-jars" to build xreporter-expression.jar and xreporter-grouping.jar, containing standalone functionality that can be reused in other applications (cfr Cocoon GroupingTransformer). (bruno) Added a 'skinning' concept, which is an evolution of the previous "custom stylesheet" approach. It is now easier to use your own skin: the deploy system can copy over you own skin directories (if a property called extra.skins.dir is provided), and the skin to be used is configured in the cocoon.xconf (using the 'defaults' input module). The sitemap will then automatically pick the correct stylesheets and resources based on the skin name. (bruno) Report-specific stylesheets and stylesheet-parameterisation files should now be placed in conf.home/reports/customlayout. Previously they were part of the custom stylesheets, but since these files belong to specific xReporter configuration rather than to a skin, they were moved. On deployment of xreporter-cocoon, these files (the ones in the customlayout directory) are copied to the Cocoon installation. As a consequence, the build script for xreporter-cocoon now also requires conf.home as a parameter. (bruno) Updated the ICU4J jar to version 2.4. A user reported a problem that was solved by updating to this version. To reduce the size of the jar, the following files were removed from them: Transliterator_Han_Latin.txt, Transliterator_Han_Latin_Definition.txt and Transliterator_Han_Latin_EDICT.txt. These files make up more than half of the package (4 MB). (bruno) Added a second skin: next to the orange/blue one, there's now a prettier outerthought-look skin. (bruno) Added pipelines to enable usage of images, css and js in the login pages. (bruno) Patched Cocoon's I18nTransformer to handle multiple resource bundles, and backported those changes to xReporter. This allows us to have common, skin-specific, and report-specific resource bundles. Previously all translations keys had to be in one resource bundle. A side effect of these changes is that the new I18nTransformer requires a new namespace: the version number in the namespace changed from 2.0 to 2.1. (bruno) Removed the cocoon jars from the xreporter-cocoon module, the build will now directly refer the ones in webapps/cocoon/WEB-INF/lib. This tightens xreporter-cocoon less to a specific Cocoon version. (bruno) When creating a new conf.home directory, the build script will now copy a build.xml to the conf.home which allows to invoke the deploy targets directly from the conf.home directory. This is easier and more logical from a user point-of-view. Also, this allows to have a build.properties for a specific xReporter configuration. (bruno) Occurences of @conf.home@ in conf.home/sarconf/config.xml will now be replaced by the actual conf.home location at deploy-time. This allows to move the conf.home directory without requiring any configuration changes. (bruno) Some other build changes: (*) files in conf.home/src/java are automatically build to conf.home/build/user-extensions.jar (*) put all builded things in conf.home/build instead of conf.home/lib (*) remove conf.home/build in clean target (*) ... (see also upgrading document) (bruno) Moved the test configuration in its own CVS module, instead of creating it in the testconf build target. This allows to update to the latest testconf without needing to recreate the testconf, and makes it easier to change the testconf itself. (bruno) Removed wings-related things because they were too alpha-quality. (bruno) Added Substring and Length functions to expression language. (bruno)
Version 1.0 (12-2002)
Official first release of xreporter. (bruno)





There are no comments.