Skip to content

Parse inert resourceDependencies section in application definitions #1931

Description

@serguei-gorokhov

Parent: #1930

What to build

Add the ResourceDependency link-record POJO (kind, linkId, target.path, access, required) and the Application.resourceDependencies field. The section:

  • parses from both snake_case (resource_dependencies) and camelCase (resourceDependencies), per the repo's dual-acceptance convention;
  • round-trips (serialize → parse → equal) and is carried by the Application copy constructor;
  • is omitted from serialization when absent — existing definitions are byte-identical;
  • is returned by GET /v1/applications/… as part of the serialized definition.

Deliberately inert: nothing consumes the section yet — write-time validation, admin consent, and request-start resolution land in the following stories of the series. The existing Deployment.dependencies field (deployment-name list) is untouched (zero diff). The consent prompt-policy field is deliberately absent (deferred to phase 2); every v1 field is consumed by v1.

Acceptance criteria

  • Diff touches exactly two production files + one test file; Deployment.java zero diff.
  • A definition containing the section parses and re-serializes with only expected key normalization; a definition without the section is byte-identical to pre-change output.
  • ./gradlew :config:test green; ./gradlew checkstyleMain checkstyleTest green.
  • No behavior change observable from any existing endpoint.

Blocked by

None — can start immediately.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    • Status
      No status

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions