Merge branch 'stable-2.11' * stable-2.11: ConfigureProjectStep: Use Provider for MetaDataUpdate.User Build with API version 2.11.7 Remove VERSION Change-Id: Ib7c7d715437659dd180880d5b7bce1d184ddd1b6 Signed-off-by: Edwin Kempin <ekempin@google.com>
diff --git a/BUCK b/BUCK index e37deb4..11c5585 100644 --- a/BUCK +++ b/BUCK
@@ -15,7 +15,7 @@ manifest_entries = [ 'Gerrit-PluginName: importer', 'Gerrit-ApiType: plugin', - 'Gerrit-ApiVersion: 2.11.2', + 'Gerrit-ApiVersion: 2.12-SNAPSHOT', 'Gerrit-Module: com.googlesource.gerrit.plugins.importer.Module', 'Gerrit-SshModule: com.googlesource.gerrit.plugins.importer.SshModule', 'Gerrit-HttpModule: com.googlesource.gerrit.plugins.importer.HttpModule',
diff --git a/lib/gerrit/BUCK b/lib/gerrit/BUCK index e48e352..f1ab768 100644 --- a/lib/gerrit/BUCK +++ b/lib/gerrit/BUCK
@@ -1,12 +1,12 @@ include_defs('//bucklets/maven_jar.bucklet') -VER = '2.11.7' +VER = '2.12' REPO = MAVEN_CENTRAL maven_jar( name = 'plugin-api', id = 'com.google.gerrit:gerrit-plugin-api:' + VER, - sha1 = 'e49e930c5c4ce74fc2c4c1cde1ddfb3ff77d0d63', + sha1 = '8ce1f6e65078bbcf03a1758f96b3ebca19b7fe3c', attach_source = False, repository = REPO, license = 'Apache2.0', @@ -15,7 +15,7 @@ maven_jar( name = 'gwtui-api', id = 'com.google.gerrit:gerrit-plugin-gwtui:' + VER, - sha1 = '1dc70f829c0b5310141dd9bd12e1bafcda48724f', + sha1 = 'a7e7d82746b847678022242ec9eb44d1f16e8639', attach_source = False, repository = REPO, license = 'Apache2.0',
diff --git a/pom.xml b/pom.xml deleted file mode 100644 index 5b305a4..0000000 --- a/pom.xml +++ /dev/null
@@ -1,139 +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. ---> -<project xmlns="http://maven.apache.org/POM/4.0.0" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> - <modelVersion>4.0.0</modelVersion> - - <groupId>com.googlesource.gerrit.plugins.importer</groupId> - <artifactId>importer</artifactId> - <packaging>jar</packaging> - <version>2.11.7</version> - <name>importer</name> - - <properties> - <Gerrit-ApiType>plugin</Gerrit-ApiType> - <Gerrit-ApiVersion>${project.version}</Gerrit-ApiVersion> - </properties> - - <build> - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-jar-plugin</artifactId> - <version>2.4</version> - <configuration> - <archive> - <manifestEntries> - <Gerrit-PluginName>importer</Gerrit-PluginName> - <Gerrit-Module>com.googlesource.gerrit.plugins.importer.Module</Gerrit-Module> - <Gerrit-SshModule>com.googlesource.gerrit.plugins.importer.SshModule</Gerrit-SshModule> - <Gerrit-HttpModule>com.googlesource.gerrit.plugins.importer.HttpModule</Gerrit-HttpModule> - - <Implementation-Vendor>Gerrit Code Review</Implementation-Vendor> - <Implementation-URL>http://code.google.com/p/gerrit/</Implementation-URL> - - <Implementation-Title>${Gerrit-ApiType} ${project.artifactId}</Implementation-Title> - <Implementation-Version>${project.version}</Implementation-Version> - - <Gerrit-ApiType>${Gerrit-ApiType}</Gerrit-ApiType> - <Gerrit-ApiVersion>${Gerrit-ApiVersion}</Gerrit-ApiVersion> - </manifestEntries> - </archive> - </configuration> - </plugin> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-compiler-plugin</artifactId> - <version>2.3.2</version> - <configuration> - <source>1.7</source> - <target>1.7</target> - <encoding>UTF-8</encoding> - </configuration> - </plugin> - - <plugin> - <groupId>org.codehaus.mojo</groupId> - <artifactId>gwt-maven-plugin</artifactId> - <version>2.7.0</version> - <configuration> - <module>com.googlesource.gerrit.plugins.importer.Importer</module> - <disableClassMetadata>true</disableClassMetadata> - <disableCastChecking>true</disableCastChecking> - <webappDirectory>${project.build.directory}/classes/static</webappDirectory> - </configuration> - <executions> - <execution> - <goals> - <goal>compile</goal> - </goals> - </execution> - </executions> - </plugin> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-shade-plugin</artifactId> - <version>2.3</version> - <configuration> - <promoteTransitiveDependencies>true</promoteTransitiveDependencies> - <createDependencyReducedPom>false</createDependencyReducedPom> - </configuration> - <executions> - <execution> - <phase>package</phase> - <goals> - <goal>shade</goal> - </goals> - </execution> - </executions> - </plugin> - </plugins> - </build> - - <dependencies> - <dependency> - <groupId>com.google.gerrit</groupId> - <artifactId>gerrit-${Gerrit-ApiType}-api</artifactId> - <version>${Gerrit-ApiVersion}</version> - <scope>provided</scope> - </dependency> - <dependency> - <groupId>com.google.gerrit</groupId> - <artifactId>gerrit-plugin-gwtui</artifactId> - <version>${Gerrit-ApiVersion}</version> - <scope>provided</scope> - </dependency> - <dependency> - <groupId>com.google.gwt</groupId> - <artifactId>gwt-user</artifactId> - <version>2.7.0</version> - <scope>provided</scope> - </dependency> - <dependency> - <groupId>org.apache.httpcomponents</groupId> - <artifactId>httpclient</artifactId> - <version>4.3.4</version> - </dependency> - <dependency> - <groupId>org.apache.httpcomponents</groupId> - <artifactId>httpcore</artifactId> - <version>4.3.2</version> - </dependency> - </dependencies> -</project>
diff --git a/src/main/java/com/googlesource/gerrit/plugins/importer/AccountUtil.java b/src/main/java/com/googlesource/gerrit/plugins/importer/AccountUtil.java index e87ec1d..90147a0 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/importer/AccountUtil.java +++ b/src/main/java/com/googlesource/gerrit/plugins/importer/AccountUtil.java
@@ -15,20 +15,16 @@ package com.googlesource.gerrit.plugins.importer; import com.google.gerrit.common.errors.NoSuchAccountException; +import com.google.gerrit.extensions.api.groups.GroupApi; import com.google.gerrit.extensions.common.AccountInfo; import com.google.gerrit.extensions.restapi.BadRequestException; -import com.google.gerrit.extensions.restapi.ResourceConflictException; +import com.google.gerrit.extensions.restapi.ResourceNotFoundException; +import com.google.gerrit.extensions.restapi.RestApiException; import com.google.gerrit.extensions.restapi.TopLevelResource; -import com.google.gerrit.extensions.restapi.UnprocessableEntityException; import com.google.gerrit.reviewdb.client.Account; -import com.google.gerrit.reviewdb.client.AccountGroup; -import com.google.gerrit.reviewdb.client.AccountGroupMember; -import com.google.gerrit.reviewdb.client.AccountGroupName; import com.google.gerrit.reviewdb.client.AccountSshKey; import com.google.gerrit.reviewdb.client.AuthType; import com.google.gerrit.reviewdb.server.ReviewDb; -import com.google.gerrit.server.GerritPersonIdent; -import com.google.gerrit.server.IdentifiedUser; import com.google.gerrit.server.account.AccountCache; import com.google.gerrit.server.account.AccountException; import com.google.gerrit.server.account.AccountManager; @@ -36,21 +32,17 @@ import com.google.gerrit.server.account.AuthRequest; import com.google.gerrit.server.account.CreateAccount; import com.google.gerrit.server.account.GetSshKeys.SshKeyInfo; -import com.google.gerrit.server.account.GroupCache; -import com.google.gerrit.server.account.GroupUUID; import com.google.gerrit.server.config.AuthConfig; import com.google.gwtorm.server.OrmException; import com.google.inject.Inject; import com.google.inject.Provider; import com.google.inject.Singleton; -import org.eclipse.jgit.lib.PersonIdent; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.io.IOException; import java.util.Collection; -import java.util.Collections; import java.util.HashSet; import java.util.List; import java.util.Objects; @@ -60,15 +52,11 @@ private static Logger log = LoggerFactory.getLogger(AccountUtil.class); private static final String IMPORTED_USERS = "Imported Users"; - private static final AccountGroup.NameKey IMPORTED_USERS_NAME = - new AccountGroup.NameKey(IMPORTED_USERS); private final AccountCache accountCache; private final AccountManager accountManager; private final AuthType authType; - private final IdentifiedUser currentUser; - private final GroupCache groupCache; - private final PersonIdent serverIdent; + private final com.google.gerrit.extensions.api.GerritApi gApi; private final Provider<ReviewDb> db; @Inject @@ -79,22 +67,18 @@ AccountCache accountCache, AccountManager accountManager, AuthConfig authConfig, - GroupCache groupCache, - IdentifiedUser currentUser, - @GerritPersonIdent PersonIdent serverIdent, + com.google.gerrit.extensions.api.GerritApi gApi, Provider<ReviewDb> db) { this.accountCache = accountCache; this.accountManager = accountManager; this.authType = authConfig.getAuthType(); - this.currentUser = currentUser; this.db = db; - this.groupCache = groupCache; - this.serverIdent = serverIdent; + this.gApi = gApi; } Account.Id resolveUser(GerritApi api, AccountInfo acc) - throws NoSuchAccountException, BadRequestException, IOException, - OrmException, ResourceConflictException, UnprocessableEntityException { + throws NoSuchAccountException, IOException, OrmException, + RestApiException { if (acc.username == null) { throw new NoSuchAccountException(String.format( "User %s <%s> (%s) doesn't have a username and cannot be looked up.", @@ -121,9 +105,8 @@ } private Account.Id createAccountByLdapAndAddSshKeys(GerritApi api, - AccountInfo acc) throws NoSuchAccountException, BadRequestException, - IOException, OrmException, ResourceConflictException, - UnprocessableEntityException { + AccountInfo acc) throws NoSuchAccountException, IOException, + OrmException, RestApiException { if (!acc.username.matches(Account.USER_NAME_PATTERN)) { throw new NoSuchAccountException(String.format("User %s not found", acc.username)); @@ -160,8 +143,7 @@ } private Account.Id createLocalUser(AccountInfo acc) - throws BadRequestException, ResourceConflictException, - UnprocessableEntityException, OrmException { + throws OrmException, RestApiException { CreateAccount.Input input = new CreateAccount.Input(); log.info(String.format("User '%s' not found", acc.username)); String username = acc.username; @@ -176,42 +158,19 @@ Account.Id userId = new Account.Id(accInfo._accountId); Account account = accountCache.get(userId).getAccount(); - account.setActive(false); addToImportedUsersGroup(userId); + account.setActive(false); accountCache.evict(userId); return userId; } - private void addToImportedUsersGroup(Account.Id id) throws OrmException { - AccountGroup group = getImportedUsersGroup(); - AccountGroupMember member = - new AccountGroupMember(new AccountGroupMember.Key(id, group.getId())); - db.get().accountGroupMembers().insert(Collections.singleton(member)); - } - - private AccountGroup getImportedUsersGroup() throws OrmException { - AccountGroup accGroup = groupCache.get(IMPORTED_USERS_NAME); - if (accGroup == null) { - accGroup = createImportedUsersGroup(); + private void addToImportedUsersGroup(Account.Id id) throws RestApiException { + GroupApi importedUsers; + try { + importedUsers = gApi.groups().id(IMPORTED_USERS); + } catch (ResourceNotFoundException e) { + importedUsers = gApi.groups().create(IMPORTED_USERS); } - return accGroup; - } - - private AccountGroup createImportedUsersGroup() throws OrmException { - AccountGroup.Id groupId = new AccountGroup.Id(db.get().nextAccountGroupId()); - AccountGroup.UUID uuid = - GroupUUID.make( - IMPORTED_USERS, - currentUser.newCommitterIdent( - serverIdent.getWhen(), - serverIdent.getTimeZone())); - AccountGroup group = new AccountGroup(IMPORTED_USERS_NAME, groupId, uuid); - group.setDescription(IMPORTED_USERS); - - db.get().accountGroupNames() - .insert(Collections.singleton(new AccountGroupName(group))); - db.get().accountGroups().insert(Collections.singleton(group)); - groupCache.onCreateGroup(IMPORTED_USERS_NAME); - return group; + importedUsers.addMembers(Integer.toString(id.get())); } }
diff --git a/src/main/java/com/googlesource/gerrit/plugins/importer/AddApprovalsStep.java b/src/main/java/com/googlesource/gerrit/plugins/importer/AddApprovalsStep.java index a9eb69b..4477031 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/importer/AddApprovalsStep.java +++ b/src/main/java/com/googlesource/gerrit/plugins/importer/AddApprovalsStep.java
@@ -22,9 +22,7 @@ import com.google.gerrit.extensions.common.ApprovalInfo; import com.google.gerrit.extensions.common.ChangeInfo; import com.google.gerrit.extensions.common.LabelInfo; -import com.google.gerrit.extensions.restapi.BadRequestException; -import com.google.gerrit.extensions.restapi.ResourceConflictException; -import com.google.gerrit.extensions.restapi.UnprocessableEntityException; +import com.google.gerrit.extensions.restapi.RestApiException; import com.google.gerrit.reviewdb.client.Account; import com.google.gerrit.reviewdb.client.Change; import com.google.gerrit.reviewdb.client.PatchSetApproval; @@ -83,8 +81,7 @@ } void add(GerritApi api) throws OrmException, NoSuchChangeException, IOException, - NoSuchAccountException, BadRequestException, ResourceConflictException, - UnprocessableEntityException{ + NoSuchAccountException, RestApiException{ if (resume) { db.patchSetApprovals().delete( db.patchSetApprovals().byChange(change.getId()));
diff --git a/src/main/java/com/googlesource/gerrit/plugins/importer/AddHashtagsStep.java b/src/main/java/com/googlesource/gerrit/plugins/importer/AddHashtagsStep.java index cf91b66..a8de4a2 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/importer/AddHashtagsStep.java +++ b/src/main/java/com/googlesource/gerrit/plugins/importer/AddHashtagsStep.java
@@ -14,24 +14,28 @@ package com.googlesource.gerrit.plugins.importer; +import com.google.gerrit.common.TimeUtil; import com.google.gerrit.extensions.api.changes.HashtagsInput; import com.google.gerrit.extensions.common.ChangeInfo; import com.google.gerrit.extensions.restapi.AuthException; +import com.google.gerrit.extensions.restapi.RestApiException; import com.google.gerrit.reviewdb.client.Change; +import com.google.gerrit.reviewdb.server.ReviewDb; import com.google.gerrit.server.CurrentUser; import com.google.gerrit.server.change.ChangeTriplet; -import com.google.gerrit.server.change.HashtagsUtil; +import com.google.gerrit.server.change.SetHashtagsOp; +import com.google.gerrit.server.git.BatchUpdate; +import com.google.gerrit.server.git.UpdateException; import com.google.gerrit.server.project.ChangeControl; import com.google.gerrit.server.project.NoSuchChangeException; -import com.google.gerrit.server.validators.ValidationException; import com.google.gwtorm.server.OrmException; import com.google.inject.Inject; +import com.google.inject.Provider; import com.google.inject.assistedinject.Assisted; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.io.IOException; import java.util.HashSet; class AddHashtagsStep { @@ -43,42 +47,58 @@ private static final Logger log = LoggerFactory .getLogger(AddHashtagsStep.class); - private final HashtagsUtil hashtagsUtil; private final CurrentUser currentUser; private final ChangeControl.GenericFactory changeControlFactory; private final Change change; private final ChangeInfo changeInfo; private final boolean resume; + private final Provider<ReviewDb> db; + private final BatchUpdate.Factory batchUpdateFactory; + private final SetHashtagsOp.Factory hashtagsFactory; @Inject - AddHashtagsStep(HashtagsUtil hashtagsUtil, - CurrentUser currentUser, + AddHashtagsStep(CurrentUser currentUser, ChangeControl.GenericFactory changeControlFactory, + Provider<ReviewDb> db, + BatchUpdate.Factory batchUpdateFactory, + SetHashtagsOp.Factory hashtagsFactory, @Assisted Change change, @Assisted ChangeInfo changeInfo, @Assisted boolean resume) { - this.hashtagsUtil = hashtagsUtil; this.currentUser = currentUser; this.changeControlFactory = changeControlFactory; + this.db = db; + this.batchUpdateFactory = batchUpdateFactory; + this.hashtagsFactory = hashtagsFactory; this.change = change; this.changeInfo = changeInfo; this.resume = resume; } - void add() throws IllegalArgumentException, IOException, - ValidationException, OrmException, NoSuchChangeException { + void add() throws IllegalArgumentException, OrmException, + NoSuchChangeException, UpdateException, RestApiException { ChangeControl ctrl = changeControlFactory.controlFor(change, currentUser); try { if (resume) { HashtagsInput input = new HashtagsInput(); input.remove = ctrl.getNotes().load().getHashtags(); - hashtagsUtil.setHashtags(ctrl, input, false, false); + try (BatchUpdate bu = batchUpdateFactory.create(db.get(), + change.getProject(), currentUser, TimeUtil.nowTs())) { + SetHashtagsOp op = hashtagsFactory.create(input); + bu.addOp(change.getId(), op); + bu.execute(); + } } HashtagsInput input = new HashtagsInput(); input.add = new HashSet<>(changeInfo.hashtags); - hashtagsUtil.setHashtags(ctrl, input, false, false); + try (BatchUpdate bu = batchUpdateFactory.create(db.get(), + change.getProject(), currentUser, TimeUtil.nowTs())) { + SetHashtagsOp op = hashtagsFactory.create(input); + bu.addOp(change.getId(), op); + bu.execute(); + } } catch (AuthException e) { log.warn(String.format( "Hashtags cannot be set on change %s because the importing" @@ -88,4 +108,4 @@ ChangeTriplet.format(change), currentUser.getUserName())); } } -} +} \ No newline at end of file
diff --git a/src/main/java/com/googlesource/gerrit/plugins/importer/ConfigureRepositoryStep.java b/src/main/java/com/googlesource/gerrit/plugins/importer/ConfigureRepositoryStep.java index 7a93521..f15a3ec 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/importer/ConfigureRepositoryStep.java +++ b/src/main/java/com/googlesource/gerrit/plugins/importer/ConfigureRepositoryStep.java
@@ -27,7 +27,9 @@ import org.eclipse.jgit.lib.Repository; import org.eclipse.jgit.lib.StoredConfig; -import java.io.File; +import java.nio.file.Files; +import java.nio.file.Path; + import java.io.IOException; @Singleton @@ -35,7 +37,7 @@ static final String R_IMPORTS = "refs/imports/"; - private final File gitDir; + private final Path gitDir; @Inject ConfigureRepositoryStep( @@ -54,7 +56,7 @@ .concat(name.get())); } else { config.setString("remote", "origin", "url", - new File(gitDir, name.get() + ".git").getCanonicalPath()); + this.gitDir.resolve(name.get() + ".git").toString()); } config.setString("remote", "origin", "fetch", "+refs/*:" + R_IMPORTS + "*");
diff --git a/src/main/java/com/googlesource/gerrit/plugins/importer/CopyProject.java b/src/main/java/com/googlesource/gerrit/plugins/importer/CopyProject.java index 1f6a641..6598f30 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/importer/CopyProject.java +++ b/src/main/java/com/googlesource/gerrit/plugins/importer/CopyProject.java
@@ -26,6 +26,7 @@ import com.google.gerrit.server.CurrentUser; import com.google.gerrit.server.account.CapabilityControl; import com.google.gerrit.server.config.ConfigResource; +import com.google.gerrit.server.git.UpdateException; import com.google.gerrit.server.project.NoSuchChangeException; import com.google.gerrit.server.project.ProjectResource; import com.google.gerrit.server.validators.ValidationException; @@ -69,7 +70,8 @@ @Override public ImportStatistic apply(ProjectResource rsrc, Input input) throws RestApiException, OrmException, IOException, ValidationException, - GitAPIException, NoSuchChangeException, NoSuchAccountException { + GitAPIException, NoSuchChangeException, NoSuchAccountException, + UpdateException { if (Strings.isNullOrEmpty(input.name)) { throw new BadRequestException("name is required"); }
diff --git a/src/main/java/com/googlesource/gerrit/plugins/importer/GerritApi.java b/src/main/java/com/googlesource/gerrit/plugins/importer/GerritApi.java index f4d3bda..7d47c79 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/importer/GerritApi.java +++ b/src/main/java/com/googlesource/gerrit/plugins/importer/GerritApi.java
@@ -17,10 +17,10 @@ import com.google.common.base.Objects; import com.google.gerrit.extensions.common.ChangeInfo; import com.google.gerrit.extensions.common.CommentInfo; +import com.google.gerrit.extensions.common.GroupInfo; import com.google.gerrit.extensions.common.ProjectInfo; import com.google.gerrit.extensions.restapi.BadRequestException; import com.google.gerrit.server.account.GetSshKeys.SshKeyInfo; -import com.google.gerrit.server.group.GroupJson.GroupInfo; import com.google.gwtorm.server.OrmException; import com.google.inject.Inject;
diff --git a/src/main/java/com/googlesource/gerrit/plugins/importer/HttpResponse.java b/src/main/java/com/googlesource/gerrit/plugins/importer/HttpResponse.java old mode 100755 new mode 100644
diff --git a/src/main/java/com/googlesource/gerrit/plugins/importer/HttpSession.java b/src/main/java/com/googlesource/gerrit/plugins/importer/HttpSession.java old mode 100755 new mode 100644
diff --git a/src/main/java/com/googlesource/gerrit/plugins/importer/ImportGroup.java b/src/main/java/com/googlesource/gerrit/plugins/importer/ImportGroup.java index f94d734..7825d97 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/importer/ImportGroup.java +++ b/src/main/java/com/googlesource/gerrit/plugins/importer/ImportGroup.java
@@ -19,14 +19,15 @@ import com.google.gerrit.common.errors.NoSuchAccountException; import com.google.gerrit.extensions.annotations.RequiresCapability; import com.google.gerrit.extensions.common.AccountInfo; +import com.google.gerrit.extensions.common.GroupInfo; import com.google.gerrit.extensions.registration.DynamicSet; import com.google.gerrit.extensions.restapi.BadRequestException; import com.google.gerrit.extensions.restapi.MethodNotAllowedException; import com.google.gerrit.extensions.restapi.PreconditionFailedException; import com.google.gerrit.extensions.restapi.ResourceConflictException; import com.google.gerrit.extensions.restapi.Response; +import com.google.gerrit.extensions.restapi.RestApiException; import com.google.gerrit.extensions.restapi.RestModifyView; -import com.google.gerrit.extensions.restapi.UnprocessableEntityException; import com.google.gerrit.reviewdb.client.Account; import com.google.gerrit.reviewdb.client.AccountGroup; import com.google.gerrit.reviewdb.client.AccountGroupById; @@ -39,7 +40,6 @@ import com.google.gerrit.server.account.GroupIncludeCache; import com.google.gerrit.server.config.ConfigResource; import com.google.gerrit.server.config.GerritServerConfig; -import com.google.gerrit.server.group.GroupJson.GroupInfo; import com.google.gerrit.server.validators.GroupCreationValidationListener; import com.google.gerrit.server.validators.ValidationException; import com.google.gwtorm.server.OrmDuplicateKeyException; @@ -114,9 +114,8 @@ @Override public Response<String> apply(ConfigResource rsrc, Input input) - throws ResourceConflictException, PreconditionFailedException, - BadRequestException, NoSuchAccountException, OrmException, IOException, - MethodNotAllowedException, UnprocessableEntityException { + throws NoSuchAccountException, OrmException, IOException, + RestApiException { GroupInfo groupInfo; this.api = apiFactory.create(input.from, input.user, input.pass); groupInfo = api.getGroup(group.get()); @@ -127,9 +126,8 @@ } private void validate(Input input, GroupInfo groupInfo) - throws ResourceConflictException, PreconditionFailedException, - BadRequestException, IOException, OrmException, NoSuchAccountException, - MethodNotAllowedException, UnprocessableEntityException { + throws IOException, OrmException, NoSuchAccountException, + RestApiException { if (!isInternalGroup(new AccountGroup.UUID(groupInfo.id))) { throw new MethodNotAllowedException(String.format( "Group with name %s is not an internal group and cannot be imported", @@ -184,9 +182,7 @@ } private CreateGroupArgs toCreateGroupArgs(GroupInfo groupInfo) - throws IOException, OrmException, BadRequestException, - NoSuchAccountException, ResourceConflictException, - UnprocessableEntityException { + throws IOException, OrmException, NoSuchAccountException, RestApiException { CreateGroupArgs args = new CreateGroupArgs(); args.setGroupName(groupInfo.name); args.groupDescription = groupInfo.description; @@ -199,18 +195,11 @@ initialMembers.add(accountUtil.resolveUser(api, member)); } args.initialMembers = initialMembers; - Set<AccountGroup.UUID> initialGroups = new HashSet<>(); - for (GroupInfo member : groupInfo.includes) { - initialGroups.add(new AccountGroup.UUID(member.id)); - } - args.initialGroups = initialGroups; return args; } private AccountGroup createGroup(Input input, GroupInfo info) throws OrmException, - ResourceConflictException, NoSuchAccountException, BadRequestException, - IOException, PreconditionFailedException, MethodNotAllowedException, - UnprocessableEntityException { + NoSuchAccountException, IOException, RestApiException { String uniqueName = getUniqueGroupName(info.name); if (!info.name.equals(uniqueName)) { log.warn(String.format("Group %s with UUID %s is imported with name %s", @@ -288,8 +277,7 @@ } private void addMembers(AccountGroup.Id groupId, List<AccountInfo> members) - throws OrmException, NoSuchAccountException, BadRequestException, - IOException, ResourceConflictException, UnprocessableEntityException { + throws OrmException, NoSuchAccountException, IOException, RestApiException { List<AccountGroupMember> memberships = new ArrayList<>(); for (AccountInfo member : members) { Account.Id userId = accountUtil.resolveUser(api, member); @@ -306,9 +294,8 @@ private void addGroups(Input input, AccountGroup.Id groupId, String groupName, List<GroupInfo> includedGroups) - throws BadRequestException, ResourceConflictException, - PreconditionFailedException, NoSuchAccountException, OrmException, - IOException, MethodNotAllowedException, UnprocessableEntityException { + throws NoSuchAccountException, OrmException, + IOException, RestApiException { List<AccountGroupById> includeList = new ArrayList<>(); for (GroupInfo includedGroup : includedGroups) { if (isInternalGroup(new AccountGroup.UUID(includedGroup.id))) {
diff --git a/src/main/java/com/googlesource/gerrit/plugins/importer/ImportGroupsStep.java b/src/main/java/com/googlesource/gerrit/plugins/importer/ImportGroupsStep.java index c55971c..bae0813 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/importer/ImportGroupsStep.java +++ b/src/main/java/com/googlesource/gerrit/plugins/importer/ImportGroupsStep.java
@@ -17,11 +17,9 @@ import static com.google.gerrit.reviewdb.client.AccountGroup.isInternalGroup; import com.google.gerrit.common.errors.NoSuchAccountException; -import com.google.gerrit.extensions.restapi.BadRequestException; import com.google.gerrit.extensions.restapi.MethodNotAllowedException; -import com.google.gerrit.extensions.restapi.PreconditionFailedException; import com.google.gerrit.extensions.restapi.ResourceConflictException; -import com.google.gerrit.extensions.restapi.UnprocessableEntityException; +import com.google.gerrit.extensions.restapi.RestApiException; import com.google.gerrit.reviewdb.client.AccountGroup; import com.google.gerrit.reviewdb.client.Project; import com.google.gerrit.server.account.GroupCache; @@ -77,9 +75,8 @@ this.pm = pm; } - void importGroups() throws PreconditionFailedException, BadRequestException, - NoSuchAccountException, OrmException, IOException, - UnprocessableEntityException { + void importGroups() throws NoSuchAccountException, OrmException, IOException, + RestApiException { ProjectConfig projectConfig = projectCache.get(project).getConfig(); Set<AccountGroup.UUID> groupUUIDs = projectConfig.getAllGroupUUIDs(); pm.beginTask("Import Groups", groupUUIDs.size());
diff --git a/src/main/java/com/googlesource/gerrit/plugins/importer/ImportLog.java b/src/main/java/com/googlesource/gerrit/plugins/importer/ImportLog.java index 46b0cbb..38e0f8b 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/importer/ImportLog.java +++ b/src/main/java/com/googlesource/gerrit/plugins/importer/ImportLog.java
@@ -19,23 +19,22 @@ import com.google.gerrit.audit.AuditEvent; import com.google.gerrit.audit.AuditService; import com.google.gerrit.common.TimeUtil; -import com.google.gerrit.extensions.events.LifecycleListener; import com.google.gerrit.extensions.systemstatus.ServerInformation; import com.google.gerrit.reviewdb.client.Project; import com.google.gerrit.server.IdentifiedUser; import com.google.gerrit.server.config.CanonicalWebUrl; +import com.google.gerrit.server.util.PluginLogFile; import com.google.gerrit.server.util.SystemLog; import com.google.inject.Inject; import com.google.inject.Singleton; -import org.apache.log4j.AsyncAppender; import org.apache.log4j.Level; import org.apache.log4j.LogManager; import org.apache.log4j.Logger; import org.apache.log4j.spi.LoggingEvent; @Singleton -class ImportLog implements LifecycleListener { +class ImportLog extends PluginLogFile { private static final String IMPORT_LOG_NAME = "import_log"; private static final Logger log = LogManager.getLogger(IMPORT_LOG_NAME); @@ -46,19 +45,15 @@ public static String TARGET_PROJECT_NAME = "targetProjectName"; public static String ERROR = "error"; - private final SystemLog systemLog; - private final ServerInformation serverInfo; private final AuditService auditService; private final String canonicalWebUrl; - private boolean started; @Inject public ImportLog(SystemLog systemLog, ServerInformation serverInfo, AuditService auditService, @CanonicalWebUrl String canonicalWebUrl) { - this.systemLog = systemLog; - this.serverInfo = serverInfo; + super(systemLog, serverInfo, IMPORT_LOG_NAME, new ImportLogLayout()); this.auditService = auditService; this.canonicalWebUrl = canonicalWebUrl; } @@ -130,31 +125,4 @@ : "OK" )); } - - @Override - public void start() { - if (!started) { - Logger importLogger = LogManager.getLogger(IMPORT_LOG_NAME); - String loggerName = importLogger.getName(); - AsyncAppender asyncAppender = systemLog.createAsyncAppender( - loggerName, new ImportLogLayout()); - importLogger.removeAppender(loggerName); - importLogger.addAppender(asyncAppender); - importLogger.setAdditivity(false); - started = true; - } - } - - @Override - public void stop() { - // stop() is called when the plugin is unloaded or when the server is - // shutdown. Only clean up when the server is shutting down to prevent - // issues when the plugin is reloaded. Otherwise when Gerrit loads the new - // plugin and then unloads the old one, the unload of the old plugin would - // remove the appenders that were just created by the new plugin. This is - // because the logger is static. - if (serverInfo.getState() == ServerInformation.State.SHUTDOWN) { - LogManager.getLogger(log.getName()).removeAllAppenders(); - } - } }
diff --git a/src/main/java/com/googlesource/gerrit/plugins/importer/ImportProject.java b/src/main/java/com/googlesource/gerrit/plugins/importer/ImportProject.java index 4e90374..39d1868 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/importer/ImportProject.java +++ b/src/main/java/com/googlesource/gerrit/plugins/importer/ImportProject.java
@@ -28,6 +28,7 @@ import com.google.gerrit.server.CurrentUser; import com.google.gerrit.server.IdentifiedUser; import com.google.gerrit.server.config.ConfigResource; +import com.google.gerrit.server.git.UpdateException; import com.google.gerrit.server.project.NoSuchChangeException; import com.google.gerrit.server.project.ProjectCache; import com.google.gerrit.server.project.ProjectState; @@ -164,7 +165,8 @@ @Override public ImportStatistic apply(ConfigResource rsrc, Input input) throws RestApiException, OrmException, IOException, ValidationException, - GitAPIException, NoSuchChangeException, NoSuchAccountException { + GitAPIException, NoSuchChangeException, NoSuchAccountException, + UpdateException { if (input == null) { input = new Input(); } @@ -179,8 +181,8 @@ public ResumeImportStatistic resume(String user, String pass, boolean force, File importStatus) throws RestApiException, OrmException, IOException, - ValidationException, GitAPIException, NoSuchChangeException, - NoSuchAccountException { + GitAPIException, NoSuchChangeException, NoSuchAccountException, + UpdateException { LockFile lockFile = lockForImport(); try { ImportProjectInfo info = ImportJson.parse(importStatus); @@ -202,8 +204,8 @@ private ResumeImportStatistic apply(LockFile lockFile, Input input, ImportProjectInfo info) throws RestApiException, OrmException, - IOException, ValidationException, GitAPIException, NoSuchChangeException, - NoSuchAccountException { + IOException, GitAPIException, NoSuchChangeException, + NoSuchAccountException, UpdateException { boolean resume = info != null; api = apiFactory.create(input.from, input.user, input.pass);
diff --git a/src/main/java/com/googlesource/gerrit/plugins/importer/LocalApi.java b/src/main/java/com/googlesource/gerrit/plugins/importer/LocalApi.java index f214b74..c9ec59f 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/importer/LocalApi.java +++ b/src/main/java/com/googlesource/gerrit/plugins/importer/LocalApi.java
@@ -19,6 +19,7 @@ import com.google.gerrit.extensions.client.ListChangesOption; import com.google.gerrit.extensions.common.ChangeInfo; import com.google.gerrit.extensions.common.CommentInfo; +import com.google.gerrit.extensions.common.GroupInfo; import com.google.gerrit.extensions.common.ProjectInfo; import com.google.gerrit.extensions.restapi.AuthException; import com.google.gerrit.extensions.restapi.BadRequestException; @@ -26,21 +27,10 @@ import com.google.gerrit.extensions.restapi.ResourceNotFoundException; import com.google.gerrit.extensions.restapi.RestApiException; import com.google.gerrit.extensions.restapi.TopLevelResource; -import com.google.gerrit.reviewdb.client.AccountGroup; -import com.google.gerrit.reviewdb.client.Change; import com.google.gerrit.server.account.AccountResource; import com.google.gerrit.server.account.AccountsCollection; import com.google.gerrit.server.account.GetSshKeys; import com.google.gerrit.server.account.GetSshKeys.SshKeyInfo; -import com.google.gerrit.server.account.GroupCache; -import com.google.gerrit.server.account.GroupControl; -import com.google.gerrit.server.change.ChangeResource; -import com.google.gerrit.server.change.ChangesCollection; -import com.google.gerrit.server.change.ListComments; -import com.google.gerrit.server.change.RevisionResource; -import com.google.gerrit.server.change.Revisions; -import com.google.gerrit.server.group.GroupJson; -import com.google.gerrit.server.group.GroupJson.GroupInfo; import com.google.gwtorm.server.OrmException; import com.google.inject.Inject; @@ -50,33 +40,15 @@ public class LocalApi implements GerritApi { private final com.google.gerrit.extensions.api.GerritApi gApi; - private final GroupCache groupCache; - private final GroupJson groupJson; - private final GroupControl.Factory groupControlFactory; - private final ChangesCollection changes; - private final Revisions revisions; - private final ListComments listComments; private final AccountsCollection accounts; private final GetSshKeys getSshKeys; @Inject LocalApi( com.google.gerrit.extensions.api.GerritApi gApi, - GroupCache groupCache, - GroupJson groupJson, - GroupControl.Factory groupControlFactory, - ChangesCollection changes, - Revisions revisions, - ListComments listComments, AccountsCollection accounts, GetSshKeys getSshKeys) { this.gApi = gApi; - this.groupCache = groupCache; - this.groupJson = groupJson; - this.groupControlFactory = groupControlFactory; - this.changes = changes; - this.revisions = revisions; - this.listComments = listComments; this.accounts = accounts; this.getSshKeys = getSshKeys; } @@ -120,23 +92,19 @@ @Override public GroupInfo getGroup(String groupName) throws IOException, BadRequestException, OrmException { - AccountGroup group = groupCache.get(new AccountGroup.NameKey(groupName)); - GroupControl groupControl = groupControlFactory.controlFor(group); - if (group == null || !groupControl.isVisible()) { - throw new BadRequestException(String.format("Group %s not found.", - groupName)); + try { + return gApi.groups().id(groupName).get(); + } catch (RestApiException e) { + throw new BadRequestException(e.getMessage()); } - return groupJson.format(groupControl.getGroup()); } @Override public Iterable<CommentInfo> getComments(int changeId, String rev) throws IOException, OrmException, BadRequestException { try { - ChangeResource changeRsrc = changes.parse(new Change.Id(changeId)); - RevisionResource revRsrc = - revisions.parse(changeRsrc, IdString.fromDecoded(rev)); - Map<String, List<CommentInfo>> result = listComments.apply(revRsrc); + Map<String, List<CommentInfo>> result = + gApi.changes().id(changeId).revision(rev).comments(); for (Map.Entry<String, List<CommentInfo>> e : result.entrySet()) { for (CommentInfo i : e.getValue()) { @@ -145,9 +113,7 @@ } return Iterables.concat(result.values()); - } catch (ResourceNotFoundException e) { - return null; - } catch (AuthException e) { + } catch (RestApiException e) { throw new BadRequestException(e.getMessage()); } }
diff --git a/src/main/java/com/googlesource/gerrit/plugins/importer/Module.java b/src/main/java/com/googlesource/gerrit/plugins/importer/Module.java index dcf4099..1cad41f 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/importer/Module.java +++ b/src/main/java/com/googlesource/gerrit/plugins/importer/Module.java
@@ -21,12 +21,12 @@ import com.google.gerrit.extensions.annotations.Exports; import com.google.gerrit.extensions.config.CapabilityDefinition; +import com.google.gerrit.extensions.config.FactoryModule; import com.google.gerrit.extensions.events.LifecycleListener; import com.google.gerrit.extensions.registration.DynamicMap; import com.google.gerrit.extensions.registration.DynamicSet; import com.google.gerrit.extensions.restapi.RestApiModule; import com.google.gerrit.extensions.webui.TopMenu; -import com.google.gerrit.server.config.FactoryModule; import com.google.inject.internal.UniqueAnnotations; class Module extends FactoryModule {
diff --git a/src/main/java/com/googlesource/gerrit/plugins/importer/ProjectCommand.java b/src/main/java/com/googlesource/gerrit/plugins/importer/ProjectCommand.java index e041fb8..f31e160 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/importer/ProjectCommand.java +++ b/src/main/java/com/googlesource/gerrit/plugins/importer/ProjectCommand.java
@@ -20,6 +20,7 @@ import com.google.gerrit.extensions.restapi.RestApiException; import com.google.gerrit.reviewdb.client.Project; import com.google.gerrit.server.config.ConfigResource; +import com.google.gerrit.server.git.UpdateException; import com.google.gerrit.server.project.NoSuchChangeException; import com.google.gerrit.server.validators.ValidationException; import com.google.gerrit.sshd.CommandMetaData; @@ -70,7 +71,7 @@ @Override protected void run() throws OrmException, IOException, UnloggedFailure, ValidationException, GitAPIException, NoSuchChangeException, - NoSuchAccountException { + NoSuchAccountException, UpdateException { ImportProject.Input input = new ImportProject.Input(); input.from = url; input.name = name;
diff --git a/src/main/java/com/googlesource/gerrit/plugins/importer/RemoteApi.java b/src/main/java/com/googlesource/gerrit/plugins/importer/RemoteApi.java old mode 100755 new mode 100644 index 05e757e..5ee6f06 --- a/src/main/java/com/googlesource/gerrit/plugins/importer/RemoteApi.java +++ b/src/main/java/com/googlesource/gerrit/plugins/importer/RemoteApi.java
@@ -20,12 +20,12 @@ import com.google.gerrit.extensions.client.ListChangesOption; import com.google.gerrit.extensions.common.ChangeInfo; import com.google.gerrit.extensions.common.CommentInfo; +import com.google.gerrit.extensions.common.GroupInfo; import com.google.gerrit.extensions.common.ProjectInfo; import com.google.gerrit.extensions.common.RevisionInfo; import com.google.gerrit.extensions.restapi.BadRequestException; import com.google.gerrit.server.OutputFormat; import com.google.gerrit.server.account.GetSshKeys.SshKeyInfo; -import com.google.gerrit.server.group.GroupJson.GroupInfo; import com.google.gson.Gson; import com.google.gson.reflect.TypeToken;
diff --git a/src/main/java/com/googlesource/gerrit/plugins/importer/ReplayChangesStep.java b/src/main/java/com/googlesource/gerrit/plugins/importer/ReplayChangesStep.java index 2630429..3322dfc 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/importer/ReplayChangesStep.java +++ b/src/main/java/com/googlesource/gerrit/plugins/importer/ReplayChangesStep.java
@@ -20,20 +20,17 @@ import com.google.gerrit.common.errors.NoSuchAccountException; import com.google.gerrit.extensions.client.ChangeStatus; import com.google.gerrit.extensions.common.ChangeInfo; -import com.google.gerrit.extensions.restapi.BadRequestException; -import com.google.gerrit.extensions.restapi.ResourceConflictException; import com.google.gerrit.extensions.restapi.RestApiException; -import com.google.gerrit.extensions.restapi.UnprocessableEntityException; import com.google.gerrit.extensions.restapi.Url; import com.google.gerrit.reviewdb.client.Branch; import com.google.gerrit.reviewdb.client.Change; import com.google.gerrit.reviewdb.client.Project; import com.google.gerrit.reviewdb.server.ReviewDb; +import com.google.gerrit.server.git.UpdateException; import com.google.gerrit.server.index.ChangeIndexer; import com.google.gerrit.server.project.NoSuchChangeException; import com.google.gerrit.server.query.change.ChangeData; import com.google.gerrit.server.query.change.InternalChangeQuery; -import com.google.gerrit.server.validators.ValidationException; import com.google.gwtorm.server.OrmException; import com.google.inject.Inject; import com.google.inject.Provider; @@ -131,7 +128,7 @@ void replay() throws IOException, OrmException, NoSuchAccountException, NoSuchChangeException, RestApiException, - ValidationException { + UpdateException { int start = 0; int limit = GlobalCapability.DEFAULT_MAX_QUERY_LIMIT; pm.beginTask("Replay Changes", ProgressMonitor.UNKNOWN); @@ -165,7 +162,7 @@ private void replayChange(RevWalk rw, ChangeInfo c) throws IOException, OrmException, NoSuchAccountException, - NoSuchChangeException, RestApiException, ValidationException { + NoSuchChangeException, RestApiException, IllegalArgumentException, UpdateException { if (c.status == ChangeStatus.DRAFT) { // no import of draft changes return; @@ -222,8 +219,7 @@ } private Change createChange(ChangeInfo c) throws OrmException, - NoSuchAccountException, BadRequestException, IOException, - ResourceConflictException, UnprocessableEntityException { + NoSuchAccountException, IOException, RestApiException { Change.Id changeId = new Change.Id(db.nextChangeId()); Change change =
diff --git a/src/main/java/com/googlesource/gerrit/plugins/importer/ReplayInlineCommentsStep.java b/src/main/java/com/googlesource/gerrit/plugins/importer/ReplayInlineCommentsStep.java index 0dda6e6..0df6a89 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/importer/ReplayInlineCommentsStep.java +++ b/src/main/java/com/googlesource/gerrit/plugins/importer/ReplayInlineCommentsStep.java
@@ -211,7 +211,7 @@ PatchSet ps) throws OrmException { Map<String, PatchLineComment> drafts = Maps.newHashMap(); for (PatchLineComment c : plcUtil.draftByPatchSetAuthor(db, ps.getId(), - ((IdentifiedUser) ctrl.getCurrentUser()).getAccountId(), + ((IdentifiedUser) ctrl.getUser()).getAccountId(), ctrl.getNotes())) { drafts.put(c.getKey().get(), c); }
diff --git a/src/main/java/com/googlesource/gerrit/plugins/importer/ReplayMessagesStep.java b/src/main/java/com/googlesource/gerrit/plugins/importer/ReplayMessagesStep.java index ad29c03..c5ee3c5 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/importer/ReplayMessagesStep.java +++ b/src/main/java/com/googlesource/gerrit/plugins/importer/ReplayMessagesStep.java
@@ -17,9 +17,7 @@ import com.google.gerrit.common.errors.NoSuchAccountException; import com.google.gerrit.extensions.common.ChangeInfo; import com.google.gerrit.extensions.common.ChangeMessageInfo; -import com.google.gerrit.extensions.restapi.BadRequestException; -import com.google.gerrit.extensions.restapi.ResourceConflictException; -import com.google.gerrit.extensions.restapi.UnprocessableEntityException; +import com.google.gerrit.extensions.restapi.RestApiException; import com.google.gerrit.reviewdb.client.Account; import com.google.gerrit.reviewdb.client.Change; import com.google.gerrit.reviewdb.client.ChangeMessage; @@ -77,8 +75,7 @@ } void replay(GerritApi api) throws NoSuchAccountException, NoSuchChangeException, - OrmException, IOException, BadRequestException, ResourceConflictException, - UnprocessableEntityException { + OrmException, IOException, RestApiException { for (ChangeMessageInfo msg : changeInfo.messages) { ChangeMessage.Key msgKey = new ChangeMessage.Key(change.getId(), msg.id); if (resume && db.changeMessages().get(msgKey) != null) {
diff --git a/src/main/java/com/googlesource/gerrit/plugins/importer/ReplayRevisionsStep.java b/src/main/java/com/googlesource/gerrit/plugins/importer/ReplayRevisionsStep.java index 9bce9e1..5adf74f 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/importer/ReplayRevisionsStep.java +++ b/src/main/java/com/googlesource/gerrit/plugins/importer/ReplayRevisionsStep.java
@@ -17,9 +17,7 @@ import com.google.gerrit.common.errors.NoSuchAccountException; import com.google.gerrit.extensions.common.ChangeInfo; import com.google.gerrit.extensions.common.RevisionInfo; -import com.google.gerrit.extensions.restapi.BadRequestException; -import com.google.gerrit.extensions.restapi.ResourceConflictException; -import com.google.gerrit.extensions.restapi.UnprocessableEntityException; +import com.google.gerrit.extensions.restapi.RestApiException; import com.google.gerrit.reviewdb.client.Change; import com.google.gerrit.reviewdb.client.PatchSet; import com.google.gerrit.reviewdb.client.PatchSetInfo; @@ -81,8 +79,8 @@ this.changeInfo = changeInfo; } - void replay(GerritApi api) throws IOException, OrmException, NoSuchAccountException, - BadRequestException, ResourceConflictException, UnprocessableEntityException { + void replay(GerritApi api) throws IOException, OrmException, + NoSuchAccountException, RestApiException { List<RevisionInfo> revisions = new ArrayList<>(changeInfo.revisions.values()); sortRevisionInfoByNumber(revisions); List<PatchSet> patchSets = new ArrayList<>(); @@ -127,13 +125,11 @@ ps.setRevision(new RevId(commit.name())); ps.setDraft(r.draft != null && r.draft); - info = patchSetInfoFactory.get(commit, ps.getId()); + info = patchSetInfoFactory.get(rw, commit, ps.getId()); if (info.getRevId().equals(changeInfo.currentRevision)) { change.setCurrentPatchSet(info); } - ChangeUtil.insertAncestors(db, ps.getId(), commit); - updateRef(repo, ps); }
diff --git a/src/main/java/com/googlesource/gerrit/plugins/importer/RestResponse.java b/src/main/java/com/googlesource/gerrit/plugins/importer/RestResponse.java old mode 100755 new mode 100644
diff --git a/src/main/java/com/googlesource/gerrit/plugins/importer/RestSession.java b/src/main/java/com/googlesource/gerrit/plugins/importer/RestSession.java old mode 100755 new mode 100644
diff --git a/src/main/java/com/googlesource/gerrit/plugins/importer/ResumeCopyProject.java b/src/main/java/com/googlesource/gerrit/plugins/importer/ResumeCopyProject.java index d0fbc85..e040133 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/importer/ResumeCopyProject.java +++ b/src/main/java/com/googlesource/gerrit/plugins/importer/ResumeCopyProject.java
@@ -26,6 +26,7 @@ import com.google.gerrit.server.CurrentUser; import com.google.gerrit.server.account.CapabilityControl; import com.google.gerrit.server.config.ConfigResource; +import com.google.gerrit.server.git.UpdateException; import com.google.gerrit.server.project.NoSuchChangeException; import com.google.gerrit.server.project.ProjectCache; import com.google.gerrit.server.project.ProjectResource; @@ -78,7 +79,8 @@ @Override public ResumeImportStatistic apply(ProjectResource rsrc, Input input) throws RestApiException, IOException, OrmException, ValidationException, - GitAPIException, NoSuchChangeException, NoSuchAccountException { + GitAPIException, NoSuchChangeException, NoSuchAccountException, + UpdateException { ImportProjectResource projectResource = projectsCollection.parse(new ConfigResource(), IdString.fromDecoded(rsrc.getName()));
diff --git a/src/main/java/com/googlesource/gerrit/plugins/importer/ResumeProjectImport.java b/src/main/java/com/googlesource/gerrit/plugins/importer/ResumeProjectImport.java index 457d8f1..b5793b5 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/importer/ResumeProjectImport.java +++ b/src/main/java/com/googlesource/gerrit/plugins/importer/ResumeProjectImport.java
@@ -27,6 +27,7 @@ import com.google.gerrit.server.CurrentUser; import com.google.gerrit.server.account.CapabilityControl; import com.google.gerrit.server.config.ConfigResource; +import com.google.gerrit.server.git.UpdateException; import com.google.gerrit.server.project.NoSuchChangeException; import com.google.gerrit.server.project.ProjectResource; import com.google.gerrit.server.validators.ValidationException; @@ -92,7 +93,8 @@ @Override public ResumeImportStatistic apply(ImportProjectResource rsrc, Input input) throws RestApiException, IOException, OrmException, ValidationException, - GitAPIException, NoSuchChangeException, NoSuchAccountException { + GitAPIException, NoSuchChangeException, NoSuchAccountException, + UpdateException { if (copy) { input.validateResumeCopy(); } else { @@ -129,7 +131,7 @@ public ResumeImportStatistic apply(ProjectResource rsrc, Input input) throws RestApiException, IOException, OrmException, ValidationException, GitAPIException, NoSuchChangeException, - NoSuchAccountException { + NoSuchAccountException, UpdateException { ImportProjectResource projectResource = projectsCollection.parse(new ConfigResource(), IdString.fromDecoded(rsrc.getName()));
diff --git a/src/main/resources/Documentation/build.md b/src/main/resources/Documentation/build.md index f726c6e..a96e116 100644 --- a/src/main/resources/Documentation/build.md +++ b/src/main/resources/Documentation/build.md
@@ -1,7 +1,7 @@ Build ===== -This plugin can be built with Buck or Maven. +This plugin can be built with Buck. Buck ---- @@ -69,15 +69,3 @@ ./tools/eclipse/project.py ``` -Maven ------ - -Note that the Maven build is provided for compatibility reasons, but -it is considered to be deprecated and will be removed in a future -version of this plugin. - -To build with Maven, run - -``` -mvn clean package -```