Conversation
|
Note Reviews pausedIt looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
WalkthroughRewrote Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes 🚥 Pre-merge checks | ✅ 1 | ❌ 2❌ Failed checks (1 warning, 1 inconclusive)
✅ Passed checks (1 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
📝 Coding Plan
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: 0
🧹 Nitpick comments (7)
backend-core-data/src/main/java/com/flowingcode/backendcore/dao/UpdateDao.java (1)
22-27: Optional: Add@sinceannotation
If your project tracks API evolution, consider adding an@since <version>tag to indicate when this interface was introduced or last modified.backend-core-data/src/main/java/com/flowingcode/backendcore/dao/DeletionDao.java (1)
22-27: Optional: Add@sinceannotation
Consider including an@since <version>tag to track whenDeletionDaowas introduced or last updated in the API.backend-core-model/src/main/java/com/flowingcode/backendcore/model/constraints/AttributeRelationalConstraint.java (1)
28-32: Optional: Document constructor parameters
Since this class relies on Lombok’s@RequiredArgsConstructor, it’s helpful to add@param attribute,@param value, and@param operatortags in the Javadoc (either at the class or constructor level) to document these parameters explicitly.backend-core-model/src/main/java/com/flowingcode/backendcore/model/constraints/AttributeLikeConstraint.java (1)
28-32: Optional: Add@paramtags for constructor fields
To improve clarity, include@param attributeand@param patterntags for the Lombok-generated constructor parameters.backend-core-model/src/main/java/com/flowingcode/backendcore/model/constraints/AttributeILikeConstraint.java (2)
28-32: Optional: Document constructor parameters
Consider adding@param attributeand@param patterntags to the class- or constructor-level Javadoc to describe the Lombok-generated constructor arguments.
38-39: Inconsistent indentation style
This class’s fields are indented with two spaces, whereas other constraint classes use tabs. Please align with the project’s tab-based indentation for consistency.README.md (1)
17-17: Refine compound-adjective hyphenationConsider removing the hyphen in “Strongly-typed filtering and query support” (e.g., use “strongly typed filtering and query support”) for consistency and readability.
🧰 Tools
🪛 LanguageTool
[uncategorized] ~17-~17: The hyphen in Strongly-typed is redundant.
Context: ...D interfaces and base implementations - Strongly-typed filtering and query support - Reusable ...(ADVERB_LY_HYPHEN_FIX)
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (30)
README.md(1 hunks)backend-core-business-impl/src/main/java/com/flowingcode/backendcore/service/validation/CreationValidator.java(1 hunks)backend-core-business-impl/src/main/java/com/flowingcode/backendcore/service/validation/DeletionValidator.java(1 hunks)backend-core-business-impl/src/main/java/com/flowingcode/backendcore/service/validation/InvariantValidator.java(1 hunks)backend-core-business-impl/src/main/java/com/flowingcode/backendcore/service/validation/ServiceValidationKind.java(1 hunks)backend-core-business-impl/src/main/java/com/flowingcode/backendcore/service/validation/UpdateValidator.java(1 hunks)backend-core-business-spring-impl/src/main/java/com/flowingcode/backendcore/service/ConstraintSpecification.java(1 hunks)backend-core-data-impl/src/main/java/com/flowingcode/backendcore/dao/jpa/ConstraintTransformerJpaImpl.java(1 hunks)backend-core-data-impl/src/main/java/com/flowingcode/backendcore/dao/jpa/ConversionJpaDaoSupport.java(1 hunks)backend-core-data-impl/src/main/java/com/flowingcode/backendcore/dao/jpa/JpaDaoSupport.java(1 hunks)backend-core-data/src/main/java/com/flowingcode/backendcore/dao/CreationDao.java(1 hunks)backend-core-data/src/main/java/com/flowingcode/backendcore/dao/CrudDao.java(1 hunks)backend-core-data/src/main/java/com/flowingcode/backendcore/dao/DeletionDao.java(1 hunks)backend-core-data/src/main/java/com/flowingcode/backendcore/dao/QueryDao.java(1 hunks)backend-core-data/src/main/java/com/flowingcode/backendcore/dao/UpdateDao.java(1 hunks)backend-core-model/src/main/java/com/flowingcode/backendcore/model/Constraint.java(1 hunks)backend-core-model/src/main/java/com/flowingcode/backendcore/model/constraints/AttributeBetweenConstraint.java(1 hunks)backend-core-model/src/main/java/com/flowingcode/backendcore/model/constraints/AttributeConstraint.java(1 hunks)backend-core-model/src/main/java/com/flowingcode/backendcore/model/constraints/AttributeILikeConstraint.java(1 hunks)backend-core-model/src/main/java/com/flowingcode/backendcore/model/constraints/AttributeInConstraint.java(1 hunks)backend-core-model/src/main/java/com/flowingcode/backendcore/model/constraints/AttributeLikeConstraint.java(1 hunks)backend-core-model/src/main/java/com/flowingcode/backendcore/model/constraints/AttributeNullConstraint.java(1 hunks)backend-core-model/src/main/java/com/flowingcode/backendcore/model/constraints/AttributeRelationalConstraint.java(1 hunks)backend-core-model/src/main/java/com/flowingcode/backendcore/model/constraints/NegatedConstraint.java(1 hunks)backend-core-model/src/main/java/com/flowingcode/backendcore/model/constraints/RelationalConstraint.java(1 hunks)backend-core-model/src/main/java/com/flowingcode/backendcore/validation/CreationValidationException.java(1 hunks)backend-core-model/src/main/java/com/flowingcode/backendcore/validation/DeletionValidationException.java(1 hunks)backend-core-model/src/main/java/com/flowingcode/backendcore/validation/UpdateValidationException.java(1 hunks)backend-core-model/src/main/java/com/flowingcode/backendcore/validation/ValidationKind.java(1 hunks)backend-core-model/src/main/java/com/flowingcode/backendcore/validation/ValidationSupport.java(1 hunks)
🧰 Additional context used
🪛 LanguageTool
README.md
[misspelling] ~12-~12: This word is normally spelled as one.
Context: ...s-impl) - **Spring Boot integration**: auto-configuration support (backend-core-business-spring-...
(EN_COMPOUNDS_AUTO_CONFIGURATION)
[uncategorized] ~17-~17: The hyphen in Strongly-typed is redundant.
Context: ...D interfaces and base implementations - Strongly-typed filtering and query support - Reusable ...
(ADVERB_LY_HYPHEN_FIX)
[misspelling] ~55-~55: This word is normally spelled as one.
Context: ...core-business-spring-impl`| Spring Boot auto-configuration for services and repositories ...
(EN_COMPOUNDS_AUTO_CONFIGURATION)
🔇 Additional comments (30)
backend-core-model/src/main/java/com/flowingcode/backendcore/model/constraints/AttributeInConstraint.java (1)
30-34: Well-written class Javadoc forAttributeInConstraint.
The added documentation clearly explains the purpose of this constraint and includes the author attribution.backend-core-model/src/main/java/com/flowingcode/backendcore/model/constraints/AttributeNullConstraint.java (1)
9-13: Clear and concise Javadoc forAttributeNullConstraint.
The description correctly states the intent of the constraint and the author tag is present.backend-core-model/src/main/java/com/flowingcode/backendcore/validation/UpdateValidationException.java (1)
8-12: Appropriate Javadoc forUpdateValidationException.
The documentation accurately conveys when this exception is thrown, and the author tag is consistent.backend-core-model/src/main/java/com/flowingcode/backendcore/validation/DeletionValidationException.java (1)
8-12: Good Javadoc addition toDeletionValidationException.
The comment succinctly explains the class’s role and includes the author attribution.backend-core-model/src/main/java/com/flowingcode/backendcore/model/Constraint.java (1)
24-28: Solid documentation for theConstraintinterface.
The new Javadoc clarifies the interface’s purpose and includes the author tag, matching the project’s style.backend-core-model/src/main/java/com/flowingcode/backendcore/model/constraints/AttributeConstraint.java (1)
24-28: Well-structured Javadoc commentThe added documentation clearly explains the purpose of this marker interface and follows standard Javadoc conventions.
backend-core-model/src/main/java/com/flowingcode/backendcore/model/constraints/NegatedConstraint.java (1)
30-34: Clear and concise JavadocThe added documentation effectively communicates the purpose of this constraint class and follows proper Javadoc conventions.
backend-core-model/src/main/java/com/flowingcode/backendcore/model/constraints/AttributeBetweenConstraint.java (1)
29-33: Informative Javadoc with clear semanticsThe added documentation clearly explains the purpose of this constraint class and importantly specifies that the bounds are inclusive, which is valuable information for users of this class.
backend-core-model/src/main/java/com/flowingcode/backendcore/model/constraints/RelationalConstraint.java (1)
24-28: Precise Javadoc for interface purposeThe added documentation effectively describes the purpose of this interface as defining relational operators for constraints, which helps developers understand its role in the constraint hierarchy.
backend-core-data/src/main/java/com/flowingcode/backendcore/dao/CreationDao.java (1)
22-28: Thorough Javadoc with well-documented type parametersThe added documentation clearly explains the purpose of this DAO interface and provides valuable descriptions of both type parameters, which is particularly helpful for generic interfaces.
backend-core-data/src/main/java/com/flowingcode/backendcore/dao/UpdateDao.java (1)
22-27: Well-documented Javadoc forUpdateDao
The new Javadoc succinctly describes the interface’s purpose and correctly includes the generic<T>parameter.backend-core-data/src/main/java/com/flowingcode/backendcore/dao/DeletionDao.java (1)
22-27: Well-documented Javadoc forDeletionDao
The added comment clearly explains the interface’s role and includes the generic type parameter tag.backend-core-model/src/main/java/com/flowingcode/backendcore/model/constraints/AttributeRelationalConstraint.java (1)
28-32: Descriptive Javadoc forAttributeRelationalConstraint
The block accurately conveys the class’s purpose and includes the author tag.backend-core-model/src/main/java/com/flowingcode/backendcore/model/constraints/AttributeLikeConstraint.java (1)
28-32: Descriptive Javadoc forAttributeLikeConstraint
The new comment correctly explains the SQL LIKE behavior and includes the author.backend-core-model/src/main/java/com/flowingcode/backendcore/model/constraints/AttributeILikeConstraint.java (1)
28-32: Descriptive Javadoc forAttributeILikeConstraint
The added Javadoc clearly explains the case-insensitive pattern matching role and includes the author.backend-core-data/src/main/java/com/flowingcode/backendcore/dao/QueryDao.java (1)
27-33: Well-written interface-level Javadoc.The new Javadoc succinctly captures the role of
QueryDaoand correctly documents the generic type parameters. The formatting and tags align with project conventions.backend-core-data/src/main/java/com/flowingcode/backendcore/dao/CrudDao.java (1)
22-28: Clear and consistent CRUD interface documentation.The added Javadoc accurately describes
CrudDao’s combined responsibilities and the generic parameters. It matches the style of the other DAO interfaces.backend-core-model/src/main/java/com/flowingcode/backendcore/validation/CreationValidationException.java (1)
8-12: Accurate exception Javadoc.The class-level comment clearly states the purpose of
CreationValidationExceptionand includes the author tag. Placement before the@SuppressWarningsis correct.backend-core-business-impl/src/main/java/com/flowingcode/backendcore/service/validation/ServiceValidationKind.java (1)
9-13: Descriptive enum-level Javadoc.This Javadoc effectively explains the intent of
ServiceValidationKind. It’s consistent with the newly documented validator interfaces.backend-core-model/src/main/java/com/flowingcode/backendcore/validation/ValidationKind.java (1)
4-8: Concise interface documentation.The Javadoc for
ValidationKindclearly defines its purpose and author. The use of a single-sentence summary is appropriate for this simple interface.backend-core-business-impl/src/main/java/com/flowingcode/backendcore/service/validation/UpdateValidator.java (1)
31-36: Well-structured Javadoc documentation for UpdateValidator
The newly added Javadoc correctly describes the purpose of the interface, includes a<T>parameter description, and attributes authorship. It aligns with the existing documentation style across related validator interfaces.backend-core-business-spring-impl/src/main/java/com/flowingcode/backendcore/service/ConstraintSpecification.java (1)
16-21: Clear and consistent Javadoc for ConstraintSpecification
The Javadoc block accurately explains the class’s role as a Spring Data JPASpecificationapplying a modelConstraint, properly references the generic type, and includes an author tag. It maintains consistency with the broader documentation improvements.backend-core-business-impl/src/main/java/com/flowingcode/backendcore/service/validation/CreationValidator.java (1)
31-36: Comprehensive Javadoc for CreationValidator
The added documentation concisely covers the interface’s intent for creation operations, includes the generic parameter, and correctly lists the author. It matches the style of sibling validator interfaces.backend-core-data-impl/src/main/java/com/flowingcode/backendcore/dao/jpa/ConstraintTransformerJpaImpl.java (1)
47-51: Accurate Javadoc for ConstraintTransformerJpaImpl
The new Javadoc block clearly states this class’s role as the JPA implementation ofConstraintTransformer, references the correct return type, and includes the author tag. It’s consistent with related DAO and transformer documentation.backend-core-business-impl/src/main/java/com/flowingcode/backendcore/service/validation/InvariantValidator.java (1)
13-18: Precise Javadoc for InvariantValidator
The Javadoc succinctly explains that this interface enforces invariants for both creation and update operations, includes the<T>parameter, and lists the author. It aligns with the documentation conventions used throughout the validator package.backend-core-business-impl/src/main/java/com/flowingcode/backendcore/service/validation/DeletionValidator.java (1)
31-36: Well-formed Javadoc for DeletionValidatorThe added Javadoc block clearly describes the purpose of
DeletionValidator<T>, includes a<T>param description, and attributes authorship. It aligns with the style of other validator interfaces—no further changes needed here.backend-core-model/src/main/java/com/flowingcode/backendcore/validation/ValidationSupport.java (1)
26-31: Clear Javadoc for ValidationSupportThe new documentation succinctly explains the interface’s role and type parameter, and the author tag is consistent with project conventions. Everything looks good.
backend-core-data-impl/src/main/java/com/flowingcode/backendcore/dao/jpa/ConversionJpaDaoSupport.java (1)
42-49: Descriptive Javadoc for ConversionJpaDaoSupportThe interface-level Javadoc accurately outlines type parameters
<S>,<T>,<K>and the interface’s responsibilities. Authorship is noted correctly. No functional impact observed.backend-core-data-impl/src/main/java/com/flowingcode/backendcore/dao/jpa/JpaDaoSupport.java (1)
26-32: Consistent Javadoc for JpaDaoSupportThe added documentation clearly states the interface’s purpose, type parameters, and author. It matches the style of related DAO support interfaces.
README.md (1)
1-110: Comprehensive README improvementsThe expanded README offers a well-structured overview, detailed usage instructions, module breakdown, build steps, and contribution guidelines. The additions greatly enhance project onboarding and align with the enriched Javadoc across the codebase.
🧰 Tools
🪛 LanguageTool
[misspelling] ~12-~12: This word is normally spelled as one.
Context: ...s-impl) - **Spring Boot integration**: auto-configuration support (backend-core-business-spring-...(EN_COMPOUNDS_AUTO_CONFIGURATION)
[uncategorized] ~17-~17: The hyphen in Strongly-typed is redundant.
Context: ...D interfaces and base implementations - Strongly-typed filtering and query support - Reusable ...(ADVERB_LY_HYPHEN_FIX)
[misspelling] ~55-~55: This word is normally spelled as one.
Context: ...core-business-spring-impl`| Spring Boot auto-configuration for services and repositories ...(EN_COMPOUNDS_AUTO_CONFIGURATION)
| import com.flowingcode.backendcore.model.Constraint; | ||
|
|
||
| /** | ||
| * Marker interface for constraints applied to entity attributes. |
There was a problem hiding this comment.
A marker interface is an interface with no methods or fields.
This would be a "Specialization of {@code Constraint} that applies to entity attributes."
| import lombok.RequiredArgsConstructor; | ||
|
|
||
| /** | ||
| * JPA implementation of {@link com.flowingcode.backendcore.model.ConstraintTransformer} for converting model constraints into JPA {@link jakarta.persistence.criteria.Predicate} instances. |
There was a problem hiding this comment.
The following identifiers must never be linked and should always be wrapped in {@code}:
- The names of the direct supertype and any implemented interfaces of the documented type (in a type-level comment)
https://github.com/FlowingCode/DevelopmentConventions/blob/94fe5e464b0d91cb56542aeb098304c92f88b2ec/code-style.md#when-to-use-code
| import lombok.RequiredArgsConstructor; | ||
|
|
||
| /** | ||
| * Spring Data JPA {@link org.springframework.data.jpa.domain.Specification} that applies a model {@link com.flowingcode.backendcore.model.Constraint}. |
There was a problem hiding this comment.
The following identifiers must never be linked and should always be wrapped in {@code}:
- The names of the direct supertype and any implemented interfaces of the documented type (in a type-level comment)
https://github.com/FlowingCode/DevelopmentConventions/blob/94fe5e464b0d91cb56542aeb098304c92f88b2ec/code-style.md#when-to-use-code
README.md
Outdated
| 5. Send a pull request and comment on the issue once it's ready. | ||
|
|
||
| # Developer Guide | ||
| ## License |
This commit addresses the feedback provided by javier-godoy on PR #103: - Updated Javadoc for `AttributeConstraint.java` to clarify it as a specialization of `Constraint`. - Updated Javadoc for `ConstraintTransformerJpaImpl.java` and `ConstraintSpecification.java` to use `{@code}` for supertypes and implemented interfaces, as per FlowingCode development conventions. - Added author information to the License section in README.md.
This commit addresses the feedback provided by javier-godoy on PR #103: - Updated Javadoc for `AttributeConstraint.java` to clarify it as a specialization of `Constraint`. - Updated Javadoc for `ConstraintTransformerJpaImpl.java` and `ConstraintSpecification.java` to use `{@code}` for supertypes and implemented interfaces, as per FlowingCode development conventions. - Added author information to the License section in README.md.
There was a problem hiding this comment.
Actionable comments posted: 0
🧹 Nitpick comments (5)
README.md (5)
5-5: Refine project tagline for clarityConsider adding an article and clarifying the scope. For example:
- Common utilities for backend enterprise application development. + A collection of utilities for enterprise backend application development.
16-20: Unify hyphenation in feature listRemove the hyphen in “Strongly-typed” to match the adverb–adjective pattern. For example:
- - Strongly-typed filtering and query support + - Strongly typed filtering and query support🧰 Tools
🪛 LanguageTool
[uncategorized] ~17-~17: The hyphen in Strongly-typed is redundant.
Context: ...D interfaces and base implementations - Strongly-typed filtering and query support - Reusable ...(ADVERB_LY_HYPHEN_FIX)
60-66: Clarify placeholder comment in dependency snippetThe comment might confuse users since
<artifactId>is also an XML tag. Consider rewording:- <!-- Replace <artifactId> with the module(s) you need --> + <!-- Replace the <artifactId> tag content with the module(s) you need -->
97-106: Enhance contribution guidelines with Code of Conduct and CLAConsider adding steps to reference the project's Code of Conduct and any Contributor License Agreement. For example:
5. Send a pull request and comment on the issue once it's ready. + 6. Review and adhere to the Code of Conduct (`CODE_OF_CONDUCT.md`). + 7. Sign the Contributor License Agreement (CLA) if applicable.
109-109: Specify the article for the Apache LicenseInclude “the” before Apache License 2.0 for grammatical accuracy:
- This library is distributed under Apache License 2.0. For license terms, see LICENSE.txt. + This library is distributed under the Apache License 2.0. For license terms, see LICENSE.txt.🧰 Tools
🪛 LanguageTool
[uncategorized] ~109-~109: You might be missing the article “the” here.
Context: ...thor This library is distributed under Apache License 2.0. For license terms, see LIC...(AI_EN_LECTOR_MISSING_DETERMINER_THE)
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (4)
README.md(1 hunks)backend-core-business-spring-impl/src/main/java/com/flowingcode/backendcore/service/ConstraintSpecification.java(1 hunks)backend-core-data-impl/src/main/java/com/flowingcode/backendcore/dao/jpa/ConstraintTransformerJpaImpl.java(1 hunks)backend-core-model/src/main/java/com/flowingcode/backendcore/model/constraints/AttributeConstraint.java(1 hunks)
🚧 Files skipped from review as they are similar to previous changes (3)
- backend-core-model/src/main/java/com/flowingcode/backendcore/model/constraints/AttributeConstraint.java
- backend-core-data-impl/src/main/java/com/flowingcode/backendcore/dao/jpa/ConstraintTransformerJpaImpl.java
- backend-core-business-spring-impl/src/main/java/com/flowingcode/backendcore/service/ConstraintSpecification.java
🧰 Additional context used
🪛 LanguageTool
README.md
[misspelling] ~12-~12: This word is normally spelled as one.
Context: ...s-impl) - **Spring Boot integration**: auto-configuration support (backend-core-business-spring-...
(EN_COMPOUNDS_AUTO_CONFIGURATION)
[uncategorized] ~17-~17: The hyphen in Strongly-typed is redundant.
Context: ...D interfaces and base implementations - Strongly-typed filtering and query support - Reusable ...
(ADVERB_LY_HYPHEN_FIX)
[misspelling] ~55-~55: This word is normally spelled as one.
Context: ...core-business-spring-impl`| Spring Boot auto-configuration for services and repositories ...
(EN_COMPOUNDS_AUTO_CONFIGURATION)
[uncategorized] ~109-~109: You might be missing the article “the” here.
Context: ...thor This library is distributed under Apache License 2.0. For license terms, see LIC...
(AI_EN_LECTOR_MISSING_DETERMINER_THE)
[uncategorized] ~110-~110: You might be missing the article “the” here.
Context: ...0. For license terms, see LICENSE.txt. Backend Core is written by Flowing Code S.A.
(AI_EN_LECTOR_MISSING_DETERMINER_THE)
🔇 Additional comments (11)
README.md (11)
1-1: License badge usage looks goodThe Apache 2.0 license badge is correctly formatted and links to LICENSE.txt.
7-7: Overview wording is clearThe introduction accurately describes the modular libraries and clean architecture focus.
9-12: Module list is comprehensive and clearThe bullet list correctly enumerates the core modules with concise descriptions.
🧰 Tools
🪛 LanguageTool
[misspelling] ~12-~12: This word is normally spelled as one.
Context: ...s-impl) - **Spring Boot integration**: auto-configuration support (backend-core-business-spring-...(EN_COMPOUNDS_AUTO_CONFIGURATION)
26-27: Prerequisites section is clearThe Java and Maven version requirements are appropriately specified.
32-34: Build instructions are straightforwardThe git clone and Maven install steps are clear and correct.
40-42: Documentation generation steps are correctThe
mvn sitecommand and instructions align with standard Maven practices.
48-55: Module table formatting is effectiveThe Markdown table clearly outlines each module and its purpose.
🧰 Tools
🪛 LanguageTool
[misspelling] ~55-~55: This word is normally spelled as one.
Context: ...core-business-spring-impl`| Spring Boot auto-configuration for services and repositories ...(EN_COMPOUNDS_AUTO_CONFIGURATION)
70-77: Snapshot repository snippet is correctThe configuration for accessing snapshot artifacts looks accurate.
86-87: Documentation reference links are validThe links to the Maven Site and design markdown docs are well-placed.
89-90: Release notes section is conciseLinking to GitHub releases provides users quick access to changelogs.
93-96: Issue tracking instructions are clearGuidance to report bugs via GitHub Issues is straightforward.
javier-godoy
left a comment
There was a problem hiding this comment.
The documentation changes look good. Please ensure the commit message aligns with our Commit Message Guidelines.
6646f54 to
ef89fc3
Compare
|
I've improved the commit messages, can you give this a final look? |
There was a problem hiding this comment.
Actionable comments posted: 2
🧹 Nitpick comments (4)
README.md (4)
7-7: Consider linking to Clean Architecture resources
To aid new users, consider adding a hyperlink or brief definition for “clean architecture” (e.g., reference Uncle Bob’s Clean Architecture).
29-30: Add version checkout step to build instructions
It may be helpful to instruct users to check out a specific release tag or branch before building. For example:git clone https://github.com/FlowingCode/backend-core.git cd backend-core git checkout v1.1.0-SNAPSHOT # or desired tag mvn clean install
31-35: Clarify build command context
Consider clarifying that the build commands should be run from the project root. Optionally, you can combine clone and install steps:git clone https://github.com/FlowingCode/backend-core.git && \ cd backend-core && \ mvn clean install
109-111: Consistent article usage in License & Author section
You may want to add “the” before “Apache License 2.0” and clarify authorship. For example:This library is distributed under the Apache License 2.0. For license terms, see LICENSE.txt. Backend Core is developed and maintained by Flowing Code S.A.🧰 Tools
🪛 LanguageTool
[uncategorized] ~109-~109: You might be missing the article “the” here.
Context: ...thor This library is distributed under Apache License 2.0. For license terms, see LIC...(AI_EN_LECTOR_MISSING_DETERMINER_THE)
[uncategorized] ~110-~110: You might be missing the article “the” here.
Context: ...0. For license terms, see LICENSE.txt. Backend Core is written by Flowing Code S.A.(AI_EN_LECTOR_MISSING_DETERMINER_THE)
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (4)
README.md(1 hunks)backend-core-business-spring-impl/src/main/java/com/flowingcode/backendcore/service/ConstraintSpecification.java(1 hunks)backend-core-data-impl/src/main/java/com/flowingcode/backendcore/dao/jpa/ConstraintTransformerJpaImpl.java(1 hunks)backend-core-model/src/main/java/com/flowingcode/backendcore/model/constraints/AttributeConstraint.java(1 hunks)
✅ Files skipped from review due to trivial changes (1)
- backend-core-business-spring-impl/src/main/java/com/flowingcode/backendcore/service/ConstraintSpecification.java
🚧 Files skipped from review as they are similar to previous changes (2)
- backend-core-model/src/main/java/com/flowingcode/backendcore/model/constraints/AttributeConstraint.java
- backend-core-data-impl/src/main/java/com/flowingcode/backendcore/dao/jpa/ConstraintTransformerJpaImpl.java
🧰 Additional context used
🪛 LanguageTool
README.md
[misspelling] ~12-~12: This word is normally spelled as one.
Context: ...s-impl) - **Spring Boot integration**: auto-configuration support (backend-core-business-spring-...
(EN_COMPOUNDS_AUTO_CONFIGURATION)
[uncategorized] ~17-~17: The hyphen in Strongly-typed is redundant.
Context: ...D interfaces and base implementations - Strongly-typed filtering and query support - Reusable ...
(ADVERB_LY_HYPHEN_FIX)
[misspelling] ~55-~55: This word is normally spelled as one.
Context: ...core-business-spring-impl`| Spring Boot auto-configuration for services and repositories ...
(EN_COMPOUNDS_AUTO_CONFIGURATION)
[uncategorized] ~109-~109: You might be missing the article “the” here.
Context: ...thor This library is distributed under Apache License 2.0. For license terms, see LIC...
(AI_EN_LECTOR_MISSING_DETERMINER_THE)
[uncategorized] ~110-~110: You might be missing the article “the” here.
Context: ...0. For license terms, see LICENSE.txt. Backend Core is written by Flowing Code S.A.
(AI_EN_LECTOR_MISSING_DETERMINER_THE)
🔇 Additional comments (18)
README.md (18)
5-5: Looks good.
37-38: Looks good.
39-42: Looks good.
44-44: Looks good.
48-56: Looks good.🧰 Tools
🪛 LanguageTool
[misspelling] ~55-~55: This word is normally spelled as one.
Context: ...core-business-spring-impl`| Spring Boot auto-configuration for services and repositories ...(EN_COMPOUNDS_AUTO_CONFIGURATION)
57-57: Looks good.
59-66: Looks good.
68-68: Looks good.
80-80: Looks good.
89-89: Looks good.
91-91: Looks good.
93-96: Looks good.
97-98: Looks good.
99-99: Looks good.
101-106: Looks good.
107-108: Looks good.
84-87:Details
✅ Verification successful
Verify documentation file paths
Confirm that the referenced design documentation file exists atsrc/site/markdown/index.md:
🏁 Script executed:
#!/bin/bash # Verify design documentation source if [[ ! -f src/site/markdown/index.md ]]; then echo "Error: src/site/markdown/index.md not found" exit 1 else echo "Design documentation exists" fiLength of output: 104
Design documentation path verified
The referenced file
src/site/markdown/index.mdexists as expected, so no changes are needed to the README.
1-2:Details
✅ Verification successful
Verify the license badge link
Ensure that theLICENSE.txtfile exists at the repository root and that the badge URL points to the correct license file.
🏁 Script executed:
#!/bin/bash # Verify LICENSE.txt existence if [[ ! -f LICENSE.txt ]]; then echo "Error: LICENSE.txt not found in repository root" exit 1 else echo "LICENSE.txt exists" fiLength of output: 71
License badge link verified
LICENSE.txt exists at the repository root, and the badge URL correctly points to it. No further changes needed.
javier-godoy
left a comment
There was a problem hiding this comment.
Please review that the commits are atomic.
- First changeset
docs: add missing javadocs
docs: replace@linkwith@code
docs: fix the javadoc with a better description of the interface - Second changeset
docs: improve the license section
docs: improve README.md
0b0f80d to
d977b36
Compare
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
d977b36 to
8e47275
Compare
There was a problem hiding this comment.
Actionable comments posted: 1
♻️ Duplicate comments (1)
README.md (1)
73-73:⚠️ Potential issue | 🟡 MinorUse the canonical snapshots URL to avoid redirect hops.
Line 73 should use a trailing slash (
.../snapshots/) to avoid an unnecessary 301 on repository resolution.🔧 Suggested fix
- <url>https://maven.flowingcode.com/snapshots</url> + <url>https://maven.flowingcode.com/snapshots/</url>🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@README.md` at line 73, The repository README contains the Maven snapshots repository URL literal "<url>https://maven.flowingcode.com/snapshots</url>" which lacks a trailing slash and causes a 301 redirect; update that URL to include the trailing slash (https://maven.flowingcode.com/snapshots/) so the canonical snapshots URL is used and repository resolution avoids the redirect.
🧹 Nitpick comments (3)
backend-core-model/src/main/java/com/flowingcode/backendcore/validation/ValidationKind.java (1)
4-8: Keep this contract description layer-agnostic.
ValidationKindsits in the shared validation module and only exposes a validator type, so calling out "service validation steps" makes the API sound narrower than it is.✏️ Possible wording
- * Defines the type of validator used for service validation steps. + * Defines the validator type associated with a validation step.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@backend-core-model/src/main/java/com/flowingcode/backendcore/validation/ValidationKind.java` around lines 4 - 8, The Javadoc on ValidationKind is service-specific; make it layer-agnostic by replacing "Defines the type of validator used for service validation steps." with a neutral description such as "Defines the kinds/types of validators used in validation processes" (or similar) so the API reads as shared/shared-module-appropriate; update the comment on the ValidationKind enum/class to remove "service" and ensure the author tag and general formatting remain unchanged.backend-core-data-impl/src/main/java/com/flowingcode/backendcore/dao/jpa/ConversionJpaDaoSupport.java (1)
42-49: Document thegetPersistentClass()assumption in the interface summary.This type exposes query helpers in addition to CRUD, and its default
getPersistentClass()only works when implementations surface concrete generic parameters directly. That contract is easy to miss from the current Javadoc.✏️ Possible wording
- * DAO support interface that converts between source domain type S and persistent entity type T and provides generic CRUD operations. + * DAO support interface that converts between source domain type S and persistent entity type T and provides generic CRUD and query operations. + * Implementations should either expose concrete generic parameters directly through this interface + * (or {`@link` JpaDaoSupport}) or override {`@link` `#getPersistentClass`()}.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@backend-core-data-impl/src/main/java/com/flowingcode/backendcore/dao/jpa/ConversionJpaDaoSupport.java` around lines 42 - 49, Update the Javadoc summary of ConversionJpaDaoSupport to explicitly document the assumption behind getPersistentClass(): state that the default implementation of getPersistentClass() requires that implementing classes declare concrete generic type arguments for S and T (i.e., the implementation must surface concrete generic parameters at the class level) and will not reliably work for implementations that use type variables, raw types, or perform generic parameterization at runtime; reference the getPersistentClass() method by name in the comment so callers know the contract and limitations.backend-core-data-impl/src/main/java/com/flowingcode/backendcore/dao/jpa/JpaDaoSupport.java (1)
27-30: Clarify the contract for identity-only mapping.Lines 27-30 should explicitly state this interface is intended for cases where domain and persistence types are the same (
S == T), and that mapped conversions belong inConversionJpaDaoSupport<S, T, K>.💡 Suggested Javadoc tweak
/** - * DAO support interface for JPA entities, providing default identity conversions. + * DAO support interface for JPA entities when domain and persistent types are the same, + * providing default identity conversions. + * For non-identity mappings, use {`@link` ConversionJpaDaoSupport}. * * `@param` <T> the persistent entity type * `@param` <K> the identifier type🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@backend-core-data-impl/src/main/java/com/flowingcode/backendcore/dao/jpa/JpaDaoSupport.java` around lines 27 - 30, Update the Javadoc for the JpaDaoSupport interface to explicitly state it is intended only for identity mapping cases where domain and persistence types are identical (S == T) and that any non-identity conversions belong in ConversionJpaDaoSupport<S, T, K>; mention that JpaDaoSupport provides default identity conversions and point callers to ConversionJpaDaoSupport for mapping logic.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@README.md`:
- Line 86: Remove the broken repository link to the generated artifact
'target/site/index.html' in README.md and replace it with either (a) a
plain-text instruction to generate and view the site locally (e.g., "Run 'mvn
site' and open 'target/site/index.html'") or (b) a link to the published
documentation URL; locate the entry referencing target/site/index.html in
README.md and update the line accordingly.
---
Duplicate comments:
In `@README.md`:
- Line 73: The repository README contains the Maven snapshots repository URL
literal "<url>https://maven.flowingcode.com/snapshots</url>" which lacks a
trailing slash and causes a 301 redirect; update that URL to include the
trailing slash (https://maven.flowingcode.com/snapshots/) so the canonical
snapshots URL is used and repository resolution avoids the redirect.
---
Nitpick comments:
In
`@backend-core-data-impl/src/main/java/com/flowingcode/backendcore/dao/jpa/ConversionJpaDaoSupport.java`:
- Around line 42-49: Update the Javadoc summary of ConversionJpaDaoSupport to
explicitly document the assumption behind getPersistentClass(): state that the
default implementation of getPersistentClass() requires that implementing
classes declare concrete generic type arguments for S and T (i.e., the
implementation must surface concrete generic parameters at the class level) and
will not reliably work for implementations that use type variables, raw types,
or perform generic parameterization at runtime; reference the
getPersistentClass() method by name in the comment so callers know the contract
and limitations.
In
`@backend-core-data-impl/src/main/java/com/flowingcode/backendcore/dao/jpa/JpaDaoSupport.java`:
- Around line 27-30: Update the Javadoc for the JpaDaoSupport interface to
explicitly state it is intended only for identity mapping cases where domain and
persistence types are identical (S == T) and that any non-identity conversions
belong in ConversionJpaDaoSupport<S, T, K>; mention that JpaDaoSupport provides
default identity conversions and point callers to ConversionJpaDaoSupport for
mapping logic.
In
`@backend-core-model/src/main/java/com/flowingcode/backendcore/validation/ValidationKind.java`:
- Around line 4-8: The Javadoc on ValidationKind is service-specific; make it
layer-agnostic by replacing "Defines the type of validator used for service
validation steps." with a neutral description such as "Defines the kinds/types
of validators used in validation processes" (or similar) so the API reads as
shared/shared-module-appropriate; update the comment on the ValidationKind
enum/class to remove "service" and ensure the author tag and general formatting
remain unchanged.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: 150f23f8-c71b-4bde-aaac-f490651d4dbd
📒 Files selected for processing (30)
README.mdbackend-core-business-impl/src/main/java/com/flowingcode/backendcore/service/validation/CreationValidator.javabackend-core-business-impl/src/main/java/com/flowingcode/backendcore/service/validation/DeletionValidator.javabackend-core-business-impl/src/main/java/com/flowingcode/backendcore/service/validation/InvariantValidator.javabackend-core-business-impl/src/main/java/com/flowingcode/backendcore/service/validation/ServiceValidationKind.javabackend-core-business-impl/src/main/java/com/flowingcode/backendcore/service/validation/UpdateValidator.javabackend-core-business-spring-impl/src/main/java/com/flowingcode/backendcore/service/ConstraintSpecification.javabackend-core-data-impl/src/main/java/com/flowingcode/backendcore/dao/jpa/ConstraintTransformerJpaImpl.javabackend-core-data-impl/src/main/java/com/flowingcode/backendcore/dao/jpa/ConversionJpaDaoSupport.javabackend-core-data-impl/src/main/java/com/flowingcode/backendcore/dao/jpa/JpaDaoSupport.javabackend-core-data/src/main/java/com/flowingcode/backendcore/dao/CreationDao.javabackend-core-data/src/main/java/com/flowingcode/backendcore/dao/CrudDao.javabackend-core-data/src/main/java/com/flowingcode/backendcore/dao/DeletionDao.javabackend-core-data/src/main/java/com/flowingcode/backendcore/dao/QueryDao.javabackend-core-data/src/main/java/com/flowingcode/backendcore/dao/UpdateDao.javabackend-core-model/src/main/java/com/flowingcode/backendcore/model/Constraint.javabackend-core-model/src/main/java/com/flowingcode/backendcore/model/constraints/AttributeBetweenConstraint.javabackend-core-model/src/main/java/com/flowingcode/backendcore/model/constraints/AttributeConstraint.javabackend-core-model/src/main/java/com/flowingcode/backendcore/model/constraints/AttributeILikeConstraint.javabackend-core-model/src/main/java/com/flowingcode/backendcore/model/constraints/AttributeInConstraint.javabackend-core-model/src/main/java/com/flowingcode/backendcore/model/constraints/AttributeLikeConstraint.javabackend-core-model/src/main/java/com/flowingcode/backendcore/model/constraints/AttributeNullConstraint.javabackend-core-model/src/main/java/com/flowingcode/backendcore/model/constraints/AttributeRelationalConstraint.javabackend-core-model/src/main/java/com/flowingcode/backendcore/model/constraints/NegatedConstraint.javabackend-core-model/src/main/java/com/flowingcode/backendcore/model/constraints/RelationalConstraint.javabackend-core-model/src/main/java/com/flowingcode/backendcore/validation/CreationValidationException.javabackend-core-model/src/main/java/com/flowingcode/backendcore/validation/DeletionValidationException.javabackend-core-model/src/main/java/com/flowingcode/backendcore/validation/UpdateValidationException.javabackend-core-model/src/main/java/com/flowingcode/backendcore/validation/ValidationKind.javabackend-core-model/src/main/java/com/flowingcode/backendcore/validation/ValidationSupport.java
✅ Files skipped from review due to trivial changes (2)
- backend-core-model/src/main/java/com/flowingcode/backendcore/validation/UpdateValidationException.java
- backend-core-business-impl/src/main/java/com/flowingcode/backendcore/service/validation/DeletionValidator.java
🚧 Files skipped from review as they are similar to previous changes (18)
- backend-core-business-spring-impl/src/main/java/com/flowingcode/backendcore/service/ConstraintSpecification.java
- backend-core-model/src/main/java/com/flowingcode/backendcore/model/constraints/RelationalConstraint.java
- backend-core-business-impl/src/main/java/com/flowingcode/backendcore/service/validation/InvariantValidator.java
- backend-core-model/src/main/java/com/flowingcode/backendcore/model/constraints/AttributeILikeConstraint.java
- backend-core-data/src/main/java/com/flowingcode/backendcore/dao/DeletionDao.java
- backend-core-model/src/main/java/com/flowingcode/backendcore/model/constraints/AttributeBetweenConstraint.java
- backend-core-data/src/main/java/com/flowingcode/backendcore/dao/CrudDao.java
- backend-core-data-impl/src/main/java/com/flowingcode/backendcore/dao/jpa/ConstraintTransformerJpaImpl.java
- backend-core-business-impl/src/main/java/com/flowingcode/backendcore/service/validation/UpdateValidator.java
- backend-core-model/src/main/java/com/flowingcode/backendcore/model/constraints/AttributeLikeConstraint.java
- backend-core-model/src/main/java/com/flowingcode/backendcore/model/constraints/AttributeInConstraint.java
- backend-core-model/src/main/java/com/flowingcode/backendcore/model/Constraint.java
- backend-core-data/src/main/java/com/flowingcode/backendcore/dao/UpdateDao.java
- backend-core-data/src/main/java/com/flowingcode/backendcore/dao/QueryDao.java
- backend-core-model/src/main/java/com/flowingcode/backendcore/validation/ValidationSupport.java
- backend-core-data/src/main/java/com/flowingcode/backendcore/dao/CreationDao.java
- backend-core-model/src/main/java/com/flowingcode/backendcore/model/constraints/AttributeNullConstraint.java
- backend-core-model/src/main/java/com/flowingcode/backendcore/validation/CreationValidationException.java
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|



Summary by CodeRabbit