Geoserver extension to use custom schema when crateing new data store

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Geoserver extension to use custom schema when crateing new data store

Norman Bobroff
Hi,
We developed a Geoserver extension to provide real time raster image
data from IBM PAIRS (ibmpairs.mybluemix.net) repository.

As part of the cleaning up of our extension, we would like to introduce a
custom Connection schema ( "ibmpairs") specific to our plugin. This schema
would appear and be accepted in the 'Connection' field of Geoserver's
"create new datastore" dialog as indicated in the attached/embedded image:

<http://osgeo-org.1560.x6.nabble.com/file/t384375/ibmpairsschema_geoserver_create_store.png>

Presently, we use the http schema as a workaround, Geoserver internally
verifies the schema and URL. If I try a custom schema or url which is not
visible the Geoserver code internally atempts to verify the Connection and
rejects it. Somehow we need to register our new schema with Geoserver and
get a callback to intercept this Geoserver code that verifies the new
Connection. How do we do this?

(Our plugin is based on public class PairsFormatFactory implements
GridFormatFactorySpi and implements extensions of public class PairsFormat
extends AbstractGridFormat implements Format {...} and public class
PairsCoverageReader extends AbstractGridCoverage2DReader implements
GridCoverage2DReader {...} and is otherwise working.



--
Sent from: http://osgeo-org.1560.x6.nabble.com/GeoServer-User-f3786390.html


_______________________________________________
Geoserver-users mailing list

Please make sure you read the following two resources before posting to this list:
- Earning your support instead of buying it, but Ian Turton: http://www.ianturton.com/talks/foss4g.html#/
- The GeoServer user list posting guidelines: http://geoserver.org/comm/userlist-guidelines.html

If you want to request a feature or an improvement, also see this: https://github.com/geoserver/geoserver/wiki/Successfully-requesting-and-integrating-new-features-and-improvements-in-GeoServer


[hidden email]
https://lists.sourceforge.net/lists/listinfo/geoserver-users
Reply | Threaded
Open this post in threaded view
|

Re: Geoserver extension to use custom schema when crateing new data store

fernando.mino@geo-solutions.it

Hi Norman.

Usually in Store factories it's used an URL typed parameter to parse the "url" user input as we see on Shapefile one:

public static final Param URLP =
            new Param(
                    "url", URL.class, "url to a .shp file", true, null, new KVP(Param.EXT, "shp"));


Since Java URL class support only few well known protocols by default (http, file, jar...) you could need implement a custom handler for your new URL protocol in first place.
Good old BalusC explains how to create one in this link:
https://stackoverflow.com/a/26409796/3662679

Now if this stuff is too much overhead and you don't need over-complicate, you could use a generic String typed parameter and parse/validate it
on your factory class:

public static final Param CUSTOM_URL =
            new Param(
                    "url", String.class, ...






Regards,

Fernando Mino

==

GeoServer Professional Services from the experts! Visit http://goo.gl/it488V for more information.

==

Fernando Mino

Software Engineer


GeoSolutions S.A.S.

Via di Montramito 3/A

55054  Massarosa (LU)

Italy

phone: +39 0584 962313

fax:     +39 0584 1660272


http://www.geo-solutions.it

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.




 
From "Norman Bobroff" [hidden email]
Cc
Date Mon, 21 Jan 2019 09:31:08 -0700 (MST)
Subject [Geoserver-users] Geoserver extension to use custom schema when crateing new data store

Hi,
We developed a Geoserver extension to provide real time raster image
data from IBM PAIRS (ibmpairs.mybluemix.net) repository.
 
As part of the cleaning up of our extension, we would like to introduce a
custom Connection schema ( "ibmpairs") specific to our plugin. This schema
would appear and be accepted in the 'Connection' field of Geoserver's
"create new datastore" dialog as indicated in the attached/embedded image:
 
<http://osgeo-org.1560.x6.nabble.com/file/t384375/ibmpairsschema_geoserver_create_store.png>
 
Presently, we use the http schema as a workaround, Geoserver internally
verifies the schema and URL. If I try a custom schema or url which is not
visible the Geoserver code internally atempts to verify the Connection and
rejects it. Somehow we need to register our new schema with Geoserver and
get a callback to intercept this Geoserver code that verifies the new
Connection. How do we do this?
 
(Our plugin is based on public class PairsFormatFactory implements
GridFormatFactorySpi and implements extensions of public class PairsFormat
extends AbstractGridFormat implements Format {...} and public class
PairsCoverageReader extends AbstractGridCoverage2DReader implements
GridCoverage2DReader {...} and is otherwise working.
 
 
 
--
Sent from: http://osgeo-org.1560.x6.nabble.com/GeoServer-User-f3786390.html
 
 
_______________________________________________
Geoserver-users mailing list
 
Please make sure you read the following two resources before posting to this list:
- Earning your support instead of buying it, but Ian Turton: http://www.ianturton.com/talks/foss4g.html#/
- The GeoServer user list posting guidelines: http://geoserver.org/comm/userlist-guidelines.html
 
If you want to request a feature or an improvement, also see this: https://github.com/geoserver/geoserver/wiki/Successfully-requesting-and-integrating-new-features-and-improvements-in-GeoServer
 
 
https://lists.sourceforge.net/lists/listinfo/geoserver-users


_______________________________________________
Geoserver-users mailing list

Please make sure you read the following two resources before posting to this list:
- Earning your support instead of buying it, but Ian Turton: http://www.ianturton.com/talks/foss4g.html#/
- The GeoServer user list posting guidelines: http://geoserver.org/comm/userlist-guidelines.html

If you want to request a feature or an improvement, also see this: https://github.com/geoserver/geoserver/wiki/Successfully-requesting-and-integrating-new-features-and-improvements-in-GeoServer


[hidden email]
https://lists.sourceforge.net/lists/listinfo/geoserver-users
Reply | Threaded
Open this post in threaded view
|

Re: Geoserver extension to use custom schema when crateing new data store

geowolf
On Mon, Jan 21, 2019 at 8:52 PM [hidden email] <[hidden email]> wrote:

Hi Norman.

Usually in Store factories it's used an URL typed parameter to parse the "url" user input as we see on Shapefile one:

public static final Param URLP =
            new Param(
                    "url", URL.class, "url to a .shp file", true, null, new KVP(Param.EXT, "shp"));

I believe Norman is playing with a coverage reader, not a DataStore (was mentioning raster data).
The idea to implement a custom protocol handlerstill seems a viable option though.

I don't remember where the URL validation might happen, but I'm guessing it could be either in the UI or in the ResourcePool.
If it's the former, a custom panel can be plugged in (see StoreEditPanel and subclasses) but if it's elsewhere some changes will have to be implemented, I presume along with some interface/hint to figure out that the connection string is not really a URL nor a local file (so core change, to go along with some new interface or similar approach).

Cheers
Andrea

==

GeoServer Professional Services from the experts! Visit http://goo.gl/it488V for more information. == Ing. Andrea Aime @geowolf Technical Lead GeoSolutions S.A.S. Via di Montramito 3/A 55054 Massarosa (LU) phone: +39 0584 962313 fax: +39 0584 1660272 mob: +39 339 8844549 http://www.geo-solutions.it 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.



_______________________________________________
Geoserver-users mailing list

Please make sure you read the following two resources before posting to this list:
- Earning your support instead of buying it, but Ian Turton: http://www.ianturton.com/talks/foss4g.html#/
- The GeoServer user list posting guidelines: http://geoserver.org/comm/userlist-guidelines.html

If you want to request a feature or an improvement, also see this: https://github.com/geoserver/geoserver/wiki/Successfully-requesting-and-integrating-new-features-and-improvements-in-GeoServer


[hidden email]
https://lists.sourceforge.net/lists/listinfo/geoserver-users