Hello Emanuele,

There is one immediate concern I see with this change:

There are a number of places, both in core code as well as extensions and
community modules, in the GeoServer codebase that use the following pattern:

        if ( r instanceof FeatureTypeInfo ) {
            ...
        }
        else if ( r instanceof CoverageInfo ) {
            ...
        }
        else if ( r instanceof WMSLayerInfo ) {
            ...
        }

A fairly basic search turns up the following places this pattern is likely
used:

gs-geofence, gs-gwc, gs-jms-geoserver, gs-main, gs-notificat
ion, gs-notification-geonode, gs-restconfig, gs-web-demo, gs-web-gwc, gs-wms

Properly implementing this change would involve modifying and testing each
of these modules.


As an alternative, consider the following approach:

Refactor WMSLayerInfo into a parent interface for both WMSLayerInfo and
WMTSLayerInfo:

   - Create a WebServiceInfo interface extending ReosoueceInfo, with common
   functionality to WMSLayerInfo and WMTSLayerInfo.
   - Refactor all current GeoServer code to use WebServiceInfo in place of
   WMSLayerInfo
   - Make the currentl WMSLayerInfo extend WebServiceInfo
   - Add WMTSLayerInfo as an extension of WebServiceInfo


[image: Inline image 1]
Diagram of the resulting class structure. Interfaces with abstract
implementations are in grey.

(The StoreInfo class diagram would be similar)

This is a slightly more stable class structure, and less likely to cause
issues in downstream modules, as they can treat WMSLayerInfo and
WMTSLayerInfo the same.
This also makes creating new cascaded service stores easier in the future.


Apart from architectural issues, the actual functionality you present here
looks useful.

Torben





On Thu, Jul 13, 2017 at 3:26 AM, Emanuele Tajariol <[email protected]>
wrote:

> Hi list!
>
> I submitted a GSIP for adding WMTS cascading capabilities to GeoServer,
> i.e.
> the ability to create WMS layers backed by remote WMTS layers.
>
> Here's the GSIP:
>    https://github.com/geoserver/geoserver/wiki/GSIP-162
>
> Since the work also requires some changes in GT, here's the related
> proposal:
>    https://github.com/geotools/geotools/wiki/Add-a-WMTS-CoverageReader
>
> Looking forward for your feedback.
>
>    Thanks,
>    Emanuele
>
> --
> Regards,
> Emanuele Tajariol
> ==
> GeoServer Professional Services from the experts! Visit
> http://goo.gl/it488V
> for more information.
> ==
>
> Ing. Emanuele Tajariol
> Technical Lead
>
> 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
>
> -------------------------------------------------------
> AVVERTENZE AI SENSI DEL D.Lgs. 196/2003
> Le informazioni contenute in questo messaggio di posta elettronica e/o
> nel/i
> file/s allegato/i sono da considerarsi strettamente riservate. Il loro
> utilizzo
> è consentito esclusivamente al destinatario del messaggio, per le finalità
> indicate nel messaggio stesso. Qualora riceviate questo messaggio senza
> esserne il destinatario, Vi preghiamo cortesemente di darcene notizia via
> e-
> mail e di procedere alla distruzione del messaggio stesso, cancellandolo
> dal
> Vostro sistema. Conservare il messaggio stesso, divulgarlo anche in parte,
> distribuirlo ad altri soggetti, copiarlo, od utilizzarlo per finalità
> diverse,
> costituisce comportamento contrario ai principi dettati dal D.Lgs.
> 196/2003.
>
> The information in this message and/or attachments, is intended solely for
> the
> attention and use of the named addressee(s) and may be confidential or
> proprietary in nature or covered by the provisions of privacy act
> (Legislative
> Decree June, 30 2003, no.196 - Italy's New Data Protection Code).Any use
> not
> in accord with its purpose, any disclosure, reproduction, copying,
> distribution, or either dissemination, either whole or partial, is strictly
> forbidden except previous formal approval of the named addressee(s). If you
> are not the intended recipient, please contact immediately the sender by
> telephone, fax or e-mail and delete the information in this message that
> has
> been received in error. The sender does not give any warranty or accept
> liability as the content, accuracy or completeness of sent messages and
> accepts no responsibility  for changes made after they were sent or for
> other
> risks which arise as a result of e-mail transmission, viruses, etc.
>
> ------------------------------------------------------------
> ------------------
> Check out the vibrant tech community on one of the world's most
> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
> _______________________________________________
> Geoserver-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/geoserver-devel
>
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Geoserver-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/geoserver-devel

Reply via email to