diff --git a/src/main/java/pl/project13/jgit/DescribeCommand.java b/src/main/java/pl/project13/jgit/DescribeCommand.java index a6e57e35..9c50d46f 100644 --- a/src/main/java/pl/project13/jgit/DescribeCommand.java +++ b/src/main/java/pl/project13/jgit/DescribeCommand.java @@ -21,7 +21,6 @@ import com.google.common.base.Optional; import com.google.common.base.Preconditions; -import org.eclipse.jgit.api.Git; import org.eclipse.jgit.api.GitCommand; import org.eclipse.jgit.api.errors.GitAPIException; import org.eclipse.jgit.lib.ObjectId; diff --git a/src/main/java/pl/project13/jgit/DescribeResult.java b/src/main/java/pl/project13/jgit/DescribeResult.java index 285a2cc2..28ccedcb 100644 --- a/src/main/java/pl/project13/jgit/DescribeResult.java +++ b/src/main/java/pl/project13/jgit/DescribeResult.java @@ -60,7 +60,7 @@ public DescribeResult(@NotNull String tagName) { this(tagName, false, Optional.absent()); } - public DescribeResult(@NotNull ObjectReader objectReader, String tagName, int commitsAwayFromTag, @Nullable ObjectId commitId) { + public DescribeResult(@NotNull ObjectReader objectReader, String tagName, int commitsAwayFromTag, @NotNull ObjectId commitId) { this(objectReader, tagName, commitsAwayFromTag, commitId, false, Optional.absent(), false); } diff --git a/src/main/java/pl/project13/jgit/JGitCommon.java b/src/main/java/pl/project13/jgit/JGitCommon.java index 63377201..b48e4161 100644 --- a/src/main/java/pl/project13/jgit/JGitCommon.java +++ b/src/main/java/pl/project13/jgit/JGitCommon.java @@ -51,40 +51,36 @@ public JGitCommon(LoggerBridge log) { } public Collection getTags(Repository repo, final ObjectId headId) throws GitAPIException{ - RevWalk walk = null; - try { - Git git = Git.wrap(repo); - walk = new RevWalk(repo); - List tagRefs = git.tagList().call(); - - final RevWalk finalWalk = walk; - Collection tagsForHeadCommit = Collections2.filter(tagRefs, new Predicate() { - @Override public boolean apply(Ref tagRef) { - boolean lightweightTag = tagRef.getObjectId().equals(headId); - - try { - // TODO make this configurable (most users shouldn't really care too much what kind of tag it is though) - return lightweightTag || finalWalk.parseTag(tagRef.getObjectId()).getObject().getId().equals(headId); // or normal tag - } catch (IOException e) { - return false; - } - } - }); - - Collection tags = Collections2.transform(tagsForHeadCommit, new Function() { - @Override public String apply(Ref input) { - return input.getName().replaceAll("refs/tags/", ""); - } - }); - - return tags; - } finally { - if (walk != null) { + try (Git git = Git.wrap(repo)) { + try(RevWalk walk = new RevWalk(repo)) { + Collection tags = getTags(git, headId, walk); walk.dispose(); + return tags; } } } + private Collection getTags(final Git git, final ObjectId headId, final RevWalk finalWalk) throws GitAPIException{ + List tagRefs = git.tagList().call(); + Collection tagsForHeadCommit = Collections2.filter(tagRefs, new Predicate() { + @Override public boolean apply(Ref tagRef) { + boolean lightweightTag = tagRef.getObjectId().equals(headId); + try { + // TODO make this configurable (most users shouldn't really care too much what kind of tag it is though) + return lightweightTag || finalWalk.parseTag(tagRef.getObjectId()).getObject().getId().equals(headId); // or normal tag + } catch (IOException e) { + return false; + } + } + }); + Collection tags = Collections2.transform(tagsForHeadCommit, new Function() { + @Override public String apply(Ref input) { + return input.getName().replaceAll("refs/tags/", ""); + } + }); + return tags; + } + public String getClosestTagName(@NotNull Repository repo){ Map> map = getClosestTagAsMap(repo); for(Map.Entry> entry : map.entrySet()){ @@ -97,12 +93,13 @@ public String getClosestTagCommitCount(@NotNull Repository repo, RevCommit headC HashMap> map = transformRevTagsMapToDateSortedTagNames(getClosestTagAsMap(repo)); ObjectId obj = (ObjectId) map.keySet().toArray()[0]; - RevWalk walk = new RevWalk(repo); - RevCommit commit = walk.lookupCommit(obj); - walk.dispose(); + try(RevWalk walk = new RevWalk(repo)){ + RevCommit commit = walk.lookupCommit(obj); + walk.dispose(); - int distance = distanceBetween(repo, headCommit, commit); - return String.valueOf(distance); + int distance = distanceBetween(repo, headCommit, commit); + return String.valueOf(distance); + } } private Map> getClosestTagAsMap(@NotNull Repository repo){ diff --git a/src/main/java/pl/project13/maven/git/GitDirLocator.java b/src/main/java/pl/project13/maven/git/GitDirLocator.java index 34a60538..57bec698 100644 --- a/src/main/java/pl/project13/maven/git/GitDirLocator.java +++ b/src/main/java/pl/project13/maven/git/GitDirLocator.java @@ -108,7 +108,9 @@ private File processGitDirFile(@NotNull File file) { // There should be just one line in the file, e.g. // "gitdir: /usr/local/src/parentproject/.git/modules/submodule" String line = reader.readLine(); - + if(line == null) { + return null; + } // Separate the key and the value in the string. String[] parts = line.split(": "); diff --git a/src/main/java/pl/project13/maven/git/NativeGitProvider.java b/src/main/java/pl/project13/maven/git/NativeGitProvider.java index 258602c8..207a7d33 100644 --- a/src/main/java/pl/project13/maven/git/NativeGitProvider.java +++ b/src/main/java/pl/project13/maven/git/NativeGitProvider.java @@ -303,6 +303,7 @@ public interface ProcessRunner { public static class NativeCommandException extends IOException { + private static final long serialVersionUID = 3511033422542257748L; private final int exitCode; private final String command; private final File directory; diff --git a/src/main/java/pl/project13/maven/git/PropertiesReplacer.java b/src/main/java/pl/project13/maven/git/PropertiesReplacer.java index 5601c7ed..034d3218 100644 --- a/src/main/java/pl/project13/maven/git/PropertiesReplacer.java +++ b/src/main/java/pl/project13/maven/git/PropertiesReplacer.java @@ -71,15 +71,17 @@ public void performReplacement(Properties properties, List } private String performReplacement(ReplacementProperty replacementProperty, String content) { - String result = performTransformationRules(replacementProperty, content, TransformationRule.ApplyEnum.BEFORE); + String result = content; if(replacementProperty != null) { + result = performTransformationRules(replacementProperty, result, TransformationRule.ApplyEnum.BEFORE); if(replacementProperty.isRegex()) { result = replaceRegex(result, replacementProperty.getToken(), replacementProperty.getValue()); } else { result = replaceNonRegex(result, replacementProperty.getToken(), replacementProperty.getValue()); } + result = performTransformationRules(replacementProperty, result, TransformationRule.ApplyEnum.AFTER); } - return performTransformationRules(replacementProperty, result, TransformationRule.ApplyEnum.AFTER); + return result; } private String performTransformationRules(ReplacementProperty replacementProperty, String content, TransformationRule.ApplyEnum forRule) { diff --git a/src/main/java/pl/project13/maven/git/util/Pair.java b/src/main/java/pl/project13/maven/git/util/Pair.java index 8068636a..7a578cad 100644 --- a/src/main/java/pl/project13/maven/git/util/Pair.java +++ b/src/main/java/pl/project13/maven/git/util/Pair.java @@ -52,7 +52,7 @@ public boolean equals(@Nullable Object o) { return false; } - Pair pair = (Pair) o; + Pair pair = (Pair) o; if (!first.equals(pair.first)) { return false;