The ASF Turns Fifty

Between July 2006 and June 2007, the Apache Software Foundation (ASF) created thirteen new projects, bringing the total number of ASF software projects to just over fifty.

In June, the ASF Board of DiThe rectors promoted Jakarta Commons subproject to a top-level Apache Project. Over the past year, three other Jakarta subprojects – Velocity, Turbine, and POI – were promoted to top-level projects in 2006/2007. Other newly created projects include Apache Shale, Apache Tiles, Apache Santuario, Apache MINA, Apache Cayenne, Apache Felix, Apache OpenEJB, Apache OpenJPA, Apache Open for Business, and Apache Labs. Seven of the new projects were developed as part of other ASF projects, and then promoted to top-level projects, five projects are new to the foundation, and one was developed internally as a new top-level project.

Apache Velocity (velocity.apache.org) is a Java-based template engine. The Velocity Engine is a mature product, in distribution since 2001. In addition to the core Velocity Engine, the new Apache Velocity project offers five other related products. The latest addition is Velocity DocBook Framework (DBF), a framework for creating high-quality online or print documentation. DBF (velocity.apache.org/docbook) simplifies rendering DocBook files by combining Apache Ant, Java, and the Velocity Engine into a unified toolset.

Apache Turbine (turbine.apache.org) is a servlet-based web application framework. Turbine and Velocity share common roots, and like Apache Velocity, Apache Turbine is a mature product dating back to 2001. Turbine works well with both Velocity templates and JavaServer Pages, and supports a services-oriented architecture.

Apache POI (poi.apache.org) provides a set of pure Java APIs for working with Microsoft OLE 2 documents, which includes Microsoft Word and Microsoft Excel. POI is in its third major release series. In addition to Java support, POI also provides bindings for the popular Ruby language. Like Velocity and Turbine, Apache POI is another mature codebase in development since 2001.

Apache Shale and Apache Tiles are spin-offs from the Apache Struts project. Apache Shale (shale.apache.org) is a modern web application framework, fundamentally based on JavaServer Faces. The Shale codebase was originally created in 2004 by Craig McClanahan, who also founded Apache Struts.

Apache Tiles (tiles.apache.org) is a templating framework for use with web applications. Originally an Apache Struts feature, Tiles has been broadened into a standalone framework. Both Apache Struts and Apache Shale provide Tiles support as a standard option.

Formerly known as XML Security, Apache Santuario (santuario.apache.org) provides implementations of the W3C standard XML-Signature Syntax and XML Encription Syntax. Libraries are now available for use with Java or C++ applications. Before being promoted to a top-level project, Santuario was part of the Apache XML project. The original Java codebase was a commercial product, donated to the foundation in 2001.

Apache MINA (mina.apache.org) provides a unified API for transport types, byte buffers, message objects, and codecs, along with stream-based IO support and a Java Filter interface. The MINA codebase (Multipurpose Infrastructure for Network Applications) began as a merger of the Netty network application framework with a Staged Event Driven Architecture (SEDA). Today, it is a core dependency of the Apache Directory project. Apache MINA also powers point of sale terminals, multiplayer games, and other network systems.

Apache Cayenne (cayenne.apache.org) is an object relational mapping (ORM) framework for Java that combines many of the best features of Apache iBATIS and Hibernate, and then adds a sophisticated GUI modeling tool. Cayenne was first developed by ObjectStyle, LLC., and donated to the ASF in 2006. The codebase has been actively developed since 2001, and Apache Cayenne is now in its second major release series, with version 3.0 in development. An exciting feature of Apache Cayenne 3.0 will be a Java Persistence API (JPA) provider.

Apache Felix (felix.apache.org) is a community effort to implement OSGi-related technologies. OSGi technology targets embedded devices and home services gateways, but it is ideally suited for any project that is interested in principles of modularity, component-oriented, and/or service-orientation. Among other things, OSGi technologies can be used as an alternative to Java Management Extension (JMX).

Apache OpenEJB (openejb.apache.org) is a modular, configurable, and extendable EJB Container System and EJB Server. Over the last seven years, the OpenEJB group worked with two other open source hosts, Exolab and CodeHaus, before coming to the ASF in 2006. The current release of Apache OpenEJB supports the Enterprise JavaBeans 3.0 specification. The product ships with both a EJB container system and its own lightweight EJB server. Apache OpenEJB can also be embedded into Apache Tomcat to create “a no holds-barred EJB server”.

Apache OpenJPA (openjpa.apache.org) is a feature-rich implementation of the persistence part of Enterprise Java Beans 3.0, also known as the Java Persistence API (JPA). OpenJPA can be used as a stand-alone POJO persistence layer, or it can be integrated into any EJB3.0 compliant container and many lightweight frameworks. The OpenJPA codebase was originally developed by BEA and later donated to the foundation in 2006. OpenJPA is already being used by ActiveMQ, BEA, Apache Camel, Apache Geronimo, Apache Ode, Apache OpenEJB, Spring, and IBM WebShere, among others.

Apache Open for Business (ofbiz.apache.org) is an enterprise automation package that includes tools for Enterprise Resource Planning (ERP), Customer Relationship Management (CRM), Software Configuration Management (SCM), Materials Resource Planning (MRP), and more. OFBiz was originally created in May 2001 and soon attracted an international base of developers, contributors, and users before joining the foundation in 2006. Today, OfBiz powers a wide variety of ecommerce sites, including 1-800-flowers.com and totes-isotoner.com.

While many ASF projects were created elsewhere, another new project, Apache Labs (labs.apache.org), is designed as a place where ASF committers can experiment with new ideas. In the Apache Labs, our committers can innovate and collaborate, without the worry of building a community first. Today’s labs – which may be tomorrow’s projects – range from new approaches to creating virtual communities to experiments in new web protocols.

The Apache Software Foundation (www.apache.org) is a not-for-profit corporation that supports the Apache community of open-source software projects. While the foundation’s infrastructure is funded through a combination of sponsorships and donations, the foundation itself is composed of individual, unpaid volunteers. ASF projects are characterized by a collaborative, consensus-based development process, an open and pragmatic software license, and a desire to create high quality software.