Skip to content

a bom for spectator? #920

@dbyron-sf

Description

@dbyron-sf

When using spectator in https://github.com/spinnaker/kork, I'd like to be able to decide what version of the aws sdk to use, potentially even if the one that spectator depends on is newer. Currently, kork defines it's spectator dependency here like:

dependencies {
  constraints {
    api("com.netflix.spectator:spectator-api:${versions.spectator}")
    api("com.netflix.spectator:spectator-ext-aws:${versions.spectator}")
    api("com.netflix.spectator:spectator-ext-gc:${versions.spectator}")
    api("com.netflix.spectator:spectator-ext-jvm:${versions.spectator}")
    api("com.netflix.spectator:spectator-nflx-plugin:${versions.spectator}")
    api("com.netflix.spectator:spectator-reg-atlas:${versions.spectator}")
    api("com.netflix.spectator:spectator-web-spring:${versions.spectator}")
    api("com.netflix.spectator:spectator-reg-micrometer:${versions.spectator}")
  }
}

If there were a spectator bom that kork could include via something like:

dependencies {
  api(platform("com.netflix.spectator:spectator-bom:${versions.spectator}")
}

I believe that would give more control to kork over which versions of transitive dependencies to bring in. Specifically for the aws java sdk case:

dependencies {
  api(platform("com.amazonaws:aws-java-sdk-bom:${versions.aws}"))
  api(platform("com.netflix.spectator:spectator-bom:${versions.spectator}")

gives precedence to the aws java sdk bom because it appears first.

It could easily be that my gradle knowledge is insufficient and there is a better or easier way to handle this. I would love a hand figuring out a solution, whether it means a spectator bom or not.

Thanks much for your help.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions