+1 from me.

I would like to move some of the REST API hacks from 2.6.x into
ResourcePool (so we manage datastore caches in a consistent fashion).

Actually with that in mind, and seeing you have a dispose() hook, I
recommend:

abstract class FeatureTypeHelper {
  boolean canHandle( FeatureTypeInfo, DataAccess );
  void initialize( FeatureTypeInfo, DataAccess ); // Called before
FeatureTypeInfo accessed
  void flush( FeatureTypeInfo, DataAccess ); // Called before
ContentState.flush()
  void dispose( FeatureTypeInfo, DataAccess ); // Called before
DataAccess.dispose()
}

ResourcePool is running around with a number of HashMaps that must be kept
in sync. Something the REST API has not always managed in a consistent
fashion with the GUI.

My concern is FeatureTypeHelper would be used to manage additional external
HashMaps outside of ResourcePool.

Q: Is it worth structuring ResourcePool a bit better and allowing it to
have a "user data" map? Or are DataStore implementations happy with
subclassing ContentState (managed by flush and dispose above).


--
Jody

Jody Garnett

On Wed, Sep 24, 2014 at 3:17 AM, Andrea Aime <andrea.a...@geo-solutions.it>
wrote:

> Hi,
> I would like to propose a new extension point that can be used to
> generalize,
> and make pluggable, the configuration of a FeatureTyeInfo into a data
> store,
> for feature types that are configured as opposed to being "native" to the
> store.
>
> We have this situation already with SQL views, where the FeatureTypeInfo
> contains the virtual table definition that needs to be created in the
> store,
> on the fly, when we first need that particular feature type.
>
> The incoming SOLR data store has the same needs, a feature type is
> created by the administrator by choosing which of the many document
> attributes available in the SOLR installation are to be included in the
> feature types being created.
>
> The interface would be pretty simple:
>
> /**
>  * Extension point to initialize underlying resource of a feature type
> with custom informations
>  * taken from its metadata <br>
>  * This may be useful when the resource configuration is dynamic and based
> on informations provided
>  * by user as in case of {@link org.geotools.jdbc.VirtualTable}
>  *
>  * The extension point is used as follows:
>  *
>  * <pre>
>  * {@code
>  * featureTypeInitializers =
> GeoServerExtensions.extensions(FeatureTypeInitializer.class);
>  * for(FeatureTypeInitializer fti : featureTypeInitializers){
>  *      if(fti.canHandle(info,dataAccess)){
>  *              fti.initialize(info,dataAccess);
>  *      }
>  * }
>  * </pre>
>  *
>  * @see {@link FeatureTypeInfo#getMetadata()}
>  * @see {@link ResourcePool#getCacheableFeatureType}
>  * @see {@link ResourcePool#getNonCacheableFeatureType}
>  */
> public interface FeatureTypeInitializer {
>
>     /**
>      * Checks if this initializer can handle the specified resource handle
>      */
>     boolean canHandle(FeatureTypeInfo info, DataAccess<? extends
> FeatureType, ? extends Feature> dataAccess);
>
>     /**
>      * Initializes the specified feature type in the specified data access
>      */
>     void initialize(FeatureTypeInfo info, DataAccess<? extends
> FeatureType, ? extends Feature> dataAccess) throws IOException;
>
>     /**
>      * Performs any cleanup necessary to clean up the layer from the
> specified store
>      */
>     void dispose(FeatureTypeInfo info, DataAccess<? extends FeatureType, ?
> extends Feature> dataAccess) throws IOException;
>
> }
>
> Any feedback?
>
> I was planning to add this one along with the SOLR store UI on trunk, and
> I'm also interested
> in the opportunity of backporting the same on 2.6.x, once the release is
> out.
> Since it's a new interface it should not cause backwards compatibility
> issues, please let me know what you think about it.
>
> Cheers
> Andrea
>
> --
> ==
> GeoServer Professional Services from the experts! Visit
> http://goo.gl/NWWaa2 for more information.
> ==
>
> Ing. Andrea Aime
> @geowolf
> Technical Lead
>
> GeoSolutions S.A.S.
> Via Poggio alle Viti 1187
> 55054  Massarosa (LU)
> Italy
> phone: +39 0584 962313
> fax: +39 0584 1660272
> mob: +39  339 8844549
>
> 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.
>
> -------------------------------------------------------
>
>
> ------------------------------------------------------------------------------
> Meet PCI DSS 3.0 Compliance Requirements with EventLog Analyzer
> Achieve PCI DSS 3.0 Compliant Status with Out-of-the-box PCI DSS Reports
> Are you Audit-Ready for PCI DSS 3.0 Compliance? Download White paper
> Comply to PCI DSS 3.0 Requirement 10 and 11.5 with EventLog Analyzer
>
> http://pubads.g.doubleclick.net/gampad/clk?id=154622311&iu=/4140/ostg.clktrk
> _______________________________________________
> Geoserver-devel mailing list
> Geoserver-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/geoserver-devel
>
>
------------------------------------------------------------------------------
Meet PCI DSS 3.0 Compliance Requirements with EventLog Analyzer
Achieve PCI DSS 3.0 Compliant Status with Out-of-the-box PCI DSS Reports
Are you Audit-Ready for PCI DSS 3.0 Compliance? Download White paper
Comply to PCI DSS 3.0 Requirement 10 and 11.5 with EventLog Analyzer
http://pubads.g.doubleclick.net/gampad/clk?id=154622311&iu=/4140/ostg.clktrk
_______________________________________________
Geoserver-devel mailing list
Geoserver-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel

Reply via email to