Skip to content

Conversation

@ex172000
Copy link
Contributor

@ex172000 ex172000 commented Jan 4, 2026

Following patterns from Python/Go/Rust BDD implementations:

  • Add Cucumber-based BDD test implementation for Java SDK
  • Create step definitions for basic messaging scenarios
  • Configure Docker environment with feature file copying via entrypoint
  • Use classpath-based feature discovery with @suite annotations
  • Add JUnit Platform Suite dependency for modern Cucumber integration
  • Add Java support to run-bdd-tests.sh script

Java BDD Test Results (ubuntu24.04LTS, aarch64)

 ✔ Image bdd-java-bdd           Built                                                                                                                                                                      1.1s
 ✔ Image bdd-iggy-server        Built                                                                                                                                                                      1.1s
 ✔ Network bdd_iggy-bdd-network Created                                                                                                                                                                    0.0s
 ✔ Volume bdd_iggy_data         Created                                                                                                                                                                    0.0s
 ✔ Container bdd-iggy-server-1  Created                                                                                                                                                                    0.1s
 ✔ Container bdd-java-bdd-1     Created                                                                                                                                                                    0.0s
Attaching to java-bdd-1
Container bdd-iggy-server-1 Waiting
Container bdd-iggy-server-1 Healthy
java-bdd-1  | To honour the JVM settings for this build a single-use Daemon process will be forked. For more on this, please refer to https://docs.gradle.org/8.13/userguide/gradle_daemon.html#sec:disabling_the_daemon in the Gradle documentation.
java-bdd-1  | Daemon will be stopped at the end of the build
java-bdd-1  | > Task :java:buildSrc:checkKotlinGradlePluginConfigurationErrors SKIPPED
java-bdd-1  | > Task :java:buildSrc:generateExternalPluginSpecBuilders
java-bdd-1  | > Task :java:buildSrc:extractPrecompiledScriptPluginPlugins
java-bdd-1  | > Task :java:buildSrc:generateScriptPluginAdapters
java-bdd-1  | > Task :java:buildSrc:pluginDescriptors
java-bdd-1  | > Task :java:buildSrc:processResources
java-bdd-1  | > Task :java:buildSrc:compilePluginsBlocks
java-bdd-1  | > Task :java:buildSrc:generatePrecompiledScriptPluginAccessors
java-bdd-1  | > Task :java:buildSrc:compileKotlin
java-bdd-1  | > Task :java:buildSrc:compileJava NO-SOURCE
java-bdd-1  | > Task :java:buildSrc:compileGroovy NO-SOURCE
java-bdd-1  | > Task :java:buildSrc:classes
java-bdd-1  | > Task :java:buildSrc:jar
java-bdd-1  | > Task :compileJava NO-SOURCE
java-bdd-1  | > Task :processResources NO-SOURCE
java-bdd-1  | > Task :classes UP-TO-DATE
java-bdd-1  | > Task :processTestResources
java-bdd-1  |
java-bdd-1  | > Task :java:iggy:compileJava
java-bdd-1  | Note: /workspace/foreign/java/java-sdk/src/main/java/org/apache/iggy/client/async/tcp/AsyncTcpConnection.java uses or overrides a deprecated API.
java-bdd-1  | Note: Recompile with -Xlint:deprecation for details.
java-bdd-1  |
java-bdd-1  | > Task :java:iggy:processResources NO-SOURCE
java-bdd-1  | > Task :java:iggy:classes
java-bdd-1  | > Task :java:iggy:jar
java-bdd-1  | > Task :compileTestJava
java-bdd-1  | > Task :testClasses
java-bdd-1  | > Task :test
java-bdd-1  |
java-bdd-1  | [Incubating] Problems report is available at: file:///workspace/bdd/java/build/reports/problems/problems-report.html
java-bdd-1  |
java-bdd-1  | BUILD SUCCESSFUL in 58s
java-bdd-1  | 14 actionable tasks: 14 executed
java-bdd-1 exited with code 0
Aborting on container exit...
Container bdd-java-bdd-1 Stopping
Container bdd-java-bdd-1 Stopped
✅ BDD tests completed for: java
🧹  cleaning up containers & volumes…

Following patterns from Python/Go/Rust BDD implementations:

- Add Cucumber-based BDD test implementation for Java SDK
- Create step definitions for basic messaging scenarios
- Configure Docker environment with feature file copying via entrypoint
- Use classpath-based feature discovery with @suite annotations
- Add JUnit Platform Suite dependency for modern Cucumber integration
- Add Java support to run-bdd-tests.sh script
Copy link
Member

@mmodzelewski mmodzelewski left a comment

Choose a reason for hiding this comment

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

@ex172000 thanks for the PR, that's a great start. Can you please include the BDD tests in the CI run?

ex172000 and others added 2 commits January 5, 2026 14:59
Address the comments with:
- Update documentation
- Remove redundant file
- Upgrade dependencies
@ex172000
Copy link
Contributor Author

ex172000 commented Jan 5, 2026

@ex172000 thanks for the PR, that's a great start. Can you please include the BDD tests in the CI run?

Sure, added the bdd-java target

@mmodzelewski
Copy link
Member

@ex172000 Thanks for the updates. For the bdd tests to work, you'll need to update the script: scripts/run-bdd-tests.sh. If you have any questions on how to set up the CI properly, feel free to ping @hubcio :)

@ex172000
Copy link
Contributor Author

ex172000 commented Jan 7, 2026

@mmodzelewski yeah previously had the change locally but somehow didn't commit. Please check again when you have time, thx. @hubcio please also take a look, thx!!

@mmodzelewski mmodzelewski merged commit d8e3b25 into apache:master Jan 8, 2026
55 checks passed
@mmodzelewski
Copy link
Member

@ex172000 all looks good now, the PR is merged, thanks again :)

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.

3 participants