+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