Move ChangeUtil#getMessage method into GetContent
GetContent is the only caller of this method. Having this method moved out of ChangeUtil will allow us to make ChangeUtil just be a collection of static methods once Revert is converted to use BatchUpdate. Change-Id: I577249644032bde7d51446e48194de13464212fa Signed-off-by: Edwin Kempin <ekempin@google.com>
This commit is contained in:
		| @@ -31,7 +31,6 @@ import com.google.gerrit.server.git.GitRepositoryManager; | |||||||
| import com.google.gerrit.server.git.UpdateException; | import com.google.gerrit.server.git.UpdateException; | ||||||
| import com.google.gerrit.server.git.validators.CommitValidators; | import com.google.gerrit.server.git.validators.CommitValidators; | ||||||
| import com.google.gerrit.server.mail.RevertedSender; | import com.google.gerrit.server.mail.RevertedSender; | ||||||
| import com.google.gerrit.server.notedb.ChangeNotes; |  | ||||||
| import com.google.gerrit.server.notedb.ChangeUpdate; | import com.google.gerrit.server.notedb.ChangeUpdate; | ||||||
| import com.google.gerrit.server.project.ChangeControl; | import com.google.gerrit.server.project.ChangeControl; | ||||||
| import com.google.gerrit.server.project.NoSuchChangeException; | import com.google.gerrit.server.project.NoSuchChangeException; | ||||||
| @@ -284,26 +283,6 @@ public class ChangeUtil { | |||||||
|     } |     } | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   public String getMessage(ChangeNotes notes) |  | ||||||
|       throws NoSuchChangeException, OrmException, |  | ||||||
|       MissingObjectException, IncorrectObjectTypeException, IOException { |  | ||||||
|     Change.Id changeId = notes.getChangeId(); |  | ||||||
|     PatchSet ps = psUtil.current(db.get(), notes); |  | ||||||
|     if (ps == null) { |  | ||||||
|       throw new NoSuchChangeException(changeId); |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     try (Repository git = |  | ||||||
|           gitManager.openRepository(notes.getProjectName()); |  | ||||||
|         RevWalk revWalk = new RevWalk(git)) { |  | ||||||
|       RevCommit commit = revWalk.parseCommit( |  | ||||||
|           ObjectId.fromString(ps.getRevision().get())); |  | ||||||
|       return commit.getFullMessage(); |  | ||||||
|     } catch (RepositoryNotFoundException e) { |  | ||||||
|       throw new NoSuchChangeException(changeId, e); |  | ||||||
|     } |  | ||||||
|   } |  | ||||||
|  |  | ||||||
|   public static PatchSet.Id nextPatchSetId(PatchSet.Id id) { |   public static PatchSet.Id nextPatchSetId(PatchSet.Id id) { | ||||||
|     return new PatchSet.Id(id.getParentKey(), id.get() + 1); |     return new PatchSet.Id(id.getParentKey(), id.get() + 1); | ||||||
|   } |   } | ||||||
|   | |||||||
| @@ -17,27 +17,44 @@ package com.google.gerrit.server.change; | |||||||
| import com.google.gerrit.extensions.restapi.BinaryResult; | import com.google.gerrit.extensions.restapi.BinaryResult; | ||||||
| import com.google.gerrit.extensions.restapi.ResourceNotFoundException; | import com.google.gerrit.extensions.restapi.ResourceNotFoundException; | ||||||
| import com.google.gerrit.extensions.restapi.RestReadView; | import com.google.gerrit.extensions.restapi.RestReadView; | ||||||
|  | import com.google.gerrit.reviewdb.client.Change; | ||||||
| import com.google.gerrit.reviewdb.client.Patch; | import com.google.gerrit.reviewdb.client.Patch; | ||||||
| import com.google.gerrit.server.ChangeUtil; | import com.google.gerrit.reviewdb.client.PatchSet; | ||||||
|  | import com.google.gerrit.reviewdb.server.ReviewDb; | ||||||
|  | import com.google.gerrit.server.PatchSetUtil; | ||||||
|  | import com.google.gerrit.server.git.GitRepositoryManager; | ||||||
|  | import com.google.gerrit.server.notedb.ChangeNotes; | ||||||
| import com.google.gerrit.server.project.NoSuchChangeException; | import com.google.gerrit.server.project.NoSuchChangeException; | ||||||
| import com.google.gwtorm.server.OrmException; | import com.google.gwtorm.server.OrmException; | ||||||
| import com.google.inject.Inject; | import com.google.inject.Inject; | ||||||
|  | import com.google.inject.Provider; | ||||||
| import com.google.inject.Singleton; | import com.google.inject.Singleton; | ||||||
|  |  | ||||||
|  | import org.eclipse.jgit.errors.RepositoryNotFoundException; | ||||||
| import org.eclipse.jgit.lib.ObjectId; | import org.eclipse.jgit.lib.ObjectId; | ||||||
|  | import org.eclipse.jgit.lib.Repository; | ||||||
|  | import org.eclipse.jgit.revwalk.RevCommit; | ||||||
|  | import org.eclipse.jgit.revwalk.RevWalk; | ||||||
|  |  | ||||||
| import java.io.IOException; | import java.io.IOException; | ||||||
|  |  | ||||||
| @Singleton | @Singleton | ||||||
| public class GetContent implements RestReadView<FileResource> { | public class GetContent implements RestReadView<FileResource> { | ||||||
|  |   private final Provider<ReviewDb> db; | ||||||
|  |   private final GitRepositoryManager gitManager; | ||||||
|  |   private final PatchSetUtil psUtil; | ||||||
|   private final FileContentUtil fileContentUtil; |   private final FileContentUtil fileContentUtil; | ||||||
|   private final ChangeUtil changeUtil; |  | ||||||
|  |  | ||||||
|   @Inject |   @Inject | ||||||
|   GetContent(FileContentUtil fileContentUtil, |   GetContent( | ||||||
|       ChangeUtil changeUtil) { |       Provider<ReviewDb> db, | ||||||
|  |       GitRepositoryManager gitManager, | ||||||
|  |       PatchSetUtil psUtil, | ||||||
|  |       FileContentUtil fileContentUtil) { | ||||||
|  |     this.db = db; | ||||||
|  |     this.gitManager = gitManager; | ||||||
|  |     this.psUtil = psUtil; | ||||||
|     this.fileContentUtil = fileContentUtil; |     this.fileContentUtil = fileContentUtil; | ||||||
|     this.changeUtil = changeUtil; |  | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   @Override |   @Override | ||||||
| @@ -46,7 +63,7 @@ public class GetContent implements RestReadView<FileResource> { | |||||||
|       OrmException { |       OrmException { | ||||||
|     String path = rsrc.getPatchKey().get(); |     String path = rsrc.getPatchKey().get(); | ||||||
|     if (Patch.COMMIT_MSG.equals(path)) { |     if (Patch.COMMIT_MSG.equals(path)) { | ||||||
|       String msg = changeUtil.getMessage( |       String msg = getMessage( | ||||||
|           rsrc.getRevision().getChangeResource().getNotes()); |           rsrc.getRevision().getChangeResource().getNotes()); | ||||||
|       return BinaryResult.create(msg) |       return BinaryResult.create(msg) | ||||||
|           .setContentType(FileContentUtil.TEXT_X_GERRIT_COMMIT_MESSAGE) |           .setContentType(FileContentUtil.TEXT_X_GERRIT_COMMIT_MESSAGE) | ||||||
| @@ -57,4 +74,22 @@ public class GetContent implements RestReadView<FileResource> { | |||||||
|         ObjectId.fromString(rsrc.getRevision().getPatchSet().getRevision().get()), |         ObjectId.fromString(rsrc.getRevision().getPatchSet().getRevision().get()), | ||||||
|         path); |         path); | ||||||
|   } |   } | ||||||
|  |  | ||||||
|  |   private String getMessage(ChangeNotes notes) | ||||||
|  |       throws NoSuchChangeException, OrmException, IOException { | ||||||
|  |     Change.Id changeId = notes.getChangeId(); | ||||||
|  |     PatchSet ps = psUtil.current(db.get(), notes); | ||||||
|  |     if (ps == null) { | ||||||
|  |       throw new NoSuchChangeException(changeId); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     try (Repository git = gitManager.openRepository(notes.getProjectName()); | ||||||
|  |         RevWalk revWalk = new RevWalk(git)) { | ||||||
|  |       RevCommit commit = revWalk.parseCommit( | ||||||
|  |           ObjectId.fromString(ps.getRevision().get())); | ||||||
|  |       return commit.getFullMessage(); | ||||||
|  |     } catch (RepositoryNotFoundException e) { | ||||||
|  |       throw new NoSuchChangeException(changeId, e); | ||||||
|  |     } | ||||||
|  |   } | ||||||
| } | } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Edwin Kempin
					Edwin Kempin