Official GeoTools repository

Overview

GeoTools logo

GeoTools is an open source Java library that provides tools for geospatial data. Our Users guide provides an overview of the core features, supported formats and standards support.

License

GeoTools is licensed under the LGPL. The user guide license page describes the less restrictive license for documentation and source code examples.

Contributing

The developers guide outlines ways to contribute to GeoTools using patches, pull requests and setting up new modules.

If you are already experienced with GitHub please check our pull request page before you start!

Building

GeoTools uses Apache Maven for a build system. To build the library run maven from the root of the repository.

% mvn clean install

See the user guide for more details.

Bugs

GeoTools uses JIRA, hosted by Atlassian, for issue tracking.

Mailing Lists

The user list is for all questions related to GeoTools usage.

The dev list is for questions related to hacking on the GeoTools library itself.

More Information

Visit the website or read the docs.

Issues
  • [GEOT-6709] Use new API from tech.units:indriya to fix Java module issues

    [GEOT-6709] Use new API from tech.units:indriya to fix Java module issues

    GEOT-6709 Powered by Pull Request Badge

    See GEOT-6709 GeoTools v24 fails with ExceptionInInitializerError caused by an InaccessibleObjectException trying to access tech.units.indriya internals

    • [x] Confirm you have read the contribution guidelines
    • [x] You have sent a Contribution Licence Agreement (CLA) as necessary (not required for small changes, e.g., fixing typos in documentation)
    • [x] Make sure the first PR targets the master branch, eventual backports will be managed later. This can be ignored if the PR is fixing an issue that only happens in a specific branch, but not in newer ones.
    • [ ] The changes are not breaking the build in downstream projects using SNAPSHOT dependencies, GeoWebCache and GeoServer (there is an automatic PR check verifying this, check this when it turns green).

    The following are required only for core and extension modules (they are welcomed, but not required, for unsupported modules):

    • [x] There is an issue in Jira describing the bug/task/new feature (a notable exemptions is, changes not visible to end users). The ticket is for the GeoTools project, if the issue was found elsewhere it's a good practice to link to the origin ticket/issue.
    • [x] The pull request contains changes related to a single objective. If multiple focuses cannot be avoided, each one is in its own commit and has a separate ticket describing it.
    • [x] PR for bug fixes and small new features are presented as a single commit
    • [x] Commit message(s) must be in the form "[GEOT-XYZW] Title of the Jira ticket"
    • [ ] New unit tests have been added covering the changes
    • [ ] This PR passes all existing unit tests (test results will be reported by travis-ci after opening this PR)
    • [ ] This PR passes the QA checks (QA checks results will be reported by travis-ci after opening this PR)
    • [ ] Documentation has been updated accordingly.
    opened by soc 132
  • [GEOT-6612] Update to jsr 385 units 2.0

    [GEOT-6612] Update to jsr 385 units 2.0

    The goal of this pull request is to migrate from the Units of Measure API 1.0 (JSR 363) to the Units of Measure API 2.0 (JSR 385).

    Checklist

    Reviewing is a process done by project maintainers, mostly on a volunteer basis. We try to keep the overhead as small as possible and appreciate if you help us to do so by completing the following items. Feel free to ask in a comment if you have troubles with any of them.

    For all pull requests:

    • [x] Confirm you have read the contribution guidelines
    • [x] You have sent a Contribution Licence Agreement (CLA) as necessary (not required for small changes, e.g., fixing typos in documentation)
    • [x] Make sure the first PR targets the master branch, eventual backports will be managed later. This can be ignored if the PR is fixing an issue that only happens in a specific branch, but not in newer ones.
    • [ ] The changes are not breaking the build in downstream projects using SNAPSHOT dependencies, GeoWebCache and GeoServer.

    The following are required only for core and extension modules (they are welcomed, but not required, for unsupported modules):

    • [x] There is an issue in Jira describing the bug/task/new feature (a notable exemptions is, changes not visible to end users). The ticket is for the GeoTools project, if the issue was found elsewhere it's a good practice to link to the origin ticket/issue.
    • [ ] The pull request contains changes related to a single objective. If multiple focuses cannot be avoided, each one is in its own commit and has a separate ticket describing it.
    • [x] PR for bug fixes and small new features are presented as a single commit
    • [x] Commit message must be in the form "[GEOT-XYZW] Title of the Jira ticket"
    • [ ] New unit tests have been added covering the changes
    • [ ] This PR passes all existing unit tests (test results will be reported by travis-ci after opening this PR)
    • [ ] This PR passes the QA checks (QA checks results will be reported by travis-ci after opening this PR)
    • [ ] Documentation has been updated accordingly.

    Submitting the PR does not require you to check all items, but by the time it gets merged, they should be either satisfied or inapplicable.

    opened by ddcruver 47
  • GEOT-6755 New factory HTTPClientFactory and library gt-http

    GEOT-6755 New factory HTTPClientFactory and library gt-http

    The main goal is to create a factory for creating HTTPClient. It will also extract some functionality from gt-main into a new library gt-http. The objective for this is to make it more visible, and include the external library Commons HTTPClient.

    See also:

    • https://osgeo-org.atlassian.net/browse/GEOT-6755
    • https://github.com/geotools/geotools/wiki/HTTPClient-Factory

    Checklist

    Reviewing is a process done by project maintainers, mostly on a volunteer basis. We try to keep the overhead as small as possible and appreciate if you help us to do so by completing the following items. Feel free to ask in a comment if you have troubles with any of them.

    For all pull requests:

    • [X] Confirm you have read the contribution guidelines
    • [X] You have sent a Contribution Licence Agreement (CLA) as necessary (not required for small changes, e.g., fixing typos in documentation)
    • [X] Make sure the first PR targets the master branch, eventual backports will be managed later. This can be ignored if the PR is fixing an issue that only happens in a specific branch, but not in newer ones.
    • [x] The changes are not breaking the build in downstream projects using SNAPSHOT dependencies, GeoWebCache and GeoServer (there is an automatic PR check verifying this, check this when it turns green).

    The following are required only for core and extension modules (they are welcomed, but not required, for unsupported modules):

    • [X] There is an issue in Jira describing the bug/task/new feature (a notable exemptions is, changes not visible to end users). The ticket is for the GeoTools project, if the issue was found elsewhere it's a good practice to link to the origin ticket/issue.
    • [X] The pull request contains changes related to a single objective. If multiple focuses cannot be avoided, each one is in its own commit and has a separate ticket describing it.
    • [ ] PR for bug fixes and small new features are presented as a single commit
    • [ ] Commit message(s) must be in the form "[GEOT-XYZW] Title of the Jira ticket"
    • [X] New unit tests have been added covering the changes
    • [x] This PR passes all existing unit tests (test results will be reported by Continuous Integration after opening this PR)
    • [x] This PR passes the QA checks (QA checks results will be reported by Continuous Integration after opening this PR)
    • [x] Documentation has been updated accordingly.

    Submitting the PR does not require you to check all items, but by the time it gets merged, they should be either satisfied or not applicable.

    opened by roarbra 46
  • Move to jsr363 dependencies

    Move to jsr363 dependencies

    Proposal: https://github.com/geotools/geotools/wiki/Migrate-Units-to-JSR-363

    https://osgeo-org.atlassian.net/browse/GEOT-5867

    opened by dispiste 43
  • Additional map projection: Homolosine

    Additional map projection: Homolosine

    This is a literal implementation of the projection described by John Paul Goode, relying on the existing projection classes for the Mollweide and the Sinusoidal. Thus no actual mathematical transformation is performed in the new class. This implementation applies tow essential steps:

    1. Identify the Homolosine lobe to which the points belongs and apply the respective central meridian.
    2. Deduct the offset between the transformed northing values of the Sinusoidal and Homolosine at the treshold latitude.

    All projection unit tests are currently passing with this commit.

    Checklist

    • Will submit CLA to OSGeo in the coming days.

    Reviewing is a process done by project maintainers, mostly on a volunteer basis. We try to keep the overhead as small as possible and appreciate if you help us to do so by completing the following items. Feel free to ask in a comment if you have troubles with any of them.

    For all pull requests:

    • [x] Confirm you have read the contribution guidelines
    • [ ] You have sent a Contribution Licence Agreement (CLA) as necessary (not required for small changes, e.g., fixing typos in documentation)
    • [x] Make sure the first PR targets the master branch, eventual backports will be managed later. This can be ignored if the PR is fixing an issue that only happens in a specific branch, but not in newer ones.
    • [ ] The changes are not breaking the build in downstream projects using SNAPSHOT dependencies, GeoWebCache and GeoServer.

    The following are required only for core and extension modules (they are welcomed, but not required, for unsupported modules):

    • [ ] There is a ticket in Jira describing the issue/improvement/feature (a notable exemptions is, changes not visible to end users)
    • [ ] The pull request contains changes related to a single objective. If multiple focuses cannot be avoided, each one is in its own commit and has a separate ticket describing it.
    • [ ] PR for bug fixes and small new features are presented as a single commit
    • [ ] Commit message must be in the form "[GEOT-XYZW] Title of the Jira ticket"
    • [ ] New unit tests have been added covering the changes
    • [ ] This PR passes all existing unit tests (test results will be reported by travis-ci after opening this PR)
    • [ ] This PR passes the QA checks (QA checks results will be reported by travis-ci after opening this PR)
    • [ ] Documentation has been updated accordingly.

    Submitting the PR does not require you to check all items, but by the time it gets merged, they should be either satisfied or inapplicable.

    opened by ldesousa 37
  • [GEOT-6964] Java 17 compatibility

    [GEOT-6964] Java 17 compatibility

    GEOT-6964 Powered by Pull Request Badge

    Checklist

    For core and extension modules:

    • [ ] New unit tests have been added covering the changes.
    • [ ] Documentation has been updated (if change is visible to end users).
    • [x] There is an issue in GeoTools Jira (except for changes not visible to end users).
    • [x] Commit message(s) must be in the form [GEOT-XYZW] Title of the Jira ticket.
    • [x] Bug fixes and small new features are presented as a single commit.
    • [x] The commit targets a single objective (if multiple focuses cannot be avoided, each one is in its own commit, and has a separate ticket describing it).
    opened by bjornharrtell 37
  • [GEOT-5289] Make FactoryRegistry Java 9 compatible

    [GEOT-5289] Make FactoryRegistry Java 9 compatible

    Fixes GEOT-5289 by extending FactoryRegistry to implement the ServiceRegistry API. Work similar to this has been done in #1064 but was not merged due to legal concerns. This reimplementation is solely based on the calls GeoTools classes make to the ServiceRegistry API - no JDK code was copied.

    This PR is by no means complete. The main classes (FactoryRegistry, CategoryRegistry, and PartiallyOrderedSet) are littered with TODOs and I made some design decisions that need to be revisited. But GeoTools builds (on Java 8) and so does our project using it (compiling/testing on Java 9), so it fulfills the minimum requirements.

    I decided not to add the open issues as line comments because it is harder to keep track of them, particularly when they get folded due to new commits. Instead I put all my concerns here - sorry for the wall of text.

    Call Hierarchy Driven Design

    I only implemented those ServiceRegistry methods that are called in the GeoTools code base as well as some overloads that seemed to make sense (mostly to make registration and deregistration symmetrical).

    This could break clients that call ServiceRegistry methods that GeoTools does not call. Someone might have to investigate this.

    Exceptions

    The new code in FactoryRegistry can throw exception. At least one of the existing methods does some fancy exception creation. Maybe the new ones should do that, too?

    Registrable Services

    The service registry calls providers when they are (de)registered if they implement the RegisterableService interface. The methods expect a ServiceRegistry as parameter, though, and the FactoryRegistry no longer fufills that requirement.

    My temporary solution was to create a RegistrableFactory interface and have registrable GeoTools classes implement it.

    This change is in so far backwards incompatible that user implementations of RegisterableService will silently stop getting called. A weird way to address this could be to throw an exception when an implementation of RegisterableService is encountered.

    Naming

    Since this change is not 100% backwards compatible, it might make sense to go all the way and rename the methods inherited from ServiceRegistry. Since this class seems to be concerned with factories, I would replace ServiceProvider with Factory in all new methods. More explicit breakage might actually improve error-free migration because it highlights the changes and gives a good opportunity to inform the caller of the change to registrable services/factories.

    Backwards-compatible, deprecated overloads could be provided.

    Replace Filter With Predicate

    Since we're breaking code anyway (maybe), why not replace Filter With Predicate? Would make integration with Java 8 more seamless.

    Backwards-compatible, deprecated overloads could be provided.

    Partially Ordered Set

    I decided to reuse the existing PartiallyOrderedSet. To get it to where I can use it, I simply copied it into the gt-main project. It is entirely possible that a better place exists.

    The implementation also had at least two bugs and while fixing them I ended up changing the code quite a lot. I'm happy to provide information on why exactly I picked the current design.

    opened by nipafx 31
  • [GEOT-6393] Add ArcGIS TPK file format reader

    [GEOT-6393] Add ArcGIS TPK file format reader

    This adds a new "tpk" module. Authored by my colleague @murraymcdonald16

    This is the pull request for this JIRA issue:

    https://osgeo-org.atlassian.net/projects/GEOT/issues/GEOT-6393

    opened by leif81 25
  • Fix off-by-one bug in JDBCJoiningFeatureReader

    Fix off-by-one bug in JDBCJoiningFeatureReader

    Prior to this commit, JDBCJoiningFeatureReader had an off-by-one bug its column cursor management for joins on DataStores with exposed primary keys. See GEOS-5149 for an example of the kind of behavior this bug was causing.

    Also added logic to exercise primary key exposition in JDBCFeatureReaderTest, and extended JDBCFeatureReaderTest to exercise JDBCJoiningFeatureReader.

    opened by benjamincburns 23
  • [GEOT-5623]: dynamic stroke-dasharray improvements

    [GEOT-5623]: dynamic stroke-dasharray improvements

    Hopefully I have adressed all complaints about the older pull request (#1467). Now the PR is against master. I have removed all formatting issues (that was hard). I have as far as I see it now a more general version.

    opened by wumpz 22
  • github release notes

    github release notes

    Update developer guide procedure to use github release page to publish release notes publicly (as generated from Jira which is no longer public).

    Checklist

    For core and extension modules:

    • [ ] New unit tests have been added covering the changes.
    • [x] Documentation has been updated (if change is visible to end users).
    • [ ] There is an issue in GeoTools Jira (except for changes not visible to end users).
    • [ ] Commit message(s) must be in the form [GEOT-XYZW] Title of the Jira ticket.
    • [ ] Bug fixes and small new features are presented as a single commit.
    • [ ] The commit targets a single objective (if multiple focuses cannot be avoided, each one is in its own commit, and has a separate ticket describing it).
    opened by jodygarnett 0
  • [GEOT-7019] Appschema support for geopackage

    [GEOT-7019] Appschema support for geopackage

    GEOT-7019 Powered by Pull Request Badge

    Appschema integration is done for Geopackage

    Checklist

    For core and extension modules:

    • [ ] New unit tests have been added covering the changes.
    • [ ] Documentation has been updated (if change is visible to end users).
    • [x] There is an issue in GeoTools Jira (except for changes not visible to end users).
    • [x] Commit message(s) must be in the form [GEOT-XYZW] Title of the Jira ticket.
    • [x] Bug fixes and small new features are presented as a single commit.
    • [ ] The commit targets a single objective (if multiple focuses cannot be avoided, each one is in its own commit, and has a separate ticket describing it).
    opened by ydeliorman 0
  • [GEOT-6995] StreamingRenderer - Exception when shapefile features (3D points) get loaded into memory and displayed in a 2D coordinate system

    [GEOT-6995] StreamingRenderer - Exception when shapefile features (3D points) get loaded into memory and displayed in a 2D coordinate system

    GEOT-6995 Powered by Pull Request Badge

    Checklist

    For core and extension modules:

    • [x] New unit tests have been added covering the changes.
    • [ ] Documentation has been updated (if change is visible to end users).
    • [x] There is an issue in GeoTools Jira (except for changes not visible to end users).
    • [x] Commit message(s) must be in the form [GEOT-XYZW] Title of the Jira ticket.
    • [x] Bug fixes and small new features are presented as a single commit.
    • [x] The commit targets a single objective (if multiple focuses cannot be avoided, each one is in its own commit, and has a separate ticket describing it).
    opened by ianturton 2
  • Updating nested license on GeometrySmoother to BSD-3-Clause

    Updating nested license on GeometrySmoother to BSD-3-Clause

    BSD-3 Powered by Pull Request Badge

    The GeometrySmoother.java file is derived from LGPL-3.0, which brings LGPL-3.0 into the otherwise LGPL-2.1 licensed geotools. Reviewing the history, I've identified that the code is available under BSD-3-Clause as well. This is a PR to suggest adjust the licensing of the file.

    For my review, I have analyzed the 1.1.0, 1.1.1, and 1.2.0 releases made available at https://github.com/mbedward/jaitools (migrated from google code).

    The code GeometrySmoother is based on was introduced in 1.1.0 of jai-tools. It was released under LGPL-3.0. None of the four files referenced changed in 1.1.1. In 1.2.0 the files were relicensed to BSD-3-Clause. Ignoring license header changes and Java package name changes, this is the diff between the two:

    PolygonSmoother.java
    149a157
    >         final int LAST = N - 1;
    153c161
    <         List<Coordinate> smoothCoords = new ArrayList<Coordinate>();
    ---
    >         List<Coordinate> smoothCoords = CollectionFactory.list();
    161a170,175
    > 
    >                 // if this was the last vertex we also need to add
    >                 // the closing vertex
    >                 if (i == LAST) {
    >                     smoothCoords.add(new Coordinate(coords[0]));
    >                 }
    170c184
    <                 int copyN = i < N - 1 ? segment.length - 1 : segment.length;
    ---
    >                 int copyN = i == LAST ? segment.length : segment.length - 1;
    AbstractSmoother.java
    43c50
    <     protected SmootherControl DEFAULT_CONTROL = new SmootherControl() {
    ---
    >     public static final SmootherControl DEFAULT_CONTROL = new SmootherControl() {
    

    Where '>' indicates changes added in 1.2.0, and '<' the code removed that was there in 1.1.1. For the analysis, my concern is on whether any expressive code was removed. The removed code equals a 'new ArrayList', 'protected' statement and tweaked case-switch statement - none of this strikes me as being expressive code that copyright extends to. To my read, the version used to form GeometrySmoother is copyright equivalent to a version of the files from 1.2.0, if you remove a few new lines from 1.2.0. Therefore I believe you can relicense this.

    Apologies if this offends anyone. My intent is to remove any LGPL-2.1/LGPL-3.0 compatibility concerns.

    Checklist

    For core and extension modules:

    • [ ] New unit tests have been added covering the changes.
    • [ ] Documentation has been updated (if change is visible to end users).
    • [ ] There is an issue in GeoTools Jira (except for changes not visible to end users).
    • [ ] Commit message(s) must be in the form [GEOT-XYZW] Title of the Jira ticket.
    • [ ] Bug fixes and small new features are presented as a single commit.
    • [ ] The commit targets a single objective (if multiple focuses cannot be avoided, each one is in its own commit, and has a separate ticket describing it).
    opened by hyandell 3
  • Change ant target to release for build_release.sh use (previously rename)

    Change ant target to release for build_release.sh use (previously rename)

    This change must be backported (as it contains modification to build_release.sh script).

    Checklist

    For core and extension modules:

    • [ ] New unit tests have been added covering the changes.
    • [ ] Documentation has been updated (if change is visible to end users).
    • [ ] There is an issue in GeoTools Jira (except for changes not visible to end users).
    • [ ] Commit message(s) must be in the form [GEOT-XYZW] Title of the Jira ticket.
    • [ ] Bug fixes and small new features are presented as a single commit.
    • [ ] The commit targets a single objective (if multiple focuses cannot be avoided, each one is in its own commit, and has a separate ticket describing it).
    opened by jodygarnett 0
  • avoid masking common.py settings

    avoid masking common.py settings

    Noticed user guide was masking common external link settings. This is a documentation, non functional change helping sphinx-build environment to be easier to maintain.

    Checklist

    For core and extension modules:

    • [ ] New unit tests have been added covering the changes.
    • [ ] Documentation has been updated (if change is visible to end users).
    • [ ] There is an issue in GeoTools Jira (except for changes not visible to end users).
    • [ ] Commit message(s) must be in the form [GEOT-XYZW] Title of the Jira ticket.
    • [ ] Bug fixes and small new features are presented as a single commit.
    • [ ] The commit targets a single objective (if multiple focuses cannot be avoided, each one is in its own commit, and has a separate ticket describing it).
    opened by jodygarnett 0
  • Double check links on website and index page

    Double check links on website and index page

    Signed-off-by: Jody Garnett [email protected]

    Fix some build warnings and double check index and website page links; some minor updates (such as no longer mentioning "patches" as a contribution method). I did update the about page to list upcoming latest / stable / maintenance branches. Ideally I would like to pull this from the environment somehow.

    This is a non functional documentation change so no test case has been provided.

    Checklist

    For core and extension modules:

    • [ ] New unit tests have been added covering the changes.
    • [x] Documentation has been updated (if change is visible to end users).
    • [ ] There is an issue in GeoTools Jira (except for changes not visible to end users).
    • [ ] Commit message(s) must be in the form [GEOT-XYZW] Title of the Jira ticket.
    • [ ] Bug fixes and small new features are presented as a single commit.
    • [ ] The commit targets a single objective (if multiple focuses cannot be avoided, each one is in its own commit, and has a separate ticket describing it).
    opened by jodygarnett 4
  • [GEOT-6907] Wrong value found in class JNDIDataSourceFactory for constant JNDI_REFNAME

    [GEOT-6907] Wrong value found in class JNDIDataSourceFactory for constant JNDI_REFNAME

    GEOT-6907 Powered by Pull Request Badge

    https://osgeo-org.atlassian.net/browse/GEOT-6907

    Checklist

    Reviewing is a process done by project maintainers, mostly on a volunteer basis (thus limited in time). We need to keep the review overhead as small as possible, and appreciate if you help us to do so by completing the following items. Feel free to ask in a comment if you have troubles with any of them.

    For all pull requests:

    • [ ] Confirm you have read the contribution guidelines
    • [ ] You have sent a Contribution Licence Agreement (CLA) as necessary (not required for small changes, e.g., fixing typos in documentation)
    • [ ] Make sure the first PR targets the main branch, eventual backports will be managed later. This can be ignored if the PR is fixing an issue that only happens in a specific branch, but not in newer ones.
    • [ ] The changes are not causing two modules to share the same Java packages (to avoid Java 9+ split package issues)
    • [ ] The changes are not breaking the build in downstream projects using SNAPSHOT dependencies, GeoWebCache and GeoServer (there is an automatic PR check verifying this, check this when it turns green).

    The following are required only for core and extension modules (they are welcomed, but not required, for unsupported modules):

    • [ ] There is an issue in Jira describing the bug/task/new feature (a notable exemptions is, changes not visible to end users). The ticket is for the GeoTools project, if the issue was found elsewhere it's a good practice to link to the origin ticket/issue.
    • [ ] The pull request contains changes related to a single objective. If multiple focuses cannot be avoided, each one is in its own commit and has a separate ticket describing it.
    • [ ] PR for bug fixes and small new features are presented as a single commit
    • [ ] Commit message(s) must be in the form "[GEOT-XYZW] Title of the Jira ticket"
    • [ ] New unit tests have been added covering the changes
    • [ ] This PR passes all existing unit tests (test results will be reported by Continuous Integration after opening this PR)
    • [ ] This PR passes the QA checks (QA checks results will be reported by Continuous Integration after opening this PR)
    • [ ] Documentation has been updated accordingly.

    Submitting the PR does not require you to check all items, but by the time it gets merged, they should be either satisfied or not applicable.

    stale 
    opened by vsinceac 1
  • [GEOT-6888] PostGIS - fixed columns lengths when using prepared

    [GEOT-6888] PostGIS - fixed columns lengths when using prepared

    GEOT-6888 Powered by Pull Request Badge

    When configuring postgis plugin with ("preparedStatements", true) fixed column lengths (255) will be created in the DB schema for strings (char varying (255)) which causes a problem if the contents to be inserted are longer. If not using prepared statements the length isn't limited and there is no problem. The cause for this behaviour is that there is a seperate dialect for prepared staments (PostGISPSDialect) which doesn't override method getDefaultVarcharSize with should return -1 like the PostGISDialect.

    Checklist

    Reviewing is a process done by project maintainers, mostly on a volunteer basis (thus limited in time). We need to keep the review overhead as small as possible, and appreciate if you help us to do so by completing the following items. Feel free to ask in a comment if you have troubles with any of them.

    For all pull requests:

    • [x] Confirm you have read the contribution guidelines
    • [ ] You have sent a Contribution Licence Agreement (CLA) as necessary (not required for small changes, e.g., fixing typos in documentation)
    • [x] Make sure the first PR targets the main branch, eventual backports will be managed later. This can be ignored if the PR is fixing an issue that only happens in a specific branch, but not in newer ones.
    • [x] The changes are not causing two modules to share the same Java packages (to avoid Java 9+ split package issues)
    • [ ] The changes are not breaking the build in downstream projects using SNAPSHOT dependencies, GeoWebCache and GeoServer (there is an automatic PR check verifying this, check this when it turns green).

    The following are required only for core and extension modules (they are welcomed, but not required, for unsupported modules):

    • [x] There is an issue in Jira describing the bug/task/new feature (a notable exemptions is, changes not visible to end users). The ticket is for the GeoTools project, if the issue was found elsewhere it's a good practice to link to the origin ticket/issue.
    • [x] The pull request contains changes related to a single objective. If multiple focuses cannot be avoided, each one is in its own commit and has a separate ticket describing it.
    • [x] PR for bug fixes and small new features are presented as a single commit
    • [x] Commit message(s) must be in the form "[GEOT-XYZW] Title of the Jira ticket"
    • [ ] New unit tests have been added covering the changes
    • [ ] This PR passes all existing unit tests (test results will be reported by Continuous Integration after opening this PR)
    • [ ] This PR passes the QA checks (QA checks results will be reported by Continuous Integration after opening this PR)
    • [ ] Documentation has been updated accordingly.

    Submitting the PR does not require you to check all items, but by the time it gets merged, they should be either satisfied or not applicable.

    needs_test 
    opened by TDesjardins 6
  • [GEOT-6869] : MultiSurface not encoded in DWithin filter

    [GEOT-6869] : MultiSurface not encoded in DWithin filter

    GEOT-6869 Powered by Pull Request Badge

    Checklist

    Reviewing is a process done by project maintainers, mostly on a volunteer basis (thus limited in time). We need to keep the review overhead as small as possible, and appreciate if you help us to do so by completing the following items. Feel free to ask in a comment if you have troubles with any of them.

    For all pull requests:

    • [x] Confirm you have read the contribution guidelines
    • [x] You have sent a Contribution Licence Agreement (CLA) as necessary (not required for small changes, e.g., fixing typos in documentation)
    • [x] Make sure the first PR targets the main branch, eventual backports will be managed later. This can be ignored if the PR is fixing an issue that only happens in a specific branch, but not in newer ones.
    • [x] The changes are not causing two modules to share the same Java packages (to avoid Java 9+ split package issues)
    • [x] The changes are not breaking the build in downstream projects using SNAPSHOT dependencies, GeoWebCache and GeoServer (there is an automatic PR check verifying this, check this when it turns green).

    The following are required only for core and extension modules (they are welcomed, but not required, for unsupported modules):

    • [x] There is an issue in Jira describing the bug/task/new feature (a notable exemptions is, changes not visible to end users). The ticket is for the GeoTools project, if the issue was found elsewhere it's a good practice to link to the origin ticket/issue.
    • [x] The pull request contains changes related to a single objective. If multiple focuses cannot be avoided, each one is in its own commit and has a separate ticket describing it.
    • [x] PR for bug fixes and small new features are presented as a single commit
    • [x] Commit message(s) must be in the form "[GEOT-XYZW] Title of the Jira ticket"
    • [x] New unit tests have been added covering the changes
    • [x] This PR passes all existing unit tests (test results will be reported by Continuous Integration after opening this PR)
    • [x] This PR passes the QA checks (QA checks results will be reported by Continuous Integration after opening this PR)
    • [ ] Documentation has been updated accordingly.

    Submitting the PR does not require you to check all items, but by the time it gets merged, they should be either satisfied or not applicable.

    opened by eropartz 3
Releases(26.1)
  • 26.1(Nov 18, 2021)

  • 26.0(Nov 17, 2021)

  • 26-RC(Nov 17, 2021)

    Release notes

    Announcement: GeoTools 26-RC Release Candidate

    Bug

    GEOT-6982 Update Mongo DB driver to 4.0.6 to mitigate CVE-2021-20328

    GEOT-6965 encoding a polygon as a multipolygon gives an unwanted duplicated srsname tag in polygon

    GEOT-6962 Use glob for GeoPkg constraint_type when writing a range constraint

    GEOT-6959 SimpleHttpClient does support proxy

    GEOT-6949 Improve CropCoverage to retain ROI information in output coverage

    GEOT-6944 Deadlock at org.geotools.xsd.XSD.getSchema

    GEOT-6937 AppSchema JdbcMultipleValue will fill wrong values if targetColumn is a PK

    GEOT-6921 GeoTools primary key finder always query the table gt_pk_metadata even if it doesn't exists

    GEOT-6913 Correct join translation machinery to qualify fid filters with alias when generating SQL query

    GEOT-6912 Special characters in shp file name are not correctly encoded

    GEOT-6906 WFS DescribeFeatureType doesn't account for outputFormats defined globally

    GEOT-6899 Resource (CPU/Heap) starvation building shapefile spatial index

    GEOT-6894 WMTS fails when initial url contains query parameters

    GEOT-6892 ExpressionDOMParser NullPointerException if setter for FilterFactory is invoked

    GEOT-6889 Configuration of JNDI ends in exception at strange places

    GEOT-6887 Bring GeoJsonWriter/GeoJsonReader on par with gt-geojson with handling of empty collections, arrays, lists, datetime and boolean

    GEOT-6886 Raster to Vector rendering transformations with reprojection can generate incorrect images

    GEOT-6883 Fix edge cases in the date time parser

    GEOT-6881 GreaterThanEqualTo and LessThanEqualTo incorrectly marked as unsupported in WFS query

    GEOT-6880 Rendering process fails if vendor option sortByGroup is used

    GEOT-6876 JDBCDataStore.isFullBoundsQuery returns true for a query with a limit or startIndex

    GEOT-6871 AppSchema, defining nested attribute with root attribute filter might return 0 on count

    GEOT-6866 Upgrade FlatGeoBuf DataStore to flatgeobuf 3.16.4 with improvements to support box filter and read larger files

    GEOT-6863 Datastores with Character parameters can't be reopened

    GEOT-6860 SchemaCache doesn't follow redirect when downloading from HttpConnection

    GEOT-6856 Replace new Collection method invocation via reflection with new ArrayList in ComplexAttributeImpl class

    GEOT-6855 AppSchema JDBCMultipleValue might generate ambiguous query when ClientProperty is defined

    GEOT-6854 AppSchema JDBCMultipleValue directive fails to encode ClientProperties if targetValue is not specified

    GEOT-6848 Vendor options in RasterSymbolizer are not parsed

    GEOT-6832 WFS-NG doesn't apply acrgis strategy for versions that are not 2.0.0

    GEOT-6800 Certain shapefiles can still trigger exceptions when Z value present but no M value

    GEOT-6783 Unsupported module gt-arcgisrest isn't activated by -Dall

    GEOT-6709 Java 11: GeoTools fails with ExceptionInInitializerError caused by an InaccessibleObjectException trying to access tech.units.indriya internals

    GEOT-6677 WMTS client code automatically uppercases key names in KVP requests which breaks non standard servers

    GEOT-6517 WFS: possible memory leak when when parsing getFeatures() result

    GEOT-6410 Conversion from boolean true/false in geoserver to SQL Server bit 0/1, is broken

    GEOT-6172 Missing jars (units etc.) in geotools-20.0-bin.zip

    GEOT-2972 Character set from CPG files

    Improvement

    GEOT-6980 Improve gt-geobuf's compatibility with mapbox/geobuf

    GEOT-6974 Document gt-gml-geometry-streaming

    GEOT-6973 Add gml:Surface parsing to gt-gml-geometry-streaming

    GEOT-6947 GrowableInternationalString copy constructor not adding null Locale

    GEOT-6923 Improvement to GrowableInternationalString ease of use and preserving insertion order

    GEOT-6920 Make it easier to specify which transformation to use when selecting a coordinate system transform

    GEOT-6918 Implement NowFunction

    GEOT-6917 Add support for timeUnit on dateDifference function

    GEOT-6915 Add method create in TileFactory

    GEOT-6903 gml-geometry-streaming: Add support for curved polygons and Arcs with more than 3 control points

    GEOT-6900 Shapefile quadtree build performance

    GEOT-6896 Add support for GML 3.2 namespace to gml-geometry-streaming

    GEOT-6895 Restrict the responsibilities of WMTSTileService

    GEOT-6893 Add support for gml:Curve with gml:Arc segments to gml-geometry-streaming

    GEOT-6891 GeoTIFF Writer should unwrap an outputStreamAdapter to get the underlying ImageOutputStream

    GEOT-6890 Move StAX GML parser from wfs-ng to a new module

    GEOT-6877 Upgrade to imageio-ext 1.3.6 (tiff 32 bit with deflate/lzw support)

    GEOT-6870 Add vendor options support for Rule

    GEOT-6864 Avoid use of underscore as identifier

    GEOT-6861 Add support for Krovak North Orientated

    GEOT-6859 Speed up geotools DbaseFileWriter.FieldFormatter.getFieldString(int size, String s)

    GEOT-6846 MongoDB plugin refact FilterToMongo and FilterSplitter

    GEOT-6840 Revert Object varargs change in SimpleFeature to help scala compatibility

    GEOT-6839 Update Batik from 1.13 to 1.14

    GEOT-6835 WFS-NG doesn't understand GML:MultiCurves

    GEOT-6821 Update JDBC drivers: MySQL (to 8.0.24)

    GEOT-5859 Upgrade httpclient from 3.1 to 4.5.13

    New Feature

    GEOT-6867 Add the possibility to prune Rule, Symbolizer, FeatureTypeStyle elements when rendering Maps or Legends

    GEOT-6842 Adding WPS 2.0 support with EMF model and xml binding configuration

    Sub-task

    GEOT-6978 Upgrade Oracle JDBC driver (com.oracle.database.jdbc:ojdbc8) 19.11.0.0 ➜ 19.12.0.0

    GEOT-6957 Upgrade Oracle JDBC driver (com.oracle.database.jdbc:ojdbc8) 19.10.0.0 ➜ 19.11.0.0

    GEOT-6956 Upgrade MySQL JDBC driver (mysql:mysql-connector-java) 8.0.24 ➜ 8.0.26

    GEOT-6955 Upgrade PostgreSQL JDBC driver (org.postgresql:postgresql) 42.2.19 ➜ 42.2.23

    GEOT-6954 Upgrade MS SQL JDBC driver (com.microsoft.sqlserver:mssql-jdbc) 9.2.0.jre8 ➜ 9.4.0.jre8

    GEOT-6953 Upgrade DB2 JDBC driver (com.ibm.db2:jcc) 11.5.5.0 ➜ 11.5.6.0

    GEOT-6909 Breakdown 500+ line method RasterSymbolizerTest:contrastEnhancementMethods() into individual tests

    Task

    GEOT-6979 Remove the unsupporte module jdbc-ingres

    GEOT-6975 Update dependencies of (unsupported) Elasticsearch plugin

    GEOT-6972 Remove the unsupported module "georest"

    GEOT-6971 Remove the unsupported module epsg-oracle

    GEOT-6970 Remove the unsupported module imagemosaic-jdbc

    GEOT-6969 Remove unsupported gtopo30 module

    GEOT-6966 Update org.apache.solr:solr-solrj from 8.7.0 to 8.9.0

    GEOT-6952 Upgrade JDBC drivers

    GEOT-6943 Fix WMS online tests to use OnlineTestSupport and working servers

    GEOT-6925 Set up PMD cognitive complexity checks, start cleaning up methods that are too complex (threshold of 160)

    GEOT-6901 Use StandardCharsets when possible, add a PMD check to enfornce it

    GEOT-6897 Upgrade PMD to version 6.34

    GEOT-6882 Remove deprecated HTTPClient interfaces and classes

    GEOT-6879 Bump commons-io from 2.6 to 2.10.0

    GEOT-6878 Avoid unnecessary object wrapper creation, add a PMD rule to check it

    GEOT-6844 Avoid C style array declarations, add Checkstyle check to disallow it

    GEOT-6843 Use short arrays initializers, add PMD rule to enforce it

    GEOT-6834 Replace references to the "master" branch by "main"

    GEOT-6833 Add missing @Override annotations and set up a QA rule to enforce it

    GEOT-6831 Add a PMD ruleset to avoid Exception#PrintStackTrace() usage

    GEOT-6829 Remove dependency on xpp3, use the standard StAX API

    Source code(tar.gz)
    Source code(zip)
Sikuli's official repository on github. Ask questions or report bugs at http://launchpad.net/sikuli.

!!!This Sikuli X-1.0rc3 IS NO LONGER SUPPORTED !!! A new version of Sikuli(X) is available since 2013 as a follow up development GitHub repo: RaiMan/S

Sikuli Lab 1.6k Nov 27, 2021
The New Official Aparapi: a framework for executing native Java and Scala code on the GPU.

A framework for executing native Java code on the GPU. Licensed under the Apache Software License v2 Aparapi allows developers to write native Java co

Syncleus 385 Nov 25, 2021
The official home of the Presto distributed SQL query engine for big data

Presto Presto is a distributed SQL query engine for big data. See the User Manual for deployment instructions and end user documentation. Requirements

Presto 12.9k Nov 24, 2021
Hierarchical Temporal Memory implementation in Java - an official Community-Driven Java port of the Numenta Platform for Intelligent Computing (NuPIC).

htm.java Official Java™ version of... Hierarchical Temporal Memory (HTM) Community-supported & ported from the Numenta Platform for Intelligent Comput

Numenta 301 Oct 12, 2021
The official home of the Presto distributed SQL query engine for big data

Presto Presto is a distributed SQL query engine for big data. See the User Manual for deployment instructions and end user documentation. Requirements

Presto 12.9k Nov 30, 2021
A toolchain for Minecraft: Java Edition that builds a workspace to interact with the game using the official mappings provided to the public by Mojang Studios.

VanillaGradle is a toolchain for Minecraft: Java Edition that provides a workspace to interact with the game using official mappings provided by Mojan

SpongePowered 48 Nov 28, 2021
Discord4J is a fast, powerful, unopinionated, reactive library to enable quick and easy development of Discord bots for Java, Kotlin, and other JVM languages using the official Discord Bot API.

Discord4J is a fast, powerful, unopinionated, reactive library to enable quick and easy development of Discord bots for Java, Kotlin, and other JVM languages using the official Discord Bot API.

null 1.3k Dec 2, 2021
Official Elasticsearch Java Client

Elasticsearch Java Client The official Java client for Elasticsearch. Note: this project is still a work in progress. This client is meant to replace

elastic 59 Dec 6, 2021
Highly-available version-controlled service configuration repository based on Git, ZooKeeper and HTTP/2

Visit the official web site for more information. Central Dogma Central Dogma is an open-source, highly-available and version-controlled service confi

LINE 424 Nov 28, 2021
*old repository* --> this is now integrated in https://github.com/javaparser/javaparser

JavaSymbolSolver has been integrated in JavaParser: development will continue there! We will work on current issues opened here, but all new issues sh

JavaParser 284 Dec 3, 2021
JitPack is a novel package repository for JVM and Android projects.

JitPack is a novel package repository for JVM and Android projects. It builds Git projects on demand and provides you with ready-to-use artifacts (jar, aar).

JitPack 2.2k Dec 6, 2021
Sonatype Nexus Repository Open Source Codebase

Builds use Apache Maven and require Java 8. Apache Maven wrapper scripts are included in the source tree.

Sonatype 1k Nov 29, 2021
Master repository for the JGraphT project

JGraphT Released: June 14, 2020 Written by Barak Naveh and Contributors (C) Copyright 2003-2020, by Barak Naveh and Contributors. All rights reserved.

JGraphT 2k Nov 30, 2021
JGit project repository (jgit)

Java Git An implementation of the Git version control system in pure Java. This project is licensed under the EDL (Eclipse Distribution License). JGit

Eclipse Foundation 1k Jul 5, 2021
Obsolete repository. Moved to oracle/graal.

Obsolete Repository This repository is obsolete. Sulong is now integrated in the Graal repository. Please open new issues or pull requests directly in

GraalVM 622 Nov 3, 2021
Iris repository

iris analyzes the meaning of text and provides insights into how Cortical.io Retina technology can be applied to text-data comparison and information

cortical-io 25 Apr 24, 2021
This repository contains all java related sources of the Dolphin Platform.

Dolphin Platform This repository contains all Java related sources of the Dolphin Platform. Clients for other languages can be found in seperate repos

IMTF 73 Jun 27, 2021
This repository contains a functional example of an order delivery service similar to UberEats, DoorDash, and Instacart.

Order Delivery Microservice Example In an event-driven microservices architecture, the concept of a domain event is central to the behavior of each se

Kenny Bastani 163 Nov 29, 2021
This is public repository for Selenium Learners at TestLeaf

Selenium WebDriver Course for March 2021 Online Learners This is public repository for Selenium Learners at TestLeaf. Week1 - Core Java Basics How Jav

TestLeaf 80 Nov 19, 2021
This repository contains my solutions to programming problems of the UVa online-judge.

UVa Solutions This repository contains my solutions to programming problems of the UVa online-judge. Problem Set Volumes (100...1999) Volume 12 Proble

Tahanima Chowdhury 7 Nov 15, 2021
This is a repository to collect JUnit Tests for GAD exercises at TUM in SS21

TUM_GAD_Tests_SS21 This is a repository to collect JUnit Tests for GAD exercises at TUM in SS21. These tests have been written by students for student

null 33 Aug 14, 2021
PostgreSQL is the world's most advanced open source database. Also, PostgreSQL is suitable for Event Sourcing. This repository provides a sample of event sourced system that uses PostgreSQL as event store.

Event Sourcing with PostgreSQL Introduction Example Domain Event Sourcing and CQRS 101 State-Oriented Persistence Event Sourcing CQRS Advantages of CQ

Evgeniy Khyst 38 Nov 28, 2021
Evgeniy Khyst 21 Nov 28, 2021
EventStoreDB is the database for Event Sourcing. This repository provides a sample of event sourced system that uses EventStoreDB as event store.

Event Sourcing with EventStoreDB Introduction Example Domain Event Sourcing and CQRS 101 State-Oriented Persistence Event Sourcing CQRS Advantages of

Evgeniy Khyst 23 Nov 29, 2021
This repository has the code for basic operations on tries - insert, search and delete.

This repository is part of the unacademy session series I took on 17th and 18th of April, 2021. I am daily improving it a bit, with the amount of time

Tarun Gupta 12 Apr 27, 2021
The public release repository for SUSTech SQL (CS307) course project 2.

CS307 Spring 2021 Database Project 2 1. Source code Download link: For java: https://github.com/NewbieOrange/SUSTech-SQL-Project2-Public For python: h

null 16 Dec 3, 2021
A repository that contains the backend part of the Human Resources Management System.

Human Resources Management System Backend A human resources management system is a form of human resources (HR) software that combines several systems

Bulent Baris Kilic 22 Nov 30, 2021