<?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 kind="src" path="java"/>
    <classpathentry excluding="deployment/|tld/|webapp*/|webresources/" kind="src" path="test"/>
    <classpathentry kind="src" path="webapps/examples/WEB-INF/classes"/>
    <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
    <classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/4"/>
    <classpathentry kind="var" path="ANT_HOME/lib/ant.jar"/>
    <classpathentry kind="var" path="TOMCAT_LIBS_BASE/jaxrpc-1.1-rc4/geronimo-spec-jaxrpc-1.1-rc4.jar"/>
    <classpathentry kind="var" path="TOMCAT_LIBS_BASE/wsdl4j-1.6.2/wsdl4j-1.6.2.jar"/>
    <classpathentry kind="var" path="TOMCAT_LIBS_BASE/ecj-4.6.3/ecj-4.6.3.jar"/>
    <classpathentry kind="var" path="TOMCAT_LIBS_BASE/easymock-3.2/easymock-3.2.jar"/>
    <classpathentry kind="var" path="TOMCAT_LIBS_BASE/hamcrest-1.3/hamcrest-core-1.3.jar"/>
    <classpathentry kind="var" path="TOMCAT_LIBS_BASE/cglib-2.2.3/cglib-nodep-2.2.3.jar"/>
    <classpathentry kind="var" path="TOMCAT_LIBS_BASE/objenesis-1.2/objenesis-1.2.jar"/>
    <classpathentry kind="output" path=".settings/output"/>
</classpath>
