gitextract_s6zpyxns/ ├── .editorconfig ├── .github/ │ ├── dependabot.yml │ └── workflows/ │ ├── ci.yaml │ └── ci_by_multiply_java_versions.yaml ├── .gitignore ├── .gitmodules ├── .mvn/ │ └── wrapper/ │ └── maven-wrapper.properties ├── LICENSE ├── README.md ├── cola-archetypes/ │ ├── cola-archetype-light/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ └── resources/ │ │ │ ├── META-INF/ │ │ │ │ └── maven/ │ │ │ │ └── archetype-metadata.xml │ │ │ └── archetype-resources/ │ │ │ ├── README.md │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ ├── main/ │ │ │ │ ├── java/ │ │ │ │ │ ├── Application.java │ │ │ │ │ ├── adapter/ │ │ │ │ │ │ └── ChargeController.java │ │ │ │ │ ├── application/ │ │ │ │ │ │ ├── ChargeServiceI.java │ │ │ │ │ │ ├── ChargeServiceImpl.java │ │ │ │ │ │ └── dto/ │ │ │ │ │ │ ├── BeginSessionRequest.java │ │ │ │ │ │ ├── ChargeRecordDto.java │ │ │ │ │ │ ├── ChargeRequest.java │ │ │ │ │ │ ├── EndSessionRequest.java │ │ │ │ │ │ ├── MultiResponse.java │ │ │ │ │ │ ├── Response.java │ │ │ │ │ │ └── SingleResponse.java │ │ │ │ │ ├── domain/ │ │ │ │ │ │ ├── ApplicationContextHelper.java │ │ │ │ │ │ ├── BizException.java │ │ │ │ │ │ ├── DomainFactory.java │ │ │ │ │ │ ├── Entity.java │ │ │ │ │ │ ├── account/ │ │ │ │ │ │ │ ├── Account.java │ │ │ │ │ │ │ └── AccountDomainService.java │ │ │ │ │ │ ├── charge/ │ │ │ │ │ │ │ ├── CallType.java │ │ │ │ │ │ │ ├── ChargeContext.java │ │ │ │ │ │ │ ├── ChargeRecord.java │ │ │ │ │ │ │ ├── Money.java │ │ │ │ │ │ │ ├── MoneyConverter.java │ │ │ │ │ │ │ ├── Session.java │ │ │ │ │ │ │ ├── chargeplan/ │ │ │ │ │ │ │ │ ├── BasicChargePlan.java │ │ │ │ │ │ │ │ ├── ChargePlan.java │ │ │ │ │ │ │ │ ├── ChargePlanType.java │ │ │ │ │ │ │ │ ├── FamilyChargePlan.java │ │ │ │ │ │ │ │ ├── FixedTimeChangePlan.java │ │ │ │ │ │ │ │ └── Resource.java │ │ │ │ │ │ │ └── chargerule/ │ │ │ │ │ │ │ ├── AbstractChargeRule.java │ │ │ │ │ │ │ ├── BasicChargeRule.java │ │ │ │ │ │ │ ├── ChargeRule.java │ │ │ │ │ │ │ ├── ChargeRuleFactory.java │ │ │ │ │ │ │ ├── CompositeChargeRule.java │ │ │ │ │ │ │ ├── FamilyChargeRule.java │ │ │ │ │ │ │ └── FixedTimeChargeRule.java │ │ │ │ │ │ └── gateway/ │ │ │ │ │ │ ├── AccountGateway.java │ │ │ │ │ │ ├── ChargeGateway.java │ │ │ │ │ │ └── SessionGateway.java │ │ │ │ │ └── infrastructure/ │ │ │ │ │ ├── AccountGatewayImpl.java │ │ │ │ │ ├── RestClientBean.java │ │ │ │ │ └── SessionGatewayImpl.java │ │ │ │ └── resources/ │ │ │ │ ├── application.yml │ │ │ │ └── logback.xml │ │ │ └── test/ │ │ │ ├── charge.http │ │ │ ├── java/ │ │ │ │ ├── CleanArchTest.java │ │ │ │ ├── TestsContainerBoot.java │ │ │ │ ├── application/ │ │ │ │ │ └── ChargeServiceTest.java │ │ │ │ ├── domain/ │ │ │ │ │ ├── ChargeRecordPlanTest.java │ │ │ │ │ ├── ChargeRecordRuleTest.java │ │ │ │ │ └── CompositeChargeRuleTestRecord.java │ │ │ │ └── infrastructure/ │ │ │ │ ├── AccountGatewayTest.java │ │ │ │ ├── ChargeRecordRepoTest.java │ │ │ │ ├── FixtureLoader.java │ │ │ │ ├── JSONTest.java │ │ │ │ ├── SpingBootConfTest.java │ │ │ │ ├── WireMockBasicTest.java │ │ │ │ └── WireMockRegister.java │ │ │ └── resources/ │ │ │ ├── application-test.yml │ │ │ ├── application.yml │ │ │ ├── fixture/ │ │ │ │ └── wiremock/ │ │ │ │ ├── stub_account.json │ │ │ │ ├── stub_insufficient_account.json │ │ │ │ └── stub_wire_mock_basic.json │ │ │ └── logback-test.xml │ │ └── test/ │ │ └── resources/ │ │ └── projects/ │ │ └── basic/ │ │ ├── archetype.properties │ │ └── goal.txt │ ├── cola-archetype-service/ │ │ ├── .gitignore │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ └── resources/ │ │ │ ├── META-INF/ │ │ │ │ └── maven/ │ │ │ │ └── archetype-metadata.xml │ │ │ └── archetype-resources/ │ │ │ ├── __gitignore__ │ │ │ ├── __rootArtifactId__-app/ │ │ │ │ ├── pom.xml │ │ │ │ └── src/ │ │ │ │ ├── main/ │ │ │ │ │ └── java/ │ │ │ │ │ ├── customer/ │ │ │ │ │ │ ├── CustomerServiceImpl.java │ │ │ │ │ │ └── executor/ │ │ │ │ │ │ ├── CustomerAddCmdExe.java │ │ │ │ │ │ └── query/ │ │ │ │ │ │ └── CustomerListByNameQryExe.java │ │ │ │ │ └── order/ │ │ │ │ │ └── OrderServiceImpl.java │ │ │ │ └── test/ │ │ │ │ └── java/ │ │ │ │ └── app/ │ │ │ │ ├── CustomerConvertorTest.java │ │ │ │ └── CustomerValidatorTest.java │ │ │ ├── __rootArtifactId__-client/ │ │ │ │ ├── pom.xml │ │ │ │ └── src/ │ │ │ │ └── main/ │ │ │ │ └── java/ │ │ │ │ ├── api/ │ │ │ │ │ └── CustomerServiceI.java │ │ │ │ └── dto/ │ │ │ │ ├── CustomerAddCmd.java │ │ │ │ ├── CustomerListByNameQry.java │ │ │ │ ├── data/ │ │ │ │ │ ├── CustomerDTO.java │ │ │ │ │ └── ErrorCode.java │ │ │ │ └── event/ │ │ │ │ ├── CustomerCreatedEvent.java │ │ │ │ └── DomainEventConstant.java │ │ │ ├── __rootArtifactId__-domain/ │ │ │ │ ├── pom.xml │ │ │ │ └── src/ │ │ │ │ ├── main/ │ │ │ │ │ └── java/ │ │ │ │ │ └── domain/ │ │ │ │ │ ├── customer/ │ │ │ │ │ │ ├── CompanyType.java │ │ │ │ │ │ ├── Credit.java │ │ │ │ │ │ ├── Customer.java │ │ │ │ │ │ ├── CustomerType.java │ │ │ │ │ │ ├── SourceType.java │ │ │ │ │ │ ├── domainservice/ │ │ │ │ │ │ │ └── CreditChecker.java │ │ │ │ │ │ └── gateway/ │ │ │ │ │ │ ├── CreditGateway.java │ │ │ │ │ │ └── CustomerGateway.java │ │ │ │ │ ├── order/ │ │ │ │ │ │ └── Order.java │ │ │ │ │ └── package-info.java │ │ │ │ └── test/ │ │ │ │ └── java/ │ │ │ │ └── domain/ │ │ │ │ └── CustomerEntityTest.java │ │ │ ├── __rootArtifactId__-infrastructure/ │ │ │ │ ├── pom.xml │ │ │ │ └── src/ │ │ │ │ ├── main/ │ │ │ │ │ ├── java/ │ │ │ │ │ │ ├── config/ │ │ │ │ │ │ │ └── DiamondConfig.java │ │ │ │ │ │ ├── customer/ │ │ │ │ │ │ │ ├── CreditGatewayImpl.java │ │ │ │ │ │ │ ├── CustomerDO.java │ │ │ │ │ │ │ ├── CustomerGatewayImpl.java │ │ │ │ │ │ │ └── CustomerMapper.java │ │ │ │ │ │ └── order/ │ │ │ │ │ │ └── OrderGatewayImpl.java │ │ │ │ │ └── resources/ │ │ │ │ │ ├── logback-spring.xml │ │ │ │ │ └── mybatis/ │ │ │ │ │ ├── customer-mapper.xml │ │ │ │ │ └── mybatis-config.xml │ │ │ │ └── test/ │ │ │ │ ├── java/ │ │ │ │ │ └── repository/ │ │ │ │ │ └── CustomerMapperTest.java │ │ │ │ └── resources/ │ │ │ │ └── sample.properties │ │ │ ├── pom.xml │ │ │ └── start/ │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ ├── main/ │ │ │ │ ├── java/ │ │ │ │ │ └── Application.java │ │ │ │ └── resources/ │ │ │ │ ├── application.properties │ │ │ │ └── logback-spring.xml │ │ │ └── test/ │ │ │ ├── java/ │ │ │ │ ├── TestApplication.java │ │ │ │ └── test/ │ │ │ │ └── CustomerServiceTest.java │ │ │ └── resources/ │ │ │ ├── logback-test.xml │ │ │ └── test.properties │ │ └── test/ │ │ └── resources/ │ │ └── projects/ │ │ └── basic/ │ │ ├── archetype.properties │ │ └── goal.txt │ ├── cola-archetype-web/ │ │ ├── .gitignore │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ └── resources/ │ │ │ ├── META-INF/ │ │ │ │ └── maven/ │ │ │ │ └── archetype-metadata.xml │ │ │ └── archetype-resources/ │ │ │ ├── __gitignore__ │ │ │ ├── __rootArtifactId__-adapter/ │ │ │ │ ├── pom.xml │ │ │ │ └── src/ │ │ │ │ └── main/ │ │ │ │ └── java/ │ │ │ │ ├── mobile/ │ │ │ │ │ └── CustomerMobileAdaptor.java │ │ │ │ ├── wap/ │ │ │ │ │ └── CustomerWapAdaptor.java │ │ │ │ └── web/ │ │ │ │ └── CustomerController.java │ │ │ ├── __rootArtifactId__-app/ │ │ │ │ ├── pom.xml │ │ │ │ └── src/ │ │ │ │ ├── main/ │ │ │ │ │ └── java/ │ │ │ │ │ ├── customer/ │ │ │ │ │ │ ├── CustomerServiceImpl.java │ │ │ │ │ │ └── executor/ │ │ │ │ │ │ ├── CustomerAddCmdExe.java │ │ │ │ │ │ └── query/ │ │ │ │ │ │ └── CustomerListByNameQryExe.java │ │ │ │ │ └── order/ │ │ │ │ │ └── OrderServiceImpl.java │ │ │ │ └── test/ │ │ │ │ └── java/ │ │ │ │ └── app/ │ │ │ │ ├── CustomerConvertorTest.java │ │ │ │ └── CustomerValidatorTest.java │ │ │ ├── __rootArtifactId__-client/ │ │ │ │ ├── pom.xml │ │ │ │ └── src/ │ │ │ │ └── main/ │ │ │ │ └── java/ │ │ │ │ ├── api/ │ │ │ │ │ └── CustomerServiceI.java │ │ │ │ └── dto/ │ │ │ │ ├── CustomerAddCmd.java │ │ │ │ ├── CustomerListByNameQry.java │ │ │ │ ├── data/ │ │ │ │ │ ├── CustomerDTO.java │ │ │ │ │ └── ErrorCode.java │ │ │ │ └── event/ │ │ │ │ ├── CustomerCreatedEvent.java │ │ │ │ └── DomainEventConstant.java │ │ │ ├── __rootArtifactId__-domain/ │ │ │ │ ├── pom.xml │ │ │ │ └── src/ │ │ │ │ ├── main/ │ │ │ │ │ └── java/ │ │ │ │ │ └── domain/ │ │ │ │ │ ├── customer/ │ │ │ │ │ │ ├── CompanyType.java │ │ │ │ │ │ ├── Credit.java │ │ │ │ │ │ ├── Customer.java │ │ │ │ │ │ ├── CustomerType.java │ │ │ │ │ │ ├── SourceType.java │ │ │ │ │ │ ├── domainservice/ │ │ │ │ │ │ │ └── CreditChecker.java │ │ │ │ │ │ └── gateway/ │ │ │ │ │ │ ├── CreditGateway.java │ │ │ │ │ │ └── CustomerGateway.java │ │ │ │ │ ├── order/ │ │ │ │ │ │ └── Order.java │ │ │ │ │ └── package-info.java │ │ │ │ └── test/ │ │ │ │ └── java/ │ │ │ │ └── domain/ │ │ │ │ └── CustomerEntityTest.java │ │ │ ├── __rootArtifactId__-infrastructure/ │ │ │ │ ├── pom.xml │ │ │ │ └── src/ │ │ │ │ ├── main/ │ │ │ │ │ ├── java/ │ │ │ │ │ │ ├── config/ │ │ │ │ │ │ │ └── DiamondConfig.java │ │ │ │ │ │ ├── customer/ │ │ │ │ │ │ │ ├── CreditGatewayImpl.java │ │ │ │ │ │ │ ├── CustomerDO.java │ │ │ │ │ │ │ ├── CustomerGatewayImpl.java │ │ │ │ │ │ │ └── CustomerMapper.java │ │ │ │ │ │ └── order/ │ │ │ │ │ │ └── OrderGatewayImpl.java │ │ │ │ │ └── resources/ │ │ │ │ │ ├── logback-spring.xml │ │ │ │ │ └── mybatis/ │ │ │ │ │ ├── customer-mapper.xml │ │ │ │ │ └── mybatis-config.xml │ │ │ │ └── test/ │ │ │ │ ├── java/ │ │ │ │ │ └── repository/ │ │ │ │ │ └── CustomerMapperTest.java │ │ │ │ └── resources/ │ │ │ │ └── sample.properties │ │ │ ├── pom.xml │ │ │ └── start/ │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ ├── main/ │ │ │ │ ├── java/ │ │ │ │ │ └── Application.java │ │ │ │ └── resources/ │ │ │ │ ├── application.properties │ │ │ │ └── logback-spring.xml │ │ │ └── test/ │ │ │ ├── java/ │ │ │ │ ├── TestApplication.java │ │ │ │ └── test/ │ │ │ │ └── CustomerServiceTest.java │ │ │ └── resources/ │ │ │ ├── logback-test.xml │ │ │ └── test.properties │ │ └── test/ │ │ └── resources/ │ │ └── projects/ │ │ └── basic/ │ │ ├── archetype.properties │ │ └── goal.txt │ └── pom.xml ├── cola-components/ │ ├── cola-component-catchlog-starter/ │ │ ├── .gitignore │ │ ├── README.md │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── alibaba/ │ │ │ │ └── cola/ │ │ │ │ └── catchlog/ │ │ │ │ ├── ApplicationContextHelper.java │ │ │ │ ├── CatchAndLog.java │ │ │ │ ├── CatchLogAspect.java │ │ │ │ ├── CatchLogAutoConfiguration.java │ │ │ │ ├── DefaultResponseHandler.java │ │ │ │ ├── ResponseHandlerFactory.java │ │ │ │ └── ResponseHandlerI.java │ │ │ └── resources/ │ │ │ └── META-INF/ │ │ │ └── spring.factories │ │ └── test/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── alibaba/ │ │ │ └── cola/ │ │ │ └── catchlog/ │ │ │ └── test/ │ │ │ ├── Application.java │ │ │ ├── CatchLogTest.java │ │ │ ├── CustomResponseHandler.java │ │ │ └── Demo.java │ │ └── resources/ │ │ ├── application.properties │ │ └── logback-test.xml │ ├── cola-component-domain-starter/ │ │ ├── README.md │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── alibaba/ │ │ │ │ └── cola/ │ │ │ │ └── domain/ │ │ │ │ ├── ApplicationContextHelper.java │ │ │ │ ├── DomainAutoConfiguration.java │ │ │ │ ├── DomainFactory.java │ │ │ │ └── Entity.java │ │ │ └── resources/ │ │ │ └── META-INF/ │ │ │ └── spring.factories │ │ └── test/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── alibaba/ │ │ │ └── cola/ │ │ │ └── domain/ │ │ │ ├── Application.java │ │ │ ├── Customer.java │ │ │ └── PurchasePowerGateway.java │ │ └── resources/ │ │ ├── application.properties │ │ └── logback-test.xml │ ├── cola-component-dto/ │ │ ├── .gitignore │ │ ├── README.md │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── alibaba/ │ │ │ └── cola/ │ │ │ ├── dto/ │ │ │ │ ├── ClientObject.java │ │ │ │ ├── Command.java │ │ │ │ ├── DTO.java │ │ │ │ ├── MultiResponse.java │ │ │ │ ├── PageQuery.java │ │ │ │ ├── PageResponse.java │ │ │ │ ├── Query.java │ │ │ │ ├── Response.java │ │ │ │ ├── Scope.java │ │ │ │ └── SingleResponse.java │ │ │ └── extension/ │ │ │ └── BizScenario.java │ │ └── test/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── alibaba/ │ │ │ └── cola/ │ │ │ └── Test.java │ │ └── resources/ │ │ └── logback-test.xml │ ├── cola-component-exception/ │ │ ├── .gitignore │ │ ├── README.md │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── alibaba/ │ │ │ └── cola/ │ │ │ └── exception/ │ │ │ ├── Assert.java │ │ │ ├── BaseException.java │ │ │ ├── BizException.java │ │ │ ├── ExceptionFactory.java │ │ │ └── SysException.java │ │ └── test/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── alibaba/ │ │ │ └── cola/ │ │ │ └── exception/ │ │ │ └── Test.java │ │ └── resources/ │ │ └── logback-test.xml │ ├── cola-component-extension-starter/ │ │ ├── README.md │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── alibaba/ │ │ │ │ └── cola/ │ │ │ │ └── extension/ │ │ │ │ ├── Extension.java │ │ │ │ ├── ExtensionAutoConfiguration.java │ │ │ │ ├── ExtensionCoordinate.java │ │ │ │ ├── ExtensionException.java │ │ │ │ ├── ExtensionExecutor.java │ │ │ │ ├── ExtensionPointI.java │ │ │ │ ├── ExtensionRepository.java │ │ │ │ ├── Extensions.java │ │ │ │ └── register/ │ │ │ │ ├── AbstractComponentExecutor.java │ │ │ │ ├── ExtensionBootstrap.java │ │ │ │ └── ExtensionRegister.java │ │ │ └── resources/ │ │ │ └── META-INF/ │ │ │ └── spring.factories │ │ └── test/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── alibaba/ │ │ │ └── cola/ │ │ │ └── extension/ │ │ │ ├── Application.java │ │ │ ├── ExtensionTest.java │ │ │ ├── MultiCoordinateTests.java │ │ │ ├── customer/ │ │ │ │ ├── app/ │ │ │ │ │ ├── AddCustomerCmdExe.java │ │ │ │ │ ├── CustomerCreatedEventHandler.java │ │ │ │ │ ├── CustomerServiceImpl.java │ │ │ │ │ ├── GetOneCustomerQryExe.java │ │ │ │ │ ├── extension/ │ │ │ │ │ │ ├── AddCustomerBiz1UseCase1Scenario1Validator.java │ │ │ │ │ │ ├── AddCustomerBiz1UseCase1Validator.java │ │ │ │ │ │ ├── AddCustomerBizOneValidator.java │ │ │ │ │ │ ├── AddCustomerBizTwoValidator.java │ │ │ │ │ │ ├── CustomerBizOneConvertorExt.java │ │ │ │ │ │ ├── CustomerBizTwoConvertorExt.java │ │ │ │ │ │ ├── CustomerConvertor.java │ │ │ │ │ │ └── StatusNameConvertorExt.java │ │ │ │ │ └── extensionpoint/ │ │ │ │ │ ├── AddCustomerValidatorExtPt.java │ │ │ │ │ ├── CustomerConvertorExtPt.java │ │ │ │ │ └── StatusNameConvertorExtPt.java │ │ │ │ ├── client/ │ │ │ │ │ ├── AddCustomerCmd.java │ │ │ │ │ ├── Constants.java │ │ │ │ │ ├── CustomerCreatedEvent.java │ │ │ │ │ ├── CustomerDTO.java │ │ │ │ │ ├── CustomerServiceI.java │ │ │ │ │ └── GetOneCustomerQry.java │ │ │ │ ├── domain/ │ │ │ │ │ ├── CustomerEntity.java │ │ │ │ │ ├── CustomerType.java │ │ │ │ │ ├── SourceType.java │ │ │ │ │ └── rule/ │ │ │ │ │ ├── CustomerBizOneRuleExt.java │ │ │ │ │ ├── CustomerBizTwoRuleExt.java │ │ │ │ │ └── CustomerRuleExtPt.java │ │ │ │ └── infrastructure/ │ │ │ │ ├── CustomerDO.java │ │ │ │ ├── CustomerRepository.java │ │ │ │ └── DomainEventPublisher.java │ │ │ └── register/ │ │ │ ├── CglibProxyFactory.java │ │ │ ├── ExtensionRegisterTest.java │ │ │ ├── SomeExtPt.java │ │ │ ├── SomeExtensionA.java │ │ │ └── SomeExtensionB.java │ │ └── resources/ │ │ ├── application.properties │ │ └── logback-test.xml │ ├── cola-component-job/ │ │ ├── README.md │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── alibaba/ │ │ │ │ └── cola/ │ │ │ │ └── job/ │ │ │ │ ├── BatchJobLauncher.java │ │ │ │ ├── ExecutionContext.java │ │ │ │ ├── JobBuilderFactory.java │ │ │ │ ├── JobException.java │ │ │ │ ├── JobLauncher.java │ │ │ │ ├── UuidGenerator.java │ │ │ │ ├── config/ │ │ │ │ │ ├── DBAutoConfiguration.java │ │ │ │ │ ├── EnableColaJob.java │ │ │ │ │ ├── EnableJobConfiguration.java │ │ │ │ │ ├── JobProperties.java │ │ │ │ │ └── RedisConfig.java │ │ │ │ ├── model/ │ │ │ │ │ ├── AbstractStep.java │ │ │ │ │ ├── BatchJob.java │ │ │ │ │ ├── BatchJobExecution.java │ │ │ │ │ ├── ExecutionStatus.java │ │ │ │ │ ├── Job.java │ │ │ │ │ ├── JobExecution.java │ │ │ │ │ ├── JobInstance.java │ │ │ │ │ ├── Step.java │ │ │ │ │ └── StepExecution.java │ │ │ │ └── repository/ │ │ │ │ ├── AbstractJobRepository.java │ │ │ │ ├── JobRepository.java │ │ │ │ ├── JsonUtil.java │ │ │ │ ├── RepositoryType.java │ │ │ │ ├── db/ │ │ │ │ │ ├── BatchJobExecutionRepository.java │ │ │ │ │ ├── DataBaseJobRepository.java │ │ │ │ │ ├── JobExecutionRepository.java │ │ │ │ │ └── StepExecutionRepository.java │ │ │ │ ├── memory/ │ │ │ │ │ └── MemoryJobRepository.java │ │ │ │ └── redis/ │ │ │ │ └── RedisJobRepository.java │ │ │ └── resources/ │ │ │ └── schema-mysql.sql │ │ └── test/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── alibaba/ │ │ │ └── cola/ │ │ │ └── job/ │ │ │ └── test/ │ │ │ ├── AbstractBaseJobTest.java │ │ │ ├── MemoryDBJobTest.java │ │ │ ├── MemoryJobTest.java │ │ │ ├── MySQLJobTest.java │ │ │ ├── RedisJobTest.java │ │ │ ├── TestApplication.java │ │ │ ├── TestsContainerBoot.java │ │ │ └── steps/ │ │ │ ├── FailedStep.java │ │ │ ├── LongTimeStep.java │ │ │ ├── MyStep1.java │ │ │ ├── MyStep2.java │ │ │ ├── MyStep3.java │ │ │ ├── MyStep4.java │ │ │ ├── MyStep5.java │ │ │ └── SwitchStep.java │ │ └── resources/ │ │ ├── application-h2-test.yml │ │ ├── application-mysql-test.yml │ │ ├── application-redis-test.yml │ │ └── logback-test.xml │ ├── cola-component-ruleengine/ │ │ ├── README.md │ │ ├── gitignore.txt │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── alibaba/ │ │ │ └── cola/ │ │ │ └── ruleengine/ │ │ │ ├── api/ │ │ │ │ ├── Action.java │ │ │ │ ├── Condition.java │ │ │ │ ├── Fact.java │ │ │ │ ├── Facts.java │ │ │ │ ├── Rule.java │ │ │ │ └── RuleEngine.java │ │ │ └── core/ │ │ │ ├── AbstractRule.java │ │ │ ├── AllRules.java │ │ │ ├── AnyRules.java │ │ │ ├── CompositeRule.java │ │ │ ├── DefaultRule.java │ │ │ ├── DefaultRuleEngine.java │ │ │ ├── NaturalRules.java │ │ │ └── RuleBuilder.java │ │ └── test/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── alibaba/ │ │ │ └── cola/ │ │ │ └── ruleengine/ │ │ │ ├── CompositeRuleTest.java │ │ │ ├── FactsTest.java │ │ │ ├── FizzBuzz.java │ │ │ ├── HelloWorld.java │ │ │ ├── PriorityTest.java │ │ │ ├── RuleBuilderTest.java │ │ │ ├── RuleEngineTest.java │ │ │ └── fizzbuzz/ │ │ │ ├── FizzBuzzTest.java │ │ │ ├── v1/ │ │ │ │ └── FizzBuzz.java │ │ │ └── v2/ │ │ │ ├── Action.java │ │ │ ├── Condition.java │ │ │ ├── FizzBuzz.java │ │ │ ├── Rule.java │ │ │ ├── SimpleRuleEngine.java │ │ │ └── TimesCondition.java │ │ └── resources/ │ │ └── logback-test.xml │ ├── cola-component-statemachine/ │ │ ├── .gitignore │ │ ├── README.md │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── alibaba/ │ │ │ └── cola/ │ │ │ └── statemachine/ │ │ │ ├── Action.java │ │ │ ├── Condition.java │ │ │ ├── State.java │ │ │ ├── StateContext.java │ │ │ ├── StateMachine.java │ │ │ ├── StateMachineFactory.java │ │ │ ├── Transition.java │ │ │ ├── Visitable.java │ │ │ ├── Visitor.java │ │ │ ├── builder/ │ │ │ │ ├── AbstractParallelTransitionBuilder.java │ │ │ │ ├── AbstractTransitionBuilder.java │ │ │ │ ├── AlertFailCallback.java │ │ │ │ ├── ExternalParallelTransitionBuilder.java │ │ │ │ ├── ExternalTransitionBuilder.java │ │ │ │ ├── ExternalTransitionsBuilder.java │ │ │ │ ├── FailCallback.java │ │ │ │ ├── From.java │ │ │ │ ├── InternalTransitionBuilder.java │ │ │ │ ├── NumbFailCallback.java │ │ │ │ ├── On.java │ │ │ │ ├── ParallelFrom.java │ │ │ │ ├── ParallelTransitionBuilderImpl.java │ │ │ │ ├── StateMachineBuilder.java │ │ │ │ ├── StateMachineBuilderFactory.java │ │ │ │ ├── StateMachineBuilderImpl.java │ │ │ │ ├── To.java │ │ │ │ ├── TransitionBuilderImpl.java │ │ │ │ ├── TransitionsBuilderImpl.java │ │ │ │ ├── When.java │ │ │ │ └── package-info.java │ │ │ ├── exception/ │ │ │ │ └── TransitionFailException.java │ │ │ └── impl/ │ │ │ ├── Debugger.java │ │ │ ├── EventTransitions.java │ │ │ ├── PlantUMLVisitor.java │ │ │ ├── StateHelper.java │ │ │ ├── StateImpl.java │ │ │ ├── StateMachineException.java │ │ │ ├── StateMachineImpl.java │ │ │ ├── SysOutVisitor.java │ │ │ ├── TransitionImpl.java │ │ │ └── TransitionType.java │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── alibaba/ │ │ └── cola/ │ │ └── test/ │ │ ├── StateMachineChoiceTest.java │ │ ├── StateMachinePlantUMLTest.java │ │ ├── StateMachineTest.java │ │ └── StateMachineUnNormalTest.java │ ├── cola-component-test-container/ │ │ ├── README.md │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── alibaba/ │ │ │ └── cola/ │ │ │ └── test/ │ │ │ ├── BeanMetaUtils.java │ │ │ ├── TestExecutor.java │ │ │ ├── TestsContainer.java │ │ │ └── command/ │ │ │ ├── AbstractCommand.java │ │ │ ├── CommandEnum.java │ │ │ ├── GuideCmd.java │ │ │ ├── TestClassRunCmd.java │ │ │ └── TestMethodRunCmd.java │ │ └── test/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── alibaba/ │ │ │ └── cola/ │ │ │ └── test/ │ │ │ ├── Demo.java │ │ │ ├── DemoWithExtension.java │ │ │ ├── SpringBootConfig.java │ │ │ ├── SpringConfig.java │ │ │ └── TestsContainerTest.java │ │ └── resources/ │ │ └── logback-test.xml │ ├── cola-component-unittest/ │ │ ├── .gitignore │ │ ├── README.md │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── alibaba/ │ │ │ └── cola/ │ │ │ └── unittest/ │ │ │ ├── FixtureLoader.java │ │ │ ├── kafka/ │ │ │ │ ├── KafkaExtension.java │ │ │ │ ├── MessageData.java │ │ │ │ └── ProduceMessage.java │ │ │ ├── redis/ │ │ │ │ ├── ExpectRedis.java │ │ │ │ ├── RedisData.java │ │ │ │ ├── RedisExtension.java │ │ │ │ └── SetupRedis.java │ │ │ └── wiremock/ │ │ │ └── WireMockRegister.java │ │ └── test/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── alibaba/ │ │ │ └── cola/ │ │ │ └── unittest/ │ │ │ ├── Application.java │ │ │ ├── TestsContainerBoot.java │ │ │ ├── db/ │ │ │ │ ├── DBSetupTest.java │ │ │ │ ├── Person.java │ │ │ │ └── PersonRepository.java │ │ │ ├── kafka/ │ │ │ │ ├── KafkaConsumer.java │ │ │ │ └── KafkaExtensionTest.java │ │ │ ├── redis/ │ │ │ │ └── RedisExtensionTest.java │ │ │ └── wiremock/ │ │ │ ├── Account.java │ │ │ └── WireMockBasicTest.java │ │ └── resources/ │ │ ├── application.properties │ │ ├── fixture/ │ │ │ ├── db/ │ │ │ │ └── sample-data.xml │ │ │ ├── kafka/ │ │ │ │ └── produce-message.json │ │ │ ├── redis/ │ │ │ │ ├── array-setup.json │ │ │ │ ├── hash-setup.json │ │ │ │ ├── string-expect.json │ │ │ │ └── string-setup.json │ │ │ └── wiremock/ │ │ │ ├── stub-account.json │ │ │ └── stub-wire-mock-basic.json │ │ └── logback-test.xml │ ├── cola-components-bom/ │ │ └── pom.xml │ ├── dev-util-archetypes/ │ │ ├── README.md │ │ ├── cola-normal-component-archetype/ │ │ │ ├── .gitignore │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ ├── main/ │ │ │ │ └── resources/ │ │ │ │ ├── META-INF/ │ │ │ │ │ └── maven/ │ │ │ │ │ └── archetype-metadata.xml │ │ │ │ └── archetype-resources/ │ │ │ │ ├── gitignore.txt │ │ │ │ ├── pom.xml │ │ │ │ └── src/ │ │ │ │ ├── main/ │ │ │ │ │ └── java/ │ │ │ │ │ └── Dummy.java │ │ │ │ └── test/ │ │ │ │ └── resources/ │ │ │ │ └── logback-test.xml │ │ │ └── test/ │ │ │ └── resources/ │ │ │ └── projects/ │ │ │ └── basic/ │ │ │ ├── archetype.properties │ │ │ └── goal.txt │ │ ├── cola-starter-component-archetype/ │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ ├── main/ │ │ │ │ └── resources/ │ │ │ │ ├── META-INF/ │ │ │ │ │ └── maven/ │ │ │ │ │ └── archetype-metadata.xml │ │ │ │ └── archetype-resources/ │ │ │ │ ├── README.md │ │ │ │ ├── gitignore.txt │ │ │ │ ├── pom.xml │ │ │ │ └── src/ │ │ │ │ ├── main/ │ │ │ │ │ ├── java/ │ │ │ │ │ │ ├── CatchAndLog.java │ │ │ │ │ │ ├── CatchLogAspect.java │ │ │ │ │ │ └── CatchLogAutoConfiguration.java │ │ │ │ │ └── resources/ │ │ │ │ │ └── META-INF/ │ │ │ │ │ └── spring.factories │ │ │ │ └── test/ │ │ │ │ ├── java/ │ │ │ │ │ └── test/ │ │ │ │ │ └── Application.java │ │ │ │ └── resources/ │ │ │ │ ├── application.properties │ │ │ │ └── logback-test.xml │ │ │ └── test/ │ │ │ └── resources/ │ │ │ └── projects/ │ │ │ └── basic/ │ │ │ ├── archetype.properties │ │ │ └── goal.txt │ │ ├── new-cola-normal-component.sh │ │ └── new-cola-starter-component.sh │ └── pom.xml ├── cola-samples/ │ ├── charge/ │ │ ├── README.md │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── huawei/ │ │ │ │ └── charging/ │ │ │ │ ├── Application.java │ │ │ │ ├── adapter/ │ │ │ │ │ └── ChargeController.java │ │ │ │ ├── application/ │ │ │ │ │ ├── ChargeServiceI.java │ │ │ │ │ ├── ChargeServiceImpl.java │ │ │ │ │ └── dto/ │ │ │ │ │ ├── BeginSessionRequest.java │ │ │ │ │ ├── ChargeRecordDto.java │ │ │ │ │ ├── ChargeRequest.java │ │ │ │ │ ├── EndSessionRequest.java │ │ │ │ │ ├── MultiResponse.java │ │ │ │ │ ├── Response.java │ │ │ │ │ └── SingleResponse.java │ │ │ │ ├── domain/ │ │ │ │ │ ├── ApplicationContextHelper.java │ │ │ │ │ ├── BizException.java │ │ │ │ │ ├── DomainFactory.java │ │ │ │ │ ├── Entity.java │ │ │ │ │ ├── account/ │ │ │ │ │ │ ├── Account.java │ │ │ │ │ │ └── AccountDomainService.java │ │ │ │ │ ├── charge/ │ │ │ │ │ │ ├── CallType.java │ │ │ │ │ │ ├── ChargeContext.java │ │ │ │ │ │ ├── ChargeRecord.java │ │ │ │ │ │ ├── Money.java │ │ │ │ │ │ ├── MoneyConverter.java │ │ │ │ │ │ ├── Session.java │ │ │ │ │ │ ├── chargeplan/ │ │ │ │ │ │ │ ├── BasicChargePlan.java │ │ │ │ │ │ │ ├── ChargePlan.java │ │ │ │ │ │ │ ├── ChargePlanType.java │ │ │ │ │ │ │ ├── FamilyChargePlan.java │ │ │ │ │ │ │ ├── FixedTimeChangePlan.java │ │ │ │ │ │ │ └── Resource.java │ │ │ │ │ │ └── chargerule/ │ │ │ │ │ │ ├── AbstractChargeRule.java │ │ │ │ │ │ ├── BasicChargeRule.java │ │ │ │ │ │ ├── ChargeRule.java │ │ │ │ │ │ ├── ChargeRuleFactory.java │ │ │ │ │ │ ├── CompositeChargeRule.java │ │ │ │ │ │ ├── FamilyChargeRule.java │ │ │ │ │ │ └── FixedTimeChargeRule.java │ │ │ │ │ └── gateway/ │ │ │ │ │ ├── AccountGateway.java │ │ │ │ │ ├── ChargeGateway.java │ │ │ │ │ └── SessionGateway.java │ │ │ │ └── infrastructure/ │ │ │ │ ├── AccountGatewayImpl.java │ │ │ │ ├── RestClientBean.java │ │ │ │ └── SessionGatewayImpl.java │ │ │ └── resources/ │ │ │ ├── application.yml │ │ │ └── logback.xml │ │ └── test/ │ │ ├── charge.http │ │ ├── java/ │ │ │ └── com/ │ │ │ └── huawei/ │ │ │ └── charging/ │ │ │ ├── CleanArchTest.java │ │ │ ├── TestsContainerBoot.java │ │ │ ├── application/ │ │ │ │ └── ChargeServiceTest.java │ │ │ ├── domain/ │ │ │ │ ├── ChargeRecordPlanTest.java │ │ │ │ ├── ChargeRecordRuleTest.java │ │ │ │ └── CompositeChargeRuleTestRecord.java │ │ │ └── infrastructure/ │ │ │ ├── AccountGatewayTest.java │ │ │ ├── ChargeRecordRepoTest.java │ │ │ ├── FixtureLoader.java │ │ │ ├── JSONTest.java │ │ │ ├── SpingBootConfTest.java │ │ │ ├── WireMockBasicTest.java │ │ │ └── WireMockRegister.java │ │ └── resources/ │ │ ├── application-test.yml │ │ ├── application.yml │ │ ├── fixture/ │ │ │ └── wiremock/ │ │ │ ├── stub_account.json │ │ │ ├── stub_insufficient_account.json │ │ │ └── stub_wire_mock_basic.json │ │ └── logback-test.xml │ └── craftsman/ │ ├── craftsman-adapter/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ └── java/ │ │ └── com/ │ │ └── alibaba/ │ │ └── craftsman/ │ │ └── web/ │ │ └── MetricsController.java │ ├── craftsman-app/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── alibaba/ │ │ │ └── craftsman/ │ │ │ ├── command/ │ │ │ │ ├── ATAMetricAddCmdExe.java │ │ │ │ ├── CodeReviewMetricAddCmdExe.java │ │ │ │ ├── MetricDeleteCmdExe.java │ │ │ │ ├── MiscMetricAddCmdExe.java │ │ │ │ ├── PaperMetricAddCmdExe.java │ │ │ │ ├── PatentMetricAddCmdExe.java │ │ │ │ ├── RefactoringMetricAddCmdExe.java │ │ │ │ ├── RefreshScoreCmdExe.java │ │ │ │ ├── SharingMetricAddCmdExe.java │ │ │ │ ├── UserProfileAddCmdExe.java │ │ │ │ ├── UserProfileUpdateCmdExe.java │ │ │ │ ├── package-info.java │ │ │ │ └── query/ │ │ │ │ ├── ATAMetricQryExe.java │ │ │ │ ├── UserProfileGetQryExe.java │ │ │ │ ├── UserProfileListQryExe.java │ │ │ │ └── package-info.java │ │ │ ├── event/ │ │ │ │ └── handler/ │ │ │ │ └── MetricItemCreatedHandler.java │ │ │ └── service/ │ │ │ ├── MetricsServiceImpl.java │ │ │ ├── UserProfileServiceImpl.java │ │ │ └── package-info.java │ │ └── test/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── alibaba/ │ │ │ └── craftsman/ │ │ │ └── app/ │ │ │ └── ContextInterceptorTest.java │ │ └── resources/ │ │ └── logback-test.xml │ ├── craftsman-client/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ └── java/ │ │ └── com/ │ │ └── alibaba/ │ │ └── craftsman/ │ │ ├── api/ │ │ │ ├── MetricsServiceI.java │ │ │ └── UserProfileServiceI.java │ │ ├── context/ │ │ │ └── UserContext.java │ │ └── dto/ │ │ ├── ATAMetricAddCmd.java │ │ ├── ATAMetricQry.java │ │ ├── CodeReviewMetricAddCmd.java │ │ ├── CommonCommand.java │ │ ├── MetricDeleteCmd.java │ │ ├── MiscMetricAddCmd.java │ │ ├── PaperMetricAddCmd.java │ │ ├── PatentMetricAddCmd.java │ │ ├── RefactoringMetricAddCmd.java │ │ ├── RefreshScoreCmd.java │ │ ├── SharingMetricAddCmd.java │ │ ├── UserProfileAddCmd.java │ │ ├── UserProfileGetQry.java │ │ ├── UserProfileListQry.java │ │ ├── UserProfileUpdateCmd.java │ │ ├── clientobject/ │ │ │ ├── ATAMetricCO.java │ │ │ ├── AbstractMetricCO.java │ │ │ ├── MiscMetricCO.java │ │ │ ├── PaperMetricCO.java │ │ │ ├── PatentMetricCO.java │ │ │ ├── RefactoringMetricCO.java │ │ │ ├── SharingMetricCO.java │ │ │ └── UserProfileCO.java │ │ └── domainevent/ │ │ ├── CustomerCreatedEvent.java │ │ └── MetricItemCreatedEvent.java │ ├── craftsman-domain/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── alibaba/ │ │ │ └── craftsman/ │ │ │ └── domain/ │ │ │ ├── DomainFactory.java │ │ │ ├── gateway/ │ │ │ │ ├── MetricGateway.java │ │ │ │ └── UserProfileGateway.java │ │ │ ├── metrics/ │ │ │ │ ├── JSONPropertyFilter.java │ │ │ │ ├── MainMetric.java │ │ │ │ ├── MainMetricType.java │ │ │ │ ├── Measurable.java │ │ │ │ ├── Metric.java │ │ │ │ ├── MetricItem.java │ │ │ │ ├── SubMetric.java │ │ │ │ ├── SubMetricType.java │ │ │ │ ├── appquality/ │ │ │ │ │ ├── AppMetric.java │ │ │ │ │ ├── AppMetricItem.java │ │ │ │ │ └── AppQualityMetric.java │ │ │ │ ├── devquality/ │ │ │ │ │ ├── BugMetric.java │ │ │ │ │ ├── BugMetricItem.java │ │ │ │ │ └── DevQualityMetric.java │ │ │ │ ├── techcontribution/ │ │ │ │ │ ├── CodeReviewMetric.java │ │ │ │ │ ├── CodeReviewMetricItem.java │ │ │ │ │ ├── ContributionMetric.java │ │ │ │ │ ├── MiscMetric.java │ │ │ │ │ ├── MiscMetricItem.java │ │ │ │ │ ├── RefactoringLevel.java │ │ │ │ │ ├── RefactoringMetric.java │ │ │ │ │ └── RefactoringMetricItem.java │ │ │ │ ├── techinfluence/ │ │ │ │ │ ├── ATAMetric.java │ │ │ │ │ ├── ATAMetricItem.java │ │ │ │ │ ├── AuthorType.java │ │ │ │ │ ├── InfluenceMetric.java │ │ │ │ │ ├── PaperMetric.java │ │ │ │ │ ├── PaperMetricItem.java │ │ │ │ │ ├── PatentMetric.java │ │ │ │ │ ├── PatentMetricItem.java │ │ │ │ │ ├── SharingMetric.java │ │ │ │ │ ├── SharingMetricItem.java │ │ │ │ │ └── SharingScope.java │ │ │ │ └── weight/ │ │ │ │ ├── DevWeight.java │ │ │ │ ├── OtherWeight.java │ │ │ │ ├── QAWeight.java │ │ │ │ ├── Weight.java │ │ │ │ └── WeightFactory.java │ │ │ ├── package-info.java │ │ │ └── user/ │ │ │ ├── Role.java │ │ │ └── UserProfile.java │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── alibaba/ │ │ └── craftsman/ │ │ └── domain/ │ │ ├── ATAMetricTest.java │ │ ├── AppMetricTest.java │ │ ├── BugMetricTest.java │ │ ├── InfluenceMetricTest.java │ │ ├── PatentMetricTest.java │ │ ├── SharingMetricTest.java │ │ └── UserProfileTest.java │ ├── craftsman-infrastructure/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── alibaba/ │ │ │ │ └── craftsman/ │ │ │ │ ├── common/ │ │ │ │ │ ├── BizCode.java │ │ │ │ │ ├── event/ │ │ │ │ │ │ └── DomainEventPublisher.java │ │ │ │ │ └── exception/ │ │ │ │ │ └── ErrorCode.java │ │ │ │ ├── config/ │ │ │ │ │ └── CraftsmanConfig.java │ │ │ │ ├── convertor/ │ │ │ │ │ ├── MetricConvertor.java │ │ │ │ │ └── UserProfileConvertor.java │ │ │ │ └── gatewayimpl/ │ │ │ │ ├── MetricGatewayImpl.java │ │ │ │ ├── UserProfileGatewayImpl.java │ │ │ │ ├── database/ │ │ │ │ │ ├── MetricMapper.java │ │ │ │ │ ├── UserProfileMapper.java │ │ │ │ │ └── dataobject/ │ │ │ │ │ ├── BaseDO.java │ │ │ │ │ ├── MetricDO.java │ │ │ │ │ └── UserProfileDO.java │ │ │ │ └── rpc/ │ │ │ │ ├── AppMetricMapper.java │ │ │ │ ├── BugMetricMapper.java │ │ │ │ └── dataobject/ │ │ │ │ ├── AppMetricDO.java │ │ │ │ └── BugMetricDO.java │ │ │ └── resources/ │ │ │ ├── TableCreationDDL.sql │ │ │ ├── mybatis/ │ │ │ │ ├── MetricMapper.xml │ │ │ │ └── UserProfileMapper.xml │ │ │ └── mybatis-config.xml │ │ └── test/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── alibaba/ │ │ │ └── craftsman/ │ │ │ └── gatewayimpl/ │ │ │ ├── Mybatis3Utils.java │ │ │ └── MybatisTest.java │ │ └── resources/ │ │ ├── logback-test.xml │ │ └── mybatis-config-test.xml │ ├── pom.xml │ └── start/ │ ├── pom.xml │ └── src/ │ ├── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── alibaba/ │ │ │ └── craftsman/ │ │ │ └── Application.java │ │ └── resources/ │ │ ├── application.properties │ │ └── logback-spring.xml │ └── test/ │ ├── java/ │ │ └── com/ │ │ └── alibaba/ │ │ └── craftsman/ │ │ ├── TestApplication.java │ │ └── gatewayimpl/ │ │ ├── MetricTunnelTest.java │ │ └── UserProfileTunnelTest.java │ ├── resources/ │ │ ├── logback-test.xml │ │ ├── mockfile/ │ │ │ ├── com.alibaba.craftsman.app.ATAMetricAddCmdExeTest_testATAMetricAddSuccess │ │ │ ├── com.alibaba.craftsman.app.ATAMetricAddCmdExeTest_testATAMetricAddSuccess_inputParams │ │ │ ├── com.alibaba.craftsman.app.CodeReviewMetricAddCmdExeTest_testSuccess │ │ │ ├── com.alibaba.craftsman.app.CodeReviewMetricAddCmdExeTest_testSuccess_inputParams │ │ │ ├── com.alibaba.craftsman.app.MetricDeleteCmdExeTest_testSuccess │ │ │ ├── com.alibaba.craftsman.app.MetricDeleteCmdExeTest_testSuccess_inputParams │ │ │ ├── com.alibaba.craftsman.app.MiscMetricAddCmdExeTest_testSuccess │ │ │ ├── com.alibaba.craftsman.app.MiscMetricAddCmdExeTest_testSuccess_inputParams │ │ │ ├── com.alibaba.craftsman.app.PaperMetricAddCmdExeTest_testPaperMetricAddSuccess │ │ │ ├── com.alibaba.craftsman.app.PaperMetricAddCmdExeTest_testPaperMetricAddSuccess_inputParams │ │ │ ├── com.alibaba.craftsman.app.PatentMetricAddCmdExeTest_testPatentMetricAddSuccess │ │ │ ├── com.alibaba.craftsman.app.PatentMetricAddCmdExeTest_testPatentMetricAddSuccess_inputParams │ │ │ ├── com.alibaba.craftsman.app.RefactoringMetricAddCmdExeTest_testSuccess │ │ │ ├── com.alibaba.craftsman.app.RefactoringMetricAddCmdExeTest_testSuccess_inputParams │ │ │ ├── com.alibaba.craftsman.app.ScoreRecalculateTest_testDevSuccess │ │ │ ├── com.alibaba.craftsman.app.ScoreRecalculateTest_testDevSuccess_inputParams │ │ │ ├── com.alibaba.craftsman.app.SharingMetricAddCmdExeTest_testSharingMetricAddSuccess │ │ │ ├── com.alibaba.craftsman.app.SharingMetricAddCmdExeTest_testSharingMetricAddSuccess_inputParams │ │ │ ├── com.alibaba.craftsman.app.UserProfileCmdExeTest_testSuccessAdd │ │ │ ├── com.alibaba.craftsman.app.UserProfileCmdExeTest_testSuccessAdd_inputParams │ │ │ ├── com.alibaba.craftsman.app.UserProfileCmdExeTest_testSuccessUpdate │ │ │ ├── com.alibaba.craftsman.app.UserProfileCmdExeTest_testSuccessUpdate_inputParams │ │ │ └── service.list │ │ └── spring-mock-test.xml │ ├── testAddCmd.http │ └── testQry.http ├── mvnw ├── mvnw.cmd ├── pom.xml └── scripts/ ├── bump_cola_version ├── integration_test └── maven-deploy.md