|
| 1 | +## [3.3.0] - 2025-07-22 |
| 2 | +# Changelog |
| 3 | + |
| 4 | +## Features |
| 5 | + |
| 6 | +### Comprehensive Test Infrastructure and Service Tests |
| 7 | +- Established a comprehensive testing foundation including modular test configurations, custom annotations, test data builders, and a mock email service. This setup is crucial for facilitating both unit and integration tests within the library. |
| 8 | +- Implemented test data builders for User, Role, and Token entities to streamline the creation of test data. |
| 9 | +- Added testing support for OAuth2/OIDC with configured mock providers. |
| 10 | +- Authored detailed test plans and phase-specific task lists targeting a test coverage increase from 27% to 80%+. |
| 11 | + |
| 12 | +### Support for Parallel Test Execution |
| 13 | +- Enabled JUnit 5's parallel execution capabilities to significantly improve test performance by leveraging multiple CPU cores. |
| 14 | +- Expected test execution time reduced by 30-50%. |
| 15 | + |
| 16 | +### End-to-End Testing Infrastructure |
| 17 | +- Established a framework for end-to-end (E2E) testing which includes database setup using Testcontainers and email testing using GreenMail. |
| 18 | +- Initiated examples of user registration and password reset journey tests which validate integration across system boundaries. |
| 19 | + |
| 20 | +### Dependency and Version Updates |
| 21 | +- Updated `org.mariadb.jdbc:mariadb-java-client` to version 3.5.4 to ensure compatibility with the latest database features and security patches. |
| 22 | +- Updated the Gradle wrapper to version 8.14.3 for enhanced build performance and new functionalities. |
| 23 | + |
| 24 | +## Fixes |
| 25 | + |
| 26 | +### Improved Handling of Authentication Types |
| 27 | +- Enhanced `AuthenticationEventListener` to correctly handle various authentication types, including OAuth2User and DSUserDetails, solving issues related to improper principal extraction and null user scenarios in OAuth2 authentication flows. |
| 28 | +- Fixed deprecated API usage in `WebSecurityConfig` by replacing `RoleHierarchyImpl.fromHierarchy()` with the new constructor and `setHierarchy()` method. |
| 29 | + |
| 30 | +### Hibernate Entity Management |
| 31 | +- Addressed a critical issue related to Hibernate's immutable collection proxy by refactoring `User` entity's role storage from `List` to `Set`. This change prevents `UnsupportedOperationException` during entity saves in specific integration scenarios. |
| 32 | + |
| 33 | +### Patch Vulnerabilities and Improve Compatibility |
| 34 | +- Resolved the compilation error by aligning with the latest vanniktech maven publish plugin (0.34.0), ensuring smooth publishing to Maven Central. |
| 35 | + |
| 36 | +## Refactoring |
| 37 | + |
| 38 | +### Improved Readability and Consistency in Test Code |
| 39 | +- Refactored test data builders for improved readability and consistent code style, enhancing maintainability and developer understanding. |
| 40 | +- Refactored `UserServiceTest` to leverage centralized TestFixtures for cleaner setup and more organized test logic. |
| 41 | + |
| 42 | +## Testing |
| 43 | + |
| 44 | +### Extensive Test Coverage |
| 45 | +- Added a comprehensive suite of unit and integration tests for DSUserDetailsService and AuthorityService, covering user role loading, OAuth2 flows, and role hierarchy management. |
| 46 | +- Refined test classes to ensure appropriate usage of mocking and context initialization, leading to robust validation of expected behaviors across various scenarios. |
| 47 | + |
| 48 | +### Test Documentation |
| 49 | +- Authored detailed documentation outlining testing conventions, best practices, and guidelines for leveraging custom test annotations. |
| 50 | +- Documented the new test infrastructure setup extensively to guide future test development and optimization. |
| 51 | + |
| 52 | +## Other Changes |
| 53 | + |
| 54 | +### File Renaming and Cleanup |
| 55 | +- Streamlined test and source files by fixing naming discrepancies and correcting file paths where necessary for improved project organization. |
| 56 | +- Deleted outdated and redundant documentation files such as `TESTPLAN.md`, `TESTNEXTTASKS.md`, and `FAILING_TESTS_ANALYSIS.md`, integrating relevant content into a unified test improvement document. |
| 57 | + |
| 58 | +Overall, these changes enhance the library's testability, reliability, and developer experience, setting a robust foundation for future development and maintenance. |
| 59 | + |
1 | 60 | ## [3.2.3] - 2025-06-23 |
2 | 61 | ### Features |
3 | 62 | - **[Gradle Release Plugin] New Version:** Updated `gradle.properties` to set the project version to `3.2.3-SNAPSHOT` from `3.2.2`. This change prepares the project for future development by marking the start of a new snapshot version. |
|
0 commit comments