The GeoTools team needs your help testing GeoTools 25-RC Release Candidate
<http://geotoolsnews.blogspot.com/2021/03/geotools-25-rc-release-candidate.html>
.:

   - geotools-25-RC-bin.zip
   
<https://sourceforge.net/projects/geotools/files/GeoTools%2025%20Releases/25-RC/geotools-25-RC-bin.zip/download>
   - geotools-25-RC-doc.zip
   
<https://sourceforge.net/projects/geotools/files/GeoTools%2025%20Releases/25-RC/geotools-25-RC-doc.zip/download>
   - geotools-25-RC-userguide.zip
   
<https://sourceforge.net/projects/geotools/files/GeoTools%2025%20Releases/25-RC/geotools-25-RC-userguide.zip/download>
   - geotools-25-RC-project.zip
   
<https://sourceforge.net/projects/geotools/files/GeoTools%2025%20Releases/25-RC/geotools-25-RC-project.zip/download>

This release candidate is also available from the OSGeo Maven Repository
<http://repo.osgeo.org/> and is made in conjunction with GeoServer
2.19-RC and JTS 1.18.1.
Please Test this Release Candidate
A release candidate is your chance to both try out new features and
contribute to the project with valuable feedback right when we need it
most.

Please test this release with your project and let us know of any
regression before we release GeoTools 25 later this month.
Change DataStore Parameters Map<String,Serilizable> to Map<String,?>
This API change
<https://github.com/geotools/geotools/wiki/Switch-DataAccess-DataStore-parameters-map-values-from-String-to-generic-object>
makes
it easier to configure DataStore's with full objects (which may or may not
be serializable):

*Map<String, Object> connectionDetails = new HashMap<>();*
*connectionDetails.put("url", url );*
*DataStore dataStore = DataStoreFinder.getDataStore(map);*


As shown above this change does not effect existing client code. If you
implement your own DataStore please check out update
<https://docs.geotools.org/stable/userguide/welcome/upgrade.html#datastore-creation-parameters>
 instructions.
New gt-http library and HTTPClientFinder
We noticed that the various web clients (gt-wfs, gt-wms, gt-tile) all had
different ways to change between the use of built-in Java URL or an
alternative such as Apache HTTP Components implementation.


*Hints hints = **new Hints(Hints.HTTP_LOGGING, **"True")*

*HTTPClient http = HTTPClientFinder.createClient(*hints*);*

*HTTPResponse response = http.get( new URL("*https://geotools.org*";) );*


The new gt-http library module is available to integrators providing a
single location to configure how the library interacts with web resources.
The update instructions
<https://docs.geotools.org/stable/userguide/welcome/upgrade.html#httpclient-moved-to-its-own-module>
provide
a table to guide migrating from deprecated implementations to the shared
gt-http classes.
Extending use of Variable Arguments making the api easier to use
An interesting update that simplifies the use of GeoTools, methods that
previously worked with array can now be used more easily.

As an example *Query.setPropertyNames( String ... propNames )* allows for:

*Query q = new Query(tname("ft1"));*
*q.setPropertyNames("geom", "name");*


Existing code that use a *String[] *array will continue to work just fine,
see update
<https://docs.geotools.org/stable/userguide/welcome/upgrade.html#more-variable-arguments-support-in-core-classes>
instructions
for more examples.
GeoPackage Improvements
Several geopackage improvements for this release:

   - Add support for GeoPackage sorting in GeoPackageProcessRequest
   - GeoPackage store fails to register two same named columns, in
   different tables, both using the schema extension
   - Improve GeoPackage array storage (as JSON structures)

JDBCDataStore Updates
One performance improvement for database use:

   - Native support for average and stddev aggregate functions in jdbc data
   stores

Updated jdbc drivers:

   - Oracle 19.10.0.0
   - PostgreSQL 42.2.19
   - sqlite-jdbc 3.34.0
   - SQL Server 8.4.1.jre8

Massive Code Cleanup
The GeoTools codebase is easier to work with due to ongoing quality
assurance activities, code cleanup and additional "pmd
<https://pmd.github.io/>" checks added to our build chain.

The PMD static code analyzer has a motto of "Don't shoot the messenger",
what they did not warn us about is that PMD shoots first and shoots often:

   - Remove un-necessary casts from code
   - Remove explicit type when diamond operator can be used
   - Unchecked warnings cleanup, addressing all compiler warnings
   - Replace iterator loops with enhanced for loops
   - Avoid assertTrue for tests that can be expressed with dedicated
   assertions
   - Collapse catch statements with the same body in a multi-catch
   - Replace try/finally with try-with-resources
   - Remove usage of Vector/Hashtable, replace with ArrayList and HashMap

In each case the entire codebase has been cleaned up to address the concern
raised, and then the rule added to our build chain so any future work is
called out on poor behaviour. In many cases these checks help catch common
errors improving library stability and the confidence of the development
team.

All of the above checks are running in continous integration, but more
importantly, in the QA build check running on each PR, keeping the code
from regressions.

Thanks to Andrea, Ian and everyone involved for making the GeoTools library
better.
Updated Libraries
Each major release is an opportunity to update the libraries that GeoTools
uses:

   - JTS 1.18.1
   - jai-ext to 1.1.19
   - commons-beanutils 1.9.4
   - Batik 1.13
   - Jackson 2 libraries 2.10.5 and 2.10.5.1
   - Apache HTTP components to 4.5.13
   - Guava to 30.1-jre

For additional information on upgrading your application see our User
Manual "upgrading"
<https://docs.geotools.org/latest/userguide/welcome/upgrade.html> page.
Improvements and Fixes
Public service announcement:

   - ArcSDE DataStore has been retired due to lack of feedback and active
   maintainer
   - Validation extension has been retired as it has been unused for some
   time

>From our issue tracker release-notes
<https://osgeo-org.atlassian.net/secure/ReleaseNote.jspa?projectId=10001&version=16797>
:

   - Add new expression functions to support AND, &&, OR operators
   - Use faster JTS function for pole of inaccessibility
   
<https://lin-ear-th-inking.blogspot.com/2020/04/maximum-inscribed-circle-and-largest.html>
   - SimplifyingFilterVisitor does not account for null values when
   simplifying negations
   - Speed improvement relaxing FactoryRegistery synchronization
   - gt-renderer: Map rendering of numbers using scientific notation
   - gt-css: Styles don't change the size of a label unless `font-style` is
   set
   - gt-wfs-ng: WFS 2.0 GetFeature reponse parsing fails on "boundedBy"
   - gt-wmts: HTTP headers set for WMTS isn't used for GetCapabilities calls
   - gt-wmts: WMTSCoverageReader#getMap() in some cases throws
   IllegalArgumentException
   - gt-wmts: WMTS client code automatically uppercases key names in KVP
   requests which breaks non standard servers
   - gt-process: Add ability to produce contours from an irregular grid of
   points.

--
GeoTools Project Management Committee
_______________________________________________
GeoTools-GT2-Users mailing list
GeoTools-GT2-Users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users

Reply via email to