From e69f5b251cae509c1fc0c2b0a024d1a66cab3258 Mon Sep 17 00:00:00 2001 From: haileyajohnson Date: Mon, 16 Oct 2023 08:46:04 -0700 Subject: [PATCH 01/18] upgrade json lib --- tds-platform/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tds-platform/build.gradle b/tds-platform/build.gradle index 60226a7bb6..b413249d94 100644 --- a/tds-platform/build.gradle +++ b/tds-platform/build.gradle @@ -80,7 +80,7 @@ dependencies { runtime 'org.apache.logging.log4j:log4j-web' // tds - api 'org.json:json:20230227' + api 'org.json:json:20231013' api 'com.coverity.security:coverity-escapers:1.1.1' api 'org.thymeleaf:thymeleaf-spring5:3.1.2.RELEASE' api 'jakarta.validation:jakarta.validation-api' From 14414dbde924dfe8cd8907a04ea12e5126640937 Mon Sep 17 00:00:00 2001 From: Tara Drwenski Date: Thu, 12 Oct 2023 14:51:17 -0600 Subject: [PATCH 02/18] Revert creating threddsIso integration tests. Revert "Update tests to skip comparing dates in output" This reverts commit 30e22a418bf5a1cae6109f42125221fe44e42e13. Revert "Rename test and package" This reverts commit f54667e19e5163e73594bca44ffd9d78d4e11ef0. Revert "Add ncml, iso, and uddc service tests" This reverts commit 6d0f6015d86cc2dc55d80a8e21085c28702458f6. --- .../threddsIso/TestThreddsIsoServices.java | 52 -- .../server/threddsIso/testgrid1.iso.xml | 152 ---- .../server/threddsIso/testgrid1.ncml.xml | 27 - .../server/threddsIso/testgrid1.uddc.html | 719 ------------------ 4 files changed, 950 deletions(-) delete mode 100644 tds/src/integrationTests/java/thredds/server/threddsIso/TestThreddsIsoServices.java delete mode 100644 tds/src/integrationTests/resources/thredds/server/threddsIso/testgrid1.iso.xml delete mode 100644 tds/src/integrationTests/resources/thredds/server/threddsIso/testgrid1.ncml.xml delete mode 100644 tds/src/integrationTests/resources/thredds/server/threddsIso/testgrid1.uddc.html diff --git a/tds/src/integrationTests/java/thredds/server/threddsIso/TestThreddsIsoServices.java b/tds/src/integrationTests/java/thredds/server/threddsIso/TestThreddsIsoServices.java deleted file mode 100644 index 89d7f4f8d9..0000000000 --- a/tds/src/integrationTests/java/thredds/server/threddsIso/TestThreddsIsoServices.java +++ /dev/null @@ -1,52 +0,0 @@ -package thredds.server.threddsIso; - -import static com.google.common.truth.Truth.assertWithMessage; - -import javax.servlet.http.HttpServletResponse; -import org.junit.Test; -import org.w3c.dom.Node; -import org.xmlunit.builder.DiffBuilder; -import org.xmlunit.builder.Input; -import org.xmlunit.diff.Diff; -import org.xmlunit.util.Predicate; -import thredds.test.util.TestOnLocalServer; -import thredds.util.ContentType; - -public class TestThreddsIsoServices { - @Test - public void shouldReturnNcml() { - final String path = "ncml/scanLocal/testgrid1.nc"; - final String expectedOutput = "testgrid1.ncml.xml"; - final Predicate filter = node -> !(node.hasAttributes() && node.getAttributes().getNamedItem("name") != null - && node.getAttributes().getNamedItem("name").getNodeValue().equals("metadata_creation")); - compare(path, expectedOutput, ContentType.xml, filter); - } - - @Test - public void shouldReturnIso() { - final String path = "iso/scanLocal/testgrid1.nc"; - final String expectedOutput = "testgrid1.iso.xml"; - final Predicate filter = - node -> !node.getTextContent().startsWith("This record was translated from NcML using") - && !node.getNodeName().startsWith("gco:Date"); - compare(path, expectedOutput, ContentType.xml, filter); - } - - @Test - public void shouldReturnUddc() { - final String path = "uddc/scanLocal/testgrid1.nc"; - final String expectedOutput = "testgrid1.uddc.html"; - compare(path, expectedOutput, ContentType.html, node -> true); - } - - private void compare(String path, String expectedOutputFilename, ContentType expectedType, Predicate filter) { - final String endpoint = TestOnLocalServer.withHttpPath(path); - final byte[] response = TestOnLocalServer.getContent(endpoint, HttpServletResponse.SC_OK, expectedType); - - final Diff diff = DiffBuilder.compare(Input.fromStream(getClass().getResourceAsStream(expectedOutputFilename))) - .withTest(Input.fromByteArray(response)).ignoreComments().normalizeWhitespace() - // don't compare elements with e.g. version/ current datetime - .withNodeFilter(filter).build(); - assertWithMessage(diff.toString()).that(diff.hasDifferences()).isFalse(); - } -} diff --git a/tds/src/integrationTests/resources/thredds/server/threddsIso/testgrid1.iso.xml b/tds/src/integrationTests/resources/thredds/server/threddsIso/testgrid1.iso.xml deleted file mode 100644 index 85f270d2a3..0000000000 --- a/tds/src/integrationTests/resources/thredds/server/threddsIso/testgrid1.iso.xml +++ /dev/null @@ -1,152 +0,0 @@ - - - - - eng - - - UTF8 - - - dataset - - - - 2023-09-20 - - - ISO 19115-2 Geographic Information - Metadata Part 2 Extensions for imagery and gridded data - - - ISO 19115-2:2009(E) - - - - - - - - - - - - - - - eng - - - climatologyMeteorologyAtmosphere - - - - - - - 1 - - - -15.0 - - - -1.0 - - - 17.0 - - - 23.0 - - - - - - - - - - - - - - - - - var - - - - - double - - - - - - - - - - - - - - lat - - - - - float - - - - - - - - - - - - - - lon - - - - - float - - - - - - - - - - - - - - - This record was translated from NcML using UnidataDD2MI.xsl Version 2.3.4. (2023-09-20T09:43:59.594-06:00) - - - - diff --git a/tds/src/integrationTests/resources/thredds/server/threddsIso/testgrid1.ncml.xml b/tds/src/integrationTests/resources/thredds/server/threddsIso/testgrid1.ncml.xml deleted file mode 100644 index e92c4ebf09..0000000000 --- a/tds/src/integrationTests/resources/thredds/server/threddsIso/testgrid1.ncml.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tds/src/integrationTests/resources/thredds/server/threddsIso/testgrid1.uddc.html b/tds/src/integrationTests/resources/thredds/server/threddsIso/testgrid1.uddc.html deleted file mode 100644 index d088889a39..0000000000 --- a/tds/src/integrationTests/resources/thredds/server/threddsIso/testgrid1.uddc.html +++ /dev/null @@ -1,719 +0,0 @@ - - - -

NetCDF Attribute Convention for Dataset Discovery Report

The Unidata Attribute Convention for Data Discovery provides recommendations for netCDF attributes that can be added to netCDF files to -facilitate discovery of those files using standard metadata searches. This tool tests conformance with those recommendations using this stylesheet. More Information on Convention and Tool.

Title:

-

Total Score: 8/46

-

General File Characteristics

- - - - - - - - - - - - - - - - - - - - - -
Number of Global Attributes1
Number of Variables3
Number of Variable Attributes2
Number of Standard Names0
Number of Services0
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
SpiralNone1-33%34-66%67-99%All
- Total - - X - - -
- Identification - X - - - -
- Text Search - X - - - -
- Extent Search - - - X - -
- Other Extent Information - - - X - -
- Creator Search - X - - - -
- Contributor Search - X - - - -
- Publisher Search - X - - - -
- Other Attributes - X - - - -
-Identification | Text Search | Extent Search | Other Extent Information | Creator Search | Contributor Search | Publisher Search | Other Attributes - -

Identification / Metadata Reference Score: 0/4

-

As metadata are shared between national and international repositories it is becoming increasing important to be able to unambiguously identify and refer to specific records. This is facilitated by including an identifier in - the metadata. Some mechanism must exist for ensuring that these identifiers are unique. This is accomplished by specifying the naming authority or namespace for the identifier. It is the responsibility of the manager of the - namespace to ensure that the identifiers in that namespace are unique. Identifying the Metadata Convention being used in the file and providing a link to more complete metadata, possibly using a different convention, are - also important.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ScoreAttributeDescriptionTHREDDSISO 19115-2
0 - id -
-
The combination of the "naming authority" and the "id" should be a globally unique identifier for the dataset.
-
dataset@id/gmi:MI_Metadata/gmd:fileIdentifier/gco:CharacterString
-
0 - naming_authority -
-
- /gmi:MI_Metadata/gmd:fileIdentifier/gco:CharacterString
-
0Metadata_ConventionsThis attribute should be set to "Unidata Dataset Discovery v1.0" for NetCDF files that follow this convention. - -
0Metadata_Link or metadata_linkThis attribute provides a link to a complete metadata record for this dataset or the collection that contains this dataset. This attribute is not included in Version 1 of the Unidata Attribute - Convention for Data Discovery. It is recommended here because a complete metadata collection for a dataset will likely contain more information than can be included in granule formats. This attribute contains a - link to that information. - - -
-
Identification | Text Search | Extent Search | Other Extent Information | Creator Search | Contributor Search | Publisher Search | Other Attributes - -

Text Search Score: 0/7

-

Text searches are a very important mechanism for data discovery. This group includes attributes that contain descriptive text that could be the target of these searches. Some of these attributes, for example title and - summary, might also be displayed in the results of text searches.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ScoreAttributeDescriptionTHREDDSISO 19115-2
0 - title -
-
A short description of the dataset.
-
dataset@name
-
/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:citation/gmd:CI_Citation/gmd:title/gco:CharacterString
-
0 - summary -
-
A paragraph describing the dataset.
-
metadata/documentation[@type="summary"]
-
/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:abstract/gco:CharacterString
-
0 - keywords -
-
A comma separated list of key words and phrases.
-
metadata/keyword
-
/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:descriptiveKeywords/gmd:MD_Keywords/gmd:keyword/gco:CharacterString
-
0 - keywords_vocabulary -
-
If you are following a guideline for the words/phrases in your "keywords" attribute, put the name of that guideline here.
-
metadata/keyword@vocabulary/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:descriptiveKeywords/gmd:MD_Keywords/gmd:thesaurusName/gmd:CI_Citation/gmd:title/gco:CharacterString
-
0 - standard_name_vocabulary -
-
The name of the controlled vocabulary from which variable standard names are taken.
-
metadata/variables@vocabulary/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:descriptiveKeywords/gmd:MD_Keywords/gmd:thesaurusName/gmd:CI_Citation/gmd:title/gco:CharacterString
-
0 - history -
-
Provides an audit trail for modifications to the original data. - /gmi:MI_Metadata/gmd:dataQualityInfo/gmd:DQ_DataQuality/gmd:lineage/gmd:LI_Lineage/gmd:statement/gco:CharacterString
0 - comment -
-
Miscellaneous information about the data.metadata/documentation
-
/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:supplementalInformation
-
-
Identification | Text Search | Extent Search | Other Extent Information | Creator Search | Contributor Search | Publisher Search | Other Attributes - -

Extent Search Score: 4/8

-

This basic extent information supports spatial/temporal searches that are increasingly important as the number of map based search interfaces increases. Many of the attributes included in this spiral can be calculated from - the data if the file is compliant with the NetCDF Climate and Forecast (CF) Metadata Convention.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ScoreAttributeDescriptionTHREDDSISO 19115-2
1 - geospatial_lat_min -
-
Describes a simple latitude, longitude, vertical and temporal bounding box. For a more detailed geospatial coverage, see the suggested geospatial attributes.
Further refinement of the geospatial bounding box can - be provided by using these units and resolution attributes.
-
- Many of these extent attributes are calculated using the CF-Conventions. -
metadata/geospatialCoverage/northsouth/start
-
/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:extent/gmd:EX_Extent/gmd:geographicElement/gmd:EX_GeographicBoundingBox/gmd:southBoundLatitude/gco:Decimal
-
1 - geospatial_lat_max - metadata/geospatialCoverage/northsouth/size/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:extent/gmd:EX_Extent/gmd:geographicElement/gmd:EX_GeographicBoundingBox/gmd:northBoundLatitude/gco:Decimal
-
1 - geospatial_lon_min - metadata/geospatialCoverage/eastwest/start/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:extent/gmd:EX_Extent/gmd:geographicElement/gmd:EX_GeographicBoundingBox/gmd:westBoundLongitude/gco:Decimal
-
1 - geospatial_lon_max - metadata/geospatialCoverage/eastwest/size/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:extent/gmd:EX_Extent/gmd:geographicElement/gmd:EX_GeographicBoundingBox/gmd:eastBoundLongitude/gco:Decimal
-
0 - time_coverage_start - metadata/timeCoverage/start/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:extent/gmd:EX_Extent/gmd:temporalElement/gmd:EX_TemporalExtent/gmd:extent/gml:TimePeriod/gml:beginPosition
0 - time_coverage_end - metadata/timeCoverage/end/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:extent/gmd:EX_Extent/gmd:temporalElement/gmd:EX_TemporalExtent/gmd:extent/gml:TimePeriod/gml:endPosition
0 - geospatial_vertical_min -
-
metadata/geospatialCoverage/updown/start/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:extent/gmd:EX_Extent/gmd:verticalElement/gmd:EX_VerticalExtent/gmd:minimumValue/gco:Real
0 - geospatial_vertical_max - metadata/geospatialCoverage/updown/size/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:extent/gmd:EX_Extent/gmd:verticalElement/gmd:EX_VerticalExtent/gmd:maximumValue/gco:Real
-Identification | Text Search | Extent Search | Other Extent Information | Creator Search | Contributor Search | Publisher Search | Other Attributes - -

Other Extent Information Score: 4/10

-

This information provides more details on the extent attributes than the basic information included in the Extent Spiral. Many of the attributes included in this spiral can be calculated from the data if the file is compliant - with the NetCDF Climate and Forecast (CF) Metadata Convention .

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ScoreAttributeDescriptionTHREDDSISO 19115-2
1 - geospatial_lon_units -
-
metadata/geospatialCoverage/eastwest/units/gmi:MI_Metadata/gmd:spatialRepresentationInfo/gmd:MD_Georectified/gmd:axisDimensionProperties/gmd:MD_Dimension/gmd:resolution/gco:Measure/@uom
1 - geospatial_lon_resolution - metadata/geospatialCoverage/eastwest/resolution/gmi:MI_Metadata/gmd:spatialRepresentationInfo/gmd:MD_Georectified/gmd:axisDimensionProperties/gmd:MD_Dimension/gmd:resolution/gco:Measure
1 - geospatial_lat_units -
-
metadata/geospatialCoverage/northsouth/units/gmi:MI_Metadata/gmd:spatialRepresentationInfo/gmd:MD_Georectified/gmd:axisDimensionProperties/gmd:MD_Dimension/gmd:resolution/gco:Measure/@uom
1 - geospatial_lat_resolution - metadata/geospatialCoverage/northsouth/resolution/gmi:MI_Metadata/gmd:spatialRepresentationInfo/gmd:MD_Georectified/gmd:axisDimensionProperties/gmd:MD_Dimension/gmd:resolution/gco:Measure
0 - geospatial_vertical_units -
-
metadata/geospatialCoverage/updown/units/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:extent/gmd:EX_Extent/gmd:verticalElement/gmd:EX_VerticalExtent/gmd:verticalCRS
0 - geospatial_vertical_resolution -
-
metadata/geospatialCoverage/updown/resolution
-
0 - geospatial_vertical_positive -
-
metadata/geospatialCoverage@zpositive
-
0 - time_coverage_units - This attribute is calculated using the CF Conventions/gmi:MI_Metadata/gmd:spatialRepresentationInfo/gmd:MD_GridSpatialRepresentation/gmd:axisDimensionProperties/gmd:MD_Dimension/gmd:resolution/gco:Measure/@uom.
0 - time_coverage_duration - metadata/timeCoverage/duration/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:extent/gmd:EX_Extent/gmd:temporalElement/gmd:EX_TemporalExtent/gmd:extent/gml:TimePeriod/gml:beginPosition provides an ISO8601 - compliant description of the time period covered by the dataset. This standard supports descriptions of durations.
0 - time_coverage_resolution - metadata/timeCoverage/resolution -
-Identification | Text Search | Extent Search | Other Extent Information | Creator Search | Contributor Search | Publisher Search | Other Attributes - -

Creator Search Score: 0/9

-

This group includes attributes that could support searches for people/institutions/projects that are responsible for datasets. This information is also critical for the correct attribution of the people and institutions that - produce datasets.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ScoreAttributeDescriptionTHREDDSISO 19115-2
0 - creator_name -
-
The data creator's name, URL, and email. The "institution" attribute will be used if the "creator_name" attribute does not exist.
-
metadata/creator/name
-
/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:citation/gmd:CI_Citation/gmd:citedResponsibleParty/gmd:CI_ResponsibleParty/gmd:individualName/gco:CharacterString
- CI_RoleCode="originator"
0 - creator_url -
-
metadata/creator/contact@url
-
/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:citation/gmd:CI_Citation/gmd:citedResponsibleParty/gmd:CI_ResponsibleParty/gmd:contactInfo/gmd:CI_Contact/gmd:onlineResource/gmd:CI_OnlineResource/gmd:linkage/gmd:URL
-
0 - creator_email -
-
metadata/creator/contact@email/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:citation/gmd:CI_Citation/gmd:citedResponsibleParty/gmd:CI_ResponsibleParty/gmd:contactInfo/gmd:CI_Contact/gmd:address/gmd:CI_Address/gmd:electronicMailAddress/gco:CharacterString
0 - institution -
-
metadata/creator/name/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:citation/gmd:CI_Citation/gmd:citedResponsibleParty/gmd:CI_ResponsibleParty/gmd:organisationName/gco:CharacterString
0 - date_created - The date on which the data was created.
-
metadata/date[@type="created"]/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:citation/gmd:CI_Citation/gmd:date/gmd:CI_Date/gmd:date/gco:Date
/gmd:dateType/gmd:CI_DateTypeCode="creation"
0 - date_modified -
-
The date on which this data was last modified.
-
metadata/date[@type="modified"]/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:citation/gmd:CI_Citation/gmd:date/gmd:CI_Date/gmd:date/gco:Date
/gmd:dateType/gmd:CI_DateTypeCode="revision"
0 - date_issued -
-
The date on which this data was formally issued.
-
metadata/date[@type="issued"]/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:citation/gmd:CI_Citation/gmd:date/gmd:CI_Date/gmd:date/gco:Date
/gmd:dateType/gmd:CI_DateTypeCode="publication"
0 - project -
-
The scientific project that produced the data.
-
metadata/project
-
/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:aggregationInfo/gmd:MD_AggregateInformation/gmd:aggregateDataSetName/gmd:CI_Citation/gmd:title/gco:CharacterString
- DS_AssociationTypeCode="largerWorkCitation" and DS_InitiativeTypeCode="project"
and/or
- /gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:descriptiveKeywords/gmd:MD_Keywords/gmd:keyword/gco:CharacterString with gmd:MD_KeywordTypeCode="project"
0 - acknowledgment - A place to acknowledge various type of support for the project that produced this data.
-
metadata/documentation[@type="funding"]/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:credit/gco:CharacterString
-
Identification | Text Search | Extent Search | Other Extent Information | Creator Search | Contributor Search | Publisher Search | Other Attributes - -

Contributor Search Score: 0/2

-

This section allows a data provider to include information about those that contribute to a data product in the metadata for the product. This is important for many reasons.

- - - - - - - - - - - - - - - - - - - - - -
ScoreAttributeDescriptionTHREDDSISO 19115-2
0 - contributor_name -
-
The name and role of any individuals or institutions that contributed to the creation of this data.
-
metadata/contributor
-
/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:citation/gmd:CI_Citation/gmd:citedResponsibleParty/gmd:CI_ResponsibleParty/gmd:individualName/gco:CharacterString
-
0 - contributor_role -
-
metadata/contributor@role/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:citation/gmd:CI_Citation/gmd:citedResponsibleParty/gmd:CI_ResponsibleParty/gmd:role/gmd:CI_RoleCode
="principalInvestigator" | - "author"
-
Identification | Text Search | Extent Search | Other Extent Information | Creator Search | Contributor Search | Publisher Search | Other Attributes - -

Publisher Search Score: 0/3

-

This section allows a data provider to include contact information for the publisher of a data product in the metadata for the product.

- - - - - - - - - - - - - - - - - - - - - - - - - - - -
ScoreAttributeDescriptionTHREDDSISO 19115-2
0 - publisher_name -
-
The data publisher's name, URL, and email. The publisher may be an individual or an institution.metadata/publisher/name
-
/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:citation/gmd:CI_Citation/gmd:citedResponsibleParty/gmd:CI_ResponsibleParty/gmd:individualName/gco:CharacterString
- CI_RoleCode="publisher"
and/or
/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:descriptiveKeywords/gmd:MD_Keywords/gmd:keyword/gco:CharacterString with - gmd:MD_KeywordTypeCode="dataCenter"
0 - publisher_url -
-
metadata/publisher/contact@url
-
/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:citation/gmd:CI_Citation/gmd:citedResponsibleParty/gmd:CI_ResponsibleParty/gmd:contactInfo/gmd:CI_Contact/gmd:onlineResource/gmd:CI_OnlineResource/gmd:linkage/gmd:URL
- CI_RoleCode="publisher"
0 - publisher_email -
-
metadata/publisher/contact@email/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:citation/gmd:CI_Citation/gmd:citedResponsibleParty/gmd:CI_ResponsibleParty/gmd:contactInfo/gmd:CI_Contact/gmd:address/gmd:CI_Address/gmd:electronicMailAddress/gco:CharacterString
- CI_RoleCode="publisher"
-
Identification | Text Search | Extent Search | Other Extent Information | Creator Search | Contributor Search | Publisher Search | Other Attributes - -

Other Attributes Score: 0/3

-

This group includes attributes that don't seem to fit in the other categories.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ScoreAttributeDescriptionTHREDDSISO 19115-2
0 - processing_level - A textual description of the processing (or quality control) level of the data.
-
metadata/documentation[@type="processing_level"]
0 - license - Describe the restrictions to data access and distribution. metadata/documentation[@type="rights"]/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:resourceConstraints/gmd:MD_LegalConstraints/gmd:useLimitation/gco:CharacterString
-
0 - cdm_data_type -
-
The THREDDS data type appropriate for this dataset.metadata/dataType/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:spatialRepresentationType/gmd:MD_SpatialRepresentationTypeCode
May need some extensions to this codelist. Current values: - vector, grid, textTable, tin, stereoModel, video.
-
Identification | Text Search | Extent Search | Other Extent Information | Creator Search | Contributor Search | Publisher Search | Other Attributes -
Rubric Version: 2.0
-More Information - From 63a6e124a77bd48071991023429c5a384c21f249 Mon Sep 17 00:00:00 2001 From: Tara Drwenski Date: Thu, 12 Oct 2023 15:19:26 -0600 Subject: [PATCH 03/18] Remove threddsIso xsl files from TDS --- .../classes/resources/xsl/nciso/README.txt | 4 - .../resources/xsl/nciso/UnidataDD2MI.xsl | 1847 ----------------- .../xsl/nciso/UnidataDDCount-HTML.xsl | 1362 ------------ 3 files changed, 3213 deletions(-) delete mode 100644 tds/src/main/webapp/WEB-INF/classes/resources/xsl/nciso/README.txt delete mode 100755 tds/src/main/webapp/WEB-INF/classes/resources/xsl/nciso/UnidataDD2MI.xsl delete mode 100755 tds/src/main/webapp/WEB-INF/classes/resources/xsl/nciso/UnidataDDCount-HTML.xsl diff --git a/tds/src/main/webapp/WEB-INF/classes/resources/xsl/nciso/README.txt b/tds/src/main/webapp/WEB-INF/classes/resources/xsl/nciso/README.txt deleted file mode 100644 index 65f9519d8d..0000000000 --- a/tds/src/main/webapp/WEB-INF/classes/resources/xsl/nciso/README.txt +++ /dev/null @@ -1,4 +0,0 @@ -XSL documents placed here will be found before those in the threddsIso-*.jar file. -E.g.: -- UnidataDD2MI.xsl -- UnidataDDCount-HTML.xsl \ No newline at end of file diff --git a/tds/src/main/webapp/WEB-INF/classes/resources/xsl/nciso/UnidataDD2MI.xsl b/tds/src/main/webapp/WEB-INF/classes/resources/xsl/nciso/UnidataDD2MI.xsl deleted file mode 100755 index dacb43cce0..0000000000 --- a/tds/src/main/webapp/WEB-INF/classes/resources/xsl/nciso/UnidataDD2MI.xsl +++ /dev/null @@ -1,1847 +0,0 @@ - - - - - Recent Modifications - 2015-04-22. v2.3.4. concat naming_authority and id in fileIdentifier; change XSLT version to 1.0. - 2015-02-18. resolution value = missing when not available in NcML. - 2015-01-16. fixed date error to prevent replacement of all spaces (' ') with a 'T' in the dates certain cases. - 2014-11-25. fixed error that was outputting '::' at the end of a date. - 2014-09-24. 1) Change all gmd:protocol entries of "http" to the valid entry of "WWW:LINK". There is no "http" valid in the list of gmd:protocol valids maintained at https://github.com/OSGeo/Cat-Interop/blob/master/LinkPropertyLookupTable2.csv. 2) gmd:protocol was missing from the NCDC climate and weather toolkit. I have added this entry with a value of "WWW:LINK". - 2014-09-05. 1) Adds gmd:protocol elements to all service end points (srv:SV_ServiceIdentification) identifying them as either OPeNDAP:OPeNDAP, UNIDATA:NCSS, OGC:WMS, OGC:WCS, or OGC:SOS--the appropriate valids from this list: https://github.com/OSGeo/Cat-Interop/blob/master/LinkPropertyLookupTable2.csv. 2) Add GCMD Location Keywords from THREDDS catalog metadata: all "geospatialCoverage > name" entries. 3) Adds each "viewer" entry from the THREDDS catalog metadata as an additional gmd:distributorTransferOptions. John Maurer jmaurer@hawaii.edu - 2014-07-24. test for null date and fixed another seconds since.... input. Translates UTC dates to ISO dateTime and 8601 basic dates to 8601 extended. - 2014-07-17. updated dimensionResolution to handle many but not all ISO 8601 durations - 2014-07-16. updated uom units for time to display only seconds or days when includes "days since..." or "seconds since..." text. - 2014-04-19. Changed order to look in CFMetadata group first in *unit variables. Added normalize-space dimensionResolution param to fix vertical units error. - 2012-05-11. 2.3 (slight revision): Changed the attribute name from coverage_type to coverage_content_type to be more correct and directly comparable to ISO.... - May 10, 2012 version 2.3 authored by Ted Habermann - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 8 - - 9 - - - - - - - - - - - - - 9 - - - - - 2 - - - - - - 3 - - - - 14 - - - - - - 3 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ISO 19115-2 Geographic Information - Metadata Part 2 Extensions for imagery and gridded data - - - ISO 19115-2:2009(E) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Unidata Common Data Model - - - - - - - - - - - - - - - - - - - - - - - - - - - - eng - - - climatologyMeteorologyAtmosphere - - - - - - - - - - - - - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OPeNDAP - - - - - - - - - - - - - - - - - - WWW:LINK - - - File Information - - - This URL provides a standard OPeNDAP html interface for selecting data from this dataset. Change the extension to .info for a description of the dataset. - - - download - - - - - - - - - - - - - - - - - - WWW:LINK - - - Viewer Information - - - This URL provides an NCDC climate and weather toolkit view of an OPeNDAP resource. - - - mapDigital - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - WWW:LINK - - - - - - - - - - - - - - - - This URL provides a viewer for this dataset. - - - download - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - This record was translated from NcML using UnidataDD2MI.xsl Version . () - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - : - - : - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - : - - : - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - WWW:LINK - - - web browser - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - missing - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - seconds - days - - - - - - - - - - missing - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - tight - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - download - - - - - - - - - - diff --git a/tds/src/main/webapp/WEB-INF/classes/resources/xsl/nciso/UnidataDDCount-HTML.xsl b/tds/src/main/webapp/WEB-INF/classes/resources/xsl/nciso/UnidataDDCount-HTML.xsl deleted file mode 100755 index b197a14212..0000000000 --- a/tds/src/main/webapp/WEB-INF/classes/resources/xsl/nciso/UnidataDDCount-HTML.xsl +++ /dev/null @@ -1,1362 +0,0 @@ - - - - - Created on: April 14, 2011 - Author:ted.habermann@noaa.gov - Modified on: May 26, 2011 - Author:david.neufeld@noaa.gov - Modified on: October 6, 2011 - Author:ted.habermann@noaa.gov - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - 4 - - - - - - - - - - - - - - X - - - - - - - - X - - - - - - - - X - - - - - - - - X - - - - - - - - X - - - - - - - - - - - - - - 0 - 4 - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 4 - - - - - - - - 5 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 7 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 8 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 10 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 9 - - - - - - - - - - - - - - - 2 - - - - - - - - - - - - - - - - - - - - - 3 - - - 14 - - - - - - - - - - - - - - - - - - - - - 3 - - - - - - - -

NetCDF Attribute Convention for Dataset Discovery Report

- The Unidata Attribute Convention for Data Discovery provides recommendations for netCDF attributes that can be added to netCDF files to - facilitate discovery of those files using standard metadata searches. This tool tests conformance with those recommendations using this stylesheet. More Information on Convention and Tool.

Title: -

-

Total Score: /

-

General File Characteristics

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Number of Global Attributes - -
Number of Variables - -
Number of Variable Attributes - -
Number of Standard Names - -
Number of Services -
Longitude Variable(s) - - - , - ( - , - - :) - -
Latitude Variable - - , - ( - , - - :) -
Time Variable - - - , - ( - , - - :) - -
Vertical Variable - - - , - ( - , - - :) - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
SpiralNone1-33%34-66%67-99%All
- Identification | Text Search | Extent Search | Other Extent Information | Creator Search | Contributor Search | Publisher Search | Other Attributes - -

Identification / Metadata Reference Score: /

-

As metadata are shared between national and international repositories it is becoming increasing important to be able to unambiguously identify and refer to specific records. This is facilitated by including an identifier in - the metadata. Some mechanism must exist for ensuring that these identifiers are unique. This is accomplished by specifying the naming authority or namespace for the identifier. It is the responsibility of the manager of the - namespace to ensure that the identifiers in that namespace are unique. Identifying the Metadata Convention being used in the file and providing a link to more complete metadata, possibly using a different convention, are - also important.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ScoreAttributeDescriptionTHREDDSISO 19115-2
- id -
-
The combination of the "naming authority" and the "id" should be a globally unique identifier for the dataset.
-
dataset@id/gmi:MI_Metadata/gmd:fileIdentifier/gco:CharacterString
- naming_authority -
-
- /gmi:MI_Metadata/gmd:fileIdentifier/gco:CharacterString
Metadata_ConventionsThis attribute should be set to "Unidata Dataset Discovery v1.0" for NetCDF files that follow this convention. - -
Metadata_Link or metadata_linkThis attribute provides a link to a complete metadata record for this dataset or the collection that contains this dataset. This attribute is not included in Version 1 of the Unidata Attribute - Convention for Data Discovery. It is recommended here because a complete metadata collection for a dataset will likely contain more information than can be included in granule formats. This attribute contains a - link to that information. - -
-
Identification | Text Search | Extent Search | Other Extent Information | Creator Search | Contributor Search | Publisher Search | Other Attributes - -

Text Search Score: /

-

Text searches are a very important mechanism for data discovery. This group includes attributes that contain descriptive text that could be the target of these searches. Some of these attributes, for example title and - summary, might also be displayed in the results of text searches.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ScoreAttributeDescriptionTHREDDSISO 19115-2
- title -
-
A short description of the dataset.
dataset@name
/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:citation/gmd:CI_Citation/gmd:title/gco:CharacterString
- summary -
-
A paragraph describing the dataset.
-
metadata/documentation[@type="summary"]
-
/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:abstract/gco:CharacterString
-
- keywords -
-
A comma separated list of key words and phrases.
-
metadata/keyword
-
/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:descriptiveKeywords/gmd:MD_Keywords/gmd:keyword/gco:CharacterString
-
- keywords_vocabulary -
-
If you are following a guideline for the words/phrases in your "keywords" attribute, put the name of that guideline here.
-
metadata/keyword@vocabulary/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:descriptiveKeywords/gmd:MD_Keywords/gmd:thesaurusName/gmd:CI_Citation/gmd:title/gco:CharacterString
-
- standard_name_vocabulary -
-
The name of the controlled vocabulary from which variable standard names are taken.
-
metadata/variables@vocabulary/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:descriptiveKeywords/gmd:MD_Keywords/gmd:thesaurusName/gmd:CI_Citation/gmd:title/gco:CharacterString
- history -
-
Provides an audit trail for modifications to the original data. - /gmi:MI_Metadata/gmd:dataQualityInfo/gmd:DQ_DataQuality/gmd:lineage/gmd:LI_Lineage/gmd:statement/gco:CharacterString
- comment -
-
Miscellaneous information about the data.metadata/documentation
-
/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:supplementalInformation
-
-
Identification | Text Search | Extent Search | Other Extent Information | Creator Search | Contributor Search | Publisher Search | Other Attributes - -

Extent Search Score: /

-

This basic extent information supports spatial/temporal searches that are increasingly important as the number of map based search interfaces increases. Many of the attributes included in this spiral can be calculated from - the data if the file is compliant with the NetCDF Climate and Forecast (CF) Metadata Convention.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ScoreAttributeDescriptionTHREDDSISO 19115-2
- geospatial_lat_min -
-
Describes a simple latitude, longitude, vertical and temporal bounding box. For a more detailed geospatial coverage, see the suggested geospatial attributes.
Further refinement of the geospatial bounding box can - be provided by using these units and resolution attributes.

Many of these extent attributes are calculated using the CF-Conventions. -
metadata/geospatialCoverage/northsouth/start
/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:extent/gmd:EX_Extent/gmd:geographicElement/gmd:EX_GeographicBoundingBox/gmd:southBoundLatitude/gco:Decimal
- geospatial_lat_max - metadata/geospatialCoverage/northsouth/size/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:extent/gmd:EX_Extent/gmd:geographicElement/gmd:EX_GeographicBoundingBox/gmd:northBoundLatitude/gco:Decimal
- geospatial_lon_min - metadata/geospatialCoverage/eastwest/start/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:extent/gmd:EX_Extent/gmd:geographicElement/gmd:EX_GeographicBoundingBox/gmd:westBoundLongitude/gco:Decimal
- geospatial_lon_max - metadata/geospatialCoverage/eastwest/size/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:extent/gmd:EX_Extent/gmd:geographicElement/gmd:EX_GeographicBoundingBox/gmd:eastBoundLongitude/gco:Decimal
- time_coverage_start - metadata/timeCoverage/start/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:extent/gmd:EX_Extent/gmd:temporalElement/gmd:EX_TemporalExtent/gmd:extent/gml:TimePeriod/gml:beginPosition
- time_coverage_end - metadata/timeCoverage/end/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:extent/gmd:EX_Extent/gmd:temporalElement/gmd:EX_TemporalExtent/gmd:extent/gml:TimePeriod/gml:endPosition
- geospatial_vertical_min -
-
metadata/geospatialCoverage/updown/start/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:extent/gmd:EX_Extent/gmd:verticalElement/gmd:EX_VerticalExtent/gmd:minimumValue/gco:Real
- geospatial_vertical_max - metadata/geospatialCoverage/updown/size/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:extent/gmd:EX_Extent/gmd:verticalElement/gmd:EX_VerticalExtent/gmd:maximumValue/gco:Real
- Identification | Text Search | Extent Search | Other Extent Information | Creator Search | Contributor Search | Publisher Search | Other Attributes - -

Other Extent Information Score: /

-

This information provides more details on the extent attributes than the basic information included in the Extent Spiral. Many of the attributes included in this spiral can be calculated from the data if the file is compliant - with the NetCDF Climate and Forecast (CF) Metadata Convention .

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ScoreAttributeDescriptionTHREDDSISO 19115-2
- geospatial_lon_units -
-
metadata/geospatialCoverage/eastwest/units/gmi:MI_Metadata/gmd:spatialRepresentationInfo/gmd:MD_Georectified/gmd:axisDimensionProperties/gmd:MD_Dimension/gmd:resolution/gco:Measure/@uom
- geospatial_lon_resolution - metadata/geospatialCoverage/eastwest/resolution/gmi:MI_Metadata/gmd:spatialRepresentationInfo/gmd:MD_Georectified/gmd:axisDimensionProperties/gmd:MD_Dimension/gmd:resolution/gco:Measure
- geospatial_lat_units -
-
metadata/geospatialCoverage/northsouth/units/gmi:MI_Metadata/gmd:spatialRepresentationInfo/gmd:MD_Georectified/gmd:axisDimensionProperties/gmd:MD_Dimension/gmd:resolution/gco:Measure/@uom
- geospatial_lat_resolution - metadata/geospatialCoverage/northsouth/resolution/gmi:MI_Metadata/gmd:spatialRepresentationInfo/gmd:MD_Georectified/gmd:axisDimensionProperties/gmd:MD_Dimension/gmd:resolution/gco:Measure
- geospatial_vertical_units -
-
metadata/geospatialCoverage/updown/units/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:extent/gmd:EX_Extent/gmd:verticalElement/gmd:EX_VerticalExtent/gmd:verticalCRS
- geospatial_vertical_resolution -
-
metadata/geospatialCoverage/updown/resolution
- geospatial_vertical_positive -
-
metadata/geospatialCoverage@zpositive
- time_coverage_units - This attribute is calculated using the CF Conventions/gmi:MI_Metadata/gmd:spatialRepresentationInfo/gmd:MD_GridSpatialRepresentation/gmd:axisDimensionProperties/gmd:MD_Dimension/gmd:resolution/gco:Measure/@uom.
- time_coverage_duration - metadata/timeCoverage/duration/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:extent/gmd:EX_Extent/gmd:temporalElement/gmd:EX_TemporalExtent/gmd:extent/gml:TimePeriod/gml:beginPosition provides an ISO8601 - compliant description of the time period covered by the dataset. This standard supports descriptions of durations.
- time_coverage_resolution - metadata/timeCoverage/resolution -
- Identification | Text Search | Extent Search | Other Extent Information | Creator Search | Contributor Search | Publisher Search | Other Attributes - -

Creator Search Score: /

-

This group includes attributes that could support searches for people/institutions/projects that are responsible for datasets. This information is also critical for the correct attribution of the people and institutions that - produce datasets.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ScoreAttributeDescriptionTHREDDSISO 19115-2
- creator_name -
-
The data creator's name, URL, and email. The "institution" attribute will be used if the "creator_name" attribute does not exist.
metadata/creator/name
/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:citation/gmd:CI_Citation/gmd:citedResponsibleParty/gmd:CI_ResponsibleParty/gmd:individualName/gco:CharacterString
- CI_RoleCode="originator"
- creator_url -
-
metadata/creator/contact@url
/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:citation/gmd:CI_Citation/gmd:citedResponsibleParty/gmd:CI_ResponsibleParty/gmd:contactInfo/gmd:CI_Contact/gmd:onlineResource/gmd:CI_OnlineResource/gmd:linkage/gmd:URL
- creator_email -
-
metadata/creator/contact@email/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:citation/gmd:CI_Citation/gmd:citedResponsibleParty/gmd:CI_ResponsibleParty/gmd:contactInfo/gmd:CI_Contact/gmd:address/gmd:CI_Address/gmd:electronicMailAddress/gco:CharacterString
- institution -
-
metadata/creator/name/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:citation/gmd:CI_Citation/gmd:citedResponsibleParty/gmd:CI_ResponsibleParty/gmd:organisationName/gco:CharacterString
- date_created - The date on which the data was created.
metadata/date[@type="created"]/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:citation/gmd:CI_Citation/gmd:date/gmd:CI_Date/gmd:date/gco:Date
/gmd:dateType/gmd:CI_DateTypeCode="creation"
- date_modified -
-
The date on which this data was last modified.
metadata/date[@type="modified"]/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:citation/gmd:CI_Citation/gmd:date/gmd:CI_Date/gmd:date/gco:Date
/gmd:dateType/gmd:CI_DateTypeCode="revision"
- date_issued -
-
The date on which this data was formally issued.
metadata/date[@type="issued"]/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:citation/gmd:CI_Citation/gmd:date/gmd:CI_Date/gmd:date/gco:Date
/gmd:dateType/gmd:CI_DateTypeCode="publication"
- project -
-
The scientific project that produced the data.
metadata/project
/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:aggregationInfo/gmd:MD_AggregateInformation/gmd:aggregateDataSetName/gmd:CI_Citation/gmd:title/gco:CharacterString
- DS_AssociationTypeCode="largerWorkCitation" and DS_InitiativeTypeCode="project"
and/or
- /gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:descriptiveKeywords/gmd:MD_Keywords/gmd:keyword/gco:CharacterString with gmd:MD_KeywordTypeCode="project"
- acknowledgment - A place to acknowledge various type of support for the project that produced this data.
metadata/documentation[@type="funding"]/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:credit/gco:CharacterString
-
Identification | Text Search | Extent Search | Other Extent Information | Creator Search | Contributor Search | Publisher Search | Other Attributes - -

Contributor Search Score: /

-

This section allows a data provider to include information about those that contribute to a data product in the metadata for the product. This is important for many reasons.

- - - - - - - - - - - - - - - - - - - - - - - - - -
ScoreAttributeDescriptionTHREDDSISO 19115-2
- contributor_name -
-
The name and role of any individuals or institutions that contributed to the creation of this data.
metadata/contributor
/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:citation/gmd:CI_Citation/gmd:citedResponsibleParty/gmd:CI_ResponsibleParty/gmd:individualName/gco:CharacterString
- contributor_role -
-
metadata/contributor@role/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:citation/gmd:CI_Citation/gmd:citedResponsibleParty/gmd:CI_ResponsibleParty/gmd:role/gmd:CI_RoleCode
="principalInvestigator" | - "author"
-
Identification | Text Search | Extent Search | Other Extent Information | Creator Search | Contributor Search | Publisher Search | Other Attributes - -

Publisher Search Score: /

-

This section allows a data provider to include contact information for the publisher of a data product in the metadata for the product.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ScoreAttributeDescriptionTHREDDSISO 19115-2
- publisher_name -
-
The data publisher's name, URL, and email. The publisher may be an individual or an institution.metadata/publisher/name
/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:citation/gmd:CI_Citation/gmd:citedResponsibleParty/gmd:CI_ResponsibleParty/gmd:individualName/gco:CharacterString
- CI_RoleCode="publisher"
and/or
/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:descriptiveKeywords/gmd:MD_Keywords/gmd:keyword/gco:CharacterString with - gmd:MD_KeywordTypeCode="dataCenter"
- publisher_url -
-
metadata/publisher/contact@url
/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:citation/gmd:CI_Citation/gmd:citedResponsibleParty/gmd:CI_ResponsibleParty/gmd:contactInfo/gmd:CI_Contact/gmd:onlineResource/gmd:CI_OnlineResource/gmd:linkage/gmd:URL
- CI_RoleCode="publisher"
- publisher_email -
-
metadata/publisher/contact@email/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:citation/gmd:CI_Citation/gmd:citedResponsibleParty/gmd:CI_ResponsibleParty/gmd:contactInfo/gmd:CI_Contact/gmd:address/gmd:CI_Address/gmd:electronicMailAddress/gco:CharacterString
- CI_RoleCode="publisher"
-
Identification | Text Search | Extent Search | Other Extent Information | Creator Search | Contributor Search | Publisher Search | Other Attributes - -

Other Attributes Score: /

-

This group includes attributes that don't seem to fit in the other categories.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ScoreAttributeDescriptionTHREDDSISO 19115-2
- processing_level - A textual description of the processing (or quality control) level of the data.
metadata/documentation[@type="processing_level"]
- license - Describe the restrictions to data access and distribution. metadata/documentation[@type="rights"]/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:resourceConstraints/gmd:MD_LegalConstraints/gmd:useLimitation/gco:CharacterString
- cdm_data_type -
-
The THREDDS data type appropriate for this dataset.metadata/dataType/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:spatialRepresentationType/gmd:MD_SpatialRepresentationTypeCode
May need some extensions to this codelist. Current values: - vector, grid, textTable, tin, stereoModel, video.
-
Identification | Text Search | Extent Search | Other Extent Information | Creator Search | Contributor Search | Publisher Search | Other Attributes -
Rubric Version:
- More Information - -
- - - - 1 - 0 - - -
From e650ac18d18115789366ceb7351816f86dd3b329 Mon Sep 17 00:00:00 2001 From: Tara Drwenski Date: Thu, 12 Oct 2023 15:50:36 -0600 Subject: [PATCH 04/18] Remove threddsIso from gradle dependencies --- tds-platform/build.gradle | 6 +----- tds-testing-platform/build.gradle | 4 ---- tds/build.gradle | 7 ++----- 3 files changed, 3 insertions(+), 14 deletions(-) diff --git a/tds-platform/build.gradle b/tds-platform/build.gradle index b413249d94..eeb1643374 100644 --- a/tds-platform/build.gradle +++ b/tds-platform/build.gradle @@ -88,6 +88,7 @@ dependencies { api "org.hibernate.validator:hibernate-validator-annotation-processor:${depVersion.hibernateValidator}" api 'jakarta.el:jakarta.el-api' runtime 'org.glassfish:javax.el:3.0.0' + runtime "jaxen:jaxen:${depVersion.jaxen}" // waterml stuff api 'org.apache.xmlbeans:xmlbeans' @@ -105,11 +106,6 @@ dependencies { // gwt version defined in gradle/any/shared-mvn-coords.gradle, accessible via gradle/any/dependencies.gradle api "com.google.gwt:gwt-dev:${depVersion.gwt}" api "com.google.gwt:gwt-user:${depVersion.gwt}" - - // threddsIso - runtime 'EDS:tds-plugin:2.4.6-SNAPSHOT' - runtime 'net.sf.saxon:Saxon-HE:9.7.0-8' - runtime "jaxen:jaxen:${depVersion.jaxen}" } } diff --git a/tds-testing-platform/build.gradle b/tds-testing-platform/build.gradle index ec36c75a3e..7f94373263 100644 --- a/tds-testing-platform/build.gradle +++ b/tds-testing-platform/build.gradle @@ -28,10 +28,6 @@ dependencies { // defined in tds-platform as well, but using runtime config api 'org.apache.logging.log4j:log4j-web' // api because of :dap4:d4tests) - // threddsIso - api 'EDS:tds-plugin:2.4.0-SNAPSHOT' // api because of :it - api 'net.sf.saxon:Saxon-HE:9.7.0-8' // api because of :it - // tds api "jaxen:jaxen:${depVersion.jaxen}" // api because of XPath operations in mock tests diff --git a/tds/build.gradle b/tds/build.gradle index ed0bcdb49e..1d07b94b79 100644 --- a/tds/build.gradle +++ b/tds/build.gradle @@ -66,6 +66,8 @@ dependencies { // Needed for XPath operations in mock tests testCompile 'jaxen:jaxen' + // Needed for XPaths in WmsDetailedConfig + runtime 'jaxen:jaxen' // edal ncwms related libs compile('uk.ac.rdg.resc:edal-common') @@ -74,11 +76,6 @@ dependencies { compile ('uk.ac.rdg.resc:edal-wms') compile('uk.ac.rdg.resc:edal-godiva') - // threddsIso related libs - runtime 'EDS:tds-plugin' - runtime 'net.sf.saxon:Saxon-HE' - runtime 'jaxen:jaxen' - // json writing 'org.json:json' From e9b8cbeb872ff212f246a44b467e8c763ce39408 Mon Sep 17 00:00:00 2001 From: Tara Drwenski Date: Thu, 12 Oct 2023 16:09:25 -0600 Subject: [PATCH 05/18] Turn off the iso services by default --- tds/src/main/webapp/WEB-INF/altContent/startup/catalog.xml | 3 --- .../webapp/WEB-INF/altContent/startup/threddsConfig.xml | 6 +++--- tds/src/main/webapp/WEB-INF/tdsGlobalConfig.xml | 6 +++--- 3 files changed, 6 insertions(+), 9 deletions(-) diff --git a/tds/src/main/webapp/WEB-INF/altContent/startup/catalog.xml b/tds/src/main/webapp/WEB-INF/altContent/startup/catalog.xml index 58d0782631..80f3c081ff 100644 --- a/tds/src/main/webapp/WEB-INF/altContent/startup/catalog.xml +++ b/tds/src/main/webapp/WEB-INF/altContent/startup/catalog.xml @@ -15,9 +15,6 @@ - - - diff --git a/tds/src/main/webapp/WEB-INF/altContent/startup/threddsConfig.xml b/tds/src/main/webapp/WEB-INF/altContent/startup/threddsConfig.xml index 4bfe9a9c32..df97bc007d 100644 --- a/tds/src/main/webapp/WEB-INF/altContent/startup/threddsConfig.xml +++ b/tds/src/main/webapp/WEB-INF/altContent/startup/threddsConfig.xml @@ -208,9 +208,9 @@ diff --git a/tds/src/main/webapp/WEB-INF/tdsGlobalConfig.xml b/tds/src/main/webapp/WEB-INF/tdsGlobalConfig.xml index f160691f29..d82e92aec2 100644 --- a/tds/src/main/webapp/WEB-INF/tdsGlobalConfig.xml +++ b/tds/src/main/webapp/WEB-INF/tdsGlobalConfig.xml @@ -16,9 +16,9 @@ - - - + + + From 9f4db8d6ff29c593d2d36140b409b61ecdfd435f Mon Sep 17 00:00:00 2001 From: Tara Drwenski Date: Thu, 12 Oct 2023 15:19:59 -0600 Subject: [PATCH 06/18] Update docs about threddsIso not being packaged with TDS --- docs/userguide/src/site/index.md | 2 +- .../tds_tutorial/metadata/IsoMetadataRef.md | 23 ++++++------- .../tds_configuration/AddingOgcIsoServices.md | 33 ++++++++++++------- .../src/site/pages/thredds/TdsServices.md | 27 +++++++-------- .../site/pages/thredds/ThreddsConfigRef.md | 11 ++++--- 5 files changed, 53 insertions(+), 43 deletions(-) diff --git a/docs/userguide/src/site/index.md b/docs/userguide/src/site/index.md index 04f1faf72d..bdffe2f4ea 100644 --- a/docs/userguide/src/site/index.md +++ b/docs/userguide/src/site/index.md @@ -28,7 +28,7 @@ Some of the technology in the TDS: * An integrated server provides data access through the [OpenGIS Consortium (OGC) Web Coverage Service (WCS)](https://www.ogc.org/standards/wcs){:target="_blank"} protocol, for any gridded dataset whose coordinate system information is complete. * An integrated server provides data access through the [OpenGIS Consortium (OGC) Web Map Service (WMS)](http://www.opengeospatial.org/standards/wms){:target="_blank"} protocol, for any gridded dataset whose coordinate system information is complete. This software was developed by Jon Blower (University of Reading (UK) E-Science Center) as part of the [ESSC Web Map Service for environmental data](https://github.com/Reading-eScience-Centre/edal-java){:target="_blank"} (aka Godiva3). -* The integrated [ncISO server](iso_metadata.html) provides automated metadata analysis and ISO metadata generation. +* The optional [ncISO server](iso_metadata.html) provides automated metadata analysis and ISO metadata generation. * The integrated [NetCDF Subset Service](netcdf_subset_service_ref.html) allows subsetting certain CDM datasets in coordinate space, using a REST API. Gridded data subsets can be returned in [CF-compliant](http://cfconventions.org/cf-conventions/v1.6.0/cf-conventions.html){:target="_blank"} netCDF-3 or netCDF-4. Point data subsets can be returned in CSV, XML, WaterML (with [assistance](https://github.com/Unidata/thredds/tree/5.0.0/waterml#waterml){:target="_blank"} diff --git a/docs/userguide/src/site/pages/tds_tutorial/metadata/IsoMetadataRef.md b/docs/userguide/src/site/pages/tds_tutorial/metadata/IsoMetadataRef.md index 63610ffb93..ea0b624f31 100644 --- a/docs/userguide/src/site/pages/tds_tutorial/metadata/IsoMetadataRef.md +++ b/docs/userguide/src/site/pages/tds_tutorial/metadata/IsoMetadataRef.md @@ -6,30 +6,31 @@ toc: false permalink: iso_metadata.html --- -The TDS distribution includes the [ncISO](https://github.com/Unidata/threddsIso/){:target="_blank"} package from NOAA/Environmental Data Management (many thanks to Dave Neufeld and Ted Habermann). +The TDS can include ISO metadata services by using the [ncISO plugin](https://github.com/Unidata/threddsIso/){:target="_blank"} package from NOAA/Environmental Data Management (many thanks to Dave Neufeld and Ted Habermann). +See [enabling ncISO services](adding_ogc_iso_services.html) for more information on how to add these services to your TDS. -## `ncISO` Services -`ncISO` supports three new services for datasets: +## ncISO Services +The ncISO plugin provides three new services for datasets: * `NCML`: an NcML representation of the dataset's structure and metadata; * `ISO`: an ISO 19115 metadata representation of the dataset; and * `UDDC`: an evaluation of how well the metadata contained in the dataset conforms to the NetCDF Attribute Convention for Data Discovery (NACDD) (see the [NOAA/EDM page on NACDD](http://wiki.esipfed.org/index.php/Category:Attribute_Conventions_Dataset_Discovery){:target="_blank"}). -## Enabling `ncISO` Services +## Enabling ncISO Services -The `ncISO` services are enabled by default. -These services can be disabled for locally served datasets by including the following in the `threddsConfig.xml` file: +The ncISO services are disabled by default. +Provided that you have added the [ncISO plugin](adding_ogc_iso_services.html#nciso-configuration), these services can be enabled for locally served datasets by including the following in the `threddsConfig.xml` file: ~~~xml - false - false - false + true + true + true ~~~ -## Providing `ncISO` Services For Datasets +## Providing ncISO Services For Datasets -Once `ncISO` is enabled, datasets can be configured to have the three `ncISO` services in the TDS catalog configuration files similar to the way other services are configured. +Once ncISO is enabled, datasets can be configured to have the three ncISO services in the TDS catalog configuration files similar to the way other services are configured. The `service` element's `serviceType` and `base` attribute values must be as follows: ~~~xml diff --git a/docs/userguide/src/site/pages/tds_tutorial/tds_configuration/AddingOgcIsoServices.md b/docs/userguide/src/site/pages/tds_tutorial/tds_configuration/AddingOgcIsoServices.md index 806aec8ebd..48f1634e10 100644 --- a/docs/userguide/src/site/pages/tds_tutorial/tds_configuration/AddingOgcIsoServices.md +++ b/docs/userguide/src/site/pages/tds_tutorial/tds_configuration/AddingOgcIsoServices.md @@ -6,11 +6,12 @@ toc: false permalink: adding_ogc_iso_services.html --- -## Configure TDS To Allow WCS, WMS, and `ncISO` Access +## Configure TDS To Allow WCS, WMS, and ncISO Access -Out of the box, the TDS distribution will have `WCS`, `WMS`, and `ncISO` enabled. +Out of the box, the TDS distribution will have `WCS` and `WMS` enabled. If you do not wish to use these services, they must be explicitly allowed in the `threddsConfig.xml` file. -Please see the [threddsConfig.xml file](tds_config_ref.html#wcs-service) documentation for information on how to disable these services. +The ncISO services are disabled by default but can be enabled by adding the plugin and updating the `threddsConfig.xml` file. +Please see the [threddsConfig.xml file](tds_config_ref.html#wcs-service) documentation for information on how to enable/disable these services. The default `threddsConfig.xml` file (which should now be in your `${tds.content.root.path}/content/thredds` directory) contains commented out sections for each of these services. ### `WCS` Configuration @@ -41,19 +42,29 @@ The following section in the `threddsConfig.xml` file controls the WMS service: Additional `WMS` configuration options can be set in the `threddsConfig.xml` file, More details are available in the `WMS` section of the [threddsConfig.xml file](tds_config_ref.html#wms-service) documentation. -### `ncISO` Configuration +### ncISO Configuration -The following section in the `threddsConfig.xml` file controls the `ncIso` services: +#### Adding the plugin +To use the ncISO services, you must add the `tds-plugin-jar-with-dependencies.jar` artifact to your TDS for TDS versions >= 5.5. +For TDS versions prior to 5.5 this artifact was included in the TDS war file. +To see which versions of the plugin are compatible with your TDS version see the table [here](https://github.com/Unidata/threddsIso). +The plugin can be downloaded on the [TDS downloads page](https://downloads.unidata.ucar.edu/tds/){:target="_blank"}. +The downloaded ncISO plugin jar file should be placed in your `${tomcat_home}/webapps/thredds/WEB-INF/lib/` directory. + +#### Updating `threddsConfig.xml` +The following section in the `threddsConfig.xml` file controls the ncISO services: ~~~xml - true - true - true + false + false + false ~~~ -Each `*Allow` element allows one of the three `ncISO` services. +Each `*Allow` element allows one of the three ncISO services. + +After adding the ncISO plugin and updating your `threddsConfig.xml`, the TDS should be restarted. ### Adding `WCS` And `WMS` Services @@ -70,9 +81,9 @@ Adding them to an existing compound service would look something like this: ~~~ -### Adding `ncISO` Services +### Adding ncISO Services -Similar to above, as long as the `ncISO` services are enabled, all that is required for the TDS to provide `ncISO` services on datasets is for those datasets to reference the `ncISO` service elements. +Similar to above, as long as the ncISO services are enabled, all that is required for the TDS to provide ncISO services on datasets is for those datasets to reference the ncISO service elements. For instance, adding to the same compound service as above: ~~~xml diff --git a/docs/userguide/src/site/pages/thredds/TdsServices.md b/docs/userguide/src/site/pages/thredds/TdsServices.md index 0ce78168ed..c2e2b9cd62 100644 --- a/docs/userguide/src/site/pages/thredds/TdsServices.md +++ b/docs/userguide/src/site/pages/thredds/TdsServices.md @@ -21,10 +21,7 @@ The TDS has a set of **Standard Data Services** that are always available (unles * opendap * wcs * wms -* iso -* ncml -* uddc - + ### Available Services The TDS configures the appropriate set of standard data services for each dataType/featureType. @@ -71,20 +68,20 @@ Consult the [Configuration Catalogs](config_catalog.html) documentation and [TDS | Remote THREDDS Catalog Service | *Disabled* | `/thredds/remoteCatalogService` | -## `ncISO` Metadata Services +## ncISO Metadata Services + +The ncISO plugin adds the *ncISO Metadata Services*, which facilitate the generation of [ISO 19115 metadata representation](https://en.wikipedia.org/wiki/Geospatial_metadata){:target="_blank"} from data in [NetCDF](https://www.unidata.ucar.edu/software/netcdf/). -*`ncISO` Metadata Services* facilitate the generation of [ISO 19115 metadata representation](https://en.wikipedia.org/wiki/Geospatial_metadata){:target="_blank"} from data in [NetCDF](https://www.unidata.ucar.edu/software/netcdf/). + {% include note.html content=" + Learn how to [enable the ncISO services](adding_ogc_iso_services.html#nciso-configuration). + " %} -The three `ncISO` Metadata Services are: +The three ncISO Metadata Services are: * **ISO** The ISO Metadata Service provides [ISO 19115 metadata representation](https://www.ngdc.noaa.gov/wiki/index.php/NcISO){:target="_blank"} of a dataset's structure and metadata. - - {% include note.html content=" - Learn how to [enable NcISO](adding_ogc_iso_services.html) in the TDS Configuration file. - " %} - + * **NCML** The *NCML Metadata Service* provides NCML representation of a dataset. @@ -103,9 +100,9 @@ The three `ncISO` Metadata Services are: |-----------------|-------------------|-------------------------------| | Service Name | Default Availability | Access Point | |:----------------|:------------------|:------------------------------| -| ISO | Enabled | `/thredds/iso/*` | -| NCML | Enabled | `/thredds/ncml/*` | -| UDDC | Enabled | `/thredds/uddc/*` | +| ISO | Disabled | `/thredds/iso/*` | +| NCML | Disabled | `/thredds/ncml/*` | +| UDDC | Disabled | `/thredds/uddc/*` | #### Catalog Service Configuration: (These are the exact [required](services_ref.html#tds-requirements-for-thredds-catalog-service-elements) values to enable these service.) diff --git a/docs/userguide/src/site/pages/thredds/ThreddsConfigRef.md b/docs/userguide/src/site/pages/thredds/ThreddsConfigRef.md index 61752d71ac..9b5c45f34b 100644 --- a/docs/userguide/src/site/pages/thredds/ThreddsConfigRef.md +++ b/docs/userguide/src/site/pages/thredds/ThreddsConfigRef.md @@ -299,15 +299,16 @@ Here is the description of the various options: Optional; default is that there is no size limitation. If the file is > 2 GB, large format netCDF will be written. -### ncISO Service +### ncISO Services -By default, these services are enabled, and can be disabled by including the following in the `threddsConfig.xml` file: +By default, these services are disabled. +Provided that you have added the [ncISO plugin](adding_ogc_iso_services.html#nciso-configuration), these services can be enabled by including the following in the `threddsConfig.xml` file: ~~~xml - false - false - false + true + true + true ~~~ From 8d9e262439f25c6aa1ae84382f4f660fbcfb6b11 Mon Sep 17 00:00:00 2001 From: Tara Drwenski Date: Wed, 18 Oct 2023 14:51:50 -0600 Subject: [PATCH 07/18] Remove exclude threddsIso dependencies that no longer exist --- dap4/d4tests/build.gradle | 2 -- 1 file changed, 2 deletions(-) diff --git a/dap4/d4tests/build.gradle b/dap4/d4tests/build.gradle index 52dcd0b15a..68447fce54 100644 --- a/dap4/d4tests/build.gradle +++ b/dap4/d4tests/build.gradle @@ -22,8 +22,6 @@ dependencies { exclude group: 'org.apache.logging.log4j' exclude group: 'org.apache.taglibs', module: 'taglibs-standard-spec' exclude group: 'org.apache.taglibs', module: 'taglibs-standard-impl' - exclude group: 'EDS', module: 'tds-plugin' - exclude group: 'net.sf.saxon', module: 'Saxon-HE' } testCompile 'javax.servlet:javax.servlet-api' From 790689046c50007b62a9a45bb8b875b91c4a43c5 Mon Sep 17 00:00:00 2001 From: Tara Drwenski Date: Wed, 18 Oct 2023 16:12:46 -0600 Subject: [PATCH 08/18] Update tests that expect a number of services since ISO services are removed by default --- .../java/thredds/server/catalog/TestServiceDefaults.java | 6 +++--- .../java/thredds/server/catalog/TestTdsGrib.java | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/tds/src/integrationTests/java/thredds/server/catalog/TestServiceDefaults.java b/tds/src/integrationTests/java/thredds/server/catalog/TestServiceDefaults.java index 3492583da7..6346032894 100644 --- a/tds/src/integrationTests/java/thredds/server/catalog/TestServiceDefaults.java +++ b/tds/src/integrationTests/java/thredds/server/catalog/TestServiceDefaults.java @@ -39,7 +39,7 @@ public void testStandardServices() throws IOException { Service s = ds.getServiceDefault(); Assert.assertNotNull(s); Assert.assertTrue(s.getType() == ServiceType.Compound); - Assert.assertEquals(10, s.getNestedServices().size()); + Assert.assertEquals(7, s.getNestedServices().size()); } // Relies on: @@ -62,7 +62,7 @@ public void testStandardServicesDatasetScan() throws IOException { Assert.assertNotNull(s); Assert.assertTrue(s.getType() == ServiceType.Compound); - Assert.assertEquals(10, s.getNestedServices().size()); + Assert.assertEquals(7, s.getNestedServices().size()); } @Test @@ -72,7 +72,7 @@ public void testUserDefinedServices() throws IOException { Assert.assertEquals(3, cat.getServices().size()); check(cat, "all", 11); - check(cat, "GridServices", 10); + check(cat, "GridServices", 7); check(cat, "opendapOnly", 1); Service localServices = cat.findService("opendapOnly"); diff --git a/tds/src/integrationTests/java/thredds/server/catalog/TestTdsGrib.java b/tds/src/integrationTests/java/thredds/server/catalog/TestTdsGrib.java index 8c6afcbda2..7ba5429af8 100644 --- a/tds/src/integrationTests/java/thredds/server/catalog/TestTdsGrib.java +++ b/tds/src/integrationTests/java/thredds/server/catalog/TestTdsGrib.java @@ -89,7 +89,7 @@ public void testTPanalyis() throws IOException { Dataset full = cat.findDatasetByID("HRRR/analysis/TP"); Assert.assertNotNull(full); - Assert.assertEquals(9, full.getAccess().size()); + Assert.assertEquals(6, full.getAccess().size()); Assert.assertNull(full.getAccess(ServiceType.Resolver)); Assert.assertNull(full.getAccess(ServiceType.HTTPServer)); Assert.assertNotNull(full.getAccess(ServiceType.CdmRemote)); @@ -170,7 +170,7 @@ public void testDeclaredServicesInNestedDatasets() throws IOException { public void testDefaultGribServices() throws IOException { String catalog = "/catalog/grib.v5/NDFD/CONUS_5km/catalog.xml"; // no service name, should use GRID default Catalog cat = TdsLocalCatalog.open(catalog); - testCat(cat, 9, true, null, 0); + testCat(cat, 6, true, null, 0); Dataset top = cat.getDatasetsLocal().get(0); Assert.assertTrue(!top.hasAccess()); @@ -181,7 +181,7 @@ public void testDefaultGribServices() throws IOException { } else { CatalogRef catref = (CatalogRef) ds; Catalog cat2 = TdsLocalCatalog.openFromURI(catref.getURI()); - testCat(cat2, 9, false, "GridServices", 10); + testCat(cat2, 6, false, "GridServices", 7); break; } } From 7505ebf9f0a4bdbd4373537cd4a4945c084fac9f Mon Sep 17 00:00:00 2001 From: Tara Drwenski Date: Mon, 23 Oct 2023 13:28:15 -0600 Subject: [PATCH 09/18] Improve error message when test fails --- .../ncss/controller/grid/GridDatasetControllerTest.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/tds/src/test/java/thredds/server/ncss/controller/grid/GridDatasetControllerTest.java b/tds/src/test/java/thredds/server/ncss/controller/grid/GridDatasetControllerTest.java index 777fd5d544..ae1323ced1 100644 --- a/tds/src/test/java/thredds/server/ncss/controller/grid/GridDatasetControllerTest.java +++ b/tds/src/test/java/thredds/server/ncss/controller/grid/GridDatasetControllerTest.java @@ -5,6 +5,7 @@ package thredds.server.ncss.controller.grid; import static com.google.common.truth.Truth.assertThat; +import static com.google.common.truth.Truth.assertWithMessage; import static org.junit.Assume.assumeTrue; import java.io.FileNotFoundException; @@ -142,10 +143,11 @@ public void shouldCloseCacheResourcesWhenExceptionIsThrown() throws Exception { final FileCacheIF rafCache = RandomAccessFile.getGlobalFileCache(); rafCache.clearCache(true); - assertThat(rafCache.showCache()).isEmpty(); + assertWithMessage(rafCache.showCache().toString()).that(rafCache.showCache()).isEmpty(); mockMvc.perform(rb); - assertThat(rafCache.showCache().size()).isEqualTo(1); - assertThat(rafCache.showCache().get(0)).startsWith("false"); // file should not be locked + assertWithMessage(rafCache.showCache().toString()).that(rafCache.showCache().size()).isEqualTo(1); + // file should not be locked + assertWithMessage(rafCache.showCache().toString()).that(rafCache.showCache().get(0)).startsWith("false"); } private class FilenameMatcher extends BaseMatcher { From 08c39edb1f2fae059d40742aaebc558817aab111 Mon Sep 17 00:00:00 2001 From: Tara Drwenski Date: Mon, 23 Oct 2023 15:52:41 -0600 Subject: [PATCH 10/18] Add release_info.json file that is used for downloads page on website --- .../downloads-page/release_info.json | 66 +++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 project-files/downloads-page/release_info.json diff --git a/project-files/downloads-page/release_info.json b/project-files/downloads-page/release_info.json new file mode 100644 index 0000000000..ddb5f87b26 --- /dev/null +++ b/project-files/downloads-page/release_info.json @@ -0,0 +1,66 @@ +{ + "package": "tds", + "packageName": "THREDDS Data Server", + "releases": [ + { + "version": "5.5", + "status": "beta", + "description": "This is the current version running at thredds.ucar.edu. It contains several bug fixes compared to version 5.4.", + "baseURL": "https://artifacts.unidata.ucar.edu/repository/downloads-tds/5.5/", + "resources": { + "tds_war": { + "type" : "web application", + "package": "thredds-5.5-SNAPSHOT.war", + "name": "TDS (Web Application Archive)", + "hash": { + "MD5": "thredds-5.5-SNAPSHOT.war.md5", + "SHA1": "thredds-5.5-SNAPSHOT.war.sha1", + "SHA256": "thredds-5.5-SNAPSHOT.war.sha256" + }, + "info": "THREDDS Data Server (TDS).
IMPORTANT: Before deploying, rename to thredds##5.5-SNAPSHOT.war or thredds.war" + }, + "tdm_jar": { + "type": "library", + "package": "tdm-5.5-SNAPSHOT.jar", + "name": "TDM (Jar file)", + "hash": { + "MD5": "tdm-5.5-SNAPSHOT.jar.md5", + "SHA1": "tdm-5.5-SNAPSHOT.jar.sha1", + "SHA256": "tdm-5.5-SNAPSHOT.jar.sha256" + }, + "info": "THREDDS Data Manager (TDM) for the latest snapshot release (version 5.5 SNAPSHOT) " + } + } + }, { + "version": "5.4", + "releaseDate": "2022-07-01", + "status": "current", + "description": "", + "baseURL": "https://artifacts.unidata.ucar.edu/repository/downloads-tds/5.4/", + "resources": { + "tds_war": { + "type" : "web application", + "package": "thredds-5.4.war", + "name": "TDS (Web Application Archive)", + "hash": { + "MD5": "thredds-5.4.war.md5", + "SHA1": "thredds-5.4.war.sha1", + "SHA256": "thredds-54.war.sha256" + }, + "info": "THREDDS Data Server (TDS).
IMPORTANT: Before deploying, rename to thredds##5.4.war or thredds.war" + }, + "tdm_jar": { + "type": "library", + "package": "tdm-5.4.jar", + "name": "TDM (Jar file)", + "hash": { + "MD5": "tdm-5.4.md5", + "SHA1": "tdm-5.4.jar.sha1", + "SHA256": "tdm-5.4.jar.sha256" + }, + "info": "THREDDS Data Manager (TDM) for the current release (version 5.4) " + } + } + } + ] +} From 3a45fb98e5df6bd5b32ccb721797dc8fd2f6cac6 Mon Sep 17 00:00:00 2001 From: Tara Drwenski Date: Mon, 23 Oct 2023 15:56:47 -0600 Subject: [PATCH 11/18] Add latest.xml version info to git --- project-files/startup/latest.xml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 project-files/startup/latest.xml diff --git a/project-files/startup/latest.xml b/project-files/startup/latest.xml new file mode 100644 index 0000000000..ff03d17ad0 --- /dev/null +++ b/project-files/startup/latest.xml @@ -0,0 +1,4 @@ + + + + From 1ba1726800f7fded744fb77ffd2aff3d48a1974f Mon Sep 17 00:00:00 2001 From: Tara Drwenski Date: Tue, 24 Oct 2023 09:32:25 -0600 Subject: [PATCH 12/18] Update latest.xml --- project-files/startup/latest.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/project-files/startup/latest.xml b/project-files/startup/latest.xml index ff03d17ad0..66a13199cb 100644 --- a/project-files/startup/latest.xml +++ b/project-files/startup/latest.xml @@ -1,4 +1,4 @@ - - + + From 5e70a9ecf1f33970c717982677e7108bb9ca4667 Mon Sep 17 00:00:00 2001 From: Tara Drwenski Date: Tue, 24 Oct 2023 10:29:46 -0600 Subject: [PATCH 13/18] Clean up test and update stable/maintainence to release/development --- .../downloads-page/release_info.json | 12 +++++++ .../thredds/server/config/TdsContextTest.java | 35 ++++++------------- 2 files changed, 23 insertions(+), 24 deletions(-) diff --git a/project-files/downloads-page/release_info.json b/project-files/downloads-page/release_info.json index ddb5f87b26..835077711a 100644 --- a/project-files/downloads-page/release_info.json +++ b/project-files/downloads-page/release_info.json @@ -29,6 +29,18 @@ "SHA256": "tdm-5.5-SNAPSHOT.jar.sha256" }, "info": "THREDDS Data Manager (TDM) for the latest snapshot release (version 5.5 SNAPSHOT) " + }, + "thredds_iso_jar": { + "baseURL": "https://artifacts.unidata.ucar.edu/repository/downloads-tds/5.5/", + "type": "library", + "package": "tds-plugin-2.4.6-SNAPSHOT-jar-with-dependencies.jar", + "name": "THREDDS ISO Plugin (Jar file)", + "hash": { + "MD5": "tds-plugin-2.4.6-SNAPSHOT-jar-with-dependencies.jar.md5", + "SHA1": "tds-plugin-2.4.6-SNAPSHOT-jar-with-dependencies.jar.sha1", + "SHA256": "tds-plugin-2.4.6-SNAPSHOT-jar-with-dependencies.jar.sha256" + }, + "info": "THREDDS Data Manager (TDM) for the latest snapshot release (version 5.5 SNAPSHOT) " } } }, { diff --git a/tds/src/test/java/thredds/server/config/TdsContextTest.java b/tds/src/test/java/thredds/server/config/TdsContextTest.java index 2f19ef7e28..bc6b895ce6 100644 --- a/tds/src/test/java/thredds/server/config/TdsContextTest.java +++ b/tds/src/test/java/thredds/server/config/TdsContextTest.java @@ -1,5 +1,7 @@ package thredds.server.config; +import static com.google.common.truth.Truth.assertThat; + import org.junit.Test; import org.junit.experimental.categories.Category; import org.junit.runner.RunWith; @@ -25,34 +27,19 @@ public class TdsContextTest { @Autowired private TdsContext tdsContext; - /* - * @Test - * public void testInit() { - * System.out.printf("%s%n", tdsContext); - * //All the initialization was done - * //serverInfo, htmlConfig, wmsConfig are initialized by TdsConfigMapper after ThreddConfig reads the - * threddsServer.xml file - * assertNotNull( tdsContext.getServerInfo() ); - * assertNotNull( tdsContext.getHtmlConfig() ); - * assertNotNull( tdsContext.getWmsConfig() ); - * } - */ - @Test public void testVersionRetrieval() { - String stableKey = "stable"; - String maintKey = "maintenance"; String version = tdsContext.getVersionInfo(); - Map latestVersionInfo = tdsUpdateConfig.getLatestVersionInfo(version); - // is not empty - assert (!latestVersionInfo.isEmpty()); - // contains the stable key and the stable version is not empty - assert (latestVersionInfo.containsKey(stableKey)); - assert (!latestVersionInfo.get(stableKey).isEmpty()); - // contains the dev key and the dev version is not empty - assert (latestVersionInfo.containsKey(maintKey)); - assert (!latestVersionInfo.get(maintKey).isEmpty()); + assertThat(latestVersionInfo).isNotEmpty(); + + String releaseKey = "release"; + assertThat(latestVersionInfo).containsKey(releaseKey); + assertThat(latestVersionInfo.get(releaseKey)).isNotEmpty(); + + String developmentKey = "development"; + assertThat(latestVersionInfo).containsKey(developmentKey); + assertThat(latestVersionInfo.get(developmentKey)).isNotEmpty(); } } From f2557244caff8deefbdf7b87f5c2831484f77031 Mon Sep 17 00:00:00 2001 From: Tara Drwenski Date: Tue, 24 Oct 2023 12:03:37 -0600 Subject: [PATCH 14/18] Move files --- project-files/{downloads-page => downloads}/release_info.json | 0 project-files/{ => downloads}/startup/latest.xml | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename project-files/{downloads-page => downloads}/release_info.json (100%) rename project-files/{ => downloads}/startup/latest.xml (100%) diff --git a/project-files/downloads-page/release_info.json b/project-files/downloads/release_info.json similarity index 100% rename from project-files/downloads-page/release_info.json rename to project-files/downloads/release_info.json diff --git a/project-files/startup/latest.xml b/project-files/downloads/startup/latest.xml similarity index 100% rename from project-files/startup/latest.xml rename to project-files/downloads/startup/latest.xml From 92fdb72c2d525cadc8de60e61ebab49ca42e5fec Mon Sep 17 00:00:00 2001 From: Tara Drwenski Date: Tue, 24 Oct 2023 12:06:55 -0600 Subject: [PATCH 15/18] Add gradle task to publish release_info.json and version.xml --- gradle/root/publishing.gradle | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/gradle/root/publishing.gradle b/gradle/root/publishing.gradle index 4a780fd3d8..aeb477f4a2 100644 --- a/gradle/root/publishing.gradle +++ b/gradle/root/publishing.gradle @@ -113,6 +113,25 @@ def publishDownloadsTask = tasks.register('publishDownloads', PublishToRawRepoTa publish.dependsOn publishDownloadsTask +def publishReleaseInfoAndLatestTask = tasks.register('publishReleaseInfoAndLAtest', PublishToRawRepoTask) { + group = 'publishing' + description = 'Publish release_info.json and startup/latest.xml to Nexus downloads.' + host = 'https://artifacts.unidata.ucar.edu/' + repoName = 'downloads-tds' + + publishSrc = new File(rootProject.getProjectDir(), "project-files/downloads/") + + onlyIf { + // Will be evaluated at task execution time, not during configuration. + // Fails the build if the specified properties haven't been provided. + username = getPropertyOrFailBuild NEXUS_USERNAME_KEY + password = getPropertyOrFailBuild NEXUS_PASSWORD_KEY + return true + } +} + +publish.dependsOn publishReleaseInfoAndLatestTask + // The "publish" tasks require credentials for our Nexus server, which they look for in Gradle properties. // If those properties (i.e. NEXUS_USERNAME_KEY and NEXUS_PASSWORD_KEY) haven't been provided, the build will fail. // Therefore, we only want to configure credentials when a "publish" task is part of the execution plan. Otherwise, From 30967f0c8078f2cbbff0007da0dab89c5e8284ef Mon Sep 17 00:00:00 2001 From: Tara Drwenski Date: Tue, 24 Oct 2023 13:42:22 -0600 Subject: [PATCH 16/18] Revert accidental addition of the thredds-iso-jar to release_info.json (still need to add this correctly to downloads page) --- project-files/downloads/release_info.json | 15 ++------------- 1 file changed, 2 insertions(+), 13 deletions(-) diff --git a/project-files/downloads/release_info.json b/project-files/downloads/release_info.json index 835077711a..e4ee88cca7 100644 --- a/project-files/downloads/release_info.json +++ b/project-files/downloads/release_info.json @@ -29,21 +29,10 @@ "SHA256": "tdm-5.5-SNAPSHOT.jar.sha256" }, "info": "THREDDS Data Manager (TDM) for the latest snapshot release (version 5.5 SNAPSHOT) " - }, - "thredds_iso_jar": { - "baseURL": "https://artifacts.unidata.ucar.edu/repository/downloads-tds/5.5/", - "type": "library", - "package": "tds-plugin-2.4.6-SNAPSHOT-jar-with-dependencies.jar", - "name": "THREDDS ISO Plugin (Jar file)", - "hash": { - "MD5": "tds-plugin-2.4.6-SNAPSHOT-jar-with-dependencies.jar.md5", - "SHA1": "tds-plugin-2.4.6-SNAPSHOT-jar-with-dependencies.jar.sha1", - "SHA256": "tds-plugin-2.4.6-SNAPSHOT-jar-with-dependencies.jar.sha256" - }, - "info": "THREDDS Data Manager (TDM) for the latest snapshot release (version 5.5 SNAPSHOT) " } } - }, { + }, + { "version": "5.4", "releaseDate": "2022-07-01", "status": "current", From d37d514224b9442269e4f3b7b1600eab91d9bf10 Mon Sep 17 00:00:00 2001 From: Tara Drwenski Date: Tue, 24 Oct 2023 14:09:32 -0600 Subject: [PATCH 17/18] Fix typo --- gradle/root/publishing.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/root/publishing.gradle b/gradle/root/publishing.gradle index aeb477f4a2..d49f107f2c 100644 --- a/gradle/root/publishing.gradle +++ b/gradle/root/publishing.gradle @@ -113,7 +113,7 @@ def publishDownloadsTask = tasks.register('publishDownloads', PublishToRawRepoTa publish.dependsOn publishDownloadsTask -def publishReleaseInfoAndLatestTask = tasks.register('publishReleaseInfoAndLAtest', PublishToRawRepoTask) { +def publishReleaseInfoAndLatestTask = tasks.register('publishReleaseInfoAndLatest', PublishToRawRepoTask) { group = 'publishing' description = 'Publish release_info.json and startup/latest.xml to Nexus downloads.' host = 'https://artifacts.unidata.ucar.edu/' From dce8bd2b39c71f7172fca1546ee716ab7a969930 Mon Sep 17 00:00:00 2001 From: Tara Drwenski Date: Tue, 24 Oct 2023 14:08:26 -0600 Subject: [PATCH 18/18] Add thredds iso plugin to downloads page --- project-files/downloads/release_info.json | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/project-files/downloads/release_info.json b/project-files/downloads/release_info.json index e4ee88cca7..5c0313bfc6 100644 --- a/project-files/downloads/release_info.json +++ b/project-files/downloads/release_info.json @@ -29,6 +29,17 @@ "SHA256": "tdm-5.5-SNAPSHOT.jar.sha256" }, "info": "THREDDS Data Manager (TDM) for the latest snapshot release (version 5.5 SNAPSHOT) " + }, + "thredds_iso_jar": { + "type": "library", + "package": "tds-plugin-2.4.6-SNAPSHOT-jar-with-dependencies.jar", + "name": "THREDDS ISO Plugin (Jar file)", + "hash": { + "MD5": "tds-plugin-2.4.6-SNAPSHOT-jar-with-dependencies.jar.md5", + "SHA1": "tds-plugin-2.4.6-SNAPSHOT-jar-with-dependencies.jar.sha1", + "SHA256": "tds-plugin-2.4.6-SNAPSHOT-jar-with-dependencies.jar.sha256" + }, + "info": "THREDDS ISO Plugin for the latest snapshot release (version 2.4.6 SNAPSHOT) " } } },