<dependencies>
<dependency>
<groupId>org.osgi.enroute.configurer.simple.provider</groupId>
<artifactId>org.osgi.enroute.configurer.simple.provider.api</artifactId>
<version>1.0.0</version>
</dependency>
</dependencies>
import org.osgi.service.configurator.annotations.Configuration;
import org.osgi.service.configurator.annotations.Required;
@Configuration
public interface MyAppConfig {
@Required
String getApiEndpoint();
int getMaxConnections() default 10;
boolean isDebugEnabled() default false;
}
import org.osgi.enroute.configurer.simple.provider.api.ConfigurationDone;
import org.osgi.service.component.annotations.Component;
import org.osgi.service.component.annotations.Reference;
import org.osgi.service.configurator.annotations.RequireConfigurationExtender;
import org.osgi.service.log.LogService;
@Component
@RequireConfigurationExtender
public class MyAppConfigProvider implements MyAppConfig {
private String apiEndpoint;
private int maxConnections;
private boolean debugEnabled;
@Reference
ConfigurationDone configDone;
@Reference(service = LogService.class, unbind = "unbindLogService")
void bindLogService(LogService logService) {
}
void unbindLogService(LogService logService) {
}
@Override
public String getApiEndpoint() {
return apiEndpoint;
}
@Override
public int getMaxConnections() {
return maxConnections;
}
@Override
public boolean isDebugEnabled() {
return debugEnabled;
}
void updated() {
configDone.updated();
}
}
apiEndpoint=https://example.com/api
maxConnections=20
debugEnabled=true