diff --git a/release-tools/src/main/java/org/springframework/data/release/git/Branch.java b/release-tools/src/main/java/org/springframework/data/release/git/Branch.java index 0165454..cb71cc5 100644 --- a/release-tools/src/main/java/org/springframework/data/release/git/Branch.java +++ b/release-tools/src/main/java/org/springframework/data/release/git/Branch.java @@ -48,7 +48,7 @@ public class Branch implements Comparable { Assert.notNull(iterationVersion, "Iteration version must not be null!"); - if (iterationVersion.isServiceIteration()) { + if (iterationVersion.isBranchVersion()) { return from((VersionAware) iterationVersion); } @@ -63,6 +63,12 @@ public class Branch implements Comparable { return from(version.toString().concat(".x")); } + /** + * Creates a new {@link Branch} from the given name. Uses the local part of it only. + * + * @param name must not be {@literal null} or empty. + * @return + */ public static Branch from(String name) { int slashIndex = name.lastIndexOf('/'); @@ -95,6 +101,10 @@ public class Branch implements Comparable { return name; } + /* + * (non-Javadoc) + * @see java.lang.Comparable#compareTo(java.lang.Object) + */ @Override public int compareTo(Branch o) { return name.compareToIgnoreCase(o.name); diff --git a/release-tools/src/main/java/org/springframework/data/release/model/Iteration.java b/release-tools/src/main/java/org/springframework/data/release/model/Iteration.java index e7fe64a..95a26e8 100644 --- a/release-tools/src/main/java/org/springframework/data/release/model/Iteration.java +++ b/release-tools/src/main/java/org/springframework/data/release/model/Iteration.java @@ -28,8 +28,9 @@ import org.springframework.util.Assert; @Value public class Iteration { - public static final Iteration SR6 = new Iteration("SR6", null); - public static final Iteration SR5 = new Iteration("SR6", SR6); + public static final Iteration SR7 = new Iteration("SR7", null); + public static final Iteration SR6 = new Iteration("SR6", SR7); + public static final Iteration SR5 = new Iteration("SR5", SR6); public static final Iteration SR4 = new Iteration("SR4", SR5); public static final Iteration SR3 = new Iteration("SR3", SR4); public static final Iteration SR2 = new Iteration("SR2", SR3); diff --git a/release-tools/src/main/java/org/springframework/data/release/model/IterationVersion.java b/release-tools/src/main/java/org/springframework/data/release/model/IterationVersion.java index 9016003..33b9afe 100644 --- a/release-tools/src/main/java/org/springframework/data/release/model/IterationVersion.java +++ b/release-tools/src/main/java/org/springframework/data/release/model/IterationVersion.java @@ -24,5 +24,5 @@ public interface IterationVersion extends VersionAware { Iteration getIteration(); - boolean isServiceIteration(); + boolean isBranchVersion(); } diff --git a/release-tools/src/main/java/org/springframework/data/release/model/ModuleIteration.java b/release-tools/src/main/java/org/springframework/data/release/model/ModuleIteration.java index eaec3c4..ebd444a 100644 --- a/release-tools/src/main/java/org/springframework/data/release/model/ModuleIteration.java +++ b/release-tools/src/main/java/org/springframework/data/release/model/ModuleIteration.java @@ -65,11 +65,11 @@ public class ModuleIteration implements IterationVersion { /* * (non-Javadoc) - * @see org.springframework.data.release.model.IterationVersion#isServiceIteration() + * @see org.springframework.data.release.model.IterationVersion#isBranchVersion() */ @Override - public boolean isServiceIteration() { - return getIteration().isServiceIteration(); + public boolean isBranchVersion() { + return getIteration().isServiceIteration() || trainIteration.getTrain().isAlwaysUseBranch(); } /** diff --git a/release-tools/src/main/java/org/springframework/data/release/model/ReleaseTrains.java b/release-tools/src/main/java/org/springframework/data/release/model/ReleaseTrains.java index d01934a..b9c2fa9 100644 --- a/release-tools/src/main/java/org/springframework/data/release/model/ReleaseTrains.java +++ b/release-tools/src/main/java/org/springframework/data/release/model/ReleaseTrains.java @@ -15,19 +15,22 @@ */ package org.springframework.data.release.model; +import static org.springframework.data.release.model.Iteration.*; import static org.springframework.data.release.model.Projects.*; import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import org.springframework.data.release.model.Train.Iterations; + /** * @author Oliver Gierke */ public class ReleaseTrains { public static final List TRAINS; - public static final Train CODD, DIJKSTRA, EVANS, FOWLER, GOSLING, HOPPER, INGALLS; + public static final Train CODD, DIJKSTRA, EVANS, FOWLER, GOSLING, HOPPER, INGALLS, KAY; static { @@ -40,9 +43,17 @@ public class ReleaseTrains { new Module(NEO4J, "4.1"), new Module(COUCHBASE, "2.1"), new Module(ELASTICSEARCH, "2.0")); INGALLS = HOPPER.next("Ingalls", Transition.MINOR); + Iteration M2 = new Iteration("M2", RC1); + + Iterations iterations = new Iterations(new Iteration("M1", M2), M2, RC1, GA, SR1, SR2, SR3, SR4, SR5, SR6, SR7); + + KAY = INGALLS.next("Kay", Transition.MAJOR)// + .withAlwaysUseBranch(true)// + .withIterations(iterations); + // Trains - TRAINS = Arrays.asList(CODD, DIJKSTRA, EVANS, FOWLER, GOSLING, HOPPER, INGALLS); + TRAINS = Arrays.asList(CODD, DIJKSTRA, EVANS, FOWLER, GOSLING, HOPPER, INGALLS, KAY); // Train names diff --git a/release-tools/src/main/java/org/springframework/data/release/model/Train.java b/release-tools/src/main/java/org/springframework/data/release/model/Train.java index 92544d4..9bdb62b 100644 --- a/release-tools/src/main/java/org/springframework/data/release/model/Train.java +++ b/release-tools/src/main/java/org/springframework/data/release/model/Train.java @@ -17,9 +17,12 @@ package org.springframework.data.release.model; import static org.springframework.data.release.model.Iteration.*; +import lombok.AccessLevel; import lombok.EqualsAndHashCode; +import lombok.RequiredArgsConstructor; import lombok.ToString; import lombok.Value; +import lombok.experimental.Wither; import java.util.Arrays; import java.util.Collection; @@ -38,21 +41,20 @@ import org.springframework.util.Assert; * @author Oliver Gierke */ @Value +@RequiredArgsConstructor(access = AccessLevel.PRIVATE) public class Train implements Streamable { private final String name;; private final Modules modules; - private final Iterations iterations; + private @Wither Iterations iterations; + private @Wither boolean alwaysUseBranch; public Train(String name, Module... modules) { this(name, Arrays.asList(modules)); } public Train(String name, Collection modules) { - - this.name = name; - this.modules = Modules.of(modules); - this.iterations = Iterations.DEFAULT; + this(name, Modules.of(modules), Iterations.DEFAULT, false); } /* @@ -182,7 +184,7 @@ public class Train implements Streamable { @ToString public static class Iterations implements Iterable { - public static Iterations DEFAULT = new Iterations(M1, RC1, GA, SR1, SR2, SR3, SR4, SR5, SR6); + public static Iterations DEFAULT = new Iterations(M1, RC1, GA, SR1, SR2, SR3, SR4, SR5, SR6, SR7); private final List iterations; diff --git a/release-tools/src/test/java/org/springframework/data/release/model/SimpleIterationVersion.java b/release-tools/src/test/java/org/springframework/data/release/model/SimpleIterationVersion.java index c73653a..3954531 100644 --- a/release-tools/src/test/java/org/springframework/data/release/model/SimpleIterationVersion.java +++ b/release-tools/src/test/java/org/springframework/data/release/model/SimpleIterationVersion.java @@ -25,10 +25,10 @@ public class SimpleIterationVersion implements IterationVersion { /* * (non-Javadoc) - * @see org.springframework.data.release.model.IterationVersion#isServiceIteration() + * @see org.springframework.data.release.model.IterationVersion#isBranchVersion() */ @Override - public boolean isServiceIteration() { + public boolean isBranchVersion() { return iteration.isServiceIteration(); } }