Ce référentiel GitHub contient les sources de 3 bibliothèques implémentant les normes et protocoles IVOA:
Pour une documentation / tutoriel complet et une démo des 3 bibliothèques, vous devez visiter les sites Web suivants: Adqltuto, Uwstuto et Taptuto.
Ces bibliothèques sont développées dans Java 7 .
Les trois de ces bibliothèques sont aux termes de la licence LGPL V3. Vous pouvez trouver la description complète et toutes les conditions d'utilisation dans les fichiers src / copie et src / copie.lesser.
Je vous encourage fortement à déclarer tout problème que vous rencontrez ici. Ainsi, quiconque a le même problème peut voir si son problème est déjà connu. Si le problème est connu, les progrès et / ou les commentaires sur sa résolution seront publiés.
De plus, si vous avez fourchu ce référentiel et effectué des corrections de votre côté qui sont susceptibles d'intéresser à tout autre utilisateur des bibliothèques, veuillez envoyer une demande de traction ici. Si ces modifications sont en fonction de l'adéquation avec la définition de l'IVOA et ne sont pas trop spécifiques à votre USECASE, elles seront intégrées (peut-être après quelques modifications) sur ce référentiel et ainsi mises à la disposition de tous.
Chaque bibliothèque a son propre package ( adql pour ADQL, uws pour UWS et tap pour TAP). Ces packages sont indépendants sauf tap qui ont besoin des deux autres packages. En plus de ces packages, vous trouverez également cds qui sont une dépendance pour les bibliothèques.
Vous trouverez ci-dessous les dépendances de chaque bibliothèque:
| Adql | Uws | ROBINET | |
|---|---|---|---|
Package adql | X | X | |
Package cds.utils | X | X | |
| Pilote de Postgres JDBC | X | X | |
Package uws | X | X | |
| Bibliothèque JSON | X | X | |
| API du servlet HTTP | X | X | |
| Bibliothèque en multipar HTTP | X | X | |
Packages cds.* | X | ||
| Bibliothèque | X |
Dans le répertoire lib , vous trouverez 3 fichiers JAR:
commons-fileupload-1.3.3.jar (et commons-io-2.6.jar ). Cette bibliothèque aide à gérer les téléchargements.stil_3.3-2.jar (IE Packages nom.tap , org.apache.tools.bzip2 , uk.ac.starlink ). Cette bibliothèque aide à soutenir le votable (lire et écrire) et certains autres formats de sortie.json-20180813.jar (c'est-à-dire le premier package inclus org.json ). Cette bibliothèque aide à manipuler le contenu JSON. Cette bibliothèque était déjà utilisée (avant V4.4 d'UWS-LIB et V2.3 de Tap-Lib) mais elle a été incluse dans les sources au lieu d'être considérée comme une bibliothèque externe. Le pilote Postgres JDBC n'est nécessaire que si vous souhaitez utiliser (et garder) adql.translator.PgSphereTranslator . Vous pouvez obtenir ce pilote sur le site Web de PostgreSQL. Le package requis pour les bibliothèques ADQL et TAP est org.postgresql (et en particulier la classe org.postgresql.Driver ).
L' API HTTP Servlet est généralement disponible dans les bibliothèques qui se présentent le long du serveur d'applications Web que vous utilisez. Par exemple, pour Tomcat, il se trouve dans le répertoire lib (ou /var/lib/tomcat-x/lib s'il est installé avec aptitude sur un système Linux; x est le numéro de version de Tomcat). Le package requis pour la bibliothèque UWS et TAP est javax.servlet .
Remarque: Le pilote Postgres JDBC et l'API HTTP Servlet ne sont pas fournis dans ce référentiel GIT afin d'éviter l'incompatibilité de la version avec le système hôte (c'est-à-dire votre machine lorsque vous vérifiez / clone / fourche ce référentiel).
Les sources de ces trois bibliothèques sont livrées avec certains fichiers de test JUnit. Vous pouvez les trouver dans le répertoire test .
Si vous utilisez Eclipse (ou peut-être aussi avec un autre environnement de développement intégré), JUnit est généralement déjà disponible. Ensuite, vous pouvez dire directement et compiler les fichiers de test JUnit fournis. Vous n'avez donc pas besoin des deux bibliothèques mentionnées juste en dessous.
Sinon, vous devrez obtenir la bibliothèque Junit. Généralement, il est fourni avec le JDK, mais vous pouvez également trouver le pot correspondant sur le site Web JUnit.
Vous pouvez également avoir besoin d'une autre bibliothèque appelée hamcrest . Vous pouvez trouver celui-ci sur son référentiel Maven; Juste pour être sûr d'avoir tout ce qui est nécessaire, prenez simplement hamcrest-all comme un pot.
Remarque: Les bibliothèques JUnit et Hamcrest ne sont pas fournies dans ce référentiel GIT afin d'éviter l'incompatibilité de la version avec le système hôte (c'est-à-dire votre machine lorsque vous vérifiez / clone / fourche ce référentiel).
À la racine du référentiel, il y a 3 scripts de fourmi. Chacun est dédié à une bibliothèque. Ils sont capables de générer un pot pour les sources, les binaires et le javadoc.
4 Les propriétés doivent être définies avant d'utiliser l'un de ces scripts:
POSTGRES uniquement pour ADQL et appuyez sur Si vous souhaitez conserver Adql.Translator.PGSPheRetranslator : un chemin vers un pot ou un répertoire binaire contenant tous org.postgresql.* - [https://jdbc.SERVLET-API uniquement pour UWS et TAP : un chemin vers un pot ou un répertoire binaire contenant tous javax.servlet.*JUNIT-API non requis si vous n'êtes pas intéressé par la gestion des tests JUnit : un chemin vers un ou plusieurs pots ou répertoires binaires contenant toutes les classes pour utiliser JUnit.JNDI-API uniquement pour TAP et uniquement si vous êtes intéressé par l'exécution des tests JUnit : un chemin vers un ou plusieurs pots ou répertoires binaires contenant toutes les classes pour exécuter un JNDI. Plusieurs bibliothèques existent pour cela; Simple-JNDI est très simple et est utilisé par le développeur des bibliothèques pour exécuter les tests JUnit associés.Remarque: aucune bibliothèque JNDI n'est fournie dans ce référentiel GIT car toute bibliothèque JNDI peut fonctionner et il n'y a aucune raison d'en imposer une. En outre, de même que les autres bibliothèques nécessaires pour compiler les sources, il permet d'éviter l'incompatibilité de la version avec le système hôte (c'est-à-dire votre machine lorsque vous vérifiez / clone / fourche ce référentiel).
Tous ces scripts de fourmi ont les principales cibles suivantes:
junitValidation : exécute tous les tests JUnit liés à la bibliothèque cible et arrêtez Ant à n'importe quelle erreur. Si la bibliothèque Target est appuyée, les tests JUnit des trois bibliothèques sont exécutés.buildLib par défaut : exécutez les tests JUnit et s'ils réussissent tous, compilez les classes de la bibliothèque Target et créez un fichier JAR avec eux et leurs dépendances.buildLibAndSrc : Identique à buildLib + Building d'un fichier JAR contenant toutes les sources et les bibliothèques requises.buildJavadoc : Générez un pot contenant le javadoc des classes de la bibliothèque cible.buildAll : Équivalent de buildLibAndSrc et buildJavadoc ensemble. Le résultat est 3 pots: un avec les classes compilées, une avec les sources correspondantes et la dernière avec le Javadoc.Le code peut être construit avec Gradle, soit en tant que fichier JAR à inclure dans d'autres projets, soit en tant que fichier de guerre à déployer dans Tomcat.