aboutsummaryrefslogtreecommitdiffstats
path: root/sonar-server
diff options
context:
space:
mode:
Diffstat (limited to 'sonar-server')
-rw-r--r--sonar-server/src/main/java/org/sonar/server/platform/Platform.java2
-rw-r--r--sonar-server/src/main/java/org/sonar/server/startup/IndexProjects.java19
-rw-r--r--sonar-server/src/main/webapp/WEB-INF/db/migrate/README.txt2
-rw-r--r--sonar-server/src/test/java/org/sonar/server/startup/IndexProjectsTest.java21
4 files changed, 18 insertions, 26 deletions
diff --git a/sonar-server/src/main/java/org/sonar/server/platform/Platform.java b/sonar-server/src/main/java/org/sonar/server/platform/Platform.java
index 9ff7a031df8..8b4e966fb3c 100644
--- a/sonar-server/src/main/java/org/sonar/server/platform/Platform.java
+++ b/sonar-server/src/main/java/org/sonar/server/platform/Platform.java
@@ -44,6 +44,7 @@ import org.sonar.core.persistence.DatabaseMigrator;
import org.sonar.core.persistence.DefaultDatabase;
import org.sonar.core.persistence.MyBatis;
import org.sonar.core.qualitymodel.DefaultModelFinder;
+import org.sonar.core.resource.ResourceIndexer;
import org.sonar.core.rule.DefaultRuleFinder;
import org.sonar.core.user.DefaultUserFinder;
import org.sonar.jpa.dao.DaoFacade;
@@ -133,6 +134,7 @@ public final class Platform {
rootContainer.addSingleton(EmbeddedDatabaseFactory.class);
rootContainer.addSingleton(DefaultDatabase.class);
rootContainer.addSingleton(MyBatis.class);
+ rootContainer.addSingleton(ResourceIndexer.class); // for the migration -> see org.sonar.server.startup.IndexProjects
rootContainer.addSingleton(DefaultDatabaseConnector.class);
rootContainer.addSingleton(DefaultServerUpgradeStatus.class);
rootContainer.addSingleton(DatabaseMigrator.class);
diff --git a/sonar-server/src/main/java/org/sonar/server/startup/IndexProjects.java b/sonar-server/src/main/java/org/sonar/server/startup/IndexProjects.java
index 40556756f23..14403cadb79 100644
--- a/sonar-server/src/main/java/org/sonar/server/startup/IndexProjects.java
+++ b/sonar-server/src/main/java/org/sonar/server/startup/IndexProjects.java
@@ -21,12 +21,9 @@ package org.sonar.server.startup;
import org.sonar.api.ServerComponent;
import org.sonar.api.platform.ServerUpgradeStatus;
-import org.sonar.api.resources.Qualifiers;
-import org.sonar.api.resources.Scopes;
import org.sonar.api.utils.TimeProfiler;
+import org.sonar.core.resource.ResourceIndexer;
import org.sonar.jpa.entity.SchemaMigration;
-import org.sonar.core.resource.ResourceIndexerDao;
-import org.sonar.core.resource.ResourceIndexerFilter;
/**
* Index existing projects during migration to 2.13. Since this latter version, resources are automatically indexed
@@ -37,11 +34,11 @@ import org.sonar.core.resource.ResourceIndexerFilter;
public class IndexProjects implements ServerComponent {
private ServerUpgradeStatus upgradeStatus;
- private ResourceIndexerDao indexerDao;
+ private ResourceIndexer indexer;
- public IndexProjects(ServerUpgradeStatus upgradeStatus, ResourceIndexerDao indexerDao) {
+ public IndexProjects(ServerUpgradeStatus upgradeStatus, ResourceIndexer indexer) {
this.upgradeStatus = upgradeStatus;
- this.indexerDao = indexerDao;
+ this.indexer = indexer;
}
public void start() {
@@ -56,14 +53,8 @@ public class IndexProjects implements ServerComponent {
private void index() {
TimeProfiler profiler = new TimeProfiler().start("Index projects");
- indexerDao.index(newFilter());
+ indexer.indexAll();
profiler.stop();
}
- private static ResourceIndexerFilter newFilter() {
- return ResourceIndexerFilter.create()
- .setQualifiers(new String[]{Qualifiers.PROJECT, Qualifiers.MODULE, Qualifiers.VIEW, Qualifiers.SUBVIEW, Qualifiers.DIRECTORY, Qualifiers.PACKAGE, Qualifiers.FILE, Qualifiers.CLASS, Qualifiers.UNIT_TEST_FILE})
- .setScopes(new String[]{Scopes.PROJECT, Scopes.DIRECTORY, Scopes.FILE});
- }
-
}
diff --git a/sonar-server/src/main/webapp/WEB-INF/db/migrate/README.txt b/sonar-server/src/main/webapp/WEB-INF/db/migrate/README.txt
index a02204611a2..d8c5c3a85d4 100644
--- a/sonar-server/src/main/webapp/WEB-INF/db/migrate/README.txt
+++ b/sonar-server/src/main/webapp/WEB-INF/db/migrate/README.txt
@@ -3,7 +3,7 @@ HOW TO ADD A MIGRATION
* Jump some versions when adding the first Ruby on Rails migration of a new sonar version. For example if sonar 2.10 is 193, then sonar 2.11 should start at 200.
* Complete the DDL files for Derby :
+ sonar-core/src/main/resources/org/sonar/persistence/schema-derby.ddl
- + sonar-core/src/main/resources/org/sonar/persistence/rows-derby.sql :
+ + sonar-core/src/main/resources/org/sonar/core/persistence/rows-derby.sql :
- add "INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('<THE MIGRATION ID>')"
* Update the migration id defined in sonar-core/src/main/java/org/sonar/jpa/entity/SchemaMigration.java
* If a table is addded or removed, then edit sonar-core/src/main/java/org/sonar/persistence/DatabaseUtils.java
diff --git a/sonar-server/src/test/java/org/sonar/server/startup/IndexProjectsTest.java b/sonar-server/src/test/java/org/sonar/server/startup/IndexProjectsTest.java
index 3676c081dd6..b3d1f4692a4 100644
--- a/sonar-server/src/test/java/org/sonar/server/startup/IndexProjectsTest.java
+++ b/sonar-server/src/test/java/org/sonar/server/startup/IndexProjectsTest.java
@@ -21,9 +21,8 @@ package org.sonar.server.startup;
import org.junit.Test;
import org.sonar.api.platform.ServerUpgradeStatus;
+import org.sonar.core.resource.ResourceIndexer;
import org.sonar.jpa.entity.SchemaMigration;
-import org.sonar.core.resource.ResourceIndexerDao;
-import org.sonar.core.resource.ResourceIndexerFilter;
import static org.mockito.Mockito.*;
@@ -31,39 +30,39 @@ public class IndexProjectsTest {
@Test
public void doNotIndexOnFreshInstalls() {
- ResourceIndexerDao indexerDao = mock(ResourceIndexerDao.class);
+ ResourceIndexer indexer = mock(ResourceIndexer.class);
ServerUpgradeStatus status = mock(ServerUpgradeStatus.class);
when(status.isUpgraded()).thenReturn(false);
when(status.isFreshInstall()).thenReturn(true);
- new IndexProjects(status, indexerDao).start();
+ new IndexProjects(status, indexer).start();
- verifyZeroInteractions(indexerDao);
+ verifyZeroInteractions(indexer);
}
@Test
public void doNotIndexOnUpgradesSince213() {
- ResourceIndexerDao indexerDao = mock(ResourceIndexerDao.class);
+ ResourceIndexer indexer = mock(ResourceIndexer.class);
ServerUpgradeStatus status = mock(ServerUpgradeStatus.class);
when(status.isUpgraded()).thenReturn(true);
when(status.isFreshInstall()).thenReturn(false);
when(status.getInitialDbVersion()).thenReturn(SchemaMigration.VERSION_2_13 + 10);
- new IndexProjects(status, indexerDao).start();
+ new IndexProjects(status, indexer).start();
- verifyZeroInteractions(indexerDao);
+ verifyZeroInteractions(indexer);
}
@Test
public void doIndexOnUpgradeBefore213() {
- ResourceIndexerDao indexerDao = mock(ResourceIndexerDao.class);
+ ResourceIndexer indexer = mock(ResourceIndexer.class);
ServerUpgradeStatus status = mock(ServerUpgradeStatus.class);
when(status.isUpgraded()).thenReturn(true);
when(status.isFreshInstall()).thenReturn(false);
when(status.getInitialDbVersion()).thenReturn(SchemaMigration.VERSION_2_13 - 10);
- new IndexProjects(status, indexerDao).start();
+ new IndexProjects(status, indexer).start();
- verify(indexerDao).index(any(ResourceIndexerFilter.class));
+ verify(indexer).indexAll();
}
}