[Geoserver-devel] Removing gt-geojson and json-simple

Hi all,
in an effort to reduce our code base size, and remove un-maintained moduels, I’ve prepared a couple of pull requests for GeoTools and GeoServer that provide the final step of a migration from gt-geojson to gt-geojsonstore (which was initiated by Ian):

As indicated in the pull requests, one of the potential issues I’m seeing, is that gt-geojsonstore bundles in the same package low level conversion between features and GeoJSON, as well as a data store.
Since both gs-restconfig and gs-wms depend on some GeoJSON parsing abilities, currently provided by gt-geojson, we’ll end up having the GeoJSON data store always included in the GeoServer core package. GeoJSON is ubiquitous, but at the same time, not a well performing data source (text, no indexing).

I guess the module could be split into two parts, gt-geojson-core and gt-geojson-store, but I’m not sure if the potential issues are worth the effort (suggestions? volunteers?).

Once gt-geojson is not used anymore, it could be removed (maybe in time for GeoTools 27.0?).
This would also remove most of the usage points of json-simple, a library that has last been released in 2012… most, but not all.

The gt-mbstyle module JSON parsing is built on top of it. Not a big deal, it’s a plugin, but pointing that out. The parsing could be replaced by jackson-core + jackson-databind, or to keep things smaller, jackson-core + jackson-jr-stree (json-smart is another possibility, still alive, and used in the authkey module… though honestly I’d prefer to reduce the number of JSON libs we use). In any case, I’m not volunteering for this upgrade, simply pointing out the issue.

Cheers
Andrea

···

GeoServer Professional Services from the experts!

Visit http://bit.ly/gs-services-us for more information.

Ing. Andrea Aime
@geowolf
Technical Lead

GeoSolutions Group
phone: +39 0584 962313

fax: +39 0584 1660272

mob: +39 333 8128928

https://www.geosolutionsgroup.com/

http://twitter.com/geosolutions_it


Con riferimento alla normativa sul trattamento dei dati personali (Reg. UE 2016/679 - Regolamento generale sulla protezione dei dati “GDPR”), si precisa che ogni circostanza inerente alla presente email (il suo contenuto, gli eventuali allegati, etc.) è un dato la cui conoscenza è riservata al/i solo/i destinatario/i indicati dallo scrivente. Se il messaggio Le è giunto per errore, è tenuta/o a cancellarlo, ogni altra operazione è illecita. Le sarei comunque grato se potesse darmene notizia.

This email is intended only for the person or entity to which it is addressed and may contain information that is privileged, confidential or otherwise protected from disclosure. We remind that - as provided by European Regulation 2016/679 “GDPR” - copying, dissemination or use of this e-mail or the information herein by anyone other than the intended recipient is prohibited. If you have received this email by mistake, please notify us immediately by telephone or e-mail

Bump? :smiley:
I’m guessing this one went unnoticed due to the holidays.

Cheers
Andrea

···

Regards,

Andrea Aime

==
GeoServer Professional Services from the experts!

Visit http://bit.ly/gs-services-us for more information.

Ing. Andrea Aime
@geowolf
Technical Lead

GeoSolutions Group
phone: +39 0584 962313

fax: +39 0584 1660272

mob: +39 333 8128928

https://www.geosolutionsgroup.com/

http://twitter.com/geosolutions_it


Con riferimento alla normativa sul trattamento dei dati personali (Reg. UE 2016/679 - Regolamento generale sulla protezione dei dati “GDPR”), si precisa che ogni circostanza inerente alla presente email (il suo contenuto, gli eventuali allegati, etc.) è un dato la cui conoscenza è riservata al/i solo/i destinatario/i indicati dallo scrivente. Se il messaggio Le è giunto per errore, è tenuta/o a cancellarlo, ogni altra operazione è illecita. Le sarei comunque grato se potesse darmene notizia.

This email is intended only for the person or entity to which it is addressed and may contain information that is privileged, confidential or otherwise protected from disclosure. We remind that - as provided by European Regulation 2016/679 “GDPR” - copying, dissemination or use of this e-mail or the information herein by anyone other than the intended recipient is prohibited. If you have received this email by mistake, please notify us immediately by telephone or e-mail

I noticed but do not have a useful informed response; I have learned not to reply unless I can add to the conversation.

Q: I do not understand what Ian is talking about with not being bothered by coordinate changes…

Q: I thinking this is a request / suggestion that mbstyle migrate to a active/supported json library (makes sense but no budget, and I have not looked at any of the libraries you mention).

I would ask that you open a JIRA issue to discussion mbstyle json library change, but we close un-resourced issues. Could make a technical debt wiki page of course…

How difficult is it to change json parser?

···


Jody Garnett

I noticed but do not have a useful informed response; I have learned not to reply unless I can add to the conversation.

Q: I do not understand what Ian is talking about with not being bothered by coordinate changes…

It’s about the precision by which we specify coordinates, see this XKCD for a good laugh on the topic: https://xkcd.com/2170/
GeoServer defaults to having more coordinates than strictly needed for typical geographic applications, but it’s a good
default for municipal scale application that often require centrimetric precision.

Q: I thinking this is a request / suggestion that mbstyle migrate to a active/supported json library (makes sense but no budget, and I have not looked at any of the libraries you mention).

It’s a suggestion, not a request, believe I worded that in a clear way, quoting: “Not a big deal, it’s a plugin, but pointing that out.”
Just know that gt-mbstyles is depending on a JSON library that has been dead for several years.

I would ask that you open a JIRA issue to discussion mbstyle json library change, but we close un-resourced issues. Could make a technical debt wiki page of course…

Or just keep in mind that you have that situation. We close “new feature” requests that are not resources, not tasks or bugs.
I don’t know how hard it is to migrate, but pointed out some possible libraries that could be used for the task, which need
to be explored.

The main feedback I was looking for was the part about having gt-geojsonstore in the classpath by default, and as a result,
having the GeoJSON store always show up in GeoServer installations (since after the upgrade gs-wms and gs-restconfig
would depend on it, rather than the dead gt-geojson module).

Cheers
Andrea

···

GeoServer Professional Services from the experts!

Visit http://bit.ly/gs-services-us for more information.

Ing. Andrea Aime
@geowolf
Technical Lead

GeoSolutions Group
phone: +39 0584 962313

fax: +39 0584 1660272

mob: +39 333 8128928

https://www.geosolutionsgroup.com/

http://twitter.com/geosolutions_it


Con riferimento alla normativa sul trattamento dei dati personali (Reg. UE 2016/679 - Regolamento generale sulla protezione dei dati “GDPR”), si precisa che ogni circostanza inerente alla presente email (il suo contenuto, gli eventuali allegati, etc.) è un dato la cui conoscenza è riservata al/i solo/i destinatario/i indicati dallo scrivente. Se il messaggio Le è giunto per errore, è tenuta/o a cancellarlo, ogni altra operazione è illecita. Le sarei comunque grato se potesse darmene notizia.

This email is intended only for the person or entity to which it is addressed and may contain information that is privileged, confidential or otherwise protected from disclosure. We remind that - as provided by European Regulation 2016/679 “GDPR” - copying, dissemination or use of this e-mail or the information herein by anyone other than the intended recipient is prohibited. If you have received this email by mistake, please notify us immediately by telephone or e-mail

When cutting main over to 28-SNAPSHOT a number of unsupported modules broke as they continued to depend on gt-geojsondatastore; I was able to fix everything except the gt-ogcapi client by referencing the new modules. For the timbering I have isolated gt-ogcapi into its own profile (not sure why this was not done perviously, is anything downstream depending on gt-ogcapi client?)

See https://github.com/geotools/geotools/commit/78b83cdbb299f25d5f0dde8a1522357a94f2f737

···


Jody Garnett


Jody Garnett