该GitHub存储库包含实施IVOA标准和协议的3个库的来源:
有关完整的文档/教程和3个库的演示,您应该访问以下网站:Adqltuto,Uwstuto和Taptuto。
这些库是在Java 7中开发的。
这些图书馆中的三个属于LGPL V3许可证的条款。您可以在文件src/copying和src/copying.lesser中找到完整的描述和所有使用条件。
我强烈建议您在这里宣布您遇到的任何问题。因此,任何遇到相同问题的人都可以看到他/她的问题是否已经知道。如果知道该问题,则将发布有关其决议的进度和/或评论。
此外,如果您已经分配了此存储库,并在您身边进行了一些更正,这些更正可能会使图书馆的任何其他用户都感兴趣,请在此处发送拉动请求。如果这些修改与IVOA定义相适当,并且对您的用语酶不太具体,则它们将在此存储库上集成(也许是经过一些修改后),因此可以提供给所有人。
每个库都有自己的软件包(用于ADQL的adql ,UWS的uws和tap for Tap)。这些软件包是独立的,除了tap还需要其他两个软件包。除这些软件包外,您还将找到cds ,这是库的依赖性。
以下是每个库的依赖关系的总结:
| ADQL | UWS | 轻敲 | |
|---|---|---|---|
软件包adql | x | x | |
包cds.utils | x | x | |
| Postgres JDBC驱动程序 | x | x | |
包uws | x | x | |
| JSON图书馆 | x | x | |
| HTTP Servlet API | x | x | |
| HTTP多部分库 | x | x | |
软件包cds.* | x | ||
| Stil库 | x |
在lib目录中,您将找到3个JAR文件:
commons-fileupload-1.3.3.jar (和commons-io-2.6.jar )。该库有助于处理上传。stil_3.3-2.jar (即nom.tap , org.apache.tools.bzip2 , uk.ac.starlink )。该库有助于支持投票(读写)和其他一些输出格式。json-20180813.jar (即前者包含的软件包org.json )。该库有助于操纵JSON内容。该库已被使用(在UWS-LIB的v4.4和Tap-lib的v2.3之前),但它包含在源中,而不是被视为外部库。仅当您要使用(并保留) adql.translator.PgSphereTranslator时,才需要Postgres JDBC驱动程序。您可以在PostgreSQL网站上获取此驱动程序。 ADQL和TAP库的所需软件包是org.postgresql (尤其是类org.postgresql.Driver )。
HTTP Servlet API通常在您使用的Web应用程序服务器的库中可用。例如,对于tomcat,它在目录lib中(OR /var/lib/tomcat-x/lib ,如果在Linux系统上安装了; x是tomcat的版本编号)。 UWS和TAP库的所需软件包是javax.servlet 。
注意:此GIT存储库中未提供Postgres JDBC驱动程序和HTTP Servlet API,以避免版本与主机系统不兼容(即结帐/Clone/clone/fork此存储库时您的计算机)。
这三个库的来源带有一些Junit测试文件。您可以在test目录中找到它们。
如果您使用的是Eclipse(或者也可能在另一个集成开发环境中),Junit通常已经可用。然后,您可以直接执行并编译提供的JUNIT测试文件。因此,您不需要下面提到的两个库。
否则,您将需要获取Junit库。通常,它配有JDK,但您也可以在Junit网站上找到相应的JAR。
您可能还需要另一个名为hamcrest的库。您可以在其Maven存储库上找到这个;只是要确保拥有一切所需的一切,只需将hamcrest-all作为一个罐子。
注意:此GIT存储库中未提供JUNIT和HAMCREST库,以避免版本与主机系统不兼容(即在您结帐/clone/fork时使用此存储库时的计算机)。
在存储库的根源上,有3个蚂蚁脚本。每个都专门用于一个库。他们能够生成罐子来源,二进制文件和Javadoc。
在使用以下脚本之一之前,必须设置4个属性:
POSTGRES仅适用于ADQL,然后点击如果要保留ADQL.TRANSLATOR.PGSPHERETRANSLATOR :通往罐子或包含所有org.postgresql.*SERVLET-API仅适用于UWS,然后点击:通往罐子或包含所有javax.servlet.*JUNIT-API :通往一个或几个罐子或二进制目录的路径,其中包含所有类别使用Junit的类。JNDI-API仅用于TAP,并且仅当您通过运行JUNIT测试感兴趣:通往一个或几个罐子或二进制目录的路径,该目录包含所有类以运行JNDI。为此存在几个图书馆; Simple-Jndi非常简单,并且由库开发人员使用来运行相关的JUNIT测试。注意:此GIT存储库中未提供JNDI库,因为任何JNDI库都可以工作,并且没有理由强加特定的库。此外,与编译源所需的其他库类似,它允许避免版本与主机系统不兼容(即在此存储库结帐/clone/fork时您的计算机)。
所有这些蚂蚁脚本都有以下主要目标:
junitValidation :执行与目标库有关的所有JUNIT测试,并以任何错误停止ANT。如果目标库是点击,则运行三个库的JUNIT测试。buildLib默认值:运行JUNIT测试,如果它们都成功,请编译目标库的类,并与它们及其依赖关系构建JAR文件。buildLibAndSrc :与包含所有来源和所需库的jar文件的buildLib +构建相同。buildJavadoc :生成一个包含目标库类的Javadoc的罐子。buildAll :相当于buildLibAndSrc和buildJavadoc 。结果是3罐:一个带有编译类的罐子,一个带有相应的来源,最后一个带有Javadoc。该代码可以用Gradle构建,要么作为JAR文件,要么将其包含在其他项目中,也可以作为将其部署在Tomcat中的战争文件。