<!--
 * 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
 -->
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
  <classpathentry kind="src" path="src"/>
  <classpathentry kind="src" path="test"/>
  <classpathentry kind="src" path="proto_src"/>
  <classpathentry kind="src" path="gen/messages"/>
  <classpathentry kind="src" path="gen/gxp"/>

  <classpathentry kind="lib" path="third_party/codegen/antlr-3.2.jar"/>
  <classpathentry kind="lib" path="third_party/codegen/gwt-dev-2.1.1.jar"/>
  <classpathentry kind="lib" path="third_party/codegen/gwt-user-2.1.1.jar"/>
  <classpathentry kind="lib" path="third_party/codegen/socketio-0.1-SNAPSHOT.jar" sourcepath="third_party/codegen/socketio-0.1-SNAPSHOT-sources.jar" />
  <classpathentry kind="lib" path="third_party/codegen/validation-api-1.0.0.GA.jar" />
  <classpathentry kind="lib" path="third_party/codegen/velocity-1.6.3-dep.jar"/>
  <classpathentry kind="lib" path="third_party/codegen/velocity-1.6.3.jar"/>

  <classpathentry kind="lib" path="third_party/runtime/aopalliance-1.0.jar"/>
  <classpathentry kind="lib" path="third_party/runtime/bcprov-jdk16-145.jar"/>
  <classpathentry kind="lib" path="third_party/runtime/commons-cli-1.2.jar"/>
  <classpathentry kind="lib" path="third_party/runtime/commons-codec-1.4.jar" />
  <classpathentry kind="lib" path="third_party/runtime/commons-collections-3.2.1.jar"/>
  <classpathentry kind="lib" path="third_party/runtime/commons-configuration-1.6.jar"/>
  <classpathentry kind="lib" path="third_party/runtime/commons-fileupload.jar"/>
  <classpathentry kind="lib" path="third_party/runtime/commons-httpclient-3.1.jar"/>
  <classpathentry kind="lib" path="third_party/runtime/commons-lang-2.5.jar"/>
  <classpathentry kind="lib" path="third_party/runtime/commons-logging-1.1.1.jar"/>
  <classpathentry kind="lib" path="third_party/runtime/dom4j-1.6.1.jar"/>
  <classpathentry kind="lib" path="third_party/runtime/google-gxp-0.2.4-beta.jar"/>
  <classpathentry kind="lib" path="third_party/runtime/guava-r09.jar"/>
  <classpathentry kind="lib" path="third_party/runtime/guice-3.0.jar"/>
  <classpathentry kind="lib" path="third_party/runtime/guice-assistedinject-3.0.jar"/>
  <classpathentry kind="lib" path="third_party/runtime/guice-servlet-3.0.jar"/>
  <classpathentry kind="lib" path="third_party/runtime/gson-1.4.jar"/>
  <classpathentry kind="lib" path="third_party/runtime/javax.inject-1.jar"/>
  <classpathentry kind="lib" path="third_party/runtime/jdom-1.1.3.jar"/>
  <classpathentry kind="lib" path="third_party/runtime/jdo2-api-2.2.jar"/>
  <classpathentry kind="lib" path="third_party/runtime/jetty-client-8.1.1.v20120215.jar"/>
  <classpathentry kind="lib" path="third_party/runtime/jetty-continuation-8.1.1.v20120215.jar"/>
  <classpathentry kind="lib" path="third_party/runtime/jetty-http-8.1.1.v20120215.jar"/>
  <classpathentry kind="lib" path="third_party/runtime/jetty-io-8.1.1.v20120215.jar"/>
  <classpathentry kind="lib" path="third_party/runtime/jetty-security-8.1.1.v20120215.jar"/>
  <classpathentry kind="lib" path="third_party/runtime/jetty-server-8.1.1.v20120215.jar"/>
  <classpathentry kind="lib" path="third_party/runtime/jetty-servlet-8.1.1.v20120215.jar"/>
  <classpathentry kind="lib" path="third_party/runtime/jetty-servlets-8.1.1.v20120215.jar"/>
  <classpathentry kind="lib" path="third_party/runtime/jetty-util-8.1.1.v20120215.jar"/>
  <classpathentry kind="lib" path="third_party/runtime/jetty-webapp-8.1.1.v20120215.jar"/>
  <classpathentry kind="lib" path="third_party/runtime/jetty-websocket-8.1.1.v20120215.jar"/>
  <classpathentry kind="lib" path="third_party/runtime/jetty-xml-8.1.1.v20120215.jar"/>
  <classpathentry kind="lib" path="third_party/runtime/jline-0.9.94.jar"/>
  <classpathentry kind="lib" path="third_party/runtime/joda-time-1.6.jar"/>
  <classpathentry kind="lib" path="third_party/runtime/jsr305-2.0.1.jar"/>
  <classpathentry kind="lib" path="third_party/runtime/libidn-1.28.jar"/>
  <classpathentry kind="lib" path="third_party/runtime/lucene-core-3.5.0.jar"/>
  <classpathentry kind="lib" path="third_party/runtime/mongo-2.1.jar"/>
  <classpathentry kind="lib" path="third_party/runtime/oauth-consumer-20100527.jar"/>
  <classpathentry kind="lib" path="third_party/runtime/oauth-provider-20100527.jar"/>
  <classpathentry kind="lib" path="third_party/runtime/oauth-20100527.jar"/>
  <classpathentry kind="lib" path="third_party/runtime/protobuf-format-java-1.1.jar"/>
  <classpathentry kind="lib" path="third_party/runtime/protobuf-java-2.3.0.jar"/>
  <classpathentry kind="lib" path="third_party/runtime/servlet-api-3.0.20100224.jar"/>
  <classpathentry kind="lib" path="third_party/runtime/socketio-core-0.1-SNAPSHOT.jar" sourcepath="third_party/runtime/socketio-core-0.1-SNAPSHOT-sources.jar"/>
  <classpathentry kind="lib" path="third_party/runtime/socketio-jetty-0.1-SNAPSHOT.jar" sourcepath="third_party/runtime/socketio-jetty-0.1-SNAPSHOT-sources.jar"/>
  <classpathentry kind="lib" path="third_party/runtime/websocket.jar"/>
  <classpathentry kind="lib" path="third_party/runtime/whack.jar"/>
  <classpathentry kind="lib" path="third_party/runtime/xmpp.jar"/>
  <classpathentry kind="lib" path="third_party/runtime/xpp3-1.1.4c.jar"/>
  <classpathentry kind="lib" path="third_party/runtime/xpp3_xpath-1.1.4c.jar"/>

  <classpathentry kind="lib" path="third_party/test/ant-junit-1.7.0.jar"/>
  <classpathentry kind="lib" path="third_party/test/asm-3.2.jar"/>
  <classpathentry kind="lib" path="third_party/test/cglib-2.2.jar"/>
  <classpathentry kind="lib" path="third_party/test/emma-2.0.5312.jar"/>
  <classpathentry kind="lib" path="third_party/test/emma_ant-2.1.5320.jar"/>
  <classpathentry kind="lib" path="third_party/test/hamcrest-all-1.2.jar"/>
  <classpathentry kind="lib" path="third_party/test/jmock-2.5.1.jar"/>
  <classpathentry kind="lib" path="third_party/test/jmock-junit3-2.5.1.jar"/>
  <classpathentry kind="lib" path="third_party/test/junit-4.10.jar"/>
  <classpathentry kind="lib" path="third_party/test/mockito-all-1.8.2.jar"/>

  <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
  <classpathentry kind="output" path="bin"/>
</classpath>
