This is an automated email from the ASF dual-hosted git repository.
desruisseaux pushed a change to branch geoapi-3.1
in repository https://gitbox.apache.org/repos/asf/sis.git.
from d416de4 Merge branch 'geoapi-4.0' into geoapi-3.1
add 92465b6 Coverage : add Linear pixel iterator
add fc59837 Coverage : fix checkstyle error in LinearIterator
add a960a63 Add the missing Apache license header. Pixel iterator
implementations should be package-private.
add 0515946 Coverage : add PixelIterator getNumBands and getSampleRange
methods
add b9a0ead Move the calculation of sample range into getSampleRange()
method since this information is expected to be requested only one or none at
all. Take in account the number of bits per pixel. Reorder a few methods for
keeping related methods together. Minor formatting.
add 4a14235 SampleDimension.getNodataValues() should returns the "no data
values" as NaN values.
add 4d757f3 Add netCDF convention for Global Change Observation Mission -
Climate (GCOM-C).
add a6762e8 Defines a customized CoordSysBuilder (from UCAR API) as a
fallback when the UCAR library could not create a coordinate system using
default conventions. This is required (but not sufficient) for decoding GCOM-W
files.
add 3e07d96 Modify the way GridGeometry are created in order to prepare
for future development where some variable dimensions are bands instead than
spatiotemporal dimensions. The information about bands will be stored in a
Variable field, based on additional temporary information to be carried by
Variable.Adjustment in a future commit.
add 8ae0b6d Complete the filtering of spatio-temporal dimensions (i.e.
exclude bands) in Variable.getGridGeometry().
add c9c9d89 Moved 'GridResource' and 'Image' classes to
org.apache.sis.internal.netcdf package. This allow us to restrict the scope of
some Variable methods.
add b38a9a6 Refactor the ReferencingUtilities.adjustWraparoundAxes(…)
static method as a WraparoundAdjustment class. The intent is to make easier to
improve it with handling of ProjectedCRS for now, maybe additional kinds of CRS
in the future.
add d290d00 AxisDirections.indexOfColinear(…) should be more robust to
case where more than one axis may be colinear. Multiple axes having the same
direction may happen with TemporalCRS (e.g. one axis is "runtime" and another
axis is "time").
add 30bf647 Add a clarification in javadoc.
add f943c9d Bug fix: when the 'areaOfInterest' has been converted to
geographic coordinates, a conversion needs to be applied on 'domainOfValidity'
too.
add 2ca3cea Coverage : new DisjointExtentException used to detect
disjoint queries on coverages
add f5a77be Complete the tests and fix an erroneous shift when the AOI is
outside the domain of validity.
add 9c98824 Add error message, add documentation, add test, and remove
calls to Math.min/max that became useless because of the new exception.
add 87ea45d Take in account the fact that the valid range of sample
values may vary for different bands.
add edaef36 Prepare netCDF RasterResource to handle variables having
bands.
add c9f4e82 More development (but still incomplete) for the support of a
netCDF dimension as bands. https://issues.apache.org/jira/browse/SIS-449
add 825bb78 Add synchronization on netCDF reader for multi-threading.
add 23333e6 Fix a NullPointerException when a netCDF file contains no
global attribute.
add 7c0adf5 More complete support of "bands in variable" in
RasterResource. We still have to add the support in Raster class.
https://issues.apache.org/jira/browse/SIS-449
add dc9805f Fix a typo in an error message.
add 7190f99 RasterResource needs to take subsampling in account when
computing the offset for reading a multi-banded variable.
add d38193b First version of a netCDF reader capable to make an image
from a variable where one of the variable dimensions is the set of bands.
add 41ccf9c Bug fix: force initialization of UCAR coordinate systems.
add 42b60b7 Coverage : add WritableGridCoverageResource interface
add 586cbed Coverage : fix checkstyle errors
add 641cbee Specifies the meaning of RenderedImage.getMinX()/getMinY()
resulting from a call to GridCoverage.render(…). Throw an exception if the
given extent is out of bounds. Fix ImageRenderer.setSampleStrid(int) method
contract.
add ced1aae Clarifications in documentation.
add 556ca7b Consolidation of the way pixel interleaved sample models are
constructed for netCDF variables where one dimension is interpreted as bands.
https://issues.apache.org/jira/browse/SIS-449
add 39162de Add a GridExtent.expand(long...) method.
add dc38509 Fix unexpected DisjointExtentException when requested image
size is 1x1 pixel.
add 32c2cdd GridDerivation.slice(DirectPosition) shall perform its
computation using the transform mapping pixel center, not pixel corner. This is
different than GridDerivation.subgrid(Envelope) which needs to continue to use
pixel corner.
add 670d050 Decoding of two-dimensional localization grid from netCDF
file check if the grid stands for a Mercator projection.
add 342ad47 Upgrade checkstyle dependency.
add a685c8a When computing a linear regression for
LocalizationGridBuilder purpose, minimize the errors on the grid indices
instead than the errors on the geospatial coordinates. This is because errors
on geospatial coordinates do not hurt, since they are corrected by the
localization grid in the second step of the coordinate transformations. However
errors on grid indices are problematic during the inverse transformation, since
they can lead to "no convergence" errors.
add 2572a48 Linearization should be attempted only when instructed by
conventions for a given netCDF file.
add 77172ed Fix a NullPointerException when the envelope do not contains
an horizontal component.
add 5617967 fix(raster): Ensure wrap-around trick is applied on grid
geometry slicing.
add da98b1f chore(raster): Add tests for grid derivation: slicing on a
corner, slicing with wrap-around.
add 923da52 Add Alexis Manin in the list of project contributors.
add b6198d0 Decode Coordinate Reference System from a netCDF file with
following attributes: "EPSG_code", "ESRI_pe_string", "GeoTransform",
"spatial_ref". Note that those attributes are not part of CF-conventions.
add 9d35fc2 Coordinate Reference System parsed from "grid_mapping"
attributes should appear in metadata.
add 232e335 Add "Pseudo Plate Carrée" pseudo-projection (EPSG:9825) as a
potential fallback when map projection is not specified in a netCDF file.
add 5806fe2 Add CommonCRS.GRS1980 enumeration value for "Unknown datum
based upon the GRS 1980 ellipsoid" (EPSG:4019). This is useful for parsing
netCDF file, which often do not specify the datum.
add f5fa5b8 If the CRS in a netCDF file seems to be a map projection but
the Grid class does not have enough information for building the right map
projection, creates an "Not specified" projection. This "not specified"
projection may be replaced by a projection parsed from Well Known Text at a
later stage during the netCDF reading process, but creating an instance in in
Grid class allow us to preserve information like mapping from CRS axes to grid
axes.
add 0826f4c For parsing GDAL attributes, use GDAL flavor of WKT 1. Avoid
to parse the same WKT many times.
add 54fd75a Refactor WraparoundAdjustment in a way that makes easier to
share code between the method working on Envelope and the method working on
DirectPosition.
add a8631e1 Make GridDerivation.subgrid(…) consistent with
GridDerivation.slice(…) regarding IncompleteGridGeometryException being thrown
if `areaOfInterest` has a CRS but `GridGeometry` has none.
add 552126a Coverage : add forConvertedValues method
add b533404 If correction for ±180° meridian crossing results in a
GridGeometry well outside its original longitude range, apply a 360°
translation on the whole grid.
add 32ac912 Add documentation and checks against integer overflow
(ArithmeticException). Make ConvertedGridCoverage package-private and declare
ConvertedColorModel as compatible with ConvertedSampleModel only. Avoid the use
of MathTransforms.compound(…) since in this particular case an ordinary loop
will be more efficient.
add c526b03 Internal class renaming.
add 37e689f Fetching file extension shall work in the case where the
given `storage` argument is already an instance of StorageConnector.
add 8a7a5d8 Add comment explaining better how the scale factors are
computed in `GridDerivation.subgrid(…)`.
add fdf30a0 Resolve name collision in RasterResource.identifier when two
netCDF variables use the same "standard_name" attribute value.
add 3b01827 Fix an IllegalArgumentException when creating one-banded
image of type DataBuffer.TYPE_INT. Remove ScaledColorSpace from public API
(provide a static method instead). Remove
ColorModelFactory.getNumBands(ColorModel) method.
add c0944af Revert commit a685c8a1bf0b412a544713f1ceda9749a995a5d6
(compute linear regression by minimizing errors in grid indices instead than
geospatial coordinates). The reason is because the "compute linear regression
in reverse way" approach brings more complexity and is not sufficient anyway;
we still needs a more sophisticated iterative algorithm in
InterpolatedTransform.Inverse.
add 40a34e9 Add explanation about the "compute linear regression in
reverse way" approach that we reverted in previous commit, so if we want to try
it again we know which commit to revert.
add 6092c0a First draft of an InterpolatedTransform algorithm using
derivative (Jacobian matrix) for deciding in which direction to compensate for
errors. Not yet enabled.
add 69e3bec Refactor the way we use ParameterDescriptorGroup,
ParameterValueGroup and "grid to target" transform in GridDatumShift in such a
way that we can keep GridDatumShiftFile internal to NADCON and NTv2
transformations. This avoid the confusion declaration of ResidualGrid as a
subtype of DatumShiftGridFile. Also moved the
DatumShiftGrid.normalizedToGridX/Y methods as package-private methods in
DatumShiftTransform; those methods should never have been public, since their
relati [...]
add d6d1dce Netcdf file opened with the UCAR library should use
NetcdfDataset.Enhance.CoordSystems at construction time. Enhancements just
before requesting coordinate systems is sometime too late. The symptom we
observed was that if metadata were requested before the resources, no grid
resources were found because the CS were not found. Invoking
NetcdfDataset.enhance(…) at construction time fix that.
add 4685195 Enable InterpolatedTransform.Inverse method based on Jacobian
matrix (but still needs more test).
add 1f24dff Calculation of derivative outside the grid must be consistent
with the way values are extrapolated by `interpolateInCell`.
add 6fd90af Add a "Satellite ground track" transform (internal only) for
trying to make GCOM data a little bit more linear before to let
LocalizationGridBuilder to its job.
add 0889fea Tuning of number of itetations and accuracy threshold.
add ccf389e Minor cleanup of debugging code.
add 8b63089 Store localization grids using single precision instead of
double precision for reducing memory consumption. We presume that single
precision is sufficient because the values stored in the `offsets` array are
differences, not absolute coordinates. The absolute coordinates will be
computed by adding `double` values to those offsets.
add 4b65135 Reduce the amount of copy-and-paste in LinearIteratorTest by
leveraging the tests provided by DefaultIteratorTest.
add 6e89c09 Use StrictMath in test classes as a matter of principle.
add aafb312 Do not return NaN for "no convergence" even in the case of
extrapolations, because tests have shown that the `grid.isCellInGrid(x,y)` may
return `false` (i.e. the point seems to be outside the grid) even when in
reality it should have been inside. In other words, we can not be sure that an
"extrapolation" is really outside the grid. The algorithm may have fail to
converge and think that the point is outside even when the point was deeply
inside (not just on the border) i [...]
new 93dca74 Merge branch 'geoapi-4.0' into geoapi-3.1. This include
mostly netCDF work, with sis-raster improvements in support.
The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
.../sis/internal/metadata/AxisDirections.java | 60 +-
.../main/java/org/apache/sis/io/wkt/Warnings.java | 2 +-
core/sis-raster/pom.xml | 14 +-
.../java/org/apache/sis/coverage/CategoryList.java | 19 +-
.../org/apache/sis/coverage/SampleDimension.java | 27 +-
...Exception.java => DisjointExtentException.java} | 34 +-
.../org/apache/sis/coverage/grid/GridCoverage.java | 71 ++-
.../apache/sis/coverage/grid/GridDerivation.java | 113 +++-
.../org/apache/sis/coverage/grid/GridExtent.java | 67 ++-
.../org/apache/sis/coverage/grid/GridGeometry.java | 19 +-
.../apache/sis/coverage/grid/ImageRenderer.java | 205 +++++--
.../java/org/apache/sis/image/DefaultIterator.java | 12 +-
.../java/org/apache/sis/image/LinearIterator.java | 90 +++
.../java/org/apache/sis/image/PixelIterator.java | 78 ++-
.../internal/coverage/BufferedGridCoverage.java | 164 ++++++
.../internal/coverage/ConvertedGridCoverage.java | 497 ++++++++++++++++
.../sis/internal/coverage}/package-info.java | 4 +-
.../sis/internal/raster/ColorModelFactory.java | 99 ++--
.../apache/sis/internal/raster/RasterFactory.java | 39 +-
.../org/apache/sis/internal/raster/Resources.java | 13 +-
.../sis/internal/raster/Resources.properties | 4 +-
.../sis/internal/raster/Resources_fr.properties | 3 +-
.../sis/internal/raster/ScaledColorSpace.java | 10 +-
.../org/apache/sis/coverage/CategoryListTest.java | 14 +-
.../apache/sis/coverage/SampleDimensionTest.java | 15 +-
.../sis/coverage/grid/GridDerivationTest.java | 124 +++-
.../apache/sis/coverage/grid/GridExtentTest.java | 42 +-
.../org/apache/sis/image/DefaultIteratorTest.java | 165 +++---
.../org/apache/sis/image/LinearIteratorTest.java | 134 +++++
.../coverage/BufferedGridCoverageTest.java | 117 ++++
.../org/apache/sis/test/suite/RasterTestSuite.java | 4 +-
.../java/org/apache/sis/geometry/Envelopes.java | 2 +-
.../internal/referencing/ReferencingUtilities.java | 215 -------
.../internal/referencing/ServicesForMetadata.java | 6 +-
.../internal/referencing/WraparoundAdjustment.java | 453 +++++++++++++++
.../referencing/j2d/AffineTransform2D.java | 4 +-
.../provider/DatumShiftGridCompressed.java | 64 ++-
.../referencing/provider/DatumShiftGridFile.java | 126 ++---
.../referencing/provider/DatumShiftGridLoader.java | 4 +-
.../referencing/provider/Equirectangular.java | 16 +-
.../provider/FranceGeocentricInterpolation.java | 2 +-
.../sis/internal/referencing/provider/NADCON.java | 4 +-
.../sis/internal/referencing/provider/NTv2.java | 2 +-
.../referencing/provider/PseudoPlateCarree.java | 71 +++
.../main/java/org/apache/sis/referencing/CRS.java | 4 +-
.../java/org/apache/sis/referencing/CommonCRS.java | 28 +-
.../sis/referencing/StandardDefinitions.java | 4 +-
.../sis/referencing/datum/DatumShiftGrid.java | 356 +++++++-----
.../referencing/operation/DefaultConversion.java | 2 +-
.../operation/builder/LinearTransformBuilder.java | 105 +++-
.../operation/builder/LocalizationGridBuilder.java | 114 ++--
.../operation/builder/ProjectedTransformTry.java | 58 +-
.../operation/builder/ResidualGrid.java | 147 +++--
.../sis/referencing/operation/builder/readme.html | 48 ++
.../operation/transform/ContextualParameters.java | 25 +-
.../transform/CoordinateSystemTransform.java | 8 +-
.../operation/transform/DatumShiftTransform.java | 109 +++-
.../transform/EllipsoidToCentricTransform.java | 6 +-
.../transform/InterpolatedGeocentricTransform.java | 15 +-
.../transform/InterpolatedMolodenskyTransform.java | 15 +-
.../operation/transform/InterpolatedTransform.java | 275 ++++-----
.../operation/transform/MolodenskyFormula.java | 4 +-
...g.opengis.referencing.operation.OperationMethod | 1 +
.../referencing/ReferencingUtilitiesTest.java | 111 +---
.../referencing/WraparoundAdjustmentTest.java | 209 +++++++
.../provider/DatumShiftGridCompressedTest.java} | 28 +-
.../provider/DatumShiftGridFileTest.java | 240 ++++++++
.../referencing/provider/ProvidersTest.java | 1 +
.../sis/referencing/EPSGFactoryFallbackTest.java | 4 +-
.../builder/LocalizationGridBuilderTest.java | 11 +-
.../operation/builder/ResidualGridTest.java | 4 +-
.../transform/ContextualParametersTest.java | 8 +-
.../transform/InterpolatedTransformTest.java | 205 +++++--
.../operation/transform/MathTransformTestCase.java | 27 +-
.../operation/transform/SinusoidalShiftGrid.java | 175 ++++++
.../sis/test/suite/ReferencingTestSuite.java | 3 +
.../java/org/apache/sis/internal/jdk9/JDK9.java | 16 +
.../org/apache/sis/internal/util/Constants.java | 14 -
.../org/apache/sis/internal/util/Numerics.java | 2 +-
.../java/org/apache/sis/internal/util/Strings.java | 28 +-
.../java/org/apache/sis/math/MathFunctions.java | 6 +-
.../java/org/apache/sis/math/RepeatedVector.java | 22 +-
.../src/main/java/org/apache/sis/math/Vector.java | 50 +-
.../main/java/org/apache/sis/util/ArraysExt.java | 30 +-
.../java/org/apache/sis/util/resources/Errors.java | 2 +-
.../apache/sis/util/resources/Errors.properties | 2 +-
.../org/apache/sis/math/MathFunctionsTest.java | 7 +-
.../org/apache/sis/math/RepeatedVectorTest.java | 53 ++
ide-project/NetBeans/build.xml | 7 +
pom.xml | 12 +-
storage/sis-earth-observation/pom.xml | 6 +
.../apache/sis/internal/earth/netcdf/GCOM_C.java | 324 +++++++++++
.../apache/sis/internal/earth/netcdf/GCOM_W.java | 222 ++++++++
.../sis/internal/earth/netcdf}/package-info.java | 7 +-
.../org.apache.sis.internal.netcdf.Convention | 2 +
.../apache/sis/storage/geotiff/Localization.java | 2 +
storage/sis-netcdf/pom.xml | 14 +
.../java/org/apache/sis/internal/netcdf/Axis.java | 77 ++-
.../org/apache/sis/internal/netcdf/CRSBuilder.java | 385 ++++++++-----
.../org/apache/sis/internal/netcdf/Convention.java | 29 +-
.../org/apache/sis/internal/netcdf/Decoder.java | 86 ++-
.../org/apache/sis/internal/netcdf/Dimension.java | 2 +-
.../java/org/apache/sis/internal/netcdf/Grid.java | 117 +++-
.../apache/sis/internal/netcdf/GridMapping.java | 385 +++++++++++++
.../org/apache/sis/internal/netcdf/Linearizer.java | 172 ++++++
.../Image.java => internal/netcdf/Raster.java} | 41 +-
.../apache/sis/internal/netcdf/RasterResource.java | 629 +++++++++++++++++++++
.../org/apache/sis/internal/netcdf/Resources.java | 8 +-
.../sis/internal/netcdf/Resources.properties | 3 +-
.../sis/internal/netcdf/Resources_fr.properties | 3 +-
.../sis/internal/netcdf/SatelliteGroundTrack.java | 246 ++++++++
.../org/apache/sis/internal/netcdf/Variable.java | 530 ++++++++++++-----
.../sis/internal/netcdf/impl/ChannelDecoder.java | 11 +-
.../apache/sis/internal/netcdf/impl/GridInfo.java | 32 +-
.../org/apache/sis/internal/netcdf/impl/HYCOM.java | 3 +-
.../sis/internal/netcdf/impl/VariableInfo.java | 33 +-
.../internal/netcdf/ucar/CSBuilderFallback.java | 93 +++
.../sis/internal/netcdf/ucar/DecoderWrapper.java | 23 +-
.../sis/internal/netcdf/ucar/GridWrapper.java | 41 +-
.../sis/internal/netcdf/ucar/VariableWrapper.java | 86 ++-
.../apache/sis/storage/netcdf/GridResource.java | 470 ---------------
.../apache/sis/storage/netcdf/MetadataReader.java | 3 +-
.../org/apache/sis/storage/netcdf/NetcdfStore.java | 3 +-
.../org/apache/sis/internal/netcdf/GridTest.java | 4 +-
.../internal/netcdf/SatelliteGroundTrackTest.java | 81 +++
.../org/apache/sis/test/suite/NetcdfTestSuite.java | 1 +
.../sis/internal/storage/AbstractGridResource.java | 216 ++++++-
.../org/apache/sis/internal/storage/Resources.java | 7 +-
.../sis/internal/storage/Resources.properties | 5 +-
.../sis/internal/storage/Resources_fr.properties | 1 +
.../sis/storage/DataStoreReferencingException.java | 10 +-
.../org/apache/sis/storage/DataStoreRegistry.java | 3 +-
.../apache/sis/storage/GridCoverageResource.java | 16 +-
.../sis/storage/IllegalFeatureTypeException.java | 3 +
.../org/apache/sis/storage/WritableAggregate.java | 14 +-
.../org/apache/sis/storage/WritableFeatureSet.java | 43 +-
.../sis/storage/WritableGridCoverageResource.java | 106 ++++
.../internal/storage/AbstractGridResourceTest.java | 93 +++
.../apache/sis/test/suite/StorageTestSuite.java | 1 +
139 files changed, 8216 insertions(+), 2305 deletions(-)
copy
core/sis-raster/src/main/java/org/apache/sis/coverage/grid/{IllegalGridGeometryException.java
=> DisjointExtentException.java} (53%)
create mode 100644
core/sis-raster/src/main/java/org/apache/sis/image/LinearIterator.java
create mode 100644
core/sis-raster/src/main/java/org/apache/sis/internal/coverage/BufferedGridCoverage.java
create mode 100644
core/sis-raster/src/main/java/org/apache/sis/internal/coverage/ConvertedGridCoverage.java
copy {application/sis-javafx/src/main/java/org/apache/sis/internal/gui =>
core/sis-raster/src/main/java/org/apache/sis/internal/coverage}/package-info.java
(93%)
create mode 100644
core/sis-raster/src/test/java/org/apache/sis/image/LinearIteratorTest.java
create mode 100644
core/sis-raster/src/test/java/org/apache/sis/internal/coverage/BufferedGridCoverageTest.java
create mode 100644
core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/WraparoundAdjustment.java
create mode 100644
core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/PseudoPlateCarree.java
create mode 100644
core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/builder/readme.html
create mode 100644
core/sis-referencing/src/test/java/org/apache/sis/internal/referencing/WraparoundAdjustmentTest.java
copy
core/sis-referencing/src/{main/java/org/apache/sis/internal/referencing/j2d/LinearTransform2D.java
=>
test/java/org/apache/sis/internal/referencing/provider/DatumShiftGridCompressedTest.java}
(51%)
create mode 100644
core/sis-referencing/src/test/java/org/apache/sis/internal/referencing/provider/DatumShiftGridFileTest.java
create mode 100644
core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/transform/SinusoidalShiftGrid.java
create mode 100644
storage/sis-earth-observation/src/main/java/org/apache/sis/internal/earth/netcdf/GCOM_C.java
create mode 100644
storage/sis-earth-observation/src/main/java/org/apache/sis/internal/earth/netcdf/GCOM_W.java
copy {core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/cat =>
storage/sis-earth-observation/src/main/java/org/apache/sis/internal/earth/netcdf}/package-info.java
(75%)
create mode 100644
storage/sis-earth-observation/src/main/resources/META-INF/services/org.apache.sis.internal.netcdf.Convention
create mode 100644
storage/sis-netcdf/src/main/java/org/apache/sis/internal/netcdf/GridMapping.java
create mode 100644
storage/sis-netcdf/src/main/java/org/apache/sis/internal/netcdf/Linearizer.java
rename
storage/sis-netcdf/src/main/java/org/apache/sis/{storage/netcdf/Image.java =>
internal/netcdf/Raster.java} (55%)
create mode 100644
storage/sis-netcdf/src/main/java/org/apache/sis/internal/netcdf/RasterResource.java
create mode 100644
storage/sis-netcdf/src/main/java/org/apache/sis/internal/netcdf/SatelliteGroundTrack.java
create mode 100644
storage/sis-netcdf/src/main/java/org/apache/sis/internal/netcdf/ucar/CSBuilderFallback.java
delete mode 100644
storage/sis-netcdf/src/main/java/org/apache/sis/storage/netcdf/GridResource.java
create mode 100644
storage/sis-netcdf/src/test/java/org/apache/sis/internal/netcdf/SatelliteGroundTrackTest.java
create mode 100644
storage/sis-storage/src/main/java/org/apache/sis/storage/WritableGridCoverageResource.java
create mode 100644
storage/sis-storage/src/test/java/org/apache/sis/internal/storage/AbstractGridResourceTest.java