Search in sources :

Example 1 with SystemConfig

use of com.google.gerrit.reviewdb.client.SystemConfig in project gerrit by GerritCodeReview.

the class SchemaUpdaterTest method update.

@Test
public void update() throws OrmException, FileNotFoundException, IOException {
    db.create();
    final Path site = Paths.get(UUID.randomUUID().toString());
    final SitePaths paths = new SitePaths(site);
    SchemaUpdater u = Guice.createInjector(new FactoryModule() {

        @Override
        protected void configure() {
            TypeLiteral<SchemaFactory<ReviewDb>> schemaFactory = new TypeLiteral<SchemaFactory<ReviewDb>>() {
            };
            bind(schemaFactory).to(NotesMigrationSchemaFactory.class);
            bind(Key.get(schemaFactory, ReviewDbFactory.class)).toInstance(db);
            bind(SitePaths.class).toInstance(paths);
            Config cfg = new Config();
            cfg.setString("user", null, "name", "Gerrit Code Review");
            cfg.setString("user", null, "email", "gerrit@localhost");
            //
            bind(Config.class).annotatedWith(//
            GerritServerConfig.class).toInstance(cfg);
            //
            bind(PersonIdent.class).annotatedWith(//
            GerritPersonIdent.class).toProvider(GerritPersonIdentProvider.class);
            bind(AllProjectsName.class).toInstance(new AllProjectsName("All-Projects"));
            bind(AllUsersName.class).toInstance(new AllUsersName("All-Users"));
            bind(GitRepositoryManager.class).toInstance(new InMemoryRepositoryManager());
            //
            bind(String.class).annotatedWith(//
            AnonymousCowardName.class).toProvider(AnonymousCowardNameProvider.class);
            bind(DataSourceType.class).to(InMemoryH2Type.class);
            bind(SystemGroupBackend.class);
            install(new ConfigNotesMigration.Module());
        }
    }).getInstance(SchemaUpdater.class);
    for (SchemaVersion s = u.getLatestSchemaVersion(); s.getVersionNbr() > 1; s = s.getPrior()) {
        try {
            assertThat(s.getPrior().getVersionNbr()).named("schema %s has prior version %s. Not true that", s.getVersionNbr(), s.getPrior().getVersionNbr()).isEqualTo(s.getVersionNbr() - 1);
        } catch (ProvisionException e) {
            // version.
            break;
        }
    }
    u.update(new UpdateUI() {

        @Override
        public void message(String msg) {
        }

        @Override
        public boolean yesno(boolean def, String msg) {
            return def;
        }

        @Override
        public boolean isBatch() {
            return true;
        }

        @Override
        public void pruneSchema(StatementExecutor e, List<String> pruneList) throws OrmException {
            for (String sql : pruneList) {
                e.execute(sql);
            }
        }
    });
    db.assertSchemaVersion();
    final SystemConfig sc = db.getSystemConfig();
    assertThat(sc.sitePath).isEqualTo(paths.site_path.toAbsolutePath().toString());
}
Also used : SystemConfig(com.google.gerrit.reviewdb.client.SystemConfig) InMemoryRepositoryManager(com.google.gerrit.testutil.InMemoryRepositoryManager) SystemConfig(com.google.gerrit.reviewdb.client.SystemConfig) Config(org.eclipse.jgit.lib.Config) GerritServerConfig(com.google.gerrit.server.config.GerritServerConfig) SitePaths(com.google.gerrit.server.config.SitePaths) StatementExecutor(com.google.gwtorm.server.StatementExecutor) ProvisionException(com.google.inject.ProvisionException) TypeLiteral(com.google.inject.TypeLiteral) OrmException(com.google.gwtorm.server.OrmException) ReviewDb(com.google.gerrit.reviewdb.server.ReviewDb) GerritPersonIdent(com.google.gerrit.server.GerritPersonIdent) Path(java.nio.file.Path) SchemaFactory(com.google.gwtorm.server.SchemaFactory) GerritServerConfig(com.google.gerrit.server.config.GerritServerConfig) AnonymousCowardName(com.google.gerrit.server.config.AnonymousCowardName) AllProjectsName(com.google.gerrit.server.config.AllProjectsName) FactoryModule(com.google.gerrit.extensions.config.FactoryModule) GitRepositoryManager(com.google.gerrit.server.git.GitRepositoryManager) ConfigNotesMigration(com.google.gerrit.server.notedb.ConfigNotesMigration) AllUsersName(com.google.gerrit.server.config.AllUsersName) Test(org.junit.Test)

Example 2 with SystemConfig

use of com.google.gerrit.reviewdb.client.SystemConfig in project gerrit by GerritCodeReview.

the class SchemaCreator method initSystemConfig.

private SystemConfig initSystemConfig(ReviewDb db) throws OrmException {
    SystemConfig s = SystemConfig.create();
    try {
        s.sitePath = site_path.toRealPath().normalize().toString();
    } catch (IOException e) {
        s.sitePath = site_path.toAbsolutePath().normalize().toString();
    }
    db.systemConfig().insert(Collections.singleton(s));
    return s;
}
Also used : SystemConfig(com.google.gerrit.reviewdb.client.SystemConfig) IOException(java.io.IOException)

Example 3 with SystemConfig

use of com.google.gerrit.reviewdb.client.SystemConfig in project gerrit by GerritCodeReview.

the class SchemaUpdater method updateSystemConfig.

private void updateSystemConfig(final ReviewDb db) throws OrmException {
    final SystemConfig sc = db.systemConfig().get(new SystemConfig.Key());
    if (sc == null) {
        throw new OrmException("No record in system_config table");
    }
    try {
        sc.sitePath = site.site_path.toRealPath().normalize().toString();
    } catch (IOException e) {
        sc.sitePath = site.site_path.toAbsolutePath().normalize().toString();
    }
    db.systemConfig().update(Collections.singleton(sc));
}
Also used : SystemConfig(com.google.gerrit.reviewdb.client.SystemConfig) OrmException(com.google.gwtorm.server.OrmException) IOException(java.io.IOException)

Aggregations

SystemConfig (com.google.gerrit.reviewdb.client.SystemConfig)3 OrmException (com.google.gwtorm.server.OrmException)2 IOException (java.io.IOException)2 FactoryModule (com.google.gerrit.extensions.config.FactoryModule)1 ReviewDb (com.google.gerrit.reviewdb.server.ReviewDb)1 GerritPersonIdent (com.google.gerrit.server.GerritPersonIdent)1 AllProjectsName (com.google.gerrit.server.config.AllProjectsName)1 AllUsersName (com.google.gerrit.server.config.AllUsersName)1 AnonymousCowardName (com.google.gerrit.server.config.AnonymousCowardName)1 GerritServerConfig (com.google.gerrit.server.config.GerritServerConfig)1 SitePaths (com.google.gerrit.server.config.SitePaths)1 GitRepositoryManager (com.google.gerrit.server.git.GitRepositoryManager)1 ConfigNotesMigration (com.google.gerrit.server.notedb.ConfigNotesMigration)1 InMemoryRepositoryManager (com.google.gerrit.testutil.InMemoryRepositoryManager)1 SchemaFactory (com.google.gwtorm.server.SchemaFactory)1 StatementExecutor (com.google.gwtorm.server.StatementExecutor)1 ProvisionException (com.google.inject.ProvisionException)1 TypeLiteral (com.google.inject.TypeLiteral)1 Path (java.nio.file.Path)1 Config (org.eclipse.jgit.lib.Config)1