jkazama/sample-boot-micro
51.8
Adequate · 21 September 2026
8.5k
lines of production code
Java
primary language
4
measurements over time
What this system is
This is a multi-module Java application built on the Spring Boot framework, structured as a microservices architecture. It comprises distinct services including a registry, a web frontend, and specialized modules for core infrastructure and asset management. The system handles standard enterprise concerns such as database persistence, security, caching, and external API integration.
Behavioural changes
Asset domain logic migrated to micro-asset module
The asset domain logic, including models, use cases, and API controllers, has been moved from the shared micro-core and micro-app modules into the new micro-asset module. This change reorganizes the codebase to separate the asset-specific business logic from the common infrastructure, providing a dedicated microservice structure for asset management.
micro-asset · high confidence
Eureka registry adds authentication and security configuration
The micro-registry application now includes a Spring Security configuration that disables CSRF and permits all requests, alongside a conditional H2 in-memory database server for testing. The configuration also introduces a banner file for application startup messages and updates the management endpoints path. Additionally, the README is updated to reflect that the registry is used as a DB server in test environments.
micro-registry · high confidence
Introduces modularized database, security, and infrastructure configuration
The application now uses dedicated configuration classes for database connections (ApplicationDbConfig) and security settings (ApplicationSecurityConfig), which are imported into the main ApplicationConfig. This refactoring separates concerns by creating a PlainConfig for infrastructure components (e.g., Timestamper, AuditHandler) and an ApiConfig for REST error handling, while also removing the deprecated WebMvcConfigurerAdapter usage.
micro-core/src/main/java/sample · high confidence
Refactor micro-web to use constructor injection and externalized service URLs
The micro-web module has been refactored to use constructor-based dependency injection instead of field injection, improving testability and clarity. Controllers and facade invokers now receive their dependencies via constructors. Additionally, the configuration for remote service endpoints (app, asset) has been externalized into the application properties, allowing URLs to be configured via environment variables or property files rather than hardcoded values.
micro-web · high confidence
Refactored API client and utility classes for modern Spring usage
The API client layer has been refactored to remove the legacy Spring Cloud Netflix/Ribbon-based \RestInvokerSupport\ class, replacing it with a simpler \ApiClient\ that uses \RestTemplate\ and \ObjectMapper\ directly. The \RestExporterSupport\ class was renamed to \ApiUtils\ and its methods were changed from protected to static, making them accessible as standard utility functions. Additionally, the \MasterAdminFacade\ interface was updated so that \getStaff\ now returns a \Staff\ object directly instead of wrapping it in an \Optional\.
micro-core/src/main/java/sample/api · high confidence
Refactored ORM and security infrastructure to use JPA and modern Spring Security APIs
The codebase migrated from Hibernate 5/6-style APIs to JPA 2.x/3.x, replacing \SessionFactory\ with \EntityManager\ and \DetachedCriteria\ with \CriteriaBuilder\/\CriteriaQuery\. Security configuration was refactored to use \mvcMatchers\ instead of deprecated \antMatchers\, and the \SecurityAuthConfig\ was renamed to \SecurityConfigurer\. Additionally, transaction management was updated to use a new \TxTemplate\ utility, and the \IdLockHandler\ was optimized to use \ConcurrentHashMap\ for thread-safe locking.
micro-core/src/main/java/sample/context · high confidence
Refactored controller utilities and REST error handling to use constructor injection and static utility methods
The controller package was restructured: \ControllerSupport\ was renamed to \ControllerUtils\ and converted into a class with static utility methods, removing the previous inheritance-based approach. Additionally, \RestErrorAdvice\ and \RestErrorController\ were moved to the \sample.controller\ package. Both classes were refactored to use constructor injection instead of \@Autowired\ fields, and \RestErrorAdvice\ added support for handling \HttpMessageNotReadableException\ and \MethodArgumentNotValidException\.
micro-core/src/main/java/sample/controller · medium confidence
Refactors micro-app to use constructor injection and explicit transaction templates
The micro-app service has been refactored to replace Spring's @Autowired field injection with constructor injection for all service and controller classes, improving testability and clarity. Additionally, the @Transactional annotations on service methods have been removed in favor of explicit transaction management using a new TxTemplate, and the application configuration has been updated to use the new datasource property paths for Hibernate DDL settings.
micro-app · high confidence
Refactors model layer to use Spring 2.0+ APIs and remove Hibernate validator constraints
The model layer was refactored to align with Spring Boot 2.0+ and Spring Cloud Finchley. In BusinessDayHandler, the code was migrated from Lombok's @AllArgsConstructor to explicit constructors and Optional fields, and transaction management was updated to use PlatformTransactionManager and TxTemplate instead of Spring's @Transactional. DataFixtures was simplified by removing unused asset-related fixtures and autowired dependencies. Additionally, all custom validation constraint annotations (Category, Currency, Description, Email, IdStr, Name, Outline, Password, Year, YearEmpty) had their @Size and @OverridesAttribute configurations removed, relying instead on @Digits and @NotNull.
micro-core/src/main/java/sample/model · high confidence
Updated Gradle wrapper scripts and repository documentation
The Gradle wrapper scripts (gradlew, gradlew.bat) have been updated to the latest Apache 2.0 licensed versions, improving cross-platform compatibility and startup behavior. Additionally, the README has been updated to reflect the addition of a new 'micro-asset' microservice, clarifying the project's multi-project structure and providing updated instructions for running and building the application.
(repo-wide) · high confidence
Updated application configuration and caching infrastructure
The application's configuration has been modernized to align with newer Spring Boot standards. The \application.yml\ has been refactored to use Spring Boot 2.x property paths (e.g., \spring.servlet.multipart\ instead of \multipart\), updated Eureka client properties, and enabled JPA open-in-view disabling. A new \banner.txt\ file was added to display a custom startup banner. Caching was migrated from the legacy Ehcache 2 XML format to the Ehcache 3 JSR-107 compliant format, simplifying cache definitions. Additionally, logging for Hibernate SQL and diagnostics was enabled for debugging, and validation error messages were corrected to use the \javax\ package prefix.
micro-core/src/main/resources · high confidence
Test coverage
Migrate test infrastructure from Hibernate SessionFactory to JPA EntityManagerFactory
The test support classes have been refactored to use JPA's EntityManagerFactory instead of Hibernate's SessionFactory. This change updates the test configuration to leverage standard JPA abstractions, simplifying the test setup by removing Hibernate-specific session management and replacing it with Spring's LocalContainerEntityManagerFactoryBean. Additionally, the DDL exporter test was updated to use Spring's naming strategies and remove unused imports, ensuring compatibility with the JPA-based test environment.
micro-core/src/test/java · high confidence
Dependencies
Upgrade to Spring Boot 2.2.5 and Spring Cloud Hoxton.SR2
The project has been upgraded to Spring Boot 2.2.5 and Spring Cloud Hoxton.SR2, moving from the legacy Spring Boot 1.3.5 baseline. This update includes a Gradle build system upgrade to 6.2.2, replaces deprecated Spring Cloud starter dependencies (e.g., spring-cloud-starter-eureka to spring-cloud-starter-netflix-eureka-client), and modernizes the build configuration to use the Spring Boot Gradle plugin and dependency management plugin. Additionally, new microservices (micro-asset, micro-web) have been added to the multi-module build structure.
(dependencies) · high confidence
Upgraded Gradle wrapper to version 6.2.2
The Gradle wrapper has been updated from version 2.13 to 6.2.2, bringing significant improvements in build performance and compatibility with modern Java projects.
gradle · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
This is the PUBLIC form of this artifact. Findings are listed in full, but the details of SECURITY findings — which rule fired, in which file, on which line, and how to fix it — are deliberately withheld, and any secret-scanner results are excluded entirely. Where detail is absent here it was REMOVED FOR PUBLICATION; it is not missing from the analysis. The complete artifact is available from the repository owner.
Score
- CAI 53 → 52 (-0.8)
- Rubric changed (rubric-2026.08.19 → rubric-2026.09.15) — scores are not directly comparable.
Lenses
- Code Health 100 → 99 (-0.2)
- Architecture 93 (new)
- Maturity 76 → 51 (-25.0)
- Readiness 26 → 33 (+7.0)
- Security 89 → 91 (+2.0)
- Domain Modelling 70 → 74 (+4.7)
Resolved (10)
- Coverage not included — suite not readable by the collector
- Dependency hygiene not measured — dependency manifest found but not parsed for hygiene
- Duplicated block (10 lines × 2) (micro-core/src/main/java/sample/context/audit/AuditHandler.java)
- Duplicated block (7 lines × 2) (micro-asset/src/main/java/sample/microasset/MicroAssetConfig.java)
- Duplicated block (8 lines × 2) (micro-core/src/main/java/sample/context/audit/AuditHandler.java)
- Medium: security finding (details withheld)
- No exposed public API
- Test reliability not included
- change coupling unreadable for .java — no production change history could be paired for this repository's own source
- single-maintainer — knowledge-concentration (bus factor) risk
New (12)
- Dependency hygiene PARTLY measured — Maven/Gradle declarations read, no dependency graph resolved
- Documentation: no installation or build instructions (README.md)
- Documentation: no usage examples (README.md)
- Duplicated block (12 lines × 2) (micro-app/src/main/java/sample/MicroAppConfig.java)
- Duplicated block (23 lines × 2) (micro-core/src/main/java/sample/context/audit/AuditHandler.java)
- Duplicated block (44 lines × 3) (micro-asset/src/main/java/sample/microasset/context/orm/AssetRepository.java)
- Duplicated block (9 lines × 2) (micro-core/src/main/java/sample/context/audit/AuditHandler.java)
- No ADRs found
- No assertions: バッチ向けユースケース検証 (micro-web/src/test/java/sample/client/SampleClient.java)
- No assertions: 社内向けユースケース検証 (micro-web/src/test/java/sample/client/SampleClient.java)
- No assertions: 顧客向けユースケース検証 (micro-web/src/test/java/sample/client/SampleClient.java)
- Test project verifies nothing: micro-web (micro-web/src/test/java/sample/client/SampleClient.java)
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
jkazama/sample-boot-micro was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 21 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit 0e8fb571af8d0ab32d22cfba33ab2eab48836381 — the exact code this score is about.
- Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-fa71c66cabd8.