DefaultReleasedVersionsProvider(ProcessRunner runner) { this(new RevisionDateProvider(runner)); }
private void validateDatesFormat(String rev, String gitOutput) { if (!REVISION_DATE_PATTERN.matcher(gitOutput).matches()) { throw new IllegalArgumentException(formatErrorMessage(rev, gitOutput)); } }
public Date getDate(String rev) throws RevisionNotFoundException { String gitOutput = tryGetRevisionsDate(rev); validateDatesFormat(rev, gitOutput); return parseDate(gitOutput.trim()); }
@Override public Collection<ReleasedVersion> getReleasedVersions(String headVersion, Date headDate, Collection<String> versions, String tagPrefix) { //collect the versions if (versions.size() == 0 && headVersion == null) { throw new IllegalArgumentException("Not enough versions supplied." + "\n I need at least 1 version." + "\n - head version: " + headVersion + "\n - versions: " + versions); } if (headVersion != null && headDate == null) { throw new IllegalArgumentException("headDate cannot be null if headVersion is provided"); } List<String> theVersions = new ArrayList<String>(versions); LinkedList<ReleasedVersion> result = new LinkedList<ReleasedVersion>(); for (int i = 0; i < theVersions.size(); i++) { String v = theVersions.get(i); String tag = tagPrefix + v; //the value of 'next' element in collection is the 'previous version' because the input versions are sorted descending String previous = (theVersions.size() > (i+1))? tagPrefix + theVersions.get(i+1) : null; Date date = dateProvider.getDate(tag); result.add(new DefaultReleasedVersion(v, date, tag, previous)); } if (headVersion != null) { String prev = result.isEmpty() ? null : result.get(0).getRev(); DefaultReleasedVersion head = new DefaultReleasedVersion(headVersion, headDate, "HEAD", prev); result.addFirst(head); } return result; }
private String tryGetRevisionsDate(String revision) throws RevisionNotFoundException { try { return runner.run("git", "log", "--pretty=%ad", "--date=iso", revision, "-n", "1"); } catch (GradleException e) { if (isRevisionNotFoundMessage(revision, e)) { throw new RevisionNotFoundException(e, revision); } throw e; } }
@Override public Collection<ReleasedVersion> getReleasedVersions(String headVersion, Date headDate, Collection<String> versions, String tagPrefix) throws RevisionNotFoundException { //collect the versions if (versions.size() == 0 && headVersion == null) { throw new IllegalArgumentException("Not enough versions supplied." + "\n I need at least 1 version." + "\n - head version: " + headVersion + "\n - versions: " + versions); } if (headVersion != null && headDate == null) { throw new IllegalArgumentException("headDate cannot be null if headVersion is provided"); } List<String> theVersions = new ArrayList<>(versions); LinkedList<ReleasedVersion> result = new LinkedList<>(); for (int i = 0; i < theVersions.size(); i++) { String v = theVersions.get(i); String tag = tagPrefix + v; //the value of 'next' element in collection is the 'previous version' because the input versions are sorted descending String previous = (theVersions.size() > (i + 1)) ? tagPrefix + theVersions.get(i + 1) : null; Date date = dateProvider.getDate(tag); result.add(new DefaultReleasedVersion(v, date, tag, previous)); } if (headVersion != null) { String prev = result.isEmpty() ? null : result.get(0).getRev(); DefaultReleasedVersion head = new DefaultReleasedVersion(headVersion, headDate, "HEAD", prev); result.addFirst(head); } return result; }
private String tryGetRevisionsDate(String revision) throws RevisionNotFoundException { try { return runner.run("git", "log", "--pretty=%ad", "--date=iso", revision, "-n", "1"); } catch (GradleException e) { if (isRevisionNotFoundMessage(revision, e)) { throw new RevisionNotFoundException(e, revision); } throw e; } }
public Date getDate(String rev) throws RevisionNotFoundException { String gitOutput = tryGetRevisionsDate(rev); validateDatesFormat(rev, gitOutput); return parseDate(gitOutput.trim()); }
private void validateDatesFormat(String rev, String gitOutput) { if (!REVISION_DATE_PATTERN.matcher(gitOutput).matches()) { throw new IllegalArgumentException(formatErrorMessage(rev, gitOutput)); } }
DefaultReleasedVersionsProvider(ProcessRunner runner) { this(new RevisionDateProvider(runner)); }
@Override public Collection<ReleasedVersion> getReleasedVersions(String headVersion, Date headDate, Collection<String> versions, String tagPrefix) throws RevisionNotFoundException { //collect the versions if (versions.size() == 0 && headVersion == null) { throw new IllegalArgumentException("Not enough versions supplied." + "\n I need at least 1 version." + "\n - head version: " + headVersion + "\n - versions: " + versions); } if (headVersion != null && headDate == null) { throw new IllegalArgumentException("headDate cannot be null if headVersion is provided"); } List<String> theVersions = new ArrayList<>(versions); LinkedList<ReleasedVersion> result = new LinkedList<>(); for (int i = 0; i < theVersions.size(); i++) { String v = theVersions.get(i); String tag = tagPrefix + v; //the value of 'next' element in collection is the 'previous version' because the input versions are sorted descending String previous = (theVersions.size() > (i + 1)) ? tagPrefix + theVersions.get(i + 1) : null; Date date = dateProvider.getDate(tag); result.add(new DefaultReleasedVersion(v, date, tag, previous)); } if (headVersion != null) { String prev = result.isEmpty() ? null : result.get(0).getRev(); DefaultReleasedVersion head = new DefaultReleasedVersion(headVersion, headDate, "HEAD", prev); result.addFirst(head); } return result; }
public Date getDate(String rev) { String gitOutput = runner.run("git", "log", "--pretty=%ad", "--date=iso", rev, "-n", "1"); if(!REVISION_DATE_PATTERN.matcher(gitOutput).matches()){ throw new IllegalArgumentException(formatErrorMessage(rev, gitOutput)); } return parseDate(gitOutput.trim()); }
DefaultReleasedVersionsProvider(ProcessRunner runner) { this(new RevisionDateProvider(runner)); }