In the `lib` directory, you will find 2 JAR files:
*`cos-1.5beta.jar` to deal with HTTP multipart requests
*`stil3.0-5.jar` for [STIL](http://www.star.bris.ac.uk/~mbt/stil/)(VOTable and other formats support)
### ANT scripts
At the root of the repository, there are 3 ANT scripts. Each is dedicated to one library. They are able to generate JAR for sources, binaries and Javadoc.
3 properties must be set before using one of these scripts:
*`CATALINA`: a path toward a JAR or a binary directory containing org.apache.catalina.connector.ClientAbortException.class
*`POSTGRES`: a path toward a JAR or a binary directory containing all org.postgresql.* - [https://jdbc.postgresql.org/download.html](JDBC Postgres driver) - **(ONLY for ADQL and TAP if you want to keep adql.translator.PgSphereTranslator)**
*`SERVLET-API`: a path toward a JAR or a binary directory containing all javax.servlet.*
* (`JUNIT-API`*not required before the version 2.0 of the tap library*: a path toward one or several JARs or binary directories containing all classes to use JUnit.)
* (`JUNIT-API`*not required before the version 2.0 of the tap library OR if you are not interested by the `test` directory (JUnit tests)*: a path toward one or several JARs or binary directories containing all classes to use JUnit.)
<targetname="compileLib"depends="clean"description="Build all the classes of the ADQL library. This target is particularly usefull because it lets highlighting missing dependencies.">
<failmessage="Missing property: CATALINA ! It provides the path toward a directory or a JAR which contains the following class: org.apache.catalina.connector.ClientAbortException.">
<failmessage="The property SERVLET-API must be set! It provides the path toward a directory or a JAR which contains all classes inside javax.servlet.">
<failmessage="Missing property: CATALINA ! It provides the path toward a directory or a JAR which contains the following class: org.apache.catalina.connector.ClientAbortException.">
<failmessage="The property SERVLET-API must be set! It provides the path toward a directory or a JAR which contains all classes inside javax.servlet.">
getLogger().logHttp(LogLevel.INFO,response,reqID,owner,"HTTP "+response.getStatus()+" - HTTP request aborted by the client => the TAP resource \""+resourceName+"\" has stopped!",t);
// Notify the client abortion in a TAP error:
errorWriter.writeError("The client aborts this HTTP request! It may happen due to a client timeout or to an interruption of the response waiting process.",ErrorType.TRANSIENT,UWSException.ACCEPTED_BUT_NOT_COMPLETE,response,request,reqID,owner,resourceName);
}
// ANY OTHER ERROR:
else{
// Log the error:
getLogger().logHttp(LogLevel.ERROR,response,reqID,owner,"HTTP "+response.getStatus()+" - Can not complete the execution of the TAP resource \""+resourceName+"\"!",t);
// Write the error in the response and return the appropriate HTTP status code: