feat(springwolf-example): initialize Spring Wolf example project with…#136
feat(springwolf-example): initialize Spring Wolf example project with…#136igorcampos-dev merged 3 commits intomasterfrom
Conversation
… Kafka integration and Docker support
WalkthroughAdds a new example module "spring-wolf-example" with Maven module registration, project files (source, resources, Docker, compose, scripts), CI workflows and labeler entry, README updates, and supporting build/wrapper artifacts. Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes
Possibly related PRs
Pre-merge checks and finishing touches❌ Failed checks (1 warning)
✅ Passed checks (2 passed)
✨ Finishing touches
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 13
📜 Review details
Configuration used: CodeRabbit UI
Review profile: ASSERTIVE
Plan: Pro
📒 Files selected for processing (22)
.github/labeler.yml(1 hunks).github/workflows/springwolf-example.yml(1 hunks)pom.xml(1 hunks)spring-wolf-example/.dockerignore(1 hunks)spring-wolf-example/.gitattributes(1 hunks)spring-wolf-example/.github/maven.yml(1 hunks)spring-wolf-example/.gitignore(1 hunks)spring-wolf-example/.mvn/wrapper/maven-wrapper.properties(1 hunks)spring-wolf-example/Dockerfile(1 hunks)spring-wolf-example/README.md(1 hunks)spring-wolf-example/compose.yaml(1 hunks)spring-wolf-example/docker/kafka/create_topic.sh(1 hunks)spring-wolf-example/mvnw(1 hunks)spring-wolf-example/mvnw.cmd(1 hunks)spring-wolf-example/pom.xml(1 hunks)spring-wolf-example/src/main/java/com/io/example/SpringWolfExampleApplication.java(1 hunks)spring-wolf-example/src/main/java/com/io/example/consumer/KafkaConsumer.java(1 hunks)spring-wolf-example/src/main/java/com/io/example/dto/KafkaDto.java(1 hunks)spring-wolf-example/src/main/java/com/io/example/producer/KafkaProducer.java(1 hunks)spring-wolf-example/src/main/java/com/io/example/properties/KafkaProperties.java(1 hunks)spring-wolf-example/src/main/resources/application-prd.yaml(1 hunks)spring-wolf-example/src/main/resources/application.yaml(1 hunks)
🧰 Additional context used
🧠 Learnings (5)
📓 Common learnings
Learnt from: igorcampos-dev
Repo: igorcampos-dev/spring-integrations-examples PR: 40
File: spring-kafka-example/src/main/java/com/io/example/consumer/KafkaConsumerServiceImpl.java:18-22
Timestamp: 2025-07-27T19:57:31.204Z
Learning: In the spring-integrations-examples project, user igorcampos-dev prefers to keep simple example implementations minimal without additional error handling complexity, as the examples are for demonstration purposes rather than production use.
Learnt from: igorcampos-dev
Repo: igorcampos-dev/spring-integrations-examples PR: 40
File: spring-kafka-example/src/main/java/com/io/example/producer/KafkaProducerServiceImpl.java:26-26
Timestamp: 2025-07-27T19:48:52.891Z
Learning: In the spring-kafka-example project, user igorcampos-dev is comfortable with logging complete message objects in Kafka producer implementations and does not consider it a security concern, indicating no sensitive data is involved or other security measures are in place.
Learnt from: igorcampos-dev
Repo: igorcampos-dev/spring-integrations-examples PR: 21
File: spring-kafka-example/README.md:12-17
Timestamp: 2025-07-22T01:35:41.406Z
Learning: User igorcampos-dev prefers minimal, high-level documentation in README files without detailed version specifications, choosing to keep tech stack information simple rather than adding precise version numbers.
Learnt from: igorcampos-dev
Repo: igorcampos-dev/spring-integrations-examples PR: 21
File: spring-kafka-example/compose.yaml:30-32
Timestamp: 2025-07-22T01:30:57.054Z
Learning: User igorcampos-dev prefers to maintain environment parity between local development and production, avoiding development-specific configurations like ALLOW_PLAINTEXT_LISTENER even when they might provide clearer intent or safety nets.
Learnt from: igorcampos-dev
Repo: igorcampos-dev/spring-integrations-examples PR: 26
File: spring-kafka-example/compose.yaml:3-4
Timestamp: 2025-07-24T01:40:49.337Z
Learning: User igorcampos-dev requires hard-coded container names in Docker Compose files (like `container_name: app`) for CI pipeline validation purposes, which is a valid operational requirement that overrides the general best practice of avoiding hard-coded container names.
📚 Learning: 2025-07-27T19:48:52.891Z
Learnt from: igorcampos-dev
Repo: igorcampos-dev/spring-integrations-examples PR: 40
File: spring-kafka-example/src/main/java/com/io/example/producer/KafkaProducerServiceImpl.java:26-26
Timestamp: 2025-07-27T19:48:52.891Z
Learning: In the spring-kafka-example project, user igorcampos-dev is comfortable with logging complete message objects in Kafka producer implementations and does not consider it a security concern, indicating no sensitive data is involved or other security measures are in place.
Applied to files:
spring-wolf-example/src/main/resources/application.yamlspring-wolf-example/README.mdspring-wolf-example/src/main/java/com/io/example/properties/KafkaProperties.javaspring-wolf-example/src/main/java/com/io/example/producer/KafkaProducer.javaspring-wolf-example/src/main/resources/application-prd.yamlspring-wolf-example/pom.xmlspring-wolf-example/src/main/java/com/io/example/consumer/KafkaConsumer.javaspring-wolf-example/src/main/java/com/io/example/dto/KafkaDto.java
📚 Learning: 2025-07-27T19:57:31.204Z
Learnt from: igorcampos-dev
Repo: igorcampos-dev/spring-integrations-examples PR: 40
File: spring-kafka-example/src/main/java/com/io/example/consumer/KafkaConsumerServiceImpl.java:18-22
Timestamp: 2025-07-27T19:57:31.204Z
Learning: In the spring-integrations-examples project, user igorcampos-dev prefers to keep simple example implementations minimal without additional error handling complexity, as the examples are for demonstration purposes rather than production use.
Applied to files:
spring-wolf-example/README.mdspring-wolf-example/pom.xmlspring-wolf-example/src/main/java/com/io/example/SpringWolfExampleApplication.java
📚 Learning: 2025-07-27T19:51:52.736Z
Learnt from: igorcampos-dev
Repo: igorcampos-dev/spring-integrations-examples PR: 40
File: spring-kafka-example/src/main/java/com/io/example/consumer/KafkaConsumerService.java:3-3
Timestamp: 2025-07-27T19:51:52.736Z
Learning: In the spring-integrations-examples project, user igorcampos-dev uses SuppressWarnings("unused") annotations to suppress IntelliJ IDEA alerts, and these annotations should not be suggested for removal as they serve a specific purpose in their development workflow.
Applied to files:
spring-wolf-example/.gitignore
📚 Learning: 2025-07-27T19:48:29.678Z
Learnt from: igorcampos-dev
Repo: igorcampos-dev/spring-integrations-examples PR: 40
File: spring-kafka-example/src/main/java/com/io/example/producer/KafkaProducerServiceImpl.java:25-29
Timestamp: 2025-07-27T19:48:29.678Z
Learning: In the spring-kafka-example project, the message parameter in KafkaProducerServiceImpl.sendMessage(MessageRequestDtoRequest message) is guaranteed to never be null due to the application's design/validation constraints, making null checking unnecessary.
Applied to files:
spring-wolf-example/src/main/java/com/io/example/producer/KafkaProducer.javaspring-wolf-example/src/main/java/com/io/example/dto/KafkaDto.java
🧬 Code graph analysis (1)
spring-wolf-example/src/main/java/com/io/example/consumer/KafkaConsumer.java (2)
spring-batch-db-examples/src/main/java/com/io/example/repository/query/TestEntityQuery.java (1)
RequiredArgsConstructor(6-27)spring-wolf-example/src/main/java/com/io/example/producer/KafkaProducer.java (1)
Component(14-42)
🪛 actionlint (1.7.9)
.github/workflows/springwolf-example.yml
50-50: shellcheck reported issue in this script: SC2086:info:1:25: Double quote to prevent globbing and word splitting
(shellcheck)
50-50: shellcheck reported issue in this script: SC2086:info:2:74: Double quote to prevent globbing and word splitting
(shellcheck)
50-50: shellcheck reported issue in this script: SC2086:info:3:15: Double quote to prevent globbing and word splitting
(shellcheck)
50-50: shellcheck reported issue in this script: SC2129:style:1:1: Consider using { cmd1; cmd2; } >> file instead of individual redirects
(shellcheck)
🪛 Checkov (3.2.334)
spring-wolf-example/Dockerfile
[low] 1-47: Ensure that HEALTHCHECK instructions have been added to container images
(CKV_DOCKER_2)
🪛 Hadolint (2.14.0)
spring-wolf-example/Dockerfile
[warning] 16-16: Quote this to prevent word splitting.
(SC2046)
[warning] 40-40: COPY to a relative destination without WORKDIR set.
(DL3045)
[warning] 41-41: COPY to a relative destination without WORKDIR set.
(DL3045)
[warning] 42-42: COPY to a relative destination without WORKDIR set.
(DL3045)
[warning] 43-43: COPY to a relative destination without WORKDIR set.
(DL3045)
🪛 markdownlint-cli2 (0.18.1)
spring-wolf-example/README.md
39-39: Bare URL used
(MD034, no-bare-urls)
40-40: Bare URL used
(MD034, no-bare-urls)
48-48: Bare URL used
(MD034, no-bare-urls)
49-49: Bare URL used
(MD034, no-bare-urls)
50-50: Link text should be descriptive
(MD059, descriptive-link-text)
🪛 OSV Scanner (2.3.0)
spring-wolf-example/pom.xml
[MEDIUM] 1-1: org.apache.commons:commons-lang3 3.17.0: Apache Commons Lang is vulnerable to Uncontrolled Recursion when processing long inputs
[HIGH] 1-1: org.lz4:lz4-java 1.8.0: yawkat LZ4 Java has a possible information leak in Java safe decompressor
[HIGH] 1-1: org.lz4:lz4-java 1.8.0: LZ4 Java Compression has Out-of-bounds memory operations which can cause DoS
🪛 Shellcheck (0.11.0)
spring-wolf-example/docker/kafka/create_topic.sh
[info] 4-4: Double quote to prevent globbing and word splitting.
(SC2086)
[info] 4-4: Double quote to prevent globbing and word splitting.
(SC2086)
[info] 11-11: Double quote to prevent globbing and word splitting.
(SC2086)
[info] 11-11: Double quote to prevent globbing and word splitting.
(SC2086)
🪛 YAMLlint (1.37.1)
spring-wolf-example/.github/maven.yml
[warning] 3-3: truthy value should be one of [false, true]
(truthy)
[error] 14-14: too many spaces inside brackets
(brackets)
[error] 14-14: too many spaces inside brackets
(brackets)
[error] 15-15: too many spaces inside brackets
(brackets)
[error] 15-15: too many spaces inside brackets
(brackets)
spring-wolf-example/compose.yaml
[error] 46-46: too many spaces inside brackets
(brackets)
[error] 46-46: too many spaces inside brackets
(brackets)
.github/workflows/springwolf-example.yml
[warning] 3-3: truthy value should be one of [false, true]
(truthy)
[error] 23-23: too many spaces inside brackets
(brackets)
[error] 23-23: too many spaces inside brackets
(brackets)
[error] 24-24: too many spaces inside brackets
(brackets)
[error] 24-24: too many spaces inside brackets
(brackets)
🔇 Additional comments (14)
pom.xml (1)
25-25: Module inclusion forspring-wolf-examplelooks correctThe new module entry matches the module directory name and existing module structure; no issues here.
spring-wolf-example/src/main/java/com/io/example/SpringWolfExampleApplication.java (1)
1-13: Spring Boot entrypoint is idiomaticThe
@SpringBootApplicationclass andmainmethod follow standard Spring Boot conventions; nothing to change here.spring-wolf-example/.gitattributes (1)
1-2: Line-ending settings for wrapper scripts look goodThe attributes for
mvnwand*.cmdare appropriate for cross-platform wrapper usage.spring-wolf-example/.mvn/wrapper/maven-wrapper.properties (1)
1-3: Maven wrapper configuration is consistentWrapper properties are well-formed and align with the presence of
mvnw/mvnw.cmdin the module; no issues from this diff.spring-wolf-example/src/main/java/com/io/example/dto/KafkaDto.java (1)
1-3: DTO record is minimal and appropriateUsing a Java
recordforKafkaDtokeeps the example concise and idiomatic; no changes needed.spring-wolf-example/.gitignore (1)
1-33: Module-level .gitignore looks goodPatterns are standard for a Spring module and consistent with typical tooling; no changes needed.
spring-wolf-example/.dockerignore (1)
1-62: .dockerignore is comprehensive and appropriateThe ignore patterns nicely minimize build context (VCS, IDE, build outputs, temp files) and align with typical Java/Spring Docker setups; no changes needed.
spring-wolf-example/src/main/resources/application-prd.yaml (1)
1-58: Production config wiring looks consistent; verify env vars in deploymentThe bindings, Springwolf docket, and Kafka publishing config are internally consistent (all referencing
kafka.serverandkafka.topics.simple-topic); the main thing to double‑check is thatSPRING_WOLF_ENABLED,KAFKA_SERVER, andKAFKA_SIMPLE_TOPICare set correctly in the prod environment / compose overrides.spring-wolf-example/compose.yaml (1)
3-17: App service configuration looks appropriate.The hardcoded
container_name: appaligns with the CI pipeline requirements per project conventions. Environment variables properly override application defaults for Docker environment.spring-wolf-example/mvnw.cmd (1)
1-189: Standard Maven Wrapper script.This is the official Apache Maven Wrapper script (version 3.3.4). No custom modifications detected. The script properly handles distribution download, checksum validation, and cross-platform support.
spring-wolf-example/src/main/java/com/io/example/producer/KafkaProducer.java (1)
14-41: Clean Springwolf integration pattern.The producer implementation demonstrates proper usage of Springwolf's
@AsyncPublisherannotation with@AsyncOperationfor documenting the Kafka channel, combined with Spring Cloud Stream'sStreamBridgefor message publishing. This is a good example pattern for the project.spring-wolf-example/mvnw (1)
1-295: Standard Maven Wrapper script.This is the official Apache Maven Wrapper shell script (version 3.3.4). No custom modifications detected. The script properly handles:
- Multiple download methods (wget, curl, Java fallback)
- SHA-256 checksum validation
- Platform detection (Cygwin, MinGW, AIX, macOS, Linux)
- Maven Daemon (mvnd) support
- Snapshot distribution handling
spring-wolf-example/pom.xml (2)
7-12: Spring Boot 3.5.8 is a valid, released version available from Maven Central (released November 20, 2025) and poses no availability concerns for this dependency.Likely an incorrect or invalid review comment.
43-53: Springwolf library versions are current and compatible.Versions 1.20.0 for springwolf-ui and springwolf-kafka are the latest stable releases (as of December 2025) and are compatible with Spring Boot 3.5.x. No action needed.
There was a problem hiding this comment.
Actionable comments posted: 3
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
README.md (1)
15-30: Fix markdownlint MD058 by adding blank lines around the table.Add an empty line before the table (after Line 16) and after the last row (before Line 30) to satisfy
blanks-around-tables.Below you will find a summary table of each subproject. For more details, please refer to the individual README.md files. | Name | Description | |---------------------------------------------------------------------------|-----------------------------------------------------------------------------------| | [Spring Boot + Spring Batch + Database](./spring-batch-db-examples) | Demonstrates a basic integration between Spring Batch and Databases | | [Spring Boot + Spring Batch + File](./spring-batch-file-examples) | Demonstrates a basic integration between Spring Batch and Files | | [Spring Boot + Jasper](./spring-jasper-example) | Demonstrates a basic integration between Spring Boot and Jasper. | | [Spring Boot Multi Module](./spring-multimodule-example) | Basic demonstration of multi-module configuration in Spring Boot | | [Spring Boot + Kafka](./spring-kafka-example) | Demonstrates a basic integration between Spring Boot and Apache Kafka. | | [Spring Boot + Keycloak](./spring-keycloak-example) | Demonstrates a basic integration between Spring Boot and Keycloak. | | [Spring Boot + Oracle](./spring-oracle-example) | Demonstrates a basic integration between Spring Boot and Oracle. | | [Spring Boot + Postgres](./spring-postgres-example) | Demonstrates a basic integration between Spring Boot and Postgres. | | [Spring Boot + Mysql](./spring-mysql-example) | Demonstrates a basic integration between Spring Boot and Mysql. | | [Spring Boot + Grafana + Prometheus](./spring-prometheus-grafana-example) | Demonstrates a basic integration between Spring Boot With Grafana and Prometheus. | | [Spring Boot + Spring Wolf](./spring-wolf-example) | Demonstrates a basic integration between Spring Boot and Spring Wolf. | + ---
♻️ Duplicate comments (2)
spring-wolf-example/src/main/java/com/io/example/producer/KafkaProducer.java (1)
26-33: Header type-id is now correct; consider deriving it fromKafkaDto.class.getName()to avoid drift.spring-wolf-example/compose.yaml (1)
40-57: Makekafka-initwait for Kafka readiness + fix YAMLlint bracket spacing.
depends_on: service_startedcan still race Kafka readiness; and YAMLlint flags thecommandarray spacing. Also keepcontainer_nameas-is (CI requirement). Based on learnings, ...kafka: image: apache/kafka:4.1.1 container_name: kafka @@ networks: - kafka-net + healthcheck: + test: ["CMD-SHELL", "bash -lc 'echo > /dev/tcp/localhost/9092'"] + interval: 5s + timeout: 3s + retries: 30 kafka-init: container_name: kafka-init image: apache/kafka:4.1.1 depends_on: kafka: - condition: service_started + condition: service_healthy - command: [ "/bin/bash", "-c", "/create_topic.sh" ] + command: ["/bin/bash", "-c", "/create_topic.sh"]
📜 Review details
Configuration used: CodeRabbit UI
Review profile: ASSERTIVE
Plan: Pro
📒 Files selected for processing (5)
README.md(1 hunks)spring-wolf-example/compose.yaml(1 hunks)spring-wolf-example/src/main/java/com/io/example/consumer/KafkaConsumer.java(1 hunks)spring-wolf-example/src/main/java/com/io/example/producer/KafkaProducer.java(1 hunks)spring-wolf-example/src/main/java/com/io/example/util/ConstantsUtil.java(1 hunks)
🧰 Additional context used
🧠 Learnings (4)
📓 Common learnings
Learnt from: igorcampos-dev
Repo: igorcampos-dev/spring-integrations-examples PR: 40
File: spring-kafka-example/src/main/java/com/io/example/producer/KafkaProducerServiceImpl.java:26-26
Timestamp: 2025-07-27T19:48:52.891Z
Learning: In the spring-kafka-example project, user igorcampos-dev is comfortable with logging complete message objects in Kafka producer implementations and does not consider it a security concern, indicating no sensitive data is involved or other security measures are in place.
Learnt from: igorcampos-dev
Repo: igorcampos-dev/spring-integrations-examples PR: 40
File: spring-kafka-example/src/main/java/com/io/example/consumer/KafkaConsumerServiceImpl.java:18-22
Timestamp: 2025-07-27T19:57:31.204Z
Learning: In the spring-integrations-examples project, user igorcampos-dev prefers to keep simple example implementations minimal without additional error handling complexity, as the examples are for demonstration purposes rather than production use.
Learnt from: igorcampos-dev
Repo: igorcampos-dev/spring-integrations-examples PR: 21
File: spring-kafka-example/README.md:12-17
Timestamp: 2025-07-22T01:35:41.406Z
Learning: User igorcampos-dev prefers minimal, high-level documentation in README files without detailed version specifications, choosing to keep tech stack information simple rather than adding precise version numbers.
Learnt from: igorcampos-dev
Repo: igorcampos-dev/spring-integrations-examples PR: 21
File: spring-kafka-example/compose.yaml:30-32
Timestamp: 2025-07-22T01:30:57.054Z
Learning: User igorcampos-dev prefers to maintain environment parity between local development and production, avoiding development-specific configurations like ALLOW_PLAINTEXT_LISTENER even when they might provide clearer intent or safety nets.
Learnt from: igorcampos-dev
Repo: igorcampos-dev/spring-integrations-examples PR: 26
File: spring-kafka-example/compose.yaml:3-4
Timestamp: 2025-07-24T01:40:49.337Z
Learning: User igorcampos-dev requires hard-coded container names in Docker Compose files (like `container_name: app`) for CI pipeline validation purposes, which is a valid operational requirement that overrides the general best practice of avoiding hard-coded container names.
📚 Learning: 2025-07-27T19:48:52.891Z
Learnt from: igorcampos-dev
Repo: igorcampos-dev/spring-integrations-examples PR: 40
File: spring-kafka-example/src/main/java/com/io/example/producer/KafkaProducerServiceImpl.java:26-26
Timestamp: 2025-07-27T19:48:52.891Z
Learning: In the spring-kafka-example project, user igorcampos-dev is comfortable with logging complete message objects in Kafka producer implementations and does not consider it a security concern, indicating no sensitive data is involved or other security measures are in place.
Applied to files:
spring-wolf-example/src/main/java/com/io/example/consumer/KafkaConsumer.javaspring-wolf-example/src/main/java/com/io/example/producer/KafkaProducer.java
📚 Learning: 2025-07-27T19:48:29.678Z
Learnt from: igorcampos-dev
Repo: igorcampos-dev/spring-integrations-examples PR: 40
File: spring-kafka-example/src/main/java/com/io/example/producer/KafkaProducerServiceImpl.java:25-29
Timestamp: 2025-07-27T19:48:29.678Z
Learning: In the spring-kafka-example project, the message parameter in KafkaProducerServiceImpl.sendMessage(MessageRequestDtoRequest message) is guaranteed to never be null due to the application's design/validation constraints, making null checking unnecessary.
Applied to files:
spring-wolf-example/src/main/java/com/io/example/producer/KafkaProducer.java
📚 Learning: 2025-07-27T19:57:31.204Z
Learnt from: igorcampos-dev
Repo: igorcampos-dev/spring-integrations-examples PR: 40
File: spring-kafka-example/src/main/java/com/io/example/consumer/KafkaConsumerServiceImpl.java:18-22
Timestamp: 2025-07-27T19:57:31.204Z
Learning: In the spring-integrations-examples project, user igorcampos-dev prefers to keep simple example implementations minimal without additional error handling complexity, as the examples are for demonstration purposes rather than production use.
Applied to files:
README.md
🧬 Code graph analysis (2)
spring-wolf-example/src/main/java/com/io/example/consumer/KafkaConsumer.java (1)
spring-wolf-example/src/main/java/com/io/example/util/ConstantsUtil.java (1)
ConstantsUtil(3-5)
spring-wolf-example/src/main/java/com/io/example/producer/KafkaProducer.java (3)
spring-wolf-example/src/main/java/com/io/example/util/ConstantsUtil.java (1)
ConstantsUtil(3-5)spring-kafka-example/src/main/java/com/io/example/producer/KafkaProducerService.java (2)
KafkaProducerService(5-8)sendMessage(7-7)spring-kafka-example/src/main/java/com/io/example/producer/KafkaProducerServiceImpl.java (2)
KafkaProducerServiceImpl(11-31)sendMessage(24-29)
🪛 markdownlint-cli2 (0.18.1)
README.md
29-29: Tables should be surrounded by blank lines
(MD058, blanks-around-tables)
🪛 YAMLlint (1.37.1)
spring-wolf-example/compose.yaml
[error] 46-46: too many spaces inside brackets
(brackets)
[error] 46-46: too many spaces inside brackets
(brackets)
🔇 Additional comments (1)
spring-wolf-example/src/main/java/com/io/example/consumer/KafkaConsumer.java (1)
20-37: AsyncAPI/Springwolf header metadata now matchesKafkaDtopackage.
TheDEFAULT_CLASSID_FIELD_NAMEvalue is aligned tocom.io.example.dto.KafkaDto.
…emove unnecessary annotation from KafkaConsumer
There was a problem hiding this comment.
Actionable comments posted: 1
📜 Review details
Configuration used: CodeRabbit UI
Review profile: ASSERTIVE
Plan: Pro
📒 Files selected for processing (2)
.github/labeler.yml(1 hunks)spring-wolf-example/src/main/java/com/io/example/consumer/KafkaConsumer.java(1 hunks)
🧰 Additional context used
🧠 Learnings (3)
📓 Common learnings
Learnt from: igorcampos-dev
Repo: igorcampos-dev/spring-integrations-examples PR: 40
File: spring-kafka-example/src/main/java/com/io/example/producer/KafkaProducerServiceImpl.java:26-26
Timestamp: 2025-07-27T19:48:52.891Z
Learning: In the spring-kafka-example project, user igorcampos-dev is comfortable with logging complete message objects in Kafka producer implementations and does not consider it a security concern, indicating no sensitive data is involved or other security measures are in place.
Learnt from: igorcampos-dev
Repo: igorcampos-dev/spring-integrations-examples PR: 21
File: spring-kafka-example/README.md:12-17
Timestamp: 2025-07-22T01:35:41.406Z
Learning: User igorcampos-dev prefers minimal, high-level documentation in README files without detailed version specifications, choosing to keep tech stack information simple rather than adding precise version numbers.
Learnt from: igorcampos-dev
Repo: igorcampos-dev/spring-integrations-examples PR: 21
File: spring-kafka-example/compose.yaml:30-32
Timestamp: 2025-07-22T01:30:57.054Z
Learning: User igorcampos-dev prefers to maintain environment parity between local development and production, avoiding development-specific configurations like ALLOW_PLAINTEXT_LISTENER even when they might provide clearer intent or safety nets.
Learnt from: igorcampos-dev
Repo: igorcampos-dev/spring-integrations-examples PR: 26
File: spring-kafka-example/compose.yaml:3-4
Timestamp: 2025-07-24T01:40:49.337Z
Learning: User igorcampos-dev requires hard-coded container names in Docker Compose files (like `container_name: app`) for CI pipeline validation purposes, which is a valid operational requirement that overrides the general best practice of avoiding hard-coded container names.
📚 Learning: 2025-07-27T19:48:52.891Z
Learnt from: igorcampos-dev
Repo: igorcampos-dev/spring-integrations-examples PR: 40
File: spring-kafka-example/src/main/java/com/io/example/producer/KafkaProducerServiceImpl.java:26-26
Timestamp: 2025-07-27T19:48:52.891Z
Learning: In the spring-kafka-example project, user igorcampos-dev is comfortable with logging complete message objects in Kafka producer implementations and does not consider it a security concern, indicating no sensitive data is involved or other security measures are in place.
Applied to files:
spring-wolf-example/src/main/java/com/io/example/consumer/KafkaConsumer.java
📚 Learning: 2025-07-27T19:51:52.736Z
Learnt from: igorcampos-dev
Repo: igorcampos-dev/spring-integrations-examples PR: 40
File: spring-kafka-example/src/main/java/com/io/example/consumer/KafkaConsumerService.java:3-3
Timestamp: 2025-07-27T19:51:52.736Z
Learning: In the spring-integrations-examples project, user igorcampos-dev uses SuppressWarnings("unused") annotations to suppress IntelliJ IDEA alerts, and these annotations should not be suggested for removal as they serve a specific purpose in their development workflow.
Applied to files:
spring-wolf-example/src/main/java/com/io/example/consumer/KafkaConsumer.java
🧬 Code graph analysis (1)
spring-wolf-example/src/main/java/com/io/example/consumer/KafkaConsumer.java (2)
spring-wolf-example/src/main/java/com/io/example/util/ConstantsUtil.java (1)
ConstantsUtil(3-5)spring-wolf-example/src/main/java/com/io/example/producer/KafkaProducer.java (1)
Component(14-42)
🔇 Additional comments (3)
.github/labeler.yml (1)
29-32: Label glob now matches the actual module directory.This fixes the earlier hyphen mismatch, so the label should correctly apply to changes under
spring-wolf-example/.spring-wolf-example/src/main/java/com/io/example/consumer/KafkaConsumer.java (2)
15-17: Previous issue resolved:@RequiredArgsConstructorremoved.The unnecessary annotation has been removed as requested in the previous review.
19-36: Previous issue resolved: FQCN corrected.The header type-id value now correctly uses
"com.io.example.dto.KafkaDto", matching the actual DTO package. The AsyncAPI annotations are properly configured, and the consumer implementation correctly logs the received message.
… Kafka integration and Docker support
Summary by CodeRabbit
New Features
CI
Documentation
Chores
✏️ Tip: You can customize this high-level summary in your review settings.