- To: Java NetCDF <netcdf-java@xxxxxxxxxxxxxxxx>
- Subject: [netcdf-java] Zarr(!) null pointer
- From: Bob Simons - NOAA Federal <bob.simons@xxxxxxxx>
- Date: Thu, 7 Jul 2022 14:09:51 -0400
I am again trying to use netcdf modules instead of netcdfAll.
I need to use modules because you have stopped producing netcdfAll for new
versions.
I am using the new v5.5.3.
I included the cdm-zarr module in my pom.xml file because I would like to
try it someday and because I want to include as many file-read options as
possible.
I checked: cdm-zarr-5.5.3.jar is in my /lib directory after Maven builds
the project.
mvn compile throws no errors.
mvn dependency:analyze throws no errors and says I'm not missing
dependencies, but that I have a few unreferenced classes (several are
netcdf-related).
Now, when I run my unit tests (which previously worked), this code
String fileName = "/u00/data/viirs/MappedMonthly4km/m4.ncml";
NetcdfFile nc = NetcdfDatasets.openDataset(fileName);
throws this exception:
Exception in thread "main" java.lang.NullPointerException: Cannot invoke
"String.contains(java.lang.CharSequence)" because "location" is null
at
thredds.inventory.zarr.MFileZip$Provider.canProvide(MFileZip.java:200)
at thredds.inventory.MFiles.create(MFiles.java:37)
at ucar.nc2.internal.ncml.AggDataset.<init>(AggDataset.java:74)
at
ucar.nc2.internal.ncml.Aggregation.makeDataset(Aggregation.java:453)
at
ucar.nc2.internal.ncml.Aggregation.addExplicitDataset(Aggregation.java:136)
at ucar.nc2.internal.ncml.NcmlReader.readAgg(NcmlReader.java:1476)
at ucar.nc2.internal.ncml.NcmlReader.readNetcdf(NcmlReader.java:521)
at ucar.nc2.internal.ncml.NcmlReader.readNcml(NcmlReader.java:478)
at ucar.nc2.internal.ncml.NcmlReader.readNcml(NcmlReader.java:397)
at
ucar.nc2.internal.ncml.NcmlNetcdfFileProvider.open(NcmlNetcdfFileProvider.java:24)
at
ucar.nc2.dataset.NetcdfDatasets.openProtocolOrFile(NetcdfDatasets.java:431)
at
ucar.nc2.dataset.NetcdfDatasets.openDataset(NetcdfDatasets.java:152)
at
ucar.nc2.dataset.NetcdfDatasets.openDataset(NetcdfDatasets.java:135)
at
ucar.nc2.dataset.NetcdfDatasets.openDataset(NetcdfDatasets.java:118)
at
ucar.nc2.dataset.NetcdfDatasets.openDataset(NetcdfDatasets.java:104)
even though the file is an .ncml file (attached) which references 2 hdf
files
V20120012012031.L3m_MO_NPP_CHL_chlor_a_4km
V20120322012060.L3m_MO_NPP_CHL_chlor_a_4km
which are pretty big, but you can download from
https://coastwatch.pfeg.noaa.gov/erddap/files/testMediaFiles/ProbablyDoNotWork/
The error message isn't helpful.
Why am I getting this error message even though there are no Zarr files
involved?
Or, do you have a pom.xml which includes what used to be in netcdfAll?
Perhaps I am missing some low level artifact.
My pom.xml is attached if that is helpful.
Thank you for looking into this.
Attachment:
m4.ncml
Description: Binary data
<?xml version="1.0" encoding="UTF-8"?>
<!--
This is how Bob uses Maven for ERDDAP.
Maven users will probably be mystified/horrified,
but it works for me and does what I need it to do:
identify and gather all needed .jar dependencies
since this is impossible for AWS S3 dependencies without Maven.
* One time: Make a new Maven project/archetype:
cd \programs\mavenERDDAP
mvn -B archetype:generate -DgroupId=gov.noaa.pfel.erddap -DartifactId=ERDDAP
-DarchetypeArtifactId=maven-archetype-quickstart -DarchetypeVersion=1.4
* Copy Java source files from Tomcat/webapps/cwexperimental to Maven:
With bash:
cd /c/content/bat
./synchToMaven.sh
* Update ERDDAP version number below in ...
<version>2.19-SNAPSHOT</version>
* Update the version numbers starting with <plugins> section.
Website to search for maven plugins and dependencies:
https://mvnrepository.com/
* Compile in Maven and gather dependency .jar files
(pom.xml based on Kyle's pom from
https://github.com/axiom-data-science/erddap )
From DOS command line (or Bash) (after synchToMaven.sh has copied source
files to Maven dir):
//mvn -help
//add -e for full error messages
//add -X for debug messages
cd \programs\mavenERDDAP\ERDDAP //that's where pom.xml is
set "JAVA_HOME=C:\programs\jdk-17.0.3+7"
mvn clean //removes previously generated .class files and
...
mvn compile //uses javac. Identifies missing
dependencies/.jars.
mvn dependency:analyze //Identifies excess or missing dependencies/.jars.
// Expected:
// WARNINGS for netcdf-java -related edu.ucar
classes.
// WARNINGS for Cassandra dependencies:
// slf4j, guava, lz4, metrics, netty, snappy.
mvn package //Creates a war in
\programs\mavenERDDAP\ERDDAP\target
(then copy netcdfAll-x.x.x.jar into /lib)
or: mvn clean install -U //clears out cached information (more thoroughly
than 'clean') and does it all?
* Temporarily rename tomcat/webapps/cwexperimental/WEB-INF/lib to today's date:
/libYYYYMMDD
* Move all .jar files
from inside
C:\programs\mavenERDDAP\ERDDAP\target\ERDDAP-...-SNAPSHOT\WEB-INF\lib directory
to tomcat/webapps/cwexperimental/WEB-INF/lib
The vast majority of .jars are from the AWS S3 dependency.
* Run TestAll. If passes all tests, delete temporary libYYYYMMDD directory.
-->
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>gov.noaa.pfel.erddap</groupId>
<artifactId>ERDDAP</artifactId>
<version>2.19-SNAPSHOT</version>
<packaging>war</packaging>
<name>erddap</name>
<url>https://coastwatch.pfeg.noaa.gov/erddap/index.html</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<repositories>
<!-- Published advice:
https://docs.unidata.ucar.edu/netcdf-java/current/userguide/using_netcdf_java_artifacts.html
Repository
https://artifacts.unidata.ucar.edu/repository/unidata-all (on web page)
or
https://artifacts.unidata.ucar.edu/repository/unidata-releases (privately)
Browse either https://artifacts.unidata.ucar.edu/#browse/browse
-->
<repository>
<id>unidata-all</id>
<name>UNIDATA All</name>
<url>https://artifacts.unidata.ucar.edu/repository/unidata-all/</url>
</repository>
</repositories>
<build>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.csv</include>
<include>**/*.tsv</include>
<include>**/*.txt</include>
<include>**/*.cpt</include>
<include>**/*.xml</include>
</includes>
</resource>
</resources>
<plugins>
<plugin>
<!--
https://mvnrepository.com/artifact/org.apache.maven.plugins/maven-compiler-plugin
-->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.10.1</version>
<configuration>
<failOnError>true</failOnError>
<source>17</source> <!-- java version -->
<target>17</target>
<excludes>
<exclude>gov/noaa/pfel/coastwatch/sgt/LandMask.javaINACTIVE</exclude>
<exclude>gov/noaa/pfel/coastwatch/sgt/MapGraph.javaINACTIVE</exclude>
<exclude>gov/noaa/pfel/coastwatch/sgt/MapProj.javaINACTIVE</exclude>
<exclude>gov/noaa/pfel/coastwatch/sgt/GSHHSNewOnHold.java_NOT_YET</exclude>
<exclude>gov/noaa/pfel/coastwatch/griddata/Grd.javaINACTIVE</exclude>
<exclude>gov/noaa/pfel/coastwatch/griddata/GridDataSetCWOpendap.javaINACTIVE</exclude>
<exclude>gov/noaa/pfel/coastwatch/griddata/GridDataSetPathfinder.javaINACTIVE</exclude>
<exclude>gov/noaa/pfel/coastwatch/griddata/WriteShapefile.javaINACTIVE</exclude>
<exclude>gov/noaa/pfel/coastwatch/pointdata/DigirIobisTDSP.javaINACTIVE</exclude>
<exclude>gov/noaa/pfel/coastwatch/pointdata/DigirObisTDSP.javaINACTIVE</exclude>
<exclude>gov/noaa/pfel/coastwatch/hdf/HdfWriter.javaINACTIVE</exclude>
<exclude>gov/noaa/pfel/coastwatch/HelloWorld.javaINACTIVE</exclude>
<exclude>gov/noaa/pfel/erddap/dataset/EDDTableFromBinaryFile.javaINACTIVE</exclude>
<exclude>gov/noaa/pfel/erddap/dataset/EDDTableFromMatFiles.javaINACTIVE</exclude>
<exclude>gov/noaa/pfel/erddap/dataset/EDDTableCopyPost.javaINACTIVE</exclude>
<exclude>gov/noaa/pfel/erddap/dataset/EDDTableFromBMDE.javaINACTIVE</exclude>
<exclude>gov/noaa/pfel/erddap/dataset/EDDTableFromMWFS.javaINACTIVE</exclude>
<exclude>gov/noaa/pfel/erddap/dataset/EDDTableFromNOS.javaINACTIVE</exclude>
<exclude>gov/noaa/pfel/erddap/dataset/EDDTableFromNcSequenceFiles.javaNOT_FINISHED</exclude>
<exclude>gov/noaa/pfel/erddap/dataset/EDDTableFromNWISDV.javaINACTIVE</exclude>
<exclude>gov/noaa/pfel/erddap/dataset/EDDTableFromPostDatabase.javaINACTIVE</exclude>
<exclude>gov/noaa/pfel/erddap/dataset/EDDTableFromPostNcFiles.javaINACTIVE</exclude>
<exclude>gov/noaa/pfel/coastwatch/util/FileVisitorDNLS.javaOLD</exclude>
</excludes>
</configuration>
</plugin>
<!--
https://mvnrepository.com/artifact/org.apache.maven.plugins/maven-war-plugin -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.3.2</version>
</plugin>
<!-- ??? 2022-07-06 5.5.3 does have netcdfAll. WHAT IS
REPLACEMENT???
https://mvnrepository.com/artifact/com.googlecode.maven-download-plugin/download-maven-plugin
This approach is from Jennifer Oxelson. See
https://github.com/oxelson/netcdfAll/blob/main/pom.xml
I think this isn't needed/doesn't work(?).
Instead, just download netcdfAll
from
https://artifacts.unidata.ucar.edu/#browse/browse:downloads-netcdf-java
to c:/programs/mavenERDDAP/ERDDAP/external_libs/
- ->
<plugin>
<groupId>com.googlecode.maven-download-plugin</groupId>
<artifactId>download-maven-plugin</artifactId>
<version>1.6.8</version>
<executions>
<execution>
<phase>validate</phase>
<goals>
<goal>wget</goal>
</goals>
<configuration>
<url>https://artifacts.unidata.ucar.edu/repository/downloads-netcdf-java/5.5.2/netcdfAll-5.5.2.jar</url>
<outputFileName>netcdfAll-5.5.2.jar</outputFileName>
<outputDirectory>${project.basedir}/external_libs</outputDirectory>
</configuration>
</execution>
</executions>
</plugin> -->
</plugins>
<pluginManagement>
<plugins>
<!--
https://mvnrepository.com/artifact/org.apache.maven.plugins/maven-resources-plugin
-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>3.2.0</version>
</plugin>
<!--
https://mvnrepository.com/artifact/org.apache.maven.plugins/maven-dependency-plugin
-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>3.3.0</version>
</plugin>
<!--
https://mvnrepository.com/artifact/org.apache.maven.plugins/maven-surefire-plugin
-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.22.2</version>
</plugin>
<!--
https://mvnrepository.com/artifact/org.apache.maven.plugins/surefire-junit4 -->
<plugin>
<groupId>org.apache.maven.surefire</groupId>
<artifactId>surefire-junit4</artifactId>
<version>2.19.1</version>
</plugin>
<!--
https://mvnrepository.com/artifact/org.codehaus.plexus/plexus-utils -->
<plugin>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-utils</artifactId>
<version>3.4.2</version>
</plugin>
</plugins>
</pluginManagement>
</build>
<dependencyManagement>
<dependencies>
<!-- https://mvnrepository.com/artifact/software.amazon.awssdk/bom
Parent for reading/writing to AWS S3. -->
<dependency>
<groupId>software.amazon.awssdk</groupId>
<artifactId>bom</artifactId>
<version>2.17.224</version> <!-- and same number several places
below -->
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<!--
https://mvnrepository.com/artifact/jakarta.servlet/jakarta.servlet-api -->
<dependency>
<groupId>jakarta.servlet</groupId>
<artifactId>jakarta.servlet-api</artifactId>
<version>6.0.0</version>
<scope>provided</scope>
<!-- Tomcat8 needed this. Tomcat10 doesn't allow it.
<configuration>
<port>8081</port>
<path>/erddap</path>
</configuration -->
</dependency>
<!-- https://mvnrepository.com/artifact/junit/junit
There are newer versions with different domain name, but cause
trouble with dependency checking.
For testing (by Kyle? Maven?). -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13.2</version>
<scope>test</scope>
</dependency>
<!-- Kyle had this:
https://mvnrepository.com/artifact/org.apache.ant/ant
<dependency>
<groupId>org.apache.ant</groupId>
<artifactId>ant</artifactId>
<version>1.10.9</version>
</dependency> -->
<!-- https://mvnrepository.com/artifact/gnu-regexp/gnu-regexp
This is needed for dods.dap code I wasn't compiling but Maven
does.
'provided' lets it compile here but then doesn't include the .jar
in /lib in .war.
-->
<dependency>
<groupId>gnu-regexp</groupId>
<artifactId>gnu-regexp</artifactId>
<version>1.1.4</version>
<scope>provided</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/gnu.getopt/java-getopt
This is needed for dods.dap code I wasn't compiling but Maven
does.
'provided' lets it compile here but then doesn't include the .jar
in /lib in .war.
-->
<dependency>
<groupId>gnu.getopt</groupId>
<artifactId>java-getopt</artifactId>
<version>1.0.13</version>
<scope>provided</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/com.lowagie/itext
This is the pdf writer.
Newer version is available, but license now gpl! So stick to 1.3.1
-->
<dependency>
<groupId>com.lowagie</groupId>
<artifactId>itext</artifactId>
<version>1.3.1</version>
</dependency>
<!-- Kyle had this:
<dependency>
<groupId>wsdl4j</groupId>
<artifactId>wsdl4j</artifactId>
<version>1.6.3</version>
</dependency-->
<!-- https://mvnrepository.com/artifact/org.apache.lucene/lucene-core
The Lucene search option uses this.
2021-12-16 WARNING: Lucene 9.0.0 is available but requires Java
11(?). -->
<dependency>
<groupId>org.apache.lucene</groupId>
<artifactId>lucene-core</artifactId>
<version>9.2.0</version>
</dependency>
<!--
https://mvnrepository.com/artifact/org.apache.lucene/lucene-queryparser
The Lucene search option uses this. -->
<dependency>
<groupId>org.apache.lucene</groupId>
<artifactId>lucene-queryparser</artifactId>
<version>9.2.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.json/json
This is the JSON reader. -->
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20220320</version>
</dependency>
<!-- I have private copy of source code in with my code.
2020-12-21 I tried to remove my copy and use this, but failed.
https://mvnrepository.com/artifact/org.jdom/jdom
<dependency>
<groupId>org.jdom</groupId>
<artifactId>jdom</artifactId>
<version>2.0.2</version>
</dependency-->
<!-- Kyle had this:
<dependency>
<groupId>org.apache.axis</groupId>
<artifactId>axis</artifactId>
<version>1.4</version>
</dependency-->
<!-- Kyle had this:
<dependency>
<groupId>atg.taglib.json</groupId>
<artifactId>json-taglib</artifactId>
<version>0.4.1</version>
</dependency-->
<!-- https://mvnrepository.com/artifact/com.sun.mail/jakarta.mail
Used to send emails. -->
<dependency>
<groupId>com.sun.mail</groupId>
<artifactId>jakarta.mail</artifactId>
<version>2.0.1</version>
</dependency>
<!-- versions:
https://mvnrepository.com/artifact/commons-codec/commons-codec
dependency:analyze says it's needed. -->
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.15</version>
</dependency>
<!--
https://mvnrepository.com/artifact/org.apache.commons/commons-compress
File2 and EDDTableFromNcFiles use this. -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-compress</artifactId>
<version>1.21</version>
</dependency>
<!-- https://mvnrepository.com/artifact/commons-logging/commons-logging
dependency:analyze says it's needed.
Maven says 1.2's dependencies have 4 vulnerabilities, but all are
old log4j vulnerabilities,
so ERDDAP admins shouldn't use old log4j (or any log4j). -->
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/jaxen/jaxen
org.jdom.xpath code uses this. -->
<dependency>
<groupId>jaxen</groupId>
<artifactId>jaxen</artifactId>
<version>1.2.0</version>
</dependency>
<!-- Published advice
https://docs.unidata.ucar.edu/netcdf-java/current/userguide/using_netcdf_java_artifacts.html
and Jan 24, 2022 email from Jennifer Oxelson Ganter
and a set of runtime modules from
https://docs.unidata.ucar.edu/netcdf-java/current/userguide/file_types.html
To figure out which module has a given class, Google, e.g.: github
netcdf-java ucar nc2 geotiff GeotiffWriter
Browse repository (probably unidata-all):
https://artifacts.unidata.ucar.edu/#browse/browse
-->
<!-- Version options:
https://artifacts.unidata.ucar.edu/#browse/browse:unidata-all:edu%2Fucar%2Fbufr
-->
<dependency>
<groupId>edu.ucar</groupId>
<artifactId>bufr</artifactId>
<version>5.5.3</version> <!-- this number duplicated many times
below -->
<scope>runtime</scope>
</dependency>
<!-- Version options:
https://artifacts.unidata.ucar.edu/#browse/browse:unidata-all:edu%2Fucar%2Fcdm-core
Fundamental!
Has ucar.nc2.Variable and Variable.Builder (and other builders).
Has ucar.nc2.ncml.NcmlReader, Aggregation, AggregationExisting,
AggregationFmrc, AggregationOuterDimension,
AggregationUnion, etc-->
<dependency>
<groupId>edu.ucar</groupId>
<artifactId>cdm-core</artifactId>
<version>5.5.3</version>
<scope>compile</scope>
</dependency>
<!-- Version options:
https://artifacts.unidata.ucar.edu/#browse/browse:unidata-all:edu%2Fucar%2Fcdm-image
-->
<dependency>
<groupId>edu.ucar</groupId>
<artifactId>cdm-image</artifactId>
<version>5.5.3</version>
<scope>runtime</scope>
</dependency>
<!-- Version options:
https://artifacts.unidata.ucar.edu/#browse/browse:unidata-all:edu%2Fucar%2Fcdm-mcidas
-->
<dependency>
<groupId>edu.ucar</groupId>
<artifactId>cdm-mcidas</artifactId>
<version>5.5.3</version>
<scope>runtime</scope>
</dependency>
<!-- Version options:
https://artifacts.unidata.ucar.edu/#browse/browse:unidata-all:edu%2Fucar%2Fcdm-misc
Has ucar.nc2.geotiff. -->
<dependency>
<groupId>edu.ucar</groupId>
<artifactId>cdm-misc</artifactId>
<version>5.5.3</version>
<scope>compile</scope>
</dependency>
<!-- Version options:
https://artifacts.unidata.ucar.edu/#browse/browse:unidata-all:edu%2Fucar%2Fcdm-radial
probably not needed-->
<dependency>
<groupId>edu.ucar</groupId>
<artifactId>cdm-radial</artifactId>
<version>5.5.3</version>
<scope>runtime</scope>
</dependency>
<!-- Version options:
https://artifacts.unidata.ucar.edu/#browse/browse:unidata-all:edu%2Fucar%2Fcdm-vis5d
-->
<dependency>
<groupId>edu.ucar</groupId>
<artifactId>cdm-vis5d</artifactId>
<version>5.5.3</version>
<scope>runtime</scope>
</dependency>
<!-- Version options:
https://artifacts.unidata.ucar.edu/#browse/browse:unidata-all:edu%2Fucar%2Fcdm-zarr
-->
<dependency>
<groupId>edu.ucar</groupId>
<artifactId>cdm-zarr</artifactId>
<version>5.5.3</version>
<scope>runtime</scope>
</dependency>
<!-- Version options:
https://artifacts.unidata.ucar.edu/#browse/browse:unidata-all:edu%2Fucar%2Fclcommon
Referenced in Jennifer's email. Has ucar.nc2.dt.image... and some
ucar.nc2.iosp...
But I distrust artifacts with version=5.1.0. - ->
<dependency>
<groupId>edu.ucar</groupId>
<artifactId>clcommon</artifactId>
<version>5.1.0</version>
<scope>compile</scope>
</dependency> -->
<!-- d4* is probably dap4: not needed -->
<!-- Version options:
https://artifacts.unidata.ucar.edu/#browse/browse:unidata-all:edu%2Fucar%2Fgrib
-->
<dependency>
<groupId>edu.ucar</groupId>
<artifactId>grib</artifactId>
<version>5.5.3</version>
<scope>runtime</scope>
</dependency>
<!-- Version options:
https://artifacts.unidata.ucar.edu/#browse/browse:unidata-all:edu%2Fucar%2Fhttpservices
-->
<dependency>
<groupId>edu.ucar</groupId>
<artifactId>httpservices</artifactId>
<version>5.5.3</version>
<scope>compile</scope>
</dependency>
<!-- Version options:
https://artifacts.unidata.ucar.edu/#browse/browse:unidata-all:edu%2Fucar%2Flegacy
-->
<dependency>
<groupId>edu.ucar</groupId>
<artifactId>legacy</artifactId>
<version>5.5.3</version>
<scope>compile</scope>
</dependency>
<!-- Version options:
https://artifacts.unidata.ucar.edu/#browse/browse:unidata-all:edu%2Fucar%2Fnetcdf
doesn't have 5.x -->
<!-- Version options:
https://artifacts.unidata.ucar.edu/#browse/browse:unidata-all:edu%2Fucar%2Fnetcdf-java
doesn't have 5.5.3+ -->
<!-- Version options:
https://artifacts.unidata.ucar.edu/#browse/browse:unidata-all:edu%2Fucar%2Fnetcdf4
This is for writing netcdf4 files with linked C library. -->
<dependency>
<groupId>edu.ucar</groupId>
<artifactId>netcdf4</artifactId>
<version>5.5.3</version>
<scope>runtime</scope>
</dependency>
<!-- Version options:
https://artifacts.unidata.ucar.edu/#browse/browse:unidata-all:edu%2Fucar%2Fopendap
-->
<dependency>
<groupId>edu.ucar</groupId>
<artifactId>opendap</artifactId>
<version>5.5.3</version>
<scope>compile</scope>
</dependency>
<!-- Version options:
https://artifacts.unidata.ucar.edu/#browse/browse:unidata-all:edu%2Fucar%2Fudunits
Marked as needed by dependency:analyze -->
<dependency>
<groupId>edu.ucar</groupId>
<artifactId>udunits</artifactId>
<version>5.5.3</version>
<scope>compile</scope>
</dependency>
<!-- Version options:
https://artifacts.unidata.ucar.edu/#browse/browse:unidata-all:edu%2Fwisc%2Fssec%2Fvisad
Marked as needed by dependency:analyze -->
<dependency>
<groupId>edu.wisc.ssec</groupId>
<artifactId>visad</artifactId>
<version>2.0-20191209</version>
<scope>runtime</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-simple
2021-12-21: I think it is needed.
WAS: NO LONGER NEEDED! It's in netcdf-all.jar
and something else gets slf4j-api-...jar -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>1.7.36</version>
<scope>runtime</scope>
</dependency>
<!--
https://mvnrepository.com/artifact/org.apache.commons/commons-jexl3
This is the expression parser/processor used by EDDTableFromFiles
Derived Variables. -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-jexl3</artifactId>
<version>3.2.1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.postgresql/postgresql
Postgresql users use this. I include for their convenience. -->
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>42.4.0</version>
</dependency>
<!-- CASSANDRA
https://mvnrepository.com/artifact/com.datastax.cassandra/cassandra-driver-core
Cassandra uses this. -->
<dependency>
<groupId>com.datastax.cassandra</groupId>
<artifactId>cassandra-driver-core</artifactId>
<version>3.11.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.google.guava/guava
Cassandra driver uses this. -->
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>31.1-jre</version>
</dependency>
<!-- https://mvnrepository.com/artifact/net.jpountz.lz4/lz4
Cassandra uses this. C* still refers to this older version from
older domain. -->
<dependency>
<groupId>net.jpountz.lz4</groupId>
<artifactId>lz4</artifactId>
<version>1.3.0</version>
</dependency>
<!--
https://mvnrepository.com/artifact/io.dropwizard.metrics/metrics-core
Cassandra uses this. -->
<dependency>
<groupId>io.dropwizard.metrics</groupId>
<artifactId>metrics-core</artifactId>
<version>4.2.10</version>
</dependency>
<!-- https://mvnrepository.com/artifact/io.netty/netty-all
Cassandra uses this. -->
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-all</artifactId>
<version>4.1.78.Final</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.xerial.snappy/snappy-java
Cassandra uses this. -->
<dependency>
<groupId>org.xerial.snappy</groupId>
<artifactId>snappy-java</artifactId>
<version>1.1.8.4</version>
</dependency>
<!--
https://mvnrepository.com/artifact/io.dropwizard.metrics/metrics-jmx
2021-01-25 Tried: To deal with java.lang.NoClassDefFoundError:
com/codahale/metrics/JmxReporter
But now "metrics" option is always set to false.
See EDDTableFromCassandra references to JmxReporter.
See
https://docs.datastax.com/en/developer/java-driver/3.5/manual/metrics/#metrics-4-compatibility
and need for Cluster.builder().withoutJMXReporting()
which is probably a workable solution.
<dependency>
<groupId>io.dropwizard.metrics</groupId>
<artifactId>metrics-jmx</artifactId>
<version>4.2.5</version>
</dependency -->
<!-- AWS
https://mvnrepository.com/artifact/software.amazon.awssdk/s3
This is the core AWS SDK code.
See awssdk/bom in <dependencyManagement> section above. -->
<dependency>
<groupId>software.amazon.awssdk</groupId>
<artifactId>s3</artifactId>
<version>2.17.224</version>
</dependency>
<!-- https://mvnrepository.com/artifact/software.amazon.awssdk/regions
This is the AWS code for Regions. -->
<dependency>
<groupId>software.amazon.awssdk</groupId>
<artifactId>regions</artifactId>
<version>2.17.224</version>
</dependency>
<!--
https://mvnrepository.com/artifact/software.amazon.awssdk/s3-transfer-manager
This is the AWS code for TransferManager. -->
<dependency>
<groupId>software.amazon.awssdk</groupId>
<artifactId>s3-transfer-manager</artifactId>
<version>2.17.224-PREVIEW</version>
</dependency>
<!--
https://mvnrepository.com/artifact/com.google.cloud/google-cloud-translate -->
<!-- Added by Qi for translation purpose -->
<!-- WARNING:
2022-02-07 2.1.10 caused a timeout error. Revert to 2.1.7 again.
2021-12-22 2.1.8 caused: Exception in thread
"grpc-default-executor-0" java.lang.NoSuchMethodError:
com.google.protobuf.GeneratedMessageV3.isStringEmpty(Ljava/lang/Object;)Z
so revert to 2.1.7 for now -->
<dependency>
<groupId>com.google.cloud</groupId>
<artifactId>google-cloud-translate</artifactId>
<version>2.3.0</version>
</dependency>
<!--
https://mvnrepository.com/artifact/com.google.api.grpc/proto-google-cloud-translate-v3
-->
<!-- Added by Bob for translation project -->
<!-- WARNING:
2022-02-07 2.1.10 caused a timeout error. Revert to 2.1.7 again.
2021-12-22 2.1.8 caused: Exception in thread
"grpc-default-executor-0" java.lang.NoSuchMethodError:
com.google.protobuf.GeneratedMessageV3.isStringEmpty(Ljava/lang/Object;)Z
so revert to 2.1.7 for now -->
<dependency>
<groupId>com.google.api.grpc</groupId>
<artifactId>proto-google-cloud-translate-v3</artifactId>
<version>2.3.0</version>
</dependency>
<!--
https://mvnrepository.com/artifact/com.google.auth/google-auth-library-oauth2-http
-->
<dependency>
<groupId>com.google.auth</groupId>
<artifactId>google-auth-library-oauth2-http</artifactId>
<version>1.8.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.google.api/gax -->
<dependency>
<groupId>com.google.api</groupId>
<artifactId>gax</artifactId>
<version>2.18.3</version>
</dependency>
</dependencies>
</project>