<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
               "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!--
  Licensed to the Apache Software Foundation (ASF) under one
  or more contributor license agreements.  See the NOTICE file
  distributed with this work for additional information
  regarding copyright ownership.  The ASF licenses this file
  to you under the Apache License, Version 2.0 (the
  "License"); you may not use this file except in compliance
  with the License.  You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing,
  software distributed under the License is distributed on an
  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  KIND, either express or implied.  See the License for the
  specific language governing permissions and limitations
  under the License. 
-->
<html xmlns="http://www.w3.org/1999/xhtml">
 <head>
   <!--
      XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
            This file is generated from XML source: DO NOT EDIT!
      XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
   -->
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
	<link rel="stylesheet" href="./style/compressed.css" type="text/css" media="screen, projection"/>
	<link rel="stylesheet" href="./style/style.css" type="text/css" media="screen, projection"/>
	<!--[if IE]><link rel="stylesheet" href="./style/ie.css" type="text/css" media="screen, projection"/><![endif]-->
<link rel="alternate" title="announce@apache.org Archives" type="application/atom+xml" href="http://mail-archives.apache.org/mod_mbox/www-announce/?format=atom" />
     <meta name="author" content="The Apache Software Foundation" /><meta name="email" content="apache.AT.apache.DOT.org" />
    <title>Welcome! - The Apache Software Foundation</title>
 </head>
 <body>
 	<div class="navigation">
		<ul>
			<li><a href="./foundation" title="About the Foundation">Foundation</a></li>
			<li><a href="http://projects.apache.org" title="Apache Projects">Projects</a></li>
			<li><a href="http://people.apache.org" title="Apache People">People</a></li>
			<li><a href="./foundation/getinvolved.html" title="Get involved in Apache">Get Involved</a></li>
			<li><a href="./foundation/sponsorship.html" title="Support the mission of Apache">Support Apache</a></li>			
			<li class="dlink"><a href="./dyn/closer.cgi" title="Download Apache projects">Download</a></li>
		</ul>
	</div>
	<div class="container">
	<hr class="space col"/>
	<div class="block">
		<div class="column span-24">
      <div id="header">
                          <h1>The Apache Software Foundation<br />
  <span class="alt"><small>Meritocracy in Action.</small></span></h1><p class="blurb">The Apache Software Foundation provides support for the Apache 				community of open-source software projects.  The <a href="http://projects.apache.org/">Apache projects</a> are characterized by a collaborative, consensus based development process, an open and pragmatic software license, and a desire to create high quality software that leads the way in its field.</p><p class="highlight">We consider ourselves not simply a group of projects sharing a server, but rather a <em>community of developers and users</em>.</p>
               </div>
      </div>
	</div>
	<hr/>
	<div class="block">
    		<div class="column span-15 first append-1">
			<h3>
                          Latest News
              </h3>
		</div>
		<div class="column span-8 las search">
    			<form action="http://www.google.com/search" method="get">
		         <input value="*.apache.org" name="sitesearch" type="hidden"/>
		         <input size="10" name="q" id="query" type="text"/>
		         <input name="Search" value="Go" type="submit"/>
	       </form>
		</div>
	</div>
	<div class="block content">
		<div class="column span-15 colborder">
                            
<div class="section-content">
<p><em>If you would like to keep up with news and announcements from the
foundation and all its projects, you can subscribe to the
<a href="foundation/mailinglists.html#foundation-announce">Apache
Announcements List</a></em>.</p>

<h4 id="apachecon-eu">
   Free Video Streams from ApacheCon Europe 2008
</h4>
<div class="section-content">
<a href="http://www.eu.apachecon.com/"><img src="images/eu_2008_logo.jpg" alt="ApacheCon Europe 2008" title="ApacheCon Europe 2008" border="0" align="right" /></a>
<p>
ApacheCon Europe 2008 held in Amsterdam was a great success, and attracted higher
than ever attendance figures, with about 500 registered attendees. This
figure represents an increase of more than 40% over the previous year,
demonstrating the rapidly growing interest in Apache and Open Source software
amongst European businesses.

If you have not been able to attend ApacheCon Europe, you can still watch
<a href="http://streaming.linux-magazin.de/en/archive_apachecon08eu.htm">videos of all keynotes and select talks online</a>. Keynote sessions
and the opening plenary are available <b>free of charge</b>:</p>
<ul>
<li><a href="http://streaming.linux-magazin.de/events/apacheconfree/archive/jjagielski/frames-java.htm" onclick="window.open(this.href, '_blank', 'width=1024, height=768'); return false;">State of the Feather</a>
   by Jim Jagielski, Chairman of the Apache Software Foundation</li>
<li><a href="http://streaming.linux-magazin.de/events/apacheconfree/archive/cschmidt/frames-java.htm" onclick="window.open(this.href, '_blank', 'width=1024, height=768'); return false;">Using Audio Technology and Open Content to Reduce Global Illiteracy, Poverty and Disease</a>
   by Cliff Schmidt, Executive Director of Literacy Bridge</li>
<li><a href="http://streaming.linux-magazin.de/events/apacheconfree/archive/rghosh/frames-java.htm" onclick="window.open(this.href, '_blank', 'width=1024, height=768'); return false;">Apache and Steam Engines: the Magic of Collaborative Innovation</a>
   by Rishab Aiyer Ghosh, Open Source Initiative Board Member</li>
<li><a href="http://streaming.linux-magazin.de/events/apacheconfree/archive/rfielding/frames-java.htm" onclick="window.open(this.href, '_blank', 'width=1024, height=768'); return false;">Apache 3.0 (a Tall Tale)</a>
   by Roy Fielding, Co-founder of The Apache Software Foundation,
   and Vice President, Apache HTTP Server</li>
</ul>
<p>The talks of the following select ApacheCon Europe tracks are
available for just 49 Euro:
<a href="http://streaming.linux-magazin.de/en/archive_apachecon08eu.htm#wednesday">System Administration</a>, 
<a href="http://streaming.linux-magazin.de/en/archive_apachecon08eu.htm#thursday">Web Security</a>,
<a href="http://streaming.linux-magazin.de/en/archive_apachecon08eu.htm#friday">Web Services and Web 2.0</a>.
</p>
<hr />
</div>

<h4 id="apachecon-us">
   ApacheCon US 2008 in New Orleans!
</h4>
<div class="section-content">
<p>
    ApacheCon US 2008 will be held 3 November through 7 November in
    New Orleans, Louisiana.
    The Call for Papers has already closed and the program and further
    information will be made available soon on the ApacheCon US 2008
    Web site <a href="http://www.us.apachecon.com/us2008/"><strong>www.us.apachecon.com</strong></a>.
    If you would like to receive information about ApacheCon US 2008, please
    <a href="mailto:announce-subscribe@apachecon.com">subscribe to
    the ApacheCon announcement mailing list</a>.
  </p>
<hr />
</div>

<h4 id="sun_jck_letter">
   Notice regarding open letter to Sun Microsystems
</h4>
<div class="section-content">
<p>
         The Apache Software Foundation has written an <a href="jcp/sunopenletter.html">open letter</a>
         to Sun Microsystems regarding our inabillity to acquire an acceptable license for the test kit
         for Java SE needed by <a href="http://harmony.apache.org">Apache Harmony</a>.  For futher information
         please see the <a href="jcp/sunopenletterfaq.html">FAQ</a> and direct all questions to Apache's VP
         for JCP issues,  geirm at apache dot org, or our regular press inquiry address, press at apache dot org.
      </p>
</div>
</div>
         </div>
    <div class="column span-8 last">
      <div class="block">
        <div class="nav column span-11">
          <div>
               <div class="menuheader"><a 
href="http://projects.apache.org/">Apache Projects</a></div> 
  <ul>
          <li><a href="http://httpd.apache.org/" title="Apache Web Server (httpd)">HTTP Server</a></li> 
          <li><a href="http://activemq.apache.org/" title="Distributed Messaging System">ActiveMQ</a></li> 
          <li><a href="http://ant.apache.org/" title="Java-based build tool">Ant</a></li> 
          <li><a href="http://apr.apache.org/" title="Apache Portable Runtime libraries">APR</a></li> 
          <li><a href="http://archiva.apache.org/" title="Build Artifact Repository Manager">Archiva</a></li> 
          <li><a href="http://beehive.apache.org/" title="Metadata frameworks for enterprise applications">Beehive</a></li> 
          <li><a href="http://cayenne.apache.org/" title="User-friendly Java ORM with Tools">Cayenne</a></li> 
          <li><a href="http://cocoon.apache.org/" title="Web development framework: separation of concerns, component-based">Cocoon</a></li> 
          <li><a href="http://commons.apache.org/" title="Reusable Java components">Commons</a></li> 
          <li><a href="http://continuum.apache.org/" title="Continuous Integration and Build Server">Continuum</a></li> 
          <li><a href="http://cxf.apache.org/" title="Service Framework">CXF</a></li> 
          <li><a href="http://db.apache.org/" title="Database access">DB</a></li> 
          <li><a href="http://directory.apache.org/" title="Apache Directory Server">Directory</a></li> 
          <li><a href="http://excalibur.apache.org/" title="Embeddable software libraries related to component and service management access">Excalibur</a></li> 
          <li><a href="http://felix.apache.org/" title="OSGi Framework and components.">Felix</a></li> 
          <li><a href="http://forrest.apache.org/" title="Aggregated multi-channel documentation, separation of concerns">Forrest</a></li> 
          <li><a href="http://geronimo.apache.org/" title="Java2, Enterprise Edition (J2EE) container">Geronimo</a></li> 
          <li><a href="http://gump.apache.org/" title="Continuous integration of open source projects">Gump</a></li> 
          <li><a href="http://hadoop.apache.org/" title="Distributed computing platform">Hadoop</a></li> 
          <li><a href="http://harmony.apache.org/" title="Open source implementation of Java SE">Harmony</a></li> 
          <li><a href="http://hivemind.apache.org/" title="A services and configuration microkernel">HiveMind</a></li> 
          <li><a href="http://hc.apache.org/" title="Java toolset of low level HTTP components">HttpComponents</a></li> 
          <li><a href="http://ibatis.apache.org/" title="SQL Data Mapper for Java and .NET">iBATIS</a></li> 
          <li><a href="http://incubator.apache.org/" title="Shepherd for new projects">Incubator</a></li> 
          <li><a href="http://jackrabbit.apache.org/" title="Content Repository for Java">Jackrabbit</a></li> 
          <li><a href="http://jakarta.apache.org/" title="Server-side Java">Jakarta</a></li> 
          <li><a href="http://james.apache.org/" title="Java Apache Mail Enterprise Server">James</a></li> 
          <li><a href="http://labs.apache.org/" title="The Innovation Laboratories of the Apache Software Foundation">Labs</a></li> 
          <li><a href="http://lenya.apache.org/" title="Content Management System">Lenya</a></li> 
          <li><a href="http://logging.apache.org/" title="Cross-language logging services">Logging</a></li> 
          <li><a href="http://lucene.apache.org/" title="Search engine library">Lucene</a></li> 
          <li><a href="http://maven.apache.org/" title="Java project management and comprehension tools">Maven</a></li> 
          <li><a href="http://mina.apache.org/" title="Multipurpose Infrastructure for Network Application">Mina</a></li> 
          <li><a href="http://myfaces.apache.org/" title="JavaServer(tm) Faces implementation and components">MyFaces</a></li> 
          <li><a href="http://ode.apache.org/" title="Orchestration Director Engine: Business Process Management (BPM), Process Orchestration and Workflow through service compositioni.">ODE</a></li> 
          <li><a href="http://ofbiz.apache.org/" title="Open for Business: enterprise automation software">OFBiz</a></li> 
          <li><a href="http://openejb.apache.org/" title="OpenEJB: a modular, configurable, and extendable EJB Container System and Server">OpenEJB</a></li> 
          <li><a href="http://openjpa.apache.org/" title="OpenJPA: Object Relational Mapping for Java">OpenJPA</a></li> 
          <li><a href="http://perl.apache.org/" title="Dynamic websites using Perl">Perl</a></li> 
          <li><a href="http://poi.apache.org/" title="Java API for OLE 2 Compound Documents">POI</a></li> 
          <li><a href="http://portals.apache.org/" title="Portal technology">Portals</a></li> 
          <li><a href="http://roller.apache.org/" title="Java blog server">Roller</a></li> 
          <li><a href="http://santuario.apache.org/" title="XML Security in Java and C++">Santuario</a></li> 
          <li><a href="http://servicemix.apache.org/" title="Enterprise Service Bus">ServiceMix</a></li> 
          <li><a href="http://shale.apache.org/" title="Web application framework based on JavaServer(tm) Faces">Shale</a></li> 
          <li><a href="http://spamassassin.apache.org/" title="Mail filter to identify spam">SpamAssassin</a></li> 
          <li><a href="http://stdcxx.apache.org/" title="Apache C++ Standard Library">STDCXX</a></li> 
          <li><a href="http://struts.apache.org/" title="Model 2 framework for building Java web applications">Struts</a></li> 
          <li><a href="http://synapse.apache.org/" title="Enterprise Service Bus and Mediation Framework">Synapse</a></li> 
          <li><a href="http://tapestry.apache.org/" title="Component-based Java Web Application Framework">Tapestry</a></li> 
          <li><a href="http://tcl.apache.org/" title="Dynamic websites using TCL">TCL</a></li> 
          <li><a href="http://tiles.apache.org/" title="A templating framework for web application user interfaces">Tiles</a></li> 
          <li><a href="http://tomcat.apache.org/" title="A Java Servlet and JSP Container">Tomcat</a></li> 
          <li><a href="http://turbine.apache.org/" title="A Java Servlet Web Application Framework and associated component library">
         Turbine</a></li> 
          <li><a href="http://velocity.apache.org/" title="A Java Templating Engine">Velocity</a></li> 
          <li><a href="http://wicket.apache.org/" title="Component-based Java Web Application Framework.">Wicket</a></li> 
          <li><a href="http://ws.apache.org/">Web Services</a></li> 
          <li><a href="http://xalan.apache.org/" title="XSLT processors in Java and C++">Xalan</a></li> 
          <li><a href="http://xerces.apache.org/" title="XML parsers in Java, C++ and Perl">Xerces</a></li> 
          <li><a href="http://xml.apache.org/" title="XML solutions focused on the web">XML</a></li> 
          <li><a href="http://xmlbeans.apache.org/" title="XML-Java binding tool">XMLBeans</a></li> 
          <li><a href="http://xmlgraphics.apache.org/" title="Conversion from XML to graphical output">XML Graphics</a></li> 
      </ul>
          </div>
        </div>
        <div class="nav column prepend-1 span-12 last">
               <h6><a 
href="/foundation/">Foundation</a></h6>
  <ul>
          <li><a href="/foundation/faq.html">FAQ</a></li> 
          <li><a href="/licenses/">Licenses</a></li> 
          <li><a href="/foundation/news.html">News</a></li> 
          <li><a href="/foundation/records/">Public Records</a></li> 
          <li><a href="/foundation/sponsorship.html">Sponsorship</a></li> 
          <li><a href="/foundation/contributing.html">Donations</a></li> 
          <li><a href="/foundation/thanks.html">Thanks</a></li> 
          <li><a href="/foundation/contact.html">Contact</a></li> 
      </ul>
      <h6>Foundation Projects</h6>
  <ul>
          <li><a href="/foundation/conferences.html" title="Meetings of developers and users">Conferences</a></li> 
          <li><a href="/dev/" title="ASF Infrastructure: Operations and howto documents for PMCs and contributors">Infrastructure</a></li> 
          <li><a href="/jcp/" title="Apache and the Java Community Process">JCP</a></li> 
      </ul>
      <h6>How it works</h6>
  <ul>
          <li><a href="/foundation/how-it-works.html">Introduction</a></li> 
          <li><a href="/foundation/how-it-works.html#meritocracy">Meritocracy</a></li> 
          <li><a href="/foundation/how-it-works.html#structure">Structure</a></li> 
          <li><a href="/foundation/how-it-works.html#roles">Roles</a></li> 
          <li><a href="/foundation/how-it-works.html#management">Collaboration</a></li> 
          <li><a href="/foundation/how-it-works.html#infrastructure">Infrastructure</a></li> 
          <li><a href="/foundation/how-it-works.html#incubator">Incubator</a></li> 
          <li><a href="/foundation/how-it-works.html#other">Other entities</a></li> 
          <li><a href="/foundation/glossary.html">Glossary</a></li> 
          <li><a href="/foundation/voting.html">Voting</a></li> 
      </ul>
      <h6><a 
href="/foundation/getinvolved.html">Get Involved</a></h6>
  <ul>
          <li><a href="/foundation/mailinglists.html">Mailing Lists</a></li> 
          <li><a href="/dev/version-control.html">Version Control</a></li> 
          <li><a href="/dev/">Developer Info</a></li> 
      </ul>
      <h6>Download</h6>
  <ul>
          <li><a href="/dyn/closer.cgi">from a mirror</a></li> 
      </ul>
      <h6>Related Sites</h6>
  <ul>
          <li><a href="http://apachecon.com/" title="Official Apache Conference">ApacheCon</a></li> 
          <li><a href="http://apachebookstore.com/" title="Apache Books">Bookstore</a></li> 
          <li><a href="http://feathercast.org/" title="Apache Podcasts">Feathercast</a></li> 
          <li><a href="http://planetapache.org/" title="Apache Community Blogs">PlanetApache</a></li> 
      </ul>
        </div>
      </div>
    </div>
    <div class="column span-24 footer">
      <hr/>
        <p>Copyright &#169; 2008 The Apache Software Foundation, Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
      </div>
    </div>
  </div>
</body>
</html>

