Release 0.7.1, 2008.02.10 ================================================================================ * Removed the TaskExecutor.getNumberOfBuildThreads method. * TaskExecutorThreadFactory now creates daemon threads. * Introduced the EclipseWorkspaceSettings and IntelliJWorkspaceSettings objects. * Added the verbose property to the XmlCatalogResolver. * Support for IntelliJ IDEA workspaces through the IntelliJWorkspace class. * Moved all classes in org.schmant.task.factory to org.schmant.task * Upgraded EntityFS jars and samples to 1.0-rc2. * RecursiveActionTask and RecursiveProcessTask can now use file arguments. * Added the getReadWriteFile methods to the ArgumentInterpreter. * SimpleReportLineFormatter can now log a timestamp with every message. * EclipseWorkspace now handles class directory classpath entries. * Made schmant.sh honor the JAVA_EXEC environment variable, if set. * Added ExtJavadocTF example with custom tags. * schmant.bat now handles a JAVA_HOME variable with quotes in it. It also no longer whines about files not found if there are no Jar files in libengine. * Added the getJdkVersion methods to JdkUtil * Uses partial EntityFS jars instead of the full jar. * Added the validLinkCollection to HtmlLinkValidationTF * Added task factory documentation for ExtStandardDocletDecorator and the ExtPdfDocletDecorator. * Removed the tags property from the ExtJavadocTF. It belongs in the standard doclet decorator instead. * Removed the JavadocCustomTag class that duplicated the functionality of the JavadocTagDefinition class. Changed the code that used JavadocCustomTag to use JavadocTagDefinition instead. Added a createFromString method to JavadocTagDefinition. * Added TaskExecutor.waitFor(TaskDependency) method. * Some css changes for the documentation pages. * Added SourceConfigurable.getSource() (inherited by both ActionTask and ActionTaskFactory). * Added the TempFileUtils.createTempXXXInFSTempFilesDirectoryIfSet(FileSystem) methods. * TempFileUtils.createTempXXX(FileSystem) now throws an exception if a temporary files directory is not set on the file system. Release 0.7, 2007.10.25 ================================================================================ * Introduced inheritance hierarchy for ProjectRepository implementations (EclipseWorkspace specifically). * Fixed Windows launcher script behavior when JAVA_HOME is invalid. * Added ArgumentInterpreter.getUrl[OrNull] methods. * Added the JarSignerTF + documentation * Added the SvnCopyTF + documentation * Made TaskExecutor.add methods return a TaskDependency. * Added the TempFileUtil.createTempDirectory(String, String, boolean) method. * Added the SchmantFileSystems.getEntityForDirectory(File, String) method. * Improved error reporting in wrapper.js. * Added the Report.getStackTraceWriter method. * Made StringTextReplacer be capture group-aware. Updated TextReplaceTF documentation. * Added Matcher argument to TextReplacer.getReplace * Upgraded EntityFS to 1.0-beta7. * HtmlLinkValidationTask now ignores contents of comments in HTML files. Made it work with ID anchors, e.g.

. * Made TempFileUtil _not_ use File.createTempFile. * Added the createRamFileSystem method to SchmantFileSystems. * Declared all concrete task factory implementations final. (Which they already were in practice since setter methods returned a concrete type.) * Documentation updates. * Hid some compiler warnings with @SuppressWarnings. * Implemented getThis() as final in AbstractConfiguratorConfigurable, AbstractTask and AbstractTargetPropertyConfigurator and removed implementations from all subclasses. * ArgumentInterpreter updates * Added the maxNoOfReplacesPerReplace property to TextReplaceTF. * Added the SvnExportTF + documentation. * Better error message if Jdk6JavacTask cannot find a compiler. * Changed default log level to WARN for messages that external process tasks write to stderr. * Added the GeneratorTaskSupport.prepareForNewEntity(DirectoryView...) method. * Added ArgumentInterpreter.getDirectory. Release 0.6, 2007.08.03 ================================================================================ * Updated EntityFS samples to versions from 1.0-beta6. * Made ArgumentInterpreter use ReadWritableFileAdapter where possible. * Upgraded EntityFS to 1.0-beta6. * Now prints log header before doing validation in AbstractTask (which means all that it is done in all tasks). * Fixed Report printing of stack traces. Added a formatStackTrace to the ReportLineFormatter. * Fixed closing of process output listeners in AbstractProcessOutputListener. * Upgraded JUnit to 4.4. * Made TextReplaceTF not require file-backed targets. * Renamed TemplatesCompilerTF to TemplateCompilerTF. * Fixed the use of debug arguments in javac tasks. * Added the GZipTask. * Added AbstractProcessOneEntityTask, AbstractProcessOneEntityToAFileTask and AbstractOutputStreamProxyingProcessOneEntityTask. Refactored some existing tasks to inherit them. * Added the tags property to ExtJavadocTask. * Added the FutureEntityIndexStrategy. * Removed the RenameTF and RenameTask. It did the same as the MoveTF. * Improved the API and documentation of FutureEntity. Made it thread safe. * Fixed quoting of source file names in ExtJavacTask. * Modified TaskPackageManager to make possible to have several task package directories for one task package. This can be used to patch task packages. * New and updated unit tests. * Made the Findbugs path honor the FINDBUGS_HOME environment variable. * Fixed a bug in the ZipTask that put all ReadableFile entries in the Zip file's root directory. * Added the TaskExecutor.getStatus() method. * schmant.sh launcher script fixes. * schmant.bat launcher script fixes. * Added the FutureEntityStrategy and adapted ArgumentInterpreter.getFutureEntity to be aware of it. * Added a ProcessTask parameter to the TargetStrategy.getTarget method. * Added the ForEachSourceTF. * Reworked the ArgumentInterpreter once again. Now it is a singleton instance on the ArgumentInterpreter class. (The ArgumentInterpreterHolder is gone.) The -i startup argument disappeared, now the ArgumentInterpreter implementation can be set with the org.schmant.arg.argumentInterpreter system property. * Added the getNumberOfThreads method on TaskExecutor. Deprecated the getNumberOfBuildThreads method. * Added the disableHeaderLogging property to RecursiveActionTF and RecursiveProcessTF. * Added the FileSupport class + unit test. * Made Jdk6JavacTask close all file systems it creates. * Implemented the SchmantFileSystems utility class. Made all Schmant methods use that instead of EntityFS' FileSystems. * Implemented the SchmantReportLogAdapter. * Implemented wrapper.js, the JavaScript wrapper script. * Introduced the use of wrapper scripts for catching and logging errors that otherwise would get lost in the script engine. * Unit test updates. * Fixed bug in JUnit4TF that made it impossible to have several reporters. * Implemented the JUnit4TestSuiteReporter JUnit4Reporter + support classes. * Implemented the SaveReportToXmlFileRunListener JUnit4 RunListener. * Moved StAXSupport to the org.schmant.support.xml.stax package. * Improved error reporting from RecursiveActionTask and RecursiveProcessTask. * Made it possible to configure a default LogLineFormatter using program arguments. * Refactored and extended the reporting subsystem. Introduced FileReport, FileReportFactory, OverwritingFileReportFactory, MultiplexingReport, ReportLineFormatter and SimpleReportLineFormatter. * A ProjectDependencies is no longer a TaskDependency. That was mostly confusing, since the ProjectDependencies is satisfied when all its projects' dependencies are satisfied, i.e. before the last project had been compiled. This was not evident from the documentation. * Documentation updates. * Made Jdk6Javac's EntityFSFileManager work on DirectoryView:s instead of Directory:s. Release 0.5.1, 2007.06.24 ================================================================================ * Made JdkUtil, the Findbugs task and ExtJavacTask use a platform-dependent extension when searching for the command in the PATH. * Made ArgumentInterpreter implementation configurable through the -i argument * Fixed bug in prepare.js that made the include function fail if its argument was not an EFile * Added basic launch configuration validation to Launcher * Merged TaskExecutor and AbstractTaskExecutor (to TaskExecutor). Redesigned waiting logic somewhat. * Fixed quoting of arguments in schmant.bat * Made schmant.sh work on Solaris * Made ArgumentInterpreter.getNamedReadableFileOrNull understand relative java.io.File objects. * Upgraded EntityFS to 1.0-beta5. * Added the currently running JVM as fallback for JdkUtil methods. * Upgraded JUnit from 4.2 to 4.3.1.