gitextract_mxpupjhz/ ├── .gitignore ├── README.md ├── pom.xml ├── tyloo-api/ │ ├── pom.xml │ └── src/ │ └── main/ │ └── java/ │ └── io/ │ └── tyloo/ │ └── api/ │ ├── Propagation.java │ ├── TransactionContext.java │ ├── TransactionContextEditor.java │ ├── TransactionStatus.java │ ├── TransactionXid.java │ ├── Tyloo.java │ ├── UniqueIdentity.java │ └── UuidUtils.java ├── tyloo-core/ │ ├── pom.xml │ └── src/ │ └── main/ │ └── java/ │ └── io/ │ └── tyloo/ │ ├── CancellingException.java │ ├── ConcurrentTransactionException.java │ ├── ConfirmingException.java │ ├── InvocationContext.java │ ├── NoExistedTransactionException.java │ ├── OptimisticLockException.java │ ├── Participant.java │ ├── SystemException.java │ ├── Terminator.java │ ├── Transaction.java │ ├── TransactionManager.java │ ├── TransactionRepository.java │ ├── common/ │ │ ├── MethodRole.java │ │ └── TransactionType.java │ ├── context/ │ │ └── MethodTransactionContextEditor.java │ ├── interceptor/ │ │ ├── TylooCoordinatorAspect.java │ │ ├── TylooCoordinatorInterceptor.java │ │ ├── TylooMethodContext.java │ │ ├── TylooTransactionAspect.java │ │ └── TylooTransactionInterceptor.java │ ├── recover/ │ │ ├── TylooRecoverConfiguration.java │ │ └── TylooTransactionRecovery.java │ ├── repository/ │ │ ├── CachableTransactionRepository.java │ │ ├── FileSystemTransactionRepository.java │ │ ├── JdbcTransactionRepository.java │ │ ├── RedisTransactionRepository.java │ │ ├── TransactionIOException.java │ │ └── helper/ │ │ ├── ExpandTransactionSerializer.java │ │ ├── JedisCallback.java │ │ ├── RedisHelper.java │ │ └── TransactionSerializer.java │ ├── serializer/ │ │ ├── JacksonJsonSerializer.java │ │ ├── JdkSerializationSerializer.java │ │ ├── KryoPoolSerializer.java │ │ └── ObjectSerializer.java │ ├── support/ │ │ ├── BeanFactory.java │ │ ├── FactoryBuilder.java │ │ └── TransactionConfigurator.java │ └── utils/ │ ├── ByteUtils.java │ ├── CollectionUtils.java │ ├── ReflectionUtils.java │ ├── StringUtils.java │ ├── TransactionUtils.java │ └── TylooMethodUtils.java ├── tyloo-dubbo/ │ ├── pom.xml │ └── src/ │ └── main/ │ ├── java/ │ │ └── io/ │ │ └── tyloo/ │ │ └── dubbo/ │ │ ├── constants/ │ │ │ └── TransactionContextConstants.java │ │ ├── context/ │ │ │ └── DubboTransactionContextEditor.java │ │ └── proxy/ │ │ ├── javassist/ │ │ │ ├── TylooClassGenerator.java │ │ │ ├── TylooJavassistProxyFactory.java │ │ │ └── TylooProxy.java │ │ └── jdk/ │ │ ├── MethodProceedingJoinPoint.java │ │ ├── TylooInvokerInvocationHandler.java │ │ └── TylooJdkProxyFactory.java │ └── resources/ │ ├── META-INF/ │ │ └── dubbo/ │ │ └── org.apache.dubbo.rpc.ProxyFactory │ └── tyloo-dubbo.xml ├── tyloo-spring/ │ ├── pom.xml │ └── src/ │ └── main/ │ ├── dbscripts/ │ │ └── db.sql │ ├── java/ │ │ └── io/ │ │ └── tyloo/ │ │ └── spring/ │ │ ├── ConfigurableCoordinatorAspect.java │ │ ├── ConfigurableTransactionAspect.java │ │ ├── recover/ │ │ │ ├── DefaultTylooRecoverConfiguration.java │ │ │ └── RecoverScheduledJob.java │ │ ├── repository/ │ │ │ └── SpringJdbcTransactionRepository.java │ │ └── support/ │ │ ├── SpringBeanFactory.java │ │ ├── SpringPostProcessor.java │ │ └── SpringTransactionConfigurator.java │ └── resources/ │ └── tyloo.xml ├── tyloo-tutorial-sample/ │ ├── pom.xml │ ├── src/ │ │ └── tylooSampledb/ │ │ ├── create_db_cap.sql │ │ ├── create_db_ord.sql │ │ ├── create_db_red.sql │ │ └── create_db_tcc.sql │ ├── tyloo-dubbo-sample/ │ │ ├── pom.xml │ │ ├── src/ │ │ │ └── main/ │ │ │ └── tylooSampledb/ │ │ │ ├── create_db_cap.sql │ │ │ ├── create_db_ord.sql │ │ │ ├── create_db_red.sql │ │ │ └── create_db_tcc.sql │ │ ├── tyloo-dubbo-capital/ │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ └── main/ │ │ │ ├── java/ │ │ │ │ └── io/ │ │ │ │ └── tyloo/ │ │ │ │ └── sample/ │ │ │ │ └── dubbo/ │ │ │ │ └── capital/ │ │ │ │ └── service/ │ │ │ │ ├── CapitalAccountServiceImpl.java │ │ │ │ └── CapitalTradeOrderServiceImpl.java │ │ │ ├── resources/ │ │ │ │ ├── config/ │ │ │ │ │ └── spring/ │ │ │ │ │ └── local/ │ │ │ │ │ ├── appcontext-service-provider.xml │ │ │ │ │ ├── appcontext-service-tcc.xml │ │ │ │ │ └── appcontext-web-servlet.xml │ │ │ │ ├── log/ │ │ │ │ │ └── log4j.xml │ │ │ │ ├── sample-dubbo-capital.properties │ │ │ │ └── tccjdbc.properties │ │ │ └── webapp/ │ │ │ ├── WEB-INF/ │ │ │ │ └── web.xml │ │ │ └── index.jsp │ │ ├── tyloo-dubbo-capital-api/ │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ └── main/ │ │ │ └── java/ │ │ │ └── io/ │ │ │ └── tyloo/ │ │ │ └── sample/ │ │ │ └── dubbo/ │ │ │ └── capital/ │ │ │ └── api/ │ │ │ ├── CapitalAccountService.java │ │ │ ├── CapitalTradeOrderService.java │ │ │ └── dto/ │ │ │ └── CapitalTradeOrderDto.java │ │ ├── tyloo-dubbo-order/ │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ └── main/ │ │ │ ├── java/ │ │ │ │ └── io/ │ │ │ │ └── tyloo/ │ │ │ │ └── sample/ │ │ │ │ └── dubbo/ │ │ │ │ └── order/ │ │ │ │ ├── service/ │ │ │ │ │ ├── AccountServiceImpl.java │ │ │ │ │ ├── PaymentServiceImpl.java │ │ │ │ │ └── PlaceOrderServiceImpl.java │ │ │ │ └── web/ │ │ │ │ └── controller/ │ │ │ │ ├── OrderController.java │ │ │ │ └── vo/ │ │ │ │ └── PlaceOrderRequest.java │ │ │ ├── resources/ │ │ │ │ ├── config/ │ │ │ │ │ └── spring/ │ │ │ │ │ └── local/ │ │ │ │ │ ├── appcontext-service-dubbo.xml │ │ │ │ │ ├── appcontext-service-tcc.xml │ │ │ │ │ └── appcontext-web-servlet.xml │ │ │ │ ├── log/ │ │ │ │ │ └── log4j.xml │ │ │ │ ├── sample-dubbo-order.properties │ │ │ │ └── tccjdbc.properties │ │ │ └── webapp/ │ │ │ └── WEB-INF/ │ │ │ ├── ftl/ │ │ │ │ ├── index.ftl │ │ │ │ ├── pay_success.ftl │ │ │ │ ├── product_detail.ftl │ │ │ │ └── shop.ftl │ │ │ └── web.xml │ │ ├── tyloo-dubbo-redpacket/ │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ └── main/ │ │ │ ├── java/ │ │ │ │ └── io/ │ │ │ │ └── tyloo/ │ │ │ │ └── sample/ │ │ │ │ └── dubbo/ │ │ │ │ └── redpacket/ │ │ │ │ └── service/ │ │ │ │ ├── RedPacketAccountServiceImpl.java │ │ │ │ └── RedPacketTradeOrderServiceImpl.java │ │ │ ├── resources/ │ │ │ │ ├── config/ │ │ │ │ │ └── spring/ │ │ │ │ │ └── local/ │ │ │ │ │ ├── appcontext-service-provider.xml │ │ │ │ │ ├── appcontext-service-tcc.xml │ │ │ │ │ └── appcontext-web-servlet.xml │ │ │ │ ├── log/ │ │ │ │ │ └── log4j.xml │ │ │ │ ├── sample-dubbo-redpacket.properties │ │ │ │ └── tccjdbc.properties │ │ │ └── webapp/ │ │ │ ├── WEB-INF/ │ │ │ │ └── web.xml │ │ │ └── index.jsp │ │ └── tyloo-dubbo-redpacket-api/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ └── java/ │ │ └── io/ │ │ └── tyloo/ │ │ └── sample/ │ │ └── dubbo/ │ │ └── redpacket/ │ │ └── api/ │ │ ├── RedPacketAccountService.java │ │ ├── RedPacketTradeOrderService.java │ │ └── dto/ │ │ └── RedPacketTradeOrderDto.java │ ├── tyloo-http-sample/ │ │ ├── pom.xml │ │ ├── tyloo-http-capital/ │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ └── main/ │ │ │ ├── java/ │ │ │ │ └── io/ │ │ │ │ └── tyloo/ │ │ │ │ └── sample/ │ │ │ │ └── http/ │ │ │ │ └── capital/ │ │ │ │ └── service/ │ │ │ │ ├── CapitalAccountServiceImpl.java │ │ │ │ └── CapitalTradeOrderServiceImpl.java │ │ │ ├── resources/ │ │ │ │ ├── config/ │ │ │ │ │ └── spring/ │ │ │ │ │ └── local/ │ │ │ │ │ ├── appcontext-service-provider.xml │ │ │ │ │ ├── appcontext-service-tcc.xml │ │ │ │ │ └── appcontext-web-servlet.xml │ │ │ │ ├── log/ │ │ │ │ │ └── log4j.xml │ │ │ │ └── tccjdbc.properties │ │ │ └── webapp/ │ │ │ ├── WEB-INF/ │ │ │ │ └── web.xml │ │ │ └── index.jsp │ │ ├── tyloo-http-capital-api/ │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ └── main/ │ │ │ └── java/ │ │ │ └── io/ │ │ │ └── tyloo/ │ │ │ └── sample/ │ │ │ └── http/ │ │ │ └── capital/ │ │ │ └── api/ │ │ │ ├── CapitalAccountService.java │ │ │ ├── CapitalTradeOrderService.java │ │ │ └── dto/ │ │ │ └── CapitalTradeOrderDto.java │ │ ├── tyloo-http-order/ │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ └── main/ │ │ │ ├── java/ │ │ │ │ └── io/ │ │ │ │ └── tyloo/ │ │ │ │ └── sample/ │ │ │ │ └── http/ │ │ │ │ └── order/ │ │ │ │ ├── service/ │ │ │ │ │ ├── AccountServiceImpl.java │ │ │ │ │ ├── PaymentServiceImpl.java │ │ │ │ │ ├── PlaceOrderServiceImpl.java │ │ │ │ │ └── TradeOrderServiceProxy.java │ │ │ │ └── web/ │ │ │ │ └── controller/ │ │ │ │ ├── OrderController.java │ │ │ │ └── vo/ │ │ │ │ └── PlaceOrderRequest.java │ │ │ ├── resources/ │ │ │ │ ├── config/ │ │ │ │ │ └── spring/ │ │ │ │ │ └── local/ │ │ │ │ │ ├── appcontext-service-consumer.xml │ │ │ │ │ ├── appcontext-service-tcc.xml │ │ │ │ │ └── appcontext-web-servlet.xml │ │ │ │ ├── log/ │ │ │ │ │ └── log4j.xml │ │ │ │ ├── sample-dubbo-order.properties │ │ │ │ └── tccjdbc.properties │ │ │ └── webapp/ │ │ │ └── WEB-INF/ │ │ │ ├── ftl/ │ │ │ │ ├── index.ftl │ │ │ │ ├── pay_success.ftl │ │ │ │ ├── product_detail.ftl │ │ │ │ └── shop.ftl │ │ │ └── web.xml │ │ ├── tyloo-http-redpacket/ │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ └── main/ │ │ │ ├── java/ │ │ │ │ └── io/ │ │ │ │ └── tyloo/ │ │ │ │ └── sample/ │ │ │ │ └── http/ │ │ │ │ └── redpacket/ │ │ │ │ └── service/ │ │ │ │ ├── RedPacketAccountServiceImpl.java │ │ │ │ └── RedPacketTradeOrderServiceImpl.java │ │ │ ├── resources/ │ │ │ │ ├── config/ │ │ │ │ │ └── spring/ │ │ │ │ │ └── local/ │ │ │ │ │ ├── appcontext-service-provider.xml │ │ │ │ │ ├── appcontext-service-tcc.xml │ │ │ │ │ └── appcontext-web-servlet.xml │ │ │ │ ├── log/ │ │ │ │ │ └── log4j.xml │ │ │ │ └── tccjdbc.properties │ │ │ └── webapp/ │ │ │ ├── WEB-INF/ │ │ │ │ └── web.xml │ │ │ └── index.jsp │ │ └── tyloo-http-redpacket-api/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ └── java/ │ │ └── io/ │ │ └── tyloo/ │ │ └── sample/ │ │ └── http/ │ │ └── redpacket/ │ │ └── api/ │ │ ├── RedPacketAccountService.java │ │ ├── RedPacketTradeOrderService.java │ │ └── dto/ │ │ └── RedPacketTradeOrderDto.java │ └── tyloo-sample-domain/ │ ├── pom.xml │ ├── tyloo-sample-captial/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── io/ │ │ │ └── tyloo/ │ │ │ └── sample/ │ │ │ └── capital/ │ │ │ ├── domain/ │ │ │ │ ├── entity/ │ │ │ │ │ ├── CapitalAccount.java │ │ │ │ │ └── TradeOrder.java │ │ │ │ └── repository/ │ │ │ │ ├── CapitalAccountRepository.java │ │ │ │ └── TradeOrderRepository.java │ │ │ └── infrastructure/ │ │ │ └── dao/ │ │ │ ├── CapitalAccountDao.java │ │ │ └── TradeOrderDao.java │ │ └── resources/ │ │ ├── config/ │ │ │ ├── spring/ │ │ │ │ └── local/ │ │ │ │ ├── appcontext-service-dao.xml │ │ │ │ └── appcontext-service-datasource.xml │ │ │ └── sqlmap/ │ │ │ └── main/ │ │ │ ├── sample-capitalaccount.xml │ │ │ └── sample-tradeorder.xml │ │ ├── jdbc.properties │ │ └── log/ │ │ └── log4j.xml │ ├── tyloo-sample-common/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ └── java/ │ │ └── io/ │ │ └── tyloo/ │ │ └── sample/ │ │ └── exception/ │ │ └── InsufficientBalanceException.java │ ├── tyloo-sample-order/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── io/ │ │ │ └── tyloo/ │ │ │ └── sample/ │ │ │ └── order/ │ │ │ ├── domain/ │ │ │ │ ├── entity/ │ │ │ │ │ ├── Order.java │ │ │ │ │ ├── OrderLine.java │ │ │ │ │ ├── Product.java │ │ │ │ │ └── Shop.java │ │ │ │ ├── factory/ │ │ │ │ │ └── OrderFactory.java │ │ │ │ ├── repository/ │ │ │ │ │ ├── OrderRepository.java │ │ │ │ │ ├── ProductRepository.java │ │ │ │ │ └── ShopRepository.java │ │ │ │ └── service/ │ │ │ │ └── OrderServiceImpl.java │ │ │ └── infrastructure/ │ │ │ └── dao/ │ │ │ ├── OrderDao.java │ │ │ ├── OrderLineDao.java │ │ │ ├── ProductDao.java │ │ │ └── ShopDao.java │ │ └── resources/ │ │ ├── config/ │ │ │ ├── spring/ │ │ │ │ └── local/ │ │ │ │ ├── appcontext-service-dao.xml │ │ │ │ └── appcontext-service-datasource.xml │ │ │ └── sqlmap/ │ │ │ └── main/ │ │ │ ├── sample-order.xml │ │ │ ├── sample-orderline.xml │ │ │ ├── sample-product.xml │ │ │ └── sample-shop.xml │ │ ├── jdbc.properties │ │ ├── log/ │ │ │ └── log4j.xml │ │ └── sample-order.properties │ └── tyloo-sample-redpacket/ │ ├── pom.xml │ └── src/ │ └── main/ │ ├── java/ │ │ └── io/ │ │ └── tyloo/ │ │ └── sample/ │ │ └── redpacket/ │ │ ├── domain/ │ │ │ ├── entity/ │ │ │ │ ├── RedPacketAccount.java │ │ │ │ └── TradeOrder.java │ │ │ └── repository/ │ │ │ ├── RedPacketAccountRepository.java │ │ │ └── TradeOrderRepository.java │ │ └── infrastructure/ │ │ └── dao/ │ │ ├── RedPacketAccountDao.java │ │ └── TradeOrderDao.java │ └── resources/ │ ├── config/ │ │ ├── spring/ │ │ │ └── local/ │ │ │ ├── appcontext-service-dao.xml │ │ │ └── appcontext-service-datasource.xml │ │ └── sqlmap/ │ │ └── main/ │ │ ├── sample-redpacketaccount.xml │ │ └── sample-tradeorder.xml │ ├── jdbc.properties │ └── log/ │ └── log4j.xml └── tyloo-unit-test/ ├── pom.xml └── src/ ├── main/ │ ├── java/ │ │ └── io/ │ │ └── tyloo/ │ │ └── unittest/ │ │ ├── client/ │ │ │ ├── AccountRecordServiceProxy.java │ │ │ ├── AccountServiceProxy.java │ │ │ └── TransferService.java │ │ ├── entity/ │ │ │ ├── AccountRecord.java │ │ │ ├── AccountStatus.java │ │ │ ├── SubAccount.java │ │ │ └── UserShardingId.java │ │ ├── repository/ │ │ │ ├── AccountRecordRepository.java │ │ │ └── SubAccountRepository.java │ │ ├── service/ │ │ │ ├── AccountService.java │ │ │ └── AccountServiceImpl.java │ │ ├── thirdservice/ │ │ │ ├── AccountRecordService.java │ │ │ └── AccountRecordServiceImpl.java │ │ └── utils/ │ │ └── UnitTest.java │ └── resources/ │ └── tyloo-unit-test.xml └── test/ ├── java/ │ └── io/ │ └── tyloo/ │ └── unit/ │ └── test/ │ ├── AbstractTestCase.java │ ├── PerformanceTest.java │ ├── ReflectionTest.java │ └── TransferServiceTest.java └── resources/ └── log4j.properties