<?xml version="1.0" encoding="UTF-8"?>
<!--
 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.
-->
<classpath>
	<classpathentry excluding="org/apache/coyote/tomcat3/|org/apache/coyote/tomcat4/" kind="src" path="connectors/coyote/src/java"/>
	<classpathentry excluding="org/apache/coyote/SimpleAdapter.java" kind="src" path="connectors/coyote/src/test"/>
	<classpathentry kind="src" path="connectors/http11/src/java"/>
	<classpathentry kind="src" path="connectors/http11/src/test/java"/>
	<classpathentry excluding="org/apache/ajp/tomcat33/|org/apache/ajp/tomcat4/" kind="src" path="connectors/jk/java"/>
	<classpathentry kind="src" path="connectors/jk/test"/>
	<classpathentry kind="src" path="connectors/jni/java"/>
	<classpathentry kind="src" path="connectors/juli/src/java"/>
	<classpathentry excluding="org/apache/tomcat/util/net/puretls/|org/apache/tomcat/util/net/jsse/JSSE15SocketFactory.java|org/apache/tomcat/util/net/jsse/JSSE15Factory.java" kind="src" path="connectors/util/java"/>
	<classpathentry kind="src" path="connectors/util/loader"/>
	<classpathentry kind="src" path="container/catalina/src/share"/>
	<classpathentry kind="src" path="container/catalina/src/test"/>
	<classpathentry kind="src" path="container/modules/cluster/src/share"/>
	<classpathentry kind="src" path="container/modules/cluster/test/src/share"/>
	<classpathentry excluding="org/apache/catalina/tribes/group/interceptors/MessageDispatch15Interceptor.java" kind="src" path="container/modules/groupcom/src/share"/>
	<classpathentry kind="src" path="container/modules/ha/src/share"/>
	<classpathentry kind="src" path="container/modules/storeconfig/src/share"/>
	<classpathentry kind="src" path="container/modules/storeconfig/test/src/share"/>
	<classpathentry kind="src" path="container/tester/src/tester"/>
	<classpathentry kind="src" path="container/webapps/admin/WEB-INF/classes"/>
	<classpathentry kind="src" path="container/webapps/balancer/WEB-INF/classes"/>
	<classpathentry kind="src" path="container/webapps/docs/appdev/sample/src"/>
	<classpathentry kind="src" path="container/webapps/host-manager/WEB-INF/classes"/>
	<classpathentry kind="src" path="container/webapps/jmxremote/WEB-INF/src"/>
	<classpathentry kind="src" path="container/webapps/manager/WEB-INF/classes"/>
	<classpathentry kind="src" path="jasper/src/share"/>
	<classpathentry kind="src" path="servletapi/jsr152/src/ant"/>
	<classpathentry kind="src" path="servletapi/jsr152/src/share"/>
	<classpathentry kind="src" path="servletapi/jsr154/examples/WEB-INF/classes"/>
	<classpathentry kind="src" path="servletapi/jsr154/src/share"/>
	<classpathentry kind="lib" path="servletapi/jsr152/examples/WEB-INF/lib/jstl.jar"/>
	<classpathentry kind="lib" path="servletapi/jsr152/examples/WEB-INF/lib/standard.jar"/>
	<classpathentry kind="var" path="TOMCAT_LIBS_BASE/mx4j-3.0.2/lib/mx4j.jar"/>
	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/jdk1.4.2_19_x32"/>
	<classpathentry kind="var" path="TOMCAT_LIBS_BASE/struts-1.2.9-bin/lib/struts.jar"/>
	<classpathentry kind="var" path="ANT_HOME/lib/ant.jar"/>
	<classpathentry kind="var" path="TOMCAT_LIBS_BASE/commons-modeler-2.0.1/commons-modeler-2.0.1.jar"/>
	<classpathentry kind="var" path="TOMCAT_LIBS_BASE/javamail-1.4.1/mail.jar"/>
	<classpathentry kind="var" path="TOMCAT_LIBS_BASE/jaf-1.1.1/activation.jar"/>
	<classpathentry kind="var" path="TOMCAT_LIBS_BASE/tomcat-deps/dbcp/naming-factory-dbcp.jar"/>
	<classpathentry kind="var" path="TOMCAT_LIBS_BASE/ecj-3.7/ecj-3.7.jar"/>
	<classpathentry kind="var" path="TOMCAT_LIBS_BASE/commons-el-1.0/commons-el.jar"/>
	<classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/3"/>
	<classpathentry kind="var" path="TOMCAT_LIBS_BASE/commons-launcher/bin/commons-launcher.jar"/>
	<classpathentry kind="output" path=".settings/output"/>
</classpath>
