<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!--
   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.
-->
<html><head><title>Apache Axis2/C - Mailing Lists and Issue Tracking</title>
<h2>Mailing        Lists</h2><p>These are the mailing lists that have been established for
	      this project.  For each list, there is a subscribe, unsubscribe,
	      and an archive link.
      </p><table class="bodyTable"><thead>
		 <tr class="b"><th>List
				 Name</th><th>Subscribe</th><th>Unsubscribe</th><th>Archive</th></tr>
               </thead><tbody>
                 <tr class="a"><td>Axis C Developer List</td><td>
		     <a href="mailto:c-dev-subscribe@axis.apache.org?subject=subscribe">Subscribe</a>
		   </td><td>
		     <a href="mailto:c-dev-unsubscribe@axis.apache.org?subject=unsubscribe">Unsubscribe</a>
			 </td>
			 <td><a href="http://mail-archives.apache.org/mod_mbox/axis-c-dev/" class="externalLink" title="External Link">Archive</a>
			 </td>
		 </tr>
                 <tr class="b"><td>Axis C User List</td><td>
		     <a href="mailto:c-user-subscribe@axis.apache.org?subject=subscribe">Subscribe</a>
		   </td><td>
		     <a href="mailto:c-user-unsubscribe@axis.apache.org?subject=unsubscribe">Unsubscribe</a>
		   </td>
			 <td><a href="http://mail-archives.apache.org/mod_mbox/axis-c-user/" class="externalLink" title="External Link">Archive</a>
			 </td>
		 </tr>
                 <tr class="b"><td>Axis C commit List</td><td>
		     <a href="mailto:c-commits-subscribe@axis.apache.org?subject=subscribe">Subscribe</a>
		   </td><td>
		     <a href="mailto:c-commits-unsubscribe@axis.apache.org?subject=unsubscribe">Unsubscribe</a>
		   </td>
			 <td><a href="http://mail-archives.apache.org/mod_mbox/axis-c-commits/" class="externalLink" title="External Link">Archive</a>
			 </td>
		 </tr>
</tbody></table></div><div class="section"><a name="Issue_Tracking"></a><h2>Issue Tracking</h2><p>
      <a href="http://issues.apache.org/jira/browse/AXIS2C" class="externalLink" title="External Link">http://issues.apache.org/jira/browse/AXIS2C</a></p></div><div class="section"><a name="Svn_Location"></a><h2>Svn Location</h2><p>
<a href="https://svn.apache.org/repos/asf/axis/axis2/c/core/trunk">https://svn.apache.org/repos/asf/axis/axis2/c/core/trunk</a></p></div></div></div><div class="clear"><hr></hr></div></body></html>
