<html><head>
<title>Certificate of Incorporation of The Apache Software Foundation</title>
</head><body bgcolor="#FFFFFF">
<h2 align="center">CERTIFICATE OF INCORPORATION<br>
                               OF <br>
                  THE APACHE SOFTWARE FOUNDATION
</h2>
<p>
The undersigned, a natural person, for the purpose of organizing a
corporation for conducting the business and promoting the purposes
hereinafter stated, under the provisions and subject to the
requirements of the laws of the State of Delaware (particularly
Chapter 1, Title 8 of the Delaware Code and the acts amendatory
thereof and supplemental thereto, and known, identified, and referred
to as the "General Corporation Law of the State of Delaware") hereby
certifies that:

<ol>
<li>The name of the corporation (hereinafter called the "Corporation") is:

<p align="center"><strong>THE APACHE SOFTWARE FOUNDATION</strong></p>

<li>The address of the registered office of the Corporation in the
State of Delaware is 1013 Centre Road, City of Wilmington, County of
New Castle, Delaware, 19805; the name of the registered agent of the
Corporation at such address is Corporation Service Company.
<p>
<li>The purpose of the Corporation is to engage in any lawful act or
activity for which corporations which are organized not for profit may
be organized under the General Corporation Law of the State of
Delaware, including the creation and maintenance of "open source"
software distributed by the Corporation to the public at no
charge. Notwithstanding the forgoing, if the Board of Directors of the
Corporation elects to seek and obtains an exemption for the
Corporation from federal taxation pursuant to Section 501(a) of the
Internal Revenue Code, as amended (the "IRC"), and until such time, if
ever, that such exemption is denied or lost, the Corporation shall not
be empowered to engage directly or indirectly in any activity which
the Corporation believes would be likely to invalidate its status as
an organization exempt from federal taxation under Section 501(a) of
the IRC as an organization described in Section 501(c) of the IRC.
<p>
<li>No part of the net earnings of the Corporation shall inure to the
benefit of, or be distributable to, the Corporation's members,
directors or officers, or any other private person, except that the
Corporation shall be authorized and empowered to pay reasonable
compensation for services rendered and to make payments and
distributions in furtherance of the purposes herein set forth.
<p>
<li>The Corporation shall be a membership corporation and shall not
have the authority to issue capital stock. The conditions of
membership of the Corporation shall be as stated in the Bylaws of the
Corporation.
<p>
<li>The name and mailing address of the incorporator are as follows:</li>
<p>
<center>
<table border=0>
<tr valign="top">
<td align="left">Name:<br>Address:</td>
<td align="left">Roy T. Fielding<br>(elided)<br>Laguna Beach, California</td>
</tr>
</table>
</center>
<p>
<li>In the event of the liquidation, dissolution, or winding up of the
affairs of the Corporation (whether voluntary or by operation of law),
the Board of Directors of the Corporation will, after paying or making
any provision for the payment all liabilities of the Corporation,
distribute all of the assets of the Corporation as it sees fit,
consistent with the contractual obligations of the
Corporation. Notwithstanding the foregoing, if the Corporation is
exempt from federal taxation pursuant to Section 501(a) of the IRC at
the time of any such liquidation, dissolution or winding up of the
affairs of the Corporation, then the Board of Directors shall make
such distribution(s) in such manner as the Board of Directors may
determine to the best suited to the accomplishment of the purposes of
the Corporation as set forth in Article 3 above and within the intent
of Section 501(c) of the IRC.
<p>
<li>After the original or other Bylaws of the Corporation have been
adopted, amended or repealed, as the case may be, in accordance with
the provisions of Section 109 of the General Corporation Law of the
State of Delaware, the power to adopt, amend or repeal the Bylaws of
the Corporation may be exercised by the Board of Directors of the
Corporation in accordance with the procedures set forth in the Bylaws
of the Corporation.
<p>
<li>Elections of directors need not be by written ballot unless the
Bylaws of the Corporation shall so provide.
<p>
<li>To the fullest extent permitted by the General Corporation Law of
the State of Delaware, as the same exists or may hereafter be amended,
a director of the Corporation shall not be personally liable to the
Corporation or its members for monetary damages for breach of
fiduciary duty as a director.
<p>
<li>From time to time any of the provisions of this Certificate of
Incorporation may be amended, altered or repealed, and other
provisions authorized by the laws of the State of Delaware at the time
in force may be added or inserted in the manner and at the time
prescribed by said laws, and all rights at any time conferred upon the
members of the Corporation by this Certificate of Incorporation are
granted subject to the provisions of this Article 11.
</ol>

<p>
<strong>IN WITNESS WHEREOF</strong>, the undersigned incorporator has hereunto set
his hand, declaring and certifying under penalties of perjury that the
foregoing instrument is his act and deed and that the facts stated
herein are true, this 25th day of March, 1999.

<p>
(signed)<br>
Roy T. Fielding, Incorporator

</body></html>
