Add support for Oracle database

Change-Id: I2695c6df6e9eafeeae8cd68a84ef74f5e2c361ac
This commit is contained in:
David Ostrovsky
2013-07-14 14:37:17 +02:00
parent 2b061ea088
commit 399793f4a8
8 changed files with 135 additions and 1 deletions

View File

@@ -35,6 +35,8 @@ public class DatabaseConfigModule extends AbstractModule {
Names.named("jdbc")).to(JDBCInitializer.class);
bind(DatabaseConfigInitializer.class).annotatedWith(
Names.named("mysql")).to(MySqlInitializer.class);
bind(DatabaseConfigInitializer.class).annotatedWith(
Names.named("oracle")).to(OracleInitializer.class);
bind(DatabaseConfigInitializer.class).annotatedWith(
Names.named("postgresql")).to(PostgreSQLInitializer.class);
}

View File

@@ -78,7 +78,9 @@ class InitDatabase implements InitStep {
Names.named(dbType.toLowerCase())));
if (dci instanceof MySqlInitializer) {
libraries.mysqlDriver.downloadRequired();
libraries.mysqlDriver.downloadRequired();
} else if (dci instanceof OracleInitializer) {
libraries.oracleDriver.downloadRequired();
}
dci.initConfig(database);

View File

@@ -39,6 +39,7 @@ class Libraries {
/* final */LibraryDownloader bouncyCastle;
/* final */LibraryDownloader mysqlDriver;
/* final */LibraryDownloader oracleDriver;
@Inject
Libraries(final Provider<LibraryDownloader> downloadProvider) {

View File

@@ -0,0 +1,31 @@
// Copyright (C) 2013 The Android Open Source Project
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package com.google.gerrit.pgm.init;
import static com.google.gerrit.pgm.init.InitUtil.username;
public class OracleInitializer implements DatabaseConfigInitializer {
@Override
public void initConfig(Section databaseSection) {
final String defPort = "1521";
databaseSection.string("Server hostname", "hostname", "localhost");
databaseSection.string("Server port", "port", defPort, false);
databaseSection.string("Instance name", "instance", "xe");
databaseSection.string("Database username", "username", username());
databaseSection.password("username", "password");
}
}