Skip to content

feat(integration): add real Spring Boot 3.x/4.x integration tests - #1361

Open
stokpop wants to merge 1 commit into
cloudfoundry:mainfrom
stokpop:feature/1357-real-spring-boot-integration-fixtures
Open

feat(integration): add real Spring Boot 3.x/4.x integration tests#1361
stokpop wants to merge 1 commit into
cloudfoundry:mainfrom
stokpop:feature/1357-real-spring-boot-integration-fixtures

Conversation

@stokpop

@stokpopstokpop commented Jul 16, 2026

Copy link
Copy Markdown
Contributor

Fixes#1357

What

Add integration tests using real Spring Boot fat jars from cloudfoundry/java-test-applications v1.0.0 to verify end-to-end framework injection.

Three tests:

  • SB3 (Boot 3.5, Java 17): java-cfenv 3.x injection, cloud profile via RuntimeLogs
  • SB4 cfenv (Boot 4.1, Java 21): java-cfenv 4.x injection, cloud profile via /active-profiles, jar presence via /loaded-jars, JDBC auto-config (spring.datasource.url/username/password)
  • SB4 combined: java-cfenv + container-security-provider + cf-metrics-exporter

Also includes:

  • fixtures_helper_test.go: downloads jars, pre-explodes for Docker mode (CF staging does this natively)
  • framework-java-cfenv.md: new VCAP_SERVICES auto-configuration section documenting java-cfenv-all service connector pipeline
  • Dead URL fix in frameworks_test.go
  • README update with correct 5-level -run filter patterns
  • Skip jar download in cached-buildpack mode

Test assertions backed by docs:

  • Cloud profile activation (java-cfenv-all CfEnvProcessor)
  • spring.datasource.url = jdbc:postgresql://... (from postgres:// URI via CfDataSourceEnvironmentPostProcessor)
  • spring.datasource.username / spring.datasource.password extraction
  • cf-metrics-exporter staging log output
  • container-security-provider env var injection

CopilotAI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds end-to-end Spring Boot integration coverage by running real Spring Boot 3.x/4.x fixtures (downloaded from java-test-applications) and asserting buildpack framework injection behavior (notably java-cfenv, plus combined framework scenarios).

Changes:

  • Add real-jar Spring Boot integration tests (SB3 + SB4) including assertions for cloud profile activation and jar/agent presence.
  • Add a helper that downloads and pre-explodes Spring Boot fat jars to match CF staging behavior.
  • Update docs and a previously dead fixture URL reference.

Reviewed changes

Copilot reviewed 6 out of 6 changed files in this pull request and generated 3 comments.

Show a summary per file
FileDescription
src/java/containers/spring_boot.goClarifies isSpringBootJar fallback heuristic behavior via comments.
src/integration/spring_boot_test.goAdds new real Spring Boot SB3/SB4 integration test contexts and assertions.
src/integration/README.mdUpdates Go test invocation examples and documents -run patterns for deep spec subtests.
src/integration/init_test.goDownloads/explodes SB3/SB4 fixtures before running the integration suite and wires paths into SpringBoot tests.
src/integration/frameworks_test.goUpdates a jar URL in the (currently skipped) Checkmarx IAST binding test.
src/integration/fixtures_helper_test.goIntroduces jar download + zip extraction utilities to produce exploded fixture directories.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment threadsrc/integration/init_test.go Outdated
Comment threadsrc/integration/fixtures_helper_test.go
Comment threadsrc/integration/frameworks_test.go Outdated
@stokpop
stokpopforce-pushed the feature/1357-real-spring-boot-integration-fixtures branch 5 times, most recently from bfdd804 to 4c1851eCompareJuly 16, 2026 14:09
…oudfoundry#1357)
Add integration tests using real fat jars from cloudfoundry/java-test-applications
v1.0.0 to verify end-to-end framework injection.
Three tests:
- SB3 (Boot 3.5, Java 17): java-cfenv 3.x injection, cloud profile
verified via RuntimeLogs (boot3 app lacks RuntimeUtils endpoints)
- SB4 (Boot 4.1, Java 21): java-cfenv 4.x injection, cloud profile
via /active-profiles, java-cfenv presence via /loaded-jars
- SB4 combined: java-cfenv + container-security-provider env var +
cf-metrics-exporter javaagent — all in one deployment
Key design decisions:
- Pre-explode fat jars in fixtures_helper_test.go for Docker-mode tests
to simulate CF staging (CF bits service extracts pushed jars as zip
before running the buildpack). CF-mode tests pass raw jar to cf push.
See switchblade#134 for CF-vs-Docker divergence.
- Jars sourced from cloudfoundry/java-test-applications@v1.0.0.
Also:
- Fix dead 404 URL in frameworks_test.go
- Update isSpringBootJar comment in spring_boot.go
- Update README with correct 5-level -run filter patterns
@stokpop
stokpopforce-pushed the feature/1357-real-spring-boot-integration-fixtures branch from 4c1851e to 7b93092CompareJuly 16, 2026 15:28
Sign up for freeto 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.

Add real Spring Boot integration test fixtures (SB3 + SB4) via java-test-applications

2 participants

@stokpop