Commons Functor Status
$Revision$ $Date$
http://commons.apache.org/sandbox/functor/

Summary:

  Commons Functor is developing a common set of functor interfaces
  and related utilities in Java under an ASF licence.

  Commons Functor is a component developed by Apache Commons.

  Commons Functor is a currently a "sandboxed" project.  It has
  not yet been accepted as an offical part of of the Apache Commons
  project.
  
Releases:

  Stable:
    Currently none.

  Development:
    1.0-dev 
      CVS Tag: HEAD
      Binaries: http://cvs.apache.org/builds/jakarta-commons/nightly/commons-functor/
      Source: http://cvs.apache.org/builds/jakarta-commons/nightly/commons-functor/

Assets:

  Web site:         http://commons.apache.org/sandbox/functor

  Mailing lists:    dev@commons.apache.org  (developers)
                    user@commons.apache.org (users)

  Repositories:     jakarta/commons/sandbox/functor

Committers:

  Rodney Waldhoff (rwaldhoff AT apache DOT org) [PMC]
    
Contributors:

  Jason Horman (jason AT jhorman DOT org)
  Herve Quiroz (herve DOT quiroz AT esil DOT univ-mrs DOT fr)

                
Pending Issues:

  None.

Resolved Issues:

  None.


    