gitextract_y0h1aiip/ ├── .editorconfig ├── .github/ │ └── workflows/ │ └── maven.yml ├── .gitignore ├── LICENSE ├── README.md ├── config/ │ └── intellij-java-google-style.xml ├── easy-retry-common/ │ ├── pom.xml │ └── src/ │ └── main/ │ └── java/ │ └── com/ │ └── alibaba/ │ └── easyretry/ │ └── common/ │ ├── AbstractResultPredicate.java │ ├── AbstractRetrySyncExecutor.java │ ├── EasyRetryPredicate.java │ ├── Invocation.java │ ├── RetryConfiguration.java │ ├── RetryContainer.java │ ├── RetryContext.java │ ├── RetryExecutor.java │ ├── RetryIdentify.java │ ├── RetryLifecycle.java │ ├── RetrySyncExecutor.java │ ├── SCallable.java │ ├── SimpleMethodInvocation.java │ ├── access/ │ │ ├── RetrySerializerAccess.java │ │ ├── RetryStrategyAccess.java │ │ └── RetryTaskAccess.java │ ├── constant/ │ │ ├── enums/ │ │ │ ├── HandleResultEnum.java │ │ │ ├── RetryTaskStatusEnum.java │ │ │ └── RetryTypeEnum.java │ │ └── package-info.java │ ├── entity/ │ │ └── RetryTask.java │ ├── event/ │ │ ├── RetryEvent.java │ │ ├── RetryEventMulticaster.java │ │ ├── RetryListener.java │ │ ├── before/ │ │ │ ├── AfterSaveBeforeRetryEvent.java │ │ │ ├── BeforeRetryEvent.java │ │ │ └── PrepSaveBeforeRetryEvent.java │ │ └── on/ │ │ ├── FailureOnRetryEvent.java │ │ ├── OnRetryEvent.java │ │ ├── StopOnRetryEvent.java │ │ └── SuccessOnRetryEvent.java │ ├── filter/ │ │ ├── AbstractRetryFilter.java │ │ ├── RetryFilter.java │ │ ├── RetryFilterDiscover.java │ │ ├── RetryFilterInvocation.java │ │ ├── RetryFilterInvocationHandler.java │ │ ├── RetryFilterRegister.java │ │ ├── RetryFilterRegisterHandler.java │ │ └── RetryFilterResponse.java │ ├── processor/ │ │ ├── AsyncPersistenceProcessor.java │ │ ├── RetryProcessor.java │ │ └── SyncProcessor.java │ ├── resolve/ │ │ └── ExecutorSolver.java │ ├── retryer/ │ │ ├── Retryer.java │ │ └── RetryerInfo.java │ ├── serializer/ │ │ ├── ArgDeSerializerInfo.java │ │ ├── ArgSerializerInfo.java │ │ ├── EasyRetrySerializer.java │ │ ├── ResultPredicateSerializer.java │ │ └── RetryArgSerializer.java │ └── strategy/ │ ├── RetryStrategy.java │ ├── StopStrategy.java │ └── WaitStrategy.java ├── easy-retry-core/ │ ├── pom.xml │ └── src/ │ ├── main/ │ │ └── java/ │ │ └── com/ │ │ └── alibaba/ │ │ └── easyretry/ │ │ └── core/ │ │ ├── DegradeAbleRetryExecutor.java │ │ ├── PersistenceRetryExecutor.java │ │ ├── PersistenceRetryer.java │ │ ├── PersistenceRetryerBuilder.java │ │ ├── RetryerBuilder.java │ │ ├── SyncRetryer.java │ │ ├── SyncRetryerBuilder.java │ │ ├── access/ │ │ │ ├── DefaultRetrySerializerAccess.java │ │ │ └── MemoryRetryTaskAccess.java │ │ ├── container/ │ │ │ └── SimpleRetryContainer.java │ │ ├── context/ │ │ │ └── MaxAttemptsPersistenceRetryContext.java │ │ ├── degrade/ │ │ │ └── EasyRetryDegradeHelper.java │ │ ├── event/ │ │ │ └── SimpleRetryEventMulticaster.java │ │ ├── filter/ │ │ │ ├── DefaultRetryFilterInvocationHandler.java │ │ │ ├── DefaultRetryFilterRegisterHandler.java │ │ │ ├── IdentifyRetryFilter.java │ │ │ ├── MethodExcuteRetryFilter.java │ │ │ ├── NOOPRetryFilter.java │ │ │ ├── SPIRetryFilterDiscover.java │ │ │ └── SimpleRetryFilterRegister.java │ │ ├── process/ │ │ │ ├── async/ │ │ │ │ ├── AbstractAsyncPersistenceProcessor.java │ │ │ │ ├── before/ │ │ │ │ │ ├── AbstractAsyncPersistenceBeforeRetryProcessor.java │ │ │ │ │ ├── ExceptionPersistenceAsyncBeforeRetryProcessor.java │ │ │ │ │ └── ResultAsynPersistenceBeforeRetryProcessor.java │ │ │ │ └── on/ │ │ │ │ ├── AbstractAsyncPersistenceOnRetryProcessor.java │ │ │ │ ├── ExceptionPersistenceAsynOnRetryProcessor.java │ │ │ │ └── ResultAsynPersistenceOnRetryProcessor.java │ │ │ └── package-info.java │ │ ├── serializer/ │ │ │ ├── FastJsonRetryArgSerializer.java │ │ │ ├── HessianResultPredicateSerializer.java │ │ │ └── HessianRetryArgSerializer.java │ │ ├── strategy/ │ │ │ └── DefaultRetryStrategy.java │ │ └── utils/ │ │ ├── HessianSerializerUtils.java │ │ ├── LogUtils.java │ │ └── PrintUtils.java │ └── test/ │ └── java/ │ └── com/ │ └── alibaba/ │ └── easyretry/ │ └── core/ │ └── utils/ │ └── TestClass.java ├── easy-retry-extensions/ │ ├── easy-retry-guava-extension/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ └── java/ │ │ └── com/ │ │ └── alibaba/ │ │ └── easyretry/ │ │ └── extension/ │ │ └── guava/ │ │ ├── GuavaRetrySyncExecutor.java │ │ └── package-info.java │ ├── easy-retry-mybatis-extension/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── alibaba/ │ │ │ │ └── easyretry/ │ │ │ │ └── extension/ │ │ │ │ └── mybatis/ │ │ │ │ ├── access/ │ │ │ │ │ └── MybatisRetryTaskAccess.java │ │ │ │ ├── common/ │ │ │ │ │ └── utils/ │ │ │ │ │ └── HostUtils.java │ │ │ │ ├── dao/ │ │ │ │ │ ├── BaseDAOSupport.java │ │ │ │ │ ├── RetryTaskDAO.java │ │ │ │ │ └── RetryTaskDAOImpl.java │ │ │ │ ├── po/ │ │ │ │ │ └── RetryTaskPO.java │ │ │ │ └── query/ │ │ │ │ └── RetryTaskQuery.java │ │ │ └── resources/ │ │ │ └── dal/ │ │ │ └── easyretry/ │ │ │ ├── easy-mybatis-config.xml │ │ │ └── mapper/ │ │ │ └── easy-retry-task-mapper.xml │ │ └── test/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── alibaba/ │ │ │ └── easyretry/ │ │ │ └── extension/ │ │ │ └── mybatis/ │ │ │ ├── DbConfig.java │ │ │ ├── MyBatisConfig.java │ │ │ ├── access/ │ │ │ │ └── MybatisRetryTaskAccessTest.java │ │ │ ├── common/ │ │ │ │ └── utils/ │ │ │ │ └── HostUtilsTest.java │ │ │ └── dao/ │ │ │ └── RetryTaskDAOImplTest.java │ │ └── resources/ │ │ ├── logback.xml │ │ └── task.sql │ ├── easy-retry-spring-extension/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ └── java/ │ │ └── com/ │ │ └── alibaba/ │ │ └── easyretry/ │ │ └── extension/ │ │ └── spring/ │ │ ├── RetryListenerInitialize.java │ │ ├── SPELParamPredicate.java │ │ ├── SPELResultPredicate.java │ │ ├── SpringEventApplicationListener.java │ │ ├── SpringRetryFilterDiscover.java │ │ └── aop/ │ │ ├── EasyRetryable.java │ │ └── RetryInterceptor.java │ └── pom.xml ├── easy-retry-starters/ │ ├── easy-retry-memory-starter/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── alibaba/ │ │ │ └── easyretry/ │ │ │ └── memory/ │ │ │ ├── MemoryAutoConfiguration.java │ │ │ └── config/ │ │ │ └── EasyRetryMemoryCompatibleProperties.java │ │ └── resources/ │ │ └── META-INF/ │ │ ├── additional-spring-configuration-metadata.json │ │ └── spring.factories │ ├── easy-retry-mybatis-starter/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── alibaba/ │ │ │ └── easyretry/ │ │ │ └── mybatis/ │ │ │ ├── MybatisAutoConfiguration.java │ │ │ └── conifg/ │ │ │ └── EasyRetryMybatisProperties.java │ │ └── resources/ │ │ └── META-INF/ │ │ ├── additional-spring-configuration-metadata.json │ │ └── spring.factories │ ├── easy-retry-starter-common/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ └── java/ │ │ └── com/ │ │ └── alibaba/ │ │ └── easyretry/ │ │ └── starter/ │ │ └── common/ │ │ └── CommonAutoConfiguration.java │ └── pom.xml └── pom.xml