Ant 1.8 Planning Section


Projects we depend on and their forthcoming releases

  • Xerces. We redist this, so should get a late release.
  • Xalan
  • JUnit
  • Java 1.6.0 is out, 1.7 in early alpha only.


Projects that depend upon us, and their cutoff dates

  • Eclipse
  • NetBeans

  • IntelliJ IDEA
  • CruiseControl

  • JEdit (less tightly coupled)


Features

This is just an initial mixture of "nice to have", "controversial" and "necessary" features.

They will get modified a lot during the 1.8 coding phase.

  • remove functionality depending on third party libraries that we
    • cannot support or even build - for example starteam and weblogic tasks.

      (done: moved into their own AntLibs in the sandbox)

  • fix up the sql task.
  • add classpath manipulation (classloader task, coreloader etc)
  • add logic/controlflow features from jsp/ant-contrib (for, if,
    • while, try, var etc)
  • better scripting language support
    • allow javascript and jruby to create tasks/types natively
      • (beanshell, groovy can do this currently).
  • import improvements (url support, searchpath support)
  • if/unless attributes with primitive EL (expression language)
    • (ie if="${property.not.present}" will work as if="property.not.present")
  • restricted types (i.e. roles)
  • some simple build file generators (like seam-gen)
  • xmlize the manual goals:
    • pdf version output
    • clean html output
    • easy navigation
  • provide streaming xml support for logger and junit.
  • ? simple antlib downloads built-in ?
  • Local variables in macrodef. ant-contrib <var> gives you this, though we could make it easier to mutate properties for them.

  • Make tests work for Java6 (rmic).
  • Java1.5 environment fetching. Ideally as part of a rework of Execute.getProcessEnv() (if we plan to retrofit commons-exec in source after it stabilizes, maybe we should forego this at present? -MJB)
  • Add mapper support on archive tasks (zip etc). So you could flatten libraries in WAR/EAR.
  • Make it easier for building Ant regarding to its 3rd party libraries. (Maybe via Ivy and a bundled ivy.jar (bundled like antunit.jar))


''Want'' Features

Less critical, but still nice. Adding here is also a statement of intent.

  • <propertyfile> in java tasks for loading properties straight from a file.

  • reduce number of outstanding bugzilla bugs by fixing them or declaring WONTFIX/Invalid.

  • reduce number of outstanding bugzilla enhancements by implementing some, or closing them off.

  • include fetch.xml in redist package and integrate w/ maven2 artifacts (done? -MJB) Maybe use of Ivy for this.


''Want'' Features Implemented


''Like'' Features

Less important stuff.

  • security hardening. "locking down...or giving the opportunity to lock down; e.g. secure class loading, working with digital certs, etc..." Rated as 'like' because of the difficulty.
  • Look at all SCM tasks and pull in pending patches for new features. Find people to test them. (I looked at VSS when implementing as antlib (svn sandbox), pulled in as many patches/fixes as I could find in bugzilla - Kev)
  • Lightweight Java1.5 distro without Xerces.


From 1.7.0 wontfix:

  • <issigned> to do signature checking (identify signatory). fundamentally impossible.

  • <libraries>: maven2, security. Use Maven2 artifact library instead.

  • <classloader> to allow adding of jars to the current classloader (would solve a lot of problems at the cost of some issues)

  • Java1.5 environment fetching. Ideally as part of a rework of Execute.getProcessEnv() (if we plan to retrofit commons-exec in source after it stabilizes, maybe we should forego this at present? -MJB)
  • Doc improvements.


Testing

Platforms to test on. We may want to formally remove support for platforms that are unsupported by their vendor. That means Java1.2 and Win98.

(Java 1.3 is EOL as of the Java 6 release. -Jesse)

Linux Platforms should cover common distros: RHEL, Suse. Debian (Ubuntu)?. SysV Unix can be delegated to the vendors, say AIX and HPUX. Solaris is also a possibility, if a VMware image is available.


MUST Pass

  • Java 1.3 - Java 6, WinXP, Linux, MacOS, SysV Unix
  • Java 6 Vista

Old JDKs can be downloaded from Suns archive


SHOULD Pass

  • Recent Java, Netware


MAY Pass

  • OpenVMS, Any Java


WONTFIX this release

Definitely not in this release. Pull stuff down here when scrubbed from the previous lists.

Merge candidates

MergeCandidates18xBranch

  • No labels