Doc-only, one file, 17 added lines. Verified by me on a local merge of0788d84onto2af13ab(merge commit 5b46538): - mvn -B clean test: Tests run: 1578, Failures: 0, Errors: 0, Skipped: 0. BUILD SUCCESS, rc=0. - javadoc reference lint (mvn javadoc:javadoc -Ddoclint=reference): the merge has 5 "reference not found" errors; origin/main at2af13abhas the same 5, in the same 5 untouched files. So this PR adds no broken link. Both runs rc=1 for that pre-existing reason, which is now ticket #459. - The quoted phrase is real: "are unoverridden here and just wrap {@link #defaultProfile()}" is at member/HerdrPeerLauncher.java:604. place() is not overloaded, so {@link #place} is unambiguous. One inaccuracy I am fixing in a follow-up commit rather than sending the PR back: the first new paragraph writes "HerdrPeerLauncher's own {@link #spawn(SpawnRequest, PlacementDecision)} javadoc", but that link resolves to PeerLauncher's own abstract declaration, not to HerdrPeerLauncher's override. The second paragraph already gets this right with plain {@code HerdrPeerLauncher.spawn(...)}.
This commit was merged in pull request #456.
This commit is contained in:
@@ -168,6 +168,16 @@ public interface PeerLauncher {
|
||||
* answer for a launcher with no role-pool concept of its own (e.g. a single {@code
|
||||
* HerdrPeerLauncher} adapter, which is never reached this way in production: {@code
|
||||
* CompositePeerLauncher} always fronts it and resolves roles itself).
|
||||
*
|
||||
* <p>fleetd #453: this default is deliberately <em>not</em> abstract — unlike {@link
|
||||
* #spawn(SpawnRequest, PlacementDecision)} (fleetd #450), there is no live defect in inheriting
|
||||
* it today, and the only current single-adapter implementer ({@code HerdrPeerLauncher}) is
|
||||
* correct to do so. But it stays correct only as long as that holds: <strong>if a launcher ever
|
||||
* routes more than one profile per role, it MUST override this method</strong>, or every role
|
||||
* silently resolves to {@link #defaultProfile()} with no error and no log line. {@code
|
||||
* HerdrPeerLauncher}'s own {@link #spawn(SpawnRequest, PlacementDecision)} javadoc names this
|
||||
* method and {@link #place} explicitly as "unoverridden here" for exactly this reason — read
|
||||
* that javadoc before adding role-pool routing to any {@code HerdrPeerLauncher} subclass.
|
||||
*/
|
||||
default String defaultProfileFor(MemberRole role) {
|
||||
return defaultProfile();
|
||||
@@ -228,6 +238,13 @@ public interface PeerLauncher {
|
||||
* placement condition — the right answer for a launcher with no pool or placement-policy
|
||||
* concept of its own, matching {@link #defaultProfileFor}'s own default.
|
||||
*
|
||||
* <p>fleetd #453: same reasoning as {@link #defaultProfileFor}'s own #453 note — this default
|
||||
* is deliberately not abstract (no live defect today, correct for the sole single-adapter
|
||||
* implementer), but <strong>a launcher that ever routes more than one profile per role MUST
|
||||
* override this method too</strong>, or placement silently ignores {@code role} for it. See
|
||||
* {@code HerdrPeerLauncher.spawn(SpawnRequest, PlacementDecision)}'s javadoc, which names this
|
||||
* method as "unoverridden here" and why that is correct only for a single-profile adapter.
|
||||
*
|
||||
* @throws RuntimeException (implementation-specific, typically a placement exception) if no
|
||||
* candidate in {@code role}'s pool is currently placeable
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user