├── .gitattributes ├── .github ├── ISSUE_TEMPLATE │ ├── bug-report.md │ ├── feature-request.md │ └── question.md ├── PULL_REQUEST_TEMPLATE.md └── workflows │ └── main.yml ├── .gitignore ├── LICENSE ├── README.md ├── README_CN.md ├── hmily-annotation ├── pom.xml └── src │ └── main │ └── java │ └── org │ └── dromara │ └── hmily │ └── annotation │ ├── Hmily.java │ ├── HmilyTAC.java │ ├── HmilyTCC.java │ ├── HmilyXA.java │ ├── IsolationLevelEnum.java │ ├── PropagationEnum.java │ └── TransTypeEnum.java ├── hmily-bom └── pom.xml ├── hmily-common ├── pom.xml └── src │ ├── main │ └── java │ │ └── org │ │ └── dromara │ │ └── hmily │ │ └── common │ │ ├── concurrent │ │ └── HmilyThreadFactory.java │ │ ├── constant │ │ └── CommonConstant.java │ │ ├── enums │ │ ├── EventTypeEnum.java │ │ ├── ExecutorTypeEnum.java │ │ ├── HmilyActionEnum.java │ │ ├── HmilyRoleEnum.java │ │ ├── RejectedPolicyTypeEnum.java │ │ ├── RepositorySupportEnum.java │ │ └── SerializeEnum.java │ │ ├── exception │ │ ├── HmilyException.java │ │ └── HmilyRuntimeException.java │ │ ├── hook │ │ └── HmilyShutdownHook.java │ │ └── utils │ │ ├── AssertUtils.java │ │ ├── CollectionUtils.java │ │ ├── DateUtils.java │ │ ├── DbTypeUtils.java │ │ ├── DefaultValueUtils.java │ │ ├── FileUtils.java │ │ ├── GsonUtils.java │ │ ├── IdWorkerUtils.java │ │ ├── LogUtil.java │ │ ├── NetUtils.java │ │ ├── RepositoryPathUtils.java │ │ ├── StringUtils.java │ │ ├── UrlUtils.java │ │ └── VersionUtils.java │ └── test │ └── java │ └── org │ └── dromara │ └── hmily │ └── common │ └── utils │ └── StringUtilsTest.java ├── hmily-config ├── hmily-config-all │ └── pom.xml ├── hmily-config-api │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── org │ │ │ └── dromara │ │ │ └── hmily │ │ │ └── config │ │ │ └── api │ │ │ ├── AbstractConfig.java │ │ │ ├── Config.java │ │ │ ├── ConfigEnv.java │ │ │ ├── ConfigScan.java │ │ │ ├── constant │ │ │ └── PrefixConstants.java │ │ │ ├── entity │ │ │ ├── HmilyConfig.java │ │ │ ├── HmilyDatabaseConfig.java │ │ │ ├── HmilyEtcdConfig.java │ │ │ ├── HmilyFileConfig.java │ │ │ ├── HmilyMetricsConfig.java │ │ │ ├── HmilyMongoConfig.java │ │ │ ├── HmilyRedisConfig.java │ │ │ ├── HmilyServer.java │ │ │ └── HmilyZookeeperConfig.java │ │ │ ├── event │ │ │ ├── AddData.java │ │ │ ├── ChangeEvent.java │ │ │ ├── DefaultConsumer.java │ │ │ ├── EventConsumer.java │ │ │ ├── EventData.java │ │ │ ├── ModifyData.java │ │ │ └── RemoveData.java │ │ │ └── exception │ │ │ └── ConfigException.java │ │ └── resources │ │ └── META-INF │ │ └── hmily │ │ └── org.dromara.hmily.config.api.Config ├── hmily-config-apollo │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── org │ │ │ │ └── dromara │ │ │ │ └── hmily │ │ │ │ └── config │ │ │ │ └── apollo │ │ │ │ ├── ApolloClient.java │ │ │ │ ├── ApolloConfig.java │ │ │ │ └── ApolloConfigLoader.java │ │ └── resources │ │ │ └── META-INF │ │ │ └── hmily │ │ │ ├── org.dromara.hmily.config.api.Config │ │ │ └── org.dromara.hmily.config.loader.ConfigLoader │ │ └── test │ │ ├── java │ │ └── org │ │ │ └── dromara │ │ │ └── hmily │ │ │ └── config │ │ │ └── apollo │ │ │ └── ApolloConfigLoaderTest.java │ │ └── resources │ │ ├── hmily-apollo.yml │ │ ├── hmily.yml │ │ └── log4j.properties ├── hmily-config-consul │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── org │ │ │ │ └── dromara │ │ │ │ └── hmily │ │ │ │ └── config │ │ │ │ └── consul │ │ │ │ ├── ConsulClient.java │ │ │ │ ├── ConsulConfig.java │ │ │ │ ├── ConsulConfigLoader.java │ │ │ │ └── ConsulPassiveConfig.java │ │ └── resources │ │ │ └── META-INF │ │ │ └── hmily │ │ │ ├── org.dromara.hmily.config.api.Config │ │ │ └── org.dromara.hmily.config.loader.ConfigLoader │ │ └── test │ │ ├── java │ │ └── org │ │ │ └── dromara │ │ │ └── hmily │ │ │ └── config │ │ │ └── consul │ │ │ ├── ConsulConfigLoaderTest.java │ │ │ └── ConsulRealTest.java │ │ └── resources │ │ ├── hmily-consul-update.yml │ │ ├── hmily-consul.yml │ │ └── hmily.yml ├── hmily-config-etcd │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── org │ │ │ │ └── dromara │ │ │ │ └── hmily │ │ │ │ └── config │ │ │ │ └── etcd │ │ │ │ ├── EtcdClient.java │ │ │ │ ├── EtcdConfig.java │ │ │ │ ├── EtcdConfigLoader.java │ │ │ │ └── EtcdPassiveConfig.java │ │ └── resources │ │ │ └── META-INF │ │ │ └── hmily │ │ │ ├── org.dromara.hmily.config.api.Config │ │ │ └── org.dromara.hmily.config.loader.ConfigLoader │ │ └── test │ │ ├── java │ │ └── org │ │ │ └── dromara │ │ │ └── hmily │ │ │ └── config │ │ │ └── etcd │ │ │ ├── EtcdConfigLoaderTest.java │ │ │ └── EtcdRealTest.java │ │ └── resources │ │ ├── hmily-etcd-update.yml │ │ ├── hmily-etcd.yml │ │ └── hmily.yml ├── hmily-config-loader │ ├── pom.xml │ └── src │ │ ├── main │ │ └── java │ │ │ └── org │ │ │ └── dromara │ │ │ └── hmily │ │ │ └── config │ │ │ └── loader │ │ │ ├── ConfigLoader.java │ │ │ ├── ConfigLoaderServer.java │ │ │ ├── OriginalConfigLoader.java │ │ │ ├── PropertyLoader.java │ │ │ ├── ServerConfigLoader.java │ │ │ ├── bind │ │ │ ├── AggregateBinder.java │ │ │ ├── AggregateElementBinder.java │ │ │ ├── ArrayBinder.java │ │ │ ├── BeanBinder.java │ │ │ ├── BindData.java │ │ │ ├── Binder.java │ │ │ ├── CollectionBinder.java │ │ │ ├── DataType.java │ │ │ ├── IndexedBinder.java │ │ │ ├── JavaBeanBinder.java │ │ │ └── MapBinder.java │ │ │ ├── properties │ │ │ ├── OriginTrackedPropertiesLoader.java │ │ │ └── PropertiesLoader.java │ │ │ ├── property │ │ │ ├── ConfigProperty.java │ │ │ ├── ConfigPropertySource.java │ │ │ ├── DefaultConfigPropertySource.java │ │ │ ├── MapPropertyKeySource.java │ │ │ ├── PropertyKey.java │ │ │ ├── PropertyKeyParse.java │ │ │ ├── PropertyKeySource.java │ │ │ └── PropertyName.java │ │ │ └── yaml │ │ │ ├── OriginTrackedYamlLoader.java │ │ │ ├── YamlProcessor.java │ │ │ └── YamlPropertyLoader.java │ │ └── test │ │ └── java │ │ └── org │ │ └── dromara │ │ └── hmily │ │ └── config │ │ └── loader │ │ └── bind │ │ ├── CollectionBinderTest.java │ │ ├── JavaBeanBinderTest.java │ │ └── MapBinderTest.java ├── hmily-config-local │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── org │ │ │ │ └── dromara │ │ │ │ └── hmily │ │ │ │ └── config │ │ │ │ └── local │ │ │ │ └── LocalConfigLoader.java │ │ └── resources │ │ │ └── META-INF │ │ │ └── hmily │ │ │ └── org.dromara.hmily.config.loader.ConfigLoader │ │ └── test │ │ ├── java │ │ └── org │ │ │ └── dromara │ │ │ └── hmily │ │ │ └── config │ │ │ └── local │ │ │ └── LocalConfigLoaderTest.java │ │ └── resources │ │ └── hmily.yml ├── hmily-config-nacos │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── org │ │ │ │ └── dromara │ │ │ │ └── hmily │ │ │ │ └── config │ │ │ │ └── nacos │ │ │ │ ├── NacosClient.java │ │ │ │ ├── NacosConfig.java │ │ │ │ ├── NacosConfigLoader.java │ │ │ │ └── NacosPassiveConfig.java │ │ └── resources │ │ │ └── META-INF │ │ │ └── hmily │ │ │ ├── org.dromara.hmily.config.api.Config │ │ │ └── org.dromara.hmily.config.loader.ConfigLoader │ │ └── test │ │ ├── java │ │ └── org │ │ │ └── dromara │ │ │ └── hmily │ │ │ └── config │ │ │ └── nacos │ │ │ ├── NacosConfigLoaderOnlineTest.java │ │ │ └── NacosConfigLoaderTest.java │ │ └── resources │ │ ├── hmily-nacos.yml │ │ └── hmily.yml ├── hmily-config-zookeeper │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── org │ │ │ │ └── dromara │ │ │ │ └── hmily │ │ │ │ └── config │ │ │ │ └── zookeeper │ │ │ │ ├── CuratorZookeeperClient.java │ │ │ │ ├── ZkPassiveConfig.java │ │ │ │ ├── ZookeeperConfig.java │ │ │ │ ├── ZookeeperConfigLoader.java │ │ │ │ └── handler │ │ │ │ └── CuratorZookeeperExceptionHandler.java │ │ └── resources │ │ │ └── META-INF │ │ │ └── hmily │ │ │ ├── org.dromara.hmily.config.api.Config │ │ │ └── org.dromara.hmily.config.loader.ConfigLoader │ │ └── test │ │ ├── java │ │ └── org │ │ │ └── dromara │ │ │ └── hmily │ │ │ └── config │ │ │ └── zookeeper │ │ │ ├── ZookeeperConfigLoaderOnlineTest.java │ │ │ └── ZookeeperConfigLoaderTest.java │ │ └── resources │ │ ├── hmily-zookeeper-update.yml │ │ ├── hmily-zookeeper.yml │ │ └── hmily.yml └── pom.xml ├── hmily-core ├── pom.xml └── src │ └── main │ ├── java │ └── org │ │ └── dromara │ │ └── hmily │ │ └── core │ │ ├── aspect │ │ └── AbstractHmilyTransactionAspect.java │ │ ├── bootstrap │ │ └── HmilyBootstrap.java │ │ ├── cache │ │ └── HmilyParticipantCacheManager.java │ │ ├── concurrent │ │ ├── ConsistentHashSelector.java │ │ ├── SingletonExecutor.java │ │ └── threadpool │ │ │ ├── DelegationThreadPoolExecutor.java │ │ │ └── HmilyThreadPool.java │ │ ├── context │ │ ├── HmilyContext.java │ │ ├── HmilyContextHolder.java │ │ ├── HmilyTransactionContext.java │ │ ├── ThreadLocalHmilyContext.java │ │ ├── TransmittableThreadLocalHmilyContext.java │ │ └── XaParticipant.java │ │ ├── disruptor │ │ ├── DisruptorEventFactory.java │ │ ├── DisruptorProvider.java │ │ ├── ExecutorSubscriber.java │ │ ├── HmilyDisruptor.java │ │ ├── HmilyDisruptorConsumer.java │ │ ├── HmilyDisruptorWorkHandler.java │ │ ├── event │ │ │ └── DataEvent.java │ │ ├── handler │ │ │ ├── HmilyRepositoryEventConsumer.java │ │ │ └── HmilyTransactionEventConsumer.java │ │ └── publisher │ │ │ └── HmilyRepositoryEventPublisher.java │ │ ├── field │ │ ├── AnnotationField.java │ │ └── DefaultAnnotationField.java │ │ ├── holder │ │ ├── HmilyTransactionHolder.java │ │ └── SingletonHolder.java │ │ ├── hook │ │ └── UndoHook.java │ │ ├── interceptor │ │ ├── HmilyGlobalInterceptor.java │ │ └── HmilyTransactionInterceptor.java │ │ ├── logo │ │ └── HmilyLogo.java │ │ ├── mediator │ │ ├── LocalParameterLoader.java │ │ ├── RpcAcquire.java │ │ ├── RpcMediator.java │ │ ├── RpcParameterLoader.java │ │ └── RpcTransmit.java │ │ ├── provide │ │ ├── ObjectProvide.java │ │ └── ReflectObject.java │ │ ├── reflect │ │ └── HmilyReflector.java │ │ ├── repository │ │ ├── HmilyRepositoryEvent.java │ │ ├── HmilyRepositoryEventDispatcher.java │ │ ├── HmilyRepositoryFacade.java │ │ └── HmilyRepositoryStorage.java │ │ ├── schedule │ │ ├── HmilyTransactionRecoveryService.java │ │ └── HmilyTransactionSelfRecoveryScheduled.java │ │ └── service │ │ ├── AbstractHmilyTransactionHandlerRegistry.java │ │ ├── HmilyTransactionHandler.java │ │ ├── HmilyTransactionHandlerRegistry.java │ │ └── HmilyTransactionTask.java │ └── resources │ └── META-INF │ └── hmily │ └── org.dromara.hmily.core.context.HmilyContext ├── hmily-demo ├── hmily-demo-common │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── org │ │ │ └── dromara │ │ │ └── hmily │ │ │ └── demo │ │ │ └── common │ │ │ ├── account │ │ │ ├── api │ │ │ │ ├── AccountService.java │ │ │ │ └── InlineService.java │ │ │ ├── dto │ │ │ │ ├── AccountDTO.java │ │ │ │ └── AccountNestedDTO.java │ │ │ ├── entity │ │ │ │ └── AccountDO.java │ │ │ └── mapper │ │ │ │ └── AccountMapper.java │ │ │ ├── inventory │ │ │ ├── api │ │ │ │ └── InventoryService.java │ │ │ ├── dto │ │ │ │ └── InventoryDTO.java │ │ │ ├── entity │ │ │ │ └── InventoryDO.java │ │ │ └── mapper │ │ │ │ └── InventoryMapper.java │ │ │ └── order │ │ │ ├── entity │ │ │ └── Order.java │ │ │ ├── enums │ │ │ └── OrderStatusEnum.java │ │ │ └── mapper │ │ │ └── OrderMapper.java │ │ └── resources │ │ └── mybatis │ │ └── mybatis-config.xml ├── hmily-demo-tac │ ├── hmily-demo-tac-dubbo │ │ ├── hmily-demo-tac-dubbo-account │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── org │ │ │ │ │ └── dromara │ │ │ │ │ └── hmily │ │ │ │ │ └── demo │ │ │ │ │ └── tac │ │ │ │ │ └── dubbo │ │ │ │ │ └── account │ │ │ │ │ ├── DubboHmilyAccountApplication.java │ │ │ │ │ ├── config │ │ │ │ │ └── HmilyTacDatasourceConfig.java │ │ │ │ │ └── service │ │ │ │ │ └── AccountServiceImpl.java │ │ │ │ └── resources │ │ │ │ ├── application.yml │ │ │ │ ├── hmily.yml │ │ │ │ └── spring-dubbo.xml │ │ ├── hmily-demo-tac-dubbo-inventory │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── org │ │ │ │ │ └── dromara │ │ │ │ │ └── hmily │ │ │ │ │ └── demo │ │ │ │ │ └── tac │ │ │ │ │ └── dubbo │ │ │ │ │ └── inventory │ │ │ │ │ ├── DubboHmilyInventoryApplication.java │ │ │ │ │ ├── config │ │ │ │ │ └── HmilyTacDatasourceConfig.java │ │ │ │ │ └── service │ │ │ │ │ └── InventoryServiceImpl.java │ │ │ │ └── resources │ │ │ │ ├── application.yml │ │ │ │ ├── applicationContext.xml │ │ │ │ ├── hmily.yml │ │ │ │ └── spring-dubbo.xml │ │ ├── hmily-demo-tac-dubbo-order │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── org │ │ │ │ │ └── dromara │ │ │ │ │ └── hmily │ │ │ │ │ └── demo │ │ │ │ │ └── tac │ │ │ │ │ └── dubbo │ │ │ │ │ └── order │ │ │ │ │ ├── DubboHmilyOrderApplication.java │ │ │ │ │ ├── configuration │ │ │ │ │ ├── HmilyTacDatasourceConfig.java │ │ │ │ │ └── SwaggerConfig.java │ │ │ │ │ ├── controller │ │ │ │ │ └── OrderController.java │ │ │ │ │ ├── enums │ │ │ │ │ └── ReadCommittedTransactionEnum.java │ │ │ │ │ └── service │ │ │ │ │ ├── OrderService.java │ │ │ │ │ ├── PaymentService.java │ │ │ │ │ └── impl │ │ │ │ │ ├── OrderServiceImpl.java │ │ │ │ │ └── PaymentServiceImpl.java │ │ │ │ └── resources │ │ │ │ ├── application.yml │ │ │ │ ├── hmily.yml │ │ │ │ └── spring-dubbo.xml │ │ └── pom.xml │ ├── hmily-demo-tac-springcloud │ │ ├── hmily-demo-tac-springcloud-account │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── org │ │ │ │ │ └── dromara │ │ │ │ │ └── hmily │ │ │ │ │ └── demo │ │ │ │ │ └── springcloud │ │ │ │ │ └── account │ │ │ │ │ ├── SpringCloudHmilyAccountApplication.java │ │ │ │ │ ├── client │ │ │ │ │ └── InventoryClient.java │ │ │ │ │ ├── config │ │ │ │ │ └── HmilyTacDatasourceConfig.java │ │ │ │ │ ├── controller │ │ │ │ │ └── AccountController.java │ │ │ │ │ └── service │ │ │ │ │ ├── AccountService.java │ │ │ │ │ └── impl │ │ │ │ │ └── AccountServiceImpl.java │ │ │ │ └── resources │ │ │ │ ├── application.yml │ │ │ │ └── hmily.yml │ │ ├── hmily-demo-tac-springcloud-eureka │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── org │ │ │ │ │ └── dromara │ │ │ │ │ └── hmily │ │ │ │ │ └── demo │ │ │ │ │ └── springcloud │ │ │ │ │ └── eureka │ │ │ │ │ └── EurekaServerApplication.java │ │ │ │ └── resources │ │ │ │ └── bootstrap.yml │ │ ├── hmily-demo-tac-springcloud-inventory │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── org │ │ │ │ │ └── dromara │ │ │ │ │ └── hmily │ │ │ │ │ └── demo │ │ │ │ │ └── springcloud │ │ │ │ │ └── inventory │ │ │ │ │ ├── SpringCloudHmilyInventoryApplication.java │ │ │ │ │ ├── config │ │ │ │ │ └── HmilyTacDatasourceConfig.java │ │ │ │ │ ├── controller │ │ │ │ │ └── InventoryController.java │ │ │ │ │ └── service │ │ │ │ │ ├── InventoryService.java │ │ │ │ │ └── impl │ │ │ │ │ └── InventoryServiceImpl.java │ │ │ │ └── resources │ │ │ │ ├── application.yml │ │ │ │ ├── applicationContext.xml │ │ │ │ └── hmily.yml │ │ ├── hmily-demo-tac-springcloud-order │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── org │ │ │ │ │ └── dromara │ │ │ │ │ └── hmily │ │ │ │ │ └── demo │ │ │ │ │ └── springcloud │ │ │ │ │ └── order │ │ │ │ │ ├── SpringCloudHmilyOrderApplication.java │ │ │ │ │ ├── client │ │ │ │ │ ├── AccountClient.java │ │ │ │ │ ├── AccountHystrix.java │ │ │ │ │ ├── InventoryClient.java │ │ │ │ │ └── InventoryHystrix.java │ │ │ │ │ ├── configuration │ │ │ │ │ ├── HmilyTacDatasourceConfig.java │ │ │ │ │ └── SwaggerConfig.java │ │ │ │ │ ├── controller │ │ │ │ │ └── OrderController.java │ │ │ │ │ ├── enums │ │ │ │ │ └── ReadCommittedTransactionEnum.java │ │ │ │ │ └── service │ │ │ │ │ ├── OrderService.java │ │ │ │ │ ├── PaymentService.java │ │ │ │ │ └── impl │ │ │ │ │ ├── OrderServiceImpl.java │ │ │ │ │ └── PaymentServiceImpl.java │ │ │ │ └── resources │ │ │ │ ├── application.yml │ │ │ │ ├── applicationContext.xml │ │ │ │ └── hmily.yml │ │ └── pom.xml │ └── pom.xml ├── hmily-demo-tcc │ ├── hmily-demo-tcc-brpc │ │ ├── hmily-demo-tcc-brpc-account │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── org │ │ │ │ │ └── dromara │ │ │ │ │ └── hmily │ │ │ │ │ └── demo │ │ │ │ │ └── brpc │ │ │ │ │ └── account │ │ │ │ │ ├── BrpcHmilyAccountApplication.java │ │ │ │ │ └── service │ │ │ │ │ ├── AccountServiceImpl.java │ │ │ │ │ └── InlineServiceImpl.java │ │ │ │ └── resources │ │ │ │ ├── application.yml │ │ │ │ └── hmily.yml │ │ ├── hmily-demo-tcc-brpc-inventory │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── org │ │ │ │ │ └── dromara │ │ │ │ │ └── hmily │ │ │ │ │ └── demo │ │ │ │ │ └── brpc │ │ │ │ │ └── inventory │ │ │ │ │ ├── BrpcHmilyInventoryApplication.java │ │ │ │ │ └── service │ │ │ │ │ └── InventoryServiceImpl.java │ │ │ │ └── resources │ │ │ │ ├── application.yml │ │ │ │ └── hmily.yml │ │ ├── hmily-demo-tcc-brpc-order │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── org │ │ │ │ │ └── dromara │ │ │ │ │ └── hmily │ │ │ │ │ └── demo │ │ │ │ │ └── brpc │ │ │ │ │ └── order │ │ │ │ │ ├── BrpcHmilyOrderApplication.java │ │ │ │ │ ├── configuration │ │ │ │ │ └── SwaggerConfig.java │ │ │ │ │ ├── controller │ │ │ │ │ └── OrderController.java │ │ │ │ │ └── service │ │ │ │ │ ├── OrderService.java │ │ │ │ │ ├── PaymentService.java │ │ │ │ │ └── impl │ │ │ │ │ ├── OrderServiceImpl.java │ │ │ │ │ └── PaymentServiceImpl.java │ │ │ │ └── resources │ │ │ │ ├── application.yml │ │ │ │ └── hmily.yml │ │ └── pom.xml │ ├── hmily-demo-tcc-dubbo │ │ ├── hmily-demo-tcc-dubbo-account │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── org │ │ │ │ │ └── dromara │ │ │ │ │ └── hmily │ │ │ │ │ └── demo │ │ │ │ │ └── dubbo │ │ │ │ │ └── account │ │ │ │ │ ├── DubboHmilyAccountApplication.java │ │ │ │ │ └── service │ │ │ │ │ ├── AccountServiceImpl.java │ │ │ │ │ └── InlineServiceImpl.java │ │ │ │ └── resources │ │ │ │ ├── application.yml │ │ │ │ ├── hmily.yml │ │ │ │ └── spring-dubbo.xml │ │ ├── hmily-demo-tcc-dubbo-inventory │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── org │ │ │ │ │ └── dromara │ │ │ │ │ └── hmily │ │ │ │ │ └── demo │ │ │ │ │ └── dubbo │ │ │ │ │ └── inventory │ │ │ │ │ ├── DubboHmilyInventoryApplication.java │ │ │ │ │ └── service │ │ │ │ │ └── InventoryServiceImpl.java │ │ │ │ └── resources │ │ │ │ ├── application.yml │ │ │ │ ├── applicationContext.xml │ │ │ │ ├── hmily.yml │ │ │ │ └── spring-dubbo.xml │ │ ├── hmily-demo-tcc-dubbo-order │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── org │ │ │ │ │ └── dromara │ │ │ │ │ └── hmily │ │ │ │ │ └── demo │ │ │ │ │ └── dubbo │ │ │ │ │ └── order │ │ │ │ │ ├── DubboHmilyOrderApplication.java │ │ │ │ │ ├── configuration │ │ │ │ │ └── SwaggerConfig.java │ │ │ │ │ ├── controller │ │ │ │ │ └── OrderController.java │ │ │ │ │ └── service │ │ │ │ │ ├── OrderService.java │ │ │ │ │ ├── PaymentService.java │ │ │ │ │ └── impl │ │ │ │ │ ├── OrderServiceImpl.java │ │ │ │ │ └── PaymentServiceImpl.java │ │ │ │ └── resources │ │ │ │ ├── application.yml │ │ │ │ ├── hmily.yml │ │ │ │ └── spring-dubbo.xml │ │ └── pom.xml │ ├── hmily-demo-tcc-grpc │ │ ├── README.md │ │ ├── hmily-demo-tcc-grpc-account │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── org │ │ │ │ │ └── dromara │ │ │ │ │ └── hmily │ │ │ │ │ └── demo │ │ │ │ │ └── grpc │ │ │ │ │ └── account │ │ │ │ │ ├── AccountServiceBean.java │ │ │ │ │ ├── GrpcHmilyAccountApplication.java │ │ │ │ │ └── service │ │ │ │ │ ├── AccountServiceBeanImpl.java │ │ │ │ │ └── AccountServiceImpl.java │ │ │ │ └── resources │ │ │ │ ├── application.yml │ │ │ │ └── hmily.yml │ │ ├── hmily-demo-tcc-grpc-common │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── org │ │ │ │ │ └── dromara │ │ │ │ │ └── hmily │ │ │ │ │ └── demo │ │ │ │ │ └── grpc │ │ │ │ │ ├── account │ │ │ │ │ └── service │ │ │ │ │ │ ├── AccountRequest.java │ │ │ │ │ │ ├── AccountRequestOrBuilder.java │ │ │ │ │ │ ├── AccountResponse.java │ │ │ │ │ │ ├── AccountResponseOrBuilder.java │ │ │ │ │ │ ├── AccountServiceGrpc.java │ │ │ │ │ │ └── AccountServiceProto.java │ │ │ │ │ └── inventory │ │ │ │ │ └── service │ │ │ │ │ ├── InventoryRequest.java │ │ │ │ │ ├── InventoryRequestOrBuilder.java │ │ │ │ │ ├── InventoryResponse.java │ │ │ │ │ ├── InventoryResponseOrBuilder.java │ │ │ │ │ ├── InventoryServiceGrpc.java │ │ │ │ │ └── InventoryServiceProto.java │ │ │ │ └── proto │ │ │ │ ├── account_service.proto │ │ │ │ └── inventory_service.proto │ │ ├── hmily-demo-tcc-grpc-inventory │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── org │ │ │ │ │ └── dromara │ │ │ │ │ └── hmily │ │ │ │ │ └── demo │ │ │ │ │ └── grpc │ │ │ │ │ └── inventory │ │ │ │ │ ├── GrpcHmilyInventoryApplication.java │ │ │ │ │ ├── InventoryServiceBean.java │ │ │ │ │ └── service │ │ │ │ │ ├── InventoryServiceBeanImpl.java │ │ │ │ │ └── InventoryServiceImpl.java │ │ │ │ └── resources │ │ │ │ ├── application.yml │ │ │ │ └── hmily.yml │ │ ├── hmily-demo-tcc-grpc-order │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── org │ │ │ │ │ └── dromara │ │ │ │ │ └── hmily │ │ │ │ │ └── demo │ │ │ │ │ └── grpc │ │ │ │ │ └── order │ │ │ │ │ ├── GrpcHmilyOrderApplication.java │ │ │ │ │ ├── configuration │ │ │ │ │ └── SwaggerConfig.java │ │ │ │ │ ├── controller │ │ │ │ │ └── OrderController.java │ │ │ │ │ ├── grpc │ │ │ │ │ ├── AccountClient.java │ │ │ │ │ └── InventoryClient.java │ │ │ │ │ └── service │ │ │ │ │ ├── OrderService.java │ │ │ │ │ ├── PaymentService.java │ │ │ │ │ └── impl │ │ │ │ │ ├── OrderServiceImpl.java │ │ │ │ │ └── PaymentServiceImpl.java │ │ │ │ └── resources │ │ │ │ ├── application.yml │ │ │ │ └── hmily.yml │ │ └── pom.xml │ ├── hmily-demo-tcc-motan │ │ ├── hmily-demo-tcc-motan-account │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── org │ │ │ │ │ └── dromara │ │ │ │ │ └── hmily │ │ │ │ │ └── demo │ │ │ │ │ └── motan │ │ │ │ │ └── account │ │ │ │ │ ├── MotanHmilyAccountApplication.java │ │ │ │ │ ├── configuration │ │ │ │ │ ├── MotanClientConfig.java │ │ │ │ │ ├── MotanConfig.java │ │ │ │ │ └── MotanServerConfig.java │ │ │ │ │ └── service │ │ │ │ │ ├── AccountServiceImpl.java │ │ │ │ │ └── InlineServiceImpl.java │ │ │ │ └── resources │ │ │ │ ├── application.yml │ │ │ │ └── hmily.yml │ │ ├── hmily-demo-tcc-motan-inventory │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── org │ │ │ │ │ └── dromara │ │ │ │ │ └── hmily │ │ │ │ │ └── demo │ │ │ │ │ └── motan │ │ │ │ │ └── inventory │ │ │ │ │ ├── MotanHmilyInventoryApplication.java │ │ │ │ │ ├── configuration │ │ │ │ │ ├── MotanConfig.java │ │ │ │ │ └── MotanServerConfig.java │ │ │ │ │ └── service │ │ │ │ │ └── InventoryServiceImpl.java │ │ │ │ └── resources │ │ │ │ ├── application.yml │ │ │ │ └── hmily.yml │ │ ├── hmily-demo-tcc-motan-order │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── org │ │ │ │ │ └── dromara │ │ │ │ │ └── hmily │ │ │ │ │ └── demo │ │ │ │ │ └── motan │ │ │ │ │ └── order │ │ │ │ │ ├── MotanHmilyOrderApplication.java │ │ │ │ │ ├── configuration │ │ │ │ │ ├── MotanClientConfig.java │ │ │ │ │ ├── MotanConfig.java │ │ │ │ │ ├── MotanServerConfig.java │ │ │ │ │ └── SwaggerConfig.java │ │ │ │ │ ├── controller │ │ │ │ │ └── OrderController.java │ │ │ │ │ └── service │ │ │ │ │ ├── OrderService.java │ │ │ │ │ ├── PaymentService.java │ │ │ │ │ └── impl │ │ │ │ │ ├── OrderServiceImpl.java │ │ │ │ │ └── PaymentServiceImpl.java │ │ │ │ └── resources │ │ │ │ ├── application.yml │ │ │ │ └── hmily.yml │ │ └── pom.xml │ ├── hmily-demo-tcc-sofa │ │ ├── hmily-demo-tcc-sofa-account │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── org │ │ │ │ │ └── dromara │ │ │ │ │ └── hmily │ │ │ │ │ └── demo │ │ │ │ │ └── sofa │ │ │ │ │ └── account │ │ │ │ │ ├── SofaHmilyAccountApplication.java │ │ │ │ │ └── service │ │ │ │ │ ├── AccountServiceImpl.java │ │ │ │ │ └── InlineServiceImpl.java │ │ │ │ └── resources │ │ │ │ ├── application.yml │ │ │ │ ├── hmily.yml │ │ │ │ ├── invoke-client-example.xml │ │ │ │ └── invoke-server-example.xml │ │ ├── hmily-demo-tcc-sofa-inventory │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── org │ │ │ │ │ └── dromara │ │ │ │ │ └── hmily │ │ │ │ │ └── demo │ │ │ │ │ └── sofa │ │ │ │ │ └── inventory │ │ │ │ │ ├── SofaHmilyInventoryApplication.java │ │ │ │ │ └── service │ │ │ │ │ └── InventoryServiceImpl.java │ │ │ │ └── resources │ │ │ │ ├── application.yml │ │ │ │ ├── hmily.yml │ │ │ │ └── invoke-server-example.xml │ │ ├── hmily-demo-tcc-sofa-order │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── org │ │ │ │ │ └── dromara │ │ │ │ │ └── hmily │ │ │ │ │ └── demo │ │ │ │ │ └── sofa │ │ │ │ │ └── order │ │ │ │ │ ├── SofaHmilyOrderApplication.java │ │ │ │ │ ├── configuration │ │ │ │ │ └── SwaggerConfig.java │ │ │ │ │ ├── controller │ │ │ │ │ └── OrderController.java │ │ │ │ │ └── service │ │ │ │ │ ├── OrderService.java │ │ │ │ │ ├── PaymentService.java │ │ │ │ │ └── impl │ │ │ │ │ ├── OrderServiceImpl.java │ │ │ │ │ └── PaymentServiceImpl.java │ │ │ │ └── resources │ │ │ │ ├── application.yml │ │ │ │ ├── hmily.yml │ │ │ │ └── invoke-client-example.xml │ │ └── pom.xml │ ├── hmily-demo-tcc-springcloud │ │ ├── hmily-demo-tcc-springcloud-account │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── org │ │ │ │ │ └── dromara │ │ │ │ │ └── hmily │ │ │ │ │ └── demo │ │ │ │ │ └── springcloud │ │ │ │ │ └── account │ │ │ │ │ ├── SpringCloudHmilyAccountApplication.java │ │ │ │ │ ├── client │ │ │ │ │ └── InventoryClient.java │ │ │ │ │ ├── controller │ │ │ │ │ └── AccountController.java │ │ │ │ │ └── service │ │ │ │ │ ├── AccountService.java │ │ │ │ │ ├── InLineService.java │ │ │ │ │ └── impl │ │ │ │ │ ├── AccountServiceImpl.java │ │ │ │ │ └── InLineServiceImpl.java │ │ │ │ └── resources │ │ │ │ ├── application.yml │ │ │ │ └── hmily.yml │ │ ├── hmily-demo-tcc-springcloud-eureka │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── org │ │ │ │ │ └── dromara │ │ │ │ │ └── hmily │ │ │ │ │ └── demo │ │ │ │ │ └── springcloud │ │ │ │ │ └── eureka │ │ │ │ │ └── EurekaServerApplication.java │ │ │ │ └── resources │ │ │ │ └── bootstrap.yml │ │ ├── hmily-demo-tcc-springcloud-inventory │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── org │ │ │ │ │ └── dromara │ │ │ │ │ └── hmily │ │ │ │ │ └── demo │ │ │ │ │ └── springcloud │ │ │ │ │ └── inventory │ │ │ │ │ ├── SpringCloudHmilyInventoryApplication.java │ │ │ │ │ ├── controller │ │ │ │ │ └── InventoryController.java │ │ │ │ │ └── service │ │ │ │ │ ├── InventoryService.java │ │ │ │ │ └── impl │ │ │ │ │ └── InventoryServiceImpl.java │ │ │ │ └── resources │ │ │ │ ├── application.yml │ │ │ │ ├── applicationContext.xml │ │ │ │ └── hmily.yml │ │ ├── hmily-demo-tcc-springcloud-order │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── org │ │ │ │ │ └── dromara │ │ │ │ │ └── hmily │ │ │ │ │ └── demo │ │ │ │ │ └── springcloud │ │ │ │ │ └── order │ │ │ │ │ ├── SpringCloudHmilyOrderApplication.java │ │ │ │ │ ├── client │ │ │ │ │ ├── AccountClient.java │ │ │ │ │ ├── AccountHystrix.java │ │ │ │ │ ├── InventoryClient.java │ │ │ │ │ └── InventoryHystrix.java │ │ │ │ │ ├── configuration │ │ │ │ │ ├── MyConfiguration.java │ │ │ │ │ └── SwaggerConfig.java │ │ │ │ │ ├── controller │ │ │ │ │ └── OrderController.java │ │ │ │ │ └── service │ │ │ │ │ ├── OrderService.java │ │ │ │ │ ├── PaymentService.java │ │ │ │ │ └── impl │ │ │ │ │ ├── OrderServiceImpl.java │ │ │ │ │ └── PaymentServiceImpl.java │ │ │ │ └── resources │ │ │ │ ├── application.yml │ │ │ │ ├── applicationContext.xml │ │ │ │ └── hmily.yml │ │ └── pom.xml │ ├── hmily-demo-tcc-tars │ │ ├── README.md │ │ ├── hmily-demo-tcc-tars-account │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── org │ │ │ │ │ └── dromara │ │ │ │ │ └── hmily │ │ │ │ │ └── demo │ │ │ │ │ └── tars │ │ │ │ │ └── account │ │ │ │ │ ├── TarsHmilyAccountApplication.java │ │ │ │ │ ├── servant │ │ │ │ │ └── accountapp │ │ │ │ │ │ ├── AccountServant.java │ │ │ │ │ │ └── impl │ │ │ │ │ │ └── AccountServantImpl.java │ │ │ │ │ └── service │ │ │ │ │ ├── AccountService.java │ │ │ │ │ └── impl │ │ │ │ │ └── AccountServiceImpl.java │ │ │ │ └── resources │ │ │ │ ├── HmilyAccount.AccountApp.config.conf │ │ │ │ ├── account.tars │ │ │ │ ├── application.yml │ │ │ │ ├── hmily.yml │ │ │ │ └── logback.xml │ │ ├── hmily-demo-tcc-tars-inventory │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── org │ │ │ │ │ └── dromara │ │ │ │ │ └── hmily │ │ │ │ │ └── demo │ │ │ │ │ └── tars │ │ │ │ │ └── inventory │ │ │ │ │ ├── TarsHmilyInventoryApplication.java │ │ │ │ │ ├── servant │ │ │ │ │ └── inventoryapp │ │ │ │ │ │ ├── InventoryServant.java │ │ │ │ │ │ └── impl │ │ │ │ │ │ └── InventoryServantImpl.java │ │ │ │ │ └── service │ │ │ │ │ ├── InventoryService.java │ │ │ │ │ └── impl │ │ │ │ │ └── InventoryServiceImpl.java │ │ │ │ └── resources │ │ │ │ ├── TestInventory.InventoryApp.config.conf │ │ │ │ ├── application.yml │ │ │ │ ├── hmily.yml │ │ │ │ ├── inventory.tars │ │ │ │ └── logback.xml │ │ ├── hmily-demo-tcc-tars-order │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── org │ │ │ │ │ └── dromara │ │ │ │ │ └── hmily │ │ │ │ │ └── demo │ │ │ │ │ └── tars │ │ │ │ │ └── order │ │ │ │ │ ├── TarsHmilyOrderApplication.java │ │ │ │ │ ├── configuration │ │ │ │ │ └── SwaggerConfig.java │ │ │ │ │ ├── controller │ │ │ │ │ └── OrderController.java │ │ │ │ │ ├── servant │ │ │ │ │ ├── accountapp │ │ │ │ │ │ ├── AccountPrx.java │ │ │ │ │ │ └── AccountPrxCallback.java │ │ │ │ │ ├── inventoryapp │ │ │ │ │ │ ├── InventoryPrx.java │ │ │ │ │ │ └── InventoryPrxCallback.java │ │ │ │ │ └── orderapp │ │ │ │ │ │ ├── OrderServant.java │ │ │ │ │ │ └── impl │ │ │ │ │ │ └── OrderServantImpl.java │ │ │ │ │ └── service │ │ │ │ │ ├── OrderService.java │ │ │ │ │ ├── PaymentService.java │ │ │ │ │ └── impl │ │ │ │ │ ├── OrderServiceImpl.java │ │ │ │ │ └── PaymentServiceImpl.java │ │ │ │ └── resources │ │ │ │ ├── HmilyOrder.OrderApp.config.conf │ │ │ │ ├── account.tars │ │ │ │ ├── application.yml │ │ │ │ ├── hmily.yml │ │ │ │ ├── inventory.tars │ │ │ │ └── order.tars │ │ └── pom.xml │ └── pom.xml ├── hmily-demo-xa │ ├── hmily-demo-xa-dubbo │ │ ├── hmily-demo-xa-dubbo-account │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── org │ │ │ │ │ └── dromara │ │ │ │ │ └── hmily │ │ │ │ │ └── xa │ │ │ │ │ └── demo │ │ │ │ │ └── dubbo │ │ │ │ │ └── account │ │ │ │ │ ├── DubboHmilyAccountApplication.java │ │ │ │ │ └── service │ │ │ │ │ ├── AccountServiceImpl.java │ │ │ │ │ └── InlineServiceImpl.java │ │ │ │ └── resources │ │ │ │ ├── application.yml │ │ │ │ ├── hmily.yml │ │ │ │ └── spring-dubbo.xml │ │ ├── hmily-demo-xa-dubbo-inventory │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── org │ │ │ │ │ └── dromara │ │ │ │ │ └── hmily │ │ │ │ │ └── xa │ │ │ │ │ └── demo │ │ │ │ │ └── dubbo │ │ │ │ │ └── inventory │ │ │ │ │ ├── DubboHmilyInventoryApplication.java │ │ │ │ │ └── service │ │ │ │ │ └── InventoryServiceImpl.java │ │ │ │ └── resources │ │ │ │ ├── application.yml │ │ │ │ ├── applicationContext.xml │ │ │ │ ├── hmily.yml │ │ │ │ └── spring-dubbo.xml │ │ ├── hmily-demo-xa-dubbo-order │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── org │ │ │ │ │ └── dromara │ │ │ │ │ └── hmily │ │ │ │ │ └── xa │ │ │ │ │ └── dubbo │ │ │ │ │ └── order │ │ │ │ │ ├── DubboHmilyOrderApplication.java │ │ │ │ │ ├── JotmFactoryBean.java │ │ │ │ │ ├── configuration │ │ │ │ │ └── SwaggerConfig.java │ │ │ │ │ ├── controller │ │ │ │ │ └── OrderController.java │ │ │ │ │ └── service │ │ │ │ │ ├── OrderService.java │ │ │ │ │ ├── PaymentService.java │ │ │ │ │ └── impl │ │ │ │ │ ├── OrderServiceImpl.java │ │ │ │ │ └── PaymentServiceImpl.java │ │ │ │ └── resources │ │ │ │ ├── application.yml │ │ │ │ ├── applicationContext.xml │ │ │ │ ├── hmily.yml │ │ │ │ └── spring-dubbo.xml │ │ └── pom.xml │ ├── hmily-demo-xa-springcloud │ │ ├── hmily-demo-xa-springcloud-account │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── org │ │ │ │ │ └── dromara │ │ │ │ │ └── hmily │ │ │ │ │ └── demo │ │ │ │ │ └── springcloud │ │ │ │ │ └── account │ │ │ │ │ ├── SpringCloudHmilyAccountApplication.java │ │ │ │ │ ├── client │ │ │ │ │ └── InventoryClient.java │ │ │ │ │ ├── controller │ │ │ │ │ └── AccountController.java │ │ │ │ │ └── service │ │ │ │ │ └── impl │ │ │ │ │ └── AccountServiceImpl.java │ │ │ │ └── resources │ │ │ │ ├── application.yml │ │ │ │ ├── applicationContext.xml │ │ │ │ └── hmily.yml │ │ ├── hmily-demo-xa-springcloud-eureka │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── org │ │ │ │ │ └── dromara │ │ │ │ │ └── hmily │ │ │ │ │ └── demo │ │ │ │ │ └── springcloud │ │ │ │ │ └── eureka │ │ │ │ │ └── EurekaServerApplication.java │ │ │ │ └── resources │ │ │ │ └── bootstrap.yml │ │ ├── hmily-demo-xa-springcloud-inventory │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── org │ │ │ │ │ └── dromara │ │ │ │ │ └── hmily │ │ │ │ │ └── demo │ │ │ │ │ └── springcloud │ │ │ │ │ └── inventory │ │ │ │ │ ├── SpringCloudHmilyInventoryApplication.java │ │ │ │ │ ├── controller │ │ │ │ │ └── InventoryController.java │ │ │ │ │ └── service │ │ │ │ │ ├── InventoryService.java │ │ │ │ │ └── impl │ │ │ │ │ └── InventoryServiceImpl.java │ │ │ │ └── resources │ │ │ │ ├── application.yml │ │ │ │ ├── applicationContext.xml │ │ │ │ └── hmily.yml │ │ ├── hmily-demo-xa-springcloud-order │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── org │ │ │ │ │ └── dromara │ │ │ │ │ └── hmily │ │ │ │ │ └── demo │ │ │ │ │ └── springcloud │ │ │ │ │ └── order │ │ │ │ │ ├── SpringCloudHmilyOrderApplication.java │ │ │ │ │ ├── client │ │ │ │ │ ├── AccountClient.java │ │ │ │ │ └── InventoryClient.java │ │ │ │ │ ├── configuration │ │ │ │ │ └── MyConfiguration.java │ │ │ │ │ ├── controller │ │ │ │ │ └── OrderController.java │ │ │ │ │ └── service │ │ │ │ │ ├── OrderService.java │ │ │ │ │ ├── PaymentService.java │ │ │ │ │ └── impl │ │ │ │ │ ├── OrderServiceImpl.java │ │ │ │ │ └── PaymentServiceImpl.java │ │ │ │ └── resources │ │ │ │ ├── application.yml │ │ │ │ ├── applicationContext.xml │ │ │ │ └── hmily.yml │ │ └── pom.xml │ └── pom.xml ├── pom.xml └── sql │ └── hmily-demo.sql ├── hmily-metrics ├── hmily-metrics-facade │ ├── pom.xml │ └── src │ │ └── main │ │ └── java │ │ └── org │ │ └── dromara │ │ └── hmily │ │ └── metrics │ │ └── facade │ │ └── MetricsTrackerFacade.java ├── hmily-metrics-prometheus │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── org │ │ │ └── dromara │ │ │ └── hmily │ │ │ └── metrics │ │ │ └── prometheus │ │ │ ├── collector │ │ │ └── BuildInfoCollector.java │ │ │ ├── register │ │ │ └── PrometheusMetricsRegister.java │ │ │ └── service │ │ │ └── PrometheusBootService.java │ │ └── resources │ │ └── META-INF │ │ └── hmily │ │ ├── org.dromara.hmily.metrics.spi.MetricsBootService │ │ └── org.dromara.hmily.metrics.spi.MetricsRegister ├── hmily-metrics-spi │ ├── pom.xml │ └── src │ │ └── main │ │ └── java │ │ └── org │ │ └── dromara │ │ └── hmily │ │ └── metrics │ │ ├── constant │ │ └── LabelNames.java │ │ ├── entity │ │ └── Metric.java │ │ ├── enums │ │ └── MetricType.java │ │ ├── reporter │ │ └── MetricsReporter.java │ │ └── spi │ │ ├── MetricsBootService.java │ │ └── MetricsRegister.java └── pom.xml ├── hmily-repository ├── hmily-repository-all │ └── pom.xml ├── hmily-repository-database │ ├── hmily-repository-database-all │ │ └── pom.xml │ ├── hmily-repository-database-manager │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ └── java │ │ │ └── org │ │ │ └── dromara │ │ │ └── hmily │ │ │ └── repository │ │ │ └── database │ │ │ └── manager │ │ │ └── AbstractHmilyDatabase.java │ ├── hmily-repository-database-mysql │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── org │ │ │ │ └── dromara │ │ │ │ └── hmily │ │ │ │ └── repository │ │ │ │ └── database │ │ │ │ └── mysql │ │ │ │ └── MysqlRepository.java │ │ │ └── resources │ │ │ ├── META-INF │ │ │ └── hmily │ │ │ │ └── org.dromara.hmily.repository.spi.HmilyRepository │ │ │ └── mysql │ │ │ └── schema.sql │ ├── hmily-repository-database-oracle │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── org │ │ │ │ └── dromara │ │ │ │ └── hmily │ │ │ │ └── repository │ │ │ │ └── database │ │ │ │ └── oracle │ │ │ │ └── OracleRepository.java │ │ │ └── resources │ │ │ ├── META-INF │ │ │ └── hmily │ │ │ │ └── org.dromara.hmily.repository.spi.HmilyRepository │ │ │ └── oracle │ │ │ └── schema.sql │ ├── hmily-repository-database-postgresql │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── org │ │ │ │ └── dromara │ │ │ │ └── hmily │ │ │ │ └── repository │ │ │ │ └── database │ │ │ │ └── postgresql │ │ │ │ └── PostgresqlRepository.java │ │ │ └── resources │ │ │ ├── META-INF │ │ │ └── hmily │ │ │ │ └── org.dromara.hmily.repository.spi.HmilyRepository │ │ │ └── postgresql │ │ │ └── schema.sql │ ├── hmily-repository-database-sqlserver │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── org │ │ │ │ └── dromara │ │ │ │ └── hmily │ │ │ │ └── repository │ │ │ │ └── database │ │ │ │ └── sqlserver │ │ │ │ └── SqlserverRepository.java │ │ │ └── resources │ │ │ ├── META-INF │ │ │ └── hmily │ │ │ │ └── org.dromara.hmily.repository.spi.HmilyRepository │ │ │ └── sqlserver │ │ │ └── schema.sql │ └── pom.xml ├── hmily-repository-etcd │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── org │ │ │ │ └── dromara │ │ │ │ └── hmily │ │ │ │ └── repository │ │ │ │ └── etcd │ │ │ │ └── EtcdRepository.java │ │ └── resources │ │ │ └── META-INF │ │ │ └── hmily │ │ │ └── org.dromara.hmily.repository.spi.HmilyRepository │ │ └── test │ │ └── java │ │ └── org │ │ └── dromara │ │ └── hmily │ │ └── repository │ │ └── etcd │ │ └── EtcdRepositoryTest.java ├── hmily-repository-file │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── org │ │ │ │ └── dromara │ │ │ │ └── hmily │ │ │ │ └── repository │ │ │ │ └── file │ │ │ │ └── FileRepository.java │ │ └── resources │ │ │ └── META-INF │ │ │ └── hmily │ │ │ └── org.dromara.hmily.repository.spi.HmilyRepository │ │ └── test │ │ └── java │ │ └── org │ │ └── dromara │ │ └── hmily │ │ └── repository │ │ └── file │ │ └── FileRepositoryTest.java ├── hmily-repository-mongodb │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── org │ │ │ │ └── dromara │ │ │ │ └── hmily │ │ │ │ └── repository │ │ │ │ └── mongodb │ │ │ │ ├── MongoEntityConvert.java │ │ │ │ ├── MongodbRepository.java │ │ │ │ ├── MongodbTemplateService.java │ │ │ │ ├── MongodbXaRepository.java │ │ │ │ └── entity │ │ │ │ ├── LockMongoEntity.java │ │ │ │ ├── MongoEntityAdapter.java │ │ │ │ ├── ParticipantMongoEntity.java │ │ │ │ ├── TransactionMongoEntity.java │ │ │ │ ├── UndoMongoEntity.java │ │ │ │ └── XaRecoveryMongoEntity.java │ │ └── resources │ │ │ └── META-INF │ │ │ └── hmily │ │ │ └── org.dromara.hmily.repository.spi.HmilyRepository │ │ └── test │ │ ├── java │ │ └── org │ │ │ └── dromara │ │ │ └── hmily │ │ │ └── repository │ │ │ └── mongodb │ │ │ └── MongodbRepositoryTest.java │ │ └── resources │ │ └── log4j.properties ├── hmily-repository-redis │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── org │ │ │ │ └── dromara │ │ │ │ └── hmily │ │ │ │ └── repository │ │ │ │ └── redis │ │ │ │ ├── RedisRepository.java │ │ │ │ └── jedis │ │ │ │ ├── JedisClient.java │ │ │ │ ├── JedisClientCluster.java │ │ │ │ ├── JedisClientSentinel.java │ │ │ │ └── JedisClientSingle.java │ │ └── resources │ │ │ └── META-INF │ │ │ └── hmily │ │ │ └── org.dromara.hmily.repository.spi.HmilyRepository │ │ └── test │ │ ├── java │ │ └── org │ │ │ └── dromara │ │ │ └── hmily │ │ │ └── repository │ │ │ └── redis │ │ │ └── RedisRepositoryTest.java │ │ └── resources │ │ └── log4j.properties ├── hmily-repository-spi │ ├── pom.xml │ └── src │ │ └── main │ │ └── java │ │ └── org │ │ └── dromara │ │ └── hmily │ │ └── repository │ │ └── spi │ │ ├── HmilyRepository.java │ │ ├── HmilyRepositoryNode.java │ │ ├── HmilyXaRepository.java │ │ ├── entity │ │ ├── HmilyDataSnapshot.java │ │ ├── HmilyInvocation.java │ │ ├── HmilyLock.java │ │ ├── HmilyParticipant.java │ │ ├── HmilyParticipantUndo.java │ │ ├── HmilyTransaction.java │ │ ├── HmilyXaRecovery.java │ │ ├── HmilyXaRecoveryImpl.java │ │ └── tuple │ │ │ ├── HmilySQLManipulation.java │ │ │ └── HmilySQLTuple.java │ │ └── exception │ │ ├── HmilyLockConflictException.java │ │ └── HmilyRepositoryException.java ├── hmily-repository-zookeeper │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── org │ │ │ │ └── dromara │ │ │ │ └── hmily │ │ │ │ └── repository │ │ │ │ └── zookeeper │ │ │ │ └── ZookeeperRepository.java │ │ └── resources │ │ │ └── META-INF │ │ │ └── hmily │ │ │ └── org.dromara.hmily.repository.spi.HmilyRepository │ │ └── test │ │ ├── java │ │ └── org │ │ │ └── dromara │ │ │ └── hmily │ │ │ └── repository │ │ │ └── zookeeper │ │ │ ├── ZookeeperRepositoryTest.java │ │ │ └── mock │ │ │ └── ZookeeperMock.java │ │ └── resources │ │ └── log4j.properties └── pom.xml ├── hmily-rpc ├── hmily-apache-dubbo │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── org │ │ │ └── dromara │ │ │ └── hmily │ │ │ └── dubbo │ │ │ ├── field │ │ │ └── DubboRefererAnnotationField.java │ │ │ ├── filter │ │ │ └── DubboHmilyTransactionFilter.java │ │ │ ├── loadbalance │ │ │ ├── HmilyConsistentHashDubboLoadBalance.java │ │ │ ├── HmilyLeastActiveDubboLoadBalance.java │ │ │ ├── HmilyLoadBalanceUtils.java │ │ │ ├── HmilyRandomDubboLoadBalance.java │ │ │ └── HmilyRoundRobinDubboLoadBalance.java │ │ │ └── parameter │ │ │ └── DubboParameterLoader.java │ │ └── resources │ │ └── META-INF │ │ ├── dubbo │ │ ├── org.apache.dubbo.rpc.Filter │ │ └── org.apache.dubbo.rpc.cluster.LoadBalance │ │ └── hmily │ │ ├── org.dromara.hmily.core.field.AnnotationField │ │ └── org.dromara.hmily.core.mediator.RpcParameterLoader ├── hmily-brpc │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── org │ │ │ └── dromara │ │ │ └── hmily │ │ │ └── brpc │ │ │ ├── field │ │ │ └── BrpcRefererAnnotationField.java │ │ │ ├── interceptor │ │ │ └── BrpcHmilyTransactionInterceptor.java │ │ │ ├── loadbalance │ │ │ ├── HmilyFairStrategy.java │ │ │ ├── HmilyLoadBalanceUtils.java │ │ │ ├── HmilyRandomStrategy.java │ │ │ ├── HmilyRobinStrategy.java │ │ │ └── HmilyWeightStrategy.java │ │ │ └── parameter │ │ │ └── BrpcParameterLoader.java │ │ └── resources │ │ └── META-INF │ │ ├── hmily │ │ ├── org.dromara.hmily.core.field.AnnotationField │ │ └── org.dromara.hmily.core.mediator.RpcParameterLoader │ │ └── services │ │ ├── com.baidu.brpc.interceptor.Interceptor │ │ └── com.baidu.brpc.loadbalance.LoadBalanceStrategy ├── hmily-dubbo │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── org │ │ │ └── dromara │ │ │ └── hmily │ │ │ └── dubbo │ │ │ ├── field │ │ │ └── DubboRefererAnnotationField.java │ │ │ ├── filter │ │ │ └── DubboHmilyTransactionFilter.java │ │ │ ├── loadbalance │ │ │ ├── HmilyConsistentHashDubboLoadBalance.java │ │ │ ├── HmilyLeastActiveDubboLoadBalance.java │ │ │ ├── HmilyLoadBalanceUtils.java │ │ │ ├── HmilyRandomDubboLoadBalance.java │ │ │ └── HmilyRoundRobinDubboLoadBalance.java │ │ │ └── parameter │ │ │ └── DubboParameterLoader.java │ │ └── resources │ │ └── META-INF │ │ ├── dubbo │ │ ├── com.alibaba.dubbo.rpc.Filter │ │ └── com.alibaba.dubbo.rpc.cluster.LoadBalance │ │ └── hmily │ │ ├── org.dromara.hmily.core.field.AnnotationField │ │ └── org.dromara.hmily.core.mediator.RpcParameterLoader ├── hmily-grpc │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── org │ │ │ └── dromara │ │ │ └── hmily │ │ │ └── grpc │ │ │ ├── client │ │ │ └── GrpcHmilyClient.java │ │ │ ├── filter │ │ │ ├── GrpcHmilyServerFilter.java │ │ │ └── GrpcHmilyTransactionFilter.java │ │ │ └── parameter │ │ │ ├── GrpcHmilyContext.java │ │ │ ├── GrpcInvokeContext.java │ │ │ └── GrpcParameterLoader.java │ │ └── resources │ │ └── META-INF │ │ └── hmily │ │ └── org.dromara.hmily.core.mediator.RpcParameterLoader ├── hmily-motan │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── org │ │ │ └── dromara │ │ │ └── hmily │ │ │ └── motan │ │ │ ├── field │ │ │ └── MotanRefererAnnotationField.java │ │ │ ├── filter │ │ │ └── MotanHmilyTransactionFilter.java │ │ │ ├── loadbalance │ │ │ ├── HmilyActiveWeightMotanLoadBalance.java │ │ │ ├── HmilyConfigurableWeightMotanLoadBalance.java │ │ │ ├── HmilyConsistentHashMotanLoadBalance.java │ │ │ ├── HmilyLoadBalanceUtils.java │ │ │ ├── HmilyLocalFirstMotanLoadBalance.java │ │ │ ├── HmilyRandomMotanLoadBalance.java │ │ │ └── HmilyRoundRobinMotanLoadBalance.java │ │ │ └── parameter │ │ │ └── MotanParameterLoader.java │ │ └── resources │ │ └── META-INF │ │ ├── hmily │ │ ├── org.dromara.hmily.core.field.AnnotationField │ │ └── org.dromara.hmily.core.mediator.RpcParameterLoader │ │ └── services │ │ ├── com.weibo.api.motan.cluster.LoadBalance │ │ └── com.weibo.api.motan.filter.Filter ├── hmily-sofa-rpc │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── org │ │ │ └── dromara │ │ │ └── hmily │ │ │ └── sofa │ │ │ └── rpc │ │ │ ├── filter │ │ │ ├── HmilySofaRpcTransactionConsumerFilter.java │ │ │ └── HmilySofaRpcTransactionProviderFilter.java │ │ │ ├── loadbalancer │ │ │ ├── HmilyConsistentHashSofaRpcLoadBalancer.java │ │ │ ├── HmilyLoadBalanceUtils.java │ │ │ ├── HmilyLocalPrefSofaRpcLoadBalancer.java │ │ │ ├── HmilyRandomSofaRpcLoadBalancer.java │ │ │ ├── HmilyRoundRobinSofaRpcLoadBalancer.java │ │ │ ├── HmilyWeightConsistentHashSofaRpcLoadBalancer.java │ │ │ └── HmilyWeightRoundRobinSofaRpcLoadBalancer.java │ │ │ └── parameter │ │ │ └── SofaRpcParameterLoader.java │ │ └── resources │ │ └── META-INF │ │ ├── hmily │ │ └── org.dromara.hmily.core.mediator.RpcParameterLoader │ │ └── services │ │ └── sofa-rpc │ │ ├── com.alipay.sofa.rpc.client.LoadBalancer │ │ └── com.alipay.sofa.rpc.filter.Filter ├── hmily-springcloud │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── org │ │ │ └── dromara │ │ │ └── hmily │ │ │ └── springcloud │ │ │ ├── configuration │ │ │ ├── HmilyFeignConfiguration.java │ │ │ └── HmilyLoadBalancerConfiguration.java │ │ │ ├── feign │ │ │ ├── HmilyFeignBeanPostProcessor.java │ │ │ ├── HmilyFeignHandler.java │ │ │ └── HmilyFeignInterceptor.java │ │ │ ├── hystrix │ │ │ └── HmilyHystrixConcurrencyStrategy.java │ │ │ ├── loadbalancer │ │ │ └── HmilyZoneAwareLoadBalancer.java │ │ │ └── parameter │ │ │ └── SpringCloudParameterLoader.java │ │ └── resources │ │ └── META-INF │ │ ├── hmily │ │ └── org.dromara.hmily.core.mediator.RpcParameterLoader │ │ └── spring.factories ├── hmily-tars │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── org │ │ │ └── dromara │ │ │ └── hmily │ │ │ └── tars │ │ │ ├── filter │ │ │ └── TarsHmilyTransactionFilter.java │ │ │ ├── loadbalance │ │ │ ├── HmilyConsistentHashLoadBalance.java │ │ │ ├── HmilyHashLoadBalance.java │ │ │ ├── HmilyLoadBalance.java │ │ │ ├── HmilyLoadBalanceUtils.java │ │ │ └── HmilyRoundRobinLoadBalance.java │ │ │ ├── parameter │ │ │ └── TarsParameterLoader.java │ │ │ └── spring │ │ │ ├── TarsHmilyCommunicatorBeanPostProcessor.java │ │ │ └── TarsHmilyFilterStartupBean.java │ │ └── resources │ │ └── META-INF │ │ └── hmily │ │ └── org.dromara.hmily.core.mediator.RpcParameterLoader └── pom.xml ├── hmily-serializer ├── hmily-serializer-all │ └── pom.xml ├── hmily-serializer-hessian │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── org │ │ │ └── dromara │ │ │ └── hmily │ │ │ └── serializer │ │ │ └── hessian │ │ │ ├── HessianSerializer.java │ │ │ └── HessianSerializerFactory.java │ │ └── resources │ │ └── META-INF │ │ └── hmily │ │ └── org.dromara.hmily.serializer.spi.HmilySerializer ├── hmily-serializer-jdk │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── org │ │ │ └── dromara │ │ │ └── hmily │ │ │ └── serializer │ │ │ └── jdk │ │ │ └── JDKSerializer.java │ │ └── resources │ │ └── META-INF │ │ └── hmily │ │ └── org.dromara.hmily.serializer.spi.HmilySerializer ├── hmily-serializer-kryo │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── org │ │ │ └── dromara │ │ │ └── hmily │ │ │ └── serializer │ │ │ └── kryo │ │ │ ├── KryoPoolFactory.java │ │ │ └── KryoSerializer.java │ │ └── resources │ │ └── META-INF │ │ └── hmily │ │ └── org.dromara.hmily.serializer.spi.HmilySerializer ├── hmily-serializer-msgpack │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── org │ │ │ │ └── dromara │ │ │ │ └── hmily │ │ │ │ └── serializer │ │ │ │ └── msgpack │ │ │ │ └── MessagePackSerializer.java │ │ └── resources │ │ │ └── META-INF │ │ │ └── hmily │ │ │ └── org.dromara.hmily.serializer.spi.HmilySerializer │ │ └── test │ │ └── java │ │ └── org │ │ └── dromara │ │ └── hmily │ │ └── serializer │ │ └── msgpack │ │ └── MessagePackSerializerTest.java ├── hmily-serializer-protobuf │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── org │ │ │ └── dromara │ │ │ └── hmily │ │ │ └── serializer │ │ │ └── protobuf │ │ │ ├── ProtostuffSerializer.java │ │ │ └── SchemaCache.java │ │ └── resources │ │ └── META-INF │ │ └── hmily │ │ └── org.dromara.hmily.serializer.spi.HmilySerializer ├── hmily-serializer-spi │ ├── pom.xml │ └── src │ │ └── main │ │ └── java │ │ └── org │ │ └── dromara │ │ └── hmily │ │ └── serializer │ │ └── spi │ │ ├── HmilySerializer.java │ │ └── exception │ │ └── HmilySerializerException.java └── pom.xml ├── hmily-spi ├── pom.xml └── src │ ├── main │ └── java │ │ └── org │ │ └── dromara │ │ └── hmily │ │ └── spi │ │ ├── ExtensionEntity.java │ │ ├── ExtensionLoader.java │ │ ├── ExtensionLoaderFactory.java │ │ ├── HmilySPI.java │ │ ├── InitializeSPI.java │ │ └── ScopeType.java │ └── test │ ├── java │ └── org │ │ └── dromara │ │ └── hmily │ │ └── spi │ │ ├── ExtensionLoaderFactoryTest.java │ │ └── fixture │ │ ├── HelloWorldTestSPI.java │ │ ├── HmilyTestSPI.java │ │ ├── JdbcSPI.java │ │ ├── MysqlSPI.java │ │ ├── NoHelloTestSPI.java │ │ └── OracleSPI.java │ └── resources │ └── META-INF │ └── hmily │ ├── org.dromara.hmily.spi.fixture.HmilyTestSPI │ └── org.dromara.hmily.spi.fixture.JdbcSPI ├── hmily-spring-boot-starter ├── hmily-spring-boot-starter-apache-dubbo │ ├── pom.xml │ └── src │ │ └── main │ │ └── resources │ │ └── META-INF │ │ └── spring.provides ├── hmily-spring-boot-starter-brpc │ ├── pom.xml │ └── src │ │ └── main │ │ └── resources │ │ └── META-INF │ │ └── spring.provides ├── hmily-spring-boot-starter-dubbo │ ├── pom.xml │ └── src │ │ └── main │ │ └── resources │ │ └── META-INF │ │ └── spring.provides ├── hmily-spring-boot-starter-grpc │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── org │ │ │ └── dromara │ │ │ └── hmily │ │ │ └── grpc │ │ │ └── startup │ │ │ └── GrpcHmilyConfiguration.java │ │ └── resources │ │ └── META-INF │ │ ├── spring.factories │ │ └── spring.provides ├── hmily-spring-boot-starter-motan │ ├── pom.xml │ └── src │ │ └── main │ │ └── resources │ │ └── META-INF │ │ └── spring.provides ├── hmily-spring-boot-starter-parent │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── org │ │ │ └── dromara │ │ │ └── hmily │ │ │ └── spring │ │ │ └── boot │ │ │ └── starter │ │ │ └── parent │ │ │ └── configuration │ │ │ └── HmilyAutoConfiguration.java │ │ └── resources │ │ └── META-INF │ │ └── spring.factories ├── hmily-spring-boot-starter-sofa-rpc │ ├── pom.xml │ └── src │ │ └── main │ │ └── resources │ │ └── META-INF │ │ └── spring.provides ├── hmily-spring-boot-starter-springcloud │ ├── pom.xml │ └── src │ │ └── main │ │ └── resources │ │ └── META-INF │ │ └── spring.provides ├── hmily-spring-boot-starter-tars │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── org │ │ │ └── dromara │ │ │ └── hmily │ │ │ └── tars │ │ │ └── startup │ │ │ └── TarsHmilyConfiguration.java │ │ └── resources │ │ └── META-INF │ │ ├── spring.factories │ │ └── spring.provides └── pom.xml ├── hmily-spring ├── pom.xml └── src │ └── main │ └── java │ └── org │ └── dromara │ └── hmily │ └── spring │ ├── HmilyApplicationContextAware.java │ ├── annotation │ └── RefererAnnotationBeanPostProcessor.java │ ├── aop │ └── SpringHmilyTransactionAspect.java │ ├── provide │ └── SpringBeanProvide.java │ └── utils │ └── SpringBeanUtils.java ├── hmily-tac ├── hmily-tac-common │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── org │ │ │ └── dromara │ │ │ └── hmily │ │ │ └── tac │ │ │ └── common │ │ │ ├── HmilyResourceManager.java │ │ │ ├── HmilyTacResource.java │ │ │ ├── constants │ │ │ └── DatabaseConstant.java │ │ │ ├── database │ │ │ ├── UnrecognizedDatabaseURLException.java │ │ │ ├── dialect │ │ │ │ ├── DatabaseMetaDataDialectHandler.java │ │ │ │ ├── DatabaseMetaDataDialectHandlerFactory.java │ │ │ │ ├── H2DatabaseMetaDataDialectHandler.java │ │ │ │ ├── MariaDBDatabaseMetaDataDialectHandler.java │ │ │ │ ├── MySQLDatabaseMetaDataDialectHandler.java │ │ │ │ ├── OracleDatabaseMetaDataDialectHandler.java │ │ │ │ ├── PostgreSQLDatabaseMetaDataDialectHandler.java │ │ │ │ ├── SQL92DatabaseMetaDataDialectHandler.java │ │ │ │ └── SQLServerDatabaseMetaDataDialectHandler.java │ │ │ ├── metadata │ │ │ │ ├── DataSourceMetaData.java │ │ │ │ ├── H2DataSourceMetaData.java │ │ │ │ ├── MariaDBDataSourceMetaData.java │ │ │ │ ├── MySQLDataSourceMetaData.java │ │ │ │ ├── OracleDataSourceMetaData.java │ │ │ │ ├── PostgreSQLDataSourceMetaData.java │ │ │ │ ├── SQL92DataSourceMetaData.java │ │ │ │ └── SQLServerDataSourceMetaData.java │ │ │ └── type │ │ │ │ ├── DatabaseType.java │ │ │ │ ├── DatabaseTypeFactory.java │ │ │ │ ├── H2DatabaseType.java │ │ │ │ ├── MariaDBDatabaseType.java │ │ │ │ ├── MemorizedDataSourceMetaData.java │ │ │ │ ├── MySQLDatabaseType.java │ │ │ │ ├── OracleDatabaseType.java │ │ │ │ ├── PostgreSQLDatabaseType.java │ │ │ │ ├── SQL92DatabaseType.java │ │ │ │ └── SQLServerDatabaseType.java │ │ │ ├── enums │ │ │ └── QuoteCharacter.java │ │ │ └── utils │ │ │ ├── DatabaseTypes.java │ │ │ └── ResourceIdUtils.java │ │ └── resources │ │ └── META-INF │ │ └── hmily │ │ ├── org.dromara.hmily.tac.common.database.dialect.DatabaseMetaDataDialectHandler │ │ └── org.dromara.hmily.tac.common.database.type.DatabaseType ├── hmily-tac-core │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── org │ │ │ └── dromara │ │ │ └── hmily │ │ │ └── tac │ │ │ └── core │ │ │ ├── cache │ │ │ ├── HmilyLockCacheManager.java │ │ │ ├── HmilyParticipantUndoCacheManager.java │ │ │ └── HmilyUndoContextCacheManager.java │ │ │ ├── context │ │ │ └── HmilyUndoContext.java │ │ │ ├── exception │ │ │ └── LockWaitTimeoutException.java │ │ │ ├── handler │ │ │ ├── ConsumeHmilyTacTransactionHandler.java │ │ │ ├── HmilyTacTransactionHandlerRegistry.java │ │ │ ├── ParticipantHmilyTacTransactionHandler.java │ │ │ └── StarterHmilyTacTransactionHandler.java │ │ │ ├── lock │ │ │ ├── HmilyLockManager.java │ │ │ └── HmilyLockRetryHandler.java │ │ │ └── transaction │ │ │ ├── HmilyTacLocalParticipantExecutor.java │ │ │ ├── HmilyTacParticipantCoordinator.java │ │ │ └── HmilyTacTransactionManager.java │ │ └── resources │ │ └── META-INF │ │ └── hmily │ │ └── org.dromara.hmily.core.service.HmilyTransactionHandlerRegistry ├── hmily-tac-metadata │ ├── pom.xml │ └── src │ │ └── main │ │ └── java │ │ └── org │ │ └── dromara │ │ └── hmily │ │ └── tac │ │ └── metadata │ │ ├── HmilyMetaDataManager.java │ │ ├── connection │ │ └── MetaDataConnectionAdapter.java │ │ ├── loader │ │ ├── ColumnMetaDataLoader.java │ │ ├── DataSourceMetaDataLoader.java │ │ ├── IndexMetaDataLoader.java │ │ └── TableMetaDataLoader.java │ │ └── model │ │ ├── ColumnMetaData.java │ │ ├── DataSourceMetaData.java │ │ ├── IndexMetaData.java │ │ └── TableMetaData.java ├── hmily-tac-p6spy │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── org │ │ │ └── dromara │ │ │ └── hmily │ │ │ └── tac │ │ │ └── p6spy │ │ │ ├── HmilyP6Datasource.java │ │ │ ├── executor │ │ │ └── HmilyExecuteTemplate.java │ │ │ ├── listener │ │ │ ├── HmilyJdbcEventListener.java │ │ │ └── HmilyJdbcEventListenerFactory.java │ │ │ ├── rollback │ │ │ └── HmilyTacRollbackExecutor.java │ │ │ └── threadlocal │ │ │ └── AutoCommitThreadLocal.java │ │ └── resources │ │ └── META-INF │ │ └── services │ │ └── com.p6spy.engine.spy.JdbcEventListenerFactory ├── hmily-tac-sqlcompute │ ├── pom.xml │ └── src │ │ └── main │ │ └── java │ │ └── org │ │ └── dromara │ │ └── hmily │ │ └── tac │ │ └── sqlcompute │ │ ├── HmilySQLComputeEngine.java │ │ ├── HmilySQLComputeEngineFactory.java │ │ ├── exception │ │ └── SQLComputeException.java │ │ └── impl │ │ ├── AbstractHmilySQLComputeEngine.java │ │ ├── ExpressionHandler.java │ │ ├── HmilyDeleteSQLComputeEngine.java │ │ ├── HmilyInsertSQLComputeEngine.java │ │ ├── HmilySQLComputeUtils.java │ │ ├── HmilySelectSQLComputeEngine.java │ │ └── HmilyUpdateSQLComputeEngine.java ├── hmily-tac-sqlparser │ ├── hmily-tac-sqlparser-all │ │ └── pom.xml │ ├── hmily-tac-sqlparser-calcite │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── org │ │ │ │ └── dromara │ │ │ │ └── hmily │ │ │ │ └── tac │ │ │ │ └── sqlparser │ │ │ │ └── calcite │ │ │ │ └── CalciteSqlParserEngine.java │ │ │ └── resources │ │ │ └── META-INF │ │ │ └── hmily │ │ │ └── org.dromara.hmily.tac.sqlparser.spi.HmilySqlParserEngine │ ├── hmily-tac-sqlparser-model │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ └── java │ │ │ └── org │ │ │ └── dromara │ │ │ └── hmily │ │ │ └── tac │ │ │ └── sqlparser │ │ │ └── model │ │ │ ├── common │ │ │ ├── HmilyASTNode.java │ │ │ ├── constant │ │ │ │ ├── HmilyAggregationType.java │ │ │ │ ├── HmilyLogicalOperator.java │ │ │ │ ├── HmilyOrderDirection.java │ │ │ │ ├── HmilyParen.java │ │ │ │ └── HmilyQuoteCharacter.java │ │ │ ├── segment │ │ │ │ ├── HmilySegment.java │ │ │ │ ├── dml │ │ │ │ │ ├── assignment │ │ │ │ │ │ ├── HmilyAssignmentSegment.java │ │ │ │ │ │ ├── HmilyInsertValuesSegment.java │ │ │ │ │ │ └── HmilySetAssignmentSegment.java │ │ │ │ │ ├── column │ │ │ │ │ │ ├── HmilyColumnSegment.java │ │ │ │ │ │ ├── HmilyInsertColumnsSegment.java │ │ │ │ │ │ └── HmilyOnDuplicateKeyColumnsSegment.java │ │ │ │ │ ├── expr │ │ │ │ │ │ ├── HmilyAggregateExpression.java │ │ │ │ │ │ ├── HmilyAllColumnExpression.java │ │ │ │ │ │ ├── HmilyBetweenExpression.java │ │ │ │ │ │ ├── HmilyBinaryOperationExpression.java │ │ │ │ │ │ ├── HmilyExpressionSegment.java │ │ │ │ │ │ ├── HmilyInExpression.java │ │ │ │ │ │ ├── HmilyListExpression.java │ │ │ │ │ │ ├── HmilyNotExpression.java │ │ │ │ │ │ ├── complex │ │ │ │ │ │ │ ├── HmilyCommonExpressionSegment.java │ │ │ │ │ │ │ ├── HmilyCommonTableExpressionSegment.java │ │ │ │ │ │ │ └── HmilyComplexExpressionSegment.java │ │ │ │ │ │ └── simple │ │ │ │ │ │ │ ├── HmilyLiteralExpressionSegment.java │ │ │ │ │ │ │ ├── HmilyParameterMarkerExpressionSegment.java │ │ │ │ │ │ │ └── HmilySimpleExpressionSegment.java │ │ │ │ │ ├── item │ │ │ │ │ │ ├── HmilyAggregationDistinctProjectionSegment.java │ │ │ │ │ │ ├── HmilyAggregationProjectionSegment.java │ │ │ │ │ │ ├── HmilyColumnProjectionSegment.java │ │ │ │ │ │ ├── HmilyExpressionProjectionSegment.java │ │ │ │ │ │ ├── HmilyProjectionSegment.java │ │ │ │ │ │ ├── HmilyProjectionsSegment.java │ │ │ │ │ │ └── HmilyShorthandProjectionSegment.java │ │ │ │ │ ├── order │ │ │ │ │ │ ├── HmilyGroupBySegment.java │ │ │ │ │ │ ├── HmilyOrderBySegment.java │ │ │ │ │ │ └── item │ │ │ │ │ │ │ ├── HmilyColumnOrderByItemSegment.java │ │ │ │ │ │ │ ├── HmilyExpressionOrderByItemSegment.java │ │ │ │ │ │ │ ├── HmilyIndexOrderByItemSegment.java │ │ │ │ │ │ │ ├── HmilyOrderByItemSegment.java │ │ │ │ │ │ │ └── HmilyTextOrderByItemSegment.java │ │ │ │ │ ├── pagination │ │ │ │ │ │ ├── HmilyNumberLiteralPaginationValueSegment.java │ │ │ │ │ │ ├── HmilyPaginationValueSegment.java │ │ │ │ │ │ ├── HmilyParameterMarkerPaginationValueSegment.java │ │ │ │ │ │ ├── limit │ │ │ │ │ │ │ ├── HmilyLimitSegment.java │ │ │ │ │ │ │ ├── HmilyLimitValueSegment.java │ │ │ │ │ │ │ ├── HmilyNumberLiteralLimitValueSegment.java │ │ │ │ │ │ │ └── HmilyParameterMarkerLimitValueSegment.java │ │ │ │ │ │ ├── rownum │ │ │ │ │ │ │ ├── HmilyNumberLiteralRowNumberValueSegment.java │ │ │ │ │ │ │ ├── HmilyParameterMarkerRowNumberValueSegment.java │ │ │ │ │ │ │ └── HmilyRowNumberValueSegment.java │ │ │ │ │ │ └── top │ │ │ │ │ │ │ └── HmilyTopProjectionSegment.java │ │ │ │ │ └── predicate │ │ │ │ │ │ ├── HmilyAndPredicate.java │ │ │ │ │ │ ├── HmilyLockSegment.java │ │ │ │ │ │ ├── HmilyOrPredicateSegment.java │ │ │ │ │ │ └── HmilyWhereSegment.java │ │ │ │ └── generic │ │ │ │ │ ├── HmilyAliasAvailable.java │ │ │ │ │ ├── HmilyAliasSegment.java │ │ │ │ │ ├── HmilyDataTypeLengthSegment.java │ │ │ │ │ ├── HmilyDataTypeSegment.java │ │ │ │ │ ├── HmilyOutputSegment.java │ │ │ │ │ ├── HmilyOwnerAvailable.java │ │ │ │ │ ├── HmilyOwnerSegment.java │ │ │ │ │ ├── HmilyRemoveAvailable.java │ │ │ │ │ ├── HmilySchemaSegment.java │ │ │ │ │ ├── HmilyWithSegment.java │ │ │ │ │ └── table │ │ │ │ │ ├── HmilyDeleteMultiTableSegment.java │ │ │ │ │ ├── HmilyJoinTableSegment.java │ │ │ │ │ ├── HmilySimpleTableSegment.java │ │ │ │ │ ├── HmilyTableNameSegment.java │ │ │ │ │ └── HmilyTableSegment.java │ │ │ ├── statement │ │ │ │ ├── AbstractHmilyStatement.java │ │ │ │ ├── HmilyStatement.java │ │ │ │ ├── HmilyStatementType.java │ │ │ │ └── dml │ │ │ │ │ ├── HmilyDMLStatement.java │ │ │ │ │ ├── HmilyDeleteStatement.java │ │ │ │ │ ├── HmilyInsertStatement.java │ │ │ │ │ ├── HmilySelectStatement.java │ │ │ │ │ └── HmilyUpdateStatement.java │ │ │ ├── util │ │ │ │ ├── HmilyColumnExtractor.java │ │ │ │ ├── HmilyExpressionBuilder.java │ │ │ │ ├── HmilySQLUtil.java │ │ │ │ └── HmilySafeNumberOperationUtils.java │ │ │ └── value │ │ │ │ ├── HmilyValueASTNode.java │ │ │ │ ├── collection │ │ │ │ └── HmilyCollectionValue.java │ │ │ │ ├── identifier │ │ │ │ └── HmilyIdentifierValue.java │ │ │ │ ├── keyword │ │ │ │ └── HmilyKeywordValue.java │ │ │ │ ├── literal │ │ │ │ ├── HmilyLiteralValue.java │ │ │ │ └── impl │ │ │ │ │ ├── HmilyBooleanLiteralValue.java │ │ │ │ │ ├── HmilyNumberLiteralValue.java │ │ │ │ │ ├── HmilyOtherLiteralValue.java │ │ │ │ │ └── HmilyStringLiteralValue.java │ │ │ │ └── parametermarker │ │ │ │ └── HmilyParameterMarkerValue.java │ │ │ └── dialect │ │ │ ├── mysql │ │ │ ├── HmilyMySQLStatement.java │ │ │ └── dml │ │ │ │ ├── HmilyMySQLDeleteStatement.java │ │ │ │ ├── HmilyMySQLInsertStatement.java │ │ │ │ ├── HmilyMySQLSelectStatement.java │ │ │ │ └── HmilyMySQLUpdateStatement.java │ │ │ ├── oracle │ │ │ ├── HmilyOracleStatement.java │ │ │ └── dml │ │ │ │ ├── HmilyOracleDeleteStatement.java │ │ │ │ ├── HmilyOracleInsertStatement.java │ │ │ │ ├── HmilyOracleSelectStatement.java │ │ │ │ └── HmilyOracleUpdateStatement.java │ │ │ ├── postgresql │ │ │ ├── HmilyPostgreSQLStatement.java │ │ │ └── dml │ │ │ │ ├── HmilyPostgreSQLDeleteStatement.java │ │ │ │ ├── HmilyPostgreSQLInsertStatement.java │ │ │ │ ├── HmilyPostgreSQLUpdateStatement.java │ │ │ │ └── HmilyPostgresqlSelectStatement.java │ │ │ └── sqlserver │ │ │ ├── HmilySQLServerStatement.java │ │ │ └── dml │ │ │ ├── HmilySQLServerDeleteStatement.java │ │ │ ├── HmilySQLServerInsertStatement.java │ │ │ ├── HmilySQLServerSelectStatement.java │ │ │ └── HmilySQLServerUpdateStatement.java │ ├── hmily-tac-sqlparser-shardingsphere │ │ ├── pom.xml │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── org │ │ │ │ │ └── dromara │ │ │ │ │ └── hmily │ │ │ │ │ └── tac │ │ │ │ │ └── sqlparser │ │ │ │ │ └── shardingsphere │ │ │ │ │ ├── ShardingSphereSqlParserEngine.java │ │ │ │ │ ├── common │ │ │ │ │ ├── AbstractHmilySQLParserExecutor.java │ │ │ │ │ ├── HmilySQLParserExecutor.java │ │ │ │ │ └── handler │ │ │ │ │ │ ├── CommonAssembler.java │ │ │ │ │ │ ├── DeleteStatementAssembler.java │ │ │ │ │ │ ├── InsertStatementAssembler.java │ │ │ │ │ │ ├── SelectStatementAssembler.java │ │ │ │ │ │ └── UpdateStatementAssembler.java │ │ │ │ │ └── dialect │ │ │ │ │ ├── HmilyMySQLParserExecutor.java │ │ │ │ │ ├── HmilyOracleParserExecutor.java │ │ │ │ │ ├── HmilyPostgreSQLParserExecutor.java │ │ │ │ │ └── HmilySQLServerParserExecutor.java │ │ │ └── resources │ │ │ │ └── META-INF │ │ │ │ └── hmily │ │ │ │ └── org.dromara.hmily.tac.sqlparser.spi.HmilySqlParserEngine │ │ │ └── test │ │ │ └── java │ │ │ └── org │ │ │ └── dromara │ │ │ └── hmily │ │ │ └── tac │ │ │ └── sqlparser │ │ │ └── shardingsphere │ │ │ └── ShardingSphereSqlParserEngineTest.java │ ├── hmily-tac-sqlparser-spi │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ └── java │ │ │ └── org │ │ │ └── dromara │ │ │ └── hmily │ │ │ └── tac │ │ │ └── sqlparser │ │ │ └── spi │ │ │ ├── HmilySqlParserEngine.java │ │ │ ├── HmilySqlParserEngineFactory.java │ │ │ └── exception │ │ │ └── SqlParserException.java │ └── pom.xml ├── hmily-tac-sqlrevert │ ├── hmily-tac-sqlrevert-all │ │ └── pom.xml │ ├── hmily-tac-sqlrevert-core │ │ ├── pom.xml │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── org │ │ │ │ │ └── dromara │ │ │ │ │ └── hmily │ │ │ │ │ └── tac │ │ │ │ │ └── sqlrevert │ │ │ │ │ └── core │ │ │ │ │ ├── DefaultSQLRevertEngine.java │ │ │ │ │ └── image │ │ │ │ │ ├── CreateSQLUtil.java │ │ │ │ │ ├── RevertSQLUnit.java │ │ │ │ │ ├── SQLImageMapper.java │ │ │ │ │ ├── SQLImageMapperFactory.java │ │ │ │ │ └── impl │ │ │ │ │ ├── DeleteSQLImageMapper.java │ │ │ │ │ ├── InsertSQLImageMapper.java │ │ │ │ │ └── UpdateSQLImageMapper.java │ │ │ └── resources │ │ │ │ └── META-INF │ │ │ │ └── hmily │ │ │ │ └── org.dromara.hmily.tac.sqlrevert.spi.HmilySQLRevertEngine │ │ │ └── test │ │ │ └── java │ │ │ └── org │ │ │ └── dromara │ │ │ └── hmily │ │ │ └── tac │ │ │ └── sqlrevert │ │ │ └── core │ │ │ └── image │ │ │ └── impl │ │ │ └── SQLImageMapperTest.java │ ├── hmily-tac-sqlrevert-spi │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ └── java │ │ │ └── org │ │ │ └── dromara │ │ │ └── hmily │ │ │ └── tac │ │ │ └── sqlrevert │ │ │ └── spi │ │ │ ├── HmilySQLRevertEngine.java │ │ │ ├── HmilySQLRevertEngineFactory.java │ │ │ └── exception │ │ │ └── SQLRevertException.java │ └── pom.xml └── pom.xml ├── hmily-tcc ├── pom.xml └── src │ └── main │ ├── java │ └── org │ │ └── dromara │ │ └── hmily │ │ └── tcc │ │ ├── executor │ │ └── HmilyTccTransactionExecutor.java │ │ └── handler │ │ ├── ConsumeHmilyTccTransactionHandler.java │ │ ├── HmilyTccTransactionHandlerRegistry.java │ │ ├── LocalHmilyTccTransactionHandler.java │ │ ├── ParticipantHmilyTccTransactionHandler.java │ │ └── StarterHmilyTccTransactionHandler.java │ └── resources │ └── META-INF │ └── hmily │ └── org.dromara.hmily.core.service.HmilyTransactionHandlerRegistry ├── hmily-xa ├── hmily-xa-core │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── org │ │ │ └── dromara │ │ │ └── hmily │ │ │ └── xa │ │ │ └── core │ │ │ ├── Coordinator.java │ │ │ ├── Finally.java │ │ │ ├── HmilyXaException.java │ │ │ ├── HmilyXaResource.java │ │ │ ├── HmilyXaTransactionManager.java │ │ │ ├── Resource.java │ │ │ ├── SubCoordinator.java │ │ │ ├── TransactionContext.java │ │ │ ├── TransactionImpl.java │ │ │ ├── TransactionManagerImpl.java │ │ │ ├── UserTransactionImpl.java │ │ │ ├── XaConfig.java │ │ │ ├── XaResourcePool.java │ │ │ ├── XaResourceWrapped.java │ │ │ ├── XaState.java │ │ │ ├── XidImpl.java │ │ │ ├── recovery │ │ │ ├── CoordinatorLogEntry.java │ │ │ ├── ParticipantLogEntry.java │ │ │ ├── RecoveryLog.java │ │ │ ├── XaResourceRecovery.java │ │ │ └── XaResourceRecoveryImpl.java │ │ │ └── timer │ │ │ ├── HashedWheelTimer.java │ │ │ ├── HmilyTimer.java │ │ │ ├── Timeout.java │ │ │ ├── Timer.java │ │ │ ├── TimerRemovalListener.java │ │ │ └── TimerTask.java │ │ └── resources │ │ └── META-INF │ │ └── hmily │ │ └── org.dromara.hmily.config.api.Config ├── hmily-xa-p6spy │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── org │ │ │ │ └── dromara │ │ │ │ └── hmily │ │ │ │ └── xa │ │ │ │ └── p6spy │ │ │ │ ├── HmilyXaConnection.java │ │ │ │ ├── HmilyXaP6Datasource.java │ │ │ │ ├── HmilyXaPreparedStatement.java │ │ │ │ ├── HmilyXaStatement.java │ │ │ │ └── listener │ │ │ │ ├── HmilyJdbcEventListener.java │ │ │ │ └── HmilyJdbcEventListenerFactory.java │ │ └── resources │ │ │ └── META-INF │ │ │ └── services │ │ │ └── com.p6spy.engine.spy.JdbcEventListenerFactory │ │ └── test │ │ └── java │ │ └── org │ │ └── dromara │ │ └── hmily │ │ └── xa │ │ └── p6spy │ │ └── test │ │ └── HmilyXaTest.java ├── hmily-xa-rpc │ ├── hmily-xa-rpc-common │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── org │ │ │ │ └── dromara │ │ │ │ └── hmily │ │ │ │ └── xa │ │ │ │ └── rpc │ │ │ │ ├── RpcResource.java │ │ │ │ ├── RpcXaProxy.java │ │ │ │ └── spring │ │ │ │ ├── BeginHmilyTransactionHandler.java │ │ │ │ ├── CommitHmilyTransactionHandler.java │ │ │ │ ├── DefHmilyTransactionHandler.java │ │ │ │ ├── PrepareHmilyTransactionHandler.java │ │ │ │ ├── RecoverHmilyTransactionHandler.java │ │ │ │ ├── RollbackHmilyTransactionHandler.java │ │ │ │ └── XaTransactionHandlerRegistry.java │ │ │ └── resources │ │ │ └── META-INF │ │ │ └── hmily │ │ │ └── org.dromara.hmily.core.service.HmilyTransactionHandlerRegistry │ ├── hmily-xa-rpc-dubbo │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── org │ │ │ │ └── dromara │ │ │ │ └── hmily │ │ │ │ └── xa │ │ │ │ └── rpc │ │ │ │ └── dubbo │ │ │ │ ├── DubboRpcResource.java │ │ │ │ ├── DubboRpcXaProxy.java │ │ │ │ └── DubboXaFilter.java │ │ │ └── resources │ │ │ └── META-INF │ │ │ └── dubbo │ │ │ └── org.apache.dubbo.rpc.Filter │ ├── hmily-xa-rpc-springcloud │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── org │ │ │ │ └── dromara │ │ │ │ └── hmily │ │ │ │ └── xa │ │ │ │ └── rpc │ │ │ │ └── springcloud │ │ │ │ ├── FeignBeanPostProcessor.java │ │ │ │ ├── FeignRequestInterceptor.java │ │ │ │ ├── FeignRequestInvocationHandler.java │ │ │ │ ├── SpringCloudXaAutoConfiguration.java │ │ │ │ ├── SpringCloudXaProxy.java │ │ │ │ ├── SpringCloudXaResource.java │ │ │ │ └── loadbalancer │ │ │ │ ├── SpringCloudXaLoadBalancer.java │ │ │ │ ├── XaLoadBalancerAutoConfiguration.java │ │ │ │ └── XaLoadBalancerBeanPostProcessor.java │ │ │ └── resources │ │ │ └── META-INF │ │ │ ├── hmily │ │ │ └── org.dromara.hmily.core.mediator.RpcParameterLoader │ │ │ └── spring.factories │ └── pom.xml └── pom.xml ├── pom.xml └── script └── hmily_checkstyle.xml /.gitattributes: -------------------------------------------------------------------------------- 1 | *.js linguist-language=java -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug-report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: 🐛 Bug Report 3 | about: If something isn't working as expected 🤔. 4 | labels: 'type: bug' 5 | --- 6 | 7 | ## Describe the bug 8 | 11 | 12 | ## Environment 13 | 14 | - hmily version(s): [e.g. 2.1.3-SNAPSHOT] 15 | 16 | ## Steps to reproduce 17 | 18 | 19 | ## Expected behavior 20 | 23 | 24 | ## Debug logs 25 | 28 | 29 |
30 | Click to expand 31 | 32 | ``` 33 | replace this line with your debug logs 34 | ``` 35 |
36 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature-request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: 🚀 Feature Request 3 | about: I have a suggestion (and may want to implement it 🙂)! 4 | labels: 'type: enhancement' 5 | --- 6 | 7 | ## Feature Request 8 | 9 | 10 | 11 | #### Is your feature request related to a problem? Please describe 12 | 13 | A clear and concise description of what the problem is. Ex. I have an issue when [...] 14 | 15 | #### Describe the solution you'd like 16 | 17 | A clear and concise description of what you want to happen. Add any considered drawbacks. 18 | 19 | #### Describe alternatives you've considered 20 | 21 | A clear and concise description of any alternative solutions or features you've considered. 22 | 23 | #### Additional context 24 | 25 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/question.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: "🤔 Question" 3 | about: Usage question that isn't answered in docs or discussion 4 | --- 5 | 6 | ## Question 7 | 8 | // your question here; 9 | 10 | Please pay attention on issues you submitted, because we maybe need more details. 11 | If no response anymore and we cannot reproduce it on current information, we will **close it**. 12 | -------------------------------------------------------------------------------- /.github/PULL_REQUEST_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | 4 | Make sure that: 5 | 6 | - [ ] You have read the [contribution guidelines](https://dromara.org/projects/hmily/contributor/). 7 | - [ ] You submit test cases (unit or integration tests) that back your changes. 8 | - [ ] Your local test passed `mvn clean install -Dmaven.javadoc.skip=true`. 9 | -------------------------------------------------------------------------------- /.github/workflows/main.yml: -------------------------------------------------------------------------------- 1 | name: build 2 | 3 | on: 4 | pull_request: 5 | paths-ignore: 6 | - "**.md" 7 | push: 8 | branches: 9 | - master 10 | paths-ignore: 11 | - '**.md' 12 | 13 | jobs: 14 | build: 15 | runs-on: ubuntu-latest 16 | steps: 17 | - name: Cache Maven Repos 18 | uses: actions/cache@v2 19 | with: 20 | path: ~/.m2/repository 21 | key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} 22 | restore-keys: | 23 | ${{ runner.os }}-maven- 24 | - uses: actions/checkout@v2 25 | - name: Set up JDK 8 26 | uses: actions/setup-java@v1 27 | with: 28 | java-version: 8 29 | - name: Build with Maven 30 | run: mvn --batch-mode --no-transfer-progress clean install cobertura:cobertura -Dmaven.javadoc.skip=true 31 | - uses: codecov/codecov-action@v1 32 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Mobile Tools for Java (J2ME) 2 | .mtj.tmp/ 3 | 4 | # Package Files # 5 | *.jar 6 | *.war 7 | *.ear 8 | 9 | # virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml 10 | hs_err_pid* 11 | 12 | *~ 13 | node_modules 14 | # eclipse ignore 15 | .settings 16 | .project 17 | .classpath 18 | .tomcatplugin 19 | logPath_IS_UNDEFINED 20 | *.gz 21 | disconf 22 | 23 | # idea ignore 24 | .idea 25 | *.iml 26 | pom.xml.tag 27 | pom.xml.releaseBackup 28 | pom.xml.versionsBackup 29 | pom.xml.next 30 | # maven ignore 31 | target 32 | pom.xml.tag 33 | pom.xml.releaseBackup 34 | pom.xml.versionsBackup 35 | pom.xml.next 36 | release.properties 37 | dependency-reduced-pom.xml 38 | buildNumber.properties 39 | .mvn/timing.properties 40 | # other ignore 41 | *.log 42 | *.tmp 43 | Thumbs.db 44 | *.DS_Store 45 | -------------------------------------------------------------------------------- /hmily-annotation/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | org.dromara 8 | hmily 9 | 2.1.3-SNAPSHOT 10 | 11 | 4.0.0 12 | jar 13 | hmily-annotation 14 | 15 | 16 | org.projectlombok 17 | lombok 18 | compile 19 | 20 | 21 | -------------------------------------------------------------------------------- /hmily-annotation/src/main/java/org/dromara/hmily/annotation/Hmily.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-2021 Dromara.org 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.dromara.hmily.annotation; 18 | 19 | import java.lang.annotation.ElementType; 20 | import java.lang.annotation.Retention; 21 | import java.lang.annotation.RetentionPolicy; 22 | import java.lang.annotation.Target; 23 | 24 | /** 25 | * The annotation Hmily. 26 | * 27 | * @author xiaoyu 28 | */ 29 | @Retention(RetentionPolicy.RUNTIME) 30 | @Target(ElementType.METHOD) 31 | public @interface Hmily { 32 | } 33 | -------------------------------------------------------------------------------- /hmily-annotation/src/main/java/org/dromara/hmily/annotation/HmilyXA.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-2021 Dromara.org 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.dromara.hmily.annotation; 18 | 19 | import java.lang.annotation.ElementType; 20 | import java.lang.annotation.Retention; 21 | import java.lang.annotation.RetentionPolicy; 22 | import java.lang.annotation.Target; 23 | 24 | /** 25 | * The annotation HmilyXA. 26 | * 27 | * @author xiaoyu 28 | */ 29 | @Retention(RetentionPolicy.RUNTIME) 30 | @Target(ElementType.METHOD) 31 | public @interface HmilyXA { 32 | 33 | } 34 | -------------------------------------------------------------------------------- /hmily-annotation/src/main/java/org/dromara/hmily/annotation/IsolationLevelEnum.java: -------------------------------------------------------------------------------- 1 | package org.dromara.hmily.annotation; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Getter; 5 | 6 | /** 7 | * The enum Transaction Isolation Level enum. 8 | * 9 | * @author zhangzhi 10 | */ 11 | @AllArgsConstructor 12 | @Getter 13 | public enum IsolationLevelEnum { 14 | 15 | /** 16 | * read_uncommitted enum. 17 | */ 18 | READ_UNCOMMITTED(0), 19 | 20 | /** 21 | * read_committed enum. 22 | */ 23 | READ_COMMITTED(1); 24 | 25 | private final int value; 26 | } 27 | -------------------------------------------------------------------------------- /hmily-common/src/main/java/org/dromara/hmily/common/enums/ExecutorTypeEnum.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-2021 Dromara.org 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.dromara.hmily.common.enums; 18 | 19 | /** 20 | * The enum Executor type enum. 21 | * 22 | * @author xiaoyu 23 | */ 24 | public enum ExecutorTypeEnum { 25 | 26 | /** 27 | * Rpc executor type enum. 28 | */ 29 | RPC, 30 | /** 31 | * Local executor type enum. 32 | */ 33 | LOCAL 34 | } 35 | -------------------------------------------------------------------------------- /hmily-common/src/main/java/org/dromara/hmily/common/utils/UrlUtils.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-2021 Dromara.org 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.dromara.hmily.common.utils; 18 | 19 | /** 20 | * UrlUtils . 21 | * Generate url address. 22 | * 23 | * @author sixh chenbin 24 | */ 25 | public class UrlUtils { 26 | 27 | } 28 | -------------------------------------------------------------------------------- /hmily-config/hmily-config-api/src/main/java/org/dromara/hmily/config/api/entity/HmilyEtcdConfig.java: -------------------------------------------------------------------------------- 1 | package org.dromara.hmily.config.api.entity; 2 | 3 | import lombok.Data; 4 | import org.dromara.hmily.config.api.AbstractConfig; 5 | import org.dromara.hmily.config.api.constant.PrefixConstants; 6 | import org.dromara.hmily.spi.HmilySPI; 7 | 8 | /** 9 | * The etcd config. 10 | * 11 | * @author dongzl 12 | */ 13 | @Data 14 | @HmilySPI("hmilyEtcdConfig") 15 | public class HmilyEtcdConfig extends AbstractConfig { 16 | 17 | private String host; 18 | 19 | private String rootPath = "/hmily"; 20 | 21 | @Override 22 | public String prefix() { 23 | return PrefixConstants.ETCD_PREFIX; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /hmily-config/hmily-config-api/src/main/java/org/dromara/hmily/config/api/event/AddData.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-2021 Dromara.org 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.dromara.hmily.config.api.event; 18 | 19 | /** 20 | * AddData. 21 | * Different processing of add data. 22 | * 23 | * @author sixh chenbin 24 | */ 25 | public class AddData extends EventData { 26 | 27 | /** 28 | * Instantiates a new Add data. 29 | * 30 | * @param properties the properties 31 | * @param value the value 32 | */ 33 | public AddData(final String properties, final Object value) { 34 | super(ChangeEvent.ADD, properties, value); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /hmily-config/hmily-config-api/src/main/java/org/dromara/hmily/config/api/event/ChangeEvent.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-2021 Dromara.org 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.dromara.hmily.config.api.event; 18 | 19 | /** 20 | * ChangeEvent . 21 | * Notify event changes. When the configuration file changes, the processed event will be notified. 22 | * 23 | * @author sixh chenbin 24 | */ 25 | public enum ChangeEvent { 26 | 27 | /** 28 | * Add change event. 29 | */ 30 | ADD, 31 | 32 | /** 33 | * Update change event. 34 | */ 35 | MODIFY, 36 | 37 | /** 38 | * Remove change event. 39 | */ 40 | REMOVE() 41 | } 42 | -------------------------------------------------------------------------------- /hmily-config/hmily-config-api/src/main/java/org/dromara/hmily/config/api/event/EventConsumer.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-2021 Dromara.org 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.dromara.hmily.config.api.event; 18 | 19 | /** 20 | * ModifyEventConsumer. 21 | * modify config event push . 22 | * 23 | * @param the type parameter 24 | * @author sixh chenbin 25 | */ 26 | public interface EventConsumer { 27 | 28 | /** 29 | * Accept. 30 | * 31 | * @param t the t 32 | */ 33 | void accept(T t); 34 | 35 | /** 36 | * listener properties Regular expression. 37 | * 38 | * @return the string 39 | */ 40 | String regex(); 41 | } 42 | -------------------------------------------------------------------------------- /hmily-config/hmily-config-api/src/main/java/org/dromara/hmily/config/api/event/ModifyData.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-2021 Dromara.org 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.dromara.hmily.config.api.event; 18 | 19 | /** 20 | * ModifyData . 21 | * Different processing of modified data. 22 | * 23 | * @author sixh chenbin 24 | */ 25 | public class ModifyData extends EventData { 26 | 27 | /** 28 | * Instantiates a new Modify data. 29 | * 30 | * @param properties the properties 31 | * @param value the value 32 | */ 33 | public ModifyData(final String properties, final Object value) { 34 | super(ChangeEvent.MODIFY, properties, value); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /hmily-config/hmily-config-api/src/main/java/org/dromara/hmily/config/api/event/RemoveData.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-2021 Dromara.org 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.dromara.hmily.config.api.event; 18 | 19 | /** 20 | * RemoveData . 21 | * Different handling of deleted data. 22 | * 23 | * @author sixh chenbin 24 | */ 25 | public class RemoveData extends EventData { 26 | 27 | /** 28 | * Instantiates a new Remove data. 29 | * 30 | * @param properties the properties 31 | * @param value the value 32 | */ 33 | public RemoveData(final String properties, final Object value) { 34 | super(ChangeEvent.REMOVE, properties, value); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /hmily-config/hmily-config-api/src/main/resources/META-INF/hmily/org.dromara.hmily.config.api.Config: -------------------------------------------------------------------------------- 1 | org.dromara.hmily.config.api.entity.HmilyServer 2 | org.dromara.hmily.config.api.entity.HmilyConfig 3 | org.dromara.hmily.config.api.entity.HmilyDatabaseConfig 4 | org.dromara.hmily.config.api.entity.HmilyFileConfig 5 | org.dromara.hmily.config.api.entity.HmilyMetricsConfig 6 | org.dromara.hmily.config.api.entity.HmilyMongoConfig 7 | org.dromara.hmily.config.api.entity.HmilyRedisConfig 8 | org.dromara.hmily.config.api.entity.HmilyZookeeperConfig 9 | org.dromara.hmily.config.api.entity.HmilyEtcdConfig 10 | 11 | -------------------------------------------------------------------------------- /hmily-config/hmily-config-apollo/src/main/java/org/dromara/hmily/config/apollo/ApolloConfig.java: -------------------------------------------------------------------------------- 1 | package org.dromara.hmily.config.apollo; 2 | 3 | import lombok.Data; 4 | import org.dromara.hmily.config.api.AbstractConfig; 5 | import org.dromara.hmily.config.api.constant.PrefixConstants; 6 | import org.dromara.hmily.spi.HmilySPI; 7 | 8 | /** 9 | * ApolloConfig. 10 | * 11 | * @author lilang 12 | **/ 13 | @Data 14 | @HmilySPI("remoteApollo") 15 | public class ApolloConfig extends AbstractConfig { 16 | 17 | private String appId; 18 | 19 | private String namespace; 20 | 21 | private String configService; 22 | 23 | private String fileExtension; 24 | 25 | private String secret; 26 | 27 | private String meta; 28 | 29 | private String env; 30 | 31 | @Override 32 | public String prefix() { 33 | return PrefixConstants.REMOTE_APOLLO; 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /hmily-config/hmily-config-apollo/src/main/resources/META-INF/hmily/org.dromara.hmily.config.api.Config: -------------------------------------------------------------------------------- 1 | org.dromara.hmily.config.apollo.ApolloConfig -------------------------------------------------------------------------------- /hmily-config/hmily-config-apollo/src/main/resources/META-INF/hmily/org.dromara.hmily.config.loader.ConfigLoader: -------------------------------------------------------------------------------- 1 | org.dromara.hmily.config.apollo.ApolloConfigLoader -------------------------------------------------------------------------------- /hmily-config/hmily-config-apollo/src/test/resources/hmily.yml: -------------------------------------------------------------------------------- 1 | hmily: 2 | server: 3 | configMode: apollo 4 | appName: xiaoyu 5 | # 如果server.configMode eq local 的时候才会读取到这里的配置信息. 6 | 7 | remote: 8 | apollo: 9 | appId: byin-in 10 | configService: http://192.168.3.22:8080 11 | namespace: byin_hmily 12 | secret: 13 | fileExtension: yml 14 | passive: true 15 | env: dev 16 | meta: http://192.168.3.22:8080 -------------------------------------------------------------------------------- /hmily-config/hmily-config-apollo/src/test/resources/log4j.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dromara/hmily/52dc6ba3a44f9ade8d49bcc6ad49485ef9879c49/hmily-config/hmily-config-apollo/src/test/resources/log4j.properties -------------------------------------------------------------------------------- /hmily-config/hmily-config-consul/src/main/java/org/dromara/hmily/config/consul/ConsulConfig.java: -------------------------------------------------------------------------------- 1 | package org.dromara.hmily.config.consul; 2 | 3 | import lombok.Data; 4 | import org.dromara.hmily.config.api.AbstractConfig; 5 | import org.dromara.hmily.config.api.constant.PrefixConstants; 6 | import org.dromara.hmily.spi.HmilySPI; 7 | 8 | /** 9 | * consul config. 10 | * @author lilang 11 | **/ 12 | @Data 13 | @HmilySPI("remoteConsul") 14 | public class ConsulConfig extends AbstractConfig { 15 | 16 | private String hostAndPort; 17 | 18 | private String hostAndPorts; 19 | 20 | private String key; 21 | 22 | private long blacklistTimeInMillis = 3000; 23 | 24 | private String fileExtension; 25 | 26 | private boolean update; 27 | 28 | private String updateFileName; 29 | 30 | @Override 31 | public String prefix() { 32 | return PrefixConstants.REMOTE_CONSUL; 33 | } 34 | 35 | } 36 | -------------------------------------------------------------------------------- /hmily-config/hmily-config-consul/src/main/java/org/dromara/hmily/config/consul/ConsulPassiveConfig.java: -------------------------------------------------------------------------------- 1 | package org.dromara.hmily.config.consul; 2 | 3 | import lombok.Data; 4 | import org.dromara.hmily.config.api.AbstractConfig; 5 | 6 | /** 7 | * consul passive config. 8 | * @author lilang 9 | **/ 10 | @Data 11 | public class ConsulPassiveConfig extends AbstractConfig { 12 | 13 | private String value; 14 | 15 | private String key; 16 | 17 | private String fileExtension; 18 | 19 | @Override 20 | public String prefix() { 21 | return ""; 22 | } 23 | 24 | /** 25 | * File name string. 26 | * 27 | * @return the string 28 | */ 29 | public String fileName() { 30 | return key + "." + fileExtension; 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /hmily-config/hmily-config-consul/src/main/resources/META-INF/hmily/org.dromara.hmily.config.api.Config: -------------------------------------------------------------------------------- 1 | org.dromara.hmily.config.consul.ConsulConfig 2 | 3 | 4 | -------------------------------------------------------------------------------- /hmily-config/hmily-config-consul/src/main/resources/META-INF/hmily/org.dromara.hmily.config.loader.ConfigLoader: -------------------------------------------------------------------------------- 1 | org.dromara.hmily.config.consul.ConsulConfigLoader -------------------------------------------------------------------------------- /hmily-config/hmily-config-consul/src/test/resources/hmily.yml: -------------------------------------------------------------------------------- 1 | hmily: 2 | server: 3 | configMode: consul 4 | appName: xiaoyu 5 | # 如果server.configMode eq local 的时候才会读取到这里的配置信息. 6 | 7 | remote: 8 | consul: 9 | hostAndPort: 127.0.0.1:8500 10 | key: test 11 | blacklistTimeInMillis: 6000 12 | fileExtension: yml 13 | passive: true 14 | -------------------------------------------------------------------------------- /hmily-config/hmily-config-etcd/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | hmily-config 7 | org.dromara 8 | 2.1.3-SNAPSHOT 9 | 10 | 4.0.0 11 | 12 | hmily-config-etcd 13 | 14 | 15 | 16 | org.dromara 17 | hmily-config-loader 18 | ${project.version} 19 | 20 | 21 | com.coreos 22 | jetcd-core 23 | 0.0.2 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /hmily-config/hmily-config-etcd/src/main/java/org/dromara/hmily/config/etcd/EtcdConfig.java: -------------------------------------------------------------------------------- 1 | package org.dromara.hmily.config.etcd; 2 | 3 | import lombok.Data; 4 | import org.dromara.hmily.config.api.AbstractConfig; 5 | import org.dromara.hmily.config.api.constant.PrefixConstants; 6 | import org.dromara.hmily.spi.HmilySPI; 7 | 8 | /** 9 | * etcd config. 10 | * 11 | * @author lilang 12 | **/ 13 | @Data 14 | @HmilySPI("remoteEtcd") 15 | public class EtcdConfig extends AbstractConfig { 16 | 17 | private String server; 18 | 19 | private String key; 20 | 21 | private long timeoutMs; 22 | 23 | private String fileExtension; 24 | 25 | private boolean update; 26 | 27 | private String updateFileName; 28 | 29 | @Override 30 | public String prefix() { 31 | return PrefixConstants.REMOTE_ETCD; 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /hmily-config/hmily-config-etcd/src/main/java/org/dromara/hmily/config/etcd/EtcdPassiveConfig.java: -------------------------------------------------------------------------------- 1 | package org.dromara.hmily.config.etcd; 2 | 3 | import lombok.Data; 4 | import org.dromara.hmily.config.api.AbstractConfig; 5 | 6 | /** 7 | * etcd passive config. 8 | * @author lilang 9 | **/ 10 | @Data 11 | public class EtcdPassiveConfig extends AbstractConfig { 12 | 13 | private String value; 14 | 15 | private String key; 16 | 17 | private String fileExtension; 18 | 19 | @Override 20 | public String prefix() { 21 | return ""; 22 | } 23 | 24 | /** 25 | * File name string. 26 | * 27 | * @return the string 28 | */ 29 | public String fileName() { 30 | return key + "." + fileExtension; 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /hmily-config/hmily-config-etcd/src/main/resources/META-INF/hmily/org.dromara.hmily.config.api.Config: -------------------------------------------------------------------------------- 1 | org.dromara.hmily.config.etcd.EtcdConfig 2 | 3 | 4 | -------------------------------------------------------------------------------- /hmily-config/hmily-config-etcd/src/main/resources/META-INF/hmily/org.dromara.hmily.config.loader.ConfigLoader: -------------------------------------------------------------------------------- 1 | org.dromara.hmily.config.etcd.EtcdConfigLoader -------------------------------------------------------------------------------- /hmily-config/hmily-config-etcd/src/test/resources/hmily.yml: -------------------------------------------------------------------------------- 1 | hmily: 2 | server: 3 | configMode: etcd 4 | appName: xiaoyu 5 | # 如果server.configMode eq local 的时候才会读取到这里的配置信息. 6 | 7 | remote: 8 | etcd: 9 | server: http://127.0.0.1:2379 10 | key: test 11 | timeoutMs: 6000 12 | fileExtension: yml 13 | passive: true 14 | -------------------------------------------------------------------------------- /hmily-config/hmily-config-local/src/main/resources/META-INF/hmily/org.dromara.hmily.config.loader.ConfigLoader: -------------------------------------------------------------------------------- 1 | org.dromara.hmily.config.local.LocalConfigLoader -------------------------------------------------------------------------------- /hmily-config/hmily-config-nacos/src/main/resources/META-INF/hmily/org.dromara.hmily.config.api.Config: -------------------------------------------------------------------------------- 1 | org.dromara.hmily.config.nacos.NacosConfig 2 | 3 | 4 | -------------------------------------------------------------------------------- /hmily-config/hmily-config-nacos/src/main/resources/META-INF/hmily/org.dromara.hmily.config.loader.ConfigLoader: -------------------------------------------------------------------------------- 1 | org.dromara.hmily.config.nacos.NacosConfigLoader -------------------------------------------------------------------------------- /hmily-config/hmily-config-nacos/src/test/resources/hmily.yml: -------------------------------------------------------------------------------- 1 | hmily: 2 | server: 3 | configMode: nacos 4 | appName: xiaoyu 5 | # 如果server.configMode eq local 的时候才会读取到这里的配置信息. 6 | 7 | remote: 8 | nacos: 9 | server: 192.168.3.22:8848 10 | dataId: common-mongo.properties 11 | group: DEFAULT_GROUP 12 | timeoutMs: 6000 13 | fileExtension: yml 14 | passive: true 15 | 16 | -------------------------------------------------------------------------------- /hmily-config/hmily-config-zookeeper/src/main/resources/META-INF/hmily/org.dromara.hmily.config.api.Config: -------------------------------------------------------------------------------- 1 | org.dromara.hmily.config.zookeeper.ZookeeperConfig 2 | 3 | 4 | -------------------------------------------------------------------------------- /hmily-config/hmily-config-zookeeper/src/main/resources/META-INF/hmily/org.dromara.hmily.config.loader.ConfigLoader: -------------------------------------------------------------------------------- 1 | org.dromara.hmily.config.zookeeper.ZookeeperConfigLoader -------------------------------------------------------------------------------- /hmily-config/hmily-config-zookeeper/src/test/resources/hmily.yml: -------------------------------------------------------------------------------- 1 | hmily: 2 | server: 3 | configMode: zookeeper 4 | appName: xiaoyu 5 | # 如果server.configMode eq local 的时候才会读取到这里的配置信息. 6 | 7 | remote: 8 | zookeeper: 9 | serverList: 127.0.0.1:2181 10 | fileExtension: yml 11 | path: /hmily/config 12 | passive: true 13 | 14 | -------------------------------------------------------------------------------- /hmily-core/src/main/java/org/dromara/hmily/core/disruptor/DisruptorEventFactory.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-2021 Dromara.org 3 | 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.dromara.hmily.core.disruptor; 18 | 19 | import com.lmax.disruptor.EventFactory; 20 | import org.dromara.hmily.core.disruptor.event.DataEvent; 21 | 22 | /** 23 | * DisruptorEventFactory. 24 | * disruptor Create a factory implementation of the object. 25 | * @author chenbin sixh 26 | */ 27 | public class DisruptorEventFactory implements EventFactory> { 28 | 29 | @Override 30 | public DataEvent newInstance() { 31 | return new DataEvent<>(); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /hmily-core/src/main/java/org/dromara/hmily/core/disruptor/ExecutorSubscriber.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-2021 Dromara.org 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.dromara.hmily.core.disruptor; 18 | 19 | import java.util.Collection; 20 | 21 | /** 22 | * The interface Executor subscriber. 23 | * 24 | * @param the type parameter 25 | * @author chenbin sixh 26 | */ 27 | public interface ExecutorSubscriber { 28 | 29 | /** 30 | * Executor. 31 | * 32 | * @param collections the collections 33 | */ 34 | void executor(Collection collections); 35 | } 36 | -------------------------------------------------------------------------------- /hmily-core/src/main/java/org/dromara/hmily/core/disruptor/event/DataEvent.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-2021 Dromara.org 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.dromara.hmily.core.disruptor.event; 18 | 19 | import lombok.Data; 20 | 21 | /** 22 | * DataEvent. 23 | * disruptor data carrier . 24 | * 25 | * @author chenbin sixh 26 | */ 27 | @Data 28 | public class DataEvent { 29 | 30 | private T t; 31 | } 32 | -------------------------------------------------------------------------------- /hmily-core/src/main/java/org/dromara/hmily/core/disruptor/handler/HmilyTransactionEventConsumer.java: -------------------------------------------------------------------------------- 1 | package org.dromara.hmily.core.disruptor.handler; 2 | 3 | import org.dromara.hmily.core.disruptor.HmilyDisruptorConsumer; 4 | import org.dromara.hmily.core.service.HmilyTransactionTask; 5 | 6 | /** 7 | * Hmily transaction event consumer. 8 | * . 9 | * About the processing of a rotation function. 10 | * 11 | * @author chenbin sixh 12 | */ 13 | public class HmilyTransactionEventConsumer implements HmilyDisruptorConsumer { 14 | 15 | @Override 16 | public String fixName() { 17 | return "HmilyTransactionEventConsumer"; 18 | } 19 | 20 | @Override 21 | public void execute(final HmilyTransactionTask task) { 22 | task.run(); 23 | } 24 | } 25 | 26 | -------------------------------------------------------------------------------- /hmily-core/src/main/java/org/dromara/hmily/core/field/AnnotationField.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-2021 Dromara.org 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.dromara.hmily.core.field; 18 | 19 | import java.lang.reflect.Field; 20 | 21 | /** 22 | * The interface Annotation field. 23 | * 24 | * @author xiaoyu 25 | */ 26 | public interface AnnotationField { 27 | 28 | /** 29 | * Check boolean. 30 | * 31 | * @param field the field 32 | * @return the annotation 33 | */ 34 | boolean check(Field field); 35 | } 36 | 37 | 38 | -------------------------------------------------------------------------------- /hmily-core/src/main/java/org/dromara/hmily/core/field/DefaultAnnotationField.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-2021 Dromara.org 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.dromara.hmily.core.field; 18 | 19 | import java.lang.reflect.Field; 20 | 21 | /** 22 | * The type Default annotation field. 23 | * 24 | * @author xiaoyu 25 | */ 26 | public class DefaultAnnotationField implements AnnotationField { 27 | 28 | @Override 29 | public boolean check(final Field field) { 30 | return false; 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /hmily-core/src/main/java/org/dromara/hmily/core/interceptor/HmilyTransactionInterceptor.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-2021 Dromara.org 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.dromara.hmily.core.interceptor; 18 | 19 | import org.aspectj.lang.ProceedingJoinPoint; 20 | 21 | /** 22 | * The HmilyTransactionInterceptor. 23 | * 24 | * @author xiaoyu 25 | */ 26 | @FunctionalInterface 27 | public interface HmilyTransactionInterceptor { 28 | 29 | /** 30 | * Invoke hmily interceptor. 31 | * 32 | * @param pjp tcc point cut. 33 | * @return Object object 34 | * @throws Throwable Throwable 35 | */ 36 | Object invoke(ProceedingJoinPoint pjp) throws Throwable; 37 | } 38 | -------------------------------------------------------------------------------- /hmily-core/src/main/java/org/dromara/hmily/core/mediator/LocalParameterLoader.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-2021 Dromara.org 3 | 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.dromara.hmily.core.mediator; 18 | 19 | import org.dromara.hmily.core.context.HmilyContextHolder; 20 | import org.dromara.hmily.core.context.HmilyTransactionContext; 21 | 22 | /** 23 | * The type Local parameter loader. 24 | * 25 | * @author xiaoyu 26 | */ 27 | public class LocalParameterLoader implements RpcParameterLoader { 28 | 29 | @Override 30 | public HmilyTransactionContext load() { 31 | return HmilyContextHolder.get(); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /hmily-core/src/main/java/org/dromara/hmily/core/mediator/RpcAcquire.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-2021 Dromara.org 3 | 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.dromara.hmily.core.mediator; 18 | 19 | /** 20 | * The interface Rpc acquire. 21 | * 22 | * @author xiaoyu(Myth) 23 | */ 24 | public interface RpcAcquire { 25 | 26 | /** 27 | * Acquire string. 28 | * 29 | * @param key the key 30 | * @return the string 31 | */ 32 | String acquire(String key); 33 | } 34 | -------------------------------------------------------------------------------- /hmily-core/src/main/java/org/dromara/hmily/core/mediator/RpcParameterLoader.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-2021 Dromara.org 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.dromara.hmily.core.mediator; 18 | 19 | import org.dromara.hmily.core.context.HmilyTransactionContext; 20 | 21 | /** 22 | * The interface Rpc parameter loader. 23 | */ 24 | public interface RpcParameterLoader { 25 | 26 | /** 27 | * Load hmily transaction context. 28 | * 29 | * @return the hmily transaction context 30 | */ 31 | HmilyTransactionContext load(); 32 | } 33 | -------------------------------------------------------------------------------- /hmily-core/src/main/java/org/dromara/hmily/core/mediator/RpcTransmit.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-2021 Dromara.org 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.dromara.hmily.core.mediator; 18 | 19 | /** 20 | * The interface Rpc mediator. 21 | * 22 | * @author xiaoyu(Myth) 23 | */ 24 | public interface RpcTransmit { 25 | 26 | /** 27 | * Transmit. 28 | * 29 | * @param key the key 30 | * @param value the value 31 | */ 32 | void transmit(String key, String value); 33 | } 34 | -------------------------------------------------------------------------------- /hmily-core/src/main/java/org/dromara/hmily/core/provide/ObjectProvide.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-2021 Dromara.org 3 | 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.dromara.hmily.core.provide; 18 | 19 | /** 20 | * The interface Object provide. 21 | */ 22 | public interface ObjectProvide { 23 | 24 | /** 25 | * Provide object. 26 | * 27 | * @param clazz the clazz 28 | * @return the object 29 | */ 30 | Object provide(Class clazz); 31 | } 32 | -------------------------------------------------------------------------------- /hmily-core/src/main/java/org/dromara/hmily/core/provide/ReflectObject.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-2021 Dromara.org 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.dromara.hmily.core.provide; 18 | 19 | import lombok.SneakyThrows; 20 | 21 | /** 22 | * The type Reflect object. 23 | * 24 | * @author xiaoyu 25 | */ 26 | public class ReflectObject implements ObjectProvide { 27 | 28 | @Override 29 | @SneakyThrows 30 | public Object provide(final Class clazz) { 31 | return clazz.newInstance(); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /hmily-core/src/main/java/org/dromara/hmily/core/service/HmilyTransactionHandlerRegistry.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-2021 Dromara.org 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.dromara.hmily.core.service; 18 | 19 | import org.dromara.hmily.core.context.HmilyTransactionContext; 20 | 21 | /** 22 | * The interface Hmily transaction handler registry. 23 | */ 24 | public interface HmilyTransactionHandlerRegistry { 25 | 26 | /** 27 | * Get hmily transaction handler. 28 | * 29 | * @param context the context 30 | * @return the hmily transaction handler 31 | */ 32 | HmilyTransactionHandler select(HmilyTransactionContext context); 33 | } 34 | -------------------------------------------------------------------------------- /hmily-core/src/main/java/org/dromara/hmily/core/service/HmilyTransactionTask.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-2021 Dromara.org 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.dromara.hmily.core.service; 18 | 19 | /** 20 | * Hmily transaction task. 21 | * 22 | * @author chenbin sixh 23 | */ 24 | @FunctionalInterface 25 | public interface HmilyTransactionTask { 26 | 27 | /** 28 | * Run. 29 | */ 30 | void run(); 31 | } 32 | -------------------------------------------------------------------------------- /hmily-core/src/main/resources/META-INF/hmily/org.dromara.hmily.core.context.HmilyContext: -------------------------------------------------------------------------------- 1 | org.dromara.hmily.core.context.ThreadLocalHmilyContext 2 | org.dromara.hmily.core.context.TransmittableThreadLocalHmilyContext 3 | -------------------------------------------------------------------------------- /hmily-demo/hmily-demo-common/src/main/java/org/dromara/hmily/demo/common/account/api/InlineService.java: -------------------------------------------------------------------------------- 1 | package org.dromara.hmily.demo.common.account.api; 2 | 3 | /** 4 | * @author xiaoyu(Myth) 5 | */ 6 | public interface InlineService { 7 | 8 | /** 9 | * 测试内嵌的时候处理. 10 | */ 11 | boolean testInline(); 12 | } 13 | -------------------------------------------------------------------------------- /hmily-demo/hmily-demo-common/src/main/java/org/dromara/hmily/demo/common/inventory/dto/InventoryDTO.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-2021 Dromara.org 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.dromara.hmily.demo.common.inventory.dto; 18 | 19 | import lombok.Data; 20 | 21 | import java.io.Serializable; 22 | 23 | /** 24 | * The type Inventory dto. 25 | * 26 | * @author xiaoyu 27 | */ 28 | @Data 29 | public class InventoryDTO implements Serializable { 30 | 31 | private static final long serialVersionUID = 8229355519336565493L; 32 | 33 | /** 34 | * 商品id. 35 | */ 36 | private String productId; 37 | 38 | /** 39 | * 数量. 40 | */ 41 | private Integer count; 42 | } 43 | -------------------------------------------------------------------------------- /hmily-demo/hmily-demo-common/src/main/resources/mybatis/mybatis-config.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /hmily-demo/hmily-demo-tac/hmily-demo-tac-dubbo/hmily-demo-tac-dubbo-account/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8084 3 | servlet: 4 | context-path: / 5 | address: 0.0.0.0 6 | spring: 7 | datasource: 8 | driver-class-name: com.mysql.jdbc.Driver 9 | url: jdbc:mysql://127.0.0.1:3306/hmily_account?useUnicode=true&characterEncoding=utf8 10 | username: root 11 | password: 12 | 13 | mybatis: 14 | type-aliases-package: org.dromara.hmily.demo.common.account.entity 15 | config-location: classpath:mybatis/mybatis-config.xml 16 | 17 | logging: 18 | level: 19 | root: error 20 | org.springframework.web: info 21 | org.apache.ibatis: debug 22 | org.dromara.hmily.tac: debug 23 | org.dromara.hmily.demo.bonuspoint: debug 24 | org.dromara.hmily.demo.lottery: debug 25 | org.dromara.hmily.demo: debug 26 | path: "./logs" 27 | 28 | -------------------------------------------------------------------------------- /hmily-demo/hmily-demo-tac/hmily-demo-tac-dubbo/hmily-demo-tac-dubbo-inventory/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8084 3 | address: 0.0.0.0 4 | servlet: 5 | context-path: / 6 | 7 | spring: 8 | datasource: 9 | driver-class-name: com.mysql.jdbc.Driver 10 | url: jdbc:mysql://127.0.0.1:3306/hmily_stock?useUnicode=true&characterEncoding=utf8 11 | username: root 12 | password: 13 | 14 | 15 | mybatis: 16 | type-aliases-package: org.dromara.hmily.demo.common.inventory.entity 17 | config-location: classpath:mybatis/mybatis-config.xml 18 | 19 | logging: 20 | level: 21 | root: error 22 | org.springframework.web: info 23 | org.apache.ibatis: debug 24 | org.dromara.hmily.tac: debug 25 | org.dromara.hmily.demo.bonuspoint: debug 26 | org.dromara.hmily.demo.lottery: debug 27 | org.dromara.hmily.demo: debug 28 | path: "./logs" 29 | 30 | -------------------------------------------------------------------------------- /hmily-demo/hmily-demo-tac/hmily-demo-tac-dubbo/hmily-demo-tac-dubbo-order/src/main/java/org/dromara/hmily/demo/tac/dubbo/order/enums/ReadCommittedTransactionEnum.java: -------------------------------------------------------------------------------- 1 | package org.dromara.hmily.demo.tac.dubbo.order.enums; 2 | 3 | import lombok.Getter; 4 | import lombok.RequiredArgsConstructor; 5 | 6 | /** 7 | * The enum transaction enum. 8 | * 9 | * @author zhangzhi 10 | */ 11 | @RequiredArgsConstructor 12 | @Getter 13 | public enum ReadCommittedTransactionEnum { 14 | 15 | TRANSACTION_READ_WRITE(1, "读已提交隔离级别的事务, 包括更新、查询操作"), 16 | 17 | TRANSACTION_READ_ONLY(2, "读已提交隔离级别的事务, 只有查询操作"); 18 | 19 | private final int code; 20 | 21 | private final String desc; 22 | } 23 | -------------------------------------------------------------------------------- /hmily-demo/hmily-demo-tac/hmily-demo-tac-dubbo/hmily-demo-tac-dubbo-order/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8087 3 | address: 0.0.0.0 4 | servlet: 5 | context-path: / 6 | 7 | spring: 8 | datasource: 9 | driver-class-name: com.mysql.jdbc.Driver 10 | url: jdbc:mysql://127.0.0.1:3306/hmily_order?useUnicode=true&characterEncoding=utf8&useSSL=false 11 | username: root 12 | password: 13 | 14 | mybatis: 15 | type-aliases-package: org.dromara.hmily.demo.common.order.entity 16 | config-location: classpath:mybatis/mybatis-config.xml 17 | 18 | logging: 19 | level: 20 | root: error 21 | org.springframework.web: info 22 | org.apache.ibatis: debug 23 | org.dromara.hmily.tac: debug 24 | org.dromara.hmily.demo.bonuspoint: debug 25 | org.dromara.hmily.demo.lottery: debug 26 | org.dromara.hmily.demo: debug 27 | io.netty: info 28 | path: "./logs" 29 | 30 | -------------------------------------------------------------------------------- /hmily-demo/hmily-demo-tac/hmily-demo-tac-springcloud/hmily-demo-tac-springcloud-eureka/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8761 3 | 4 | spring: 5 | application: 6 | name: springcloud-eureka 7 | 8 | eureka: 9 | instance: 10 | hostname: ${hostname:localhost} 11 | preferIpAddress: true 12 | lease-renewal-interval-in-seconds: 2 13 | lease-expiration-duration-in-seconds: 6 14 | server: 15 | peerEurekaNodesUpdateIntervalMs: 60000 16 | enableSelfPreservation: false 17 | evictionIntervalTimerInMs: 5000 18 | client: 19 | registerWithEureka: false 20 | fetchRegistry: false 21 | serviceUrl: 22 | defaultZone: http://localhost:8761/eureka/ 23 | healthcheck: 24 | enabled: true 25 | eurekaServiceUrlPollIntervalSeconds: 60 26 | 27 | endpoints: 28 | health: 29 | sensitive: false 30 | 31 | 32 | 33 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /hmily-demo/hmily-demo-tac/hmily-demo-tac-springcloud/hmily-demo-tac-springcloud-order/src/main/java/org/dromara/hmily/demo/springcloud/order/enums/ReadCommittedTransactionEnum.java: -------------------------------------------------------------------------------- 1 | package org.dromara.hmily.demo.springcloud.order.enums; 2 | 3 | import lombok.Getter; 4 | import lombok.RequiredArgsConstructor; 5 | 6 | /** 7 | * The enum transaction enum. 8 | * 9 | * @author zhangzhi 10 | */ 11 | @RequiredArgsConstructor 12 | @Getter 13 | public enum ReadCommittedTransactionEnum { 14 | 15 | TRANSACTION_READ_WRITE(1, "读已提交隔离级别的事务, 包括更新、查询操作"), 16 | 17 | TRANSACTION_READ_ONLY(2, "读已提交隔离级别的事务, 只有查询操作"); 18 | 19 | private final int code; 20 | 21 | private final String desc; 22 | } 23 | -------------------------------------------------------------------------------- /hmily-demo/hmily-demo-tcc/hmily-demo-tcc-brpc/hmily-demo-tcc-brpc-account/src/main/java/org/dromara/hmily/demo/brpc/account/service/InlineServiceImpl.java: -------------------------------------------------------------------------------- 1 | package org.dromara.hmily.demo.brpc.account.service; 2 | 3 | import com.baidu.brpc.spring.annotation.RpcExporter; 4 | import org.dromara.hmily.annotation.HmilyTCC; 5 | import org.dromara.hmily.demo.common.account.api.InlineService; 6 | import org.slf4j.Logger; 7 | import org.slf4j.LoggerFactory; 8 | 9 | /** 10 | * InlineServiceImpl. 11 | * 12 | * @author liu·yu 13 | */ 14 | @RpcExporter 15 | public class InlineServiceImpl implements InlineService { 16 | 17 | 18 | private static final Logger LOGGER = LoggerFactory.getLogger(InlineServiceImpl.class); 19 | 20 | @Override 21 | @HmilyTCC(confirmMethod = "inLineConfirm", cancelMethod = "inLineCancel") 22 | public boolean testInline() { 23 | LOGGER.info("===========执行inline try 方法=============="); 24 | return true; 25 | } 26 | 27 | public void inLineConfirm() { 28 | LOGGER.info("===========执行inlineConfirm 方法=============="); 29 | } 30 | 31 | 32 | public void inLineCancel() { 33 | LOGGER.info("===========执行inLineCancel 方法=============="); 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /hmily-demo/hmily-demo-tcc/hmily-demo-tcc-brpc/hmily-demo-tcc-brpc-order/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8077 3 | address: 0.0.0.0 4 | servlet: 5 | context-path: / 6 | 7 | spring: 8 | datasource: 9 | driver-class-name: com.mysql.jdbc.Driver 10 | url: jdbc:mysql://127.0.0.1:3306/hmily_order?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai 11 | username: root 12 | password: 13 | 14 | mybatis: 15 | type-aliases-package: org.dromara.hmily.demo.common.order.entity 16 | config-location: classpath:mybatis/mybatis-config.xml 17 | 18 | brpc: 19 | global: 20 | naming: 21 | namingServiceUrl: zookeeper://127.0.0.1:2181/examples 22 | group: "normal" 23 | version: 2.0.0 24 | ignoreFailOfNamingService: true 25 | client: 26 | workThreadNum: 1 27 | ioThreadNum: 1 28 | protocol-type: 30 29 | max-try-times: 1 30 | interceptor-bean-names: hmilyInterceptor 31 | 32 | logging: 33 | level: 34 | root: error 35 | org.springframework.web: info 36 | org.apache.ibatis: debug 37 | org.dromara.hmily.demo.bonuspoint: debug 38 | org.dromara.hmily.demo.lottery: debug 39 | org.dromara.hmily.demo: debug 40 | io.netty: info 41 | path: "./logs" 42 | -------------------------------------------------------------------------------- /hmily-demo/hmily-demo-tcc/hmily-demo-tcc-brpc/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | org.dromara 7 | hmily-demo-tcc 8 | 1.0.0-SNAPSHOT 9 | 10 | hmily-demo-tcc-brpc 11 | 4.0.0 12 | pom 13 | 14 | hmily-demo-tcc-brpc-account 15 | hmily-demo-tcc-brpc-inventory 16 | hmily-demo-tcc-brpc-order 17 | 18 | 19 | 20 | 3.0.2 21 | 22 | 23 | 24 | 25 | 26 | com.baidu 27 | brpc-java-naming-zookeeper 28 | ${brpc.version} 29 | 30 | 31 | 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /hmily-demo/hmily-demo-tcc/hmily-demo-tcc-dubbo/hmily-demo-tcc-dubbo-account/src/main/java/org/dromara/hmily/demo/dubbo/account/service/InlineServiceImpl.java: -------------------------------------------------------------------------------- 1 | package org.dromara.hmily.demo.dubbo.account.service; 2 | 3 | import org.dromara.hmily.annotation.HmilyTCC; 4 | import org.dromara.hmily.demo.common.account.api.InlineService; 5 | import org.slf4j.Logger; 6 | import org.slf4j.LoggerFactory; 7 | import org.springframework.stereotype.Service; 8 | 9 | /** 10 | * InlineServiceImpl. 11 | * 12 | * @author xiaoyu(Myth) 13 | */ 14 | @Service("inlineService") 15 | public class InlineServiceImpl implements InlineService { 16 | 17 | 18 | private static final Logger LOGGER = LoggerFactory.getLogger(InlineServiceImpl.class); 19 | 20 | @Override 21 | @HmilyTCC(confirmMethod = "inLineConfirm", cancelMethod = "inLineCancel") 22 | public boolean testInline() { 23 | LOGGER.info("===========执行inline try 方法=============="); 24 | return true; 25 | } 26 | 27 | public void inLineConfirm() { 28 | LOGGER.info("===========执行inlineConfirm 方法=============="); 29 | } 30 | 31 | 32 | public void inLineCancel() { 33 | LOGGER.info("===========执行inLineCancel 方法=============="); 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /hmily-demo/hmily-demo-tcc/hmily-demo-tcc-dubbo/hmily-demo-tcc-dubbo-account/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8084 3 | servlet: 4 | context-path: / 5 | address: 0.0.0.0 6 | spring: 7 | datasource: 8 | driver-class-name: com.mysql.jdbc.Driver 9 | url: jdbc:mysql://127.0.0.1:3306/hmily_account?useUnicode=true&characterEncoding=utf8 10 | username: root 11 | password: 12 | 13 | mybatis: 14 | type-aliases-package: org.dromara.hmily.demo.common.account.entity 15 | config-location: classpath:mybatis/mybatis-config.xml 16 | 17 | logging: 18 | level: 19 | root: error 20 | org.springframework.web: info 21 | org.apache.ibatis: debug 22 | org.dromara.hmily.tac: debug 23 | org.dromara.hmily.demo.bonuspoint: debug 24 | org.dromara.hmily.demo.lottery: debug 25 | org.dromara.hmily.demo: debug 26 | path: "./logs" 27 | 28 | -------------------------------------------------------------------------------- /hmily-demo/hmily-demo-tcc/hmily-demo-tcc-dubbo/hmily-demo-tcc-dubbo-inventory/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8084 3 | address: 0.0.0.0 4 | servlet: 5 | context-path: / 6 | 7 | spring: 8 | datasource: 9 | driver-class-name: com.mysql.jdbc.Driver 10 | url: jdbc:mysql://127.0.0.1:3306/hmily_stock?useUnicode=true&characterEncoding=utf8 11 | username: root 12 | password: 13 | 14 | 15 | mybatis: 16 | type-aliases-package: org.dromara.hmily.demo.common.inventory.entity 17 | config-location: classpath:mybatis/mybatis-config.xml 18 | 19 | logging: 20 | level: 21 | root: error 22 | org.springframework.web: info 23 | org.apache.ibatis: debug 24 | org.dromara.hmily.tac: debug 25 | org.dromara.hmily.demo.bonuspoint: debug 26 | org.dromara.hmily.demo.lottery: debug 27 | org.dromara.hmily.demo: debug 28 | path: "./logs" 29 | 30 | -------------------------------------------------------------------------------- /hmily-demo/hmily-demo-tcc/hmily-demo-tcc-dubbo/hmily-demo-tcc-dubbo-inventory/src/main/resources/applicationContext.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /hmily-demo/hmily-demo-tcc/hmily-demo-tcc-dubbo/hmily-demo-tcc-dubbo-inventory/src/main/resources/spring-dubbo.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 10 | 11 | 12 | 13 | 14 | 15 | 19 | 20 | 21 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /hmily-demo/hmily-demo-tcc/hmily-demo-tcc-dubbo/hmily-demo-tcc-dubbo-order/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8087 3 | address: 0.0.0.0 4 | servlet: 5 | context-path: / 6 | 7 | spring: 8 | datasource: 9 | driver-class-name: com.mysql.jdbc.Driver 10 | url: jdbc:mysql://127.0.0.1:3306/hmily_order?useUnicode=true&characterEncoding=utf8&useSSL=false 11 | username: root 12 | password: 13 | 14 | mybatis: 15 | type-aliases-package: org.dromara.hmily.demo.common.order.entity 16 | config-location: classpath:mybatis/mybatis-config.xml 17 | 18 | logging: 19 | level: 20 | root: error 21 | org.springframework.web: info 22 | org.apache.ibatis: debug 23 | org.dromara.hmily.tac: debug 24 | org.dromara.hmily.demo.bonuspoint: debug 25 | org.dromara.hmily.demo.lottery: debug 26 | org.dromara.hmily.demo: debug 27 | io.netty: info 28 | path: "./logs" 29 | 30 | -------------------------------------------------------------------------------- /hmily-demo/hmily-demo-tcc/hmily-demo-tcc-grpc/README.md: -------------------------------------------------------------------------------- 1 | # 环境准备 2 | - JDK 1.8+ 3 | - Maven 3.2.x 4 | - Git 5 | 6 | # 代码拉取 7 | ``` 8 | > git clone https://github.com/dromara/hmily.git 9 | 10 | > cd hmily 11 | 12 | > mvn -DskipTests clean install -U 13 | ``` 14 | 15 | # 执行demo 模块的sql语句。 16 | [sql语句] (https://github.com/dromara/hmily/blob/master/hmily-demo/sql/hmily-demo.sql) 17 | 18 | # 使用你的工具 idea 打开项目,找到hmily-demo-grpc项目。 19 | ## 修改项目配置(hmily-demo-grpc-account为列子) 20 | - application.yml 下修改业务数据库 21 | ``` 22 | spring: 23 | datasource: 24 | driver-class-name: com.mysql.jdbc.Driver 25 | url: jdbc:mysql://改成你的ip+端口/hmily_account?useUnicode=true&characterEncoding=utf8 26 | username: #改成你的用户名 27 | password: #改成你的密码 28 | ``` 29 | - 修改 hmily.yml,这里使用mysql来存储 30 | ``` 31 | repository: 32 | database: 33 | driverClassName: com.mysql.jdbc.Driver 34 | url : jdbc:mysql://改成你的ip+端口/hmily?useUnicode=true&characterEncoding=utf8 35 | username: root #改成你的用户名 36 | password: #改成你的密码 37 | ``` 38 | 39 | - run GrpcHmilyAccountApplication.java 40 | 41 | ## 启动hmily-demo-grpc-inventory 参考上述。 42 | 43 | ## 启动hmily-demo-grpc-order 参考上述。 44 | 45 | 访问:http://127.0.0.1:28087/swagger-ui.html。 46 | -------------------------------------------------------------------------------- /hmily-demo/hmily-demo-tcc/hmily-demo-tcc-grpc/hmily-demo-tcc-grpc-account/src/main/java/org/dromara/hmily/demo/grpc/account/AccountServiceBean.java: -------------------------------------------------------------------------------- 1 | package org.dromara.hmily.demo.grpc.account; 2 | 3 | import org.dromara.hmily.demo.common.account.dto.AccountDTO; 4 | 5 | /** 6 | * @author tydhot 7 | */ 8 | public interface AccountServiceBean { 9 | 10 | boolean payment(AccountDTO accountDTO); 11 | 12 | } 13 | -------------------------------------------------------------------------------- /hmily-demo/hmily-demo-tcc/hmily-demo-tcc-grpc/hmily-demo-tcc-grpc-account/src/main/java/org/dromara/hmily/demo/grpc/account/GrpcHmilyAccountApplication.java: -------------------------------------------------------------------------------- 1 | package org.dromara.hmily.demo.grpc.account; 2 | 3 | import org.mybatis.spring.annotation.MapperScan; 4 | import org.springframework.boot.SpringApplication; 5 | import org.springframework.boot.autoconfigure.SpringBootApplication; 6 | import org.springframework.transaction.annotation.EnableTransactionManagement; 7 | 8 | /** 9 | * @author tydhot 10 | **/ 11 | @SpringBootApplication 12 | @EnableTransactionManagement 13 | @MapperScan("org.dromara.hmily.demo.common.account.mapper") 14 | public class GrpcHmilyAccountApplication { 15 | 16 | public static void main(String[] args) { 17 | SpringApplication.run(GrpcHmilyAccountApplication.class, args); 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /hmily-demo/hmily-demo-tcc/hmily-demo-tcc-grpc/hmily-demo-tcc-grpc-account/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 28084 3 | servlet: 4 | context-path: / 5 | address: 0.0.0.0 6 | spring: 7 | datasource: 8 | driver-class-name: com.mysql.jdbc.Driver 9 | url: jdbc:mysql://127.0.0.1:3306/hmily_account?useUnicode=true&characterEncoding=utf8 10 | username: root 11 | password: 12 | 13 | grpc: 14 | port: 28074 15 | 16 | mybatis: 17 | type-aliases-package: org.dromara.hmily.demo.common.account.entity 18 | config-location: classpath:mybatis/mybatis-config.xml 19 | 20 | logging: 21 | level: 22 | root: error 23 | org.springframework.web: info 24 | org.apache.ibatis: debug 25 | org.dromara.hmily.demo.bonuspoint: debug 26 | org.dromara.hmily.demo.lottery: debug 27 | org.dromara.hmily.demo: debug 28 | path: "./logs" 29 | 30 | -------------------------------------------------------------------------------- /hmily-demo/hmily-demo-tcc/hmily-demo-tcc-grpc/hmily-demo-tcc-grpc-common/src/main/java/org/dromara/hmily/demo/grpc/account/service/AccountRequestOrBuilder.java: -------------------------------------------------------------------------------- 1 | // Generated by the protocol buffer compiler. DO NOT EDIT! 2 | // source: account_service.proto 3 | 4 | package org.dromara.hmily.demo.grpc.account.service; 5 | 6 | public interface AccountRequestOrBuilder extends 7 | // @@protoc_insertion_point(interface_extends:AccountRequest) 8 | com.google.protobuf.MessageOrBuilder { 9 | 10 | /** 11 | * optional string userId = 1; 12 | */ 13 | java.lang.String getUserId(); 14 | /** 15 | * optional string userId = 1; 16 | */ 17 | com.google.protobuf.ByteString 18 | getUserIdBytes(); 19 | 20 | /** 21 | * optional string amount = 2; 22 | */ 23 | java.lang.String getAmount(); 24 | /** 25 | * optional string amount = 2; 26 | */ 27 | com.google.protobuf.ByteString 28 | getAmountBytes(); 29 | } 30 | -------------------------------------------------------------------------------- /hmily-demo/hmily-demo-tcc/hmily-demo-tcc-grpc/hmily-demo-tcc-grpc-common/src/main/java/org/dromara/hmily/demo/grpc/account/service/AccountResponseOrBuilder.java: -------------------------------------------------------------------------------- 1 | // Generated by the protocol buffer compiler. DO NOT EDIT! 2 | // source: account_service.proto 3 | 4 | package org.dromara.hmily.demo.grpc.account.service; 5 | 6 | public interface AccountResponseOrBuilder extends 7 | // @@protoc_insertion_point(interface_extends:AccountResponse) 8 | com.google.protobuf.MessageOrBuilder { 9 | 10 | /** 11 | * optional bool result = 1; 12 | */ 13 | boolean getResult(); 14 | } 15 | -------------------------------------------------------------------------------- /hmily-demo/hmily-demo-tcc/hmily-demo-tcc-grpc/hmily-demo-tcc-grpc-common/src/main/java/org/dromara/hmily/demo/grpc/inventory/service/InventoryRequestOrBuilder.java: -------------------------------------------------------------------------------- 1 | // Generated by the protocol buffer compiler. DO NOT EDIT! 2 | // source: inventory_service.proto 3 | 4 | package org.dromara.hmily.demo.grpc.inventory.service; 5 | 6 | public interface InventoryRequestOrBuilder extends 7 | // @@protoc_insertion_point(interface_extends:InventoryRequest) 8 | com.google.protobuf.MessageOrBuilder { 9 | 10 | /** 11 | * optional string productId = 1; 12 | */ 13 | java.lang.String getProductId(); 14 | /** 15 | * optional string productId = 1; 16 | */ 17 | com.google.protobuf.ByteString 18 | getProductIdBytes(); 19 | 20 | /** 21 | * optional int32 count = 2; 22 | */ 23 | int getCount(); 24 | } 25 | -------------------------------------------------------------------------------- /hmily-demo/hmily-demo-tcc/hmily-demo-tcc-grpc/hmily-demo-tcc-grpc-common/src/main/java/org/dromara/hmily/demo/grpc/inventory/service/InventoryResponseOrBuilder.java: -------------------------------------------------------------------------------- 1 | // Generated by the protocol buffer compiler. DO NOT EDIT! 2 | // source: inventory_service.proto 3 | 4 | package org.dromara.hmily.demo.grpc.inventory.service; 5 | 6 | public interface InventoryResponseOrBuilder extends 7 | // @@protoc_insertion_point(interface_extends:InventoryResponse) 8 | com.google.protobuf.MessageOrBuilder { 9 | 10 | /** 11 | * optional bool result = 1; 12 | */ 13 | boolean getResult(); 14 | 15 | /** 16 | * optional string content = 2; 17 | */ 18 | java.lang.String getContent(); 19 | /** 20 | * optional string content = 2; 21 | */ 22 | com.google.protobuf.ByteString 23 | getContentBytes(); 24 | } 25 | -------------------------------------------------------------------------------- /hmily-demo/hmily-demo-tcc/hmily-demo-tcc-grpc/hmily-demo-tcc-grpc-common/src/main/proto/account_service.proto: -------------------------------------------------------------------------------- 1 | syntax = "proto3"; 2 | 3 | option java_multiple_files = true; 4 | option java_package = "org.dromara.hmily.demo.grpc.account.service"; 5 | option java_outer_classname = "AccountServiceProto"; 6 | option objc_class_prefix = "HLW"; 7 | 8 | service AccountService { 9 | 10 | rpc payment (AccountRequest) returns (AccountResponse); 11 | 12 | } 13 | 14 | message AccountRequest { 15 | 16 | string userId = 1; 17 | 18 | string amount = 2; 19 | } 20 | 21 | message AccountResponse { 22 | bool result = 1; 23 | } 24 | 25 | -------------------------------------------------------------------------------- /hmily-demo/hmily-demo-tcc/hmily-demo-tcc-grpc/hmily-demo-tcc-grpc-common/src/main/proto/inventory_service.proto: -------------------------------------------------------------------------------- 1 | syntax = "proto3"; 2 | 3 | option java_multiple_files = true; 4 | option java_package = "org.dromara.hmily.demo.grpc.inventory.service"; 5 | option java_outer_classname = "InventoryServiceProto"; 6 | option objc_class_prefix = "HLW"; 7 | 8 | service InventoryService { 9 | 10 | rpc decrease(InventoryRequest) returns (InventoryResponse); 11 | 12 | } 13 | 14 | message InventoryRequest { 15 | 16 | string productId = 1; 17 | 18 | int32 count = 2; 19 | } 20 | 21 | message InventoryResponse { 22 | 23 | bool result = 1; 24 | 25 | string content = 2; 26 | } -------------------------------------------------------------------------------- /hmily-demo/hmily-demo-tcc/hmily-demo-tcc-grpc/hmily-demo-tcc-grpc-inventory/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | hmily-demo-tcc-grpc 7 | org.dromara 8 | 1.0.0-SNAPSHOT 9 | 10 | 4.0.0 11 | 12 | hmily-demo-tcc-grpc-inventory 13 | 14 | 15 | 16 | org.dromara 17 | hmily-demo-tcc-grpc-common 18 | 1.0.0-SNAPSHOT 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /hmily-demo/hmily-demo-tcc/hmily-demo-tcc-grpc/hmily-demo-tcc-grpc-inventory/src/main/java/org/dromara/hmily/demo/grpc/inventory/GrpcHmilyInventoryApplication.java: -------------------------------------------------------------------------------- 1 | package org.dromara.hmily.demo.grpc.inventory; 2 | 3 | import org.mybatis.spring.annotation.MapperScan; 4 | import org.springframework.boot.SpringApplication; 5 | import org.springframework.boot.autoconfigure.SpringBootApplication; 6 | import org.springframework.transaction.annotation.EnableTransactionManagement; 7 | 8 | /** 9 | * @author tydhot 10 | */ 11 | @SpringBootApplication 12 | @EnableTransactionManagement 13 | @MapperScan("org.dromara.hmily.demo.common.inventory.mapper") 14 | public class GrpcHmilyInventoryApplication { 15 | 16 | public static void main(String[] args) { 17 | SpringApplication.run(GrpcHmilyInventoryApplication.class, args); 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /hmily-demo/hmily-demo-tcc/hmily-demo-tcc-grpc/hmily-demo-tcc-grpc-inventory/src/main/java/org/dromara/hmily/demo/grpc/inventory/InventoryServiceBean.java: -------------------------------------------------------------------------------- 1 | package org.dromara.hmily.demo.grpc.inventory; 2 | 3 | import org.dromara.hmily.demo.common.inventory.dto.InventoryDTO; 4 | 5 | /** 6 | * @author tydhot 7 | */ 8 | public interface InventoryServiceBean { 9 | 10 | boolean decrease(InventoryDTO inventoryDTO); 11 | 12 | } 13 | -------------------------------------------------------------------------------- /hmily-demo/hmily-demo-tcc/hmily-demo-tcc-grpc/hmily-demo-tcc-grpc-inventory/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 28089 3 | address: 0.0.0.0 4 | servlet: 5 | context-path: / 6 | 7 | spring: 8 | datasource: 9 | driver-class-name: com.mysql.jdbc.Driver 10 | url: jdbc:mysql://127.0.0.1:3306/hmily_stock?useUnicode=true&characterEncoding=utf8 11 | username: root 12 | password: 13 | 14 | grpc: 15 | port: 28079 16 | 17 | mybatis: 18 | type-aliases-package: org.dromara.hmily.demo.common.inventory.entity 19 | config-location: classpath:mybatis/mybatis-config.xml 20 | 21 | logging: 22 | level: 23 | root: error 24 | org.springframework.web: info 25 | org.apache.ibatis: debug 26 | org.dromara.hmily.demo.bonuspoint: debug 27 | org.dromara.hmily.demo.lottery: debug 28 | org.dromara.hmily.demo: debug 29 | path: "./logs" 30 | 31 | -------------------------------------------------------------------------------- /hmily-demo/hmily-demo-tcc/hmily-demo-tcc-grpc/hmily-demo-tcc-grpc-order/src/main/java/org/dromara/hmily/demo/grpc/order/GrpcHmilyOrderApplication.java: -------------------------------------------------------------------------------- 1 | package org.dromara.hmily.demo.grpc.order; 2 | 3 | import org.mybatis.spring.annotation.MapperScan; 4 | import org.springframework.boot.SpringApplication; 5 | import org.springframework.boot.autoconfigure.SpringBootApplication; 6 | import org.springframework.transaction.annotation.EnableTransactionManagement; 7 | 8 | /** 9 | * @author tydhot 10 | */ 11 | @SpringBootApplication 12 | @EnableTransactionManagement 13 | @MapperScan("org.dromara.hmily.demo.common.order.mapper") 14 | public class GrpcHmilyOrderApplication { 15 | public static void main(String[] args) { 16 | SpringApplication.run(GrpcHmilyOrderApplication.class, args); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /hmily-demo/hmily-demo-tcc/hmily-demo-tcc-grpc/hmily-demo-tcc-grpc-order/src/main/java/org/dromara/hmily/demo/grpc/order/service/OrderService.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-2021 Dromara.org 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.dromara.hmily.demo.grpc.order.service; 18 | 19 | import org.dromara.hmily.demo.common.order.entity.Order; 20 | 21 | /** 22 | * @Author tydhot 23 | */ 24 | public interface OrderService { 25 | 26 | String orderPay(int count, double amount); 27 | 28 | Order saveOrder(int count, double amount); 29 | 30 | } 31 | -------------------------------------------------------------------------------- /hmily-demo/hmily-demo-tcc/hmily-demo-tcc-grpc/hmily-demo-tcc-grpc-order/src/main/java/org/dromara/hmily/demo/grpc/order/service/PaymentService.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-2021 Dromara.org 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.dromara.hmily.demo.grpc.order.service; 18 | 19 | import org.dromara.hmily.demo.common.order.entity.Order; 20 | 21 | /** 22 | * @Author tydhot 23 | */ 24 | public interface PaymentService { 25 | 26 | void makePayment(Order order); 27 | 28 | } 29 | -------------------------------------------------------------------------------- /hmily-demo/hmily-demo-tcc/hmily-demo-tcc-grpc/hmily-demo-tcc-grpc-order/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 28087 3 | address: 0.0.0.0 4 | servlet: 5 | context-path: / 6 | 7 | spring: 8 | datasource: 9 | driver-class-name: com.mysql.jdbc.Driver 10 | url: jdbc:mysql://127.0.0.1:3306/hmily_order?useUnicode=true&characterEncoding=utf8&useSSL=false 11 | username: root 12 | password: 13 | 14 | grpc: 15 | port: 28077 16 | 17 | mybatis: 18 | type-aliases-package: org.dromara.hmily.demo.common.order.entity 19 | config-location: classpath:mybatis/mybatis-config.xml 20 | 21 | logging: 22 | level: 23 | root: error 24 | org.springframework.web: info 25 | org.apache.ibatis: debug 26 | org.dromara.hmily.demo.bonuspoint: debug 27 | org.dromara.hmily.demo.lottery: debug 28 | org.dromara.hmily.demo: debug 29 | io.netty: info 30 | path: "./logs" 31 | 32 | -------------------------------------------------------------------------------- /hmily-demo/hmily-demo-tcc/hmily-demo-tcc-grpc/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | org.dromara 7 | hmily-demo-tcc 8 | 1.0.0-SNAPSHOT 9 | 10 | 4.0.0 11 | 12 | hmily-demo-tcc-grpc 13 | pom 14 | 15 | hmily-demo-tcc-grpc-account 16 | hmily-demo-tcc-grpc-inventory 17 | hmily-demo-tcc-grpc-order 18 | hmily-demo-tcc-grpc-common 19 | 20 | 21 | -------------------------------------------------------------------------------- /hmily-demo/hmily-demo-tcc/hmily-demo-tcc-motan/hmily-demo-tcc-motan-account/src/main/java/org/dromara/hmily/demo/motan/account/service/InlineServiceImpl.java: -------------------------------------------------------------------------------- 1 | package org.dromara.hmily.demo.motan.account.service; 2 | 3 | import org.dromara.hmily.annotation.HmilyTCC; 4 | import org.dromara.hmily.demo.common.account.api.InlineService; 5 | import org.slf4j.Logger; 6 | import org.slf4j.LoggerFactory; 7 | import org.springframework.stereotype.Service; 8 | 9 | /** 10 | * InlineServiceImpl. 11 | * 12 | * @author xiaoyu(Myth) 13 | */ 14 | @Service("inlineService") 15 | public class InlineServiceImpl implements InlineService { 16 | 17 | 18 | private static final Logger LOGGER = LoggerFactory.getLogger(InlineServiceImpl.class); 19 | 20 | @Override 21 | @HmilyTCC(confirmMethod = "inLineConfirm", cancelMethod = "inLineCancel") 22 | public boolean testInline() { 23 | LOGGER.info("===========执行inline try 方法=============="); 24 | return true; 25 | } 26 | 27 | public void inLineConfirm() { 28 | LOGGER.info("===========执行inlineConfirm 方法=============="); 29 | } 30 | 31 | 32 | public void inLineCancel() { 33 | LOGGER.info("===========执行inLineCancel 方法=============="); 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /hmily-demo/hmily-demo-tcc/hmily-demo-tcc-motan/hmily-demo-tcc-motan-order/src/main/java/org/dromara/hmily/demo/motan/order/configuration/MotanClientConfig.java: -------------------------------------------------------------------------------- 1 | package org.dromara.hmily.demo.motan.order.configuration; 2 | 3 | import com.weibo.api.motan.config.springsupport.BasicRefererConfigBean; 4 | import org.springframework.boot.context.properties.ConfigurationProperties; 5 | import org.springframework.context.annotation.Bean; 6 | import org.springframework.context.annotation.Configuration; 7 | 8 | /** 9 | * The MotanClientConfig. 10 | * 11 | * @author bbaiggey 12 | */ 13 | @Configuration 14 | public class MotanClientConfig { 15 | 16 | @Bean(name = "hmilyClientBasicConfig") 17 | @ConfigurationProperties(prefix = "hmily.motan.client") 18 | public BasicRefererConfigBean baseRefererConfig() { 19 | return new BasicRefererConfigBean(); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /hmily-demo/hmily-demo-tcc/hmily-demo-tcc-motan/hmily-demo-tcc-motan-order/src/main/java/org/dromara/hmily/demo/motan/order/configuration/MotanServerConfig.java: -------------------------------------------------------------------------------- 1 | package org.dromara.hmily.demo.motan.order.configuration; 2 | 3 | import com.weibo.api.motan.config.springsupport.BasicServiceConfigBean; 4 | import org.springframework.boot.context.properties.ConfigurationProperties; 5 | import org.springframework.context.annotation.Bean; 6 | import org.springframework.context.annotation.Configuration; 7 | 8 | /** 9 | * The MotanServerConfig. 10 | * 11 | * @author bbaiggey 12 | */ 13 | @Configuration 14 | public class MotanServerConfig { 15 | 16 | /** 17 | * Base service config basic service config bean. 18 | * 19 | * @return the basic service config bean 20 | */ 21 | @Bean 22 | @ConfigurationProperties(prefix = "hmily.motan.server") 23 | public BasicServiceConfigBean baseServiceConfig() { 24 | return new BasicServiceConfigBean(); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /hmily-demo/hmily-demo-tcc/hmily-demo-tcc-sofa/hmily-demo-tcc-sofa-account/src/main/java/org/dromara/hmily/demo/sofa/account/SofaHmilyAccountApplication.java: -------------------------------------------------------------------------------- 1 | package org.dromara.hmily.demo.sofa.account; 2 | 3 | import org.mybatis.spring.annotation.MapperScan; 4 | import org.springframework.boot.SpringApplication; 5 | import org.springframework.boot.WebApplicationType; 6 | import org.springframework.boot.autoconfigure.SpringBootApplication; 7 | import org.springframework.context.annotation.ImportResource; 8 | 9 | /** 10 | * The SofaHmilyAccountApplication. 11 | * 12 | * @author bbaiggey 13 | */ 14 | @ImportResource({ "classpath*:invoke-server-example.xml", "classpath*:invoke-client-example.xml"}) 15 | @SpringBootApplication 16 | @MapperScan("org.dromara.hmily.demo.common.account.mapper") 17 | public class SofaHmilyAccountApplication { 18 | 19 | /** 20 | * The entry point of application. 21 | * 22 | * @param args the input arguments 23 | */ 24 | public static void main(String[] args) { 25 | SpringApplication springApplication = new SpringApplication(SofaHmilyAccountApplication.class); 26 | springApplication.setWebApplicationType(WebApplicationType.NONE); 27 | springApplication.run(args); 28 | } 29 | } -------------------------------------------------------------------------------- /hmily-demo/hmily-demo-tcc/hmily-demo-tcc-sofa/hmily-demo-tcc-sofa-account/src/main/java/org/dromara/hmily/demo/sofa/account/service/InlineServiceImpl.java: -------------------------------------------------------------------------------- 1 | package org.dromara.hmily.demo.sofa.account.service; 2 | 3 | import org.dromara.hmily.annotation.HmilyTCC; 4 | import org.dromara.hmily.demo.common.account.api.InlineService; 5 | import org.slf4j.Logger; 6 | import org.slf4j.LoggerFactory; 7 | import org.springframework.stereotype.Service; 8 | 9 | /** 10 | * InlineServiceImpl. 11 | * 12 | * @author xiaoyu(Myth) 13 | */ 14 | @Service("inlineService") 15 | public class InlineServiceImpl implements InlineService { 16 | 17 | 18 | private static final Logger LOGGER = LoggerFactory.getLogger(InlineServiceImpl.class); 19 | 20 | @Override 21 | @HmilyTCC(confirmMethod = "inLineConfirm", cancelMethod = "inLineCancel") 22 | public boolean testInline() { 23 | LOGGER.info("===========执行inline try 方法=============="); 24 | return true; 25 | } 26 | 27 | public void inLineConfirm() { 28 | LOGGER.info("===========执行inlineConfirm 方法=============="); 29 | } 30 | 31 | 32 | public void inLineCancel() { 33 | LOGGER.info("===========执行inLineCancel 方法=============="); 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /hmily-demo/hmily-demo-tcc/hmily-demo-tcc-sofa/hmily-demo-tcc-sofa-account/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8085 3 | servlet: 4 | context-path: / 5 | address: 0.0.0.0 6 | spring: 7 | datasource: 8 | driver-class-name: com.mysql.jdbc.Driver 9 | url: jdbc:mysql://127.0.0.1:3306/hmily_account?useUnicode=true&characterEncoding=utf8 10 | username: root 11 | password: 12 | application: 13 | name: sofa-account 14 | com: 15 | alipay: 16 | sofa: 17 | rpc: 18 | registry-address: zookeeper://127.0.0.1:2181 19 | bolt-port: 8888 20 | 21 | mybatis: 22 | type-aliases-package: org.dromara.hmily.demo.common.account.entity 23 | config-location: classpath:mybatis/mybatis-config.xml 24 | 25 | logging: 26 | level: 27 | root: error 28 | org.springframework.web: info 29 | org.apache.ibatis: debug 30 | org.dromara.hmily.demo.bonuspoint: debug 31 | org.dromara.hmily.demo.lottery: debug 32 | org.dromara.hmily.demo: debug 33 | com.alipay.test: INFO 34 | path: "./logs" 35 | 36 | 37 | -------------------------------------------------------------------------------- /hmily-demo/hmily-demo-tcc/hmily-demo-tcc-sofa/hmily-demo-tcc-sofa-account/src/main/resources/invoke-client-example.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /hmily-demo/hmily-demo-tcc/hmily-demo-tcc-sofa/hmily-demo-tcc-sofa-account/src/main/resources/invoke-server-example.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /hmily-demo/hmily-demo-tcc/hmily-demo-tcc-sofa/hmily-demo-tcc-sofa-inventory/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8884 3 | address: 0.0.0.0 4 | servlet: 5 | context-path: / 6 | 7 | 8 | spring: 9 | main: 10 | allow-bean-definition-overriding: true 11 | datasource: 12 | driver-class-name: com.mysql.jdbc.Driver 13 | url: jdbc:mysql://127.0.01:3306/hmily_stock?useUnicode=true&characterEncoding=utf8 14 | username: root 15 | password: 16 | application: 17 | name: sofa-inventory 18 | com: 19 | alipay: 20 | sofa: 21 | rpc: 22 | registry-address: zookeeper://127.0.0.1:2181 23 | 24 | mybatis: 25 | type-aliases-package: org.dromara.hmily.demo.common.inventory.entity 26 | config-location: classpath:mybatis/mybatis-config.xml 27 | 28 | logging: 29 | level: 30 | root: error 31 | org.springframework.web: info 32 | org.apache.ibatis: debug 33 | org.dromara.hmily.demo.bonuspoint: debug 34 | org.dromara.hmily.demo.lottery: debug 35 | org.dromara.hmily.demo: debug 36 | com.alipay.test: INFO 37 | io.netty: info 38 | path: "./logs" 39 | -------------------------------------------------------------------------------- /hmily-demo/hmily-demo-tcc/hmily-demo-tcc-sofa/hmily-demo-tcc-sofa-inventory/src/main/resources/invoke-server-example.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /hmily-demo/hmily-demo-tcc/hmily-demo-tcc-sofa/hmily-demo-tcc-sofa-order/src/main/java/org/dromara/hmily/demo/sofa/order/SofaHmilyOrderApplication.java: -------------------------------------------------------------------------------- 1 | package org.dromara.hmily.demo.sofa.order; 2 | 3 | import org.mybatis.spring.annotation.MapperScan; 4 | import org.springframework.boot.SpringApplication; 5 | import org.springframework.boot.autoconfigure.SpringBootApplication; 6 | import org.springframework.context.annotation.ImportResource; 7 | 8 | /** 9 | * The SofaHmilyOrderApplication. 10 | * 11 | * @Author: bbaiggey 12 | */ 13 | @SpringBootApplication 14 | @ImportResource({ "classpath*:invoke-client-example.xml"}) 15 | @MapperScan("org.dromara.hmily.demo.common.order.mapper") 16 | public class SofaHmilyOrderApplication { 17 | 18 | /** 19 | * main. 20 | * 21 | * @param args args. 22 | */ 23 | public static void main(final String[] args) { 24 | SpringApplication springApplication = new SpringApplication(SofaHmilyOrderApplication.class); 25 | springApplication.run(args); 26 | } 27 | 28 | } 29 | -------------------------------------------------------------------------------- /hmily-demo/hmily-demo-tcc/hmily-demo-tcc-sofa/hmily-demo-tcc-sofa-order/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8089 3 | servlet: 4 | context-path: / 5 | address: 0.0.0.0 6 | spring: 7 | datasource: 8 | driver-class-name: com.mysql.jdbc.Driver 9 | url: jdbc:mysql://127.0.0.1:3306/hmily_order?useUnicode=true&characterEncoding=utf8 10 | username: root 11 | password: 12 | application: 13 | name: sofa-order 14 | com: 15 | alipay: 16 | sofa: 17 | rpc: 18 | registry-address: zookeeper://127.0.0.1:2181 19 | bolt-port: 8890 20 | 21 | mybatis: 22 | type-aliases-package: org.dromara.hmily.demo.common.order.entity 23 | config-location: classpath:mybatis/mybatis-config.xml 24 | 25 | logging: 26 | level: 27 | root: error 28 | org.springframework.web: info 29 | org.apache.ibatis: debug 30 | org.dromara.hmily.demo.bonuspoint: debug 31 | org.dromara.hmily.demo.lottery: debug 32 | org.dromara.hmily.demo: debug 33 | com.alipay.test: INFO 34 | path: "./logs" 35 | 36 | 37 | -------------------------------------------------------------------------------- /hmily-demo/hmily-demo-tcc/hmily-demo-tcc-sofa/hmily-demo-tcc-sofa-order/src/main/resources/invoke-client-example.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /hmily-demo/hmily-demo-tcc/hmily-demo-tcc-springcloud/hmily-demo-tcc-springcloud-account/src/main/java/org/dromara/hmily/demo/springcloud/account/service/InLineService.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-2021 Dromara.org 3 | 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | 18 | package org.dromara.hmily.demo.springcloud.account.service; 19 | 20 | 21 | import org.dromara.hmily.annotation.HmilyTCC; 22 | 23 | /** 24 | * The interface In line service. 25 | * 26 | * @author xiaoyu(Myth) 27 | */ 28 | public interface InLineService { 29 | 30 | /** 31 | * Test. 32 | */ 33 | @HmilyTCC 34 | void test(); 35 | } 36 | -------------------------------------------------------------------------------- /hmily-demo/hmily-demo-tcc/hmily-demo-tcc-springcloud/hmily-demo-tcc-springcloud-account/src/main/java/org/dromara/hmily/demo/springcloud/account/service/impl/InLineServiceImpl.java: -------------------------------------------------------------------------------- 1 | package org.dromara.hmily.demo.springcloud.account.service.impl; 2 | 3 | import org.dromara.hmily.annotation.HmilyTCC; 4 | import org.dromara.hmily.demo.springcloud.account.service.InLineService; 5 | import org.springframework.stereotype.Component; 6 | 7 | /** 8 | * The type In line service. 9 | * 10 | * @author xiaoyu(Myth) 11 | */ 12 | @Component 13 | public class InLineServiceImpl implements InLineService { 14 | 15 | @Override 16 | @HmilyTCC(confirmMethod = "confirm", cancelMethod = "cancel") 17 | public void test() { 18 | System.out.println("执行inline try......"); 19 | } 20 | 21 | /** 22 | * Confrim. 23 | */ 24 | public void confirm() { 25 | System.out.println("执行inline confirm......"); 26 | } 27 | 28 | /** 29 | * Cancel. 30 | */ 31 | public void cancel() { 32 | System.out.println("执行inline cancel......"); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /hmily-demo/hmily-demo-tcc/hmily-demo-tcc-springcloud/hmily-demo-tcc-springcloud-eureka/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8761 3 | 4 | spring: 5 | application: 6 | name: springcloud-eureka 7 | 8 | eureka: 9 | instance: 10 | hostname: ${hostname:localhost} 11 | preferIpAddress: true 12 | lease-renewal-interval-in-seconds: 2 13 | lease-expiration-duration-in-seconds: 6 14 | server: 15 | peerEurekaNodesUpdateIntervalMs: 60000 16 | enableSelfPreservation: false 17 | evictionIntervalTimerInMs: 5000 18 | client: 19 | registerWithEureka: false 20 | fetchRegistry: false 21 | serviceUrl: 22 | defaultZone: http://localhost:8761/eureka/ 23 | healthcheck: 24 | enabled: true 25 | eurekaServiceUrlPollIntervalSeconds: 60 26 | 27 | endpoints: 28 | health: 29 | sensitive: false 30 | 31 | 32 | 33 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /hmily-demo/hmily-demo-tcc/hmily-demo-tcc-tars/hmily-demo-tcc-tars-account/src/main/java/org/dromara/hmily/demo/tars/account/service/AccountService.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-2021 Dromara.org 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.dromara.hmily.demo.tars.account.service; 18 | 19 | import org.dromara.hmily.demo.common.account.dto.AccountDTO; 20 | 21 | /** 22 | * @Author tydhot 23 | */ 24 | public interface AccountService { 25 | 26 | boolean payment(AccountDTO accountDTO); 27 | 28 | } 29 | -------------------------------------------------------------------------------- /hmily-demo/hmily-demo-tcc/hmily-demo-tcc-tars/hmily-demo-tcc-tars-account/src/main/resources/account.tars: -------------------------------------------------------------------------------- 1 | module AccountApp 2 | { 3 | interface Account 4 | { 5 | void payment(string userId, double amount); 6 | }; 7 | }; -------------------------------------------------------------------------------- /hmily-demo/hmily-demo-tcc/hmily-demo-tcc-tars/hmily-demo-tcc-tars-account/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 18084 3 | servlet: 4 | context-path: / 5 | address: 0.0.0.0 6 | spring: 7 | datasource: 8 | driver-class-name: com.mysql.jdbc.Driver 9 | url: jdbc:mysql://127.0.0.1:3306/hmily_account?useUnicode=true&characterEncoding=utf8 10 | username: root 11 | password: 12 | 13 | mybatis: 14 | type-aliases-package: org.dromara.hmily.demo.common.account.entity 15 | config-location: classpath:mybatis/mybatis-config.xml -------------------------------------------------------------------------------- /hmily-demo/hmily-demo-tcc/hmily-demo-tcc-tars/hmily-demo-tcc-tars-inventory/src/main/java/org/dromara/hmily/demo/tars/inventory/service/InventoryService.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-2021 Dromara.org 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.dromara.hmily.demo.tars.inventory.service; 18 | 19 | import org.dromara.hmily.demo.common.inventory.dto.InventoryDTO; 20 | 21 | /** 22 | * @author tydhot 23 | */ 24 | public interface InventoryService { 25 | 26 | boolean decrease(InventoryDTO inventoryDTO); 27 | 28 | } 29 | -------------------------------------------------------------------------------- /hmily-demo/hmily-demo-tcc/hmily-demo-tcc-tars/hmily-demo-tcc-tars-inventory/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 18085 3 | servlet: 4 | context-path: / 5 | address: 0.0.0.0 6 | spring: 7 | datasource: 8 | driver-class-name: com.mysql.jdbc.Driver 9 | url: jdbc:mysql://127.0.0.1:3306/hmily_stock?useUnicode=true&characterEncoding=utf8 10 | username: root 11 | password: 12 | 13 | mybatis: 14 | type-aliases-package: org.dromara.hmily.demo.common.inventory.entity 15 | config-location: classpath:mybatis/mybatis-config.xml -------------------------------------------------------------------------------- /hmily-demo/hmily-demo-tcc/hmily-demo-tcc-tars/hmily-demo-tcc-tars-inventory/src/main/resources/inventory.tars: -------------------------------------------------------------------------------- 1 | module InventoryApp 2 | { 3 | interface Inventory 4 | { 5 | bool decrease(string productId, int count); 6 | }; 7 | }; -------------------------------------------------------------------------------- /hmily-demo/hmily-demo-tcc/hmily-demo-tcc-tars/hmily-demo-tcc-tars-order/src/main/java/org/dromara/hmily/demo/tars/order/service/OrderService.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-2021 Dromara.org 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.dromara.hmily.demo.tars.order.service; 18 | 19 | import org.dromara.hmily.demo.common.order.entity.Order; 20 | 21 | /** 22 | * @Author tydhot 23 | */ 24 | public interface OrderService { 25 | 26 | String orderPay(int count, double amount); 27 | 28 | Order saveOrder(int count, double amount); 29 | 30 | } 31 | -------------------------------------------------------------------------------- /hmily-demo/hmily-demo-tcc/hmily-demo-tcc-tars/hmily-demo-tcc-tars-order/src/main/java/org/dromara/hmily/demo/tars/order/service/PaymentService.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-2021 Dromara.org 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.dromara.hmily.demo.tars.order.service; 18 | 19 | import org.dromara.hmily.demo.common.order.entity.Order; 20 | 21 | /** 22 | * @Author tydhot 23 | */ 24 | public interface PaymentService { 25 | 26 | void makePayment(Order order); 27 | 28 | } 29 | -------------------------------------------------------------------------------- /hmily-demo/hmily-demo-tcc/hmily-demo-tcc-tars/hmily-demo-tcc-tars-order/src/main/resources/account.tars: -------------------------------------------------------------------------------- 1 | module AccountApp 2 | { 3 | interface Account 4 | { 5 | void payment(string userId, double amount); 6 | }; 7 | }; -------------------------------------------------------------------------------- /hmily-demo/hmily-demo-tcc/hmily-demo-tcc-tars/hmily-demo-tcc-tars-order/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 18087 3 | servlet: 4 | context-path: / 5 | address: 0.0.0.0 6 | spring: 7 | datasource: 8 | driver-class-name: com.mysql.jdbc.Driver 9 | url: jdbc:mysql://127.0.0.1:3306/hmily_order?useUnicode=true&characterEncoding=utf8&useSSL=false 10 | username: root 11 | password: 12 | 13 | mybatis: 14 | type-aliases-package: org.dromara.hmily.demo.common.order.entity 15 | config-location: classpath:mybatis/mybatis-config.xml -------------------------------------------------------------------------------- /hmily-demo/hmily-demo-tcc/hmily-demo-tcc-tars/hmily-demo-tcc-tars-order/src/main/resources/inventory.tars: -------------------------------------------------------------------------------- 1 | module InventoryApp 2 | { 3 | interface Inventory 4 | { 5 | bool decrease(string productId, int count); 6 | }; 7 | }; -------------------------------------------------------------------------------- /hmily-demo/hmily-demo-tcc/hmily-demo-tcc-tars/hmily-demo-tcc-tars-order/src/main/resources/order.tars: -------------------------------------------------------------------------------- 1 | module OrderApp 2 | { 3 | interface Order 4 | { 5 | string orderPay(int count, double amount); 6 | }; 7 | }; -------------------------------------------------------------------------------- /hmily-demo/hmily-demo-xa/hmily-demo-xa-dubbo/hmily-demo-xa-dubbo-account/src/main/java/org/dromara/hmily/xa/demo/dubbo/account/service/InlineServiceImpl.java: -------------------------------------------------------------------------------- 1 | package org.dromara.hmily.xa.demo.dubbo.account.service; 2 | 3 | import org.dromara.hmily.annotation.HmilyTCC; 4 | import org.dromara.hmily.demo.common.account.api.InlineService; 5 | import org.slf4j.Logger; 6 | import org.slf4j.LoggerFactory; 7 | import org.springframework.stereotype.Service; 8 | 9 | /** 10 | * InlineServiceImpl. 11 | * 12 | * @author xiaoyu(Myth) 13 | */ 14 | @Service("inlineService") 15 | public class InlineServiceImpl implements InlineService { 16 | 17 | 18 | private static final Logger LOGGER = LoggerFactory.getLogger(InlineServiceImpl.class); 19 | 20 | @Override 21 | @HmilyTCC(confirmMethod = "inLineConfirm", cancelMethod = "inLineCancel") 22 | public boolean testInline() { 23 | LOGGER.info("===========执行inline try 方法=============="); 24 | return true; 25 | } 26 | 27 | public void inLineConfirm() { 28 | LOGGER.info("===========执行inlineConfirm 方法=============="); 29 | } 30 | 31 | 32 | public void inLineCancel() { 33 | LOGGER.info("===========执行inLineCancel 方法=============="); 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /hmily-demo/hmily-demo-xa/hmily-demo-xa-dubbo/hmily-demo-xa-dubbo-account/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8084 3 | servlet: 4 | context-path: / 5 | address: 0.0.0.0 6 | 7 | mybatis: 8 | type-aliases-package: org.dromara.hmily.demo.common.account.entity 9 | config-location: classpath:mybatis/mybatis-config.xml 10 | 11 | logging: 12 | level: 13 | root: info 14 | org.springframework.web: info 15 | org.apache.ibatis: debug 16 | org.dromara.hmily.tac: debug 17 | org.dromara.hmily.demo.bonuspoint: debug 18 | org.dromara.hmily.demo.lottery: debug 19 | org.dromara.hmily.demo: debug 20 | path: "./logs" 21 | -------------------------------------------------------------------------------- /hmily-demo/hmily-demo-xa/hmily-demo-xa-dubbo/hmily-demo-xa-dubbo-inventory/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8084 3 | address: 0.0.0.0 4 | servlet: 5 | context-path: / 6 | 7 | spring: 8 | datasource: 9 | driver-class-name: com.mysql.jdbc.Driver 10 | url: jdbc:mysql://192.168.3.18:3306/hmily_stock?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8&useSSL=true&verifyServerCertificate=false 11 | username: root 12 | password: 123456 13 | 14 | 15 | mybatis: 16 | type-aliases-package: org.dromara.hmily.demo.common.inventory.entity 17 | config-location: classpath:mybatis/mybatis-config.xml 18 | 19 | logging: 20 | level: 21 | root: error 22 | org.springframework.web: info 23 | org.apache.ibatis: debug 24 | org.dromara.hmily.tac: debug 25 | org.dromara.hmily.demo.bonuspoint: debug 26 | org.dromara.hmily.demo.lottery: debug 27 | org.dromara.hmily.demo: debug 28 | path: "./logs" 29 | 30 | -------------------------------------------------------------------------------- /hmily-demo/hmily-demo-xa/hmily-demo-xa-dubbo/hmily-demo-xa-dubbo-inventory/src/main/resources/applicationContext.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /hmily-demo/hmily-demo-xa/hmily-demo-xa-dubbo/hmily-demo-xa-dubbo-order/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8087 3 | address: 0.0.0.0 4 | servlet: 5 | context-path: / 6 | 7 | logging: 8 | level: 9 | root: info 10 | org.springframework.web: info 11 | org.apache.ibatis: debug 12 | org.dromara.hmily.tac: debug 13 | org.dromara.hmily.demo.bonuspoint: debug 14 | org.dromara.hmily.demo.lottery: debug 15 | org.dromara.hmily.demo: debug 16 | io.netty: info 17 | path: "./logs" 18 | 19 | -------------------------------------------------------------------------------- /hmily-demo/hmily-demo-xa/hmily-demo-xa-springcloud/hmily-demo-xa-springcloud-eureka/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8761 3 | 4 | spring: 5 | application: 6 | name: springcloud-eureka 7 | 8 | eureka: 9 | instance: 10 | hostname: ${hostname:localhost} 11 | preferIpAddress: true 12 | lease-renewal-interval-in-seconds: 2 13 | lease-expiration-duration-in-seconds: 6 14 | server: 15 | peerEurekaNodesUpdateIntervalMs: 60000 16 | enableSelfPreservation: false 17 | evictionIntervalTimerInMs: 5000 18 | client: 19 | registerWithEureka: false 20 | fetchRegistry: false 21 | serviceUrl: 22 | defaultZone: http://localhost:8761/eureka/ 23 | healthcheck: 24 | enabled: true 25 | eurekaServiceUrlPollIntervalSeconds: 60 26 | 27 | endpoints: 28 | health: 29 | sensitive: false 30 | 31 | 32 | 33 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /hmily-metrics/hmily-metrics-prometheus/src/main/resources/META-INF/hmily/org.dromara.hmily.metrics.spi.MetricsBootService: -------------------------------------------------------------------------------- 1 | org.dromara.hmily.metrics.prometheus.service.PrometheusBootService 2 | -------------------------------------------------------------------------------- /hmily-metrics/hmily-metrics-prometheus/src/main/resources/META-INF/hmily/org.dromara.hmily.metrics.spi.MetricsRegister: -------------------------------------------------------------------------------- 1 | org.dromara.hmily.metrics.prometheus.register.PrometheusMetricsRegister 2 | -------------------------------------------------------------------------------- /hmily-metrics/hmily-metrics-spi/src/main/java/org/dromara/hmily/metrics/entity/Metric.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-2021 Dromara.org 3 | 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.dromara.hmily.metrics.entity; 18 | 19 | import lombok.Getter; 20 | import lombok.RequiredArgsConstructor; 21 | import org.dromara.hmily.metrics.enums.MetricType; 22 | 23 | import java.util.List; 24 | 25 | /** 26 | * Metric. 27 | */ 28 | @Getter 29 | @RequiredArgsConstructor 30 | public final class Metric { 31 | 32 | private final MetricType type; 33 | 34 | private final String name; 35 | 36 | private final String document; 37 | 38 | private final List labels; 39 | } 40 | -------------------------------------------------------------------------------- /hmily-metrics/hmily-metrics-spi/src/main/java/org/dromara/hmily/metrics/enums/MetricType.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-2021 Dromara.org 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.dromara.hmily.metrics.enums; 18 | 19 | import lombok.Getter; 20 | import lombok.RequiredArgsConstructor; 21 | 22 | /** 23 | * Metric type. 24 | */ 25 | @Getter 26 | @RequiredArgsConstructor 27 | public enum MetricType { 28 | 29 | /** 30 | * Counter metric type. 31 | */ 32 | COUNTER, 33 | 34 | /** 35 | * Gauge metric type. 36 | */ 37 | GAUGE, 38 | 39 | /** 40 | * Histogram metric type. 41 | */ 42 | HISTOGRAM 43 | } 44 | -------------------------------------------------------------------------------- /hmily-repository/hmily-repository-database/hmily-repository-database-mysql/src/main/resources/META-INF/hmily/org.dromara.hmily.repository.spi.HmilyRepository: -------------------------------------------------------------------------------- 1 | org.dromara.hmily.repository.database.mysql.MysqlRepository -------------------------------------------------------------------------------- /hmily-repository/hmily-repository-database/hmily-repository-database-oracle/src/main/resources/META-INF/hmily/org.dromara.hmily.repository.spi.HmilyRepository: -------------------------------------------------------------------------------- 1 | org.dromara.hmily.repository.database.oracle.OracleRepository -------------------------------------------------------------------------------- /hmily-repository/hmily-repository-database/hmily-repository-database-postgresql/src/main/resources/META-INF/hmily/org.dromara.hmily.repository.spi.HmilyRepository: -------------------------------------------------------------------------------- 1 | org.dromara.hmily.repository.database.postgresql.PostgresqlRepository -------------------------------------------------------------------------------- /hmily-repository/hmily-repository-database/hmily-repository-database-sqlserver/src/main/resources/META-INF/hmily/org.dromara.hmily.repository.spi.HmilyRepository: -------------------------------------------------------------------------------- 1 | org.dromara.hmily.repository.database.sqlserver.SqlserverRepository -------------------------------------------------------------------------------- /hmily-repository/hmily-repository-etcd/src/main/resources/META-INF/hmily/org.dromara.hmily.repository.spi.HmilyRepository: -------------------------------------------------------------------------------- 1 | org.dromara.hmily.repository.etcd.EtcdRepository -------------------------------------------------------------------------------- /hmily-repository/hmily-repository-file/src/main/resources/META-INF/hmily/org.dromara.hmily.repository.spi.HmilyRepository: -------------------------------------------------------------------------------- 1 | org.dromara.hmily.repository.file.FileRepository -------------------------------------------------------------------------------- /hmily-repository/hmily-repository-mongodb/src/main/java/org/dromara/hmily/repository/mongodb/entity/LockMongoEntity.java: -------------------------------------------------------------------------------- 1 | package org.dromara.hmily.repository.mongodb.entity; 2 | 3 | import lombok.Data; 4 | import lombok.ToString; 5 | import org.springframework.data.mongodb.core.index.Indexed; 6 | import org.springframework.data.mongodb.core.mapping.Document; 7 | import org.springframework.data.mongodb.core.mapping.Field; 8 | 9 | 10 | /** 11 | * mongo entity. 12 | * 13 | * @author gcedar 14 | */ 15 | @Data 16 | @ToString 17 | @Document(collection = "hmily_lock_global") 18 | public class LockMongoEntity { 19 | 20 | @Field("lock_id") 21 | @Indexed 22 | private String lockId; 23 | 24 | @Field("trans_id") 25 | private Long transId; 26 | 27 | @Field("participant_id") 28 | private Long participantId; 29 | 30 | @Field("resource_id") 31 | private String resourceId; 32 | 33 | @Field("target_table_Name") 34 | private String targetTableName; 35 | 36 | @Field("target_table_pk") 37 | private String targetTablePk; 38 | } 39 | -------------------------------------------------------------------------------- /hmily-repository/hmily-repository-mongodb/src/main/java/org/dromara/hmily/repository/mongodb/entity/MongoEntityAdapter.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-2021 Dromara.org 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.dromara.hmily.repository.mongodb.entity; 18 | 19 | import java.io.Serializable; 20 | import lombok.Data; 21 | import org.bson.types.ObjectId; 22 | 23 | /** 24 | * Mongo adapter. 25 | * 26 | * @author xiaoyu 27 | */ 28 | @Data 29 | public class MongoEntityAdapter implements Serializable { 30 | 31 | private static final long serialVersionUID = 7920817865031921102L; 32 | 33 | private ObjectId id; 34 | 35 | } 36 | -------------------------------------------------------------------------------- /hmily-repository/hmily-repository-mongodb/src/main/java/org/dromara/hmily/repository/mongodb/entity/TransactionMongoEntity.java: -------------------------------------------------------------------------------- 1 | package org.dromara.hmily.repository.mongodb.entity; 2 | 3 | import lombok.Data; 4 | import lombok.ToString; 5 | import org.springframework.data.mongodb.core.index.Indexed; 6 | import org.springframework.data.mongodb.core.mapping.Document; 7 | import org.springframework.data.mongodb.core.mapping.Field; 8 | 9 | import java.util.Date; 10 | 11 | /** 12 | * mongo entity. 13 | * 14 | * @author gcedar 15 | */ 16 | @Data 17 | @ToString 18 | @Document(collection = "hmily_transaction_global") 19 | public class TransactionMongoEntity { 20 | 21 | @Field("trans_id") 22 | @Indexed 23 | private Long transId; 24 | 25 | @Field("app_name") 26 | private String appName; 27 | 28 | @Field("status") 29 | private Integer status; 30 | 31 | @Field("trans_type") 32 | private String transType; 33 | 34 | @Field("retry") 35 | private Integer retry; 36 | 37 | @Field("version") 38 | private Integer version; 39 | 40 | @Field("create_time") 41 | private Date createTime; 42 | 43 | @Field("update_time") 44 | private Date updateTime; 45 | 46 | } 47 | -------------------------------------------------------------------------------- /hmily-repository/hmily-repository-mongodb/src/main/java/org/dromara/hmily/repository/mongodb/entity/UndoMongoEntity.java: -------------------------------------------------------------------------------- 1 | package org.dromara.hmily.repository.mongodb.entity; 2 | 3 | import lombok.Data; 4 | import lombok.ToString; 5 | import org.springframework.data.mongodb.core.index.Indexed; 6 | import org.springframework.data.mongodb.core.mapping.Document; 7 | import org.springframework.data.mongodb.core.mapping.Field; 8 | 9 | import java.util.Date; 10 | 11 | /** 12 | * mongo entity. 13 | * 14 | * @author gcedar 15 | */ 16 | @Data 17 | @ToString 18 | @Document(collection = "hmily_participant_undo") 19 | public class UndoMongoEntity { 20 | 21 | @Field("trans_id") 22 | private Long transId; 23 | 24 | @Field("status") 25 | private Integer status; 26 | 27 | @Field("create_time") 28 | private Date createTime; 29 | 30 | @Field("update_time") 31 | private Date updateTime; 32 | 33 | @Field("participant_id") 34 | private Long participantId; 35 | 36 | @Field("undo_id") 37 | @Indexed 38 | private Long undoId; 39 | 40 | @Field("resource_id") 41 | private String resourceId; 42 | 43 | @Field("data_snapshot") 44 | private byte[] dataSnapshot; 45 | 46 | } 47 | -------------------------------------------------------------------------------- /hmily-repository/hmily-repository-mongodb/src/main/resources/META-INF/hmily/org.dromara.hmily.repository.spi.HmilyRepository: -------------------------------------------------------------------------------- 1 | org.dromara.hmily.repository.mongodb.MongodbRepository -------------------------------------------------------------------------------- /hmily-repository/hmily-repository-mongodb/src/test/resources/log4j.properties: -------------------------------------------------------------------------------- 1 | log4j.rootLogger=INFO,CONSOLE 2 | log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender 3 | log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout 4 | log4j.appender.CONSOLE.layout.ConversionPattern=[frame] %d{yyyy-MM-dd HH:mm:ss,SSS} - %-4r %-5p [%t] %C:%L %x - %m%n 5 | -------------------------------------------------------------------------------- /hmily-repository/hmily-repository-redis/src/main/resources/META-INF/hmily/org.dromara.hmily.repository.spi.HmilyRepository: -------------------------------------------------------------------------------- 1 | org.dromara.hmily.repository.redis.RedisRepository -------------------------------------------------------------------------------- /hmily-repository/hmily-repository-redis/src/test/resources/log4j.properties: -------------------------------------------------------------------------------- 1 | log4j.rootLogger=INFO,CONSOLE 2 | log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender 3 | log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout 4 | log4j.appender.CONSOLE.layout.ConversionPattern=[frame] %d{yyyy-MM-dd HH:mm:ss,SSS} - %-4r %-5p [%t] %C:%L %x - %m%n 5 | -------------------------------------------------------------------------------- /hmily-repository/hmily-repository-spi/src/main/java/org/dromara/hmily/repository/spi/entity/tuple/HmilySQLManipulation.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-2021 Dromara.org 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.dromara.hmily.repository.spi.entity.tuple; 18 | 19 | /** 20 | * Hmily SQL manipulation enum. 21 | * 22 | * @author zhaojun 23 | */ 24 | public enum HmilySQLManipulation { 25 | 26 | INSERT, DELETE, UPDATE, SELECT 27 | } 28 | -------------------------------------------------------------------------------- /hmily-repository/hmily-repository-zookeeper/src/main/resources/META-INF/hmily/org.dromara.hmily.repository.spi.HmilyRepository: -------------------------------------------------------------------------------- 1 | org.dromara.hmily.repository.zookeeper.ZookeeperRepository -------------------------------------------------------------------------------- /hmily-repository/hmily-repository-zookeeper/src/test/resources/log4j.properties: -------------------------------------------------------------------------------- 1 | log4j.rootLogger=INFO,CONSOLE 2 | log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender 3 | log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout 4 | log4j.appender.CONSOLE.layout.ConversionPattern=[frame] %d{yyyy-MM-dd HH:mm:ss,SSS} - %-4r %-5p [%t] %C:%L %x - %m%n 5 | -------------------------------------------------------------------------------- /hmily-rpc/hmily-apache-dubbo/src/main/resources/META-INF/dubbo/org.apache.dubbo.rpc.Filter: -------------------------------------------------------------------------------- 1 | HmilyTransactionFilter=org.dromara.hmily.dubbo.filter.DubboHmilyTransactionFilter -------------------------------------------------------------------------------- /hmily-rpc/hmily-apache-dubbo/src/main/resources/META-INF/dubbo/org.apache.dubbo.rpc.cluster.LoadBalance: -------------------------------------------------------------------------------- 1 | hmilyConsistentHash=org.dromara.hmily.dubbo.loadbalance.HmilyConsistentHashDubboLoadBalance 2 | hmilyLeastActive=org.dromara.hmily.dubbo.loadbalance.HmilyLeastActiveDubboLoadBalance 3 | hmilyRandom=org.dromara.hmily.dubbo.loadbalance.HmilyRandomDubboLoadBalance 4 | hmilyRoundRobin=org.dromara.hmily.dubbo.loadbalance.HmilyRoundRobinDubboLoadBalance 5 | -------------------------------------------------------------------------------- /hmily-rpc/hmily-apache-dubbo/src/main/resources/META-INF/hmily/org.dromara.hmily.core.field.AnnotationField: -------------------------------------------------------------------------------- 1 | org.dromara.hmily.dubbo.field.DubboRefererAnnotationField -------------------------------------------------------------------------------- /hmily-rpc/hmily-apache-dubbo/src/main/resources/META-INF/hmily/org.dromara.hmily.core.mediator.RpcParameterLoader: -------------------------------------------------------------------------------- 1 | org.dromara.hmily.dubbo.parameter.DubboParameterLoader -------------------------------------------------------------------------------- /hmily-rpc/hmily-brpc/src/main/resources/META-INF/hmily/org.dromara.hmily.core.field.AnnotationField: -------------------------------------------------------------------------------- 1 | org.dromara.hmily.brpc.field.BrpcRefererAnnotationField -------------------------------------------------------------------------------- /hmily-rpc/hmily-brpc/src/main/resources/META-INF/hmily/org.dromara.hmily.core.mediator.RpcParameterLoader: -------------------------------------------------------------------------------- 1 | org.dromara.hmily.brpc.parameter.BrpcParameterLoader -------------------------------------------------------------------------------- /hmily-rpc/hmily-brpc/src/main/resources/META-INF/services/com.baidu.brpc.interceptor.Interceptor: -------------------------------------------------------------------------------- 1 | org.dromara.hmily.brpc.interceptor.BrpcHmilyTransactionInterceptor -------------------------------------------------------------------------------- /hmily-rpc/hmily-brpc/src/main/resources/META-INF/services/com.baidu.brpc.loadbalance.LoadBalanceStrategy: -------------------------------------------------------------------------------- 1 | org.dromara.hmily.brpc.loadbalance.HmilyFairStrategy 2 | org.dromara.hmily.brpc.loadbalance.HmilyRandomStrategy 3 | org.dromara.hmily.brpc.loadbalance.HmilyRobinStrategy 4 | org.dromara.hmily.brpc.loadbalance.HmilyWeightStrategy -------------------------------------------------------------------------------- /hmily-rpc/hmily-dubbo/src/main/resources/META-INF/dubbo/com.alibaba.dubbo.rpc.Filter: -------------------------------------------------------------------------------- 1 | HmilyTransactionFilter=org.dromara.hmily.dubbo.filter.DubboHmilyTransactionFilter -------------------------------------------------------------------------------- /hmily-rpc/hmily-dubbo/src/main/resources/META-INF/dubbo/com.alibaba.dubbo.rpc.cluster.LoadBalance: -------------------------------------------------------------------------------- 1 | hmilyConsistentHash=org.dromara.hmily.dubbo.loadbalance.HmilyConsistentHashDubboLoadBalance 2 | hmilyLeastActive=org.dromara.hmily.dubbo.loadbalance.HmilyLeastActiveDubboLoadBalance 3 | hmilyRandom=org.dromara.hmily.dubbo.loadbalance.HmilyRandomDubboLoadBalance 4 | hmilyRoundRobin=org.dromara.hmily.dubbo.loadbalance.HmilyRoundRobinDubboLoadBalance -------------------------------------------------------------------------------- /hmily-rpc/hmily-dubbo/src/main/resources/META-INF/hmily/org.dromara.hmily.core.field.AnnotationField: -------------------------------------------------------------------------------- 1 | org.dromara.hmily.dubbo.field.DubboRefererAnnotationField -------------------------------------------------------------------------------- /hmily-rpc/hmily-dubbo/src/main/resources/META-INF/hmily/org.dromara.hmily.core.mediator.RpcParameterLoader: -------------------------------------------------------------------------------- 1 | org.dromara.hmily.dubbo.parameter.DubboParameterLoader -------------------------------------------------------------------------------- /hmily-rpc/hmily-grpc/src/main/java/org/dromara/hmily/grpc/parameter/GrpcInvokeContext.java: -------------------------------------------------------------------------------- 1 | package org.dromara.hmily.grpc.parameter; 2 | 3 | /** 4 | * Grpc GrpcInvokeContext. 5 | * 6 | * @author tydhot 7 | */ 8 | public class GrpcInvokeContext { 9 | 10 | /** 11 | * grpc args. 12 | */ 13 | private Object[] args; 14 | 15 | public GrpcInvokeContext(final Object[] args) { 16 | this.args = args; 17 | } 18 | 19 | /** 20 | * get args. 21 | * 22 | * @return args args 23 | */ 24 | public Object[] getArgs() { 25 | return args; 26 | } 27 | 28 | /** 29 | * set args. 30 | * 31 | * @param args args 32 | */ 33 | public void setArgs(final Object[] args) { 34 | this.args = args; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /hmily-rpc/hmily-grpc/src/main/resources/META-INF/hmily/org.dromara.hmily.core.mediator.RpcParameterLoader: -------------------------------------------------------------------------------- 1 | org.dromara.hmily.grpc.parameter.GrpcParameterLoader -------------------------------------------------------------------------------- /hmily-rpc/hmily-motan/src/main/resources/META-INF/hmily/org.dromara.hmily.core.field.AnnotationField: -------------------------------------------------------------------------------- 1 | org.dromara.hmily.motan.field.MotanRefererAnnotationField -------------------------------------------------------------------------------- /hmily-rpc/hmily-motan/src/main/resources/META-INF/hmily/org.dromara.hmily.core.mediator.RpcParameterLoader: -------------------------------------------------------------------------------- 1 | org.dromara.hmily.motan.parameter.MotanParameterLoader -------------------------------------------------------------------------------- /hmily-rpc/hmily-motan/src/main/resources/META-INF/services/com.weibo.api.motan.cluster.LoadBalance: -------------------------------------------------------------------------------- 1 | org.dromara.hmily.motan.loadbalance.HmilyRandomMotanLoadBalance 2 | org.dromara.hmily.motan.loadbalance.HmilyRoundRobinMotanLoadBalance 3 | org.dromara.hmily.motan.loadbalance.HmilyConsistentHashMotanLoadBalance 4 | org.dromara.hmily.motan.loadbalance.HmilyActiveWeightMotanLoadBalance 5 | org.dromara.hmily.motan.loadbalance.HmilyConfigurableWeightMotanLoadBalance 6 | org.dromara.hmily.motan.loadbalance.HmilyLocalFirstMotanLoadBalance -------------------------------------------------------------------------------- /hmily-rpc/hmily-motan/src/main/resources/META-INF/services/com.weibo.api.motan.filter.Filter: -------------------------------------------------------------------------------- 1 | org.dromara.hmily.motan.filter.MotanHmilyTransactionFilter -------------------------------------------------------------------------------- /hmily-rpc/hmily-sofa-rpc/src/main/resources/META-INF/hmily/org.dromara.hmily.core.mediator.RpcParameterLoader: -------------------------------------------------------------------------------- 1 | org.dromara.hmily.sofa.rpc.parameter.SofaRpcParameterLoader -------------------------------------------------------------------------------- /hmily-rpc/hmily-sofa-rpc/src/main/resources/META-INF/services/sofa-rpc/com.alipay.sofa.rpc.client.LoadBalancer: -------------------------------------------------------------------------------- 1 | hmilyConsistentHash=org.dromara.hmily.sofa.rpc.loadbalancer.HmilyConsistentHashSofaRpcLoadBalancer 2 | hmilyRandom=org.dromara.hmily.sofa.rpc.loadbalancer.HmilyRandomSofaRpcLoadBalancer 3 | hmilyLocalPref=org.dromara.hmily.sofa.rpc.loadbalancer.HmilyLocalPrefSofaRpcLoadBalancer 4 | hmilyRoundRobin=org.dromara.hmily.sofa.rpc.loadbalancer.HmilyRoundRobinSofaRpcLoadBalancer 5 | hmilyWeightRoundRobin=org.dromara.hmily.sofa.rpc.loadbalancer.HmilyWeightRoundRobinSofaRpcLoadBalancer 6 | hmilyWeightConsistentHash=org.dromara.hmily.sofa.rpc.loadbalancer.HmilyWeightConsistentHashSofaRpcLoadBalancer 7 | -------------------------------------------------------------------------------- /hmily-rpc/hmily-sofa-rpc/src/main/resources/META-INF/services/sofa-rpc/com.alipay.sofa.rpc.filter.Filter: -------------------------------------------------------------------------------- 1 | org.dromara.hmily.sofa.rpc.filter.HmilySofaRpcTransactionConsumerFilter 2 | org.dromara.hmily.sofa.rpc.filter.HmilySofaRpcTransactionProviderFilter -------------------------------------------------------------------------------- /hmily-rpc/hmily-springcloud/src/main/resources/META-INF/hmily/org.dromara.hmily.core.mediator.RpcParameterLoader: -------------------------------------------------------------------------------- 1 | org.dromara.hmily.springcloud.parameter.SpringCloudParameterLoader -------------------------------------------------------------------------------- /hmily-rpc/hmily-springcloud/src/main/resources/META-INF/spring.factories: -------------------------------------------------------------------------------- 1 | org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ 2 | org.dromara.hmily.springcloud.configuration.HmilyFeignConfiguration,\ 3 | org.dromara.hmily.springcloud.configuration.HmilyLoadBalancerConfiguration -------------------------------------------------------------------------------- /hmily-rpc/hmily-tars/src/main/resources/META-INF/hmily/org.dromara.hmily.core.mediator.RpcParameterLoader: -------------------------------------------------------------------------------- 1 | org.dromara.hmily.tars.parameter.TarsParameterLoader -------------------------------------------------------------------------------- /hmily-serializer/hmily-serializer-hessian/src/main/resources/META-INF/hmily/org.dromara.hmily.serializer.spi.HmilySerializer: -------------------------------------------------------------------------------- 1 | org.dromara.hmily.serializer.hessian.HessianSerializer -------------------------------------------------------------------------------- /hmily-serializer/hmily-serializer-jdk/src/main/resources/META-INF/hmily/org.dromara.hmily.serializer.spi.HmilySerializer: -------------------------------------------------------------------------------- 1 | org.dromara.hmily.serializer.jdk.JDKSerializer -------------------------------------------------------------------------------- /hmily-serializer/hmily-serializer-kryo/src/main/resources/META-INF/hmily/org.dromara.hmily.serializer.spi.HmilySerializer: -------------------------------------------------------------------------------- 1 | org.dromara.hmily.serializer.kryo.KryoSerializer -------------------------------------------------------------------------------- /hmily-serializer/hmily-serializer-msgpack/src/main/resources/META-INF/hmily/org.dromara.hmily.serializer.spi.HmilySerializer: -------------------------------------------------------------------------------- 1 | org.dromara.hmily.serializer.msgpack.MessagePackSerializer -------------------------------------------------------------------------------- /hmily-serializer/hmily-serializer-protobuf/src/main/resources/META-INF/hmily/org.dromara.hmily.serializer.spi.HmilySerializer: -------------------------------------------------------------------------------- 1 | org.dromara.hmily.serializer.protobuf.ProtostuffSerializer -------------------------------------------------------------------------------- /hmily-spi/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | org.dromara 7 | hmily 8 | 2.1.3-SNAPSHOT 9 | 10 | 4.0.0 11 | jar 12 | hmily-spi 13 | -------------------------------------------------------------------------------- /hmily-spi/src/main/java/org/dromara/hmily/spi/ExtensionEntity.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-2021 Dromara.org 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.dromara.hmily.spi; 18 | 19 | import lombok.AllArgsConstructor; 20 | import lombok.Data; 21 | import lombok.EqualsAndHashCode; 22 | 23 | /** 24 | * The type ExtensionEntity. 25 | * 26 | * @author xiaoyu 27 | */ 28 | @Data 29 | @EqualsAndHashCode 30 | @AllArgsConstructor 31 | public final class ExtensionEntity { 32 | 33 | private String name; 34 | 35 | private Class serviceClass; 36 | 37 | private Integer order; 38 | 39 | private ScopeType scopeType; 40 | 41 | } 42 | -------------------------------------------------------------------------------- /hmily-spi/src/main/java/org/dromara/hmily/spi/InitializeSPI.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-2021 Dromara.org 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.dromara.hmily.spi; 18 | 19 | /** 20 | * The interface Initialize spi. 21 | * 22 | * @author xiaoyu 23 | */ 24 | public interface InitializeSPI { 25 | 26 | /** 27 | * Init. 28 | */ 29 | void init(); 30 | } 31 | -------------------------------------------------------------------------------- /hmily-spi/src/main/java/org/dromara/hmily/spi/ScopeType.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-2021 Dromara.org 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.dromara.hmily.spi; 18 | 19 | /** 20 | * The enum Scope type. 21 | * 22 | * @author xiaoyu 23 | */ 24 | public enum ScopeType { 25 | 26 | /** 27 | * Singleton scope type. 28 | */ 29 | SINGLETON, 30 | /** 31 | * Prototype scope type. 32 | */ 33 | PROTOTYPE 34 | } 35 | -------------------------------------------------------------------------------- /hmily-spi/src/test/java/org/dromara/hmily/spi/fixture/HelloWorldTestSPI.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-2021 Dromara.org 3 | 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.dromara.hmily.spi.fixture; 18 | 19 | import org.dromara.hmily.spi.HmilySPI; 20 | import org.dromara.hmily.spi.ScopeType; 21 | 22 | @HmilySPI(value = "hello", order = 1, scopeType = ScopeType.SINGLETON) 23 | public class HelloWorldTestSPI implements HmilyTestSPI { 24 | 25 | @Override 26 | public String sayHello() { 27 | return "hello world"; 28 | } 29 | 30 | @Override 31 | public void init() { 32 | 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /hmily-spi/src/test/java/org/dromara/hmily/spi/fixture/HmilyTestSPI.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-2021 Dromara.org 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.dromara.hmily.spi.fixture; 18 | 19 | import org.dromara.hmily.spi.InitializeSPI; 20 | 21 | public interface HmilyTestSPI extends InitializeSPI { 22 | 23 | String sayHello(); 24 | } 25 | -------------------------------------------------------------------------------- /hmily-spi/src/test/java/org/dromara/hmily/spi/fixture/JdbcSPI.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-2021 Dromara.org 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.dromara.hmily.spi.fixture; 18 | 19 | import org.dromara.hmily.spi.HmilySPI; 20 | import org.dromara.hmily.spi.InitializeSPI; 21 | 22 | public interface JdbcSPI extends InitializeSPI { 23 | 24 | String getClassName(); 25 | } 26 | -------------------------------------------------------------------------------- /hmily-spi/src/test/java/org/dromara/hmily/spi/fixture/MysqlSPI.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-2021 Dromara.org 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.dromara.hmily.spi.fixture; 18 | 19 | 20 | import org.dromara.hmily.spi.HmilySPI; 21 | import org.dromara.hmily.spi.ScopeType; 22 | 23 | @HmilySPI(value = "mysql", order = 1, scopeType = ScopeType.SINGLETON) 24 | public class MysqlSPI implements JdbcSPI { 25 | 26 | @Override 27 | public String getClassName() { 28 | return "mysql"; 29 | } 30 | 31 | @Override 32 | public void init() { 33 | 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /hmily-spi/src/test/java/org/dromara/hmily/spi/fixture/NoHelloTestSPI.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-2021 Dromara.org 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.dromara.hmily.spi.fixture; 18 | 19 | import org.dromara.hmily.spi.HmilySPI; 20 | import org.dromara.hmily.spi.ScopeType; 21 | 22 | @HmilySPI(value = "no", order = 2, scopeType = ScopeType.PROTOTYPE) 23 | public class NoHelloTestSPI implements HmilyTestSPI { 24 | 25 | @Override 26 | public String sayHello() { 27 | return " no hello world"; 28 | } 29 | 30 | @Override 31 | public void init() { 32 | 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /hmily-spi/src/test/java/org/dromara/hmily/spi/fixture/OracleSPI.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-2021 Dromara.org 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.dromara.hmily.spi.fixture; 18 | 19 | 20 | import org.dromara.hmily.spi.HmilySPI; 21 | import org.dromara.hmily.spi.ScopeType; 22 | 23 | @HmilySPI(value = "oracle", order = 2, scopeType = ScopeType.PROTOTYPE) 24 | public class OracleSPI implements JdbcSPI { 25 | 26 | @Override 27 | public String getClassName() { 28 | return "oracle"; 29 | } 30 | 31 | @Override 32 | public void init() { 33 | 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /hmily-spi/src/test/resources/META-INF/hmily/org.dromara.hmily.spi.fixture.HmilyTestSPI: -------------------------------------------------------------------------------- 1 | org.dromara.hmily.spi.fixture.HelloWorldTestSPI 2 | org.dromara.hmily.spi.fixture.NoHelloTestSPI 3 | -------------------------------------------------------------------------------- /hmily-spi/src/test/resources/META-INF/hmily/org.dromara.hmily.spi.fixture.JdbcSPI: -------------------------------------------------------------------------------- 1 | org.dromara.hmily.spi.fixture.MysqlSPI 2 | org.dromara.hmily.spi.fixture.OracleSPI -------------------------------------------------------------------------------- /hmily-spring-boot-starter/hmily-spring-boot-starter-apache-dubbo/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | org.dromara 7 | hmily-spring-boot-starter 8 | 2.1.3-SNAPSHOT 9 | 10 | 4.0.0 11 | jar 12 | hmily-spring-boot-starter-apache-dubbo 13 | 14 | 15 | 16 | 17 | org.dromara 18 | hmily-spring-boot-starter-parent 19 | ${project.version} 20 | 21 | 22 | 23 | org.dromara 24 | hmily-apache-dubbo 25 | ${project.version} 26 | 27 | 28 | -------------------------------------------------------------------------------- /hmily-spring-boot-starter/hmily-spring-boot-starter-apache-dubbo/src/main/resources/META-INF/spring.provides: -------------------------------------------------------------------------------- 1 | provides: hmily-spring-boot-starter-parent 2 | -------------------------------------------------------------------------------- /hmily-spring-boot-starter/hmily-spring-boot-starter-brpc/src/main/resources/META-INF/spring.provides: -------------------------------------------------------------------------------- 1 | provides: hmily-spring-boot-starter-parent 2 | -------------------------------------------------------------------------------- /hmily-spring-boot-starter/hmily-spring-boot-starter-dubbo/src/main/resources/META-INF/spring.provides: -------------------------------------------------------------------------------- 1 | provides: hmily-spring-boot-starter-parent 2 | -------------------------------------------------------------------------------- /hmily-spring-boot-starter/hmily-spring-boot-starter-grpc/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | hmily-spring-boot-starter 7 | org.dromara 8 | 2.1.3-SNAPSHOT 9 | 10 | 4.0.0 11 | 12 | hmily-spring-boot-starter-grpc 13 | 14 | 15 | 16 | org.dromara 17 | hmily-spring-boot-starter-parent 18 | ${project.version} 19 | 20 | 21 | 22 | org.dromara 23 | hmily-grpc 24 | ${project.version} 25 | 26 | 27 | -------------------------------------------------------------------------------- /hmily-spring-boot-starter/hmily-spring-boot-starter-grpc/src/main/resources/META-INF/spring.factories: -------------------------------------------------------------------------------- 1 | org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ 2 | org.dromara.hmily.grpc.startup.GrpcHmilyConfiguration -------------------------------------------------------------------------------- /hmily-spring-boot-starter/hmily-spring-boot-starter-grpc/src/main/resources/META-INF/spring.provides: -------------------------------------------------------------------------------- 1 | provides: hmily-spring-boot-starter-parent 2 | -------------------------------------------------------------------------------- /hmily-spring-boot-starter/hmily-spring-boot-starter-motan/src/main/resources/META-INF/spring.provides: -------------------------------------------------------------------------------- 1 | provides: hmily-spring-boot-starter-parent 2 | -------------------------------------------------------------------------------- /hmily-spring-boot-starter/hmily-spring-boot-starter-parent/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | org.dromara 7 | hmily-spring-boot-starter 8 | 2.1.3-SNAPSHOT 9 | 10 | 4.0.0 11 | jar 12 | hmily-spring-boot-starter-parent 13 | 14 | 15 | 16 | org.dromara 17 | hmily-spring 18 | ${project.version} 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /hmily-spring-boot-starter/hmily-spring-boot-starter-parent/src/main/resources/META-INF/spring.factories: -------------------------------------------------------------------------------- 1 | org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ 2 | org.dromara.hmily.spring.boot.starter.parent.configuration.HmilyAutoConfiguration 3 | -------------------------------------------------------------------------------- /hmily-spring-boot-starter/hmily-spring-boot-starter-sofa-rpc/src/main/resources/META-INF/spring.provides: -------------------------------------------------------------------------------- 1 | provides: hmily-spring-boot-starter-parent 2 | -------------------------------------------------------------------------------- /hmily-spring-boot-starter/hmily-spring-boot-starter-springcloud/src/main/resources/META-INF/spring.provides: -------------------------------------------------------------------------------- 1 | provides: hmily-spring-boot-starter-parent 2 | -------------------------------------------------------------------------------- /hmily-spring-boot-starter/hmily-spring-boot-starter-tars/src/main/resources/META-INF/spring.factories: -------------------------------------------------------------------------------- 1 | org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ 2 | org.dromara.hmily.tars.startup.TarsHmilyConfiguration -------------------------------------------------------------------------------- /hmily-spring-boot-starter/hmily-spring-boot-starter-tars/src/main/resources/META-INF/spring.provides: -------------------------------------------------------------------------------- 1 | provides: hmily-spring-boot-starter-parent 2 | -------------------------------------------------------------------------------- /hmily-spring/src/main/java/org/dromara/hmily/spring/aop/SpringHmilyTransactionAspect.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-2021 Dromara.org 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.dromara.hmily.spring.aop; 18 | 19 | import org.dromara.hmily.core.aspect.AbstractHmilyTransactionAspect; 20 | import org.springframework.core.Ordered; 21 | 22 | /** 23 | * The type Spring hmily transaction aspect. 24 | * 25 | * @author xiaoyu 26 | */ 27 | public class SpringHmilyTransactionAspect extends AbstractHmilyTransactionAspect implements Ordered { 28 | 29 | @Override 30 | public int getOrder() { 31 | return Ordered.HIGHEST_PRECEDENCE; 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /hmily-tac/hmily-tac-common/src/main/java/org/dromara/hmily/tac/common/HmilyTacResource.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-2021 Dromara.org 3 | 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.dromara.hmily.tac.common; 18 | 19 | import javax.sql.DataSource; 20 | 21 | /** 22 | * The interface Hmily tac resource. 23 | */ 24 | public interface HmilyTacResource { 25 | 26 | /** 27 | * Gets resource id. 28 | * 29 | * @return the resource id 30 | */ 31 | String getResourceId(); 32 | 33 | /** 34 | * Get target data source. 35 | * 36 | * @return data source 37 | */ 38 | DataSource getTargetDataSource(); 39 | } 40 | -------------------------------------------------------------------------------- /hmily-tac/hmily-tac-common/src/main/java/org/dromara/hmily/tac/common/database/UnrecognizedDatabaseURLException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-2021 Dromara.org 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.dromara.hmily.tac.common.database; 18 | 19 | 20 | /** 21 | * Unrecognized database URL exception. 22 | */ 23 | public final class UnrecognizedDatabaseURLException extends RuntimeException { 24 | 25 | private static final long serialVersionUID = -1551117178863766353L; 26 | 27 | public UnrecognizedDatabaseURLException(final String url, final String pattern) { 28 | super(String.format("The URL: '%s' is not recognized. Please refer to this pattern: '%s'.", url, pattern)); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /hmily-tac/hmily-tac-common/src/main/java/org/dromara/hmily/tac/common/database/type/MemorizedDataSourceMetaData.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-2021 Dromara.org 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.dromara.hmily.tac.common.database.type; 18 | 19 | import org.dromara.hmily.tac.common.database.metadata.DataSourceMetaData; 20 | 21 | /** 22 | * Memorized data source meta data. 23 | */ 24 | public interface MemorizedDataSourceMetaData extends DataSourceMetaData { 25 | } 26 | -------------------------------------------------------------------------------- /hmily-tac/hmily-tac-common/src/main/java/org/dromara/hmily/tac/common/utils/DatabaseTypes.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-2021 Dromara.org 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.dromara.hmily.tac.common.utils; 18 | 19 | import lombok.Getter; 20 | import lombok.Setter; 21 | import org.dromara.hmily.tac.common.database.type.DatabaseType; 22 | 23 | /** 24 | * The enum Database types. 25 | * 26 | * @author xiaoyu 27 | */ 28 | public enum DatabaseTypes { 29 | 30 | /** 31 | * Instance database types. 32 | */ 33 | INSTANCE; 34 | 35 | @Setter 36 | @Getter 37 | // TODO multiple database type will not be supported 38 | private DatabaseType databaseType; 39 | } 40 | -------------------------------------------------------------------------------- /hmily-tac/hmily-tac-common/src/main/resources/META-INF/hmily/org.dromara.hmily.tac.common.database.dialect.DatabaseMetaDataDialectHandler: -------------------------------------------------------------------------------- 1 | org.dromara.hmily.tac.common.database.dialect.H2DatabaseMetaDataDialectHandler 2 | org.dromara.hmily.tac.common.database.dialect.MariaDBDatabaseMetaDataDialectHandler 3 | org.dromara.hmily.tac.common.database.dialect.MySQLDatabaseMetaDataDialectHandler 4 | org.dromara.hmily.tac.common.database.dialect.OracleDatabaseMetaDataDialectHandler 5 | org.dromara.hmily.tac.common.database.dialect.PostgreSQLDatabaseMetaDataDialectHandler 6 | org.dromara.hmily.tac.common.database.dialect.SQL92DatabaseMetaDataDialectHandler 7 | org.dromara.hmily.tac.common.database.dialect.SQLServerDatabaseMetaDataDialectHandler 8 | 9 | -------------------------------------------------------------------------------- /hmily-tac/hmily-tac-common/src/main/resources/META-INF/hmily/org.dromara.hmily.tac.common.database.type.DatabaseType: -------------------------------------------------------------------------------- 1 | org.dromara.hmily.tac.common.database.type.H2DatabaseType 2 | org.dromara.hmily.tac.common.database.type.MariaDBDatabaseType 3 | org.dromara.hmily.tac.common.database.type.MySQLDatabaseType 4 | org.dromara.hmily.tac.common.database.type.OracleDatabaseType 5 | org.dromara.hmily.tac.common.database.type.PostgreSQLDatabaseType 6 | org.dromara.hmily.tac.common.database.type.SQL92DatabaseType 7 | org.dromara.hmily.tac.common.database.type.SQLServerDatabaseType 8 | 9 | -------------------------------------------------------------------------------- /hmily-tac/hmily-tac-core/src/main/resources/META-INF/hmily/org.dromara.hmily.core.service.HmilyTransactionHandlerRegistry: -------------------------------------------------------------------------------- 1 | org.dromara.hmily.tac.core.handler.HmilyTacTransactionHandlerRegistry -------------------------------------------------------------------------------- /hmily-tac/hmily-tac-metadata/src/main/java/org/dromara/hmily/tac/metadata/model/DataSourceMetaData.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-2021 Dromara.org 3 | 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.dromara.hmily.tac.metadata.model; 18 | 19 | import lombok.Getter; 20 | 21 | import java.util.LinkedHashMap; 22 | import java.util.Map; 23 | 24 | /** 25 | * Data source metadata. 26 | * 27 | * @author zhaojun 28 | */ 29 | @Getter 30 | public final class DataSourceMetaData { 31 | 32 | private final Map tableMetaDataMap = new LinkedHashMap<>(); 33 | } 34 | -------------------------------------------------------------------------------- /hmily-tac/hmily-tac-metadata/src/main/java/org/dromara/hmily/tac/metadata/model/IndexMetaData.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-2021 Dromara.org 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.dromara.hmily.tac.metadata.model; 18 | 19 | import lombok.EqualsAndHashCode; 20 | import lombok.Getter; 21 | import lombok.RequiredArgsConstructor; 22 | import lombok.ToString; 23 | 24 | /** 25 | * Physical index meta data. 26 | */ 27 | @RequiredArgsConstructor 28 | @Getter 29 | @EqualsAndHashCode 30 | @ToString 31 | public final class IndexMetaData { 32 | 33 | private final String name; 34 | } 35 | -------------------------------------------------------------------------------- /hmily-tac/hmily-tac-p6spy/src/main/resources/META-INF/services/com.p6spy.engine.spy.JdbcEventListenerFactory: -------------------------------------------------------------------------------- 1 | org.dromara.hmily.tac.p6spy.listener.HmilyJdbcEventListenerFactory 2 | -------------------------------------------------------------------------------- /hmily-tac/hmily-tac-sqlparser/hmily-tac-sqlparser-calcite/src/main/resources/META-INF/hmily/org.dromara.hmily.tac.sqlparser.spi.HmilySqlParserEngine: -------------------------------------------------------------------------------- 1 | org.dromara.hmily.tac.sqlparser.calcite.CalciteSqlParserEngine -------------------------------------------------------------------------------- /hmily-tac/hmily-tac-sqlparser/hmily-tac-sqlparser-model/src/main/java/org/dromara/hmily/tac/sqlparser/model/common/HmilyASTNode.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-2021 Dromara.org 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.dromara.hmily.tac.sqlparser.model.common; 18 | 19 | /** 20 | * AST node. 21 | */ 22 | public interface HmilyASTNode { 23 | } 24 | -------------------------------------------------------------------------------- /hmily-tac/hmily-tac-sqlparser/hmily-tac-sqlparser-model/src/main/java/org/dromara/hmily/tac/sqlparser/model/common/constant/HmilyOrderDirection.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-2021 Dromara.org 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.dromara.hmily.tac.sqlparser.model.common.constant; 18 | 19 | /** 20 | * Order direction. 21 | */ 22 | public enum HmilyOrderDirection { 23 | 24 | /** 25 | * Ascending direction. 26 | */ 27 | ASC, 28 | 29 | /** 30 | * Descending direction. 31 | */ 32 | DESC 33 | } 34 | -------------------------------------------------------------------------------- /hmily-tac/hmily-tac-sqlparser/hmily-tac-sqlparser-model/src/main/java/org/dromara/hmily/tac/sqlparser/model/common/segment/HmilySegment.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-2021 Dromara.org 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.dromara.hmily.tac.sqlparser.model.common.segment; 18 | 19 | import org.dromara.hmily.tac.sqlparser.model.common.HmilyASTNode; 20 | 21 | /** 22 | * SQL segment. 23 | */ 24 | public interface HmilySegment extends HmilyASTNode { 25 | 26 | /** 27 | * Get start index. 28 | * 29 | * @return start index 30 | */ 31 | int getStartIndex(); 32 | 33 | /** 34 | * Get stop index. 35 | * 36 | * @return stop index 37 | */ 38 | int getStopIndex(); 39 | } 40 | -------------------------------------------------------------------------------- /hmily-tac/hmily-tac-sqlparser/hmily-tac-sqlparser-model/src/main/java/org/dromara/hmily/tac/sqlparser/model/common/segment/dml/expr/HmilyAllColumnExpression.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-2021 Dromara.org 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.dromara.hmily.tac.sqlparser.model.common.segment.dml.expr; 18 | 19 | import lombok.Getter; 20 | import lombok.RequiredArgsConstructor; 21 | 22 | @RequiredArgsConstructor 23 | @Getter 24 | public final class HmilyAllColumnExpression implements HmilyExpressionSegment { 25 | 26 | private int startIndex; 27 | 28 | private int stopIndex; 29 | } 30 | -------------------------------------------------------------------------------- /hmily-tac/hmily-tac-sqlparser/hmily-tac-sqlparser-model/src/main/java/org/dromara/hmily/tac/sqlparser/model/common/segment/dml/expr/HmilyExpressionSegment.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-2021 Dromara.org 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.dromara.hmily.tac.sqlparser.model.common.segment.dml.expr; 18 | 19 | import org.dromara.hmily.tac.sqlparser.model.common.segment.HmilySegment; 20 | 21 | /** 22 | * Expression segment. 23 | */ 24 | public interface HmilyExpressionSegment extends HmilySegment { 25 | } 26 | -------------------------------------------------------------------------------- /hmily-tac/hmily-tac-sqlparser/hmily-tac-sqlparser-model/src/main/java/org/dromara/hmily/tac/sqlparser/model/common/segment/dml/expr/HmilyNotExpression.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-2021 Dromara.org 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.dromara.hmily.tac.sqlparser.model.common.segment.dml.expr; 18 | 19 | import lombok.Getter; 20 | import lombok.RequiredArgsConstructor; 21 | 22 | @RequiredArgsConstructor 23 | @Getter 24 | public final class HmilyNotExpression implements HmilyExpressionSegment { 25 | 26 | private final int startIndex; 27 | 28 | private final int stopIndex; 29 | 30 | private final HmilyExpressionSegment expression; 31 | } 32 | -------------------------------------------------------------------------------- /hmily-tac/hmily-tac-sqlparser/hmily-tac-sqlparser-model/src/main/java/org/dromara/hmily/tac/sqlparser/model/common/segment/dml/expr/complex/HmilyComplexExpressionSegment.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-2021 Dromara.org 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.dromara.hmily.tac.sqlparser.model.common.segment.dml.expr.complex; 18 | 19 | import org.dromara.hmily.tac.sqlparser.model.common.segment.dml.expr.HmilyExpressionSegment; 20 | 21 | /** 22 | * Complex expression segment. 23 | */ 24 | public interface HmilyComplexExpressionSegment extends HmilyExpressionSegment { 25 | 26 | /** 27 | * Get text. 28 | * 29 | * @return text 30 | */ 31 | String getText(); 32 | } 33 | -------------------------------------------------------------------------------- /hmily-tac/hmily-tac-sqlparser/hmily-tac-sqlparser-model/src/main/java/org/dromara/hmily/tac/sqlparser/model/common/segment/dml/expr/simple/HmilySimpleExpressionSegment.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-2021 Dromara.org 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.dromara.hmily.tac.sqlparser.model.common.segment.dml.expr.simple; 18 | 19 | import org.dromara.hmily.tac.sqlparser.model.common.segment.dml.expr.HmilyExpressionSegment; 20 | 21 | /** 22 | * Simple expression segment. 23 | */ 24 | public interface HmilySimpleExpressionSegment extends HmilyExpressionSegment { 25 | } 26 | -------------------------------------------------------------------------------- /hmily-tac/hmily-tac-sqlparser/hmily-tac-sqlparser-model/src/main/java/org/dromara/hmily/tac/sqlparser/model/common/segment/dml/item/HmilyProjectionSegment.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-2021 Dromara.org 3 | 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.dromara.hmily.tac.sqlparser.model.common.segment.dml.item; 18 | 19 | import org.dromara.hmily.tac.sqlparser.model.common.segment.HmilySegment; 20 | 21 | /** 22 | * Projection segment. 23 | */ 24 | public interface HmilyProjectionSegment extends HmilySegment { 25 | } 26 | -------------------------------------------------------------------------------- /hmily-tac/hmily-tac-sqlparser/hmily-tac-sqlparser-model/src/main/java/org/dromara/hmily/tac/sqlparser/model/common/segment/dml/pagination/HmilyNumberLiteralPaginationValueSegment.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-2021 Dromara.org 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.dromara.hmily.tac.sqlparser.model.common.segment.dml.pagination; 18 | 19 | /** 20 | * Pagination value segment for number literal. 21 | */ 22 | public interface HmilyNumberLiteralPaginationValueSegment extends HmilyPaginationValueSegment { 23 | 24 | /** 25 | * Get value. 26 | * 27 | * @return value 28 | */ 29 | long getValue(); 30 | } 31 | -------------------------------------------------------------------------------- /hmily-tac/hmily-tac-sqlparser/hmily-tac-sqlparser-model/src/main/java/org/dromara/hmily/tac/sqlparser/model/common/segment/dml/pagination/HmilyPaginationValueSegment.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-2021 Dromara.org 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.dromara.hmily.tac.sqlparser.model.common.segment.dml.pagination; 18 | 19 | import org.dromara.hmily.tac.sqlparser.model.common.segment.HmilySegment; 20 | 21 | /** 22 | * Pagination value segment. 23 | */ 24 | public interface HmilyPaginationValueSegment extends HmilySegment { 25 | 26 | /** 27 | * Is bound opened. 28 | * 29 | * @return bound opened 30 | */ 31 | boolean isBoundOpened(); 32 | } 33 | -------------------------------------------------------------------------------- /hmily-tac/hmily-tac-sqlparser/hmily-tac-sqlparser-model/src/main/java/org/dromara/hmily/tac/sqlparser/model/common/segment/dml/pagination/HmilyParameterMarkerPaginationValueSegment.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-2021 Dromara.org 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.dromara.hmily.tac.sqlparser.model.common.segment.dml.pagination; 18 | 19 | /** 20 | * Pagination value segment for parameter marker. 21 | */ 22 | public interface HmilyParameterMarkerPaginationValueSegment extends HmilyPaginationValueSegment { 23 | 24 | /** 25 | * Get parameter index. 26 | * 27 | * @return parameter index 28 | */ 29 | int getParameterIndex(); 30 | } 31 | -------------------------------------------------------------------------------- /hmily-tac/hmily-tac-sqlparser/hmily-tac-sqlparser-model/src/main/java/org/dromara/hmily/tac/sqlparser/model/common/segment/dml/predicate/HmilyLockSegment.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-2021 Dromara.org 3 | 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.dromara.hmily.tac.sqlparser.model.common.segment.dml.predicate; 18 | 19 | import lombok.Getter; 20 | import lombok.RequiredArgsConstructor; 21 | import org.dromara.hmily.tac.sqlparser.model.common.segment.HmilySegment; 22 | 23 | /** 24 | * Lock segment. 25 | */ 26 | 27 | @RequiredArgsConstructor 28 | @Getter 29 | public final class HmilyLockSegment implements HmilySegment { 30 | 31 | private final int startIndex; 32 | 33 | private final int stopIndex; 34 | } 35 | -------------------------------------------------------------------------------- /hmily-tac/hmily-tac-sqlparser/hmily-tac-sqlparser-model/src/main/java/org/dromara/hmily/tac/sqlparser/model/common/segment/generic/HmilyRemoveAvailable.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-2021 Dromara.org 3 | 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.dromara.hmily.tac.sqlparser.model.common.segment.generic; 18 | 19 | import org.dromara.hmily.tac.sqlparser.model.common.segment.HmilySegment; 20 | 21 | /** 22 | * Remove available. 23 | */ 24 | public interface HmilyRemoveAvailable extends HmilySegment { 25 | } 26 | -------------------------------------------------------------------------------- /hmily-tac/hmily-tac-sqlparser/hmily-tac-sqlparser-model/src/main/java/org/dromara/hmily/tac/sqlparser/model/common/segment/generic/table/HmilyTableSegment.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-2021 Dromara.org 3 | 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.dromara.hmily.tac.sqlparser.model.common.segment.generic.table; 18 | 19 | import org.dromara.hmily.tac.sqlparser.model.common.segment.generic.HmilyAliasAvailable; 20 | 21 | /** 22 | * Table segment. 23 | */ 24 | public interface HmilyTableSegment extends HmilyAliasAvailable { 25 | } 26 | -------------------------------------------------------------------------------- /hmily-tac/hmily-tac-sqlparser/hmily-tac-sqlparser-model/src/main/java/org/dromara/hmily/tac/sqlparser/model/common/statement/AbstractHmilyStatement.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-2021 Dromara.org 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.dromara.hmily.tac.sqlparser.model.common.statement; 18 | 19 | import lombok.Getter; 20 | import lombok.Setter; 21 | 22 | /** 23 | * SQL statement abstract class. 24 | */ 25 | @Getter 26 | @Setter 27 | public abstract class AbstractHmilyStatement implements HmilyStatement { 28 | 29 | private int parameterCount; 30 | } 31 | -------------------------------------------------------------------------------- /hmily-tac/hmily-tac-sqlparser/hmily-tac-sqlparser-model/src/main/java/org/dromara/hmily/tac/sqlparser/model/common/statement/HmilyStatement.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-2021 Dromara.org 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.dromara.hmily.tac.sqlparser.model.common.statement; 18 | 19 | import org.dromara.hmily.tac.sqlparser.model.common.HmilyASTNode; 20 | 21 | /** 22 | * SQL statement. 23 | */ 24 | public interface HmilyStatement extends HmilyASTNode { 25 | 26 | /** 27 | * Get count of parameters. 28 | * 29 | * @return count of parameters 30 | */ 31 | int getParameterCount(); 32 | } 33 | -------------------------------------------------------------------------------- /hmily-tac/hmily-tac-sqlparser/hmily-tac-sqlparser-model/src/main/java/org/dromara/hmily/tac/sqlparser/model/common/statement/HmilyStatementType.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-2021 Dromara.org 3 | 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.dromara.hmily.tac.sqlparser.model.common.statement; 18 | 19 | /** 20 | * SQL statement type. 21 | */ 22 | public enum HmilyStatementType { 23 | 24 | DML, DDL, TCL, DCL, DAL, RL 25 | } 26 | -------------------------------------------------------------------------------- /hmily-tac/hmily-tac-sqlparser/hmily-tac-sqlparser-model/src/main/java/org/dromara/hmily/tac/sqlparser/model/common/statement/dml/HmilyDMLStatement.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-2021 Dromara.org 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.dromara.hmily.tac.sqlparser.model.common.statement.dml; 18 | 19 | import org.dromara.hmily.tac.sqlparser.model.common.statement.HmilyStatement; 20 | 21 | /** 22 | * DML statement. 23 | */ 24 | public interface HmilyDMLStatement extends HmilyStatement { 25 | } 26 | -------------------------------------------------------------------------------- /hmily-tac/hmily-tac-sqlparser/hmily-tac-sqlparser-model/src/main/java/org/dromara/hmily/tac/sqlparser/model/common/value/HmilyValueASTNode.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-2021 Dromara.org 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.dromara.hmily.tac.sqlparser.model.common.value; 18 | 19 | import org.dromara.hmily.tac.sqlparser.model.common.HmilyASTNode; 20 | 21 | /** 22 | * Value AST node. 23 | * 24 | * @param type of value 25 | */ 26 | public interface HmilyValueASTNode extends HmilyASTNode { 27 | 28 | /** 29 | * Get value. 30 | * 31 | * @return value 32 | */ 33 | T getValue(); 34 | } 35 | -------------------------------------------------------------------------------- /hmily-tac/hmily-tac-sqlparser/hmily-tac-sqlparser-model/src/main/java/org/dromara/hmily/tac/sqlparser/model/common/value/keyword/HmilyKeywordValue.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-2021 Dromara.org 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.dromara.hmily.tac.sqlparser.model.common.value.keyword; 18 | 19 | import lombok.Getter; 20 | import lombok.RequiredArgsConstructor; 21 | import org.dromara.hmily.tac.sqlparser.model.common.value.HmilyValueASTNode; 22 | 23 | /** 24 | * Keyword value. 25 | */ 26 | @RequiredArgsConstructor 27 | @Getter 28 | public final class HmilyKeywordValue implements HmilyValueASTNode { 29 | 30 | private final String value; 31 | } 32 | -------------------------------------------------------------------------------- /hmily-tac/hmily-tac-sqlparser/hmily-tac-sqlparser-model/src/main/java/org/dromara/hmily/tac/sqlparser/model/common/value/literal/HmilyLiteralValue.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-2021 Dromara.org 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.dromara.hmily.tac.sqlparser.model.common.value.literal; 18 | 19 | import org.dromara.hmily.tac.sqlparser.model.common.value.HmilyValueASTNode; 20 | 21 | /** 22 | * Literal value. 23 | * 24 | * @param type of value 25 | */ 26 | public interface HmilyLiteralValue extends HmilyValueASTNode { 27 | } 28 | -------------------------------------------------------------------------------- /hmily-tac/hmily-tac-sqlparser/hmily-tac-sqlparser-model/src/main/java/org/dromara/hmily/tac/sqlparser/model/common/value/literal/impl/HmilyOtherLiteralValue.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-2021 Dromara.org 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.dromara.hmily.tac.sqlparser.model.common.value.literal.impl; 18 | 19 | import lombok.Getter; 20 | import lombok.RequiredArgsConstructor; 21 | import org.dromara.hmily.tac.sqlparser.model.common.value.literal.HmilyLiteralValue; 22 | 23 | /** 24 | * Other literal value. 25 | */ 26 | @RequiredArgsConstructor 27 | @Getter 28 | public final class HmilyOtherLiteralValue implements HmilyLiteralValue { 29 | 30 | private final String value; 31 | } 32 | -------------------------------------------------------------------------------- /hmily-tac/hmily-tac-sqlparser/hmily-tac-sqlparser-model/src/main/java/org/dromara/hmily/tac/sqlparser/model/common/value/parametermarker/HmilyParameterMarkerValue.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-2021 Dromara.org 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.dromara.hmily.tac.sqlparser.model.common.value.parametermarker; 18 | 19 | import lombok.Getter; 20 | import lombok.RequiredArgsConstructor; 21 | import org.dromara.hmily.tac.sqlparser.model.common.value.HmilyValueASTNode; 22 | 23 | /** 24 | * Parameter marker value. 25 | */ 26 | @RequiredArgsConstructor 27 | @Getter 28 | public final class HmilyParameterMarkerValue implements HmilyValueASTNode { 29 | 30 | private final Integer value; 31 | } 32 | -------------------------------------------------------------------------------- /hmily-tac/hmily-tac-sqlparser/hmily-tac-sqlparser-model/src/main/java/org/dromara/hmily/tac/sqlparser/model/dialect/mysql/HmilyMySQLStatement.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-2021 Dromara.org 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.dromara.hmily.tac.sqlparser.model.dialect.mysql; 18 | 19 | import org.dromara.hmily.tac.sqlparser.model.common.statement.HmilyStatement; 20 | 21 | /** 22 | * MySQL statement. 23 | */ 24 | public interface HmilyMySQLStatement extends HmilyStatement { 25 | } 26 | -------------------------------------------------------------------------------- /hmily-tac/hmily-tac-sqlparser/hmily-tac-sqlparser-model/src/main/java/org/dromara/hmily/tac/sqlparser/model/dialect/oracle/HmilyOracleStatement.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-2021 Dromara.org 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.dromara.hmily.tac.sqlparser.model.dialect.oracle; 18 | 19 | import org.dromara.hmily.tac.sqlparser.model.common.statement.HmilyStatement; 20 | 21 | /** 22 | * Oracle statement. 23 | */ 24 | public interface HmilyOracleStatement extends HmilyStatement { 25 | } 26 | -------------------------------------------------------------------------------- /hmily-tac/hmily-tac-sqlparser/hmily-tac-sqlparser-model/src/main/java/org/dromara/hmily/tac/sqlparser/model/dialect/oracle/dml/HmilyOracleDeleteStatement.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-2021 Dromara.org 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.dromara.hmily.tac.sqlparser.model.dialect.oracle.dml; 18 | 19 | import lombok.ToString; 20 | import org.dromara.hmily.tac.sqlparser.model.common.statement.dml.HmilyDeleteStatement; 21 | import org.dromara.hmily.tac.sqlparser.model.dialect.oracle.HmilyOracleStatement; 22 | 23 | /** 24 | * Oracle delete statement. 25 | */ 26 | @ToString 27 | public final class HmilyOracleDeleteStatement extends HmilyDeleteStatement implements HmilyOracleStatement { 28 | } 29 | -------------------------------------------------------------------------------- /hmily-tac/hmily-tac-sqlparser/hmily-tac-sqlparser-model/src/main/java/org/dromara/hmily/tac/sqlparser/model/dialect/oracle/dml/HmilyOracleInsertStatement.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-2021 Dromara.org 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.dromara.hmily.tac.sqlparser.model.dialect.oracle.dml; 18 | 19 | import lombok.ToString; 20 | import org.dromara.hmily.tac.sqlparser.model.common.statement.dml.HmilyInsertStatement; 21 | import org.dromara.hmily.tac.sqlparser.model.dialect.oracle.HmilyOracleStatement; 22 | 23 | /** 24 | * Oracle insert statement. 25 | */ 26 | @ToString 27 | public final class HmilyOracleInsertStatement extends HmilyInsertStatement implements HmilyOracleStatement { 28 | } 29 | -------------------------------------------------------------------------------- /hmily-tac/hmily-tac-sqlparser/hmily-tac-sqlparser-model/src/main/java/org/dromara/hmily/tac/sqlparser/model/dialect/oracle/dml/HmilyOracleUpdateStatement.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-2021 Dromara.org 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.dromara.hmily.tac.sqlparser.model.dialect.oracle.dml; 18 | 19 | import lombok.ToString; 20 | import org.dromara.hmily.tac.sqlparser.model.common.statement.dml.HmilyUpdateStatement; 21 | import org.dromara.hmily.tac.sqlparser.model.dialect.oracle.HmilyOracleStatement; 22 | 23 | /** 24 | * Oracle update statement. 25 | */ 26 | @ToString 27 | public final class HmilyOracleUpdateStatement extends HmilyUpdateStatement implements HmilyOracleStatement { 28 | } 29 | -------------------------------------------------------------------------------- /hmily-tac/hmily-tac-sqlparser/hmily-tac-sqlparser-model/src/main/java/org/dromara/hmily/tac/sqlparser/model/dialect/postgresql/HmilyPostgreSQLStatement.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-2021 Dromara.org 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.dromara.hmily.tac.sqlparser.model.dialect.postgresql; 18 | 19 | import org.dromara.hmily.tac.sqlparser.model.common.statement.HmilyStatement; 20 | 21 | /** 22 | * PostgreSQL statement. 23 | */ 24 | public interface HmilyPostgreSQLStatement extends HmilyStatement { 25 | } 26 | -------------------------------------------------------------------------------- /hmily-tac/hmily-tac-sqlparser/hmily-tac-sqlparser-model/src/main/java/org/dromara/hmily/tac/sqlparser/model/dialect/postgresql/dml/HmilyPostgreSQLDeleteStatement.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-2021 Dromara.org 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.dromara.hmily.tac.sqlparser.model.dialect.postgresql.dml; 18 | 19 | import lombok.ToString; 20 | import org.dromara.hmily.tac.sqlparser.model.common.statement.dml.HmilyDeleteStatement; 21 | import org.dromara.hmily.tac.sqlparser.model.dialect.postgresql.HmilyPostgreSQLStatement; 22 | 23 | /** 24 | * PostgreSQL delete statement. 25 | */ 26 | @ToString 27 | public final class HmilyPostgreSQLDeleteStatement extends HmilyDeleteStatement implements HmilyPostgreSQLStatement { 28 | } 29 | -------------------------------------------------------------------------------- /hmily-tac/hmily-tac-sqlparser/hmily-tac-sqlparser-model/src/main/java/org/dromara/hmily/tac/sqlparser/model/dialect/postgresql/dml/HmilyPostgreSQLUpdateStatement.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-2021 Dromara.org 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.dromara.hmily.tac.sqlparser.model.dialect.postgresql.dml; 18 | 19 | import lombok.ToString; 20 | import org.dromara.hmily.tac.sqlparser.model.common.statement.dml.HmilyUpdateStatement; 21 | import org.dromara.hmily.tac.sqlparser.model.dialect.postgresql.HmilyPostgreSQLStatement; 22 | 23 | /** 24 | * PostgreSQL update statement. 25 | */ 26 | @ToString 27 | public final class HmilyPostgreSQLUpdateStatement extends HmilyUpdateStatement implements HmilyPostgreSQLStatement { 28 | } 29 | -------------------------------------------------------------------------------- /hmily-tac/hmily-tac-sqlparser/hmily-tac-sqlparser-model/src/main/java/org/dromara/hmily/tac/sqlparser/model/dialect/sqlserver/HmilySQLServerStatement.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-2021 Dromara.org 3 | 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.dromara.hmily.tac.sqlparser.model.dialect.sqlserver; 18 | 19 | import org.dromara.hmily.tac.sqlparser.model.common.statement.HmilyStatement; 20 | 21 | /** 22 | * SQLServer statement. 23 | */ 24 | public interface HmilySQLServerStatement extends HmilyStatement { 25 | } 26 | -------------------------------------------------------------------------------- /hmily-tac/hmily-tac-sqlparser/hmily-tac-sqlparser-shardingsphere/src/main/resources/META-INF/hmily/org.dromara.hmily.tac.sqlparser.spi.HmilySqlParserEngine: -------------------------------------------------------------------------------- 1 | org.dromara.hmily.tac.sqlparser.shardingsphere.ShardingSphereSqlParserEngine -------------------------------------------------------------------------------- /hmily-tac/hmily-tac-sqlrevert/hmily-tac-sqlrevert-core/src/main/java/org/dromara/hmily/tac/sqlrevert/core/image/RevertSQLUnit.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-2021 Dromara.org 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.dromara.hmily.tac.sqlrevert.core.image; 18 | 19 | import lombok.Getter; 20 | import lombok.RequiredArgsConstructor; 21 | import lombok.ToString; 22 | 23 | import java.util.List; 24 | 25 | /** 26 | * Revert SQL unit. 27 | * 28 | * @author zhaojun 29 | */ 30 | @RequiredArgsConstructor 31 | @Getter 32 | @ToString 33 | public final class RevertSQLUnit { 34 | 35 | private final String sql; 36 | 37 | private final List parameters; 38 | } 39 | -------------------------------------------------------------------------------- /hmily-tac/hmily-tac-sqlrevert/hmily-tac-sqlrevert-core/src/main/java/org/dromara/hmily/tac/sqlrevert/core/image/SQLImageMapper.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017-2021 Dromara.org 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.dromara.hmily.tac.sqlrevert.core.image; 18 | 19 | /** 20 | * SQL image mapper interface. 21 | * 22 | * @author zhaojun 23 | */ 24 | public interface SQLImageMapper { 25 | 26 | /** 27 | * Cast image data to revert SQL unit. 28 | * 29 | * @return revert SQL unit 30 | */ 31 | RevertSQLUnit cast(); 32 | } 33 | -------------------------------------------------------------------------------- /hmily-tac/hmily-tac-sqlrevert/hmily-tac-sqlrevert-core/src/main/resources/META-INF/hmily/org.dromara.hmily.tac.sqlrevert.spi.HmilySQLRevertEngine: -------------------------------------------------------------------------------- 1 | org.dromara.hmily.tac.sqlrevert.core.DefaultSQLRevertEngine -------------------------------------------------------------------------------- /hmily-tcc/src/main/resources/META-INF/hmily/org.dromara.hmily.core.service.HmilyTransactionHandlerRegistry: -------------------------------------------------------------------------------- 1 | org.dromara.hmily.tcc.handler.HmilyTccTransactionHandlerRegistry -------------------------------------------------------------------------------- /hmily-xa/hmily-xa-core/src/main/java/org/dromara/hmily/xa/core/timer/TimerTask.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2012 The Netty Project 3 | * 4 | * The Netty Project licenses this file to you under the Apache License, 5 | * version 2.0 (the "License"); you may not use this file except in compliance 6 | * with the License. You may obtain a copy of the License at: 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 12 | * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 13 | * License for the specific language governing permissions and limitations 14 | * under the License. 15 | */ 16 | 17 | package org.dromara.hmily.xa.core.timer; 18 | 19 | import java.util.concurrent.TimeUnit; 20 | 21 | /** 22 | * A task which is executed after the delay specified with 23 | * {@link Timer#newTimeout(TimerTask, long, TimeUnit)}. 24 | */ 25 | public interface TimerTask { 26 | 27 | /** 28 | * Executed after the delay specified with 29 | * {@link Timer#newTimeout(TimerTask, long, TimeUnit)}. 30 | * 31 | * @param timeout a handle which is associated with this task 32 | */ 33 | void run(Timeout timeout); 34 | } 35 | -------------------------------------------------------------------------------- /hmily-xa/hmily-xa-core/src/main/resources/META-INF/hmily/org.dromara.hmily.config.api.Config: -------------------------------------------------------------------------------- 1 | org.dromara.hmily.xa.core.XaConfig -------------------------------------------------------------------------------- /hmily-xa/hmily-xa-p6spy/src/main/resources/META-INF/services/com.p6spy.engine.spy.JdbcEventListenerFactory: -------------------------------------------------------------------------------- 1 | org.dromara.hmily.xa.p6spy.listener.HmilyJdbcEventListenerFactory 2 | -------------------------------------------------------------------------------- /hmily-xa/hmily-xa-rpc/hmily-xa-rpc-common/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | hmily-xa-rpc 7 | org.dromara 8 | 2.1.3-SNAPSHOT 9 | 10 | 4.0.0 11 | 12 | hmily-xa-rpc-common 13 | 14 | 15 | 8 16 | 8 17 | 18 | 19 | 20 | 21 | org.dromara 22 | hmily-xa-core 23 | 24 | 25 | org.dromara 26 | hmily-xa-p6spy 27 | 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /hmily-xa/hmily-xa-rpc/hmily-xa-rpc-common/src/main/resources/META-INF/hmily/org.dromara.hmily.core.service.HmilyTransactionHandlerRegistry: -------------------------------------------------------------------------------- 1 | org.dromara.hmily.xa.rpc.spring.XaTransactionHandlerRegistry -------------------------------------------------------------------------------- /hmily-xa/hmily-xa-rpc/hmily-xa-rpc-dubbo/src/main/resources/META-INF/dubbo/org.apache.dubbo.rpc.Filter: -------------------------------------------------------------------------------- 1 | xaFilter=org.dromara.hmily.xa.rpc.dubbo.DubboXaFilter -------------------------------------------------------------------------------- /hmily-xa/hmily-xa-rpc/hmily-xa-rpc-springcloud/src/main/resources/META-INF/hmily/org.dromara.hmily.core.mediator.RpcParameterLoader: -------------------------------------------------------------------------------- 1 | org.dromara.hmily.xa.rpc.springcloud.parameter.SpringCloudParameterLoader 2 | -------------------------------------------------------------------------------- /hmily-xa/hmily-xa-rpc/hmily-xa-rpc-springcloud/src/main/resources/META-INF/spring.factories: -------------------------------------------------------------------------------- 1 | org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ 2 | org.dromara.hmily.xa.rpc.springcloud.SpringCloudXaAutoConfiguration,\ 3 | org.dromara.hmily.xa.rpc.springcloud.loadbalancer.XaLoadBalancerAutoConfiguration 4 | --------------------------------------------------------------------------------