Skip to content

test: add ApiaryGlueSync deployment smoke test#56

Merged
jamespfaulkner merged 1 commit into
mainfrom
feat/apiary-gluesync-smoke-test
Jun 15, 2026
Merged

test: add ApiaryGlueSync deployment smoke test#56
jamespfaulkner merged 1 commit into
mainfrom
feat/apiary-gluesync-smoke-test

Conversation

@jamespfaulkner

Copy link
Copy Markdown
Contributor

Summary

  • Adds ApiaryGlueSyncMetricsIntegrationTest, a @SpringBootTest smoke test that validates
    apiary-gluesync-listener deploys correctly inside a Dronefly Spring Boot context.
  • Bumps kafka-metastore-listener and apiary-gluesync-listener to 8.1.18 in the
    integration-tests POM, adding the :all (fat jar) classifier for gluesync.
  • Adds SerDeInfo to DroneFlyIntegrationTestUtils.buildTable() to avoid an NPE in
    GlueSync's HiveToGlueTransformer.

Why this test lives here

apiary-gluesync-listener cannot test its own behaviour inside a Dronefly Spring Boot
context without depending on drone-fly, which would create a circular dependency.
The test guards two things specific to the Dronefly deployment model:

  1. Classpath integrity — the :all fat jar (shaded AWS SDK + Dropwizard Metrics) loads
    without conflicts alongside Dronefly's own dependencies.
  2. Bean-ordering invariant — Spring Boot registers PrometheusMeterRegistry in
    Metrics.globalRegistry before ApiaryGlueSync is constructed. If that ordering
    were wrong, ApiaryGlueSync.MetricService silently falls back to adding a
    JmxMeterRegistry and metrics never reach Prometheus.

Test plan

  • mvn -pl drone-fly-integration-tests -Dtest=ApiaryGlueSyncMetricsIntegrationTest test passes locally
  • CI green

🤖 Generated with Claude Code

Adds a @SpringBootTest that validates two things that cannot be tested
inside apiary-gluesync-listener without a circular dependency:

1. The apiary-gluesync-listener:all fat jar (shaded AWS SDK + Dropwizard)
   loads without classpath conflicts alongside Dronefly's dependencies.
2. Spring Boot registers PrometheusMeterRegistry in Metrics.globalRegistry
   before ApiaryGlueSync is constructed, so MetricService does not fall
   back to adding a JmxMeterRegistry.

Also adds the apiary-gluesync-listener:8.1.18:all and bumps
kafka-metastore-listener to 8.1.18 in the integration-tests POM.
Adds SerDeInfo to DroneFlyIntegrationTestUtils.buildTable() to avoid
an NPE in GlueSync's HiveToGlueTransformer.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@jamespfaulkner jamespfaulkner marked this pull request as ready for review June 10, 2026 15:22
@jamespfaulkner jamespfaulkner requested a review from a team as a code owner June 10, 2026 15:22
@jamespfaulkner jamespfaulkner merged commit b1de54b into main Jun 15, 2026
1 check passed
@jamespfaulkner jamespfaulkner deleted the feat/apiary-gluesync-smoke-test branch June 15, 2026 13:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants