aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSébastien Lesaint <sebastien.lesaint@sonarsource.com>2016-03-30 15:37:36 +0200
committerSébastien Lesaint <sebastien.lesaint@sonarsource.com>2016-03-30 15:37:36 +0200
commita9d57ad9c11567c9cb2a5759899d9fb073a72e06 (patch)
tree4dcb0cfda45fe8ee7be35b19985a3b900e351068
parentaf6e021219d9ac994acf8a0d9d013d372645ee9d (diff)
downloadsonarqube-a9d57ad9c11567c9cb2a5759899d9fb073a72e06.tar.gz
sonarqube-a9d57ad9c11567c9cb2a5759899d9fb073a72e06.zip
SONAR-7441 load ServerSide components in CE for backward compatibility
-rw-r--r--server/sonar-ce/src/main/java/org/sonar/ce/platform/ComputeEngineExtensionInstaller.java3
-rw-r--r--server/sonar-server/src/main/java/org/sonar/server/plugins/ServerExtensionInstaller.java20
2 files changed, 13 insertions, 10 deletions
diff --git a/server/sonar-ce/src/main/java/org/sonar/ce/platform/ComputeEngineExtensionInstaller.java b/server/sonar-ce/src/main/java/org/sonar/ce/platform/ComputeEngineExtensionInstaller.java
index 70c0d74cbb4..dce28460820 100644
--- a/server/sonar-ce/src/main/java/org/sonar/ce/platform/ComputeEngineExtensionInstaller.java
+++ b/server/sonar-ce/src/main/java/org/sonar/ce/platform/ComputeEngineExtensionInstaller.java
@@ -21,11 +21,12 @@ package org.sonar.ce.platform;
import org.sonar.api.SonarQubeVersion;
import org.sonar.api.ce.ComputeEngineSide;
+import org.sonar.api.server.ServerSide;
import org.sonar.core.platform.PluginRepository;
import org.sonar.server.plugins.ServerExtensionInstaller;
public class ComputeEngineExtensionInstaller extends ServerExtensionInstaller {
public ComputeEngineExtensionInstaller(SonarQubeVersion sonarQubeVersion, PluginRepository pluginRepository) {
- super(sonarQubeVersion, pluginRepository, ComputeEngineSide.class);
+ super(sonarQubeVersion, pluginRepository, ServerSide.class, ComputeEngineSide.class);
}
}
diff --git a/server/sonar-server/src/main/java/org/sonar/server/plugins/ServerExtensionInstaller.java b/server/sonar-server/src/main/java/org/sonar/server/plugins/ServerExtensionInstaller.java
index 5ed1fac8f05..931b3e7779c 100644
--- a/server/sonar-server/src/main/java/org/sonar/server/plugins/ServerExtensionInstaller.java
+++ b/server/sonar-server/src/main/java/org/sonar/server/plugins/ServerExtensionInstaller.java
@@ -41,14 +41,14 @@ public abstract class ServerExtensionInstaller {
private final SonarQubeVersion sonarQubeVersion;
private final PluginRepository pluginRepository;
- private final Class<? extends Annotation> supportedAnnotationType;
+ private final Class<? extends Annotation>[] supportedAnnotationTypes;
protected ServerExtensionInstaller(SonarQubeVersion sonarQubeVersion, PluginRepository pluginRepository,
- Class<? extends Annotation> supportedAnnotationType) {
- requireNonNull(supportedAnnotationType, "At least one supported annotation type must be specified");
+ Class<? extends Annotation>... supportedAnnotationTypes) {
+ requireNonNull(supportedAnnotationTypes, "At least one supported annotation type must be specified");
this.sonarQubeVersion = sonarQubeVersion;
this.pluginRepository = pluginRepository;
- this.supportedAnnotationType = supportedAnnotationType;
+ this.supportedAnnotationTypes = supportedAnnotationTypes;
}
public void installExtensions(ComponentContainer container) {
@@ -103,12 +103,14 @@ public abstract class ServerExtensionInstaller {
}
Object installExtension(ComponentContainer container, PluginInfo pluginInfo, Object extension, boolean acceptProvider) {
- if (AnnotationUtils.getAnnotation(extension, supportedAnnotationType) != null) {
- if (!acceptProvider && isExtensionProvider(extension)) {
- throw new IllegalStateException("ExtensionProvider can not include providers itself: " + extension);
+ for (Class<? extends Annotation> supportedAnnotationType : supportedAnnotationTypes) {
+ if (AnnotationUtils.getAnnotation(extension, supportedAnnotationType) != null) {
+ if (!acceptProvider && isExtensionProvider(extension)) {
+ throw new IllegalStateException("ExtensionProvider can not include providers itself: " + extension);
+ }
+ container.addExtension(pluginInfo, extension);
+ return extension;
}
- container.addExtension(pluginInfo, extension);
- return extension;
}
return null;
}