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

Reply via email to