diff --git a/spring-boot/src/main/java/org/springframework/boot/info/GitProperties.java b/spring-boot/src/main/java/org/springframework/boot/info/GitProperties.java index 2a9847e4bc..64b7f73e49 100644 --- a/spring-boot/src/main/java/org/springframework/boot/info/GitProperties.java +++ b/spring-boot/src/main/java/org/springframework/boot/info/GitProperties.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2016 the original author or authors. + * Copyright 2012-2017 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -54,6 +54,10 @@ public class GitProperties extends InfoProperties { * @return the short commit id */ public String getShortCommitId() { + String shortId = get("commit.id.abbrev"); + if (shortId != null) { + return shortId; + } String id = getCommitId(); if (id == null) { return null; diff --git a/spring-boot/src/test/java/org/springframework/boot/info/GitPropertiesTests.java b/spring-boot/src/test/java/org/springframework/boot/info/GitPropertiesTests.java index 8c79ab270a..0b7a8f7cde 100644 --- a/spring-boot/src/test/java/org/springframework/boot/info/GitPropertiesTests.java +++ b/spring-boot/src/test/java/org/springframework/boot/info/GitPropertiesTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2016 the original author or authors. + * Copyright 2012-2017 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -32,7 +32,7 @@ public class GitPropertiesTests { @Test public void basicInfo() { GitProperties properties = new GitProperties( - createProperties("master", "abcdefghijklmno", "1457527123")); + createProperties("master", "abcdefghijklmno", "abcdefg", "1457527123")); assertThat(properties.getBranch()).isEqualTo("master"); assertThat(properties.getCommitId()).isEqualTo("abcdefghijklmno"); assertThat(properties.getShortCommitId()).isEqualTo("abcdefg"); @@ -50,7 +50,7 @@ public class GitPropertiesTests { @Test public void coerceEpochSecond() { GitProperties properties = new GitProperties( - createProperties("master", "abcdefg", "1457527123")); + createProperties("master", "abcdefg", null, "1457527123")); assertThat(properties.getCommitTime()).isNotNull(); assertThat(properties.get("commit.time")).isEqualTo("1457527123000"); assertThat(properties.getCommitTime().getTime()).isEqualTo(1457527123000L); @@ -59,7 +59,7 @@ public class GitPropertiesTests { @Test public void coerceDateString() { GitProperties properties = new GitProperties( - createProperties("master", "abcdefg", "2016-03-04T14:36:33+0100")); + createProperties("master", "abcdefg", null, "2016-03-04T14:36:33+0100")); assertThat(properties.getCommitTime()).isNotNull(); assertThat(properties.get("commit.time")).isEqualTo("1457098593000"); assertThat(properties.getCommitTime().getTime()).isEqualTo(1457098593000L); @@ -68,24 +68,43 @@ public class GitPropertiesTests { @Test public void coerceUnsupportedFormat() { GitProperties properties = new GitProperties( - createProperties("master", "abcdefg", "2016-03-04 15:22:24")); + createProperties("master", "abcdefg", null, "2016-03-04 15:22:24")); assertThat(properties.getCommitTime()).isNull(); assertThat(properties.get("commit.time")).isEqualTo("2016-03-04 15:22:24"); } @Test - public void shortenCommitId() { + public void shortCommitUsedIfPresent() { GitProperties properties = new GitProperties( - createProperties("master", "abc", "1457527123")); + createProperties("master", "abcdefghijklmno", "abcdefgh", "1457527123")); + assertThat(properties.getCommitId()).isEqualTo("abcdefghijklmno"); + assertThat(properties.getShortCommitId()).isEqualTo("abcdefgh"); + } + + @Test + public void shortenCommitIdShorterThan7() { + GitProperties properties = new GitProperties( + createProperties("master", "abc", null, "1457527123")); assertThat(properties.getCommitId()).isEqualTo("abc"); assertThat(properties.getShortCommitId()).isEqualTo("abc"); } + @Test + public void shortenCommitIdLongerThan7() { + GitProperties properties = new GitProperties( + createProperties("master", "abcdefghijklmno", null, "1457527123")); + assertThat(properties.getCommitId()).isEqualTo("abcdefghijklmno"); + assertThat(properties.getShortCommitId()).isEqualTo("abcdefg"); + } + private static Properties createProperties(String branch, String commitId, - String commitTime) { + String commitIdAbbrev, String commitTime) { Properties properties = new Properties(); properties.put("branch", branch); properties.put("commit.id", commitId); + if (commitIdAbbrev != null) { + properties.put("commit.id.abbrev", commitIdAbbrev); + } properties.put("commit.time", commitTime); return properties; }