Black-sun Fireant

v0.9.0 release notes

Fireant History

  • FIXED - Whether it is a bug or feature, FaFileSet now includes all files in base directory if there are no include patterns, just like FileSet. Please make sure you check your builders to account for this change, it may cause big troubles.
  • FIXED - Fixed a few bugs in FaFileUtil.getRelativePath(), ... etc for compatibility with OS that has case-insensitive filenames.
  • FIXED - Also fixed FaFileUtil.getRelativePath(File file, File base, File allowdotdot) to allow for example: FaFileUtil.getRelativePath(new File("/a/b/c/d", "/a/b/e/f", true) to return ../../c/d.
  • CHANGE - Renamed FaFileUtil.readFile() methods to asBytes() and asChars() ... etc.
  • NEW - FaFileSet, FaDirSet added methods to add patterns that may contains space or comma, eg. for FaFileSet:
    	FaFileSet include(File file);
    	FaFileSet exclude(File file);
    	FaFileSet include(String pattern);
    	FaFileSet exculde(String pattern);
    	FaFileSet include(String[] includes);
    	FaFileSet exclude(String[] excludes);
    	FaFileSet noIncludesNone();
  • NEW - FaFiles renamed:
    	void addIncludes(String pattern);
    	void addExcludes(String pattern);
    	FaFiles include(String pattern);
    	FaFiles exclude(String pattern);
    and added methods:
    	FaFiles include(String[] patterns);
    	FaFiles exclude(String[] patterns);
    	FaFiles noIncludesNone();
  • NEW - Actually implemented in v0.8.0 but was missed in release notes, there is a BuildBuilder class that invoke javac to build the fireant builders for a project from command line:
    	java -jar blacksun-fireant.jar [-options] <source-dir>
    		--help                   Help.
    		--debug                  Print debug info.
    		--anthome <dir>          Ant home directory.
    		--lib <path>             Extra classpath.
    		-d <dir>                Binary output directory.
    		-e <regex>              Include files that match given jakarta-oro regex.
    		-E <regex>              Exclude files that match given jakarta-oro regex.
    After the fireant builder is build, it can be invoked to build the project from command line.
  • NEW - Added FaPath which provide convenient constructors for the Path data type.
  • NEW - FireantProjectBuilder now accept workdir attribute in the builder spec. to specify the work directory for the launch.
  • CHANGE - FaExec added methods to generate unique property names for output and error:
    	// Constructor that create unqiue output and error properties.
    	public FaExec(File workdir, String exec, String[] args, boolean new_env, String input);
    	// Create and set unique output property.
    	public String createOutProperty();
    	public String getOutProperty();
    	// Create and set unique error property.
    	public String createErrProperty();
    	public String getErrProperty();
  • CHANGE - FaTextUtil add methods:
    	public String getSimpleClassName(Class c);
    	public String getSimpleClassName(String name);
    	public String getOuterName(Class c);
    	public String getOuterName(String name);
  • CHANGE - FaCopy added constructor:
    	public FaCopy(boolean overwrite, boolean create, File src, File dest);
  • CHANGE - FireantBuilder added methods to allow sub-builders to work in a different base directory and command line options:
    	public void build(Class builder, Class target, File basedir, Map options);
    	public void build(Class builder, String target, File basedir, Map options);
  • CHANGE - FireantBuilder added methods to print available targets:
    	public String sprintTargets(String indent);
  • CHANGE - FaJavac added:
    	public FaJavac(File bindir, Path srcpath, String includes, String excludes, Path classpath);
    	public FaJavac debugInfo(boolean yes);
  • CHANGE - FaZip added methods:
    	public FaZip noDuplicate();
    	public FaZip preserveDuplicate();

Fireant-optional History

    NEW - Added sf.blacksun.fireant.taskdef.optional.eclipse.*, sf.blacksun.fireant.taskdef.optional.llk.*, sf.blacksun.fireant.taskdef.optional.svn.* tasks. Fireant-optional now depends on junit.jar, ant-nodeps.jar and ant-junit.jar, in additional to ant.jar.
    • eclipse/FaEclipseClasspath - Compute classpath for Eclipse projects.
    • eclipse/FaRequiredBundle - Find required bundle of Eclipse projects.
    • eclipse/FaUpdateFeatureVersion - Update version infos in feature.xml.
    • eclipse/FaUpdateManifest - Update MANIFEST.MF attributes.
    • eclipse/FaUpdatePluginVersion - Update plugin.xml and MANIFEST.MF version infos.
    • junit/ - Wrapper around Ant junit task.
    • junit/ - Simple test case source file selector.
    • junit/ - Simple summary formatter.
    • llk/ - Generate treeparser from given LLK parser.
    • llk/ - Invoke LLK parser generator.
    • llk/ - Find unused node files.
    • svn/
    • svn/ - SVN commit.
    • svn/ - SVN status.
    • unix/ - Change filesystem group attributes.
    • unix/ - Change filesystem file owner attributes.
  • NEW - Added sf.blacksun.fireant.optional.selectors.FaRegexSelector.


  • JDK 1.5.0
  • Jakarta-oro v2.0.8.
  • Ant v1.6.5 as distributed with Eclispe 3.1.2 for Linux.
  • JUnit v3.8.1 as distributed with Eclispe 3.1.2 for Linux.