Skip to content

Commit 8fe4963

Browse files
Enables more tests, including server level tests with Jetty (#154)
* Add WEB-INF/temp to gitignore * Set up a way to run tests dependent on WEB-INF directory structure * Migrate SgtMap tests to JUnit Note many of the images showed small differences from old tests due to fonts. I added a new tag that's just informative that these tests are font dependent (the images I'm adding pass on my machine- there might be issues on different machines). * Migrate some more tests to JUnit New tag RequiresContent for tests that are relying on the content/setup.xml, I still need to find a way to make those tests not require manual setup. * migrate more tests, add support for skipping setup.xml validation Skipping the setup.xml validation allows additional tests that don't rely on those values * Remove lastmodified column from the file visitor tests Last modified is difficult to have consistent across machines (and even on the same machine). * New load datasets using xml fragments approach and helper class for that. Also migrate EDDGridFromDap to JUnit. Sadly most tests are reliant on datasets from THREDDS, so they still aren't running. The plan to fix that is one of: mock THREDDS responses, local files for those datasets, or different datasets. * Add support for generating test code coverage (based on JUnit tests) * Migrate tests for cohort/array, cohort/util * Migrate TestUtil and DataStream to JUnit * Migrate a large collection of tests to junit * Move resources to not included in git Planning to transition to downloading the test resource files. * Migrate more code to junit, update test resources for a plan to handle large files Also moves some files to a new scripts folder that is for code designed to be run manually that is not part of the main server. * Another set of tests migrated to junit * More test migrations Also update image all comparisons to use resource paths. * Split up test resource files, Mark Flaky tests, split off very large files This is to make the folders small enough they can be zipped under 2gb and served from a git release * New approach for maven downloading files (using the maven-download-plugin now) Also adding flaky annotations for tests that failed (several of them I believe failed due to things like file last modified timestamp being different). * Update EDDGridFromDapTests.java * Change when test resources are downloaded Add the flaky annotation to several more tests. * Improve netcdf loading for a fresh install, one more flaky tag * More changes to eliminate reliance on specific hardcoded paths Also fix a couple hardcoded dataset ids to use suggested ids. * Centralize code for test initialization. Also set tests to use SansSerif for tests. Tests are now using SansSerif because it is always available in java distributions and so it eliminates one more step needed for developer setup. * For setups without fonts installed, any use of EDStatic also needs the font setup * Add 2024 to the FileVisitorDNLS gpcp test * Re-add download of content * Set file separators to forward slash * Update FileVisitorSubdirTests for path slash changes * Update warsourceExcludes for new folders * fix HashDigestTests path * Fix some jUnit tests on Linux (#7) * Fix some jUnit tests on Linux Fix many path related and other issues with jUnit tests on Linux. Note that these changes don't yet make every test pass, there are still issues with font differences in image generation, non-portable performance checks, and a handful of other differences. * Fix watch directory tests on windows While linux may not send the modify events on deletion or the directory event, windows does * Disable the display in browser, it causes tests to pause * Have the path regex work for both windows and linux * Fix the forwardSlashDir utility function This is only used in one spot, so should be safe to modify. Also it was previously checking if the string started with a / and if not, adding a slash to the end of it. * Fix some of the EDDGridFromNcFilesTests on Linux The wording of FileNotFoundException differs, so just make sure its that kind of exception. Mark testNcml flaky (for now), and fix the capitilzation of testGridNThreads for systems that are sensitive to that. * Disable the performance part of persistentTableTests for now * Change to using a temp dir for eddtablefromhttpgettests --------- Co-authored-by: Chris John <chris.john@noaa.gov> * Clean up no longer used unitTestDataDir (and big version) * Add a tag for imageComparison tests. Add some explanation for image comparison tests to the readme. * Mark a few tests as flaky due to differences on different OS. Also remove the performance checks in a couple spots. * Don't start the email thread if we're testing * Fix the regexfilename tests that look for java files Recent pom changes mean the java files aren't copied over to the build outputs * Fix the EDDTests to use the values in the Jetty setup.xml * Simplify the changes when running in a test environment * Re-add the ability for tests to skip defered loading * Remove Flaky tag from several file visitor tests * Have directory_strlen work cross platform * Because file selection for attributes is based on OS lastModified and there's discepencies on how OSes handle that field, different files can be selected for the attributes of a dataset. Update some tests that were running into this with pulling some attributes from the loaded data instead of fully hardcoded. * Fix a handful of flaky tests The main changes are to remove comparisons on last modified time There's a couple other small changes as well (sorting results in a few tests to make sure the lines are always in the same order for example) * Remove TagFlaky from tests that are fixed or currently seem to be working Some of them were external servers that had previously temporarily been unavailable. * Fix attributes for test1d * First version of running a test that requires local erddap using jetty * Enable more local erddap tests using jetty * Generate a datasets file to use with jetty in tests that contains all of the test datasets * Migrate additional tests to Jetty Fix some flaky tests * Make some tests more resilient to minor changes in data (use regex to not test some numbers). * Enable some additional tests (SOS, Thredds, wms) * Add initialization to EDDTableFromFilesTests * Enable more tests Get several local ERDDAP/Jetty tests working. Change some tests from discontinued thredds datasets to new datasets and turn them on. * New tests to cover gaps (metadata, sitemap, interpolate) * Format EDDTestDataset * Add test to make sure aggregaterows uses range from all inputs * Test for esriAscii also format EDDGridTests and EDDTableAggregateRowsTests * Enabling additional tests As well as decrease flakiness of some existing tests. * Add support for mismatched slashses to fileVisitor reduceDnlsTableToOneDir * Add support for file separator mismatches while using files functionality Enable an additional Jetty Test * More changes to make tests more stable and pass cross platform * More test changes to reduce flakiness * Migrating some of the code not used by ERDDAP into separate directories Possibly should delete this, but want to keep it until that's confirmed * Remove jdom from repo All tests still pass, should get additional confirmation on geotiff writer before release * Archive additional code Mostly dods/servers, dods/servlets. Also some additional files that were used with Browsers. * Remove several datasets that fail to load from the Jetty tests datasets file Also reduce the load wait time to 10 minutes. * Fix filename filter test after code was archived * Better testing geotiff --------- Co-authored-by: Shane St Savage <shane@axds.co> Co-authored-by: Shane St Savage <shane@axiomdatascience.com>
1 parent 53d59ae commit 8fe4963

File tree

389 files changed

+57628
-69720
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

389 files changed

+57628
-69720
lines changed

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,3 +17,6 @@ Thumbs.db
1717
.project
1818
src/test/resources/
1919
.idea
20+
development/test/datasets.xml
21+
development/test/datasets.xml*
22+
missingImage.txt

WEB-INF/classes/gov/noaa/pfel/coastwatch/TestAll.java

Lines changed: 0 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
package gov.noaa.pfel.coastwatch;
66

77
import com.cohort.array.*;
8-
import com.cohort.ema.*;
98
import com.cohort.util.*;
109

1110
import gov.noaa.pfel.coastwatch.*;
@@ -827,21 +826,11 @@ public static void main(String args[]) throws Throwable {
827826
Attributes att;
828827
AttributedString2 as2;
829828
Boundaries boun;
830-
Browser browser;
831829
ByteArray ba;
832830
Calendar2 calendar2;
833831
CharArray chara;
834832
CompoundColorMap ccm;
835833
CompoundColorMapLayerChild ccmlc;
836-
ContourScreen cons;
837-
CWUser cwUser;
838-
CWBrowser cwBrowser;
839-
//CWBrowserHAB cwBrowserHAB; INACTIVE
840-
//CWBrowserAK cwBrowserAK; INACTIVE
841-
//CWBrowserSA cwBrowserSA; INACTIVE
842-
CWBrowserWW180 cwBrowserWW180;
843-
CWBrowserWW360 cwBrowserWW360;
844-
CWDataBrowser cwDataBrowser;
845834
dods.dap.DConnect dConnect;
846835
dods.dap.DFloat64 dFloat64;
847836
dods.dap.DInt16 dInt16;
@@ -853,45 +842,31 @@ public static void main(String args[]) throws Throwable {
853842
dods.dap.DSequence dseq;
854843
DoubleArray doublea;
855844
EDDTableFromAllDatasets etfad;
856-
EmaAttribute ea;
857-
EmaClass ec;
858-
EmaColor ecolor;
859845
File2 f2;
860846
FileNameUtility fnu;
861847
FileVisitorDNLS fvdnls;
862848
FileVisitorSubdir fvsd;
863849
FilledMarkerRenderer fmr;
864850
FloatArray floata;
865-
GDateTime gdt;
866851
GenerateThreddsXml gtx;
867852
GraphDataLayer gdl;
868853
Grid grid;
869-
GridDataSet gds;
870-
GridDataSetAnomaly gdsa;
871-
GridDataSetOpendap gdso;
872-
GridDataSetThredds gdst;
873-
GridScreen gs;
874854
GSHHS gshhs;
875855
HashDigest hd;
876856
Image2 i2;
877857
IntArray inta;
878858
JSONObject jo;
879859
org.json.JSONTokener jt;
880860
LongArray la;
881-
MapScreen mapScreen;
882861
Math2 m2;
883862
Matlab matlab;
884863
MustBe mb;
885864
NcHelper ncHelper;
886865
NetCheck netCheck;
887-
OneOf oneOf;
888866
OpendapHelper opendapHelper;
889867
PAOne paOne;
890-
ParseJSON parseJSON;
891868
PauseTest pt;
892869
PlainAxis2 sgtpa2;
893-
PointScreen ps;
894-
PointVectorScreen pvs;
895870
PrimitiveArray primitiveArray;
896871
RegexFilenameFilter rff;
897872
ResourceBundle2 rb2;
@@ -902,7 +877,6 @@ public static void main(String args[]) throws Throwable {
902877
SgtGraph sgtGraph;
903878
SgtMap sgtMap;
904879
SgtUtil sgtUtil;
905-
Shared shared;
906880
gov.noaa.pfel.coastwatch.sgt.PathCartesianRenderer sgtptcr;
907881
gov.noaa.pmel.sgt.AnnotationCartesianRenderer sgtacr;
908882
gov.noaa.pmel.sgt.AxisTransform sgtat;
@@ -965,15 +939,13 @@ public static void main(String args[]) throws Throwable {
965939
Tally tally;
966940
Test test;
967941
Touch touch;
968-
TrajectoryScreen trajs;
969942
UByteArray uba;
970943
UIntArray uia;
971944
ULongArray ula;
972945
Units2 u2;
973946
UShortArray usa;
974947
gov.noaa.pmel.sgt.VectorCartesianRenderer vcr;
975948
VectorPointsRenderer vpr;
976-
VectorScreen vs;
977949
WatchDirectory wdir;
978950
XML xml;
979951

@@ -1042,7 +1014,6 @@ public static void main(String args[]) throws Throwable {
10421014
Erddap erddap;
10431015
ErddapRedirect erddapRedirect;
10441016
FindDuplicateTime findDuplicateTime;
1045-
FishBase fb;
10461017
GenerateDatasetsXml gdx;
10471018
GridDataAccessor gda;
10481019
GridDataAllAccessor gdaacc;
@@ -1057,7 +1028,6 @@ public static void main(String args[]) throws Throwable {
10571028
OutputStreamFromHttpResponseViaAwsS3 osfhrvas;
10581029
OutputStreamViaAwsS3 osvas;
10591030
PersistentTable pert;
1060-
Projects2 proj2;
10611031
RunLoadDatasets rld;
10621032

10631033
Subscriptions sub;
Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,96 @@
1+
# TimePeriods.properties contains information needed for FileNameUtility.
2+
# Properties files have info in the form: name = value
3+
# Spaces before and after the "=" are ignored.
4+
# Backslash, \, can be used at the end of a line in a .properties
5+
# file to indicate that the logical line is continued on the next physical line.
6+
# The formfeed character, \f, is also often used as a separator.
7+
# Sometimes the left single quote character, `, is used as a lower-level separator
8+
# when a tab might be used in a Unix document. But tabs are hard to work with
9+
# since you can't actually see them.
10+
# Lines starting with "#" are comments.
11+
12+
# *****************************************************************************
13+
14+
### The rest of the file contains keys/values for EmaAttributes
15+
### which are members of this class and related information used by CWBrowser.
16+
17+
# Info for the 'Region' option on the Map screen
18+
# Regions must be from large -> small areas so image map can detect small areas
19+
# which are within larger areas.
20+
region.options = \
21+
US+Mexico\f\
22+
West US\f\
23+
N\f\
24+
N1\f\
25+
N2\f\
26+
N3\f\
27+
C\f\
28+
C1\f\
29+
C2\f\
30+
C3\f\
31+
AN\f\
32+
BB\f\
33+
GG\f\
34+
MB\f\
35+
SF\f\
36+
S\f\
37+
S1\f\
38+
S2\f\
39+
M\f\
40+
M1\f\
41+
M2
42+
43+
# For each region above, define a title for its radio button.
44+
region.title = You can describe a custom region at left, or select one of the pre-defined regions here or by clicking on the map at right.\f\
45+
US+Mexico: Click here to view a map of the entire U.S. west coast and most of the west coast of Mexico.\f\
46+
West US: Click here to view a map of the entire U.S. west coast.\f\
47+
N: Click here to view a map of the Washington and Oregon coast; NANOOS (Northwest Association of Networked Ocean Observing Systems).\f\
48+
N1: Click here to view a map of the Washington coast (northern part of NANOOS: NW01).\f\
49+
N2: Click here to view a map of the Washington and Oregon coast (central part of NANOOS: NW02).\f\
50+
N3: Click here to view a map of the Oregon coast (southern part of NANOOS: NW03).\f\
51+
C: Click here to view a map of the Northern and central California coast; CeNCOOS (Central California Ocean Observing System).\f\
52+
C1: Click here to view a map of the Northern California coast (northern part of CenCOOS: CW01).\f\
53+
C2: Click here to view a map of the California coast north of S.F. (central part of CenCOOS:CW02).\f\
54+
C3: Click here to view a map of the California coast just south of S.F. (southern part of CenCOOS: CW03).\f\
55+
AN: Click here to view a map of Ano Nuevo.\f\
56+
BB: Click here to view a map of Bodega Bay.\f\
57+
GG: Click here to view a map of west of the Golden Gate Bridge.\f\
58+
MB: Click here to view a map of the Monterey Bay.\f\
59+
SF: Click here to view a map of the San Francisco Bay.\f\
60+
S: Click here to view a map of the Southern California coast; SCCOOS (Southern California Coastal Ocean Observing System).\f\
61+
S1: Click here to view a map of the California coast just north of L.A. (northern part of SCCOOS: SW01).\f\
62+
S2: Click here to view a map of the California coast south of L.A. (southern part of SCCOOS: SW02).\f\
63+
M: Click here to view a map of the Northern and central west coast of Mexico.\f\
64+
M1: Click here to view a map of the Northern west coast of Mexico.\f\
65+
M2: Click here to view a map of the Central west coast of Mexico.
66+
67+
# For each region above, define the range
68+
# Items: rectangleARGBColor, minX, maxX, minY, maxY, LabelLeftX, LabelBottomY, labelText
69+
# x,y are lower left lon and lat in decimal degrees.
70+
# Another good color is orange: ffcc00
71+
# The first range determines the range of the coastline boundaries which are
72+
# pre-loaded; so the first range must encompass all other ranges.
73+
regionInfo = \
74+
0x00FFFFFF, -135, -105, 22, 51, -131, 25, US+Mexico\f\
75+
0x306666CC, -135, -113, 29, 51, -133, 31, West US\f\
76+
0x30ff00ff, -131, -122, 41, 51, -129.75, 46, N\f\
77+
0x30ff00ff, -126, -122.5, 46.5, 51, -128, 47.75, N1\f\
78+
0x30ff00ff, -126.5, -123.5, 44.5, 47.5, -126.5, 45.75, N2\f\
79+
0x30ff00ff, -127.5, -124, 42, 45.5, -127, 43, N3\f\
80+
0x300000ff, -129.5, -120.5, 33.5, 42.5, -128, 37, C\f\
81+
0x300000ff, -126.5, -123, 38.5, 42, -126.5, 39.5, C1\f\
82+
0x300000ff, -125, -121, 35, 39, -125.25, 36.5, C2\f\
83+
0x300000ff, -123, -120, 34, 37, -124, 35, C3\f\
84+
0x300000ff, -123.3, -122, 36.5, 37.8, -122.5, 36.75, AN\f\
85+
0x300000ff, -123.85,-122.8, 37.75,38.5, -122.75, 38, BB\f\
86+
0x300000ff, -123.5, -122.15,36.95,38.05,-124, 37.5, GG\f\
87+
0x300000ff, -123.1, -121.6, 35.9, 37.4, -121.5, 36.25, MB\f\
88+
0x300000ff, -122.47,-122.3, 37.8, 37.95,-121.75, 37.25, SF\f\
89+
0x3000ffff, -125, -116.5, 29, 35, -123.25, 30, S\f\
90+
0x3000ffff, -122, -119, 32, 35, -122, 32.5, S1\f\
91+
0x3000ffff, -119.5, -116.5, 31.5, 34.5, -119.75, 31.5, S2\f\
92+
0x3000ff00, -120, -105, 22, 33, -118.75, 23, M\f\
93+
0x3000ff00, -118, -110, 27, 32, -117.75, 28, M1\f\
94+
0x3000ff00, -116, -105, 22, 28, -115, 23, M2
95+
96+
### end of file

WEB-INF/classes/gov/noaa/pfel/coastwatch/griddata/Grid.java

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -57,12 +57,6 @@
5757
*/
5858
public class Grid {
5959

60-
//ensure org.jdom.Content is compiled --
61-
//GeotiffWriter needs it, but it isn't called directly so
62-
//it isn't automatically compiled.
63-
private org.jdom.Content content;
64-
65-
6660
/** A 1D array, column by column, from the lower left (the way SGT wants it).
6761
Missing values are stored as NaN's.
6862
Note that this could/should be a PrimitiveArray (to conserve memory), but

WEB-INF/classes/gov/noaa/pfel/coastwatch/griddata/GridSaveAs.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ public class GridSaveAs {
2929
*/
3030
public static void main(String args[]) throws Exception {
3131
//Grid.verbose = true;
32-
Grid.davesSaveAs(args, new FileNameUtility("gov.noaa.pfel.coastwatch.CWBrowser"));
32+
Grid.davesSaveAs(args, new FileNameUtility("gov.noaa.pfel.coastwatch.TimePeriods"));
3333

3434
}
3535

WEB-INF/classes/gov/noaa/pfel/coastwatch/util/FileVisitorDNLS.java

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import com.cohort.array.Attributes;
88
import com.cohort.array.DoubleArray;
99
import com.cohort.array.LongArray;
10+
import com.cohort.array.PrimitiveArray;
1011
import com.cohort.array.StringArray;
1112
import com.cohort.util.Calendar2;
1213
import com.cohort.util.File2;
@@ -2396,12 +2397,16 @@ public static void reduceDnlsTableToOneDir(Table dnlsTable, String oneDir, HashS
23962397
if (nRows == 0)
23972398
return;
23982399
char separator = oneDir.indexOf('\\') >= 0? '\\' : '/';
2400+
char unusedSeparator = oneDir.indexOf('\\') >= 0? '/' : '\\';
2401+
oneDir = oneDir.replace(unusedSeparator, separator);
23992402
StringArray dirSA = (StringArray)dnlsTable.getColumn(0);
24002403
StringArray nameSA = (StringArray)dnlsTable.getColumn(1);
24012404
int oneDirLength = oneDir.length();
24022405
BitSet keep = new BitSet(nRows); //all false
24032406
for (int row = 0; row < nRows; row++) {
24042407
String tDir = dirSA.get(row);
2408+
// Make sure the separator in tDir matches the separator used in oneDir.
2409+
tDir = tDir.replace(unusedSeparator, separator);
24052410
if (tDir.startsWith(oneDir)) {
24062411
if (tDir.length() == oneDirLength) {
24072412
if (nameSA.get(row).length() > 0)
@@ -2417,6 +2422,25 @@ public static void reduceDnlsTableToOneDir(Table dnlsTable, String oneDir, HashS
24172422
//String2.log(">> reduceDnlsTabletoOneDir nRows=" + dnlsTable.nRows() + " nSubdir=" + subdirHash.size());
24182423
}
24192424

2425+
public static int indexOfDirectory(PrimitiveArray directories, String toMatch) {
2426+
int dirIndex = directories.indexOf(toMatch);
2427+
if (dirIndex >= 0) {
2428+
return dirIndex;
2429+
}
2430+
char separator = toMatch.indexOf('\\') >= 0? '\\' : '/';
2431+
char unusedSeparator = toMatch.indexOf('\\') >= 0? '/' : '\\';
2432+
toMatch = toMatch.replace(unusedSeparator, separator);
2433+
2434+
for (int row = 0; row < directories.size(); row++) {
2435+
String dir = directories.getString(row);
2436+
dir = dir.replace(unusedSeparator, separator);
2437+
if (toMatch.equals(dir)) {
2438+
dirIndex = row;
2439+
}
2440+
}
2441+
return dirIndex;
2442+
}
2443+
24202444
/**
24212445
* This is used for testing this class.
24222446
* This is used when called from the command line.

WEB-INF/classes/gov/noaa/pfel/coastwatch/util/SSR.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -254,7 +254,7 @@ public static String getFirstLineMatching(String fileName, String charset, Strin
254254
*/
255255
public static ArrayList dosOrCShell(String commandLine, int timeOutSeconds) throws Exception {
256256
if (String2.OSIsWindows) {
257-
commandLine = String2.replaceAll(commandLine, "/", "\\");
257+
// commandLine = String2.replaceAll(commandLine, "/", "\\");
258258
return dosShell(commandLine, timeOutSeconds);
259259
} else {
260260
return cShell( commandLine, timeOutSeconds);

WEB-INF/classes/gov/noaa/pfel/erddap/dataset/EDDGrid.java

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -323,11 +323,6 @@ public abstract class EDDGrid extends EDD {
323323

324324
}
325325

326-
//ensure org.jdom.Content is compiled --
327-
//GeotiffWriter needs it, but it isn't called directly so
328-
//it isn't automatically compiled.
329-
private static org.jdom.Content orgJdomContent;
330-
331326
//the diagnostic tests change this just for testing
332327
static int tableWriterNBufferRows = 100000;
333328

WEB-INF/classes/gov/noaa/pfel/erddap/dataset/EDDGridFromFiles.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1983,7 +1983,7 @@ public String accessibleViaFilesGetLocal(int language, String relativeFileName)
19831983
Table dirTable = getDirTable(); //no need to get copy since not changing it
19841984
Table fileTable = getFileTable(); //no need to get copy since not changing it
19851985
PrimitiveArray dirNames = dirTable.getColumn(0); //the only column
1986-
int dirIndex = dirNames.indexOf(localDir);
1986+
int dirIndex = FileVisitorDNLS.indexOfDirectory(dirNames, localDir);
19871987
if (dirIndex < 0) {
19881988
String2.log(msg + "localDir=" + localDir + " not in dirTable.");
19891989
return null;

WEB-INF/classes/gov/noaa/pfel/erddap/dataset/EDDTableFromFileNames.java

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
package gov.noaa.pfel.erddap.dataset;
66

77
import com.cohort.array.Attributes;
8-
import com.cohort.array.ByteArray;
98
import com.cohort.array.DoubleArray;
109
import com.cohort.array.LongArray;
1110
import com.cohort.array.PAOne;
@@ -28,27 +27,17 @@
2827
import gov.noaa.pfel.coastwatch.util.SSR;
2928

3029
import gov.noaa.pfel.erddap.Erddap;
31-
import gov.noaa.pfel.erddap.GenerateDatasetsXml;
3230
import gov.noaa.pfel.erddap.util.EDStatic;
3331
import gov.noaa.pfel.erddap.variable.*;
3432

35-
import java.io.ByteArrayInputStream;
36-
import java.io.ByteArrayOutputStream;
37-
import java.io.FileWriter;
38-
import java.io.StringWriter;
3933
import java.util.ArrayList;
4034
import java.util.Arrays;
4135
import java.util.BitSet;
42-
import java.util.Enumeration;
43-
import java.util.GregorianCalendar;
4436
import java.util.HashMap;
4537
import java.util.HashSet;
4638
import java.util.regex.Matcher;
4739
import java.util.regex.Pattern;
4840

49-
//import org.apache.commons.jexl3.introspection.JexlSandbox;
50-
import org.apache.commons.jexl3.JexlScript;
51-
import org.apache.commons.jexl3.MapContext;
5241

5342
/**
5443
* This class represents a table of file names.

0 commit comments

Comments
 (0)