Configuration Provider
Service Provider Interface (SPI) to define configuration.
How it works
Provides an interface to allow custom implementations to define key/value configuration entries.
This allows a Service Loader to pick configuration from remote sources.
How to implement it
The custom configuration service provider has to implement the interface ConfigurationProvider
. The dependency library can be found here
Implementation reference example
Add the dependency to your project.
Maven example:
<dependency>
<groupId>com.signavio.workflow</groupId>
<artifactId>config-provider</artifactId>
<version>1.0.2</version>
</dependency>
Create a class that implements ConfigurationProvider
and overrides the method Map<String, String> get()
.
src/main/java/com/signavio/workflow/config/ExampleConfigProvider.java
public class ExampleConfigProvider implements ConfigurationProvider {
@Override
public Map<String, String> get() {
return Collections.unmodifiableMap(
new HashMap<String, String>() {{
put("effektif.mongodb.password", "test_password");
put("key", "value");
}});
}
}
The service provider has to include a file under META-INF/services
. The file name should be the fully qualified service name without any extension. Inside the file the provider has to specify the fully qualified implementation.
src/main/resources/META-INF/services/com.signavio.workflow.config.ConfigurationProvider
com.signavio.workflow.config.ExampleConfigProvider
How to deploy it
The generated implementation has to be packed as a jar
file and copied under $TOMCAT_HOME/webapps/ROOT/lib
directory.
After that, the application has to be restarted in order for the new configuration service to be applied.