Skip to content
CAI
Software that uses CAICheck a score

shiyindaxiaojie/eden-demo-cola

51.6

Weak · 22 September 2026

976

lines of production code

Java

primary language

6

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

This system is a Java-based microservice application built on the COLA architecture, specifically managing user lifecycle operations including creation, modification, and deletion. It exposes user data via web APIs and message queue consumers, while handling data persistence through a database layer. The codebase has been modernized to use the Eden framework, incorporating Docker containerization, CI/CD pipeline support, and comprehensive unit and integration testing.

Features

Added application configuration properties for externalized settings

Two new configuration classes, ApplicationAutoConfiguration and ApplicationProperties, have been added to the infrastructure module. ApplicationProperties is annotated with @ConfigurationProperties(prefix = "application"), enabling the application to bind externalized configuration values under the 'application' prefix. This allows users to customize application-level settings via external configuration sources.

eden-demo-cola-infrastructure/src/main/java/org/ylzl/eden/demo/infrastructure/config · medium confidence

Added assembly packaging and startup scripts for the demo application

The change introduces a new Maven assembly descriptor (assembly.xml) that packages the application into zip and tar.gz archives, including the main JAR, configuration files, and executable scripts. It also adds Windows (.bat) and Unix (.sh) shell scripts (catalina, startup, shutdown, restart) to manage the application's lifecycle, allowing users to easily start, stop, and restart the demo service on different operating systems.

eden-demo-cola-start/src/main/assembly · high confidence

Added build, configuration, and documentation files

Added .gitattributes to define text and binary file handling for Git, .gitignore to exclude IDE, build, and OS-specific files, and a Dockerfile to containerize the Java application using AdoptOpenJDK 11. Updated .editorconfig to change the maximum line length from 120 to 80 characters. Updated the Apache 2.0 LICENSE file to correct typos and URLs. Expanded README.md with detailed sections on the COLA architecture, component composition, build and usage instructions, and versioning conventions.

(repo-wide) · high confidence

Added user message consumer for topic 'demo-cola-user'

A new message queue consumer has been added to handle messages on the 'demo-cola-user' topic. This component implements the standard message consumption interface, logging incoming messages and acknowledging them.

eden-demo-cola-adapter/src/main/java/org/ylzl/eden/demo/adapter/user/consumer · high confidence

Behavioural changes

Added package-info.java for the user scheduler module

A new package-info.java file was added to the user scheduler adapter, establishing the package declaration for the scheduler component within the demo application.

eden-demo-cola-adapter/src/main/java/org/ylzl/eden/demo/adapter/user/scheduler · low confidence

Cleaned up empty lines in public/index.html

The public/index.html file had trailing empty lines removed from the script block, a minor formatting fix that improves code cleanliness without changing functionality.

eden-demo-cola-adapter/src/main/resources · medium confidence

Maven wrapper downloader template formatting updated

The Maven wrapper downloader template has been updated to remove leading whitespace from the first two lines and adjust the formatting of the third line, ensuring consistent indentation in the generated wrapper script.

.mvn · medium confidence

Migrate database schema from YAML to XML and update MyBatis mappings

The database migration files have been converted from YAML to XML format, introducing new Liquibase changelogs for version 2.4.13 that define the 'demo\_user', 'demo\_authority', and 'demo\_audit\_event' tables. The previous YAML changelogs have been removed. Additionally, the MyBatis mapper for the user entity has been updated to map the 'user\_id' column to the 'id' property, aligning with the new database schema.

eden-demo-cola-infrastructure/src/main/resources · high confidence

Refactor UserGatewayImpl to use constructor injection and a shared converter

The UserGatewayImpl class now uses Lombok's @RequiredArgsConstructor for constructor injection, replacing the previous explicit constructor. It also introduces a private final UserConvertor field, updating save and updateById methods to use this instance instead of the previous static/instance access. Additionally, the deleteById method now calls user.getId() instead of user.getUserId(). The class also gains @Slf4j for logging. The change is a structural refactor of the user gateway implementation.

eden-demo-cola-infrastructure/src/main/java/org/ylzl/eden/demo/infrastructure/user/gateway · medium confidence

Refactored User domain model and updated framework dependency

The User entity's identifier field has been renamed from 'userId' to 'id', and the entity now uses 'org.ylzl.eden.cola.domain.Entity' instead of 'com.alibaba.cola.domain.Entity'. Additionally, the 'user' package-info.java file was removed and a new package-info.java was added for the 'domain' package.

eden-demo-cola-domain/src · medium confidence

Removed IntelliJ IDEA module configuration files

The .iml files for the eden-demo-cola-adapter, eden-demo-cola-app, eden-demo-cola-client, eden-demo-cola-domain, eden-demo-cola-infrastructure, and eden-demo-cola-start modules have been deleted. This removes the IDE-specific project metadata and dependency definitions from the repository, likely to standardize on Maven or Gradle for build and dependency management.

(repo-wide) · high confidence

Removes unused API constant definitions

The ApiConstant class has been cleaned up by removing the WAP\_API\_PATH and DEFAULT\_TIMEOUT constants, which are no longer used. The class is also annotated with @UtilityClass from Lombok to indicate it is a utility class.

eden-demo-cola-adapter/src/main/java/org/ylzl/eden/demo/adapter/constant · high confidence

Simplified UserProvider Dubbo configuration

The UserProvider RPC service implementation has been updated to remove the explicit timeout configuration, relying on Dubbo's default settings instead of the previously defined ApiConstant.DEFAULT\_TIMEOUT. Additionally, the Javadoc author email has been added to the class-level documentation.

eden-demo-cola-adapter/src/main/java/org/ylzl/eden/demo/adapter/user/rpc · high confidence

Updated Docker entrypoint to use specific application class

The Docker entrypoint script was moved from the Jib directory to the main docker directory and updated to explicitly invoke the 'org.ylzl.eden.demo.ColaApplication' class instead of a generic placeholder. A new layers.xml configuration was added to define Spring Boot layer ordering for optimized container builds.

eden-demo-cola-start/src/main/docker · medium confidence

Updated data source type constants

The constant values for data source types have been updated: 'DEMO' is now 'DS1' and 'BIZCOLLEGE' is now 'DS2'. This change affects the identification of data sources within the application's infrastructure layer.

eden-demo-cola-infrastructure/src/main/java/org/ylzl/eden/demo/infrastructure/constant · high confidence

Updated user database mapping and conversion logic

The user database layer has been updated to align with version 2.4.13 of the framework. Specifically, the User data object now maps the primary key column to 'id' instead of 'user\_id', and the UserConvertor has been refactored to use the updated EntityConvertor interface from the cola domain package, removing the legacy MapStruct INSTANCE field.

eden-demo-cola-infrastructure/src/main/java/org/ylzl/eden/demo/infrastructure/user/database · high confidence

User API and DTOs updated to use UserDTO and renamed ID fields

The user-facing API in the client module now returns UserDTO instead of the removed UserVO. UserDTO has been refactored to include an 'id' field (replacing 'userId' in commands and queries) and exposes login, password, and email directly rather than nesting a UserDTO object. Command objects (UserAddCmd, UserModifyCmd) now contain individual fields for login, password, and email instead of a single UserDTO property. Additionally, the codebase has migrated from the 'com.alibaba.cola.dto' package to 'org.ylzl.eden.cola.dto' for response and query types.

eden-demo-cola-client/src · high confidence

User API returns DTO instead of VO and uses standard Eden response types

The user controller now returns UserDTO objects instead of UserVO, and uses the Eden-specific PageResponse, Response, and SingleResponse types instead of Alibaba Cola's equivalents. Additionally, command objects now use 'id' instead of 'userId' for user identification, and the controller uses constructor injection via Lombok's @RequiredArgsConstructor.

eden-demo-cola-adapter/src/main/java/org/ylzl/eden/demo/adapter/user/web · high confidence

User data transfer objects migrated from VO to DTO

The user-facing data structures have been standardized: the UserVO class has been replaced by UserDTO across the application layer. This affects the UserAssembler interface, which now maps database objects to UserDTO instead of UserVO, and updates the query executors (UserByIdQryExe, UserListByPageQryExe) to return UserDTO. Additionally, the UserRemoveCmdExe now uses the UserAssembler for entity conversion, and the UserServiceImpl has been refactored to use constructor injection and updated to use the new DTO types.

eden-demo-cola-app/src/main · high confidence

Fixes

Simplified Spring Boot application entry point

The main application class has been renamed from Application to ColaApplication and no longer extends SpringBootApplicationTemplate. The startup logic now uses SpringBootApplicationHelper.run() instead of a custom run method, and several annotations including @EnableDubbo, @EnableAspectJAutoProxy, and the custom ApplicationWebXml servlet initializer have been removed or replaced with @EnableRestExceptionResolver.

eden-demo-cola-start/src/main/java · medium confidence

Updated Jenkinsfile and Maven settings to support separate release and snapshot repositories

The CI/CD pipeline and Maven configuration have been refactored to distinguish between release and snapshot artifact repositories. The Jenkinsfile now defines separate environment variables for Maven releases and snapshots (e.g., CODING\_MAVen\RELEASES\\*, CODING\_Maven\SNAPSHOTS\\*), and the Maven settings.xml has been updated to configure distinct server credentials and repository URLs for both release and snapshot deployments. This change also introduces a dedicated unit testing stage that runs tests and generates code coverage reports, while the deployment stage now explicitly targets the correct repository type (release or snapshot) based on the build context.

.coding · medium confidence

Test coverage

Added integration test for application startup; Added test logging configuration for the demo application; Added unit tests for UserConsumer and UserController; Added unit tests for UserGatewayImpl; Added unit tests for user management operations.

Dependencies

Upgrade to version 2.4.13.20221116 and modernize dependencies

The project and its modules (adapter, app, client, domain, infrastructure, start) are upgraded from version 1.0.0-SNAPSHOT to 2.4.13.20221116. The dependency graph is modernized by replacing Alibaba COLA components with Eden equivalents (e.g., eden-cola, eden-spring-framework). The adapter module switches from Spring Boot Web to Eden Undertow, and the client module replaces cola-component-dto with eden-cola. The infrastructure module adds support for Liquibase, dynamic data sources, Sharding JDBC, Redis, and RocketMQ, while also introducing a Spock-based testing starter across modules.

(dependencies) · high confidence

Housekeeping

Added package-info.java for the infrastructure package

A new package-info.java file was added to the org.ylzl.eden.demo.infrastructure package, establishing the package declaration for that directory. This change affects the Java package structure but does not alter runtime behavior or user-facing functionality.

eden-demo-cola-infrastructure/src/main/java/org/ylzl/eden/demo/infrastructure · 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 52 → 52 (+0.1)
  • Rubric changed (rubric-2026.08.19 → rubric-2026.09.15) — scores are not directly comparable.

Lenses

  • Code Health 100 → 100 (+0.0)
  • Architecture 100 → 80 (-19.8)
  • Maturity 57 → 57 (+0.0)
  • Readiness 30 → 30 (+0.0)
  • Security 85 → 86 (+0.8)
  • Domain Modelling 70 → 77 (+7.3)

Resolved (13)

  • Dependency hygiene not measured — dependency manifest found but not parsed for hygiene
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • Medium IaC: CKV_DOCKER_10 (Dockerfile)
  • Medium IaC: CKV_DOCKER_2 (Dockerfile)
  • Medium IaC: CKV_DOCKER_4 (Dockerfile)
  • Medium IaC: CKV_DOCKER_6 (Dockerfile)
  • Medium IaC: CKV_DOCKER_6 (Dockerfile)
  • No exposed public API
  • No tests — template/sample
  • Scanner failed to run — not a clean result
  • The README does not mention how to run the application or configure default settings after cloning eden-architect, which is critical for new contributors who follow the install/build steps but do not yet know the next steps. (README.md)
  • dormant codebase — no living knowledge left to concentrate

New (15)

  • Dependency hygiene PARTLY measured — Maven/Gradle declarations read, no dependency graph resolved
  • Documentation: no usage examples (README.md)
  • High IaC: DS-0022 (Dockerfile)
  • Medium IaC: WD-DOCKER-0003 (Dockerfile)
  • Medium IaC: WD-DOCKER-0003 (Dockerfile)
  • No ADRs found
  • No automated tests
  • No dependency advisory monitoring
  • Repeated repair: eden-demo-cola-start/src/main/java/org/ylzl/eden/demo/ColaApplication.java (eden-demo-cola-start/src/main/java/org/ylzl/eden/demo/ColaApplication.java)
  • Rotate the exposed credentials — git history can't be un-committed
  • Scanner failed to run — not a clean result
  • Scanner failed to run — not a clean result
  • Secret: password-hash-credential (eden-demo-cola-infrastructure/src/main/resources/db/2.4.13-SNAPSHOT/users.csv)
  • Secret: password-hash-credential (eden-demo-cola-infrastructure/src/main/resources/db/2.4.13/users.csv)
  • Secret: password-hash-credential (eden-demo-cola-infrastructure/src/main/resources/db/data/demo_users.csv)

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

shiyindaxiaojie/eden-demo-cola 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 22 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 a104834d81cf6534e84f5d35a6eb0c7397546b2d — 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-821afab8930d.