diff --git a/scm-core/src/main/java/sonia/scm/repository/BlamePagingResult.java b/scm-core/src/main/java/sonia/scm/repository/BlameResult.java similarity index 87% rename from scm-core/src/main/java/sonia/scm/repository/BlamePagingResult.java rename to scm-core/src/main/java/sonia/scm/repository/BlameResult.java index 3d99b0b550..dfb33d8dc6 100644 --- a/scm-core/src/main/java/sonia/scm/repository/BlamePagingResult.java +++ b/scm-core/src/main/java/sonia/scm/repository/BlameResult.java @@ -52,14 +52,26 @@ import javax.xml.bind.annotation.XmlRootElement; */ @XmlRootElement(name = "blame-paging") @XmlAccessorType(XmlAccessType.FIELD) -public class BlamePagingResult +public class BlameResult { /** * Constructs ... * */ - public BlamePagingResult() {} + public BlameResult() {} + + /** + * Constructs ... + * + * + * @param blameLines + */ + public BlameResult(List blameLines) + { + this.blameLines = blameLines; + this.total = blameLines.size(); + } /** * Constructs ... @@ -68,7 +80,7 @@ public class BlamePagingResult * @param total * @param blameLines */ - public BlamePagingResult(int total, List blameLines) + public BlameResult(int total, List blameLines) { this.total = total; this.blameLines = blameLines; @@ -87,6 +99,19 @@ public class BlamePagingResult return blameLines; } + /** + * Method description + * + * + * @param i + * + * @return + */ + public BlameLine getLine(int i) + { + return blameLines.get(i); + } + /** * Method description * diff --git a/scm-core/src/main/java/sonia/scm/repository/BlameViewer.java b/scm-core/src/main/java/sonia/scm/repository/BlameViewer.java index a63d44a2f3..6192329017 100644 --- a/scm-core/src/main/java/sonia/scm/repository/BlameViewer.java +++ b/scm-core/src/main/java/sonia/scm/repository/BlameViewer.java @@ -59,6 +59,6 @@ public interface BlameViewer * @throws IOException * @throws RepositoryException */ - public BlamePagingResult getBlame(String revision, String path) + public BlameResult getBlame(String revision, String path) throws IOException, RepositoryException; } diff --git a/scm-core/src/main/java/sonia/scm/repository/BlameViewerUtil.java b/scm-core/src/main/java/sonia/scm/repository/BlameViewerUtil.java index 368948e374..69a7ded78b 100644 --- a/scm-core/src/main/java/sonia/scm/repository/BlameViewerUtil.java +++ b/scm-core/src/main/java/sonia/scm/repository/BlameViewerUtil.java @@ -83,7 +83,7 @@ public class BlameViewerUtil extends CacheClearHook { this.repositoryManager = repositoryManager; this.cache = cacheManager.getCache(BlameViewerCacheKey.class, - BlamePagingResult.class, CACHE_NAME); + BlameResult.class, CACHE_NAME); init(repositoryManager, cache); } @@ -104,7 +104,7 @@ public class BlameViewerUtil extends CacheClearHook * @throws NotSupportedFeatuerException * @throws RepositoryException */ - public BlamePagingResult getBlame(String repositoryId, String revision, + public BlameResult getBlame(String repositoryId, String revision, String path) throws RepositoryException, NotSupportedFeatuerException, IOException { @@ -136,7 +136,7 @@ public class BlameViewerUtil extends CacheClearHook * @throws NotSupportedFeatuerException * @throws RepositoryException */ - public BlamePagingResult getBlame(Repository repository, String revision, + public BlameResult getBlame(Repository repository, String revision, String path) throws RepositoryException, NotSupportedFeatuerException, IOException { @@ -153,7 +153,7 @@ public class BlameViewerUtil extends CacheClearHook BlameViewerCacheKey key = new BlameViewerCacheKey(repository.getId(), revision, path); - BlamePagingResult result = cache.get(key); + BlameResult result = cache.get(key); if (result == null) { @@ -285,7 +285,7 @@ public class BlameViewerUtil extends CacheClearHook //~--- fields --------------------------------------------------------------- /** Field description */ - private Cache cache; + private Cache cache; /** Field description */ private RepositoryManager repositoryManager; diff --git a/scm-plugins/scm-git-plugin/src/main/java/sonia/scm/repository/GitBlameViewer.java b/scm-plugins/scm-git-plugin/src/main/java/sonia/scm/repository/GitBlameViewer.java index 3bf616efab..02eb8a31ed 100644 --- a/scm-plugins/scm-git-plugin/src/main/java/sonia/scm/repository/GitBlameViewer.java +++ b/scm-plugins/scm-git-plugin/src/main/java/sonia/scm/repository/GitBlameViewer.java @@ -38,6 +38,7 @@ package sonia.scm.repository; import org.eclipse.jgit.api.BlameCommand; import org.eclipse.jgit.api.Git; import org.eclipse.jgit.blame.BlameResult; +import org.eclipse.jgit.lib.ObjectId; import org.eclipse.jgit.lib.PersonIdent; import org.eclipse.jgit.revwalk.RevCommit; @@ -53,8 +54,6 @@ import java.io.IOException; import java.util.ArrayList; import java.util.List; -import org.eclipse.jgit.lib.ObjectId; -import sonia.scm.util.Util; /** * Class description @@ -96,12 +95,12 @@ public class GitBlameViewer implements BlameViewer * @return */ @Override - public BlamePagingResult getBlame(String revision, String path) + public sonia.scm.repository.BlameResult getBlame(String revision, String path) { AssertUtil.assertIsNotEmpty(path); - - BlameResult blameResult = null; - BlamePagingResult blamePagingResult = null; + + BlameResult gitBlameResult = null; + sonia.scm.repository.BlameResult blameResult = null; org.eclipse.jgit.lib.Repository gr = null; File directory = handler.getDirectory(repository); Git git = null; @@ -112,28 +111,28 @@ public class GitBlameViewer implements BlameViewer git = new Git(gr); BlameCommand blame = git.blame(); - blame.setFilePath(path); - - ObjectId revId = GitUtil.getRevisionId(gr, revision); - blame.setStartCommit(revId); - - blameResult = blame.call(); - AssertUtil.assertIsNotNull(blameResult); + blame.setFilePath(path); + + ObjectId revId = GitUtil.getRevisionId(gr, revision); + + blame.setStartCommit(revId); + gitBlameResult = blame.call(); + AssertUtil.assertIsNotNull(gitBlameResult); List blameLines = new ArrayList(); - int total = blameResult.getResultContents().size(); + int total = gitBlameResult.getResultContents().size(); for (int i = 0; i < total; i++) { - PersonIdent author = blameResult.getSourceAuthor(i); + PersonIdent author = gitBlameResult.getSourceAuthor(i); BlameLine blameLine = new BlameLine(); blameLine.setLineNumber(i + 1); blameLine.setAuthor(new Person(author.getName(), author.getEmailAddress())); - RevCommit commit = blameResult.getSourceCommit(i); + RevCommit commit = gitBlameResult.getSourceCommit(i); long when = GitUtil.getCommitTime(commit); blameLine.setWhen(when); @@ -142,20 +141,20 @@ public class GitBlameViewer implements BlameViewer blameLine.setRevision(rev); - String content = blameResult.getResultContents().getString(i); + String content = gitBlameResult.getResultContents().getString(i); blameLine.setCode(content); blameLines.add(blameLine); } - blamePagingResult = new BlamePagingResult(total, blameLines); + blameResult = new sonia.scm.repository.BlameResult(total, blameLines); } catch (IOException ex) { logger.error("could not open repository", ex); } - return blamePagingResult; + return blameResult; } //~--- fields --------------------------------------------------------------- diff --git a/scm-plugins/scm-hg-plugin/src/main/java/sonia/scm/repository/HgBlameViewer.java b/scm-plugins/scm-hg-plugin/src/main/java/sonia/scm/repository/HgBlameViewer.java index 906ae4ce9d..fceceed0b2 100644 --- a/scm-plugins/scm-hg-plugin/src/main/java/sonia/scm/repository/HgBlameViewer.java +++ b/scm-plugins/scm-hg-plugin/src/main/java/sonia/scm/repository/HgBlameViewer.java @@ -118,7 +118,7 @@ public class HgBlameViewer implements BlameViewer * @throws IOException */ @Override - public BlamePagingResult getBlame(String revision, String path) + public BlameResult getBlame(String revision, String path) throws IOException { AssertUtil.assertIsNotEmpty(path); @@ -146,7 +146,7 @@ public class HgBlameViewer implements BlameViewer Process p = builder.directory(repositoryDirectory).start(); BufferedReader reader = null; - BlamePagingResult result = null; + BlameResult result = null; try { @@ -173,7 +173,7 @@ public class HgBlameViewer implements BlameViewer * * @throws IOException */ - private BlamePagingResult parseBlameInput(BufferedReader reader) + private BlameResult parseBlameInput(BufferedReader reader) throws IOException { List blameLines = new ArrayList(); @@ -191,7 +191,7 @@ public class HgBlameViewer implements BlameViewer line = reader.readLine(); } - return new BlamePagingResult(blameLines.size(), blameLines); + return new BlameResult(blameLines.size(), blameLines); } /** diff --git a/scm-plugins/scm-svn-plugin/src/main/java/sonia/scm/repository/SvnBlameViewer.java b/scm-plugins/scm-svn-plugin/src/main/java/sonia/scm/repository/SvnBlameViewer.java index baed641475..f171427945 100644 --- a/scm-plugins/scm-svn-plugin/src/main/java/sonia/scm/repository/SvnBlameViewer.java +++ b/scm-plugins/scm-svn-plugin/src/main/java/sonia/scm/repository/SvnBlameViewer.java @@ -95,7 +95,7 @@ public class SvnBlameViewer implements BlameViewer * @return */ @Override - public BlamePagingResult getBlame(String revision, String path) + public BlameResult getBlame(String revision, String path) { List blameLines = new ArrayList(); File directory = handler.getDirectory(repository); @@ -130,7 +130,7 @@ public class SvnBlameViewer implements BlameViewer logger.error("could not create blame view", ex); } - return new BlamePagingResult(blameLines.size(), blameLines); + return new BlameResult(blameLines.size(), blameLines); } //~--- fields --------------------------------------------------------------- diff --git a/scm-webapp/src/main/java/sonia/scm/api/rest/PlainBlameProvider.java b/scm-webapp/src/main/java/sonia/scm/api/rest/PlainBlameProvider.java index e5ecbbee6a..7d25f3c001 100644 --- a/scm-webapp/src/main/java/sonia/scm/api/rest/PlainBlameProvider.java +++ b/scm-webapp/src/main/java/sonia/scm/api/rest/PlainBlameProvider.java @@ -36,7 +36,7 @@ package sonia.scm.api.rest; //~--- non-JDK imports -------------------------------------------------------- import sonia.scm.repository.BlameLine; -import sonia.scm.repository.BlamePagingResult; +import sonia.scm.repository.BlameResult; import sonia.scm.util.Util; //~--- JDK imports ------------------------------------------------------------ @@ -62,7 +62,7 @@ import javax.ws.rs.ext.Provider; */ @Provider public class PlainBlameProvider - extends AbstractMessageReaderWriterProvider + extends AbstractMessageReaderWriterProvider { /** @@ -82,7 +82,7 @@ public class PlainBlameProvider * @throws WebApplicationException */ @Override - public BlamePagingResult readFrom(Class type, + public BlameResult readFrom(Class type, Type genericType, Annotation[] annotations, MediaType mediaType, MultivaluedMap httpHeaders, @@ -108,7 +108,7 @@ public class PlainBlameProvider * @throws WebApplicationException */ @Override - public void writeTo(BlamePagingResult bpr, Class type, Type genericType, + public void writeTo(BlameResult bpr, Class type, Type genericType, Annotation[] annotations, MediaType mediaType, MultivaluedMap httpHeaders, OutputStream entityStream) @@ -166,7 +166,7 @@ public class PlainBlameProvider public boolean isWriteable(Class type, Type genericType, Annotation[] annotations, MediaType mediaType) { - return (type == BlamePagingResult.class) + return (type == BlameResult.class) && mediaType.equals(MediaType.TEXT_PLAIN_TYPE); } } diff --git a/scm-webapp/src/main/java/sonia/scm/api/rest/resources/RepositoryResource.java b/scm-webapp/src/main/java/sonia/scm/api/rest/resources/RepositoryResource.java index 2492dc2add..8e67ceec14 100644 --- a/scm-webapp/src/main/java/sonia/scm/api/rest/resources/RepositoryResource.java +++ b/scm-webapp/src/main/java/sonia/scm/api/rest/resources/RepositoryResource.java @@ -44,7 +44,7 @@ import org.slf4j.LoggerFactory; import sonia.scm.NotSupportedFeatuerException; import sonia.scm.config.ScmConfiguration; -import sonia.scm.repository.BlamePagingResult; +import sonia.scm.repository.BlameResult; import sonia.scm.repository.BlameViewerUtil; import sonia.scm.repository.BrowserResult; import sonia.scm.repository.ChangesetPagingResult; @@ -161,7 +161,7 @@ public class RepositoryResource { AssertUtil.assertIsNotNull(path); - BlamePagingResult blamePagingResult = blameViewerUtil.getBlame(id, + BlameResult blamePagingResult = blameViewerUtil.getBlame(id, revision, path); if (blamePagingResult != null)