| Changes from Ant 1.3 to Ant 1.4 |
| =========================================== |
| |
| Changes that could break older environments: |
| -------------------------------------------- |
| * JUnitReport now uses the xalan redirect extension for multi-output. |
| With Xalan 1.2.2 it forces the use of bsf.jar in the classpath. |
| (Available in the xalan distribution). It is recommended to switch |
| to Xalan 2.x that do not need it. |
| |
| * Zip.setWhenempty() has changed its signature. |
| |
| * <rmic> is now implemented using a factory. This makes extending |
| rmic to use a new compiler a lot easier but may break custom |
| versions of this task that rely on the old implementation. |
| |
| * several Zip methods have changed their signature as we now use a Zip |
| package of our own that handles Unix permissions for directories. |
| Furthermore <zip> will now use the platform's default character |
| encoding for filenames - this is consistent with the command line |
| ZIP tools, but causes problems if you try to open them from within |
| Java and your filenames contain non US-ASCII characters. Use the new |
| encoding attribute of the task and set it to UTF8 to get the old |
| behavior. |
| |
| * The <pvcs> task has been moved to a package of its own. |
| |
| * JUnitResultFormater has two additional methods that must be |
| implemented by custom formatters. |
| |
| * Ant will no longer use the canonical version of a path internally - |
| this may yield different results on filesystems that support |
| symbolic links. |
| |
| * The output generated by the xml formatter for <junit> has changed |
| again, it doesn't format the numeric value in the time attribute anymore. |
| |
| * Pattern matching rules have changes slightly, the pattern foo* |
| doesn't match files contained in a directory named foo - use foo/* |
| instead. |
| |
| * <fixcrlf> will not remove trailing whitespace at the end of lines anymore. |
| |
| * The Classloader usage has been changed for the taskdef, property, available |
| and sql tasks so that it delegates to the parent classloader. This may cause |
| ClassNotFoundExceptions to be thrown if a system class attempts to load a |
| class in the taskdef's classpath (typically factory objects). |
| |
| * Ant now allows multithreading of tasks and the containment of tasks within |
| other tasks. This can break customer listeners which do not expect messages |
| from a task before the previous task has finished. |
| |
| * Ant now installs its own ouput stream into System.out to route output to the |
| task currently executing on the current thread. This also means that all |
| output is now routed as Ant message events. Customer listeners and loggers |
| should not call System.out at any time. This has always been true but such |
| usage now will cause problems due to possible recursion. |
| |
| * Invalid manifest files will now cause build failures in the <jar> task. |
| |
| * Ant Introspection now looks for methods with method names starting with |
| addConfigured. When called these methods are passed an argument after it has |
| been configured from the build file. Custom tasks supporting nested elements |
| starting with the name configured will no longer function. |
| |
| * The environment variable JAVACMD that can be used to specify the |
| java executable to Ant's wrapper scripts must not contain additional |
| command line parameters any longer - please use the environment |
| variable ANT_OPTS for such parameters now. |
| |
| * Ant's wrapper scripts now quote the CLASSPATH environment variable, thus |
| supporting classpaths which refer to directories containing spaces. This means |
| that the CLASSPATH environment variable cannot have quotes. Any quotes should |
| be removed. This will not affect the operation of the CLASSPATH environment |
| variable in other contexts. |
| |
| * A delete task like |
| <delete includeEmptyFilesets="true"> |
| <fileset dir="somedir" /> |
| </delete> |
| will now remove "somedir" as well, unless there are still files left |
| in it (matched by the default excludes). |
| |
| * The copy task will now fail if the file to be copied is not found. |
| |
| * Ant properties defined in properties files now behave the same way as |
| properties defined in the build file. In particular the $ character needs |
| to be escaped in property values by doubling it to $$. So, to define a |
| property with the value $hello, you need to define it in a properties file |
| as |
| test.prop=$$hello |
| This was not the case in Ant 1.3 |
| |
| Other changes: |
| -------------- |
| |
| * New tasks: ear, p4counter, record, cvspass, vsscheckin, vsscheckout, |
| typedef, sleep, mimemail, set of tasks for Continuus/Synergy, dependset, |
| condition, maudit, mmetrics, jpcoverage, jpcovreport, jpcovmerge |
| |
| * Ant now uses JAXP 1.1 |
| |
| * rmic now supports Kaffe's and Weblogic's version of rmic. |
| |
| * new magic property build.rmic to chose the rmic implementation |
| |
| * <tar> will now add empty directories as well |
| |
| * you can now specify a description for <p4change> |
| |
| * <touch> can now work on <fileset>s |
| |
| * <uptodate> now supports a value attribute |
| |
| * <fail> supports nested text |
| |
| * <fixcrlf> won't override files that are already in the correct |
| format. |
| |
| * <sql> now supports REM comments as well as // and -- |
| |
| * <jar> now has a nested <metainf> element following the same idea as |
| <war>'s <webinf>. |
| |
| * <pvcs> can now handle multiple projects. |
| |
| * <available> now has a "type" attribute you can use in conjunction |
| with the "file" attribute to specify whether the "file" you're |
| looking for is a file or a directory. |
| |
| * New <junit> formatter named "brief" |
| |
| * <ejbjar> changes |
| * Add support for Borland Application Server to the <ejbjar> task using |
| a <borland> nested element. |
| * Add support for iPlanet Application Server to the <ejbjar> task. Also |
| includes some iPlanet utility tasks |
| * Add support for JBoss Application Server to the <ejbjar> task. |
| * Add a naming attribute to control the naming scheme that |
| ejbjar uses to name the generated EJB jars. |
| * Weblogic element now sets the compiler class for EJB 2.0 beans |
| * <dtd> elements can be specified at the <ejbjar> level for building generic |
| beans |
| * <dtd> elements can now be URLs |
| * Allow the manifest to be specified for the generated jars |
| * The weblogic element now supprts an attribute noEJBC to skip the processing |
| of the jar by ejbc. The ejbc step will then occur at deployment |
| * weblogic will tell ejbc to use Jikes compiler if build.compiler is set to |
| jikes. It can be restored to the default, javac, operation if desired. |
| |
| * Allow the <sql> Delimiter to be set in the so that Oracle stored procs may be |
| entered |
| |
| * <execon> and <apply> can now optionally skip empty filesets. |
| |
| * <javadoc> has a new useexternalfile attribute that makes it use a |
| temporary file for sourcefile and package names - helps to defeat |
| command line length limitations. |
| |
| * Data types like <path> can now be defined inside of <target>s |
| |
| * you can now specify a classpath for <style> - the XSLT processor |
| will be loaded from this path |
| |
| * added a force attribute to <style> to support dependencies that the |
| task cannot determine itself (dependency on parameters, not file |
| modification times for example) |
| |
| * added vmlauncher attribute to exec tasks. This defaults to true. If |
| it is set to false, the VM's ability to launch commands in bypassed |
| and the OS shell, either directly or through the auxiliary antRun |
| scripts is used. |
| |
| * regexp mapper now supports the java.util.regex package of JDK 1.4. |
| |
| * New filesonly attribute for <zip> and friends to suppress directory |
| entries. |
| |
| * New update attribute for <zip> and friends - update an existing |
| archive instead of creating a new one. |
| |
| * <apply> and <execon> have been merged into a single task. |
| |
| * added vssver.scc to the default excludes |
| |
| * <available> has a new filepath attribute/nested element that allows |
| you top search for a file in a given path. |
| |
| * <junit> can now optionally set a property on test failure. |
| |
| * <taskdef> can now define several tasks at once, reading the |
| name/classname pairs from a property file or resource. |
| |
| * <unzip/unjar/unwar> and <untar> now have an overwrite attribute that |
| defaults to true. If set to false, files that are newer than the |
| files in the archive will not be replaced. |
| |
| * <patternset> and <fileset> now support nested <in/excludesfile> |
| elements - using these you can have more than one in/excludes file |
| per <patternset>. |
| |
| * Three new supported compilers for javac: kjc for kopi, gcj for the |
| gcc frontend and sj for Symantec's compiler. |
| In addition extJavac or the new fork attribute can be |
| used to run the JDK's javac in a JVM separate from Ant. |
| |
| * <fixrlf> can now with CR only line-ends and can use an arbitrary |
| between 2 and 80. |
| |
| * The .NET tasks have been adapted to the beta2 release of the framework. |
| |
| * <move> will now try to rename() files before copying them byte by |
| byte - only if filtering is of, of course. |
| |
| * <ant> and <antcall> tasks now support a new attribute inheritAll. When set to |
| false, only user properties are passed through to the target Ant instance. |
| This includes properties set on the command line and properties explicitly |
| passed |
| |
| * <javadoc> now skips off line links if the package list cannot be found. |
| |
| * <wlrun> now allows the security policy file to exist outside the weblogic |
| directory. |
| |
| * <java> task will set the Thread contextClassLoader under JDKs 1.2+ to the |
| classloader for the class being executed. |
| |
| * Introduce the concept of a TaskContainer - a task or element which can contain |
| Ant Tasks. |
| |
| * Add new tasks implementing the TaskContainer interface <parallel> and |
| <sequential> which allow parallel execution of tasks to be specified. |
| |
| * <depend> task will now take into account dependencies on jar files and class |
| files from a given classpath. |
| |
| * <jar> manifest entries may now be specified in the build file either |
| completely or to be merged with a manifest file. |
| |
| * <tstamp> task custom formats now support locales. |
| |
| * Added a listner which will forward events to Log4J. The log4j configuration |
| file should be in the directory from which Ant is run or passed as a system |
| property using a JVM argument. |
| |
| * Introduced the concept of <filtersets> to allow for more control in which |
| filters get applied in a <copy> or <move> operation. |
| |
| * Added nowarn attribute to javac and deprecated the Jikes-magic property |
| build.compiler.warnings. |
| |
| * The <depend> task cache format has changed and all dependency information is |
| now stored in a single file. |
| |
| Fixed bugs: |
| ----------- |
| |
| * Testcases have been made independent of current working directory. |
| |
| * Input ZIP-Files will be closed when using a <zipfileset>. |
| |
| * p4 tasks now don't fail if user, port or client have been omitted |
| (and this is acceptable for the context of the command). |
| |
| * <javah>'s outputfile attribute will be resolved as relative to the |
| projects basedir. |
| |
| * <antstructure> should create a valid DTD for propertyfile.operation.entry |
| and omit tasks it fails to load. |
| |
| * won't try to pass a -bootclasspath flag to javac 1.1 anymore |
| |
| * <style>'s style attribute no handles absolute paths correctly. |
| |
| * <delete includeemptydirs="true"> now deletes more than just the leaf |
| directories. |
| |
| * You can now specify a <fileset> for a directory that doesn't exist at |
| declaration time but will created before the fileset gets used for the |
| first time. |
| |
| * If the quiet attribute has been set, <delete> will handle <fileset>s |
| with non-existing directories gracefully. |
| |
| * Output written by testcases will now be captured by the <junit> task |
| and passed to the formatters. |
| |
| * Quote the -group parameter to Javadoc as per the specification |
| |
| * Initialise classes when loaded through the AntClassLoader - that is, run |
| static initializers |
| |
| * Implement getResource() and getResources() in AntClassLoader |
| |
| * Create the <ejbjar> weblogic command line as a set of arguments rather than |
| as a single line. Avoids problems with paths which contain spaces. |
| |
| * <ejbjar> now fails when the weblogic ejbc compiler reports an error. |
| |
| * Make the AntClassLoader load resources in the same order as it currently |
| loads classes. |
| |
| * Handle classpaths with spaces |
| |
| * Make sure XSLT processors close their output files in <style>. |
| |
| * perform proper uptodate check in <rmic> when compiling for IIOP. |
| |
| * <jjtree>'s uptodate test works even if outputdirectory is not the |
| parent dir of target |
| |
| * <copy> will remove target file (if it exists) before writing to it - |
| this avoids problems with links on filesystems that support them. |
| |
| * <ftp> now properly recurses remote directories. |
| |
| * <ftp> closes remote connection when it's done. |
| |
| * <junit> tries to include all necessary classes for the task itself |
| to the classpath when running in fork mode - doesn't work for JDK 1.1 |
| |
| * <apply> and <execon> do now execute the command only once, if you |
| specify the parallel attribute - instead of once per fileset. |
| |
| * directory based tasks and fileset could miss some included files in |
| directories that have been excluded |
| |
| * <fixcrlf> failed for large files. |
| |
| * <move> removed files you tried to move to themselves. |
| |
| * <sql> task will not try to print the result set unless the query succeeded. |
| |
| * Ant classloader will now ignore paths which are invalid relative to the |
| project base |
| |
| * <ejbjar> weblogic elements check for jar file changes has been fixed. |
| Previously some changes would not be included. |
| |
| * properties loaded from properties files are now resolved internally. This |
| removes the spurious warnings about usage of properties which have not been |
| set. |
| |
| * <jar> task and friends now process the JAR manifest to ensure it is valid. |
| |
| * The task finished event now includes any exception thrown by the task. |
| |
| * <java> task now supports a jvmVersion attribute so that if another JVM is |
| being used, Ant can determine which options to use for features such as the |
| VM memory limits |
| |
| |
| Changes from Ant 1.2 to Ant 1.3 |
| =========================================== |
| |
| Changes that could break older environments: |
| -------------------------------------------- |
| |
| * Ant doesn't search for the buildfile anymore, unless you use the new |
| -find argument. |
| |
| * <perforce> has been replaced by a number of new tasks. |
| |
| * <javac> is now implemented using a factory. This makes extending |
| javac to use a new compiler a lot easier but may break custom |
| versions of this task that rely on the old implementation. |
| |
| * The output generated by the xml formatter for <junit> has changed a |
| little, it doesn't append " sec" in the time attribute anymore. |
| |
| Other changes: |
| -------------- |
| |
| * A GUI Frontend: Antidote. This is currently in development. At this |
| time, this is not part of the Ant release, although the source is |
| included if you are interested. |
| |
| * New tasks: stylebook, propertyfile, depend, antlr, telnet, csc, |
| ilasm, apply, javah, several clearcase tasks, junitreport, sound |
| |
| * Added output attribute to <java>. |
| |
| * Added nested zipfileset element to <zip> |
| |
| * Changed <sql> so that printing is at the task level rather than |
| the statement level. |
| |
| * javadoc task will pass -d flag to any doclet if the destDir attribute is |
| given. If the doclet does not accept the -d flag then omit the destdir |
| attribute. |
| |
| * <cab> can work on non-Windows platforms with the help of libcabinet. |
| See http://trill.cis.fordham.edu/~barbacha/cabinet_library/. |
| |
| * <ftp> now supports passive mode. |
| |
| * New <mapper> data type that can be used to get influence on the |
| target files for some tasks like <copy> or enable new types of tasks |
| like <apply>. |
| |
| * <execon> provides more control over the command line now, the names |
| of the source files are no longer required to be at the end of the |
| command. |
| |
| * Style tasks will now support TraX compliant XSL processors if one is present |
| in your classpath. |
| |
| * Added a failonerror to the javac task. If set to false, the build will |
| continue even if there are compilation errors. |
| |
| * Added nested format elements to the tstamp task allowing additional time |
| formats to be defined for arbitrary properties. |
| |
| * Added classpath attribute and nested classpath element to <property> |
| to make the resource attribute more powerful. |
| |
| * ${} property expansion will now be performed on the patterns read |
| from files specified as includesfile or excludesfile attributes. |
| |
| * The <tar> and <untar> tasks now support GNU format for handling paths |
| which are greater than 100 characters in length. In addition the <tar> |
| task now supports nested filesets through which the file permissions |
| may be controlled. |
| |
| * wlrun, wlstop and ejbjar now support Weblogic 6.0 |
| |
| * The MPasre task has been updated to work with MParse 2.0 |
| |
| * The documentation has been significantly updated. |
| |
| |
| Fixed bugs: |
| ----------- |
| |
| * <signjar> doesn't use deprectated methods anymore. |
| |
| * javadoc's failonerror attribute works again |
| |
| * javadoc's additionalparam attribute will now be split into separate |
| parameters (on spaces) to allow for more than one parameter. |
| |
| * Changed <sql> task so that printing result sets works on Oracle |
| |
| * Changes to ddcreator and ejbc helper to respect the descriptor hierarchy |
| keppgenerated in ejbc can now be turned off |
| |
| * ejbjar now correctly ignores <ejb-ref> elements in the deployment descriptor. |
| CMP files are included by parsing the weblogic deployment descriptor rather |
| than relying on the naming convention used in ant 1.2 |
| |
| * ejbjar includes super classes and super interfaces into the generated ejb |
| jar files. The <support> nested element allows support classes to be |
| included in the EJB jar. The toplink element should now correctly locate |
| the toplink descriptor. |
| |
| * <vssget> now correctly deals with spaces in arguments |
| |
| * <jar> fails early if a given manifest file doesn't exist |
| |
| * <rmic> doesn't search for the _Skel file anymore when stubversion is |
| set to 1.2. |
| |
| * <rmic> uses the the same classpath to verify a class can be rmic'd |
| as it passes to the compiler. |
| |
| * org.apache.tools.mail.MailMessage (and therefore <mail>) can now |
| handle SMTP servers sending multi line responses. |
| |
| * nested <classpath> elements of <taskdef> now work for <taskdef>s not |
| nested into <target> as well. |
| |
| * <property> and <available> will search for the resource "foo" instead |
| of "/org/apache/tools/ant/taskdefs/foo" when given a relative resource |
| name foo. |
| |
| * Handle build files in directories whose name contained a "#" character |
| |
| * <junit> can now log to files whose name contains a comma as well. |
| |
| * The AntClassLoader now refers to the loader which loaded it, any |
| requests it does not handle itself. Previously these went to the |
| primordial loader. |
| |
| Changes from Ant 1.1 to Ant 1.2 |
| =============================== |
| |
| Changes that could break older environments: |
| -------------------------------------------- |
| |
| * Semantics of <property> has changed again in the hope to be more |
| intuitive. ${} expansion now happens at runtime and <property> tags |
| living inside of targets only take effect if they are visited at |
| runtime. |
| |
| As a side effect of this change, task's attributes get set at runtime |
| not at parser time as well, which might change the results of |
| <script>s or other custom tasks that reference other tasks by their id |
| attribute. |
| |
| * copying of support files in <javac> has been removed - as well as |
| the filtering attribute. |
| |
| * the <expand> and <keysubst> tasks have been removed. |
| |
| * the ignore and items attributes of directory based tasks have been removed. |
| |
| * the command line switches _not_ starting with - have been removed. |
| |
| * Path and EnumeratedAttribute have been moved from |
| org.apache.tools.ant to org.apache.tools.ant.types. |
| |
| * the class attributes of <available>, <java>, <rmic> and <taskdef> |
| have been removed. |
| |
| * the src attribute of <chmod> has been removed. |
| |
| * <patch> and <javadoc> have lost some of their attributes. |
| |
| * <java> and <cvs> have lost some undocumented attributes. |
| |
| * the Unix antRun script would search for command.sh in the directory |
| it changed to and invoke this instead of command if present. This |
| behavior has been dropped. |
| |
| * <ejbjar> task syntax has been changed significantly |
| |
| * <exec> is no longer implemented by org.apache.tool.ant.taskdefs.Exec. |
| Custom tasks that rely on Project.createTask("exec") to return an |
| instance of this class are going to fail. |
| |
| * nested <include> and <exclude> elements expect the value of their |
| name attribute to be a single pattern, they don't accept multiple |
| patterns anymore. Split them into multiple elements of the same type. |
| |
| * <delete dir="somedir" /> will now delete the directory itself as |
| well as all included files. If you just want to clean out the |
| directory and keep the empty one, use a nested fileset. |
| |
| Other changes: |
| -------------- |
| |
| * New tasks: antstructure, cab, execon, fail, ftp, genkey, jlink, |
| junit, sql, javacc, jjtree, starteam, war, unwar, uptodate, |
| native2ascii, copy, move, mparse. |
| |
| * copydir, copyfile, deltree and rename are now deprecated. They |
| should be replaced with the new copy, delete and move tasks. |
| |
| * <java> uses a ClassLoader of its own in no-fork mode if a classpath is |
| specified. |
| |
| * <style> will create the necessary target directories and reprocess |
| all files if the stylesheet changes. |
| |
| * New data types fileset and patternset - expected to get a broader use. |
| They, as well as PATH like structures, can now be defined on a global |
| level and later be referenced by their id attribute. |
| |
| * You can specify environment variables to <exec>. |
| |
| * <get> can check whether a remote file is actually newer than a local |
| copy before it starts a download (HTTP only). |
| |
| * Added a -logger option to allow the class which performs logging to be |
| specified on the command line. |
| |
| * Added a -emacs option to tell the logger to leave out taskname adornments |
| on log output. |
| |
| * <chmod> works on all files in parallel and supports multiple filesets. |
| |
| * <replace> can now use tokens and/or values that cross line boundaries. |
| |
| * build.compiler supports now jvc as well. |
| |
| * project specific help can now be obtained with the -projecthelp option. |
| |
| * Added a -debug option to make -verbose less verbose (and more useful) |
| |
| * Ant will now search for a file named build.xml in the parent directory |
| and above (towards the root of the filesystem) if you didn't specify |
| -buildfile and there is no build.xml in the current directory. |
| |
| * <echo> can now write to a file and accepts nested text. |
| |
| Fixed bugs: |
| ----------- |
| |
| * <chmod> didn't work when used as a directory based task. |
| |
| * Path, Available, Property didn't resolve relative filenames with |
| respect to the Project's basedir. |
| |
| * Project didn't interpret the basedir attribute correctly in all |
| cases. |
| |
| * Nested <src> in <javac> caused NullPointerException. |
| |
| * Corrupt Zip- and Jar-files ar now deleted if the task fails. |
| |
| * many more fixes we've forgotten to document here ... |
| |
| * The packagelistloc attribute of <javadoc>'s <link> child will be |
| resolved as a file (i.e. it is either absolute or relative to |
| basedir). |