jdbcconfig catalog and jdbcstore resource store backends for all services #5
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
GeoServer Catalog and ResourceStore for microservices
This is a
jar
module all geoserver micro-services shall depend on in order for theirorg.geoserver.catalog.Catalog
andorg.geoserver.platform.resource.ResourceStore
spring beans be configured according to whatever strategy is commonly adopted.
Build
Add the following dependency to each micro-service
pom.xml
:Configuration
Spring-boot's autoconfiguration SPI is used in order to automatically engage the correct
Catalog
implementation and bean wiring depending onwhat's available in the class path. Hence, independently of which storage backend is used, it's only required to include this module as a dependency
and set the configuration properties as explained bellow.
Configuring JDBCConfig and JDBCStore
During this proof of concept phase, the catalog and resource store implementations in use is based on GeoServer's
jdbcconfig and jdbcstore
community modules, respectively.
Note, however, the following differences apply against the regular
jdbcconfig
andjdbcstore
configuration in a monolithic GeoServer deployment:application.properties
orapplication.yml
),instead of through
.properties
files in the data directory, or environment variables indicating the location of such files;geoserver.jdbcconfig
namespace;java.sql.DataSource
configured for both the catalog and the resource store, instead of separate ones;1.4.200
as opposed to the1.1.119
version thatcomes as a transitive dependency with GeoServer;
is the case for the
gs-clould-database
PostgreSQL Docker image.When a GeoServer microservice uses externalized configuration (e.g. through consul, or spring-cloud-config), the configuration properties reside in the config service's
resource store for the microservice in question, or the config service's global properties (for example, for service
foo-service
, they could be either atconfig/foo-service.yml
or at the rootconfig/application.yml
, where the former contains all properties that are service-specific, and the laterall properties that are shared among all microservices).
The following are the possible configuration properties:
application.yml
:application.properties
: