Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe
Commits:
-
5c3ce96f
by Tony Chemit at 2022-02-19T17:07:17+01:00
9 changed files:
- client/configuration/src/main/java/fr/ird/observe/client/configuration/ClientConfig.java
- core/api/dto/pom.xml
- + core/api/dto/src/main/java/fr/ird/observe/spi/ConfigHelper.java
- server/configuration/src/main/config/Server.ini
- server/configuration/src/main/i18n/getters/config.getter
- server/configuration/src/main/java/fr/ird/observe/server/configuration/ServerConfig.java
- server/runner/src/main/i18n/translations/server-runner_en_GB.properties
- server/runner/src/main/i18n/translations/server-runner_es_ES.properties
- server/runner/src/main/i18n/translations/server-runner_fr_FR.properties
Changes:
| ... | ... | @@ -42,6 +42,7 @@ import fr.ird.observe.navigation.tree.selection.SelectionTreeConfig; |
| 42 | 42 | import fr.ird.observe.security.WithPermission;
|
| 43 | 43 | import fr.ird.observe.services.ObserveServiceInitializerConfig;
|
| 44 | 44 | import fr.ird.observe.services.service.CleanTemporaryFilesTaskConfiguration;
|
| 45 | +import fr.ird.observe.spi.ConfigHelper;
|
|
| 45 | 46 | import fr.ird.observe.spi.decoration.DecoratorService;
|
| 46 | 47 | import fr.ird.observe.spi.json.DtoGsonSupplier;
|
| 47 | 48 | import fr.ird.observe.spi.json.guava.ImmutableListAdapter;
|
| ... | ... | @@ -54,7 +55,6 @@ import io.ultreia.java4all.bean.definition.JavaBeanDefinition; |
| 54 | 55 | import io.ultreia.java4all.bean.definition.JavaBeanDefinitionStore;
|
| 55 | 56 | import io.ultreia.java4all.bean.spi.GenerateJavaBeanDefinition;
|
| 56 | 57 | import io.ultreia.java4all.config.ApplicationConfig;
|
| 57 | -import io.ultreia.java4all.config.ApplicationConfigSaveException;
|
|
| 58 | 58 | import io.ultreia.java4all.config.ArgumentsParserException;
|
| 59 | 59 | import io.ultreia.java4all.config.ConfigResource;
|
| 60 | 60 | import io.ultreia.java4all.config.spi.ApplicationConfigInit;
|
| ... | ... | @@ -83,7 +83,6 @@ import java.awt.RenderingHints; |
| 83 | 83 | import java.awt.image.BufferedImage;
|
| 84 | 84 | import java.beans.PropertyChangeListener;
|
| 85 | 85 | import java.io.BufferedReader;
|
| 86 | -import java.io.BufferedWriter;
|
|
| 87 | 86 | import java.io.File;
|
| 88 | 87 | import java.io.IOException;
|
| 89 | 88 | import java.nio.file.Files;
|
| ... | ... | @@ -106,7 +105,6 @@ import java.util.Properties; |
| 106 | 105 | import java.util.ServiceLoader;
|
| 107 | 106 | import java.util.Set;
|
| 108 | 107 | import java.util.function.Supplier;
|
| 109 | -import java.util.stream.Collectors;
|
|
| 110 | 108 | |
| 111 | 109 | import static io.ultreia.java4all.i18n.I18n.t;
|
| 112 | 110 | import static org.nuiton.jaxx.runtime.swing.SwingUtil.ICON_PREFIX;
|
| ... | ... | @@ -675,36 +673,9 @@ public class ClientConfig extends GeneratedClientConfig implements TripMapConfig |
| 675 | 673 | }
|
| 676 | 674 | |
| 677 | 675 | public void saveForUser() {
|
| 678 | - log.info(t("observe.ui.message.save.configuration", get().getExtraConfigFile()));
|
|
| 679 | - Properties propertiesToSave = get().getPropertiesToSave(false, doNotSave);
|
|
| 680 | - List<String> propertyNames = propertiesToSave.stringPropertyNames().stream().sorted().collect(Collectors.toList());
|
|
| 681 | - for (ClientConfigOption option : options()) {
|
|
| 682 | - String optionKey = option.getKey();
|
|
| 683 | - if (propertyNames.contains(optionKey)) {
|
|
| 684 | - String property = propertiesToSave.getProperty(optionKey);
|
|
| 685 | - if (Objects.equals(property, option.getDefaultValue())) {
|
|
| 686 | - // use default value
|
|
| 687 | - propertyNames.remove(optionKey);
|
|
| 688 | - }
|
|
| 689 | - }
|
|
| 690 | - }
|
|
| 691 | - log.info(String.format("Property names to save: %s", propertyNames));
|
|
| 692 | - try (BufferedWriter writer = Files.newBufferedWriter(get().getExtraConfigFile().toPath())) {
|
|
| 693 | - List<String> lines = ClientResources.CONFIG.readLines();
|
|
| 694 | - for (String line : lines) {
|
|
| 695 | - if (line.startsWith("#")) {
|
|
| 696 | - for (String propertyName : propertyNames) {
|
|
| 697 | - if (line.startsWith("#" + propertyName + "=")) {
|
|
| 698 | - line = String.format("%s=%s", propertyName, propertiesToSave.getProperty(propertyName));
|
|
| 699 | - }
|
|
| 700 | - }
|
|
| 701 | - }
|
|
| 702 | - writer.write(line);
|
|
| 703 | - writer.newLine();
|
|
| 704 | - }
|
|
| 705 | - } catch (IOException e) {
|
|
| 706 | - throw new ApplicationConfigSaveException(e);
|
|
| 707 | - }
|
|
| 676 | + File file = get().getExtraConfigFile();
|
|
| 677 | + log.info(t("observe.ui.message.save.configuration", file));
|
|
| 678 | + ConfigHelper.save(get(), file, doNotSave, ClientResources.CONFIG, options());
|
|
| 708 | 679 | }
|
| 709 | 680 | |
| 710 | 681 | public Project getNavigationEditModel() {
|
| ... | ... | @@ -69,6 +69,14 @@ |
| 69 | 69 | <groupId>io.ultreia.java4all.decorator</groupId>
|
| 70 | 70 | <artifactId>decorator-api</artifactId>
|
| 71 | 71 | </dependency>
|
| 72 | + <dependency>
|
|
| 73 | + <groupId>io.ultreia.java4all.config</groupId>
|
|
| 74 | + <artifactId>config-api</artifactId>
|
|
| 75 | + </dependency>
|
|
| 76 | + <dependency>
|
|
| 77 | + <groupId>io.ultreia.java4all.config</groupId>
|
|
| 78 | + <artifactId>config-spi</artifactId>
|
|
| 79 | + </dependency>
|
|
| 72 | 80 | <dependency>
|
| 73 | 81 | <groupId>io.ultreia.java4all.decorator</groupId>
|
| 74 | 82 | <artifactId>decorator-spi</artifactId>
|
| 1 | +package fr.ird.observe.spi;
|
|
| 2 | + |
|
| 3 | +/*-
|
|
| 4 | + * #%L
|
|
| 5 | + * ObServe Core :: API :: Dto
|
|
| 6 | + * %%
|
|
| 7 | + * Copyright (C) 2008 - 2022 IRD, Code Lutin, Ultreia.io
|
|
| 8 | + * %%
|
|
| 9 | + * This program is free software: you can redistribute it and/or modify
|
|
| 10 | + * it under the terms of the GNU General Public License as
|
|
| 11 | + * published by the Free Software Foundation, either version 3 of the
|
|
| 12 | + * License, or (at your option) any later version.
|
|
| 13 | + *
|
|
| 14 | + * This program is distributed in the hope that it will be useful,
|
|
| 15 | + * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
| 16 | + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
| 17 | + * GNU General Public License for more details.
|
|
| 18 | + *
|
|
| 19 | + * You should have received a copy of the GNU General Public
|
|
| 20 | + * License along with this program. If not, see
|
|
| 21 | + * <http://www.gnu.org/licenses/gpl-3.0.html>.
|
|
| 22 | + * #L%
|
|
| 23 | + */
|
|
| 24 | + |
|
| 25 | +import io.ultreia.java4all.config.ApplicationConfig;
|
|
| 26 | +import io.ultreia.java4all.config.ApplicationConfigSaveException;
|
|
| 27 | +import io.ultreia.java4all.config.ConfigResource;
|
|
| 28 | +import io.ultreia.java4all.config.spi.ConfigOptionDef;
|
|
| 29 | +import org.apache.logging.log4j.LogManager;
|
|
| 30 | +import org.apache.logging.log4j.Logger;
|
|
| 31 | + |
|
| 32 | +import java.io.BufferedWriter;
|
|
| 33 | +import java.io.File;
|
|
| 34 | +import java.io.IOException;
|
|
| 35 | +import java.nio.file.Files;
|
|
| 36 | +import java.util.List;
|
|
| 37 | +import java.util.Objects;
|
|
| 38 | +import java.util.Properties;
|
|
| 39 | +import java.util.stream.Collectors;
|
|
| 40 | + |
|
| 41 | +/**
|
|
| 42 | + * FIXME Move this to config project.
|
|
| 43 | + * Created on 19/02/2022.
|
|
| 44 | + *
|
|
| 45 | + * @author Tony Chemit - dev@tchemit.fr
|
|
| 46 | + * @since 9.0.0
|
|
| 47 | + */
|
|
| 48 | +public class ConfigHelper {
|
|
| 49 | + |
|
| 50 | + private static final Logger log = LogManager.getLogger(ConfigHelper.class);
|
|
| 51 | + |
|
| 52 | + public static void save(ApplicationConfig applicationConfig, File file, String[] doNotSave, ConfigResource resource, ConfigOptionDef[] options) {
|
|
| 53 | + log.info(String.format("Save configuration to %s", file));
|
|
| 54 | + Properties propertiesToSave = applicationConfig.getPropertiesToSave(false, doNotSave);
|
|
| 55 | + List<String> propertyNames = propertiesToSave.stringPropertyNames().stream().sorted().collect(Collectors.toList());
|
|
| 56 | + for (ConfigOptionDef option : options) {
|
|
| 57 | + String optionKey = option.getKey();
|
|
| 58 | + if (propertyNames.contains(optionKey)) {
|
|
| 59 | + String property = propertiesToSave.getProperty(optionKey);
|
|
| 60 | + if (Objects.equals(property, option.getDefaultValue())) {
|
|
| 61 | + // use default value
|
|
| 62 | + propertyNames.remove(optionKey);
|
|
| 63 | + }
|
|
| 64 | + }
|
|
| 65 | + }
|
|
| 66 | + |
|
| 67 | + log.info(String.format("Property names to save: %s", propertyNames));
|
|
| 68 | + try (BufferedWriter writer = Files.newBufferedWriter(file.toPath())) {
|
|
| 69 | + List<String> lines = resource.readLines();
|
|
| 70 | + for (String line : lines) {
|
|
| 71 | + if (line.startsWith("#")) {
|
|
| 72 | + for (String propertyName : propertyNames) {
|
|
| 73 | + if (line.startsWith("#" + propertyName + "=")) {
|
|
| 74 | + line = String.format("%s=%s", propertyName, propertiesToSave.getProperty(propertyName));
|
|
| 75 | + }
|
|
| 76 | + }
|
|
| 77 | + }
|
|
| 78 | + writer.write(line);
|
|
| 79 | + writer.newLine();
|
|
| 80 | + }
|
|
| 81 | + } catch (IOException e) {
|
|
| 82 | + throw new ApplicationConfigSaveException(e);
|
|
| 83 | + }
|
|
| 84 | + }
|
|
| 85 | + |
|
| 86 | +} |
| ... | ... | @@ -43,6 +43,11 @@ key = common.directory.config |
| 43 | 43 | type = file
|
| 44 | 44 | defaultValue = ${common.directory.instances}/.conf/${build.version.major}
|
| 45 | 45 | |
| 46 | +[option commonConfigurationFile]
|
|
| 47 | +key = common.directory.config.file
|
|
| 48 | +type = file
|
|
| 49 | +defaultValue = ${common.directory.config}/observe-server.conf
|
|
| 50 | + |
|
| 46 | 51 | [option commonLog4jConfigurationFile]
|
| 47 | 52 | key = common.directory.config.file.log
|
| 48 | 53 | type = file
|
| ... | ... | @@ -5,6 +5,7 @@ application.config.option.build.version.major |
| 5 | 5 | application.config.option.build.version.persistence
|
| 6 | 6 | server.config.name
|
| 7 | 7 | server.config.option.common.directory.config
|
| 8 | +server.config.option.common.directory.config.file
|
|
| 8 | 9 | server.config.option.common.directory.config.file.log
|
| 9 | 10 | server.config.option.common.directory.config.file.server
|
| 10 | 11 | server.config.option.common.directory.instances
|
| ... | ... | @@ -25,6 +25,7 @@ package fr.ird.observe.server.configuration; |
| 25 | 25 | import fr.ird.observe.dto.ObserveUtil;
|
| 26 | 26 | import fr.ird.observe.dto.referential.ReferentialLocale;
|
| 27 | 27 | import fr.ird.observe.services.service.CleanTemporaryFilesTaskConfiguration;
|
| 28 | +import fr.ird.observe.spi.ConfigHelper;
|
|
| 28 | 29 | import io.ultreia.java4all.application.context.spi.ApplicationComponentInstantiateStrategy;
|
| 29 | 30 | import io.ultreia.java4all.application.context.spi.GenerateApplicationComponent;
|
| 30 | 31 | import io.ultreia.java4all.application.template.TemplateGeneratorConfig;
|
| ... | ... | @@ -60,38 +61,70 @@ public class ServerConfig extends GeneratedServerConfig implements CleanTemporar |
| 60 | 61 | "observeweb.httpTimeout", "instance.timeout.http",
|
| 61 | 62 | "observeweb.sessionExpirationDelay", "instance.timeout.session",
|
| 62 | 63 | "observeweb.sessionMaximumSize", "instance.session.maximum.size"
|
| 63 | - );
|
|
| 64 | + );
|
|
| 64 | 65 | private static Logger log = LogManager.getLogger(ServerConfig.class);
|
| 65 | 66 | private ReferentialLocale referentialLocale;
|
| 66 | 67 | |
| 68 | + protected static ApplicationConfigInit setConfigFileName(ApplicationConfigInit init) {
|
|
| 69 | + return init.setConfigFileName(DEFAULT_OBSERVE_WEB_CONFIGURATION_FILENAME);
|
|
| 70 | + }
|
|
| 71 | + |
|
| 72 | + protected static ApplicationConfigInit setInstanceExtraConfigDirectory(ApplicationConfigInit init) {
|
|
| 73 | + return init.setExtraConfigDirectory("${instance.directory}");
|
|
| 74 | + }
|
|
| 75 | + |
|
| 76 | + protected static ApplicationConfigInit setCommonExtraConfigDirectory(ApplicationConfigInit init) {
|
|
| 77 | + return init.setExtraConfigDirectory("${common.directory.config}");
|
|
| 78 | + }
|
|
| 79 | + |
|
| 67 | 80 | public static ServerConfig fromContextPath(String contextPath) {
|
| 68 | - ServerConfig config = new ServerConfig(ApplicationConfigInit
|
|
| 69 | - .defaultInit()
|
|
| 70 | - .addDefaults(ServerConfigOption.CONTEXT_PATH.getKey(), contextPath));
|
|
| 71 | - config.init();
|
|
| 81 | + |
|
| 82 | + // load a first configuration with /etc authorized (and only him)
|
|
| 83 | + // using extra config directory as common configuration directory
|
|
| 84 | + // if default configuration does not exist, generate it and migrates from /etc
|
|
| 85 | + |
|
| 86 | + ApplicationConfigInit init = ApplicationConfigInit.forAllScopesWithout(ApplicationConfigScope.HOME, ApplicationConfigScope.ENV)
|
|
| 87 | + .addDefaults(ServerConfigOption.CONTEXT_PATH.getKey(), contextPath);
|
|
| 88 | + |
|
| 89 | + ServerConfig fakeConfig = new ServerConfig(setCommonExtraConfigDirectory(setConfigFileName(init)), true);
|
|
| 90 | + fakeConfig.initFirst();
|
|
| 91 | + |
|
| 92 | + // Now that common files are ready, starts a normal configuration without system file and without migration possible
|
|
| 93 | + ApplicationConfigInit realInit = ApplicationConfigInit.forAllScopesWithout(ApplicationConfigScope.HOME, ApplicationConfigScope.ENV, ApplicationConfigScope.SYSTEM)
|
|
| 94 | + .addDefaults(ServerConfigOption.CONTEXT_PATH.getKey(), contextPath);
|
|
| 95 | + |
|
| 96 | + ServerConfig config = new ServerConfig(setInstanceExtraConfigDirectory(setConfigFileName(realInit)));
|
|
| 97 | + config.init(true);
|
|
| 72 | 98 | return config;
|
| 73 | 99 | }
|
| 74 | 100 | |
| 75 | 101 | public static ServerConfig forTest() throws IOException {
|
| 76 | 102 | Files.createDirectories(new File(System.getProperty("java.io.tmpdir")).toPath());
|
| 77 | 103 | Path directory = Files.createTempDirectory("taiste");
|
| 78 | - ServerConfig config = new ServerConfig(ApplicationConfigInit
|
|
| 79 | - .forAllScopesWithout(ApplicationConfigScope.CURRENT,
|
|
| 80 | - ApplicationConfigScope.HOME,
|
|
| 81 | - ApplicationConfigScope.ENV,
|
|
| 82 | - ApplicationConfigScope.JVM,
|
|
| 83 | - ApplicationConfigScope.CLASS_PATH,
|
|
| 84 | - ApplicationConfigScope.SYSTEM)
|
|
| 85 | - .addDefaults(ServerConfigOption.CONTEXT_PATH.getKey(), "observe-${build.version}")
|
|
| 86 | - .addDefaults(ServerConfigOption.COMMON_CONFIG_DIRECTORY.getKey(), String.format("%s/${build.version.major}", directory.resolve("conf")))
|
|
| 87 | - .addDefaults(ServerConfigOption.COMMON_INSTANCES_DIRECTORY.getKey(), directory.resolve("instances").toString()));
|
|
| 88 | - config.init();
|
|
| 104 | + ApplicationConfigInit init = ApplicationConfigInit
|
|
| 105 | + .forAllScopesWithout(ApplicationConfigScope.CURRENT,
|
|
| 106 | + ApplicationConfigScope.HOME,
|
|
| 107 | + ApplicationConfigScope.ENV,
|
|
| 108 | + ApplicationConfigScope.JVM,
|
|
| 109 | + ApplicationConfigScope.CLASS_PATH,
|
|
| 110 | + ApplicationConfigScope.SYSTEM)
|
|
| 111 | + .addDefaults(ServerConfigOption.CONTEXT_PATH.getKey(), "observe-${build.version}")
|
|
| 112 | + .addDefaults(ServerConfigOption.COMMON_CONFIG_DIRECTORY.getKey(), String.format("%s/${build.version.major}", directory.resolve("conf")))
|
|
| 113 | + .addDefaults(ServerConfigOption.COMMON_INSTANCES_DIRECTORY.getKey(), directory.resolve("instances").toString());
|
|
| 114 | + ServerConfig config = new ServerConfig(setInstanceExtraConfigDirectory(setConfigFileName(init)));
|
|
| 115 | + config.init(false);
|
|
| 89 | 116 | return config;
|
| 90 | 117 | }
|
| 91 | 118 | |
| 92 | 119 | private ServerConfig(ApplicationConfigInit init) {
|
| 93 | - super(init.setConfigFileName(DEFAULT_OBSERVE_WEB_CONFIGURATION_FILENAME).setExtraConfigDirectory("${instance.directory}"));
|
|
| 94 | - get().setPropertiesMigration(V9_MIGRATION);
|
|
| 120 | + this(init, false);
|
|
| 121 | + }
|
|
| 122 | + |
|
| 123 | + private ServerConfig(ApplicationConfigInit init, boolean acceptMigration) {
|
|
| 124 | + super(init);
|
|
| 125 | + if (acceptMigration) {
|
|
| 126 | + get().setPropertiesMigration(V9_MIGRATION);
|
|
| 127 | + }
|
|
| 95 | 128 | }
|
| 96 | 129 | |
| 97 | 130 | @Override
|
| ... | ... | @@ -99,13 +132,31 @@ public class ServerConfig extends GeneratedServerConfig implements CleanTemporar |
| 99 | 132 | return Collections.singletonMap(getTemporaryDirectory().toPath(), getTemporaryFilesTimeout());
|
| 100 | 133 | }
|
| 101 | 134 | |
| 102 | - public void init(String... args) {
|
|
| 103 | - log.info("Starts to init ObServe server configuration...");
|
|
| 104 | - try {
|
|
| 105 | - get().parse(args);
|
|
| 106 | - } catch (ArgumentsParserException e) {
|
|
| 107 | - throw new ObserveWebApplicationConfigInitException("could not parse configuration", e);
|
|
| 135 | + public void initFirst() {
|
|
| 136 | + log.info("Starts to init ObServe fake server configuration (to generate default directories and common files...");
|
|
| 137 | + |
|
| 138 | + parse();
|
|
| 139 | + |
|
| 140 | + Path baseDirectory = getCommonConfigDirectory().toPath();
|
|
| 141 | + createDirectories(baseDirectory, "Impossible de créer le répertoire principal de l'application (%s)");
|
|
| 142 | + |
|
| 143 | + File extraConfigFile = get().getExtraConfigFile();
|
|
| 144 | + if (Files.notExists(extraConfigFile.toPath())) {
|
|
| 145 | + log.info(String.format("Save common configuration file to: %s", extraConfigFile));
|
|
| 146 | + ConfigHelper.save(get(), extraConfigFile, new String[0], ServerResources.CONFIG, options());
|
|
| 147 | + }
|
|
| 148 | + |
|
| 149 | + File log4jConfigurationFile = getCommonLog4jConfigurationFile();
|
|
| 150 | + if (!log4jConfigurationFile.exists()) {
|
|
| 151 | + ServerResources.LOG_CONFIGURATION_FILE.copyResource(log4jConfigurationFile);
|
|
| 152 | + log.info(String.format("Generate empty log4j configuration file to: %s", log4jConfigurationFile));
|
|
| 108 | 153 | }
|
| 154 | + }
|
|
| 155 | + |
|
| 156 | + public void init(boolean strict) {
|
|
| 157 | + log.info("Starts to init ObServe server configuration...");
|
|
| 158 | + |
|
| 159 | + parse();
|
|
| 109 | 160 | |
| 110 | 161 | Path baseDirectory = getBaseDirectory().toPath();
|
| 111 | 162 | log.info(getConfigurationDescription());
|
| ... | ... | @@ -113,8 +164,12 @@ public class ServerConfig extends GeneratedServerConfig implements CleanTemporar |
| 113 | 164 | |
| 114 | 165 | File extraConfigFile = get().getExtraConfigFile();
|
| 115 | 166 | if (Files.notExists(extraConfigFile.toPath())) {
|
| 116 | - ServerResources.CONFIG.copyResource(extraConfigFile);
|
|
| 117 | - log.info(String.format("Generate empty configuration file to: %s", extraConfigFile));
|
|
| 167 | + boolean generated = ServerResources.CONFIG.copyResource(getCommonConfigurationFile().toPath(), extraConfigFile);
|
|
| 168 | + if (generated) {
|
|
| 169 | + log.info(String.format("Generate empty configuration file to: %s", extraConfigFile));
|
|
| 170 | + } else {
|
|
| 171 | + log.info(String.format("Create symbolic link from common configuration file to: %s", extraConfigFile));
|
|
| 172 | + }
|
|
| 118 | 173 | }
|
| 119 | 174 | |
| 120 | 175 | Path temporaryDirectory = getTemporaryDirectory().toPath();
|
| ... | ... | @@ -122,7 +177,11 @@ public class ServerConfig extends GeneratedServerConfig implements CleanTemporar |
| 122 | 177 | |
| 123 | 178 | File securityConfigurationFile = getSecurityConfigurationFile();
|
| 124 | 179 | if (!securityConfigurationFile.exists()) {
|
| 125 | - boolean generated = ServerResources.SECURITY.copyResource(getCommonSecurityConfigurationFile().toPath(), securityConfigurationFile);
|
|
| 180 | + File commonSecurityConfigurationFile = getCommonSecurityConfigurationFile();
|
|
| 181 | + if (strict && !commonSecurityConfigurationFile.exists()) {
|
|
| 182 | + throw new IllegalStateException(String.format("Can not start application. Could not find security.yml file.\n\nPlease add it to one of this places:\n\t%s\n\t%s", commonSecurityConfigurationFile, securityConfigurationFile));
|
|
| 183 | + }
|
|
| 184 | + boolean generated = ServerResources.SECURITY.copyResource(commonSecurityConfigurationFile.toPath(), securityConfigurationFile);
|
|
| 126 | 185 | if (generated) {
|
| 127 | 186 | log.info("Generate default security.yml");
|
| 128 | 187 | } else {
|
| ... | ... | @@ -133,6 +192,15 @@ public class ServerConfig extends GeneratedServerConfig implements CleanTemporar |
| 133 | 192 | log.info("ObServe server configuration init done.");
|
| 134 | 193 | }
|
| 135 | 194 | |
| 195 | + private void parse() {
|
|
| 196 | + try {
|
|
| 197 | + get().parse();
|
|
| 198 | + } catch (ArgumentsParserException e) {
|
|
| 199 | + throw new ObserveWebApplicationConfigInitException("could not parse configuration", e);
|
|
| 200 | + }
|
|
| 201 | + |
|
| 202 | + }
|
|
| 203 | + |
|
| 136 | 204 | private void initLog() {
|
| 137 | 205 | File logFile = getLog4jConfigurationFile();
|
| 138 | 206 | log.info(String.format("Chargement du fichier de log : %s", logFile));
|
| 1 | 1 | server.config.name=ObServe Web configuration
|
| 2 | 2 | server.config.option.common.directory.config=Common config directory
|
| 3 | +server.config.option.common.directory.config.file=Common config file
|
|
| 3 | 4 | server.config.option.common.directory.config.file.log=Common config log file
|
| 4 | 5 | server.config.option.common.directory.config.file.server=Common config databases file
|
| 5 | 6 | server.config.option.common.directory.instances=Instances directory
|
| 1 | 1 | server.config.name=Configuración de Observe web
|
| 2 | 2 | server.config.option.common.directory.config=Common directory
|
| 3 | +server.config.option.common.directory.config.file=Common config file
|
|
| 3 | 4 | server.config.option.common.directory.config.file.log=Common config log file
|
| 4 | 5 | server.config.option.common.directory.config.file.server=Common config databases file
|
| 5 | 6 | server.config.option.common.directory.instances=Instances directory
|
| 1 | 1 | server.config.name=Observe web Configuration
|
| 2 | 2 | server.config.option.common.directory.config=Répertoire des configurations partagées
|
| 3 | +server.config.option.common.directory.config.file=Chemin vers le fichier commun de configuration
|
|
| 3 | 4 | server.config.option.common.directory.config.file.log=Chemin vers le fichier commun de configuration des logs
|
| 4 | 5 | server.config.option.common.directory.config.file.server=Chemin vers le fichier commun de configuration des bases
|
| 5 | 6 | server.config.option.common.directory.instances=Chemin des instances
|