diff options
author | Sébastien Lesaint <sebastien.lesaint@sonarsource.com> | 2018-08-03 13:59:32 +0200 |
---|---|---|
committer | Sébastien Lesaint <sebastien.lesaint@sonarsource.com> | 2018-08-06 09:45:32 +0200 |
commit | 292a767d4aab4ef6aad38bf9fbb3762bbe569d58 (patch) | |
tree | a9f5b5fa05e4e2520e6ae84e85dbbc03777c3213 /server | |
parent | c5f33e9f0c2fdbba8a57c2240f720b0d9fec2ca4 (diff) | |
download | sonarqube-292a767d4aab4ef6aad38bf9fbb3762bbe569d58.tar.gz sonarqube-292a767d4aab4ef6aad38bf9fbb3762bbe569d58.zip |
SONAR-11083 fail at startup if License plugin < 3.4 is installed
Diffstat (limited to 'server')
-rw-r--r-- | server/sonar-server/src/main/java/org/sonar/server/plugins/ServerPluginRepository.java | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/server/sonar-server/src/main/java/org/sonar/server/plugins/ServerPluginRepository.java b/server/sonar-server/src/main/java/org/sonar/server/plugins/ServerPluginRepository.java index 7fb654172f9..ff2675084b3 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/plugins/ServerPluginRepository.java +++ b/server/sonar-server/src/main/java/org/sonar/server/plugins/ServerPluginRepository.java @@ -36,6 +36,7 @@ import java.util.Map; import java.util.Set; import java.util.concurrent.atomic.AtomicBoolean; import javax.annotation.CheckForNull; +import javax.annotation.Nullable; import org.apache.commons.io.FileUtils; import org.picocontainer.Startable; import org.sonar.api.Plugin; @@ -295,7 +296,19 @@ public class ServerPluginRepository implements PluginRepository, Startable { List<PluginInfo> orderedPlugins = Ordering.natural().sortedCopy(pluginInfosByKeys.values()); for (PluginInfo plugin : orderedPlugins) { LOG.info("Deploy plugin {}", SLASH_JOINER.join(plugin.getName(), plugin.getVersion(), plugin.getImplementationBuild())); + if (plugin.getKey().equals("license") && isBefore34(plugin.getVersion())) { + throw MessageException.of("Your commercial edition is obsolete. You must upgrade the edition bundle to its latest version."); + } + } + } + + private static final Set<String> BEFORE_4_MINOR_VERSION = ImmutableSet.of("0", "1", "2", "3"); + + private static boolean isBefore34(@Nullable Version version) { + if (version == null) { + return true; } + return "3".equals(version.getMajor()) && BEFORE_4_MINOR_VERSION.contains(version.getMinor()); } private void loadInstances() { |