You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sis.apache.org by de...@apache.org on 2021/09/10 13:53:47 UTC
[sis] branch geoapi-3.1 updated (1105c74 -> 152b383)
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 1105c74 Merge branch 'geoapi-4.0' into geoapi-3.1
add 7c7de3f7 Update pom version before release
add 569f505 refactor(SQL-Store): try to improve count operation by overriding returned stream.
add 1fb97ac feat(SQL-Store): add support for limit, offset and distinct operations via SQL calls through java.util.Stream API
add e62dde4 fix(SQLStore): fix connection auto-commit management for feature streaming.
add 69ed545 feat(SQL-Store): Add a feature set to execute custom SQL queries
add 5ae8db8 fix(SQLStore): fix checkstyle problems.
add 708faa2 fix(SQLStore): better handling of parallelization flag. Add a benchmark to test query spliterator flavors.
add e7a975a feat(SQLStore): First draft for conversion of OpenGIS Filter to SQL
add 349d1f5 feat(SQLStore): work on bbox filter and conversion between envelope and geometry
add 0d34ed8 feat(Feature): Add a tool to convert envelopes to geometries
add a786803 feat(Feature): add BBOX filter
add 2980aff fix(SQLStore): improve tests and checkstyle
add dafec8b feat(Feature): add naïve implementation of ST_Intersects
add bea8309 fix(Feature): Add CRS resolution strategy for filter operations.
add 7acadb8 feat(SQLStore): improve query feature set to delegate count and subqueries to target database.
add 4821044 refactor(SQLStore): prepare module for dialect specific syntax.
add 859a77b feat(Feature): add minor functionality to convert arbitrary geometry to polygon
add 237a71a feat(SQLStore): Add partial PostGIS support : geometries and geographies.
add b4d906c fix(SQLStore): throw proper exception on an unsupported filter.
add 341f3ac doc(SQLStore): add api doc about new components for SQL feature sets.
add 4ac566e fix(SQLStore): add tests for EWKB decoding. Fix multi-polygon reading.
add 7d8921b refactor(SQLStore): try to generify SQL geometry management.
add 01a5d2a doc(SQLStore): minor cleanups + javadoc.
add 71a39a3 chore(*): add missing headers on source files.
add f4c4b9c CoverageResource : add GridCoverageResource subset method and Coverage Query
add e4606ae Provide a default implementation for GridCoverageResource.subset(Query). Not yet in public API; pending the gain of more experience.
add bec5a17 CoverageSubset clip the area to read to the area of interest specified in the query.
add d044b3f Rename some non-standard @SuppressWarnings to value recognized by NetBeans.
add bcff144 Fix javadoc errors when building with Java 13.
add 02e7b0c More accurate exception when query does not intercept data.
add 9c79f39 If the locale starts with a # character (e.g. "#fra"), skip the "#" character.
add 0e4d884 DataStore : add additional store metadata informations, Capability.CREATE and resource types
add 0aefac6 Restart the javafx module: remove dependencies to Swing and icons (we may bring them back from history later if desired). Start the refactoring of classes. The controls (resource viewer, metadata viewer, etc.) will get major changes in next commits.
add 8b95369 Add Aggregate to the list of resource types produced by some data stores.
add d95803e Revert to the previous pom.xml setting for JavaFX where the full installation must be provided by user. For developping that module, use the NetBeans Ant project instead provided that the user does the required setup.
add cea54a4 Remove the resource tree management and data loading from ResourceView. They are replaced by ResourceTree.
add c7a6e01 Filter : add between filter implementation
add f97e125 Improve the use of background threads, enable "drag and drop" and allow to close resources.
add bd1fe00 Filter: add capabilities classes, still need to commplete tests and equals/hash/serialization
add a28a3fc Consolidate ResourceTree. Begins refactoring of ResourceExplorer.
add 89f5d43 Close the data stores when ask to close them and when the application stop.
add f1f225f When a resource is selected in the TreeView, update the MetadataOverview accordingly.
add 14bf170 Reconnect the MetadataOverview panel to the small map showing data position on world.
add 3cbf651 Add scroll pane and more dynamic inclusion/exclusion of sections in metadata overview.
add 607b211 Consolidation, improve documentation and complete some internationalization.
add 1fa914b Rename Form as MetadataSection.
add ab418a8 Handle bounding boxes crossing the anti-meridian.
add 62f3cb5 Remove the loading of GridGeometry in metadata overview panel. For some formats this is a significant cost since it may force the loading of a localization grid.
add 3fe5b0a Remove for now the contact section since it was not completed.
add 59a4311 Make grid dimensions more tolerant to missing information.
add 7cd909e Move MetadataOverview back to its own package. The intent is to make easier to split the sections in separated classes.
add 8b566c3 Move MetadataOverview inner classes as top-level classes.
add 8818eb9 Add Google Summer of Code credits.
add 3637132 Rename MetadataOverview as MetadataSummary and put those metadata in a "summary" tab. Move also the world map in the "metadata" package; it was forgotten in previous commit and is necessary for avoiding a NullPointerException.
add 042c7e9 Connect MetadataSummary to MetadataTree. The tree view is provided in a separated tab.
add ac48b98 Consolidation: - Remove CollectionsExt.nonEmptyIterator, replaced by cleaner use of nonNull(Collection). - Remove (text != null && !(text = text.trim()).isEmpty()) statement (they were many), replaced by a call to new internal method Strings.trimOrNull(String). - Add an IdentifiedObjects.getDisplayName method as use it where we intended to have a name for displaying purpose.
add eff5800 Adjustment in the construction of titles to show to user.
add 942ecdf Upgrade Maven dependency.
add ab93f5a Show the stack trace when we failed to load a resource.
add f2311f5 Fix rendering of map in the east hemisphere and when crossing anti-meridian.
add eae5ae1 Filter : prepare PropertyIsLike filter implementation
add 20e2995 Filter : add spatial filter classes, not implemented yet, this allows more CQL tests to be activated
add 41e610d First revision of FeatureTable. Data are loaded in a background thread by pages of 100 features. The work is not complete: the loading of next page is not yet delayed until first needed.
add cb86b7f Avoid a broken link for now (for avoiding a compilation error).
add 52089a1 Filter : add SQL/MM ST_Simplify and ST_SimplifyPreserveTopology functions
add 17aabb3 Filter : implement and tests for spatial functions
add 2ee44e7 Move Feature.Loader in a top-level class for more code readability.
add 77d3a63 Load only a small number of features, with more features loaded only when needed.
add cd32723 Filter : add spatial function serialization tests
add de47cb2 Simplify FeatureLoader by replacing the `Initial` inner class by an `initializer` field. Fix a resource leak: Stream was not closed if the `estimatedSize` was actually exact.
add 7e1fe6f Show the exception in the table when an error occurred while loading the data.
add 941ef8a Handle small image loading in a separated class for making easier to share.
add 7718619 If a feature contains multi-valued properties, make possible to see their values on demand.
add 8043e5e Define FeatureTable content as a property and add warning in documentation about what can be modified.
add bc605ab Add some notes about further work that needs to be done.
add 6a6a650 Begin refactoring of CRSChooser.
add 6b11704 CRSChooser builds its list of CRS in a background thread. Filtering delegated to JavaFX FilteredList class.
add b0b38a0 Refactor CRSChooser as a Dialog subclass.
add 5f84c5b Fix an IndexOutOfBoundsException when showing an empty list of features. Avoid drawing a line on image border when rectangle cross anti-meridian.
add 30ef29f Factor out the CRS filter predicate in a separated class. Put an hourglass icon while loading CRS tabular data.
add adafeb6 Coverage : add GridCoverage implementation based on a RenderedImage
add 15e88bb Merge branch 'geoapi-4.0' into refactor/sql-store
add c490618 fix(*): fix merge
add 65e7ddd refactor(Feature): Merge duplicate bbox and intersection operators (SQLMM and Filter encoding)
add 716f0b7 chore(Feature): add cross-CRS test for intersection operator.
add d8ef0b0 Upgrade NetBeans project files for NetBeans 11.2.
add d358212 Minor renaming and UI adjustment.
add 8afd4db Change default namespace of legacy "gmd" metadata from "http://schemas.opengis.net/iso/19139/20070417/" to "http://www.isotc211.org/2005/" and update XML documentation accordingly. The new documentation anticipate on support for control on gmi and gml namespace, to be provided in a next commit. The change required that we move ISO schema location from "http" to "https" protocol in order to tests. However SchemaComplianceTest is now broken, until we also move from "http" [...]
add 8d6c67f Minor cleanup related to the "xmlns:gmd" namespace change.
add 8289eef Abandon the attemps to fix https://issues.apache.org/jira/browse/SIS-481. Tried hard, I have been unable to take dynamic control on the namespace. This causes also abandon of https://issues.apache.org/jira/browse/SIS-482
add 5c209b0 Coverage : first implementation of evaluate method for GridCoverage2D
add 84fd34f Image : add TranslatedRenderedImage
add 173ab3a Coverage : add evaluate method on GridCoverage class
add 8bcba3d Merge branch 'geoapi-4.0' into refactor/sql-store
add 603d5da fix(CQL): fix bbox writing by avoiding deprecated methods.
add e8f3b11 fix(*): Fix version number inherited from private tag.
add b5508f6 Coverage : add GridCoverage2D specific 2D methods
add 91a77c4 Shapefile : add cpg file utility class
add cd05f3d SQL : add javadoc author and version tag on SQL classes
add 8458471 Portrayal : add canvas and render exception prototypes
add 3f2318c Filter : add SQL/MM ST_Point function
add 45ce640 Filter : add SQL/MM ST_LineString function
add e0b32d6 fix(SQLStore): add missing origin table on SQL column definition.
add 41cca84 SQL/MM : regroup all functions in an internal package
add e735e9a SQL/MM : add all specification expressions
add fef9516 Merge branch 'feat/sqlmm' into geoapi-4.0
add e79f07f Coverage2D : add sample dimension and rendered image bands size match verification
add 458f3ce Move the microbenchmarks to test directory for avoiding to introduce dependencies at runtime. Fix also some javadoc errors for allowing the project to build with checks enabled.
add 92f425d Referencing bug fix: CoordinateOperation metadata were sometime overwritten by CoordinateSystem metadata. https://issues.apache.org/jira/browse/SIS-483
add 6619c1f Less misleading error messages when a datum shift grid such as NTv2 can not be found. The previous message was saying that it can not be read, which gave the impression that the file has been found but there were some problem with it.
add a234d6d Image : fix getData X axis iteration in getData method
add 0f90b1a Image : fix missing translation in AbstractRenderedImage.getData() method
add fb1d4e2 Adjust indentation and omit the properties for JUnit versions, temporarily replaced by hard-coded version numbers. The intent is to inherit those version numbers from GeoAPI since they are used for the conformance test suite. GeoAPI migration to JUnit 5 started in the "jupiter" branch.
add 0431f2e Partial review of GridCoverage.evaluate(DirectPosition) method. - Add a new FractionalGridCoordinates class with some of the calculations done by GridCoverage methods. - Rename toGridCoord as toGridCoordinates and change the return type to FractionalGridCoordinates. - Remove toLongExact(DirectPosition), replaced by FractionalGridCoordinates.
add 4358ee9 Adjustment in the exception thrown if grid coordinates are outside the given bounds.
add 67c5d18 Add an `ImageUtilities` class for methods to be needed by `GridCoverage2D`.
add 3c22971 Portrayal : add query property on MapLayer, add grid geometry 2d on GridCanvas
add aea19ce Portrayal : factorize code between MapContext and MapGroup, add event listeners
add 262e966 Move GridCoverage2D to public API and revisit method contract / implementation.
add a57da1e More tests about the inferrence of band names from a color model.
add 6fc05b4 Some map projections need explicit wraparound when the difference between given longitude and central meridian is greater than 180°. This commit applies the fix on Albers Equal Area.
add 8c761eb Apply the wrapparound longitude on other map projections that may be affected by this problem. A bug fix in previous commit has also be corrected: missing a factor 2 in θ_span calculation.
add 42eed3c Change strategy regarding https://issues.apache.org/jira/browse/SIS-486 fix by shifting longitude only if needed for the anti-meridian problem and not in other cases. The intent is to reduce discontinuities in the mathematical function.
add e79c07b Share code between GridCoverage and GridCoverage2D for implementation of their `evaluate(DirectPosition, double[])` method. Also split GridCoverage2DTest in two test methods.
add e2dde20 Move in a single package all Java2D dependencies (except public API) used by grid coverage.
add 5491224 Fix compiler error in Javadoc.
add 76376e3 Add an ImageUtilities.createGrayScale(…) factory method.
add d768f64 Complete AbstractRenderedImage and add an initial test.
add 0f3ada7 GridCoverage2D.toString() provides some information about the image (origin, tile size, data type, whether the image is opaque).
add 8f5a5a8 Add one more test.
add eb10ec8 Modify the semantic of TranslatedRenderedImage for storing a location instead than a translation. Rename that class as RelocatedImage to reflect that semantic change.
add ca3387e Move RelocatedImage as a package-private class accessible (for now) only from public static function. Rename AbstractRenderedImage as PlanarImage (taking inspiration from Java Advanced Imaging - JAI) with the intent to set it as the base class of most RenderedImage implementations in Apache SIS.
add c39230c Move RelocatedImage in the org.apache.sis.coverage.grid package and make it more specific to GridCoverage2D purpose. In particular we add the capability to produce a smaller image by retaining only the tiles needed for the request.
add 9a6ace7 Remove one level of indirection when the image given to GridCoverage2D is a RelocatedImage. Relax the check for sample model size compared to tile size.
add bc51b96 Rename RelocatedImage as ReshapedImage because this class can also change the image size.
add 62cea41 Share TiledImageMock implementation with other tests.
add a32a606 Add more tests for ReshapedImage and fix a few bugs in this process.
add eb9ad25 Move PlanarImage in public API. I think it has reasonable chances to be stable now.
add 6ef7876 Initial implementation of CachedImage. The intent is to hold the result of operations applied on other images. After completion, it will replace ConvertedGridCoverage.
add 963004a Avoid a NullPointerException on call to `getMetadata()`.
add ae19e93 Base class for image operations.
add bd7b424 Rename CachedImage as ComputedImage and retrofit part of ImageOperation in it.
add be0c053 Add ImageLayout as a helper class for setting the tiling used by ComputedImage.
add efd6eaa Move ComputedImage in public API.
add 2dff54f First draft of BandedSampleConverter (not yet tested).
add ac2fc3e Add tests for BandedSampleConverter.
add b1dc326 Add test for ComputedImage.
add b372f87 Consolidation of Raster/ColorModel/SampleModel factories.
add e8aa999 Replace ConvertedGridCoverage body by new code usinb BandedSampleConverter. We lost write capability in converted values for now.
add db59cb5 Move a WKT utility method to WKTUtilities internal class.
add 22ea241 ComputedImage tracks changes in its WritableRenderedImage sources in order to know which tiles to recompute.
add 5d08bd4 Clarify ComputedImage assumptions on pixel coordinate system.
add 6f551c4 ConvertedGridCoverage should provide a non-null ColorModel.
add c7b967d Move ConvertedGridCoverage to package-private class.
add edfff44 Add a check for null JNDI context.
add 6380604 Begin support of WritableRenderedImage in ComputedImage.
add e2a8c3d ComputedImage consolidation: - Remember when we failed to compute a tile. - Detect when a tile goes from having no writers to having one writer, or conversely. - Add documentation about behavior when image is also WritableRenderedImage.
add 0d36b92 Add a `clearErrorFlags` method and add tests.
add 0773330 Documentation update, in particular about WritableRenderedImage synchronization issue. https://issues.apache.org/jira/browse/SIS-487
add 4322a73 Writing in ConvertedGridCoverage can now retro-propagate the changes to original WritableRenderedImage.
add 7624b44 Retro-propagation of changes in converted values need to verify the bounds of the region to propagate.
add 4bba629 Test of BufferedGridCoverage can share the test of GridCoverage2D (reduce code duplication).
add ce51d34 After doing retro-propagation of converted values to source integer values, we should declare the tiles as dirty because converting back to "geophysics" values may produce slightly different results.
add 49c68b4 Leverage ArgumentChecks.ensureNonEmpty(…) where appropriate. Restore some import statements to their original order for reducing the risk of conflicts when we will merge to master (we will need to choose later a more general approach for managing import statements).
add 1c506b3 Move Schemas constant into CodeListUID for avoiding confusion: those URL are no longer the URL where to download the XML schemas since the protocol changed from "http" to "https". They are now only namespace for "codeList" ou "uom" attribute values in some XML elements. https://issues.apache.org/jira/browse/SIS-480
add 3b73a08 Add axis names for extra-terrestial planets.
add 3993e51 Documentation updates and minor code adjustments. Some import statements were restored to their original order to reducing conflicts when we will merge to master (the use of automatic tools for managing import statements is a question to be revisited later).
add b9bfce3 Rename Features.castOrUnwrap(IdentifiedType) as Features.toAttribute(IdentifiedType) and use it where appropriate.
add b961b32 Bug fix: read character set if not empty.
add b9fe509 Conservatively fix CPG encoding to US_ASCII. Unwrap UncheckedIOException (or similar "exception wrappers") before to wrap them in ImagingOpException.
add d70c166 Move QuadTreeWriter close to QuadTreeReader. We do this move for making history a little bit cleaner.
add 3954de8 Remove application/sis-webapp implementation but keep the module for future development. This module has not been maintained for 7 years, still had links to incubator, has been reported to not work anymore (e.g. all links in "sis-location-config.xml" are dead) and is the only module using the QuadTree class, which may need incompatible API changes as warned in its javadoc. This module has been excluded from Apache SIS 1.0 release for above reasons. A reboot of this effor [...]
add e4dba07 Refactor QuadTree: - Remove the assumption that coordinates are geographic. - Remove hard-coded constants for Earth radius. - Remove requirement that values implement QuadTreeData. - Allow any kind of Object specified by generic type. - Perform search with parallelizable streams. - Prepare for generalization to k-dimensions.
add c2a2897 Move QuadTree implementation into KDTree after generalization to the n-dimensional case. Tested in two-dimensional case but not yet with higher dimensions. For now the maximal number of dimensions is 6.
add f23b1d0 Move the KDTree/QuadTree implementation to sis-feature module and rename as PointTree (as opposed to "region QuadTree" or to RTree).
add 2ce1448 Add documentation and more argument checks.
add 5d975b2 First version of PointTree as a java.util.Set implementation. Optimized version of `contains` and `remove` to be provided in a next commit.
add a579136 Implement PointTree.contains(Object). Implementation of removal operation is differed to a later version.
add 29ac56d Initial implementation of Spliterator.trySplit() for parallelism during PointTree traversal. Implementation is incomplete since it splits only the first node; we should go down in other nodes too.
add b0b189c Minor cleanup on filter package. The change in imports order is for reducing the risk of conflicts when code will be marged to master.
add 8737d30 Trivial formatting.
add 262c864 Rename WrapResolution as WraparoundStrategy and minor formatting.
add bebba43 Add a test for NodeIterator.trySplit().
add 7e8d056 Minor documentation correction, argument checks and add "TODO" tag for remembering next work to do.
add 6fee246 Review of the methods added in Geometries internal class: - Be more specific about whether we unwrap GeometryWrapper or not. - Keep classical loops in this case. Actually since those loops are very small, applying lambda in Geometries require about twice more lines of code than loops. - Revert to package-private access some methods that, when public, encouraged the writing of code specific to a single geometry library. - Change some implementation to have a consisten [...]
add a3ddd65 Add a copy constructor to PointTree. This constructor share the data structures than can safely be shared, in order to reduce memory usage.
add f7b4b91 Use a pre-allocated buffer for storing the coordinate values during traversal of elements in a PointTree.
add 40a0cee Remove use of @Generated annotation.
add 08012a9 Add documentation about purpose of a method and what improvement could be done.
add db11d82 Provide more control on the way to handle wraparound axis (e.g. longitude crossing the anti-meridian): - Move WraparoundMethod enumeration to public API and document more. - Add a GeneralEnvelope.wraparound(WraparoundMethod) method. - Add a GeneralEnvelope.horizontal() method (side-effect of next point). - Refactor Geometries.toGeometry2D(Envelope, WraparoundMethod) to use GeneralEnvelope methods. - Replace "envelope spanning the anti-meridian" by "envelope crossing the [...]
add 6aa28f8 Modify the JTS factory class for building JTS Polygon more directly, and complete javadoc.
add e165916 Change strategy about the way we handle different geometry libraries (ESRI, JTS, Java2D). The previous strategy was to put all methods in Geometries class, which was okay for a small number of methods. But with recent increase in number of methods, the Geometries class was becoming more convolved and inefficient. The new strategy moves non-factory methods (geometry instance methods) in the GeometryWrapper class, which starts behaving a little bit more like an API abstrac [...]
add 617c6d0 fix(Feature): Do not fail decoding a linestring with only three points whose first and last are the same.
add 28e8dc3 Keep the previous order of import statements for now. We will need some mechanism for handling that automatically in the future, but for now the intent is to reduce the risk of merge conflicts when the "geoapi-4.0" branch will be merged to "geoapi-3.1" and "master" branches.
add e8a77fa Resolve a race condition during class initialization: a Factory.INSTANCE field may be temporarily null during Factory class initialization if the initialization of that class started before Geometries class initialization.
add b2d5797 Remove empty implementations of methods that were removed from GeoAPI-pending.
add d0c9b54 Add a window for showing data (Features in current version, coverages in a future commit).
add 1203628 Move window management in a separated WindowManager class.
add 871fa33 Minor documentation fixes and interrupt loading when the FeatureSet is discarded.
add f7798ef First draft of a control showing sample values from a large tiled image.
add a70927e Fix numerous problems in the initial GridView implementation (horizontal scroll bar was not visible, too many GridCell nodes were created, etc.)
add 60f9fee Fix broken link.
add ee71343 A little bit of formatting improvements.
add 65e63cc Complete the formatting of header row on top of the grid view area.
add d0c3715 Add a little bit more space to the header row. This use of `cellSpacing` for that purpose is a little bit arbitrary.
add 574fd06 Implement loading of tiles in background thread.
add e2fb98c Prevent having many threads requesting the same tile.
add 7fa7573 Replaced the `loading` flag by `status` with more advanced cabability to report error.
add 054d322 Portrayal : update mapitem API
add b03c4e0 Fix an error in check for y bounds when RenderedImage.getMinY() is not zero. Numbers shown in header column and header row should starts at RenderedImage.getMinX() and getMinY().
add 48f9399 Fix layout of error message.
add bac4f07 In case of failure to fetch tiles, show error controls for every failed tiles instead than only the "widest" one. Actually it makes code simpler.
add 131091f Add a test application for manual testing of GridView.
add 3bcec55 Use a fixed seed for avoiding a random (even if rare) test failure.
add bfd2d3c Give a way to export metadata information, through clipboard for now.
add fd6d394 Copy also the Coordinate Reference System, in WKT or GML.
add 3f6570e The call to Arrays.sort(…) make unecessary the attempt to write indice in increasing order, which we the purpose of System.arraycopy(…) call.
add cd4198d Fix header row (was not visible anymore).
add b07299c Connect Gridview to the ResourceExplorer: grid data are now shown when a GridCoverageResource is selected.
add 3605f9a An attempt to fix the problem of cells sometime missing in header rows the fist time that the grid is shown.
add b6a1403 Remove methods that we are not sure enough they will be appropriate.
add 2709d98 Add an API for requesting only an overview. Not yet fully enabled since subsampling would require an improvement in GridView.
add 08bc5dc Show converted values (instead of "raw" sample values) in GridView. The converted values are the values in unit of measurement like °C, after application of transfer function.
add 0bbdf79 Revert "An attempt to fix the problem of cells sometime missing in header rows the fist time that the grid is shown." It did not worked better. Since the problem appears only in some occasions and disappear on the first scrolling action, we leave it as it for now. This reverts commit 3605f9aa45fd9e71071f873a70e3caa4e63bc1b8.
add 22d2a86 Fix wrong value initially shown when the first values are NaN.
add c322484 Load grid data only if the "data" tab content is visible.
add cf18ddf Show coverage data in a separated window, with initial set of controls (only a list of sample dimensions for now).
add 5e91876 List the sample dimensions in CoverageExplorer.
add 09cd4dd Fix a NullPointerException.
add e6f51e8 Handle formatting of cell values in a separated class, for making easier to share with the table of sample dimensions (to be provided in a future commit).
add 8c19cc0 Show coverage sample dimensions in a table, with min/max values and units of measurement.
add ac017a7 Finally found the cause of header row sometime not showing.
add 6e86c5e Provide controls for cells size.
add 335984c Remove the control for cell spacing since it is likely to be more confusing than helpful.
add 136d403 Highlight the cell under mouse position. We will provide geographic coordinates of that cell in a future commit.
add 37696ea Display geographic or projected coordinates of selected cell.
add b4ba732 Fix an horizontal offset in the selected cell.
add 55f5813 Make native (implementation-dependent) NetCDF metadata available.
add 1fd64e4 NetCDF native metadata should include attributes of variables (in addition of global attributes).
add 3c438f1 Allow special case for parsing units of measurement in GCOM-W files.
add 92dc482 Update the values shown in GridView according the band selected in the sample dimensions table.
add 012d9b3 Add documentation on some portrayal classes.
add 2eafd3c Edit javadoc for `MapLayer`. Note: we omit the message saying that this class may change in future version; this is the case of anything in "internal" packages.
add 7db89b6 Fix a NullPointerException (bug identified by Johann).
add 0d04f2d Renamed "resource" property as "data".
add dc3f688 Javadoc.
add fc88ca5 Javadoc clarification, second round.
add c936bda Start drafting a Canvas class as the common abstraction for implementations that manage the display of MapLayer instances.
add a4c302f Defines the 4 fundamental properties of Canvas and document their purpose and constraint.
add 32546a8 Rename Canvas2D as PlanarCanvas because the constraint is not only to be two-dimensional, but also to use a Cartesian coordinate system (as opposed to the coordinate system of planetarium dome for example).
add 3fd95d9 Add a Matrices.createAffine(Matrix, DirectPosition) method, to be used by ongoing work on Canvas.
add 7c0e987 Add a MathTransforms.tangent(MathTransform, DirectPosition) method for computing linear approximation of a MathTransform at a given location.
add 480c551 Start writting the actual code for Canvas (not yet completed).
add 62eb5d1 First draft of Canvas.getGridGeometry() taking in account the supplemental dimensions (i.e. the dimensions of the Point Of Interest that are not in the objective CRS).
add e86ef7f Complete Canvas.getGridGeometry() - not yet tested.
add 5b1726a First implementation of Canvas.setGridGeometry(…) - not yet tested.
add ffe449c Do not fire "gridGeometry" property change anymore and add documentation explaining the policy.
add 88b18df First draft of Canvas.getGeographicArea() and getSpatialResolution(), and use those information when searching for a CoordinateOperation.
add c060095 Document the approximation done regarding CoordinateOperationContext when changing the objective CRS or the Point Of Interest (POI). Replace the use of "Authalic radius" by "Radius of conformal sphere" at the latitude where the spatial resolution is computed.
add 292c356 Review the NTv2 grid reader before upgrade to multi-grid support. Opportunistically prepare to support NTv1 in addition to NTv2.
add b0f4cd9 Fix a (previously random) test parameter value for avoiding random test failures.
add 9d2b7b5 Read all sub-grids and organize them in a tree (not yet stored). We still have to resolve the case where there is more than one root.
add b25ef83 Change the strategy in the way the DatumShiftGrid tree is contructed by NTv2 loader. In other classes, improve a bit the documentation and the toString() result.
add 8a462de Port MosaicCalculator from Geotk (was named "RegionCalculator") for use by DatumShiftGridGroup, itself used by NTv2 reader when a NTv2 file contains more than one grid without common parent. The intent is to figure out how to layout the 114 sub-grids found in NTv2 file when the file provided limited information about the parent-child relationships, especially close to the root.
add 327b2df Refactor a bit DatumShiftGridGroup for computing sub-grid coordinates in a more direct way than using AffineTransform. This change allows us to fix a bug, where the translation that we got was not adjusted for the different size of the cell.
add e900738 Renamed MosaicCalculator as TileOrganizer.
add ce34db4 Renamed TranslatedTransform as TileTranslation.
add 901921c Consolidation of multi-grids NTv2 support with the addition of documentation and tests.
add c484cfb When a point to transform is outside all sub-grids provided by a NTv2 file, take the nearest grid.
add e16a2c4 Change the policy of DatumShiftGrid.getDomainOfValidity(): compute the envelope from cell center, not cell border. This is necessary for avoiding spurious overlaps when two grids are side-by-side (in principle without overlapping) but one grid has larger cells than the other other grid. The 0.5 cell expansion caused the grid with larger cells to overlap the grid with smaller cells. This problem happens with NTv2 datum shift grid.
add ffe4da9 Delegate the choice of NTv2 sub-grid to SpecializableTransform. With this commit, DatumShiftGridGroup.interpolateInCell(…) really become only a fallback (except during inverse transforms).
add cd87c70 Replace the half-backed mechanism in SpecializableTransform by something closer to an R-Tree. This is not yet a "professional" R-Tree; it requires that nodes for widest areas are added first and even in those condition the tree may not be well equilibrated. But it will hopefully do the work for the foreseeing time until we implement a real R-Tree.
add c50586b Add "National Transformation version 1" (EPSG:9614) operation method.
add a581d4e Replace `distance` method by `distanceSquared` for avoiding the Math.hypot(…) cost.
add a4bf8d4 Make GridDerivation more flexible in two ways: 1) If both envelopes contain only an Envelope, compoute the envelopes intersection. 2) If only a margin is specified, apply that margin even if no other change is specified.
add 8f4d5c3 Move TileTranslation as an inner class for keeping it close to the only code where it is used.
add 717c52b Rename Tile.getAbsoluteRegion() as getRegionOnFinestLevel() and add check against integer overflows.
add cbcfca6 Provide control on the number of fraction digits shown in the GridView cells.
add e557a14 Initial version of a viewer of RenderedImage.
add 6f54acf Fix a ClassCastException reported on mailing list.
add 8032164 Documentation cleanup.
add 0853138 Handle the case where the longitude value of the point to transform using a datum shift is on the other side of the ±180° meridian compared to the region where the grid is defined. Example: NADCON file for Alaska which is defined in the [−194° … −127.875°] range of longitude value, so the +170° longitude needs to be converted to −190° before it can be used.
add f8b3f5e First attempt to apply the fix for NADCON grids crossing anti-meridian to NetCDF localization grids crossing the anti-meridian. Current fix may be okay for grid without rotations or with a 90° rotation, but may not be okay in the general case. A better fix may require an API change in DatumShiftGrid.replaceOutsideGridCoordinate(…).
add e11726f Change DatumShiftGrid.replaceOutsideGridCoordinates(…) API for processing all dimensions at once. This is needed when a shift of 360° of longitude (for example) corresponds in a change of grid indices in all dimensions, because the grid is inclined.
add 7e9faf3 Basic navigation between the window showing tabular data and the window showing the image (empty for now).
add c46f427 Workaround a bug of BufferedImage.getTileGridXOffset() / getTileGridYOffset() not returning zero (contrarily to what their javadoc said).
add e819438 Add reference to bug https://bugs.openjdk.java.net/browse/JDK-8166038
add 89b6293 Consolidation of the we relate "tabular data window" and "visualization window".
add 149e764 Fix a NullPointerException when showing the FeatureTable window before the corresponding tab in the overview window has been made visible.
add 8ade352 Try again to fix the problem of missing column headers. This hack seems to work.
add 7193100 First draft of a CoverageView window showing the image (identity transform only for now).
add 2d4382a Add transparency support in images backed by ScaledColorSpace.
add 0b64c9b Consolidation of ScaledColorSpace / ScaledColorModel.
add 3195e47 Reduce the number of Locale object we carry. They are not needed at this time since the application is shown in default locale only, and the information is tedious to transfer between various objects.
add b08e247 Reorganize the construction of CoverageExplorer in a way that make easier to provide different views (tabular or image) of the GridCoverage in the same DataWindow. First draft of controls for the GridCoverage rendered image.
add 8d17146 Remove (for now) the code managing related windows since it is no longer used. We may bring it back later but in another form.
add cffed6a Provide more control on the image shown. Control on background color make easier to distinguish the missing values. Control on range to use for scaling gray tone will in in place but the actual action will be the purpose of the next commit.
add aaf65e7 Define a policy about thread pool in Apache SIS: JDK common pool reserved for short computational tasks without blocking operations, sis-util pool for longer potentially blocking tasks limited to the number of available CPU, and sis-javafx pool for immediate execution regardless if CPU are already busy or not. Initial version of TileOpExecutor capable to parallelize the operations on a RenderedImage using sis-util thread pool. First draft of ImageOperations convenience m [...]
add 7514d35 Rename PropertyCalculator as AnnotatedImage (the properties are the annotations) and expose less implementation details. Allow sequential computation for the RenderedImage implementations that are not thread-safe. Add tests.
add d1e0024 Move out the formatting code that check for special types (InternationalString, ControlledVocabulary, Enum, Locale, TimeZone, Currency, Charset, etc.) so it can be shared by the JavaFX application. The intent is to have range of values (given as array of 2 elements) shown in a readable way.
add ca055b6 Provides default values for more properties in a netCDF Coordinate Reference System for making possible to open a file even if the CRS is not well defined.
add f2e9be1 Use a fallback coordinate system when we can not determine its type.
add 39c5396 Adjust the number of fraction digits shown in coordinate values according the pixel resolution at that position. This resolution may change at any position if the `gridToCRS` transform is non-linear.
add 5b6f88a Consolidation of the policy about handling of errors during statistics computation.
add 52c0706 Cache previously computed values even if they were computed by other AnnotatedImage instances, as long as they were doing the same operation on the same image.
add 9c1c34c Manage the cache in AnnotatedImage class instead than ImageOperations for a better separation of tasks. A future version of ImageOperations may create other kinds of images, in which case we would probably not want to mix the caches. Also clarify the policy about error management: we cache only the properties computed fully without errors.
add 626cf06 Use statistics for adjusting the minimum and maximum values between which the gray scale tones are applied.
add 8aa76e3 Render image in background for avoiding to block the JavaFX thread.
add ab5f516 Show the geographic coordinates of pixel under mouse pointer.
add a126136 Provides an indication that work is in progress and report error in the status bar.
add 530a5af Avoid sending tons of repaint requests if a rendering process is already in progress.
add a203f47 Make ImageOperations configurable.
add cab811d Move in a `MapCanvas` parent class the map rendering that can be done with any Graphics2D handler, not only `RenderedImage`.
add 8fd1a2f The AffineTransform used for rendering coverage needs to be the concatenation of "grid to CRS" + "objective to display", assuming that "grid CRS" = "objective CRS". This will be needed later for zoom, translations, etc.
add 5d63cb1 Zoom out for showing the full coverage.
add 8f5c507 Center the image.
add da15d49 Move the computation of initial zoom to the MapCanvas parent class, so it can be used by other implementations than `CoverageView`.
add f85e424 Be a little bit more tolerant to NaN values during the "units to sample" conversions. Previous behavior was to throw a TransformException because we don't know which value to use. This commit relaxes a little bit this behavior with the following heuristic rules:
add 0280ffb Fix a MismatchedDimensionException when extracting the horizontal component of a three-dimensional ProjectedCRS.
add bda2ec8 Comment formatting.
add 6ff3fd2 Move in a separated class (LocalDataSource) the code from Initializer.getDataSource() which was managing a local installation of the database. With this move, it is easier to manage an alternative database (HSQLDB) in addition to Derby for local storage.
add 8011fe0 In a call to `GridGeometry.reduce(…)`, the number of CRS dimensions is not necessarily the same than the number of grid dimensions.
add 1f4f6e4 When invoking GridGeometry.reduce(…), try to reduce the number of CRS dimensions by the same amount than the reduction in grid dimensions.
add 221bbc1 Compensate for non-square pixels when computing with CRS axes are more closely related with grid axes.
add 3d1ad33 Remove support for JavaDB.
add 97edb07 Minor documentation updates. Addition of a more efficient `PixelIterator.getPosition(double[])` method.
add 112f191 When rounding from Envelope to GridExtent result in lower == upper, must ensure than [lower … upper] contains the coordinate.
add 19a38a2 Fix GCOM-C unit of measurement. Avoid displaying extraneous fraction digits.
add b37fde6 Try to produce better identifiers and title for netCDF variables. The identifier excludes the "long_name" attribute, which is sometime more like a sentence than an identifier (the standard name or variable name provides more stable identifiers). Conversely the `metadata.citation.title` uses the "long_name" attribute as first choice, formatted in a way more like English sentence (with '_' and CamelCase replaced by space). Variable names are declared as citation identifier [...]
add 791558a Allow DecimalFormat precision to be set even if the CRS is unknown (in which case a generic number format is used).
add facc539 Coverage : add GridCoverageBuilder helper class
add 8f1e806 Begin implementation of "Modified Azimuthal Equidistant" projection (EPSG:9832). Only forward projection for now. Inverse projection and derivative will be in a next commit.
add 9d4fa26 Coverage : add GridCoverageBuilder tests
add 95e0ce2 Compute the `gridToCRS` transform is a `GridGeometry` is given with only an envelope.
add 3fdbc4c Implement ModifiedAzimuthalEquidistant.inverseTransform(…). Rewrite some equations using trigonometric identities for reducing the amount of trigonometric operations.
add ebc9c64 Coverage : add setValues(WritabableRaster) method on GridCoverageBuilder
add aef299e BufferedGridCoverage : fix buffer size verification, number of banks was ignored
add f8aa040 Add "Azimuthal Equidistant (Spherical)" projection (no EPSG code). The main purpose will be to provide an approximation of the derivative.
add c69d648 Define ModifiedAzimuthalEquidistant as a subtype of AzimuthalEquidistant.
add 9d80cb1 Coverage : add method to flip axis in GridCoverageBuilder
add 0045413 Implement derivate for "Azimuthal Equidistant (Spherical)" projection.
add 7336b1c Tune the checks for error conditions in GridCoverage and BufferedGridCoverage construction.
add a01eaf3 Reduce the amount of copy-and-paste in the test and add some assertions. This review does not yet include the change of exception type.
add 06a685d Add more javadoc in GridCoverageBuilder and replace code copied from other classes by method calls. This required to modify the API of some invoked methods (package-private API only).
add 0349b33 Remove commented-out methods that were creating an image from arrays. They will be in the history if we want to bring them back. Those methods are omitted because they implied a copy of all sample values, contrarily to all other `setValues(…)` methods which copy only a reference.
add d84d464 Remove the creation of a dummy SampleDimension in the test of setValues(DataBuffer); this is not needed anymore.
add e198880 Select the same visible band than the source image.
add 976898a Add a Features.getLinkTarget(…) method for determining if a PropertyType is a link.
add ace1eed Minor cleanups.
add 3ccfaea First implementation of ResampledImage for raster reprojection support. https://issues.apache.org/jira/browse/SIS-493
add 9c29e45 Rename Interpolator as Interpolation.
add bc36b68 Add Lanczos interpolation (experimental).
add c92fbca Add a simple interpolation test.
add a9d62ad Rename InterpolationTest as ResampledImageTest and add more tests.
add 1e87bbd Renamed ImageOperations as ImageProcessor.
add cbbfb4e Initial draft of a GridCoverage "resample" operation. This starting point process only 2D coverages with a complete target grid geometry.
add 485df91 Add nearest-neighbor interpolation.
add e2f3f2a Compute a default GridExtent during resampling operation if it was not specified by user.
add 2f78016 Add a method for computing immediately an image.
add 4fe9e7e Correction in the way to compute the `gridToCRS` of target grid geometry.
add 8ec46f6 Allow some tolerance when comparing two `GridGeometry` objects. It allows to detect more easily when a `GridCoverage` can be used unchanged.
add 9043e33 Add test class for `ResampledGridCoverage`.
add 61196ea In ResampledGridCoverage.render(…) converts the `sliceExtent` from target grid coordinates to source grid coordinates. Use ImageProcessor for creating ResampledImage.
add 2e525a8 Add an offset to default "grid to CRS" transform so that grid coordinates near the point of interest are integers in both grids.
add 8d8b09f Avoid resampling the data when the operation can be represented by a change of "gridToCRS" transform.
add 0bdce38 If users specified an envelope, use it for computing the sub-region to resample.
add 46059c2 Filter : fix ST_Point and ST_LineString not parsing crs when integer or string
add 983c69f Make a best effort for reusing existing computation results, for avoiding spending CPU for e.g. resampling twice the same image.
add bfe5583 Make processor configuration cloneable and use them in `ResampledGridCoverage`.
add cf9962a Interpolation should be done on floating point values when they exist. This is required for handling correctly the missing values.
add e52cc8e Begin the port from Geotk project of the code using a precomputed grid of coordinate values for image resampling operations.
add 82ea59b ResampleGrid implements MathTransform2D.
add 6d07eb4 Checkstyle correction.
add 307f3cf Add more tests for ResamplingGrid.
add 27172a4 Minor formatting.
add 1960207 Try to be a little bit stricter on the check about whether a ResamplingGrid tile is close enough to a linear transform.
add 84f904e Remove (at least for now) roundIfAlmostInteger(AffineTransform) since it is not sure that the benefit is worth the risk.
add c0ad361 Add more interpolation tests. Contains a correction about the size of ResampledImage tiles.
add c45277f Rearrange tests with a separated class focussing on `Interpolation` only (without going through `ResampledImage`).
add ff5e15e Include the Japan profile in JavaFX application because it provides access to more file formats. Opportunistic replacement of 0 literal by constant value.
add 5c85521 Fix an IndexOfBoundsException when the "visible band" is -1 (sentinel value for information not available).
add eb3f52c Provides an icon for making easier to identify SIS when switching between different applications.
add b3ba51b Add a button for getting more information about an error while loading resources. Fix exceptions in netCDF reader which occurred when a variable is not a coverage.
add 54c4fc6 Basic zoom and pane services on the map view, not yet using the full resolution available.
add 7972946 Repaint the map after a zoom or pan gesture. It allows the viewer to fetch new data for the new region and resolution.
add 4c63b80 Fix an application freeze when an image operation executed by `TileOpExecutor` recursively uses `TileOpExecutor` on another image.
add d7d7b7f Make code a little bit more type safe.
add 6f8ff41 Fix some anomalies observed when zooming or panning the map for a time long enough that some rendering happen during the gesture. This commit fixes some problems but not all of them; more investigations are needed.
add a33b746 Replace http links by https and minor documentation fixes.
add f6c88a1 Add missing parameters in the internal `toString()` representation of some map projections.
add cac009d Simplify the handling of transforms by updating a single Affine instance instead than adding/removing instances in the ObservableList.
add a0bcc59 Fix the anomalies (jumps in image position) that we observed when zooming and panning faster than the repaint events.
add 4973476 Consolidation of the rendering process.
add f938b54 Removed unecessary calls to super.succeeded()/cancelled()/failed().
add 89ec44d Separate the case of nodes to move together with the map ("floatingPane") with the nodes to keep at fixed positions regardless pans, zooms and rotations ("fixedPane").
add fba5c2b Add listeners to keyboard, track pad or touch screen for navigation.
add be8e094 Check for spherical case in Modified Azimuthal Equidistant projection.
add f2f5771 separate the Java2D-specific rendering code in MapCanvasAWT subclass. It allows to use MapCanvas base class with pure JavaFX graphics.
add e51cfe5 Fix wrong position when performing pan or zooms with keyboard while the map is rendering in background thread.
add 19b59af Provides a Widget base class for making easier to locate SIS widgets.
add 2f96f80 Improve StatusBar, make it public and make it useable with arbitrary MapCanvas.
add 7893dbd Rename CoverageView as CoverageCanvas and make public with better separation of tasks.
add 24c4bea More control on the initial coverage view (image versus tabular data).
add f9154f7 Move `PlanarCanvas` and dependencies in public package. They were already visible because of `MapCanvas` extending `PlanarCanvas`.
add a731452 Fix a NullPointerException caused by the absence of CRS in the envelope inferred from a GridExtent.
add d85273e Pom : disable trimStackTrace by default in surefire plugin
add 8bb0edb Make a better effort to take the `gridToCRS` transform in account when determining a CRS for a GridExtent.
add 04d422a Feature : add FeatureComparator utility test class
add da1e14d Provides more guidance to user when selecting a CRS by warning when the CRS domain of validity does not intersect the area of interest.
add 1918205 First draft of a `ChoiceBox` for choosing a CRS in a list of more recently used CRS.
add 939ec62 Take in account the geographic area of data shown when building the list of CRS.
add b0cf8d5 Consolidation of CRSChooser in situations where an error occurs during the construction of a CRS. Before this commit, the CRSChooser behavior in such case was confusion (e.g. filtering not working anymore).
add 1a3bcee Fix a NullPointerException.
add 3734fbe Give public access to `ImageLayout` constructor for allowing the use of different preferred tile size.
add c277c9c Deprecate a method which is not used in practice and cause compatibility problem with JDK 14.
add 11f8694 Keep a relationship between the CRS of coordinates shown in the status bar and the CRS of the displayed raster.
add e3a2b62 doc(Referencing): minor note on envelope utility method.
add bd836fa Fix a NullPointerException when building a `GridCoverage2D` with domain set to `GridGeometry.UNDEFINED`.
add 65deba1 Change `GeneralEnvelope.setTimeRange(…)` contract regarding null values in a way more convenient for creating "is before" and "is after" filters. Add some documentation.
add 0707557 Make `CoordinateFormat` more robust to change of CRS.
add dbec36d Apply CRS choice on the coordinate values displayed.
add 3ff7c26 Resolve numerous problems with the display of geographic/projected coordinates under change of CRS.
add 9005422 Show CRS name in a tooltip and axis abbreviations.
add beece97 Make check for JNDI context a little bit more robust.
add b729668 Fix a problem at initialization of CRS choices (was initialized to the wrong CRS).
add 6404696 Fix other CRS selection problems (wrong CRS checked in menu items, "Other…" not working). This commit fixes the last problems we have seen so far.
add b0e8264 Refactor StatusBar API with some method renaming, property definitions and javadoc completionS. No change in functionalities.
add 71da3a6 When formatting projected coordinates, give also the axis direction. Example: "-100 m E 300 m N". Maybe a future version should replace "E" by "W" when the value is negative, but current version is enough for resolving the ambiguity problem.
add 38ab0ef Make CoordinateFormat.parse(…) consistent with CoordinateFormat.format(…) regarding direction and accuracy information.
add e474c3d Replace a NullPointerException (at `build()` invocation time) by a more explicit exception thrown earlier.
add f9f9e2b Add missing serial version.
add b44873a Initial implementation of Cassini-Soldner projection written from EPSG formulas. This commit provides a direct, non-optimized implementation with almost verbatim copy of formulas published in:
add ae63410 Optimize the Cassini-Soldner implementation by using the faster and more accurate formulas inherited from MeridianArcBased instead than the M(φ) method and its converse µ₁ + …. Rearrange a little bit some remaining terms for reducing the number of operations.
add c66a77b Add tests for Cassini-Soldner projection.
add e28177a feat(JavaFx): build for java 11, add maven dependencies
add 68ec33d Implementation of Jacobian matrix for Cassini-Soldner projection.
add 887b72a Add spherical case of Cassini-Soldner projection. Formulas are taken from Wikipedia. This commit completes https://issues.apache.org/jira/browse/SIS-218
add 76f4f2d Reduce visibility of `PARAMETERS` constant when not needed.
add 1e65345 Add SCALE_FACTOR parameter on CylindricalEqualArea and add some comments in other places.
add e6ab82e Make a little bit more robust the way we handle map projection variants. Enable a Modified Modified Azimuthal Equidistant test that was disabled. Opportunistically add Hyperbolic Cassini-Soldner projection since it is a small variation of usual Cassini-Soldner projection (derivatives not implemented).
add a1f9a65 Retrofit HyperbolicCassiniSoldner into CassiniSoldner. It reduces code duplication and may be more flexible if we want to implement the Jacobian matrix of hyperbolic case in a future version. It also reduces the visibility of hyperbolic case, which is desired because it is a very specific case. The cost on normal Cassini-Soldner case is hopefully light (a single `if` statement) and may be acceptable since this projection exists mostly for historical purposes.
add 130ea87 Use CoverageExplorer instead of GridView inside the ResourceExplorer widget. It allows to leverage more of CoverageExplorer services such as coordinate transformations.
add 0b0ab28 Prepare the DataViewer window to be the main window for showing data without obligation to create new windows. Remove the "overview" parameter, which has not been implemented and become less relevant after above sentence.
add b4191c7 Add a tab showing the image in the main window.
add c57e628 Add data controls below the resource explorer.
add bca03c4 Fix various bugs (e.g. NullPointerException) and anomalous behavior when switching between different visualized data.
add 19abdd5 Improve the support of coordinate display when the image shown on screen does not have an affine transform to a known geospatial CRS. This is the case of netCDF files when the coordinates of each pixel is specified in data arrays (localization grid). This work required the addition of CommonCRS.Engineering enumeration with DISPLAY and GRID values, for making easier to detect when we have such grid CRS. For now we use the EngineeringDatum of CommonCRS.Engineering.GRID as [...]
add c4d3beb Merge branch 'geoapi-4.0' into feat/javafx-on-11
add 32a4415 Do more work in background thread.
add 3786136 Consolidation of localized resources by moving some words to the `Vocabulary` class.
add df4585d Use "stretching" for the name of operation that fit a color ramp to a given range of values. It seems to be the word used by ESRI.
add 3df1a79 Merge branch 'geoapi-4.0' into feat/javafx-on-11
add 1f1fdbf Settle the policy regarding ChannelData.reset(). Opportunistic typo fixes.
add ed39859 Add execution of GeoAPI parameterized transform tests.
add 4c71824 Merge branch 'geoapi-4.0' into feat/javafx-on-11
add bf2b3b2 The translations applied on "target to source pixel coordinates" transform shall be computed from requested extents, not from global extents.
add 78e494d Apply a more uniform way to define and handle RenderedImage properties. Prepare CoverageCanvas to handle resampled GridCoverage by executing image operations in a single Process internal class (for making easier to control the chain of operations).
add 1dfd3d9 Rename SOURCE_PADDING_KEY in a way more consistent with other properties.
add ceb9381 Merge branch 'geoapi-4.0' into feat/javafx-on-11
add 920bf67 Fix test suite execution.
add 7498ef3 More robust concatenation of transforms when some steps may be dropping or adding a dimension.
add 7b6698f Merge branch 'geoapi-4.0' into feat/javafx-on-11
add 9a757c1 Merge branch 'feat/javafx-on-11' into geoapi-4.0 with the following amendments: - The previous way using pre-installed JavaFX is kept. - Maven dependencies under "provided" scope and included only if "javafx" profile is activated. - JavaFX dependency upgraded from 13.0.2 to 14.0.1. - License declared in NOTICE file.
add 8501bb9 Remove the javafx-swing, javafx-fxml and javafx-web dependencies. They are not needed by sis-javafx module.
add c6a7fb1 Add methods in `PixelIterator` for getting and setting data elements (not necessarily the same than pixel values).
add 3f355f4 First attempt to reproject `RenderedImage` that are slices in a n-dimensional data cube. This commit contains work in two areas:
add 0ac1b4f Query : add linear resolution parameter on SimpleQuery
add 52de2b5 Edit javadoc and complete equals/hashCode implementations.
add 629eaf2 Simplify a little bit the handling of CRS changes in CoverageCanvas. We abandon the "intermediate update" done during coverage loading (GridCoverage changes shown before the RenderedImage was available) because it was confusing for both the user and the developer. Instead the CoverageCanvas content is updated in a "all or nothing" way.
add ceca796 Fix initial image display, which was sometime partially outside the window. More accurate detection of drag gestures.
add a095d21 Add an Area Of Interest (AOI) argument in ImageProcessor.prefetch(…).
add 4ec4fba Improve a little bit more the selection of CRS proposed to user (more duplication removal, omit "Computer display CRS").
add 3974735 Allow selection of interpolation method.
add 53a7f09 fix(Core): avoid returning null envelope for points or empty geometries.
add 0e887fd feat(Core): add commodity method to translate grid extents.
add 93d99ce Javadoc editions. Move method close to related methods. Share some code. Take in account the variable number of dimensions (2 or pseudo-3) in JTS geometries.
add 4bfbfb2 Allow ResampledGridCoverage to work with grids having more than 2 dimensions.
add 35f8097 Partial debugging of ResampledGridGeometryTest.crs4D_to_crs3D() test case.
add 03e05e5 Allow `ResampledGridCoverage` to work (under some conditions) even if the coordinate operation can not be reduced to 2 dimensions.
add c75bef2 Adjust `testNonSeparableGridToCRS()`.
add 808655c Verify that the requested extent intersects the data extent.
add dd39d9f Test with a `GridExtent` origin located in another place than (0,0).
add 15564e3 fix(Feature): ensure envelope returned by property operation contains a CRS if any is available
add 6722ec6 lfix(Feature): improve envelope operation to ensure attribute envelopes have a CRS defined if possible
add e213eb5 Fix a NullPointerException when using directly a `new Formatter()` instance.
add aa195d2 Trivial comments formatting (no code change).
add bc27996 Better determination of the inverse of an OperationMethod.
add 658b0e8 Better filtering in CoordinateOperationRegistry about whether to extract the horizontal component of a 3D CRS. This change allows ResampledGridCoverageTest.crs4D_to_crs3D() to pass.
add 5d82f2a Minor method renaming.
add 4534d17 Use EPSG data for "sis-referencing" tests if the "non-free" profile is explicitly enabled.
add de3a8f7 Dialect : add SQLite dialect in enumeration
add d532cb5 Dialect : improve support for sqlite, ignore statements with table constraint modifications
add 5599c0e Rename older Dialect fields for consistency. Refine regular expression.
add a9ecd8b Change EnvelopeOperation.serialVersionUID since the meaning of null values in `attributeToCRS` changed. Since we broke serialization compatibility anyway, opportunistically rename `crs` as `targetCRS` for making clearer that this is not necessarily the CRS of geometry objects stored in properties.
add a28533a Add ImageProcessor.setPositionalAccuracyHints(…) method for enabling the use of ResamplingGrid.
add 65a4ca1 Add a GridRoundingMode.CONTAINED for completness.
add 3291366 chore(Storage): add unit test to check concurrency of DataStores providers fetching
add e7ec536 Complete parameterized types in collections. Add documentation. Use longer timeout as a safety in case the test is executed on a busy CI system (this is only a maximal wait; the actual waiting time should be much shorter). IF the executor is not terminated after the test, it is a test failure because it would be a bug in our algorithm (because we already waited in Future.get()).
add d380dff Add a setPositionalAccuracyHints(Quantity...) convenience method.
add 4ba19c7 fix(Core): fix bad size computing on GridCoverage2D render (crop) operation
add e3a2732 Add integer overflow analysis in GridCoverage2D.render(…) method for BufferedImage case. Detect when existing BufferedImage can be returned as-is instead of invoking `getSubImage`. Add test case for https://issues.apache.org/jira/browse/SIS-495
add f9bd998 Bug fix: test for minimal coordinates shall be done on the extent specified by user (xmin, ymin), not on (ix, iy).
add a9cf30c GridCoverage2D.render(GridExtent) should verify the number of dimension of given extent, for consistency with other GridCoverage.render(GridExtent) implementations.
add 6bbaee1 Fix an incorrect computation of image (minX, minY) coordinates when the `sliceExtent` has some pixels outside the image bounds. Allow `ImageRenderer` to use an implementation other than `BufferedImage` when the (minX, minY) are different than (0,0).
add 6ec7408 Add NumberRange.getMedian() and getSpan() methods.
add 03392c5 Show the coverage value under mouse cursor position.
add 5b29ab9 Abandon the possibility to change the `MapCanvas` of a `StatusBar` after status bar creation. That capability was adding complexity (i.e. tracking the listeners to unregister on previous canvas and re-register on new canvas). The capability to change StatusBar canvas does not seem to be needed in practice.
add cf1fc63 Better calculation of label width needed for showing sample values.
add 4a90d13 Remove a hack which was not needed. A simple use of `Label.USE_PREF_SIZE` does the trick.
add 2c3e3be Remove GridCoverage.evaluate(…) method, replaced by an `Evaluator` class. This commit is only a refactoring without changes in functionalities. Future commits will add more capabilities or optimizations.
add 8910f34 Add a flag for reducing the amount of exceptions created when a point is outside coverage bounds.
add 734ea4a Move `BufferedGridCoverage` in public API.
add 682573b More efficient implementation of `BufferedGridCoverage.evaluator()`.
add c8d34c8 First draft of an image providing error estimations for each pixel of a resampled image.
add 800f3c7 Provide a new "Operations" panel in `CoverageControls` with possibility to select the "Positional errors" for current coverage. Use weak reference for the image of positional errors.
add acc22f8 Display values of "positional errors" operation on status bar.
add 217d0a8 Filter : implement PropertyIsLike filter
add e86d55d SQLStore : accept a DataStore instead of SQLStore in Database methods
add 8e50325 Modify `StatusBarSupport` for avoiding a memory leak (reference to image that are not shown anymore). Remove "Positional errors" from the list of operations when it does not apply.
add 41e9f44 Specify an area of interest when computing statistics.
add d386e7c Change argument order in `ImageProcessor.resample(…)`. No change in functionality.
add 096e2ce Change `StatusBar(…)` argument order and prepare for tracking more than one canvas in a future version.
add 0265dc6 Take axis directions in account when computing the initial "objective to CRS". This change fixes the image flipping.
add 256c6e8 Change of projection in MapCanvas need to use an orthonormal matrix for preserving the projection aspect.
add bba7e3c Fix an shift observed during change of map projection. The fix require an anchor point to be specified in call to `setObjectiveCRS(…)`.
add 45d82aa Do not allow the use of display CRS in the definition of Point Of Interest.
add 00162ea Resolve a duplication in the offered CRS items.
add f2c4c23 Fix image transparency.
add 4ef3ef2 GridCoverage.forConvertedValues(true) sometime created an image that can not store NaN values.
add 998181d Replace the "Image operation" pane by an "Image properties" pane. We are not ready to offer image operations in the JavaFX applications. Instead image sources, layout and properties are more useful information, with the previous "positional errors" operation shown as an image property.
add 7820ac0 Remove `ValuesUnderCursor.evaluateAtPixel(…)` method. It is not used anymore after previous commit.
add b7a0d8a Pass argument lines to Maven surefire for allowing `sis-javafx` tests to execute.
add 3f9591f Cache of `AnnotatedImage` computation results need to take in account the area of interest.
add 88635fd Use of scientific notation needs to take in account the number of fraction digits that the NumberFormat allows.
add a910548 Make lower/upper cases consistent in map keys given to `stretchColorRamp(…)`.
add 1ef036d Renamed "Positional errors" as "Positional consistency". The previous name was misleading because users believed that it was some kind of "absolute" error measurement, while actually we are just applying a forward projection followed by an inverse projection and comparing numbers.
add 4a35aa0 Fix the `SAMPLE_RESOLUTIONS_KEY` values to `double[]` in the specification, but keep implementation tolerant to any number type.
add 473f792 Save an estimation of transformation accuracy in a new `org.apache.sis.PositionalAccuracy` image property.
add 3489bf2 Show positional accuracy of coordinates under cursor using the information provided by `RenderedImage` property.
add e402a74 `CompoundFormat.getFormat(Class)` should choose `Quantity` formatter before `Number` formatter.
add 61f3899 ImageProcessor.statistics(…) method needs to check if cached result is compatible with requested area of interest.
add b594b66 Workaround for https://bugs.openjdk.java.net/browse/JDK-8166038 If BufferedImage can not be used, fallback on ReshapedImage.
add 9bbf558 Add a comment about code to update if JDK-8166038 is fixed.
add 480baf2 Rename a few methods for consistency. No change in functionality (except addition of a `DefaultProperty` annotation and an `assert` statement).
add 287c6d3 Simplify the layout of source images in the "Properties" pane.
add 70a6078 Move the menu about band selection first and add a comment about whether positional accuracy are shown.
add ad3c144 Adjust units of measurement for avoiding confusing behavior when coordinate values are shown with units smaller than accuracy.
add e2eea52 Add more tests.
add acea035 Add a PlanarImage.MASK_KEY property providing a mask over missing values.
add 2c9d440 Clarify MASK_KEY value with multi-banded images.
add 5fdfd59 Apply mask on the image of positional errors.
add 111b08e Select map projection through contextual menu instead than combo box. The intent is to allow (in a future commut) creation of map projections centered on a point of interest.
add 05ffbce Simplify a bit the layout of coverage controls. This provides a visual easier to read.
add 899f09b Provide Azimuthal Equidistant projections centered on arbitrary location.
add a06af72 Temporarily enable the use of `ResamplingGrid` for testing purpose. Unconditional enabling of this optimization can actually slow down the rendering of zoomed image because the grid is computed for the full image instead than only the visible portion. A future version should enable this optimization only when we know that most of the image surface will be used.
add a6ae6a9 Avoid a NaN in AzimuthalEquidistant when (x,y) coordinates are very close to (0,0). Fix an error in ResampledImage.getPositionalConsistency() that prevented us from visualizing the ResamplingGrid errors.
add 0420f26 Comment out for now an optimization which is actually degrading performances in the context of a JavaFX viewer. https://issues.apache.org/jira/browse/SIS-497
add f09b884 Address a performance issue observed during profiling: `Parameters.getParameter(String)` invoked during map projection initializations is slow. We mitigate the problem with an identity check on `ParameterDescriptor` before the slow comparisons. The identity check should be sufficient at least for SIS implementations of map projections.
add b0405dd Provides a mechanism for creating transforms without caching them. It can improve performances when creating a lot of transforms living for a short time.
add ffb556a Add GeodeticCalculator.createProjectionAroundStart() method.
add 3de9eb3 Update links to EPSG terms of use.
add e981308 Move the handling of context menu from CoverageCanvas to MapCanvas parent class.
add d139a0b Hide context menu when click happen outside.
add 1792a41 More robust computation of space needed for showing sample values.
add 8be56a7 More projections centered on cursor position.
add 2802071 Fix wrong adjustement of number of dimensions when the coordinate system dimensions and transform dimensions do not match.
add f7d3c80 Deprecate DefaultOperationMethod.getSource/TargetDimensions(). Those attributes have been removed from ISO 19111:2019. Removing them from SIS would reduce complexity in management of OperationMethods working on variable number of dimensions.
add 2a6666a Following the deprecation of OperationMethod.getSource/TargetDimensions(), remove the dimension check in AbstractSingleOperation. This removal make easier to address https://issues.apache.org/jira/browse/SIS-462
add db63678 Fix a MismatchedDimensionException when a datum shift is applied between a two-dimensional GeographicCRS and a three-dimensional GeographicCRS. This is the first part of https://issues.apache.org/jira/browse/SIS-462
add d72b2a1 Update JTS dependency version to 1.17.0
add 08f34ae Avoid to provide misleading `OperationMethod` name when there is a change of coordinate system in a chain of operations. https://issues.apache.org/jira/browse/SIS-462
add d03785a Add information about average value of image property.
add 9d85a5a Preload `CoverageExplorer` on application startup.
add 2b2a1f2 Provide information about system configuration.
add 785f1d5 If geographic bounding box is not found directly on the root data element, search in aggregate elements.
add bb1b31b Adjustement in the search for geographic bounding boxes.
add 8b3e75c Report warning that occurred while loading resources or data store.
add 863f578 Provide details about the log record, in particular the stack trace.
add 7049acb Filter by logging level.
add 3aea14c Try to catch more warning messages that may be emitted during the loading and display of coverage data.
add 1d9733d Collect also the warnings occuring during a change of map projection.
add b281670 Avoid a call to Math.atan2(…) in inverse projection.
add dd447f2 Replace some calls to `Math.hypot` by `NormalizedProjection.fastHypot`, which is faster at the cost of accuracy. The accuracy penality seems to be within 1 ULP when x and y are in [-6 … +6] range (tested with random numbers). An analysis is available at https://issues.apache.org/jira/browse/NUMBERS-143
add 712bbb1 Relax the check for max values in `NormalizedProjection.fastHypot` because it is not always needed. Documentation has been added for warning callers about possible unexpected results. Test cases have been added for the 2 projections where not testing may be at risk.
add 74b89cc Minor documentation.
add b22f80d Adjustement in event handling.
add 5e8e6ce Show the file format in metadata summary panel.
add bb90ee5 Avoid to retain resources when not used. Rely on `java.util.ResourceBundle` caching instead.
add 84caa42 Fix problem with metadata panel not always updated correctly with new content.
add 0a4b43a Fix a NullPointerException.
add 2775b27 Revisit the API of methods related to ColorModel creations. This is in preparation for addition of an ImageProcessor.toIndexedColors(…) method.
add a774c92 Change in `ColorModelFactory` method argument order for more consistency.
add fa27367 Add SampleDimension.Builder.mapQualitative(…) method for specifying explicitly the NaN value to map to a sample value.
add ac91b8a Add ImageProcessor.selectBands(…) method.
add f48ab74 BandSelectImage should propagate known image properties, with band reduction if needed.
add 6d23051 Add a `Colorizer` internal class for applying color ramp on raster of floating point values.
add e4c85f0 At image rendering time, convert floating point values to integer values that IndexColorModel can use.
add 1c27174 Make "File > open" menu tolerant to directory that do not exist anymore.
add 8ba529b Declare the "Errors_DN" category in GCOM-C files as a legal fill value.
add 2cb5300 Add upper-case variant for "PSU" unit as alias.
add 951c06a Add a WritableTiledImage implementation.
add e92226f Move BandedSampleConverter together with other PlanarImage implementations.
add d78b6de Consolidation in the mechanism for inheriting properties.
add 8094993 Methods renaming.
add 5fe1072 More checks against null pointers.
add 5ad04a9 ImageProcessor API adjustment, in particular with introduction of a type-safe DataType enumeration value instead than the DataBuffer.TYPE_* integer constants.
add 639ab29 Fix an ineffective verification.
add 0a3d379 Make `PixelIterator.getSampleRange()` method implementation more generic (no more test for specific `SampleModel` subclasses).
add 9c73219 ResampleImage computes itself the ranges of values instead than invoking `PixelIterator.getSampleRanges()`, because that later method returns ranges of source pixel values while we need ranges of target pixel values.
add 4de677a Make `resample` more robust to cases where target data type is not the same than source data type. In particular in the way to compute min/max values and to determine if a shortcut can be used.
add 9af55b6 First draft of a `Visualization` image which combine the work of "resample" and "visualize" methods. The intent is to avoid to create an intermediate image when a resampling is done only for visualization.
add 294b39e Stretch color ramp (if requested) before to resample the image, for simplifying `CoverageCanvas` a little bit. This is an apparent waste of CPU time because the resample operation should not need to be redone when only the ColorModel has changed, but `ImageProcessor` is capable to detect and optimize this case by itself.
add 7bf11d1 Add a safety check against integer overflow, trace information for debugging and link to JIRA task.
add e37076c Enable the use of IndexColorModel in CoverageCanvas.
add 0e402ff Provide a RenderingMode.DIRECT which avoid creation of a double buffer as the cost of executing `paint(Graphics2D)` in the JavaFX thread. It is okay if that method does only a `Graphics2D.drawRenderedImage(…)` call without scale or rotation, in which case we are not blocking the JavaFX thread longer than in the RenderingMode.DOUBLE_BUFFERED case.
add d92bcd3 Fix a NullPointerException when transforming coordinates with SpecializableTransform.transform(…) methods working on arrays and the last coordinates are inside a sub-grid.
add ae004c8 Remove ImageUtilities.getDataType(…) methods, replaced by getBandType(SampleModel). The previous method was returning the storage type, which can be misleading when the 4 bytes values of an ARGB image are packed in a single 32-bits integer value (java.awt.image.SinglePixelPackedSampleModel and MultiPixelPackedSampleModel). In practice, the type usually wanted by SIS is the type that the image would have if it was using a java.awt.image.BandedSampleModel.
add 8d5386a Rename CategoryCellFactory as BandRangeTable.
add 1e3c7cc Add a missing `class="sis"` attributes in `<table>` HTML elements.
add 1d075eb Provide control on the colors used for rendering different range of values (categories) of a GridCoverage.
add a51935a Minor adjustments: make colors column not sortable, documentation, NetBeans configuration.
add f1009c8 Fix a NullPointerException.
add b6f8ed7 Avoid to declare <scope>provided</scode> on netCDF in <dependencyManagement> section, because it causes difficulties to control the scope in transitive dependencies. Instead all uses of netCDF in sub-modules must declare the desired scope explicitly.
add 39ec26d Prepare packaging of JavaFX application.
add f3378db Omit the navigation bar in javadoc.jar files deployed by Maven, because those javadoc are typically browsed from browser. This is a first attempt to avoid the inclusion of GPL code in javadoc (introduced by the search field in navigation bar). This change does not apply to aggregated javadoc, and is not yet sufficient for avoiding the GPL code anyway.
add e238494 Add a temporary dummy class for allowing javadoc to pass. This is because javadoc requires to have at least one class to document.
add 7cd7abc Fix javadoc generation errors.
add 2bc3e93 Add EPSG database if explicitly requested by profile.
add 40e6693 Add a splash screen. Fix destination directory of log file.
add be67730 Ask user to specify JavaFX installation directory on the first execution.
add 42b1726 Initial Windows batch script for launching the application.
add ffe086b Declare static final constants for programmatic names such as directory and environment variable.
add 906b2a1 Change the URL to Jenkins server.
add 101eef5 Add a "Close" menu item in the main "File" menu. It previously existed only in the contextual menu, which was non-obvious.
add 7c71f38 Fix an mismatched dimension errors when the source CRS has more dimensions than the core transform.
add 58e66f5 Avoid direct use of a word which become a keyword in latest Java versions.
add 57de59e Enable change of input method in text editors.
add 73ee4fa Provides a convenience method for getting a single `GeographicBoundingBox` from a `Metadata`.
add e6cffdb Add a ModifiableMetadata.deepCopy(…) method.
add cd06a45 Add a DefaultMetadata.deepCopy(Metadata) convenience method. For now we add that convenience method only for the root Metadata object because it is the kind of objects returned by DataStore.getMetadata() methods.
add 4363b5d Documentation for clarifying the use of properties versus method parameters.
add 6ff9dd1 First version of ImageCombiner.
add dc359f5 Fix a few holes related to the addition of a `destination` property in `ComputedImage`.
add 5339509 Do not overwrite puxels in destination image that are not covered by a pixel in source image.
add c5ae48b Replace the `PreferredSize` hack by a public API.
add 563cba7 Rename `ImageProcessor.getStatistics(…)` as `valueOfStatistics(…)`. The intent is to make a clearer separation with property getter methods. It also reduces the impression that this method returns a pre-existing value (the computation can be expansive).
add 396816f Hide the splash screen after application startup.
add 9ddcb33 Clarification in comment.
add 0d5a219 Note that BufferedImage.getTileGridOffset() bug (JDK-8166038) has been fixed in JDK 16.
add 9c19789 When computing the `gridToCRS` of target grid geometry, avoid putting two values in the same column and leaving another column with only zero value, as it makes the matrix non-invertible.
add 07ee1e0 Trivial indentation fix.
add 88f8361 Move Variable.Adjustment as a separated GridAdjustment class. Modify the way to apply a scale on the GridGeometry in order to control the MathTransform ("corner to CRS" or "center to CRS") on which the scale is applied.
add 3771a28 After invocation of ImageUtilities.clip(…), verifiy that the intersection is not empty. Various documentation fixes.
add afdf695 When there is no direct Bursa-Wolf parameters between two CRS, accepts an indirect transformation through a common hub (typically WGS 84). This is a partial revert of commit 504e3ce3bfd44c6aea1ff9f4d5ba298d4b0a22f2 (November 14, 2013) together with new code for updating positional accuracy. An arbitrary value of 100 metres is taken when the domains of validity intersect, and 3000 metres (presumed worst case scenario) otherwise.
add 5227d01 Add a WraparoundTransform, to be used in a next commit for resampling images crossing the anti-meridian.
add 2d07e6a Set GCOM-C coordinate reference system to WGS84, as specified in their documentation.
add 0a02a2a Add a "Copy > Coordinates of here" menu item for making easier to check position on e.g. Google Map.
add dfec2ae Add a menu item for coyping the path to a file.
add 475fd86 More accurate identification of error when image size is not an integer multiple of tile size.
add aa8ce36 More informative error message when an envelope or position given to a GeneralEnvelope does not have the expected CRS.
add acb8871 GridDerivation.subgrid[…) needs to transform the `areaOfInterest` envelope if the CRSs are not equal.
add 7d270e2 Refactor the "Copy file path" action in a separated class with better management of File/URI conversions.
add 65f809b Make the `bounds` argument optional, with default to the full image.
add e05004b If the image to resample is too small for the specified interpolation, use nearest neighbor. It happens if user tries to apply a bilinear interpolation on an image of size 1×1 pixel (an image of such size if typically a template for ColorModel and SampleModel).
add 4a44a2b Fix a 0.5 pixel offset when Interpolation.NEAREST is used.
add f668f82 Documentation fixes and renaming of `WraparoundTransform.create(…)` for clarity.
add 7c96618 Missing interpolation values in last row and last column of destination image when interpolation is nearest-neighbor and the optimized path is not used.
add 80afd19 The name of CRS produced by `AbstractCRS.forConvention(…)` should not contain an "EPSG" codespace.
add b49117c Fix a StackOverflowError in `tryConcatenate(…)`. Add a method for adjusting wraparound range based on a target domain.
add cc12164 Initial support of wraparound axes during raster resampling.
add 4fbf175 Add a `GridGeometry.createTransformTo(GridGeometry target)` method.
add 625263a Make wraparound checks more robust by comparing "transform without wraparound" with "transform with wraparound".
add c7a721a Apply wraparound on geographic coordinates shown in status bar. Prepare `RenderedData` for wraparound axes (not yet completed). Convenience method for fetching DefaultMathTransformFactory.
add 6e8b8eb Best effort implementation of coverage query source domain expansion parameter
add c0e5729 Merge branch 'geoapi-4.0' into feat/sourceDomainExpansion
add fbd5f31 Add coverage query expansion test cases, add readonly memory grid resource
add e11ba91 Merge branch 'feat/sourceDomainExpansion' into geoapi-4.0. Reviewed some `GridExtent` and `AbstractGridResource` methods for consistency and for making little bit easier to implement `MemoryGridResource`.
add 0b29f05 Make conditional an assertion that may become invalid under JDK 16. https://bugs.openjdk.java.net/browse/JDK-8166038
add 53b168a Add test case breaking source domain expansion
add 86ad66d Merge branch 'fix/sourceExpansion' into geoapi-4.0 together with the fix for the problem shown by the new test.
add 894384d Add checks against empty area of interest during pixel iteration.
add 2b36532 Undeprecate `GridExtent.expand(long...)` given its similarity with method below. Refactor `GridExtent.grow(boolean, boolean long...)` as `expand(long[], long[])`. Add tests.
add a56b98f Disable interpolations on image using an IndexColorModel.
add da1d008 GridGeometry.createTransformTo(…) was not concatenating the right transform.
add a9b8b05 Move `MathTransformsOrFactory` in an internal package where it can be shared with classes in different packages.
add 2567677 Remove the use of `MathTransformFactory` in WraparoundTransform (except in `tryConcatenate`). All classes using WraparoundTransform had no particular factory to specify. Remove corresponding `throws FactoryException` statements.
add c34da9e GridDerivation.subgrid(GridGeometry) should support coverage spanning the anti-meridian.
add 472b2c0 More robust determination of whether an axis should be handled as a wraparound axis.
add 4cca7a6 Move `WraparoundTransform.isNeeded(…)` method to `CoordinateOperationFinder`. This moves simplifies the code by allowing more direct uses of fields or methods instead than indirect uses through `java.util.function.Supplier`.
add 18b10ac Enable optimization in `TranslationTransform` which were missed.
add bb7c99d Replace the use of `Math.floor(…)` by `Math.IEEEremainder(…) in `WraparoundTransform` for reducing rounding errors.
add a6615f9 Bug fixes in optimizations (translation case not always detected, existing transforms not reused).
add 04a642a Minor documentation adjustments.
add 979f21a Formatting (no code change).
add bbf046c Bug fix in the determination of matrix coefficients that we can move around `WraparoundTransform`.
add 1905789 More extensive tests of whether "wraparound axes" may occurs when a map projection is involved in the transformation chain.
add de1ac25 fix(Feature): slight improvement on feature type builder: automatically replace primitive value class of attributes by their boxed equivalent
add 20b218b Parameterize `Numbers.primitiveToWrapper(Class<N>)` method. It avoids "unsafe cast" warning in `FeatureTypebuilder.addAttribute(…)`.
add 3dff7c6 Add a `GridOrientation` argument to `GridGeometry(GridExtent, Envelope)` constructor. The intent is to make this constructor more useful for expressing "desired" geometry, as opposed to geometry of preexisting data.
add 246dc01 API change: rename GridOrientation.HOMOTHETIC as HOMOTHETY. Add an argument in `GridExtent.cornerToCRS(…) for axis order.
add dceffce Add a `DISPLAY` enumeration value in `GridOrientation`.
add fe1437a Add a GridOrientation.DISPLAY_GRID enumeration value.
add 636534f Add a note in situations where `GridGeometry` crosses the anti-meridian. Documentation and minor accuracy improvement.
add 8b4885e More complete detection of wraparound cases when adding a note in `toString()` representation.
add 8f64e30 Improve the WKT formatting of `WraparoundTransform` for easier debugging.
add 514e928 Enable a Mollweide projection test.
add ee73474 Deeper analysis of situations where a wraparound may occur during the transformation of a `GridGeometry` envelope. We must be careful to not apply too large translations on envelope corners: a lower-left corner should not become greater than upper-right corner for example.
add bc38cbf Use NaN for "no source median" to distinguish from 0.
add 512b335 Remove `sourceMedian` argument in `WraparoundTransform.create(…)` method.
add 911d02c Do not round the median value in `WraparoundTransform`. Callers should round themselves if desired.
add 46bf0ac Better separation of work by moving some methods in `WraparoundApplicator`. Move `WraparoundTransform.transform(…)` method to `WraparoundInEnvelope`. This refactoring allows some simplification and better synchronization.
add 3a41eb8 Move `WraparoundTransform` to public package.
add 7ce4d0b Slightly more efficient way to get wraparound step in a chain of transforms.
add ba4ad90 Better control on when wraparound is applied.
add 2d3e45f Implement `WraparoundTransform.inverse()`. It will allow us to apply a safer strategy for handling wraparounds in next commits. Remove `WraparoundTransform.CACHE` because the new `sourceMedian` field reduces the probability that a cached value can be used.
add d1e4873 Avoid potentially costly calls to `MathTransform.inverse()`.
add 674c34d Move the `intersect` method close to `union` method, remove `public` modifier on constructors of package-privated classes and edit some comments. There is no significant code change in this commit.
add 3201ff1 Build temporary `WraparoundInEnvelope` instances only before to transform an envelope. This change avoid to expose a mutable `MathTransform`, removes the need for synchronization and enable wraparound handling in more situations than only `GridGeometry` operations.
add 579bc7e Apply on transformations of `Rectangle2D` objects the same wraparound checks than we did in previous commit for `Envelope` objects.
add 56e596f Try to enable wraparound handling in JavaFX application and prints more extensive information about `CoverageCanvas` operations. The intent is to debug why the image is not visible when a `GridCoverage` crossing the anti-meridian is resampled.
add 252bd57 Make debugging information more compact and more useful.
add 5ecbea2 Fix a longitude wraparound error specific to the UTM projection case. Contains minor documentation changes.
add f6deb67 Add a wraparound application which was missing when going from a geographic CRS to a projected CRS.
add 671204a Apply wraparound step only if needed in `ResampledImage`.
add c215ddb Make `MathTransform inverse()` invertible. This is necessary for allowing `WraparoundInEnvelope` to perform more extensive checks during bounding box calculation.
add 5710795 Fix broken javadoc links. Fix typographic convention in French resources.
add f65a35d Remove `GridCanvas` experimental class.
add 5e65f02 Minor performance improvement in `WraparoundTransform.concatenate(…)`. Add a note in documentation about information lost during WKT formatting.
add 0885edc Replace `GridOrientation` enumeration by a more configurable class.
add 325d23f Add Orthographic projection in the list of projections centered on mouse click.
add b22fa6d Move `StreamDecoration` to "SQL store" internal package, renamed `StreamWrapper`. We limit the use of those wrappers for now because we do not yet have a mechanism for allowing methods with `Stream` return type to return also some `StreamWrapper`. In current implementation, any call to a method such as `Stream.map(…)` may cause the lost of all optimizations done in `StreamWrapper` subclasses.
add a9cd8bf Move `SubsetAdapter` to "SQL storage" module, where it is used.
add 7d5b466 Minor improvement in concatenation of two consecutive `WraparoundTransform` instances.
add bc6ca0f Move `FeatureInfos` to a package where it can be shared by the two implementations. This move allows to use that class also with the decoder based on UCAR library.
add 924d4a8 Make the `FeatureSet` implementation more robust and more generic. This commit prepares `FeatureSet` to support "ordinary" trajectory (without time vector) in addition to moving features.
add 340e2d1 Refactoring and slight optimizations: - Move `MovingFeature` as `MovingFeatureBuilder` in the package where it is used. - Retarget `MovingFeature` as a set of static methods (for now). - Renamed `DateList` class and some `FeatureSet` fields. - Share time vectors when possible. - optimization of `PackedVector.equals(…)` and `IntegerList.equals(…)`.
add 7a1fec6 Share more code between `FeatureSet` and `Grid` regarding axis type inference.
add 0745403 Replace loops by placeholders for JDK9 Arrays.equals(…) methods. Fix a wrong PackedVector optimization.
add 9e986b8 Add support for reading variables of character type. Implies some refactoring for sharing more code between the two reader implementations.
add 43d7cba Fix offset and stride calculation in netCDF files having an unlimited dimension.
add 248df22 Add tests on a "Moving Features" file.
add 4587f99 `Variable.read(GridExtent area, int[] subsampling)` support reading character strings in addition of numerical value. This commit required refactoring for allowing more code sharing.
add 5ad90e7 Add a `Vector.isSinglePrecision()` method.
add d33c284 The loop converting byte[] to String needs a fallback for encodings where values lower than 128 are not the same than ASCII. Creation of geometry objects in `FeatureSet` needs to take in account the `GeometryType`, and optionally the precision.
add 9079a67 Use an EngineeringCRS fallback when a TemporalCRS can not be created because of unknown temporal datum epoch.
add 5f774e8 Accept parsing timezone name (e.g. "UTC") in addition of timezone offsets. Add links in javadoc and fix the value shown in an error message.
add 24c869b Add methods or objects needed for completion of `FeatureSet`:
add bb1e274 Fix NullPointerException during unmarshalling of legacy ResponsibleParty objects.
add 8336928 When an alert is shown for an error, the dialog box owner should be the application window. It help to keep the dialog on the same screen than the application.
add 357c9cd Do not popup more than one alert window if many errors happen in a short time (in current implementation, only the last error is shown). Add scrollbars around the component showing stack trace.
add 57dee2c Add a "Open recent file" menu. It saves time when doing many test always on the same data file.
add 16ea3ba Hide SIS synthetic feature properties in the tabular view of FeatureSet.
add 7cfb522 Add unit of measurements in the FeatureType built from a netCDF file.
add 1b47d2f Fix recent files ordering.
add 22cef57 Report JavaFX version.
add bc9df39 `FeatureSet` use `CRSBuilder` for constructing an horizontal and temporal CRS from the variables. The temporal CRS allows construction of the "datetimes" characteristics on the "trajectory" property.
add 4f89f2a Force the use of `Vector` (i.e. make sure that we don't get a `List<String>`) when reading coordinate variables. If the variable contains texts, those texts will be parsed as numbers.
add fa1e45b Share the same code for enumeration support between `RasterResource` et `FeatureSet`.
add df7e1fb Update HTML links to EPSG registry, OGC standards and others.
add 5c03a79 Paranoiac check in case the attribute value is already a list.
add b2c7250 Place-holder for JDK 9 methods should have the same behavior than JDK 9, which is to throw IllegalArgumentException if there is duplicated values.
add c60795e Documentation and formatting related to WKT parsing. Deprecate Symbols.containsAxis(…) because AXIS elements are no longer optional in WKT 2.
add 4fe1348 Rename the `list` field as `children` and make the code more null-safe by replacing the null value by a more explicit `isEnumeration` flag.
add 606b226 Clarify the behavior of `WKTFormat.clone()` and avoid cloning the `fragments` map if possible. The intent is to allow more efficient `WKTFormat` cloning for parsing many WKT strings in parallel.
add 847ab7e Clarify which locale is used in error messages.
add 5e13b7f Initial version of `WKTDictionary` for allowing users to define CRS for custom codes. https://issues.apache.org/jira/browse/SIS-502
add dfb19c1 Allow `getAuthorityCodes(Class)` to filter by WKT keywords. Build the code list under write lock. Cache results.
add b890c8c Refactor the way we store WKT trees in a dictionary. Instead of having `Element` working in two modes (mutable or immutable), keep `Element` always mutable and create immutable snapshots with a separated class, `StoredTree`.
add 31a6086 Add tests and fix missed sharing of WKT values.
add 54f66a8 Move `getAuthoritycodes(Class)` close to `getCodeSpaces(). This is a cut-and-paste with no code change.
add 3325923 Add more tests.
add 85cfff7 Handle the corner-case of coordinate system WKT (the "CS" keyword) in definition of aliases.
add 84001f1 Log warnings during WKT parsing by `WKTDictionary`.
add a1ab9bb Update examples of ESRI codes.
add d478c79 Method name change: setter method shall have the "set" prefix, not "get". Error identified by Jean-Marc Bourdaret. https://issues.apache.org/jira/browse/SIS-503
add d3c0c2a Replace `String.regionMatches(…)` by the simpler `String.startsWith(…)` when applicable.
add 81a9536 Provides a hook for making easier to use this factory for handling the "spatial_ref_sys" table of spatial databases.
add 89f8591 Automatically add identifier when the WKT provided by `WKTDictionary.fetchDefinition(…)` does not contain an ID[…] or AUTHORITY[…] element. This is needed when the WKT is provided by the "spatial_ref_sys" table if a PostGIS spatial database among others.
add f67bd79 Simplify the logging levels provided by `PerformanceLevel`. https://issues.apache.org/jira/browse/SIS-504
add 07f4511 Replace a few `getLogger("org.apache.sis.foo")` calls by a static `Logger` constant. Use the logger provided by `DataStoreProvider.getLogger()` when applicable. Add a log when reading a netCDF file as a `GridCoverage`.
add 925eccf Reduce a little bit the amount of text in `GridGeometry.toString()` and in `AbstractGridResource.logLoadOperation(…)`.
add 57c225f Provide a way to avoid potentially costly PropertyNotFoundException creation. Users do not always know in advance if a property exists and may need a way to get this information without being forced to use exceptions for branching.
add c0bf843 Rename `getPropertyValue(String, Object)` as `getValueOrFallback(…)` for avoiding dangerous similarity with `setPropertyValue(…)`. Before this change, the two methods differed only by one letter ("g" versus "s"), which is a risk of introducing bugs by typos. The new name is also more readable and more consistent with standard Java practice such as `java.util.Map.getOrDefault(…)`.
add 84e6e56 Avoid duplication in netCDF variables and attributes when a lower-case name has been generated in addition to the original name.
add 98e07c2 More robust handling of map projection parameters in netCDF file: - If parameters are provided as strings instead than numbers, parse them. - Report unused values for allowing user to check if an important parameter has been ignored.
add da00b49 Always consider a variable as an axis if the "_CoordinateAxisType" attribute is present.
add ec235ee Most accurate selection of best grid. In addition of maximal intersection area, try also to minimize area outside the Area Of Interest (AOI) to to prefer grids more centered on the AOI.
add 1c395af Take a more representative center of data.
add e38c2a9 Take temporal extent in account in addition of geographic extent. This is an anticipation for the support of dynamic datum in a future SIS version. It is also useful for other code using `ExtentSelector` for making a choice between different rasters (for example).
add 6d0bce8 Use new feature.getValueOrFallback method in filters and expressions to avoid exception creation when exception stack is not required
add 2d60d06 When `PropertyNotFoundException` are reported as warnings, keep the exception message instead than using the `getValueOrFallback(…)` method. The reason is that the exception message provides a deeper analysis, telling for example if the property can not be provided because it does not exist or because the given name is ambiguous.
add 78cb599 Documentation fix: the "Supported by" column is not relevant anymore.
add 89d2a24 Portrayal : initial work on OGC symbology encoding portrayal engine
add 0db2206 Update in NetBeans project configuration introduced by upgrade to NetBeans 12.2.
add 3f89ebd Gives more details when à `MathTransform` does not have the expected number of dimensions.
add 4f223fe First version of a contouring algorithm, adapted from Johann Sorel work based on "marching squares" algorithm. This implementation builds isolines for all bands and all levels in a single iteration over image pixels. Java2D shapes are constructed on-the-fly during iteration.
add cf5739d Fix an error in determination of when a polygon is closed. Reduce some code duplication by taking advantage of recurrent patterns in interpolations.
add 870eb6a Remove some spikes which appear when pixel values are strictly equal to isoline values.
add 02f0113 When a single `Polyline` instance can not be closed as a polygon, keep that instance in a temporary map. As additional instances are added in the map, some `Polyline` instances get concatenated together. It allows the creation of "real" closed polygons instead than juxtaposition of polylines that looks like polygons.
add 728f70e Implementation of a java.awt.Shape backed by an array of coordinates that we can handle more easily than with java.awt.geom.Path2D. It introduce a class hierarchy similar to the OGC geometry classes (Polyline, Polygon, MultiPolygons), but it is not the intent to provide an OGC geometries implementation now. Those classes are needed for simplifying `IsolineTracer` (in a next commit).
add fb43846 Replace the use of `java.awt.geom.Path2D` by `PathBuilder` in `IsolineTracer`. It simplifies the algorithm and allow us to resolve the remaining spikes that we saw in isolines.
add 11c6b74 Avoid the call to `Arrays.binarySearch(…)`. It has been identified by profiling as a performance bottleneck (in the context of `Isolines`).
add e5142b5 Retrofit `DefaultIterator` into `PixelIterator`. This change allows slightly better encapsulation (more fields can be made private) and reduce the need to create `WritablePixelIterator` when only read operations are desired. The previous abstraction level was apparently not needed in practice.
add 4f8f236 Add `BandedIterator`, a specialization of `PixelIterator` for the case of images using a `BandedSampleModel`. This is an attempt to resolve a performance bootleneck observed during `Isolines` calculations.
add eceea7f Make possible to use `BandedIterator` with multi-tiled images. It required to retrofit `LinearIterator` into `PixelIterator`.
add 76cd431 Add more tests and add comments about optimization strategies that have been discarded. Two strategies were tried and failed to provide significantly better performance:
add eac2307 Replace the use of `PixelIterator.Window` by cached values of previous row. It make easier to provide a special case for one-banded images.
add 63875de Add a test case for isolines on multi-banded image.
add ce75340 Add a note about another failed attempt to optimize.
add c127810 Store isoline coordinates as single-precision floating point numbers, but with a translation for attenuating the precision lost.
add 3c7c5c5 Delegate `contains(…)` and `intersects(…)` implementations to Path2D.
add d33c28c Move part of `CategoryColorCell` into a new `ColorCell` base class. The intent is to share this code with other kinds of color tables, to be created later for isolines.
add da676c5 Move remaining code from `CategoryColorsCell` into `ColorCell` for sharing (in a future commit) with isoline table. The methods that were previously overridden in `CategoryColorsCell` class are now overridden in `ColorColumnHandler`. Cell behavior has been reworked for reducing the amount of mouse clicks and for enabling keyboard usage.
add 34f7b23 Let `Polyline` computes the bounds itself.
add e9ea08a Fix an `IndexOutOfBoundsException` when CRS has more dimensions than the dimensions for which a precision has been specified.
add f2701ff Support the case where one of the CRS axes in a netCDF file is a scalar (number of dimensions = 0). In such case, the scale factor does not exist in the "gridToCRS" matrix; we have only a translation term. In other words, there is no corresponding source coordinate, only a target coordinate which is constant. Some netCDF files use scalar for specifying for example that all values are located at a height of 2 metres.
add f5fe842 Do not list "bounds" variable as coverage variables.
add 788bfe2 Mouse coordinates in status bar need to be updated during scrolling. Opportunistically adjust highlights if scrolling caused an offset. Do not relayout the whole widget every time that mouse moved.
add 80c2fbc Tune `ColorTable` behavior on mouse click and keyboard "enter" key.
add 87d1b72 Initial version of an `IsolineTable` for specifying the isoline values and colors. This control is not yet connected to the actual isolines computation.
add c034b46 Improve the behavior when entering new isoline values: - Sort by increasing values. - Interpolate colors of new values between colors of existing values. - Transition to edition mode when a digit is typed (avoid the need to click on the cell first).
add 3e83f90 Move `IsolineTable` to `ValueColorMapper` for allowing usage (in the future) for other purposes than isolines.
add 80fd560 Make `FormatTableCell` package-private for now.
add 38499ac Add isoline rendering capabilities to `CoverageCanvas` using the information provided by user in a `TableView`.
add 9279763 Tune tracing information for debugging purposes.
add 1f50f98 Add a few assertions and comments. Fix mouse cursor shape during drag events.
add 8713ecc Remove RenderingMode.DIRECT because it causes twinkle at rendering time.
add 430647f Prepare an image slightly larger than viewport area for more continuous translations (pans).
add 2041caf Allow `imageMargin` to be null if there is no margin to apply.
add b24e1da Add a delay before to set the mouse cursor shape to `Cursor.WAIT` during rendering. It avoids distraction by continuously changing mouse shape because of zoom or pan.
add 0a252d7 Recompute isolines if map projection changed.
add ad06a54 Do not draw isolines that are outside the viewed area.
add 041101c Arbitrarily draw isolines with a line tickness of 1/8 of source pixel size, for making apparent when zoom is becoming too strong for data resolution.
add 20e03de Add a listener on `KeyEvent` for removing selected row.
add 53891b2 Minor adjustment in table headers.
add 7b07584 Fix a `NullPointerException` that occurs when a new window is created.
add d1c2db3 Remove `PlanarCanvas.getAreaOfInterest()` because subclass needs to perform a slightly different computation, for example with addition of a margin.
add 7f89f62 Avoid a "no convergence" error when dα₁ ≪ α₁.
add 5ba3ea5 Portrayal : add feature type style filtering test cases for SEPortrayer
add 16b13a8 Comment-out reference to a class which seems to have been forgetten. Remove empty comment for a parameter with mismatched name.
add b3d55b4 Add an `iterationReachedPrecisionLimit` flag in the test for deciding more accurately when assertion tolerance threshold should be relaxed.
add 6dd1602 Portrayal : add SEPortrayalTest and mock classes
add c65774a Document better `GeodeticCalculator` accuracy considerations and replace the special cases in JUnit tests by a `KnownProblem` enumeration in an attempt to make clearer what the problem can be and how the tests handle them.
add c8dcb4e Uncomment portrayal tests.
add fb27a92 Portrayal : add portrayal rule and query tests, implements events on MapLayers components
add 962eba9 Portrayal : add MapLayer.opacity property and MapItem.getEnvelope method
add b239be0 Minor simplification in array creation, and checkstyle fix.
add e11eee1 Implement parallel (multi-threaded) computation of isolines.
add cfd1379 Enable parallel execution of isoline computation in JavaFX viewer.
add 5ac3ea3 Increase minimal tile size for isoline computation, because our algorithm operates better on large tiles.
add 17755f9 Fix an AssertionError caused by `requestRepaint()` invoked (indirectly) during `paint()` execution in `MapCanvas`. For safety, make sure that a `Unclosed` object is not reused in `IsolineTracer.Level.merge(…)`.
add 191b251 Portrayal: change default MapLayer opacity to one
add 96b4ea0 Portrayal : fix incoherency in presentation candidate value type
add 54f5a9c Provide an installation wizard for configuring the path to JavaFX.
add 2ca318c Fix a `NullPointerException` when `bin/sisfx` is invoked while `apache-sis-<version>` is the current directory.
add a29d04c Disable "Download" button if browser is not available.
add 4086b33 Path to JavaFX installation directory should be relative to $BASE_DIR when possible.
add adde8f4 Replace Map.get/put/replace(…) by Map.compute(…) operations.
add 7bc9a9e Document better the rational about `SoftReference` in caches, and replace one `SoftReference` by `WeakReference` for reducing memory retention.
add ce89d94 Portrayal : add SEPortrayer aggregated resource test
add c12f80c Refactor `ValueColorMapper` as a `Widget` subclass. The intent is to allow more complex GUI later (with controls for specifying a range of isoline levels instead than entering values one-by-one).
add b389939 Provide a contextual menu for generating isolines at a constant interval in a range. This work required a refactoring of the way we validate `TextField` value in order to share code.
add 2d01b06 Use `BigDecimal` for computation of intermediate levels for making sure that we do not surprise users with rounding errors before final conversion to `double`.
add e05a30a Add a `CoverageCanvasApp` for manual & visual testing of `CoverageCanvas`.
add 27db458 Fix Javadoc links.
add c40cdfb Replace `Consumer<LogRecord>` by a new `ErrorHandler` interface. It allows us to provide more information about failures, in particular a list of tiles that failed.
add d27acc8 Clarify which `LogRecord` properties are initialised when an error is reported.
add 1556a92 Add the possibility to substitute a tile placeholder in "prefetch" operation if an error handler has been specified.
add 4fd2a67 Try to provide a better coverage of error handling during `CoverageCanvas` rendering: - Replace the various `ErrorHander.Report.addFoo(…)` methods by a single `add(…)` method giving more control on the `LogRecord` content. - Make `ErrorHandler.Report` thread-safe and document the synchronization lock to use when modifying the `LogRecord` content. - Allow `PrefetchedImage` to perform rendering in a mode where exceptions are caught and tiles are replaced by place-holders. [...]
add 7538f73 Apply `ErrorHandler` during sequential operations too, not only during parallel operations.
add d6ca8ba Better catching of exceptions to be reported to user.
add 3bba8ad Remove `transformOnNewImage`, which was not necessary. It simplifies the handling of transforms and seems to resolve a discontinuity sometime observed during pan events.
add 6e39e36 Increase the off-screen margin for smother pan gestures.
add 2e68ca4 Add a public API for isolines.
add efc8fd2 Better error messages.
add 33701c6 Make possible to apply linearizers on localization grid and have the final coordinates in the "linearized" CRS, without converting them back to the original CRS. The use case is the application of Universal Transverse Mercator (UTM) projection on GCOM rasters for making their "grid to CRS" closer to affine transforms. In this case, we want to keep UTM coordinates in the final result, not reconverting them back to geographic coordinates.
add 5dfb974 Upgrade dependencies.
add 0a33751 Portrayal : add SEPortrayer preserve properties hint and testcase
add 3dae4f4 Portrayal : fix cases where rule filter properties are not returned
add 2d6d2a7 Portrayal : fix exception when using a property on a sub-featuretype in style definition
add d043566 Fix `NoSuchMethodException` when cloning an array and `NullPointerException` when writing legacy metadata properties. This is a side-effect of work done in ASF-OGC-OSGeo join code sprint.
add da11a2e Upgrade UCAR netCDF dependency from version 4.6.15 to 5.4.1. Changes in UCAR API are documented at there: https://docs.unidata.ucar.edu/netcdf-java/current/userguide/upgrade_to_50.html
add cbd2a0b Restore the same set of `NetcdfDataset.Enhance` mode than before the upgrade to UCAR library version 5. It is important in particular to NOT put the `ConvertUnsigned` mode, because Apache SIS handles unsigned integers in a different way than what UCAR does. Remove usage of deprecated `enhance` method.
add 27a08d6 Finer determination of Transverse Mercator domain of validity.
add b0c3203 After having verified that `TransverseMercator` now behave like a monotonic function up to 90° of longitude, remove the limit previously set at 70°. Add notes saying that results for longitude larger than 60° are inexact. We nevertheless allow computations between 60° and 90° because they are required for handling some raster data.
add 3d32ab4 Add clarification in comments.
add e9ad9cf Replace ≧ by ≥ and ≦ by ≤.
add 0bb4160 Replace some http: protocols by https: and remove links that seem not active anymore.
add 5d86b40 Remove the `netcdf.version` property. It is not needed anymore since we have only one dependency.
add 4658dfb Avoid use of the deprecated `ucar.nc2.dataset.CoordSysBuilder` class. It forces us to register a `ucar.nc2.dataset.spi.CoordSystemBuilderFactory` using Service Provider Interface (SPI), which is a bit unfortunate because it has a global effect on system configuration. But we do this registration only if the `sis-japan-profile` is in the classpath.
add ecb8f7f Portrayal : add SEPortrayer symbolizer geometry expression test case
add a37595c `CRS.findOperation(…)` should accept `EngineeringCRS` with same datum but different axis directions.
add a00f7dd Fix an axis order problem when a linearization (currently a UTM map projection) is applied on the localization grid of a netCDF file. Before this fix, geographic bounding box were wrong because map projection applied on coordinates in the wrong order.
add a16d4da Fix a `NullPointerException`.
add 402736e Fix a few broken {@code} annotations in javadoc.
add 37bab9c Update for a change in GeoAPI: upgrade Record types from ISO 19103:2005 to ISO 19103:2015. The `Record` API has been simplified (some methods have been deprecated). ISO 19103:2005 "members" have been replaced by ISO 19103:2015 "fields". We reflect that change of word in the Javadoc texts and in comments.
add 3f28f21 Add `AbstractEnvelope.getTimeRange()` method as a complement of `GeneralEnvelope.setTimeRange(…)`. Also available as a static method in `Envelopes`.
add 8f1fc38 Add test cases for `GeneralEnvelope.get/setTimeRange(…)`.
add 9b2fe86 `RangeFormat` should accept ranges of objects from the `java.time` package (at lest the main types).
add 3eaf523 Rename some `HardCodedCRS` constants for a more consistent pattern when saying which axis is first.
add 75167ab Omit extra dimensions such as time axis in `GridDerivation.substring(…)` if the base geometry does not have those dimensions.
add fd31865 fix(Storage): add a null check in NetCDF provider.
add 5eacd24 Fix a confusion when `Envelopes.transform(…)` check if +180° or -180° of longitude should be added to the bounding box.
add ab6393c Add a test case for the fix provided in previous commit.
add 34caf17 Returns NaN instead than throwing an exception for Δλ > 90° in the TransverseMercator projection.
add 50be7b1 Fix a NullPointerException.
add 8ae43dd Fix an `ArrayIndexoutOfBoundsException` in `WKTUtilities.cornersAndCenter(…)` when the grid size is smaller than `2*cornerSize + 1`.
add ef9e435 Add `LinearTransformBuilder.approximate(MathTransform, int...)` for building linear approximation of a non-linear transform in a given domain.
add 07257ce Refactor `LinearTransformBuilder.approximate(…)` implementation in a separated class. Change method signature and add a `GridGeometry.linearize(…)` method.
add a59613b JTS : update version from 1.18.0 to 1.18.1
add 00cfd43 Complete upgrate of JTS version.
add 6caf39f Refactor `GridGeometry.linearize(…)` method in a separated `DomainLinearizer` class. The intent is to make linearization more parametrable, e.g. with a scale factor.
add 65cd3ad Rename `setUniformScale(…)` as `setScaleFactor(…)` for avoiding the impression that it forces `scaleX` and `scaleY` to same value. Creates the `GridCoverageProcessor` only once and cache the instance.
add a511c4d Fix tests which was timezone-dependent.
add 688f9ec Fix a test failure occurring with JDK 16.
add 6c894a5 Add a `BandedCoverage` as an abstract class for `GridCoverage` (today) and other kind of coverage geometries (in the future).
add f2256f8 Rename Interpolator as GridEvaluator.
add d67431d fix(Storage): Relax PostGIS version check to allow versions superior to 2
add ec007be9 fix(sis-sqlstore): fix numeric value conversion for new PostgreSQL version
add 09a691e chore(Build): Upgrade maven checkstyle plugin
add 23acea5 chore(Feature): add a test for BBOX filter. Ensure usage of a CRS for whom no matching authority factory exists does not cause failure.
add b94189b Updates for change in `Filter` interfaces: - `FilterVisitor` and `ExpressionVisitor` removed - `IncludeFilter` and `ExcludeFilter` removed from public API - `NilExpression` removed - `Filter` as a sub-type of `java.util.Predicate` - `Expression` as a sub-type of `java.util.Function`
add 0d3851e Fix spelling errors spotted by Bruno on https://github.com/apache/sis/pull/23 merge request.
add 5fa76e9 Added an internal method for converting `java.awt.image.DataBuffer` enumeration values to `org.apache.sis.util.Numbers` enumeration values.
add 63be6f5 Add a variant of `HyperRectangleReader.read(Region)` method for returning the data array wrapped in a `java.nio.Buffer`.
add ecbad76 Add a Vector.fill(…) method as a convenient way to initialize the content of an array of unknown type.
add cb58f9f Revisit GridDerivation: - Add a `GridDerivation.chunkSize(…)` method for expanding a grid extent to an integer amount of tiles. - Fix an inconsistency in the way clipping is handled by `GridCoverageDerivation`. We resolve this inconsistency by giving more control to the caller on clipping. - Deprecate some methods having a contract at odd with `subgrid(…)` methods - Documentation clarification.
add bf4cb0c Read GeoTIFF sample values from a potentially n-dimensional data cube. Whether the file has 3 or more dimensions is assumed already known; this commit does not yet include a convention for specifying that.
add 9df65c0 Add the possibility to run `SelfConsistencyTest` on an arbitrary image put in the test data directory.
add d08b85a Apply self-consistency test on netCDF reader as well.
add 699afb3 fix(Storage): Prevent error on metadata creation when a feature typedeclares 0 records
add 2c9789d Minor documentation fixes.
add 0123dee Fix the name of the TemporalCRS created from CommonCRS.Temporal.JAVA.
add 0df0bc4 Fix a wrong transform concatenation occurring when matrix coefficients are very close to zero. Bug identified by Johann Sorel.
add 04965b4 ProjectiveTransform wrongly optimized to translation when the scale coefficient is zero. Bug identified by Johann Sorel.
add 99cafb6 Avoid the use of `FeatureTypeBuilder` for keeping tests more isolated (i.e. for not being impacted by potential bugs in FeatureTypeBuilder). Use `TestUtilities.getSingleton(…)` method for checking the result. Keep `verifyCopyrightParsing(…)` close to the place where it is used.
add ac5e8e0 Fix an `IllegalArgumentException` when creating a coverage with bands using incompatible units.
add 9690268 Values stored in `DefaultSampleDimension` should be physical values ("data values"), not the compressed values in the file ("cell values").
add 710bd1a Fix an `ArrayIndexOutOfBoundsException` occurring during sample value conversions because `lastUsed` unexpectedly became negative.
add e33d72e Make `ResampledGridCoverage` more robust to case where the `sliceExtent` has more than 2 dimensions, and the extra-dimensions may get a size greater than 1 after conversion to source grid coordinates. Also add a margin for interpolations.
add 1b26a1a Try to reduce a problem of weak references cleaned too early, which caused the EPSG factory to recreate the same objects again and again. Factory is still creating more objects than we would expect during "search" operations, but the situation with this fix is a bit better.
add ced335d Compute `PlanarImage.GRID_GEOMETRY_KEY` property for image read from GeoTIFF files.
add a36a492 Fix ColorModel creation when there is a color palette or in the interleaved case.
add ee0e0df Fix erroneous handling of TIFF images when bands are stored in separated planes.
add e1b1ae8 Make `GridGeometry.translate(…)` more robust to cases where not all properties are defined.
add 7b7be5e Make navigation a little bit easier in the JavaFX application by avoiding the need to expand `Aggregate` node for showing an image.
add d853a03 Allow to run `CoverageReadConsistency` for benchmarks instead than tests.
add 351dbc1 Make canvas more robust to missing CRS information.
add d7d208e Fix broken tests.
add 2f900ed Downgrade from JUnit 5 to JUnit 4. The mix of JUnit 4 and 5 seems to cause some tests to be ignored. Full migration to JUnit 5 will be done later: https://issues.apache.org/jira/browse/SIS-457
add fb628eb Re-enable test execution as a test suite.
add dda5ef6 Document `QuerySpliteratorsBench`, use some services provide by testing framework and adjust build configuration.
add 1c5d597 Document other tests.
add b26a5d7 Fix a NullPointerException when converting an array of `float` containing unmapped values.
add 57901c3 Bug fix: when `ImageRenderer` is applied on a 3-dimensional image (or more), it shall compute an offset taking in account all supplemental dimensions.
add 9c03b4f Add `GeometryWrapper.getSRID()` method.
add ac4fe06 Test also slicing in other dimensions than the 2 first dimensions.
add c830f9c Source and target dimensions should not be considered dependent when the scale factor is 0.
add 3709ff1 Add a `DefinitionVerifier.compare(…)` method for comparing against an authoritative CRS already available. Contains opportunistic field renaming and localization.
add 8b96787 Rename `SimpleQuery` as `FeatureQuery` and adapt property/method names to terminology used in OGC Filter specification ("projection" and "selection").
add 7544551 Define a mapping between `GeometryType` and the integer codes used in Well-Known Binary (WKB).
add 01cd18c Replace `DataType.ordinal()` by `DataType.toDataBufferType()` for clarity. Various javadoc fixes.
add a061e01 Put in place the abstract classes needed for uncompression. Support uncompressed image of bytes for testing and for the case with subsampling along X axis (in which case we can not use `HyperRectangleReader`).
add 23ff7d0 Fix the case where subsampling is larger than tile size.
add d06a9b1 Add AbstractGridCoverage.RangeArgument.select(SampleModel)` method with capability to "compress" the sample model for skipping bands at reading time (instead of ignoring them after they are in memory).
add 973c7c0 Get `SampleModel` and `ColorModel` managed by `TiledGridCoverage` base class. Add `TiledGridCoverage.selectedBands` field and clarifications in Javadoc.
add d53b8a5 Take in account the band subset specified by the `range` argument in a call to `GridCoverage.render(…)` on a GeoTIFF image.
add 54eb82c Expand the support to all primitive types.
add b71d71d Use direct buffer by default instead of heap buffer for I/O operations.
add 79d5221 Minor optimization for the case where the bands to read are consecutive.
add 4177632 Cache tiles at any resolution, not only at full resolution.
add e16859b Read all tiles that are inside the requested domain at `GridCoverageResource.read(…)` invocation time by default, but provide a `RasterLoadingStrategy` enumeration for allowing developers to keep the previous mode if desired. This enumeration is not in public API for now; we will see how it works in practice first.
add b7fcc02 fix(Feature): Ensure coordinate order consistency when converting an envelope to a geometry
add ae02727 fix(Feature): When initializing a spatial operator, allow receiving bbox values
add ccb433e fix(Feature): Workaround to prevent optimisation shorting
add ee9a44d chore(Storage): Add a test-case to verify that geometry CRS are properly synchronized (when possible) in comparison functions.
add ee5c697 fix(Storage): better handling of CRS for spatial operators
add 410d2c2 fix(Feature): fix a corner case where an expression optimisation was not properly unwrapped.
add 7943c4e fix(Feature): delegates expression value type conversion if needed.
add dbc1185 Review the fix about axis order change: we still need to adapt the CRS for a change in number of dimensions. Some complexity about calculation of x and y dimensions are not needed anymore. The test is effective only if tested with an envelope of more than 2 dimensions.
add cba0f62 Review the fix about accepting bounding boxes as filter initialization time. Move implementation to the location where decisions are done (which types to convert, wrap-around method to apply). A goal is also to keep in the same class the code that will need to be changed if we use more extensively the <G> parameter type in filter implementations.
add 1d41edc Keep type parameterization on `Node.unwrap(…)` with a minor change for resolving a compiler warning. This is in anticipation for more extensive use of the <G> type parameterization in a future version.
add fdb3f59 Formatting, resolve compiler warning and use more specific test methods.
add 83ec78c Reduce by one the number of exceptions created when the fallback is used or when an error occurs.
add e1b3d89 Move the `Compression` enumeration close to `Inflater`. It would allow sharing compression algorithms with other image formats in the future if needed.
add 7bbdb81 Rename `Uncompressed` as `CopyFromBytes` because this class can be used even for compressed data.
add 6580779 Ensure that the chunk size are not greater than buffer capacity.
add 4db6a33 Add PackBits compression.
add 328a7a0 Add a `ChannelDataInput.skipRemainingBits()` method. Minor clarifications in Javadoc and in comments.
add 86423f0 Add `ArgumentChecks.ensureDivisor(…)` method.
add faebd0f Add CCITTRLE compression. This addition requires partial support of multi-pixels packed images In the case of images compressed by CCITTRLE, they are bilevel images with 8 pixels per byte. Fields have been renamed: "element" is now reserved to elements in arrays of primitive type.
add 3b223ec Fix a case where `GridDerivation` was not expanding the extent to an integer amount of tiles. Fix a `NullPointerException` when `gridToCRS` is null (i.e. when data have no known location).
add 022a1f3 Consolidation: - Safer rounding of subsampling values. - Add test and clarifications in Javadoc.
add 719cbff Renamed `selectedBands` as `includedBands` because a band may be loaded despite not being selected by user.
add 2fc2121 When reading multi-pixels packed images, restrict sub-region to element boundaries (typically byte boundaries). It allows the `SelfConsistencyCheck` test to pass for random sub-regions.
add 3bc831a Group together the display of statistics about execution time.
add aa876ee Rename `samplesPerElement` as `pixelsPerElement` (this is not the same value in `SinglePixelPackedSampleModel` case) and consolidate the way that this value is computed from the `SampleModel`.
add 2d122d3 Add a `GridDerivation.maximumSubsampling(…)` method and use it in `TiledGridResource` for disabling subsamplings on axes where it is not supported.
add 2cef81f Provide a slightly optimized implementation of `ChannelDataInput.readBit()` method.
add cdaefbb Support a few tags from TIFF Section 12: Document Storage and Retrieval.
add f1f67f2 Support TIFF FillOrder=2.
add ff3c356 Take in account the Differencing Predictor (for now, only "none" is supported).
add 63e31b0 Add LZW compression (read only).
add 55d0df0 Add support for Horizontal Differencing Predictor.
add 0a7d660 Refactor: - Move inflater in a new "...storage.inflater" package for sharing with other raster formats in the future. - Add a hock for releasing native resource potentially held by `Inflater` (e.g. for a ZIP inflater). - Reuse the same `Inflater` instance for all tiles to read in a single call to `read(…)`. - Verifies `HorizontalPredictor` assumption (currently works only with bytes). - Consolidation: add comments, rename some variables, rename some classes.
add 5024fa9 Continue to parse unit even if the date can not be parsed. For example the unit is sometime "hours since analysis" instead of "hours since 1970-01-01 00:00:00".
add 9d096ae Provides `SQLBuilder` configuration in a separated class (`Syntax`) for making possible to reuse configuration analysis. Add methods in `SQLBuilder` for pagination and for distinct values.
add dae2bed Move the handling of `ReferenceSystem` outside `SQLBuilder`.
add 84fcc96 Add a copy constructor. Document the issue about parameterized type in `Visitor.visit(…)` methods.
add 8918191 Add a method for getting filters as a `F₀ AND F₁ AND F₂ AND F₃ AND ...` sequence. It allows to translate some Fₙ to SQL statements without forcing an "all or nothing" policy.
add 5b1cdce Give public access to the `SortProperty` elements wrapped by `SortByComparator`. It allows `DataStore` implementations to translate "sort by" into SQL statements.
add 2279b2a Provide `String` constants for predefined attribute names. It avoid synchronization on `GenericName.toString()` calls.
add 9daf881 Better `toString()` (for debugging only) of the query executed by `FeatureSubset`. Give to `Stream.filter(Predicate)` the filter directly, not a lambda to the `test` method. This is important for allowing stream implementations to optimize the filters.
add 8a9f4c2 Relax the requirement that the source CRS is non-null in a call to `transform(targetCRS)`. A null sourceCRS will be a no-operation. This is consistent with current target CRS policy. This change is for making easier to implement a data store on SQL database such as PostGIS, when the geometry in a filter expression is often specified by a WKT without CRS.
add d94bbdd Add an `Optimization.setFeatureType(…)` method and update some filter/expression implementations for taking advantage of it.
add 7e23b40 Refactoring of `sis-sqlstorage` module: - Make import closer to the order on other branch. This is not necessarily a better order, but the intend is to reduce conflicts at merge time. - Merge `SQLBiFunction` and `ColumnAdapter` into a single abstract class: `ValueGetter`. - Merge `SQLColumn`, `ColumnRef` and `GeometryColumn` in a single `Column` class. - Merge `DialectMapping` and `ANSIMapping` in a single `Session` class. - Delegate WKB parsing to the geometry library ( [...]
add 0fe01ad Remove (for now) JMH dependencies because not used anymore. We will revert this commit in the future if JMH is used again.
add 943f91b Add performance tips about the use of filters.
add 2dfd4ad USe `X_DIMENSION` and `Y_DIMENSION` constants for 0 and 1. Fix a tile width which was sometime wrong (a `forceTileSize` flag has been added).
add 4a77991 Faster transfer of sample values from `input.buffer` to the image `bank`.
add c56aa2f Apply the Horizontal Differencing predictor on other data types than bytes.
add 07e5807 Fix a NullPointerException.
add 753a5cd Remove a warning about unused GeogCitation key.
add bd56303 Parse some more metadata from Landsat.
add ef52731 Use enumeration and `EnumMap` instead of masks for managing the bands.
add 311d7ea Add a `StoreMetadata.isLowPriority` boolean for testing a provider last. This is used when a provider is too generic and we want to allow more specialized providers to be tested first.
add 0701a79 Allow Landsat file to be opened from its directory, without requerying to point specifically to the metadata file. Cleanup in Landsat metadata builder and the JavaFX metadata summary.
add e1aab23 Document better the purpose of the "parent" list of listeners.
add 2353994 Revisit the way GeoTIFF metadata are built: - Group more information on an image-by-image basis. - Build `DataStore` metadata by merging images metadata.
add d585a5b Landsat data store use GeoTIFF data store for providing components.
add 8d7b8a0 Bug fix: the temporary buffer for data decompression must use the same byte order than the direct buffer used for reading data.
add d89277b Rename `isLowPriority` as `yieldPriority`.
add ae91ef1 Replace the undocumented hack by a documented extension mechanism. Remove the Numerics.isUnsignedInteger(…) method since it was not used elsewhere.
add f266b2a Replace `SchemaModifier` interface by `SQLStore.customize(…)` protected method for consistency with the approach applied in `GeoTiffStore`.
add 8e62803 `RecoloredImage` works with `IndexColorModel` in addition of gray scale.
add a83a431 Modify (again) the way schema is customized, reverting back to an interface but specifying it with `OptionKey` instead than by the provider. The interface is kept in internal package for now, waiting to gain more experience with its use before to move (with changes) in public API.
add e61f0a6 Use an interface for customizing GeoTIFF metadata instead than protected methods (same change than for sql-store). Use that interface in `LandsatStore`. Contains a transfer function change from "radiance" to "reflectance".
add f32bc87 Rename Landsat implementation classes, add localization, group bands in Reflective/Panchromatic/Thermal groups.
add 854a1d5 Add a comment about future work.
add 6d1ba31 Throws exception in case of invalid property values in `ImageProcessor.recolor(…)` method instead of silently ignoring.
add 7b885ef Move and refactor `FeatureComparator` in a test package.
add 601da96 Update links to TIFF/GeoTIFF specifications.
add 1b3d964 Rename `SpatialFunction` as `BinarySpatialFilter`.
add f996dda Rename `DefaultLike` as `LikeFilter`.
add c89b71a Rename `LogicalFunction` as `LogicalFilter`.
add b258575 Rename `TemporalFunction` as `TemporalFilter`.
add aadd236 Rename `ComparisonFunction` as `ComparisonFilter`.
add 4c2cdb3 Rename `FilterByIdentifier` as `IdentifierFilter`.
add ecae486 Rename `DefaultSortBy` as `DefaultSortProperty`.
add bc2b551 Update for change in GeoAPI: parameterize `SortBy` and `SortProperty`. Use `SortBy` instead of `SortProperty[]` where appropriate.
add 982b713 Generalize `SortByComparator`.
add 3b0f5c0 Filter implementations override Predicate.and/or/not methods.
add fa65ecf Move Query sub-types to public package.
add b9591b3 Specialize the resource type of SQL store to `FeatureSet`.
add d058d30 Fix a NullPointerException occurring when a table has no primary key.
add 96e85e7 Upgrade dependencies.
add 987a326 Apply filter optimization before to create a feature subset.
add d65b2a0 Provide a common ground between `FeatureQuery` and `CoverageQuery`.
add 04c2145 Update Maven dependencies, JavaFX dependency, and fix a broken javadoc link.
new 152b383 Merge branch 'geoapi-4.0' into geoapi-3.1.
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:
NOTICE | 23 +-
application/pom.xml | 5 +-
application/sis-console/pom.xml | 2 +-
application/sis-javafx/doc/readme.txt | 19 +
application/sis-javafx/pom.xml | 190 +-
.../src/main/artifact/LICENSE | 0
.../src/main/artifact/NOTICE | 0
application/sis-javafx/src/main/artifact/README | 86 +
application/sis-javafx/src/main/artifact/bin/sisfx | 45 +
.../sis-javafx/src/main/artifact/bin/sisfx.bat | 36 +
.../src/main/artifact/conf/logging.properties | 67 +
.../sis-javafx/src/main/artifact/conf/setenv.bat | 2 +
.../sis-javafx/src/main/artifact/conf/setenv.sh | 2 +
.../sis-javafx/src/main/artifact/data/README | 1 +
.../sis-javafx/src/main/artifact/lib/README | 8 +
.../sis-javafx/src/main/artifact/lib/logo.jpg | Bin 0 -> 44981 bytes
.../sis-javafx/src/main/artifact/log/README | 3 +
.../main/java/org/apache/sis/gui/AboutDialog.java | 71 +
.../main/java/org/apache/sis/gui/DataViewer.java | 308 +++
.../src/main/java/org/apache/sis/gui/Main.java | 204 --
.../main/java/org/apache/sis/gui/RecentFiles.java | 154 ++
.../src/main/java/org/apache/sis/gui/Widget.java | 57 +
.../apache/sis/gui/coverage/BandRangeTable.java | 161 ++
.../sis/gui/coverage/BandSelectionListener.java | 67 +
.../org/apache/sis/gui/coverage/CellFormat.java | 338 ++++
.../java/org/apache/sis/gui/coverage/Controls.java | 136 ++
.../apache/sis/gui/coverage/CoverageCanvas.java | 963 +++++++++
.../apache/sis/gui/coverage/CoverageControls.java | 299 +++
.../apache/sis/gui/coverage/CoverageExplorer.java | 410 ++++
.../apache/sis/gui/coverage/CoverageStyling.java | 205 ++
.../java/org/apache/sis/gui/coverage/GridCell.java | 73 +
.../org/apache/sis/gui/coverage/GridControls.java | 162 ++
.../org/apache/sis/gui/coverage/GridError.java | 130 ++
.../java/org/apache/sis/gui/coverage/GridRow.java | 113 ++
.../org/apache/sis/gui/coverage/GridRowSkin.java | 138 ++
.../java/org/apache/sis/gui/coverage/GridTile.java | 194 ++
.../org/apache/sis/gui/coverage/GridTileCache.java | 56 +
.../java/org/apache/sis/gui/coverage/GridView.java | 651 ++++++
.../org/apache/sis/gui/coverage/GridViewSkin.java | 605 ++++++
.../sis/gui/coverage/ImagePropertyExplorer.java | 826 ++++++++
.../org/apache/sis/gui/coverage/ImageRequest.java | 342 ++++
.../apache/sis/gui/coverage/IsolineRenderer.java | 498 +++++
.../org/apache/sis/gui/coverage/RenderingData.java | 621 ++++++
.../org/apache/sis/gui/coverage/Stretching.java | 79 +
.../org/apache/sis/gui/coverage/package-info.java | 26 +
.../org/apache/sis/gui/dataset/CopyAction.java | 137 ++
.../org/apache/sis/gui/dataset/DataWindow.java | 118 ++
.../org/apache/sis/gui/dataset/ExpandableList.java | 425 ++++
.../apache/sis/gui/dataset/ExpandedFeature.java | 222 ++
.../org/apache/sis/gui/dataset/FeatureList.java | 340 ++++
.../org/apache/sis/gui/dataset/FeatureLoader.java | 343 ++++
.../org/apache/sis/gui/dataset/FeatureTable.java | 559 +++--
.../java/org/apache/sis/gui/dataset/LoadEvent.java | 66 +
.../java/org/apache/sis/gui/dataset/LogViewer.java | 537 +++++
.../apache/sis/gui/dataset/ResourceExplorer.java | 570 ++++++
.../org/apache/sis/gui/dataset/ResourceTree.java | 881 ++++++--
.../org/apache/sis/gui/dataset/SelectedData.java | 122 ++
.../org/apache/sis/gui/dataset/WindowManager.java | 203 ++
.../org/apache/sis/gui/dataset/package-info.java | 31 +
.../java/org/apache/sis/gui/map/MapCanvas.java | 1205 +++++++++++
.../java/org/apache/sis/gui/map/MapCanvasAWT.java | 559 +++++
.../main/java/org/apache/sis/gui/map/MapMenu.java | 217 ++
.../org/apache/sis/gui/map/OperationFinder.java | 243 +++
.../java/org/apache/sis/gui/map/StatusBar.java | 1309 ++++++++++++
.../org/apache/sis/gui/map/ValuesUnderCursor.java | 622 ++++++
.../java/org/apache/sis/gui/map/package-info.java | 29 +
.../sis/gui/metadata/IdentificationInfo.java | 501 +++++
.../org/apache/sis/gui/metadata/MetadataNode.java | 228 ---
.../apache/sis/gui/metadata/MetadataOverview.java | 430 ----
.../apache/sis/gui/metadata/MetadataSummary.java | 399 ++++
.../org/apache/sis/gui/metadata/MetadataTree.java | 379 ++++
.../sis/gui/metadata/RepresentationInfo.java | 133 ++
.../org/apache/sis/gui/metadata/ResourceView.java | 399 ----
.../java/org/apache/sis/gui/metadata/Section.java | 292 +++
.../sis/gui/metadata/StandardMetadataTree.java | 242 +++
.../org/apache/sis/gui/metadata/package-info.java | 30 +
.../main/java/org/apache/sis/gui/package-info.java | 28 +
.../apache/sis/gui/referencing/AuthorityCodes.java | 525 +++++
.../org/apache/sis/gui/referencing/CRSButton.java | 79 -
.../org/apache/sis/gui/referencing/CRSChooser.java | 438 +++-
.../org/apache/sis/gui/referencing/CRSTable.java | 349 ----
.../java/org/apache/sis/gui/referencing/Code.java | 94 +-
.../org/apache/sis/gui/referencing/CodeFilter.java | 108 +
.../org/apache/sis/gui/referencing/MenuSync.java | 277 +++
.../sis/gui/referencing/ObjectStringConverter.java | 110 +
.../gui/referencing/PositionableProjection.java | 256 +++
.../gui/referencing/RecentReferenceSystems.java | 894 ++++++++
.../java/org/apache/sis/gui/referencing/Utils.java | 104 +
.../org/apache/sis/gui/referencing/WKTPane.java | 189 +-
.../apache/sis/gui/referencing/package-info.java | 27 +
.../apache/sis/internal/gui/BackgroundThreads.java | 150 ++
.../org/apache/sis/internal/gui/ColorName.java | 87 +
.../org/apache/sis/internal/gui/DataFormats.java | 47 +
.../apache/sis/internal/gui/ExceptionReporter.java | 338 ++++
.../org/apache/sis/internal/gui/FXUtilities.java | 91 -
.../org/apache/sis/internal/gui/FontGlyphs.java | 143 --
.../org/apache/sis/internal/gui/GUIUtilities.java | 335 +++
.../sis/internal/gui/IdentityValueFactory.java | 75 +
.../apache/sis/internal/gui/ImageConverter.java | 193 ++
.../sis/internal/gui/ImmutableObjectProperty.java | 115 ++
.../org/apache/sis/internal/gui/LogHandler.java | 261 +++
.../sis/internal/gui/NonNullObjectProperty.java | 55 +
.../org/apache/sis/internal/gui/PropertyView.java | 361 ++++
.../org/apache/sis/internal/gui/RecentChoices.java | 242 +++
.../apache/sis/internal/gui/ResourceLoader.java | 253 +++
.../org/apache/sis/internal/gui/Resources.java | 310 ++-
.../apache/sis/internal/gui/Resources.properties | 61 +-
.../sis/internal/gui/Resources_fr.properties | 61 +-
.../java/org/apache/sis/internal/gui/Styles.java | 217 ++
.../org/apache/sis/internal/gui/ToolbarButton.java | 122 ++
.../apache/sis/internal/gui/control/ColorCell.java | 457 +++++
.../internal/gui/control/ColorColumnHandler.java | 148 ++
.../apache/sis/internal/gui/control/ColorRamp.java | 234 +++
.../sis/internal/gui/control/FormatApplicator.java | 253 +++
.../sis/internal/gui/control/FormatTableCell.java | 261 +++
.../sis/internal/gui/control/ValueColorMapper.java | 558 +++++
.../sis/internal/gui/control/package-info.java | 31 +
.../org/apache/sis/internal/gui/package-info.java | 5 +-
.../org/apache/sis/internal/setup/FXFinder.java | 433 ++++
.../org/apache/sis/internal/setup/Inflater.java | 175 ++
.../sis/internal/setup/LoggingConfiguration.java | 94 +
.../java/org/apache/sis/internal/setup/Wizard.java | 757 +++++++
.../org/apache/sis/internal/setup/WizardPage.java | 114 ++
.../apache/sis/internal/setup/package-info.java | 29 +
.../resources/org/apache/sis/gui/SIS_128px.png | Bin 0 -> 26619 bytes
.../main/resources/org/apache/sis/gui/SIS_64px.png | Bin 0 -> 8906 bytes
.../org/apache/sis/gui/pseudo-classes.css | 6 +
.../org/apache/sis/gui/referencing/CRSChooser.fxml | 30 -
.../org/apache/sis/gui/referencing/proj_conic.png | Bin 591 -> 0 bytes
.../org/apache/sis/gui/referencing/proj_geo.png | Bin 834 -> 0 bytes
.../org/apache/sis/gui/referencing/proj_square.png | Bin 519 -> 0 bytes
.../org/apache/sis/gui/referencing/proj_stereo.png | Bin 959 -> 0 bytes
.../org/apache/sis/gui/referencing/proj_utm.png | Bin 681 -> 0 bytes
.../apache/sis/gui/coverage/CoverageCanvasApp.java | 129 ++
.../sis/gui/coverage/CoverageStylingApp.java | 85 +
.../org/apache/sis/gui/coverage/GridViewApp.java | 105 +
.../apache/sis/gui/referencing/CRSChooserApp.java | 92 +
.../apache/sis/internal/gui/GUIUtilitiesTest.java | 72 +
.../internal/gui/control/ValueColorMapperApp.java | 84 +
.../sis/test/suite/ApplicationTestSuite.java | 45 +
application/sis-openoffice/pom.xml | 2 +-
.../sis-openoffice/src/main/unopkg/license.txt | 2 +-
application/sis-webapp/pom.xml | 77 -
.../java/org/apache/sis/index/tree/GeoRSSData.java | 177 --
.../org/apache/sis/index/tree/QuadTreeReader.java | 163 --
.../org/apache/sis/services/LocationServlet.java | 479 -----
.../main/java/org/apache/sis/services/Servlet.java | 26 +
.../java/org/apache/sis/services/package-info.java | 21 +
.../src/main/resources/sis-location-config.xml | 28 -
.../src/main/webapp/META-INF/context.xml | 9 +-
.../sis-webapp/src/main/webapp/WEB-INF/web.xml | 20 +-
application/sis-webapp/src/main/webapp/demo.jsp | 321 ---
.../src/main/webapp/images/sis_logo_small.png | Bin 35560 -> 0 bytes
core/pom.xml | 12 +-
core/sis-build-helper/pom.xml | 4 +-
.../apache/sis/internal/book/CodeColorizer.java | 6 +-
.../util/resources/IndexedResourceCompiler.java | 8 +-
core/sis-cql/pom.xml | 2 +-
.../src/main/java/org/apache/sis/cql/CQL.java | 607 +++---
.../org/apache/sis/cql/FilterToCQLVisitor.java | 846 +++-----
.../test/java/org/apache/sis/cql/CQLTestCase.java | 22 +-
.../test/java/org/apache/sis/cql/CQLTestSuite.java | 4 +-
.../org/apache/sis/cql/ExpressionReadingTest.java | 127 +-
.../org/apache/sis/cql/ExpressionWritingTest.java | 71 +-
.../java/org/apache/sis/cql/FilterReadingTest.java | 768 ++-----
.../java/org/apache/sis/cql/FilterWritingTest.java | 125 +-
core/sis-feature/pom.xml | 8 +-
.../org/apache/sis/coverage/BandedCoverage.java | 149 ++
.../java/org/apache/sis/coverage/Category.java | 28 +
.../java/org/apache/sis/coverage/CategoryList.java | 197 +-
.../org/apache/sis/coverage/ConvertedCategory.java | 14 +-
.../org/apache/sis/coverage/SampleDimension.java | 119 +-
.../org/apache/sis/coverage/SampleRangeFormat.java | 2 +-
.../main/java/org/apache/sis/coverage/ToNaN.java | 2 +-
.../sis/coverage/grid/BufferedGridCoverage.java | 317 +++
.../sis/coverage/grid/ConvertedGridCoverage.java | 296 +++
.../coverage/grid/CoordinateOperationFinder.java | 754 +++++++
.../apache/sis/coverage/grid/DimensionReducer.java | 108 +
.../sis/coverage/grid/DisjointExtentException.java | 18 +-
.../apache/sis/coverage/grid/DomainLinearizer.java | 223 ++
.../coverage/grid/FractionalGridCoordinates.java | 501 +++++
.../apache/sis/coverage/grid/GridClippingMode.java | 51 +
.../sis/coverage/grid/GridCoordinatesView.java | 23 +-
.../org/apache/sis/coverage/grid/GridCoverage.java | 188 +-
.../apache/sis/coverage/grid/GridCoverage2D.java | 673 +++++++
.../sis/coverage/grid/GridCoverageBuilder.java | 566 ++++++
.../sis/coverage/grid/GridCoverageProcessor.java | 267 +++
.../apache/sis/coverage/grid/GridDerivation.java | 976 ++++++---
.../apache/sis/coverage/grid/GridEvaluator.java | 276 +++
.../org/apache/sis/coverage/grid/GridExtent.java | 597 ++++--
.../apache/sis/coverage/grid/GridExtentCRS.java | 191 ++
.../org/apache/sis/coverage/grid/GridGeometry.java | 583 ++++--
.../apache/sis/coverage/grid/GridOrientation.java | 312 +++
.../apache/sis/coverage/grid/GridRoundingMode.java | 27 +-
.../grid/IllegalGridGeometryException.java | 13 +-
.../apache/sis/coverage/grid/ImageRenderer.java | 464 ++++-
.../sis/coverage/grid/ResampledGridCoverage.java | 666 ++++++
.../apache/sis/coverage/grid/ReshapedImage.java | 303 +++
.../apache/sis/coverage/grid/SliceGeometry.java | 372 ++++
.../org/apache/sis/coverage/grid/package-info.java | 24 +-
.../org/apache/sis/feature/AbstractAttribute.java | 3 +-
.../org/apache/sis/feature/AbstractFeature.java | 39 +-
.../apache/sis/feature/AbstractIdentifiedType.java | 2 +-
.../apache/sis/feature/DefaultAttributeType.java | 2 +-
.../java/org/apache/sis/feature/DenseFeature.java | 25 +-
.../org/apache/sis/feature/EnvelopeOperation.java | 220 +-
.../java/org/apache/sis/feature/FeatureFormat.java | 10 +-
.../sis/feature/FeatureOperationException.java | 75 +
.../org/apache/sis/feature/FeatureOperations.java | 21 +-
.../main/java/org/apache/sis/feature/Features.java | 69 +-
.../sis/feature/InvalidFeatureException.java | 6 +-
.../java/org/apache/sis/feature/LinkOperation.java | 9 +-
.../apache/sis/feature/SingletonAssociation.java | 2 +-
.../org/apache/sis/feature/SingletonAttribute.java | 2 +-
.../java/org/apache/sis/feature/SparseFeature.java | 27 +-
.../apache/sis/feature/StringJoinOperation.java | 2 +-
.../sis/feature/builder/AttributeTypeBuilder.java | 31 +-
.../sis/feature/builder/FeatureTypeBuilder.java | 6 +-
.../apache/sis/feature/builder/package-info.java | 3 +-
.../java/org/apache/sis/feature/package-info.java | 2 +-
.../org/apache/sis/filter/ArithmeticFunction.java | 228 ++-
.../java/org/apache/sis/filter/BinaryFunction.java | 159 +-
.../apache/sis/filter/BinaryGeometryFilter.java | 251 +++
.../org/apache/sis/filter/BinarySpatialFilter.java | 166 ++
.../java/org/apache/sis/filter/Capabilities.java | 154 ++
.../org/apache/sis/filter/ComparisonFilter.java | 827 ++++++++
.../org/apache/sis/filter/ComparisonFunction.java | 718 -------
.../org/apache/sis/filter/ConvertFunction.java | 197 ++
.../apache/sis/filter/DefaultFilterFactory.java | 1331 ++++++------
.../org/apache/sis/filter/DefaultObjectId.java | 111 -
.../java/org/apache/sis/filter/DefaultSortBy.java | 102 -
.../org/apache/sis/filter/DefaultSortProperty.java | 166 ++
.../java/org/apache/sis/filter/DistanceFilter.java | 183 ++
.../org/apache/sis/filter/FilterByIdentifier.java | 136 --
.../java/org/apache/sis/filter/FilterNode.java | 90 +
.../org/apache/sis/filter/IdentifierFilter.java | 100 +
.../sis/filter/InvalidExpressionException.java | 92 -
.../java/org/apache/sis/filter/LeafExpression.java | 236 +--
.../java/org/apache/sis/filter/LikeFilter.java | 237 +++
.../java/org/apache/sis/filter/LogicalFilter.java | 319 +++
.../org/apache/sis/filter/LogicalFunction.java | 158 --
.../java/org/apache/sis/filter/NamedFunction.java | 210 --
.../src/main/java/org/apache/sis/filter/Node.java | 174 --
.../java/org/apache/sis/filter/Optimization.java | 490 +++++
.../java/org/apache/sis/filter/PropertyValue.java | 328 +++
.../src/main/java/org/apache/sis/filter/SQLMM.java | 91 -
.../main/java/org/apache/sis/filter/ST_Buffer.java | 99 -
.../java/org/apache/sis/filter/ST_Centroid.java | 96 -
.../java/org/apache/sis/filter/ST_Transform.java | 203 --
.../java/org/apache/sis/filter/TemporalFilter.java | 799 ++++++++
.../org/apache/sis/filter/TemporalFunction.java | 722 -------
.../java/org/apache/sis/filter/UnaryFunction.java | 147 +-
.../java/org/apache/sis/filter/package-info.java | 38 +-
.../java/org/apache/sis/image/AnnotatedImage.java | 539 +++++
.../java/org/apache/sis/image/BandSelectImage.java | 171 ++
.../java/org/apache/sis/image/BandedIterator.java | 444 ++++
.../apache/sis/image/BandedSampleConverter.java | 473 +++++
.../java/org/apache/sis/image/ComputedImage.java | 747 +++++++
.../java/org/apache/sis/image/ComputedTiles.java | 361 ++++
.../main/java/org/apache/sis/image/DataType.java | 257 +++
.../java/org/apache/sis/image/DefaultIterator.java | 655 ------
.../java/org/apache/sis/image/ErrorAction.java | 83 +
.../java/org/apache/sis/image/ErrorHandler.java | 216 ++
.../java/org/apache/sis/image/ImageAdapter.java | 174 ++
.../java/org/apache/sis/image/ImageCombiner.java | 278 +++
.../java/org/apache/sis/image/ImageProcessor.java | 1177 +++++++++++
.../java/org/apache/sis/image/Interpolation.java | 177 ++
.../org/apache/sis/image/LanczosInterpolation.java | 113 ++
.../java/org/apache/sis/image/LinearIterator.java | 124 --
.../main/java/org/apache/sis/image/MaskImage.java | 121 ++
.../java/org/apache/sis/image/PixelIterator.java | 942 ++++++++-
.../java/org/apache/sis/image/PlanarImage.java | 623 ++++++
.../sis/image/PositionalConsistencyImage.java | 144 ++
.../java/org/apache/sis/image/PrefetchedImage.java | 361 ++++
.../java/org/apache/sis/image/RecoloredImage.java | 301 +++
.../java/org/apache/sis/image/ResampledImage.java | 940 +++++++++
.../java/org/apache/sis/image/ResamplingGrid.java | 589 ++++++
.../org/apache/sis/image/SourceAlignedImage.java | 149 ++
.../org/apache/sis/image/StatisticsCalculator.java | 171 ++
.../main/java/org/apache/sis/image/TileCache.java | 170 ++
.../java/org/apache/sis/image/TransferType.java | 14 +-
.../main/java/org/apache/sis/image/Transferer.java | 603 ++++++
.../java/org/apache/sis/image/Visualization.java | 351 ++++
.../apache/sis/image/WritablePixelIterator.java | 100 +-
.../java/org/apache/sis/image/package-info.java | 3 +-
.../org/apache/sis/index/tree/NodeIterator.java | 443 ++++
.../java/org/apache/sis/index/tree/PointTree.java | 533 +++++
.../org/apache/sis/index/tree/PointTreeNode.java | 268 +++
.../org/apache/sis/index/tree/QuadTreeNode.java | 131 ++
.../org/apache/sis/index/tree/package-info.java | 31 +
.../internal/coverage/BufferedGridCoverage.java | 164 --
.../sis/internal/coverage/ColorModelFactory.java | 531 -----
.../sis/internal/coverage/ColorModelPatch.java | 121 --
.../sis/internal/coverage/CompoundTransform.java | 216 ++
.../internal/coverage/CompoundTransformOf1D.java | 173 ++
.../internal/coverage/ConvertedGridCoverage.java | 497 -----
.../coverage/MultiBandsIndexColorModel.java | 236 ---
.../sis/internal/coverage/RasterFactory.java | 227 ---
.../sis/internal/coverage/RepeatedTransform.java | 161 ++
.../sis/internal/coverage/ScaledColorSpace.java | 171 --
.../internal/coverage/j2d/ColorModelFactory.java | 652 ++++++
.../sis/internal/coverage/j2d/ColorModelPatch.java | 121 ++
.../sis/internal/coverage/j2d/ColorModelType.java | 100 +
.../sis/internal/coverage/j2d/Colorizer.java | 517 +++++
.../sis/internal/coverage/j2d/ColorsForRange.java | 171 ++
.../internal/coverage/j2d/DeferredProperty.java | 129 ++
.../sis/internal/coverage/j2d/ImageLayout.java | 335 +++
.../sis/internal/coverage/j2d/ImageUtilities.java | 610 ++++++
.../coverage/j2d/MultiBandsIndexColorModel.java | 281 +++
.../sis/internal/coverage/j2d/RasterFactory.java | 289 +++
.../internal/coverage/j2d/SampleModelFactory.java | 295 +++
.../internal/coverage/j2d/ScaledColorModel.java | 158 ++
.../internal/coverage/j2d/ScaledColorSpace.java | 230 +++
.../internal/coverage/j2d/TileErrorHandler.java | 123 ++
.../sis/internal/coverage/j2d/TileOpExecutor.java | 955 +++++++++
.../sis/internal/coverage/j2d/TiledImage.java | 265 +++
.../internal/coverage/j2d/WritableTiledImage.java | 220 ++
.../sis/internal/coverage/j2d/WriteSupport.java | 101 +
.../sis/internal/coverage/j2d/package-info.java | 34 +
.../apache/sis/internal/coverage/package-info.java | 8 +-
.../sis/internal/feature/AbstractGeometry.java | 41 +
.../sis/internal/feature/AttributeConvention.java | 78 +-
.../org/apache/sis/internal/feature/DateList.java | 69 -
.../java/org/apache/sis/internal/feature/ESRI.java | 230 ---
.../sis/internal/feature/FeatureExpression.java | 45 +-
.../sis/internal/feature/FeatureUtilities.java | 33 +-
.../sis/internal/feature/FunctionRegister.java | 68 -
.../apache/sis/internal/feature/Geometries.java | 690 +++----
.../sis/internal/feature/GeometryFactories.java | 73 +
.../apache/sis/internal/feature/GeometryType.java | 160 ++
.../sis/internal/feature/GeometryWithCRS.java | 98 +
.../sis/internal/feature/GeometryWrapper.java | 604 +++++-
.../apache/sis/internal/feature/InstantList.java | 83 +
.../java/org/apache/sis/internal/feature/JTS.java | 363 ----
.../org/apache/sis/internal/feature/Java2D.java | 259 ---
.../apache/sis/internal/feature/MovingFeature.java | 317 ---
.../sis/internal/feature/MovingFeatures.java | 136 ++
.../org/apache/sis/internal/feature/Resources.java | 256 ++-
.../sis/internal/feature/Resources.properties | 24 +-
.../sis/internal/feature/Resources_fr.properties | 27 +-
.../internal/feature/SpatialOperationContext.java | 454 +++++
.../apache/sis/internal/feature/esri/Factory.java | 193 ++
.../apache/sis/internal/feature/esri/Wrapper.java | 273 +++
.../sis/internal/feature/esri/package-info.java | 35 +
.../sis/internal/feature/j2d/EmptyShape.java | 64 +
.../apache/sis/internal/feature/j2d/Factory.java | 268 +++
.../apache/sis/internal/feature/j2d/FlatShape.java | 129 ++
.../sis/internal/feature/j2d/MultiPolylines.java | 181 ++
.../sis/internal/feature/j2d/PathBuilder.java | 268 +++
.../sis/internal/feature/j2d/PointWrapper.java | 145 ++
.../apache/sis/internal/feature/j2d/Polygon.java | 39 +
.../apache/sis/internal/feature/j2d/Polyline.java | 307 +++
.../sis/internal/feature/j2d/ShapeProperties.java | 26 +-
.../apache/sis/internal/feature/j2d/Wrapper.java | 218 ++
.../sis/internal/feature/j2d/package-info.java | 5 +-
.../apache/sis/internal/feature/jts/Factory.java | 395 ++++
.../sis/internal/feature/jts/FilteringContext.java | 89 +
.../org/apache/sis/internal/feature/jts/JTS.java | 140 +-
.../apache/sis/internal/feature/jts/Wrapper.java | 695 +++++++
.../apache/sis/internal/feature/package-info.java | 3 +-
.../apache/sis/internal/filter/FunctionNames.java | 92 +
.../sis/internal/filter/FunctionRegister.java | 70 +
.../sis/internal/filter/GeometryConverter.java | 176 ++
.../java/org/apache/sis/internal/filter/Node.java | 292 +++
.../sis/internal/filter/SortByComparator.java | 206 ++
.../org/apache/sis/internal/filter/Visitor.java | 348 ++++
.../apache/sis/internal/filter/package-info.java | 27 +
.../internal/filter/sqlmm/FunctionWithSRID.java | 222 ++
.../internal/filter/sqlmm/GeometryConstructor.java | 141 ++
.../sis/internal/filter/sqlmm/GeometryParser.java | 132 ++
.../sis/internal/filter/sqlmm/OneGeometry.java | 154 ++
.../apache/sis/internal/filter/sqlmm/Registry.java | 136 ++
.../apache/sis/internal/filter/sqlmm/SQLMM.java | 869 ++++++++
.../sis/internal/filter/sqlmm/ST_FromBinary.java | 86 +
.../sis/internal/filter/sqlmm/ST_FromText.java | 82 +
.../apache/sis/internal/filter/sqlmm/ST_Point.java | 258 +++
.../sis/internal/filter/sqlmm/ST_Transform.java | 135 ++
.../sis/internal/filter/sqlmm/SpatialFunction.java | 228 +++
.../sis/internal/filter/sqlmm/TwoGeometries.java | 201 ++
.../sis/internal/filter/sqlmm/package-info.java | 38 +
.../internal/processing/image/CompoundFuture.java | 202 ++
.../internal/processing/image/IsolineTracer.java | 1260 ++++++++++++
.../sis/internal/processing/image/Isolines.java | 506 +++++
.../internal/processing/image/TiledProcess.java | 394 ++++
.../internal/processing/image/package-info.java | 32 +
.../org/apache/sis/coverage/CategoryListTest.java | 102 +-
.../apache/sis/coverage/SampleDimensionTest.java | 65 +-
.../coverage/grid/BufferedGridCoverageTest.java | 128 ++
.../coverage/grid/ConvertedGridCoverageTest.java | 82 +
.../grid/FractionalGridCoordinatesTest.java | 101 +
.../sis/coverage/grid/GridCoverage2DTest.java | 306 +++
.../sis/coverage/grid/GridCoverageBuilderTest.java | 226 +++
.../sis/coverage/grid/GridDerivationTest.java | 386 +++-
.../apache/sis/coverage/grid/GridExtentTest.java | 186 +-
.../apache/sis/coverage/grid/GridGeometryTest.java | 267 ++-
.../sis/coverage/grid/GridOrientationTest.java | 75 +
.../sis/coverage/grid/PixelTranslationTest.java | 14 +-
.../coverage/grid/ResampledGridCoverageTest.java | 697 +++++++
.../sis/coverage/grid/ReshapedImageTest.java | 198 ++
.../apache/sis/feature/AbstractFeatureTest.java | 10 +-
.../apache/sis/feature/EnvelopeOperationTest.java | 294 ++-
.../apache/sis/feature/FeatureOperationsTest.java | 177 ++
.../feature/builder/AttributeTypeBuilderTest.java | 37 +-
.../apache/sis/filter/ArithmeticFunctionTest.java | 32 +-
.../sis/filter/BinarySpatialFilterTestCase.java | 350 ++++
.../filter/BinarySpatialFilterUsingJTS_Test.java | 38 +
.../org/apache/sis/filter/CapabilitiesTest.java | 71 +
.../apache/sis/filter/ComparisonFilterTest.java | 181 ++
.../apache/sis/filter/ComparisonFunctionTest.java | 151 --
.../org/apache/sis/filter/DefaultObjectIdTest.java | 100 -
.../apache/sis/filter/FilterByIdentifierTest.java | 92 -
.../apache/sis/filter/IdentifierFilterTest.java | 111 +
.../org/apache/sis/filter/LeafExpressionTest.java | 116 +-
.../java/org/apache/sis/filter/LikeFilterTest.java | 83 +
.../org/apache/sis/filter/LogicalFilterTest.java | 232 +++
.../org/apache/sis/filter/LogicalFunctionTest.java | 146 --
.../java/org/apache/sis/filter/PeriodLiteral.java | 24 +-
.../test/java/org/apache/sis/filter/SQLMMTest.java | 200 --
.../org/apache/sis/filter/TemporalFilterTest.java | 350 ++++
.../apache/sis/filter/TemporalFunctionTest.java | 341 ----
.../org/apache/sis/filter/UnaryFunctionTest.java | 76 -
.../org/apache/sis/image/BandSelectImageTest.java | 186 ++
.../org/apache/sis/image/BandedIteratorTest.java | 79 +
.../sis/image/BandedSampleConverterTest.java | 154 ++
.../org/apache/sis/image/ComputedImageTest.java | 212 ++
.../java/org/apache/sis/image/DataTypeTest.java | 99 +
.../org/apache/sis/image/DefaultIteratorTest.java | 1247 ------------
.../org/apache/sis/image/ImageCombinerTest.java | 217 ++
.../org/apache/sis/image/ImageProcessorTest.java | 60 +
.../java/org/apache/sis/image/ImageTestCase.java | 2 +-
.../org/apache/sis/image/InterpolationTest.java | 178 ++
.../org/apache/sis/image/LinearIteratorTest.java | 42 +-
.../org/apache/sis/image/PixelIteratorTest.java | 1392 +++++++++++++
.../java/org/apache/sis/image/PlanarImageTest.java | 99 +
.../org/apache/sis/image/ResampledImageTest.java | 359 ++++
.../org/apache/sis/image/ResamplingGridTest.java | 221 ++
.../apache/sis/image/StatisticsCalculatorTest.java | 151 ++
.../java/org/apache/sis/image/TiledImageMock.java | 321 ++-
.../apache/sis/index/tree/PointTreeNodeTest.java | 113 ++
.../org/apache/sis/index/tree/PointTreeTest.java | 184 ++
.../coverage/BufferedGridCoverageTest.java | 117 --
.../internal/coverage/ScaledColorSpaceTest.java | 104 -
.../sis/internal/coverage/j2d/ColorizerTest.java | 149 ++
.../sis/internal/coverage/j2d/ImageLayoutTest.java | 44 +
.../internal/coverage/j2d/ImageUtilitiesTest.java | 233 +++
.../coverage/j2d/SampleModelFactoryTest.java | 148 ++
.../coverage/j2d/ScaledColorSpaceTest.java | 104 +
.../org/apache/sis/internal/feature/ESRITest.java | 78 -
.../sis/internal/feature/GeometriesTestCase.java | 154 +-
.../sis/internal/feature/GeometryTypeTest.java | 54 +
.../org/apache/sis/internal/feature/JTSTest.java | 88 -
.../apache/sis/internal/feature/Java2DTest.java | 60 -
.../sis/internal/feature/esri/FactoryTest.java | 79 +
.../sis/internal/feature/j2d/FactoryTest.java | 61 +
.../sis/internal/feature/j2d/FlatShapeTest.java | 129 ++
.../sis/internal/feature/jts/FactoryTest.java | 89 +
.../apache/sis/internal/feature/jts/JTSTest.java | 9 +-
.../sis/internal/filter/FunctionNamesTest.java | 149 ++
.../internal/filter/sqlmm/RegistryTestCase.java | 497 +++++
.../filter/sqlmm/RegistryUsingJTS_Test.java | 38 +
.../sis/internal/filter/sqlmm/SQLMMTest.java | 46 +
.../internal/processing/image/IsolinesTest.java | 375 ++++
.../java/org/apache/sis/test/FeatureAssert.java | 204 ++
.../apache/sis/test/feature/FeatureComparator.java | 458 +++++
.../org/apache/sis/test/feature/package-info.java | 30 +
.../java/org/apache/sis/test}/package-info.txt | 0
.../apache/sis/test/suite/FeatureTestSuite.java | 68 +-
core/sis-metadata/pom.xml | 10 +-
.../apache/sis/internal/jaxb/cat/CodeListUID.java | 94 +-
.../apache/sis/internal/jaxb/cat/package-info.java | 2 +-
.../sis/internal/jaxb/gco/GO_CharacterString.java | 2 +-
.../internal/jaxb/gco/ObjectIdentification.html | 2 +-
.../sis/internal/jaxb/gco/ObjectReference.java | 2 +-
.../apache/sis/internal/jaxb/gco/PropertyType.java | 6 +-
.../sis/internal/jaxb/gml/CodeListAdapter.java | 35 +-
.../apache/sis/internal/jaxb/gml/CodeListUID.java | 59 -
.../org/apache/sis/internal/jaxb/gml/Measure.java | 12 +-
.../apache/sis/internal/jaxb/gml/package-info.java | 2 +-
.../jaxb/lan/LocalisedCharacterString.java | 10 +-
.../apache/sis/internal/metadata/AxisNames.java | 23 +-
.../apache/sis/internal/metadata/Identifiers.java | 14 +-
.../apache/sis/internal/metadata/NameMeaning.java | 4 +-
.../apache/sis/internal/metadata/Resources.java | 2 -
.../apache/sis/internal/metadata/sql/Dialect.java | 42 +-
.../sis/internal/metadata/sql/Initializer.java | 283 +--
.../sis/internal/metadata/sql/LocalDataSource.java | 465 +++++
.../sis/internal/metadata/sql/SQLBuilder.java | 157 +-
.../sis/internal/metadata/sql/ScriptRunner.java | 14 +-
.../apache/sis/internal/metadata/sql/Syntax.java | 84 +
.../sis/internal/metadata/sql/package-info.java | 3 +-
.../java/org/apache/sis/internal/xml/Schemas.java | 100 -
.../org/apache/sis/internal/xml/package-info.java | 2 +-
.../org/apache/sis/metadata/AbstractMetadata.java | 2 +-
.../org/apache/sis/metadata/MetadataCopier.java | 2 +-
.../org/apache/sis/metadata/MetadataFormat.java | 2 +-
.../org/apache/sis/metadata/MetadataStandard.java | 2 +-
.../org/apache/sis/metadata/MetadataVisitor.java | 35 +-
.../apache/sis/metadata/ModifiableMetadata.java | 75 +-
.../org/apache/sis/metadata/PropertyAccessor.java | 2 +-
.../apache/sis/metadata/PropertyComparator.java | 4 +-
.../java/org/apache/sis/metadata/SpecialCases.java | 12 +-
.../java/org/apache/sis/metadata/StateChanger.java | 27 +-
.../org/apache/sis/metadata/TreeNodeChildren.java | 5 +-
.../apache/sis/metadata/iso/DefaultMetadata.java | 58 +-
.../org/apache/sis/metadata/iso/ISOMetadata.java | 8 +-
.../sis/metadata/iso/acquisition/package-info.java | 2 +-
.../sis/metadata/iso/citation/Citations.java | 43 +-
.../iso/citation/DefaultResponsibleParty.java | 109 +-
.../sis/metadata/iso/citation/package-info.java | 2 +-
.../iso/constraint/DefaultReleasability.java | 30 +-
.../sis/metadata/iso/constraint/package-info.java | 2 +-
.../iso/content/DefaultFeatureTypeInfo.java | 2 +-
.../iso/content/DefaultSampleDimension.java | 21 +-
.../sis/metadata/iso/content/package-info.java | 2 +-
.../metadata/iso/distribution/package-info.java | 2 +-
.../iso/extent/DefaultGeographicBoundingBox.java | 24 +-
.../apache/sis/metadata/iso/extent/Extents.java | 221 +-
.../sis/metadata/iso/extent/package-info.java | 2 +-
.../metadata/iso/identification/package-info.java | 2 +-
.../sis/metadata/iso/lineage/package-info.java | 2 +-
.../sis/metadata/iso/maintenance/package-info.java | 2 +-
.../org/apache/sis/metadata/iso/package-info.java | 2 +-
.../sis/metadata/iso/quality/package-info.java | 2 +-
.../sis/metadata/iso/spatial/package-info.java | 2 +-
.../apache/sis/metadata/sql/MetadataSource.java | 18 +-
.../apache/sis/metadata/sql/MetadataWriter.java | 44 +-
.../apache/sis/util/iso/DefaultNameFactory.java | 15 +-
.../org/apache/sis/util/iso/DefaultRecord.java | 48 +-
.../apache/sis/util/iso/DefaultRecordSchema.java | 24 +-
.../org/apache/sis/util/iso/DefaultRecordType.java | 131 +-
.../org/apache/sis/util/iso/DefaultScopedName.java | 9 +-
.../main/java/org/apache/sis/util/iso/Names.java | 2 +
.../org/apache/sis/util/iso/RecordDefinition.java | 56 +-
.../java/org/apache/sis/util/iso/package-info.java | 2 +-
.../java/org/apache/sis/xml/IdentifiedObject.java | 2 +-
.../src/main/java/org/apache/sis/xml/Pooled.java | 8 +-
.../java/org/apache/sis/xml/TransformVersion.java | 1 +
.../src/main/java/org/apache/sis/xml/XML.java | 57 +-
.../org/apache/sis/metadata/sql/Citations.sql | 20 +-
.../internal/jaxb/cat/CodeListMarshallingTest.java | 19 +-
.../apache/sis/internal/jaxb/gml/MeasureTest.java | 24 +-
.../sis/internal/jaxb/lan/LanguageCodeTest.java | 8 +-
.../sis/metadata/ModifiableMetadataTest.java | 42 +-
.../apache/sis/metadata/TreeNodeChildrenTest.java | 4 +-
.../org/apache/sis/metadata/TreeTableViewTest.java | 2 +-
.../iso/citation/DefaultResponsibilityTest.java | 4 +-
.../metadata/iso/citation/HardCodedCitations.java | 6 +-
.../constraint/DefaultLegalConstraintsTest.java | 2 +-
.../extent/DefaultGeographicBoundingBoxTest.java | 64 +-
.../sis/metadata/iso/extent/ExtentsTest.java | 6 +-
.../iso/identification/DefaultResolutionTest.java | 12 +-
.../sis/metadata/sql/MetadataWriterTest.java | 4 +-
.../java/org/apache/sis/test/sql/TestDatabase.java | 23 +-
.../java/org/apache/sis/test/sql/package-info.java | 3 +-
.../sis/test/xml/AnnotationConsistencyCheck.java | 6 +-
.../org/apache/sis/test/xml/PackageVerifier.java | 12 +-
.../org/apache/sis/test/xml/SchemaCompliance.java | 5 +-
.../java/org/apache/sis/test/xml/TestCase.java | 8 +-
.../java/org/apache/sis/test/xml/package-info.java | 2 +-
.../sis/util/iso/DefaultRecordSchemaTest.java | 18 +-
.../apache/sis/util/iso/DefaultRecordTypeTest.java | 46 +-
.../java/org/apache/sis/xml/NamespacesTest.java | 3 +-
.../org/apache/sis/metadata/xml/2007/Citation.xml | 12 +-
.../org/apache/sis/metadata/xml/2007/Extent.xml | 2 +-
.../org/apache/sis/metadata/xml/2007/Locales.xml | 26 +-
.../org/apache/sis/metadata/xml/2007/Metadata.xml | 88 +-
.../apache/sis/metadata/xml/2007/Multiplicity.xml | 2 +-
.../sis/metadata/xml/2007/PositionalAccuracy.xml | 4 +-
.../apache/sis/metadata/xml/2007/ProcessStep.xml | 2 +-
.../metadata/xml/2007/ServiceIdentification.xml | 4 +-
.../org/apache/sis/metadata/xml/2016/Citation.xml | 4 +-
.../org/apache/sis/metadata/xml/2016/Extent.xml | 2 +-
.../org/apache/sis/metadata/xml/2016/Locales.xml | 2 +-
.../org/apache/sis/metadata/xml/2016/Metadata.xml | 28 +-
.../apache/sis/metadata/xml/2016/Multiplicity.xml | 3 +-
.../sis/metadata/xml/2016/PositionalAccuracy.xml | 6 +-
.../apache/sis/metadata/xml/2016/ProcessStep.xml | 2 +-
.../metadata/xml/2016/ServiceIdentification.xml | 2 +-
core/sis-portrayal/pom.xml | 9 +-
.../sis/internal/map/ExceptionPresentation.java | 66 +
.../apache/sis/internal/map/ListChangeEvent.java | 98 +
.../org/apache/sis/internal/map/MapContext.java | 79 -
.../java/org/apache/sis/internal/map/MapGroup.java | 66 -
.../java/org/apache/sis/internal/map/MapItem.java | 88 -
.../java/org/apache/sis/internal/map/MapLayer.java | 104 -
.../org/apache/sis/internal/map/NotifiedList.java | 72 +
.../org/apache/sis/internal/map/Presentation.java | 146 ++
.../sis/internal/map/PropertyNameCollector.java | 60 +
.../sis/internal/map/ResourceSymbolizer.java | 37 +
.../org/apache/sis/internal/map/SEPortrayer.java | 755 +++++++
.../apache/sis/internal/map/SEPresentation.java | 85 +
.../apache/sis/internal/map/SymbologyVisitor.java | 394 ++++
.../org/apache/sis/internal/map/package-info.java | 9 +-
.../main/java/org/apache/sis/portrayal/Canvas.java | 1234 ++++++++++++
.../org/apache/sis/portrayal/CanvasContext.java | 222 ++
.../org/apache/sis/portrayal/CanvasExtent.java | 235 +++
.../java/org/apache/sis/portrayal/MapItem.java | 294 +++
.../java/org/apache/sis/portrayal/MapLayer.java | 264 +++
.../java/org/apache/sis/portrayal/MapLayers.java | 194 ++
.../java/org/apache/sis/portrayal/Observable.java | 162 ++
.../org/apache/sis/portrayal/PlanarCanvas.java | 189 ++
.../org/apache/sis/portrayal/RenderException.java | 61 +
.../org/apache/sis/portrayal/package-info.java | 32 +
.../sis/internal/map/MockFeatureTypeStyle.java | 104 +
.../sis/internal/map/MockLineSymbolizer.java | 113 ++
.../java/org/apache/sis/internal/map/MockRule.java | 131 ++
.../org/apache/sis/internal/map/MockStyle.java | 86 +
.../apache/sis/internal/map/SEPortrayerTest.java | 772 +++++++
.../org/apache/sis/portrayal/MapLayersTest.java | 99 +
.../apache/sis/test/suite/PortrayalTestSuite.java | 46 +
core/sis-referencing-by-identifiers/pom.xml | 4 +-
.../apache/sis/internal/gazetteer/Resources.java | 2 -
.../gazetteer/GeohashReferenceSystem.java | 2 +-
.../sis/referencing/gazetteer/LocationFormat.java | 2 +-
.../gazetteer/MilitaryGridReferenceSystem.java | 16 +-
.../sis/referencing/gazetteer/LocationViewer.java | 2 +-
.../gazetteer/MilitaryGridReferenceSystemTest.java | 2 +-
core/sis-referencing/pom.xml | 27 +-
.../sis/geometry/AbstractDirectPosition.java | 34 +-
.../org/apache/sis/geometry/AbstractEnvelope.java | 157 +-
.../org/apache/sis/geometry/ArrayEnvelope.java | 2 +-
.../org/apache/sis/geometry/CoordinateFormat.java | 1314 +++++++++---
.../java/org/apache/sis/geometry/Envelope2D.java | 116 +-
.../java/org/apache/sis/geometry/Envelopes.java | 490 +++--
.../apache/sis/geometry/GeneralDirectPosition.java | 2 +
.../org/apache/sis/geometry/GeneralEnvelope.java | 238 ++-
.../java/org/apache/sis/geometry/Shapes2D.java | 357 ++--
.../apache/sis/geometry/WraparoundInEnvelope.java | 235 +++
.../org/apache/sis/geometry/WraparoundMethod.java | 173 ++
.../java/org/apache/sis/geometry/package-info.java | 5 +-
.../apache/sis/internal/jaxb/referencing/Code.java | 2 +-
.../internal/jaxb/referencing/SC_SingleCRS.java | 2 +-
.../sis/internal/referencing/AnnotatedMatrix.java | 140 ++
.../sis/internal/referencing/AxisDirections.java | 38 +-
.../internal/referencing/CoordinateOperations.java | 22 +-
.../internal/referencing/DefinitionVerifier.java | 95 +-
.../internal/referencing/DirectPositionView.java | 25 -
.../referencing/EllipsoidalHeightCombiner.java | 6 +-
.../sis/internal/referencing/ExtentSelector.java | 419 +++-
.../apache/sis/internal/referencing/Formulas.java | 29 +-
.../referencing/GeodeticObjectBuilder.java | 11 +-
.../apache/sis/internal/referencing/LazySet.java | 5 +-
.../referencing/MathTransformsOrFactory.java | 141 ++
.../internal/referencing/PositionTransformer.java | 2 +-
.../referencing/PositionalAccuracyConstant.java | 40 +-
.../apache/sis/internal/referencing/RTreeNode.java | 357 ++++
.../internal/referencing/ReferencingUtilities.java | 80 +-
.../apache/sis/internal/referencing/Resources.java | 66 +-
.../sis/internal/referencing/Resources.properties | 14 +-
.../internal/referencing/Resources_fr.properties | 14 +-
.../internal/referencing/ServicesForMetadata.java | 49 +-
.../internal/referencing/SignReversalComment.java | 2 +-
.../sis/internal/referencing/TemporalAccessor.java | 51 +-
.../internal/referencing/VerticalDatumTypes.java | 2 +-
.../sis/internal/referencing/WKTKeywords.java | 84 +-
.../sis/internal/referencing/WKTUtilities.java | 70 +-
.../internal/referencing/WraparoundAdjustment.java | 36 +-
.../internal/referencing/WraparoundApplicator.java | 156 ++
.../sis/internal/referencing/j2d/Bezier.java | 2 +-
.../referencing/j2d/ImmutableAffineTransform.java | 2 +-
.../referencing/j2d/IntervalRectangle.java | 65 +-
.../apache/sis/internal/referencing/j2d/Tile.java | 683 +++++++
.../internal/referencing/j2d/TileOrganizer.java | 566 ++++++
.../sis/internal/referencing/j2d/package-info.java | 2 +-
.../sis/internal/referencing/package-info.java | 2 +-
.../referencing/provider/AbstractProvider.java | 31 +-
.../sis/internal/referencing/provider/Affine.java | 11 +-
.../referencing/provider/AlbersEqualArea.java | 2 +-
.../provider/AzimuthalEquidistantSpherical.java | 83 +
.../referencing/provider/CassiniSoldner.java | 176 ++
.../provider/DatumShiftGridCompressed.java | 58 +-
.../referencing/provider/DatumShiftGridFile.java | 415 +++-
.../referencing/provider/DatumShiftGridGroup.java | 306 +++
.../referencing/provider/DatumShiftGridLoader.java | 39 +-
.../provider/FranceGeocentricInterpolation.java | 20 +-
.../referencing/provider/GeocentricAffine.java | 19 +-
.../GeocentricAffineBetweenGeographic.java | 8 +-
.../provider/GeocentricToGeographic.java | 10 +-
.../referencing/provider/GeodeticOperation.java | 14 +-
.../referencing/provider/Geographic2Dto3D.java | 8 +
.../referencing/provider/Geographic3Dto2D.java | 22 +
.../provider/GeographicToGeocentric.java | 8 +-
.../provider/HyperbolicCassiniSoldner.java | 66 +
.../referencing/provider/Interpolation1D.java | 2 +-
.../provider/LambertConformalBelgium.java | 2 +-
.../referencing/provider/LambertConformalWest.java | 2 +-
.../provider/LambertCylindricalEqualArea.java | 24 +-
.../LambertCylindricalEqualAreaSpherical.java | 4 +-
.../referencing/provider/MapProjection.java | 10 +-
.../referencing/provider/MapProjection3D.java | 9 +
.../provider/ModifiedAzimuthalEquidistant.java | 167 ++
.../internal/referencing/provider/Mollweide.java | 2 +-
.../internal/referencing/provider/Molodensky.java | 5 +-
.../sis/internal/referencing/provider/NADCON.java | 7 +-
.../sis/internal/referencing/provider/NTv1.java | 90 +
.../sis/internal/referencing/provider/NTv2.java | 559 +++--
.../referencing/provider/Orthographic.java | 2 +-
.../referencing/provider/PolarStereographicA.java | 2 +-
.../internal/referencing/provider/Providers.java | 2 +
.../referencing/provider/SatelliteTracking.java | 2 +-
.../provider/TransverseMercatorSouth.java | 2 +-
.../internal/referencing/provider/Wraparound.java | 120 ++
.../provider/ZonedTransverseMercator.java | 2 +-
.../java/org/apache/sis/io/wkt/AbstractParser.java | 197 +-
.../main/java/org/apache/sis/io/wkt/Colors.java | 1 +
.../main/java/org/apache/sis/io/wkt/Element.java | 367 ++--
.../main/java/org/apache/sis/io/wkt/Formatter.java | 59 +-
.../apache/sis/io/wkt/GeodeticObjectParser.java | 51 +-
.../org/apache/sis/io/wkt/MathTransformParser.java | 4 +-
.../org/apache/sis/io/wkt/SingletonElement.java | 83 +
.../java/org/apache/sis/io/wkt/StoredTree.java | 590 ++++++
.../main/java/org/apache/sis/io/wkt/Symbols.java | 24 +-
.../java/org/apache/sis/io/wkt/Transliterator.java | 20 +-
.../java/org/apache/sis/io/wkt/WKTDictionary.java | 1131 +++++++++++
.../main/java/org/apache/sis/io/wkt/WKTFormat.java | 333 ++-
.../main/java/org/apache/sis/io/wkt/Warnings.java | 3 +-
.../java/org/apache/sis/io/wkt/doc-files/ESRI.txt | 92 +
.../java/org/apache/sis/io/wkt/package-info.java | 11 +-
.../sis/parameter/DefaultParameterValueGroup.java | 63 +-
.../sis/parameter/MapProjectionDescriptor.java | 7 +-
.../sis/parameter/MapProjectionParameters.java | 8 +-
.../org/apache/sis/parameter/ParameterFormat.java | 2 +-
.../apache/sis/parameter/ParameterValueList.java | 7 +-
.../java/org/apache/sis/parameter/Parameters.java | 19 +-
.../sis/parameter/UninitializedParameter.java | 4 +-
.../org/apache/sis/parameter/package-info.java | 2 +-
.../sis/referencing/AbstractIdentifiedObject.java | 2 +-
.../main/java/org/apache/sis/referencing/CRS.java | 47 +-
.../java/org/apache/sis/referencing/CommonCRS.java | 196 +-
.../referencing/EllipsoidalHeightSeparator.java | 66 +-
.../sis/referencing/GeodesicsOnEllipsoid.java | 59 +-
.../apache/sis/referencing/GeodeticCalculator.java | 152 +-
.../apache/sis/referencing/IdentifiedObjects.java | 230 ++-
.../org/apache/sis/referencing/Properties.java | 37 +-
.../sis/referencing/StandardDefinitions.java | 8 +-
.../apache/sis/referencing/crs/AbstractCRS.java | 21 +-
.../sis/referencing/crs/AbstractDerivedCRS.java | 11 +-
.../sis/referencing/crs/DefaultCompoundCRS.java | 2 +-
.../sis/referencing/crs/DefaultGeographicCRS.java | 3 +-
.../apache/sis/referencing/crs/package-info.java | 2 +-
.../org/apache/sis/referencing/cs/AbstractCS.java | 4 +-
.../apache/sis/referencing/cs/AxesConvention.java | 2 +-
.../org/apache/sis/referencing/cs/AxisFilter.java | 2 +-
.../sis/referencing/cs/CoordinateSystems.java | 54 +-
.../apache/sis/referencing/cs/package-info.java | 2 +-
.../sis/referencing/datum/BursaWolfParameters.java | 7 +-
.../sis/referencing/datum/DatumShiftGrid.java | 227 ++-
.../sis/referencing/datum/DefaultEllipsoid.java | 9 +-
.../referencing/datum/DefaultGeodeticDatum.java | 63 +-
.../referencing/datum/DefaultPrimeMeridian.java | 2 +-
.../sis/referencing/datum/TimeDependentBWP.java | 2 +-
.../factory/CommonAuthorityFactory.java | 40 +-
.../factory/ConcurrentAuthorityFactory.java | 80 +-
.../factory/GeodeticAuthorityFactory.java | 6 +-
.../referencing/factory/GeodeticObjectFactory.java | 9 +-
.../factory/IdentifiedObjectFinder.java | 28 +-
.../factory/MultiAuthoritiesFactory.java | 5 +-
.../sis/referencing/factory/ReferenceKeeper.java | 151 ++
.../sis/referencing/factory/package-info.java | 2 +-
.../referencing/factory/sql/EPSGDataAccess.java | 85 +-
.../factory/sql/InstallationScriptProvider.java | 2 +-
.../sis/referencing/factory/sql/SQLTranslator.java | 2 +-
.../sis/referencing/factory/sql/TableInfo.java | 4 +-
.../sis/referencing/factory/sql/package-info.java | 4 +-
.../operation/AbstractCoordinateOperation.java | 6 +-
.../operation/AbstractSingleOperation.java | 124 +-
.../apache/sis/referencing/operation/CRSPair.java | 15 +-
.../operation/CoordinateOperationContext.java | 34 +-
.../operation/CoordinateOperationFinder.java | 218 +-
.../operation/CoordinateOperationRegistry.java | 230 ++-
.../operation/DefaultConicProjection.java | 2 +-
.../referencing/operation/DefaultConversion.java | 6 +-
.../DefaultCoordinateOperationFactory.java | 11 +-
.../operation/DefaultCylindricalProjection.java | 2 +-
.../operation/DefaultOperationMethod.java | 39 +-
.../operation/DefaultPassThroughOperation.java | 2 +-
.../operation/DefaultPlanarProjection.java | 2 +-
.../operation/InverseOperationMethod.java | 60 +-
.../operation/LooselyDefinedMethod.java | 90 +
.../referencing/operation/SubOperationInfo.java | 349 +++-
.../operation/builder/LinearTransformBuilder.java | 365 +++-
.../referencing/operation/builder/Linearizer.java | 158 ++
.../operation/builder/LocalizationGridBuilder.java | 326 ++-
.../operation/builder/ProjectedTransformTry.java | 179 +-
.../operation/builder/ResidualGrid.java | 135 +-
.../operation/builder/package-info.java | 2 +-
.../sis/referencing/operation/builder/readme.html | 6 +-
.../operation/matrix/AffineTransforms2D.java | 64 +-
.../sis/referencing/operation/matrix/Matrices.java | 159 +-
.../sis/referencing/operation/matrix/Matrix1.java | 11 +-
.../sis/referencing/operation/matrix/Matrix2.java | 10 -
.../referencing/operation/matrix/MatrixSIS.java | 36 +-
.../sis/referencing/operation/matrix/Solver.java | 4 +-
.../referencing/operation/matrix/package-info.java | 2 +-
.../sis/referencing/operation/package-info.java | 2 +-
.../operation/projection/AlbersEqualArea.java | 43 +-
.../operation/projection/AzimuthalEquidistant.java | 239 +++
.../operation/projection/CassiniSoldner.java | 412 ++++
.../operation/projection/CylindricalEqualArea.java | 7 +-
.../operation/projection/Initializer.java | 42 +
.../referencing/operation/projection/Inverter.java | 4 +-
.../projection/LambertConicConformal.java | 38 +-
.../referencing/operation/projection/Mercator.java | 15 +-
.../projection/ModifiedAzimuthalEquidistant.java | 259 +++
.../operation/projection/Mollweide.java | 4 +-
.../operation/projection/NormalizedProjection.java | 158 +-
.../operation/projection/ObliqueMercator.java | 15 +-
.../operation/projection/ObliqueStereographic.java | 58 +-
.../operation/projection/Orthographic.java | 43 +-
.../operation/projection/PolarStereographic.java | 7 +-
.../operation/projection/Polyconic.java | 5 +-
.../operation/projection/SatelliteTracking.java | 38 +-
.../operation/projection/Sinusoidal.java | 4 +-
.../operation/projection/TransverseMercator.java | 169 +-
.../operation/projection/ZonedGridSystem.java | 2 +-
.../operation/projection/package-info.java | 2 +-
.../transform/AbstractLinearTransform.java | 44 +-
.../operation/transform/AbstractMathTransform.java | 2 +
.../operation/transform/CartesianToPolar.java | 4 +-
.../operation/transform/CartesianToSpherical.java | 4 +-
.../operation/transform/ConcatenatedTransform.java | 112 +-
.../transform/ConcatenatedTransformDirect.java | 4 +-
.../transform/ConcatenatedTransformDirect2D.java | 4 +-
.../operation/transform/ContextualParameter.java | 2 +-
.../transform/CoordinateSystemTransform.java | 49 +-
.../operation/transform/CopyTransform.java | 112 +-
.../operation/transform/DatumShiftTransform.java | 2 +
.../transform/DefaultMathTransformFactory.java | 227 ++-
.../operation/transform/IdentityTransform.java | 10 +-
.../operation/transform/InterpolatedTransform.java | 47 +-
.../operation/transform/LinearTransform.java | 5 +-
.../operation/transform/MathTransforms.java | 90 +-
.../transform/MathTransformsOrFactory.java | 129 --
.../operation/transform/MolodenskyFormula.java | 2 +-
.../operation/transform/PassThroughTransform.java | 1 +
.../operation/transform/PolarToCartesian.java | 4 +-
.../operation/transform/ProjectiveTransform.java | 59 +-
.../transform/SpecializableTransform.java | 330 ++-
.../operation/transform/SphericalToCartesian.java | 4 +-
.../operation/transform/TransferFunction.java | 4 +-
.../operation/transform/TransformAdapter2D.java | 101 +
.../operation/transform/TransformSeparator.java | 108 +-
.../operation/transform/TranslationTransform.java | 32 +-
.../operation/transform/WraparoundTransform.java | 669 ++++++
.../operation/transform/package-info.java | 2 +-
.../org/apache/sis/referencing/package-info.java | 4 +-
...g.opengis.referencing.operation.OperationMethod | 6 +
.../apache/sis/geometry/AbstractEnvelopeTest.java | 8 +-
.../org/apache/sis/geometry/ArrayEnvelopeTest.java | 3 +-
.../apache/sis/geometry/CoordinateFormatTest.java | 138 +-
.../org/apache/sis/geometry/Envelope2DTest.java | 2 +-
.../org/apache/sis/geometry/EnvelopesTest.java | 21 +-
.../sis/geometry/GeneralDirectPositionTest.java | 2 +-
.../apache/sis/geometry/GeneralEnvelopeTest.java | 64 +-
.../apache/sis/geometry/ImmutableEnvelopeTest.java | 2 +-
.../java/org/apache/sis/geometry/Shapes2DTest.java | 2 +-
.../org/apache/sis/geometry/SubEnvelopeTest.java | 2 +-
.../org/apache/sis/geometry/TransformTestCase.java | 44 +-
.../sis/internal/jaxb/referencing/CodeTest.java | 2 +-
.../internal/referencing/AxisDirectionsTest.java | 38 +-
.../referencing/DefinitionVerifierTest.java | 24 +-
.../referencing/EllipsoidalHeightCombinerTest.java | 2 +-
.../internal/referencing/ExtentSelectorTest.java | 147 ++
.../sis/internal/referencing/FormulasTest.java | 18 +-
.../referencing/ReferencingUtilitiesTest.java | 2 +-
.../referencing/ServicesForMetadataTest.java | 4 +-
.../sis/internal/referencing/WKTKeywordsTest.java | 41 +-
.../sis/internal/referencing/WKTUtilitiesTest.java | 14 +-
.../FranceGeocentricInterpolationTest.java | 8 +-
.../provider/GeographicOffsetsTest.java | 8 +-
.../internal/referencing/provider/NADCONTest.java | 20 +-
.../internal/referencing/provider/NTv2Test.java | 117 +-
.../referencing/provider/ProviderMock.java | 4 +-
.../referencing/provider/ProvidersTest.java | 8 +-
.../java/org/apache/sis/io/wkt/ElementTest.java | 31 +-
.../sis/io/wkt/GeodeticObjectParserTest.java | 4 +-
.../apache/sis/io/wkt/MathTransformParserTest.java | 4 +-
.../java/org/apache/sis/io/wkt/SymbolsTest.java | 12 +-
.../org/apache/sis/io/wkt/WKTDictionaryTest.java | 401 ++++
.../java/org/apache/sis/io/wkt/WKTFormatTest.java | 3 +-
.../sis/parameter/DefaultParameterValueTest.java | 2 +-
.../sis/parameter/ParameterValueGroupWrapper.java | 3 +-
.../java/org/apache/sis/referencing/CRSTest.java | 30 +-
.../org/apache/sis/referencing/CommonCRSTest.java | 23 +-
.../sis/referencing/GeodesicsOnEllipsoidTest.java | 91 +-
.../sis/referencing/GeodeticCalculatorTest.java | 159 +-
.../sis/referencing/IdentifiedObjectsTest.java | 4 +-
.../referencing/crs/DefaultCompoundCRSTest.java | 2 +-
.../sis/referencing/crs/DefaultDerivedCRSTest.java | 2 +-
.../apache/sis/referencing/crs/HardCodedCRS.java | 91 +-
.../sis/referencing/crs/HardCodedCRSTest.java | 20 +-
.../sis/referencing/cs/CoordinateSystemsTest.java | 15 +-
.../apache/sis/referencing/cs/HardCodedAxes.java | 13 +-
.../org/apache/sis/referencing/cs/HardCodedCS.java | 9 +-
.../datum/DefaultGeodeticDatumTest.java | 44 +-
.../datum/DefaultPrimeMeridianTest.java | 2 -
.../sis/referencing/datum/GeodeticDatumMock.java | 8 +-
.../sis/referencing/datum/HardCodedDatum.java | 8 +-
.../referencing/factory/AuthorityFactoryMock.java | 2 +-
.../factory/CommonAuthorityFactoryTest.java | 1 -
.../apache/sis/referencing/factory/GIGS2004.java | 2 +-
.../factory/MultiAuthoritiesFactoryTest.java | 40 +-
.../referencing/factory/sql/EPSGInstallerTest.java | 2 +-
.../factory/sql/epsg/DataScriptFormatter.java | 2 +-
.../sis/referencing/factory/sql/epsg/package.html | 8 +-
.../referencing/geoapi/AuthorityFactoryTest.java | 72 +
.../geoapi/ParameterizedTransformTest.java | 87 +
.../operation/AbstractSingleOperationTest.java | 82 -
.../operation/CoordinateOperationFinderTest.java | 134 +-
.../operation/DefaultTransformationTest.java | 1 -
.../operation/HardCodedConversions.java | 109 +-
.../builder/LinearTransformBuilderTest.java | 44 +-
.../operation/builder/LinearizerTest.java | 73 +
.../operation/builder/ResidualGridTest.java | 8 +-
.../operation/matrix/AffineTransforms2DTest.java | 2 +-
.../referencing/operation/matrix/MatricesTest.java | 38 +-
.../operation/matrix/MatrixTestCase.java | 31 +-
.../operation/projection/AlbersEqualAreaTest.java | 50 +-
.../projection/AzimuthalEquidistantTest.java | 191 ++
.../operation/projection/CassiniSoldnerTest.java | 215 ++
.../operation/projection/InitializerTest.java | 10 +-
.../projection/LambertConicConformalTest.java | 9 +-
.../projection/MapProjectionTestCase.java | 45 +-
.../ModifiedAzimuthalEquidistantTest.java | 95 +
.../sis/referencing/operation/projection/NoOp.java | 2 +-
.../projection/ObliqueStereographicTest.java | 27 +-
.../projection/TransverseMercatorTest.java | 71 +-
.../doc-files/TransverseMercatorErrors.png | Bin 0 -> 7954 bytes
.../transform/ConcatenatedTransformTest.java | 71 +-
.../transform/CoordinateSystemTransformTest.java | 69 +-
.../transform/DefaultMathTransformFactoryTest.java | 96 +-
.../transform/InterpolatedTransformTest.java | 2 +-
.../transform/MathTransformFactoryMock.java | 2 +-
.../operation/transform/MathTransformTestCase.java | 2 +-
.../operation/transform/MathTransformWrapper.java | 14 +-
.../operation/transform/MathTransformsTest.java | 34 +-
.../transform/ProjectiveTransformTest.java | 63 +-
.../transform/TransformResultComparator.java | 4 +-
.../transform/TransformSeparatorTest.java | 65 +-
.../transform/WraparoundTransformTest.java | 182 ++
.../report/CoordinateOperationMethods.java | 2 +-
.../sis/test/suite/ReferencingTestSuite.java | 12 +-
.../resources/org/apache/sis/io/wkt/ExtraCRS.txt | 81 +
.../resources/org/apache/sis/io/wkt/Malformed.txt | 13 +
.../integration/Metadata with vertical CRS.xml | 14 +-
.../org/apache/sis/test/integration/Metadata.xml | 42 +-
core/sis-utility/pom.xml | 10 +-
.../sis/internal/converter/DateConverter.java | 2 +-
.../sis/internal/converter/StringConverter.java | 2 +-
.../java/org/apache/sis/internal/jdk9/JDK9.java | 225 ++-
.../apache/sis/internal/system/CommonExecutor.java | 133 ++
.../apache/sis/internal/system/DataDirectory.java | 8 +-
.../sis/internal/system/DelayedExecutor.java | 3 +-
.../sis/internal/system/DelayedRunnable.java | 8 +-
.../org/apache/sis/internal/system/Modules.java | 17 +-
.../org/apache/sis/internal/system/Shutdown.java | 5 +-
.../org/apache/sis/internal/system/Threads.java | 6 +-
.../apache/sis/internal/system/package-info.java | 2 +-
.../sis/internal/util/AutoMessageFormat.java | 2 +-
.../apache/sis/internal/util/CheckedArrayList.java | 2 +-
.../java/org/apache/sis/internal/util/Cloner.java | 76 +-
.../apache/sis/internal/util/CollectionsExt.java | 31 +-
.../org/apache/sis/internal/util/Constants.java | 12 +-
.../apache/sis/internal/util/DefinitionURI.java | 8 +-
.../org/apache/sis/internal/util/DoubleDouble.java | 13 +-
.../org/apache/sis/internal/util/Numerics.java | 101 +-
.../apache/sis/internal/util/PropertyFormat.java | 216 ++
.../sis/internal/util/StandardDateFormat.java | 89 +-
.../java/org/apache/sis/internal/util/Strings.java | 68 +-
.../java/org/apache/sis/internal/util/X364.java | 2 +-
.../java/org/apache/sis/internal/util/XPaths.java | 4 +-
.../org/apache/sis/internal/util/package-info.java | 2 +-
.../main/java/org/apache/sis/io/ClassFormat.java | 2 +-
.../java/org/apache/sis/io/CompoundFormat.java | 42 +-
.../src/main/java/org/apache/sis/io/IO.java | 2 +-
.../org/apache/sis/io/IdentifiedObjectFormat.java | 2 +-
.../main/java/org/apache/sis/io/TableAppender.java | 12 +-
.../main/java/org/apache/sis/io/package-info.java | 4 +-
.../main/java/org/apache/sis/math/ArrayVector.java | 207 +-
.../org/apache/sis/math/ConcatenatedVector.java | 23 +-
.../main/java/org/apache/sis/math/Fraction.java | 16 +-
.../org/apache/sis/math/LinearlyDerivedVector.java | 51 +-
.../java/org/apache/sis/math/MathFunctions.java | 41 +-
.../java/org/apache/sis/math/PackedVector.java | 25 +-
.../java/org/apache/sis/math/RepeatedVector.java | 28 +-
.../java/org/apache/sis/math/SequenceVector.java | 10 +-
.../main/java/org/apache/sis/math/Statistics.java | 4 +-
.../java/org/apache/sis/math/StatisticsFormat.java | 3 +-
.../src/main/java/org/apache/sis/math/Vector.java | 65 +-
.../java/org/apache/sis/measure/AngleFormat.java | 38 +-
.../sis/measure/FormattedCharacterIterator.java | 2 +-
.../java/org/apache/sis/measure/Longitude.java | 29 +-
.../java/org/apache/sis/measure/NumberRange.java | 93 +-
.../java/org/apache/sis/measure/Quantities.java | 76 +-
.../org/apache/sis/measure/QuantityFormat.java | 146 ++
.../main/java/org/apache/sis/measure/Range.java | 6 +-
.../java/org/apache/sis/measure/RangeFormat.java | 50 +-
.../main/java/org/apache/sis/measure/Scalar.java | 7 +-
.../java/org/apache/sis/measure/UnitDimension.java | 2 +-
.../java/org/apache/sis/measure/UnitFormat.java | 6 +-
.../main/java/org/apache/sis/measure/Units.java | 5 +-
.../java/org/apache/sis/measure/package-info.java | 2 +-
.../src/main/java/org/apache/sis/setup/About.java | 53 +-
.../java/org/apache/sis/setup/Configuration.java | 40 +-
.../apache/sis/setup/InstallationResources.java | 6 +-
.../java/org/apache/sis/util/ArgumentChecks.java | 103 +-
.../main/java/org/apache/sis/util/ArraysExt.java | 22 +-
.../java/org/apache/sis/util/CharSequences.java | 188 +-
.../main/java/org/apache/sis/util/Characters.java | 12 +-
.../src/main/java/org/apache/sis/util/Classes.java | 43 +-
.../main/java/org/apache/sis/util/Exceptions.java | 19 +-
.../src/main/java/org/apache/sis/util/Locales.java | 2 +-
.../src/main/java/org/apache/sis/util/Numbers.java | 54 +-
.../main/java/org/apache/sis/util/Workaround.java | 8 +
.../sis/util/collection/BackingStoreException.java | 22 +-
.../java/org/apache/sis/util/collection/Cache.java | 36 +-
.../org/apache/sis/util/collection/Containers.java | 2 +-
.../sis/util/collection/FrequencySortedSet.java | 3 +
.../apache/sis/util/collection/IntegerList.java | 38 +-
.../org/apache/sis/util/collection/TreeTable.java | 2 +-
.../sis/util/collection/TreeTableFormat.java | 211 +-
.../apache/sis/util/collection/WeakHashSet.java | 12 +-
.../sis/util/collection/WeakValueHashMap.java | 13 +-
.../apache/sis/util/collection/package-info.java | 2 +-
.../org/apache/sis/util/logging/LoggerAdapter.java | 2 +-
.../java/org/apache/sis/util/logging/Logging.java | 4 +-
.../apache/sis/util/logging/MonolineFormatter.java | 18 +-
.../apache/sis/util/logging/PerformanceLevel.java | 90 +-
.../java/org/apache/sis/util/package-info.java | 5 +-
.../java/org/apache/sis/util/resources/Errors.java | 42 +-
.../apache/sis/util/resources/Errors.properties | 7 +-
.../apache/sis/util/resources/Errors_fr.properties | 15 +-
.../sis/util/resources/IndexedResourceBundle.java | 37 +-
.../org/apache/sis/util/resources/Messages.java | 2 -
.../org/apache/sis/util/resources/Vocabulary.java | 787 ++++++--
.../sis/util/resources/Vocabulary.properties | 105 +-
.../sis/util/resources/Vocabulary_fr.properties | 107 +-
.../apache/sis/util/resources/package-info.java | 2 +-
.../sis/internal/util/DefinitionURITest.java | 1 +
.../apache/sis/internal/util/DoubleDoubleTest.java | 9 +-
.../org/apache/sis/internal/util/NumericsTest.java | 26 +-
.../sis/internal/util/StandardDateFormatTest.java | 4 +-
.../org/apache/sis/internal/util/StringsTest.java | 8 +-
.../org/apache/sis/internal/util/XPathsTest.java | 7 +-
.../org/apache/sis/math/MathFunctionsTest.java | 15 +-
.../java/org/apache/sis/math/StatisticsTest.java | 2 +-
.../test/java/org/apache/sis/math/VectorTest.java | 12 +-
.../org/apache/sis/measure/AngleFormatTest.java | 14 +-
.../java/org/apache/sis/measure/AngleTest.java | 51 +-
.../measure/FormattedCharacterIteratorTest.java | 2 +-
.../org/apache/sis/measure/NumberRangeTest.java | 19 +-
.../org/apache/sis/measure/QuantitiesTest.java | 16 +-
.../org/apache/sis/measure/RangeFormatTest.java | 51 +-
.../java/org/apache/sis/measure/RangeTest.java | 22 +-
.../java/org/apache/sis/measure/ScalarTest.java | 10 +-
.../org/apache/sis/measure/UnitFormatTest.java | 2 +-
.../java/org/apache/sis/measure/UnitsTest.java | 2 +-
.../src/test/java/org/apache/sis/test/Assert.java | 1 +
.../src/test/java/org/apache/sis/test/Assume.java | 2 +-
.../java/org/apache/sis/test/LoggingWatcher.java | 6 +-
.../java/org/apache/sis/test/OptionalTestData.java | 37 +-
.../test/java/org/apache/sis/test/TestCase.java | 2 +-
.../java/org/apache/sis/test/TestUtilities.java | 2 +-
.../org/apache/sis/util/CharSequencesTest.java | 26 +-
.../java/org/apache/sis/util/CharactersTest.java | 27 +-
.../test/java/org/apache/sis/util/ClassesTest.java | 34 +-
.../test/java/org/apache/sis/util/NumbersTest.java | 68 +-
.../org/apache/sis/util/collection/CacheTest.java | 2 +-
.../apache/sis/util/collection/RangeSetTest.java | 2 +-
.../sis/util/logging/PerformanceLevelTest.java | 46 +-
ide-project/NetBeans/build.xml | 17 +
ide-project/NetBeans/nbproject/build-impl.xml | 78 +-
ide-project/NetBeans/nbproject/build-impl.xml~ | 2131 ++++++++++++++++++++
ide-project/NetBeans/nbproject/genfiles.properties | 6 +-
ide-project/NetBeans/nbproject/project.properties | 64 +-
ide-project/NetBeans/nbproject/project.xml | 5 +
pom.xml | 139 +-
profiles/pom.xml | 6 +-
profiles/sis-french-profile/pom.xml | 6 +-
.../sis/internal/profile/fra/package-info.java | 6 +-
.../internal/profile/fra/DirectReferenceSystem.xml | 6 +-
profiles/sis-japan-profile/pom.xml | 10 +-
.../sis/internal/earth/netcdf/FactoryForUCAR.java | 123 ++
.../apache/sis/internal/earth/netcdf/GCOM_C.java | 70 +-
.../apache/sis/internal/earth/netcdf/GCOM_W.java | 83 +-
.../ucar.nc2.dataset.spi.CoordSystemBuilderFactory | 1 +
src/main/javadoc/overview.html | 4 +-
src/main/javadoc/sis.css | 7 +-
storage/pom.xml | 8 +-
storage/sis-earth-observation/pom.xml | 13 +-
.../storage/earthobservation/LandsatAggregate.java | 138 ++
.../sis/storage/earthobservation/LandsatBand.java | 73 +
.../storage/earthobservation/LandsatBandGroup.java | 72 +
.../storage/earthobservation/LandsatReader.java | 450 ++---
.../storage/earthobservation/LandsatResource.java | 226 +++
.../sis/storage/earthobservation/LandsatStore.java | 149 +-
.../earthobservation/LandsatStoreProvider.java | 37 +-
.../doc-files/LandsatMetadata.html | 47 +-
.../sis/storage/earthobservation/package-info.java | 3 +-
.../earthobservation/LandsatReaderTest.java | 92 +-
storage/sis-gdal/pom.xml | 4 +-
.../org/apache/sis/storage/gdal/Proj4Test.java | 2 +-
.../org/apache/sis/storage/gdal/TransformTest.java | 1 -
storage/sis-geotiff/pom.xml | 15 +-
.../apache/sis/internal/geotiff/Compression.java | 162 ++
.../org/apache/sis/internal/geotiff/Predictor.java | 65 +
.../org/apache/sis/internal/geotiff/Resources.java | 27 +-
.../sis/internal/geotiff/Resources.properties | 5 +
.../sis/internal/geotiff/Resources_fr.properties | 7 +-
.../sis/internal/geotiff/SchemaModifier.java | 119 ++
.../apache/sis/internal/geotiff/package-info.java | 2 +-
.../sis/internal/storage/inflater/CCITTRLE.java | 273 +++
.../storage/inflater/CompressionChannel.java | 131 ++
.../internal/storage/inflater/CopyFromBytes.java | 416 ++++
.../storage/inflater/HorizontalPredictor.java | 517 +++++
.../sis/internal/storage/inflater/Inflater.java | 319 +++
.../apache/sis/internal/storage/inflater/LZW.java | 261 +++
.../sis/internal/storage/inflater/PackBits.java | 143 ++
.../internal/storage/inflater/PixelChannel.java | 55 +
.../storage/inflater/PredictorChannel.java | 130 ++
.../apache/sis/internal/storage/inflater/ZIP.java | 136 ++
.../internal/storage/inflater/package-info.java | 49 +
.../org/apache/sis/storage/geotiff/CRSBuilder.java | 13 +-
.../sis/storage/geotiff/CompressedSubset.java | 278 +++
.../apache/sis/storage/geotiff/Compression.java | 154 --
.../org/apache/sis/storage/geotiff/DataCube.java | 214 ++
.../org/apache/sis/storage/geotiff/DataSubset.java | 486 +++++
.../org/apache/sis/storage/geotiff/GeoTIFF.java | 12 +-
.../apache/sis/storage/geotiff/GeoTiffStore.java | 159 +-
.../sis/storage/geotiff/GridGeometryBuilder.java | 19 +-
.../sis/storage/geotiff/ImageFileDirectory.java | 673 +++++--
.../org/apache/sis/storage/geotiff/Reader.java | 27 +-
.../sis/storage/geotiff/ReversedBitsChannel.java | 163 ++
.../java/org/apache/sis/storage/geotiff/Tags.java | 2 +
.../apache/sis/storage/geotiff/package-info.java | 11 +-
.../sis/internal/geotiff/CompressionTest.java | 43 +
.../internal/storage/inflater/CCITTRLETest.java | 576 ++++++
.../internal/storage/inflater/InflaterTest.java | 64 +
.../sis/storage/geotiff/CompressionTest.java | 43 -
.../sis/storage/geotiff/SelfConsistencyTest.java | 85 +
.../apache/sis/test/suite/GeoTiffTestSuite.java | 9 +-
storage/sis-netcdf/pom.xml | 18 +-
.../java/org/apache/sis/internal/netcdf/Axis.java | 247 ++-
.../org/apache/sis/internal/netcdf/AxisType.java | 179 ++
.../org/apache/sis/internal/netcdf/CRSBuilder.java | 215 +-
.../org/apache/sis/internal/netcdf/Convention.java | 87 +-
.../org/apache/sis/internal/netcdf/DataType.java | 72 +-
.../org/apache/sis/internal/netcdf/Decoder.java | 112 +-
.../sis/internal/netcdf/DiscreteSampling.java | 12 +-
.../org/apache/sis/internal/netcdf/FeatureSet.java | 950 +++++++++
.../java/org/apache/sis/internal/netcdf/Grid.java | 152 +-
.../apache/sis/internal/netcdf/GridAdjustment.java | 207 ++
.../apache/sis/internal/netcdf/GridCacheKey.java | 36 +-
.../apache/sis/internal/netcdf/GridCacheValue.java | 82 +
.../apache/sis/internal/netcdf/GridMapping.java | 62 +-
.../java/org/apache/sis/internal/netcdf/HYCOM.java | 129 ++
.../org/apache/sis/internal/netcdf/Linearizer.java | 297 ++-
.../java/org/apache/sis/internal/netcdf/Node.java | 38 +-
.../org/apache/sis/internal/netcdf/Raster.java | 8 +-
.../apache/sis/internal/netcdf/RasterResource.java | 155 +-
.../org/apache/sis/internal/netcdf/Resources.java | 37 +-
.../sis/internal/netcdf/Resources.properties | 8 +-
.../sis/internal/netcdf/Resources_fr.properties | 16 +-
.../sis/internal/netcdf/SatelliteGroundTrack.java | 246 ---
.../org/apache/sis/internal/netcdf/Variable.java | 633 ++++--
.../apache/sis/internal/netcdf/VariableRole.java | 13 +-
.../sis/internal/netcdf/impl/ChannelDecoder.java | 147 +-
.../sis/internal/netcdf/impl/FeaturesInfo.java | 426 ----
.../apache/sis/internal/netcdf/impl/GridInfo.java | 111 +-
.../org/apache/sis/internal/netcdf/impl/HYCOM.java | 128 --
.../sis/internal/netcdf/impl/VariableInfo.java | 423 ++--
.../sis/internal/netcdf/impl/package-info.java | 4 +-
.../internal/netcdf/ucar/CSBuilderFallback.java | 93 -
.../sis/internal/netcdf/ucar/DecoderWrapper.java | 219 +-
.../sis/internal/netcdf/ucar/DimensionWrapper.java | 7 +-
.../sis/internal/netcdf/ucar/FeaturesWrapper.java | 17 +-
.../sis/internal/netcdf/ucar/GridWrapper.java | 72 +-
.../sis/internal/netcdf/ucar/GroupWrapper.java | 8 +-
.../org/apache/sis/internal/netcdf/ucar/Utils.java | 4 +-
.../sis/internal/netcdf/ucar/VariableWrapper.java | 267 ++-
.../sis/internal/netcdf/ucar/package-info.java | 4 +-
.../apache/sis/storage/netcdf/AttributeNames.java | 1 -
.../apache/sis/storage/netcdf/MetadataReader.java | 30 +-
.../org/apache/sis/storage/netcdf/NetcdfStore.java | 31 +-
.../sis/storage/netcdf/NetcdfStoreProvider.java | 55 +-
.../apache/sis/storage/netcdf/package-info.java | 16 +-
.../apache/sis/internal/netcdf/DataTypeTest.java | 42 +-
.../apache/sis/internal/netcdf/FeatureSetTest.java | 200 ++
.../org/apache/sis/internal/netcdf/GridTest.java | 45 +-
.../internal/netcdf/SatelliteGroundTrackTest.java | 81 -
.../apache/sis/internal/netcdf/VariableTest.java | 28 +-
.../sis/internal/netcdf/impl/FeatureSetTest.java | 47 +
.../sis/internal/netcdf/impl/GridInfoTest.java | 9 +-
.../sis/internal/netcdf/impl/VariableInfoTest.java | 3 +-
.../sis/storage/netcdf/MetadataReaderTest.java | 16 +-
.../apache/sis/storage/netcdf/NetcdfStoreTest.java | 4 +-
.../sis/storage/netcdf/SelfConsistencyTest.java | 86 +
.../org/apache/sis/test/suite/NetcdfTestSuite.java | 8 +-
.../apache/sis/internal/shapefile/AutoChecker.java | 3 +-
.../internal/shapefile/ShapefileByteReader.java | 3 +-
.../sis/storage/shapefile/InputFeatureStream.java | 3 +-
.../apache/sis/storage/shapefile/cpg/CpgFiles.java | 79 +
storage/sis-sqlstore/pom.xml | 12 +
.../apache/sis/internal/sql/feature/Analyzer.java | 633 +++++-
.../apache/sis/internal/sql/feature/Column.java | 241 +++
.../apache/sis/internal/sql/feature/Database.java | 437 +++-
.../sis/internal/sql/feature/EWKBReader.java | 207 ++
.../sis/internal/sql/feature/FeatureAdapter.java | 374 ++++
.../sis/internal/sql/feature/FeatureIterator.java | 337 ++++
.../sis/internal/sql/feature/FeatureStream.java | 406 ++++
.../apache/sis/internal/sql/feature/Features.java | 499 -----
.../sis/internal/sql/feature/InfoStatements.java | 419 ++++
.../sis/internal/sql/feature/PrimaryKey.java | 112 +
.../apache/sis/internal/sql/feature/Relation.java | 75 +-
.../apache/sis/internal/sql/feature/Resources.java | 27 +-
.../sis/internal/sql/feature/Resources.properties | 5 +
.../internal/sql/feature/Resources_fr.properties | 7 +-
.../sis/internal/sql/feature/SchemaModifier.java | 63 +
.../sis/internal/sql/feature/SelectionClause.java | 176 ++
.../sql/feature/SelectionClauseWriter.java | 419 ++++
.../sis/internal/sql/feature/SpatialFunctions.java | 144 --
.../org/apache/sis/internal/sql/feature/Table.java | 529 ++---
.../sis/internal/sql/feature/TableAnalyzer.java | 189 ++
.../sis/internal/sql/feature/TableReference.java | 45 +-
.../sis/internal/sql/feature/ValueGetter.java | 372 ++++
.../sis/internal/sql/feature/package-info.java | 6 +-
.../internal/sql/postgis/ExtendedClauseWriter.java | 70 +
.../sis/internal/sql/postgis/ExtendedInfo.java | 82 +
.../apache/sis/internal/sql/postgis/Postgres.java | 151 ++
.../sis/internal/sql/postgis/package-info.java | 27 +
.../sis/internal/stream/BaseStreamWrapper.java | 97 +
.../apache/sis/internal/stream/DeferredStream.java | 168 ++
.../sis/internal/stream/DoubleStreamWrapper.java | 285 +++
.../sis/internal/stream/PaginedDoubleStream.java | 102 +
.../apache/sis/internal/stream/PaginedStream.java | 113 ++
.../apache/sis/internal/stream/StreamWrapper.java | 319 +++
.../apache/sis/internal/stream/package-info.java | 34 +
.../java/org/apache/sis/storage/sql/SQLStore.java | 66 +-
.../apache/sis/storage/sql/SQLStoreProvider.java | 9 +-
.../org/apache/sis/storage/sql/package-info.java | 20 +-
.../apache/sis/internal/sql/feature/EWKBTest.java | 125 ++
.../sql/feature/SelectionClauseWriterTest.java | 151 ++
.../sis/internal/sql/postgis/PostgresTest.java | 45 +
.../org/apache/sis/storage/sql/SQLStoreTest.java | 205 +-
.../org/apache/sis/test/suite/SQLTestSuite.java | 4 +-
.../sis/internal/sql/feature/hexa_ewkb_4326.csv | 21 +
.../sis/internal/sql/feature/hexa_ewkb_4326.sql | 43 +
storage/sis-storage/pom.xml | 15 +-
.../apache/sis/index/tree/LatLonPointRadius.java | 138 --
.../java/org/apache/sis/index/tree/NodeType.java | 28 -
.../java/org/apache/sis/index/tree/QuadTree.java | 622 ------
.../org/apache/sis/index/tree/QuadTreeData.java | 59 -
.../org/apache/sis/index/tree/QuadTreeNode.java | 178 --
.../org/apache/sis/index/tree/QuadTreeWriter.java | 163 --
.../java/org/apache/sis/index/tree/Quadrant.java | 62 -
.../org/apache/sis/index/tree/package-info.java | 24 -
.../sis/internal/storage/AbstractFeatureSet.java | 2 +
.../sis/internal/storage/AbstractGridResource.java | 319 ++-
.../sis/internal/storage/AbstractResource.java | 75 +-
.../sis/internal/storage/AggregatedFeatureSet.java | 2 +
.../apache/sis/internal/storage/Capability.java | 10 +-
.../internal/storage/ConcatenatedFeatureSet.java | 4 +-
.../sis/internal/storage/GridResourceWrapper.java | 227 +++
.../sis/internal/storage/JoinFeatureSet.java | 44 +-
.../sis/internal/storage/MemoryGridResource.java | 181 ++
.../sis/internal/storage/MetadataBuilder.java | 327 ++-
.../internal/storage/RasterLoadingStrategy.java | 112 +
.../org/apache/sis/internal/storage/Resources.java | 27 +-
.../sis/internal/storage/Resources.properties | 5 +
.../sis/internal/storage/Resources_fr.properties | 7 +-
.../apache/sis/internal/storage/StoreMetadata.java | 27 +-
.../sis/internal/storage/StoreUtilities.java | 32 +-
.../sis/internal/storage/TiledGridCoverage.java | 776 +++++++
.../sis/internal/storage/TiledGridResource.java | 543 +++++
.../apache/sis/internal/storage/URIDataStore.java | 43 +-
.../internal/storage/csv/MovingFeatureBuilder.java | 299 +++
.../storage/csv/MovingFeatureIterator.java | 11 +-
.../org/apache/sis/internal/storage/csv/Store.java | 3 +-
.../sis/internal/storage/csv/StoreProvider.java | 10 +-
.../storage/folder/FolderStoreProvider.java | 29 +-
.../apache/sis/internal/storage/folder/Store.java | 19 +-
.../sis/internal/storage/folder/package-info.java | 2 +-
.../sis/internal/storage/io/ChannelData.java | 61 +-
.../sis/internal/storage/io/ChannelDataInput.java | 20 +-
.../sis/internal/storage/io/ChannelDataOutput.java | 20 +-
.../sis/internal/storage/io/ChannelFactory.java | 5 +-
.../sis/internal/storage/io/DataTransfer.java | 7 +-
.../internal/storage/io/HyperRectangleReader.java | 83 +-
.../sis/internal/storage/io/IOUtilities.java | 48 +-
.../internal/storage/io/MemoryDataTransfer.java | 3 +-
.../org/apache/sis/internal/storage/io/Region.java | 62 +-
.../apache/sis/internal/storage/package-info.java | 2 +-
.../sis/internal/storage/query/FeatureSubset.java | 148 --
.../sis/internal/storage/query/SimpleQuery.java | 486 -----
.../internal/storage/query/SortByComparator.java | 116 --
.../sis/internal/storage/query/package-info.java | 32 -
.../sis/internal/storage/wkt/FirstKeywordPeek.java | 162 +-
.../org/apache/sis/internal/storage/wkt/Store.java | 2 +-
.../sis/internal/storage/wkt/StoreFormat.java | 13 +-
.../sis/internal/storage/wkt/package-info.java | 2 +-
.../org/apache/sis/internal/storage/xml/Store.java | 3 +-
.../java/org/apache/sis/storage/CoverageQuery.java | 374 ++++
.../org/apache/sis/storage/CoverageSubset.java | 208 ++
.../java/org/apache/sis/storage/DataStore.java | 77 +-
.../org/apache/sis/storage/DataStoreProvider.java | 8 +-
.../org/apache/sis/storage/DataStoreRegistry.java | 85 +-
.../java/org/apache/sis/storage/FeatureNaming.java | 3 +-
.../java/org/apache/sis/storage/FeatureQuery.java | 673 +++++++
.../java/org/apache/sis/storage/FeatureSet.java | 5 +-
.../java/org/apache/sis/storage/FeatureSubset.java | 147 ++
.../apache/sis/storage/GridCoverageResource.java | 37 +-
.../main/java/org/apache/sis/storage/Query.java | 79 +-
.../main/java/org/apache/sis/storage/Resource.java | 7 +
.../org/apache/sis/storage/StorageConnector.java | 65 +-
.../sis/storage/UnsupportedEncodingException.java | 62 +
.../apache/sis/storage/event/StoreListeners.java | 28 +-
.../java/org/apache/sis/storage/package-info.java | 2 +-
.../org.apache.sis.storage.DataStoreProvider | 1 +
.../apache/sis/index/tree/TestQuadTreeNode.java | 31 -
.../storage/ConcatenatedFeatureSetTest.java | 5 +-
.../sis/internal/storage/JoinFeatureSetTest.java | 14 +-
.../internal/storage/MemoryGridResourceTest.java | 105 +
.../sis/internal/storage/MetadataBuilderTest.java | 73 +-
.../sis/internal/storage/StoreUtilitiesTest.java | 47 +
.../sis/internal/storage/folder/StoreTest.java | 5 +-
.../storage/io/HyperRectangleReaderTest.java | 3 +-
.../storage/io/RewindableLineReaderTest.java | 2 +-
.../internal/storage/query/SimpleQueryTest.java | 197 --
.../org/apache/sis/storage/CoverageQueryTest.java | 182 ++
.../org/apache/sis/storage/DataStoresTest.java | 81 +-
.../org/apache/sis/storage/FeatureQueryTest.java | 212 ++
.../org/apache/sis/storage/GridResourceMock.java | 106 +
.../sis/test/storage/CoverageReadConsistency.java | 555 +++++
.../apache/sis/test/storage/SubsampledImage.java | 263 +++
.../org/apache/sis/test/storage/package-info.java | 34 +
.../apache/sis/test/suite/StorageTestSuite.java | 7 +-
storage/sis-xmlstore/pom.xml | 2 +-
.../apache/sis/internal/storage/gpx/Metadata.java | 7 +-
.../sis/internal/storage/gpx/StoreProvider.java | 10 +-
.../apache/sis/internal/storage/gpx/Writer.java | 4 +-
.../storage/xml/stream/StaxStreamReader.java | 16 +-
1341 files changed, 144536 insertions(+), 31768 deletions(-)
create mode 100644 application/sis-javafx/doc/readme.txt
copy application/{sis-console => sis-javafx}/src/main/artifact/LICENSE (100%)
copy application/{sis-console => sis-javafx}/src/main/artifact/NOTICE (100%)
create mode 100644 application/sis-javafx/src/main/artifact/README
create mode 100755 application/sis-javafx/src/main/artifact/bin/sisfx
create mode 100644 application/sis-javafx/src/main/artifact/bin/sisfx.bat
create mode 100644 application/sis-javafx/src/main/artifact/conf/logging.properties
create mode 100644 application/sis-javafx/src/main/artifact/conf/setenv.bat
create mode 100644 application/sis-javafx/src/main/artifact/conf/setenv.sh
create mode 120000 application/sis-javafx/src/main/artifact/data/README
create mode 100644 application/sis-javafx/src/main/artifact/lib/README
create mode 100644 application/sis-javafx/src/main/artifact/lib/logo.jpg
create mode 100644 application/sis-javafx/src/main/artifact/log/README
create mode 100644 application/sis-javafx/src/main/java/org/apache/sis/gui/AboutDialog.java
create mode 100644 application/sis-javafx/src/main/java/org/apache/sis/gui/DataViewer.java
delete mode 100644 application/sis-javafx/src/main/java/org/apache/sis/gui/Main.java
create mode 100644 application/sis-javafx/src/main/java/org/apache/sis/gui/RecentFiles.java
create mode 100644 application/sis-javafx/src/main/java/org/apache/sis/gui/Widget.java
create mode 100644 application/sis-javafx/src/main/java/org/apache/sis/gui/coverage/BandRangeTable.java
create mode 100644 application/sis-javafx/src/main/java/org/apache/sis/gui/coverage/BandSelectionListener.java
create mode 100644 application/sis-javafx/src/main/java/org/apache/sis/gui/coverage/CellFormat.java
create mode 100644 application/sis-javafx/src/main/java/org/apache/sis/gui/coverage/Controls.java
create mode 100644 application/sis-javafx/src/main/java/org/apache/sis/gui/coverage/CoverageCanvas.java
create mode 100644 application/sis-javafx/src/main/java/org/apache/sis/gui/coverage/CoverageControls.java
create mode 100644 application/sis-javafx/src/main/java/org/apache/sis/gui/coverage/CoverageExplorer.java
create mode 100644 application/sis-javafx/src/main/java/org/apache/sis/gui/coverage/CoverageStyling.java
create mode 100644 application/sis-javafx/src/main/java/org/apache/sis/gui/coverage/GridCell.java
create mode 100644 application/sis-javafx/src/main/java/org/apache/sis/gui/coverage/GridControls.java
create mode 100644 application/sis-javafx/src/main/java/org/apache/sis/gui/coverage/GridError.java
create mode 100644 application/sis-javafx/src/main/java/org/apache/sis/gui/coverage/GridRow.java
create mode 100644 application/sis-javafx/src/main/java/org/apache/sis/gui/coverage/GridRowSkin.java
create mode 100644 application/sis-javafx/src/main/java/org/apache/sis/gui/coverage/GridTile.java
create mode 100644 application/sis-javafx/src/main/java/org/apache/sis/gui/coverage/GridTileCache.java
create mode 100644 application/sis-javafx/src/main/java/org/apache/sis/gui/coverage/GridView.java
create mode 100644 application/sis-javafx/src/main/java/org/apache/sis/gui/coverage/GridViewSkin.java
create mode 100644 application/sis-javafx/src/main/java/org/apache/sis/gui/coverage/ImagePropertyExplorer.java
create mode 100644 application/sis-javafx/src/main/java/org/apache/sis/gui/coverage/ImageRequest.java
create mode 100644 application/sis-javafx/src/main/java/org/apache/sis/gui/coverage/IsolineRenderer.java
create mode 100644 application/sis-javafx/src/main/java/org/apache/sis/gui/coverage/RenderingData.java
create mode 100644 application/sis-javafx/src/main/java/org/apache/sis/gui/coverage/Stretching.java
create mode 100644 application/sis-javafx/src/main/java/org/apache/sis/gui/coverage/package-info.java
create mode 100644 application/sis-javafx/src/main/java/org/apache/sis/gui/dataset/CopyAction.java
create mode 100644 application/sis-javafx/src/main/java/org/apache/sis/gui/dataset/DataWindow.java
create mode 100644 application/sis-javafx/src/main/java/org/apache/sis/gui/dataset/ExpandableList.java
create mode 100644 application/sis-javafx/src/main/java/org/apache/sis/gui/dataset/ExpandedFeature.java
create mode 100644 application/sis-javafx/src/main/java/org/apache/sis/gui/dataset/FeatureList.java
create mode 100644 application/sis-javafx/src/main/java/org/apache/sis/gui/dataset/FeatureLoader.java
create mode 100644 application/sis-javafx/src/main/java/org/apache/sis/gui/dataset/LoadEvent.java
create mode 100644 application/sis-javafx/src/main/java/org/apache/sis/gui/dataset/LogViewer.java
create mode 100644 application/sis-javafx/src/main/java/org/apache/sis/gui/dataset/ResourceExplorer.java
create mode 100644 application/sis-javafx/src/main/java/org/apache/sis/gui/dataset/SelectedData.java
create mode 100644 application/sis-javafx/src/main/java/org/apache/sis/gui/dataset/WindowManager.java
create mode 100644 application/sis-javafx/src/main/java/org/apache/sis/gui/dataset/package-info.java
create mode 100644 application/sis-javafx/src/main/java/org/apache/sis/gui/map/MapCanvas.java
create mode 100644 application/sis-javafx/src/main/java/org/apache/sis/gui/map/MapCanvasAWT.java
create mode 100644 application/sis-javafx/src/main/java/org/apache/sis/gui/map/MapMenu.java
create mode 100644 application/sis-javafx/src/main/java/org/apache/sis/gui/map/OperationFinder.java
create mode 100644 application/sis-javafx/src/main/java/org/apache/sis/gui/map/StatusBar.java
create mode 100644 application/sis-javafx/src/main/java/org/apache/sis/gui/map/ValuesUnderCursor.java
create mode 100644 application/sis-javafx/src/main/java/org/apache/sis/gui/map/package-info.java
create mode 100644 application/sis-javafx/src/main/java/org/apache/sis/gui/metadata/IdentificationInfo.java
delete mode 100644 application/sis-javafx/src/main/java/org/apache/sis/gui/metadata/MetadataNode.java
delete mode 100644 application/sis-javafx/src/main/java/org/apache/sis/gui/metadata/MetadataOverview.java
create mode 100644 application/sis-javafx/src/main/java/org/apache/sis/gui/metadata/MetadataSummary.java
create mode 100644 application/sis-javafx/src/main/java/org/apache/sis/gui/metadata/MetadataTree.java
create mode 100644 application/sis-javafx/src/main/java/org/apache/sis/gui/metadata/RepresentationInfo.java
delete mode 100644 application/sis-javafx/src/main/java/org/apache/sis/gui/metadata/ResourceView.java
create mode 100644 application/sis-javafx/src/main/java/org/apache/sis/gui/metadata/Section.java
create mode 100644 application/sis-javafx/src/main/java/org/apache/sis/gui/metadata/StandardMetadataTree.java
create mode 100644 application/sis-javafx/src/main/java/org/apache/sis/gui/metadata/package-info.java
create mode 100644 application/sis-javafx/src/main/java/org/apache/sis/gui/package-info.java
create mode 100644 application/sis-javafx/src/main/java/org/apache/sis/gui/referencing/AuthorityCodes.java
delete mode 100644 application/sis-javafx/src/main/java/org/apache/sis/gui/referencing/CRSButton.java
delete mode 100644 application/sis-javafx/src/main/java/org/apache/sis/gui/referencing/CRSTable.java
create mode 100644 application/sis-javafx/src/main/java/org/apache/sis/gui/referencing/CodeFilter.java
create mode 100644 application/sis-javafx/src/main/java/org/apache/sis/gui/referencing/MenuSync.java
create mode 100644 application/sis-javafx/src/main/java/org/apache/sis/gui/referencing/ObjectStringConverter.java
create mode 100644 application/sis-javafx/src/main/java/org/apache/sis/gui/referencing/PositionableProjection.java
create mode 100644 application/sis-javafx/src/main/java/org/apache/sis/gui/referencing/RecentReferenceSystems.java
create mode 100644 application/sis-javafx/src/main/java/org/apache/sis/gui/referencing/Utils.java
create mode 100644 application/sis-javafx/src/main/java/org/apache/sis/gui/referencing/package-info.java
create mode 100644 application/sis-javafx/src/main/java/org/apache/sis/internal/gui/BackgroundThreads.java
create mode 100644 application/sis-javafx/src/main/java/org/apache/sis/internal/gui/ColorName.java
create mode 100644 application/sis-javafx/src/main/java/org/apache/sis/internal/gui/DataFormats.java
create mode 100644 application/sis-javafx/src/main/java/org/apache/sis/internal/gui/ExceptionReporter.java
delete mode 100644 application/sis-javafx/src/main/java/org/apache/sis/internal/gui/FXUtilities.java
delete mode 100644 application/sis-javafx/src/main/java/org/apache/sis/internal/gui/FontGlyphs.java
create mode 100644 application/sis-javafx/src/main/java/org/apache/sis/internal/gui/GUIUtilities.java
create mode 100644 application/sis-javafx/src/main/java/org/apache/sis/internal/gui/IdentityValueFactory.java
create mode 100644 application/sis-javafx/src/main/java/org/apache/sis/internal/gui/ImageConverter.java
create mode 100644 application/sis-javafx/src/main/java/org/apache/sis/internal/gui/ImmutableObjectProperty.java
create mode 100644 application/sis-javafx/src/main/java/org/apache/sis/internal/gui/LogHandler.java
create mode 100644 application/sis-javafx/src/main/java/org/apache/sis/internal/gui/NonNullObjectProperty.java
create mode 100644 application/sis-javafx/src/main/java/org/apache/sis/internal/gui/PropertyView.java
create mode 100644 application/sis-javafx/src/main/java/org/apache/sis/internal/gui/RecentChoices.java
create mode 100644 application/sis-javafx/src/main/java/org/apache/sis/internal/gui/ResourceLoader.java
create mode 100644 application/sis-javafx/src/main/java/org/apache/sis/internal/gui/Styles.java
create mode 100644 application/sis-javafx/src/main/java/org/apache/sis/internal/gui/ToolbarButton.java
create mode 100644 application/sis-javafx/src/main/java/org/apache/sis/internal/gui/control/ColorCell.java
create mode 100644 application/sis-javafx/src/main/java/org/apache/sis/internal/gui/control/ColorColumnHandler.java
create mode 100644 application/sis-javafx/src/main/java/org/apache/sis/internal/gui/control/ColorRamp.java
create mode 100644 application/sis-javafx/src/main/java/org/apache/sis/internal/gui/control/FormatApplicator.java
create mode 100644 application/sis-javafx/src/main/java/org/apache/sis/internal/gui/control/FormatTableCell.java
create mode 100644 application/sis-javafx/src/main/java/org/apache/sis/internal/gui/control/ValueColorMapper.java
create mode 100644 application/sis-javafx/src/main/java/org/apache/sis/internal/gui/control/package-info.java
create mode 100644 application/sis-javafx/src/main/java/org/apache/sis/internal/setup/FXFinder.java
create mode 100644 application/sis-javafx/src/main/java/org/apache/sis/internal/setup/Inflater.java
create mode 100644 application/sis-javafx/src/main/java/org/apache/sis/internal/setup/LoggingConfiguration.java
create mode 100644 application/sis-javafx/src/main/java/org/apache/sis/internal/setup/Wizard.java
create mode 100644 application/sis-javafx/src/main/java/org/apache/sis/internal/setup/WizardPage.java
create mode 100644 application/sis-javafx/src/main/java/org/apache/sis/internal/setup/package-info.java
create mode 100644 application/sis-javafx/src/main/resources/org/apache/sis/gui/SIS_128px.png
create mode 100644 application/sis-javafx/src/main/resources/org/apache/sis/gui/SIS_64px.png
create mode 100644 application/sis-javafx/src/main/resources/org/apache/sis/gui/pseudo-classes.css
delete mode 100644 application/sis-javafx/src/main/resources/org/apache/sis/gui/referencing/CRSChooser.fxml
delete mode 100644 application/sis-javafx/src/main/resources/org/apache/sis/gui/referencing/proj_conic.png
delete mode 100644 application/sis-javafx/src/main/resources/org/apache/sis/gui/referencing/proj_geo.png
delete mode 100644 application/sis-javafx/src/main/resources/org/apache/sis/gui/referencing/proj_square.png
delete mode 100644 application/sis-javafx/src/main/resources/org/apache/sis/gui/referencing/proj_stereo.png
delete mode 100644 application/sis-javafx/src/main/resources/org/apache/sis/gui/referencing/proj_utm.png
create mode 100644 application/sis-javafx/src/test/java/org/apache/sis/gui/coverage/CoverageCanvasApp.java
create mode 100644 application/sis-javafx/src/test/java/org/apache/sis/gui/coverage/CoverageStylingApp.java
create mode 100644 application/sis-javafx/src/test/java/org/apache/sis/gui/coverage/GridViewApp.java
create mode 100644 application/sis-javafx/src/test/java/org/apache/sis/gui/referencing/CRSChooserApp.java
create mode 100644 application/sis-javafx/src/test/java/org/apache/sis/internal/gui/GUIUtilitiesTest.java
create mode 100644 application/sis-javafx/src/test/java/org/apache/sis/internal/gui/control/ValueColorMapperApp.java
create mode 100644 application/sis-javafx/src/test/java/org/apache/sis/test/suite/ApplicationTestSuite.java
delete mode 100644 application/sis-webapp/src/main/java/org/apache/sis/index/tree/GeoRSSData.java
delete mode 100644 application/sis-webapp/src/main/java/org/apache/sis/index/tree/QuadTreeReader.java
delete mode 100644 application/sis-webapp/src/main/java/org/apache/sis/services/LocationServlet.java
create mode 100644 application/sis-webapp/src/main/java/org/apache/sis/services/Servlet.java
create mode 100644 application/sis-webapp/src/main/java/org/apache/sis/services/package-info.java
delete mode 100644 application/sis-webapp/src/main/resources/sis-location-config.xml
delete mode 100644 application/sis-webapp/src/main/webapp/demo.jsp
delete mode 100644 application/sis-webapp/src/main/webapp/images/sis_logo_small.png
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/coverage/BandedCoverage.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/coverage/grid/BufferedGridCoverage.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/coverage/grid/ConvertedGridCoverage.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/coverage/grid/CoordinateOperationFinder.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/coverage/grid/DimensionReducer.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/coverage/grid/DomainLinearizer.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/coverage/grid/FractionalGridCoordinates.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/coverage/grid/GridClippingMode.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/coverage/grid/GridCoverage2D.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/coverage/grid/GridCoverageBuilder.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/coverage/grid/GridCoverageProcessor.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/coverage/grid/GridEvaluator.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/coverage/grid/GridExtentCRS.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/coverage/grid/GridOrientation.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/coverage/grid/ResampledGridCoverage.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/coverage/grid/ReshapedImage.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/coverage/grid/SliceGeometry.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/feature/FeatureOperationException.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/filter/BinaryGeometryFilter.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/filter/BinarySpatialFilter.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/filter/Capabilities.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/filter/ComparisonFilter.java
delete mode 100644 core/sis-feature/src/main/java/org/apache/sis/filter/ComparisonFunction.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/filter/ConvertFunction.java
delete mode 100644 core/sis-feature/src/main/java/org/apache/sis/filter/DefaultObjectId.java
delete mode 100644 core/sis-feature/src/main/java/org/apache/sis/filter/DefaultSortBy.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/filter/DefaultSortProperty.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/filter/DistanceFilter.java
delete mode 100644 core/sis-feature/src/main/java/org/apache/sis/filter/FilterByIdentifier.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/filter/FilterNode.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/filter/IdentifierFilter.java
delete mode 100644 core/sis-feature/src/main/java/org/apache/sis/filter/InvalidExpressionException.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/filter/LikeFilter.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/filter/LogicalFilter.java
delete mode 100644 core/sis-feature/src/main/java/org/apache/sis/filter/LogicalFunction.java
delete mode 100644 core/sis-feature/src/main/java/org/apache/sis/filter/NamedFunction.java
delete mode 100644 core/sis-feature/src/main/java/org/apache/sis/filter/Node.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/filter/Optimization.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/filter/PropertyValue.java
delete mode 100644 core/sis-feature/src/main/java/org/apache/sis/filter/SQLMM.java
delete mode 100644 core/sis-feature/src/main/java/org/apache/sis/filter/ST_Buffer.java
delete mode 100644 core/sis-feature/src/main/java/org/apache/sis/filter/ST_Centroid.java
delete mode 100644 core/sis-feature/src/main/java/org/apache/sis/filter/ST_Transform.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/filter/TemporalFilter.java
delete mode 100644 core/sis-feature/src/main/java/org/apache/sis/filter/TemporalFunction.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/image/AnnotatedImage.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/image/BandSelectImage.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/image/BandedIterator.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/image/BandedSampleConverter.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/image/ComputedImage.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/image/ComputedTiles.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/image/DataType.java
delete mode 100644 core/sis-feature/src/main/java/org/apache/sis/image/DefaultIterator.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/image/ErrorAction.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/image/ErrorHandler.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/image/ImageAdapter.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/image/ImageCombiner.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/image/ImageProcessor.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/image/Interpolation.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/image/LanczosInterpolation.java
delete mode 100644 core/sis-feature/src/main/java/org/apache/sis/image/LinearIterator.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/image/MaskImage.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/image/PlanarImage.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/image/PositionalConsistencyImage.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/image/PrefetchedImage.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/image/RecoloredImage.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/image/ResampledImage.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/image/ResamplingGrid.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/image/SourceAlignedImage.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/image/StatisticsCalculator.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/image/TileCache.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/image/Transferer.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/image/Visualization.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/index/tree/NodeIterator.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/index/tree/PointTree.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/index/tree/PointTreeNode.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/index/tree/QuadTreeNode.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/index/tree/package-info.java
delete mode 100644 core/sis-feature/src/main/java/org/apache/sis/internal/coverage/BufferedGridCoverage.java
delete mode 100644 core/sis-feature/src/main/java/org/apache/sis/internal/coverage/ColorModelFactory.java
delete mode 100644 core/sis-feature/src/main/java/org/apache/sis/internal/coverage/ColorModelPatch.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/internal/coverage/CompoundTransform.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/internal/coverage/CompoundTransformOf1D.java
delete mode 100644 core/sis-feature/src/main/java/org/apache/sis/internal/coverage/ConvertedGridCoverage.java
delete mode 100644 core/sis-feature/src/main/java/org/apache/sis/internal/coverage/MultiBandsIndexColorModel.java
delete mode 100644 core/sis-feature/src/main/java/org/apache/sis/internal/coverage/RasterFactory.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/internal/coverage/RepeatedTransform.java
delete mode 100644 core/sis-feature/src/main/java/org/apache/sis/internal/coverage/ScaledColorSpace.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/internal/coverage/j2d/ColorModelFactory.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/internal/coverage/j2d/ColorModelPatch.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/internal/coverage/j2d/ColorModelType.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/internal/coverage/j2d/Colorizer.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/internal/coverage/j2d/ColorsForRange.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/internal/coverage/j2d/DeferredProperty.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/internal/coverage/j2d/ImageLayout.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/internal/coverage/j2d/ImageUtilities.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/internal/coverage/j2d/MultiBandsIndexColorModel.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/internal/coverage/j2d/RasterFactory.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/internal/coverage/j2d/SampleModelFactory.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/internal/coverage/j2d/ScaledColorModel.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/internal/coverage/j2d/ScaledColorSpace.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/internal/coverage/j2d/TileErrorHandler.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/internal/coverage/j2d/TileOpExecutor.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/internal/coverage/j2d/TiledImage.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/internal/coverage/j2d/WritableTiledImage.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/internal/coverage/j2d/WriteSupport.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/internal/coverage/j2d/package-info.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/internal/feature/AbstractGeometry.java
delete mode 100644 core/sis-feature/src/main/java/org/apache/sis/internal/feature/DateList.java
delete mode 100644 core/sis-feature/src/main/java/org/apache/sis/internal/feature/ESRI.java
delete mode 100644 core/sis-feature/src/main/java/org/apache/sis/internal/feature/FunctionRegister.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/internal/feature/GeometryFactories.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/internal/feature/GeometryType.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/internal/feature/GeometryWithCRS.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/internal/feature/InstantList.java
delete mode 100644 core/sis-feature/src/main/java/org/apache/sis/internal/feature/JTS.java
delete mode 100644 core/sis-feature/src/main/java/org/apache/sis/internal/feature/Java2D.java
delete mode 100644 core/sis-feature/src/main/java/org/apache/sis/internal/feature/MovingFeature.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/internal/feature/MovingFeatures.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/internal/feature/SpatialOperationContext.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/internal/feature/esri/Factory.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/internal/feature/esri/Wrapper.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/internal/feature/esri/package-info.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/internal/feature/j2d/EmptyShape.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/internal/feature/j2d/Factory.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/internal/feature/j2d/FlatShape.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/internal/feature/j2d/MultiPolylines.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/internal/feature/j2d/PathBuilder.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/internal/feature/j2d/PointWrapper.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/internal/feature/j2d/Polygon.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/internal/feature/j2d/Polyline.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/internal/feature/j2d/Wrapper.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/internal/feature/jts/Factory.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/internal/feature/jts/FilteringContext.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/internal/feature/jts/Wrapper.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/internal/filter/FunctionNames.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/internal/filter/FunctionRegister.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/internal/filter/GeometryConverter.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/internal/filter/Node.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/internal/filter/SortByComparator.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/internal/filter/Visitor.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/internal/filter/package-info.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/FunctionWithSRID.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/GeometryConstructor.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/GeometryParser.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/OneGeometry.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/Registry.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/SQLMM.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_FromBinary.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_FromText.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_Point.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_Transform.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/SpatialFunction.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/TwoGeometries.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/package-info.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/internal/processing/image/CompoundFuture.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/internal/processing/image/IsolineTracer.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/internal/processing/image/Isolines.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/internal/processing/image/TiledProcess.java
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/internal/processing/image/package-info.java
create mode 100644 core/sis-feature/src/test/java/org/apache/sis/coverage/grid/BufferedGridCoverageTest.java
create mode 100644 core/sis-feature/src/test/java/org/apache/sis/coverage/grid/ConvertedGridCoverageTest.java
create mode 100644 core/sis-feature/src/test/java/org/apache/sis/coverage/grid/FractionalGridCoordinatesTest.java
create mode 100644 core/sis-feature/src/test/java/org/apache/sis/coverage/grid/GridCoverage2DTest.java
create mode 100644 core/sis-feature/src/test/java/org/apache/sis/coverage/grid/GridCoverageBuilderTest.java
create mode 100644 core/sis-feature/src/test/java/org/apache/sis/coverage/grid/GridOrientationTest.java
create mode 100644 core/sis-feature/src/test/java/org/apache/sis/coverage/grid/ResampledGridCoverageTest.java
create mode 100644 core/sis-feature/src/test/java/org/apache/sis/coverage/grid/ReshapedImageTest.java
create mode 100644 core/sis-feature/src/test/java/org/apache/sis/feature/FeatureOperationsTest.java
create mode 100644 core/sis-feature/src/test/java/org/apache/sis/filter/BinarySpatialFilterTestCase.java
create mode 100644 core/sis-feature/src/test/java/org/apache/sis/filter/BinarySpatialFilterUsingJTS_Test.java
create mode 100644 core/sis-feature/src/test/java/org/apache/sis/filter/CapabilitiesTest.java
create mode 100644 core/sis-feature/src/test/java/org/apache/sis/filter/ComparisonFilterTest.java
delete mode 100644 core/sis-feature/src/test/java/org/apache/sis/filter/ComparisonFunctionTest.java
delete mode 100644 core/sis-feature/src/test/java/org/apache/sis/filter/DefaultObjectIdTest.java
delete mode 100644 core/sis-feature/src/test/java/org/apache/sis/filter/FilterByIdentifierTest.java
create mode 100644 core/sis-feature/src/test/java/org/apache/sis/filter/IdentifierFilterTest.java
create mode 100644 core/sis-feature/src/test/java/org/apache/sis/filter/LikeFilterTest.java
create mode 100644 core/sis-feature/src/test/java/org/apache/sis/filter/LogicalFilterTest.java
delete mode 100644 core/sis-feature/src/test/java/org/apache/sis/filter/LogicalFunctionTest.java
delete mode 100644 core/sis-feature/src/test/java/org/apache/sis/filter/SQLMMTest.java
create mode 100644 core/sis-feature/src/test/java/org/apache/sis/filter/TemporalFilterTest.java
delete mode 100644 core/sis-feature/src/test/java/org/apache/sis/filter/TemporalFunctionTest.java
delete mode 100644 core/sis-feature/src/test/java/org/apache/sis/filter/UnaryFunctionTest.java
create mode 100644 core/sis-feature/src/test/java/org/apache/sis/image/BandSelectImageTest.java
create mode 100644 core/sis-feature/src/test/java/org/apache/sis/image/BandedIteratorTest.java
create mode 100644 core/sis-feature/src/test/java/org/apache/sis/image/BandedSampleConverterTest.java
create mode 100644 core/sis-feature/src/test/java/org/apache/sis/image/ComputedImageTest.java
create mode 100644 core/sis-feature/src/test/java/org/apache/sis/image/DataTypeTest.java
delete mode 100644 core/sis-feature/src/test/java/org/apache/sis/image/DefaultIteratorTest.java
create mode 100644 core/sis-feature/src/test/java/org/apache/sis/image/ImageCombinerTest.java
create mode 100644 core/sis-feature/src/test/java/org/apache/sis/image/ImageProcessorTest.java
create mode 100644 core/sis-feature/src/test/java/org/apache/sis/image/InterpolationTest.java
create mode 100644 core/sis-feature/src/test/java/org/apache/sis/image/PixelIteratorTest.java
create mode 100644 core/sis-feature/src/test/java/org/apache/sis/image/PlanarImageTest.java
create mode 100644 core/sis-feature/src/test/java/org/apache/sis/image/ResampledImageTest.java
create mode 100644 core/sis-feature/src/test/java/org/apache/sis/image/ResamplingGridTest.java
create mode 100644 core/sis-feature/src/test/java/org/apache/sis/image/StatisticsCalculatorTest.java
create mode 100644 core/sis-feature/src/test/java/org/apache/sis/index/tree/PointTreeNodeTest.java
create mode 100644 core/sis-feature/src/test/java/org/apache/sis/index/tree/PointTreeTest.java
delete mode 100644 core/sis-feature/src/test/java/org/apache/sis/internal/coverage/BufferedGridCoverageTest.java
delete mode 100644 core/sis-feature/src/test/java/org/apache/sis/internal/coverage/ScaledColorSpaceTest.java
create mode 100644 core/sis-feature/src/test/java/org/apache/sis/internal/coverage/j2d/ColorizerTest.java
create mode 100644 core/sis-feature/src/test/java/org/apache/sis/internal/coverage/j2d/ImageLayoutTest.java
create mode 100644 core/sis-feature/src/test/java/org/apache/sis/internal/coverage/j2d/ImageUtilitiesTest.java
create mode 100644 core/sis-feature/src/test/java/org/apache/sis/internal/coverage/j2d/SampleModelFactoryTest.java
create mode 100644 core/sis-feature/src/test/java/org/apache/sis/internal/coverage/j2d/ScaledColorSpaceTest.java
delete mode 100644 core/sis-feature/src/test/java/org/apache/sis/internal/feature/ESRITest.java
create mode 100644 core/sis-feature/src/test/java/org/apache/sis/internal/feature/GeometryTypeTest.java
delete mode 100644 core/sis-feature/src/test/java/org/apache/sis/internal/feature/JTSTest.java
delete mode 100644 core/sis-feature/src/test/java/org/apache/sis/internal/feature/Java2DTest.java
create mode 100644 core/sis-feature/src/test/java/org/apache/sis/internal/feature/esri/FactoryTest.java
create mode 100644 core/sis-feature/src/test/java/org/apache/sis/internal/feature/j2d/FactoryTest.java
create mode 100644 core/sis-feature/src/test/java/org/apache/sis/internal/feature/j2d/FlatShapeTest.java
create mode 100644 core/sis-feature/src/test/java/org/apache/sis/internal/feature/jts/FactoryTest.java
create mode 100644 core/sis-feature/src/test/java/org/apache/sis/internal/filter/FunctionNamesTest.java
create mode 100644 core/sis-feature/src/test/java/org/apache/sis/internal/filter/sqlmm/RegistryTestCase.java
create mode 100644 core/sis-feature/src/test/java/org/apache/sis/internal/filter/sqlmm/RegistryUsingJTS_Test.java
create mode 100644 core/sis-feature/src/test/java/org/apache/sis/internal/filter/sqlmm/SQLMMTest.java
create mode 100644 core/sis-feature/src/test/java/org/apache/sis/internal/processing/image/IsolinesTest.java
create mode 100644 core/sis-feature/src/test/java/org/apache/sis/test/FeatureAssert.java
create mode 100644 core/sis-feature/src/test/java/org/apache/sis/test/feature/FeatureComparator.java
create mode 100644 core/sis-feature/src/test/java/org/apache/sis/test/feature/package-info.java
copy {storage/sis-xmlstore/src/test/java/org/apache/sis/test/suite => core/sis-feature/src/test/java/org/apache/sis/test}/package-info.txt (100%)
delete mode 100644 core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gml/CodeListUID.java
create mode 100644 core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/sql/LocalDataSource.java
create mode 100644 core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/sql/Syntax.java
delete mode 100644 core/sis-metadata/src/main/java/org/apache/sis/internal/xml/Schemas.java
create mode 100644 core/sis-portrayal/src/main/java/org/apache/sis/internal/map/ExceptionPresentation.java
create mode 100644 core/sis-portrayal/src/main/java/org/apache/sis/internal/map/ListChangeEvent.java
delete mode 100644 core/sis-portrayal/src/main/java/org/apache/sis/internal/map/MapContext.java
delete mode 100644 core/sis-portrayal/src/main/java/org/apache/sis/internal/map/MapGroup.java
delete mode 100644 core/sis-portrayal/src/main/java/org/apache/sis/internal/map/MapItem.java
delete mode 100644 core/sis-portrayal/src/main/java/org/apache/sis/internal/map/MapLayer.java
create mode 100644 core/sis-portrayal/src/main/java/org/apache/sis/internal/map/NotifiedList.java
create mode 100644 core/sis-portrayal/src/main/java/org/apache/sis/internal/map/Presentation.java
create mode 100644 core/sis-portrayal/src/main/java/org/apache/sis/internal/map/PropertyNameCollector.java
create mode 100644 core/sis-portrayal/src/main/java/org/apache/sis/internal/map/ResourceSymbolizer.java
create mode 100644 core/sis-portrayal/src/main/java/org/apache/sis/internal/map/SEPortrayer.java
create mode 100644 core/sis-portrayal/src/main/java/org/apache/sis/internal/map/SEPresentation.java
create mode 100644 core/sis-portrayal/src/main/java/org/apache/sis/internal/map/SymbologyVisitor.java
create mode 100644 core/sis-portrayal/src/main/java/org/apache/sis/portrayal/Canvas.java
create mode 100644 core/sis-portrayal/src/main/java/org/apache/sis/portrayal/CanvasContext.java
create mode 100644 core/sis-portrayal/src/main/java/org/apache/sis/portrayal/CanvasExtent.java
create mode 100644 core/sis-portrayal/src/main/java/org/apache/sis/portrayal/MapItem.java
create mode 100644 core/sis-portrayal/src/main/java/org/apache/sis/portrayal/MapLayer.java
create mode 100644 core/sis-portrayal/src/main/java/org/apache/sis/portrayal/MapLayers.java
create mode 100644 core/sis-portrayal/src/main/java/org/apache/sis/portrayal/Observable.java
create mode 100644 core/sis-portrayal/src/main/java/org/apache/sis/portrayal/PlanarCanvas.java
create mode 100644 core/sis-portrayal/src/main/java/org/apache/sis/portrayal/RenderException.java
create mode 100644 core/sis-portrayal/src/main/java/org/apache/sis/portrayal/package-info.java
create mode 100644 core/sis-portrayal/src/test/java/org/apache/sis/internal/map/MockFeatureTypeStyle.java
create mode 100644 core/sis-portrayal/src/test/java/org/apache/sis/internal/map/MockLineSymbolizer.java
create mode 100644 core/sis-portrayal/src/test/java/org/apache/sis/internal/map/MockRule.java
create mode 100644 core/sis-portrayal/src/test/java/org/apache/sis/internal/map/MockStyle.java
create mode 100644 core/sis-portrayal/src/test/java/org/apache/sis/internal/map/SEPortrayerTest.java
create mode 100644 core/sis-portrayal/src/test/java/org/apache/sis/portrayal/MapLayersTest.java
create mode 100644 core/sis-portrayal/src/test/java/org/apache/sis/test/suite/PortrayalTestSuite.java
create mode 100644 core/sis-referencing/src/main/java/org/apache/sis/geometry/WraparoundInEnvelope.java
create mode 100644 core/sis-referencing/src/main/java/org/apache/sis/geometry/WraparoundMethod.java
create mode 100644 core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/AnnotatedMatrix.java
create mode 100644 core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/MathTransformsOrFactory.java
create mode 100644 core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/RTreeNode.java
create mode 100644 core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/WraparoundApplicator.java
create mode 100644 core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/j2d/Tile.java
create mode 100644 core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/j2d/TileOrganizer.java
create mode 100644 core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/AzimuthalEquidistantSpherical.java
create mode 100644 core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/CassiniSoldner.java
create mode 100644 core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/DatumShiftGridGroup.java
create mode 100644 core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/HyperbolicCassiniSoldner.java
create mode 100644 core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/ModifiedAzimuthalEquidistant.java
create mode 100644 core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/NTv1.java
create mode 100644 core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/Wraparound.java
create mode 100644 core/sis-referencing/src/main/java/org/apache/sis/io/wkt/SingletonElement.java
create mode 100644 core/sis-referencing/src/main/java/org/apache/sis/io/wkt/StoredTree.java
create mode 100644 core/sis-referencing/src/main/java/org/apache/sis/io/wkt/WKTDictionary.java
create mode 100644 core/sis-referencing/src/main/java/org/apache/sis/io/wkt/doc-files/ESRI.txt
create mode 100644 core/sis-referencing/src/main/java/org/apache/sis/referencing/factory/ReferenceKeeper.java
create mode 100644 core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/LooselyDefinedMethod.java
create mode 100644 core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/builder/Linearizer.java
create mode 100644 core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/projection/AzimuthalEquidistant.java
create mode 100644 core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/projection/CassiniSoldner.java
create mode 100644 core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/projection/ModifiedAzimuthalEquidistant.java
delete mode 100644 core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/MathTransformsOrFactory.java
create mode 100644 core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/TransformAdapter2D.java
create mode 100644 core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/WraparoundTransform.java
create mode 100644 core/sis-referencing/src/test/java/org/apache/sis/internal/referencing/ExtentSelectorTest.java
create mode 100644 core/sis-referencing/src/test/java/org/apache/sis/io/wkt/WKTDictionaryTest.java
create mode 100644 core/sis-referencing/src/test/java/org/apache/sis/referencing/geoapi/AuthorityFactoryTest.java
create mode 100644 core/sis-referencing/src/test/java/org/apache/sis/referencing/geoapi/ParameterizedTransformTest.java
delete mode 100644 core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/AbstractSingleOperationTest.java
create mode 100644 core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/builder/LinearizerTest.java
create mode 100644 core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/projection/AzimuthalEquidistantTest.java
create mode 100644 core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/projection/CassiniSoldnerTest.java
create mode 100644 core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/projection/ModifiedAzimuthalEquidistantTest.java
create mode 100644 core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/projection/doc-files/TransverseMercatorErrors.png
create mode 100644 core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/transform/WraparoundTransformTest.java
create mode 100644 core/sis-referencing/src/test/resources/org/apache/sis/io/wkt/ExtraCRS.txt
create mode 100644 core/sis-referencing/src/test/resources/org/apache/sis/io/wkt/Malformed.txt
create mode 100644 core/sis-utility/src/main/java/org/apache/sis/internal/system/CommonExecutor.java
create mode 100644 core/sis-utility/src/main/java/org/apache/sis/internal/util/PropertyFormat.java
create mode 100644 core/sis-utility/src/main/java/org/apache/sis/measure/QuantityFormat.java
create mode 100644 ide-project/NetBeans/nbproject/build-impl.xml~
create mode 100644 profiles/sis-japan-profile/src/main/java/org/apache/sis/internal/earth/netcdf/FactoryForUCAR.java
create mode 100644 profiles/sis-japan-profile/src/main/resources/META-INF/services/ucar.nc2.dataset.spi.CoordSystemBuilderFactory
create mode 100644 storage/sis-earth-observation/src/main/java/org/apache/sis/storage/earthobservation/LandsatAggregate.java
create mode 100644 storage/sis-earth-observation/src/main/java/org/apache/sis/storage/earthobservation/LandsatBand.java
create mode 100644 storage/sis-earth-observation/src/main/java/org/apache/sis/storage/earthobservation/LandsatBandGroup.java
create mode 100644 storage/sis-earth-observation/src/main/java/org/apache/sis/storage/earthobservation/LandsatResource.java
create mode 100644 storage/sis-geotiff/src/main/java/org/apache/sis/internal/geotiff/Compression.java
create mode 100644 storage/sis-geotiff/src/main/java/org/apache/sis/internal/geotiff/Predictor.java
create mode 100644 storage/sis-geotiff/src/main/java/org/apache/sis/internal/geotiff/SchemaModifier.java
create mode 100644 storage/sis-geotiff/src/main/java/org/apache/sis/internal/storage/inflater/CCITTRLE.java
create mode 100644 storage/sis-geotiff/src/main/java/org/apache/sis/internal/storage/inflater/CompressionChannel.java
create mode 100644 storage/sis-geotiff/src/main/java/org/apache/sis/internal/storage/inflater/CopyFromBytes.java
create mode 100644 storage/sis-geotiff/src/main/java/org/apache/sis/internal/storage/inflater/HorizontalPredictor.java
create mode 100644 storage/sis-geotiff/src/main/java/org/apache/sis/internal/storage/inflater/Inflater.java
create mode 100644 storage/sis-geotiff/src/main/java/org/apache/sis/internal/storage/inflater/LZW.java
create mode 100644 storage/sis-geotiff/src/main/java/org/apache/sis/internal/storage/inflater/PackBits.java
create mode 100644 storage/sis-geotiff/src/main/java/org/apache/sis/internal/storage/inflater/PixelChannel.java
create mode 100644 storage/sis-geotiff/src/main/java/org/apache/sis/internal/storage/inflater/PredictorChannel.java
create mode 100644 storage/sis-geotiff/src/main/java/org/apache/sis/internal/storage/inflater/ZIP.java
create mode 100644 storage/sis-geotiff/src/main/java/org/apache/sis/internal/storage/inflater/package-info.java
create mode 100644 storage/sis-geotiff/src/main/java/org/apache/sis/storage/geotiff/CompressedSubset.java
delete mode 100644 storage/sis-geotiff/src/main/java/org/apache/sis/storage/geotiff/Compression.java
create mode 100644 storage/sis-geotiff/src/main/java/org/apache/sis/storage/geotiff/DataCube.java
create mode 100644 storage/sis-geotiff/src/main/java/org/apache/sis/storage/geotiff/DataSubset.java
create mode 100644 storage/sis-geotiff/src/main/java/org/apache/sis/storage/geotiff/ReversedBitsChannel.java
create mode 100644 storage/sis-geotiff/src/test/java/org/apache/sis/internal/geotiff/CompressionTest.java
create mode 100644 storage/sis-geotiff/src/test/java/org/apache/sis/internal/storage/inflater/CCITTRLETest.java
create mode 100644 storage/sis-geotiff/src/test/java/org/apache/sis/internal/storage/inflater/InflaterTest.java
delete mode 100644 storage/sis-geotiff/src/test/java/org/apache/sis/storage/geotiff/CompressionTest.java
create mode 100644 storage/sis-geotiff/src/test/java/org/apache/sis/storage/geotiff/SelfConsistencyTest.java
create mode 100644 storage/sis-netcdf/src/main/java/org/apache/sis/internal/netcdf/AxisType.java
create mode 100644 storage/sis-netcdf/src/main/java/org/apache/sis/internal/netcdf/FeatureSet.java
create mode 100644 storage/sis-netcdf/src/main/java/org/apache/sis/internal/netcdf/GridAdjustment.java
create mode 100644 storage/sis-netcdf/src/main/java/org/apache/sis/internal/netcdf/GridCacheValue.java
create mode 100644 storage/sis-netcdf/src/main/java/org/apache/sis/internal/netcdf/HYCOM.java
delete mode 100644 storage/sis-netcdf/src/main/java/org/apache/sis/internal/netcdf/SatelliteGroundTrack.java
delete mode 100644 storage/sis-netcdf/src/main/java/org/apache/sis/internal/netcdf/impl/FeaturesInfo.java
delete mode 100644 storage/sis-netcdf/src/main/java/org/apache/sis/internal/netcdf/impl/HYCOM.java
delete mode 100644 storage/sis-netcdf/src/main/java/org/apache/sis/internal/netcdf/ucar/CSBuilderFallback.java
create mode 100644 storage/sis-netcdf/src/test/java/org/apache/sis/internal/netcdf/FeatureSetTest.java
delete mode 100644 storage/sis-netcdf/src/test/java/org/apache/sis/internal/netcdf/SatelliteGroundTrackTest.java
create mode 100644 storage/sis-netcdf/src/test/java/org/apache/sis/internal/netcdf/impl/FeatureSetTest.java
create mode 100644 storage/sis-netcdf/src/test/java/org/apache/sis/storage/netcdf/SelfConsistencyTest.java
create mode 100644 storage/sis-shapefile/src/main/java/org/apache/sis/storage/shapefile/cpg/CpgFiles.java
create mode 100644 storage/sis-sqlstore/src/main/java/org/apache/sis/internal/sql/feature/Column.java
create mode 100644 storage/sis-sqlstore/src/main/java/org/apache/sis/internal/sql/feature/EWKBReader.java
create mode 100644 storage/sis-sqlstore/src/main/java/org/apache/sis/internal/sql/feature/FeatureAdapter.java
create mode 100644 storage/sis-sqlstore/src/main/java/org/apache/sis/internal/sql/feature/FeatureIterator.java
create mode 100644 storage/sis-sqlstore/src/main/java/org/apache/sis/internal/sql/feature/FeatureStream.java
delete mode 100644 storage/sis-sqlstore/src/main/java/org/apache/sis/internal/sql/feature/Features.java
create mode 100644 storage/sis-sqlstore/src/main/java/org/apache/sis/internal/sql/feature/InfoStatements.java
create mode 100644 storage/sis-sqlstore/src/main/java/org/apache/sis/internal/sql/feature/PrimaryKey.java
create mode 100644 storage/sis-sqlstore/src/main/java/org/apache/sis/internal/sql/feature/SchemaModifier.java
create mode 100644 storage/sis-sqlstore/src/main/java/org/apache/sis/internal/sql/feature/SelectionClause.java
create mode 100644 storage/sis-sqlstore/src/main/java/org/apache/sis/internal/sql/feature/SelectionClauseWriter.java
delete mode 100644 storage/sis-sqlstore/src/main/java/org/apache/sis/internal/sql/feature/SpatialFunctions.java
create mode 100644 storage/sis-sqlstore/src/main/java/org/apache/sis/internal/sql/feature/TableAnalyzer.java
create mode 100644 storage/sis-sqlstore/src/main/java/org/apache/sis/internal/sql/feature/ValueGetter.java
create mode 100644 storage/sis-sqlstore/src/main/java/org/apache/sis/internal/sql/postgis/ExtendedClauseWriter.java
create mode 100644 storage/sis-sqlstore/src/main/java/org/apache/sis/internal/sql/postgis/ExtendedInfo.java
create mode 100644 storage/sis-sqlstore/src/main/java/org/apache/sis/internal/sql/postgis/Postgres.java
create mode 100644 storage/sis-sqlstore/src/main/java/org/apache/sis/internal/sql/postgis/package-info.java
create mode 100644 storage/sis-sqlstore/src/main/java/org/apache/sis/internal/stream/BaseStreamWrapper.java
create mode 100644 storage/sis-sqlstore/src/main/java/org/apache/sis/internal/stream/DeferredStream.java
create mode 100644 storage/sis-sqlstore/src/main/java/org/apache/sis/internal/stream/DoubleStreamWrapper.java
create mode 100644 storage/sis-sqlstore/src/main/java/org/apache/sis/internal/stream/PaginedDoubleStream.java
create mode 100644 storage/sis-sqlstore/src/main/java/org/apache/sis/internal/stream/PaginedStream.java
create mode 100644 storage/sis-sqlstore/src/main/java/org/apache/sis/internal/stream/StreamWrapper.java
create mode 100644 storage/sis-sqlstore/src/main/java/org/apache/sis/internal/stream/package-info.java
create mode 100644 storage/sis-sqlstore/src/test/java/org/apache/sis/internal/sql/feature/EWKBTest.java
create mode 100644 storage/sis-sqlstore/src/test/java/org/apache/sis/internal/sql/feature/SelectionClauseWriterTest.java
create mode 100644 storage/sis-sqlstore/src/test/java/org/apache/sis/internal/sql/postgis/PostgresTest.java
create mode 100644 storage/sis-sqlstore/src/test/resources/org/apache/sis/internal/sql/feature/hexa_ewkb_4326.csv
create mode 100644 storage/sis-sqlstore/src/test/resources/org/apache/sis/internal/sql/feature/hexa_ewkb_4326.sql
delete mode 100644 storage/sis-storage/src/main/java/org/apache/sis/index/tree/LatLonPointRadius.java
delete mode 100644 storage/sis-storage/src/main/java/org/apache/sis/index/tree/NodeType.java
delete mode 100644 storage/sis-storage/src/main/java/org/apache/sis/index/tree/QuadTree.java
delete mode 100644 storage/sis-storage/src/main/java/org/apache/sis/index/tree/QuadTreeData.java
delete mode 100644 storage/sis-storage/src/main/java/org/apache/sis/index/tree/QuadTreeNode.java
delete mode 100644 storage/sis-storage/src/main/java/org/apache/sis/index/tree/QuadTreeWriter.java
delete mode 100644 storage/sis-storage/src/main/java/org/apache/sis/index/tree/Quadrant.java
delete mode 100644 storage/sis-storage/src/main/java/org/apache/sis/index/tree/package-info.java
create mode 100644 storage/sis-storage/src/main/java/org/apache/sis/internal/storage/GridResourceWrapper.java
create mode 100644 storage/sis-storage/src/main/java/org/apache/sis/internal/storage/MemoryGridResource.java
create mode 100644 storage/sis-storage/src/main/java/org/apache/sis/internal/storage/RasterLoadingStrategy.java
create mode 100644 storage/sis-storage/src/main/java/org/apache/sis/internal/storage/TiledGridCoverage.java
create mode 100644 storage/sis-storage/src/main/java/org/apache/sis/internal/storage/TiledGridResource.java
create mode 100644 storage/sis-storage/src/main/java/org/apache/sis/internal/storage/csv/MovingFeatureBuilder.java
delete mode 100644 storage/sis-storage/src/main/java/org/apache/sis/internal/storage/query/FeatureSubset.java
delete mode 100644 storage/sis-storage/src/main/java/org/apache/sis/internal/storage/query/SimpleQuery.java
delete mode 100644 storage/sis-storage/src/main/java/org/apache/sis/internal/storage/query/SortByComparator.java
delete mode 100644 storage/sis-storage/src/main/java/org/apache/sis/internal/storage/query/package-info.java
create mode 100644 storage/sis-storage/src/main/java/org/apache/sis/storage/CoverageQuery.java
create mode 100644 storage/sis-storage/src/main/java/org/apache/sis/storage/CoverageSubset.java
create mode 100644 storage/sis-storage/src/main/java/org/apache/sis/storage/FeatureQuery.java
create mode 100644 storage/sis-storage/src/main/java/org/apache/sis/storage/FeatureSubset.java
create mode 100644 storage/sis-storage/src/main/java/org/apache/sis/storage/UnsupportedEncodingException.java
delete mode 100644 storage/sis-storage/src/test/java/org/apache/sis/index/tree/TestQuadTreeNode.java
create mode 100644 storage/sis-storage/src/test/java/org/apache/sis/internal/storage/MemoryGridResourceTest.java
create mode 100644 storage/sis-storage/src/test/java/org/apache/sis/internal/storage/StoreUtilitiesTest.java
delete mode 100644 storage/sis-storage/src/test/java/org/apache/sis/internal/storage/query/SimpleQueryTest.java
create mode 100644 storage/sis-storage/src/test/java/org/apache/sis/storage/CoverageQueryTest.java
create mode 100644 storage/sis-storage/src/test/java/org/apache/sis/storage/FeatureQueryTest.java
create mode 100644 storage/sis-storage/src/test/java/org/apache/sis/storage/GridResourceMock.java
create mode 100644 storage/sis-storage/src/test/java/org/apache/sis/test/storage/CoverageReadConsistency.java
create mode 100644 storage/sis-storage/src/test/java/org/apache/sis/test/storage/SubsampledImage.java
create mode 100644 storage/sis-storage/src/test/java/org/apache/sis/test/storage/package-info.java
[sis] 01/01: Merge branch 'geoapi-4.0' into geoapi-3.1.
Posted by de...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
desruisseaux pushed a commit to branch geoapi-3.1
in repository https://gitbox.apache.org/repos/asf/sis.git
commit 152b383de9265bf5dc6906a5c8621640d66979bf
Merge: 1105c74 04c2145
Author: Martin Desruisseaux <ma...@geomatys.com>
AuthorDate: Fri Sep 10 15:51:32 2021 +0200
Merge branch 'geoapi-4.0' into geoapi-3.1.
NOTICE | 23 +-
application/pom.xml | 5 +-
application/sis-console/pom.xml | 2 +-
application/sis-javafx/doc/readme.txt | 19 +
application/sis-javafx/pom.xml | 190 +-
application/sis-javafx/src/main/artifact/LICENSE | 1 +
application/sis-javafx/src/main/artifact/NOTICE | 1 +
application/sis-javafx/src/main/artifact/README | 86 +
application/sis-javafx/src/main/artifact/bin/sisfx | 45 +
.../sis-javafx/src/main/artifact/bin/sisfx.bat | 36 +
.../src/main/artifact/conf/logging.properties | 67 +
.../sis-javafx/src/main/artifact/conf/setenv.bat | 2 +
.../sis-javafx/src/main/artifact/conf/setenv.sh | 2 +
.../sis-javafx/src/main/artifact/data/README | 1 +
.../sis-javafx/src/main/artifact/lib/README | 8 +
.../sis-javafx/src/main/artifact/lib/logo.jpg | Bin 0 -> 44981 bytes
.../sis-javafx/src/main/artifact/log/README | 3 +
.../main/java/org/apache/sis/gui/AboutDialog.java | 71 +
.../main/java/org/apache/sis/gui/DataViewer.java | 308 +++
.../src/main/java/org/apache/sis/gui/Main.java | 204 --
.../main/java/org/apache/sis/gui/RecentFiles.java | 154 ++
.../src/main/java/org/apache/sis/gui/Widget.java | 57 +
.../apache/sis/gui/coverage/BandRangeTable.java | 161 ++
.../sis/gui/coverage/BandSelectionListener.java | 67 +
.../org/apache/sis/gui/coverage/CellFormat.java | 338 ++++
.../java/org/apache/sis/gui/coverage/Controls.java | 136 ++
.../apache/sis/gui/coverage/CoverageCanvas.java | 963 +++++++++
.../apache/sis/gui/coverage/CoverageControls.java | 299 +++
.../apache/sis/gui/coverage/CoverageExplorer.java | 410 ++++
.../apache/sis/gui/coverage/CoverageStyling.java | 205 ++
.../java/org/apache/sis/gui/coverage/GridCell.java | 73 +
.../org/apache/sis/gui/coverage/GridControls.java | 162 ++
.../org/apache/sis/gui/coverage/GridError.java | 130 ++
.../java/org/apache/sis/gui/coverage/GridRow.java | 113 ++
.../org/apache/sis/gui/coverage/GridRowSkin.java | 138 ++
.../java/org/apache/sis/gui/coverage/GridTile.java | 194 ++
.../org/apache/sis/gui/coverage/GridTileCache.java | 56 +
.../java/org/apache/sis/gui/coverage/GridView.java | 651 ++++++
.../org/apache/sis/gui/coverage/GridViewSkin.java | 605 ++++++
.../sis/gui/coverage/ImagePropertyExplorer.java | 826 ++++++++
.../org/apache/sis/gui/coverage/ImageRequest.java | 342 ++++
.../apache/sis/gui/coverage/IsolineRenderer.java | 498 +++++
.../org/apache/sis/gui/coverage/RenderingData.java | 621 ++++++
.../org/apache/sis/gui/coverage/Stretching.java | 79 +
.../org/apache/sis/gui/coverage/package-info.java | 26 +
.../org/apache/sis/gui/dataset/CopyAction.java | 137 ++
.../org/apache/sis/gui/dataset/DataWindow.java | 118 ++
.../org/apache/sis/gui/dataset/ExpandableList.java | 425 ++++
.../apache/sis/gui/dataset/ExpandedFeature.java | 222 ++
.../org/apache/sis/gui/dataset/FeatureList.java | 340 ++++
.../org/apache/sis/gui/dataset/FeatureLoader.java | 343 ++++
.../org/apache/sis/gui/dataset/FeatureTable.java | 559 +++--
.../java/org/apache/sis/gui/dataset/LoadEvent.java | 66 +
.../java/org/apache/sis/gui/dataset/LogViewer.java | 537 +++++
.../apache/sis/gui/dataset/ResourceExplorer.java | 570 ++++++
.../org/apache/sis/gui/dataset/ResourceTree.java | 881 ++++++--
.../org/apache/sis/gui/dataset/SelectedData.java | 122 ++
.../org/apache/sis/gui/dataset/WindowManager.java | 203 ++
.../org/apache/sis/gui/dataset/package-info.java | 31 +
.../java/org/apache/sis/gui/map/MapCanvas.java | 1205 +++++++++++
.../java/org/apache/sis/gui/map/MapCanvasAWT.java | 559 +++++
.../main/java/org/apache/sis/gui/map/MapMenu.java | 217 ++
.../org/apache/sis/gui/map/OperationFinder.java | 243 +++
.../java/org/apache/sis/gui/map/StatusBar.java | 1309 ++++++++++++
.../org/apache/sis/gui/map/ValuesUnderCursor.java | 622 ++++++
.../java/org/apache/sis/gui/map/package-info.java | 29 +
.../sis/gui/metadata/IdentificationInfo.java | 501 +++++
.../org/apache/sis/gui/metadata/MetadataNode.java | 228 ---
.../apache/sis/gui/metadata/MetadataOverview.java | 430 ----
.../apache/sis/gui/metadata/MetadataSummary.java | 399 ++++
.../org/apache/sis/gui/metadata/MetadataTree.java | 379 ++++
.../sis/gui/metadata/RepresentationInfo.java | 133 ++
.../org/apache/sis/gui/metadata/ResourceView.java | 399 ----
.../java/org/apache/sis/gui/metadata/Section.java | 292 +++
.../sis/gui/metadata/StandardMetadataTree.java | 242 +++
.../org/apache/sis/gui/metadata/package-info.java | 30 +
.../main/java/org/apache/sis/gui/package-info.java | 28 +
.../apache/sis/gui/referencing/AuthorityCodes.java | 525 +++++
.../org/apache/sis/gui/referencing/CRSButton.java | 79 -
.../org/apache/sis/gui/referencing/CRSChooser.java | 438 +++-
.../org/apache/sis/gui/referencing/CRSTable.java | 349 ----
.../java/org/apache/sis/gui/referencing/Code.java | 94 +-
.../org/apache/sis/gui/referencing/CodeFilter.java | 108 +
.../org/apache/sis/gui/referencing/MenuSync.java | 277 +++
.../sis/gui/referencing/ObjectStringConverter.java | 110 +
.../gui/referencing/PositionableProjection.java | 256 +++
.../gui/referencing/RecentReferenceSystems.java | 894 ++++++++
.../java/org/apache/sis/gui/referencing/Utils.java | 104 +
.../org/apache/sis/gui/referencing/WKTPane.java | 189 +-
.../apache/sis/gui/referencing/package-info.java | 27 +
.../apache/sis/internal/gui/BackgroundThreads.java | 150 ++
.../org/apache/sis/internal/gui/ColorName.java | 87 +
.../org/apache/sis/internal/gui/DataFormats.java | 47 +
.../apache/sis/internal/gui/ExceptionReporter.java | 338 ++++
.../org/apache/sis/internal/gui/FXUtilities.java | 91 -
.../org/apache/sis/internal/gui/FontGlyphs.java | 143 --
.../org/apache/sis/internal/gui/GUIUtilities.java | 335 +++
.../sis/internal/gui/IdentityValueFactory.java | 75 +
.../apache/sis/internal/gui/ImageConverter.java | 193 ++
.../sis/internal/gui/ImmutableObjectProperty.java | 115 ++
.../org/apache/sis/internal/gui/LogHandler.java | 261 +++
.../sis/internal/gui/NonNullObjectProperty.java | 55 +
.../org/apache/sis/internal/gui/PropertyView.java | 361 ++++
.../org/apache/sis/internal/gui/RecentChoices.java | 242 +++
.../apache/sis/internal/gui/ResourceLoader.java | 253 +++
.../org/apache/sis/internal/gui/Resources.java | 310 ++-
.../apache/sis/internal/gui/Resources.properties | 61 +-
.../sis/internal/gui/Resources_fr.properties | 61 +-
.../java/org/apache/sis/internal/gui/Styles.java | 217 ++
.../org/apache/sis/internal/gui/ToolbarButton.java | 122 ++
.../apache/sis/internal/gui/control/ColorCell.java | 457 +++++
.../internal/gui/control/ColorColumnHandler.java | 148 ++
.../apache/sis/internal/gui/control/ColorRamp.java | 234 +++
.../sis/internal/gui/control/FormatApplicator.java | 253 +++
.../sis/internal/gui/control/FormatTableCell.java | 261 +++
.../sis/internal/gui/control/ValueColorMapper.java | 558 +++++
.../sis/internal/gui/control/package-info.java | 31 +
.../org/apache/sis/internal/gui/package-info.java | 5 +-
.../org/apache/sis/internal/setup/FXFinder.java | 433 ++++
.../org/apache/sis/internal/setup/Inflater.java | 175 ++
.../sis/internal/setup/LoggingConfiguration.java | 94 +
.../java/org/apache/sis/internal/setup/Wizard.java | 757 +++++++
.../org/apache/sis/internal/setup/WizardPage.java | 114 ++
.../apache/sis/internal/setup/package-info.java | 29 +
.../resources/org/apache/sis/gui/SIS_128px.png | Bin 0 -> 26619 bytes
.../main/resources/org/apache/sis/gui/SIS_64px.png | Bin 0 -> 8906 bytes
.../org/apache/sis/gui/pseudo-classes.css | 6 +
.../org/apache/sis/gui/referencing/CRSChooser.fxml | 30 -
.../org/apache/sis/gui/referencing/proj_conic.png | Bin 591 -> 0 bytes
.../org/apache/sis/gui/referencing/proj_geo.png | Bin 834 -> 0 bytes
.../org/apache/sis/gui/referencing/proj_square.png | Bin 519 -> 0 bytes
.../org/apache/sis/gui/referencing/proj_stereo.png | Bin 959 -> 0 bytes
.../org/apache/sis/gui/referencing/proj_utm.png | Bin 681 -> 0 bytes
.../apache/sis/gui/coverage/CoverageCanvasApp.java | 129 ++
.../sis/gui/coverage/CoverageStylingApp.java | 85 +
.../org/apache/sis/gui/coverage/GridViewApp.java | 105 +
.../apache/sis/gui/referencing/CRSChooserApp.java | 92 +
.../apache/sis/internal/gui/GUIUtilitiesTest.java | 72 +
.../internal/gui/control/ValueColorMapperApp.java | 84 +
.../sis/test/suite/ApplicationTestSuite.java | 45 +
application/sis-openoffice/pom.xml | 2 +-
.../sis-openoffice/src/main/unopkg/license.txt | 2 +-
application/sis-webapp/pom.xml | 77 -
.../java/org/apache/sis/index/tree/GeoRSSData.java | 177 --
.../org/apache/sis/index/tree/QuadTreeReader.java | 163 --
.../org/apache/sis/services/LocationServlet.java | 479 -----
.../main/java/org/apache/sis/services/Servlet.java | 26 +
.../java/org/apache/sis/services/package-info.java | 21 +
.../src/main/resources/sis-location-config.xml | 28 -
.../src/main/webapp/META-INF/context.xml | 9 +-
.../sis-webapp/src/main/webapp/WEB-INF/web.xml | 20 +-
application/sis-webapp/src/main/webapp/demo.jsp | 321 ---
.../src/main/webapp/images/sis_logo_small.png | Bin 35560 -> 0 bytes
core/pom.xml | 12 +-
core/sis-build-helper/pom.xml | 4 +-
.../apache/sis/internal/book/CodeColorizer.java | 6 +-
.../util/resources/IndexedResourceCompiler.java | 8 +-
core/sis-cql/pom.xml | 2 +-
.../src/main/java/org/apache/sis/cql/CQL.java | 607 +++---
.../org/apache/sis/cql/FilterToCQLVisitor.java | 846 +++-----
.../test/java/org/apache/sis/cql/CQLTestCase.java | 22 +-
.../test/java/org/apache/sis/cql/CQLTestSuite.java | 4 +-
.../org/apache/sis/cql/ExpressionReadingTest.java | 127 +-
.../org/apache/sis/cql/ExpressionWritingTest.java | 71 +-
.../java/org/apache/sis/cql/FilterReadingTest.java | 768 ++-----
.../java/org/apache/sis/cql/FilterWritingTest.java | 125 +-
core/sis-feature/pom.xml | 8 +-
.../org/apache/sis/coverage/BandedCoverage.java | 149 ++
.../java/org/apache/sis/coverage/Category.java | 28 +
.../java/org/apache/sis/coverage/CategoryList.java | 197 +-
.../org/apache/sis/coverage/ConvertedCategory.java | 14 +-
.../org/apache/sis/coverage/SampleDimension.java | 119 +-
.../org/apache/sis/coverage/SampleRangeFormat.java | 2 +-
.../main/java/org/apache/sis/coverage/ToNaN.java | 2 +-
.../sis/coverage/grid/BufferedGridCoverage.java | 317 +++
.../sis/coverage/grid/ConvertedGridCoverage.java | 296 +++
.../coverage/grid/CoordinateOperationFinder.java | 754 +++++++
.../apache/sis/coverage/grid/DimensionReducer.java | 108 +
.../sis/coverage/grid/DisjointExtentException.java | 18 +-
.../apache/sis/coverage/grid/DomainLinearizer.java | 223 ++
.../coverage/grid/FractionalGridCoordinates.java | 501 +++++
.../apache/sis/coverage/grid/GridClippingMode.java | 51 +
.../sis/coverage/grid/GridCoordinatesView.java | 23 +-
.../org/apache/sis/coverage/grid/GridCoverage.java | 188 +-
.../apache/sis/coverage/grid/GridCoverage2D.java | 673 +++++++
.../sis/coverage/grid/GridCoverageBuilder.java | 566 ++++++
.../sis/coverage/grid/GridCoverageProcessor.java | 267 +++
.../apache/sis/coverage/grid/GridDerivation.java | 976 ++++++---
.../apache/sis/coverage/grid/GridEvaluator.java | 276 +++
.../org/apache/sis/coverage/grid/GridExtent.java | 597 ++++--
.../apache/sis/coverage/grid/GridExtentCRS.java | 191 ++
.../org/apache/sis/coverage/grid/GridGeometry.java | 583 ++++--
.../apache/sis/coverage/grid/GridOrientation.java | 312 +++
.../apache/sis/coverage/grid/GridRoundingMode.java | 27 +-
.../grid/IllegalGridGeometryException.java | 13 +-
.../apache/sis/coverage/grid/ImageRenderer.java | 464 ++++-
.../sis/coverage/grid/ResampledGridCoverage.java | 666 ++++++
.../apache/sis/coverage/grid/ReshapedImage.java | 303 +++
.../apache/sis/coverage/grid/SliceGeometry.java | 372 ++++
.../org/apache/sis/coverage/grid/package-info.java | 24 +-
.../org/apache/sis/feature/AbstractAttribute.java | 3 +-
.../org/apache/sis/feature/AbstractFeature.java | 39 +-
.../apache/sis/feature/AbstractIdentifiedType.java | 2 +-
.../apache/sis/feature/DefaultAttributeType.java | 2 +-
.../java/org/apache/sis/feature/DenseFeature.java | 25 +-
.../org/apache/sis/feature/EnvelopeOperation.java | 220 +-
.../java/org/apache/sis/feature/FeatureFormat.java | 10 +-
.../sis/feature/FeatureOperationException.java | 75 +
.../org/apache/sis/feature/FeatureOperations.java | 21 +-
.../main/java/org/apache/sis/feature/Features.java | 69 +-
.../sis/feature/InvalidFeatureException.java | 6 +-
.../java/org/apache/sis/feature/LinkOperation.java | 9 +-
.../apache/sis/feature/SingletonAssociation.java | 2 +-
.../org/apache/sis/feature/SingletonAttribute.java | 2 +-
.../java/org/apache/sis/feature/SparseFeature.java | 27 +-
.../apache/sis/feature/StringJoinOperation.java | 2 +-
.../sis/feature/builder/AttributeTypeBuilder.java | 31 +-
.../sis/feature/builder/FeatureTypeBuilder.java | 6 +-
.../apache/sis/feature/builder/package-info.java | 3 +-
.../java/org/apache/sis/feature/package-info.java | 2 +-
.../org/apache/sis/filter/ArithmeticFunction.java | 228 ++-
.../java/org/apache/sis/filter/BinaryFunction.java | 159 +-
.../apache/sis/filter/BinaryGeometryFilter.java | 251 +++
.../org/apache/sis/filter/BinarySpatialFilter.java | 166 ++
.../java/org/apache/sis/filter/Capabilities.java | 154 ++
.../org/apache/sis/filter/ComparisonFilter.java | 827 ++++++++
.../org/apache/sis/filter/ComparisonFunction.java | 718 -------
.../org/apache/sis/filter/ConvertFunction.java | 197 ++
.../apache/sis/filter/DefaultFilterFactory.java | 1331 ++++++------
.../org/apache/sis/filter/DefaultObjectId.java | 111 -
.../java/org/apache/sis/filter/DefaultSortBy.java | 102 -
.../org/apache/sis/filter/DefaultSortProperty.java | 166 ++
.../java/org/apache/sis/filter/DistanceFilter.java | 183 ++
.../org/apache/sis/filter/FilterByIdentifier.java | 136 --
.../java/org/apache/sis/filter/FilterNode.java | 90 +
.../org/apache/sis/filter/IdentifierFilter.java | 100 +
.../sis/filter/InvalidExpressionException.java | 92 -
.../java/org/apache/sis/filter/LeafExpression.java | 236 +--
.../java/org/apache/sis/filter/LikeFilter.java | 237 +++
.../java/org/apache/sis/filter/LogicalFilter.java | 319 +++
.../org/apache/sis/filter/LogicalFunction.java | 158 --
.../java/org/apache/sis/filter/NamedFunction.java | 210 --
.../src/main/java/org/apache/sis/filter/Node.java | 174 --
.../java/org/apache/sis/filter/Optimization.java | 490 +++++
.../java/org/apache/sis/filter/PropertyValue.java | 328 +++
.../src/main/java/org/apache/sis/filter/SQLMM.java | 91 -
.../main/java/org/apache/sis/filter/ST_Buffer.java | 99 -
.../java/org/apache/sis/filter/ST_Centroid.java | 96 -
.../java/org/apache/sis/filter/ST_Transform.java | 203 --
.../java/org/apache/sis/filter/TemporalFilter.java | 799 ++++++++
.../org/apache/sis/filter/TemporalFunction.java | 722 -------
.../java/org/apache/sis/filter/UnaryFunction.java | 147 +-
.../java/org/apache/sis/filter/package-info.java | 38 +-
.../java/org/apache/sis/image/AnnotatedImage.java | 539 +++++
.../java/org/apache/sis/image/BandSelectImage.java | 171 ++
.../java/org/apache/sis/image/BandedIterator.java | 444 ++++
.../apache/sis/image/BandedSampleConverter.java | 473 +++++
.../java/org/apache/sis/image/ComputedImage.java | 747 +++++++
.../java/org/apache/sis/image/ComputedTiles.java | 361 ++++
.../main/java/org/apache/sis/image/DataType.java | 257 +++
.../java/org/apache/sis/image/DefaultIterator.java | 655 ------
.../java/org/apache/sis/image/ErrorAction.java | 83 +
.../java/org/apache/sis/image/ErrorHandler.java | 216 ++
.../java/org/apache/sis/image/ImageAdapter.java | 174 ++
.../java/org/apache/sis/image/ImageCombiner.java | 278 +++
.../java/org/apache/sis/image/ImageProcessor.java | 1177 +++++++++++
.../java/org/apache/sis/image/Interpolation.java | 177 ++
.../org/apache/sis/image/LanczosInterpolation.java | 113 ++
.../java/org/apache/sis/image/LinearIterator.java | 124 --
.../main/java/org/apache/sis/image/MaskImage.java | 121 ++
.../java/org/apache/sis/image/PixelIterator.java | 942 ++++++++-
.../java/org/apache/sis/image/PlanarImage.java | 623 ++++++
.../sis/image/PositionalConsistencyImage.java | 144 ++
.../java/org/apache/sis/image/PrefetchedImage.java | 361 ++++
.../java/org/apache/sis/image/RecoloredImage.java | 301 +++
.../java/org/apache/sis/image/ResampledImage.java | 940 +++++++++
.../java/org/apache/sis/image/ResamplingGrid.java | 589 ++++++
.../org/apache/sis/image/SourceAlignedImage.java | 149 ++
.../org/apache/sis/image/StatisticsCalculator.java | 171 ++
.../main/java/org/apache/sis/image/TileCache.java | 170 ++
.../java/org/apache/sis/image/TransferType.java | 14 +-
.../main/java/org/apache/sis/image/Transferer.java | 603 ++++++
.../java/org/apache/sis/image/Visualization.java | 351 ++++
.../apache/sis/image/WritablePixelIterator.java | 100 +-
.../java/org/apache/sis/image/package-info.java | 3 +-
.../org/apache/sis/index/tree/NodeIterator.java | 443 ++++
.../java/org/apache/sis/index/tree/PointTree.java | 533 +++++
.../org/apache/sis/index/tree/PointTreeNode.java | 268 +++
.../org/apache/sis/index/tree/QuadTreeNode.java | 131 ++
.../org/apache/sis/index/tree/package-info.java | 31 +
.../internal/coverage/BufferedGridCoverage.java | 164 --
.../sis/internal/coverage/ColorModelFactory.java | 531 -----
.../sis/internal/coverage/ColorModelPatch.java | 121 --
.../sis/internal/coverage/CompoundTransform.java | 216 ++
.../internal/coverage/CompoundTransformOf1D.java | 173 ++
.../internal/coverage/ConvertedGridCoverage.java | 497 -----
.../coverage/MultiBandsIndexColorModel.java | 236 ---
.../sis/internal/coverage/RasterFactory.java | 227 ---
.../sis/internal/coverage/RepeatedTransform.java | 161 ++
.../sis/internal/coverage/ScaledColorSpace.java | 171 --
.../internal/coverage/j2d/ColorModelFactory.java | 652 ++++++
.../sis/internal/coverage/j2d/ColorModelPatch.java | 121 ++
.../sis/internal/coverage/j2d/ColorModelType.java | 100 +
.../sis/internal/coverage/j2d/Colorizer.java | 517 +++++
.../sis/internal/coverage/j2d/ColorsForRange.java | 171 ++
.../internal/coverage/j2d/DeferredProperty.java | 129 ++
.../sis/internal/coverage/j2d/ImageLayout.java | 335 +++
.../sis/internal/coverage/j2d/ImageUtilities.java | 610 ++++++
.../coverage/j2d/MultiBandsIndexColorModel.java | 281 +++
.../sis/internal/coverage/j2d/RasterFactory.java | 289 +++
.../internal/coverage/j2d/SampleModelFactory.java | 295 +++
.../internal/coverage/j2d/ScaledColorModel.java | 158 ++
.../internal/coverage/j2d/ScaledColorSpace.java | 230 +++
.../internal/coverage/j2d/TileErrorHandler.java | 123 ++
.../sis/internal/coverage/j2d/TileOpExecutor.java | 955 +++++++++
.../sis/internal/coverage/j2d/TiledImage.java | 265 +++
.../internal/coverage/j2d/WritableTiledImage.java | 220 ++
.../sis/internal/coverage/j2d/WriteSupport.java | 101 +
.../sis/internal/coverage/j2d/package-info.java | 34 +
.../apache/sis/internal/coverage/package-info.java | 8 +-
.../sis/internal/feature/AbstractGeometry.java | 41 +
.../sis/internal/feature/AttributeConvention.java | 78 +-
.../org/apache/sis/internal/feature/DateList.java | 69 -
.../java/org/apache/sis/internal/feature/ESRI.java | 230 ---
.../sis/internal/feature/FeatureExpression.java | 45 +-
.../sis/internal/feature/FeatureUtilities.java | 33 +-
.../sis/internal/feature/FunctionRegister.java | 68 -
.../apache/sis/internal/feature/Geometries.java | 690 +++----
.../sis/internal/feature/GeometryFactories.java | 73 +
.../apache/sis/internal/feature/GeometryType.java | 160 ++
.../sis/internal/feature/GeometryWithCRS.java | 98 +
.../sis/internal/feature/GeometryWrapper.java | 604 +++++-
.../apache/sis/internal/feature/InstantList.java | 83 +
.../java/org/apache/sis/internal/feature/JTS.java | 363 ----
.../org/apache/sis/internal/feature/Java2D.java | 259 ---
.../apache/sis/internal/feature/MovingFeature.java | 317 ---
.../sis/internal/feature/MovingFeatures.java | 136 ++
.../org/apache/sis/internal/feature/Resources.java | 256 ++-
.../sis/internal/feature/Resources.properties | 24 +-
.../sis/internal/feature/Resources_fr.properties | 27 +-
.../internal/feature/SpatialOperationContext.java | 454 +++++
.../apache/sis/internal/feature/esri/Factory.java | 193 ++
.../apache/sis/internal/feature/esri/Wrapper.java | 273 +++
.../sis/internal/feature/esri/package-info.java | 35 +
.../sis/internal/feature/j2d/EmptyShape.java | 64 +
.../apache/sis/internal/feature/j2d/Factory.java | 268 +++
.../apache/sis/internal/feature/j2d/FlatShape.java | 129 ++
.../sis/internal/feature/j2d/MultiPolylines.java | 181 ++
.../sis/internal/feature/j2d/PathBuilder.java | 268 +++
.../sis/internal/feature/j2d/PointWrapper.java | 145 ++
.../apache/sis/internal/feature/j2d/Polygon.java | 39 +
.../apache/sis/internal/feature/j2d/Polyline.java | 307 +++
.../sis/internal/feature/j2d/ShapeProperties.java | 26 +-
.../apache/sis/internal/feature/j2d/Wrapper.java | 218 ++
.../sis/internal/feature/j2d/package-info.java | 5 +-
.../apache/sis/internal/feature/jts/Factory.java | 395 ++++
.../sis/internal/feature/jts/FilteringContext.java | 89 +
.../org/apache/sis/internal/feature/jts/JTS.java | 140 +-
.../apache/sis/internal/feature/jts/Wrapper.java | 695 +++++++
.../apache/sis/internal/feature/package-info.java | 3 +-
.../apache/sis/internal/filter/FunctionNames.java | 92 +
.../sis/internal/filter/FunctionRegister.java | 70 +
.../sis/internal/filter/GeometryConverter.java | 176 ++
.../java/org/apache/sis/internal/filter/Node.java | 292 +++
.../sis/internal/filter/SortByComparator.java | 206 ++
.../org/apache/sis/internal/filter/Visitor.java | 348 ++++
.../apache/sis/internal/filter/package-info.java | 27 +
.../internal/filter/sqlmm/FunctionWithSRID.java | 222 ++
.../internal/filter/sqlmm/GeometryConstructor.java | 141 ++
.../sis/internal/filter/sqlmm/GeometryParser.java | 132 ++
.../sis/internal/filter/sqlmm/OneGeometry.java | 154 ++
.../apache/sis/internal/filter/sqlmm/Registry.java | 136 ++
.../apache/sis/internal/filter/sqlmm/SQLMM.java | 869 ++++++++
.../sis/internal/filter/sqlmm/ST_FromBinary.java | 86 +
.../sis/internal/filter/sqlmm/ST_FromText.java | 82 +
.../apache/sis/internal/filter/sqlmm/ST_Point.java | 258 +++
.../sis/internal/filter/sqlmm/ST_Transform.java | 135 ++
.../sis/internal/filter/sqlmm/SpatialFunction.java | 228 +++
.../sis/internal/filter/sqlmm/TwoGeometries.java | 201 ++
.../sis/internal/filter/sqlmm/package-info.java | 38 +
.../internal/processing/image/CompoundFuture.java | 202 ++
.../internal/processing/image/IsolineTracer.java | 1260 ++++++++++++
.../sis/internal/processing/image/Isolines.java | 506 +++++
.../internal/processing/image/TiledProcess.java | 394 ++++
.../internal/processing/image/package-info.java | 32 +
.../org/apache/sis/coverage/CategoryListTest.java | 102 +-
.../apache/sis/coverage/SampleDimensionTest.java | 65 +-
.../coverage/grid/BufferedGridCoverageTest.java | 128 ++
.../coverage/grid/ConvertedGridCoverageTest.java | 82 +
.../grid/FractionalGridCoordinatesTest.java | 101 +
.../sis/coverage/grid/GridCoverage2DTest.java | 306 +++
.../sis/coverage/grid/GridCoverageBuilderTest.java | 226 +++
.../sis/coverage/grid/GridDerivationTest.java | 386 +++-
.../apache/sis/coverage/grid/GridExtentTest.java | 186 +-
.../apache/sis/coverage/grid/GridGeometryTest.java | 267 ++-
.../sis/coverage/grid/GridOrientationTest.java | 75 +
.../sis/coverage/grid/PixelTranslationTest.java | 14 +-
.../coverage/grid/ResampledGridCoverageTest.java | 697 +++++++
.../sis/coverage/grid/ReshapedImageTest.java | 198 ++
.../apache/sis/feature/AbstractFeatureTest.java | 10 +-
.../apache/sis/feature/EnvelopeOperationTest.java | 294 ++-
.../apache/sis/feature/FeatureOperationsTest.java | 177 ++
.../feature/builder/AttributeTypeBuilderTest.java | 37 +-
.../apache/sis/filter/ArithmeticFunctionTest.java | 32 +-
.../sis/filter/BinarySpatialFilterTestCase.java | 350 ++++
.../filter/BinarySpatialFilterUsingJTS_Test.java | 38 +
.../org/apache/sis/filter/CapabilitiesTest.java | 71 +
.../apache/sis/filter/ComparisonFilterTest.java | 181 ++
.../apache/sis/filter/ComparisonFunctionTest.java | 151 --
.../org/apache/sis/filter/DefaultObjectIdTest.java | 100 -
.../apache/sis/filter/FilterByIdentifierTest.java | 92 -
.../apache/sis/filter/IdentifierFilterTest.java | 111 +
.../org/apache/sis/filter/LeafExpressionTest.java | 116 +-
.../java/org/apache/sis/filter/LikeFilterTest.java | 83 +
.../org/apache/sis/filter/LogicalFilterTest.java | 232 +++
.../org/apache/sis/filter/LogicalFunctionTest.java | 146 --
.../java/org/apache/sis/filter/PeriodLiteral.java | 24 +-
.../test/java/org/apache/sis/filter/SQLMMTest.java | 200 --
.../org/apache/sis/filter/TemporalFilterTest.java | 350 ++++
.../apache/sis/filter/TemporalFunctionTest.java | 341 ----
.../org/apache/sis/filter/UnaryFunctionTest.java | 76 -
.../org/apache/sis/image/BandSelectImageTest.java | 186 ++
.../org/apache/sis/image/BandedIteratorTest.java | 79 +
.../sis/image/BandedSampleConverterTest.java | 154 ++
.../org/apache/sis/image/ComputedImageTest.java | 212 ++
.../java/org/apache/sis/image/DataTypeTest.java | 99 +
.../org/apache/sis/image/DefaultIteratorTest.java | 1247 ------------
.../org/apache/sis/image/ImageCombinerTest.java | 217 ++
.../org/apache/sis/image/ImageProcessorTest.java | 60 +
.../java/org/apache/sis/image/ImageTestCase.java | 2 +-
.../org/apache/sis/image/InterpolationTest.java | 178 ++
.../org/apache/sis/image/LinearIteratorTest.java | 42 +-
.../org/apache/sis/image/PixelIteratorTest.java | 1392 +++++++++++++
.../java/org/apache/sis/image/PlanarImageTest.java | 99 +
.../org/apache/sis/image/ResampledImageTest.java | 359 ++++
.../org/apache/sis/image/ResamplingGridTest.java | 221 ++
.../apache/sis/image/StatisticsCalculatorTest.java | 151 ++
.../java/org/apache/sis/image/TiledImageMock.java | 321 ++-
.../apache/sis/index/tree/PointTreeNodeTest.java | 113 ++
.../org/apache/sis/index/tree/PointTreeTest.java | 184 ++
.../coverage/BufferedGridCoverageTest.java | 117 --
.../internal/coverage/ScaledColorSpaceTest.java | 104 -
.../sis/internal/coverage/j2d/ColorizerTest.java | 149 ++
.../sis/internal/coverage/j2d/ImageLayoutTest.java | 44 +
.../internal/coverage/j2d/ImageUtilitiesTest.java | 233 +++
.../coverage/j2d/SampleModelFactoryTest.java | 148 ++
.../coverage/j2d/ScaledColorSpaceTest.java | 104 +
.../org/apache/sis/internal/feature/ESRITest.java | 78 -
.../sis/internal/feature/GeometriesTestCase.java | 154 +-
.../sis/internal/feature/GeometryTypeTest.java | 54 +
.../org/apache/sis/internal/feature/JTSTest.java | 88 -
.../apache/sis/internal/feature/Java2DTest.java | 60 -
.../sis/internal/feature/esri/FactoryTest.java | 79 +
.../sis/internal/feature/j2d/FactoryTest.java | 61 +
.../sis/internal/feature/j2d/FlatShapeTest.java | 129 ++
.../sis/internal/feature/jts/FactoryTest.java | 89 +
.../apache/sis/internal/feature/jts/JTSTest.java | 9 +-
.../sis/internal/filter/FunctionNamesTest.java | 149 ++
.../internal/filter/sqlmm/RegistryTestCase.java | 497 +++++
.../filter/sqlmm/RegistryUsingJTS_Test.java | 38 +
.../sis/internal/filter/sqlmm/SQLMMTest.java | 46 +
.../internal/processing/image/IsolinesTest.java | 375 ++++
.../java/org/apache/sis/test/FeatureAssert.java | 204 ++
.../apache/sis/test/feature/FeatureComparator.java | 458 +++++
.../org/apache/sis/test/feature/package-info.java | 30 +
.../test/java/org/apache/sis/test/package-info.txt | 3 +
.../apache/sis/test/suite/FeatureTestSuite.java | 68 +-
core/sis-metadata/pom.xml | 10 +-
.../apache/sis/internal/jaxb/cat/CodeListUID.java | 94 +-
.../apache/sis/internal/jaxb/cat/package-info.java | 2 +-
.../sis/internal/jaxb/gco/GO_CharacterString.java | 2 +-
.../internal/jaxb/gco/ObjectIdentification.html | 2 +-
.../sis/internal/jaxb/gco/ObjectReference.java | 2 +-
.../apache/sis/internal/jaxb/gco/PropertyType.java | 6 +-
.../sis/internal/jaxb/gml/CodeListAdapter.java | 35 +-
.../apache/sis/internal/jaxb/gml/CodeListUID.java | 59 -
.../org/apache/sis/internal/jaxb/gml/Measure.java | 12 +-
.../apache/sis/internal/jaxb/gml/package-info.java | 2 +-
.../jaxb/lan/LocalisedCharacterString.java | 10 +-
.../apache/sis/internal/metadata/AxisNames.java | 23 +-
.../apache/sis/internal/metadata/Identifiers.java | 14 +-
.../apache/sis/internal/metadata/NameMeaning.java | 4 +-
.../apache/sis/internal/metadata/Resources.java | 2 -
.../apache/sis/internal/metadata/sql/Dialect.java | 42 +-
.../sis/internal/metadata/sql/Initializer.java | 283 +--
.../sis/internal/metadata/sql/LocalDataSource.java | 465 +++++
.../sis/internal/metadata/sql/SQLBuilder.java | 157 +-
.../sis/internal/metadata/sql/ScriptRunner.java | 14 +-
.../apache/sis/internal/metadata/sql/Syntax.java | 84 +
.../sis/internal/metadata/sql/package-info.java | 3 +-
.../java/org/apache/sis/internal/xml/Schemas.java | 100 -
.../org/apache/sis/internal/xml/package-info.java | 2 +-
.../org/apache/sis/metadata/AbstractMetadata.java | 2 +-
.../org/apache/sis/metadata/MetadataCopier.java | 2 +-
.../org/apache/sis/metadata/MetadataFormat.java | 2 +-
.../org/apache/sis/metadata/MetadataStandard.java | 2 +-
.../org/apache/sis/metadata/MetadataVisitor.java | 35 +-
.../apache/sis/metadata/ModifiableMetadata.java | 75 +-
.../org/apache/sis/metadata/PropertyAccessor.java | 2 +-
.../apache/sis/metadata/PropertyComparator.java | 4 +-
.../java/org/apache/sis/metadata/SpecialCases.java | 12 +-
.../java/org/apache/sis/metadata/StateChanger.java | 27 +-
.../org/apache/sis/metadata/TreeNodeChildren.java | 5 +-
.../apache/sis/metadata/iso/DefaultMetadata.java | 58 +-
.../org/apache/sis/metadata/iso/ISOMetadata.java | 8 +-
.../sis/metadata/iso/acquisition/package-info.java | 2 +-
.../sis/metadata/iso/citation/Citations.java | 43 +-
.../iso/citation/DefaultResponsibleParty.java | 109 +-
.../sis/metadata/iso/citation/package-info.java | 2 +-
.../iso/constraint/DefaultReleasability.java | 30 +-
.../sis/metadata/iso/constraint/package-info.java | 2 +-
.../iso/content/DefaultFeatureTypeInfo.java | 2 +-
.../iso/content/DefaultSampleDimension.java | 21 +-
.../sis/metadata/iso/content/package-info.java | 2 +-
.../metadata/iso/distribution/package-info.java | 2 +-
.../iso/extent/DefaultGeographicBoundingBox.java | 24 +-
.../apache/sis/metadata/iso/extent/Extents.java | 221 +-
.../sis/metadata/iso/extent/package-info.java | 2 +-
.../metadata/iso/identification/package-info.java | 2 +-
.../sis/metadata/iso/lineage/package-info.java | 2 +-
.../sis/metadata/iso/maintenance/package-info.java | 2 +-
.../org/apache/sis/metadata/iso/package-info.java | 2 +-
.../sis/metadata/iso/quality/package-info.java | 2 +-
.../sis/metadata/iso/spatial/package-info.java | 2 +-
.../apache/sis/metadata/sql/MetadataSource.java | 18 +-
.../apache/sis/metadata/sql/MetadataWriter.java | 44 +-
.../apache/sis/util/iso/DefaultNameFactory.java | 15 +-
.../org/apache/sis/util/iso/DefaultRecord.java | 48 +-
.../apache/sis/util/iso/DefaultRecordSchema.java | 24 +-
.../org/apache/sis/util/iso/DefaultRecordType.java | 131 +-
.../org/apache/sis/util/iso/DefaultScopedName.java | 9 +-
.../main/java/org/apache/sis/util/iso/Names.java | 2 +
.../org/apache/sis/util/iso/RecordDefinition.java | 56 +-
.../java/org/apache/sis/util/iso/package-info.java | 2 +-
.../java/org/apache/sis/xml/IdentifiedObject.java | 2 +-
.../src/main/java/org/apache/sis/xml/Pooled.java | 8 +-
.../java/org/apache/sis/xml/TransformVersion.java | 1 +
.../src/main/java/org/apache/sis/xml/XML.java | 57 +-
.../org/apache/sis/metadata/sql/Citations.sql | 20 +-
.../internal/jaxb/cat/CodeListMarshallingTest.java | 19 +-
.../apache/sis/internal/jaxb/gml/MeasureTest.java | 24 +-
.../sis/internal/jaxb/lan/LanguageCodeTest.java | 8 +-
.../sis/metadata/ModifiableMetadataTest.java | 42 +-
.../apache/sis/metadata/TreeNodeChildrenTest.java | 4 +-
.../org/apache/sis/metadata/TreeTableViewTest.java | 2 +-
.../iso/citation/DefaultResponsibilityTest.java | 4 +-
.../metadata/iso/citation/HardCodedCitations.java | 6 +-
.../constraint/DefaultLegalConstraintsTest.java | 2 +-
.../extent/DefaultGeographicBoundingBoxTest.java | 64 +-
.../sis/metadata/iso/extent/ExtentsTest.java | 6 +-
.../iso/identification/DefaultResolutionTest.java | 12 +-
.../sis/metadata/sql/MetadataWriterTest.java | 4 +-
.../java/org/apache/sis/test/sql/TestDatabase.java | 23 +-
.../java/org/apache/sis/test/sql/package-info.java | 3 +-
.../sis/test/xml/AnnotationConsistencyCheck.java | 6 +-
.../org/apache/sis/test/xml/PackageVerifier.java | 12 +-
.../org/apache/sis/test/xml/SchemaCompliance.java | 5 +-
.../java/org/apache/sis/test/xml/TestCase.java | 8 +-
.../java/org/apache/sis/test/xml/package-info.java | 2 +-
.../sis/util/iso/DefaultRecordSchemaTest.java | 18 +-
.../apache/sis/util/iso/DefaultRecordTypeTest.java | 46 +-
.../java/org/apache/sis/xml/NamespacesTest.java | 3 +-
.../org/apache/sis/metadata/xml/2007/Citation.xml | 12 +-
.../org/apache/sis/metadata/xml/2007/Extent.xml | 2 +-
.../org/apache/sis/metadata/xml/2007/Locales.xml | 26 +-
.../org/apache/sis/metadata/xml/2007/Metadata.xml | 88 +-
.../apache/sis/metadata/xml/2007/Multiplicity.xml | 2 +-
.../sis/metadata/xml/2007/PositionalAccuracy.xml | 4 +-
.../apache/sis/metadata/xml/2007/ProcessStep.xml | 2 +-
.../metadata/xml/2007/ServiceIdentification.xml | 4 +-
.../org/apache/sis/metadata/xml/2016/Citation.xml | 4 +-
.../org/apache/sis/metadata/xml/2016/Extent.xml | 2 +-
.../org/apache/sis/metadata/xml/2016/Locales.xml | 2 +-
.../org/apache/sis/metadata/xml/2016/Metadata.xml | 28 +-
.../apache/sis/metadata/xml/2016/Multiplicity.xml | 3 +-
.../sis/metadata/xml/2016/PositionalAccuracy.xml | 6 +-
.../apache/sis/metadata/xml/2016/ProcessStep.xml | 2 +-
.../metadata/xml/2016/ServiceIdentification.xml | 2 +-
core/sis-portrayal/pom.xml | 9 +-
.../sis/internal/map/ExceptionPresentation.java | 66 +
.../apache/sis/internal/map/ListChangeEvent.java | 98 +
.../org/apache/sis/internal/map/MapContext.java | 79 -
.../java/org/apache/sis/internal/map/MapGroup.java | 66 -
.../java/org/apache/sis/internal/map/MapItem.java | 88 -
.../java/org/apache/sis/internal/map/MapLayer.java | 104 -
.../org/apache/sis/internal/map/NotifiedList.java | 72 +
.../org/apache/sis/internal/map/Presentation.java | 146 ++
.../sis/internal/map/PropertyNameCollector.java | 60 +
.../sis/internal/map/ResourceSymbolizer.java | 37 +
.../org/apache/sis/internal/map/SEPortrayer.java | 755 +++++++
.../apache/sis/internal/map/SEPresentation.java | 85 +
.../apache/sis/internal/map/SymbologyVisitor.java | 394 ++++
.../org/apache/sis/internal/map/package-info.java | 9 +-
.../main/java/org/apache/sis/portrayal/Canvas.java | 1234 ++++++++++++
.../org/apache/sis/portrayal/CanvasContext.java | 222 ++
.../org/apache/sis/portrayal/CanvasExtent.java | 235 +++
.../java/org/apache/sis/portrayal/MapItem.java | 294 +++
.../java/org/apache/sis/portrayal/MapLayer.java | 264 +++
.../java/org/apache/sis/portrayal/MapLayers.java | 194 ++
.../java/org/apache/sis/portrayal/Observable.java | 162 ++
.../org/apache/sis/portrayal/PlanarCanvas.java | 189 ++
.../org/apache/sis/portrayal/RenderException.java | 61 +
.../org/apache/sis/portrayal/package-info.java | 32 +
.../sis/internal/map/MockFeatureTypeStyle.java | 104 +
.../sis/internal/map/MockLineSymbolizer.java | 113 ++
.../java/org/apache/sis/internal/map/MockRule.java | 131 ++
.../org/apache/sis/internal/map/MockStyle.java | 86 +
.../apache/sis/internal/map/SEPortrayerTest.java | 772 +++++++
.../org/apache/sis/portrayal/MapLayersTest.java | 99 +
.../apache/sis/test/suite/PortrayalTestSuite.java | 46 +
core/sis-referencing-by-identifiers/pom.xml | 4 +-
.../apache/sis/internal/gazetteer/Resources.java | 2 -
.../gazetteer/GeohashReferenceSystem.java | 2 +-
.../sis/referencing/gazetteer/LocationFormat.java | 2 +-
.../gazetteer/MilitaryGridReferenceSystem.java | 16 +-
.../sis/referencing/gazetteer/LocationViewer.java | 2 +-
.../gazetteer/MilitaryGridReferenceSystemTest.java | 2 +-
core/sis-referencing/pom.xml | 27 +-
.../sis/geometry/AbstractDirectPosition.java | 34 +-
.../org/apache/sis/geometry/AbstractEnvelope.java | 157 +-
.../org/apache/sis/geometry/ArrayEnvelope.java | 2 +-
.../org/apache/sis/geometry/CoordinateFormat.java | 1314 +++++++++---
.../java/org/apache/sis/geometry/Envelope2D.java | 116 +-
.../java/org/apache/sis/geometry/Envelopes.java | 490 +++--
.../apache/sis/geometry/GeneralDirectPosition.java | 2 +
.../org/apache/sis/geometry/GeneralEnvelope.java | 238 ++-
.../java/org/apache/sis/geometry/Shapes2D.java | 357 ++--
.../apache/sis/geometry/WraparoundInEnvelope.java | 235 +++
.../org/apache/sis/geometry/WraparoundMethod.java | 173 ++
.../java/org/apache/sis/geometry/package-info.java | 5 +-
.../apache/sis/internal/jaxb/referencing/Code.java | 2 +-
.../internal/jaxb/referencing/SC_SingleCRS.java | 2 +-
.../sis/internal/referencing/AnnotatedMatrix.java | 140 ++
.../sis/internal/referencing/AxisDirections.java | 38 +-
.../internal/referencing/CoordinateOperations.java | 22 +-
.../internal/referencing/DefinitionVerifier.java | 95 +-
.../internal/referencing/DirectPositionView.java | 25 -
.../referencing/EllipsoidalHeightCombiner.java | 6 +-
.../sis/internal/referencing/ExtentSelector.java | 419 +++-
.../apache/sis/internal/referencing/Formulas.java | 29 +-
.../referencing/GeodeticObjectBuilder.java | 11 +-
.../apache/sis/internal/referencing/LazySet.java | 5 +-
.../referencing/MathTransformsOrFactory.java | 141 ++
.../internal/referencing/PositionTransformer.java | 2 +-
.../referencing/PositionalAccuracyConstant.java | 40 +-
.../apache/sis/internal/referencing/RTreeNode.java | 357 ++++
.../internal/referencing/ReferencingUtilities.java | 80 +-
.../apache/sis/internal/referencing/Resources.java | 66 +-
.../sis/internal/referencing/Resources.properties | 14 +-
.../internal/referencing/Resources_fr.properties | 14 +-
.../internal/referencing/ServicesForMetadata.java | 49 +-
.../internal/referencing/SignReversalComment.java | 2 +-
.../sis/internal/referencing/TemporalAccessor.java | 51 +-
.../internal/referencing/VerticalDatumTypes.java | 2 +-
.../sis/internal/referencing/WKTKeywords.java | 84 +-
.../sis/internal/referencing/WKTUtilities.java | 70 +-
.../internal/referencing/WraparoundAdjustment.java | 36 +-
.../internal/referencing/WraparoundApplicator.java | 156 ++
.../sis/internal/referencing/j2d/Bezier.java | 2 +-
.../referencing/j2d/ImmutableAffineTransform.java | 2 +-
.../referencing/j2d/IntervalRectangle.java | 65 +-
.../apache/sis/internal/referencing/j2d/Tile.java | 683 +++++++
.../internal/referencing/j2d/TileOrganizer.java | 566 ++++++
.../sis/internal/referencing/j2d/package-info.java | 2 +-
.../sis/internal/referencing/package-info.java | 2 +-
.../referencing/provider/AbstractProvider.java | 31 +-
.../sis/internal/referencing/provider/Affine.java | 11 +-
.../referencing/provider/AlbersEqualArea.java | 2 +-
.../provider/AzimuthalEquidistantSpherical.java | 83 +
.../referencing/provider/CassiniSoldner.java | 176 ++
.../provider/DatumShiftGridCompressed.java | 58 +-
.../referencing/provider/DatumShiftGridFile.java | 415 +++-
.../referencing/provider/DatumShiftGridGroup.java | 306 +++
.../referencing/provider/DatumShiftGridLoader.java | 39 +-
.../provider/FranceGeocentricInterpolation.java | 20 +-
.../referencing/provider/GeocentricAffine.java | 19 +-
.../GeocentricAffineBetweenGeographic.java | 8 +-
.../provider/GeocentricToGeographic.java | 10 +-
.../referencing/provider/GeodeticOperation.java | 14 +-
.../referencing/provider/Geographic2Dto3D.java | 8 +
.../referencing/provider/Geographic3Dto2D.java | 22 +
.../provider/GeographicToGeocentric.java | 8 +-
.../provider/HyperbolicCassiniSoldner.java | 66 +
.../referencing/provider/Interpolation1D.java | 2 +-
.../provider/LambertConformalBelgium.java | 2 +-
.../referencing/provider/LambertConformalWest.java | 2 +-
.../provider/LambertCylindricalEqualArea.java | 24 +-
.../LambertCylindricalEqualAreaSpherical.java | 4 +-
.../referencing/provider/MapProjection.java | 10 +-
.../referencing/provider/MapProjection3D.java | 9 +
.../provider/ModifiedAzimuthalEquidistant.java | 167 ++
.../internal/referencing/provider/Mollweide.java | 2 +-
.../internal/referencing/provider/Molodensky.java | 5 +-
.../sis/internal/referencing/provider/NADCON.java | 7 +-
.../sis/internal/referencing/provider/NTv1.java | 90 +
.../sis/internal/referencing/provider/NTv2.java | 559 +++--
.../referencing/provider/Orthographic.java | 2 +-
.../referencing/provider/PolarStereographicA.java | 2 +-
.../internal/referencing/provider/Providers.java | 2 +
.../referencing/provider/SatelliteTracking.java | 2 +-
.../provider/TransverseMercatorSouth.java | 2 +-
.../internal/referencing/provider/Wraparound.java | 120 ++
.../provider/ZonedTransverseMercator.java | 2 +-
.../java/org/apache/sis/io/wkt/AbstractParser.java | 197 +-
.../main/java/org/apache/sis/io/wkt/Colors.java | 1 +
.../main/java/org/apache/sis/io/wkt/Element.java | 367 ++--
.../main/java/org/apache/sis/io/wkt/Formatter.java | 59 +-
.../apache/sis/io/wkt/GeodeticObjectParser.java | 51 +-
.../org/apache/sis/io/wkt/MathTransformParser.java | 4 +-
.../org/apache/sis/io/wkt/SingletonElement.java | 83 +
.../java/org/apache/sis/io/wkt/StoredTree.java | 590 ++++++
.../main/java/org/apache/sis/io/wkt/Symbols.java | 24 +-
.../java/org/apache/sis/io/wkt/Transliterator.java | 20 +-
.../java/org/apache/sis/io/wkt/WKTDictionary.java | 1131 +++++++++++
.../main/java/org/apache/sis/io/wkt/WKTFormat.java | 333 ++-
.../main/java/org/apache/sis/io/wkt/Warnings.java | 3 +-
.../java/org/apache/sis/io/wkt/doc-files/ESRI.txt | 92 +
.../java/org/apache/sis/io/wkt/package-info.java | 11 +-
.../sis/parameter/DefaultParameterValueGroup.java | 63 +-
.../sis/parameter/MapProjectionDescriptor.java | 7 +-
.../sis/parameter/MapProjectionParameters.java | 8 +-
.../org/apache/sis/parameter/ParameterFormat.java | 2 +-
.../apache/sis/parameter/ParameterValueList.java | 7 +-
.../java/org/apache/sis/parameter/Parameters.java | 19 +-
.../sis/parameter/UninitializedParameter.java | 4 +-
.../org/apache/sis/parameter/package-info.java | 2 +-
.../sis/referencing/AbstractIdentifiedObject.java | 2 +-
.../main/java/org/apache/sis/referencing/CRS.java | 47 +-
.../java/org/apache/sis/referencing/CommonCRS.java | 196 +-
.../referencing/EllipsoidalHeightSeparator.java | 66 +-
.../sis/referencing/GeodesicsOnEllipsoid.java | 59 +-
.../apache/sis/referencing/GeodeticCalculator.java | 152 +-
.../apache/sis/referencing/IdentifiedObjects.java | 230 ++-
.../org/apache/sis/referencing/Properties.java | 37 +-
.../sis/referencing/StandardDefinitions.java | 8 +-
.../apache/sis/referencing/crs/AbstractCRS.java | 21 +-
.../sis/referencing/crs/AbstractDerivedCRS.java | 11 +-
.../sis/referencing/crs/DefaultCompoundCRS.java | 2 +-
.../sis/referencing/crs/DefaultGeographicCRS.java | 3 +-
.../apache/sis/referencing/crs/package-info.java | 2 +-
.../org/apache/sis/referencing/cs/AbstractCS.java | 4 +-
.../apache/sis/referencing/cs/AxesConvention.java | 2 +-
.../org/apache/sis/referencing/cs/AxisFilter.java | 2 +-
.../sis/referencing/cs/CoordinateSystems.java | 54 +-
.../apache/sis/referencing/cs/package-info.java | 2 +-
.../sis/referencing/datum/BursaWolfParameters.java | 7 +-
.../sis/referencing/datum/DatumShiftGrid.java | 227 ++-
.../sis/referencing/datum/DefaultEllipsoid.java | 9 +-
.../referencing/datum/DefaultGeodeticDatum.java | 63 +-
.../referencing/datum/DefaultPrimeMeridian.java | 2 +-
.../sis/referencing/datum/TimeDependentBWP.java | 2 +-
.../factory/CommonAuthorityFactory.java | 40 +-
.../factory/ConcurrentAuthorityFactory.java | 80 +-
.../factory/GeodeticAuthorityFactory.java | 6 +-
.../referencing/factory/GeodeticObjectFactory.java | 9 +-
.../factory/IdentifiedObjectFinder.java | 28 +-
.../factory/MultiAuthoritiesFactory.java | 5 +-
.../sis/referencing/factory/ReferenceKeeper.java | 151 ++
.../sis/referencing/factory/package-info.java | 2 +-
.../referencing/factory/sql/EPSGDataAccess.java | 85 +-
.../factory/sql/InstallationScriptProvider.java | 2 +-
.../sis/referencing/factory/sql/SQLTranslator.java | 2 +-
.../sis/referencing/factory/sql/TableInfo.java | 4 +-
.../sis/referencing/factory/sql/package-info.java | 4 +-
.../operation/AbstractCoordinateOperation.java | 6 +-
.../operation/AbstractSingleOperation.java | 124 +-
.../apache/sis/referencing/operation/CRSPair.java | 15 +-
.../operation/CoordinateOperationContext.java | 34 +-
.../operation/CoordinateOperationFinder.java | 218 +-
.../operation/CoordinateOperationRegistry.java | 230 ++-
.../operation/DefaultConicProjection.java | 2 +-
.../referencing/operation/DefaultConversion.java | 6 +-
.../DefaultCoordinateOperationFactory.java | 11 +-
.../operation/DefaultCylindricalProjection.java | 2 +-
.../operation/DefaultOperationMethod.java | 39 +-
.../operation/DefaultPassThroughOperation.java | 2 +-
.../operation/DefaultPlanarProjection.java | 2 +-
.../operation/InverseOperationMethod.java | 60 +-
.../operation/LooselyDefinedMethod.java | 90 +
.../referencing/operation/SubOperationInfo.java | 349 +++-
.../operation/builder/LinearTransformBuilder.java | 365 +++-
.../referencing/operation/builder/Linearizer.java | 158 ++
.../operation/builder/LocalizationGridBuilder.java | 326 ++-
.../operation/builder/ProjectedTransformTry.java | 179 +-
.../operation/builder/ResidualGrid.java | 135 +-
.../operation/builder/package-info.java | 2 +-
.../sis/referencing/operation/builder/readme.html | 6 +-
.../operation/matrix/AffineTransforms2D.java | 64 +-
.../sis/referencing/operation/matrix/Matrices.java | 159 +-
.../sis/referencing/operation/matrix/Matrix1.java | 11 +-
.../sis/referencing/operation/matrix/Matrix2.java | 10 -
.../referencing/operation/matrix/MatrixSIS.java | 36 +-
.../sis/referencing/operation/matrix/Solver.java | 4 +-
.../referencing/operation/matrix/package-info.java | 2 +-
.../sis/referencing/operation/package-info.java | 2 +-
.../operation/projection/AlbersEqualArea.java | 43 +-
.../operation/projection/AzimuthalEquidistant.java | 239 +++
.../operation/projection/CassiniSoldner.java | 412 ++++
.../operation/projection/CylindricalEqualArea.java | 7 +-
.../operation/projection/Initializer.java | 42 +
.../referencing/operation/projection/Inverter.java | 4 +-
.../projection/LambertConicConformal.java | 38 +-
.../referencing/operation/projection/Mercator.java | 15 +-
.../projection/ModifiedAzimuthalEquidistant.java | 259 +++
.../operation/projection/Mollweide.java | 4 +-
.../operation/projection/NormalizedProjection.java | 158 +-
.../operation/projection/ObliqueMercator.java | 15 +-
.../operation/projection/ObliqueStereographic.java | 58 +-
.../operation/projection/Orthographic.java | 43 +-
.../operation/projection/PolarStereographic.java | 7 +-
.../operation/projection/Polyconic.java | 5 +-
.../operation/projection/SatelliteTracking.java | 38 +-
.../operation/projection/Sinusoidal.java | 4 +-
.../operation/projection/TransverseMercator.java | 169 +-
.../operation/projection/ZonedGridSystem.java | 2 +-
.../operation/projection/package-info.java | 2 +-
.../transform/AbstractLinearTransform.java | 44 +-
.../operation/transform/AbstractMathTransform.java | 2 +
.../operation/transform/CartesianToPolar.java | 4 +-
.../operation/transform/CartesianToSpherical.java | 4 +-
.../operation/transform/ConcatenatedTransform.java | 112 +-
.../transform/ConcatenatedTransformDirect.java | 4 +-
.../transform/ConcatenatedTransformDirect2D.java | 4 +-
.../operation/transform/ContextualParameter.java | 2 +-
.../transform/CoordinateSystemTransform.java | 49 +-
.../operation/transform/CopyTransform.java | 112 +-
.../operation/transform/DatumShiftTransform.java | 2 +
.../transform/DefaultMathTransformFactory.java | 227 ++-
.../operation/transform/IdentityTransform.java | 10 +-
.../operation/transform/InterpolatedTransform.java | 47 +-
.../operation/transform/LinearTransform.java | 5 +-
.../operation/transform/MathTransforms.java | 90 +-
.../transform/MathTransformsOrFactory.java | 129 --
.../operation/transform/MolodenskyFormula.java | 2 +-
.../operation/transform/PassThroughTransform.java | 1 +
.../operation/transform/PolarToCartesian.java | 4 +-
.../operation/transform/ProjectiveTransform.java | 59 +-
.../transform/SpecializableTransform.java | 330 ++-
.../operation/transform/SphericalToCartesian.java | 4 +-
.../operation/transform/TransferFunction.java | 4 +-
.../operation/transform/TransformAdapter2D.java | 101 +
.../operation/transform/TransformSeparator.java | 108 +-
.../operation/transform/TranslationTransform.java | 32 +-
.../operation/transform/WraparoundTransform.java | 669 ++++++
.../operation/transform/package-info.java | 2 +-
.../org/apache/sis/referencing/package-info.java | 4 +-
...g.opengis.referencing.operation.OperationMethod | 6 +
.../apache/sis/geometry/AbstractEnvelopeTest.java | 8 +-
.../org/apache/sis/geometry/ArrayEnvelopeTest.java | 3 +-
.../apache/sis/geometry/CoordinateFormatTest.java | 138 +-
.../org/apache/sis/geometry/Envelope2DTest.java | 2 +-
.../org/apache/sis/geometry/EnvelopesTest.java | 21 +-
.../sis/geometry/GeneralDirectPositionTest.java | 2 +-
.../apache/sis/geometry/GeneralEnvelopeTest.java | 64 +-
.../apache/sis/geometry/ImmutableEnvelopeTest.java | 2 +-
.../java/org/apache/sis/geometry/Shapes2DTest.java | 2 +-
.../org/apache/sis/geometry/SubEnvelopeTest.java | 2 +-
.../org/apache/sis/geometry/TransformTestCase.java | 44 +-
.../sis/internal/jaxb/referencing/CodeTest.java | 2 +-
.../internal/referencing/AxisDirectionsTest.java | 38 +-
.../referencing/DefinitionVerifierTest.java | 24 +-
.../referencing/EllipsoidalHeightCombinerTest.java | 2 +-
.../internal/referencing/ExtentSelectorTest.java | 147 ++
.../sis/internal/referencing/FormulasTest.java | 18 +-
.../referencing/ReferencingUtilitiesTest.java | 2 +-
.../referencing/ServicesForMetadataTest.java | 4 +-
.../sis/internal/referencing/WKTKeywordsTest.java | 41 +-
.../sis/internal/referencing/WKTUtilitiesTest.java | 14 +-
.../FranceGeocentricInterpolationTest.java | 8 +-
.../provider/GeographicOffsetsTest.java | 8 +-
.../internal/referencing/provider/NADCONTest.java | 20 +-
.../internal/referencing/provider/NTv2Test.java | 117 +-
.../referencing/provider/ProviderMock.java | 4 +-
.../referencing/provider/ProvidersTest.java | 8 +-
.../java/org/apache/sis/io/wkt/ElementTest.java | 31 +-
.../sis/io/wkt/GeodeticObjectParserTest.java | 4 +-
.../apache/sis/io/wkt/MathTransformParserTest.java | 4 +-
.../java/org/apache/sis/io/wkt/SymbolsTest.java | 12 +-
.../org/apache/sis/io/wkt/WKTDictionaryTest.java | 401 ++++
.../java/org/apache/sis/io/wkt/WKTFormatTest.java | 3 +-
.../sis/parameter/DefaultParameterValueTest.java | 2 +-
.../sis/parameter/ParameterValueGroupWrapper.java | 3 +-
.../java/org/apache/sis/referencing/CRSTest.java | 30 +-
.../org/apache/sis/referencing/CommonCRSTest.java | 23 +-
.../sis/referencing/GeodesicsOnEllipsoidTest.java | 91 +-
.../sis/referencing/GeodeticCalculatorTest.java | 159 +-
.../sis/referencing/IdentifiedObjectsTest.java | 4 +-
.../referencing/crs/DefaultCompoundCRSTest.java | 2 +-
.../sis/referencing/crs/DefaultDerivedCRSTest.java | 2 +-
.../apache/sis/referencing/crs/HardCodedCRS.java | 91 +-
.../sis/referencing/crs/HardCodedCRSTest.java | 20 +-
.../sis/referencing/cs/CoordinateSystemsTest.java | 15 +-
.../apache/sis/referencing/cs/HardCodedAxes.java | 13 +-
.../org/apache/sis/referencing/cs/HardCodedCS.java | 9 +-
.../datum/DefaultGeodeticDatumTest.java | 44 +-
.../datum/DefaultPrimeMeridianTest.java | 2 -
.../sis/referencing/datum/GeodeticDatumMock.java | 8 +-
.../sis/referencing/datum/HardCodedDatum.java | 8 +-
.../referencing/factory/AuthorityFactoryMock.java | 2 +-
.../factory/CommonAuthorityFactoryTest.java | 1 -
.../apache/sis/referencing/factory/GIGS2004.java | 2 +-
.../factory/MultiAuthoritiesFactoryTest.java | 40 +-
.../referencing/factory/sql/EPSGInstallerTest.java | 2 +-
.../factory/sql/epsg/DataScriptFormatter.java | 2 +-
.../sis/referencing/factory/sql/epsg/package.html | 8 +-
.../referencing/geoapi/AuthorityFactoryTest.java | 72 +
.../geoapi/ParameterizedTransformTest.java | 87 +
.../operation/AbstractSingleOperationTest.java | 82 -
.../operation/CoordinateOperationFinderTest.java | 134 +-
.../operation/DefaultTransformationTest.java | 1 -
.../operation/HardCodedConversions.java | 109 +-
.../builder/LinearTransformBuilderTest.java | 44 +-
.../operation/builder/LinearizerTest.java | 73 +
.../operation/builder/ResidualGridTest.java | 8 +-
.../operation/matrix/AffineTransforms2DTest.java | 2 +-
.../referencing/operation/matrix/MatricesTest.java | 38 +-
.../operation/matrix/MatrixTestCase.java | 31 +-
.../operation/projection/AlbersEqualAreaTest.java | 50 +-
.../projection/AzimuthalEquidistantTest.java | 191 ++
.../operation/projection/CassiniSoldnerTest.java | 215 ++
.../operation/projection/InitializerTest.java | 10 +-
.../projection/LambertConicConformalTest.java | 9 +-
.../projection/MapProjectionTestCase.java | 45 +-
.../ModifiedAzimuthalEquidistantTest.java | 95 +
.../sis/referencing/operation/projection/NoOp.java | 2 +-
.../projection/ObliqueStereographicTest.java | 27 +-
.../projection/TransverseMercatorTest.java | 71 +-
.../doc-files/TransverseMercatorErrors.png | Bin 0 -> 7954 bytes
.../transform/ConcatenatedTransformTest.java | 71 +-
.../transform/CoordinateSystemTransformTest.java | 69 +-
.../transform/DefaultMathTransformFactoryTest.java | 96 +-
.../transform/InterpolatedTransformTest.java | 2 +-
.../transform/MathTransformFactoryMock.java | 2 +-
.../operation/transform/MathTransformTestCase.java | 2 +-
.../operation/transform/MathTransformWrapper.java | 14 +-
.../operation/transform/MathTransformsTest.java | 34 +-
.../transform/ProjectiveTransformTest.java | 63 +-
.../transform/TransformResultComparator.java | 4 +-
.../transform/TransformSeparatorTest.java | 65 +-
.../transform/WraparoundTransformTest.java | 182 ++
.../report/CoordinateOperationMethods.java | 2 +-
.../sis/test/suite/ReferencingTestSuite.java | 12 +-
.../resources/org/apache/sis/io/wkt/ExtraCRS.txt | 81 +
.../resources/org/apache/sis/io/wkt/Malformed.txt | 13 +
.../integration/Metadata with vertical CRS.xml | 14 +-
.../org/apache/sis/test/integration/Metadata.xml | 42 +-
core/sis-utility/pom.xml | 10 +-
.../sis/internal/converter/DateConverter.java | 2 +-
.../sis/internal/converter/StringConverter.java | 2 +-
.../java/org/apache/sis/internal/jdk9/JDK9.java | 225 ++-
.../apache/sis/internal/system/CommonExecutor.java | 133 ++
.../apache/sis/internal/system/DataDirectory.java | 8 +-
.../sis/internal/system/DelayedExecutor.java | 3 +-
.../sis/internal/system/DelayedRunnable.java | 8 +-
.../org/apache/sis/internal/system/Modules.java | 17 +-
.../org/apache/sis/internal/system/Shutdown.java | 5 +-
.../org/apache/sis/internal/system/Threads.java | 6 +-
.../apache/sis/internal/system/package-info.java | 2 +-
.../sis/internal/util/AutoMessageFormat.java | 2 +-
.../apache/sis/internal/util/CheckedArrayList.java | 2 +-
.../java/org/apache/sis/internal/util/Cloner.java | 76 +-
.../apache/sis/internal/util/CollectionsExt.java | 31 +-
.../org/apache/sis/internal/util/Constants.java | 12 +-
.../apache/sis/internal/util/DefinitionURI.java | 8 +-
.../org/apache/sis/internal/util/DoubleDouble.java | 13 +-
.../org/apache/sis/internal/util/Numerics.java | 101 +-
.../apache/sis/internal/util/PropertyFormat.java | 216 ++
.../sis/internal/util/StandardDateFormat.java | 89 +-
.../java/org/apache/sis/internal/util/Strings.java | 68 +-
.../java/org/apache/sis/internal/util/X364.java | 2 +-
.../java/org/apache/sis/internal/util/XPaths.java | 4 +-
.../org/apache/sis/internal/util/package-info.java | 2 +-
.../main/java/org/apache/sis/io/ClassFormat.java | 2 +-
.../java/org/apache/sis/io/CompoundFormat.java | 42 +-
.../src/main/java/org/apache/sis/io/IO.java | 2 +-
.../org/apache/sis/io/IdentifiedObjectFormat.java | 2 +-
.../main/java/org/apache/sis/io/TableAppender.java | 12 +-
.../main/java/org/apache/sis/io/package-info.java | 4 +-
.../main/java/org/apache/sis/math/ArrayVector.java | 207 +-
.../org/apache/sis/math/ConcatenatedVector.java | 23 +-
.../main/java/org/apache/sis/math/Fraction.java | 16 +-
.../org/apache/sis/math/LinearlyDerivedVector.java | 51 +-
.../java/org/apache/sis/math/MathFunctions.java | 41 +-
.../java/org/apache/sis/math/PackedVector.java | 25 +-
.../java/org/apache/sis/math/RepeatedVector.java | 28 +-
.../java/org/apache/sis/math/SequenceVector.java | 10 +-
.../main/java/org/apache/sis/math/Statistics.java | 4 +-
.../java/org/apache/sis/math/StatisticsFormat.java | 3 +-
.../src/main/java/org/apache/sis/math/Vector.java | 65 +-
.../java/org/apache/sis/measure/AngleFormat.java | 38 +-
.../sis/measure/FormattedCharacterIterator.java | 2 +-
.../java/org/apache/sis/measure/Longitude.java | 29 +-
.../java/org/apache/sis/measure/NumberRange.java | 93 +-
.../java/org/apache/sis/measure/Quantities.java | 76 +-
.../org/apache/sis/measure/QuantityFormat.java | 146 ++
.../main/java/org/apache/sis/measure/Range.java | 6 +-
.../java/org/apache/sis/measure/RangeFormat.java | 50 +-
.../main/java/org/apache/sis/measure/Scalar.java | 7 +-
.../java/org/apache/sis/measure/UnitDimension.java | 2 +-
.../java/org/apache/sis/measure/UnitFormat.java | 6 +-
.../main/java/org/apache/sis/measure/Units.java | 5 +-
.../java/org/apache/sis/measure/package-info.java | 2 +-
.../src/main/java/org/apache/sis/setup/About.java | 53 +-
.../java/org/apache/sis/setup/Configuration.java | 40 +-
.../apache/sis/setup/InstallationResources.java | 6 +-
.../java/org/apache/sis/util/ArgumentChecks.java | 103 +-
.../main/java/org/apache/sis/util/ArraysExt.java | 22 +-
.../java/org/apache/sis/util/CharSequences.java | 188 +-
.../main/java/org/apache/sis/util/Characters.java | 12 +-
.../src/main/java/org/apache/sis/util/Classes.java | 43 +-
.../main/java/org/apache/sis/util/Exceptions.java | 19 +-
.../src/main/java/org/apache/sis/util/Locales.java | 2 +-
.../src/main/java/org/apache/sis/util/Numbers.java | 54 +-
.../main/java/org/apache/sis/util/Workaround.java | 8 +
.../sis/util/collection/BackingStoreException.java | 22 +-
.../java/org/apache/sis/util/collection/Cache.java | 36 +-
.../org/apache/sis/util/collection/Containers.java | 2 +-
.../sis/util/collection/FrequencySortedSet.java | 3 +
.../apache/sis/util/collection/IntegerList.java | 38 +-
.../org/apache/sis/util/collection/TreeTable.java | 2 +-
.../sis/util/collection/TreeTableFormat.java | 211 +-
.../apache/sis/util/collection/WeakHashSet.java | 12 +-
.../sis/util/collection/WeakValueHashMap.java | 13 +-
.../apache/sis/util/collection/package-info.java | 2 +-
.../org/apache/sis/util/logging/LoggerAdapter.java | 2 +-
.../java/org/apache/sis/util/logging/Logging.java | 4 +-
.../apache/sis/util/logging/MonolineFormatter.java | 18 +-
.../apache/sis/util/logging/PerformanceLevel.java | 90 +-
.../java/org/apache/sis/util/package-info.java | 5 +-
.../java/org/apache/sis/util/resources/Errors.java | 42 +-
.../apache/sis/util/resources/Errors.properties | 7 +-
.../apache/sis/util/resources/Errors_fr.properties | 15 +-
.../sis/util/resources/IndexedResourceBundle.java | 37 +-
.../org/apache/sis/util/resources/Messages.java | 2 -
.../org/apache/sis/util/resources/Vocabulary.java | 787 ++++++--
.../sis/util/resources/Vocabulary.properties | 105 +-
.../sis/util/resources/Vocabulary_fr.properties | 107 +-
.../apache/sis/util/resources/package-info.java | 2 +-
.../sis/internal/util/DefinitionURITest.java | 1 +
.../apache/sis/internal/util/DoubleDoubleTest.java | 9 +-
.../org/apache/sis/internal/util/NumericsTest.java | 26 +-
.../sis/internal/util/StandardDateFormatTest.java | 4 +-
.../org/apache/sis/internal/util/StringsTest.java | 8 +-
.../org/apache/sis/internal/util/XPathsTest.java | 7 +-
.../org/apache/sis/math/MathFunctionsTest.java | 15 +-
.../java/org/apache/sis/math/StatisticsTest.java | 2 +-
.../test/java/org/apache/sis/math/VectorTest.java | 12 +-
.../org/apache/sis/measure/AngleFormatTest.java | 14 +-
.../java/org/apache/sis/measure/AngleTest.java | 51 +-
.../measure/FormattedCharacterIteratorTest.java | 2 +-
.../org/apache/sis/measure/NumberRangeTest.java | 19 +-
.../org/apache/sis/measure/QuantitiesTest.java | 16 +-
.../org/apache/sis/measure/RangeFormatTest.java | 51 +-
.../java/org/apache/sis/measure/RangeTest.java | 22 +-
.../java/org/apache/sis/measure/ScalarTest.java | 10 +-
.../org/apache/sis/measure/UnitFormatTest.java | 2 +-
.../java/org/apache/sis/measure/UnitsTest.java | 2 +-
.../src/test/java/org/apache/sis/test/Assert.java | 1 +
.../src/test/java/org/apache/sis/test/Assume.java | 2 +-
.../java/org/apache/sis/test/LoggingWatcher.java | 6 +-
.../java/org/apache/sis/test/OptionalTestData.java | 37 +-
.../test/java/org/apache/sis/test/TestCase.java | 2 +-
.../java/org/apache/sis/test/TestUtilities.java | 2 +-
.../org/apache/sis/util/CharSequencesTest.java | 26 +-
.../java/org/apache/sis/util/CharactersTest.java | 27 +-
.../test/java/org/apache/sis/util/ClassesTest.java | 34 +-
.../test/java/org/apache/sis/util/NumbersTest.java | 68 +-
.../org/apache/sis/util/collection/CacheTest.java | 2 +-
.../apache/sis/util/collection/RangeSetTest.java | 2 +-
.../sis/util/logging/PerformanceLevelTest.java | 46 +-
ide-project/NetBeans/build.xml | 17 +
ide-project/NetBeans/nbproject/build-impl.xml | 78 +-
ide-project/NetBeans/nbproject/build-impl.xml~ | 2131 ++++++++++++++++++++
ide-project/NetBeans/nbproject/genfiles.properties | 6 +-
ide-project/NetBeans/nbproject/project.properties | 64 +-
ide-project/NetBeans/nbproject/project.xml | 5 +
pom.xml | 139 +-
profiles/pom.xml | 6 +-
profiles/sis-french-profile/pom.xml | 6 +-
.../sis/internal/profile/fra/package-info.java | 6 +-
.../internal/profile/fra/DirectReferenceSystem.xml | 6 +-
profiles/sis-japan-profile/pom.xml | 10 +-
.../sis/internal/earth/netcdf/FactoryForUCAR.java | 123 ++
.../apache/sis/internal/earth/netcdf/GCOM_C.java | 70 +-
.../apache/sis/internal/earth/netcdf/GCOM_W.java | 83 +-
.../ucar.nc2.dataset.spi.CoordSystemBuilderFactory | 1 +
src/main/javadoc/overview.html | 4 +-
src/main/javadoc/sis.css | 7 +-
storage/pom.xml | 8 +-
storage/sis-earth-observation/pom.xml | 13 +-
.../storage/earthobservation/LandsatAggregate.java | 138 ++
.../sis/storage/earthobservation/LandsatBand.java | 73 +
.../storage/earthobservation/LandsatBandGroup.java | 72 +
.../storage/earthobservation/LandsatReader.java | 450 ++---
.../storage/earthobservation/LandsatResource.java | 226 +++
.../sis/storage/earthobservation/LandsatStore.java | 149 +-
.../earthobservation/LandsatStoreProvider.java | 37 +-
.../doc-files/LandsatMetadata.html | 47 +-
.../sis/storage/earthobservation/package-info.java | 3 +-
.../earthobservation/LandsatReaderTest.java | 92 +-
storage/sis-gdal/pom.xml | 4 +-
.../org/apache/sis/storage/gdal/Proj4Test.java | 2 +-
.../org/apache/sis/storage/gdal/TransformTest.java | 1 -
storage/sis-geotiff/pom.xml | 15 +-
.../apache/sis/internal/geotiff/Compression.java | 162 ++
.../org/apache/sis/internal/geotiff/Predictor.java | 65 +
.../org/apache/sis/internal/geotiff/Resources.java | 27 +-
.../sis/internal/geotiff/Resources.properties | 5 +
.../sis/internal/geotiff/Resources_fr.properties | 7 +-
.../sis/internal/geotiff/SchemaModifier.java | 119 ++
.../apache/sis/internal/geotiff/package-info.java | 2 +-
.../sis/internal/storage/inflater/CCITTRLE.java | 273 +++
.../storage/inflater/CompressionChannel.java | 131 ++
.../internal/storage/inflater/CopyFromBytes.java | 416 ++++
.../storage/inflater/HorizontalPredictor.java | 517 +++++
.../sis/internal/storage/inflater/Inflater.java | 319 +++
.../apache/sis/internal/storage/inflater/LZW.java | 261 +++
.../sis/internal/storage/inflater/PackBits.java | 143 ++
.../internal/storage/inflater/PixelChannel.java | 55 +
.../storage/inflater/PredictorChannel.java | 130 ++
.../apache/sis/internal/storage/inflater/ZIP.java | 136 ++
.../internal/storage/inflater/package-info.java | 49 +
.../org/apache/sis/storage/geotiff/CRSBuilder.java | 13 +-
.../sis/storage/geotiff/CompressedSubset.java | 278 +++
.../apache/sis/storage/geotiff/Compression.java | 154 --
.../org/apache/sis/storage/geotiff/DataCube.java | 214 ++
.../org/apache/sis/storage/geotiff/DataSubset.java | 486 +++++
.../org/apache/sis/storage/geotiff/GeoTIFF.java | 12 +-
.../apache/sis/storage/geotiff/GeoTiffStore.java | 159 +-
.../sis/storage/geotiff/GridGeometryBuilder.java | 19 +-
.../sis/storage/geotiff/ImageFileDirectory.java | 673 +++++--
.../org/apache/sis/storage/geotiff/Reader.java | 27 +-
.../sis/storage/geotiff/ReversedBitsChannel.java | 163 ++
.../java/org/apache/sis/storage/geotiff/Tags.java | 2 +
.../apache/sis/storage/geotiff/package-info.java | 11 +-
.../sis/internal/geotiff/CompressionTest.java | 43 +
.../internal/storage/inflater/CCITTRLETest.java | 576 ++++++
.../internal/storage/inflater/InflaterTest.java | 64 +
.../sis/storage/geotiff/CompressionTest.java | 43 -
.../sis/storage/geotiff/SelfConsistencyTest.java | 85 +
.../apache/sis/test/suite/GeoTiffTestSuite.java | 9 +-
storage/sis-netcdf/pom.xml | 18 +-
.../java/org/apache/sis/internal/netcdf/Axis.java | 247 ++-
.../org/apache/sis/internal/netcdf/AxisType.java | 179 ++
.../org/apache/sis/internal/netcdf/CRSBuilder.java | 215 +-
.../org/apache/sis/internal/netcdf/Convention.java | 87 +-
.../org/apache/sis/internal/netcdf/DataType.java | 72 +-
.../org/apache/sis/internal/netcdf/Decoder.java | 112 +-
.../sis/internal/netcdf/DiscreteSampling.java | 12 +-
.../org/apache/sis/internal/netcdf/FeatureSet.java | 950 +++++++++
.../java/org/apache/sis/internal/netcdf/Grid.java | 152 +-
.../apache/sis/internal/netcdf/GridAdjustment.java | 207 ++
.../apache/sis/internal/netcdf/GridCacheKey.java | 36 +-
.../apache/sis/internal/netcdf/GridCacheValue.java | 82 +
.../apache/sis/internal/netcdf/GridMapping.java | 62 +-
.../java/org/apache/sis/internal/netcdf/HYCOM.java | 129 ++
.../org/apache/sis/internal/netcdf/Linearizer.java | 297 ++-
.../java/org/apache/sis/internal/netcdf/Node.java | 38 +-
.../org/apache/sis/internal/netcdf/Raster.java | 8 +-
.../apache/sis/internal/netcdf/RasterResource.java | 155 +-
.../org/apache/sis/internal/netcdf/Resources.java | 37 +-
.../sis/internal/netcdf/Resources.properties | 8 +-
.../sis/internal/netcdf/Resources_fr.properties | 16 +-
.../sis/internal/netcdf/SatelliteGroundTrack.java | 246 ---
.../org/apache/sis/internal/netcdf/Variable.java | 633 ++++--
.../apache/sis/internal/netcdf/VariableRole.java | 13 +-
.../sis/internal/netcdf/impl/ChannelDecoder.java | 147 +-
.../sis/internal/netcdf/impl/FeaturesInfo.java | 426 ----
.../apache/sis/internal/netcdf/impl/GridInfo.java | 111 +-
.../org/apache/sis/internal/netcdf/impl/HYCOM.java | 128 --
.../sis/internal/netcdf/impl/VariableInfo.java | 423 ++--
.../sis/internal/netcdf/impl/package-info.java | 4 +-
.../internal/netcdf/ucar/CSBuilderFallback.java | 93 -
.../sis/internal/netcdf/ucar/DecoderWrapper.java | 219 +-
.../sis/internal/netcdf/ucar/DimensionWrapper.java | 7 +-
.../sis/internal/netcdf/ucar/FeaturesWrapper.java | 17 +-
.../sis/internal/netcdf/ucar/GridWrapper.java | 72 +-
.../sis/internal/netcdf/ucar/GroupWrapper.java | 8 +-
.../org/apache/sis/internal/netcdf/ucar/Utils.java | 4 +-
.../sis/internal/netcdf/ucar/VariableWrapper.java | 267 ++-
.../sis/internal/netcdf/ucar/package-info.java | 4 +-
.../apache/sis/storage/netcdf/AttributeNames.java | 1 -
.../apache/sis/storage/netcdf/MetadataReader.java | 30 +-
.../org/apache/sis/storage/netcdf/NetcdfStore.java | 31 +-
.../sis/storage/netcdf/NetcdfStoreProvider.java | 55 +-
.../apache/sis/storage/netcdf/package-info.java | 16 +-
.../apache/sis/internal/netcdf/DataTypeTest.java | 42 +-
.../apache/sis/internal/netcdf/FeatureSetTest.java | 200 ++
.../org/apache/sis/internal/netcdf/GridTest.java | 45 +-
.../internal/netcdf/SatelliteGroundTrackTest.java | 81 -
.../apache/sis/internal/netcdf/VariableTest.java | 28 +-
.../sis/internal/netcdf/impl/FeatureSetTest.java | 47 +
.../sis/internal/netcdf/impl/GridInfoTest.java | 9 +-
.../sis/internal/netcdf/impl/VariableInfoTest.java | 3 +-
.../sis/storage/netcdf/MetadataReaderTest.java | 16 +-
.../apache/sis/storage/netcdf/NetcdfStoreTest.java | 4 +-
.../sis/storage/netcdf/SelfConsistencyTest.java | 86 +
.../org/apache/sis/test/suite/NetcdfTestSuite.java | 8 +-
.../apache/sis/internal/shapefile/AutoChecker.java | 3 +-
.../internal/shapefile/ShapefileByteReader.java | 3 +-
.../sis/storage/shapefile/InputFeatureStream.java | 3 +-
.../apache/sis/storage/shapefile/cpg/CpgFiles.java | 79 +
storage/sis-sqlstore/pom.xml | 12 +
.../apache/sis/internal/sql/feature/Analyzer.java | 633 +++++-
.../apache/sis/internal/sql/feature/Column.java | 241 +++
.../apache/sis/internal/sql/feature/Database.java | 437 +++-
.../sis/internal/sql/feature/EWKBReader.java | 207 ++
.../sis/internal/sql/feature/FeatureAdapter.java | 374 ++++
.../sis/internal/sql/feature/FeatureIterator.java | 337 ++++
.../sis/internal/sql/feature/FeatureStream.java | 406 ++++
.../apache/sis/internal/sql/feature/Features.java | 499 -----
.../sis/internal/sql/feature/InfoStatements.java | 419 ++++
.../sis/internal/sql/feature/PrimaryKey.java | 112 +
.../apache/sis/internal/sql/feature/Relation.java | 75 +-
.../apache/sis/internal/sql/feature/Resources.java | 27 +-
.../sis/internal/sql/feature/Resources.properties | 5 +
.../internal/sql/feature/Resources_fr.properties | 7 +-
.../sis/internal/sql/feature/SchemaModifier.java | 63 +
.../sis/internal/sql/feature/SelectionClause.java | 176 ++
.../sql/feature/SelectionClauseWriter.java | 419 ++++
.../sis/internal/sql/feature/SpatialFunctions.java | 144 --
.../org/apache/sis/internal/sql/feature/Table.java | 529 ++---
.../sis/internal/sql/feature/TableAnalyzer.java | 189 ++
.../sis/internal/sql/feature/TableReference.java | 45 +-
.../sis/internal/sql/feature/ValueGetter.java | 372 ++++
.../sis/internal/sql/feature/package-info.java | 6 +-
.../internal/sql/postgis/ExtendedClauseWriter.java | 70 +
.../sis/internal/sql/postgis/ExtendedInfo.java | 82 +
.../apache/sis/internal/sql/postgis/Postgres.java | 151 ++
.../sis/internal/sql/postgis/package-info.java | 27 +
.../sis/internal/stream/BaseStreamWrapper.java | 97 +
.../apache/sis/internal/stream/DeferredStream.java | 168 ++
.../sis/internal/stream/DoubleStreamWrapper.java | 285 +++
.../sis/internal/stream/PaginedDoubleStream.java | 102 +
.../apache/sis/internal/stream/PaginedStream.java | 113 ++
.../apache/sis/internal/stream/StreamWrapper.java | 319 +++
.../apache/sis/internal/stream/package-info.java | 34 +
.../java/org/apache/sis/storage/sql/SQLStore.java | 66 +-
.../apache/sis/storage/sql/SQLStoreProvider.java | 9 +-
.../org/apache/sis/storage/sql/package-info.java | 20 +-
.../apache/sis/internal/sql/feature/EWKBTest.java | 125 ++
.../sql/feature/SelectionClauseWriterTest.java | 151 ++
.../sis/internal/sql/postgis/PostgresTest.java | 45 +
.../org/apache/sis/storage/sql/SQLStoreTest.java | 205 +-
.../org/apache/sis/test/suite/SQLTestSuite.java | 4 +-
.../sis/internal/sql/feature/hexa_ewkb_4326.csv | 21 +
.../sis/internal/sql/feature/hexa_ewkb_4326.sql | 43 +
storage/sis-storage/pom.xml | 15 +-
.../apache/sis/index/tree/LatLonPointRadius.java | 138 --
.../java/org/apache/sis/index/tree/NodeType.java | 28 -
.../java/org/apache/sis/index/tree/QuadTree.java | 622 ------
.../org/apache/sis/index/tree/QuadTreeData.java | 59 -
.../org/apache/sis/index/tree/QuadTreeNode.java | 178 --
.../org/apache/sis/index/tree/QuadTreeWriter.java | 163 --
.../java/org/apache/sis/index/tree/Quadrant.java | 62 -
.../org/apache/sis/index/tree/package-info.java | 24 -
.../sis/internal/storage/AbstractFeatureSet.java | 2 +
.../sis/internal/storage/AbstractGridResource.java | 319 ++-
.../sis/internal/storage/AbstractResource.java | 75 +-
.../sis/internal/storage/AggregatedFeatureSet.java | 2 +
.../apache/sis/internal/storage/Capability.java | 10 +-
.../internal/storage/ConcatenatedFeatureSet.java | 4 +-
.../sis/internal/storage/GridResourceWrapper.java | 227 +++
.../sis/internal/storage/JoinFeatureSet.java | 44 +-
.../sis/internal/storage/MemoryGridResource.java | 181 ++
.../sis/internal/storage/MetadataBuilder.java | 327 ++-
.../internal/storage/RasterLoadingStrategy.java | 112 +
.../org/apache/sis/internal/storage/Resources.java | 27 +-
.../sis/internal/storage/Resources.properties | 5 +
.../sis/internal/storage/Resources_fr.properties | 7 +-
.../apache/sis/internal/storage/StoreMetadata.java | 27 +-
.../sis/internal/storage/StoreUtilities.java | 32 +-
.../sis/internal/storage/TiledGridCoverage.java | 776 +++++++
.../sis/internal/storage/TiledGridResource.java | 543 +++++
.../apache/sis/internal/storage/URIDataStore.java | 43 +-
.../internal/storage/csv/MovingFeatureBuilder.java | 299 +++
.../storage/csv/MovingFeatureIterator.java | 11 +-
.../org/apache/sis/internal/storage/csv/Store.java | 3 +-
.../sis/internal/storage/csv/StoreProvider.java | 10 +-
.../storage/folder/FolderStoreProvider.java | 29 +-
.../apache/sis/internal/storage/folder/Store.java | 19 +-
.../sis/internal/storage/folder/package-info.java | 2 +-
.../sis/internal/storage/io/ChannelData.java | 61 +-
.../sis/internal/storage/io/ChannelDataInput.java | 20 +-
.../sis/internal/storage/io/ChannelDataOutput.java | 20 +-
.../sis/internal/storage/io/ChannelFactory.java | 5 +-
.../sis/internal/storage/io/DataTransfer.java | 7 +-
.../internal/storage/io/HyperRectangleReader.java | 83 +-
.../sis/internal/storage/io/IOUtilities.java | 48 +-
.../internal/storage/io/MemoryDataTransfer.java | 3 +-
.../org/apache/sis/internal/storage/io/Region.java | 62 +-
.../apache/sis/internal/storage/package-info.java | 2 +-
.../sis/internal/storage/query/FeatureSubset.java | 148 --
.../sis/internal/storage/query/SimpleQuery.java | 486 -----
.../internal/storage/query/SortByComparator.java | 116 --
.../sis/internal/storage/query/package-info.java | 32 -
.../sis/internal/storage/wkt/FirstKeywordPeek.java | 162 +-
.../org/apache/sis/internal/storage/wkt/Store.java | 2 +-
.../sis/internal/storage/wkt/StoreFormat.java | 13 +-
.../sis/internal/storage/wkt/package-info.java | 2 +-
.../org/apache/sis/internal/storage/xml/Store.java | 3 +-
.../java/org/apache/sis/storage/CoverageQuery.java | 374 ++++
.../org/apache/sis/storage/CoverageSubset.java | 208 ++
.../java/org/apache/sis/storage/DataStore.java | 77 +-
.../org/apache/sis/storage/DataStoreProvider.java | 8 +-
.../org/apache/sis/storage/DataStoreRegistry.java | 85 +-
.../java/org/apache/sis/storage/FeatureNaming.java | 3 +-
.../java/org/apache/sis/storage/FeatureQuery.java | 673 +++++++
.../java/org/apache/sis/storage/FeatureSet.java | 5 +-
.../java/org/apache/sis/storage/FeatureSubset.java | 147 ++
.../apache/sis/storage/GridCoverageResource.java | 37 +-
.../main/java/org/apache/sis/storage/Query.java | 79 +-
.../main/java/org/apache/sis/storage/Resource.java | 7 +
.../org/apache/sis/storage/StorageConnector.java | 65 +-
.../sis/storage/UnsupportedEncodingException.java | 62 +
.../apache/sis/storage/event/StoreListeners.java | 28 +-
.../java/org/apache/sis/storage/package-info.java | 2 +-
.../org.apache.sis.storage.DataStoreProvider | 1 +
.../apache/sis/index/tree/TestQuadTreeNode.java | 31 -
.../storage/ConcatenatedFeatureSetTest.java | 5 +-
.../sis/internal/storage/JoinFeatureSetTest.java | 14 +-
.../internal/storage/MemoryGridResourceTest.java | 105 +
.../sis/internal/storage/MetadataBuilderTest.java | 73 +-
.../sis/internal/storage/StoreUtilitiesTest.java | 47 +
.../sis/internal/storage/folder/StoreTest.java | 5 +-
.../storage/io/HyperRectangleReaderTest.java | 3 +-
.../storage/io/RewindableLineReaderTest.java | 2 +-
.../internal/storage/query/SimpleQueryTest.java | 197 --
.../org/apache/sis/storage/CoverageQueryTest.java | 182 ++
.../org/apache/sis/storage/DataStoresTest.java | 81 +-
.../org/apache/sis/storage/FeatureQueryTest.java | 212 ++
.../org/apache/sis/storage/GridResourceMock.java | 106 +
.../sis/test/storage/CoverageReadConsistency.java | 555 +++++
.../apache/sis/test/storage/SubsampledImage.java | 263 +++
.../org/apache/sis/test/storage/package-info.java | 34 +
.../apache/sis/test/suite/StorageTestSuite.java | 7 +-
storage/sis-xmlstore/pom.xml | 2 +-
.../apache/sis/internal/storage/gpx/Metadata.java | 7 +-
.../sis/internal/storage/gpx/StoreProvider.java | 10 +-
.../apache/sis/internal/storage/gpx/Writer.java | 4 +-
.../storage/xml/stream/StaxStreamReader.java | 16 +-
1341 files changed, 144541 insertions(+), 31768 deletions(-)
diff --cc application/sis-javafx/src/main/java/org/apache/sis/gui/metadata/IdentificationInfo.java
index 0000000,1c83184..597bb89
mode 000000,100644..100644
--- a/application/sis-javafx/src/main/java/org/apache/sis/gui/metadata/IdentificationInfo.java
+++ b/application/sis-javafx/src/main/java/org/apache/sis/gui/metadata/IdentificationInfo.java
@@@ -1,0 -1,502 +1,501 @@@
+ /*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+ package org.apache.sis.gui.metadata;
+
+ import java.util.Date;
+ import java.util.Set;
+ import java.util.Collection;
+ import java.util.LinkedHashSet;
+ import java.util.StringJoiner;
+ import javafx.concurrent.Task;
+ import javafx.geometry.HPos;
+ import javafx.scene.canvas.Canvas;
+ import javafx.scene.canvas.GraphicsContext;
+ import javafx.scene.control.Label;
+ import javafx.scene.image.Image;
+ import javafx.scene.paint.Color;
+ import javafx.scene.text.Font;
+ import javafx.scene.text.FontWeight;
+ import org.opengis.metadata.Metadata;
+ import org.opengis.metadata.Identifier;
+ import org.opengis.metadata.citation.Citation;
+ import org.opengis.metadata.citation.CitationDate;
+ import org.opengis.metadata.citation.DateType;
+ import org.opengis.metadata.extent.Extent;
+ import org.opengis.metadata.extent.GeographicBoundingBox;
+ import org.opengis.metadata.extent.GeographicDescription;
+ import org.opengis.metadata.extent.GeographicExtent;
+ import org.opengis.metadata.identification.Identification;
+ import org.opengis.metadata.distribution.Format;
-import org.opengis.util.InternationalString;
+ import org.apache.sis.metadata.iso.citation.Citations;
+ import org.apache.sis.metadata.iso.extent.Extents;
+ import org.apache.sis.referencing.IdentifiedObjects;
+ import org.apache.sis.internal.referencing.Formulas;
+ import org.apache.sis.internal.gui.BackgroundThreads;
+ import org.apache.sis.measure.Latitude;
+ import org.apache.sis.measure.Longitude;
+ import org.apache.sis.storage.Aggregate;
+ import org.apache.sis.storage.Resource;
+ import org.apache.sis.storage.DataStoreException;
+ import org.apache.sis.util.CharSequences;
+ import org.apache.sis.util.Workaround;
+ import org.apache.sis.util.resources.Vocabulary;
+
+ import static org.apache.sis.internal.util.CollectionsExt.nonNull;
+
+
+ /**
+ * The pane where to show the values of {@link Identification} objects.
+ * The same pane can be used for an arbitrary amount of identifications.
+ * Each instance is identified by its title.
+ * The content is:
+ *
+ * <ol>
+ * <li>The title in bold font.</li>
+ * <li>Identifiers.</li>
+ * <li>Abstract, or purpose, or credit (in this preference order).</li>
+ * <li>Topic category.</li>
+ * <li>Release date, or publication date, or creation date, or any date (in this preference order).</li>
+ * <li>Type of resource.</li>
+ * <li>Resource format.</li>
+ * <li>Spatiotemporal extent as a textual description.</li>
+ * <li>Extent shown as a rectangle on a world map.</li>
+ * </ol>
+ *
+ * @author Smaniotto Enzo (GSoC)
+ * @author Martin Desruisseaux (Geomatys)
+ * @version 1.1
+ * @since 1.1
+ * @module
+ */
+ final class IdentificationInfo extends Section<Identification> {
+ /**
+ * Size of the map. Current version uses a size of 360×180° so that the scale factor
+ * from the map to degrees is 1. Future version may use a different size, in which
+ * case the scale factor will need to be added in the code.
+ */
+ private static final double MAP_WIDTH = Longitude.MAX_VALUE - Longitude.MIN_VALUE,
+ MAP_HEIGHT = Latitude.MAX_VALUE - Latitude.MIN_VALUE;
+
+ /**
+ * Minimal size of rectangles to be drawn by {@link IdentificationInfo#drawOnMap(GeographicBoundingBox)}.
+ * If a rectangle is smaller, it will be expanded to this size. We use a minimal size because otherwise
+ * small rectangles may be practically invisible.
+ */
+ private static final double MIN_RECT_SIZE = 6;
+
+ /**
+ * The resource title, or if non the identifier as a fallback.
+ */
+ private final Label title;
+
+ /**
+ * The canvas where to draw geographic bounding boxes over a world map.
+ * Shall never be null, but need to be recreated for each new map.
+ * A canvas of size (0,0) is available at initialization time for drawing a new map.
+ *
+ * @see #isWorldMapEmpty()
+ * @see #drawOnMap(GeographicBoundingBox)
+ */
+ private Canvas extentOnMap;
+
+ /**
+ * Whether the geographic bounding box covers the world.
+ */
+ private boolean isWorld;
+
+ /**
+ * Whether the map was visible with previous data, before {@link #buildContent(Identification)} call.
+ * We use this information for avoiding flicker effect when a map is removed, then added back after a
+ * slight delay by {@link #completeMissingGeographicBounds(Aggregate)}.
+ */
+ private boolean mapWasVisible;
+
+ /**
+ * The task which is running in background thread for searching bounding boxes in {@link Aggregate} children.
+ * We use this reference for cancelling the task if a new resource is selected before the previous task finished.
+ */
+ private Task<?> aggregateWalker;
+
+ /**
+ * Creates an initially empty view for identification information.
+ */
+ IdentificationInfo(final MetadataSummary owner) {
+ super(owner);
+ title = new Label();
+ title.setFont(Font.font(null, FontWeight.BOLD, 15));
+ add(title, 0, 0, NUM_CHILD_PER_LINE, 1);
+
+ extentOnMap = new Canvas(); // Size of (0,0) by default.
+ add(extentOnMap, 0, 0, NUM_CHILD_PER_LINE, 1); // Will be moved to a different location by buildContent(…).
+ setHalignment(extentOnMap, HPos.CENTER);
+ finished();
+ }
+
+ /**
+ * If the world map contains a map from some previous metadata, discards the old canvas and create a new one.
+ * We do that because as of JavaFX 13, we found no way to clear the content of an existing {@link Canvas}.
+ */
+ @Workaround(library = "JavaFX", version = "13")
+ private void clearWorldMap() {
+ // Do not clear `isWorld` because caller may want the clear the map because it is world map.
+ if (!isWorldMapEmpty()) {
+ final int p = linesStartIndex() - 1;
+ assert getChildren().get(p) == extentOnMap;
+ getChildren().set(p, extentOnMap = new Canvas());
+ setColumnSpan(extentOnMap, NUM_CHILD_PER_LINE);
+ setHalignment(extentOnMap, HPos.CENTER);
+ }
+ }
+
+ /**
+ * Returns whether {@link #extentOnMap} is considered empty and available for use.
+ */
+ private boolean isWorldMapEmpty() {
+ return extentOnMap.getWidth() == 0 && extentOnMap.getHeight() == 0;
+ }
+
+ /**
+ * Returns {@code true} if this section contains no data.
+ */
+ @Override
+ boolean isEmpty() {
+ return super.isEmpty() && isWorldMapEmpty();
+ }
+
+ /**
+ * If this pane has no geographic bounds information, search for geographic bounds in the child resources.
+ * This method is used as a fallback when {@link #buildContent(Identification)} did not find bounding box
+ * in the metadata directly provided. If bounds has been found, then this method does nothing.
+ *
+ * <p>The method does nothing if there is more than one {@link Identification} metadata element,
+ * because we would not know to which element to assign the extent of children resources.</p>
+ */
+ final void completeMissingGeographicBounds(final Aggregate resource) {
+ if (!isWorld && isWorldMapEmpty() && !super.isEmpty() && numPages() == 1) {
+ /*
+ * If a map was visible previously, add back an empty map for avoiding flicking effect.
+ * If it appears that the map has no bounding box to show, it will be removed after the
+ * background thread finished its work.
+ */
+ if (mapWasVisible) {
+ drawMapBackground();
+ }
+ BackgroundThreads.execute(aggregateWalker = new Task<Set<GeographicBoundingBox>>() {
+ /** Invoked in a background thread for fetching bounding boxes. */
+ @Override protected Set<GeographicBoundingBox> call() throws DataStoreException {
+ final Set<GeographicBoundingBox> boxes = new LinkedHashSet<>();
+ for (final Resource child : resource.components()) {
+ final Metadata metadata = child.getMetadata();
+ if (isCancelled()) break;
+ if (metadata != null) {
+ for (final Identification id : nonNull(metadata.getIdentificationInfo())) {
+ if (id != null) {
+ for (final Extent extent : id.getExtents()) {
+ final GeographicBoundingBox b = Extents.getGeographicBoundingBox(extent);
+ if (b != null) boxes.add(b);
+ }
+ }
+ }
+ }
+ }
+ return boxes;
+ }
+
+ /** Shows the result in JavaFX thread. */
+ @Override protected void succeeded() {
+ aggregateWalker = null;
+ drawOnMap(getValue());
+ }
+
+ /** Invoked in JavaFX thread if metadata loading failed. */
+ @Override protected void failed() {
+ aggregateWalker = null;
+ owner.setError(getException());
+ }
+ });
+ }
+ }
+
+ /**
+ * Sets the identification information from the given metadata.
+ */
+ @Override
+ void setInformation(final Metadata metadata) {
+ if (aggregateWalker != null) {
+ aggregateWalker.cancel();
+ aggregateWalker = null;
+ }
+ final Collection<? extends Identification> info;
+ if (metadata == null) {
+ clearWorldMap();
+ info = null;
+ } else {
+ info = metadata.getIdentificationInfo();
+ }
+ setInformation(nonNull(info), Identification[]::new);
+ }
+
+ /**
+ * Invoked when new identification information should be shown.
+ * This method updates all fields in this section with the content of given identification information.
+ * The content is summarized in {@linkplain IdentificationInfo class javadoc}.
+ */
+ @Override
+ void buildContent(final Identification info) {
+ mapWasVisible = !isWorldMapEmpty();
+ isWorld = false;
+ clearWorldMap();
+ String text = null;
+ final Citation citation = info.getCitation();
+ if (citation != null) {
+ text = owner.string(citation.getTitle());
+ if (text == null) {
+ text = Citations.getIdentifier(citation);
+ }
+ }
+ if (text == null) {
+ text = owner.vocabulary.getString(Vocabulary.Keys.Untitled);
+ } else if (CharSequences.isUnicodeIdentifier(text)) {
+ text = CharSequences.camelCaseToSentence(text).toString();
+ }
+ title.setText(text);
+ /*
+ * Identifiers as a comma-separated list on a single line. Each identifier
+ * is formatted as "codespace:code" or only "code" if there is no codespace.
+ */
+ if (citation != null) {
+ final StringJoiner buffer = new StringJoiner(", ");
+ for (final Identifier id : citation.getIdentifiers()) {
+ buffer.add(IdentifiedObjects.toString(id));
+ }
+ if (buffer.length() != 0) {
+ addLine(Vocabulary.Keys.Identifiers, buffer.toString());
+ }
+ }
+ /*
+ * The abstract, or if there is no abstract the purpose, or if no purpose the credit as a fallback.
+ * We use those fallback because they can provide some hints about the product.
+ * The topic category (climatology, health, etc.) follows.
+ */
+ short label = Vocabulary.Keys.Abstract;
+ text = owner.string(info.getAbstract());
+ if (text == null) {
+ label = Vocabulary.Keys.Purpose;
+ text = owner.string(info.getPurpose());
+ if (text == null) {
- for (final InternationalString c : nonNull(info.getCredits())) {
- text = owner.string(c);
++ for (final String c : nonNull(info.getCredits())) {
++ text = c;
+ if (text != null) {
+ label = Vocabulary.Keys.Credit;
+ break;
+ }
+ }
+ }
+ }
+ addLine(label, text);
+ /*
+ * Topic category.
+ */
+ addLine(Vocabulary.Keys.TopicCategory, owner.string(nonNull(info.getTopicCategories())));
+ /*
+ * Select a single, arbitrary date. We take the release or publication date if available.
+ * If no publication date is found, fallback on the creation date. If no creation date is
+ * found neither, fallback on the first date regardless its type.
+ */
+ if (citation != null) {
+ Date date = null;
+ label = Vocabulary.Keys.Date;
+ for (final CitationDate c : nonNull(citation.getDates())) {
+ final Date cd = c.getDate();
+ if (cd != null) {
+ final DateType type = c.getDateType();
+ if (DateType.PUBLICATION.equals(type) || DateType.RELEASED.equals(type)) {
+ label = Vocabulary.Keys.PublicationDate;
+ date = cd;
+ break; // Take the first publication or release date.
+ }
+ final boolean isCreation = DateType.CREATION.equals(type);
+ if (date == null || isCreation) {
+ label = isCreation ? Vocabulary.Keys.CreationDate : Vocabulary.Keys.Date;
+ date = cd; // Fallback date: creation date, or the first date otherwise.
+ }
+ }
+ }
+ if (date != null) {
+ addLine(label, owner.getDateFormat().format(date));
+ }
+ }
+ /*
+ * Type of resource: vector, grid, table, tin, video, etc. It gives a slight overview
+ * of the next section, "Spatial representation". For that reason we put it close to
+ * that next section, i.e. last in this section but just before the map.
+ */
+ addLine(Vocabulary.Keys.TypeOfResource, owner.string(nonNull(info.getSpatialRepresentationTypes())));
+ /*
+ * Resource format. Current implementation shows only the first format found.
+ */
+ for (final Format format : nonNull(info.getResourceFormats())) {
+ final Citation c = format.getFormatSpecificationCitation();
+ if (c != null) {
+ text = owner.string(c.getTitle());
+ if (text != null) {
+ addLine(Vocabulary.Keys.Format, text);
+ break;
+ }
+ }
+ }
+ /*
+ * Write the first description about the spatio-temporal extent, then draw all geographic bounding boxes
+ * on a world map. If the bounding box encompasses the whole world, replace it by a "World" description.
+ * The reason is that drawing a box over the whole world is not very informative; it rather looks like a
+ * border around the image.
+ */
+ text = null;
+ Identifier identifier = null;
+ for (final Extent extent : nonNull(info.getExtents())) {
+ if (extent != null) {
+ if (text == null) {
+ text = owner.string(extent.getDescription());
+ }
+ for (final GeographicExtent ge : nonNull(extent.getGeographicElements())) {
+ if (identifier == null && ge instanceof GeographicDescription) {
+ identifier = ((GeographicDescription) ge).getGeographicIdentifier();
+ }
+ if (!isWorld && ge instanceof GeographicBoundingBox) {
+ isWorld = drawOnMap((GeographicBoundingBox) ge);
+ }
+ }
+ }
+ }
+ if (text == null) {
+ text = IdentifiedObjects.toString(identifier);
+ }
+ if (isWorld) {
+ clearWorldMap();
+ if (text == null) {
+ text = owner.vocabulary.getString(Vocabulary.Keys.World);
+ }
+ }
+ addLine(Vocabulary.Keys.Extent, text);
+ setRowIndex(extentOnMap, nextRowIndex());
+ }
+
+ /**
+ * Draws all given geographic bounding boxes on the map.
+ */
+ private void drawOnMap(final Set<GeographicBoundingBox> boxes) {
+ if (boxes.isEmpty()) {
+ clearWorldMap();
+ return;
+ }
+ for (final GeographicBoundingBox box : boxes) {
+ isWorld = drawOnMap(box);
+ if (isWorld) {
+ clearWorldMap();
+ return;
+ }
+ }
+ }
+
+ /**
+ * Draws the given geographic bounding box on the map. This method can be invoked many times
+ * if there is many bounding boxes on the same map.
+ *
+ * @param bbox the bounding box to draw.
+ * @return {@code true} if the given bounding box encompasses the whole world.
+ */
+ private boolean drawOnMap(final GeographicBoundingBox bbox) {
+ double north = Latitude.clamp(bbox.getNorthBoundLatitude());
+ double south = Latitude.clamp(bbox.getSouthBoundLatitude());
+ double east = bbox.getEastBoundLongitude();
+ double west = bbox.getWestBoundLongitude();
+ if (Math.abs(east - west) >= (Longitude.MAX_VALUE - Longitude.MIN_VALUE - 2*Formulas.ANGULAR_TOLERANCE)) {
+ if (north >= Latitude.MAX_VALUE - Formulas.ANGULAR_TOLERANCE &&
+ south <= Latitude.MIN_VALUE + Formulas.ANGULAR_TOLERANCE)
+ {
+ return true; // Bounding box encompasses the whole world.
+ }
+ west = Longitude.MIN_VALUE;
+ east = Longitude.MAX_VALUE; // Whole world in longitudes, but not in latitude.
+ } else {
+ if (west != 180) west = Longitude.normalize(west);
+ if (east != 180) east = Longitude.normalize(east);
+ if (east < west) {
+ east += Longitude.MAX_VALUE - Longitude.MIN_VALUE; // Box crosses the anti-meridian.
+ }
+ }
+ if (north >= south && Double.isFinite(east) && Double.isFinite(west)) {
+ double x = MAP_WIDTH / 2 + west;
+ double y = MAP_HEIGHT / 2 - north;
+ double w = east - west;
+ double h = north - south;
+ if (w < MIN_RECT_SIZE) {
+ x -= (MIN_RECT_SIZE - w) / 2;
+ w = MIN_RECT_SIZE;
+ }
+ if (h < MIN_RECT_SIZE) {
+ y -= (MIN_RECT_SIZE - h) / 2;
+ h = MIN_RECT_SIZE;
+ }
+ final double wi = Math.min(w, MAP_WIDTH - x); // Width of part inside [-180 … +180]°.
+ w -= wi; // Width of part not drawn by `wi`.
+ final boolean crossAntimeridian = (w > 0);
+ /*
+ * At this point we got the coordinates of the rectangle to draw, adjusted for making sure
+ * that they are inside valid ranges. The `w` variable is usually 0, unless we had to cut
+ * the rectangle in two parts because of anti-meridian crossing.
+ */
+ if (isWorldMapEmpty()) {
+ drawMapBackground();
+ }
+ final GraphicsContext gc = extentOnMap.getGraphicsContext2D();
+ gc.setStroke(Color.DARKBLUE);
+ gc.setGlobalAlpha(0.1);
+ gc.fillRect(x, y, wi, h);
+ if (crossAntimeridian) {
+ gc.fillRect(0, y, w, h); // Second half of rectangle crossing anti-meridian.
+ }
+ gc.setGlobalAlpha(1.0);
+ if (!crossAntimeridian) {
+ gc.strokeRect(x, y, wi, h);
+ } else {
+ double xw = x + wi;
+ double yh = y + h;
+ gc.strokePolyline(new double[] {xw, x, x, xw},
+ new double[] {y, y, yh, yh}, 4);
+ gc.strokePolyline(new double[] {0, w, w, 0},
+ new double[] {y, y, yh, yh}, 4);
+ }
+ }
+ return false;
+ }
+
+ /**
+ * Draws the map where bounding boxes will be overlay.
+ */
+ private boolean drawMapBackground() {
+ final Image image = MetadataSummary.getWorldMap();
+ if (image == null) {
+ return false;
+ }
+ extentOnMap.setWidth (image.getWidth());
+ extentOnMap.setHeight(image.getHeight());
+ extentOnMap.getGraphicsContext2D().drawImage(image, 0, 0);
+ return true;
+ }
+ }
diff --cc core/sis-feature/src/test/java/org/apache/sis/filter/PeriodLiteral.java
index 3adffe2,ab10b06..49e4412
--- a/core/sis-feature/src/test/java/org/apache/sis/filter/PeriodLiteral.java
+++ b/core/sis-feature/src/test/java/org/apache/sis/filter/PeriodLiteral.java
@@@ -18,16 -18,20 +18,20 @@@ package org.apache.sis.filter
import java.util.Date;
import java.io.Serializable;
+ import org.opengis.util.ScopedName;
-import org.opengis.metadata.Identifier;
+ import org.apache.sis.test.TestUtilities;
+
+ // Branch-dependent imports
+ import org.opengis.feature.Feature;
+ import org.opengis.filter.Expression;
+ import org.opengis.filter.Literal;
import org.opengis.temporal.Period;
import org.opengis.temporal.Duration;
import org.opengis.temporal.RelativePosition;
import org.opengis.temporal.TemporalPosition;
import org.opengis.temporal.TemporalPrimitive;
import org.opengis.temporal.TemporalGeometricPrimitive;
- import org.opengis.filter.expression.Literal;
- import org.opengis.filter.expression.ExpressionVisitor;
+import org.opengis.referencing.ReferenceIdentifier;
- import org.apache.sis.test.TestUtilities;
/**
@@@ -79,7 -75,8 +75,8 @@@ final strictfp class PeriodLiteral impl
}
/** Not needed for the tests. */
- @Override public Identifier getName() {throw new UnsupportedOperationException();}
+ @Override public ReferenceIdentifier getName() {throw new UnsupportedOperationException();}
+ @Override public ScopedName getFunctionName() {throw new UnsupportedOperationException();}
@Override public RelativePosition relativePosition(TemporalPrimitive o) {throw new UnsupportedOperationException();}
@Override public Duration distance(TemporalGeometricPrimitive o) {throw new UnsupportedOperationException();}
@Override public Duration length() {throw new UnsupportedOperationException();}
diff --cc core/sis-metadata/src/test/java/org/apache/sis/metadata/iso/citation/HardCodedCitations.java
index f23a5eb,33e3787..a41e840
--- a/core/sis-metadata/src/test/java/org/apache/sis/metadata/iso/citation/HardCodedCitations.java
+++ b/core/sis-metadata/src/test/java/org/apache/sis/metadata/iso/citation/HardCodedCitations.java
@@@ -90,12 -88,11 +90,12 @@@ public final strictfp class HardCodedCi
*/
public static final DefaultCitation EPSG;
static {
- final DefaultOnlineResource r = new DefaultOnlineResource(URI.create("http://www.epsg.org"));
+ final DefaultOnlineResource r = new DefaultOnlineResource(URI.create("https://epsg.org/"));
r.setFunction(OnLineFunction.INFORMATION);
- final DefaultResponsibility p = new DefaultResponsibility(Role.PRINCIPAL_INVESTIGATOR, null,
- new DefaultOrganisation("International Association of Oil & Gas Producers", null, null, new DefaultContact(r)));
+ final DefaultResponsibleParty p = new DefaultResponsibleParty(Role.PRINCIPAL_INVESTIGATOR);
+ p.setParties(singleton(new DefaultOrganisation("International Association of Oil & Gas Producers",
+ null, null, new DefaultContact(r))));
final DefaultCitation c = new DefaultCitation("EPSG Geodetic Parameter Dataset");
c.getPresentationForms().add(PresentationForm.TABLE_DIGITAL);
diff --cc core/sis-referencing/src/main/java/org/apache/sis/referencing/Properties.java
index 10c7911,6ad7f91..de893f1
--- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/Properties.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/Properties.java
@@@ -24,11 -24,13 +24,13 @@@ import org.opengis.util.GenericName
import org.opengis.referencing.datum.Datum;
import org.opengis.referencing.ReferenceSystem;
import org.opengis.referencing.IdentifiedObject;
+import org.opengis.referencing.ReferenceIdentifier;
import org.opengis.referencing.operation.CoordinateOperation;
import org.opengis.referencing.operation.OperationMethod;
+ import org.opengis.referencing.operation.SingleOperation;
import org.opengis.metadata.quality.PositionalAccuracy;
import org.apache.sis.internal.util.AbstractMap;
+ import org.apache.sis.internal.referencing.CoordinateOperations;
import org.apache.sis.util.Deprecable;
diff --cc core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/CoordinateOperationFinder.java
index dd64de3,8997504..b3c2b57
--- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/CoordinateOperationFinder.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/CoordinateOperationFinder.java
@@@ -977,31 -1010,14 +1010,29 @@@ public class CoordinateOperationFinder
int delta = source.getCoordinateSystem().getDimension();
final int startAtDimension = endAtDimension;
endAtDimension += delta;
- /*
- * Constructs the pass through transform only if there is at least one coordinate to pass.
- * Actually the code below would work inconditionally, but we perform this check anyway
- * for avoiding the creation of intermediate objects.
- */
- if (!(startAtDimension == 0 && endAtDimension == remainingSourceDimensions)) {
+ final int numTrailingCoordinates = remainingSourceDimensions - endAtDimension;
+ CoordinateOperation subOperation = info.operation;
+ if ((startAtDimension | numTrailingCoordinates) != 0) {
- subOperation = new DefaultPassThroughOperation(IdentifiedObjects.getProperties(subOperation),
- stepSourceCRS, stepTargetCRS, subOperation, startAtDimension, numTrailingCoordinates);
+ final Map<String,?> properties = IdentifiedObjects.getProperties(subOperation);
+ /*
+ * The DefaultPassThroughOperation constuctor expect a SingleOperation.
+ * In most case, the 'subOperation' is already of this kind. However if
+ * it is not, try to copy it in such object.
+ */
+ final SingleOperation op;
+ if (SubTypes.isSingleOperation(subOperation)) {
+ op = (SingleOperation) subOperation;
+ } else {
++ final MathTransform subTransform = subOperation.getMathTransform();
+ op = factorySIS.createSingleOperation(properties,
+ subOperation.getSourceCRS(), subOperation.getTargetCRS(), null,
+ new DefaultOperationMethod(subTransform), subTransform);
+ }
+ subOperation = new DefaultPassThroughOperation(properties, stepSourceCRS, stepTargetCRS,
- op, startAtDimension, remainingSourceDimensions - endAtDimension);
++ op, startAtDimension, numTrailingCoordinates);
}
/*
- * Concatenate the operation with the ones we have found so far, and use the current 'stepTargetCRS'
+ * Concatenate the operation with the ones we have found so far, and use the current `stepTargetCRS`
* as the source CRS for the next operation step. We also need to adjust the dimension indices,
* since the previous operations may have removed some dimensions. Note that the delta may also
* be negative in a few occasions.
diff --cc core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/CoordinateOperationRegistry.java
index 43f8db0,505f3ec..a5021e2
--- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/CoordinateOperationRegistry.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/CoordinateOperationRegistry.java
@@@ -785,10 -882,10 +882,10 @@@ class CoordinateOperationRegistry
/*
* Reuse the same operation method, but we may need to change its number of dimension.
* The capability to resize an OperationMethod is specific to Apache SIS, so we must
- * be prepared to see the 'redimension' call fails. In such case, we will try to get
+ * be prepared to see the `redimension` call fails. In such case, we will try to get
* the SIS implementation of the operation method and try again.
*/
- if (operation instanceof SingleOperation) {
+ if (SubTypes.isSingleOperation(operation)) {
final SingleOperation single = (SingleOperation) operation;
properties.put(CoordinateOperations.PARAMETERS_KEY, single.getParameterValues());
if (method == null) {
diff --cc core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/DefaultPassThroughOperation.java
index 0a7026c,717129a..38e0cfb
--- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/DefaultPassThroughOperation.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/DefaultPassThroughOperation.java
@@@ -71,10 -68,10 +71,10 @@@ public class DefaultPassThroughOperatio
*
* @see #getOperation()
*/
- private CoordinateOperation operation;
+ private SingleOperation operation;
/**
- * Constructs a single operation from a set of properties.
+ * Constructs a pass-through operation from a set of properties.
* The properties given in argument follow the same rules than for the
* {@linkplain AbstractCoordinateOperation#AbstractCoordinateOperation(Map, CoordinateReferenceSystem,
* CoordinateReferenceSystem, CoordinateReferenceSystem, MathTransform) super-class constructor}.
diff --cc ide-project/NetBeans/nbproject/build-impl.xml~
index 0000000,fb2b9ce..7cbe9a0
mode 000000,100644..100644
--- a/ide-project/NetBeans/nbproject/build-impl.xml~
+++ b/ide-project/NetBeans/nbproject/build-impl.xml~
@@@ -1,0 -1,2149 +1,2131 @@@
+ <?xml version="1.0" encoding="UTF-8"?>
+ <!--
+ *** GENERATED FROM project.xml - DO NOT EDIT ***
+ *** EDIT ../build.xml INSTEAD ***
+
+ For the purpose of easier reading the script
+ is divided into following sections:
+
+ - initialization
+ - compilation
+ - jar
+ - execution
+ - debugging
+ - javadoc
+ - test compilation
+ - test execution
+ - test debugging
+ - applet
+ - cleanup
+
+ -->
-<project xmlns:if="ant:if" xmlns:j2seproject1="http://www.netbeans.org/ns/j2se-project/1" xmlns:j2seproject3="http://www.netbeans.org/ns/j2se-project/3" xmlns:jaxrpc="http://www.netbeans.org/ns/j2se-project/jax-rpc" xmlns:unless="ant:unless" basedir=".." default="default" name="Apache_SIS_on_GeoAPI_4.0-impl">
++<project xmlns:if="ant:if" xmlns:j2seproject1="http://www.netbeans.org/ns/j2se-project/1" xmlns:j2seproject3="http://www.netbeans.org/ns/j2se-project/3" xmlns:jaxrpc="http://www.netbeans.org/ns/j2se-project/jax-rpc" xmlns:unless="ant:unless" basedir=".." default="default" name="Apache_SIS_on_GeoAPI_3.1-impl">
+ <fail message="Please build using Ant 1.8.0 or higher.">
+ <condition>
+ <not>
+ <antversion atleast="1.8.0"/>
+ </not>
+ </condition>
+ </fail>
+ <target depends="test,jar,javadoc" description="Build and test whole project." name="default"/>
+ <!--
+ ======================
+ INITIALIZATION SECTION
+ ======================
+ -->
+ <target name="-pre-init">
+ <!-- Empty placeholder for easier customization. -->
+ <!-- You can override this target in the ../build.xml file. -->
+ </target>
+ <target depends="-pre-init" name="-init-private">
+ <property file="nbproject/private/config.properties"/>
+ <property file="nbproject/private/configs/${config}.properties"/>
+ <property file="nbproject/private/private.properties"/>
+ </target>
+ <target depends="-pre-init,-init-private" name="-init-user">
+ <property file="${user.properties.file}"/>
+ <!-- The two properties below are usually overridden -->
+ <!-- by the active platform. Just a fallback. -->
+ <property name="default.javac.source" value="1.6"/>
+ <property name="default.javac.target" value="1.6"/>
+ </target>
+ <target depends="-pre-init,-init-private,-init-user" name="-init-project">
+ <property file="nbproject/configs/${config}.properties"/>
+ <property file="nbproject/project.properties"/>
+ </target>
+ <target name="-init-modules-supported">
+ <condition property="modules.supported.internal" value="true">
+ <not>
+ <matches pattern="1\.[0-8](\..*)?" string="${javac.source}"/>
+ </not>
+ </condition>
+ </target>
+ <target depends="-init-modules-supported" if="modules.supported.internal" name="-init-macrodef-modulename">
+ <macrodef name="modulename" uri="http://www.netbeans.org/ns/j2se-project/3">
+ <attribute name="property"/>
+ <attribute name="sourcepath"/>
+ <sequential>
+ <loadresource property="@{property}" quiet="true">
+ <javaresource classpath="@{sourcepath}" name="module-info.java" parentFirst="false"/>
+ <filterchain>
+ <stripjavacomments/>
+ <linecontainsregexp>
+ <regexp pattern="module .* \{"/>
+ </linecontainsregexp>
+ <tokenfilter>
+ <linetokenizer/>
+ <replaceregex flags="s" pattern="(\s*module\s+)(\S*)(\s*\{.*)" replace="\2"/>
+ </tokenfilter>
+ <striplinebreaks/>
+ </filterchain>
+ </loadresource>
+ </sequential>
+ </macrodef>
+ </target>
+ <target depends="-init-modules-supported,-init-macrodef-modulename" if="modules.supported.internal" name="-init-source-module-properties">
+ <fail message="Java 9 support requires Ant 1.10.0 or higher.">
+ <condition>
+ <not>
+ <antversion atleast="1.10.0"/>
+ </not>
+ </condition>
+ </fail>
+ <j2seproject3:modulename property="module.name" sourcepath="${src.local-src.dir}:${src.javafx.dir}:${src.webapp.dir}:${src.console.dir}:${src.portrayal.dir}:${src.earth-obs.dir}:${src.geotiff.dir}:${src.netcdf.dir}:${src.shapefile.dir}:${src.sql.dir}:${src.xmlstore.dir}:${src.storage.dir}:${src.feature.dir}:${src.referencing.dir}:${src.ref-by-id.dir}:${src.metadata.dir}:${src.utility.dir}:${src.fra-profile.dir}:${src.jpn-profile.dir}:${src.gdal.dir}:${src.c.gdal.dir}"/>
+ <condition property="named.module.internal">
+ <and>
+ <isset property="module.name"/>
+ <length length="0" string="${module.name}" when="greater"/>
+ </and>
+ </condition>
+ <condition property="unnamed.module.internal">
+ <not>
+ <isset property="named.module.internal"/>
+ </not>
+ </condition>
+ <property name="javac.modulepath" value=""/>
+ <property name="run.modulepath" value="${javac.modulepath}"/>
+ <property name="module.build.classes.dir" value="${build.classes.dir}"/>
+ <property name="debug.modulepath" value="${run.modulepath}"/>
+ <property name="javac.upgrademodulepath" value=""/>
+ <property name="run.upgrademodulepath" value="${javac.upgrademodulepath}"/>
+ <condition else="" property="javac.systemmodulepath.cmd.line.arg" value="--system '${javac.systemmodulepath}'">
+ <and>
+ <isset property="javac.systemmodulepath"/>
+ <length length="0" string="${javac.systemmodulepath}" when="greater"/>
+ </and>
+ </condition>
+ <property name="dist.jlink.dir" value="${dist.dir}/jlink"/>
+ <property name="dist.jlink.output" value="${dist.jlink.dir}/${application.title}"/>
+ <property name="module.name" value=""/>
+ </target>
+ <target depends="-pre-init,-init-private,-init-user,-init-project,-init-macrodef-property,-init-modules-supported" name="-do-init">
+ <property name="platform.java" value="${java.home}/bin/java"/>
+ <available file="${manifest.file}" property="manifest.available"/>
+ <condition property="splashscreen.available">
+ <and>
+ <not>
+ <equals arg1="${application.splash}" arg2="" trim="true"/>
+ </not>
+ <available file="${application.splash}"/>
+ </and>
+ </condition>
+ <condition property="main.class.available">
+ <and>
+ <isset property="main.class"/>
+ <not>
+ <equals arg1="${main.class}" arg2="" trim="true"/>
+ </not>
+ </and>
+ </condition>
+ <condition property="profile.available">
+ <and>
+ <isset property="javac.profile"/>
+ <length length="0" string="${javac.profile}" when="greater"/>
+ <not>
+ <matches pattern="1\.[0-7](\..*)?" string="${javac.source}"/>
+ </not>
+ </and>
+ </condition>
+ <condition property="do.archive">
+ <or>
+ <not>
+ <istrue value="${jar.archive.disabled}"/>
+ </not>
+ <istrue value="${not.archive.disabled}"/>
+ </or>
+ </condition>
+ <condition property="do.archive+manifest.available">
+ <and>
+ <isset property="manifest.available"/>
+ <istrue value="${do.archive}"/>
+ </and>
+ </condition>
+ <condition property="do.archive+main.class.available">
+ <and>
+ <isset property="main.class.available"/>
+ <istrue value="${do.archive}"/>
+ </and>
+ </condition>
+ <condition property="do.archive+splashscreen.available">
+ <and>
+ <isset property="splashscreen.available"/>
+ <istrue value="${do.archive}"/>
+ </and>
+ </condition>
+ <condition property="do.archive+profile.available">
+ <and>
+ <isset property="profile.available"/>
+ <istrue value="${do.archive}"/>
+ </and>
+ </condition>
+ <condition property="have.tests">
+ <or>
+ <available file="${test.javafx.dir}"/>
+ <available file="${test.webapp.dir}"/>
+ <available file="${test.console.dir}"/>
+ <available file="${test.portrayal.dir}"/>
+ <available file="${test.earth-obs.dir}"/>
+ <available file="${test.geotiff.dir}"/>
+ <available file="${test.netcdf.dir}"/>
+ <available file="${test.shapefile.dir}"/>
+ <available file="${test.sql.dir}"/>
+ <available file="${test.xmlstore.dir}"/>
+ <available file="${test.storage.dir}"/>
+ <available file="${test.feature.dir}"/>
+ <available file="${test.referencing.dir}"/>
+ <available file="${test.ref-by-id.dir}"/>
+ <available file="${test.metadata.dir}"/>
+ <available file="${test.utility.dir}"/>
+ <available file="${test.fra-profile.dir}"/>
+ <available file="${test.jpn-profile.dir}"/>
+ <available file="${test.gdal.dir}"/>
+ </or>
+ </condition>
+ <condition property="have.sources">
+ <or>
+ <available file="${src.local-src.dir}"/>
+ <available file="${src.javafx.dir}"/>
+ <available file="${src.webapp.dir}"/>
+ <available file="${src.console.dir}"/>
+ <available file="${src.portrayal.dir}"/>
+ <available file="${src.earth-obs.dir}"/>
+ <available file="${src.geotiff.dir}"/>
+ <available file="${src.netcdf.dir}"/>
+ <available file="${src.shapefile.dir}"/>
+ <available file="${src.sql.dir}"/>
+ <available file="${src.xmlstore.dir}"/>
+ <available file="${src.storage.dir}"/>
+ <available file="${src.feature.dir}"/>
+ <available file="${src.referencing.dir}"/>
+ <available file="${src.ref-by-id.dir}"/>
+ <available file="${src.metadata.dir}"/>
+ <available file="${src.utility.dir}"/>
+ <available file="${src.fra-profile.dir}"/>
+ <available file="${src.jpn-profile.dir}"/>
+ <available file="${src.gdal.dir}"/>
+ <available file="${src.c.gdal.dir}"/>
+ </or>
+ </condition>
+ <condition property="netbeans.home+have.tests">
+ <and>
+ <isset property="netbeans.home"/>
+ <isset property="have.tests"/>
+ </and>
+ </condition>
+ <condition property="no.javadoc.preview">
+ <and>
+ <isset property="javadoc.preview"/>
+ <isfalse value="${javadoc.preview}"/>
+ </and>
+ </condition>
+ <property name="run.jvmargs" value=""/>
+ <property name="run.jvmargs.ide" value=""/>
+ <property name="javac.compilerargs" value=""/>
+ <property name="work.dir" value="${basedir}"/>
+ <condition property="no.deps">
+ <and>
+ <istrue value="${no.dependencies}"/>
+ </and>
+ </condition>
+ <property name="javac.debug" value="true"/>
+ <property name="javadoc.preview" value="true"/>
+ <property name="application.args" value=""/>
+ <property name="source.encoding" value="${file.encoding}"/>
+ <property name="runtime.encoding" value="${source.encoding}"/>
+ <property name="manifest.encoding" value="${source.encoding}"/>
+ <condition property="javadoc.encoding.used" value="${javadoc.encoding}">
+ <and>
+ <isset property="javadoc.encoding"/>
+ <not>
+ <equals arg1="${javadoc.encoding}" arg2=""/>
+ </not>
+ </and>
+ </condition>
+ <property name="javadoc.encoding.used" value="${source.encoding}"/>
+ <property name="includes" value="**"/>
+ <property name="excludes" value=""/>
+ <property name="do.depend" value="false"/>
+ <condition property="do.depend.true">
+ <istrue value="${do.depend}"/>
+ </condition>
+ <path id="endorsed.classpath.path" path="${endorsed.classpath}"/>
+ <condition else="" property="endorsed.classpath.cmd.line.arg" value="-Xbootclasspath/p:'${toString:endorsed.classpath.path}'">
+ <and>
+ <isset property="endorsed.classpath"/>
+ <not>
+ <equals arg1="${endorsed.classpath}" arg2="" trim="true"/>
+ </not>
+ </and>
+ </condition>
+ <condition else="" property="javac.profile.cmd.line.arg" value="-profile ${javac.profile}">
+ <isset property="profile.available"/>
+ </condition>
+ <condition else="false" property="jdkBug6558476">
+ <and>
+ <matches pattern="1\.[56]" string="${java.specification.version}"/>
+ <not>
+ <os family="unix"/>
+ </not>
+ </and>
+ </condition>
+ <condition else="false" property="javac.fork">
+ <or>
+ <istrue value="${jdkBug6558476}"/>
+ <istrue value="${javac.external.vm}"/>
+ </or>
+ </condition>
+ <property name="jar.index" value="false"/>
+ <property name="jar.index.metainf" value="${jar.index}"/>
+ <property name="copylibs.rebase" value="true"/>
+ <available file="${meta.inf.dir}/persistence.xml" property="has.persistence.xml"/>
+ <condition property="junit.available">
+ <or>
+ <available classname="org.junit.Test" classpath="${run.test.classpath}"/>
+ <available classname="junit.framework.Test" classpath="${run.test.classpath}"/>
+ </or>
+ </condition>
+ <condition property="testng.available">
+ <available classname="org.testng.annotations.Test" classpath="${run.test.classpath}"/>
+ </condition>
+ <condition property="junit+testng.available">
+ <and>
+ <istrue value="${junit.available}"/>
+ <istrue value="${testng.available}"/>
+ </and>
+ </condition>
+ <condition else="testng" property="testng.mode" value="mixed">
+ <istrue value="${junit+testng.available}"/>
+ </condition>
+ <condition else="" property="testng.debug.mode" value="-mixed">
+ <istrue value="${junit+testng.available}"/>
+ </condition>
+ <property name="java.failonerror" value="true"/>
+ </target>
+ <target name="-post-init">
+ <!-- Empty placeholder for easier customization. -->
+ <!-- You can override this target in the ../build.xml file. -->
+ </target>
+ <target depends="-pre-init,-init-private,-init-user,-init-project,-do-init" name="-init-check">
+ <fail unless="src.local-src.dir">Must set src.local-src.dir</fail>
+ <fail unless="src.javafx.dir">Must set src.javafx.dir</fail>
+ <fail unless="src.webapp.dir">Must set src.webapp.dir</fail>
+ <fail unless="src.console.dir">Must set src.console.dir</fail>
+ <fail unless="src.portrayal.dir">Must set src.portrayal.dir</fail>
+ <fail unless="src.earth-obs.dir">Must set src.earth-obs.dir</fail>
+ <fail unless="src.geotiff.dir">Must set src.geotiff.dir</fail>
+ <fail unless="src.netcdf.dir">Must set src.netcdf.dir</fail>
+ <fail unless="src.shapefile.dir">Must set src.shapefile.dir</fail>
+ <fail unless="src.sql.dir">Must set src.sql.dir</fail>
+ <fail unless="src.xmlstore.dir">Must set src.xmlstore.dir</fail>
+ <fail unless="src.storage.dir">Must set src.storage.dir</fail>
+ <fail unless="src.feature.dir">Must set src.feature.dir</fail>
+ <fail unless="src.referencing.dir">Must set src.referencing.dir</fail>
+ <fail unless="src.ref-by-id.dir">Must set src.ref-by-id.dir</fail>
+ <fail unless="src.metadata.dir">Must set src.metadata.dir</fail>
+ <fail unless="src.utility.dir">Must set src.utility.dir</fail>
+ <fail unless="src.fra-profile.dir">Must set src.fra-profile.dir</fail>
+ <fail unless="src.jpn-profile.dir">Must set src.jpn-profile.dir</fail>
+ <fail unless="src.gdal.dir">Must set src.gdal.dir</fail>
+ <fail unless="src.c.gdal.dir">Must set src.c.gdal.dir</fail>
+ <fail unless="test.javafx.dir">Must set test.javafx.dir</fail>
+ <fail unless="test.webapp.dir">Must set test.webapp.dir</fail>
+ <fail unless="test.console.dir">Must set test.console.dir</fail>
+ <fail unless="test.portrayal.dir">Must set test.portrayal.dir</fail>
+ <fail unless="test.earth-obs.dir">Must set test.earth-obs.dir</fail>
+ <fail unless="test.geotiff.dir">Must set test.geotiff.dir</fail>
+ <fail unless="test.netcdf.dir">Must set test.netcdf.dir</fail>
+ <fail unless="test.shapefile.dir">Must set test.shapefile.dir</fail>
+ <fail unless="test.sql.dir">Must set test.sql.dir</fail>
+ <fail unless="test.xmlstore.dir">Must set test.xmlstore.dir</fail>
+ <fail unless="test.storage.dir">Must set test.storage.dir</fail>
+ <fail unless="test.feature.dir">Must set test.feature.dir</fail>
+ <fail unless="test.referencing.dir">Must set test.referencing.dir</fail>
+ <fail unless="test.ref-by-id.dir">Must set test.ref-by-id.dir</fail>
+ <fail unless="test.metadata.dir">Must set test.metadata.dir</fail>
+ <fail unless="test.utility.dir">Must set test.utility.dir</fail>
+ <fail unless="test.fra-profile.dir">Must set test.fra-profile.dir</fail>
+ <fail unless="test.jpn-profile.dir">Must set test.jpn-profile.dir</fail>
+ <fail unless="test.gdal.dir">Must set test.gdal.dir</fail>
+ <fail unless="build.dir">Must set build.dir</fail>
+ <fail unless="dist.dir">Must set dist.dir</fail>
+ <fail unless="build.classes.dir">Must set build.classes.dir</fail>
+ <fail unless="dist.javadoc.dir">Must set dist.javadoc.dir</fail>
+ <fail unless="build.test.classes.dir">Must set build.test.classes.dir</fail>
+ <fail unless="build.test.results.dir">Must set build.test.results.dir</fail>
+ <fail unless="build.classes.excludes">Must set build.classes.excludes</fail>
+ <fail unless="dist.jar">Must set dist.jar</fail>
+ </target>
+ <target name="-init-macrodef-property">
+ <macrodef name="property" uri="http://www.netbeans.org/ns/j2se-project/1">
+ <attribute name="name"/>
+ <attribute name="value"/>
+ <sequential>
+ <property name="@{name}" value="${@{value}}"/>
+ </sequential>
+ </macrodef>
+ </target>
+ <target depends="-init-ap-cmdline-properties,-init-source-module-properties" if="modules.supported.internal" name="-init-macrodef-javac-with-module">
+ <macrodef name="javac" uri="http://www.netbeans.org/ns/j2se-project/3">
+ <attribute default="${src.local-src.dir}:${src.javafx.dir}:${src.webapp.dir}:${src.console.dir}:${src.portrayal.dir}:${src.earth-obs.dir}:${src.geotiff.dir}:${src.netcdf.dir}:${src.shapefile.dir}:${src.sql.dir}:${src.xmlstore.dir}:${src.storage.dir}:${src.feature.dir}:${src.referencing.dir}:${src.ref-by-id.dir}:${src.metadata.dir}:${src.utility.dir}:${src.fra-profile.dir}:${src.jpn-profile.dir}:${src.gdal.dir}:${src.c.gdal.dir}" name="srcdir"/>
+ <attribute default="${build.classes.dir}" name="destdir"/>
+ <attribute default="${javac.classpath}" name="classpath"/>
+ <attribute default="${javac.modulepath}" name="modulepath"/>
+ <attribute default="${javac.upgrademodulepath}" name="upgrademodulepath"/>
+ <attribute default="${javac.processorpath}" name="processorpath"/>
+ <attribute default="${javac.processormodulepath}" name="processormodulepath"/>
+ <attribute default="${build.generated.sources.dir}/ap-source-output" name="apgeneratedsrcdir"/>
+ <attribute default="${includes}" name="includes"/>
+ <attribute default="${excludes}" name="excludes"/>
+ <attribute default="${javac.debug}" name="debug"/>
+ <attribute default="${empty.dir}" name="sourcepath" unless:set="named.module.internal"/>
+ <attribute default="${src.local-src.dir}:${src.javafx.dir}:${src.webapp.dir}:${src.console.dir}:${src.portrayal.dir}:${src.earth-obs.dir}:${src.geotiff.dir}:${src.netcdf.dir}:${src.shapefile.dir}:${src.sql.dir}:${src.xmlstore.dir}:${src.storage.dir}:${src.feature.dir}:${src.referencing.dir}:${src.ref-by-id.dir}:${src.metadata.dir}:${src.utility.dir}:${src.fra-profile.dir}:${src.jpn-profile.dir}:${src.gdal.dir}:${src.c.gdal.dir}" if:set="named.module.internal" name="sourcepath"/>
+ <attribute default="${empty.dir}" name="gensrcdir"/>
+ <element name="customize" optional="true"/>
+ <sequential>
+ <condition property="warn.excludes.internal">
+ <and>
+ <isset property="named.module.internal"/>
+ <length length="0" string="@{excludes}" trim="true" when="greater"/>
+ </and>
+ </condition>
+ <echo if:set="warn.excludes.internal" level="warning" message="The javac excludes are not supported in the JDK 9 Named Module."/>
+ <property location="${build.dir}/empty" name="empty.dir"/>
+ <mkdir dir="${empty.dir}"/>
+ <mkdir dir="@{apgeneratedsrcdir}"/>
+ <condition property="processormodulepath.set">
+ <resourcecount count="0" when="greater">
+ <path>
+ <pathelement path="@{processormodulepath}"/>
+ </path>
+ </resourcecount>
+ </condition>
+ <javac debug="@{debug}" deprecation="${javac.deprecation}" destdir="@{destdir}" encoding="${source.encoding}" excludes="@{excludes}" fork="${javac.fork}" includeantruntime="false" includes="@{includes}" source="${javac.source}" sourcepath="@{sourcepath}" srcdir="@{srcdir}" target="${javac.target}" tempdir="${java.io.tmpdir}">
+ <src>
+ <dirset dir="@{gensrcdir}" erroronmissingdir="false">
+ <include name="*"/>
+ </dirset>
+ </src>
+ <classpath>
+ <path path="@{classpath}"/>
+ </classpath>
+ <modulepath>
+ <path path="@{modulepath}"/>
+ </modulepath>
+ <upgrademodulepath>
+ <path path="@{upgrademodulepath}"/>
+ </upgrademodulepath>
+ <compilerarg line="${javac.systemmodulepath.cmd.line.arg}"/>
+ <compilerarg line="${javac.profile.cmd.line.arg}"/>
+ <compilerarg line="${javac.compilerargs}"/>
+ <compilerarg if:set="processormodulepath.set" value="--processor-module-path"/>
+ <compilerarg if:set="processormodulepath.set" path="@{processormodulepath}"/>
+ <compilerarg unless:set="processormodulepath.set" value="-processorpath"/>
+ <compilerarg path="@{processorpath}:${empty.dir}" unless:set="processormodulepath.set"/>
+ <compilerarg line="${ap.processors.internal}"/>
+ <compilerarg line="${annotation.processing.processor.options}"/>
+ <compilerarg value="-s"/>
+ <compilerarg path="@{apgeneratedsrcdir}"/>
+ <compilerarg line="${ap.proc.none.internal}"/>
+ <customize/>
+ </javac>
+ </sequential>
+ </macrodef>
+ </target>
+ <target depends="-init-ap-cmdline-properties,-init-source-module-properties" if="ap.supported.internal" name="-init-macrodef-javac-with-processors" unless="modules.supported.internal">
+ <macrodef name="javac" uri="http://www.netbeans.org/ns/j2se-project/3">
+ <attribute default="${src.local-src.dir}:${src.javafx.dir}:${src.webapp.dir}:${src.console.dir}:${src.portrayal.dir}:${src.earth-obs.dir}:${src.geotiff.dir}:${src.netcdf.dir}:${src.shapefile.dir}:${src.sql.dir}:${src.xmlstore.dir}:${src.storage.dir}:${src.feature.dir}:${src.referencing.dir}:${src.ref-by-id.dir}:${src.metadata.dir}:${src.utility.dir}:${src.fra-profile.dir}:${src.jpn-profile.dir}:${src.gdal.dir}:${src.c.gdal.dir}" name="srcdir"/>
+ <attribute default="${build.classes.dir}" name="destdir"/>
+ <attribute default="${javac.classpath}" name="classpath"/>
+ <attribute default="${javac.modulepath}" name="modulepath"/>
+ <attribute default="${javac.upgrademodulepath}" name="upgrademodulepath"/>
+ <attribute default="${javac.processorpath}" name="processorpath"/>
+ <attribute default="${build.generated.sources.dir}/ap-source-output" name="apgeneratedsrcdir"/>
+ <attribute default="${includes}" name="includes"/>
+ <attribute default="${excludes}" name="excludes"/>
+ <attribute default="${javac.debug}" name="debug"/>
+ <attribute default="${empty.dir}" name="sourcepath"/>
+ <attribute default="${empty.dir}" name="gensrcdir"/>
+ <element name="customize" optional="true"/>
+ <sequential>
+ <property location="${build.dir}/empty" name="empty.dir"/>
+ <mkdir dir="${empty.dir}"/>
+ <mkdir dir="@{apgeneratedsrcdir}"/>
+ <javac debug="@{debug}" deprecation="${javac.deprecation}" destdir="@{destdir}" encoding="${source.encoding}" excludes="@{excludes}" fork="${javac.fork}" includeantruntime="false" includes="@{includes}" source="${javac.source}" sourcepath="@{sourcepath}" srcdir="@{srcdir}" target="${javac.target}" tempdir="${java.io.tmpdir}">
+ <src>
+ <dirset dir="@{gensrcdir}" erroronmissingdir="false">
+ <include name="*"/>
+ </dirset>
+ </src>
+ <classpath>
+ <path path="@{classpath}"/>
+ </classpath>
+ <compilerarg line="${endorsed.classpath.cmd.line.arg}"/>
+ <compilerarg line="${javac.profile.cmd.line.arg}"/>
+ <compilerarg line="${javac.compilerargs}"/>
+ <compilerarg value="-processorpath"/>
+ <compilerarg path="@{processorpath}:${empty.dir}"/>
+ <compilerarg line="${ap.processors.internal}"/>
+ <compilerarg line="${annotation.processing.processor.options}"/>
+ <compilerarg value="-s"/>
+ <compilerarg path="@{apgeneratedsrcdir}"/>
+ <compilerarg line="${ap.proc.none.internal}"/>
+ <customize/>
+ </javac>
+ </sequential>
+ </macrodef>
+ </target>
+ <target depends="-init-ap-cmdline-properties,-init-source-module-properties" name="-init-macrodef-javac-without-processors" unless="ap.supported.internal">
+ <macrodef name="javac" uri="http://www.netbeans.org/ns/j2se-project/3">
+ <attribute default="${src.local-src.dir}:${src.javafx.dir}:${src.webapp.dir}:${src.console.dir}:${src.portrayal.dir}:${src.earth-obs.dir}:${src.geotiff.dir}:${src.netcdf.dir}:${src.shapefile.dir}:${src.sql.dir}:${src.xmlstore.dir}:${src.storage.dir}:${src.feature.dir}:${src.referencing.dir}:${src.ref-by-id.dir}:${src.metadata.dir}:${src.utility.dir}:${src.fra-profile.dir}:${src.jpn-profile.dir}:${src.gdal.dir}:${src.c.gdal.dir}" name="srcdir"/>
+ <attribute default="${build.classes.dir}" name="destdir"/>
+ <attribute default="${javac.classpath}" name="classpath"/>
+ <attribute default="${javac.modulepath}" name="modulepath"/>
+ <attribute default="${javac.upgrademodulepath}" name="upgrademodulepath"/>
+ <attribute default="${javac.processorpath}" name="processorpath"/>
+ <attribute default="${build.generated.sources.dir}/ap-source-output" name="apgeneratedsrcdir"/>
+ <attribute default="${includes}" name="includes"/>
+ <attribute default="${excludes}" name="excludes"/>
+ <attribute default="${javac.debug}" name="debug"/>
+ <attribute default="${empty.dir}" name="sourcepath"/>
+ <attribute default="${empty.dir}" name="gensrcdir"/>
+ <element name="customize" optional="true"/>
+ <sequential>
+ <property location="${build.dir}/empty" name="empty.dir"/>
+ <mkdir dir="${empty.dir}"/>
+ <javac debug="@{debug}" deprecation="${javac.deprecation}" destdir="@{destdir}" encoding="${source.encoding}" excludes="@{excludes}" fork="${javac.fork}" includeantruntime="false" includes="@{includes}" source="${javac.source}" sourcepath="@{sourcepath}" srcdir="@{srcdir}" target="${javac.target}" tempdir="${java.io.tmpdir}">
+ <src>
+ <dirset dir="@{gensrcdir}" erroronmissingdir="false">
+ <include name="*"/>
+ </dirset>
+ </src>
+ <classpath>
+ <path path="@{classpath}"/>
+ </classpath>
+ <compilerarg line="${endorsed.classpath.cmd.line.arg}"/>
+ <compilerarg line="${javac.profile.cmd.line.arg}"/>
+ <compilerarg line="${javac.compilerargs}"/>
+ <customize/>
+ </javac>
+ </sequential>
+ </macrodef>
+ </target>
+ <target depends="-init-macrodef-javac-with-module,-init-macrodef-javac-with-processors,-init-macrodef-javac-without-processors" name="-init-macrodef-javac">
+ <macrodef name="depend" uri="http://www.netbeans.org/ns/j2se-project/3">
+ <attribute default="${src.local-src.dir}:${src.javafx.dir}:${src.webapp.dir}:${src.console.dir}:${src.portrayal.dir}:${src.earth-obs.dir}:${src.geotiff.dir}:${src.netcdf.dir}:${src.shapefile.dir}:${src.sql.dir}:${src.xmlstore.dir}:${src.storage.dir}:${src.feature.dir}:${src.referencing.dir}:${src.ref-by-id.dir}:${src.metadata.dir}:${src.utility.dir}:${src.fra-profile.dir}:${src.jpn-profile.dir}:${src.gdal.dir}:${src.c.gdal.dir}" name="srcdir"/>
+ <attribute default="${build.classes.dir}" name="destdir"/>
+ <attribute default="${javac.classpath}" name="classpath"/>
+ <sequential>
+ <depend cache="${build.dir}/depcache" destdir="@{destdir}" excludes="${excludes}" includes="${includes}" srcdir="@{srcdir}">
+ <classpath>
+ <path path="@{classpath}"/>
+ </classpath>
+ </depend>
+ </sequential>
+ </macrodef>
+ <macrodef name="force-recompile" uri="http://www.netbeans.org/ns/j2se-project/3">
+ <attribute default="${build.classes.dir}" name="destdir"/>
+ <sequential>
+ <fail unless="javac.includes">Must set javac.includes</fail>
+ <pathconvert pathsep="${line.separator}" property="javac.includes.binary">
+ <path>
+ <filelist dir="@{destdir}" files="${javac.includes}"/>
+ </path>
+ <globmapper from="*.java" to="*.class"/>
+ </pathconvert>
+ <tempfile deleteonexit="true" property="javac.includesfile.binary"/>
+ <echo file="${javac.includesfile.binary}" message="${javac.includes.binary}"/>
+ <delete>
+ <files includesfile="${javac.includesfile.binary}"/>
+ </delete>
+ <delete>
+ <fileset file="${javac.includesfile.binary}"/>
+ </delete>
+ </sequential>
+ </macrodef>
+ </target>
+ <target if="${junit.available}" name="-init-macrodef-junit-init">
+ <condition else="false" property="nb.junit.batch" value="true">
+ <and>
+ <istrue value="${junit.available}"/>
+ <not>
+ <isset property="test.method"/>
+ </not>
+ </and>
+ </condition>
+ <condition else="false" property="nb.junit.single" value="true">
+ <and>
+ <istrue value="${junit.available}"/>
+ <isset property="test.method"/>
+ </and>
+ </condition>
+ </target>
+ <target name="-init-test-properties">
+ <property name="test.binaryincludes" value="<nothing>"/>
+ <property name="test.binarytestincludes" value=""/>
+ <property name="test.binaryexcludes" value=""/>
+ </target>
+ <target depends="-init-modules-supported" if="modules.supported.internal" name="-init-macrodef-junit-prototype-with-module">
+ <macrodef name="junit-prototype" uri="http://www.netbeans.org/ns/j2se-project/3">
+ <attribute default="${includes}" name="includes"/>
+ <attribute default="${excludes}" name="excludes"/>
+ <element name="customizePrototype" optional="true"/>
+ <sequential>
+ <property name="junit.forkmode" value="perTest"/>
+ <junit dir="${work.dir}" errorproperty="tests.failed" failureproperty="tests.failed" fork="true" forkmode="${junit.forkmode}" showoutput="true" tempdir="${build.dir}">
+ <syspropertyset>
+ <propertyref prefix="test-sys-prop."/>
+ <mapper from="test-sys-prop.*" to="*" type="glob"/>
+ </syspropertyset>
+ <classpath>
+ <path path="${run.test.classpath}"/>
+ </classpath>
+ <modulepath>
+ <path path="${run.test.modulepath}"/>
+ </modulepath>
+ <formatter type="brief" usefile="false"/>
+ <formatter type="xml"/>
+ <jvmarg line="${endorsed.classpath.cmd.line.arg}"/>
+ <jvmarg value="-ea"/>
+ <jvmarg line="${run.test.jvmargs}"/>
+ <customizePrototype/>
+ </junit>
+ </sequential>
+ </macrodef>
+ </target>
+ <target depends="-init-modules-supported" name="-init-macrodef-junit-prototype-without-module" unless="modules.supported.internal">
+ <macrodef name="junit-prototype" uri="http://www.netbeans.org/ns/j2se-project/3">
+ <attribute default="${includes}" name="includes"/>
+ <attribute default="${excludes}" name="excludes"/>
+ <element name="customizePrototype" optional="true"/>
+ <sequential>
+ <property name="junit.forkmode" value="perTest"/>
+ <junit dir="${work.dir}" errorproperty="tests.failed" failureproperty="tests.failed" fork="true" forkmode="${junit.forkmode}" showoutput="true" tempdir="${build.dir}">
+ <syspropertyset>
+ <propertyref prefix="test-sys-prop."/>
+ <mapper from="test-sys-prop.*" to="*" type="glob"/>
+ </syspropertyset>
+ <classpath>
+ <path path="${run.test.classpath}"/>
+ </classpath>
+ <formatter type="brief" usefile="false"/>
+ <formatter type="xml"/>
+ <jvmarg line="${endorsed.classpath.cmd.line.arg}"/>
+ <jvmarg value="-ea"/>
+ <customizePrototype/>
+ </junit>
+ </sequential>
+ </macrodef>
+ </target>
+ <target depends="-init-test-properties,-init-macrodef-junit-prototype-with-module,-init-macrodef-junit-prototype-without-module" if="${nb.junit.single}" name="-init-macrodef-junit-single" unless="${nb.junit.batch}">
+ <macrodef name="junit" uri="http://www.netbeans.org/ns/j2se-project/3">
+ <attribute default="${includes}" name="includes"/>
+ <attribute default="${excludes}" name="excludes"/>
+ <attribute default="**" name="testincludes"/>
+ <attribute default="" name="testmethods"/>
+ <element name="customize" optional="true"/>
+ <sequential>
+ <j2seproject3:junit-prototype>
+ <customizePrototype>
+ <test methods="@{testmethods}" name="@{testincludes}" todir="${build.test.results.dir}"/>
+ <customize/>
+ </customizePrototype>
+ </j2seproject3:junit-prototype>
+ </sequential>
+ </macrodef>
+ </target>
+ <target depends="-init-test-properties,-init-macrodef-junit-prototype-with-module,-init-macrodef-junit-prototype-without-module" if="${nb.junit.batch}" name="-init-macrodef-junit-batch" unless="${nb.junit.single}">
+ <macrodef name="junit" uri="http://www.netbeans.org/ns/j2se-project/3">
+ <attribute default="${includes}" name="includes"/>
+ <attribute default="${excludes}" name="excludes"/>
+ <attribute default="**" name="testincludes"/>
+ <attribute default="" name="testmethods"/>
+ <element name="customize" optional="true"/>
+ <sequential>
+ <j2seproject3:junit-prototype>
+ <customizePrototype>
+ <batchtest todir="${build.test.results.dir}">
+ <fileset dir="${test.javafx.dir}" excludes="@{excludes},${excludes}" includes="@{includes}">
+ <filename name="@{testincludes}"/>
+ </fileset>
+ <fileset dir="${test.webapp.dir}" excludes="@{excludes},${excludes}" includes="@{includes}">
+ <filename name="@{testincludes}"/>
+ </fileset>
+ <fileset dir="${test.console.dir}" excludes="@{excludes},${excludes}" includes="@{includes}">
+ <filename name="@{testincludes}"/>
+ </fileset>
+ <fileset dir="${test.portrayal.dir}" excludes="@{excludes},${excludes}" includes="@{includes}">
+ <filename name="@{testincludes}"/>
+ </fileset>
+ <fileset dir="${test.earth-obs.dir}" excludes="@{excludes},${excludes}" includes="@{includes}">
+ <filename name="@{testincludes}"/>
+ </fileset>
+ <fileset dir="${test.geotiff.dir}" excludes="@{excludes},${excludes}" includes="@{includes}">
+ <filename name="@{testincludes}"/>
+ </fileset>
+ <fileset dir="${test.netcdf.dir}" excludes="@{excludes},${excludes}" includes="@{includes}">
+ <filename name="@{testincludes}"/>
+ </fileset>
+ <fileset dir="${test.shapefile.dir}" excludes="@{excludes},${excludes}" includes="@{includes}">
+ <filename name="@{testincludes}"/>
+ </fileset>
+ <fileset dir="${test.sql.dir}" excludes="@{excludes},${excludes}" includes="@{includes}">
+ <filename name="@{testincludes}"/>
+ </fileset>
+ <fileset dir="${test.xmlstore.dir}" excludes="@{excludes},${excludes}" includes="@{includes}">
+ <filename name="@{testincludes}"/>
+ </fileset>
+ <fileset dir="${test.storage.dir}" excludes="@{excludes},${excludes}" includes="@{includes}">
+ <filename name="@{testincludes}"/>
+ </fileset>
+ <fileset dir="${test.feature.dir}" excludes="@{excludes},${excludes}" includes="@{includes}">
+ <filename name="@{testincludes}"/>
+ </fileset>
+ <fileset dir="${test.referencing.dir}" excludes="@{excludes},${excludes}" includes="@{includes}">
+ <filename name="@{testincludes}"/>
+ </fileset>
+ <fileset dir="${test.ref-by-id.dir}" excludes="@{excludes},${excludes}" includes="@{includes}">
+ <filename name="@{testincludes}"/>
+ </fileset>
+ <fileset dir="${test.metadata.dir}" excludes="@{excludes},${excludes}" includes="@{includes}">
+ <filename name="@{testincludes}"/>
+ </fileset>
+ <fileset dir="${test.utility.dir}" excludes="@{excludes},${excludes}" includes="@{includes}">
+ <filename name="@{testincludes}"/>
+ </fileset>
+ <fileset dir="${test.fra-profile.dir}" excludes="@{excludes},${excludes}" includes="@{includes}">
+ <filename name="@{testincludes}"/>
+ </fileset>
+ <fileset dir="${test.jpn-profile.dir}" excludes="@{excludes},${excludes}" includes="@{includes}">
+ <filename name="@{testincludes}"/>
+ </fileset>
+ <fileset dir="${test.gdal.dir}" excludes="@{excludes},${excludes}" includes="@{includes}">
+ <filename name="@{testincludes}"/>
+ </fileset>
+ <fileset dir="${build.test.classes.dir}" excludes="@{excludes},${excludes},${test.binaryexcludes}" includes="${test.binaryincludes}">
+ <filename name="${test.binarytestincludes}"/>
+ </fileset>
+ </batchtest>
+ <customize/>
+ </customizePrototype>
+ </j2seproject3:junit-prototype>
+ </sequential>
+ </macrodef>
+ </target>
+ <target depends="-init-macrodef-junit-init,-init-macrodef-junit-single, -init-macrodef-junit-batch" if="${junit.available}" name="-init-macrodef-junit"/>
+ <target if="${testng.available}" name="-init-macrodef-testng">
+ <macrodef name="testng" uri="http://www.netbeans.org/ns/j2se-project/3">
+ <attribute default="${includes}" name="includes"/>
+ <attribute default="${excludes}" name="excludes"/>
+ <attribute default="**" name="testincludes"/>
+ <attribute default="" name="testmethods"/>
+ <element name="customize" optional="true"/>
+ <sequential>
+ <condition else="" property="testng.methods.arg" value="@{testincludes}.@{testmethods}">
+ <isset property="test.method"/>
+ </condition>
+ <union id="test.set">
+ <fileset dir="${test.javafx.dir}" excludes="@{excludes},**/*.xml,${excludes}" includes="@{includes}">
+ <filename name="@{testincludes}"/>
+ </fileset>
+ <fileset dir="${test.webapp.dir}" excludes="@{excludes},**/*.xml,${excludes}" includes="@{includes}">
+ <filename name="@{testincludes}"/>
+ </fileset>
+ <fileset dir="${test.console.dir}" excludes="@{excludes},**/*.xml,${excludes}" includes="@{includes}">
+ <filename name="@{testincludes}"/>
+ </fileset>
+ <fileset dir="${test.portrayal.dir}" excludes="@{excludes},**/*.xml,${excludes}" includes="@{includes}">
+ <filename name="@{testincludes}"/>
+ </fileset>
+ <fileset dir="${test.earth-obs.dir}" excludes="@{excludes},**/*.xml,${excludes}" includes="@{includes}">
+ <filename name="@{testincludes}"/>
+ </fileset>
+ <fileset dir="${test.geotiff.dir}" excludes="@{excludes},**/*.xml,${excludes}" includes="@{includes}">
+ <filename name="@{testincludes}"/>
+ </fileset>
+ <fileset dir="${test.netcdf.dir}" excludes="@{excludes},**/*.xml,${excludes}" includes="@{includes}">
+ <filename name="@{testincludes}"/>
+ </fileset>
+ <fileset dir="${test.shapefile.dir}" excludes="@{excludes},**/*.xml,${excludes}" includes="@{includes}">
+ <filename name="@{testincludes}"/>
+ </fileset>
+ <fileset dir="${test.sql.dir}" excludes="@{excludes},**/*.xml,${excludes}" includes="@{includes}">
+ <filename name="@{testincludes}"/>
+ </fileset>
+ <fileset dir="${test.xmlstore.dir}" excludes="@{excludes},**/*.xml,${excludes}" includes="@{includes}">
+ <filename name="@{testincludes}"/>
+ </fileset>
+ <fileset dir="${test.storage.dir}" excludes="@{excludes},**/*.xml,${excludes}" includes="@{includes}">
+ <filename name="@{testincludes}"/>
+ </fileset>
+ <fileset dir="${test.feature.dir}" excludes="@{excludes},**/*.xml,${excludes}" includes="@{includes}">
+ <filename name="@{testincludes}"/>
+ </fileset>
+ <fileset dir="${test.referencing.dir}" excludes="@{excludes},**/*.xml,${excludes}" includes="@{includes}">
+ <filename name="@{testincludes}"/>
+ </fileset>
+ <fileset dir="${test.ref-by-id.dir}" excludes="@{excludes},**/*.xml,${excludes}" includes="@{includes}">
+ <filename name="@{testincludes}"/>
+ </fileset>
+ <fileset dir="${test.metadata.dir}" excludes="@{excludes},**/*.xml,${excludes}" includes="@{includes}">
+ <filename name="@{testincludes}"/>
+ </fileset>
+ <fileset dir="${test.utility.dir}" excludes="@{excludes},**/*.xml,${excludes}" includes="@{includes}">
+ <filename name="@{testincludes}"/>
+ </fileset>
+ <fileset dir="${test.fra-profile.dir}" excludes="@{excludes},**/*.xml,${excludes}" includes="@{includes}">
+ <filename name="@{testincludes}"/>
+ </fileset>
+ <fileset dir="${test.jpn-profile.dir}" excludes="@{excludes},**/*.xml,${excludes}" includes="@{includes}">
+ <filename name="@{testincludes}"/>
+ </fileset>
+ <fileset dir="${test.gdal.dir}" excludes="@{excludes},**/*.xml,${excludes}" includes="@{includes}">
+ <filename name="@{testincludes}"/>
+ </fileset>
+ </union>
+ <taskdef classname="org.testng.TestNGAntTask" classpath="${run.test.classpath}" name="testng"/>
- <testng classfilesetref="test.set" failureProperty="tests.failed" listeners="org.testng.reporters.VerboseReporter" methods="${testng.methods.arg}" mode="${testng.mode}" outputdir="${build.test.results.dir}" suitename="Apache_SIS_on_GeoAPI_4.0" testname="TestNG tests" workingDir="${work.dir}">
++ <testng classfilesetref="test.set" failureProperty="tests.failed" listeners="org.testng.reporters.VerboseReporter" methods="${testng.methods.arg}" mode="${testng.mode}" outputdir="${build.test.results.dir}" suitename="Apache_SIS_on_GeoAPI_3.1" testname="TestNG tests" workingDir="${work.dir}">
+ <xmlfileset dir="${build.test.classes.dir}" includes="@{testincludes}"/>
+ <propertyset>
+ <propertyref prefix="test-sys-prop."/>
+ <mapper from="test-sys-prop.*" to="*" type="glob"/>
+ </propertyset>
+ <classpath>
+ <path path="${run.test.classpath}"/>
+ </classpath>
+ <jvmarg line="${endorsed.classpath.cmd.line.arg}"/>
+ <customize/>
+ </testng>
+ </sequential>
+ </macrodef>
+ </target>
+ <target name="-init-macrodef-test-impl">
+ <macrodef name="test-impl" uri="http://www.netbeans.org/ns/j2se-project/3">
+ <attribute default="${includes}" name="includes"/>
+ <attribute default="${excludes}" name="excludes"/>
+ <attribute default="**" name="testincludes"/>
+ <attribute default="" name="testmethods"/>
+ <element implicit="true" name="customize" optional="true"/>
+ <sequential>
+ <echo>No tests executed.</echo>
+ </sequential>
+ </macrodef>
+ </target>
+ <target depends="-init-macrodef-junit" if="${junit.available}" name="-init-macrodef-junit-impl">
+ <macrodef name="test-impl" uri="http://www.netbeans.org/ns/j2se-project/3">
+ <attribute default="${includes}" name="includes"/>
+ <attribute default="${excludes}" name="excludes"/>
+ <attribute default="**" name="testincludes"/>
+ <attribute default="" name="testmethods"/>
+ <element implicit="true" name="customize" optional="true"/>
+ <sequential>
+ <j2seproject3:junit excludes="@{excludes}" includes="@{includes}" testincludes="@{testincludes}" testmethods="@{testmethods}">
+ <customize/>
+ </j2seproject3:junit>
+ </sequential>
+ </macrodef>
+ </target>
+ <target depends="-init-macrodef-testng" if="${testng.available}" name="-init-macrodef-testng-impl">
+ <macrodef name="test-impl" uri="http://www.netbeans.org/ns/j2se-project/3">
+ <attribute default="${includes}" name="includes"/>
+ <attribute default="${excludes}" name="excludes"/>
+ <attribute default="**" name="testincludes"/>
+ <attribute default="" name="testmethods"/>
+ <element implicit="true" name="customize" optional="true"/>
+ <sequential>
+ <j2seproject3:testng excludes="@{excludes}" includes="@{includes}" testincludes="@{testincludes}" testmethods="@{testmethods}">
+ <customize/>
+ </j2seproject3:testng>
+ </sequential>
+ </macrodef>
+ </target>
+ <target depends="-init-macrodef-test-impl,-init-macrodef-junit-impl,-init-macrodef-testng-impl" name="-init-macrodef-test">
+ <macrodef name="test" uri="http://www.netbeans.org/ns/j2se-project/3">
+ <attribute default="${includes}" name="includes"/>
+ <attribute default="${excludes}" name="excludes"/>
+ <attribute default="**" name="testincludes"/>
+ <attribute default="" name="testmethods"/>
+ <sequential>
+ <j2seproject3:test-impl excludes="@{excludes}" includes="@{includes}" testincludes="@{testincludes}" testmethods="@{testmethods}">
+ <customize>
+ <jvmarg line="${run.jvmargs}"/>
+ <jvmarg line="${run.jvmargs.ide}"/>
+ </customize>
+ </j2seproject3:test-impl>
+ </sequential>
+ </macrodef>
+ </target>
+ <target depends="-init-macrodef-junit" if="${junit.available}" name="-init-macrodef-junit-debug-impl">
+ <macrodef name="test-debug-impl" uri="http://www.netbeans.org/ns/j2se-project/3">
+ <attribute default="${includes}" name="includes"/>
+ <attribute default="${excludes}" name="excludes"/>
+ <attribute default="**" name="testincludes"/>
+ <attribute default="" name="testmethods"/>
+ <element name="customizeDebuggee" optional="true"/>
+ <sequential>
+ <j2seproject3:junit excludes="@{excludes}" includes="@{includes}" testincludes="@{testincludes}" testmethods="@{testmethods}">
+ <customize>
+ <jvmarg value="-agentlib:jdwp=transport=${debug-transport},address=${jpda.address}"/>
+ <customizeDebuggee/>
+ </customize>
+ </j2seproject3:junit>
+ </sequential>
+ </macrodef>
+ </target>
+ <target if="${testng.available}" name="-init-macrodef-testng-debug">
+ <macrodef name="testng-debug" uri="http://www.netbeans.org/ns/j2se-project/3">
+ <attribute default="${main.class}" name="testClass"/>
+ <attribute default="" name="testMethod"/>
+ <element name="customize2" optional="true"/>
+ <sequential>
+ <condition else="-testclass @{testClass}" property="test.class.or.method" value="-methods @{testClass}.@{testMethod}">
+ <isset property="test.method"/>
+ </condition>
- <condition else="-suitename Apache_SIS_on_GeoAPI_4.0 -testname @{testClass} ${test.class.or.method}" property="testng.cmd.args" value="@{testClass}">
++ <condition else="-suitename Apache_SIS_on_GeoAPI_3.1 -testname @{testClass} ${test.class.or.method}" property="testng.cmd.args" value="@{testClass}">
+ <matches pattern=".*\.xml" string="@{testClass}"/>
+ </condition>
+ <delete dir="${build.test.results.dir}" quiet="true"/>
+ <mkdir dir="${build.test.results.dir}"/>
+ <j2seproject3:debug classname="org.testng.TestNG" classpath="${debug.test.classpath}">
+ <customizeDebuggee>
+ <customize2/>
+ <jvmarg value="-ea"/>
+ <arg line="${testng.debug.mode}"/>
+ <arg line="-d ${build.test.results.dir}"/>
+ <arg line="-listener org.testng.reporters.VerboseReporter"/>
+ <arg line="${testng.cmd.args}"/>
+ </customizeDebuggee>
+ </j2seproject3:debug>
+ </sequential>
+ </macrodef>
+ </target>
+ <target depends="-init-macrodef-testng-debug" if="${testng.available}" name="-init-macrodef-testng-debug-impl">
+ <macrodef name="testng-debug-impl" uri="http://www.netbeans.org/ns/j2se-project/3">
+ <attribute default="${main.class}" name="testClass"/>
+ <attribute default="" name="testMethod"/>
+ <element implicit="true" name="customize2" optional="true"/>
+ <sequential>
+ <j2seproject3:testng-debug testClass="@{testClass}" testMethod="@{testMethod}">
+ <customize2/>
+ </j2seproject3:testng-debug>
+ </sequential>
+ </macrodef>
+ </target>
+ <target depends="-init-macrodef-junit-debug-impl" if="${junit.available}" name="-init-macrodef-test-debug-junit">
+ <macrodef name="test-debug" uri="http://www.netbeans.org/ns/j2se-project/3">
+ <attribute default="${includes}" name="includes"/>
+ <attribute default="${excludes}" name="excludes"/>
+ <attribute default="**" name="testincludes"/>
+ <attribute default="" name="testmethods"/>
+ <attribute default="${main.class}" name="testClass"/>
+ <attribute default="" name="testMethod"/>
+ <sequential>
+ <j2seproject3:test-debug-impl excludes="@{excludes}" includes="@{includes}" testincludes="@{testincludes}" testmethods="@{testmethods}">
+ <customizeDebuggee>
+ <jvmarg line="${run.jvmargs}"/>
+ <jvmarg line="${run.jvmargs.ide}"/>
+ </customizeDebuggee>
+ </j2seproject3:test-debug-impl>
+ </sequential>
+ </macrodef>
+ </target>
+ <target depends="-init-macrodef-testng-debug-impl" if="${testng.available}" name="-init-macrodef-test-debug-testng">
+ <macrodef name="test-debug" uri="http://www.netbeans.org/ns/j2se-project/3">
+ <attribute default="${includes}" name="includes"/>
+ <attribute default="${excludes}" name="excludes"/>
+ <attribute default="**" name="testincludes"/>
+ <attribute default="" name="testmethods"/>
+ <attribute default="${main.class}" name="testClass"/>
+ <attribute default="" name="testMethod"/>
+ <sequential>
+ <j2seproject3:testng-debug-impl testClass="@{testClass}" testMethod="@{testMethod}">
+ <customize2>
+ <syspropertyset>
+ <propertyref prefix="test-sys-prop."/>
+ <mapper from="test-sys-prop.*" to="*" type="glob"/>
+ </syspropertyset>
+ </customize2>
+ </j2seproject3:testng-debug-impl>
+ </sequential>
+ </macrodef>
+ </target>
+ <target depends="-init-macrodef-test-debug-junit,-init-macrodef-test-debug-testng" name="-init-macrodef-test-debug"/>
+ <!--
+ pre NB7.2 profiling section; consider it deprecated
+ -->
+ <target depends="-profile-pre-init, init, -profile-post-init, -profile-init-macrodef-profile, -profile-init-check" if="profiler.info.jvmargs.agent" name="profile-init"/>
+ <target if="profiler.info.jvmargs.agent" name="-profile-pre-init">
+ <!-- Empty placeholder for easier customization. -->
+ <!-- You can override this target in the ../build.xml file. -->
+ </target>
+ <target if="profiler.info.jvmargs.agent" name="-profile-post-init">
+ <!-- Empty placeholder for easier customization. -->
+ <!-- You can override this target in the ../build.xml file. -->
+ </target>
+ <target if="profiler.info.jvmargs.agent" name="-profile-init-macrodef-profile">
+ <macrodef name="resolve">
+ <attribute name="name"/>
+ <attribute name="value"/>
+ <sequential>
+ <property name="@{name}" value="${env.@{value}}"/>
+ </sequential>
+ </macrodef>
+ <macrodef name="profile">
+ <attribute default="${main.class}" name="classname"/>
+ <element name="customize" optional="true"/>
+ <sequential>
+ <property environment="env"/>
+ <resolve name="profiler.current.path" value="${profiler.info.pathvar}"/>
+ <java classname="@{classname}" dir="${profiler.info.dir}" failonerror="${java.failonerror}" fork="true" jvm="${profiler.info.jvm}">
+ <jvmarg line="${endorsed.classpath.cmd.line.arg}"/>
+ <jvmarg value="${profiler.info.jvmargs.agent}"/>
+ <jvmarg line="${profiler.info.jvmargs}"/>
+ <env key="${profiler.info.pathvar}" path="${profiler.info.agentpath}:${profiler.current.path}"/>
+ <arg line="${application.args}"/>
+ <classpath>
+ <path path="${run.classpath}"/>
+ </classpath>
+ <syspropertyset>
+ <propertyref prefix="run-sys-prop."/>
+ <mapper from="run-sys-prop.*" to="*" type="glob"/>
+ </syspropertyset>
+ <customize/>
+ </java>
+ </sequential>
+ </macrodef>
+ </target>
+ <target depends="-profile-pre-init, init, -profile-post-init, -profile-init-macrodef-profile" if="profiler.info.jvmargs.agent" name="-profile-init-check">
+ <fail unless="profiler.info.jvm">Must set JVM to use for profiling in profiler.info.jvm</fail>
+ <fail unless="profiler.info.jvmargs.agent">Must set profiler agent JVM arguments in profiler.info.jvmargs.agent</fail>
+ </target>
+ <!--
+ end of pre NB7.2 profiling section
+ -->
+ <target depends="-init-debug-args" name="-init-macrodef-nbjpda">
+ <macrodef name="nbjpdastart" uri="http://www.netbeans.org/ns/j2se-project/1">
+ <attribute default="${main.class}" name="name"/>
+ <attribute default="${debug.modulepath}" name="modulepath"/>
+ <attribute default="${debug.classpath}" name="classpath"/>
+ <attribute default="" name="stopclassname"/>
+ <sequential>
+ <nbjpdastart addressproperty="jpda.address" name="@{name}" stopclassname="@{stopclassname}" transport="${debug-transport}">
+ <modulepath>
+ <path path="@{modulepath}"/>
+ </modulepath>
+ <classpath>
+ <path path="@{classpath}"/>
+ </classpath>
+ </nbjpdastart>
+ </sequential>
+ </macrodef>
+ <macrodef name="nbjpdareload" uri="http://www.netbeans.org/ns/j2se-project/1">
+ <attribute default="${build.classes.dir}" name="dir"/>
+ <sequential>
+ <nbjpdareload>
+ <fileset dir="@{dir}" includes="${fix.classes}">
+ <include name="${fix.includes}*.class"/>
+ </fileset>
+ </nbjpdareload>
+ </sequential>
+ </macrodef>
+ </target>
+ <target name="-init-debug-args">
+ <condition else="dt_socket" property="debug-transport-by-os" value="dt_shmem">
+ <os family="windows"/>
+ </condition>
+ <condition else="${debug-transport-by-os}" property="debug-transport" value="${debug.transport}">
+ <isset property="debug.transport"/>
+ </condition>
+ </target>
+ <target depends="-init-debug-args" name="-init-macrodef-debug">
+ <macrodef name="debug" uri="http://www.netbeans.org/ns/j2se-project/3">
+ <attribute default="${module.name}" name="modulename"/>
+ <attribute default="${main.class}" name="classname"/>
+ <attribute default="${debug.modulepath}" name="modulepath"/>
+ <attribute default="${debug.classpath}" name="classpath"/>
+ <element name="customizeDebuggee" optional="true"/>
+ <sequential>
+ <j2seproject1:java classname="@{classname}" classpath="@{classpath}" modulename="@{modulename}" modulepath="@{modulepath}">
+ <customize>
+ <jvmarg value="-agentlib:jdwp=transport=${debug-transport},address=${jpda.address}"/>
+ <customizeDebuggee/>
+ </customize>
+ </j2seproject1:java>
+ </sequential>
+ </macrodef>
+ </target>
+ <target depends="-init-source-module-properties" if="named.module.internal" name="-init-macrodef-java-with-module">
+ <macrodef name="java" uri="http://www.netbeans.org/ns/j2se-project/1">
+ <attribute default="${module.name}" name="modulename"/>
+ <attribute default="${main.class}" name="classname"/>
+ <attribute default="${run.modulepath}" name="modulepath"/>
+ <attribute default="${run.upgrademodulepath}" name="upgrademodulepath"/>
+ <attribute default="${run.classpath}" name="classpath"/>
+ <attribute default="jvm" name="jvm"/>
+ <element name="customize" optional="true"/>
+ <sequential>
+ <java classname="@{classname}" dir="${work.dir}" failonerror="${java.failonerror}" fork="true" module="@{modulename}">
+ <classpath>
+ <path path="@{classpath}"/>
+ </classpath>
+ <modulepath>
+ <pathelement path="@{modulepath}"/>
+ <pathelement location="${module.build.classes.dir}"/>
+ </modulepath>
+ <upgrademodulepath>
+ <path path="@{upgrademodulepath}"/>
+ </upgrademodulepath>
+ <jvmarg value="-Dfile.encoding=${runtime.encoding}"/>
+ <redirector errorencoding="${runtime.encoding}" inputencoding="${runtime.encoding}" outputencoding="${runtime.encoding}"/>
+ <jvmarg line="${run.jvmargs}"/>
+ <jvmarg line="${run.jvmargs.ide}"/>
+ <syspropertyset>
+ <propertyref prefix="run-sys-prop."/>
+ <mapper from="run-sys-prop.*" to="*" type="glob"/>
+ </syspropertyset>
+ <customize/>
+ </java>
+ </sequential>
+ </macrodef>
+ </target>
+ <target depends="-init-source-module-properties" if="unnamed.module.internal" name="-init-macrodef-java-with-unnamed-module">
+ <macrodef name="java" uri="http://www.netbeans.org/ns/j2se-project/1">
+ <attribute default="" name="modulename"/>
+ <attribute default="${main.class}" name="classname"/>
+ <attribute default="${run.modulepath}" name="modulepath"/>
+ <attribute default="${run.upgrademodulepath}" name="upgrademodulepath"/>
+ <attribute default="${run.classpath}" name="classpath"/>
+ <attribute default="jvm" name="jvm"/>
+ <element name="customize" optional="true"/>
+ <sequential>
+ <java classname="@{classname}" dir="${work.dir}" failonerror="${java.failonerror}" fork="true">
+ <classpath>
+ <path path="@{classpath}"/>
+ </classpath>
+ <modulepath>
+ <path path="@{modulepath}"/>
+ </modulepath>
+ <upgrademodulepath>
+ <path path="@{upgrademodulepath}"/>
+ </upgrademodulepath>
+ <jvmarg value="-Dfile.encoding=${runtime.encoding}"/>
+ <redirector errorencoding="${runtime.encoding}" inputencoding="${runtime.encoding}" outputencoding="${runtime.encoding}"/>
+ <jvmarg line="${run.jvmargs}"/>
+ <jvmarg line="${run.jvmargs.ide}"/>
+ <syspropertyset>
+ <propertyref prefix="run-sys-prop."/>
+ <mapper from="run-sys-prop.*" to="*" type="glob"/>
+ </syspropertyset>
+ <customize/>
+ </java>
+ </sequential>
+ </macrodef>
+ </target>
+ <target depends="-init-source-module-properties" name="-init-macrodef-java-without-module" unless="modules.supported.internal">
+ <macrodef name="java" uri="http://www.netbeans.org/ns/j2se-project/1">
+ <attribute default="" name="modulename"/>
+ <attribute default="${main.class}" name="classname"/>
+ <attribute default="" name="modulepath"/>
+ <attribute default="${run.classpath}" name="classpath"/>
+ <attribute default="jvm" name="jvm"/>
+ <element name="customize" optional="true"/>
+ <sequential>
+ <java classname="@{classname}" dir="${work.dir}" failonerror="${java.failonerror}" fork="true">
+ <jvmarg line="${endorsed.classpath.cmd.line.arg}"/>
+ <jvmarg value="-Dfile.encoding=${runtime.encoding}"/>
+ <redirector errorencoding="${runtime.encoding}" inputencoding="${runtime.encoding}" outputencoding="${runtime.encoding}"/>
+ <jvmarg line="${run.jvmargs}"/>
+ <jvmarg line="${run.jvmargs.ide}"/>
+ <classpath>
+ <path path="@{classpath}"/>
+ </classpath>
+ <syspropertyset>
+ <propertyref prefix="run-sys-prop."/>
+ <mapper from="run-sys-prop.*" to="*" type="glob"/>
+ </syspropertyset>
+ <customize/>
+ </java>
+ </sequential>
+ </macrodef>
+ </target>
+ <target depends="-init-macrodef-java-with-module, -init-macrodef-java-with-unnamed-module, -init-macrodef-java-without-module" name="-init-macrodef-java"/>
+ <target name="-init-macrodef-copylibs">
+ <macrodef name="copylibs" uri="http://www.netbeans.org/ns/j2se-project/3">
+ <attribute default="${manifest.file}" name="manifest"/>
+ <element name="customize" optional="true"/>
+ <sequential>
+ <property location="${build.classes.dir}" name="build.classes.dir.resolved"/>
+ <pathconvert property="run.classpath.without.build.classes.dir">
+ <path path="${run.classpath}"/>
+ <map from="${build.classes.dir.resolved}" to=""/>
+ </pathconvert>
+ <pathconvert pathsep=" " property="jar.classpath">
+ <path path="${run.classpath.without.build.classes.dir}"/>
+ <chainedmapper>
+ <flattenmapper/>
+ <filtermapper>
+ <replacestring from=" " to="%20"/>
+ </filtermapper>
+ <globmapper from="*" to="lib/*"/>
+ </chainedmapper>
+ </pathconvert>
+ <taskdef classname="org.netbeans.modules.java.j2seproject.copylibstask.CopyLibs" classpath="${libs.CopyLibs.classpath}" name="copylibs"/>
+ <copylibs compress="${jar.compress}" excludeFromCopy="${copylibs.excludes}" index="${jar.index}" indexMetaInf="${jar.index.metainf}" jarfile="${dist.jar}" manifest="@{manifest}" manifestencoding="UTF-8" rebase="${copylibs.rebase}" runtimeclasspath="${run.classpath.without.build.classes.dir}">
+ <fileset dir="${build.classes.dir}" excludes="${dist.archive.excludes}"/>
+ <manifest>
+ <attribute name="Class-Path" value="${jar.classpath}"/>
+ <customize/>
+ </manifest>
+ </copylibs>
+ </sequential>
+ </macrodef>
+ </target>
+ <target name="-init-presetdef-jar">
+ <presetdef name="jar" uri="http://www.netbeans.org/ns/j2se-project/1">
+ <jar compress="${jar.compress}" index="${jar.index}" jarfile="${dist.jar}" manifestencoding="UTF-8">
+ <j2seproject1:fileset dir="${build.classes.dir}" excludes="${dist.archive.excludes}"/>
+ </jar>
+ </presetdef>
+ </target>
+ <target name="-init-ap-cmdline-properties">
+ <property name="annotation.processing.enabled" value="true"/>
+ <property name="annotation.processing.processors.list" value=""/>
+ <property name="annotation.processing.processor.options" value=""/>
+ <property name="annotation.processing.run.all.processors" value="true"/>
+ <property name="javac.processorpath" value="${javac.classpath}"/>
+ <property name="javac.test.processorpath" value="${javac.test.classpath}"/>
+ <condition property="ap.supported.internal" value="true">
+ <not>
+ <matches pattern="1\.[0-5](\..*)?" string="${javac.source}"/>
+ </not>
+ </condition>
+ </target>
+ <target depends="-init-ap-cmdline-properties" if="ap.supported.internal" name="-init-ap-cmdline-supported">
+ <condition else="" property="ap.processors.internal" value="-processor ${annotation.processing.processors.list}">
+ <isfalse value="${annotation.processing.run.all.processors}"/>
+ </condition>
+ <condition else="" property="ap.proc.none.internal" value="-proc:none">
+ <isfalse value="${annotation.processing.enabled}"/>
+ </condition>
+ </target>
+ <target depends="-init-ap-cmdline-properties,-init-ap-cmdline-supported" name="-init-ap-cmdline">
+ <property name="ap.cmd.line.internal" value=""/>
+ </target>
+ <target depends="-pre-init,-init-private,-init-user,-init-project,-do-init,-post-init,-init-check,-init-macrodef-property,-init-macrodef-javac,-init-macrodef-test,-init-macrodef-test-debug,-init-macrodef-nbjpda,-init-macrodef-debug,-init-macrodef-java,-init-presetdef-jar,-init-ap-cmdline" name="init"/>
+ <!--
+ ===================
+ COMPILATION SECTION
+ ===================
+ -->
+ <target name="-deps-jar-init" unless="built-jar.properties">
+ <property location="${build.dir}/built-jar.properties" name="built-jar.properties"/>
+ <delete file="${built-jar.properties}" quiet="true"/>
+ </target>
+ <target if="already.built.jar.${basedir}" name="-warn-already-built-jar">
- <echo level="warn" message="Cycle detected: Apache SIS on GeoAPI 4.0 was already built"/>
++ <echo level="warn" message="Cycle detected: Apache SIS on GeoAPI 3.1 was already built"/>
+ </target>
+ <target depends="init,-deps-jar-init" name="deps-jar" unless="no.deps">
+ <mkdir dir="${build.dir}"/>
+ <touch file="${built-jar.properties}" verbose="false"/>
+ <property file="${built-jar.properties}" prefix="already.built.jar."/>
+ <antcall target="-warn-already-built-jar"/>
+ <propertyfile file="${built-jar.properties}">
+ <entry key="${basedir}" value=""/>
+ </propertyfile>
- <antcall target="-maybe-call-dep">
- <param name="call.built.properties" value="${built-jar.properties}"/>
- <param location="${project.GeoAPI}" name="call.subproject"/>
- <param location="${project.GeoAPI}/build.xml" name="call.script"/>
- <param name="call.target" value="jar"/>
- <param name="transfer.built-jar.properties" value="${built-jar.properties}"/>
- <param name="transfer.not.archive.disabled" value="true"/>
- <param name="transfer.do.jlink" value="false"/>
- </antcall>
+ </target>
+ <target depends="init,-check-automatic-build,-clean-after-automatic-build" name="-verify-automatic-build"/>
+ <target depends="init" name="-check-automatic-build">
+ <available file="${build.classes.dir}/.netbeans_automatic_build" property="netbeans.automatic.build"/>
+ </target>
+ <target depends="init" if="netbeans.automatic.build" name="-clean-after-automatic-build">
+ <antcall target="clean">
+ <param name="no.dependencies" value="true"/>
+ </antcall>
+ </target>
+ <target depends="init,deps-jar" name="-pre-pre-compile">
+ <mkdir dir="${build.classes.dir}"/>
+ </target>
+ <target name="-pre-compile">
+ <!-- Empty placeholder for easier customization. -->
+ <!-- You can override this target in the ../build.xml file. -->
+ </target>
+ <target if="do.depend.true" name="-compile-depend">
+ <pathconvert property="build.generated.subdirs">
+ <dirset dir="${build.generated.sources.dir}" erroronmissingdir="false">
+ <include name="*"/>
+ </dirset>
+ </pathconvert>
+ <j2seproject3:depend srcdir="${src.local-src.dir}:${src.javafx.dir}:${src.webapp.dir}:${src.console.dir}:${src.portrayal.dir}:${src.earth-obs.dir}:${src.geotiff.dir}:${src.netcdf.dir}:${src.shapefile.dir}:${src.sql.dir}:${src.xmlstore.dir}:${src.storage.dir}:${src.feature.dir}:${src.referencing.dir}:${src.ref-by-id.dir}:${src.metadata.dir}:${src.utility.dir}:${src.fra-profile.dir}:${src.jpn-profile.dir}:${src.gdal.dir}:${src.c.gdal.dir}:${build.generated.subdirs}"/>
+ </target>
+ <target depends="init,deps-jar,-pre-pre-compile,-pre-compile, -copy-persistence-xml,-compile-depend" if="have.sources" name="-do-compile">
+ <j2seproject3:javac gensrcdir="${build.generated.sources.dir}"/>
+ <copy todir="${build.classes.dir}">
+ <fileset dir="${src.local-src.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
+ <fileset dir="${src.javafx.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
+ <fileset dir="${src.webapp.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
+ <fileset dir="${src.console.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
+ <fileset dir="${src.portrayal.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
+ <fileset dir="${src.earth-obs.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
+ <fileset dir="${src.geotiff.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
+ <fileset dir="${src.netcdf.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
+ <fileset dir="${src.shapefile.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
+ <fileset dir="${src.sql.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
+ <fileset dir="${src.xmlstore.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
+ <fileset dir="${src.storage.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
+ <fileset dir="${src.feature.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
+ <fileset dir="${src.referencing.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
+ <fileset dir="${src.ref-by-id.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
+ <fileset dir="${src.metadata.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
+ <fileset dir="${src.utility.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
+ <fileset dir="${src.fra-profile.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
+ <fileset dir="${src.jpn-profile.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
+ <fileset dir="${src.gdal.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
+ <fileset dir="${src.c.gdal.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
+ </copy>
+ </target>
+ <target if="has.persistence.xml" name="-copy-persistence-xml">
+ <mkdir dir="${build.classes.dir}/META-INF"/>
+ <copy todir="${build.classes.dir}/META-INF">
+ <fileset dir="${meta.inf.dir}" includes="persistence.xml orm.xml"/>
+ </copy>
+ </target>
+ <target name="-post-compile">
+ <!-- Empty placeholder for easier customization. -->
+ <!-- You can override this target in the ../build.xml file. -->
+ </target>
+ <target depends="init,deps-jar,-verify-automatic-build,-pre-pre-compile,-pre-compile,-do-compile,-post-compile" description="Compile project." name="compile"/>
+ <target name="-pre-compile-single">
+ <!-- Empty placeholder for easier customization. -->
+ <!-- You can override this target in the ../build.xml file. -->
+ </target>
+ <target depends="init,deps-jar,-pre-pre-compile" name="-do-compile-single">
+ <fail unless="javac.includes">Must select some files in the IDE or set javac.includes</fail>
+ <j2seproject3:force-recompile/>
+ <j2seproject3:javac excludes="" gensrcdir="${build.generated.sources.dir}" includes="${javac.includes}, module-info.java" sourcepath="${src.local-src.dir}:${src.javafx.dir}:${src.webapp.dir}:${src.console.dir}:${src.portrayal.dir}:${src.earth-obs.dir}:${src.geotiff.dir}:${src.netcdf.dir}:${src.shapefile.dir}:${src.sql.dir}:${src.xmlstore.dir}:${src.storage.dir}:${src.feature.dir}:${src.referencing.dir}:${src.ref-by-id.dir}:${src.metadata.dir}:${src.utility.dir}:${src.fra-profile [...]
+ </target>
+ <target name="-post-compile-single">
+ <!-- Empty placeholder for easier customization. -->
+ <!-- You can override this target in the ../build.xml file. -->
+ </target>
+ <target depends="init,deps-jar,-verify-automatic-build,-pre-pre-compile,-pre-compile-single,-do-compile-single,-post-compile-single" name="compile-single"/>
+ <!--
+ ====================
+ JAR BUILDING SECTION
+ ====================
+ -->
+ <target depends="init" name="-pre-pre-jar">
+ <dirname file="${dist.jar}" property="dist.jar.dir"/>
+ <mkdir dir="${dist.jar.dir}"/>
+ </target>
+ <target name="-pre-jar">
+ <!-- Empty placeholder for easier customization. -->
+ <!-- You can override this target in the ../build.xml file. -->
+ </target>
+ <target depends="init,compile" name="-check-module-main-class">
+ <pathconvert property="main.class.file">
+ <string value="${main.class}"/>
+ <unpackagemapper from="*" to="*.class"/>
+ </pathconvert>
+ <condition property="do.module.main.class">
+ <and>
+ <isset property="main.class.available"/>
+ <available file="${build.classes.dir}/module-info.class"/>
+ <available file="${build.classes.dir}/${main.class.file}"/>
+ <isset property="libs.CopyLibs.classpath"/>
+ <available classname="org.netbeans.modules.java.j2seproject.moduletask.ModuleMainClass" classpath="${libs.CopyLibs.classpath}"/>
+ </and>
+ </condition>
+ </target>
+ <target depends="-check-module-main-class" if="do.module.main.class" name="-set-module-main-class">
+ <taskdef classname="org.netbeans.modules.java.j2seproject.moduletask.ModuleMainClass" classpath="${libs.CopyLibs.classpath}" name="modulemainclass"/>
+ <modulemainclass failonerror="false" mainclass="${main.class}" moduleinfo="${build.classes.dir}/module-info.class"/>
+ </target>
+ <target depends="init" if="do.archive" name="-do-jar-create-manifest" unless="manifest.available">
+ <tempfile deleteonexit="true" destdir="${build.dir}" property="tmp.manifest.file"/>
+ <touch file="${tmp.manifest.file}" verbose="false"/>
+ </target>
+ <target depends="init" if="do.archive+manifest.available" name="-do-jar-copy-manifest">
+ <tempfile deleteonexit="true" destdir="${build.dir}" property="tmp.manifest.file"/>
+ <copy encoding="${manifest.encoding}" file="${manifest.file}" outputencoding="UTF-8" tofile="${tmp.manifest.file}"/>
+ </target>
+ <target depends="init,-do-jar-create-manifest,-do-jar-copy-manifest" if="do.archive+main.class.available" name="-do-jar-set-mainclass">
+ <manifest encoding="UTF-8" file="${tmp.manifest.file}" mode="update">
+ <attribute name="Main-Class" value="${main.class}"/>
+ </manifest>
+ </target>
+ <target depends="init,-do-jar-create-manifest,-do-jar-copy-manifest" if="do.archive+profile.available" name="-do-jar-set-profile">
+ <manifest encoding="UTF-8" file="${tmp.manifest.file}" mode="update">
+ <attribute name="Profile" value="${javac.profile}"/>
+ </manifest>
+ </target>
+ <target depends="init,-do-jar-create-manifest,-do-jar-copy-manifest" if="do.archive+splashscreen.available" name="-do-jar-set-splashscreen">
+ <basename file="${application.splash}" property="splashscreen.basename"/>
+ <mkdir dir="${build.classes.dir}/META-INF"/>
+ <copy failonerror="false" file="${application.splash}" todir="${build.classes.dir}/META-INF"/>
+ <manifest encoding="UTF-8" file="${tmp.manifest.file}" mode="update">
+ <attribute name="SplashScreen-Image" value="META-INF/${splashscreen.basename}"/>
+ </manifest>
+ </target>
+ <target depends="init,compile" name="-check-do-mkdist">
+ <condition property="do.mkdist">
+ <and>
+ <isset property="do.archive"/>
+ <isset property="libs.CopyLibs.classpath"/>
+ <not>
+ <istrue value="${mkdist.disabled}"/>
+ </not>
+ <not>
+ <available file="${build.classes.dir}/module-info.class"/>
+ </not>
+ </and>
+ </condition>
+ </target>
+ <target depends="init,-init-macrodef-copylibs,compile,-pre-pre-jar,-pre-jar,-do-jar-create-manifest,-do-jar-copy-manifest,-do-jar-set-mainclass,-do-jar-set-profile,-do-jar-set-splashscreen,-check-do-mkdist" if="do.mkdist" name="-do-jar-copylibs">
+ <j2seproject3:copylibs manifest="${tmp.manifest.file}"/>
+ <echo level="info">To run this application from the command line without Ant, try:</echo>
+ <property location="${dist.jar}" name="dist.jar.resolved"/>
+ <echo level="info">java -jar "${dist.jar.resolved}"</echo>
+ </target>
+ <target depends="init,compile,-pre-pre-jar,-pre-jar,-do-jar-create-manifest,-do-jar-copy-manifest,-do-jar-set-mainclass,-do-jar-set-profile,-do-jar-set-splashscreen,-check-do-mkdist" if="do.archive" name="-do-jar-jar" unless="do.mkdist">
+ <j2seproject1:jar manifest="${tmp.manifest.file}"/>
+ <property location="${build.classes.dir}" name="build.classes.dir.resolved"/>
+ <property location="${dist.jar}" name="dist.jar.resolved"/>
+ <condition else="${dist.jar.resolved}" property="jar.usage.message.class.path.replacement" value="">
+ <isset property="named.module.internal"/>
+ </condition>
+ <pathconvert property="run.classpath.with.dist.jar">
+ <path path="${run.classpath}"/>
+ <map from="${build.classes.dir.resolved}" to="${jar.usage.message.class.path.replacement}"/>
+ </pathconvert>
+ <pathconvert property="run.modulepath.with.dist.jar">
+ <path location="${dist.jar.resolved}"/>
+ <path path="${run.modulepath}"/>
+ <map from="${build.classes.dir.resolved}" to="${dist.jar.resolved}"/>
+ </pathconvert>
+ <condition else="${run.modulepath}" property="jar.usage.message.run.modulepath.with.dist.jar" value="${run.modulepath.with.dist.jar}">
+ <isset property="named.module.internal"/>
+ </condition>
+ <condition else="" property="jar.usage.message.module.path" value=" -p ${jar.usage.message.run.modulepath.with.dist.jar}">
+ <and>
+ <isset property="modules.supported.internal"/>
+ <length length="0" string="${jar.usage.message.run.modulepath.with.dist.jar}" when="greater"/>
+ </and>
+ </condition>
+ <condition else="" property="jar.usage.message.class.path" value=" -cp ${run.classpath.with.dist.jar}">
+ <length length="0" string="${run.classpath.with.dist.jar}" when="greater"/>
+ </condition>
+ <condition else="/${main.class}" property="jar.usage.message.main.class.class.selector" value="">
+ <isset property="do.module.main.class"/>
+ </condition>
+ <condition else=" ${main.class}" property="jar.usage.message.main.class" value=" -m ${module.name}${jar.usage.message.main.class.class.selector}">
+ <isset property="named.module.internal"/>
+ </condition>
+ <condition else="" property="jar.usage.message" value="To run this application from the command line without Ant, try:${line.separator}${platform.java}${jar.usage.message.module.path}${jar.usage.message.class.path}${jar.usage.message.main.class}">
+ <isset property="main.class.available"/>
+ </condition>
+ <condition else="debug" property="jar.usage.level" value="info">
+ <isset property="main.class.available"/>
+ </condition>
+ <echo level="${jar.usage.level}" message="${jar.usage.message}"/>
+ </target>
+ <target depends="-do-jar-copylibs" if="do.archive" name="-do-jar-delete-manifest">
+ <delete>
+ <fileset file="${tmp.manifest.file}"/>
+ </delete>
+ </target>
+ <target depends="init,compile,-pre-pre-jar,-pre-jar,-do-jar-create-manifest,-do-jar-copy-manifest,-do-jar-set-mainclass,-do-jar-set-profile,-do-jar-set-splashscreen,-do-jar-jar,-do-jar-delete-manifest" name="-do-jar-without-libraries"/>
+ <target depends="init,compile,-pre-pre-jar,-pre-jar,-do-jar-create-manifest,-do-jar-copy-manifest,-do-jar-set-mainclass,-do-jar-set-profile,-do-jar-set-splashscreen,-do-jar-copylibs,-do-jar-delete-manifest" name="-do-jar-with-libraries"/>
+ <target name="-post-jar">
+ <!-- Empty placeholder for easier customization. -->
+ <!-- You can override this target in the ../build.xml file. -->
+ </target>
+ <target depends="init,compile,-pre-jar,-set-module-main-class,-do-jar-without-libraries,-do-jar-with-libraries,-post-jar" name="-do-jar"/>
+ <target depends="init,compile,-pre-jar,-do-jar,-post-jar,deploy" description="Build JAR." name="jar"/>
+ <!--
+ =================
+ DEPLOY SECTION
+ =================
+ -->
+ <target name="-pre-deploy">
+ <!-- Empty placeholder for easier customization. -->
+ <!-- You can override this target in the ../build.xml file. -->
+ </target>
+ <target depends="init" name="-check-jlink">
+ <condition property="do.jlink.internal">
+ <and>
+ <istrue value="${do.jlink}"/>
+ <isset property="do.archive"/>
+ <isset property="named.module.internal"/>
+ </and>
+ </condition>
+ </target>
+ <target depends="init,-do-jar,-post-jar,-pre-deploy,-check-jlink" if="do.jlink.internal" name="-do-deploy">
+ <delete dir="${dist.jlink.dir}" failonerror="false" quiet="true"/>
+ <property name="jlink.launcher.name" value="${application.title}"/>
+ <condition else="${module.name}" property="jlink.add.modules" value="${module.name},${jlink.additionalmodules}">
+ <and>
+ <isset property="jlink.additionalmodules"/>
+ <length length="0" string="${jlink.additionalmodules}" when="greater"/>
+ </and>
+ </condition>
+ <condition property="jlink.do.strip.internal">
+ <and>
+ <isset property="jlink.strip"/>
+ <istrue value="${jlink.strip}"/>
+ </and>
+ </condition>
+ <condition property="jlink.do.additionalparam.internal">
+ <and>
+ <isset property="jlink.additionalparam"/>
+ <length length="0" string="${jlink.additionalparam}" when="greater"/>
+ </and>
+ </condition>
+ <condition property="jlink.do.launcher.internal">
+ <and>
+ <istrue value="${jlink.launcher}"/>
+ <isset property="main.class.available"/>
+ </and>
+ </condition>
+ <property name="platform.jlink" value="${jdk.home}/bin/jlink"/>
+ <property name="jlink.systemmodules.internal" value="${jdk.home}/jmods"/>
+ <exec executable="${platform.jlink}">
+ <arg value="--module-path"/>
+ <arg path="${jlink.systemmodules.internal}:${run.modulepath}:${dist.jar}"/>
+ <arg value="--add-modules"/>
+ <arg value="${jlink.add.modules}"/>
+ <arg if:set="jlink.do.strip.internal" value="--strip-debug"/>
+ <arg if:set="jlink.do.launcher.internal" value="--launcher"/>
+ <arg if:set="jlink.do.launcher.internal" value="${jlink.launcher.name}=${module.name}/${main.class}"/>
+ <arg if:set="jlink.do.additionalparam.internal" line="${jlink.additionalparam}"/>
+ <arg value="--output"/>
+ <arg value="${dist.jlink.output}"/>
+ </exec>
+ </target>
+ <target name="-post-deploy">
+ <!-- Empty placeholder for easier customization. -->
+ <!-- You can override this target in the ../build.xml file. -->
+ </target>
+ <target depends="-do-jar,-post-jar,-pre-deploy,-do-deploy,-post-deploy" name="deploy"/>
+ <!--
+ =================
+ EXECUTION SECTION
+ =================
+ -->
+ <target depends="init,compile" description="Run a main class." name="run">
+ <j2seproject1:java>
+ <customize>
+ <arg line="${application.args}"/>
+ </customize>
+ </j2seproject1:java>
+ </target>
+ <target name="-do-not-recompile">
+ <property name="javac.includes.binary" value=""/>
+ </target>
+ <target depends="init,compile-single" name="run-single">
+ <fail unless="run.class">Must select one file in the IDE or set run.class</fail>
+ <j2seproject1:java classname="${run.class}"/>
+ </target>
+ <target depends="init,compile-test-single" name="run-test-with-main">
+ <fail unless="run.class">Must select one file in the IDE or set run.class</fail>
+ <j2seproject1:java classname="${run.class}" classpath="${run.test.classpath}"/>
+ </target>
+ <!--
+ =================
+ DEBUGGING SECTION
+ =================
+ -->
+ <target depends="init" if="netbeans.home" name="-debug-start-debugger">
+ <j2seproject1:nbjpdastart name="${debug.class}"/>
+ </target>
+ <target depends="init" if="netbeans.home" name="-debug-start-debugger-main-test">
+ <j2seproject1:nbjpdastart classpath="${debug.test.classpath}" name="${debug.class}"/>
+ </target>
+ <target depends="init,compile" name="-debug-start-debuggee">
+ <j2seproject3:debug>
+ <customizeDebuggee>
+ <arg line="${application.args}"/>
+ </customizeDebuggee>
+ </j2seproject3:debug>
+ </target>
+ <target depends="init,compile,-debug-start-debugger,-debug-start-debuggee" description="Debug project in IDE." if="netbeans.home" name="debug"/>
+ <target depends="init" if="netbeans.home" name="-debug-start-debugger-stepinto">
+ <j2seproject1:nbjpdastart stopclassname="${main.class}"/>
+ </target>
+ <target depends="init,compile,-debug-start-debugger-stepinto,-debug-start-debuggee" if="netbeans.home" name="debug-stepinto"/>
+ <target depends="init,compile-single" if="netbeans.home" name="-debug-start-debuggee-single">
+ <fail unless="debug.class">Must select one file in the IDE or set debug.class</fail>
+ <j2seproject3:debug classname="${debug.class}"/>
+ </target>
+ <target depends="init,compile-single,-debug-start-debugger,-debug-start-debuggee-single" if="netbeans.home" name="debug-single"/>
+ <target depends="init,compile-test-single" if="netbeans.home" name="-debug-start-debuggee-main-test">
+ <fail unless="debug.class">Must select one file in the IDE or set debug.class</fail>
+ <j2seproject3:debug classname="${debug.class}" classpath="${debug.test.classpath}"/>
+ </target>
+ <target depends="init,compile-test-single,-debug-start-debugger-main-test,-debug-start-debuggee-main-test" if="netbeans.home" name="debug-test-with-main"/>
+ <target depends="init" name="-pre-debug-fix">
+ <fail unless="fix.includes">Must set fix.includes</fail>
+ <property name="javac.includes" value="${fix.includes}.java"/>
+ </target>
+ <target depends="init,-pre-debug-fix,compile-single" if="netbeans.home" name="-do-debug-fix">
+ <j2seproject1:nbjpdareload/>
+ </target>
+ <target depends="init,-pre-debug-fix,-do-debug-fix" if="netbeans.home" name="debug-fix"/>
+ <!--
+ =================
+ PROFILING SECTION
+ =================
+ -->
+ <!--
+ pre NB7.2 profiler integration
+ -->
+ <target depends="profile-init,compile" description="Profile a project in the IDE." if="profiler.info.jvmargs.agent" name="-profile-pre72">
+ <fail unless="netbeans.home">This target only works when run from inside the NetBeans IDE.</fail>
+ <nbprofiledirect>
+ <classpath>
+ <path path="${run.classpath}"/>
+ </classpath>
+ </nbprofiledirect>
+ <profile/>
+ </target>
+ <target depends="profile-init,compile-single" description="Profile a selected class in the IDE." if="profiler.info.jvmargs.agent" name="-profile-single-pre72">
+ <fail unless="profile.class">Must select one file in the IDE or set profile.class</fail>
+ <fail unless="netbeans.home">This target only works when run from inside the NetBeans IDE.</fail>
+ <nbprofiledirect>
+ <classpath>
+ <path path="${run.classpath}"/>
+ </classpath>
+ </nbprofiledirect>
+ <profile classname="${profile.class}"/>
+ </target>
+ <target depends="profile-init,compile-single" if="profiler.info.jvmargs.agent" name="-profile-applet-pre72">
+ <fail unless="netbeans.home">This target only works when run from inside the NetBeans IDE.</fail>
+ <nbprofiledirect>
+ <classpath>
+ <path path="${run.classpath}"/>
+ </classpath>
+ </nbprofiledirect>
+ <profile classname="sun.applet.AppletViewer">
+ <customize>
+ <arg value="${applet.url}"/>
+ </customize>
+ </profile>
+ </target>
+ <target depends="-init-macrodef-junit,profile-init,compile-test-single" if="profiler.info.jvmargs.agent" name="-profile-test-single-pre72">
+ <fail unless="netbeans.home">This target only works when run from inside the NetBeans IDE.</fail>
+ <nbprofiledirect>
+ <classpath>
+ <path path="${run.test.classpath}"/>
+ </classpath>
+ </nbprofiledirect>
+ <j2seproject3:junit excludes="${excludes}" includes="${includes}" testincludes="${profile.class}" testmethods="">
+ <customize>
+ <jvmarg value="-agentlib:jdwp=transport=${debug-transport},address=${jpda.address}"/>
+ <env key="${profiler.info.pathvar}" path="${profiler.info.agentpath}:${profiler.current.path}"/>
+ <jvmarg value="${profiler.info.jvmargs.agent}"/>
+ <jvmarg line="${profiler.info.jvmargs}"/>
+ <classpath>
+ <path path="${run.test.classpath}"/>
+ </classpath>
+ </customize>
+ </j2seproject3:junit>
+ </target>
+ <!--
+ end of pre NB72 profiling section
+ -->
+ <target if="netbeans.home" name="-profile-check">
+ <condition property="profiler.configured">
+ <or>
+ <contains casesensitive="true" string="${run.jvmargs.ide}" substring="-agentpath:"/>
+ <contains casesensitive="true" string="${run.jvmargs.ide}" substring="-javaagent:"/>
+ </or>
+ </condition>
+ </target>
+ <target depends="-profile-check,-profile-pre72" description="Profile a project in the IDE." if="profiler.configured" name="profile" unless="profiler.info.jvmargs.agent">
+ <startprofiler/>
+ <antcall target="run"/>
+ </target>
+ <target depends="-profile-check,-profile-single-pre72" description="Profile a selected class in the IDE." if="profiler.configured" name="profile-single" unless="profiler.info.jvmargs.agent">
+ <fail unless="run.class">Must select one file in the IDE or set run.class</fail>
+ <startprofiler/>
+ <antcall target="run-single"/>
+ </target>
+ <target depends="-profile-test-single-pre72" description="Profile a selected test in the IDE." name="profile-test-single"/>
+ <target depends="-profile-check" description="Profile a selected test in the IDE." if="profiler.configured" name="profile-test" unless="profiler.info.jvmargs">
+ <fail unless="test.includes">Must select some files in the IDE or set test.includes</fail>
+ <startprofiler/>
+ <antcall target="test-single"/>
+ </target>
+ <target depends="-profile-check" description="Profile a selected class in the IDE." if="profiler.configured" name="profile-test-with-main">
+ <fail unless="run.class">Must select one file in the IDE or set run.class</fail>
+ <startprofiler/>
+ <antcall target="run-test-with-main"/>
+ </target>
+ <target depends="-profile-check,-profile-applet-pre72" if="profiler.configured" name="profile-applet" unless="profiler.info.jvmargs.agent">
+ <fail unless="applet.url">Must select one file in the IDE or set applet.url</fail>
+ <startprofiler/>
+ <antcall target="run-applet"/>
+ </target>
+ <!--
+ ===============
+ JAVADOC SECTION
+ ===============
+ -->
+ <target depends="init" if="have.sources" name="-javadoc-build">
+ <mkdir dir="${dist.javadoc.dir}"/>
+ <condition else="" property="javadoc.endorsed.classpath.cmd.line.arg" value="-J${endorsed.classpath.cmd.line.arg}">
+ <and>
+ <isset property="endorsed.classpath.cmd.line.arg"/>
+ <not>
+ <equals arg1="${endorsed.classpath.cmd.line.arg}" arg2=""/>
+ </not>
+ </and>
+ </condition>
+ <condition else="" property="bug5101868workaround" value="*.java">
+ <matches pattern="1\.[56](\..*)?" string="${java.version}"/>
+ </condition>
+ <condition else="" property="javadoc.html5.cmd.line.arg" value="-html5">
+ <and>
+ <isset property="javadoc.html5"/>
+ <available file="${jdk.home}${file.separator}lib${file.separator}jrt-fs.jar"/>
+ </and>
+ </condition>
+ <javadoc additionalparam="-J-Dfile.encoding=${file.encoding} ${javadoc.additionalparam}" author="${javadoc.author}" charset="UTF-8" destdir="${dist.javadoc.dir}" docencoding="UTF-8" encoding="${javadoc.encoding.used}" failonerror="true" noindex="${javadoc.noindex}" nonavbar="${javadoc.nonavbar}" notree="${javadoc.notree}" private="${javadoc.private}" source="${javac.source}" splitindex="${javadoc.splitindex}" use="${javadoc.use}" useexternalfile="true" version="${javadoc.version [...]
+ <classpath>
+ <path path="${javac.classpath}"/>
+ </classpath>
+ <fileset dir="${src.local-src.dir}" excludes="${bug5101868workaround},${excludes}" includes="${includes}">
+ <filename name="**/*.java"/>
+ </fileset>
+ <fileset dir="${src.javafx.dir}" excludes="${bug5101868workaround},${excludes}" includes="${includes}">
+ <filename name="**/*.java"/>
+ </fileset>
+ <fileset dir="${src.webapp.dir}" excludes="${bug5101868workaround},${excludes}" includes="${includes}">
+ <filename name="**/*.java"/>
+ </fileset>
+ <fileset dir="${src.console.dir}" excludes="${bug5101868workaround},${excludes}" includes="${includes}">
+ <filename name="**/*.java"/>
+ </fileset>
+ <fileset dir="${src.portrayal.dir}" excludes="${bug5101868workaround},${excludes}" includes="${includes}">
+ <filename name="**/*.java"/>
+ </fileset>
+ <fileset dir="${src.earth-obs.dir}" excludes="${bug5101868workaround},${excludes}" includes="${includes}">
+ <filename name="**/*.java"/>
+ </fileset>
+ <fileset dir="${src.geotiff.dir}" excludes="${bug5101868workaround},${excludes}" includes="${includes}">
+ <filename name="**/*.java"/>
+ </fileset>
+ <fileset dir="${src.netcdf.dir}" excludes="${bug5101868workaround},${excludes}" includes="${includes}">
+ <filename name="**/*.java"/>
+ </fileset>
+ <fileset dir="${src.shapefile.dir}" excludes="${bug5101868workaround},${excludes}" includes="${includes}">
+ <filename name="**/*.java"/>
+ </fileset>
+ <fileset dir="${src.sql.dir}" excludes="${bug5101868workaround},${excludes}" includes="${includes}">
+ <filename name="**/*.java"/>
+ </fileset>
+ <fileset dir="${src.xmlstore.dir}" excludes="${bug5101868workaround},${excludes}" includes="${includes}">
+ <filename name="**/*.java"/>
+ </fileset>
+ <fileset dir="${src.storage.dir}" excludes="${bug5101868workaround},${excludes}" includes="${includes}">
+ <filename name="**/*.java"/>
+ </fileset>
+ <fileset dir="${src.feature.dir}" excludes="${bug5101868workaround},${excludes}" includes="${includes}">
+ <filename name="**/*.java"/>
+ </fileset>
+ <fileset dir="${src.referencing.dir}" excludes="${bug5101868workaround},${excludes}" includes="${includes}">
+ <filename name="**/*.java"/>
+ </fileset>
+ <fileset dir="${src.ref-by-id.dir}" excludes="${bug5101868workaround},${excludes}" includes="${includes}">
+ <filename name="**/*.java"/>
+ </fileset>
+ <fileset dir="${src.metadata.dir}" excludes="${bug5101868workaround},${excludes}" includes="${includes}">
+ <filename name="**/*.java"/>
+ </fileset>
+ <fileset dir="${src.utility.dir}" excludes="${bug5101868workaround},${excludes}" includes="${includes}">
+ <filename name="**/*.java"/>
+ </fileset>
+ <fileset dir="${src.fra-profile.dir}" excludes="${bug5101868workaround},${excludes}" includes="${includes}">
+ <filename name="**/*.java"/>
+ </fileset>
+ <fileset dir="${src.jpn-profile.dir}" excludes="${bug5101868workaround},${excludes}" includes="${includes}">
+ <filename name="**/*.java"/>
+ </fileset>
+ <fileset dir="${src.gdal.dir}" excludes="${bug5101868workaround},${excludes}" includes="${includes}">
+ <filename name="**/*.java"/>
+ </fileset>
+ <fileset dir="${src.c.gdal.dir}" excludes="${bug5101868workaround},${excludes}" includes="${includes}">
+ <filename name="**/*.java"/>
+ </fileset>
+ <fileset dir="${build.generated.sources.dir}" erroronmissingdir="false">
+ <include name="**/*.java"/>
+ <exclude name="*.java"/>
+ </fileset>
+ <arg line="${javadoc.endorsed.classpath.cmd.line.arg}"/>
+ <arg line="${javadoc.html5.cmd.line.arg}"/>
+ </javadoc>
+ <copy todir="${dist.javadoc.dir}">
+ <fileset dir="${src.local-src.dir}" excludes="${excludes}" includes="${includes}">
+ <filename name="**/doc-files/**"/>
+ </fileset>
+ <fileset dir="${src.javafx.dir}" excludes="${excludes}" includes="${includes}">
+ <filename name="**/doc-files/**"/>
+ </fileset>
+ <fileset dir="${src.webapp.dir}" excludes="${excludes}" includes="${includes}">
+ <filename name="**/doc-files/**"/>
+ </fileset>
+ <fileset dir="${src.console.dir}" excludes="${excludes}" includes="${includes}">
+ <filename name="**/doc-files/**"/>
+ </fileset>
+ <fileset dir="${src.portrayal.dir}" excludes="${excludes}" includes="${includes}">
+ <filename name="**/doc-files/**"/>
+ </fileset>
+ <fileset dir="${src.earth-obs.dir}" excludes="${excludes}" includes="${includes}">
+ <filename name="**/doc-files/**"/>
+ </fileset>
+ <fileset dir="${src.geotiff.dir}" excludes="${excludes}" includes="${includes}">
+ <filename name="**/doc-files/**"/>
+ </fileset>
+ <fileset dir="${src.netcdf.dir}" excludes="${excludes}" includes="${includes}">
+ <filename name="**/doc-files/**"/>
+ </fileset>
+ <fileset dir="${src.shapefile.dir}" excludes="${excludes}" includes="${includes}">
+ <filename name="**/doc-files/**"/>
+ </fileset>
+ <fileset dir="${src.sql.dir}" excludes="${excludes}" includes="${includes}">
+ <filename name="**/doc-files/**"/>
+ </fileset>
+ <fileset dir="${src.xmlstore.dir}" excludes="${excludes}" includes="${includes}">
+ <filename name="**/doc-files/**"/>
+ </fileset>
+ <fileset dir="${src.storage.dir}" excludes="${excludes}" includes="${includes}">
+ <filename name="**/doc-files/**"/>
+ </fileset>
+ <fileset dir="${src.feature.dir}" excludes="${excludes}" includes="${includes}">
+ <filename name="**/doc-files/**"/>
+ </fileset>
+ <fileset dir="${src.referencing.dir}" excludes="${excludes}" includes="${includes}">
+ <filename name="**/doc-files/**"/>
+ </fileset>
+ <fileset dir="${src.ref-by-id.dir}" excludes="${excludes}" includes="${includes}">
+ <filename name="**/doc-files/**"/>
+ </fileset>
+ <fileset dir="${src.metadata.dir}" excludes="${excludes}" includes="${includes}">
+ <filename name="**/doc-files/**"/>
+ </fileset>
+ <fileset dir="${src.utility.dir}" excludes="${excludes}" includes="${includes}">
+ <filename name="**/doc-files/**"/>
+ </fileset>
+ <fileset dir="${src.fra-profile.dir}" excludes="${excludes}" includes="${includes}">
+ <filename name="**/doc-files/**"/>
+ </fileset>
+ <fileset dir="${src.jpn-profile.dir}" excludes="${excludes}" includes="${includes}">
+ <filename name="**/doc-files/**"/>
+ </fileset>
+ <fileset dir="${src.gdal.dir}" excludes="${excludes}" includes="${includes}">
+ <filename name="**/doc-files/**"/>
+ </fileset>
+ <fileset dir="${src.c.gdal.dir}" excludes="${excludes}" includes="${includes}">
+ <filename name="**/doc-files/**"/>
+ </fileset>
+ <fileset dir="${build.generated.sources.dir}" erroronmissingdir="false">
+ <include name="**/doc-files/**"/>
+ </fileset>
+ </copy>
+ </target>
+ <target depends="init,-javadoc-build" if="netbeans.home" name="-javadoc-browse" unless="no.javadoc.preview">
+ <nbbrowse file="${dist.javadoc.dir}/index.html"/>
+ </target>
+ <target depends="init,-javadoc-build,-javadoc-browse" description="Build Javadoc." name="javadoc"/>
+ <!--
+ =========================
+ TEST COMPILATION SECTION
+ =========================
+ -->
+ <target depends="init,compile" if="have.tests" name="-pre-pre-compile-test">
+ <mkdir dir="${build.test.classes.dir}"/>
+ </target>
+ <target name="-pre-compile-test">
+ <!-- Empty placeholder for easier customization. -->
+ <!-- You can override this target in the ../build.xml file. -->
+ </target>
+ <target depends="-init-source-module-properties" if="named.module.internal" name="-init-test-javac-module-properties-with-module">
+ <j2seproject3:modulename property="test.module.name" sourcepath="${test.javafx.dir}:${test.webapp.dir}:${test.console.dir}:${test.portrayal.dir}:${test.earth-obs.dir}:${test.geotiff.dir}:${test.netcdf.dir}:${test.shapefile.dir}:${test.sql.dir}:${test.xmlstore.dir}:${test.storage.dir}:${test.feature.dir}:${test.referencing.dir}:${test.ref-by-id.dir}:${test.metadata.dir}:${test.utility.dir}:${test.fra-profile.dir}:${test.jpn-profile.dir}:${test.gdal.dir}"/>
+ <condition else="${empty.dir}" property="javac.test.sourcepath" value="${test.javafx.dir}:${test.webapp.dir}:${test.console.dir}:${test.portrayal.dir}:${test.earth-obs.dir}:${test.geotiff.dir}:${test.netcdf.dir}:${test.shapefile.dir}:${test.sql.dir}:${test.xmlstore.dir}:${test.storage.dir}:${test.feature.dir}:${test.referencing.dir}:${test.ref-by-id.dir}:${test.metadata.dir}:${test.utility.dir}:${test.fra-profile.dir}:${test.jpn-profile.dir}:${test.gdal.dir}">
+ <and>
+ <isset property="test.module.name"/>
+ <length length="0" string="${test.module.name}" when="greater"/>
+ </and>
+ </condition>
+ <condition else="--patch-module ${module.name}=${test.javafx.dir}:${test.webapp.dir}:${test.console.dir}:${test.portrayal.dir}:${test.earth-obs.dir}:${test.geotiff.dir}:${test.netcdf.dir}:${test.shapefile.dir}:${test.sql.dir}:${test.xmlstore.dir}:${test.storage.dir}:${test.feature.dir}:${test.referencing.dir}:${test.ref-by-id.dir}:${test.metadata.dir}:${test.utility.dir}:${test.fra-profile.dir}:${test.jpn-profile.dir}:${test.gdal.dir} --add-reads ${module.name}=ALL-UNNAMED" prop [...]
+ <and>
+ <isset property="test.module.name"/>
+ <length length="0" string="${test.module.name}" when="greater"/>
+ </and>
+ </condition>
+ </target>
+ <target depends="-init-source-module-properties" if="named.module.internal" name="-init-test-run-module-properties">
+ <condition else="${module.name}" property="run.test.addexport.source.module.internal" value="${test.module.name}">
+ <and>
+ <isset property="test.module.name"/>
+ <length length="0" string="${test.module.name}" when="greater"/>
+ </and>
+ </condition>
+ <fileset dir="${build.test.classes.dir}" id="run.test.packages.internal" includes="**/*.class"/>
+ <property location="${build.test.classes.dir}" name="build.test.classes.dir.abs.internal"/>
+ <pathconvert pathsep=" " property="run.test.addexports.internal" refid="run.test.packages.internal">
+ <chainedmapper>
+ <regexpmapper from="^(.*)\Q${file.separator}\E.*\.class$$" to="\1"/>
+ <filtermapper>
+ <uniqfilter/>
+ <replacestring from="${build.test.classes.dir.abs.internal}" to=""/>
+ </filtermapper>
+ <cutdirsmapper dirs="1"/>
+ <packagemapper from="*" to="--add-exports ${run.test.addexport.source.module.internal}/*=ALL-UNNAMED"/>
+ </chainedmapper>
+ </pathconvert>
+ <condition else="--patch-module ${module.name}=${build.test.classes.dir} --add-modules ${module.name} --add-reads ${module.name}=ALL-UNNAMED ${run.test.addexports.internal}" property="run.test.jvmargs" value="--add-modules ${test.module.name} --add-reads ${test.module.name}=ALL-UNNAMED ${run.test.addexports.internal}">
+ <and>
+ <isset property="test.module.name"/>
+ <length length="0" string="${test.module.name}" when="greater"/>
+ </and>
+ </condition>
+ </target>
+ <target depends="-init-source-module-properties" name="-init-test-module-properties-without-module" unless="named.module.internal">
+ <property name="javac.test.sourcepath" value="${empty.dir}"/>
+ <property name="javac.test.compilerargs" value=""/>
+ <property name="run.test.jvmargs" value=""/>
+ </target>
+ <target depends="-init-test-javac-module-properties-with-module,-init-test-module-properties-without-module" name="-init-test-module-properties"/>
+ <target if="do.depend.true" name="-compile-test-depend">
+ <j2seproject3:depend classpath="${javac.test.classpath}" destdir="${build.test.classes.dir}" srcdir="${test.javafx.dir}:${test.webapp.dir}:${test.console.dir}:${test.portrayal.dir}:${test.earth-obs.dir}:${test.geotiff.dir}:${test.netcdf.dir}:${test.shapefile.dir}:${test.sql.dir}:${test.xmlstore.dir}:${test.storage.dir}:${test.feature.dir}:${test.referencing.dir}:${test.ref-by-id.dir}:${test.metadata.dir}:${test.utility.dir}:${test.fra-profile.dir}:${test.jpn-profile.dir}:${test. [...]
+ </target>
+ <target depends="init,deps-jar,compile,-init-test-module-properties,-pre-pre-compile-test,-pre-compile-test,-compile-test-depend" if="have.tests" name="-do-compile-test">
+ <j2seproject3:javac apgeneratedsrcdir="${build.test.classes.dir}" classpath="${javac.test.classpath}" debug="true" destdir="${build.test.classes.dir}" modulepath="${javac.test.modulepath}" processorpath="${javac.test.processorpath}" sourcepath="${javac.test.sourcepath}" srcdir="${test.javafx.dir}:${test.webapp.dir}:${test.console.dir}:${test.portrayal.dir}:${test.earth-obs.dir}:${test.geotiff.dir}:${test.netcdf.dir}:${test.shapefile.dir}:${test.sql.dir}:${test.xmlstore.dir}:${te [...]
+ <customize>
+ <compilerarg line="${javac.test.compilerargs}"/>
+ </customize>
+ </j2seproject3:javac>
+ <copy todir="${build.test.classes.dir}">
+ <fileset dir="${test.javafx.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
+ <fileset dir="${test.webapp.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
+ <fileset dir="${test.console.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
+ <fileset dir="${test.portrayal.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
+ <fileset dir="${test.earth-obs.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
+ <fileset dir="${test.geotiff.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
+ <fileset dir="${test.netcdf.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
+ <fileset dir="${test.shapefile.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
+ <fileset dir="${test.sql.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
+ <fileset dir="${test.xmlstore.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
+ <fileset dir="${test.storage.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
+ <fileset dir="${test.feature.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
+ <fileset dir="${test.referencing.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
+ <fileset dir="${test.ref-by-id.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
+ <fileset dir="${test.metadata.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
+ <fileset dir="${test.utility.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
+ <fileset dir="${test.fra-profile.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
+ <fileset dir="${test.jpn-profile.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
+ <fileset dir="${test.gdal.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
+ </copy>
+ </target>
+ <target name="-post-compile-test">
+ <!-- Empty placeholder for easier customization. -->
+ <!-- You can override this target in the ../build.xml file. -->
+ </target>
+ <target depends="init,compile,-pre-pre-compile-test,-pre-compile-test,-do-compile-test,-post-compile-test" name="compile-test"/>
+ <target name="-pre-compile-test-single">
+ <!-- Empty placeholder for easier customization. -->
+ <!-- You can override this target in the ../build.xml file. -->
+ </target>
+ <target depends="init,deps-jar,compile,-init-test-module-properties,-pre-pre-compile-test,-pre-compile-test-single" if="have.tests" name="-do-compile-test-single">
+ <fail unless="javac.includes">Must select some files in the IDE or set javac.includes</fail>
+ <j2seproject3:force-recompile destdir="${build.test.classes.dir}"/>
+ <j2seproject3:javac apgeneratedsrcdir="${build.test.classes.dir}" classpath="${javac.test.classpath}" debug="true" destdir="${build.test.classes.dir}" excludes="" includes="${javac.includes}, module-info.java" modulepath="${javac.test.modulepath}" processorpath="${javac.test.processorpath}" sourcepath="${test.javafx.dir}:${test.webapp.dir}:${test.console.dir}:${test.portrayal.dir}:${test.earth-obs.dir}:${test.geotiff.dir}:${test.netcdf.dir}:${test.shapefile.dir}:${test.sql.dir}: [...]
+ <customize>
+ <compilerarg line="${javac.test.compilerargs}"/>
+ </customize>
+ </j2seproject3:javac>
+ <copy todir="${build.test.classes.dir}">
+ <fileset dir="${test.javafx.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
+ <fileset dir="${test.webapp.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
+ <fileset dir="${test.console.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
+ <fileset dir="${test.portrayal.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
+ <fileset dir="${test.earth-obs.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
+ <fileset dir="${test.geotiff.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
+ <fileset dir="${test.netcdf.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
+ <fileset dir="${test.shapefile.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
+ <fileset dir="${test.sql.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
+ <fileset dir="${test.xmlstore.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
+ <fileset dir="${test.storage.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
+ <fileset dir="${test.feature.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
+ <fileset dir="${test.referencing.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
+ <fileset dir="${test.ref-by-id.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
+ <fileset dir="${test.metadata.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
+ <fileset dir="${test.utility.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
+ <fileset dir="${test.fra-profile.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
+ <fileset dir="${test.jpn-profile.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
+ <fileset dir="${test.gdal.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
+ </copy>
+ </target>
+ <target name="-post-compile-test-single">
+ <!-- Empty placeholder for easier customization. -->
+ <!-- You can override this target in the ../build.xml file. -->
+ </target>
+ <target depends="init,compile,-pre-pre-compile-test,-pre-compile-test-single,-do-compile-test-single,-post-compile-test-single" name="compile-test-single"/>
+ <!--
+ =======================
+ TEST EXECUTION SECTION
+ =======================
+ -->
+ <target depends="init" if="have.tests" name="-pre-test-run">
+ <mkdir dir="${build.test.results.dir}"/>
+ </target>
+ <target depends="init,compile-test,-init-test-run-module-properties,-pre-test-run" if="have.tests" name="-do-test-run">
+ <j2seproject3:test includes="${includes}" testincludes="**/*Test.java"/>
+ </target>
+ <target depends="init,compile-test,-pre-test-run,-do-test-run" if="have.tests" name="-post-test-run">
+ <fail if="tests.failed" unless="ignore.failing.tests">Some tests failed; see details above.</fail>
+ </target>
+ <target depends="init" if="have.tests" name="test-report"/>
+ <target depends="init" if="netbeans.home+have.tests" name="-test-browse"/>
+ <target depends="init,compile-test,-pre-test-run,-do-test-run,test-report,-post-test-run,-test-browse" description="Run unit tests." name="test"/>
+ <target depends="init" if="have.tests" name="-pre-test-run-single">
+ <mkdir dir="${build.test.results.dir}"/>
+ </target>
+ <target depends="init,compile-test-single,-init-test-run-module-properties,-pre-test-run-single" if="have.tests" name="-do-test-run-single">
+ <fail unless="test.includes">Must select some files in the IDE or set test.includes</fail>
+ <j2seproject3:test excludes="" includes="${test.includes}" testincludes="${test.includes}"/>
+ </target>
+ <target depends="init,compile-test-single,-pre-test-run-single,-do-test-run-single" if="have.tests" name="-post-test-run-single">
+ <fail if="tests.failed" unless="ignore.failing.tests">Some tests failed; see details above.</fail>
+ </target>
+ <target depends="init,compile-test-single,-init-test-run-module-properties,-pre-test-run-single,-do-test-run-single,-post-test-run-single" description="Run single unit test." name="test-single"/>
+ <target depends="init,compile-test-single,-pre-test-run-single" if="have.tests" name="-do-test-run-single-method">
+ <fail unless="test.class">Must select some files in the IDE or set test.class</fail>
+ <fail unless="test.method">Must select some method in the IDE or set test.method</fail>
+ <j2seproject3:test excludes="" includes="${javac.includes}" testincludes="${test.class}" testmethods="${test.method}"/>
+ </target>
+ <target depends="init,compile-test-single,-pre-test-run-single,-do-test-run-single-method" if="have.tests" name="-post-test-run-single-method">
+ <fail if="tests.failed" unless="ignore.failing.tests">Some tests failed; see details above.</fail>
+ </target>
+ <target depends="init,compile-test-single,-init-test-run-module-properties,-pre-test-run-single,-do-test-run-single-method,-post-test-run-single-method" description="Run single unit test." name="test-single-method"/>
+ <!--
+ =======================
+ TEST DEBUGGING SECTION
+ =======================
+ -->
+ <target depends="init,compile-test-single,-pre-test-run-single" if="have.tests" name="-debug-start-debuggee-test">
+ <fail unless="test.class">Must select one file in the IDE or set test.class</fail>
+ <j2seproject3:test-debug excludes="" includes="${javac.includes}" testClass="${test.class}" testincludes="${javac.includes}"/>
+ </target>
+ <target depends="init,compile-test-single,-pre-test-run-single" if="have.tests" name="-debug-start-debuggee-test-method">
+ <fail unless="test.class">Must select one file in the IDE or set test.class</fail>
+ <fail unless="test.method">Must select some method in the IDE or set test.method</fail>
+ <j2seproject3:test-debug excludes="" includes="${javac.includes}" testClass="${test.class}" testMethod="${test.method}" testincludes="${test.class}" testmethods="${test.method}"/>
+ </target>
+ <target depends="init,compile-test" if="netbeans.home+have.tests" name="-debug-start-debugger-test">
+ <j2seproject1:nbjpdastart classpath="${debug.test.classpath}" name="${test.class}"/>
+ </target>
+ <target depends="init,compile-test-single,-init-test-run-module-properties,-debug-start-debugger-test,-debug-start-debuggee-test" name="debug-test"/>
+ <target depends="init,compile-test-single,-init-test-run-module-properties,-debug-start-debugger-test,-debug-start-debuggee-test-method" name="debug-test-method"/>
+ <target depends="debug-test-method" name="debug-single-method"/>
+ <target depends="init,-pre-debug-fix,compile-test-single" if="netbeans.home" name="-do-debug-fix-test">
+ <j2seproject1:nbjpdareload dir="${build.test.classes.dir}"/>
+ </target>
+ <target depends="init,-pre-debug-fix,-do-debug-fix-test" if="netbeans.home" name="debug-fix-test"/>
+ <!--
+ =========================
+ APPLET EXECUTION SECTION
+ =========================
+ -->
+ <target depends="init,compile-single" name="run-applet">
+ <fail unless="applet.url">Must select one file in the IDE or set applet.url</fail>
+ <j2seproject1:java classname="sun.applet.AppletViewer">
+ <customize>
+ <arg value="${applet.url}"/>
+ </customize>
+ </j2seproject1:java>
+ </target>
+ <!--
+ =========================
+ APPLET DEBUGGING SECTION
+ =========================
+ -->
+ <target depends="init,compile-single" if="netbeans.home" name="-debug-start-debuggee-applet">
+ <fail unless="applet.url">Must select one file in the IDE or set applet.url</fail>
+ <j2seproject3:debug classname="sun.applet.AppletViewer">
+ <customizeDebuggee>
+ <arg value="${applet.url}"/>
+ </customizeDebuggee>
+ </j2seproject3:debug>
+ </target>
+ <target depends="init,compile-single,-debug-start-debugger,-debug-start-debuggee-applet" if="netbeans.home" name="debug-applet"/>
+ <!--
+ ===============
+ CLEANUP SECTION
+ ===============
+ -->
+ <target name="-deps-clean-init" unless="built-clean.properties">
+ <property location="${build.dir}/built-clean.properties" name="built-clean.properties"/>
+ <delete file="${built-clean.properties}" quiet="true"/>
+ </target>
+ <target if="already.built.clean.${basedir}" name="-warn-already-built-clean">
- <echo level="warn" message="Cycle detected: Apache SIS on GeoAPI 4.0 was already built"/>
++ <echo level="warn" message="Cycle detected: Apache SIS on GeoAPI 3.1 was already built"/>
+ </target>
+ <target depends="init,-deps-clean-init" name="deps-clean" unless="no.deps">
+ <mkdir dir="${build.dir}"/>
+ <touch file="${built-clean.properties}" verbose="false"/>
+ <property file="${built-clean.properties}" prefix="already.built.clean."/>
+ <antcall target="-warn-already-built-clean"/>
+ <propertyfile file="${built-clean.properties}">
+ <entry key="${basedir}" value=""/>
+ </propertyfile>
- <antcall target="-maybe-call-dep">
- <param name="call.built.properties" value="${built-clean.properties}"/>
- <param location="${project.GeoAPI}" name="call.subproject"/>
- <param location="${project.GeoAPI}/build.xml" name="call.script"/>
- <param name="call.target" value="clean"/>
- <param name="transfer.built-clean.properties" value="${built-clean.properties}"/>
- <param name="transfer.not.archive.disabled" value="true"/>
- <param name="transfer.do.jlink" value="false"/>
- </antcall>
+ </target>
+ <target depends="init" name="-do-clean">
+ <delete dir="${build.dir}"/>
+ <delete dir="${dist.jlink.output}"/>
+ <delete dir="${dist.dir}" followsymlinks="false" includeemptydirs="true"/>
+ </target>
+ <target name="-post-clean">
+ <!-- Empty placeholder for easier customization. -->
+ <!-- You can override this target in the ../build.xml file. -->
+ </target>
+ <target depends="init,deps-clean,-do-clean,-post-clean" description="Clean build products." name="clean"/>
+ <target name="-check-call-dep">
+ <property file="${call.built.properties}" prefix="already.built."/>
+ <condition property="should.call.dep">
+ <and>
+ <not>
+ <isset property="already.built.${call.subproject}"/>
+ </not>
+ <available file="${call.script}"/>
+ </and>
+ </condition>
+ </target>
+ <target depends="-check-call-dep" if="should.call.dep" name="-maybe-call-dep">
+ <ant antfile="${call.script}" inheritall="false" target="${call.target}">
+ <propertyset>
+ <propertyref prefix="transfer."/>
+ <mapper from="transfer.*" to="*" type="glob"/>
+ </propertyset>
+ </ant>
+ </target>
+ </project>
diff --cc ide-project/NetBeans/nbproject/genfiles.properties
index 2039f39,71b14ef..e05d431
--- a/ide-project/NetBeans/nbproject/genfiles.properties
+++ b/ide-project/NetBeans/nbproject/genfiles.properties
@@@ -3,6 -3,6 +3,6 @@@
build.xml.data.CRC32=58e6b21c
build.xml.script.CRC32=462eaba0
build.xml.stylesheet.CRC32=28e38971@1.53.1.46
- nbproject/build-impl.xml.data.CRC32=c66331aa
- nbproject/build-impl.xml.script.CRC32=a8b9b922
- nbproject/build-impl.xml.stylesheet.CRC32=3a2fa800@1.92.0.48
-nbproject/build-impl.xml.data.CRC32=59eb8bb4
-nbproject/build-impl.xml.script.CRC32=3caff6e1
-nbproject/build-impl.xml.stylesheet.CRC32=d549e5cc@1.97.0.48
++nbproject/build-impl.xml.data.CRC32=34ca6989
++nbproject/build-impl.xml.script.CRC32=12b72e40
++nbproject/build-impl.xml.stylesheet.CRC32=d549e5cc@1.99.0.48
diff --cc ide-project/NetBeans/nbproject/project.properties
index 6d18ad7,117e7cb..bc002e6
--- a/ide-project/NetBeans/nbproject/project.properties
+++ b/ide-project/NetBeans/nbproject/project.properties
@@@ -96,34 -105,30 +98,31 @@@ test.jpn-profile.dir = ${project.root}/
# Those dependencies must exist in the local Maven repository.
# Those numbers should match the ones declared in the pom.xml files.
#
+geoapi.version = 3.1-SNAPSHOT
jsr363.version = 1.0
- jaxb.version = 2.3.2
- istack.version = 3.0.8
- activation.version = 1.1
+ jaxb.version = 2.3.3
+ istack.version = 3.0.11
+ activation.version = 1.2.2
jama.version = 1.0.3
- geographlib.version = 1.50
- guava.version = 27.0.1-jre
- esri.api.version = 2.2.3
- jts.version = 1.16.1
- georss.version = 0.9.8
- rome.version = 0.9
- jdom1.version = 1.0
- jdom2.version = 2.0.4
+ geographlib.version = 1.52
+ guava.version = 30.1-jre
+ re2j.version = 1.3
+ esri.api.version = 2.2.4
+ jts.version = 1.18.2
+ jdom2.version = 2.0.6
jee.version = 8.0.1
osgi.version = 6.0.0
- netcdf.version = 4.6.14
- joda-time.version = 2.8.1
- httpclient.version = 4.5.1
- httpcore.version = 4.4.4
+ netcdf.version = 5.4.2
+ joda-time.version = 2.10.3
+ httpclient.version = 4.5.13
+ httpcore.version = 4.4.13
cm-logging.version = 1.2
- slf4j.version = 1.7.22
- junit.version = 4.12
+ slf4j.version = 1.7.28
+ junit.version = 4.13.2
hamcrest.version = 1.3
derby.version = 10.14.2.0
- hsqldb.version = 2.5.0
- postgresql.version = 42.2.8
- icons.version = 3.0.1
+ hsqldb.version = 2.6.0
+ postgresql.version = 42.2.23
#
# Classpaths for compilation, execution and tests.
diff --cc ide-project/NetBeans/nbproject/project.xml
index c7d2ae0,1c0d1e1..7fdc11e
--- a/ide-project/NetBeans/nbproject/project.xml
+++ b/ide-project/NetBeans/nbproject/project.xml
@@@ -21,9 -21,10 +21,10 @@@
<type>org.netbeans.modules.java.j2seproject</type>
<configuration>
<data xmlns="http://www.netbeans.org/ns/j2se-project/3">
- <name>Apache SIS on GeoAPI 4.0</name>
+ <name>Apache SIS on GeoAPI 3.1</name>
<source-roots>
<root id="src.local-src.dir" name="Local sources (unversioned)"/>
+ <root id="src.javafx.dir" name="JavaFX application"/>
<root id="src.webapp.dir" name="Web application"/>
<root id="src.console.dir" name="Console"/>
<root id="src.portrayal.dir" name="Portrayal"/>
diff --cc pom.xml
index 84281c2,d5f89bb..93c4682
--- a/pom.xml
+++ b/pom.xml
@@@ -560,9 -556,10 +556,10 @@@
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
<sis.plugin.version>${project.version}</sis.plugin.version>
- <sis.non-free.version>1.0</sis.non-free.version> <!-- Used only if "non-free" profile is enabled. -->
+ <sis.non-free.version>1.0</sis.non-free.version> <!-- Used only if "non-free" profile is activated. -->
+ <javafx.version>17</javafx.version> <!-- Used only if "javafx" profile is activated. -->
- <geoapi.version>4.0-SNAPSHOT</geoapi.version>
+ <geoapi.version>3.1-SNAPSHOT</geoapi.version>
- <jaxb.version>2.3.2</jaxb.version>
+ <jaxb.version>2.3.3</jaxb.version>
</properties>
<profiles>
diff --cc storage/sis-storage/src/main/java/org/apache/sis/internal/storage/MetadataBuilder.java
index d024582,bb76c79..d0e6377
--- a/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/MetadataBuilder.java
+++ b/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/MetadataBuilder.java
@@@ -136,10 -150,10 +150,12 @@@ import org.apache.sis.measure.Units
import static org.apache.sis.internal.util.StandardDateFormat.MILLISECONDS_PER_DAY;
// Branch-dependent imports
+ import org.opengis.temporal.Duration;
+ import org.opengis.feature.FeatureType;
+import org.opengis.metadata.citation.ResponsibleParty;
+import org.opengis.metadata.identification.CharacterSet;
- import org.opengis.feature.FeatureType;
+ import org.opengis.metadata.acquisition.AcquisitionInformation;
-import org.opengis.metadata.citation.Responsibility;
+import org.apache.sis.metadata.iso.citation.DefaultResponsibleParty;
/**
@@@ -269,9 -284,22 +286,22 @@@ public class MetadataBuilder
}
/**
+ * Returns the information about the series, or aggregate dataset, of which the dataset is a part.
+ */
+ private DefaultSeries series() {
+ final DefaultCitation citation = citation();
+ DefaultSeries series = DefaultSeries.castOrCopy(citation.getSeries());
+ if (series == null) {
+ series = new DefaultSeries();
+ citation.setSeries(series);
+ }
+ return series;
+ }
+
+ /**
* Part of the responsible party of the {@linkplain #citation}, or {@code null} if none.
*/
- private DefaultResponsibility responsibility;
+ private DefaultResponsibleParty responsibility;
/**
* Creates the responsibility object if it does not already exists, then returns it.
@@@ -1210,6 -1248,60 +1251,59 @@@
}
/**
+ * Adds the name of the series, or aggregate dataset, of which the dataset is a part.
+ * Storage location is:
+ *
+ * <ul>
+ * <li>{@code metadata/identificationInfo/citation/series/name}</li>
+ * </ul>
+ *
+ * @param name name of the series, or {@code null} for no-operation.
+ */
+ public final void addSeries(final CharSequence name) {
+ final InternationalString i18n = trim(name);
+ if (i18n != null) {
+ final DefaultSeries series = series();
+ series.setName(append(series.getName(), i18n));
+ }
+ }
+
+ /**
+ * Adds details on which pages of the publication the article was published.
+ * Storage location is:
+ *
+ * <ul>
+ * <li>{@code metadata/identificationInfo/citation/series/page}</li>
+ * </ul>
+ *
+ * @param page the page, or {@code null} for no-operation.
+ */
+ public final void addPage(final CharSequence page) {
- final InternationalString i18n = trim(page);
- if (i18n != null) {
++ if (page != null) {
+ final DefaultSeries series = series();
- series.setPage(append(series.getPage(), i18n));
++ series.setPage(page.toString());
+ }
+ }
+
+ /**
+ * Adds details on which pages of the publication the article was published.
+ * Storage location is:
+ *
+ * <ul>
+ * <li>{@code metadata/identificationInfo/citation/series/page}</li>
+ * </ul>
+ *
+ * @param page the page number, or 0 or negative for no-operation.
+ * @param total the total number of pages, or 0 or negative if unknown.
+ */
+ public final void addPage(final int page, final int total) {
+ if (page > 0) {
+ addPage(Vocabulary.formatInternational(
+ (total > 0) ? Vocabulary.Keys.Page_2 : Vocabulary.Keys.Page_1, page, total));
+ }
+ }
+
+ /**
* Adds a brief narrative summary of the resource(s).
* If a summary already exists, the new one will be appended after a new line.
* Storage location is:
@@@ -3020,6 -3139,107 +3145,108 @@@ parse: for (int i = 0; i < length;
}
/**
+ * Appends information from the metadata of a component.
+ * This is an helper method for building the metadata of an aggregate.
+ * Aggregate metadata should be set before to invoke this method, in particular:
+ *
+ * <ul>
+ * <li>The aggregated resource {@linkplain #addTitle title}.</li>
+ * <li>The {@linkplain #addFormatName format} (may not be the same than component format).</li>
+ * </ul>
+ *
+ * This method applies the following heuristic rules (may change in any future version).
+ * Those rules assume that the component metadata was built with {@code MetadataBuilder}
+ * (this assumption determines which metadata elements are inspected).
+ *
+ * <ul>
+ * <li>Content information is added verbatim. There is usually one instance per component.</li>
+ * <li>Extents are added as one {@link Extent} per component, but without duplicated values.</li>
+ * <li>All Coordinate Reference System information are added without duplicated values.</li>
+ * <li>Some citation information are merged in a single citation.
+ * The following information are ignored because considered too specific to the component:<ul>
+ * <li>titles</li>
+ * <li>identifiers</li>
+ * <li>series (includes page numbers).</li>
+ * </ul></li>
+ * <li>{@linkplain #addCompression Compression} are added (without duplicated value) but not the
+ * other format information (because the aggregate is assumed to have its own format name).</li>
+ * <li>Distributor names, but not the other distribution information because the aggregated resource
+ * may not be distributed in the same way then the components.</li>
+ * </ul>
+ *
+ * @param component the component from which to append metadata.
+ */
+ public final void addFromComponent(final Metadata component) {
+ /*
+ * Note: this method contains many loops like below:
+ *
+ * for (Foo r : info.getFoos()) {
+ * addIfNotPresent(bla().getFoos(), r);
+ * }
+ *
+ * We could easily factor out the above pattern in a method, but we don't do that because
+ * it would invoke `bla().getFoos()` before the loop. We want that call to happen only if
+ * the collection contains at least one element. Usually there is only 0 or 1 element.
+ */
+ for (final Identification info : component.getIdentificationInfo()) {
+ final Citation c = info.getCitation();
+ if (c != null) {
+ // Title, identifiers and series are assumed to not apply (see Javadoc).
+ final DefaultCitation citation = citation();
- for (Responsibility r : c.getCitedResponsibleParties()) {
++ for (ResponsibleParty r : c.getCitedResponsibleParties()) {
+ addIfNotPresent(citation.getCitedResponsibleParties(), r);
+ }
+ for (OnlineResource r : c.getOnlineResources()) {
+ addIfNotPresent(citation.getOnlineResources(), r);
+ }
+ citation.getPresentationForms().addAll(c.getPresentationForms());
+ }
+ final DefaultDataIdentification identification = identification();
+ for (Extent e : info.getExtents()) {
+ addIfNotPresent(identification.getExtents(), e);
+ }
+ for (Resolution r : info.getSpatialResolutions()) {
+ addIfNotPresent(identification.getSpatialResolutions(), r);
+ }
+ for (Duration r : info.getTemporalResolutions()) {
+ addIfNotPresent(identification.getTemporalResolutions(), r);
+ }
+ for (Format r : info.getResourceFormats()) {
+ addCompression(r.getFileDecompressionTechnique());
+ // Ignore format name (see Javadoc).
+ }
+ for (Constraints r : info.getResourceConstraints()) {
+ addIfNotPresent(identification.getResourceConstraints(), r);
+ }
+ identification.getTopicCategories().addAll(info.getTopicCategories());
+ identification.getSpatialRepresentationTypes().addAll(info.getSpatialRepresentationTypes());
+ }
+ final DefaultMetadata metadata = metadata();
+ for (ContentInformation info : component.getContentInfo()) {
+ addIfNotPresent(metadata.getContentInfo(), info);
+ }
+ for (final ReferenceSystem crs : component.getReferenceSystemInfo()) {
+ addReferenceSystem(crs);
+ }
+ for (SpatialRepresentation info : component.getSpatialRepresentationInfo()) {
+ addIfNotPresent(metadata.getSpatialRepresentationInfo(), info);
+ }
+ for (AcquisitionInformation info : component.getAcquisitionInformation()) {
+ addIfNotPresent(metadata.getAcquisitionInformation(), info);
+ }
- for (Distribution info : component.getDistributionInfo()) {
++ Distribution di = component.getDistributionInfo();
++ if (di != null) {
+ // See Javadoc about why we copy only the distributors.
- for (Distributor r : info.getDistributors()) {
++ for (Distributor r : di.getDistributors()) {
+ addIfNotPresent(distribution().getDistributors(), r);
+ }
+ }
+ for (Lineage info : component.getResourceLineages()) {
+ addIfNotPresent(metadata.getResourceLineages(), info);
+ }
+ }
+
+ /**
* Returns the metadata (optionally as an unmodifiable object), or {@code null} if none.
* If {@code freeze} is {@code true}, then the returned metadata instance can not be modified.
*