Looks fine to me.
Hi all,
Took a stab at doing a more comprehensive fix for this issue:
https://github.com/geoserver/geoserver/pull/1510
- ResourceStoreProxy is now ResourceStoreFactory. Factory first searches for a "resourceStoreImpl" bean before falling back to the data directory implementation. I'm not personally fond of the name "resourceStoreImpl", but I was kind of stuck because it needs to be something generic.
- Removed ResourceStore interface from GeoServerSecurityManager, I don't think it makes sense for this class to be a store and it wasn't really being used that way anyway.
- Removed ResourceStore interface from GeoServerDataDirectory where it wasn't really being used. I got the impression from Jody that this whole class might be heading towards deprecation anyway (correct me if I'm wrong). There are a lot of deprecated methods in it.
Please take a look and let me know if there are any issues.
On Tue, Feb 16, 2016 at 4:26 PM, Jody Garnett <jody.garnett@anonymised.com <mailto:jody.garnett@anonymised.com>> wrote:
Discussing with Devon here, would like to look at fixing the proxy
tomorrow. The alias can be a backup plan - I will make a comment
on the pull request.
--
Jody Garnett
On 16 February 2016 at 15:57, Devon Tucker <devonrtucker@anonymised.com
<mailto:devonrtucker@anonymised.com>> wrote:
The alias solution seems to work fine and is alright by me. I
created a PR for it:
https://github.com/geoserver/geoserver/pull/1495
On Tue, Feb 16, 2016 at 1:10 AM, Niels Charlier
<niels@anonymised.com <mailto:niels@anonymised.com>> wrote:
Yeah, as he explained that is complicated by the fact that
GeoServerDataDirectory and GeoServerResourceLoader are
also resource store, but never "the" resource store (in
fact, they depend upon it).
Solution #1
Use of a Spring "alias". An alias as higher priority than
a normal name. However that only gives two levels of
priority, once you have more than one alias you end up
with the same issue. This may be sufficient for us though,
assuming that we'd never need more than one custom
ResourceStore in our context.
Solution #2
The pattern we used for geofence/geofence-server: using
PropertyConfigurers we have full flexibility over
priority. It would go something like this. In main
applicationContext:
<bean id="resourcestore-configurer" class="org.geoserver.config.GeoServerPropertyConfigurer">
|*<property name="order" value="5"/>*
<property name="properties">
<props>
<prop key="theResourceStore">dataDirectoryResourceStore</prop>
</props>
</property>
</bean>
<bean id="resourceStore" class="org.geoserver.platform.resource.ResourceStoreProxy">
<property name="delegate" ref="$theResourceStore"/>
</bean>
Then in the jdbcstore applicationContext:
<bean id="resourcestore-configurer" class="org.geoserver.config.GeoServerPropertyConfigurer">
*<property name="order" value="4"/>*
<property name="properties">
<props>
<prop key="theResourceStore">jdbcResourceStore</prop>
</props>
</property>
</bean>
Quite an elegant solution, if you ask me.
Kind Regards
Niels
On 16-02-16 09:27, Andrea Aime wrote:
On Tue, Feb 16, 2016 at 2:31 AM, Jody Garnett
<jody.garnett@anonymised.com <mailto:jody.garnett@anonymised.com>>
wrote:
Anyone have any thoughts? Is there something more
basic I'm missing?
The auto migration from file to jdbc makes this more
complicated then strictly necessary. If not for this
feature we could make a war that only had the
JDBCResourceStore implementation.
Does spring have a priority we could use to control
extensions? Or we could bust out a -D command line
option (to tell the proxy what to use? - with the
default being the file based implementation).
I'm not aware of a bean priority that can be use for
override in Spring.
The existing approach in all GeoServer for this cases is
to have a default implementation created programmatically
unless
a different one can be found using a scan of the
application context.
See how the ResourceAccessManager is looked up in
SecureCatalogImpl, or check how the catalog facade is
setup with jdbc config
(the two approaches are different, both vaild).
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 <tel:%2B39%200584%20962313>
fax: +39 0584 1660272 <tel:%2B39%200584%201660272>
mob: +39 339 8844549 <tel:%2B39%20%C2%A0339%208844549>
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.
-------------------------------------------------------
------------------------------------------------------------------------------
Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140
_______________________________________________
Geoserver-devel mailing list
Geoserver-devel@lists.sourceforge.net
<mailto:Geoserver-devel@lists.sourceforge.net>
https://lists.sourceforge.net/lists/listinfo/geoserver-devel
------------------------------------------------------------------------------
Site24x7 APM Insight: Get Deep Visibility into Application
Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just
$35/Month
Monitor end-to-end web transactions and take corrective
actions now
Troubleshoot faster and improve end-user experience.
Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140
_______________________________________________
Geoserver-devel mailing list
Geoserver-devel@lists.sourceforge.net
<mailto:Geoserver-devel@lists.sourceforge.net>
https://lists.sourceforge.net/lists/listinfo/geoserver-devel
------------------------------------------------------------------------------
Site24x7 APM Insight: Get Deep Visibility into Application
Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective
actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140
_______________________________________________
Geoserver-devel mailing list
Geoserver-devel@lists.sourceforge.net
<mailto:Geoserver-devel@lists.sourceforge.net>
https://lists.sourceforge.net/lists/listinfo/geoserver-devel