[Geoserver-users] spring PropertyPlaceholderConfigurer for data directory files?

Is there a mechanism for using a properties file for value substitution into all things xml in the data directory? (i.e., datastore.xml, coveragestore.xml, users.xml)

Hi Tim,
during the work for the Backup & Restore plugin for GeoServer, we had the chance to implement also the possibility for GeoServer of externalize catalog parameters into a “.properties” file placed on the GeoServer Data Directory.
Hopefully this may help you.

Some more details and a small example on how to use it can be found here

http://docs.geoserver.org/latest/en/user/community/backuprestore/configtemplate.html

Please, notice that the documentation is a bit misleading. You won’t need to install also the Backup & Restore plugin, this functionality is already available on GeoServer.

Let me know how it goes and if you need further details/help on this.

Cheers,
Alessio Fabiani.

···

On Mon, Mar 20, 2017 at 3:29 PM, Keane, Tim <tkeane@anonymised.com> wrote:

Is there a mechanism for using a properties file for value substitution into all things xml in the data directory? (i.e., datastore.xml, coveragestore.xml, users.xml)


This e-mail, including any attachments, may be confidential, privileged or otherwise legally protected. It is intended only for the addressee. If you received this e-mail in error or from someone who was not authorized to send it to you, do not disseminate, copy or otherwise use this e-mail or its attachments. Please notify the sender immediately by reply e-mail and delete the e-mail from your system.


Check out the vibrant tech community on one of the world’s most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot


Geoserver-users mailing list
Geoserver-users@anonymised.com.382…sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-users

Best Regards,
Alessio Fabiani.

==
GeoServer Professional Services from the experts!
Visit http://goo.gl/it488V for more information.

Ing. Alessio Fabiani
@alfa7691
github

Founder/Technical Lead

GeoSolutions S.A.S.
Via di Montramito 3/A
55054 Massarosa (LU)
Italy
phone: +39 0584 962313
fax: +39 0584 1660272
mob: +39 331 6233686

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.


Alessio-

Thank you very much. This is definitely what I am after. I just have a couple of points that maybe you can clarify for me:

  1. It appears that the properties in geoserver-environment.properties can only be applied to configuration in data_dir/workspaces such as datastore.xml and coveragestore.xml files, but not other configuration like data_dir/logging.xml, data_dir/gwc/geowebcache.xml, or data_dir/security/usergroup/default/users.xml – is this correct?

  2. It also looks like according to the comment in the source code for GeoServerEnvironment.java that System variables should also work, however neither setting them as System Environment variables or setting them in JAVA_OPTS seemed to work – only placing the geoserver-environment.properties in the data directory worked. https://github.com/geoserver/geoserver/blob/0054d601f5283fbde087bb253286e9512185d998/src/platform/src/main/java/org/geoserver/platform/GeoServerEnvironment.java#L153

Ideally I would like to be able to externalize the data directory using the env var GEOSERVER_DATA_DIR and also any property contained within config files found in the data directory, allowing for the same war file to be deployed across environments.

Thanks

-Tim

···

Hi Tim,

during the work for the Backup & Restore plugin for GeoServer, we had the chance to implement also the possibility for GeoServer of externalize catalog parameters into a “.properties” file placed on the GeoServer Data Directory.

Hopefully this may help you.

Some more details and a small example on how to use it can be found here

http://docs.geoserver.org/latest/en/user/community/backuprestore/configtemplate.html

Please, notice that the documentation is a bit misleading. You won’t need to install also the Backup & Restore plugin, this functionality is already available on GeoServer.

Let me know how it goes and if you need further details/help on this.

Cheers,

Alessio Fabiani.

Best Regards,

Alessio Fabiani.

==

GeoServer Professional Services from the experts!

Visit http://goo.gl/it488V for more information.

==

Ing. Alessio Fabiani

@alfa7691

github

Founder/Technical Lead

GeoSolutions S.A.S.

Via di Montramito 3/A

55054 Massarosa (LU)

Italy

phone: +39 0584 962313

fax: +39 0584 1660272

mob: +39 331 6233686

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.


On Mon, Mar 20, 2017 at 3:29 PM, Keane, Tim <tkeane@…1460…> wrote:

Is there a mechanism for using a properties file for value substitution into all things xml in the data directory? (i.e., datastore.xml, coveragestore.xml, users.xml)


This e-mail, including any attachments, may be confidential, privileged or otherwise legally protected. It is intended only for the addressee. If you received this e-mail in error or from someone who was not authorized to send it to you, do not disseminate, copy or otherwise use this e-mail or its attachments. Please notify the sender immediately by reply e-mail and delete the e-mail from your system.


Check out the vibrant tech community on one of the world’s most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot


Geoserver-users mailing list
Geoserver-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-users

Hi Tim,
please see responses below

···

On Mon, Mar 20, 2017 at 6:26 PM, Keane, Tim <tkeane@anonymised.com> wrote:

Alessio-

Thank you very much. This is definitely what I am after. I just have a couple of points that maybe you can clarify for me:

  1. It appears that the properties in geoserver-environment.properties can only be applied to configuration in data_dir/workspaces such as datastore.xml and coveragestore.xml files, but not other configuration like data_dir/logging.xml, data_dir/gwc/geowebcache.xml, or data_dir/security/usergroup/default/users.xml – is this correct?

It should work also on other catalog settings, not only on catalog. At least settings accessible from the UI. Did you already tried it on other settings?

  1. It also looks like according to the comment in the source code for GeoServerEnvironment.java that System variables should also work, however neither setting them as System Environment variables or setting them in JAVA_OPTS seemed to work – only placing the geoserver-environment.properties in the data directory worked. https://github.com/geoserver/geoserver/blob/0054d601f5283fbde087bb253286e9512185d998/src/platform/src/main/java/org/geoserver/platform/GeoServerEnvironment.java#L153

That’s strange. From what I can see here https://github.com/geoserver/geoserver/blob/0054d601f5283fbde087bb253286e9512185d998/src/platform/src/main/java/org/geoserver/platform/GeoServerEnvironment.java#L129 it first searches for the property on System and if not null is uses it. You may try to rise up the log level and see if you find the line “Could not access system property …”

Ideally I would like to be able to externalize the data directory using the env var GEOSERVER_DATA_DIR and also any property contained within config files found in the data directory, allowing for the same war file to be deployed across environments.

This feature should be able to parametrize almost all config files. If someone is not resolved correctly it may be either an issue or not handled by the code.

If you have a very specific use case, you might also consider to backup and restore the configuration parametrized and implement special extensions that mangle the data dir like we did in this example for the ImageMosaics

https://github.com/geoserver/geoserver/blob/55c4740060eb2b8809ae935a510ac83eeb923313/src/community/backup-restore/extension/src/main/java/org/geoserver/backuprestore/imagemosaic/reader/ImageMosaicAdditionalResourceReader.java

Notice that the backup and restore zip files may be also streamed via REST. That way you can easily implement scripts to deploy configurations remotely.

Thanks

-Tim

From: Alessio Fabiani [mailto:alessio.fabiani@anonymised.comsolutions.it]
Sent: Monday, March 20, 2017 11:39 AM
To: Keane, Tim <tkeane@anonymised.com>
Cc: geoserver-users@anonymised.comsourceforge.net
Subject: Re: [Geoserver-users] spring PropertyPlaceholderConfigurer for data directory files?

Hi Tim,

during the work for the Backup & Restore plugin for GeoServer, we had the chance to implement also the possibility for GeoServer of externalize catalog parameters into a “.properties” file placed on the GeoServer Data Directory.

Hopefully this may help you.

Some more details and a small example on how to use it can be found here

http://docs.geoserver.org/latest/en/user/community/backuprestore/configtemplate.html

Please, notice that the documentation is a bit misleading. You won’t need to install also the Backup & Restore plugin, this functionality is already available on GeoServer.

Let me know how it goes and if you need further details/help on this.

Cheers,

Alessio Fabiani.

Best Regards,

Alessio Fabiani.

==

GeoServer Professional Services from the experts!

Visit http://goo.gl/it488V for more information.

==

Ing. Alessio Fabiani

@alfa7691

github

Founder/Technical Lead

GeoSolutions S.A.S.

Via di Montramito 3/A

55054 Massarosa (LU)

Italy

phone: +39 0584 962313

fax: +39 0584 1660272

mob: +39 331 6233686

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.


On Mon, Mar 20, 2017 at 3:29 PM, Keane, Tim <tkeane@anonymised.com> wrote:

Is there a mechanism for using a properties file for value substitution into all things xml in the data directory? (i.e., datastore.xml, coveragestore.xml, users.xml)


This e-mail, including any attachments, may be confidential, privileged or otherwise legally protected. It is intended only for the addressee. If you received this e-mail in error or from someone who was not authorized to send it to you, do not disseminate, copy or otherwise use this e-mail or its attachments. Please notify the sender immediately by reply e-mail and delete the e-mail from your system.


Check out the vibrant tech community on one of the world’s most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot


Geoserver-users mailing list
Geoserver-users@anonymised.comsourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-users

Allessio-

Thanks again…

I made some additional progress, but it does seem that there is some limitation to the files that can be configured in this way. Please see me latest responses below.

Thanks

-Tim

···

Hi Tim,

please see responses below

On Mon, Mar 20, 2017 at 6:26 PM, Keane, Tim <tkeane@…1460…> wrote:

Alessio-

Thank you very much. This is definitely what I am after. I just have a couple of points that maybe you can clarify for me:

  1. It appears that the properties in geoserver-environment.properties can only be applied to configuration in data_dir/workspaces such as datastore.xml and coveragestore.xml files, but not other configuration like data_dir/logging.xml, data_dir/gwc/geowebcache.xml, or data_dir/security/usergroup/default/users.xml – is this correct?

It should work also on other catalog settings, not only on catalog. At least settings accessible from the UI. Did you already tried it on other settings?

I have tried the following:

set datastore.basemap.host=dbhost

set datastore.basemap.passwd=****

set coveragestore.coast.url=file:///D:/coast-tiff-optimized

set logging.level=VERBOSE_LOGGING.properties

geowebcache.wmsUrl=http://loadblancer-vip/geoserver/wms/

set JAVA_OPTS=%JAVA_OPTS% -DALLOW_ENV_PARAMETRIZATION=true

this works fine for my datastore.xml and coveragestore.xml

fails to set the property for in logging.xml

${logging.level}

false

20 Mar 15:49:12 WARN [geoserver.logging] - log4jConfigFile ‘${logging.level}’ couldn’t be found in the data dir, so GeoServer will install the various logging config file into the data dir, and then try to find it again.

20 Mar 15:49:12 WARN [geoserver.logging] - Still couldn’t find log4jConfigFile ‘${logging.level}’. Using DEFAULT_LOGGING.properties instead.

In production we have a cluster in which gwc requests to /geoserver/gwc are directed back to a load balancer for their WMS requests /geoserver/wms and this is why I am also trying to externalize the wmsUrl property in geowebcache.xml, however no success on this either:

2017-03-20 15:41:09,547 ERROR [seed.MTSeeder] - Malformed URL: ${geowebcache.wmsUrl}? no protocol: ${geowebcache.wmsUrl}?

org.geowebcache.GeoWebCacheException: Malformed URL: ${geowebcache.wmsUrl}? no protocol: ${geowebcache.wmsUrl}?

at org.geowebcache.layer.wms.WMSHttpHelper.makeRequest(WMSHttpHelper.java:118)

  1. It also looks like according to the comment in the source code for GeoServerEnvironment.java that System variables should also work, however neither setting them as System Environment variables or setting them in JAVA_OPTS seemed to work – only placing the geoserver-environment.properties in the data directory worked. https://github.com/geoserver/geoserver/blob/0054d601f5283fbde087bb253286e9512185d998/src/platform/src/main/java/org/geoserver/platform/GeoServerEnvironment.java#L153

That’s strange. From what I can see here https://github.com/geoserver/geoserver/blob/0054d601f5283fbde087bb253286e9512185d998/src/platform/src/main/java/org/geoserver/platform/GeoServerEnvironment.java#L129 it first searches for the property on System and if not null is uses it. You may try to rise up the log level and see if you find the line “Could not access system property …”

After a more methodical approach I can get this to work with env var, java options or properties file

Ideally I would like to be able to externalize the data directory using the env var GEOSERVER_DATA_DIR and also any property contained within config files found in the data directory, allowing for the same war file to be deployed across environments.

This feature should be able to parametrize almost all config files. If someone is not resolved correctly it may be either an issue or not handled by the code.

If you have a very specific use case, you might also consider to backup and restore the configuration parametrized and implement special extensions that mangle the data dir like we did in this example for the ImageMosaics

https://github.com/geoserver/geoserver/blob/55c4740060eb2b8809ae935a510ac83eeb923313/src/community/backup-restore/extension/src/main/java/org/geoserver/backuprestore/imagemosaic/reader/ImageMosaicAdditionalResourceReader.java

Notice that the backup and restore zip files may be also streamed via REST. That way you can easily implement scripts to deploy configurations remotely.

I will have a look at the extension and experiment with backup and restore

Thanks

-Tim

From: Alessio Fabiani [mailto:alessio.fabiani@…1107…]
Sent: Monday, March 20, 2017 11:39 AM
To: Keane, Tim <tkeane@…1460…>
Cc: geoserver-users@lists.sourceforge.net
Subject: Re: [Geoserver-users] spring PropertyPlaceholderConfigurer for data directory files?

Hi Tim,

during the work for the Backup & Restore plugin for GeoServer, we had the chance to implement also the possibility for GeoServer of externalize catalog parameters into a “.properties” file placed on the GeoServer Data Directory.

Hopefully this may help you.

Some more details and a small example on how to use it can be found here

http://docs.geoserver.org/latest/en/user/community/backuprestore/configtemplate.html

Please, notice that the documentation is a bit misleading. You won’t need to install also the Backup & Restore plugin, this functionality is already available on GeoServer.

Let me know how it goes and if you need further details/help on this.

Cheers,

Alessio Fabiani.

Best Regards,

Alessio Fabiani.

==

GeoServer Professional Services from the experts!

Visit http://goo.gl/it488V for more information.

==

Ing. Alessio Fabiani

@alfa7691

github

Founder/Technical Lead

GeoSolutions S.A.S.

Via di Montramito 3/A

55054 Massarosa (LU)

Italy

phone: +39 0584 962313

fax: +39 0584 1660272

mob: +39 331 6233686

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.


On Mon, Mar 20, 2017 at 3:29 PM, Keane, Tim <tkeane@…1460…> wrote:

Is there a mechanism for using a properties file for value substitution into all things xml in the data directory? (i.e., datastore.xml, coveragestore.xml, users.xml)


This e-mail, including any attachments, may be confidential, privileged or otherwise legally protected. It is intended only for the addressee. If you received this e-mail in error or from someone who was not authorized to send it to you, do not disseminate, copy or otherwise use this e-mail or its attachments. Please notify the sender immediately by reply e-mail and delete the e-mail from your system.


Check out the vibrant tech community on one of the world’s most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot


Geoserver-users mailing list
Geoserver-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-users

I see,
yes, as I said it is possible that some configuration files are not paramterized.

I remember a first version substituting almost everything, but we have to limit it since it was too invasive and tries to modify too much GeoServer core files in a once.

We may envisage to extend it again, but this will require some more work. In the meantime you may want to open JIRAs for GeoServer and maybe expose your needs to the community. If wide accepted as a useful improvement, I’m pretty sure it will be easy to find some volunteering work.

Otherwise you may want to try to extend it by yourself and ask the community for hints and help reviewing your code.

···

On Mon, Mar 20, 2017 at 9:04 PM, Keane, Tim <tkeane@anonymised.com> wrote:

Allessio-

Thanks again…

I made some additional progress, but it does seem that there is some limitation to the files that can be configured in this way. Please see me latest responses below.

Thanks

-Tim

From: Alessio Fabiani [mailto:alessio.fabiani@anonymised.com…4361…solutions.it]
Sent: Monday, March 20, 2017 2:03 PM
To: Keane, Tim <tkeane@anonymised.com>
Cc: Alessio Fabiani <alessio.fabiani@anonymised.comsolutions.it>; geoserver-users@anonymised.comsourceforge.net
Subject: Re: [Geoserver-users] spring PropertyPlaceholderConfigurer for data directory files?

Hi Tim,

please see responses below

On Mon, Mar 20, 2017 at 6:26 PM, Keane, Tim <tkeane@anonymised.com> wrote:

Alessio-

Thank you very much. This is definitely what I am after. I just have a couple of points that maybe you can clarify for me:

  1. It appears that the properties in geoserver-environment.properties can only be applied to configuration in data_dir/workspaces such as datastore.xml and coveragestore.xml files, but not other configuration like data_dir/logging.xml, data_dir/gwc/geowebcache.xml, or data_dir/security/usergroup/default/users.xml – is this correct?

It should work also on other catalog settings, not only on catalog. At least settings accessible from the UI. Did you already tried it on other settings?

I have tried the following:

set datastore.basemap.host=dbhost

set datastore.basemap.passwd=****

set coveragestore.coast.url=file:///D:/coast-tiff-optimized

set logging.level=VERBOSE_LOGGING.properties

geowebcache.wmsUrl=http://loadblancer-vip/geoserver/wms/

set JAVA_OPTS=%JAVA_OPTS% -DALLOW_ENV_PARAMETRIZATION=true

this works fine for my datastore.xml and coveragestore.xml

fails to set the property for in logging.xml

${logging.level}

false

20 Mar 15:49:12 WARN [geoserver.logging] - log4jConfigFile ‘${logging.level}’ couldn’t be found in the data dir, so GeoServer will install the various logging config file into the data dir, and then try to find it again.

20 Mar 15:49:12 WARN [geoserver.logging] - Still couldn’t find log4jConfigFile ‘${logging.level}’. Using DEFAULT_LOGGING.properties instead.

In production we have a cluster in which gwc requests to /geoserver/gwc are directed back to a load balancer for their WMS requests /geoserver/wms and this is why I am also trying to externalize the wmsUrl property in geowebcache.xml, however no success on this either:

2017-03-20 15:41:09,547 ERROR [seed.MTSeeder] - Malformed URL: ${geowebcache.wmsUrl}? no protocol: ${geowebcache.wmsUrl}?

org.geowebcache.GeoWebCacheException: Malformed URL: ${geowebcache.wmsUrl}? no protocol: ${geowebcache.wmsUrl}?

at org.geowebcache.layer.wms.WMSHttpHelper.makeRequest(WMSHttpHelper.java:118)

  1. It also looks like according to the comment in the source code for GeoServerEnvironment.java that System variables should also work, however neither setting them as System Environment variables or setting them in JAVA_OPTS seemed to work – only placing the geoserver-environment.properties in the data directory worked. https://github.com/geoserver/geoserver/blob/0054d601f5283fbde087bb253286e9512185d998/src/platform/src/main/java/org/geoserver/platform/GeoServerEnvironment.java#L153

That’s strange. From what I can see here https://github.com/geoserver/geoserver/blob/0054d601f5283fbde087bb253286e9512185d998/src/platform/src/main/java/org/geoserver/platform/GeoServerEnvironment.java#L129 it first searches for the property on System and if not null is uses it. You may try to rise up the log level and see if you find the line “Could not access system property …”

After a more methodical approach I can get this to work with env var, java options or properties file

Ideally I would like to be able to externalize the data directory using the env var GEOSERVER_DATA_DIR and also any property contained within config files found in the data directory, allowing for the same war file to be deployed across environments.

This feature should be able to parametrize almost all config files. If someone is not resolved correctly it may be either an issue or not handled by the code.

If you have a very specific use case, you might also consider to backup and restore the configuration parametrized and implement special extensions that mangle the data dir like we did in this example for the ImageMosaics

https://github.com/geoserver/geoserver/blob/55c4740060eb2b8809ae935a510ac83eeb923313/src/community/backup-restore/extension/src/main/java/org/geoserver/backuprestore/imagemosaic/reader/ImageMosaicAdditionalResourceReader.java

Notice that the backup and restore zip files may be also streamed via REST. That way you can easily implement scripts to deploy configurations remotely.

I will have a look at the extension and experiment with backup and restore

Thanks

-Tim

From: Alessio Fabiani [mailto:alessio.fabiani@anonymised.com…4361…solutions.it]
Sent: Monday, March 20, 2017 11:39 AM
To: Keane, Tim <tkeane@anonymised.com>
Cc: geoserver-users@anonymised.comsourceforge.net
Subject: Re: [Geoserver-users] spring PropertyPlaceholderConfigurer for data directory files?

Hi Tim,

during the work for the Backup & Restore plugin for GeoServer, we had the chance to implement also the possibility for GeoServer of externalize catalog parameters into a “.properties” file placed on the GeoServer Data Directory.

Hopefully this may help you.

Some more details and a small example on how to use it can be found here

http://docs.geoserver.org/latest/en/user/community/backuprestore/configtemplate.html

Please, notice that the documentation is a bit misleading. You won’t need to install also the Backup & Restore plugin, this functionality is already available on GeoServer.

Let me know how it goes and if you need further details/help on this.

Cheers,

Alessio Fabiani.

Best Regards,

Alessio Fabiani.

==

GeoServer Professional Services from the experts!

Visit http://goo.gl/it488V for more information.

==

Ing. Alessio Fabiani

@alfa7691

github

Founder/Technical Lead

GeoSolutions S.A.S.

Via di Montramito 3/A

55054 Massarosa (LU)

Italy

phone: +39 0584 962313

fax: +39 0584 1660272

mob: +39 331 6233686

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.


On Mon, Mar 20, 2017 at 3:29 PM, Keane, Tim <tkeane@anonymised.com> wrote:

Is there a mechanism for using a properties file for value substitution into all things xml in the data directory? (i.e., datastore.xml, coveragestore.xml, users.xml)


This e-mail, including any attachments, may be confidential, privileged or otherwise legally protected. It is intended only for the addressee. If you received this e-mail in error or from someone who was not authorized to send it to you, do not disseminate, copy or otherwise use this e-mail or its attachments. Please notify the sender immediately by reply e-mail and delete the e-mail from your system.


Check out the vibrant tech community on one of the world’s most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot


Geoserver-users mailing list
Geoserver-users@anonymised.comsourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-users

Best Regards,
Alessio Fabiani.

==
GeoServer Professional Services from the experts!
Visit http://goo.gl/it488V for more information.

Ing. Alessio Fabiani
@alfa7691
github

Founder/Technical Lead

GeoSolutions S.A.S.
Via di Montramito 3/A
55054 Massarosa (LU)
Italy
phone: +39 0584 962313
fax: +39 0584 1660272
mob: +39 331 6233686

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.