Skip to content

Commit 5493a48

Browse files
committed
refactor, tests updated
1 parent 28687cc commit 5493a48

File tree

18 files changed

+81
-139
lines changed

18 files changed

+81
-139
lines changed

src/main/java/org/scm4j/releaser/Build.java

Lines changed: 8 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
package org.scm4j.releaser;
22

3-
import java.util.List;
4-
53
import org.scm4j.commons.Version;
64
import org.scm4j.releaser.branch.DevelopBranch;
75
import org.scm4j.releaser.branch.DevelopBranchStatus;
@@ -16,6 +14,8 @@
1614
import org.scm4j.vcs.api.VCSTag;
1715
import org.scm4j.vcs.api.WalkDirection;
1816

17+
import java.util.List;
18+
1919
public class Build {
2020

2121
public static final String ZERO_PATCH = "0";
@@ -69,9 +69,7 @@ public BuildStatus getStatus() {
6969
}
7070
}
7171

72-
List<Component> mDeps = calculatedResult.setMDeps(comp, () -> {
73-
return rb.getMDeps();
74-
});
72+
List<Component> mDeps = calculatedResult.setMDeps(comp, rb::getMDeps);
7573

7674
if (!areMDepsFrozen(mDeps)) {
7775
return BuildStatus.FREEZE;
@@ -95,21 +93,15 @@ public BuildStatus getStatus() {
9593
private boolean hasMDepsNotInDONEStatus(List<Component> mDeps) {
9694
for (Component mDep : mDeps) {
9795
// probably need to store mdeps for each release branch
98-
ReleaseBranch rbMDep = calculatedResult.setReleaseBranch(mDep, () -> {
99-
return new ReleaseBranch(mDep);
100-
});
96+
ReleaseBranch rbMDep = calculatedResult.setReleaseBranch(mDep, () -> new ReleaseBranch(mDep));
10197

102-
List<Component> rbMDeps = calculatedResult.setMDeps(mDep, () -> {
103-
return rbMDep.getMDeps();
104-
});
98+
List<Component> rbMDeps = calculatedResult.setMDeps(mDep, rbMDep::getMDeps);
10599

106100
if (hasMDepsNotInDONEStatus(rbMDeps)) {
107101
return true;
108102
}
109103

110-
BuildStatus bs = calculatedResult.setBuildStatus(mDep, () -> {
111-
return new Build(mDep, calculatedResult).getStatus();
112-
});
104+
BuildStatus bs = calculatedResult.setBuildStatus(mDep, () -> new Build(mDep, calculatedResult).getStatus());
113105
if (bs != BuildStatus.DONE) {
114106
return true;
115107
}
@@ -182,16 +174,12 @@ public boolean isNeedToFork() {
182174
ReleaseBranch mDepRB;
183175
Version mDepRBHeadVersion;
184176
for (Component mDep : mDeps) {
185-
Boolean isNeedToForkMDep = calculatedResult.setNeedsToFork(mDep, () -> {
186-
return new Build(mDep).isNeedToFork();
187-
});
177+
Boolean isNeedToForkMDep = calculatedResult.setNeedsToFork(mDep, () -> new Build(mDep).isNeedToFork());
188178
if (isNeedToForkMDep) {
189179
return true;
190180
}
191181

192-
mDepRB = calculatedResult.setReleaseBranch(mDep, () -> {
193-
return new ReleaseBranch(mDep);
194-
});
182+
mDepRB = calculatedResult.setReleaseBranch(mDep, () -> new ReleaseBranch(mDep));
195183
mDepRBHeadVersion = mDepRB.getVersion();
196184
// zero patch is checked above
197185
if (!mDepRBHeadVersion.toPreviousPatch().equals(mDep.getVersion())) {

src/main/java/org/scm4j/releaser/CalculatedResult.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,19 @@
11
package org.scm4j.releaser;
22

3+
import org.scm4j.releaser.branch.ReleaseBranch;
4+
import org.scm4j.releaser.conf.Component;
5+
36
import java.util.HashMap;
47
import java.util.List;
58
import java.util.Map;
69
import java.util.function.Supplier;
710

8-
import org.scm4j.releaser.branch.ReleaseBranch;
9-
import org.scm4j.releaser.conf.Component;
10-
1111
public class CalculatedResult {
1212

13-
private Map<String, BuildStatus> buildStatuses = new HashMap<>();
14-
private Map<String, List<Component>> mDeps = new HashMap<>();
15-
private Map<String, Boolean> needesToFork = new HashMap<>();
16-
private Map<String, ReleaseBranch> releaseBranches = new HashMap<>();
13+
private final Map<String, BuildStatus> buildStatuses = new HashMap<>();
14+
private final Map<String, List<Component>> mDeps = new HashMap<>();
15+
private final Map<String, Boolean> needesToFork = new HashMap<>();
16+
private final Map<String, ReleaseBranch> releaseBranches = new HashMap<>();
1717

1818
private <T> T get(Component comp, Map<String, T> cache) {
1919
return cache.get(getKey(comp));

src/main/java/org/scm4j/releaser/SCMReleaser.java

Lines changed: 14 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,5 @@
11
package org.scm4j.releaser;
22

3-
import java.io.File;
4-
import java.util.ArrayList;
5-
import java.util.List;
6-
import java.util.function.Supplier;
7-
83
import org.scm4j.commons.progress.IProgress;
94
import org.scm4j.commons.progress.ProgressConsole;
105
import org.scm4j.releaser.actions.ActionKind;
@@ -17,6 +12,11 @@
1712
import org.scm4j.releaser.scmactions.SCMActionRelease;
1813
import org.scm4j.releaser.scmactions.SCMActionTag;
1914

15+
import java.io.File;
16+
import java.util.ArrayList;
17+
import java.util.List;
18+
import java.util.function.Supplier;
19+
2020
public class SCMReleaser {
2121

2222
public static final String MDEPS_FILE_NAME = "mdeps";
@@ -53,47 +53,37 @@ public IAction getActionTree(Component comp, ActionKind actionKind, CalculatedRe
5353
childActions.add(getActionTree(mdep, actionKind, calculatedResult));
5454
}
5555

56-
calculatedResult.setBuildStatus(comp, (Supplier<BuildStatus>) () -> {
57-
return getBuildStatus(comp, calculatedResult, progress);
58-
});
56+
calculatedResult.setBuildStatus(comp, () -> getBuildStatus(comp, calculatedResult, progress));
5957

6058
progress.close();
6159
return new SCMActionRelease(calculatedResult.getReleaseBranch(comp), comp, childActions, actionKind, calculatedResult.getBuildStatus(comp), calculatedResult);
6260
}
6361

6462
protected BuildStatus getBuildStatus(Component comp, CalculatedResult calculatedResult, IProgress progress) {
6563
Build mb = new Build(calculatedResult.getReleaseBranch(comp), comp, calculatedResult);
66-
return reportDuration(() -> mb.getStatus(), "status calculation", comp, progress);
64+
return reportDuration(mb::getStatus, "status calculation", comp, progress);
6765
}
6866

69-
private void calculateResultNoStatus(Component comp, CalculatedResult calculatedResult, IProgress progress) throws Exception {
67+
private void calculateResultNoStatus(Component comp, CalculatedResult calculatedResult, IProgress progress) {
7068

7169
if (Options.isPatch()) {
72-
ReleaseBranch rb = calculatedResult.setReleaseBranch(comp, () -> {
73-
return new ReleaseBranch(comp, comp.getCoords().getVersion());
74-
});
75-
calculatedResult.setMDeps(comp, () -> {
76-
return rb.getMDeps();
77-
});
70+
ReleaseBranch rb = calculatedResult.setReleaseBranch(comp, () -> new ReleaseBranch(comp, comp.getCoords().getVersion()));
71+
calculatedResult.setMDeps(comp, rb::getMDeps);
7872
calculatedResult.setNeedsToFork(comp, () -> false);
7973
return;
8074
}
8175

82-
ReleaseBranch rb = calculatedResult.setReleaseBranch(comp, () -> {
83-
return reportDuration(() -> new ReleaseBranch(comp), "release branch version calculation", comp, progress);
84-
});
76+
ReleaseBranch rb = calculatedResult.setReleaseBranch(comp, () -> reportDuration(() -> new ReleaseBranch(comp), "release branch version calculation", comp, progress));
8577
if (calculatedResult.getMDeps(comp) == null) {
8678
boolean needToUseReleaseBranch = (comp.getVersion().isExact() || (!comp.getVersion().isExact() && !calculatedResult.setNeedsToFork(comp, () -> {
8779
Build mb = new Build(rb, comp, calculatedResult);
88-
return reportDuration(() -> mb.isNeedToFork(), "need to fork calculation", comp, progress);
80+
return reportDuration(mb::isNeedToFork, "need to fork calculation", comp, progress);
8981
}))) && rb.exists();
9082
// untill has untilldb, ubl has untilldb. untill is BUILD_MDEPS, UBL has release branch but need to FORK.
9183
// result: db for untill FORK, db for UBL is DONE prev version (mdep fro existing UBL RB is used)
9284
// TODO: add test: untill build_mdeps, untill needs to be forked. UBL has release rbanch but has to be forked also. untilldbs must have the same status
93-
calculatedResult.setMDeps(comp, () -> {
94-
return reportDuration(() -> needToUseReleaseBranch ? rb.getMDeps() : new DevelopBranch(comp).getMDeps(),
95-
String.format("read mdeps from %s branch", needToUseReleaseBranch ? "release" : "develop"), comp, progress);
96-
});
85+
calculatedResult.setMDeps(comp, () -> reportDuration(() -> needToUseReleaseBranch ? rb.getMDeps() : new DevelopBranch(comp).getMDeps(),
86+
String.format("read mdeps from %s branch", needToUseReleaseBranch ? "release" : "develop"), comp, progress));
9787
}
9888
}
9989

src/main/java/org/scm4j/releaser/branch/DevelopBranch.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
import org.scm4j.releaser.exceptions.EComponentConfig;
99
import org.scm4j.vcs.api.IVCS;
1010
import org.scm4j.vcs.api.VCSCommit;
11+
import org.scm4j.vcs.api.exceptions.EVCSBranchNotFound;
12+
import org.scm4j.vcs.api.exceptions.EVCSFileNotFound;
1113

1214
import java.util.ArrayList;
1315
import java.util.List;
@@ -54,10 +56,12 @@ public String getName() {
5456
}
5557

5658
public List<Component> getMDeps() {
57-
if (!comp.getVCS().fileExists(getName(), SCMReleaser.MDEPS_FILE_NAME)) {
59+
String mDepsFileContent;
60+
try {
61+
mDepsFileContent = vcs.getFileContent(getName(), SCMReleaser.MDEPS_FILE_NAME, null);
62+
} catch (EVCSBranchNotFound | EVCSFileNotFound e) {
5863
return new ArrayList<>();
5964
}
60-
String mDepsFileContent = vcs.getFileContent(getName(), SCMReleaser.MDEPS_FILE_NAME, null);
6165
MDepsFile mDeps = new MDepsFile(mDepsFileContent);
6266
List<Component> res = new ArrayList<>();
6367
for (Component mDep : mDeps.getMDeps()) {

src/main/java/org/scm4j/releaser/builders/CmdLineBuilder.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
public class CmdLineBuilder implements IBuilder {
1919

2020
private final String cmdLine;
21-
private ProcessBuilder pb;
21+
private final ProcessBuilder pb;
2222
private static final Pattern CMD_LINE_PATTERN = Pattern.compile("([^\"]\\S*|\".+?\")\\s*");
2323

2424
public CmdLineBuilder(String cmdLine) {

src/main/java/org/scm4j/releaser/cli/CLI.java

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,5 @@
11
package org.scm4j.releaser.cli;
22

3-
import java.io.PrintStream;
4-
import java.util.Arrays;
5-
63
import org.apache.commons.lang3.ArrayUtils;
74
import org.scm4j.commons.progress.IProgress;
85
import org.scm4j.commons.progress.ProgressConsole;
@@ -13,11 +10,10 @@
1310
import org.scm4j.releaser.conf.Option;
1411
import org.scm4j.releaser.conf.Options;
1512
import org.scm4j.releaser.exceptions.EReleaserException;
16-
import org.scm4j.releaser.exceptions.cmdline.ECmdLine;
17-
import org.scm4j.releaser.exceptions.cmdline.ECmdLineNoCommand;
18-
import org.scm4j.releaser.exceptions.cmdline.ECmdLineNoProduct;
19-
import org.scm4j.releaser.exceptions.cmdline.ECmdLineUnknownCommand;
20-
import org.scm4j.releaser.exceptions.cmdline.ECmdLineUnknownOption;
13+
import org.scm4j.releaser.exceptions.cmdline.*;
14+
15+
import java.io.PrintStream;
16+
import java.util.Arrays;
2117

2218
public class CLI {
2319

@@ -73,7 +69,7 @@ public void execInternal(SCMReleaser releaser, CommandLine cmd, PrintStream ps)
7369
System.out.println("elapsed time: " + (System.currentTimeMillis() - startMS));
7470
}
7571

76-
public int exec(SCMReleaser releaser, CommandLine cmd, PrintStream ps) throws Exception {
72+
public int exec(SCMReleaser releaser, CommandLine cmd, PrintStream ps) {
7773
try {
7874
execInternal(releaser, cmd, ps);
7975
return EXIT_CODE_OK;

src/main/java/org/scm4j/releaser/cli/CommandLine.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ public CommandLine(String[] args) {
2525
private static String printOptions() {
2626
StringBuilder sb = new StringBuilder();
2727
for (Option opt : Option.values()) {
28-
sb.append("[" + opt.getStrValue() + "] ");
28+
sb.append("[").append(opt.getStrValue()).append("] ");
2929
}
3030
sb.deleteCharAt(sb.length() - 1);
3131
return sb.toString();

src/main/java/org/scm4j/releaser/conf/MDepsFile.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,9 +44,7 @@ public MDepsFile(List<Component> mDeps) {
4444
if (mDeps == null) {
4545
return;
4646
}
47-
for (Object mDep : mDeps) {
48-
this.lines.add(mDep);
49-
}
47+
lines.addAll(mDeps);
5048
}
5149

5250
public String toFileContent() {

src/main/java/org/scm4j/releaser/conf/VCSRepositories.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,5 @@
11
package org.scm4j.releaser.conf;
22

3-
import java.io.File;
4-
import java.util.HashMap;
5-
import java.util.Map;
6-
73
import org.scm4j.releaser.SCMReleaser;
84
import org.scm4j.releaser.VCSFactory;
95
import org.scm4j.releaser.builders.BuilderFactory;
@@ -15,8 +11,12 @@
1511
import org.yaml.snakeyaml.Yaml;
1612
import org.yaml.snakeyaml.error.YAMLException;
1713

14+
import java.io.File;
15+
import java.util.HashMap;
16+
import java.util.Map;
17+
1818
public class VCSRepositories {
19-
public static VCSType DEFAULT_VCS_TYPE = VCSType.GIT;
19+
public static final VCSType DEFAULT_VCS_TYPE = VCSType.GIT;
2020
public static final String DEFAULT_VCS_WORKSPACE_DIR = new File(SCMReleaser.BASE_WORKING_DIR,
2121
"releaser-vcs-workspaces").getPath();
2222

src/main/java/org/scm4j/releaser/scmactions/procs/SCMProcActualizePatches.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,15 +26,13 @@ public SCMProcActualizePatches(ReleaseBranch rb, Component comp, CalculatedResul
2626

2727
@Override
2828
public void execute(IProgress progress) {
29-
MDepsFile currentMDepsFile = new MDepsFile(SCMReleaser.reportDuration(() -> rb.getMDeps(), "mdeps read to actualize patches", null, progress));
29+
MDepsFile currentMDepsFile = new MDepsFile(SCMReleaser.reportDuration(rb::getMDeps, "mdeps read to actualize patches", null, progress));
3030
StringBuilder sb = new StringBuilder();
3131
boolean hasNew = false;
3232
ReleaseBranch rbMDep;
3333
Version newVersion;
3434
for (Component currentMDep : currentMDepsFile.getMDeps()) {
35-
rbMDep = calculatedResult.setReleaseBranch(currentMDep, () -> {
36-
return SCMReleaser.reportDuration(() -> new ReleaseBranch(currentMDep), "release branch version calculation", currentMDep, progress);
37-
});
35+
rbMDep = calculatedResult.setReleaseBranch(currentMDep, () -> SCMReleaser.reportDuration(() -> new ReleaseBranch(currentMDep), "release branch version calculation", currentMDep, progress));
3836
newVersion = rbMDep.getVersion().toPreviousPatch(); // TODO: which patch of mdep to actualize on if there are no mdep release branches at all?
3937
if (!newVersion.equals(currentMDep.getVersion())) {
4038
hasNew = true;

0 commit comments

Comments
 (0)