From 972e426b9739983fa56b24b428ab400082951452 Mon Sep 17 00:00:00 2001 From: =?utf8?q?S=C3=A9bastien=20Lesaint?= Date: Tue, 16 Jan 2018 10:12:25 +0100 Subject: [PATCH] SONAR-10288 move ConfigurationProvider from sonar-core to sonar-server because this class is server and ce specific --- .../container/ComputeEngineContainerImpl.java | 2 +- .../server}/config/ConfigurationProvider.java | 29 +++++++++++++++++-- .../org/sonar/server/config/package-info.java | 23 +++++++++++++++ .../platformlevel/PlatformLevel1.java | 2 +- .../java/org/sonar/server/es/EsTester.java | 2 +- 5 files changed, 52 insertions(+), 6 deletions(-) rename {sonar-core/src/main/java/org/sonar/core => server/sonar-server/src/main/java/org/sonar/server}/config/ConfigurationProvider.java (64%) create mode 100644 server/sonar-server/src/main/java/org/sonar/server/config/package-info.java diff --git a/server/sonar-ce/src/main/java/org/sonar/ce/container/ComputeEngineContainerImpl.java b/server/sonar-ce/src/main/java/org/sonar/ce/container/ComputeEngineContainerImpl.java index 8c0b8822e7f..8bfa11684ca 100644 --- a/server/sonar-ce/src/main/java/org/sonar/ce/container/ComputeEngineContainerImpl.java +++ b/server/sonar-ce/src/main/java/org/sonar/ce/container/ComputeEngineContainerImpl.java @@ -59,7 +59,7 @@ import org.sonar.ce.taskprocessor.CeProcessingScheduler; import org.sonar.ce.taskprocessor.CeTaskProcessorModule; import org.sonar.ce.user.CeUserSession; import org.sonar.core.component.DefaultResourceTypes; -import org.sonar.core.config.ConfigurationProvider; +import org.sonar.server.config.ConfigurationProvider; import org.sonar.core.config.CorePropertyDefinitions; import org.sonar.core.i18n.DefaultI18n; import org.sonar.core.i18n.RuleI18nManager; diff --git a/sonar-core/src/main/java/org/sonar/core/config/ConfigurationProvider.java b/server/sonar-server/src/main/java/org/sonar/server/config/ConfigurationProvider.java similarity index 64% rename from sonar-core/src/main/java/org/sonar/core/config/ConfigurationProvider.java rename to server/sonar-server/src/main/java/org/sonar/server/config/ConfigurationProvider.java index 760533388df..f91bcdfb38e 100644 --- a/sonar-core/src/main/java/org/sonar/core/config/ConfigurationProvider.java +++ b/server/sonar-server/src/main/java/org/sonar/server/config/ConfigurationProvider.java @@ -17,12 +17,12 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package org.sonar.core.config; +package org.sonar.server.config; +import java.util.Optional; import org.picocontainer.injectors.ProviderAdapter; import org.sonar.api.config.Configuration; import org.sonar.api.config.Settings; -import org.sonar.api.config.internal.ConfigurationBridge; public class ConfigurationProvider extends ProviderAdapter { @@ -30,9 +30,32 @@ public class ConfigurationProvider extends ProviderAdapter { public Configuration provide(Settings settings) { if (configuration == null) { - configuration = new ConfigurationBridge(settings); + configuration = new ServerConfigurationAdapter(settings); } return configuration; } + private static class ServerConfigurationAdapter implements Configuration { + private final Settings settings; + + private ServerConfigurationAdapter(Settings settings) { + this.settings = settings; + } + + @Override + public Optional get(String key) { + return Optional.ofNullable(settings.getString(key)); + } + + @Override + public boolean hasKey(String key) { + return settings.hasKey(key); + } + + @Override + public String[] getStringArray(String key) { + return settings.getStringArray(key); + } + + } } diff --git a/server/sonar-server/src/main/java/org/sonar/server/config/package-info.java b/server/sonar-server/src/main/java/org/sonar/server/config/package-info.java new file mode 100644 index 00000000000..9197d0ff108 --- /dev/null +++ b/server/sonar-server/src/main/java/org/sonar/server/config/package-info.java @@ -0,0 +1,23 @@ +/* + * SonarQube + * Copyright (C) 2009-2018 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +@ParametersAreNonnullByDefault +package org.sonar.server.config; + +import javax.annotation.ParametersAreNonnullByDefault; diff --git a/server/sonar-server/src/main/java/org/sonar/server/platform/platformlevel/PlatformLevel1.java b/server/sonar-server/src/main/java/org/sonar/server/platform/platformlevel/PlatformLevel1.java index d361e65f216..f86edc0e288 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/platform/platformlevel/PlatformLevel1.java +++ b/server/sonar-server/src/main/java/org/sonar/server/platform/platformlevel/PlatformLevel1.java @@ -29,7 +29,7 @@ import org.sonar.api.internal.SonarRuntimeImpl; import org.sonar.api.utils.System2; import org.sonar.api.utils.Version; import org.sonar.api.utils.internal.TempFolderCleaner; -import org.sonar.core.config.ConfigurationProvider; +import org.sonar.server.config.ConfigurationProvider; import org.sonar.core.config.CorePropertyDefinitions; import org.sonar.core.util.UuidFactoryImpl; import org.sonar.db.DBSessionsImpl; diff --git a/server/sonar-server/src/test/java/org/sonar/server/es/EsTester.java b/server/sonar-server/src/test/java/org/sonar/server/es/EsTester.java index 5fb911aa508..de37c71955f 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/es/EsTester.java +++ b/server/sonar-server/src/test/java/org/sonar/server/es/EsTester.java @@ -59,7 +59,7 @@ import org.sonar.api.config.internal.MapSettings; import org.sonar.api.utils.log.Logger; import org.sonar.api.utils.log.LoggerLevel; import org.sonar.api.utils.log.Loggers; -import org.sonar.core.config.ConfigurationProvider; +import org.sonar.server.config.ConfigurationProvider; import org.sonar.core.platform.ComponentContainer; import org.sonar.elasticsearch.test.EsTestCluster; import org.sonar.server.es.metadata.MetadataIndex; -- 2.39.5