[Geoserver-devel] Issues running JDBCResourceStore

Hi all,

I’m running into some issues trying out the new JDBCResourceStore module. Running in my dev environment via Start.java is fine, the JDBC resource store gets initialized and imported, and I can see resources (such as Styles) being saved in the database; however, I run into issues running in a WAR environment on Tomcat.

Hooking up the debugger and watching the startup, it seems that the resource store beans are being initialized correctly except for the actual resourceStore itself defined here:

https://github.com/geoserver/geoserver/blob/master/src/community/jdbcstore/src/main/resources/applicationContext.xml#L37

I’m not a Spring expert, but from what I’ve read the issue seems to be overriding Spring beans by creating a duplicate with the same id doesn’t always produce consistent results. Whichever bean gets loaded first ends up getting used, so in my WAR deployment the original resourceStore defined in the main applicationContext.xml gets used:

https://github.com/geoserver/geoserver/blob/master/src/main/src/main/java/applicationContext.xml#L26

So that despite the fact that the jdbcstore module is enabled the original data dir based resource store ends up getting used.

Am I maybe missing something? Has anyone tried this in a WAR deploy yet? I don’t think duplicating a bean like that is great practice according to Spring docs. It looks like in the case of JDBCConfig a proxy class is used to load an implementation via Spring and fall back on a default one if none is found like this:

https://github.com/geoserver/geoserver/blob/a74a76d9c4bab0ef3bb8ea3a13f7abcabb3713d4/src/main/src/main/java/org/geoserver/config/GeoServerLoaderProxy.java#L75

I tried implementing a similar approach for the ResourceStore, but it’s complicated by the fact that GeoServerResourceLoader is itself an implementation of ResourceStore and already define in the main applicationContext.xml. I also looked at monkeying around with things using the Spring Primary/Autowire functionality, but this is hampered by the XML config API being slightly different than the annotations based config and I didn’t get very far.

Anyone have any thoughts? Is there something more basic I’m missing?

Thanks,
Devon

--
Jody Garnett

On 15 February 2016 at 16:40, Devon Tucker <devonrtucker@anonymised.com> wrote:

I tried implementing a similar approach for the ResourceStore, but it's
complicated by the fact that GeoServerResourceLoader is itself an
implementation of ResourceStore and already define in the main
applicationContext.xml. I also looked at monkeying around with things using
the Spring Primary/Autowire functionality, but this is hampered by the XML
config API being slightly different than the annotations based config and I
didn't get very far.

Sorry about that, made it implement the interface to make migrating client
code easier.

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).

On Tue, Feb 16, 2016 at 2:31 AM, Jody Garnett <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
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.

-------------------------------------------------------

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
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.

-------------------------------------------------------

------------------------------------------------------------------------------
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
https://lists.sourceforge.net/lists/listinfo/geoserver-devel

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> 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:

------------------------------------------------------------------------------
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](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](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@anonymised.comsts.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel

On Tue, Feb 16, 2016 at 2:31 AM, Jody Garnett <jody.garnett@anonymised.com> wrote:

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

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.


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).

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.

···

On 16 February 2016 at 15:57, Devon Tucker <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


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@anonymised.comsts.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel


Jody Garnett

On Tue, Feb 16, 2016 at 1:10 AM, Niels Charlier <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:

------------------------------------------------------------------------------
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](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](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
https://lists.sourceforge.net/lists/listinfo/geoserver-devel

On Tue, Feb 16, 2016 at 2:31 AM, Jody Garnett <jody.garnett@anonymised.com> wrote:

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

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.


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).

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> 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> 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


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
https://lists.sourceforge.net/lists/listinfo/geoserver-devel

On Tue, Feb 16, 2016 at 1:10 AM, Niels Charlier <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:

------------------------------------------------------------------------------
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](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](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
https://lists.sourceforge.net/lists/listinfo/geoserver-devel

On Tue, Feb 16, 2016 at 2:31 AM, Jody Garnett <jody.garnett@anonymised.com> wrote:

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

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.


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).

Some comments supplied for 510.

···
  • 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.

I was hoping that by implementing ResourceStore it would be easier for code to make the transition from File use to Resource use.

I believe that was the case, and Niels has done a lot of the transition in the last year. With the transition complete GeoServerDataDirectory indeed be offering reduced functionality.

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> 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> 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


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
https://lists.sourceforge.net/lists/listinfo/geoserver-devel

On Tue, Feb 16, 2016 at 1:10 AM, Niels Charlier <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:

------------------------------------------------------------------------------
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](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](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
https://lists.sourceforge.net/lists/listinfo/geoserver-devel

On Tue, Feb 16, 2016 at 2:31 AM, Jody Garnett <jody.garnett@anonymised.com> wrote:

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

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.


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).

The remaining logic could be moved to GeoServerResourceLoader. I don’t see a reason to have two middle men. Regards Niels

···

On 23-02-16 06:53, Jody Garnett wrote:

Some comments supplied for 510.

  • 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.

I was hoping that by implementing ResourceStore it would be easier for code to make the transition from File use to Resource use.

I believe that was the case, and Niels has done a lot of the transition in the last year. With the transition complete GeoServerDataDirectory indeed be offering reduced functionality.

Looks fine to me.

Regards
Niels

On 23-02-16 00:35, Devon Tucker wrote:

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

On Tue, Feb 23, 2016 at 10:04 AM, Niels Charlier <niels@anonymised.com> wrote:

I believe that was the case, and Niels has done a lot of the transition in
the last year. With the transition complete GeoServerDataDirectory indeed
be offering reduced functionality.

The remaining logic could be moved to GeoServerResourceLoader. I don't see
a reason to have two middle men.

I have to ask, the beta release should have been cut 5 days ago, how much
instability this
late change (or to be precise, change past the deadline) is going to add?

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
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.

-------------------------------------------------------

Agreed, we have several classes that have been responsible for the same story - gathering these methods into GeoServerResourceLoader is where I want to go as well.

One great thing the work you have done (and Devon’s change here) is code can be consistently injected with “resourceStore” bean and they will get the correct/configured implementation. So we should be able to reduce GeoServerResourceLoader still further (down to the few bits of code that need to look up a log file or a shapefile on disk.)

···

On 23 February 2016 at 01:04, Niels Charlier <niels@anonymised.com> wrote:

On 23-02-16 06:53, Jody Garnett wrote:

Some comments supplied for 510.

The remaining logic could be moved to GeoServerResourceLoader. I don’t see a reason to have two middle men.

Regards
Niels


Jody Garnett

  • 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.

I was hoping that by implementing ResourceStore it would be easier for code to make the transition from File use to Resource use.

I believe that was the case, and Niels has done a lot of the transition in the last year. With the transition complete GeoServerDataDirectory indeed be offering reduced functionality.

We can discuss at today’s meeting.

···

On 23 February 2016 at 01:13, Andrea Aime <andrea.aime@anonymised.com> wrote:


Jody Garnett

On Tue, Feb 23, 2016 at 10:04 AM, Niels Charlier <niels@anonymised.com> wrote:

The remaining logic could be moved to GeoServerResourceLoader. I don’t see a reason to have two middle men.

I have to ask, the beta release should have been cut 5 days ago, how much instability this
late change (or to be precise, change past the deadline) is going to add?

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

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.


I believe that was the case, and Niels has done a lot of the transition in the last year. With the transition complete GeoServerDataDirectory indeed be offering reduced functionality.