]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-10690 install Core Extensions before plugins
authorSébastien Lesaint <sebastien.lesaint@sonarsource.com>
Thu, 14 Jun 2018 13:43:18 +0000 (15:43 +0200)
committerSonarTech <sonartech@sonarsource.com>
Thu, 21 Jun 2018 18:21:30 +0000 (20:21 +0200)
server/sonar-ce/src/main/java/org/sonar/ce/container/ComputeEngineContainerImpl.java
server/sonar-server/src/main/java/org/sonar/server/platform/platformlevel/PlatformLevel4.java
sonar-core/src/main/java/org/sonar/core/extension/PlatformLevel.java [new file with mode: 0644]
sonar-core/src/main/java/org/sonar/core/extension/PlatformLevelPredicates.java [new file with mode: 0644]
sonar-scanner-engine/src/main/java/org/sonar/scanner/scan/ModuleScanContainer.java
sonar-scanner-engine/src/main/java/org/sonar/scanner/scan/ProjectScanContainer.java
sonar-scanner-engine/src/main/java/org/sonar/scanner/task/TaskContainer.java

index 1c45927fa2b7e312895c5679d2dd076c08b02693..a676084853127f9fec73bd81c1f94d2ef31cde88 100644 (file)
@@ -210,10 +210,10 @@ public class ComputeEngineContainerImpl implements ComputeEngineContainer {
     populateLevel4(this.level4, props);
 
     configureFromModules(this.level4);
-    ServerExtensionInstaller extensionInstaller = this.level4.getComponentByType(ServerExtensionInstaller.class);
-    extensionInstaller.installExtensions(this.level4);
     CoreExtensionsInstaller coreExtensionsInstaller = this.level4.getComponentByType(CECoreExtensionsInstaller.class);
     coreExtensionsInstaller.install(this.level4, t -> true);
+    ServerExtensionInstaller extensionInstaller = this.level4.getComponentByType(ServerExtensionInstaller.class);
+    extensionInstaller.installExtensions(this.level4);
     this.level4.startComponents();
     PlatformEditionProvider editionProvider = this.level4.getComponentByType(PlatformEditionProvider.class);
     Loggers.get(ComputeEngineContainerImpl.class)
index fa23da44099bcfedf87473db47d88dac85266def..306f7a36372a46d80dc57e3ce594198ea57c92f1 100644 (file)
@@ -579,11 +579,11 @@ public class PlatformLevel4 extends PlatformLevel {
 
   @Override
   public PlatformLevel start() {
-    ServerExtensionInstaller extensionInstaller = get(ServerExtensionInstaller.class);
-    CoreExtensionsInstaller coreExtensionsInstaller = get(WebCoreExtensionsInstaller.class);
     ComponentContainer container = getContainer();
-    extensionInstaller.installExtensions(container);
+    CoreExtensionsInstaller coreExtensionsInstaller = get(WebCoreExtensionsInstaller.class);
     coreExtensionsInstaller.install(container, t -> true);
+    ServerExtensionInstaller extensionInstaller = get(ServerExtensionInstaller.class);
+    extensionInstaller.installExtensions(container);
 
     super.start();
 
diff --git a/sonar-core/src/main/java/org/sonar/core/extension/PlatformLevel.java b/sonar-core/src/main/java/org/sonar/core/extension/PlatformLevel.java
new file mode 100644 (file)
index 0000000..6396dea
--- /dev/null
@@ -0,0 +1,14 @@
+package org.sonar.core.extension;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+@Documented
+@Retention(RetentionPolicy.RUNTIME)
+@Target(ElementType.TYPE)
+public @interface PlatformLevel {
+  int value() default 4;
+}
diff --git a/sonar-core/src/main/java/org/sonar/core/extension/PlatformLevelPredicates.java b/sonar-core/src/main/java/org/sonar/core/extension/PlatformLevelPredicates.java
new file mode 100644 (file)
index 0000000..bda0f9c
--- /dev/null
@@ -0,0 +1,4 @@
+package org.sonar.core.extension;
+
+public class PlatformLevelPredicates {
+}
index af03f0ae9329861d8e037d25bb2d42c8d23707ed..2d55e97cd1a0cc844cf0ea113adc1b8e8647873e 100644 (file)
@@ -168,10 +168,10 @@ public class ModuleScanContainer extends ComponentContainer {
   }
 
   private void addExtensions() {
-    ExtensionInstaller pluginInstaller = getComponentByType(ExtensionInstaller.class);
-    pluginInstaller.install(this, e -> isScannerSide(e) && isInstantiationStrategy(e, PER_PROJECT));
     CoreExtensionsInstaller coreExtensionsInstaller = getComponentByType(CoreExtensionsInstaller.class);
     coreExtensionsInstaller.install(this, t -> isInstantiationStrategy(t, PER_PROJECT));
+    ExtensionInstaller pluginInstaller = getComponentByType(ExtensionInstaller.class);
+    pluginInstaller.install(this, e -> isScannerSide(e) && isInstantiationStrategy(e, PER_PROJECT));
   }
 
   @Override
index c0ab266b34fe103311ef899c03419f8ff4b4551f..1ed39274ebad2c513f1843bd26c788461f28aae0 100644 (file)
@@ -241,10 +241,10 @@ public class ProjectScanContainer extends ComponentContainer {
   }
 
   private void addBatchExtensions() {
-    getComponentByType(ExtensionInstaller.class)
-      .install(this, getBatchPluginExtensionsFilter());
     getComponentByType(CoreExtensionsInstaller.class)
       .install(this, extension -> isInstantiationStrategy(extension, PER_BATCH));
+    getComponentByType(ExtensionInstaller.class)
+      .install(this, getBatchPluginExtensionsFilter());
   }
 
   @VisibleForTesting
index 4d81fa1812720c10a889fe8a6fd07f04a195508c..1d0c943aef1d77cb34dd1863f7993c78575b3164 100644 (file)
@@ -59,10 +59,10 @@ public class TaskContainer extends ComponentContainer {
   }
 
   private void addTaskExtensions() {
-    getComponentByType(ExtensionInstaller.class)
-      .install(this, extension -> isScannerSide(extension) && isInstantiationStrategy(extension, PER_TASK));
     getComponentByType(CoreExtensionsInstaller.class)
       .install(this, t -> isInstantiationStrategy(t, PER_TASK));
+    getComponentByType(ExtensionInstaller.class)
+      .install(this, extension -> isScannerSide(extension) && isInstantiationStrategy(extension, PER_TASK));
   }
 
   @Override