<!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>ASF highlights, 1999-2009</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" });
    });
    var pageTitle = 'ASF highlights, 1999-2009';
    if(pageTitle === '404'){
      window.addEventListener('DOMContentLoaded', (event) => {
          new PagefindUI({ element: "#page-404-search" });
      });
    }
  </script>
  

<!-- https://www.apache.org/licenses/LICENSE-2.0 -->  <!-- Matomo -->
  <script>
    var pageTitle = 'ASF highlights, 1999-2009';
    var _paq = window._paq = window._paq || [];
    /* tracker methods like "setCustomDimension" should be called before
"trackPageView" */
    /* We explicitly disable cookie tracking to avoid privacy issues */
    _paq.push(['disableCookies']);
    if(pageTitle === '404'){
      /* Track 404 page hits */
      _paq.push(['setDocumentTitle',  '404/URL = ' +  encodeURIComponent(document.location.pathname+document.location.search) + '/From = ' + encodeURIComponent(document.referrer)]);
    }
    /* Measure a visit to flink.apache.org and nightlies.apache.org/flink
as the same visit */
    _paq.push(['trackPageView']);
    _paq.push(['enableLinkTracking']);
    (function() {
      var u="//analytics.apache.org/";
      _paq.push(['setTrackerUrl', u+'matomo.php']);
      _paq.push(['setSiteId', '37']);
      var d=document, g=d.createElement('script'),
s=d.getElementsByTagName('script')[0];
      g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
    })();
  </script>
  <!-- End Matomo Code -->

</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">
          <div class="upper-nav">
            <div class="header-social-icons">
              <a target="_blank" href="https://infra.apache.org/slack.html"><img src="/images/slack-icon.svg" alt="slack icon"></a>
              <a target="_blank" href="https://github.com/apache"><img src="/images/github-mark-white.svg" alt="github icon"></a>
              <a target="_blank" href="https://www.linkedin.com/company/the-apache-software-foundation/"><img src="/images/linkedin-icon.png" alt="linkedIn icon"></a>
              <a target="_blank" href="https://www.youtube.com/c/TheApacheFoundation"><img src="/images/youtube-icon.svg" alt="youtube icon"></a>
              <a target="_blank" href="https://twitter.com/TheASF"><img src="/images/x-icon.svg" alt="X icon"></a>
            </div>
            <a href="/foundation/sponsorship" class="btn btn-default" onclick="_paq.push(['trackEvent', 'click', 'SponsorASF Button']);">Sponsor the ASF</a>
          </div>
          <ul class="nav navbar-nav navbar-justified">
            <li class="dropdown">
              <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/" target="_blank">Contributor Getting Started</a></li>
                <li><a href="https://community.apache.org/contributors/" target="_blank">Becoming a Committer</a></li>
                <li><a href="/foundation/policies/conduct">Code of Conduct</a></li>
                <li><a href="/community-resources/">Community Resources</a></li>
                <li><a href="https://communityovercode.org/" target="_blank">Community Over Code</a></li>
                <li><a href="https://events.apache.org/" target="_blank">Events</a></li>
                <li><a href="https://www.redbubble.com/people/comdev/shop" target="_blank">Store</a></li>
              </ul>
            </li>
            <li class="dropdown">
              <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="/projects">Projects</a></li>
                <li><a href="https://incubator.apache.org/" target="_blank">Incubator Projects</a></li>
                <li><a href="https://projects.apache.org/" target="_blank">Projects Directory </a></li>
                <li><a href="/foundation/mailinglists">Mailing Lists </a></li>
                <li><a href="/security">Report a Vulnerability</a></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/" target="_blank">Distributions</a></li>
                <li><a href="https://projects.apache.org/releases.html" target="_blank">Releases</a></li>
                <li><a href="https://status.apache.org/" target="_blank">Infrastructure Status</a></li>
                <li><a href="https://infra-reports.apache.org/#uptime" target="_blank">Infrastructure Statistics</a></li>
              </ul>
            </li>
            <li class="dropdown">
              <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">Learn&nbsp;<span class="caret"></span></a>
              <ul class="dropdown-menu" role="menu">
                <li><a href="https://news.apache.org/" target="_blank">Blog</a></li>
                <li><a href="/foundation/how-it-works">How the ASF Works</a></li>
                <li><a href="/theapacheway/">The Apache Way</a></li>
                <li><a href="/legal/">Legal &amp; Trademark</a></li>
                <li><a href="/licenses">Licenses</a></li>
                <li><a href="/foundation/glossary">Glossary</a></li>
                <li><a href="/foundation/faq">FAQ</a></li>
              </ul>
            </li>
            <li class="dropdown">
              <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">Resources &amp; Tools&nbsp;<span class="caret"></span></a>
              <ul class="dropdown-menu" role="menu">
                <li><a href="/dev/">Developer Information</a></li>
                <li><a href="https://cwiki.apache.org/" target="_blank" >Wiki</a></li>
                <li><a href="https://issues.apache.org/" target="_blank" >Issues</a></li>
                <li><a href="https://infra.apache.org/slack.html" target="_blank" >Slack</a></li>
                <li><a href="https://selfserve.apache.org/" target="_blank" >Self Serve Portal</a></li>
                <li><a href="https://infra.apache.org/" target="_blank" >Infrastructure</a></li>
                <li><a href="https://whimsy.apache.org/" target="_blank" >Whimsy</a></li>
                <li><a href="/foundation/press/kit/">Brand Guidelines</a></li>
                <li><a href="/logos/">Project Logos</a></li>
              </ul>
            </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/">About</a></li>
                <li><a href="/foundation/sponsors">Our Sponsors</a></li>
		<li><a href="/foundation/sponsorship">Corporate Sponsorship</a></li>
                <li><a href="/foundation/individual-supporters">Individual Supporters</a></li>
                <li><a href="/foundation/leadership">Leadership</a></li>
                <li><a href="/foundation/members">Members</a></li>
                <li><a href="https://diversity.apache.org/" target="_blank">Diversity & Inclusion</a></li>
                <li><a href="/press/">Newsroom</a></li>
                <li><a href="/foundation/contact">Contact</a></li>
              </ul>
            </li>
            
           
            
            <li class="dropdown">
              <a href="#" class="dropdown-toggle hidden-xs" 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">

    </div>
 
  </header>
  <main id="maincontent">
<div class="container">    <h1 id="asf-highlights-1999-2009">ASF highlights, 1999-2009<a class="headerlink" href="#asf-highlights-1999-2009" title="Permalink">&para;</a></h1>
<p><em>Please see our <a href="/press/#news">current listing of News and Announcements</a> for more recent notes.</em></p>
<hr/>
<p>Keep informed about news from the Apache Software Foundation and its
projects by subscribing to the <a href="mailinglists.html#foundation-announce">Apache
Announcements</a> mailing list. To see
what has happened recently, please check the <a href="http://mail-archives.apache.org/mod_mbox/www-announce/">archives of Apache
Announcements</a> or
you can visit <a href="https://blogs.apache.org/foundation/">our foundation blog</a>.</p>
<p>See the <a href="/press/#news">current listing of News and Announcements</a>.</p>
<h3 id="2010">2010<a class="headerlink" href="#2010" title="Permalink">&para;</a></h3>
<ul>
<li>
<p><em>October 20, 2010</em> <a href="https://blogs.apache.org/foundation/entry/media_alert_the_apache_software1">Media Alert: The Apache Software Foundation
Announces Apache Maven Version
3.0</a></p>
</li>
<li>
<p><em>October 6, 2010</em> <a href="https://blogs.apache.org/foundation/entry/apachecon_announces_keynote_presentations_by">ApacheCon Announces Keynote Presentations by Thought
Leaders Dana Blankenhorn of ZDNet, Daniel Crichton of NASA Jet Propulsion
Laboratory, and Bob Sutor of IBM
Corporation</a></p>
</li>
<li>
<p><em>September 22, 2010</em> <a href="https://blogs.apache.org/foundation/entry/the_asf_hits_its_millionth">The ASF Hits its Millionth
Commit!</a></p>
</li>
<li>
<p><em>September 11, 2010</em> <a href="https://blogs.apache.org/foundation/entry/announcing_the_new_asf_board">Announcing The New ASF Executive
Officers</a></p>
</li>
<li>
<p><em>September 9, 2010</em> <a href="https://blogs.apache.org/foundation/entry/the_asf_is_seeking_a">The ASF is seeking a part-time Executive
Assistant</a></p>
</li>
<li>
<p><em>August 30, 2010</em> <a href="https://blogs.apache.org/foundation/entry/registration_opens_for_apachecon_north">Registration Opens for ApacheCon North America
2010</a></p>
</li>
<li>
<p><em>July 21, 2010</em> <a href="https://blogs.apache.org/foundation/entry/asf_director_greg_stein_awarded">ASF Director Greg Stein awarded O'Reilly Open Source
Award at
OSCON</a></p>
</li>
<li>
<p><em>July 21, 2010</em> <a href="https://blogs.apache.org/foundation/entry/the_apache_software_foundation_announces7">The Apache Software Foundation Announces Apache FOP
Version
1.0</a></p>
</li>
<li>
<p><em>July 15, 2010</em> <a href="https://blogs.apache.org/foundation/entry/the_apache_software_foundation_announces6">The Apache Software Foundation Announces New Board
Members</a></p>
</li>
<li>
<p><em>July 14, 2010</em> <a href="https://blogs.apache.org/foundation/entry/the_asf_asks_have_you">The ASF Asks: Have you met Apache
Pivot?</a></p>
</li>
<li>
<p><em>July 7, 2010</em> <a href="https://blogs.apache.org/foundation/entry/media_alert_the_apache_software">Media Alert: The Apache Software Foundation Announces
Apache Cayenne Version
3.0</a></p>
</li>
<li>
<p><em>July 7, 2010</em> <a href="https://blogs.apache.org/foundation/entry/apache_cayenne_v_3_0">Apache Cayenne v.3.0 Technical Fact
Sheet</a></p>
</li>
<li>
<p><em>June 29, 2010</em> <a href="https://blogs.apache.org/foundation/entry/the_apache_software_foundation_announces5">The Apache Software Foundation Announces Apache Tomcat
Version
7.0</a></p>
</li>
<li>
<p><em>May 4, 2010</em> <a href="https://blogs.apache.org/foundation/entry/the_apache_software_foundation_announces4">The Apache Software Foundation Announces New Top-Level
Projects</a></p>
</li>
<li>
<p><em>April 28, 2010</em> <a href="https://blogs.apache.org/foundation/entry/call_for_participation_technical_talks">Call for Participation: Technical Talks -- ApacheCon
North America
2010</a></p>
</li>
<li>
<p><em>April 13, 2010</em> <a href="https://blogs.apache.org/foundation/entry/the_apache_software_foundation_announces3">The Apache Software Foundation Announces Apache
Cassandra Release
0.6</a></p>
</li>
<li>
<p><em>April 1, 2010</em> <a href="https://blogs.apache.org/foundation/entry/the_apache_software_foundation_receives">The Apache Software Foundation Receives Approval for
Sale to Oracle
Corporation</a></p>
</li>
<li>
<p><em>March 20, 2010</em> <a href="https://blogs.apache.org/foundation/entry/apachecon_na_2010_business_community">ApacheCon NA 2010 Business/Community Track Call For
Participation</a></p>
</li>
<li>
<p><em>February 23, 2010</em> <a href="https://blogs.apache.org/foundation/entry/the_apache_software_foundation_announces2">The Apache Software Foundation Announces the 15th
Anniversary of the Apache HTTP Web
Server</a></p>
</li>
<li>
<p><em>January 26, 2010</em> <a href="https://blogs.apache.org/foundation/entry/the_apache_software_foundation_announces1">The Apache Software Foundation Announces Apache
SpamAssassin Version
3.3.0</a></p>
</li>
<li>
<p><em>January 20, 2010</em> <a href="https://blogs.apache.org/foundation/entry/the_apache_software_foundation_announces">The Apache Software Foundation Announces Apache
Pivot as Top-Level
Project</a></p>
</li>
<li>
<p><em>January 12, 2010</em> <a href="https://blogs.apache.org/foundation/entry/the_apache_software_foundation_welcomes">The Apache Software Foundation Welcomes Facebook as
its Newest
Sponsor</a></p>
</li>
<li>
<p><em>January 2, 2010</em> <a href="https://blogs.apache.org/foundation/entry/notice_apache_spamassassin_y2k10_rule">NOTICE: Apache SpamAssassin Y2K10 Rule Bug - Update
Your Rules
Now!</a></p>
</li>
</ul>
<h3 id="2009">2009<a class="headerlink" href="#2009" title="Permalink">&para;</a></h3>
<ul>
<li>
<p><em>November 4th, 2009</em> <a href="press/pr_2009_11_04_2.html">ApacheCon US 2009 Draws Unprecedented Support From
the Global Open Source Community and Recognition for the 10th Anniversary
and Influence of The Apache Software
Foundation</a> <br/>Hundreds of attendees with
support from dozens of corporate sponsors, exhibitors, and community
partners helped make this year's ApacheCon US among the most popular events
to date. The ASF was honored by the State of California and the City of
Oakland; November 4 named Apache Software Foundation Day. Read the Press
Release <a href="press/pr_2009_11_04.html">Read More</a> about our tenth anniversary
celebration.</p>
</li>
<li>
<p><em>November 4th, 2009</em> <a href="press/pr_2009_11_04.html">Subversion Submitted to Become a Project at The
Apache Software Foundation</a> <br/>The
CollabNet-sponsored Subversion project and The Apache Software Foundation
(ASF) announced today that the award-winning Open Source project has
formally submitted itself to the Apache Incubator in order to become part
of the Foundation's efforts. <a href="press/pr_2009_11_04.html">Read More</a> about
this exciting development.</p>
</li>
<li>
<p><em>March 25, 2009</em> <br/> <a href="press/letter_2009_03_25.html">Letter</a> :
Exactly ten years ago, the highly dedicated members of the Apache Group
decided to secure the future of the Apache HTTP Server by forming The
Apache Software Foundation <a href="/foundation/press/letter_2009_03_25.html">Read
more</a> about this special
anniversary in a letter by Jim Jagielski, current Chairman of the
foundation.</p>
</li>
<li>
<p><em>March 4, 2009</em> <br/> <a href="press/pr_2009_03_04.html">Press Release</a> :
Press Conference for the Tenth Anniversary of The Apache Software
Foundation</p>
</li>
<li>
<p><em>March 3, 2009</em> <br/> <a href="press/pr_2009_03_03.html">Press Release</a> : The
Apache Software Foundation Names Qpid a Top-Level Project.</p>
</li>
</ul>
<h3 id="2008">2008<a class="headerlink" href="#2008" title="Permalink">&para;</a></h3>
<ul>
<li>
<p><em>October 14, 2008</em> <br/> <a href="press/pr_2008_10_14.html">Press Release</a> :
Apache Tuscany enables service oriented architecture solutions to more
easily respond to new business requirements.</p>
</li>
<li>
<p><em>June 17, 2008</em> <br/> <a href="press/pr_2008_06_17.html">Press Release</a> : The
Apache Software Foundation's "Apache Way" continues to gain momentum,
recognition and influence on the future of open source technologies.</p>
</li>
<li>
<p><em>January 15, 2008</em> <br/> <a href="press/ASF-NewYear2008.pdf">Press Release</a> :
The Apache Software Foundation Wraps Up 2007 As Its Strongest Year To Date.</p>
</li>
</ul>
<h3 id="2004">2004<a class="headerlink" href="#2004" title="Permalink">&para;</a></h3>
<ul>
<li>
<p><em>September 2, 2004</em> <br/> <a href="docs/sender-id-position.html">Open letter</a>:
Issued to the <a href="http://www.ietf.org/html.charters/marid-charter.html">IETF MARID Working
Group</a> regarding the
ASF's position on Sender ID.</p>
</li>
<li>
<p><em>May 11, 2004</em> <br/> <a href="http://www.prnewswire.com/cgi-bin/stories.pl?ACCT=SVBIZINK3.story&amp;STORY=/www/story/05-11-2004/0002172126&amp;EDATE=TUE+May+11+2004,+02:15+PM">Press
release</a>:
Apache HTTP Server Reaches Record Eight Consecutive Years of Technical Leadership</p>
</li>
</ul>
<h3 id="2002">2002<a class="headerlink" href="#2002" title="Permalink">&para;</a></h3>
<ul>
<li><em>March 26, 2002</em> <br/> <a href="http://www1.internetwire.com/iwire/release_html_b1?release_id=39838">Press
release</a>:
Apache Software Foundation Reaches Agreement With Sun Microsystems To
Allow Open Source Java Implementations</li>
</ul>
<h3 id="2001">2001<a class="headerlink" href="#2001" title="Permalink">&para;</a></h3>
<ul>
<li>
<p><em>May 30, 2001</em> <br/> <a href="../info/20010519-hack.html">Apache.org hacked</a>
but no software distributions were compromised.</p>
</li>
<li>
<p><em>Feb 21, 2001</em> <br/>The Apache Software Foundation is <a href="records/ASF-501c3.pdf">officially
recognized as a U.S. 501(c)3 public charity</a>.</p>
</li>
</ul>
<h3 id="1999">1999<a class="headerlink" href="#1999" title="Permalink">&para;</a></h3>
<ul>
<li>
<p><em>June 30, 1999</em> <br/> <a href="press/pr_1999_06_30.html">Press release</a>
announcing the incorporation of the Apache Software Foundation.</p>
</li>
<li>
<p><em>June 1, 1999</em> <br/>The Apache Software Foundation is officially
incorporated within the State of Delaware.</p>
</li>
</ul>

</div>  </main>

  <!-- Footer -->
  <footer class="bg-primary">
    <div class="container">
      <div class="row">
        <br />
        <div class="col-sm-2">
          <h5 class="white">Community</h5>
          <ul class="list-unstyled white" role="menu">
            <li><a href="https://community.apache.org/" target="_blank">Contributor Getting Started</a></li>
            <li><a href="https://community.apache.org/contributors/" target="_blank">Becoming a Committer</a></li>
            <li><a href="/foundation/policies/conduct">Code of Conduct</a></li>
            <li><a href="/community-resources/">Community Resources</a></li>
            <li><a href="https://communityovercode.org/" target="_blank">Community Over Code</a></li>
            <li><a href="https://events.apache.org/" target="_blank">Events</a></li>
            <li><a href="https://www.redbubble.com/people/comdev/shop" target="_blank">Store</a></li>
          </ul>
        </div>

        <div class="col-sm-2">
          <h5 class="white">Projects</h5>
          <ul class="list-unstyled white" role="menu">
              <li><a href="/projects">Projects</a></li>
              <li><a href="https://incubator.apache.org/" target="_blank">Incubator Projects</a></li>
              <li><a href="https://projects.apache.org/" target="_blank">Projects Directory </a></li>
              <li><a href="/foundation/mailinglists">Mailing Lists </a></li>
              <li><a href="/security">Report a Vulnerability</a></li>
          </ul>
        </div>
        <div class="col-sm-2">
          <h5 class="white">Downloads</h5>
          <ul class="list-unstyled white" role="menu">
            <li><a href="https://downloads.apache.org/" target="_blank">Distributions</a></li>
            <li><a href="https://projects.apache.org/releases.html" target="_blank">Releases</a></li>
            <li><a href="https://status.apache.org/" target="_blank">Infrastructure Status</a></li>
            <li><a href="https://infra-reports.apache.org/#uptime" target="_blank">Infrastructure Statistics</a></li>
          </ul>
        </div>

        <div class="col-sm-2">
          <h5 class="white">Learn</h5>
          <ul class="list-unstyled white" role="menu">
            <li><a href="https://news.apache.org/" target="_blank">Blog</a></li>
            <li><a href="/foundation/how-it-works">How the ASF Works</a></li>
            <li><a href="/theapacheway/">The Apache Way</a></li>
            <li><a href="/legal/">Legal &amp; Trademark</a></li>
            <li><a href="/licenses">Licenses</a></li>
            <li><a href="/foundation/glossary">Glossary</a></li>
            <li><a href="/foundation/faq">FAQ</a></li>
          </ul>
        </div>

        <div class="col-sm-2">
          <h5 class="white">Resources &amp; Tools</h5>
          <ul class="list-unstyled white" role="menu">
              <li><a href="/dev/">Developer Information</a></li>
              <li><a href="https://cwiki.apache.org/" target="_blank" >Wiki</a></li>
              <li><a href="https://issues.apache.org/" target="_blank" >Issues</a></li>
              <li><a href="https://infra.apache.org/slack.html" target="_blank" >Slack</a></li>
              <li><a href="https://selfserve.apache.org/" target="_blank" >Self Serve Portal</a></li>
              <li><a href="https://infra.apache.org/" target="_blank" >Infrastructure</a></li>
              <li><a href="https://whimsy.apache.org/" target="_blank" >Whimsy</a></li>
              <li><a href="/foundation/press/kit/">Brand Guidelines</a></li>
              <li><a href="/logos/">Project Logos</a></li>
          </ul>
        </div>

        <div class="col-sm-2">
          <h5 class="white">About</h5>
          <ul class="list-unstyled white" role="menu">
            <li><a href="/foundation/">About</a></li>
            <li><a href="/foundation/sponsors">Our Sponsors</a></li>
	    <li><a href="/foundation/sponsorship">Corporate Sponsorship</a></li>
            <li><a href="/foundation/individual-supporters">Individual Supporters</a></li>
            <li><a href="/foundation/leadership">Leadership</a></li>
            <li><a href="/foundation/members">Members</a></li>
            <li><a href="https://diversity.apache.org/" target="_blank">Diversity & Inclusion</a></li>
            <li><a href="/press/">Newsroom</a></li>
            <li><a href="/foundation/contact">Contact</a></li>
            <li><a href="https://privacy.apache.org/policies/privacy-policy-public.html" target="_blank">Privacy Policy</a></li>
          </ul>
        </div>


      </div>
      <hr class="col-lg-12 hr-white" />
      <div class="row">
        <div class="col-lg-12">
          <p class="text-center">Copyright &#169; 2024 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>