Skip to content

Commit

Permalink
Create branch and start adapting code to the new JSR363 API
Browse files Browse the repository at this point in the history
  • Loading branch information
dispiste authored and jodygarnett committed Apr 23, 2018
1 parent 6db2c20 commit 6371c82
Show file tree
Hide file tree
Showing 20 changed files with 113 additions and 94 deletions.
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -47,9 +47,9 @@
import ucar.nc2.write.Nc4Chunking; import ucar.nc2.write.Nc4Chunking;
import ucar.nc2.write.Nc4ChunkingDefault; import ucar.nc2.write.Nc4ChunkingDefault;


import javax.measure.converter.UnitConverter; import javax.measure.UnitConverter;
import javax.measure.unit.NonSI; import si.uom.NonSI;
import javax.measure.unit.Unit; import javax.measure.Unit;
import javax.media.jai.iterator.RandomIter; import javax.media.jai.iterator.RandomIter;
import javax.media.jai.iterator.RandomIterFactory; import javax.media.jai.iterator.RandomIterFactory;
import java.awt.image.RenderedImage; import java.awt.image.RenderedImage;
Expand Down
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@
import ucar.units.UnitParseException; import ucar.units.UnitParseException;
import ucar.units.UnitSystemException; import ucar.units.UnitSystemException;


import javax.measure.converter.UnitConverter; import javax.measure.UnitConverter;
import javax.media.jai.iterator.RandomIter; import javax.media.jai.iterator.RandomIter;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
Expand Down
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -5,9 +5,22 @@
*/ */
package org.geoserver.wcs.responses; package org.geoserver.wcs.responses;


import it.geosolutions.jaiext.range.NoDataContainer; import java.awt.image.RenderedImage;
import java.io.File;
import java.io.IOException;
import java.util.Arrays;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.logging.Level;

import javax.measure.UnconvertibleException;
import javax.measure.Unit;
import javax.measure.UnitConverter;
import javax.media.jai.iterator.RandomIter;
import javax.media.jai.iterator.RandomIterFactory;

import org.geoserver.wcs.responses.NetCDFDimensionsManager.NetCDFDimensionMapping; import org.geoserver.wcs.responses.NetCDFDimensionsManager.NetCDFDimensionMapping;
import org.geoserver.wcs2_0.response.DimensionBean;
import org.geoserver.wcs2_0.response.GranuleStack; import org.geoserver.wcs2_0.response.GranuleStack;
import org.geoserver.web.netcdf.DataPacking; import org.geoserver.web.netcdf.DataPacking;
import org.geoserver.web.netcdf.DataPacking.DataPacker; import org.geoserver.web.netcdf.DataPacking.DataPacker;
Expand All @@ -17,10 +30,11 @@
import org.geoserver.web.netcdf.layer.NetCDFLayerSettingsContainer; import org.geoserver.web.netcdf.layer.NetCDFLayerSettingsContainer;
import org.geotools.coverage.GridSampleDimension; import org.geotools.coverage.GridSampleDimension;
import org.geotools.coverage.grid.GridCoverage2D; import org.geotools.coverage.grid.GridCoverage2D;
import org.geotools.coverage.io.netcdf.cf.Entry;
import org.geotools.coverage.io.netcdf.cf.NetCDFCFParser;
import org.geotools.imageio.netcdf.utilities.NetCDFUtilities; import org.geotools.imageio.netcdf.utilities.NetCDFUtilities;
import org.geotools.resources.coverage.CoverageUtilities; import org.geotools.resources.coverage.CoverageUtilities;

import it.geosolutions.jaiext.range.NoDataContainer;
import tec.uom.se.format.SimpleUnitFormat;
import ucar.ma2.Array; import ucar.ma2.Array;
import ucar.ma2.DataType; import ucar.ma2.DataType;
import ucar.ma2.Index; import ucar.ma2.Index;
Expand All @@ -29,30 +43,6 @@
import ucar.nc2.Dimension; import ucar.nc2.Dimension;
import ucar.nc2.Variable; import ucar.nc2.Variable;
import ucar.nc2.dataset.NetcdfDataset; import ucar.nc2.dataset.NetcdfDataset;
import ucar.units.NoSuchUnitException;
import ucar.units.PrefixDBException;
import ucar.units.SpecificationException;
import ucar.units.UnitDBException;
import ucar.units.UnitParseException;
import ucar.units.UnitSystemException;

import javax.measure.converter.ConversionException;
import javax.measure.converter.UnitConverter;
import javax.measure.unit.Unit;
import javax.media.jai.iterator.RandomIter;
import javax.media.jai.iterator.RandomIterFactory;
import java.awt.image.RenderedImage;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.logging.Level;


/** /**
* A class which takes care of initializing NetCDF dimension from coverages dimension, * A class which takes care of initializing NetCDF dimension from coverages dimension,
Expand Down Expand Up @@ -173,7 +163,7 @@ protected void initializeVariables() {
String unitString = variableUoM.replace(" ", "*").replace("-", "^-").replace(".", "*") String unitString = variableUoM.replace(" ", "*").replace("-", "^-").replace(".", "*")
.replace("m2","m^2").replace("m3","m^3").replace("s2", "s^2"); .replace("m2","m^2").replace("m3","m^3").replace("s2", "s^2");
try { try {
Unit outputUoM = Unit.valueOf(unitString); Unit outputUoM = SimpleUnitFormat.getInstance().parse(unitString);
if (outputUoM != null && !inputUoM.equals(outputUoM)) { if (outputUoM != null && !inputUoM.equals(outputUoM)) {
if (!inputUoM.isCompatible(outputUoM)){ if (!inputUoM.isCompatible(outputUoM)){
if (LOGGER.isLoggable(Level.WARNING)) { if (LOGGER.isLoggable(Level.WARNING)) {
Expand All @@ -185,7 +175,7 @@ protected void initializeVariables() {
unitConverter = inputUoM.getConverterTo(outputUoM); unitConverter = inputUoM.getConverterTo(outputUoM);
} }
} }
} catch (ConversionException ce) { } catch (UnconvertibleException ce) {
if (LOGGER.isLoggable(Level.SEVERE)) { if (LOGGER.isLoggable(Level.SEVERE)) {
LOGGER.severe("Unable to create a converter for the specified unit: " + unitString LOGGER.severe("Unable to create a converter for the specified unit: " + unitString
+ "\nNo unit conversion will be performed" ); + "\nNo unit conversion will be performed" );
Expand Down
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -12,10 +12,12 @@
import java.util.Set; import java.util.Set;
import java.util.TreeSet; import java.util.TreeSet;


import javax.measure.unit.NonSI; import si.uom.NonSI;
import javax.measure.unit.SI; import si.uom.SI;
import javax.measure.unit.Unit; import tec.uom.se.format.SimpleUnitFormat;
import javax.measure.unit.UnitFormat;
import javax.measure.Unit;
import javax.measure.format.UnitFormat;


import org.apache.wicket.Component; import org.apache.wicket.Component;
import org.apache.wicket.ajax.AjaxRequestTarget; import org.apache.wicket.ajax.AjaxRequestTarget;
Expand Down Expand Up @@ -79,7 +81,7 @@ protected Iterator<String> getChoices(String input) {
} }


List<String> unitNames = new ArrayList<String>(); List<String> unitNames = new ArrayList<String>();
UnitFormat format = UnitFormat.getInstance(Locale.ENGLISH); UnitFormat format = SimpleUnitFormat.getInstance();
for (Unit<?> unit : UNITS) { for (Unit<?> unit : UNITS) {
unitNames.add(format.format(unit)); unitNames.add(format.format(unit));
} }
Expand Down
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@
import java.io.Writer; import java.io.Writer;
import java.util.Map; import java.util.Map;


import javax.measure.unit.SI; import si.uom.SI;
import javax.measure.unit.Unit; import javax.measure.Unit;


import org.apache.commons.io.output.DeferredFileOutputStream; import org.apache.commons.io.output.DeferredFileOutputStream;
import org.geoserver.wms.WMSMapContent; import org.geoserver.wms.WMSMapContent;
Expand Down Expand Up @@ -56,7 +56,7 @@ public GeoJsonWMSBuilder(Rectangle mapSize, ReferencedEnvelope mapArea) {
jsonWriter.setAxisOrder(CRS.getAxisOrder(mapCrs)); jsonWriter.setAxisOrder(CRS.getAxisOrder(mapCrs));


Unit<?> unit = mapCrs.getCoordinateSystem().getAxis(0).getUnit(); Unit<?> unit = mapCrs.getCoordinateSystem().getAxis(0).getUnit();
Unit<?> standardUnit = unit.getStandardUnit(); Unit<?> standardUnit = unit.getSystemUnit();


PrecisionModel pm = null; PrecisionModel pm = null;
if (SI.RADIAN.equals(standardUnit)) { if (SI.RADIAN.equals(standardUnit)) {
Expand Down
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
import java.util.logging.Level; import java.util.logging.Level;
import java.util.logging.Logger; import java.util.logging.Logger;


import javax.measure.unit.Unit; import javax.measure.Unit;
import javax.media.jai.ImageLayout; import javax.media.jai.ImageLayout;
import javax.media.jai.PlanarImage; import javax.media.jai.PlanarImage;


Expand Down
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -5,9 +5,6 @@
*/ */
package org.geoserver.catalog; package org.geoserver.catalog;


import it.geosolutions.imageio.maskband.DatasetLayout;
import it.geosolutions.jaiext.range.NoDataContainer;

import java.awt.Color; import java.awt.Color;
import java.awt.image.ColorModel; import java.awt.image.ColorModel;
import java.io.IOException; import java.io.IOException;
Expand All @@ -20,7 +17,7 @@
import java.util.logging.Level; import java.util.logging.Level;
import java.util.logging.Logger; import java.util.logging.Logger;


import javax.measure.unit.Unit; import javax.measure.Unit;
import javax.media.jai.ImageLayout; import javax.media.jai.ImageLayout;
import javax.media.jai.PropertySource; import javax.media.jai.PropertySource;
import javax.media.jai.PropertySourceImpl; import javax.media.jai.PropertySourceImpl;
Expand All @@ -41,7 +38,7 @@
import org.geotools.data.ServiceInfo; import org.geotools.data.ServiceInfo;
import org.geotools.factory.Hints; import org.geotools.factory.Hints;
import org.geotools.geometry.GeneralEnvelope; import org.geotools.geometry.GeneralEnvelope;
import org.geotools.resources.Classes; import org.geotools.measure.Units;
import org.geotools.resources.coverage.CoverageUtilities; import org.geotools.resources.coverage.CoverageUtilities;
import org.geotools.util.NumberRange; import org.geotools.util.NumberRange;
import org.geotools.util.SimpleInternationalString; import org.geotools.util.SimpleInternationalString;
Expand All @@ -62,6 +59,12 @@
import org.opengis.referencing.operation.MathTransform; import org.opengis.referencing.operation.MathTransform;
import org.opengis.util.InternationalString; import org.opengis.util.InternationalString;


import it.geosolutions.imageio.maskband.DatasetLayout;
import it.geosolutions.jaiext.range.NoDataContainer;
import tec.uom.se.AbstractUnit;
import tec.uom.se.format.SimpleUnitFormat;


/** /**
* A {@link GridCoverage2DReader} wrapper to customize the {@link CoverageDimensionInfo} associated * A {@link GridCoverage2DReader} wrapper to customize the {@link CoverageDimensionInfo} associated
* with a coverage by exposing configured values such as null values, band name, and * with a coverage by exposing configured values such as null values, band name, and
Expand Down Expand Up @@ -566,7 +569,7 @@ public static WrappedSampleDimension build(GridSampleDimension sampleDim, Covera
Unit unit = defaultUnit; Unit unit = defaultUnit;
try { try {
if (uom != null) { if (uom != null) {
unit = Unit.valueOf(uom); unit = SimpleUnitFormat.getInstance().parse(uom);
} }
} catch (IllegalArgumentException iae) { } catch (IllegalArgumentException iae) {
if (LOGGER.isLoggable(Level.WARNING) && defaultUnit != null) { if (LOGGER.isLoggable(Level.WARNING) && defaultUnit != null) {
Expand Down
13 changes: 7 additions & 6 deletions src/main/src/main/java/org/geoserver/catalog/ResourcePool.java
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -39,10 +39,11 @@
import java.util.logging.Level; import java.util.logging.Level;
import java.util.logging.Logger; import java.util.logging.Logger;


import javax.measure.converter.UnitConverter; import javax.measure.UnitConverter;
import javax.measure.unit.NonSI; import si.uom.NonSI;
import javax.measure.unit.SI; import si.uom.SI;
import javax.measure.unit.Unit; import javax.measure.Unit;
import javax.measure.quantity.Length;


import org.apache.commons.io.IOUtils; import org.apache.commons.io.IOUtils;
import org.apache.commons.lang.SerializationUtils; import org.apache.commons.lang.SerializationUtils;
Expand Down Expand Up @@ -1395,10 +1396,10 @@ private Double getTolerance(FeatureTypeInfo info) {
// to the measure, we are going to use a very rough estimate (cylindrical earth model) // to the measure, we are going to use a very rough estimate (cylindrical earth model)
// TODO: maybe look at the layer bbox and get a better estimate computed at the center // TODO: maybe look at the layer bbox and get a better estimate computed at the center
// of the bbox // of the bbox
UnitConverter converter = mt.getUnit().getConverterTo(SI.METER); UnitConverter converter = mt.getUnit().asType(Length.class).getConverterTo(SI.METRE);
double tolMeters = converter.convert(mt.doubleValue()); double tolMeters = converter.convert(mt.doubleValue());
return tolMeters * OGC_METERS_TO_DEGREES; return tolMeters * OGC_METERS_TO_DEGREES;
} else if (targetUnit != null && targetUnit.isCompatible(SI.METER)) { } else if (targetUnit != null && targetUnit.isCompatible(SI.METRE)) {
// ok, we assume the target is not a geographic one, but we might // ok, we assume the target is not a geographic one, but we might
// have to convert between meters and feet maybe // have to convert between meters and feet maybe
UnitConverter converter = mt.getUnit().getConverterTo(targetUnit); UnitConverter converter = mt.getUnit().getConverterTo(targetUnit);
Expand Down
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -14,8 +14,10 @@
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;


import javax.measure.quantity.Quantity; import javax.measure.Quantity;
import javax.measure.unit.BaseUnit; import javax.measure.quantity.Dimensionless;

import tec.uom.se.unit.BaseUnit;


import org.geoserver.catalog.CoverageDimensionCustomizerReader.WrappedSampleDimension; import org.geoserver.catalog.CoverageDimensionCustomizerReader.WrappedSampleDimension;
import org.geoserver.catalog.impl.CoverageDimensionImpl; import org.geoserver.catalog.impl.CoverageDimensionImpl;
Expand Down Expand Up @@ -252,7 +254,7 @@ public void testNoRange() throws IOException {
assertEquals(wrappedName, wrappedDim.getDescription().toString()); assertEquals(wrappedName, wrappedDim.getDescription().toString());


// Configure a new GridSampleDimension without categories // Configure a new GridSampleDimension without categories
sampleDim = new GridSampleDimension("original", null, new BaseUnit<Quantity>("test")); sampleDim = new GridSampleDimension("original", null, new BaseUnit<Dimensionless>("test"));
// New wrapped sample dimension // New wrapped sample dimension
wrappedDim = WrappedSampleDimension.build(sampleDim, coverageDim); wrappedDim = WrappedSampleDimension.build(sampleDim, coverageDim);
// Get the range // Get the range
Expand Down
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;


import javax.measure.unit.SI; import si.uom.SI;
import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException; import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.OutputKeys; import javax.xml.transform.OutputKeys;
Expand Down Expand Up @@ -647,7 +647,7 @@ public void testFeatureType() throws Exception {
ft.setAbstract( "abstract"); ft.setAbstract( "abstract");
ft.setSRS( "EPSG:4326"); ft.setSRS( "EPSG:4326");
ft.setNativeCRS( CRS.decode( "EPSG:4326") ); ft.setNativeCRS( CRS.decode( "EPSG:4326") );
ft.setLinearizationTolerance(new Measure(10, SI.METER)); ft.setLinearizationTolerance(new Measure(10, SI.METRE));


ByteArrayOutputStream out = out(); ByteArrayOutputStream out = out();
persister.save( ft, out ); persister.save( ft, out );
Expand All @@ -660,7 +660,7 @@ public void testFeatureType() throws Exception {
assertEquals( ds, ft.getStore() ); assertEquals( ds, ft.getStore() );
assertEquals( ns, ft.getNamespace() ); assertEquals( ns, ft.getNamespace() );
assertEquals( "EPSG:4326", ft.getSRS() ); assertEquals( "EPSG:4326", ft.getSRS() );
assertEquals( new Measure(10, SI.METER), ft.getLinearizationTolerance() ); assertEquals( new Measure(10, SI.METRE), ft.getLinearizationTolerance() );
assertTrue( CRS.equalsIgnoreMetadata( CRS.decode( "EPSG:4326"), ft.getNativeCRS() ) ); assertTrue( CRS.equalsIgnoreMetadata( CRS.decode( "EPSG:4326"), ft.getNativeCRS() ) );
} }


Expand Down
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -5,8 +5,6 @@
*/ */
package org.geoserver.wcs2_0.response; package org.geoserver.wcs2_0.response;


import it.geosolutions.jaiext.range.NoDataContainer;

import java.awt.image.DataBuffer; import java.awt.image.DataBuffer;
import java.awt.image.RenderedImage; import java.awt.image.RenderedImage;
import java.io.IOException; import java.io.IOException;
Expand All @@ -18,8 +16,7 @@
import java.util.Set; import java.util.Set;
import java.util.TreeSet; import java.util.TreeSet;


import javax.measure.unit.Unit; import javax.measure.Unit;
import javax.measure.unit.UnitFormat;
import javax.media.jai.PlanarImage; import javax.media.jai.PlanarImage;
import javax.media.jai.iterator.RectIter; import javax.media.jai.iterator.RectIter;
import javax.media.jai.iterator.RectIterFactory; import javax.media.jai.iterator.RectIterFactory;
Expand Down Expand Up @@ -61,6 +58,9 @@
import org.xml.sax.helpers.AttributesImpl; import org.xml.sax.helpers.AttributesImpl;
import org.xml.sax.helpers.NamespaceSupport; import org.xml.sax.helpers.NamespaceSupport;


import it.geosolutions.jaiext.range.NoDataContainer;
import tec.uom.se.format.SimpleUnitFormat;

/** /**
* Internal Base {@link GMLTransformer} for DescribeCoverage and GMLCoverageEncoding * Internal Base {@link GMLTransformer} for DescribeCoverage and GMLCoverageEncoding
* *
Expand Down Expand Up @@ -662,7 +662,7 @@ public String extractUoM (CoordinateReferenceSystem crs, Unit<?> uom) {
if (crs instanceof GeographicCRS) { if (crs instanceof GeographicCRS) {
return "Deg"; return "Deg";
} }
return UnitFormat.getInstance().format(uom); return SimpleUnitFormat.getInstance().format(uom);
} }


/** /**
Expand Down Expand Up @@ -811,7 +811,7 @@ public void handleRangeType(GridCoverage2D gc2d) {
final AttributesImpl uomAttr = new AttributesImpl(); final AttributesImpl uomAttr = new AttributesImpl();
final Unit<?> uom = sd.getUnits(); final Unit<?> uom = sd.getUnits();
uomAttr.addAttribute("", "code", "code", "", uom == null ? "W.m-2.Sr-1" uomAttr.addAttribute("", "code", "code", "", uom == null ? "W.m-2.Sr-1"
: UnitFormat.getInstance().format(uom)); : SimpleUnitFormat.getInstance().format(uom));
start("swe:uom", uomAttr); start("swe:uom", uomAttr);
end("swe:uom"); end("swe:uom");


Expand Down
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -13,10 +13,12 @@
import java.util.logging.Level; import java.util.logging.Level;
import java.util.logging.Logger; import java.util.logging.Logger;


import javax.measure.unit.NonSI; import si.uom.NonSI;
import javax.measure.unit.SI; import si.uom.SI;
import javax.measure.unit.Unit; import tec.uom.se.format.SimpleUnitFormat;
import javax.measure.unit.UnitFormat;
import javax.measure.Unit;
import javax.measure.format.UnitFormat;


import org.apache.wicket.Component; import org.apache.wicket.Component;
import org.apache.wicket.ajax.AjaxRequestTarget; import org.apache.wicket.ajax.AjaxRequestTarget;
Expand Down Expand Up @@ -154,7 +156,7 @@ protected Iterator<String> getChoices(String input) {
List<String> unitNames = new ArrayList<String>(); List<String> unitNames = new ArrayList<String>();
// adding radiance as it's the most common, but it's not part of the standard units // adding radiance as it's the most common, but it's not part of the standard units
unitNames.add("W.m-2.Sr-1"); unitNames.add("W.m-2.Sr-1");
UnitFormat format = UnitFormat.getInstance(Locale.ENGLISH); UnitFormat format = SimpleUnitFormat.getInstance();
for (Unit<?> unit : units) { for (Unit<?> unit : units) {
unitNames.add(format.format(unit)); unitNames.add(format.format(unit));
} }
Expand Down
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
import java.util.List; import java.util.List;
import java.util.Locale; import java.util.Locale;


import org.apache.wicket.util.convert.ConversionException; import org.apache.wicket.util.convert.UnconvertibleException;
import org.apache.wicket.util.convert.IConverter; import org.apache.wicket.util.convert.IConverter;


/** /**
Expand All @@ -22,7 +22,7 @@ public class DecimalListConverter implements IConverter<List<Double>> {


@Override @Override
public List<Double> convertToObject(String value, Locale locale) public List<Double> convertToObject(String value, Locale locale)
throws ConversionException { throws UnconvertibleException {
List<Double> result = new ArrayList<>(); List<Double> result = new ArrayList<>();
if(value != null && !"-".equals(value.trim())) { if(value != null && !"-".equals(value.trim())) {
String[] values = value.split("\\s+"); String[] values = value.split("\\s+");
Expand Down

0 comments on commit 6371c82

Please sign in to comment.