/*
* This file is part of git-commit-id-plugin by Konrad 'ktoso' Malawski <konrad.malawski@java.pl>
*
* git-commit-id-plugin is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* git-commit-id-plugin is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with git-commit-id-plugin. If not, see <http://www.gnu.org/licenses/>.
*/
package pl.project13.maven.git;
import com.google.common.base.Joiner;
import org.jetbrains.annotations.NotNull;
import java.util.Set;
/**
* A spring controlled bean that will be injected
* with properties about the repository state at build time.
* This information is supplied by my plugin - <b>pl.project13.maven.git-commit-id-plugin</b>
*
* @since 1.0
*/
public class GitRepositoryState {
String branch; // =${git.branch}
String commitId; // =${git.commit.id}
String commitIdAbbrev; // =${git.commit.id.abbrev}
String buildUserName; // =${git.build.user.name}
String buildUserEmail; // =${git.build.user.email}
String buildTime; // =${git.build.time}
String commitUserName; // =${git.commit.user.name}
String commitUserEmail; // =${git.commit.user.email}
String commitMessageFull; // =${git.commit.message.full}
String commitMessageShort; // =${git.commit.message.short}
String commitTime; // =${git.commit.time}
Set<String> tags; // =${git.tags}
String mavenProjectVersion; // =${maven.project.version}
public GitRepositoryState() {
}
public String getBranch() {
return branch;
}
public void setBranch(String branch) {
this.branch = branch;
}
public String getCommitId() {
return commitId;
}
public void setCommitId(String commitId) {
this.commitId = commitId;
}
public void setCommitIdAbbrev(String commitIdAbbrev) {
this.commitIdAbbrev = commitIdAbbrev;
}
public String getCommitIdAbbrev() {
return commitIdAbbrev;
}
public String getBuildUserName() {
return buildUserName;
}
public void setBuildUserName(String buildUserName) {
this.buildUserName = buildUserName;
}
public String getBuildUserEmail() {
return buildUserEmail;
}
public void setBuildUserEmail(String buildUserEmail) {
this.buildUserEmail = buildUserEmail;
}
public String getCommitUserName() {
return commitUserName;
}
public void setCommitUserName(String commitUserName) {
this.commitUserName = commitUserName;
}
public String getCommitUserEmail() {
return commitUserEmail;
}
public void setCommitUserEmail(String commitUserEmail) {
this.commitUserEmail = commitUserEmail;
}
public String getCommitMessageFull() {
return commitMessageFull;
}
public void setCommitMessageFull(String commitMessageFull) {
this.commitMessageFull = commitMessageFull;
}
public String getCommitMessageShort() {
return commitMessageShort;
}
public void setCommitMessageShort(String commitMessageShort) {
this.commitMessageShort = commitMessageShort;
}
public String getCommitTime() {
return commitTime;
}
public void setCommitTime(String commitTime) {
this.commitTime = commitTime;
}
public String getBuildTime() {
return buildTime;
}
public void setBuildTime(String buildTime) {
this.buildTime = buildTime;
}
public String getMavenProjectVersion() {
return mavenProjectVersion;
}
public void setMavenProjectVersion(String mavenProjectVersion) {
this.mavenProjectVersion = mavenProjectVersion;
}
public Set<String> getTags() {
return tags;
}
public void setTags(Set<String> tags) {
this.tags = tags;
}
/**
* If you need it as json but don't have jackson installed etc
*
* @return the JSON representation of this resource
*/
public String toJson() {
StringBuilder sb = new StringBuilder("{");
appendProperty(sb, "branch", branch);
appendProperty(sb, "commitId", commitId);
appendProperty(sb, "commitIdAbbrev", commitIdAbbrev);
appendProperty(sb, "commitTime", commitTime);
appendProperty(sb, "commitUserName", commitUserName);
appendProperty(sb, "commitUserEmail", commitUserEmail);
appendProperty(sb, "commitMessageShort", commitMessageShort);
appendProperty(sb, "commitMessageFull", commitMessageFull);
appendProperty(sb, "buildTime", buildTime);
appendProperty(sb, "buildUserName", buildUserName);
appendProperty(sb, "buildUserEmail", buildUserEmail);
appendProperty(sb, "tags", Joiner.on(",").join(tags));
appendProperty(sb, "mavenProjectVersion", mavenProjectVersion);
return sb.append("}").toString();
}
private void appendProperty(@NotNull StringBuilder sb, String label, String value) {
sb.append(String.format("\"%s\": \"%s\",", label, value));
}
}