Modified: websites/production/struts/content/security.html ============================================================================== --- websites/production/struts/content/security.html (original) +++ websites/production/struts/content/security.html Wed Dec 31 10:10:27 2014 @@ -10,9 +10,11 @@ <title>Security Issues</title> <link href="//fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600,700,400italic,600italic,700italic" rel="stylesheet" type="text/css"> - <link rel="stylesheet" href="css/main.css"> + <link href="//netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.css" rel="stylesheet"> + <link href="css/main.css" rel="stylesheet"> + <link href="css/custom.css" rel="stylesheet"> - <script type="text/javascript" src="js/jquery-1.11.0.min.js"></script> + <script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> <script type="text/javascript" src="bootstrap/js/bootstrap.js"></script> <script type="text/javascript" src="js/community.js"></script> </head> @@ -118,7 +120,7 @@ <article class="container"> <section class="col-md-12"> - <h1>Reporting New Security Issues with Apache Struts</h1> + <h1 id="reporting-new-security-issues-with-apache-struts">Reporting New Security Issues with Apache Struts</h1> <p>The Apache Struts project takes a very active stance in eliminating security problems and denial of service attacks against applications using the Apache Struts framework.</p> @@ -137,7 +139,7 @@ workarounds to generic problems (such as the same URL repeatedly). In general our philosophy is to avoid any attacks which can cause the server to consume resources in a non-linear relationship to the size of inputs.</p> -<p>The mailing address is: <a href="mailto:secur...@struts.apache.org">secur...@struts.apache.org</a></p> +<p>The mailing address is: <a href="mailto:security@struts.apache.org">security@struts.apache.org</a></p> <p><a href="http://httpd.apache.org/docs/trunk/misc/security_tips.html">General network server security tips</a></p> @@ -182,5 +184,19 @@ to consume resources in a non-linear rel }(document, 'script', 'facebook-jssdk'));</script> +<script> +$(function() { + return $("h2, h3, h4, h5, h6").each(function(i, el) { + var $el, icon, id; + $el = $(el); + id = $el.attr('id'); + icon = '<i class="fa fa-link"></i>'; + if (id) { + return $el.prepend($("<a />").addClass("header-link").attr("href", "#" + id).html(icon)); + } + }); +}); +</script> + </body> </html>
Modified: websites/production/struts/content/struts1eol-announcement.html ============================================================================== --- websites/production/struts/content/struts1eol-announcement.html (original) +++ websites/production/struts/content/struts1eol-announcement.html Wed Dec 31 10:10:27 2014 @@ -10,9 +10,11 @@ <title>Apache Struts 1 EOL Announcement</title> <link href="//fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600,700,400italic,600italic,700italic" rel="stylesheet" type="text/css"> - <link rel="stylesheet" href="css/main.css"> + <link href="//netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.css" rel="stylesheet"> + <link href="css/main.css" rel="stylesheet"> + <link href="css/custom.css" rel="stylesheet"> - <script type="text/javascript" src="js/jquery-1.11.0.min.js"></script> + <script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> <script type="text/javascript" src="bootstrap/js/bootstrap.js"></script> <script type="text/javascript" src="js/community.js"></script> </head> @@ -118,7 +120,7 @@ <article class="container"> <section class="col-md-12"> - <h1>Apache Struts 1 End-Of-Life (EOL) Announcement</h1> + <h1 id="apache-struts-1-end-of-life-eol-announcement">Apache Struts 1 End-Of-Life (EOL) Announcement</h1> <p><strong>The Apache Struts Project Team would like to inform you that the Struts 1.x web framework has reached its end of life and is no longer officially supported.</strong></p> @@ -130,27 +132,39 @@ Struts 1 in projects. See the following <p>See also: <a href="struts1eol-press.html">Apache Struts 1 EOL Press Release</a></p> -<h2>Questions and Answers</h2> +<h2 id="questions-and-answers">Questions and Answers</h2> <ul> -<li><p><strong>With the announcement of Struts 1 EOL, what happens to Struts 1 resources?</strong></p> + <li> + <p><strong>With the announcement of Struts 1 EOL, what happens to Struts 1 resources?</strong></p> -<p>All resources will stay where they are. The documentation will still be accessible from the Apache Struts homepage, as well as the downloads for all released Struts 1.x versions. All of the Struts 1 source code can be found in the Apache Struts subversion repository, now and in future. All released Maven artifacts will still be accessible in Maven Central.</p></li> -<li><p><strong>Given a major security problem or a serious bug is reported for Struts 1 in near future, can we expect a new release with fixes?</strong></p> + <p>All resources will stay where they are. The documentation will still be accessible from the Apache Struts homepage, as well as the downloads for all released Struts 1.x versions. All of the Struts 1 source code can be found in the Apache Struts subversion repository, now and in future. All released Maven artifacts will still be accessible in Maven Central.</p> + </li> + <li> + <p><strong>Given a major security problem or a serious bug is reported for Struts 1 in near future, can we expect a new release with fixes?</strong></p> + + <p>As of now, actually no - that is what the EOL announcement essentially is about. Since the end of support is reached, you will either need to find mitigations, patch the existing Struts 1 source code yourself or migrate your project to another web framework.</p> + </li> + <li> + <p><strong>Is there an immediate need to eliminate Struts 1 from my projects?</strong></p> + + <p>As far as the Struts team is currently aware of, there is no urgent issue posing the immediate need to eliminate Struts 1 usage from your projects. However, you should be aware that security and bug fixes will no longer be provided. If in future such flaws are found you will need to take action as described in the preceding answer.</p> + </li> + <li> + <p><strong>We plan to start a new project based on Struts 1. Can we still do so?</strong></p> + + <p>Basically yes, but we would not recommend doing so. As long as no code line is written it is very easy to conceptually select an alternative web framework such as Struts 2.</p> + </li> + <li> + <p><strong>We want to migrate our project from Struts 1 to another web framework. What would you recommend?</strong></p> + + <p>You should be aware that there is currently no âdrop-inâ replacement for Struts 1. You will need to adapt your existing code to the framework of choice. Basically every action based Java web framework is a possible candidate. We as the Apache Struts Team can highly recommend investigating Struts 2 as a successor framework - it is modern, highly decoupled, feature rich, well maintained and successfully running in many mission critical projects in the wild. It shares the same basic principles with Struts 1, but offers a highly improved architecture and API. Other alternatives are e.g. Spring Web MVC, Grails or Stripes.</p> + </li> + <li> + <p><strong>My friends / colleagues and I would like to see Struts 1 being maintained again. What can we do?</strong></p> -<p>As of now, actually no - that is what the EOL announcement essentially is about. Since the end of support is reached, you will either need to find mitigations, patch the existing Struts 1 source code yourself or migrate your project to another web framework.</p></li> -<li><p><strong>Is there an immediate need to eliminate Struts 1 from my projects?</strong></p> - -<p>As far as the Struts team is currently aware of, there is no urgent issue posing the immediate need to eliminate Struts 1 usage from your projects. However, you should be aware that security and bug fixes will no longer be provided. If in future such flaws are found you will need to take action as described in the preceding answer.</p></li> -<li><p><strong>We plan to start a new project based on Struts 1. Can we still do so?</strong></p> - -<p>Basically yes, but we would not recommend doing so. As long as no code line is written it is very easy to conceptually select an alternative web framework such as Struts 2.</p></li> -<li><p><strong>We want to migrate our project from Struts 1 to another web framework. What would you recommend?</strong></p> - -<p>You should be aware that there is currently no "drop-in" replacement for Struts 1. You will need to adapt your existing code to the framework of choice. Basically every action based Java web framework is a possible candidate. We as the Apache Struts Team can highly recommend investigating Struts 2 as a successor framework - it is modern, highly decoupled, feature rich, well maintained and successfully running in many mission critical projects in the wild. It shares the same basic principles with Struts 1, but offers a highly improved architecture and API. Other alternatives are e.g. Spring Web MVC, Grails or Stripes.</p></li> -<li><p><strong>My friends / colleagues and I would like to see Struts 1 being maintained again. What can we do?</strong></p> - -<p>You are free to put effort in Struts 1. There are basically two possible ways to do so: either fork the existing source, or engage in community building within the Apache Struts Project. If there are enough people demonstrating their will and ability to provide patches, maintenance and oversight in the long run, there is nothing holding us back from putting Struts 1 back into maintenance with the help of these volunteers.</p></li> + <p>You are free to put effort in Struts 1. There are basically two possible ways to do so: either fork the existing source, or engage in community building within the Apache Struts Project. If there are enough people demonstrating their will and ability to provide patches, maintenance and oversight in the long run, there is nothing holding us back from putting Struts 1 back into maintenance with the help of these volunteers.</p> + </li> </ul> </section> @@ -192,5 +206,19 @@ Struts 1 in projects. See the following }(document, 'script', 'facebook-jssdk'));</script> +<script> +$(function() { + return $("h2, h3, h4, h5, h6").each(function(i, el) { + var $el, icon, id; + $el = $(el); + id = $el.attr('id'); + icon = '<i class="fa fa-link"></i>'; + if (id) { + return $el.prepend($("<a />").addClass("header-link").attr("href", "#" + id).html(icon)); + } + }); +}); +</script> + </body> </html> Modified: websites/production/struts/content/struts1eol-press.html ============================================================================== --- websites/production/struts/content/struts1eol-press.html (original) +++ websites/production/struts/content/struts1eol-press.html Wed Dec 31 10:10:27 2014 @@ -10,9 +10,11 @@ <title>Apache Struts 1 EOL Press Release</title> <link href="//fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600,700,400italic,600italic,700italic" rel="stylesheet" type="text/css"> - <link rel="stylesheet" href="css/main.css"> + <link href="//netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.css" rel="stylesheet"> + <link href="css/main.css" rel="stylesheet"> + <link href="css/custom.css" rel="stylesheet"> - <script type="text/javascript" src="js/jquery-1.11.0.min.js"></script> + <script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> <script type="text/javascript" src="bootstrap/js/bootstrap.js"></script> <script type="text/javascript" src="js/community.js"></script> </head> @@ -118,7 +120,7 @@ <article class="container"> <section class="col-md-12"> - <h1>Apache Struts 1 End-Of-Life (EOL) Press Release</h1> + <h1 id="apache-struts-1-end-of-life-eol-press-release">Apache Struts 1 End-Of-Life (EOL) Press Release</h1> <p><strong>2013-04-05 - The Apache Struts Project Team would like to inform you that the Struts 1.x web framework has reached its end of life and is no longer officially supported.</strong></p> @@ -151,6 +153,7 @@ successfully running in many mission cri Struts 1, but offers a highly improved architecture, API and solution portfolio. Other alternatives include Spring Web MVC, Grails or Stripes.</p> + </section> </article> @@ -190,5 +193,19 @@ Spring Web MVC, Grails or Stripes.</p> }(document, 'script', 'facebook-jssdk'));</script> +<script> +$(function() { + return $("h2, h3, h4, h5, h6").each(function(i, el) { + var $el, icon, id; + $el = $(el); + id = $el.attr('id'); + icon = '<i class="fa fa-link"></i>'; + if (id) { + return $el.prepend($("<a />").addClass("header-link").attr("href", "#" + id).html(icon)); + } + }); +}); +</script> + </body> </html> Modified: websites/production/struts/content/submitting-patches.html ============================================================================== --- websites/production/struts/content/submitting-patches.html (original) +++ websites/production/struts/content/submitting-patches.html Wed Dec 31 10:10:27 2014 @@ -10,9 +10,11 @@ <title>Submitting patches</title> <link href="//fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600,700,400italic,600italic,700italic" rel="stylesheet" type="text/css"> - <link rel="stylesheet" href="css/main.css"> + <link href="//netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.css" rel="stylesheet"> + <link href="css/main.css" rel="stylesheet"> + <link href="css/custom.css" rel="stylesheet"> - <script type="text/javascript" src="js/jquery-1.11.0.min.js"></script> + <script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> <script type="text/javascript" src="bootstrap/js/bootstrap.js"></script> <script type="text/javascript" src="js/community.js"></script> </head> @@ -118,55 +120,61 @@ <article class="container"> <section class="col-md-12"> - <h1>Submitting patches</h1> + <h1 id="submitting-patches">Submitting patches</h1> -<h2>Committers</h2> +<h2 id="committers">Committers</h2> <p>Struts uses Git and to manage the repository the git-flow was adopted, to read more about that please follow the links below:</p> <ul> -<li><a href="http://nvie.com/posts/a-successful-git-branching-model/">http://nvie.com/posts/a-successful-git-branching-model/</a></li> -<li><a href="https://github.com/petervanderdoes/gitflow">https://github.com/petervanderdoes/gitflow</a></li> + <li><a href="http://nvie.com/posts/a-successful-git-branching-model/">http://nvie.com/posts/a-successful-git-branching-model/</a></li> + <li><a href="https://github.com/petervanderdoes/gitflow">https://github.com/petervanderdoes/gitflow</a></li> </ul> <p>First step is to install git-flow AVH Edition locally on your box, please follow the steps from this link</p> <ul> -<li><a href="https://github.com/petervanderdoes/gitflow/wiki">https://github.com/petervanderdoes/gitflow/wiki</a></li> + <li><a href="https://github.com/petervanderdoes/gitflow/wiki">https://github.com/petervanderdoes/gitflow/wiki</a></li> </ul> <p>Now you can clone Struts repository locally</p> -<div class="highlight"><pre><code class="text language-text" data-lang="text">git clone https://git-wip-us.apache.org/repos/asf/struts.git -</code></pre></div> + +<pre><code>git clone https://git-wip-us.apache.org/repos/asf/struts.git +</code></pre> + <p>After cloning the repository locally you must initialize git-flow:</p> -<div class="highlight"><pre><code class="text language-text" data-lang="text"> git flow init -d -</code></pre></div> + +<pre><code> git flow init -d +</code></pre> + <p>and done!</p> <p>Please remember that <code>master</code> branch cannot be modified directly from now on!</p> -<h2>Non-committers</h2> +<h2 id="non-committers">Non-committers</h2> + +<p>If you arenât a committer you must use this link below or mirror at GitHub</p> -<p>If you aren't a committer you must use this link below or mirror at GitHub</p> -<div class="highlight"><pre><code class="text language-text" data-lang="text">git clone git://git.apache.org/struts.git struts-copy -</code></pre></div> -<h2>Security patches</h2> +<pre><code>git clone git://git.apache.org/struts.git struts-copy +</code></pre> + +<h2 id="security-patches">Security patches</h2> <p><strong>Please read carefully, this is very important!</strong></p> <p>If you prepared a patch to solve security issue in Apache Struts, in the first step contact us via -<a href="mailto:secur...@struts.apache.org">Security Mailing List</a>. Don't publish any information about possible vulnerability. +<a href="mailto:security@struts.apache.org">Security Mailing List</a>. Donât publish any information about possible vulnerability. Thus will allow us coordinate the work and review if the information about issue can be disclosed publicly. -We don't want to inform hackers before we can protect our users :-)</p> +We donât want to inform hackers before we can protect our users :-)</p> <p><strong>Be responsible!!!</strong></p> -<h2>Contributing with GitHub</h2> +<h2 id="contributing-with-github">Contributing with GitHub</h2> <p>Using GitHub mirror is the simplest way to contribute to Apache Struts if you are not a member of Struts Comitters group.</p> -<p>First you must have an account created at GitHub to be able perform the next step. If you don't, +<p>First you must have an account created at GitHub to be able perform the next step. If you donât, go ahead and create one just right now! Please remember to setup <a href="https://help.github.com/articles/generating-ssh-keys">SSH keys</a> and test them!</p> @@ -190,70 +198,82 @@ your fork and branch to compare the diff <p>Finally hit <code>Create Pull Request</code> button and you are done!</p> -<h3>How to merge Pull Requests</h3> +<h3 id="how-to-merge-pull-requests">How to merge Pull Requests</h3> <p>This section is for committers only who want to merge incoming Pull Requests. Please remember that the repo at GitHub is read-only, we (committers) have limited rights to it.</p> <p>To merge PR please add GitHub as a new remote to your local copy</p> -<div class="highlight"><pre><code class="text language-text" data-lang="text">git remote add github g...@github.com:apache/struts.git -</code></pre></div> + +<pre><code>git remote add github g...@github.com:apache/struts.git +</code></pre> + <p>then you can fetch the PR localy and put it under a branch</p> -<div class="highlight"><pre><code class="text language-text" data-lang="text">git fetch github pull/28/head:some-branch -</code></pre></div> + +<pre><code>git fetch github pull/28/head:some-branch +</code></pre> + <p>where</p> <ul> -<li><code>github</code> is remote name</li> -<li><code>28</code> is Pull Request id (https://github.com/apache/struts/pull/28)</li> -<li><code>some-branch</code> local branch name, it can be the same as used to create the PR</li> + <li><code>github</code> is remote name</li> + <li><code>28</code> is Pull Request id (https://github.com/apache/struts/pull/28)</li> + <li><code>some-branch</code> local branch name, it can be the same as used to create the PR</li> </ul> <p>now you can switch to this branch and test, review it</p> -<div class="highlight"><pre><code class="text language-text" data-lang="text">git checkout some-branch -</code></pre></div> + +<pre><code>git checkout some-branch +</code></pre> + <p>after reviewing, switch back to the <code>develop</code> branch and merge</p> -<div class="highlight"><pre><code class="text language-text" data-lang="text">git checkout develop -git merge some-branch -m "WW-XXXX Merges #28 which resolves ..." -</code></pre></div> -<p>using <code>-m</code> you can define your own merge message, it's a good way to link merge commit with ticket in JIRA</p> -<div class="highlight"><pre><code class="text language-text" data-lang="text">git branch -d some-branch -</code></pre></div> -<p>remove the branch as it isn't needed anymore</p> -<div class="highlight"><pre><code class="text language-text" data-lang="text">git push -</code></pre></div> + +<pre><code>git checkout develop +git merge some-branch -m "WW-XXXX Merges #28 which resolves ..." +</code></pre> + +<p>using <code>-m</code> you can define your own merge message, itâs a good way to link merge commit with ticket in JIRA</p> + +<pre><code>git branch -d some-branch +</code></pre> + +<p>remove the branch as it isnât needed anymore</p> + +<pre><code>git push +</code></pre> + <p>after pushing changes, <code>asfbot</code> will close the PR at GitHub. </p> -<h2>Further reading</h2> +<h2 id="further-reading">Further reading</h2> <ul> -<li><a href="http://wiki.apache.org/general/GitAtApache">Git at Apache</a></li> + <li><a href="http://wiki.apache.org/general/GitAtApache">Git at Apache</a></li> </ul> -<h1><span id="patch-reward">Google's Patch Reward program</h1> +<h1 id="patch-reward">Googleâs Patch Reward program</h1> <p>During <a href="http://www.meetup.com/sfhtml5/">SFHTML5</a> Google announced that they adding the Apache Struts project to -<a href="https://www.google.com/about/appsecurity/patch-rewards/">the Google's Security Patch Reward Program</a>.</p> +<a href="https://www.google.com/about/appsecurity/patch-rewards/">the Googleâs Security Patch Reward Program</a>.</p> <p>What does it mean?</p> <p>If you prepared a patch that eliminates a security vulnerability or improves existing security mechanism you can get a bounty :-) You will find more details on -<a href="http://googleonlinesecurity.blogspot.com/2013/10/going-beyond-vulnerability-rewards.html">the Google's blog</a> +<a href="http://googleonlinesecurity.blogspot.com/2013/10/going-beyond-vulnerability-rewards.html">the Googleâs blog</a> or under the link above, just to give you a quick guideline how does it work:</p> <ul> -<li>prepare a patch and submit it to our <a href="https://issues.apache.org/jira/browse/WW">JIRA</a>, + <li>prepare a patch and submit it to our <a href="https://issues.apache.org/jira/browse/WW">JIRA</a>, it can be a Pull Request on GitHub as well, but must reference the JIRA ticket.</li> -<li>let us know that you did something great, post a message to <a href="dev-mail.html">Struts Dev mailing list</a></li> -<li>we will review the patch and if it's a real great thing then we will merge it into our code base</li> -<li>just wait on official release of the Apache Struts and now you can request the reward from Google :-)</li> + <li>let us know that you did something great, post a message to <a href="dev-mail.html">Struts Dev mailing list</a></li> + <li>we will review the patch and if itâs a real great thing then we will merge it into our code base</li> + <li>just wait on official release of the Apache Struts and now you can request the reward from Google :-)</li> </ul> <p><strong>NOTE</strong></p> <p>If you are concerned that your patch can disclose a security vulnerability, instead of submitting it as a ticket, -send it directly to the <a href="mailto:secur...@struts.apache.org">Struts Security team</a>. This will give us the possibility +send it directly to the <a href="mailto:security@struts.apache.org">Struts Security team</a>. This will give us the possibility to prepare a new release with your patch in secret.</p> <p>Have fun and code!</p> @@ -297,5 +317,19 @@ to prepare a new release with your patch }(document, 'script', 'facebook-jssdk'));</script> +<script> +$(function() { + return $("h2, h3, h4, h5, h6").each(function(i, el) { + var $el, icon, id; + $el = $(el); + id = $el.attr('id'); + icon = '<i class="fa fa-link"></i>'; + if (id) { + return $el.prepend($("<a />").addClass("header-link").attr("href", "#" + id).html(icon)); + } + }); +}); +</script> + </body> </html> Modified: websites/production/struts/content/volunteers.html ============================================================================== --- websites/production/struts/content/volunteers.html (original) +++ websites/production/struts/content/volunteers.html Wed Dec 31 10:10:27 2014 @@ -10,9 +10,11 @@ <title>Volunteers</title> <link href="//fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600,700,400italic,600italic,700italic" rel="stylesheet" type="text/css"> - <link rel="stylesheet" href="css/main.css"> + <link href="//netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.css" rel="stylesheet"> + <link href="css/main.css" rel="stylesheet"> + <link href="css/custom.css" rel="stylesheet"> - <script type="text/javascript" src="js/jquery-1.11.0.min.js"></script> + <script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> <script type="text/javascript" src="bootstrap/js/bootstrap.js"></script> <script type="text/javascript" src="js/community.js"></script> </head> @@ -118,94 +120,94 @@ <article class="container"> <section class="col-md-12"> - <h1>Volunteers</h1> + <h1 id="volunteers">Volunteers</h1> <p>The project consists of a diverse group of volunteers who share common values regarding collaborative, community-based open source development. If you are interested in some statistics, you can find -some <a href="http://www.apache.org/%7Evgritsenko/stats/projects/struts">here</a></p> +some <a href="http://www.apache.org/~vgritsenko/stats/projects/struts">here</a></p> -<h2>Project Management Committee Members</h2> +<h2 id="project-management-committee-members">Project Management Committee Members</h2> <p>Committee members are listed in the chronological order, according to the date each person become a committer or committee member.</p> <ul> -<li>James Holmes (jholmes at apache.org)</li> -<li>Don Brown (mrdon at apache.org)</li> -<li>Wendy Smoak (wsmoak at apache.org)</li> -<li>Laurie Harper (laurieh at apache.org)</li> -<li>Alexandru Popescu (apopescu at apache.org)</li> -<li>Rene Gielen, Vice President and Chair (rgielen at apache.org)</li> -<li>Rainer Hermanns (hermanns at apache.org)</li> -<li>Toby Jee (tmjee at apache.org)</li> -<li>Paul Benedict (pbenedict at apache.org)</li> -<li>Musachy Barroso (musachy at apache.org)</li> -<li>Dave Newton (davenewton at apache.org)</li> -<li>Wes Wannemacher (wesw at apache.org)</li> -<li>Lukasz Lenart (lukaszlenart at apache.org)</li> -<li>Philip Luppens (phil at apache.org)</li> -<li>Maurizio Cucchiara (mcucchiara at apache.org)</li> -<li>Johannes Geppert (jogep at apache.org)</li> -<li>Christian Grobmeier (grobmeier at apache.org)</li> + <li>James Holmes (jholmes at apache.org)</li> + <li>Don Brown (mrdon at apache.org)</li> + <li>Wendy Smoak (wsmoak at apache.org)</li> + <li>Laurie Harper (laurieh at apache.org)</li> + <li>Alexandru Popescu (apopescu at apache.org)</li> + <li>Rene Gielen, Vice President and Chair (rgielen at apache.org)</li> + <li>Rainer Hermanns (hermanns at apache.org)</li> + <li>Toby Jee (tmjee at apache.org)</li> + <li>Paul Benedict (pbenedict at apache.org)</li> + <li>Musachy Barroso (musachy at apache.org)</li> + <li>Dave Newton (davenewton at apache.org)</li> + <li>Wes Wannemacher (wesw at apache.org)</li> + <li>Lukasz Lenart (lukaszlenart at apache.org)</li> + <li>Philip Luppens (phil at apache.org)</li> + <li>Maurizio Cucchiara (mcucchiara at apache.org)</li> + <li>Johannes Geppert (jogep at apache.org)</li> + <li>Christian Grobmeier (grobmeier at apache.org)</li> </ul> -<h2>Committers</h2> +<h2 id="committers">Committers</h2> <p>Other committers are listed in the chronological order, according to the date each person became a committer.</p> <ul> -<li>Michael Jouravlev (mikus at apache.org)</li> -<li>Bob Lee (crazybob at apache.org)</li> -<li>David H. DeWolf (ddewolf at apache.org)</li> -<li>Tom Schneider (tschneider at apache.org)</li> -<li>Matt Raible (mraible at apache.org)</li> -<li>Brian Pontarelli (bpontarelli at apache.org)</li> -<li>Jeromy Evans (jeromy at apache.org)</li> -<li>Mathias Bogaert (pathos at apache.org)</li> -<li>John Lindal (jafl at apache.org)</li> -<li>Bruce A. Phillips (bphillips at apache.org)</li> -<li>Greg Huber (ghuber at apache.org)</li> -<li>Christoph Nenning (cnenning at apache.org)</li> + <li>Michael Jouravlev (mikus at apache.org)</li> + <li>Bob Lee (crazybob at apache.org)</li> + <li>David H. DeWolf (ddewolf at apache.org)</li> + <li>Tom Schneider (tschneider at apache.org)</li> + <li>Matt Raible (mraible at apache.org)</li> + <li>Brian Pontarelli (bpontarelli at apache.org)</li> + <li>Jeromy Evans (jeromy at apache.org)</li> + <li>Mathias Bogaert (pathos at apache.org)</li> + <li>John Lindal (jafl at apache.org)</li> + <li>Bruce A. Phillips (bphillips at apache.org)</li> + <li>Greg Huber (ghuber at apache.org)</li> + <li>Christoph Nenning (cnenning at apache.org)</li> </ul> -<h2>Emeritus Volunteers</h2> +<h2 id="emeritus-volunteers">Emeritus Volunteers</h2> <p>Emeritus volunteers are no longer active in the project. An emeritus volunteer can become active again upon request. -("Merit never expires.")</p> +(âMerit never expires.â)</p> <ul> -<li>Luis Arias</li> -<li>David Geary (dgeary at apache.org)</li> -<li>Pierre Delisle (pierred at apache.org)</li> -<li>Michael Schachter</li> -<li>Vincent Massol (vmassol at apache.org)</li> -<li>David Winterfeldt (dwinterfeldt at apache.org)</li> -<li>Oleg Alexeev (oalexeev at apache.org)</li> -<li>Rob Leland (rleland at apache.org)</li> -<li>Arron Bates (arron at apache.org)</li> -<li>Steve Raeburn (PMC) (sraeburn at apache.org)</li> -<li>James Turner (turner at apache.org)</li> -<li>Sean Schofield (PMC) (schof at apache.org)</li> -<li>Richard Feit (rich at apache.org)</li> -<li>David M. Karr (PMC) (dmkarr at apache.org)</li> -<li>David Graham (PMC) (dgraham at apache.org)</li> -<li>Eddie Bush (ekbush at apache.org)</li> -<li>Henri Yandell (PMC) (bayard at apache.org)</li> -<li>Patrick Lightbody (PMC) (plightbo at apache.org)</li> -<li>Greg Reddin (PMC) (greddin at apache.org)</li> -<li>Ian Roughley (PMC) (roughley at apache.org)</li> -<li>Craig R. McClanahan (PMC) (craigmcc at apache.org)</li> -<li>Joe Germuska (PMC) (germuska at apache.org)</li> -<li>Hubert Rabago (PMC) (hrabago at apache.org)</li> -<li>Gary VanMatre (PMC) (gvanmatre at apache.org)</li> -<li>Jason Carreira (PMC) (jcarreira at apache.org)</li> -<li>Cedric Dumoulin (PMC) (cedric at apache.org)</li> -<li>James Mitchell (PMC) (jmitchell at apache.org)</li> -<li>Antonio Petrelli (PMC) (apetrelli at apache.org)</li> -<li>Ted Husted (PMC) (husted at apache.org)</li> -<li>Nils-Helge Garli Hegvik (PMC) (nilsga at apache.org)</li> -<li>Martin Cooper (PMC) (martinc at apache.org)</li> -<li>Niall Pemberton (PMC) (niallp at apache.org)</li> + <li>Luis Arias</li> + <li>David Geary (dgeary at apache.org)</li> + <li>Pierre Delisle (pierred at apache.org)</li> + <li>Michael Schachter</li> + <li>Vincent Massol (vmassol at apache.org)</li> + <li>David Winterfeldt (dwinterfeldt at apache.org)</li> + <li>Oleg Alexeev (oalexeev at apache.org)</li> + <li>Rob Leland (rleland at apache.org)</li> + <li>Arron Bates (arron at apache.org)</li> + <li>Steve Raeburn (PMC) (sraeburn at apache.org)</li> + <li>James Turner (turner at apache.org)</li> + <li>Sean Schofield (PMC) (schof at apache.org)</li> + <li>Richard Feit (rich at apache.org)</li> + <li>David M. Karr (PMC) (dmkarr at apache.org)</li> + <li>David Graham (PMC) (dgraham at apache.org)</li> + <li>Eddie Bush (ekbush at apache.org)</li> + <li>Henri Yandell (PMC) (bayard at apache.org)</li> + <li>Patrick Lightbody (PMC) (plightbo at apache.org)</li> + <li>Greg Reddin (PMC) (greddin at apache.org)</li> + <li>Ian Roughley (PMC) (roughley at apache.org)</li> + <li>Craig R. McClanahan (PMC) (craigmcc at apache.org)</li> + <li>Joe Germuska (PMC) (germuska at apache.org)</li> + <li>Hubert Rabago (PMC) (hrabago at apache.org)</li> + <li>Gary VanMatre (PMC) (gvanmatre at apache.org)</li> + <li>Jason Carreira (PMC) (jcarreira at apache.org)</li> + <li>Cedric Dumoulin (PMC) (cedric at apache.org)</li> + <li>James Mitchell (PMC) (jmitchell at apache.org)</li> + <li>Antonio Petrelli (PMC) (apetrelli at apache.org)</li> + <li>Ted Husted (PMC) (husted at apache.org)</li> + <li>Nils-Helge Garli Hegvik (PMC) (nilsga at apache.org)</li> + <li>Martin Cooper (PMC) (martinc at apache.org)</li> + <li>Niall Pemberton (PMC) (niallp at apache.org)</li> </ul> </section> @@ -247,5 +249,19 @@ or committee member.</p> }(document, 'script', 'facebook-jssdk'));</script> +<script> +$(function() { + return $("h2, h3, h4, h5, h6").each(function(i, el) { + var $el, icon, id; + $el = $(el); + id = $el.attr('id'); + icon = '<i class="fa fa-link"></i>'; + if (id) { + return $el.prepend($("<a />").addClass("header-link").attr("href", "#" + id).html(icon)); + } + }); +}); +</script> + </body> </html> Modified: websites/production/struts/content/youatstruts.html ============================================================================== --- websites/production/struts/content/youatstruts.html (original) +++ websites/production/struts/content/youatstruts.html Wed Dec 31 10:10:27 2014 @@ -10,9 +10,11 @@ <title>You at Struts</title> <link href="//fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600,700,400italic,600italic,700italic" rel="stylesheet" type="text/css"> - <link rel="stylesheet" href="css/main.css"> + <link href="//netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.css" rel="stylesheet"> + <link href="css/main.css" rel="stylesheet"> + <link href="css/custom.css" rel="stylesheet"> - <script type="text/javascript" src="js/jquery-1.11.0.min.js"></script> + <script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> <script type="text/javascript" src="bootstrap/js/bootstrap.js"></script> <script type="text/javascript" src="js/community.js"></script> </head> @@ -118,7 +120,7 @@ <article class="container"> <section class="col-md-12"> - <h1>You at Apache Struts</h1> + <h1 id="you-at-apache-struts">You at Apache Struts</h1> <p>We are happy you are considering to contribute to Apache Struts and we are definitely looking forward to your work.</p> @@ -129,7 +131,7 @@ Apache Software Foundation (nor does any and most of us are not paid by a company for working on Struts.</p> <p>Still we are happy to contribute, meet up from time to time and -provide user support. That's because we have formed a community +provide user support. Thatâs because we have formed a community where we know, trust, and learn from each other.</p> <p>Considering that we are a grown set of people, you must understand @@ -137,26 +139,26 @@ that you need to grow into the project a While we are happy to accept your patches if they fit or discuss technical changes on them with you, we cannot provide SCM access on request. But if we start to believe you have grown into the project -and would make a great addition to our committer community we'll +and would make a great addition to our committer community weâll held a private discussion and eventually invite you to join officially.</p> -<p>You can read more about this on the page <a href="http://www.apache.org/foundation/how-it-works.html">"How the ASF works"</a>.</p> +<p>You can read more about this on the page <a href="http://www.apache.org/foundation/how-it-works.html">âHow the ASF worksâ</a>.</p> -<p>Now as you have understood that you don't need to ask for anything to start, +<p>Now as you have understood that you donât need to ask for anything to start, you can simply start. It is always a good idea to first subscribe to the <a href="dev-mail.html">Developers Mailinglist</a>. We are discussing everything around Struts in public (except a few things, like discussions on persons). -With reading the developers list you'll get a good idea what we are planning +With reading the developers list youâll get a good idea what we are planning and maybe even how you can help.</p> <p>Another way is to simply look through the <a href="https://issues.apache.org/jira/browse/WW">Issue Tracker</a> -and work on a patch. It's recommended to first try to understand and then discuss +and work on a patch. Itâs recommended to first try to understand and then discuss what you plan on the mailing list. This way we will find out if we are on the same page and of course will learn about you.</p> <p>Please note, not only code contributions are welcome. We also invite people to join us because they have written extraordinary examples, documentation -or help a lot on the user mailing lists. For us, "Community is over Code". +or help a lot on the user mailing lists. For us, âCommunity is over Codeâ. And a good community does not reduce itself to people who write code.</p> <p>If you like, you can read Craig R. McClanahans article on @@ -214,5 +216,19 @@ more information how you can help us.</p }(document, 'script', 'facebook-jssdk'));</script> +<script> +$(function() { + return $("h2, h3, h4, h5, h6").each(function(i, el) { + var $el, icon, id; + $el = $(el); + id = $el.attr('id'); + icon = '<i class="fa fa-link"></i>'; + if (id) { + return $el.prepend($("<a />").addClass("header-link").attr("href", "#" + id).html(icon)); + } + }); +}); +</script> + </body> </html>