Search in sources :

Example 1 with Config

use of de.fraunhofer.iosb.ilt.faaast.service.config.Config in project FAAAST-Service by FraunhoferIOSB.

the class Application method run.

@Override
public void run() {
    try {
        ConfigFactory configFactory = new ConfigFactory();
        AASEnvironmentFactory environmentFactory = new AASEnvironmentFactory();
        readConfigurationParametersOverEnvironmentVariables();
        readFilePathsOverEnvironmentVariables();
        List<Config> customConfigComponents = getCustomConfigComponents();
        ServiceConfig config = configFactory.toServiceConfig(configFilePath, autoCompleteConfiguration, properties, customConfigComponents);
        AssetAdministrationShellEnvironment environment = null;
        if (useEmptyAASEnvironment) {
            LOGGER.info("Using empty Asset Administration Shell Environment");
            environment = environmentFactory.getEmptyAASEnvironment();
        } else {
            environment = environmentFactory.getAASEnvironment(aasEnvironmentFilePath);
            LOGGER.info("Successfully parsed Asset Administration Shell Environment");
        }
        if (validateAASEnv) {
            validate(environment);
        }
        service = new Service(config);
        service.setAASEnvironment(environment);
        service.start();
        LOGGER.info("FAAAST Service is running!");
    } catch (Exception ex) {
        if (service != null) {
            service.stop();
        }
        LOGGER.error(ex.getMessage());
        LOGGER.error("Abort starting FAAAST Service");
    }
}
Also used : ServiceConfig(de.fraunhofer.iosb.ilt.faaast.service.config.ServiceConfig) EndpointConfig(de.fraunhofer.iosb.ilt.faaast.service.endpoint.EndpointConfig) HttpEndpointConfig(de.fraunhofer.iosb.ilt.faaast.service.endpoint.http.HttpEndpointConfig) ServiceConfig(de.fraunhofer.iosb.ilt.faaast.service.config.ServiceConfig) Config(de.fraunhofer.iosb.ilt.faaast.service.config.Config) Service(de.fraunhofer.iosb.ilt.faaast.service.Service) AssetAdministrationShellEnvironment(io.adminshell.aas.v3.model.AssetAdministrationShellEnvironment)

Example 2 with Config

use of de.fraunhofer.iosb.ilt.faaast.service.config.Config 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() + "'");
    }
}
Also used : EndpointConfig(de.fraunhofer.iosb.ilt.faaast.service.endpoint.EndpointConfig) ServiceConfig(de.fraunhofer.iosb.ilt.faaast.service.config.ServiceConfig) MessageBusInternalConfig(de.fraunhofer.iosb.ilt.faaast.service.messagebus.internal.MessageBusInternalConfig) MessageBusConfig(de.fraunhofer.iosb.ilt.faaast.service.messagebus.MessageBusConfig) Config(de.fraunhofer.iosb.ilt.faaast.service.config.Config) HttpEndpointConfig(de.fraunhofer.iosb.ilt.faaast.service.endpoint.http.HttpEndpointConfig) PersistenceInMemoryConfig(de.fraunhofer.iosb.ilt.faaast.service.persistence.memory.PersistenceInMemoryConfig) CoreConfig(de.fraunhofer.iosb.ilt.faaast.service.config.CoreConfig) AssetConnectionConfig(de.fraunhofer.iosb.ilt.faaast.service.assetconnection.AssetConnectionConfig) PersistenceConfig(de.fraunhofer.iosb.ilt.faaast.service.persistence.PersistenceConfig) ArrayList(java.util.ArrayList) NoSuchFileException(java.nio.file.NoSuchFileException) IOException(java.io.IOException)

Aggregations

Config (de.fraunhofer.iosb.ilt.faaast.service.config.Config)2 ServiceConfig (de.fraunhofer.iosb.ilt.faaast.service.config.ServiceConfig)2 EndpointConfig (de.fraunhofer.iosb.ilt.faaast.service.endpoint.EndpointConfig)2 HttpEndpointConfig (de.fraunhofer.iosb.ilt.faaast.service.endpoint.http.HttpEndpointConfig)2 Service (de.fraunhofer.iosb.ilt.faaast.service.Service)1 AssetConnectionConfig (de.fraunhofer.iosb.ilt.faaast.service.assetconnection.AssetConnectionConfig)1 CoreConfig (de.fraunhofer.iosb.ilt.faaast.service.config.CoreConfig)1 MessageBusConfig (de.fraunhofer.iosb.ilt.faaast.service.messagebus.MessageBusConfig)1 MessageBusInternalConfig (de.fraunhofer.iosb.ilt.faaast.service.messagebus.internal.MessageBusInternalConfig)1 PersistenceConfig (de.fraunhofer.iosb.ilt.faaast.service.persistence.PersistenceConfig)1 PersistenceInMemoryConfig (de.fraunhofer.iosb.ilt.faaast.service.persistence.memory.PersistenceInMemoryConfig)1 AssetAdministrationShellEnvironment (io.adminshell.aas.v3.model.AssetAdministrationShellEnvironment)1 IOException (java.io.IOException)1 NoSuchFileException (java.nio.file.NoSuchFileException)1 ArrayList (java.util.ArrayList)1