]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-11038 Add ProvisionProjectsAction
authorJanos Gyerik <janos.gyerik@sonarsource.com>
Fri, 27 Jul 2018 11:09:52 +0000 (13:09 +0200)
committerSonarTech <sonartech@sonarsource.com>
Fri, 10 Aug 2018 18:21:30 +0000 (20:21 +0200)
server/sonar-server/src/main/java/org/sonar/server/component/ComponentUpdater.java

index 7956a24ca5e514de636da54d7a8b4cc1ef2e6659..5121d31e1bedd37dbb642453b011af9897d97e32 100644 (file)
@@ -75,6 +75,16 @@ public class ComponentUpdater {
    * - Index component if es indexes
    */
   public ComponentDto create(DbSession dbSession, NewComponent newComponent, @Nullable Integer userId) {
+    ComponentDto componentDto = createWithoutCommit(dbSession, newComponent, userId);
+    commitAndIndex(dbSession, componentDto);
+    return componentDto;
+  }
+
+  /**
+   * Create component without committing.
+   * Don't forget to call commitAndIndex(...) when ready to commit.
+   */
+  public ComponentDto createWithoutCommit(DbSession dbSession, NewComponent newComponent, @Nullable Integer userId) {
     checkKeyFormat(newComponent.qualifier(), newComponent.key());
     ComponentDto componentDto = createRootComponent(dbSession, newComponent);
     if (isRootProject(componentDto)) {
@@ -82,10 +92,13 @@ public class ComponentUpdater {
     }
     removeDuplicatedProjects(dbSession, componentDto.getDbKey());
     handlePermissionTemplate(dbSession, componentDto, newComponent.getOrganizationUuid(), userId);
-    projectIndexers.commitAndIndex(dbSession, singletonList(componentDto), Cause.PROJECT_CREATION);
     return componentDto;
   }
 
+  public void commitAndIndex(DbSession dbSession, ComponentDto componentDto) {
+    projectIndexers.commitAndIndex(dbSession, singletonList(componentDto), Cause.PROJECT_CREATION);
+  }
+
   private ComponentDto createRootComponent(DbSession session, NewComponent newComponent) {
     checkBranchFormat(newComponent.qualifier(), newComponent.deprecatedBranch());
     String keyWithBranch = ComponentKeys.createKey(newComponent.key(), newComponent.deprecatedBranch());