diff options
Diffstat (limited to 'sonar-server')
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(); } } |