summaryrefslogtreecommitdiffstats
path: root/gerrit-server/src/main/java/com/google/gerrit/server/schema/Schema_115.java
diff options
context:
space:
mode:
Diffstat (limited to 'gerrit-server/src/main/java/com/google/gerrit/server/schema/Schema_115.java')
-rw-r--r--gerrit-server/src/main/java/com/google/gerrit/server/schema/Schema_115.java209
1 files changed, 0 insertions, 209 deletions
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/schema/Schema_115.java b/gerrit-server/src/main/java/com/google/gerrit/server/schema/Schema_115.java
deleted file mode 100644
index 3c6a50e840..0000000000
--- a/gerrit-server/src/main/java/com/google/gerrit/server/schema/Schema_115.java
+++ /dev/null
@@ -1,209 +0,0 @@
-// Copyright (C) 2015 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.server.schema;
-
-import static com.google.gerrit.server.config.ConfigUtil.storeSection;
-
-import com.google.common.base.Preconditions;
-import com.google.common.base.Strings;
-import com.google.gerrit.extensions.client.DiffPreferencesInfo;
-import com.google.gerrit.extensions.client.DiffPreferencesInfo.Whitespace;
-import com.google.gerrit.extensions.client.Theme;
-import com.google.gerrit.reviewdb.client.Account;
-import com.google.gerrit.reviewdb.server.ReviewDb;
-import com.google.gerrit.server.GerritPersonIdent;
-import com.google.gerrit.server.account.VersionedAccountPreferences;
-import com.google.gerrit.server.config.AllUsersName;
-import com.google.gerrit.server.extensions.events.GitReferenceUpdated;
-import com.google.gerrit.server.git.GitRepositoryManager;
-import com.google.gerrit.server.git.MetaDataUpdate;
-import com.google.gerrit.server.git.UserConfigSections;
-import com.google.gerrit.server.patch.PatchListKey;
-import com.google.gwtorm.jdbc.JdbcSchema;
-import com.google.gwtorm.server.OrmException;
-import com.google.inject.Inject;
-import com.google.inject.Provider;
-import java.io.IOException;
-import java.sql.ResultSet;
-import java.sql.ResultSetMetaData;
-import java.sql.SQLException;
-import java.sql.Statement;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Map;
-import java.util.Set;
-import org.eclipse.jgit.errors.ConfigInvalidException;
-import org.eclipse.jgit.lib.BatchRefUpdate;
-import org.eclipse.jgit.lib.NullProgressMonitor;
-import org.eclipse.jgit.lib.PersonIdent;
-import org.eclipse.jgit.lib.Repository;
-import org.eclipse.jgit.revwalk.RevWalk;
-
-public class Schema_115 extends SchemaVersion {
- private final GitRepositoryManager mgr;
- private final AllUsersName allUsersName;
- private final PersonIdent serverUser;
-
- @Inject
- Schema_115(
- Provider<Schema_114> prior,
- GitRepositoryManager mgr,
- AllUsersName allUsersName,
- @GerritPersonIdent PersonIdent serverUser) {
- super(prior);
- this.mgr = mgr;
- this.allUsersName = allUsersName;
- this.serverUser = serverUser;
- }
-
- @Override
- protected void migrateData(ReviewDb db, UpdateUI ui) throws OrmException, SQLException {
- Map<Account.Id, DiffPreferencesInfo> imports = new HashMap<>();
- try (Statement stmt = ((JdbcSchema) db).getConnection().createStatement();
- ResultSet rs = stmt.executeQuery("SELECT * FROM account_diff_preferences")) {
- Set<String> availableColumns = getColumns(rs);
- while (rs.next()) {
- Account.Id accountId = new Account.Id(rs.getInt("id"));
- DiffPreferencesInfo prefs = new DiffPreferencesInfo();
- if (availableColumns.contains("context")) {
- prefs.context = (int) rs.getShort("context");
- }
- if (availableColumns.contains("expand_all_comments")) {
- prefs.expandAllComments = toBoolean(rs.getString("expand_all_comments"));
- }
- if (availableColumns.contains("hide_line_numbers")) {
- prefs.hideLineNumbers = toBoolean(rs.getString("hide_line_numbers"));
- }
- if (availableColumns.contains("hide_top_menu")) {
- prefs.hideTopMenu = toBoolean(rs.getString("hide_top_menu"));
- }
- if (availableColumns.contains("ignore_whitespace")) {
- // Enum with char as value
- prefs.ignoreWhitespace = toWhitespace(rs.getString("ignore_whitespace"));
- }
- if (availableColumns.contains("intraline_difference")) {
- prefs.intralineDifference = toBoolean(rs.getString("intraline_difference"));
- }
- if (availableColumns.contains("line_length")) {
- prefs.lineLength = rs.getInt("line_length");
- }
- if (availableColumns.contains("manual_review")) {
- prefs.manualReview = toBoolean(rs.getString("manual_review"));
- }
- if (availableColumns.contains("render_entire_file")) {
- prefs.renderEntireFile = toBoolean(rs.getString("render_entire_file"));
- }
- if (availableColumns.contains("retain_header")) {
- prefs.retainHeader = toBoolean(rs.getString("retain_header"));
- }
- if (availableColumns.contains("show_line_endings")) {
- prefs.showLineEndings = toBoolean(rs.getString("show_line_endings"));
- }
- if (availableColumns.contains("show_tabs")) {
- prefs.showTabs = toBoolean(rs.getString("show_tabs"));
- }
- if (availableColumns.contains("show_whitespace_errors")) {
- prefs.showWhitespaceErrors = toBoolean(rs.getString("show_whitespace_errors"));
- }
- if (availableColumns.contains("skip_deleted")) {
- prefs.skipDeleted = toBoolean(rs.getString("skip_deleted"));
- }
- if (availableColumns.contains("skip_uncommented")) {
- prefs.skipUncommented = toBoolean(rs.getString("skip_uncommented"));
- }
- if (availableColumns.contains("syntax_highlighting")) {
- prefs.syntaxHighlighting = toBoolean(rs.getString("syntax_highlighting"));
- }
- if (availableColumns.contains("tab_size")) {
- prefs.tabSize = rs.getInt("tab_size");
- }
- if (availableColumns.contains("theme")) {
- // Enum with name as values; can be null
- prefs.theme = toTheme(rs.getString("theme"));
- }
- if (availableColumns.contains("hide_empty_pane")) {
- prefs.hideEmptyPane = toBoolean(rs.getString("hide_empty_pane"));
- }
- if (availableColumns.contains("auto_hide_diff_table_header")) {
- prefs.autoHideDiffTableHeader = toBoolean(rs.getString("auto_hide_diff_table_header"));
- }
- imports.put(accountId, prefs);
- }
- }
-
- if (imports.isEmpty()) {
- return;
- }
-
- try (Repository git = mgr.openRepository(allUsersName);
- RevWalk rw = new RevWalk(git)) {
- BatchRefUpdate bru = git.getRefDatabase().newBatchUpdate();
- for (Map.Entry<Account.Id, DiffPreferencesInfo> e : imports.entrySet()) {
- try (MetaDataUpdate md =
- new MetaDataUpdate(GitReferenceUpdated.DISABLED, allUsersName, git, bru)) {
- md.getCommitBuilder().setAuthor(serverUser);
- md.getCommitBuilder().setCommitter(serverUser);
- VersionedAccountPreferences p = VersionedAccountPreferences.forUser(e.getKey());
- p.load(md);
- storeSection(
- p.getConfig(),
- UserConfigSections.DIFF,
- null,
- e.getValue(),
- DiffPreferencesInfo.defaults());
- p.commit(md);
- }
- }
-
- bru.execute(rw, NullProgressMonitor.INSTANCE);
- } catch (ConfigInvalidException | IOException ex) {
- throw new OrmException(ex);
- }
- }
-
- private Set<String> getColumns(ResultSet rs) throws SQLException {
- ResultSetMetaData metaData = rs.getMetaData();
- int columnCount = metaData.getColumnCount();
- Set<String> columns = new HashSet<>(columnCount);
- for (int i = 1; i <= columnCount; i++) {
- columns.add(metaData.getColumnLabel(i).toLowerCase());
- }
- return columns;
- }
-
- private static Theme toTheme(String v) {
- if (v == null) {
- return Theme.DEFAULT;
- }
- return Theme.valueOf(v);
- }
-
- private static Whitespace toWhitespace(String v) {
- Preconditions.checkNotNull(v);
- if (v.isEmpty()) {
- return Whitespace.IGNORE_NONE;
- }
- Whitespace r = PatchListKey.WHITESPACE_TYPES.inverse().get(v.charAt(0));
- if (r == null) {
- throw new IllegalArgumentException("Cannot find Whitespace type for: " + v);
- }
- return r;
- }
-
- private static boolean toBoolean(String v) {
- Preconditions.checkState(!Strings.isNullOrEmpty(v));
- return v.equals("Y");
- }
-}