Details
-
Improvement
-
Status: Open
-
Major
-
Resolution: Unresolved
-
1.2
-
None
Description
Some examples documented in the web site do not work unless optional dependencies are manually installed. For example with the metadata example given in the command-line page, adding the --format xml option causes the following error:
Implementation of JAXB-API has not been found on module path or classpath. Causée par ClassNotFoundException: com.sun.xml.bind.v2.ContextFactory
The error can be fixed by running the following commands:
cd lib/ wget https://repo1.maven.org/maven2/org/glassfish/jaxb/jaxb-runtime/2.3.6/jaxb-runtime-2.3.6.jar wget https://repo1.maven.org/maven2/com/sun/istack/istack-commons-runtime/3.0.12/istack-commons-runtime-3.0.12.jar
Likewise, UCAR dependencies can be downloaded as below:
cd lib/ wget https://artifacts.unidata.ucar.edu/repository/unidata-releases/edu/ucar/cdm-core/5.5.3/cdm-core-5.5.3.jar wget https://artifacts.unidata.ucar.edu/repository/unidata-releases/edu/ucar/udunits/5.5.3/udunits-5.5.3.jar wget https://artifacts.unidata.ucar.edu/repository/unidata-releases/edu/ucar/httpservices/5.5.3/httpservices-5.5.3.jar wget https://repo1.maven.org/maven2/org/apache/httpcomponents/httpclient/4.5.13/httpclient-4.5.13.jar wget https://repo1.maven.org/maven2/commons-logging/commons-logging/1.2/commons-logging-1.2.jar wget https://repo1.maven.org/maven2/commons-codec/commons-codec/1.11/commons-codec-1.11.jar wget https://repo1.maven.org/maven2/org/apache/httpcomponents/httpcore/4.4.13/httpcore-4.4.13.jar wget https://repo1.maven.org/maven2/org/apache/httpcomponents/httpmime/4.5.13/httpmime-4.5.13.jar wget https://repo1.maven.org/maven2/com/beust/jcommander/1.78/jcommander-1.78.jar wget https://repo1.maven.org/maven2/com/google/guava/guava/30.1-jre/guava-30.1-jre.jar wget https://repo1.maven.org/maven2/com/google/guava/failureaccess/1.0.1/failureaccess-1.0.1.jar wget https://repo1.maven.org/maven2/com/google/guava/listenablefuture/9999.0-empty-to-avoid-conflict-with-guava/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar wget https://repo1.maven.org/maven2/org/checkerframework/checker-qual/3.5.0/checker-qual-3.5.0.jar wget https://repo1.maven.org/maven2/com/google/errorprone/error_prone_annotations/2.3.4/error_prone_annotations-2.3.4.jar wget https://repo1.maven.org/maven2/com/google/j2objc/j2objc-annotations/1.3/j2objc-annotations-1.3.jar wget https://repo1.maven.org/maven2/com/google/protobuf/protobuf-java/3.19.3/protobuf-java-3.19.3.jar wget https://repo1.maven.org/maven2/com/google/re2j/re2j/1.3/re2j-1.3.jar wget https://repo1.maven.org/maven2/joda-time/joda-time/2.10.3/joda-time-2.10.3.jar wget https://repo1.maven.org/maven2/org/jdom/jdom2/2.0.6/jdom2-2.0.6.jar wget https://repo1.maven.org/maven2/org/slf4j/slf4j-api/1.7.28/slf4j-api-1.7.28.jar wget https://repo1.maven.org/maven2/com/google/code/findbugs/jsr305/3.0.2/jsr305-3.0.2.jar
We should add a mechanism in Apabe SIS command-line and JavaFX applications for offering to download those dependencies automatically when first required.
The combined size of above dependencies is about 1 Mb. It is not very big, so we could have included those dependencies in SIS binary distribution. But the same mechanism could be applied to UCAR netCDF and to Amazon SDK dependencies too, which are much bigger.