Class FieldNormalizationReconciler
java.lang.Object
network.ike.plugin.ws.reconcile.FieldNormalizationReconciler
- All Implemented Interfaces:
Reconciler
Reconciler that keeps the denormalized
workspace.yaml
fields (version, groupId) in sync with each cloned
subproject's POM.
Subsumes the retired ws:fix goal (IKE-Network/ike-issues#393).
The Maven coordinates in workspace.yaml are denormalized
convenience — the authoritative source is each subproject's
pom.xml. This reconciler detects when the manifest has
drifted from POM truth and applies the corrections.
Only version and groupId are touched. Novel
fields (repo, branch, type, depends-on)
are never modified by this reconciler.
Subprojects that are not yet cloned are silently skipped — they have no POM to compare against.
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidapply(WorkspaceContext ctx) Apply reconciliation.detect(WorkspaceContext ctx) Inspect the workspace and report any drift this reconciler would correct.Human-readable name of the dimension this reconciler owns.The Maven property name (without the-Dprefix) that opts out of this reconciler's apply pass.Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface Reconciler
pinFlag
-
Constructor Details
-
FieldNormalizationReconciler
public FieldNormalizationReconciler()
-
-
Method Details
-
dimension
Description copied from interface:ReconcilerHuman-readable name of the dimension this reconciler owns. Used as the heading inscaffold-draftoutput.- Specified by:
dimensionin interfaceReconciler- Returns:
- the dimension label, e.g. "Denormalized YAML fields"
-
optOutFlag
Description copied from interface:ReconcilerThe Maven property name (without the-Dprefix) that opts out of this reconciler's apply pass. Setting the property to"false"skips this dimension on a givenscaffold-publishinvocation.- Specified by:
optOutFlagin interfaceReconciler- Returns:
- the opt-out flag name, e.g.
"updateFields"
-
detect
Description copied from interface:ReconcilerInspect the workspace and report any drift this reconciler would correct. Read-only — must not mutate the workspace.- Specified by:
detectin interfaceReconciler- Parameters:
ctx- the workspace context- Returns:
- drift report;
DriftReport.noDrift(String)if nothing to do
-
apply
Description copied from interface:ReconcilerApply reconciliation. Caller is responsible for checkingReconcilerOptions.isOptedOut(String)before invoking; implementations may also re-check defensively.- Specified by:
applyin interfaceReconciler- Parameters:
ctx- the workspace context
-