JWare/AntXtras Foundation Version 2.0.0b2, Release Aug 2009 ----------------------------------- This document contains the major AntXtras version change notes. For the most recent information, visit the website at http://antxtras.sourceforge.net/. ------------------------------------------------------------------------------ This version of AntXtras represents a significant rework of the last release (0.5.2). While the effective behavior of the vast majority of the components remains the same, many structural changes (like Java packages) are incompatible with the 0.5.x series. Additionally, some lesser-used or test-only components have been either removed or repackaged into optional antlibs outside the core antlib; for instance, most of the 'emit' feedback components have moved to the standalone Log4Ant project and many of the advanced construction components have migrated to other projects. The set of changes is long; refer to the changelog report included in the release. While all of the beta components have been thoroughly tested, this is NOT a 2.0.0 feature-complete release; in particular, some function shortcuts and enhancements will be added in the next beta (due two months after the initial beta release). CHANGES IN 2.0.0b2: ------------------- => Added short-shortcuts for the builtin funcuts to access properties($p:), variables($v:), and references($v:). FS#89. => Fixed $password: to look for 'run.passwords' instead of pre-2.0.0 'build.passwords' as described in features. FS#155 => Implemented $system: and $sysenv: function shortcuts. Example Usage: FS#100 => Moved the less frequently used function shortcuts to the advanced antlib and added org/jwaresoftware/antxtras/funcuts/antlib-advanced.xml to define them. => Added missing '$isomillis:' datetime function shortcut into antlib. CHANGES IN 2.0.0b1: ------------------- => [INCOMPAT] Changed the distributed jar file names. The new AntXtras distribution includes the jar files shown below: + jw-antxtras.jar (Most used components like , ) + jw-antxtras-advanced.jar (Less used components like ) + jw-antxtras-antunit.jar (Test components like ) EXAMPLE: Defining a custom AntXtras 2.0.0 classpath: => [INCOMPAT] Repackaged entire AntXtras distribution under the org.jwaresoftware.antxtras namespace. Many packages split into smaller more cohesive modules and components renamed to reflect their default antlib component names. See AntXtras antlib.xml files for details. The preferred xmlns prefix is 'oja:' and the preferred xmlns URI is 'jware.antxtras'. EXAMPLE: Loading AntXtras antlib from a custom classpath (above): => [INCOMPAT] Removed the following components from AntXtras completely; source code still available under the 'sources/legacy' directory in the AntXtras source distribution: , , , , , , , , . The following have been moved out of the main AntXtras antlib into optional antlibs or new projects (AntXtras 0.5.x names used). Now in jw-antxtras-advanced.jar and jw-antxtras-antunit.jar: , , , , , , , , , and . Now in Log4Ant: , , , , , and . => [INCOMPAT] The 0.5.x "value URIs" feature is now part of the 2.0.0 "Function Shortcuts" (aka 'funcuts') feature. Virtually all of the older classnames have been updated to reflect this new association. For the most part, the function shortcut names have remained the same as their 0.5.x schemes. Some infrequently used shortcuts have been retired and several new function shortcuts added. See the function shortcuts antlib for the complete 2.0.0 list of funcuts. See: /antxtras/documents/features/funcuts/ => [INCOMPAT] Both recursive property expansion and function shortcuts are enabled by default if you use the install antlib. You no longer use the alternate '@()' way of dereferencing nested properties. So, for example, you use "${$basename:${basedir}}" instead of the older forms: "${$basename:@(basdir)}" or "${$property:basedir|$basename:}. Regular nested properties work as expected; for example the value ${conf.${env}} works as you would expect for different values of ${env}. => [INCOMPAT] Resource bundle based messages type now actually assumes the incoming resource is *IS* a resource bundle base name and looks for locale-aware versions FIRST. It still understands path-based resource names, files, and URLs-- as a SECOND choice. To refer to a bundle-based message you need to use the renamed 'messageid' attribute on the appropriate component. EXAMPLE: Loading locale-aware messages into your Ant space: => [INCOMPAT] To refer to a bundle-based message use the 'messageid' attribute name instead of the older 'msgid' (still exists as a synonymn until AntXtras 3.0). Similarly to define an inlined message use the 'message' parameter instead of the older 'msg' attribute. This change affects all AntXtras components that accept message ids like the , , and . EXAMPLES: => [INCOMPAT] With the support of recursive property resolution as the default in AntXtras 2.0.0 most function shortcuts now assume their input values are literal values and NOT property names as was the case in the 0.5.x series. In particular the following shortcuts now interpret their inputs literally not as property names: $not, $truefalse, and $isdefined. You can still override this default setting using the '?' modifier; for example: '$truefalse:completion.clean?var'. => [INCOMPAT] Reworked the AntXtras condition and rules framework. Lots of cleanup to make parameters, condition names, function shortcut schemes, etc. consistent-- hence some breakage with old antlibs occured. Most notably (but best to check new antlibs): + is replaced by + is now + is now just + is replaced by + is replaced by + , are gone; just use and instead. + , are gone; just use and instead. **Note: for some of the function shortcuts the "short shortcuts" still exist like '$isdir:' and '$isref:'; however, now the fully qualified names (to match the conditions) are also supported. So, '$isdirectory:' and '$isreference:' work now in 2.0.0. The intent is that you have to learn just the main condition name and then be able to use it in all the different ways. => [INCOMPAT] The task displays the string friendly version of a reference by default. For example a regular expression will print as the underlying pattern -- not the object reference anymore. => [INCOMPAT] The (formerly called ) now only works in a local mode. The 'mode' and 'name' parameters are no longer supported. If you need to create a sub-project use the task instead. => [INCOMPAT] The taskset has been removed. This functionality is now provided more effectively by standard Ant macrodefs. The required manager task has also been removed as it is not needed without s. => [INCOMPAT] If the supplied vendor name is not one of the known AntXtras projects, the task now looks for a resource named '-version.properties' in the component's task path (builtin or specified). The format of the properties file is shown in the sample at: /files/antxtras/sample-version.properties EXAMPLES: <-- Looks for 'myextensions-version.properties' --> => The configuration taskset now supports properties-like data objects like and AntXtra's own type. EXAMPLES: ... => Enhanced task to allow overlay of additonal properties holders like propertysets, loaded properties files, etc. => Enhanced to allow it execute any target (including overridden ones) from an imported project. -SSMC