use of de.fraunhofer.iosb.ilt.faaast.service.assetconnection.AssetConnectionConfig in project FAAAST-Service by FraunhoferIOSB.
the class Service method init.
private void init() throws ConfigurationException {
if (config.getPersistence() == null) {
throw new InvalidConfigurationException("config.persistence must be non-null");
}
persistence = (Persistence) config.getPersistence().newInstance(config.getCore(), this);
if (config.getMessageBus() == null) {
throw new InvalidConfigurationException("config.messagebus must be non-null");
}
messageBus = (MessageBus) config.getMessageBus().newInstance(config.getCore(), this);
if (config.getAssetConnections() != null) {
List<AssetConnection> assetConnections = new ArrayList<>();
for (AssetConnectionConfig assetConnectionConfig : config.getAssetConnections()) {
assetConnections.add((AssetConnection) assetConnectionConfig.newInstance(config.getCore(), this));
}
assetConnectionManager = new AssetConnectionManager(config.getCore(), assetConnections, this);
}
if (config.getEndpoints() == null || config.getEndpoints().isEmpty()) {
// TODO maybe be less restrictive and only print warning
// throw new InvalidConfigurationException("at least endpoint must be defined in the configuration");
logger.warn("no endpoint configuration found, starting service without endpoint which means the service will not be accessible via any kind of API");
} else {
endpoints = new ArrayList<>();
for (EndpointConfig endpointConfig : config.getEndpoints()) {
Endpoint endpoint = (Endpoint) endpointConfig.newInstance(config.getCore(), this);
endpoints.add(endpoint);
}
}
this.requestHandler = new RequestHandlerManager(this.config.getCore(), this.persistence, this.messageBus, this.assetConnectionManager);
}
use of de.fraunhofer.iosb.ilt.faaast.service.assetconnection.AssetConnectionConfig in project FAAAST-Service by FraunhoferIOSB.
the class ConfigFactory method applyToServiceConfig.
private void applyToServiceConfig(ServiceConfig serviceConfig, List<Config> configs) throws Exception {
boolean isEndpointAlreadySet = false;
for (Config c : configs) {
LOGGER.debug("Apply custom config parameter '" + c.getClass().getSimpleName() + "'");
if (EndpointConfig.class.isAssignableFrom(c.getClass())) {
// if yet no endpoint was set remove old enpoints (most likely default endpoint) and set new endpoint
// else add the new endpoint to the existing list of endpoints
serviceConfig.setEndpoints(!isEndpointAlreadySet ? new ArrayList<>() {
{
add((EndpointConfig) c);
}
} : new ArrayList<>() {
{
addAll(serviceConfig.getEndpoints());
add((EndpointConfig) c);
}
});
isEndpointAlreadySet = true;
continue;
}
if (PersistenceConfig.class.isAssignableFrom(c.getClass())) {
serviceConfig.setPersistence((PersistenceConfig) c);
continue;
}
if (MessageBusConfig.class.isAssignableFrom(c.getClass())) {
serviceConfig.setMessageBus((MessageBusConfig) c);
continue;
}
if (AssetConnectionConfig.class.isAssignableFrom(c.getClass())) {
serviceConfig.getAssetConnections().add((AssetConnectionConfig) c);
continue;
}
throw new Exception("Cannot set config component '" + c.getClass().getSimpleName() + "'");
}
}
Aggregations