<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <meta name="description" content="Home page of The Apache Software Foundation">
  <link rel="apple-touch-icon" sizes="57x57" href="/favicons/apple-touch-icon-57x57.png">
  <link rel="apple-touch-icon" sizes="60x60" href="/favicons/apple-touch-icon-60x60.png">
  <link rel="apple-touch-icon" sizes="72x72" href="/favicons/apple-touch-icon-72x72.png">
  <link rel="apple-touch-icon" sizes="76x76" href="/favicons/apple-touch-icon-76x76.png">
  <link rel="apple-touch-icon" sizes="114x114" href="/favicons/apple-touch-icon-114x114.png">
  <link rel="apple-touch-icon" sizes="120x120" href="/favicons/apple-touch-icon-120x120.png">
  <link rel="apple-touch-icon" sizes="144x144" href="/favicons/apple-touch-icon-144x144.png">
  <link rel="apple-touch-icon" sizes="152x152" href="/favicons/apple-touch-icon-152x152.png">
  <link rel="apple-touch-icon" sizes="180x180" href="/favicons/apple-touch-icon-180x180.png">
  <link rel="icon" type="image/png" href="/favicons/favicon-32x32.png" sizes="32x32">
  <link rel="icon" type="image/png" href="/favicons/favicon-194x194.png" sizes="194x194">
  <link rel="icon" type="image/png" href="/favicons/favicon-96x96.png" sizes="96x96">
  <link rel="icon" type="image/png" href="/favicons/android-chrome-192x192.png" sizes="192x192">
  <link rel="icon" type="image/png" href="/favicons/favicon-16x16.png" sizes="16x16">
  <link rel="manifest" href="/favicons/manifest.json">
  <link rel="shortcut icon" href="/favicons/favicon.ico">
  <meta name="msapplication-TileColor" content="#603cba">
  <meta name="msapplication-TileImage" content="/favicons/mstile-144x144.png">
  <meta name="msapplication-config" content="/favicons/browserconfig.xml">
  <meta name="theme-color" content="#282661">

  <title>The Apache Software Foundation's "Apache Way" continues to gain momentum, recognition and influence on the future of open source technologies.</title>
  <link href="/css/Montserrat-300-600.css" rel="stylesheet">
  <link href="/css/min.bootstrap.css" rel="stylesheet">
  <link href="/css/styles.css" rel="stylesheet">
  <style>
.headerlink {
  visibility: hidden;
}
dt:hover > .headerlink, p:hover > .headerlink, td:hover > .headerlink, h1:hover > .headerlink, h2:hover > .headerlink, h3:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, h6:hover > .headerlink {
  visibility: visible
}  </style>

  <!-- pagefind search -->
  <link href="/_pagefind/pagefind-ui.css" rel="stylesheet">
  <script src="/_pagefind/pagefind-ui.js" type="text/javascript"></script>
  <script>
    window.addEventListener('DOMContentLoaded', (event) => {
        new PagefindUI({ element: "#pagefind-search" });
    });
  </script>

<!-- https://www.apache.org/licenses/LICENSE-2.0 -->
</head>

<body >
  <!-- Navigation -->
  <header>
	<div id="skiptocontent">
		<a href="#maincontent">Skip to Main Content</a>
	</div>
    <nav class="navbar navbar-inverse navbar-fixed-top mainmenu">
      <div class="container">
        <div class="navbar-header">
          <button class="navbar-toggle" type="button" data-toggle="collapse" data-target="#mainnav-collapse">
            <span class="sr-only">Toggle navigation</span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
          </button>
        </div>
        <div class="collapse navbar-collapse" id="mainnav-collapse">
          <ul class="nav navbar-nav navbar-justified">
            <li><a href="/index.html#news">News</a></li>
            <li class="dropdown">
              <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">About&nbsp;<span class="caret"></span></a>
              <ul class="dropdown-menu" role="menu">
                <li><a href="/foundation">Overview</a></li>
                <li><a href="/foundation/how-it-works.html">Process</a></li>
                <li><a href="/foundation/governance/">Governance</a></li>
                <li><a href="/theapacheway/index.html">The Apache Way</a></li>
                <li><a href="/foundation/governance/members.html">Membership</a></li>
                <li><a href="https://community.apache.org/">Community</a></li>
                <li><a href="https://diversity.apache.org/">Diversity & Inclusion</a></li>
                <li><a href="/foundation/policies/conduct">Code of Conduct</a></li>
                <li><a href="/foundation/glossary.html">Glossary</a></li>
				  <li><a href="/apache-name">About Our Name</a></li>
                <li><a href="/foundation/preFAQ.html">FAQ</a></li>
                <li><a href="/foundation/contributing.html">Support Apache</a></li>
                <li><a href="/press/">Media/Analysts</a></li>
                <li><a href="/foundation/contact.html">Contact</a></li>
              </ul>
            </li>
            <li class="dropdown">
              <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">Make a Donation&nbsp;<span class="caret"></span></a>
              <ul class="dropdown-menu" role="menu">
                <li><a href="/foundation/contributing.html">Donate Now</a></li>
                <li><a href="https://donate.apache.org/">&nbsp;&nbsp;Via Credit Card</a></li>
                <li><a href="https://donate.apache.org/">&nbsp;&nbsp;Via ACH</a></li>
                <li><a href="https://donate.apache.org/">&nbsp;&nbsp;Via PayPal</a></li>
                <li><a href="https://www.redbubble.com/people/comdev">Buy Swag</a></li>
                <li><a href="/foundation/sponsorship.html">ASF Sponsorship</a></li>
                <li><a href="/foundation/thanks#targeted-sponsors">Targeted Sponsorship</a></li>
                <li><a href="/foundation/contributing.html#CorporateGiving">Corporate Giving</a></li>
              </ul>
            </li>
            <li class="dropdown">
              <a href="#" class="dropdopwn-toggle" data-toggle="dropdown">The Apache Way&nbsp;<span class="caret"></span></a>
              <ul class="dropdown-menu" role="menu">
                <li><a href="/theapacheway/index.html">The Apache Way</a></li>
                <li><a href="https://s.apache.org/GhnI">Sustainable Open Source</a></li>
                <li><a href="/foundation/how-it-works.html">How it Works</a></li>
                <li><a href="/foundation/how-it-works.html#meritocracy">Merit</a></li>
                <li><a href="https://blogs.apache.org/foundation/category/SuccessAtApache">Success at Apache</a></li>
              </ul>
            </li>
            <li class="dropdown">
              <a href="#" class="dropdopwn-toggle" data-toggle="dropdown">Join Us&nbsp;<span class="caret"></span></a>
              <ul class="dropdown-menu" role="menu">
                <li><a href="https://community.apache.org/gettingStarted/101.html">Getting Started</a></li>
                <li><a href="https://helpwanted.apache.org/">Help Wanted</a></li>
                <li><a href="https://www.apachecon.com/">ApacheCon</a></li>
                <li><a href="http://community.apache.org/calendars/">Community Events</a></li>
                <li><a href="https://tac.apache.org">Travel Assistance</a></li>
                <li><a href="https://community.apache.org/gsoc.html">Summer of Code</a></li>
                <li><a href="/foundation/policies/conduct">Code of Conduct</a></li>
                <li><a href="https://community.apache.org/contributors/etiquette">Etiquette</a></li>
                <li class="dropdown dropdown-submenu visible-xs">
                  <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">Projects&nbsp;<span class="caret"></span></a>
                  <ul class="dropdown-menu" role="menu">
                    <li><a href="/index.html#projects-list">Project List</a></li>
                    <li><a href="/foundation/how-it-works.html#management">How they work</a></li>
                    <li><a href="https://community.apache.org/projectIndependence.html">Independence</a></li>
                    <li><a href="https://projects.apache.org/committees.html?date">Date Founded</a></li>
                    <li><a href="https://projects.apache.org/projects.html?name">Names</a></li>
                    <li><a href="https://projects.apache.org/projects.html?category">Categories</a></li>
                    <li><a href="https://projects.apache.org/projects.html?language">Languages</a></li>
                    <li><a href="https://projects.apache.org/statistics.html">Statistics</a></li>
                    <li><a href="https://incubator.apache.org/">Apache Incubator</a></li>
                    <li><a href="https://helpwanted.apache.org/">Help Wanted</a></li>
                    <li><a href="/foundation/marks/">Brand Management</a></li>
                  </ul>
                </li>
                <li class="dropdown dropdown-submenu visible-xs">
                  <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">People&nbsp;<span class="caret"></span></a>
                  <ul class="dropdown-menu" role="menu">
                    <li><a href="/foundation/how-it-works.html#roles">Roles</a></li>
                    <li><a href="/foundation/members.html">Members</a></li>
                    <li><a href="https://community.apache.org/contributors/">Committers</a></li>
                    <li><a href="/foundation/#who-runs-the-asf">Board of Directors</a></li>
                    <li><a href="/foundation/#who-runs-the-asf">Officers  &amp; Project VPs</a></li>
                    <li><a href="https://community.zones.apache.org/map.html">Location Map</a></li>
                    <li><a href="/foundation/policies/conduct">Code of Conduct</a></li>
                    <li><a href="https://people.apache.org/">Committer Directory</a></li>
                  </ul>
                </li>
                <li class="dropdown dropdown-submenu visible-xs">
                  <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">Community&nbsp;<span class="caret"></span></a>
                  <ul class="dropdown-menu" role="menu">
                    <li><a href="https://community.apache.org/about/">Community Development</a></li>
                    <li><a href="/foundation/policies/conduct">Code of Conduct</a></li>
                    <li><a href="https://community.apache.org/">Get Involved</a></li>
                    <li><a href="https://community.apache.org/mentoringprogramme.html">Mentoring</a></li>
                    <li><a href="https://helpwanted.apache.org/">Help Wanted</a></li>
                    <li><a href="https://community.apache.org/calendars/">Community Events</a></li>
                    <li><a href="https://community.apache.org/newbiefaq.html">FAQ</a></li>
                    <li><a href="https://community.apache.org/lists.html">Mailing Lists</a></li>
                  </ul>
                </li>
                <li class="dropdown dropdown-submenu visible-xs">
                  <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">Infrastructure&nbsp;<span class="caret"></span></a>
                  <ul class="dropdown-menu" role="menu">
                    <li><a href="/dev/infrastructure.html">Infra overview</a></li>
                    <li><a href="https://infra.apache.org/" target="_blank">Policies and Tools</a></li>
                    <li><a href="https://cwiki.apache.org/confluence/display/INFRA/Index" target="_blank">CWiki</a></li>
                  </ul>
                </li>
                <li class="dropdown dropdown-submenu visible-xs">
                  <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">License&nbsp;<span class="caret"></span></a>
                  <ul class="dropdown-menu" role="menu">
                    <li><a href="/licenses/LICENSE-2.0">Apache License 2.0</a></li>
                    <li><a href="/foundation/license-faq.html">Licensing FAQ</a></li>
                    <li><a href="/licenses/contributor-agreements.html">Contributor License Agreements</a></li>
                    <li><a href="/licenses/contributor-agreements.html#grants">Software Grants</a></li>
                    <li><a href="/foundation/marks/list/">Trademarks</a></li>
					<li><a href="/licenses/exports/">Exports</a></li>
                  </ul>
                </li>
                <li class="dropdown dropdown-submenu visible-xs">
                  <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">Sponsors&nbsp;<span class="caret"></span></a>
                  <ul class="dropdown-menu" role="menu">
                    <li><a href="/foundation/sponsorship.html">Sponsor the ASF</a></li>
                    <li><a href="/foundation/thanks">Sponsor Thanks</a></li>
                    <li><a href="/foundation/contributing.html#CorporateGiving">Corporate Giving</a></li>
                    <li><a href="/foundation/contributing.html">Individual Donations</a></li>
                    <li><a href="https://www.redbubble.com/people/comdev/">Buy Stuff</a></li>
                  </ul>
                </li>
              </ul>
            </li>
            <li class="dropdown">
              <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">Downloads&nbsp;<span class="caret"></span></a>
              <ul class="dropdown-menu" role="menu">
                <li><a href="https://downloads.apache.org/">Distribution</a></li>
                <li><a href="https://projects.apache.org/releases.html">Releases</a></li>
                <li><a href="https://status.apache.org/">Infrastructure Status</a></li>
                <li><a href="/uptime/">Infrastructure Statistics</a></li>
              </ul>
            </li>
            <li class="dropdown hidden-xs">
              <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button"><span class="glyphicon glyphicon-search"
                  aria-hidden="true"></span><span class="sr-only">Search</span></a>
              <ul class="dropdown-menu search-form" role="search">
                <li>
                  <div id="pagefind-search" class="input-group" style="width: 100%; padding: 0 5px;"></div>
                </li>
              </ul>
            </li>
          </ul>
        </div>
      </div>
    </nav>
  </header>
  <!-- / Navigation -->
  <header id="main-header" class="container">
    <div class="sideImg">
          <a class="visible-home" href="https://events.apache.org/x/current-event.html">
            <img class="img-responsive" style="width: 125px;" src="/events/current-event-125x125.png" alt="Apache Events"/>
<!-- STALE: <img class="img-responsive" style="width: 125px;" src="https://www.apachecon.com/event-images/default-square-light.png" alt="ApacheCon 2021 Coming Soon!" /> -->
          </a>
      <a class="hidden-home" href="/"><img class="img-responsive" src="/img/asf-estd-1999-logo.jpg" alt="The Apache Software Foundation"></a>
    </div>
    <div class="main">
      <img class="img-responsive center-block visible-home" src="/img/asf-estd-1999-logo.jpg" alt="Apache 20th Anniversary Logo">

      <ul class="nav navbar-nav navbar-justified">
        <li class="dropdown">
          <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">Projects&nbsp;<span class="caret hidden-sm"></span></a>
          <ul class="dropdown-menu" role="menu">
            <li><a href="/index.html#projects-list">Project List</a></li>
            <li><a href="/foundation/how-it-works.html#management">How they work</a></li>
            <li><a href="https://community.apache.org/projectIndependence.html">Independence</a></li>
            <li><a href="https://projects.apache.org/committees.html?date">Date Founded</a></li>
            <li><a href="https://projects.apache.org/projects.html?name">Names</a></li>
            <li><a href="https://projects.apache.org/projects.html?category">Categories</a></li>
            <li><a href="https://projects.apache.org/projects.html?language">Languages</a></li>
            <li><a href="https://projects.apache.org/statistics.html">Statistics</a></li>
            <li><a href="https://incubator.apache.org/">Apache Incubator</a></li>
            <li><a href="https://helpwanted.apache.org/">Help Wanted</a></li>
            <li><a href="/foundation/marks/">Brand Management</a></li>
            <li><a href="/foundation/glossary.html">Glossary of Terms</a></li>
          </ul>
        </li>
        <li class="dropdown">
          <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">People&nbsp;<span class="caret hidden-sm"></span></a>
          <ul class="dropdown-menu" role="menu">
            <li><a href="/foundation/how-it-works.html#roles">Roles</a></li>
            <li><a href="/foundation/members.html">Members</a></li>
            <li><a href="https://community.apache.org/contributors/">Committers</a></li>
            <li><a href="/foundation/#who-runs-the-asf">Board of Directors</a></li>
            <li><a href="/foundation/#who-runs-the-asf">Officers &amp; Project VPs</a></li>
            <li><a href="https://diversity.apache.org/">Diversity & Inclusion</a></li>
            <li><a href="/foundation/policies/conduct">Code of Conduct</a></li>
            <li><a href="https://people.apache.org/">Committer Directory</a></li>
            <li><a href="https://community.zones.apache.org/map.html">Heat Map</a></li>
          </ul>
        </li>
        <li class="dropdown">
          <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">Community&nbsp;<span class="caret hidden-sm"></span></a>
          <ul class="dropdown-menu" role="menu">
            <li><a href="https://community.apache.org/about/">Community Development</a></li>
            <li><a href="/foundation/policies/conduct">Code of Conduct</a></li>
            <li><a href="https://community.apache.org/">Get Involved</a></li>
            <li><a href="https://community.apache.org/mentoringprogramme.html">Mentoring</a></li>
            <li><a href="https://helpwanted.apache.org/">Help Wanted</a></li>
            <li><a href="https://community.apache.org/calendars/">Community Events</a></li>
            <li><a href="https://community.apache.org/newbiefaq.html">FAQ</a></li>
            <li><a href="https://community.apache.org/lists.html">Mailing Lists</a></li>
          </ul>
        </li>
        <li class="dropdown">
          <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">Infrastructure&nbsp;<span class="caret"></span></a>
          <ul class="dropdown-menu" role="menu">
              <li><a href="/dev/infrastructure.html">Infra overview</a></li>
              <li><a href="https://infra.apache.org/" target="_blank">Policies and Tools</a></li>
              <li><a href="https://cwiki.apache.org/confluence/display/INFRA/Index" target="_blank">CWiki</a></li>
          </ul>
        </li>
        <li class="dropdown">
          <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">License&nbsp;<span class="caret hidden-sm"></span></a>
          <ul class="dropdown-menu" role="menu">
            <li><a href="/licenses/LICENSE-2.0">Apache License 2.0</a></li>
            <li><a href="/foundation/license-faq.html">Licensing FAQ</a></li>
            <li><a href="/licenses/contributor-agreements.html">Contributor License Agreements</a></li>
            <li><a href="/licenses/contributor-agreements.html#grants">Software Grants</a></li>
            <li><a href="/foundation/marks/list/">Trademarks</a></li>
			<li><a href="/licenses/exports/">Exports</a></li>
          </ul>
        </li>
        <li class="dropdown">
          <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">Sponsors&nbsp;<span class="caret hidden-sm"></span></a>
          <ul class="dropdown-menu" role="menu">
            <li><a href="/foundation/sponsorship.html">Sponsor the ASF</a></li>
            <li><a href="/foundation/thanks">Sponsor Thanks</a></li>
            <li><a href="/foundation/contributing.html#CorporateGiving">Corporate Giving</a></li>
            <li><a href="/foundation/contributing.html">Individual Donations</a></li>
            <li><a href="https://www.redbubble.com/people/comdev/">Buy Stuff</a></li>
          </ul>
        </li>
      </ul>
    </div>
 
  </header>
  <main id="maincontent">
<div class="container">    <p>( <a href="pr_2008_06_17.txt">plain text</a> )</p>
<p>FOREST HILL MD &ndash; 17 June 2008 &ndash; The Apache Software Foundation (ASF)
&ndash; stewards, incubators, and developers of leading Open Source projects
&ndash; today announced that both the organization's community and its
meritocratic process (known as "the Apache Way") continues to gain
recognition as one of the most influential, prominent, and innovative
leaders in Open Source.</p>
<p>A midyear review of the initiatives underway at the all-volunteer
Foundation showed that not only does the Apache HTTP Server continue to be
the world's most popular Web server software, but numerous ASF Projects
lead the way in Open Source technology, and the ASF community is also
playing a vital role in championing the collaborative development of
consensus-driven, enterprise-grade solutions.</p>
<p>"The demand for quality Open Source products continues to grow," said ASF
Chairman Jim Jagielski. "A significant number of organizations depend on
Apache-developed solutions. As the landscape continues to evolve, through
our thought leadership, well-established process, and ability to spearhead
new projects while maintaining an active, healthy community, we're poised
to successfully deliver software that meets the demands of the marketplace
and helps our users achieve their business goals."</p>
<p>The <a href="/">newly-redesigned ASF Website</a> reflects how the
Apache Way is realized through its new tagline, "Meritocracy in Action":
more than 1,500 ASF Committers and countless contributors and users
collaborate to the development of Apache-related activities across the Open
Source landscape. The ASF are responsible for millions of lines of code and
roughly one dozen servers comprising its infrastructure; nearly 500
community-driven modules have been developed to extend functionality of the
Apache HTTP Server alone.</p>
<h3 id="2008-achievements-to-date">2008 ACHIEVEMENTS TO DATE<a class="headerlink" href="#2008-achievements-to-date" title="Permalink">&para;</a></h3>
<p><strong>Board</strong> : The ASF recently held its Members' Meeting that included the
election of the following Members to the ASF Board of Directors: Bertrand
Delacretaz, Justin Erenkrantz, J. Aaron Farr, Jim Jagielski, Geir Magnusson
Jr., William Rowe Jr., Sam Ruby, Henning Schmiedehausen, and Greg Stein.</p>
<p>The annually-elected ASF Board oversees the management of the Foundation;
in turn, the Board appoints a set of officers to manage the day-to-day
operations and oversee ASF Projects and initiatives.</p>
<p><strong>Membership</strong> : The founding 21 individuals who oversaw the development of
the Apache HTTP Server formed the Foundation's core membership. The group
grew with the addition of "Committers": developers who contributed code,
patches, or documentation, and were subsequently granted access by the
Membership to: 1) "commit" or "write" directly to the code repository; 2)
to vote on community-related decisions; and 3) propose an active user for
Committership. Committers who demonstrate merit in the Foundation's growth,
evolution, and progress are nominated for ASF Membership by existing
members.</p>
<p>The ASF as a whole, including its Board, Officers, Members, and Committers,
is composed of individuals participating solely on behalf of the
Foundation. Whilst corporations are unable to qualify for Membership, those
contributing to ASF projects who are employed by corporate entities are
able to participate in ASF activities during "work time", but are expected
to act as individuals, independent of their employer, unless stated
otherwise under very specific circumstances. A key strength of the ASF is
that affiliations do not cloud personal contributions &ndash; a prescript that
applies to all Members.</p>
<p>The recent ASF Membership vote closed with the election of 17 new Members,
totaling 276.</p>
<p><strong>Sponsorship</strong> : The ASF is a private, 501(c)(3) non-profit charitable
organization, funded solely through tax-deductible contributions from
corporations, foundations, and individuals. To help offset day-to-day
operating expenses, The ASF created its Sponsorship Program in late 2006.
The Foundation welcomed two new sponsors:</p>
<ul>
<li>
<p>Silver Level: IONA Technologies (NASDAQ: IONA)</p>
</li>
<li>
<p>Bronze Level: Matt Mullenweg</p>
</li>
</ul>
<p>&hellip; to the following organizations and individuals whose generous
contributions continue to help advance the work of The ASF:</p>
<ul>
<li>
<p>Platinum Level: Google (NASDAQ: GOOG), Yahoo! (NASDAQ: YHOO)</p>
</li>
<li>
<p>Gold Level: HP (NYSE: HPQ)</p>
</li>
<li>
<p>Silver Level: Covalent</p>
</li>
<li>
<p>Bronze Level: AirPlus International, Tetsuya Kitahata, and Two Sigma
Investments</p>
</li>
</ul>
<p><strong>ApacheCon</strong> : Now in its tenth year, the official user and developer
conference, trainings, and expo of The Apache Software Foundation continues
to explore some of the hottest topics in Open Source. The continued
interest and increased adoption of Open Source technologies in Europe is
reflected in the success of ApacheCon Europe held in Amsterdam in April,
which boasted an increase in participation by 40%. ApacheCon US will be
held in New Orleans on 3-7 November 2008, and will feature several
enhancements to bring the Apache community of developers and users
together, including expanded tracks, more Fast Feather presentations, the
OFBiz Symposium (a dedicated "track" to the Apache Open For Business
Project's suite of enterprise applications), as well as CampApache (a
one-day, ad-hoc gathering with discussions, demos and interaction from
participants to share and learn in an open environment).</p>
<p><strong>Community Outreach</strong> : For the third consecutive year, the ASF is
participating in the Google Summer of Code. As part of its ongoing
mentorship on "the Apache Way", 32 ASF representatives have paired up with
student developers from Algeria, Austria, Brazil, China, Croatia, France,
India, Hungary, the Netherlands, Norway, Poland, Russia, Sri Lanka, the
Ukraine, and the United States for the opportunity to collaborate on 78
different tasks using Apache Projects such as Axis2, Cayenne, Derby,
Harmony, ODE, Roller, Sling, Solr, Tuscany, and Xerces2-J, as well as
several projects in the Apache Incubator.</p>
<p>In addition, the Foundation had participated in the Google Highly Open
Participation (GHOP) Contest, which concluded in February. This initiative
tasked nearly 400 pre-university students worldwide to produce a variety of
Open Source code, documentation, training materials and user experience
research for ten participating organizations, including the ASF. Spencer
Davis, GHOP Grand Prize winner chosen from the ASF's student contestants,
will be joined by Bertrand Delacretaz, GHOP project administrator for the
ASF, at the competition&rsquo;s awards ceremony in July.</p>
<p><strong>Project Achievements</strong> : With just two Projects (Apache HTTP Server, and
the ApacheCon Conference Planning committee) at its inception, The ASF
today comprises 62 Top-Level Projects (TLPs), 24 projects under Incubation
(comprising both the codebase and its community, known as Podlings), and 20
active initiatives registered in the Apache Labs.</p>
<p>Each ASF Project is managed by a self-selected team of technical experts
who actively contribute to the project according to the guidelines for
collaborative development best suited to that particular project. The
day-to-day activity of each TLP (and any sub-projects) is overseen by
Project Management Committees (PMCs).</p>
<p>For twelve years running, the Apache HTTP Server remains the #1 Web server,
powering more than 75 million Websites across the Internet, according to
the Netcraft May 2008 Web Server Survey. In addition, the 1 June Web Server
Survey by Security Space shows that Apache continues to hold 74% market
penetration across all Web Server domains.</p>
<p>Both Incubating- and sub-projects continue to go from strength to strength.
The following initiatives have graduated to ASF Top-Level Projects (TLPs):</p>
<ul>
<li>
<p>Apache Hadoop (sub-project of Apache Lucene; PMC Chair: Owen O'Malley)
&mdash; January 2008</p>
</li>
<li>
<p>Apache Continuum (sub-project of Apache Maven; PMC Chair: Emmanuel
Venisse) &mdash; February 2008</p>
</li>
<li>
<p>Apache Archiva (sub-project of Apache Maven; PMC Chair: Maria Odea Ching)
&mdash; March 2008</p>
</li>
<li>
<p>Apache CXF (from the Apache Incubator; PMC Chair: Daniel Kulp) &mdash; April
2008</p>
</li>
<li>
<p>Apache Tuscany (sub-project of Apache Web Services; PMC Chair: Ant Elder)
&mdash; May 2008</p>
</li>
</ul>
<p>Additional Project announcements include the release of: Apache HTTP Server
2.2.9; Apache Cocoon 2.2.0; Apache Portable Runtime 1.3.0; Apache Lucene
Java 2.3.0; Apache Harmony 5.0M6; Apache Lenya 2.0; Apache CXF 2.1; Apache
Wicket 1.3; Apache Jackrabbit 1.4; Apache Batik 1.7; Apache Axis2/C 1.3.0;
Apache QPid 2.1.</p>
<p><strong>Recognition and Awards</strong> : The ASF continues to garner ongoing
recognition by editors, technical experts, writers, analysts, and other
industry influencers. The "buzz" generated by many of The ASF's Projects
are testament to its innovation and leadership within the Open Source
community. Recent awards include:</p>
<ul>
<li>
<p>Java Community Process (JCP) Member of the Year The ASF won its third
Member of the Year prize awarded by the JCP Program Management Office. Geir
Magnusson, Vice President of the ASF JCP committee and JCP Executive
Committee member, accepted this prestigious award on behalf of the ASF at
the JCP Spec Lead Dinner on 6 May. "The ASF has been active and engaged
since the beginning, with wide participation at both the EC level and in
projects, as members of Expert Groups," said Magnusson in his acceptance
speech.</p>
</li>
<li>
<p>InfoWorld BOSSIE Award: Apache SpamAssassin won the InfoWorld "Best Of
Open Source Software" BOSSIE Award, as the winner in the anti-spam
category. According to InfoWorld "Our Bossie winner for anti-spam is the
ubiquitous SpamAssassin. Powerful, extensible, and effective, SpamAssassin
uses a trainable neural network engine to identify spam and minimize false
positives, in addition to the classic techniques of blacklisting and
Bayesian filtering."</p>
</li>
<li>
<p>Eclipse Community Award: Apache Directory Studio Apache Directory Studio
finishes as runner-up for Best Open Source RCP Application at the Eclipse
Community Awards announced on 18 March at EclipseCon. Earlier that week,
the Apache Directory team announced the second release candidate for the
version 1.1.0 Apache Directory Studio, its Eclipse based LDAP Browser and
Directory client.</p>
</li>
<li>
<p>JAX Innovation Award: Apache Sling Barely six months under incubation,
Apache Sling &ndash; the Web framework that uses a Java Content Repository,
such as Apache Jackrabbit, to store and manage content &ndash; won a JAX
Innovation Award on 25 April. The award was accepted on behalf of the
project by Committers Carsten Ziegeler and Felix Meschberger, who were
excited to spread the word that Apache Sling is "bringing back the fun (to
Java development)!"</p>
</li>
<li>
<p>SD Times 100: Influencers; Application Servers The ASF topped the
Software Development (SD) Times 100 list of Industry Influencers for the
third year running. The sixth edition of these coveted awards was published
on 2 June in recognition of the organizations or individuals that have
demonstrated innovation and leadership in their markets. "Apache stayed on
top of its game, continuing to offer enterprise-class sever software at a
price not even Microsoft could match," stated the SD Times, bestowing
Apache its third server award, highlighting Apache Geronimo powering
proprietary server solutions, and Apache Tomcat as the most popular Java
application server.</p>
</li>
</ul>
<p>Users and developers interested in becoming involved with any of the above
initiatives are invited to download software, join mailing lists, submit
patches/bug fixes/documentation, and offer feedback through the Projects
listed on the ASF Website.</p>
<h3 id="about-the-apache-software-foundation">ABOUT THE APACHE SOFTWARE FOUNDATION<a class="headerlink" href="#about-the-apache-software-foundation" title="Permalink">&para;</a></h3>
<p>Established in 1999, The Apache Software Foundation provides
organizational, legal, and financial support for a broad range of Open
Source software projects, including Apache HTTP Server &mdash; the world's most
popular Web server software for more than a decade. The Foundation provides
an established framework for intellectual property and financial
contributions that simultaneously limits contributors' potential legal
exposure. Through a collaborative and meritocratic development process,
Apache projects deliver enterprise-grade, freely available software
products that attract large communities of users. The pragmatic Apache
License makes it easy for all users, commercial and individual, to deploy
Apache products. For more information, please see
<a href="/">http://www.apache.org/</a></p>

</div>  </main>

  <!-- Footer -->
  <footer class="bg-primary">
    <div class="container">
      <div class="row">
        <br />
        <div class="col-sm-1">

        </div>
        <div class="col-sm-2">
          <h5 class="white">Community</h5>
          <ul class="list-unstyled white" role="menu">
            <li><a href="http://community.apache.org/">Overview</a></li>
            <li><a href="/foundation/conferences.html">Conferences</a></li>
            <li><a href="http://community.apache.org/gsoc.html">Summer of Code</a></li>
            <li><a href="http://community.apache.org/newcomers/">Getting Started</a></li>
            <li><a href="/foundation/how-it-works.html">The Apache Way</a></li>
            <li><a href="https://tac.apache.org">Travel Assistance</a></li>
            <li><a href="/foundation/getinvolved.html">Get Involved</a></li>
            <li><a href="/foundation/policies/conduct.html">Code of Conduct</a></li>
            <li><a href="http://community.apache.org/newbiefaq.html">Community FAQ</a></li>
            <li><a href="/memorials/">Memorials</a></li>
          </ul>
        </div>

        <div class="col-sm-2">
          <h5 class="white">Innovation</h5>
          <ul class="list-unstyled white" role="menu">
            <li><a href="http://incubator.apache.org/">Incubator</a></li>
            <li><a href="http://labs.apache.org/">Labs</a></li>
            <li><a href="/licenses/">Licensing</a></li>
            <li><a href="/foundation/license-faq.html">Licensing FAQ</a></li>
            <li><a href="/foundation/marks/">Trademark Policy</a></li>
            <li><a href="/foundation/contact.html">Contacts</a></li>
          </ul>
        </div>

        <div class="col-sm-2">
          <h5 class="white">Tech Operations</h5>
          <ul class="list-unstyled white" role="menu">
            <li><a href="/dev/">Developer Information</a></li>
            <li><a href="/dev/infrastructure.html">Infrastructure</a></li>
            <li><a href="/security/">Security</a></li>
            <li><a href="http://status.apache.org">Status</a></li>
            <li><a href="/foundation/contact.html">Contacts</a></li>
          </ul>
        </div>

        <div class="col-sm-2">
          <h5 class="white">Press</h5>
          <ul class="list-unstyled white" role="menu">
            <li><a href="/press/">Overview</a></li>
            <li><a href="https://blogs.apache.org/">ASF News</a></li>
            <li><a href="https://blogs.apache.org/foundation/">Announcements</a></li>
            <li><a href="https://twitter.com/TheASF">Twitter Feed</a></li>
            <li><a href="/press/#contact">Contacts</a></li>
          </ul>
        </div>

        <div class="col-sm-2">
          <h5 class="white">Legal</h5>
          <ul class="list-unstyled white" role="menu">
            <li><a href="/legal/">Legal Affairs</a></li>
            <li><a href="/legal/dmca.html">DMCA</a></li>
            <li><a href="/licenses/">Licensing</a></li>
            <li><a href="/foundation/marks/">Trademark Policy</a></li>
            <li><a href="/foundation/records/">Public Records</a></li>
            <li><a href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy Policy</a></li>
            <li><a href="/licenses/exports/">Export Information</a></li>
            <li><a href="/foundation/license-faq.html">Licensing FAQ</a></li>
            <li><a href="/foundation/contact.html">Contacts</a></li>
          </ul>
        </div>

        <div class="col-sm-1">
        </div>

      </div>
      <hr class="col-lg-12 hr-white" />
      <div class="row">
        <div class="col-lg-12">
          <p class="text-center">Copyright &#169; 2023 The Apache Software Foundation, Licensed under the <a class="white" href="/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
          <p class="text-center">Apache and the Apache feather logo are trademarks of The Apache Software Foundation. </p>
        </div>
      </div>
    </div>

  </footer>

  <!-- / Footer -->

  <script src="/js/jquery.min.js"></script>
  <script src="/js/bootstrap.js"></script>
  <script src="/js/slideshow.js"></script>
  <script>
    (function($){
    $(document).ready(function(){
    $('ul.dropdown-menu [data-toggle=dropdown]').on('click', function(event) {
    event.preventDefault();
    event.stopPropagation();
    $(this).parent().siblings().removeClass('open');
    $(this).parent().toggleClass('open');
    console.log('WOrked');
    });
    });
    })(jQuery);
  </script>
</body>
</html>