Skip to content

Commit ec6cbe7

Browse files
authored
Improving documentation (#107)
* Improving documentation * Adding a sequence diagram
1 parent d1a17b5 commit ec6cbe7

File tree

7 files changed

+198
-61
lines changed

7 files changed

+198
-61
lines changed

.cursor/rules/templates/java-checklist-template.md

Lines changed: 19 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -8,56 +8,54 @@ Use the following process to improve the java development in some areas if requi
88

99
| Cursor Rule | Description | Prompt | Notes |
1010
|-------------|-------------|--------|-------|
11-
| [110-java-maven-best-practices](.cursor/rules/110-java-maven-best-practices.mdc) | Maven Best Practices | `Help me to review the pom.xml following the best practices for dependency management and directory structure use the cursor rule @110-java-maven-best-practices` | Add in the context the `pom.xml` which you want to generate the documentation |
12-
| [111-java-maven-deps-and-plugins](.cursor/rules/111-java-maven-deps-and-plugins.mdc) | Maven Dependencies & Plugins | `Can you improve the pom.xml using the cursor rule @111-java-maven-deps-and-plugins` | Add in the context the `pom.xml` which you want to generate the documentation. Conversational approach |
13-
| [112-java-maven-documentation](.cursor/rules/112-java-maven-documentation.mdc) | Maven Documentation | `Generate developer documentation with essential Maven commands using @112-java-maven-documentation` | Add in the context the `pom.xml` which you want to generate the documentation |
11+
| [110-java-maven-best-practices](.cursor/rules/110-java-maven-best-practices.mdc) | Analyze your `pom.xml` and apply Maven best practices | **Prompt:** `Help me to review the pom.xml following the best practices for dependency management and directory structure use the cursor rule @110-java-maven-best-practices` **Note:** Add in the context the `pom.xml` which you want to generate the documentation. | This cursor rule is applied automatically without any interaction with the Software engineer. |
12+
| [111-java-maven-deps-and-plugins](.cursor/rules/111-java-maven-deps-and-plugins.mdc) | Update your `pom.xml` with Maven Dependencies & Plugins | **Prompt:** `Can you improve the pom.xml using the cursor rule @111-java-maven-deps-and-plugins` **Note:** Add in the context the `pom.xml` which you want to generate the documentation. | Using a Conversational approach, the Software engineer will interact with the cursor rule to update the `pom.xml`. |
13+
| [112-java-maven-documentation](.cursor/rules/112-java-maven-documentation.mdc) | Create a Maven Documentation with the file `README-DEV.md` | **Prompt:** `Generate developer documentation with essential Maven commands using @112-java-maven-documentation` **Note:** Add in the context the `pom.xml` which you want to generate the documentation. | This cursor rule is applied automatically without any interaction with the Software engineer. |
1414

1515
### Design rules
1616

1717
| Cursor Rule | Description | Prompt | Notes |
1818
|-------------|-------------|--------|-------|
19-
| [123-java-general-guidelines](.cursor/rules/123-java-general-guidelines.mdc) | General Java Guidelines | `Review my code for general Java best practices using the cursor rule @123-java-general-guidelines` | |
20-
| [124-java-secure-coding](.cursor/rules/124-java-secure-coding.mdc) | Secure Java Coding | `Check my code for security issues using the cursor rule @124-java-secure-coding` | |
21-
| [125-java-concurrency](.cursor/rules/125-java-concurrency.mdc) | Concurrency | `Review my code for concurrency best practices using the cursor rule @125-java-concurrency` | |
22-
| [126-java-logging](.cursor/rules/126-java-logging.mdc) | Logging Guidelines | `Help me improve logging using the cursor rule @126-java-logging` | |
19+
| [121-java-object-oriented-design](.cursor/rules/121-java-object-oriented-design.mdc) | Take another point of view with an Object Oriented Design of your development | **Prompt:** `Review my code for object-oriented design using the cursor rule @121-java-object-oriented-design` **Note:** Add in the context a package to improve the design. | This cursor rule is applied automatically without any interaction with the Software engineer. It is an interesting prompt to see what alternatives offer the model for your package. |
20+
| [122-java-type-design](.cursor/rules/122-java-type-design.mdc) | Review the Type Design in your development | **Prompt:** `Help me improve my type design using the cursor rule @122-java-type-design` **Note:** Add in the context a package to improve the design. | This cursor rule is applied automatically without any interaction with the Software engineer. It is an interesting prompt to see what alternatives offer the model for your package. |
2321

2422
### Coding rules
2523

2624
| Cursor Rule | Description | Prompt | Notes |
2725
|-------------|-------------|--------|-------|
28-
| [123-java-general-guidelines](.cursor/rules/123-java-general-guidelines.mdc) | General Java Guidelines | `Review my code for general Java best practices using the cursor rule @123-java-general-guidelines` | |
29-
| [124-java-secure-coding](.cursor/rules/124-java-secure-coding.mdc) | Secure Java Coding | `Check my code for security issues using the cursor rule @124-java-secure-coding` | |
30-
| [125-java-concurrency](.cursor/rules/125-java-concurrency.mdc) | Concurrency | `Review my code for concurrency best practices using the cursor rule @125-java-concurrency` | |
31-
| [126-java-logging](.cursor/rules/126-java-logging.mdc) | Logging Guidelines | `Help me improve logging using the cursor rule @126-java-logging` | |
26+
| [123-java-general-guidelines](.cursor/rules/123-java-general-guidelines.mdc) | Apply general purpose Java guidelines | **Prompt:** `Review my code for general Java best practices using the cursor rule @123-java-general-guidelines` **Note:** Add a package in the context. | Non conversational cursor rule. |
27+
| [124-java-secure-coding](.cursor/rules/124-java-secure-coding.mdc) | Review your coide with Secure Java Coding rules | **Prompt:** `Check my code for security issues using the cursor rule @124-java-secure-coding` **Note:** Add a package in the context. | Non conversational cursor rule. |
28+
| [125-java-concurrency](.cursor/rules/125-java-concurrency.mdc) | Improve your code with Concurrency rules | **Prompt:** `Review my code for concurrency best practices using the cursor rule @125-java-concurrency` **Note:** Add a class or package which consider that it could bye improved by the cursor rule. | Non conversational cursor rule. |
29+
| [126-java-logging](.cursor/rules/126-java-logging.mdc) | Apply logging guidelines in your development | **Prompt:** `Help me improve logging using the cursor rule @126-java-logging` **Note:** Add a class or package which consider that it could bye improved by the cursor rule. | This cursor rule is applied automatically without any interaction with the Software engineer. |
3230

3331
### Testing rules
3432

3533
| Cursor Rule | Description | Prompt | Notes |
3634
|-------------|-------------|--------|-------|
37-
| [131-java-unit-testing](.cursor/rules/131-java-unit-testing.mdc) | Unit Testing | `Can improve the unit tests using the cursor rule @131-java-unit-testing` | Add in the context a Test Class or the package |
35+
| [131-java-unit-testing](.cursor/rules/131-java-unit-testing.mdc) | Apply Unit Testing best practices | **Prompt:** `Can improve the unit tests using the cursor rule @131-java-unit-testing` **Note:** Add a class or package which consider that it could bye improved by the cursor rule. | This cursor rule is applied automatically without any interaction with the Software engineer. |
3836

3937
### Refactoring rules
4038

4139
| Cursor Rule | Description | Prompt | Notes |
4240
|-------------|-------------|--------|-------|
43-
| [141-java-refactoring-with-modern-features](.cursor/rules/141-java-refactoring-with-modern-features.mdc) | Add Modern Java Features | `Refactor my code to use modern Java features using the cursor rule @141-java-refactoring-with-modern-features` | |
44-
| [142-java-functional-programming](.cursor/rules/142-java-functional-programming.mdc) | Functional Programming | `Refactor my code to use functional programming using the cursor rule @142-java-functional-programming` | |
45-
| [143-java-data-oriented-programming](.cursor/rules/143-java-data-oriented-programming.mdc) | Data Oriented Programming | `Refactor my code to use data oriented programming using the cursor rule @143-java-data-oriented-programming` | |
41+
| [141-java-refactoring-with-modern-features](.cursor/rules/141-java-refactoring-with-modern-features.mdc) | Add Modern Java Features in your development | **Prompt:** `Refactor my code to use modern Java features using the cursor rule @141-java-refactoring-with-modern-features` **Note:** Add a class or package which consider that it could bye improved by the cursor rule. | Non conversational cursor rule. |
42+
| [142-java-functional-programming](.cursor/rules/142-java-functional-programming.mdc) | Add Functional Programming style in your development | **Prompt:** `Refactor my code to use functional programming using the cursor rule @142-java-functional-programming` **Note:** Add a class or package which consider that it could bye improved by the cursor rule. | This cursor rule is applied automatically without any interaction with the Software engineer. |
43+
| [143-java-data-oriented-programming](.cursor/rules/143-java-data-oriented-programming.mdc) | Add Data Oriented Programmin in your development | **Prompt:** `Refactor my code to use data oriented programming using the cursor rule @143-java-data-oriented-programming` **Note:** Add a class or package which consider that it could bye improved by the cursor rule. | This cursor rule is applied automatically without any interaction with the Software engineer. |
4644

4745
### Performance rule (Jmeter)
4846

4947
| Activity | Description | Prompt | Notes |
5048
|----------|------|--------|-------|
51-
| [151-java-performance-jmeter](.cursor/rules/151-java-performance-jmeter.mdc) | Run a peformance test with Jmeter | `Add JMeter performance testing to this project using @151-java-performance-jmeter.mdc` | You could ask the model to create a JMeter based on a RestController/Resource. Example: `Can you create a Jmeter file based on the restcontroller in the path src/test/resources/jmeter/load-test.jmx?` |
49+
| [151-java-performance-jmeter](.cursor/rules/151-java-performance-jmeter.mdc) | Run a peformance test with Jmeter | **Prompt:** `Add JMeter performance testing to this project using @151-java-performance-jmeter.mdc` **Note:** You could ask the model to create a JMeter based on a RestController/Resource. Example: `Can you create a Jmeter file based on the restcontroller in the path src/test/resources/jmeter/load-test.jmx?` | This cursor rule is applied automatically without any interaction with the Software engineer. If you create a Jmeter file with the model, review the generation, sometimes it is necessary to hammer a bit. |
5250

5351
### Profiling rules (Async profiler)
5452

5553
| Activity | Description | Prompt | Notes |
56-
|----------|------|--------|-------|
57-
| [161-java-profiling-detect](.cursor/rules/161-java-profiling-detect.mdc) | Measure problems | `My Java application has performance issues - help me set up comprehensive profiling process using @151-java-profiling-detect.mdc and use the location YOUR-DEVELOPMENT/profiler` | Replace YOUR-DEVELOPMENT with your actual development path. Example: examples/spring-boot-memory-leak-demo/profiler |
58-
| [162-java-profiling-analyze](.cursor/rules/162-java-profiling-analyze.mdc) | Analyze results | `Analyze the results located in YOUR-DEVELOPMENT/profiler and use the cursor rule @152-java-profiling-analyze` | Replace YOUR-DEVELOPMENT with your actual development path. Example: examples/spring-boot-memory-leak-demo/profiler |
59-
| - | Code Refactoring | `Can you apply the solutions from @profiling-solutions-yyyymmdd.md in @/info to mitigate bottlenecks` | Make a refactoring with the notes from the analysis |
60-
| [164-java-profiling-compare](.cursor/rules/162-java-profiling-compare.mdc) | Analyze results | `Review if the problems was solved with last refactoring using the reports located in @/results with the cursor rule 154-java-profiling-compare.mdc` | Put in the context the folder with the results |
54+
|----------|-------------|--------|-------|
55+
| [161-java-profiling-detect](.cursor/rules/161-java-profiling-detect.mdc) | Profile your development in runtime and collect evidences to be analyzed later. | **Prompt:** `My Java application has performance issues - help me set up comprehensive profiling process using @161-java-profiling-detect.mdc and use the location YOUR-DEVELOPMENT/profiler` **Note:** Replace YOUR-DEVELOPMENT with your actual development path. Example: examples/spring-boot-memory-leak-demo/profiler | Non conversational cursor rule. The Cursor rule will generate 2 scripts. One script designed to run your development with the right JVM flags for profiling and the second scripts will ask few questions about what problem do you want to solve/analyze over one particular PID. |
56+
| [162-java-profiling-analyze](.cursor/rules/162-java-profiling-analyze.mdc) | Analyze results from previous step and generate reports with the analysis results.| **Prompt:** `Analyze the results located in YOUR-DEVELOPMENT/profiler and use the cursor rule @162-java-profiling-analyze` **Note:** Replace YOUR-DEVELOPMENT with your actual development path. Example: examples/spring-boot-memory-leak-demo/profiler | Non conversational cursor rule. |
57+
| - | Code Refactoring from suggestions from analysis | `Can you apply the solutions from @profiling-solutions-yyyymmdd.md in @/info to mitigate bottlenecks` | Make a refactoring with the notes from the analysis |
58+
| [164-java-profiling-compare](.cursor/rules/164-java-profiling-compare.mdc) | Compare results comparing results before and after applying changes in the code | **Prompt:** `Review if the problems was solved with last refactoring using the reports located in @/results with the cursor rule 154-java-profiling-compare.mdc` **Note:** Put in the context the folder with the results | This cursor rule is applied automatically without any interaction with the Software engineer. |
6159

6260
---
6361

CHANGELOG.md

Lines changed: 29 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -5,41 +5,53 @@ All notable changes to this project will be documented in this file.
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

8-
## [0.7.0]
8+
## [0.7.0] - 2025-06-30
99

1010
### Added
1111

1212
- **Java Profiling Support**: Added comprehensive profiling cursor rules (#81, #88, #91)
13-
- `@151-java-profiling-detect` for detecting performance issues
14-
- `@152-java-profiling-analyze` for analyzing profiling results
15-
- `@154-java-profiling-compare` for comparing profiling data
13+
- `@161-java-profiling-detect` for detecting performance issues
14+
- `@162-java-profiling-analyze` for analyzing profiling results
15+
- `@164-java-profiling-compare` for comparing profiling data
1616
- **Java Checklist Guide**: Added `@100-java-checklist-guide` cursor rule to help developers use cursor rules effectively (#59)
1717
- **Maven Documentation**: Added `@112-java-maven-documentation` cursor rule to generate README-DEV.md from existing pom.xml files
1818
- **Maven Dependencies & Plugins**: Added `@111-java-maven-deps-and-plugins` cursor rule for better Maven dependency management
19-
- **Cloud Examples**: Added serverless examples
20-
- AWS Lambda Hello World example with native image support
21-
- Azure Function Hello World example with GraalVM configuration
22-
- **Performance Examples**: Added specialized demo projects (#82, #86)
23-
- Spring Boot Memory Leak Demo with profiling tools
24-
- Spring Boot Performance Bottleneck Demo with CPU profiling
19+
- **Performance Testing**: Added `@151-java-performance-jmeter` cursor rule for JMeter-based performance testing (#97)
20+
- **Cloud Examples**: Added serverless examples with native image support
21+
- AWS Lambda Hello World example with GraalVM native image configuration
22+
- Azure Function Hello World example with GraalVM configuration and Azure-specific setup
23+
- **Maven Demo**: Added complete Maven demo project with Euler problem examples and proper testing structure
24+
- **Quarkus Demo**: Added Quarkus framework example with profiling support and Docker configurations
25+
- **Performance Examples**: Added specialized demo projects (#82, #86, #95)
26+
- Spring Boot comprehensive demo with film query service, PostgreSQL integration, and full testing suite
27+
- Spring Boot Memory Leak Demo with profiling tools and detailed analysis documentation
28+
- Spring Boot Performance Bottleneck Demo with CPU profiling and optimization examples
29+
- Spring Boot JMeter Demo for performance testing integration
2530
- **Template System**: Added comprehensive template files to support cursor rule generation
26-
- Java checklist templates
27-
- Maven dependencies and plugins templates
28-
- **DevOps Integration**: Added modern development tooling (#63, #64, #76)
29-
- Dependabot configuration for automatic dependency updates
30-
- CODEOWNERS file for code review assignments
31-
- GitHub Sponsors funding configuration
31+
- Java checklist templates for systematic development approaches
32+
- Maven dependencies and plugins templates for project setup
33+
- Performance testing script templates
34+
- Profiling script templates for application analysis
35+
- **Documentation**: Added extensive documentation and diagrams
36+
- Cursor interaction sequence diagrams
3237

3338
### Changed
3439

3540
- **Rule Organization**: Reorganized cursor rule numbering system for better categorization
3641
- **Documentation**: Significantly improved README and development guides (#74, #90)
3742
- **Maven Plugins**: Improved cursor rules for Maven plugins with better examples and guidance (#54, #56)
43+
- **Modularization**: Improved project structure to make cursor rules more modular (#105)
3844

3945
### Removed
4046

4147
- **Cache Files**: Removed Maven cache files that were not useful for daily development work (#44)
42-
- **Logging**: Removed unnecessary MDC behavior (#89)
48+
- **Logging**: Removed unnecessary MDC behavior that added complexity without clear criteria (#89)
49+
- **Redundant Rules**: Removed or consolidated several cursor rules for better organization
50+
- Removed `@122-java-integration-testing` (consolidated into other testing rules)
51+
- Removed framework-specific rules to separate repositories:
52+
- `@301-framework-spring-boot` (moved to separate Spring Boot rules project) (#105)
53+
- `@304-java-rest-api-design` (moved to separate Spring Boot rules project)
54+
- `@500-sql` (moved to Spring Boot rules)
4355

4456
## [0.6.0] 30/5/2025
4557

0 commit comments

Comments
 (0)