<?xml version="1.0"?>
<!---
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
 this work for additional information regarding copyright ownership.
 The ASF licenses this file to You under the Apache License, Version 2.0
 (the "License"); you may not use this file except in compliance with
 the License.  You may obtain a copy of the License at

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

 Unless required by applicable law or agreed to in writing, software
 distributed under the License is distributed on an "AS IS" BASIS,
 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.
-->
<document>

  <properties>
    <title>IRC</title>
    <author email="jstrachan@apache.org">James Strachan</author>
  </properties>

  <body>

    <section name="IRC">

      <p>
      The CodeHaus runs an IRC server to support the interactive
      efforts of project members.
      </p>

      <p>
      To access the IRC server, point an appropriate IRC client at:
      </p>

      <blockquote>
            server: <b>irc.codehaus.org</b>
              port: <b>6667</b>
      </blockquote>

      <p>
      If you have <a href="http://www.mozilla.org/">Mozilla</a> installed you can point your browser at
      <a href="irc://irc.codehaus.org:6667/#jelly">#jelly</a>.
      </p>

      <p>
      You may find folks hanging out in either <code><b>#jelly</b></code>
      or <code><b>#maven</b></code>.
      </p>

      <!-- PL: sadly disabled archives...
      <subsection name="Logs">
        <p>
        Many of the channels hosted by The Werken Company are archived
        and available through the 
        <a href="http://irc.werken.com/channels/">Werken IRC Archives</a>.
        </p>

        <p>
        <a href="http://irc.werken.com/channels/jelly/">#jelly archive</a>
        </p>
      </subsection>
      -->

    </section>
    
  </body>
</document>
