├── .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 extends T> 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