Modules
IVOACore is organised as a multi-module Gradle project. Each module targets a specific area of IVOA functionality and can be used independently.
common
The common module provides shared utilities used across the other modules.
Package: org.javastro.ivoacore.common
Key classes:
SecurityGuard— utility for security-related checksXMLUtils— helpers for working with XML, including XSLT 3.0 support via Saxon-HE
dal
The dal module implements parts of DALI (Data Access Layer Interface) and
VOSI (VO Support Interfaces).
Package: org.javastro.ivoacore.vosi
Key classes:
VOSIResource— base interface for VOSI-compliant resourcesBaseVOSIResource— abstract base implementation ofVOSIResourceCapabilityBuilder— helper for constructing VOSI capability documentsVOSIProvider— provider interface for VOSI services
uws
The uws module implements UWS (Universal Worker Service), providing
a framework for managing long-running asynchronous jobs.
Package: org.javastro.ivoacore.uws
Key classes and packages:
Job— represents a UWS jobJobManager— manages the lifecycle of UWS jobsJobFactory/BaseJobFactory— factory interfaces for creating jobsJobSpecification— describes the parameters and behaviour of a job typeUWSCore— core UWS service implementationUWSControl— control interface for UWS operationsExecutionControl— manages execution of individual jobsdescription/— parameter and job description typesenvironment/— execution environment and policy implementationspersist/— job persistence (in-memory implementation provided)webapi/— JAX-RS based REST API implementation
tap
The tap module implements TAP (Table Access Protocol) building on
the UWS module.
Package: org.javastro.ivoacore.tap
Key classes:
TAPJob— a UWS job implementing a TAP queryTAPJobSpecification— specification for TAP jobsschema/SchemaProvider— interface for providing TAP schema informationschema/VODMLSchemaProvider— schema provider backed by VO-DML models
pgsphere
The pgsphere module provides Hibernate integration for PgSphere, the PostgreSQL spherical geometry extension.
Package: org.javastro.ivoacore.pgsphere
Key classes:
PgSphereDialect— Hibernate dialect with PgSphere type registrationsPgSphereTypes— type mappings between PgSphere and Javatypes/— Java representations of PgSphere geometry types (Point, Circle, Ellipse, Polygon, Box)
Note
The pgsphere module has its own versioning (currently 0.9-SNAPSHOT)
separate from the rest of the project.
Client Libraries
Client libraries for IVOA protocols are located in the clients/ subdirectory.
clients/registry
Package: org.javastro.ivoacore.client.registry
A client library for IVOA Registry services implementing the OAI-PMH-based registry interface.
Key classes:
BaseRegistryClient— base class for registry clientsBasicOAIClient— OAI-PMH client implementationMinimalRegistryInterface— minimal registry query interfaceOAIInterface— OAI-PMH interface definition
clients/tap
TAP client library (placeholder, under development).
clients/vospace
VOSpace client library (under development).