gitextract_7yrrkpra/ ├── .gitee/ │ ├── ISSUE_TEMPLATE.zh-CN.md │ └── PULL_REQUEST_TEMPLATE.zh-CN.md ├── .gitignore ├── .tgitconfig ├── LICENSE ├── README.md ├── open-api-gateway/ │ ├── pom.xml │ └── src/ │ └── main/ │ ├── docker/ │ │ └── Dockerfile │ ├── java/ │ │ └── com/ │ │ └── open/ │ │ └── capacity/ │ │ ├── GatewayApp.java │ │ ├── client/ │ │ │ └── oauth2/ │ │ │ ├── OAuth2ClientConfig.java │ │ │ ├── authorize/ │ │ │ │ ├── AuthorizeConfigManager.java │ │ │ │ ├── AuthorizeConfigProvider.java │ │ │ │ ├── OpenAuthorizeConfigManager.java │ │ │ │ └── provider/ │ │ │ │ └── AuthAuthorizeConfigProvider.java │ │ │ ├── config/ │ │ │ │ ├── DocumentationConfig.java │ │ │ │ ├── SecurityHandlerConfig.java │ │ │ │ └── SwaggerConfig.java │ │ │ ├── dao/ │ │ │ │ └── ServiceDao.java │ │ │ ├── filter/ │ │ │ │ ├── AccessFilter.java │ │ │ │ └── IPFilter.java │ │ │ ├── service/ │ │ │ │ ├── RbacService.java │ │ │ │ └── impl/ │ │ │ │ └── RbacServiceImpl.java │ │ │ └── token/ │ │ │ ├── TokenStoreConfig.java │ │ │ └── store/ │ │ │ └── RedisTemplateTokenStore.java │ │ └── controller/ │ │ ├── TestController.java │ │ └── UserController.java │ └── resources/ │ ├── application.yml │ └── bootstrap.yml ├── open-commons/ │ ├── pom.xml │ └── src/ │ └── main/ │ └── java/ │ └── com/ │ └── open/ │ └── capacity/ │ └── security/ │ ├── dto/ │ │ ├── LoginUser.java │ │ ├── ResponseInfo.java │ │ ├── RoleDto.java │ │ └── UserDto.java │ └── model/ │ ├── BaseEntity.java │ ├── Permission.java │ ├── Role.java │ ├── SysLogs.java │ ├── SysUser.java │ └── TokenModel.java ├── open-config-center/ │ ├── apollo/ │ │ ├── .gitattributes │ │ ├── .gitignore │ │ ├── .travis.yml │ │ ├── LICENSE │ │ ├── apollo-adminservice/ │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ ├── assembly/ │ │ │ │ └── assembly-descriptor.xml │ │ │ ├── main/ │ │ │ │ ├── config/ │ │ │ │ │ ├── apollo-adminservice.conf │ │ │ │ │ └── app.properties │ │ │ │ ├── docker/ │ │ │ │ │ └── Dockerfile │ │ │ │ ├── java/ │ │ │ │ │ └── com/ │ │ │ │ │ └── ctrip/ │ │ │ │ │ └── framework/ │ │ │ │ │ └── apollo/ │ │ │ │ │ └── adminservice/ │ │ │ │ │ ├── AdminServiceApplication.java │ │ │ │ │ ├── AdminServiceHealthIndicator.java │ │ │ │ │ ├── aop/ │ │ │ │ │ │ ├── NamespaceAcquireLockAspect.java │ │ │ │ │ │ ├── NamespaceUnlockAspect.java │ │ │ │ │ │ └── PreAcquireNamespaceLock.java │ │ │ │ │ └── controller/ │ │ │ │ │ ├── AppController.java │ │ │ │ │ ├── AppNamespaceController.java │ │ │ │ │ ├── ClusterController.java │ │ │ │ │ ├── CommitController.java │ │ │ │ │ ├── IndexController.java │ │ │ │ │ ├── InstanceConfigController.java │ │ │ │ │ ├── ItemController.java │ │ │ │ │ ├── ItemSetController.java │ │ │ │ │ ├── NamespaceBranchController.java │ │ │ │ │ ├── NamespaceController.java │ │ │ │ │ ├── NamespaceLockController.java │ │ │ │ │ ├── ReleaseController.java │ │ │ │ │ └── ReleaseHistoryController.java │ │ │ │ ├── resources/ │ │ │ │ │ ├── META-INF/ │ │ │ │ │ │ └── app.properties │ │ │ │ │ ├── adminservice.properties │ │ │ │ │ ├── application.yml │ │ │ │ │ ├── bootstrap.yml │ │ │ │ │ └── logback.xml │ │ │ │ └── scripts/ │ │ │ │ ├── shutdown.sh │ │ │ │ └── startup.sh │ │ │ └── test/ │ │ │ └── resources/ │ │ │ ├── application.properties │ │ │ ├── application.yml │ │ │ ├── bootstrap.yml │ │ │ ├── controller/ │ │ │ │ ├── cleanup.sql │ │ │ │ ├── test-itemset.sql │ │ │ │ └── test-release.sql │ │ │ ├── data.sql │ │ │ └── logback-test.xml │ │ ├── apollo-biz/ │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ ├── main/ │ │ │ │ └── java/ │ │ │ │ └── com/ │ │ │ │ └── ctrip/ │ │ │ │ └── framework/ │ │ │ │ └── apollo/ │ │ │ │ └── biz/ │ │ │ │ ├── ApolloBizConfig.java │ │ │ │ ├── auth/ │ │ │ │ │ └── WebSecurityConfig.java │ │ │ │ ├── config/ │ │ │ │ │ └── BizConfig.java │ │ │ │ ├── customize/ │ │ │ │ │ ├── BizLoggingCustomizer.java │ │ │ │ │ └── package-info.java │ │ │ │ ├── entity/ │ │ │ │ │ ├── Audit.java │ │ │ │ │ ├── Cluster.java │ │ │ │ │ ├── Commit.java │ │ │ │ │ ├── GrayReleaseRule.java │ │ │ │ │ ├── Instance.java │ │ │ │ │ ├── InstanceConfig.java │ │ │ │ │ ├── Item.java │ │ │ │ │ ├── Namespace.java │ │ │ │ │ ├── NamespaceLock.java │ │ │ │ │ ├── Privilege.java │ │ │ │ │ ├── Release.java │ │ │ │ │ ├── ReleaseHistory.java │ │ │ │ │ ├── ReleaseMessage.java │ │ │ │ │ └── ServerConfig.java │ │ │ │ ├── eureka/ │ │ │ │ │ └── ApolloEurekaClientConfig.java │ │ │ │ ├── grayReleaseRule/ │ │ │ │ │ ├── GrayReleaseRuleCache.java │ │ │ │ │ └── GrayReleaseRulesHolder.java │ │ │ │ ├── message/ │ │ │ │ │ ├── DatabaseMessageSender.java │ │ │ │ │ ├── MessageSender.java │ │ │ │ │ ├── ReleaseMessageListener.java │ │ │ │ │ ├── ReleaseMessageScanner.java │ │ │ │ │ └── Topics.java │ │ │ │ ├── repository/ │ │ │ │ │ ├── AppNamespaceRepository.java │ │ │ │ │ ├── AppRepository.java │ │ │ │ │ ├── AuditRepository.java │ │ │ │ │ ├── ClusterRepository.java │ │ │ │ │ ├── CommitRepository.java │ │ │ │ │ ├── GrayReleaseRuleRepository.java │ │ │ │ │ ├── InstanceConfigRepository.java │ │ │ │ │ ├── InstanceRepository.java │ │ │ │ │ ├── ItemRepository.java │ │ │ │ │ ├── NamespaceLockRepository.java │ │ │ │ │ ├── NamespaceRepository.java │ │ │ │ │ ├── PrivilegeRepository.java │ │ │ │ │ ├── ReleaseHistoryRepository.java │ │ │ │ │ ├── ReleaseMessageRepository.java │ │ │ │ │ ├── ReleaseRepository.java │ │ │ │ │ └── ServerConfigRepository.java │ │ │ │ ├── service/ │ │ │ │ │ ├── AdminService.java │ │ │ │ │ ├── AppNamespaceService.java │ │ │ │ │ ├── AppService.java │ │ │ │ │ ├── AuditService.java │ │ │ │ │ ├── BizDBPropertySource.java │ │ │ │ │ ├── ClusterService.java │ │ │ │ │ ├── CommitService.java │ │ │ │ │ ├── InstanceService.java │ │ │ │ │ ├── ItemService.java │ │ │ │ │ ├── ItemSetService.java │ │ │ │ │ ├── NamespaceBranchService.java │ │ │ │ │ ├── NamespaceLockService.java │ │ │ │ │ ├── NamespaceService.java │ │ │ │ │ ├── ReleaseHistoryService.java │ │ │ │ │ ├── ReleaseMessageService.java │ │ │ │ │ └── ReleaseService.java │ │ │ │ └── utils/ │ │ │ │ ├── ConfigChangeContentBuilder.java │ │ │ │ ├── EntityManagerUtil.java │ │ │ │ ├── ReleaseKeyGenerator.java │ │ │ │ └── ReleaseMessageKeyGenerator.java │ │ │ └── test/ │ │ │ └── resources/ │ │ │ ├── application.properties │ │ │ ├── data.sql │ │ │ ├── logback-test.xml │ │ │ └── sql/ │ │ │ ├── clean.sql │ │ │ ├── namespace-branch-test.sql │ │ │ ├── namespace-test.sql │ │ │ └── release-creation-test.sql │ │ ├── apollo-client/ │ │ │ ├── README.md │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ ├── main/ │ │ │ │ ├── java/ │ │ │ │ │ └── com/ │ │ │ │ │ └── ctrip/ │ │ │ │ │ └── framework/ │ │ │ │ │ └── apollo/ │ │ │ │ │ ├── Config.java │ │ │ │ │ ├── ConfigChangeListener.java │ │ │ │ │ ├── ConfigFile.java │ │ │ │ │ ├── ConfigFileChangeListener.java │ │ │ │ │ ├── ConfigService.java │ │ │ │ │ ├── build/ │ │ │ │ │ │ └── ApolloInjector.java │ │ │ │ │ ├── enums/ │ │ │ │ │ │ └── PropertyChangeType.java │ │ │ │ │ ├── exceptions/ │ │ │ │ │ │ ├── ApolloConfigException.java │ │ │ │ │ │ └── ApolloConfigStatusCodeException.java │ │ │ │ │ ├── internals/ │ │ │ │ │ │ ├── AbstractConfig.java │ │ │ │ │ │ ├── AbstractConfigFile.java │ │ │ │ │ │ ├── AbstractConfigRepository.java │ │ │ │ │ │ ├── ConfigManager.java │ │ │ │ │ │ ├── ConfigRepository.java │ │ │ │ │ │ ├── ConfigServiceLocator.java │ │ │ │ │ │ ├── DefaultConfig.java │ │ │ │ │ │ ├── DefaultConfigManager.java │ │ │ │ │ │ ├── DefaultInjector.java │ │ │ │ │ │ ├── Injector.java │ │ │ │ │ │ ├── JsonConfigFile.java │ │ │ │ │ │ ├── LocalFileConfigRepository.java │ │ │ │ │ │ ├── PlainTextConfigFile.java │ │ │ │ │ │ ├── PropertiesConfigFile.java │ │ │ │ │ │ ├── RemoteConfigLongPollService.java │ │ │ │ │ │ ├── RemoteConfigRepository.java │ │ │ │ │ │ ├── RepositoryChangeListener.java │ │ │ │ │ │ ├── SimpleConfig.java │ │ │ │ │ │ ├── XmlConfigFile.java │ │ │ │ │ │ ├── YamlConfigFile.java │ │ │ │ │ │ └── YmlConfigFile.java │ │ │ │ │ ├── model/ │ │ │ │ │ │ ├── ConfigChange.java │ │ │ │ │ │ ├── ConfigChangeEvent.java │ │ │ │ │ │ └── ConfigFileChangeEvent.java │ │ │ │ │ ├── spi/ │ │ │ │ │ │ ├── ConfigFactory.java │ │ │ │ │ │ ├── ConfigFactoryManager.java │ │ │ │ │ │ ├── ConfigRegistry.java │ │ │ │ │ │ ├── DefaultConfigFactory.java │ │ │ │ │ │ ├── DefaultConfigFactoryManager.java │ │ │ │ │ │ └── DefaultConfigRegistry.java │ │ │ │ │ ├── spring/ │ │ │ │ │ │ ├── annotation/ │ │ │ │ │ │ │ ├── ApolloAnnotationProcessor.java │ │ │ │ │ │ │ ├── ApolloConfig.java │ │ │ │ │ │ │ ├── ApolloConfigChangeListener.java │ │ │ │ │ │ │ ├── ApolloConfigRegistrar.java │ │ │ │ │ │ │ ├── EnableApolloConfig.java │ │ │ │ │ │ │ └── SpringValueProcessor.java │ │ │ │ │ │ ├── boot/ │ │ │ │ │ │ │ ├── ApolloApplicationContextInitializer.java │ │ │ │ │ │ │ └── ApolloAutoConfiguration.java │ │ │ │ │ │ ├── config/ │ │ │ │ │ │ │ ├── ConfigPropertySource.java │ │ │ │ │ │ │ ├── ConfigPropertySourceFactory.java │ │ │ │ │ │ │ ├── ConfigPropertySourcesProcessor.java │ │ │ │ │ │ │ ├── NamespaceHandler.java │ │ │ │ │ │ │ ├── PropertySourcesConstants.java │ │ │ │ │ │ │ └── PropertySourcesProcessor.java │ │ │ │ │ │ ├── package-info.java │ │ │ │ │ │ ├── property/ │ │ │ │ │ │ │ ├── PlaceholderHelper.java │ │ │ │ │ │ │ ├── SpringValue.java │ │ │ │ │ │ │ ├── SpringValueDefinition.java │ │ │ │ │ │ │ └── SpringValueDefinitionProcessor.java │ │ │ │ │ │ └── util/ │ │ │ │ │ │ └── BeanRegistrationUtil.java │ │ │ │ │ └── util/ │ │ │ │ │ ├── ConfigUtil.java │ │ │ │ │ ├── ExceptionUtil.java │ │ │ │ │ ├── function/ │ │ │ │ │ │ └── Functions.java │ │ │ │ │ ├── http/ │ │ │ │ │ │ ├── HttpRequest.java │ │ │ │ │ │ ├── HttpResponse.java │ │ │ │ │ │ └── HttpUtil.java │ │ │ │ │ └── parser/ │ │ │ │ │ ├── ParserException.java │ │ │ │ │ └── Parsers.java │ │ │ │ └── resources/ │ │ │ │ └── META-INF/ │ │ │ │ ├── apollo-1.0.0.xsd │ │ │ │ ├── services/ │ │ │ │ │ └── com.ctrip.framework.apollo.internals.Injector │ │ │ │ ├── spring.factories │ │ │ │ ├── spring.handlers │ │ │ │ └── spring.schemas │ │ │ └── test/ │ │ │ └── resources/ │ │ │ ├── META-INF/ │ │ │ │ └── services/ │ │ │ │ └── com.ctrip.framework.apollo.internals.Injector │ │ │ ├── log4j2.xml │ │ │ └── spring/ │ │ │ ├── XmlConfigAnnotationTest1.xml │ │ │ ├── XmlConfigAnnotationTest2.xml │ │ │ ├── XmlConfigAnnotationTest3.xml │ │ │ ├── XmlConfigAnnotationTest4.xml │ │ │ ├── XmlConfigAnnotationTest5.xml │ │ │ ├── XmlConfigPlaceholderTest1.xml │ │ │ ├── XmlConfigPlaceholderTest10.xml │ │ │ ├── XmlConfigPlaceholderTest2.xml │ │ │ ├── XmlConfigPlaceholderTest3.xml │ │ │ ├── XmlConfigPlaceholderTest4.xml │ │ │ ├── XmlConfigPlaceholderTest5.xml │ │ │ ├── XmlConfigPlaceholderTest6.xml │ │ │ ├── XmlConfigPlaceholderTest7.xml │ │ │ ├── XmlConfigPlaceholderTest8.xml │ │ │ └── XmlConfigPlaceholderTest9.xml │ │ ├── apollo-common/ │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ ├── main/ │ │ │ │ ├── java/ │ │ │ │ │ └── com/ │ │ │ │ │ └── ctrip/ │ │ │ │ │ └── framework/ │ │ │ │ │ └── apollo/ │ │ │ │ │ └── common/ │ │ │ │ │ ├── ApolloCommonConfig.java │ │ │ │ │ ├── aop/ │ │ │ │ │ │ └── RepositoryAspect.java │ │ │ │ │ ├── condition/ │ │ │ │ │ │ ├── ConditionalOnMissingProfile.java │ │ │ │ │ │ ├── ConditionalOnProfile.java │ │ │ │ │ │ └── OnProfileCondition.java │ │ │ │ │ ├── config/ │ │ │ │ │ │ ├── RefreshableConfig.java │ │ │ │ │ │ └── RefreshablePropertySource.java │ │ │ │ │ ├── constants/ │ │ │ │ │ │ ├── GsonType.java │ │ │ │ │ │ ├── NamespaceBranchStatus.java │ │ │ │ │ │ ├── ReleaseOperation.java │ │ │ │ │ │ └── ReleaseOperationContext.java │ │ │ │ │ ├── controller/ │ │ │ │ │ │ ├── ApolloInfoController.java │ │ │ │ │ │ ├── CharacterEncodingFilterConfiguration.java │ │ │ │ │ │ ├── GlobalDefaultExceptionHandler.java │ │ │ │ │ │ ├── HttpMessageConverterConfiguration.java │ │ │ │ │ │ └── WebMvcConfig.java │ │ │ │ │ ├── customize/ │ │ │ │ │ │ ├── LoggingCustomizer.java │ │ │ │ │ │ ├── TomcatContainerCustomizer.java │ │ │ │ │ │ └── package-info.java │ │ │ │ │ ├── datasource/ │ │ │ │ │ │ ├── TitanCondition.java │ │ │ │ │ │ ├── TitanEntityManager.java │ │ │ │ │ │ ├── TitanSettings.java │ │ │ │ │ │ └── package-info.java │ │ │ │ │ ├── dto/ │ │ │ │ │ │ ├── AppDTO.java │ │ │ │ │ │ ├── AppNamespaceDTO.java │ │ │ │ │ │ ├── BaseDTO.java │ │ │ │ │ │ ├── ClusterDTO.java │ │ │ │ │ │ ├── CommitDTO.java │ │ │ │ │ │ ├── GrayReleaseRuleDTO.java │ │ │ │ │ │ ├── GrayReleaseRuleItemDTO.java │ │ │ │ │ │ ├── InstanceConfigDTO.java │ │ │ │ │ │ ├── InstanceDTO.java │ │ │ │ │ │ ├── ItemChangeSets.java │ │ │ │ │ │ ├── ItemDTO.java │ │ │ │ │ │ ├── NamespaceDTO.java │ │ │ │ │ │ ├── NamespaceLockDTO.java │ │ │ │ │ │ ├── PageDTO.java │ │ │ │ │ │ ├── ReleaseDTO.java │ │ │ │ │ │ └── ReleaseHistoryDTO.java │ │ │ │ │ ├── entity/ │ │ │ │ │ │ ├── App.java │ │ │ │ │ │ ├── AppNamespace.java │ │ │ │ │ │ ├── BaseEntity.java │ │ │ │ │ │ └── EntityPair.java │ │ │ │ │ ├── exception/ │ │ │ │ │ │ ├── AbstractApolloHttpException.java │ │ │ │ │ │ ├── BadRequestException.java │ │ │ │ │ │ ├── BeanUtilsException.java │ │ │ │ │ │ ├── NotFoundException.java │ │ │ │ │ │ └── ServiceException.java │ │ │ │ │ ├── http/ │ │ │ │ │ │ ├── MultiResponseEntity.java │ │ │ │ │ │ └── RichResponseEntity.java │ │ │ │ │ └── utils/ │ │ │ │ │ ├── BeanUtils.java │ │ │ │ │ ├── ExceptionUtils.java │ │ │ │ │ ├── GrayReleaseRuleItemTransformer.java │ │ │ │ │ ├── InputValidator.java │ │ │ │ │ ├── RequestPrecondition.java │ │ │ │ │ └── UniqueKeyGenerator.java │ │ │ │ └── resources/ │ │ │ │ ├── application-ctrip.properties │ │ │ │ ├── application-github.properties │ │ │ │ ├── application.properties │ │ │ │ └── datasource.xml │ │ │ └── test/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── ctrip/ │ │ │ └── framework/ │ │ │ └── apollo/ │ │ │ └── common/ │ │ │ ├── AllTests.java │ │ │ ├── conditional/ │ │ │ │ └── ConditionalOnProfileTest.java │ │ │ └── utils/ │ │ │ └── InputValidatorTest.java │ │ ├── apollo-configservice/ │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ ├── assembly/ │ │ │ │ └── assembly-descriptor.xml │ │ │ ├── main/ │ │ │ │ ├── config/ │ │ │ │ │ ├── apollo-configservice.conf │ │ │ │ │ └── app.properties │ │ │ │ ├── docker/ │ │ │ │ │ └── Dockerfile │ │ │ │ ├── java/ │ │ │ │ │ └── com/ │ │ │ │ │ └── ctrip/ │ │ │ │ │ └── framework/ │ │ │ │ │ └── apollo/ │ │ │ │ │ ├── configservice/ │ │ │ │ │ │ ├── ConfigServiceApplication.java │ │ │ │ │ │ ├── ConfigServiceAutoConfiguration.java │ │ │ │ │ │ ├── ConfigServiceHealthIndicator.java │ │ │ │ │ │ ├── ServletInitializer.java │ │ │ │ │ │ ├── controller/ │ │ │ │ │ │ │ ├── ConfigController.java │ │ │ │ │ │ │ ├── ConfigFileController.java │ │ │ │ │ │ │ ├── NotificationController.java │ │ │ │ │ │ │ └── NotificationControllerV2.java │ │ │ │ │ │ ├── service/ │ │ │ │ │ │ │ ├── AppNamespaceServiceWithCache.java │ │ │ │ │ │ │ ├── ReleaseMessageServiceWithCache.java │ │ │ │ │ │ │ └── config/ │ │ │ │ │ │ │ ├── AbstractConfigService.java │ │ │ │ │ │ │ ├── ConfigService.java │ │ │ │ │ │ │ ├── ConfigServiceWithCache.java │ │ │ │ │ │ │ └── DefaultConfigService.java │ │ │ │ │ │ ├── util/ │ │ │ │ │ │ │ ├── InstanceConfigAuditUtil.java │ │ │ │ │ │ │ ├── NamespaceUtil.java │ │ │ │ │ │ │ └── WatchKeysUtil.java │ │ │ │ │ │ └── wrapper/ │ │ │ │ │ │ ├── CaseInsensitiveMapWrapper.java │ │ │ │ │ │ └── DeferredResultWrapper.java │ │ │ │ │ └── metaservice/ │ │ │ │ │ ├── ApolloMetaServiceConfig.java │ │ │ │ │ ├── controller/ │ │ │ │ │ │ └── ServiceController.java │ │ │ │ │ └── service/ │ │ │ │ │ └── DiscoveryService.java │ │ │ │ ├── resources/ │ │ │ │ │ ├── META-INF/ │ │ │ │ │ │ └── app.properties │ │ │ │ │ ├── application.yml │ │ │ │ │ ├── bootstrap.yml │ │ │ │ │ ├── configservice.properties │ │ │ │ │ └── logback.xml │ │ │ │ └── scripts/ │ │ │ │ ├── shutdown.sh │ │ │ │ └── startup.sh │ │ │ └── test/ │ │ │ └── resources/ │ │ │ ├── application.properties │ │ │ ├── application.yml │ │ │ ├── bootstrap.yml │ │ │ ├── data.sql │ │ │ ├── integration-test/ │ │ │ │ ├── cleanup.sql │ │ │ │ ├── test-gray-release.sql │ │ │ │ ├── test-release-message.sql │ │ │ │ ├── test-release-public-dc-override.sql │ │ │ │ ├── test-release-public-default-override.sql │ │ │ │ └── test-release.sql │ │ │ └── logback-test.xml │ │ ├── apollo-core/ │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ ├── main/ │ │ │ │ ├── java/ │ │ │ │ │ └── com/ │ │ │ │ │ └── ctrip/ │ │ │ │ │ └── framework/ │ │ │ │ │ ├── apollo/ │ │ │ │ │ │ ├── Apollo.java │ │ │ │ │ │ ├── core/ │ │ │ │ │ │ │ ├── ConfigConsts.java │ │ │ │ │ │ │ ├── MetaDomainConsts.java │ │ │ │ │ │ │ ├── ServiceNameConsts.java │ │ │ │ │ │ │ ├── dto/ │ │ │ │ │ │ │ │ ├── ApolloConfig.java │ │ │ │ │ │ │ │ ├── ApolloConfigNotification.java │ │ │ │ │ │ │ │ ├── ApolloNotificationMessages.java │ │ │ │ │ │ │ │ └── ServiceDTO.java │ │ │ │ │ │ │ ├── enums/ │ │ │ │ │ │ │ │ ├── ConfigFileFormat.java │ │ │ │ │ │ │ │ ├── Env.java │ │ │ │ │ │ │ │ └── EnvUtils.java │ │ │ │ │ │ │ ├── schedule/ │ │ │ │ │ │ │ │ ├── ExponentialSchedulePolicy.java │ │ │ │ │ │ │ │ └── SchedulePolicy.java │ │ │ │ │ │ │ └── utils/ │ │ │ │ │ │ │ ├── ApolloThreadFactory.java │ │ │ │ │ │ │ ├── ByteUtil.java │ │ │ │ │ │ │ ├── ClassLoaderUtil.java │ │ │ │ │ │ │ ├── DNSUtil.java │ │ │ │ │ │ │ ├── MachineUtil.java │ │ │ │ │ │ │ ├── PropertiesUtil.java │ │ │ │ │ │ │ ├── ResourceUtils.java │ │ │ │ │ │ │ └── StringUtils.java │ │ │ │ │ │ └── tracer/ │ │ │ │ │ │ ├── Tracer.java │ │ │ │ │ │ ├── internals/ │ │ │ │ │ │ │ ├── DefaultMessageProducerManager.java │ │ │ │ │ │ │ ├── NullMessageProducer.java │ │ │ │ │ │ │ ├── NullMessageProducerManager.java │ │ │ │ │ │ │ ├── NullTransaction.java │ │ │ │ │ │ │ └── cat/ │ │ │ │ │ │ │ ├── CatMessageProducer.java │ │ │ │ │ │ │ ├── CatNames.java │ │ │ │ │ │ │ └── CatTransaction.java │ │ │ │ │ │ └── spi/ │ │ │ │ │ │ ├── MessageProducer.java │ │ │ │ │ │ ├── MessageProducerManager.java │ │ │ │ │ │ └── Transaction.java │ │ │ │ │ └── foundation/ │ │ │ │ │ ├── Foundation.java │ │ │ │ │ ├── internals/ │ │ │ │ │ │ ├── DefaultProviderManager.java │ │ │ │ │ │ ├── NetworkInterfaceManager.java │ │ │ │ │ │ ├── NullProviderManager.java │ │ │ │ │ │ ├── ServiceBootstrap.java │ │ │ │ │ │ ├── Utils.java │ │ │ │ │ │ ├── io/ │ │ │ │ │ │ │ ├── BOMInputStream.java │ │ │ │ │ │ │ ├── ByteOrderMark.java │ │ │ │ │ │ │ ├── IOUtils.java │ │ │ │ │ │ │ └── ProxyInputStream.java │ │ │ │ │ │ └── provider/ │ │ │ │ │ │ ├── DefaultApplicationProvider.java │ │ │ │ │ │ ├── DefaultNetworkProvider.java │ │ │ │ │ │ ├── DefaultServerProvider.java │ │ │ │ │ │ └── NullProvider.java │ │ │ │ │ └── spi/ │ │ │ │ │ ├── ProviderManager.java │ │ │ │ │ └── provider/ │ │ │ │ │ ├── ApplicationProvider.java │ │ │ │ │ ├── NetworkProvider.java │ │ │ │ │ ├── Provider.java │ │ │ │ │ └── ServerProvider.java │ │ │ │ └── resources/ │ │ │ │ ├── META-INF/ │ │ │ │ │ └── services/ │ │ │ │ │ ├── com.ctrip.framework.apollo.tracer.spi.MessageProducerManager │ │ │ │ │ └── com.ctrip.framework.foundation.spi.ProviderManager │ │ │ │ └── apollo-env.properties │ │ │ └── test/ │ │ │ └── resources/ │ │ │ ├── META-INF/ │ │ │ │ ├── app-with-utf8bom.properties │ │ │ │ ├── app.properties │ │ │ │ ├── services/ │ │ │ │ │ ├── com.ctrip.framework.apollo.foundation.internals.ServiceBootstrapTest$Interface1 │ │ │ │ │ ├── com.ctrip.framework.apollo.foundation.internals.ServiceBootstrapTest$Interface3 │ │ │ │ │ ├── com.ctrip.framework.apollo.foundation.internals.ServiceBootstrapTest$Interface4 │ │ │ │ │ ├── com.ctrip.framework.apollo.foundation.internals.ServiceBootstrapTest$Interface5 │ │ │ │ │ └── com.ctrip.framework.apollo.tracer.spi.MessageProducerManager │ │ │ │ └── some-invalid-app.properties │ │ │ ├── apollo-env.properties │ │ │ ├── log4j2.xml │ │ │ └── properties/ │ │ │ ├── server-with-utf8bom.properties │ │ │ └── server.properties │ │ ├── apollo-portal/ │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ ├── assembly/ │ │ │ │ └── assembly-descriptor.xml │ │ │ ├── main/ │ │ │ │ ├── config/ │ │ │ │ │ ├── apollo-portal.conf │ │ │ │ │ └── app.properties │ │ │ │ ├── docker/ │ │ │ │ │ └── Dockerfile │ │ │ │ ├── java/ │ │ │ │ │ └── com/ │ │ │ │ │ └── ctrip/ │ │ │ │ │ └── framework/ │ │ │ │ │ └── apollo/ │ │ │ │ │ ├── openapi/ │ │ │ │ │ │ ├── PortalOpenApiConfig.java │ │ │ │ │ │ ├── auth/ │ │ │ │ │ │ │ └── ConsumerPermissionValidator.java │ │ │ │ │ │ ├── dto/ │ │ │ │ │ │ │ ├── OpenAppNamespaceDTO.java │ │ │ │ │ │ │ ├── OpenEnvClusterDTO.java │ │ │ │ │ │ │ ├── OpenItemDTO.java │ │ │ │ │ │ │ ├── OpenNamespaceDTO.java │ │ │ │ │ │ │ ├── OpenNamespaceLockDTO.java │ │ │ │ │ │ │ └── OpenReleaseDTO.java │ │ │ │ │ │ ├── entity/ │ │ │ │ │ │ │ ├── Consumer.java │ │ │ │ │ │ │ ├── ConsumerAudit.java │ │ │ │ │ │ │ ├── ConsumerRole.java │ │ │ │ │ │ │ └── ConsumerToken.java │ │ │ │ │ │ ├── filter/ │ │ │ │ │ │ │ └── ConsumerAuthenticationFilter.java │ │ │ │ │ │ ├── repository/ │ │ │ │ │ │ │ ├── ConsumerAuditRepository.java │ │ │ │ │ │ │ ├── ConsumerRepository.java │ │ │ │ │ │ │ ├── ConsumerRoleRepository.java │ │ │ │ │ │ │ └── ConsumerTokenRepository.java │ │ │ │ │ │ ├── service/ │ │ │ │ │ │ │ ├── ConsumerRolePermissionService.java │ │ │ │ │ │ │ └── ConsumerService.java │ │ │ │ │ │ ├── util/ │ │ │ │ │ │ │ ├── ConsumerAuditUtil.java │ │ │ │ │ │ │ ├── ConsumerAuthUtil.java │ │ │ │ │ │ │ └── OpenApiBeanUtils.java │ │ │ │ │ │ └── v1/ │ │ │ │ │ │ └── controller/ │ │ │ │ │ │ ├── AppController.java │ │ │ │ │ │ ├── ItemController.java │ │ │ │ │ │ ├── NamespaceController.java │ │ │ │ │ │ └── ReleaseController.java │ │ │ │ │ └── portal/ │ │ │ │ │ ├── PortalApplication.java │ │ │ │ │ ├── api/ │ │ │ │ │ │ ├── API.java │ │ │ │ │ │ └── AdminServiceAPI.java │ │ │ │ │ ├── component/ │ │ │ │ │ │ ├── AdminServiceAddressLocator.java │ │ │ │ │ │ ├── ItemsComparator.java │ │ │ │ │ │ ├── PermissionValidator.java │ │ │ │ │ │ ├── PortalSettings.java │ │ │ │ │ │ ├── RestTemplateFactory.java │ │ │ │ │ │ ├── RetryableRestTemplate.java │ │ │ │ │ │ ├── config/ │ │ │ │ │ │ │ └── PortalConfig.java │ │ │ │ │ │ ├── emailbuilder/ │ │ │ │ │ │ │ ├── ConfigPublishEmailBuilder.java │ │ │ │ │ │ │ ├── GrayPublishEmailBuilder.java │ │ │ │ │ │ │ ├── MergeEmailBuilder.java │ │ │ │ │ │ │ ├── NormalPublishEmailBuilder.java │ │ │ │ │ │ │ └── RollbackEmailBuilder.java │ │ │ │ │ │ └── txtresolver/ │ │ │ │ │ │ ├── ConfigTextResolver.java │ │ │ │ │ │ ├── FileTextResolver.java │ │ │ │ │ │ └── PropertyResolver.java │ │ │ │ │ ├── constant/ │ │ │ │ │ │ ├── PermissionType.java │ │ │ │ │ │ ├── RoleType.java │ │ │ │ │ │ └── TracerEventType.java │ │ │ │ │ ├── controller/ │ │ │ │ │ │ ├── AppController.java │ │ │ │ │ │ ├── ClusterController.java │ │ │ │ │ │ ├── CommitController.java │ │ │ │ │ │ ├── ConsumerController.java │ │ │ │ │ │ ├── EnvController.java │ │ │ │ │ │ ├── FavoriteController.java │ │ │ │ │ │ ├── InstanceController.java │ │ │ │ │ │ ├── ItemController.java │ │ │ │ │ │ ├── NamespaceBranchController.java │ │ │ │ │ │ ├── NamespaceController.java │ │ │ │ │ │ ├── NamespaceLockController.java │ │ │ │ │ │ ├── OrganizationController.java │ │ │ │ │ │ ├── PageSettingController.java │ │ │ │ │ │ ├── PermissionController.java │ │ │ │ │ │ ├── ReleaseController.java │ │ │ │ │ │ ├── ReleaseHistoryController.java │ │ │ │ │ │ ├── ServerConfigController.java │ │ │ │ │ │ ├── SignInController.java │ │ │ │ │ │ ├── SsoHeartbeatController.java │ │ │ │ │ │ └── UserInfoController.java │ │ │ │ │ ├── entity/ │ │ │ │ │ │ ├── bo/ │ │ │ │ │ │ │ ├── Email.java │ │ │ │ │ │ │ ├── ItemBO.java │ │ │ │ │ │ │ ├── KVEntity.java │ │ │ │ │ │ │ ├── NamespaceBO.java │ │ │ │ │ │ │ ├── ReleaseBO.java │ │ │ │ │ │ │ ├── ReleaseHistoryBO.java │ │ │ │ │ │ │ └── UserInfo.java │ │ │ │ │ │ ├── model/ │ │ │ │ │ │ │ ├── AppModel.java │ │ │ │ │ │ │ ├── NamespaceCreationModel.java │ │ │ │ │ │ │ ├── NamespaceReleaseModel.java │ │ │ │ │ │ │ ├── NamespaceSyncModel.java │ │ │ │ │ │ │ ├── NamespaceTextModel.java │ │ │ │ │ │ │ └── Verifiable.java │ │ │ │ │ │ ├── po/ │ │ │ │ │ │ │ ├── Favorite.java │ │ │ │ │ │ │ ├── Permission.java │ │ │ │ │ │ │ ├── Role.java │ │ │ │ │ │ │ ├── RolePermission.java │ │ │ │ │ │ │ ├── ServerConfig.java │ │ │ │ │ │ │ ├── UserPO.java │ │ │ │ │ │ │ └── UserRole.java │ │ │ │ │ │ └── vo/ │ │ │ │ │ │ ├── AppRolesAssignedUsers.java │ │ │ │ │ │ ├── Change.java │ │ │ │ │ │ ├── EnvClusterInfo.java │ │ │ │ │ │ ├── ItemDiffs.java │ │ │ │ │ │ ├── LockInfo.java │ │ │ │ │ │ ├── NamespaceIdentifier.java │ │ │ │ │ │ ├── NamespaceRolesAssignedUsers.java │ │ │ │ │ │ ├── Number.java │ │ │ │ │ │ ├── Organization.java │ │ │ │ │ │ ├── PageSetting.java │ │ │ │ │ │ ├── PermissionCondition.java │ │ │ │ │ │ └── ReleaseCompareResult.java │ │ │ │ │ ├── enums/ │ │ │ │ │ │ └── ChangeType.java │ │ │ │ │ ├── listener/ │ │ │ │ │ │ ├── AppCreationEvent.java │ │ │ │ │ │ ├── AppInfoChangedEvent.java │ │ │ │ │ │ ├── AppInfoChangedListener.java │ │ │ │ │ │ ├── AppNamespaceCreationEvent.java │ │ │ │ │ │ ├── ConfigPublishEvent.java │ │ │ │ │ │ ├── ConfigPublishListener.java │ │ │ │ │ │ └── CreationListener.java │ │ │ │ │ ├── repository/ │ │ │ │ │ │ ├── AppNamespaceRepository.java │ │ │ │ │ │ ├── AppRepository.java │ │ │ │ │ │ ├── FavoriteRepository.java │ │ │ │ │ │ ├── PermissionRepository.java │ │ │ │ │ │ ├── RolePermissionRepository.java │ │ │ │ │ │ ├── RoleRepository.java │ │ │ │ │ │ ├── ServerConfigRepository.java │ │ │ │ │ │ ├── UserRepository.java │ │ │ │ │ │ └── UserRoleRepository.java │ │ │ │ │ ├── service/ │ │ │ │ │ │ ├── AppNamespaceService.java │ │ │ │ │ │ ├── AppService.java │ │ │ │ │ │ ├── ClusterService.java │ │ │ │ │ │ ├── CommitService.java │ │ │ │ │ │ ├── FavoriteService.java │ │ │ │ │ │ ├── InstanceService.java │ │ │ │ │ │ ├── ItemService.java │ │ │ │ │ │ ├── NamespaceBranchService.java │ │ │ │ │ │ ├── NamespaceLockService.java │ │ │ │ │ │ ├── NamespaceService.java │ │ │ │ │ │ ├── PortalDBPropertySource.java │ │ │ │ │ │ ├── ReleaseHistoryService.java │ │ │ │ │ │ ├── ReleaseService.java │ │ │ │ │ │ ├── RoleInitializationService.java │ │ │ │ │ │ └── RolePermissionService.java │ │ │ │ │ ├── spi/ │ │ │ │ │ │ ├── EmailService.java │ │ │ │ │ │ ├── LogoutHandler.java │ │ │ │ │ │ ├── MQService.java │ │ │ │ │ │ ├── SsoHeartbeatHandler.java │ │ │ │ │ │ ├── UserInfoHolder.java │ │ │ │ │ │ ├── UserService.java │ │ │ │ │ │ ├── configuration/ │ │ │ │ │ │ │ ├── AuthConfiguration.java │ │ │ │ │ │ │ ├── AuthFilterConfiguration.java │ │ │ │ │ │ │ ├── EmailConfiguration.java │ │ │ │ │ │ │ ├── MQConfiguration.java │ │ │ │ │ │ │ └── RoleConfiguration.java │ │ │ │ │ │ ├── ctrip/ │ │ │ │ │ │ │ ├── BizLoggingCustomizer.java │ │ │ │ │ │ │ ├── CtripEmailRequestBuilder.java │ │ │ │ │ │ │ ├── CtripEmailService.java │ │ │ │ │ │ │ ├── CtripLogoutHandler.java │ │ │ │ │ │ │ ├── CtripMQService.java │ │ │ │ │ │ │ ├── CtripSsoHeartbeatHandler.java │ │ │ │ │ │ │ ├── CtripUserInfoHolder.java │ │ │ │ │ │ │ ├── CtripUserService.java │ │ │ │ │ │ │ ├── WebContextConfiguration.java │ │ │ │ │ │ │ └── filters/ │ │ │ │ │ │ │ └── UserAccessFilter.java │ │ │ │ │ │ ├── defaultimpl/ │ │ │ │ │ │ │ ├── DefaultEmailService.java │ │ │ │ │ │ │ ├── DefaultLogoutHandler.java │ │ │ │ │ │ │ ├── DefaultMQService.java │ │ │ │ │ │ │ ├── DefaultRoleInitializationService.java │ │ │ │ │ │ │ ├── DefaultRolePermissionService.java │ │ │ │ │ │ │ ├── DefaultSsoHeartbeatHandler.java │ │ │ │ │ │ │ ├── DefaultUserInfoHolder.java │ │ │ │ │ │ │ └── DefaultUserService.java │ │ │ │ │ │ ├── package-info.java │ │ │ │ │ │ └── springsecurity/ │ │ │ │ │ │ ├── SpringSecurityUserInfoHolder.java │ │ │ │ │ │ └── SpringSecurityUserService.java │ │ │ │ │ └── util/ │ │ │ │ │ ├── RelativeDateFormat.java │ │ │ │ │ └── RoleUtils.java │ │ │ │ ├── resources/ │ │ │ │ │ ├── META-INF/ │ │ │ │ │ │ └── app.properties │ │ │ │ │ ├── application-ctrip.yml │ │ │ │ │ ├── application.yml │ │ │ │ │ ├── logback.xml │ │ │ │ │ ├── portal.properties │ │ │ │ │ └── static/ │ │ │ │ │ ├── app/ │ │ │ │ │ │ └── setting.html │ │ │ │ │ ├── app.html │ │ │ │ │ ├── cluster.html │ │ │ │ │ ├── config/ │ │ │ │ │ │ ├── history.html │ │ │ │ │ │ └── sync.html │ │ │ │ │ ├── config.html │ │ │ │ │ ├── ctrip_sso_heartbeat.html │ │ │ │ │ ├── default_sso_heartbeat.html │ │ │ │ │ ├── index.html │ │ │ │ │ ├── java/ │ │ │ │ │ │ └── com/ │ │ │ │ │ │ └── example/ │ │ │ │ │ │ └── demo/ │ │ │ │ │ │ └── EcvoicesystemDemoApplicationTests.java │ │ │ │ │ ├── login.html │ │ │ │ │ ├── namespace/ │ │ │ │ │ │ └── role.html │ │ │ │ │ ├── namespace.html │ │ │ │ │ ├── open/ │ │ │ │ │ │ └── manage.html │ │ │ │ │ ├── scripts/ │ │ │ │ │ │ ├── AppUtils.js │ │ │ │ │ │ ├── PageCommon.js │ │ │ │ │ │ ├── app.js │ │ │ │ │ │ ├── controller/ │ │ │ │ │ │ │ ├── AppController.js │ │ │ │ │ │ │ ├── ClusterController.js │ │ │ │ │ │ │ ├── IndexController.js │ │ │ │ │ │ │ ├── LoginController.js │ │ │ │ │ │ │ ├── NamespaceController.js │ │ │ │ │ │ │ ├── ServerConfigController.js │ │ │ │ │ │ │ ├── SettingController.js │ │ │ │ │ │ │ ├── UserController.js │ │ │ │ │ │ │ ├── config/ │ │ │ │ │ │ │ │ ├── ConfigBaseInfoController.js │ │ │ │ │ │ │ │ ├── ConfigNamespaceController.js │ │ │ │ │ │ │ │ ├── ReleaseHistoryController.js │ │ │ │ │ │ │ │ └── SyncConfigController.js │ │ │ │ │ │ │ ├── open/ │ │ │ │ │ │ │ │ └── OpenManageController.js │ │ │ │ │ │ │ └── role/ │ │ │ │ │ │ │ └── NamespaceRoleController.js │ │ │ │ │ │ ├── directive/ │ │ │ │ │ │ │ ├── delete-namespace-modal-directive.js │ │ │ │ │ │ │ ├── diff-directive.js │ │ │ │ │ │ │ ├── directive.js │ │ │ │ │ │ │ ├── gray-release-rules-modal-directive.js │ │ │ │ │ │ │ ├── item-modal-directive.js │ │ │ │ │ │ │ ├── merge-and-publish-modal-directive.js │ │ │ │ │ │ │ ├── namespace-panel-directive.js │ │ │ │ │ │ │ ├── publish-deny-modal-directive.js │ │ │ │ │ │ │ ├── release-modal-directive.js │ │ │ │ │ │ │ ├── rollback-modal-directive.js │ │ │ │ │ │ │ └── show-text-modal-directive.js │ │ │ │ │ │ ├── services/ │ │ │ │ │ │ │ ├── AppService.js │ │ │ │ │ │ │ ├── ClusterService.js │ │ │ │ │ │ │ ├── CommitService.js │ │ │ │ │ │ │ ├── CommonService.js │ │ │ │ │ │ │ ├── ConfigService.js │ │ │ │ │ │ │ ├── ConsumerService.js │ │ │ │ │ │ │ ├── EnvService.js │ │ │ │ │ │ │ ├── EventManager.js │ │ │ │ │ │ │ ├── FavoriteService.js │ │ │ │ │ │ │ ├── InstanceService.js │ │ │ │ │ │ │ ├── NamespaceBranchService.js │ │ │ │ │ │ │ ├── NamespaceLockService.js │ │ │ │ │ │ │ ├── NamespaceService.js │ │ │ │ │ │ │ ├── OrganizationService.js │ │ │ │ │ │ │ ├── PermissionService.js │ │ │ │ │ │ │ ├── ReleaseHistoryService.js │ │ │ │ │ │ │ ├── ReleaseService.js │ │ │ │ │ │ │ ├── ServerConfigService.js │ │ │ │ │ │ │ └── UserService.js │ │ │ │ │ │ └── valdr.js │ │ │ │ │ ├── server_config.html │ │ │ │ │ ├── styles/ │ │ │ │ │ │ └── common-style.css │ │ │ │ │ ├── user-manage.html │ │ │ │ │ ├── vendor/ │ │ │ │ │ │ └── ui-ace/ │ │ │ │ │ │ ├── ace.js │ │ │ │ │ │ ├── mode-json.js │ │ │ │ │ │ ├── mode-properties.js │ │ │ │ │ │ ├── mode-xml.js │ │ │ │ │ │ ├── mode-yaml.js │ │ │ │ │ │ ├── theme-eclipse.js │ │ │ │ │ │ ├── worker-json.js │ │ │ │ │ │ └── worker-xml.js │ │ │ │ │ └── views/ │ │ │ │ │ ├── common/ │ │ │ │ │ │ ├── footer.html │ │ │ │ │ │ └── nav.html │ │ │ │ │ └── component/ │ │ │ │ │ ├── confirm-dialog.html │ │ │ │ │ ├── delete-namespace-modal.html │ │ │ │ │ ├── diff.html │ │ │ │ │ ├── entrance.html │ │ │ │ │ ├── env-selector.html │ │ │ │ │ ├── gray-release-rules-modal.html │ │ │ │ │ ├── item-modal.html │ │ │ │ │ ├── merge-and-publish-modal.html │ │ │ │ │ ├── multiple-user-selector.html │ │ │ │ │ ├── namespace-panel-branch-tab.html │ │ │ │ │ ├── namespace-panel-header.html │ │ │ │ │ ├── namespace-panel-master-tab.html │ │ │ │ │ ├── namespace-panel.html │ │ │ │ │ ├── publish-deny-modal.html │ │ │ │ │ ├── release-modal.html │ │ │ │ │ ├── rollback-modal.html │ │ │ │ │ ├── show-text-modal.html │ │ │ │ │ └── user-selector.html │ │ │ │ └── scripts/ │ │ │ │ ├── shutdown.sh │ │ │ │ └── startup.sh │ │ │ └── test/ │ │ │ └── resources/ │ │ │ ├── application.properties │ │ │ ├── application.yml │ │ │ ├── logback-test.xml │ │ │ └── sql/ │ │ │ ├── appnamespaceservice/ │ │ │ │ └── init-appnamespace.sql │ │ │ ├── cleanup.sql │ │ │ ├── favorites/ │ │ │ │ └── favorites.sql │ │ │ └── permission/ │ │ │ ├── insert-test-consumerroles.sql │ │ │ ├── insert-test-permissions.sql │ │ │ ├── insert-test-rolepermissions.sql │ │ │ ├── insert-test-roles.sql │ │ │ └── insert-test-userroles.sql │ │ ├── pom.xml │ │ └── scripts/ │ │ ├── build.bat │ │ ├── build.sh │ │ ├── docker-quick-start/ │ │ │ ├── docker-compose.yml │ │ │ └── sql/ │ │ │ ├── apolloconfigdb.sql │ │ │ └── apolloportaldb.sql │ │ └── sql/ │ │ ├── apolloconfigdb.sql │ │ └── apolloportaldb.sql │ ├── apollo-gateway/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── open/ │ │ │ └── capacity/ │ │ │ ├── ApiGateWayApp.java │ │ │ └── config/ │ │ │ ├── ZuulConfig.java │ │ │ └── ZuulConfigRreshConfig.java │ │ └── resources/ │ │ ├── META-INF/ │ │ │ └── app.properties │ │ └── bootstrap.yml │ └── pom.xml ├── open-db-core/ │ ├── pom.xml │ └── src/ │ └── main/ │ ├── java/ │ │ ├── com/ │ │ │ └── open/ │ │ │ └── capacity/ │ │ │ ├── db/ │ │ │ │ └── config/ │ │ │ │ ├── DruidConfig.java │ │ │ │ └── dynamic/ │ │ │ │ ├── annotation/ │ │ │ │ │ └── DataSource.java │ │ │ │ ├── aop/ │ │ │ │ │ └── DataSourceAspect.java │ │ │ │ └── config/ │ │ │ │ ├── DynamicDataSourceConfig.java │ │ │ │ └── util/ │ │ │ │ ├── DataSourceHolder.java │ │ │ │ ├── DataSourceKey.java │ │ │ │ └── DynamicDataSource.java │ │ │ └── redis/ │ │ │ └── config/ │ │ │ ├── RedisConfig.java │ │ │ └── util/ │ │ │ ├── FastJson2JsonRedisSerializer.java │ │ │ └── RedisObjectSerializer.java │ │ └── mybatis.cfg.xml │ └── resources/ │ └── jdbc.bcv.properties ├── open-eureka-center/ │ ├── README.md │ ├── open-eureka-client/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── docker/ │ │ │ └── Dockerfile │ │ ├── java/ │ │ │ └── com/ │ │ │ └── open/ │ │ │ └── capacity/ │ │ │ ├── EurekaClientApplication.java │ │ │ ├── config/ │ │ │ │ └── SwaggerConfig.java │ │ │ ├── controller/ │ │ │ │ ├── EurekaController.java │ │ │ │ ├── EurekaManageController.java │ │ │ │ └── HelloController.java │ │ │ └── health/ │ │ │ ├── EurekaClientHealthIndicator.java │ │ │ └── EurekaHealthCheckHandler.java │ │ └── resources/ │ │ ├── application.yml │ │ └── logback.xml │ ├── open-eureka-server/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── docker/ │ │ │ └── Dockerfile │ │ ├── java/ │ │ │ └── com/ │ │ │ └── open/ │ │ │ └── capacity/ │ │ │ ├── EurekaServerApp.java │ │ │ ├── controller/ │ │ │ │ └── EurekaController.java │ │ │ └── listener/ │ │ │ └── EurekaInstanceCanceledListener.java │ │ └── resources/ │ │ ├── application.yml │ │ └── templates/ │ │ ├── .keep │ │ └── eureka/ │ │ ├── .keep │ │ ├── header.ftl │ │ ├── lastn.ftl │ │ ├── navbar.ftl │ │ └── status.ftl │ └── pom.xml ├── open-layui-web/ │ ├── .gitignore │ ├── pom.xml │ └── src/ │ └── main/ │ ├── docker/ │ │ └── Dockerfile │ ├── java/ │ │ └── com/ │ │ └── open/ │ │ └── capacity/ │ │ ├── SecurityApplication.java │ │ ├── activiti/ │ │ │ ├── config/ │ │ │ │ ├── ActPropertiesConfig.java │ │ │ │ └── ActivitiConfig.java │ │ │ ├── controller/ │ │ │ │ └── ActivitiController.java │ │ │ ├── entity/ │ │ │ │ ├── ActAssignee.java │ │ │ │ ├── ActDeployment.java │ │ │ │ ├── ActModel.java │ │ │ │ ├── LeaveOpinion.java │ │ │ │ ├── ProcessDefinition.java │ │ │ │ ├── Task.java │ │ │ │ └── UserLeave.java │ │ │ ├── mapper/ │ │ │ │ ├── ActAssigneeMapper.java │ │ │ │ ├── ActAssigneeMapper.xml │ │ │ │ ├── UserLeaveMapper.java │ │ │ │ └── UserLeaveMapper.xml │ │ │ ├── rest/ │ │ │ │ └── editor/ │ │ │ │ ├── main/ │ │ │ │ │ └── StencilsetRestResource.java │ │ │ │ └── model/ │ │ │ │ ├── ModelEditorJsonRestResource.java │ │ │ │ └── ModelSaveRestResource.java │ │ │ ├── service/ │ │ │ │ ├── ActAssigneeService.java │ │ │ │ ├── UserLeaveService.java │ │ │ │ └── impl/ │ │ │ │ ├── ActAssigneeServiceImpl.java │ │ │ │ └── UserLeaveServiceImpl.java │ │ │ └── util/ │ │ │ ├── AssigneeType.java │ │ │ ├── Checkbox.java │ │ │ ├── JsonUtil.java │ │ │ └── ResultType.java │ │ └── security/ │ │ ├── advice/ │ │ │ ├── ExceptionHandlerAdvice.java │ │ │ └── LogAdvice.java │ │ ├── annotation/ │ │ │ └── LogAnnotation.java │ │ ├── config/ │ │ │ ├── AsycTaskExecutorConfig.java │ │ │ ├── LoginPageConfig.java │ │ │ ├── SecurityConfig.java │ │ │ ├── SecurityHandlerConfig.java │ │ │ ├── SwaggerConfig.java │ │ │ └── WebMvcConfig.java │ │ ├── controller/ │ │ │ ├── ClientController.java │ │ │ ├── DictController.java │ │ │ ├── EurekaController.java │ │ │ ├── ExcelController.java │ │ │ ├── FileController.java │ │ │ ├── GenerateController.java │ │ │ ├── MailController.java │ │ │ ├── NoticeController.java │ │ │ ├── PermissionController.java │ │ │ ├── RoleController.java │ │ │ ├── ServiceController.java │ │ │ ├── SysLogsController.java │ │ │ └── UserController.java │ │ ├── dao/ │ │ │ ├── ClientDao.java │ │ │ ├── ClientDao.xml │ │ │ ├── DictDao.java │ │ │ ├── DictDaoxml │ │ │ ├── FileDao.xml │ │ │ ├── FileInfoDao.java │ │ │ ├── MailDao.java │ │ │ ├── MailDao.xml │ │ │ ├── NoticeDao.java │ │ │ ├── NoticeDao.xml │ │ │ ├── PermissionDao.java │ │ │ ├── RoleDao.java │ │ │ ├── RoleDao.xml │ │ │ ├── ServiceDao.java │ │ │ ├── SysLogsDao.java │ │ │ ├── SysLogsDao.xml │ │ │ ├── TokenDao.java │ │ │ ├── UserDao.java │ │ │ └── UserDao.xml │ │ ├── dto/ │ │ │ ├── BeanField.java │ │ │ ├── ClientDto.java │ │ │ ├── GenerateDetail.java │ │ │ ├── GenerateInput.java │ │ │ ├── LayuiFile.java │ │ │ ├── LoginUser.java │ │ │ ├── NoticeReadVO.java │ │ │ ├── NoticeVO.java │ │ │ ├── ResponseInfo.java │ │ │ ├── RoleDto.java │ │ │ ├── Token.java │ │ │ └── UserDto.java │ │ ├── filter/ │ │ │ └── TokenFilter.java │ │ ├── model/ │ │ │ ├── BaseEntity.java │ │ │ ├── Client.java │ │ │ ├── Dict.java │ │ │ ├── FileInfo.java │ │ │ ├── Mail.java │ │ │ ├── MailTo.java │ │ │ ├── Notice.java │ │ │ ├── Permission.java │ │ │ ├── Role.java │ │ │ ├── SysLogs.java │ │ │ ├── SysUser.java │ │ │ └── TokenModel.java │ │ ├── page/ │ │ │ └── table/ │ │ │ ├── PageTableArgumentResolver.java │ │ │ ├── PageTableHandler.java │ │ │ ├── PageTableRequest.java │ │ │ └── PageTableResponse.java │ │ ├── service/ │ │ │ ├── ClientService.java │ │ │ ├── FileService.java │ │ │ ├── GenerateService.java │ │ │ ├── MailService.java │ │ │ ├── MicroServiceService.java │ │ │ ├── PermissionService.java │ │ │ ├── RoleService.java │ │ │ ├── SendMailSevice.java │ │ │ ├── SysLogService.java │ │ │ ├── TokenService.java │ │ │ ├── UserService.java │ │ │ └── impl/ │ │ │ ├── ClientServiceImpl.java │ │ │ ├── FileServiceImpl.java │ │ │ ├── GenerateServiceImpl.java │ │ │ ├── MailServiceImpl.java │ │ │ ├── MicroServicesServiceImpl.java │ │ │ ├── PermissionServiceImpl.java │ │ │ ├── RoleServiceImpl.java │ │ │ ├── SendMailSeviceImpl.java │ │ │ ├── SysLogServiceImpl.java │ │ │ ├── TokenServiceImpl.java │ │ │ ├── UserDetailsServiceImpl.java │ │ │ └── UserServiceImpl.java │ │ └── utils/ │ │ ├── ExcelUtil.java │ │ ├── FileUtil.java │ │ ├── ResponseUtil.java │ │ ├── SpringUtil.java │ │ ├── StrUtil.java │ │ ├── TemplateUtil.java │ │ └── UserUtil.java │ ├── resources/ │ │ ├── activiti.properties │ │ ├── application.yml │ │ ├── bootstrap.yml │ │ ├── bpmn/ │ │ │ ├── demo.xml │ │ │ ├── leave.bpmn │ │ │ ├── leave2.bpmn │ │ │ └── vacationRequest.bpmn │ │ ├── db/ │ │ │ └── boot_security.sql │ │ ├── generate/ │ │ │ ├── controller.ftl │ │ │ ├── dao.ftl │ │ │ ├── htmlAdd.ftl │ │ │ ├── htmlList.ftl │ │ │ ├── htmlUpdate.ftl │ │ │ ├── java.ftl │ │ │ └── mapper.ftl │ │ ├── logback-admin.xml │ │ ├── mybatis.cfg.xml │ │ └── stencilset.json │ └── view/ │ └── static/ │ ├── admin.html │ ├── assets/ │ │ ├── css/ │ │ │ ├── admin.css │ │ │ ├── amazeui.css │ │ │ ├── amazeui.flat.css │ │ │ ├── app.css │ │ │ └── login.css │ │ ├── fonts/ │ │ │ └── FontAwesome.otf │ │ └── js/ │ │ ├── amazeui.ie8polyfill.js │ │ ├── amazeui.js │ │ ├── amazeui.widgets.helper.js │ │ ├── app.js │ │ ├── area.js │ │ ├── config.js │ │ ├── iscroll.js │ │ ├── login.js │ │ └── summernote.js │ ├── base-component/ │ │ ├── amazeui/ │ │ │ ├── css/ │ │ │ │ ├── admin.css │ │ │ │ ├── amazeui.css │ │ │ │ ├── amazeui.flat.css │ │ │ │ └── app.css │ │ │ ├── fonts/ │ │ │ │ └── FontAwesome.otf │ │ │ └── js/ │ │ │ ├── amazeui.ie8polyfill.js │ │ │ ├── amazeui.js │ │ │ ├── amazeui.widgets.helper.js │ │ │ ├── app.js │ │ │ ├── area.js │ │ │ ├── config.js │ │ │ ├── iscroll.js │ │ │ └── summernote.js │ │ └── layer/ │ │ ├── layer.js │ │ └── skin/ │ │ └── layer.css │ ├── css/ │ │ ├── bootstrap-treeview.css │ │ ├── font-awesome/ │ │ │ ├── css/ │ │ │ │ └── font-awesome.css │ │ │ └── fonts/ │ │ │ └── FontAwesome.otf │ │ ├── login.css │ │ ├── simple-line-icons/ │ │ │ └── css/ │ │ │ └── simple-line-icons.css │ │ ├── style.css │ │ ├── treetable/ │ │ │ ├── jquery.treetable.css │ │ │ ├── jquery.treetable.theme.default.css │ │ │ └── screen.css │ │ ├── your_style.css │ │ └── ztree/ │ │ ├── awesomeStyle/ │ │ │ ├── awesome.css │ │ │ ├── awesome.less │ │ │ └── fa.less │ │ ├── demo.css │ │ ├── metroStyle/ │ │ │ └── metroStyle.css │ │ └── zTreeStyle/ │ │ └── zTreeStyle.css │ ├── editor-app/ │ │ ├── app.js │ │ ├── editor/ │ │ │ ├── css/ │ │ │ │ └── editor.css │ │ │ └── oryx.debug.js │ │ └── libs/ │ │ ├── angular-dragdrop.min-1.0.3.js │ │ ├── angular-mocks_1.2.13/ │ │ │ └── angular-mocks.js │ │ ├── angular-resource_1.2.13/ │ │ │ └── angular-resource.js │ │ ├── angular-route_1.2.13/ │ │ │ └── angular-route.js │ │ ├── angular-sanitize_1.2.13/ │ │ │ └── angular-sanitize.js │ │ ├── angular-translate-loader-static-files/ │ │ │ ├── .bower.json │ │ │ └── angular-translate-loader-static-files.js │ │ ├── angular-translate-storage-cookie/ │ │ │ ├── .bower.json │ │ │ └── angular-translate-storage-cookie.js │ │ ├── angular-translate_2.4.2/ │ │ │ └── angular-translate.js │ │ ├── bootstrap-daterangepicker_1.3.7/ │ │ │ ├── daterangepicker-bs3.css │ │ │ └── daterangepicker.js │ │ ├── jquery.autogrow-textarea.js │ │ ├── ng-grid-2.0.7-min.js │ │ └── ui-utils.min-0.0.4.js │ ├── img/ │ │ └── bg.jpg1 │ ├── index.html │ ├── index.html.aaa │ ├── index.html.bak1 │ ├── index.html.bak2 │ ├── js/ │ │ ├── app.js │ │ ├── bootstrap/ │ │ │ └── bootstrap-treeview.js │ │ ├── common.js │ │ ├── dict.js │ │ ├── index.js │ │ ├── jq.js │ │ ├── libs/ │ │ │ └── jquery.treetable.js │ │ ├── main.js │ │ ├── main2.js │ │ ├── my/ │ │ │ ├── job.js │ │ │ ├── permission.js │ │ │ ├── roles/ │ │ │ │ └── role.js │ │ │ ├── ztree-menu.js │ │ │ └── ztree-service.js │ │ ├── plugin/ │ │ │ └── datatables/ │ │ │ ├── Chinese.lang │ │ │ └── swf/ │ │ │ ├── copy_csv_xls.swf │ │ │ └── copy_csv_xls_pdf.swf │ │ └── util/ │ │ └── ajaxutils.js │ ├── layui/ │ │ ├── css/ │ │ │ ├── layui.css │ │ │ ├── layui.mobile.css │ │ │ └── modules/ │ │ │ ├── code.css │ │ │ ├── laydate/ │ │ │ │ └── default/ │ │ │ │ └── laydate.css │ │ │ └── layer/ │ │ │ └── default/ │ │ │ └── layer.css │ │ ├── lay/ │ │ │ └── modules/ │ │ │ ├── carousel.js │ │ │ ├── code.js │ │ │ ├── element.js │ │ │ ├── flow.js │ │ │ ├── form.js │ │ │ ├── jquery.js │ │ │ ├── laydate.js │ │ │ ├── layedit.js │ │ │ ├── layer.js │ │ │ ├── laypage.js │ │ │ ├── laytpl.js │ │ │ ├── mobile.js │ │ │ ├── rate.js │ │ │ ├── table.js │ │ │ ├── tree.js │ │ │ ├── upload.js │ │ │ └── util.js │ │ ├── layui.all.js │ │ └── layui.js │ ├── lib/ │ │ ├── bootstrap/ │ │ │ ├── css/ │ │ │ │ ├── bootstrap-grid.css │ │ │ │ ├── bootstrap-reboot.css │ │ │ │ └── bootstrap.css │ │ │ └── js/ │ │ │ ├── bootstrap.bundle.js │ │ │ └── bootstrap.js │ │ ├── font-awesome/ │ │ │ ├── css/ │ │ │ │ └── font-awesome.css │ │ │ └── fonts/ │ │ │ └── FontAwesome.otf │ │ ├── jquery/ │ │ │ ├── core.js │ │ │ ├── jquery.js │ │ │ └── jquery.slim.js │ │ ├── layer/ │ │ │ ├── layer.js │ │ │ ├── mobile/ │ │ │ │ ├── layer.js │ │ │ │ └── need/ │ │ │ │ └── layer.css │ │ │ └── theme/ │ │ │ └── default/ │ │ │ └── layer.css │ │ ├── layui/ │ │ │ ├── css/ │ │ │ │ ├── global.css │ │ │ │ ├── layui.css │ │ │ │ ├── layui.mobile.css │ │ │ │ └── modules/ │ │ │ │ ├── code.css │ │ │ │ ├── laydate/ │ │ │ │ │ └── default/ │ │ │ │ │ └── laydate.css │ │ │ │ └── layer/ │ │ │ │ └── default/ │ │ │ │ └── layer.css │ │ │ ├── lay/ │ │ │ │ └── modules/ │ │ │ │ ├── carousel.js │ │ │ │ ├── code.js │ │ │ │ ├── element.js │ │ │ │ ├── flow.js │ │ │ │ ├── form.js │ │ │ │ ├── jquery.js │ │ │ │ ├── laydate.js │ │ │ │ ├── layedit.js │ │ │ │ ├── layer.js │ │ │ │ ├── laypage.js │ │ │ │ ├── laytpl.js │ │ │ │ ├── mobile.js │ │ │ │ ├── table.js │ │ │ │ ├── tree.js │ │ │ │ ├── upload.js │ │ │ │ └── util.js │ │ │ ├── layui.all.js │ │ │ ├── layui.js │ │ │ └── layuiextend/ │ │ │ ├── treeSelect/ │ │ │ │ ├── css/ │ │ │ │ │ └── treeSelect.css │ │ │ │ └── treeselect.js │ │ │ ├── treegrid/ │ │ │ │ ├── css/ │ │ │ │ │ └── grid.css │ │ │ │ ├── grid.js │ │ │ │ └── treegrid.js │ │ │ └── ztree/ │ │ │ ├── css/ │ │ │ │ ├── treeselect.css │ │ │ │ └── ztree/ │ │ │ │ ├── awesome/ │ │ │ │ │ ├── fa.less │ │ │ │ │ ├── ztree.css │ │ │ │ │ └── ztree.less │ │ │ │ ├── default/ │ │ │ │ │ └── ztree.css │ │ │ │ └── metro/ │ │ │ │ └── ztree.css │ │ │ └── js/ │ │ │ ├── treeselect.js │ │ │ └── ztree.js │ │ ├── popper.js/ │ │ │ ├── popper-utils.js │ │ │ └── popper.js │ │ ├── simple-line-icons/ │ │ │ └── css/ │ │ │ └── simple-line-icons.css │ │ └── skin/ │ │ └── css/ │ │ ├── admin.css │ │ ├── console.css │ │ └── login.css │ ├── login.html │ ├── login.html.bak │ ├── login.html.bak1 │ ├── pages/ │ │ ├── activiti/ │ │ │ ├── actList.html │ │ │ ├── actModelList.html │ │ │ ├── deploy/ │ │ │ │ └── act-node.html │ │ │ ├── diagram-viewer/ │ │ │ │ ├── index.html │ │ │ │ ├── js/ │ │ │ │ │ ├── ActivitiRest.js │ │ │ │ │ ├── ActivityImpl.js │ │ │ │ │ ├── Color.js │ │ │ │ │ ├── LineBreakMeasurer.js │ │ │ │ │ ├── Polyline.js │ │ │ │ │ ├── ProcessDiagramCanvas.js │ │ │ │ │ ├── ProcessDiagramGenerator.js │ │ │ │ │ ├── jquery/ │ │ │ │ │ │ ├── jquery.asyncqueue.js │ │ │ │ │ │ ├── jquery.js │ │ │ │ │ │ └── jquery.progressbar.js │ │ │ │ │ ├── jstools.js │ │ │ │ │ ├── raphael.2.1.1.js │ │ │ │ │ ├── raphael.js │ │ │ │ │ ├── raphael_uncompressed.js │ │ │ │ │ └── textlayout.js │ │ │ │ └── style.css │ │ │ ├── editor-app/ │ │ │ │ ├── app-cfg.js │ │ │ │ ├── app.js │ │ │ │ ├── configuration/ │ │ │ │ │ ├── properties/ │ │ │ │ │ │ ├── assignment-display-template.html │ │ │ │ │ │ ├── assignment-popup.html │ │ │ │ │ │ ├── assignment-write-template.html │ │ │ │ │ │ ├── boolean-property-template.html │ │ │ │ │ │ ├── condition-expression-display-template.html │ │ │ │ │ │ ├── condition-expression-popup.html │ │ │ │ │ │ ├── condition-expression-write-template.html │ │ │ │ │ │ ├── default-value-display-template.html │ │ │ │ │ │ ├── event-listeners-display-template.html │ │ │ │ │ │ ├── event-listeners-popup.html │ │ │ │ │ │ ├── event-listeners-write-template.html │ │ │ │ │ │ ├── execution-listeners-display-template.html │ │ │ │ │ │ ├── execution-listeners-popup.html │ │ │ │ │ │ ├── execution-listeners-write-template.html │ │ │ │ │ │ ├── feedback-popup.html │ │ │ │ │ │ ├── fields-display-template.html │ │ │ │ │ │ ├── fields-popup.html │ │ │ │ │ │ ├── fields-write-template.html │ │ │ │ │ │ ├── form-properties-display-template.html │ │ │ │ │ │ ├── form-properties-popup.html │ │ │ │ │ │ ├── form-properties-write-template.html │ │ │ │ │ │ ├── in-parameters-display-template.html │ │ │ │ │ │ ├── in-parameters-popup.html │ │ │ │ │ │ ├── in-parameters-write-template.html │ │ │ │ │ │ ├── message-definitions-display-template.html │ │ │ │ │ │ ├── message-definitions-popup.html │ │ │ │ │ │ ├── message-definitions-write-template.html │ │ │ │ │ │ ├── message-property-write-template.html │ │ │ │ │ │ ├── multiinstance-property-write-template.html │ │ │ │ │ │ ├── out-parameters-display-template.html │ │ │ │ │ │ ├── out-parameters-popup.html │ │ │ │ │ │ ├── out-parameters-write-template.html │ │ │ │ │ │ ├── sequenceflow-order-display-template.html │ │ │ │ │ │ ├── sequenceflow-order-popup.html │ │ │ │ │ │ ├── sequenceflow-order-write-template.html │ │ │ │ │ │ ├── signal-definitions-display-template.html │ │ │ │ │ │ ├── signal-definitions-popup.html │ │ │ │ │ │ ├── signal-definitions-write-template.html │ │ │ │ │ │ ├── signal-property-write-template.html │ │ │ │ │ │ ├── string-property-write-mode-template.html │ │ │ │ │ │ ├── subprocess-reference-display-template.html │ │ │ │ │ │ ├── subprocess-reference-popup.html │ │ │ │ │ │ ├── subprocess-reference-write-template.html │ │ │ │ │ │ ├── task-listeners-display-template.html │ │ │ │ │ │ ├── task-listeners-popup.html │ │ │ │ │ │ ├── task-listeners-write-template.html │ │ │ │ │ │ ├── text-popup.html │ │ │ │ │ │ └── text-property-write-template.html │ │ │ │ │ ├── properties-assignment-controller.js │ │ │ │ │ ├── properties-condition-expression-controller.js │ │ │ │ │ ├── properties-custom-controllers.js │ │ │ │ │ ├── properties-default-controllers.js │ │ │ │ │ ├── properties-event-listeners-controller.js │ │ │ │ │ ├── properties-execution-listeners-controller.js │ │ │ │ │ ├── properties-fields-controller.js │ │ │ │ │ ├── properties-form-properties-controller.js │ │ │ │ │ ├── properties-in-parameters-controller.js │ │ │ │ │ ├── properties-message-definitions-controller.js │ │ │ │ │ ├── properties-message-scope-controller.js │ │ │ │ │ ├── properties-multiinstance-controller.js │ │ │ │ │ ├── properties-out-parameters-controller.js │ │ │ │ │ ├── properties-sequenceflow-order-controller.js │ │ │ │ │ ├── properties-signal-definitions-controller.js │ │ │ │ │ ├── properties-signal-scope-controller.js │ │ │ │ │ ├── properties-task-listeners-controller.js │ │ │ │ │ ├── properties.js │ │ │ │ │ ├── toolbar-custom-actions.js │ │ │ │ │ ├── toolbar-default-actions.js │ │ │ │ │ ├── toolbar.js │ │ │ │ │ └── url-config.js │ │ │ │ ├── css/ │ │ │ │ │ ├── style-common.css │ │ │ │ │ ├── style-editor.css │ │ │ │ │ └── style.css │ │ │ │ ├── editor/ │ │ │ │ │ ├── css/ │ │ │ │ │ │ └── editor.css │ │ │ │ │ ├── i18n/ │ │ │ │ │ │ ├── translation_de.js │ │ │ │ │ │ ├── translation_en_us.js │ │ │ │ │ │ ├── translation_signavio_de.js │ │ │ │ │ │ └── translation_signavio_en_us.js │ │ │ │ │ ├── oryx.debug.js │ │ │ │ │ └── oryx.js │ │ │ │ ├── editor-config.js │ │ │ │ ├── editor-controller.js │ │ │ │ ├── editor-utils.js │ │ │ │ ├── editor.html │ │ │ │ ├── eventbus.js │ │ │ │ ├── header-controller.js │ │ │ │ ├── i18n/ │ │ │ │ │ ├── en.json │ │ │ │ │ └── en.json_bak │ │ │ │ ├── libs/ │ │ │ │ │ ├── angular-dragdrop.min-1.0.3.js │ │ │ │ │ ├── angular-mocks_1.2.13/ │ │ │ │ │ │ └── angular-mocks.js │ │ │ │ │ ├── angular-resource_1.2.13/ │ │ │ │ │ │ └── angular-resource.js │ │ │ │ │ ├── angular-route_1.2.13/ │ │ │ │ │ │ └── angular-route.js │ │ │ │ │ ├── angular-sanitize_1.2.13/ │ │ │ │ │ │ └── angular-sanitize.js │ │ │ │ │ ├── angular-translate-loader-static-files/ │ │ │ │ │ │ ├── .bower.json │ │ │ │ │ │ └── angular-translate-loader-static-files.js │ │ │ │ │ ├── angular-translate-storage-cookie/ │ │ │ │ │ │ ├── .bower.json │ │ │ │ │ │ └── angular-translate-storage-cookie.js │ │ │ │ │ ├── angular-translate_2.4.2/ │ │ │ │ │ │ └── angular-translate.js │ │ │ │ │ ├── bootstrap-daterangepicker_1.3.7/ │ │ │ │ │ │ ├── daterangepicker-bs3.css │ │ │ │ │ │ └── daterangepicker.js │ │ │ │ │ ├── bootstrap_3.1.1/ │ │ │ │ │ │ ├── css/ │ │ │ │ │ │ │ ├── bootstrap-theme.css │ │ │ │ │ │ │ └── bootstrap.css │ │ │ │ │ │ └── js/ │ │ │ │ │ │ └── bootstrap.js │ │ │ │ │ ├── es5-shim-15.3.4.5/ │ │ │ │ │ │ ├── .bower.json │ │ │ │ │ │ ├── .gitignore │ │ │ │ │ │ ├── CHANGES │ │ │ │ │ │ ├── CONTRIBUTORS.md │ │ │ │ │ │ ├── LICENSE │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ ├── es5-sham.js │ │ │ │ │ │ ├── es5-shim.js │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ └── tests/ │ │ │ │ │ │ ├── helpers/ │ │ │ │ │ │ │ ├── h-kill.js │ │ │ │ │ │ │ ├── h-matchers.js │ │ │ │ │ │ │ └── h.js │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ ├── index.min.html │ │ │ │ │ │ ├── lib/ │ │ │ │ │ │ │ ├── jasmine-html.js │ │ │ │ │ │ │ ├── jasmine.css │ │ │ │ │ │ │ ├── jasmine.js │ │ │ │ │ │ │ └── json2.js │ │ │ │ │ │ └── spec/ │ │ │ │ │ │ ├── s-array.js │ │ │ │ │ │ ├── s-date.js │ │ │ │ │ │ ├── s-function.js │ │ │ │ │ │ ├── s-number.js │ │ │ │ │ │ ├── s-object.js │ │ │ │ │ │ └── s-string.js │ │ │ │ │ ├── jquery.autogrow-textarea.js │ │ │ │ │ ├── jquery_1.11.0/ │ │ │ │ │ │ └── jquery.js │ │ │ │ │ ├── json3_3.2.6/ │ │ │ │ │ │ ├── LICENSE │ │ │ │ │ │ └── lib/ │ │ │ │ │ │ └── json3.js │ │ │ │ │ ├── ng-grid-2.0.7-min.js │ │ │ │ │ ├── path_parser.js │ │ │ │ │ ├── prototype-1.5.1.js │ │ │ │ │ └── ui-utils.min-0.0.4.js │ │ │ │ ├── partials/ │ │ │ │ │ ├── root-stencil-item-template.html │ │ │ │ │ └── stencil-item-template.html │ │ │ │ ├── plugins.xml │ │ │ │ ├── popups/ │ │ │ │ │ ├── icon-template.html │ │ │ │ │ ├── save-model.html │ │ │ │ │ ├── select-shape.html │ │ │ │ │ └── unsaved-changes.html │ │ │ │ ├── select-shape-controller.js │ │ │ │ ├── stencil-controller.js │ │ │ │ └── toolbar-controller.js │ │ │ └── modeler.html │ │ ├── client/ │ │ │ ├── addClient.html │ │ │ └── clientList.html │ │ ├── dashboard.html │ │ ├── dict/ │ │ │ ├── addDict.html │ │ │ ├── dictList.html │ │ │ └── updateDict.html │ │ ├── euraka/ │ │ │ └── euraka.html │ │ ├── excel/ │ │ │ └── sql.html │ │ ├── file/ │ │ │ └── fileList.html │ │ ├── generate/ │ │ │ └── edit.html │ │ ├── job/ │ │ │ ├── addJob.html │ │ │ ├── jobList.html │ │ │ └── updateJob.html │ │ ├── log/ │ │ │ └── logList.html │ │ ├── mail/ │ │ │ ├── addMail.html │ │ │ ├── mailDetail.html │ │ │ └── mailList.html │ │ ├── menu/ │ │ │ ├── addMenu.html │ │ │ ├── icon.html │ │ │ ├── menuList.html │ │ │ └── updateMenu.html │ │ ├── notice/ │ │ │ ├── addNotice.html │ │ │ ├── detail.html │ │ │ ├── noticeList.html │ │ │ ├── noticePubList.html │ │ │ └── updateNotice.html │ │ ├── role/ │ │ │ ├── addRole.html │ │ │ └── roleList.html │ │ ├── service/ │ │ │ ├── addService.html │ │ │ ├── icon.html │ │ │ ├── serviceList.html │ │ │ └── updateService.html │ │ └── user/ │ │ ├── addUser.html │ │ ├── changePassword.html │ │ ├── updateHeadImg.html │ │ ├── updateMyself.html │ │ ├── updateUser.html │ │ └── userList.html │ └── public/ │ ├── css/ │ │ ├── index1.css │ │ └── main.css │ ├── fonts/ │ │ └── FontAwesome.otf │ ├── js/ │ │ ├── common.js │ │ ├── index.js │ │ ├── navtab.js │ │ └── sys/ │ │ ├── config.js │ │ ├── generator.js │ │ ├── log.js │ │ ├── menu.js │ │ ├── role.js │ │ ├── schedule.js │ │ ├── schedule_log.js │ │ └── user.js │ ├── libs/ │ │ ├── ajaxupload.js │ │ ├── app.js │ │ └── router.js │ └── plugins/ │ ├── jqgrid/ │ │ ├── grid.locale-cn.js │ │ ├── ui.jqgrid-bootstrap-ui.css │ │ ├── ui.jqgrid-bootstrap.css │ │ └── ui.jqgrid.css │ ├── layer/ │ │ ├── layer.js │ │ ├── mobile/ │ │ │ ├── layer.js │ │ │ └── need/ │ │ │ └── layer.css │ │ └── skin/ │ │ ├── default/ │ │ │ └── layer.css │ │ └── moon/ │ │ └── style.css │ ├── layui/ │ │ ├── css/ │ │ │ ├── layui.css │ │ │ └── modules/ │ │ │ ├── code.css │ │ │ ├── icheck/ │ │ │ │ ├── flat/ │ │ │ │ │ ├── _all.css │ │ │ │ │ ├── aero.css │ │ │ │ │ ├── blue.css │ │ │ │ │ ├── flat.css │ │ │ │ │ ├── green.css │ │ │ │ │ ├── grey.css │ │ │ │ │ ├── orange.css │ │ │ │ │ ├── pink.css │ │ │ │ │ ├── purple.css │ │ │ │ │ ├── red.css │ │ │ │ │ └── yellow.css │ │ │ │ ├── futurico/ │ │ │ │ │ └── futurico.css │ │ │ │ ├── icheck.css │ │ │ │ ├── line/ │ │ │ │ │ ├── _all.css │ │ │ │ │ ├── aero.css │ │ │ │ │ ├── blue.css │ │ │ │ │ ├── green.css │ │ │ │ │ ├── grey.css │ │ │ │ │ ├── line.css │ │ │ │ │ ├── orange.css │ │ │ │ │ ├── pink.css │ │ │ │ │ ├── purple.css │ │ │ │ │ ├── red.css │ │ │ │ │ └── yellow.css │ │ │ │ ├── minimal/ │ │ │ │ │ ├── _all.css │ │ │ │ │ ├── aero.css │ │ │ │ │ ├── blue.css │ │ │ │ │ ├── green.css │ │ │ │ │ ├── grey.css │ │ │ │ │ ├── minimal.css │ │ │ │ │ ├── orange.css │ │ │ │ │ ├── pink.css │ │ │ │ │ ├── purple.css │ │ │ │ │ ├── red.css │ │ │ │ │ └── yellow.css │ │ │ │ ├── polaris/ │ │ │ │ │ └── polaris.css │ │ │ │ └── square/ │ │ │ │ ├── _all.css │ │ │ │ ├── aero.css │ │ │ │ ├── blue.css │ │ │ │ ├── green.css │ │ │ │ ├── grey.css │ │ │ │ ├── orange.css │ │ │ │ ├── pink.css │ │ │ │ ├── purple.css │ │ │ │ ├── red.css │ │ │ │ ├── square.css │ │ │ │ └── yellow.css │ │ │ ├── laydate/ │ │ │ │ └── laydate.css │ │ │ └── layer/ │ │ │ └── default/ │ │ │ └── layer.css │ │ ├── lay/ │ │ │ ├── dest/ │ │ │ │ ├── layui.all.js │ │ │ │ └── layui.mod.js │ │ │ ├── lib/ │ │ │ │ └── jquery.js │ │ │ └── modules/ │ │ │ ├── code.js │ │ │ ├── element.js │ │ │ ├── flow.js │ │ │ ├── form.js │ │ │ ├── laydate.js │ │ │ ├── layedit.js │ │ │ ├── layer.js │ │ │ ├── laypage.js │ │ │ ├── laytpl.js │ │ │ ├── tree.js │ │ │ ├── upload.js │ │ │ └── util.js │ │ ├── layui.js │ │ └── modules/ │ │ ├── icheck.js │ │ └── pjax.js │ └── ztree/ │ └── css/ │ ├── awesomeStyle/ │ │ ├── awesome.css │ │ ├── awesome.less │ │ └── fa.less │ ├── metroStyle/ │ │ └── metroStyle.css │ └── zTreeStyle/ │ └── zTreeStyle.css ├── open-monitor-center/ │ ├── cachecloud/ │ │ ├── LICENSE │ │ ├── README.md │ │ ├── cachecloud-open-client/ │ │ │ ├── cachecloud-jedis/ │ │ │ │ ├── .gitignore │ │ │ │ ├── pom.xml │ │ │ │ └── src/ │ │ │ │ ├── main/ │ │ │ │ │ └── java/ │ │ │ │ │ └── redis/ │ │ │ │ │ └── clients/ │ │ │ │ │ ├── jedis/ │ │ │ │ │ │ ├── BinaryClient.java │ │ │ │ │ │ ├── BinaryJedis.java │ │ │ │ │ │ ├── BinaryJedisCluster.java │ │ │ │ │ │ ├── BinaryJedisPubSub.java │ │ │ │ │ │ ├── BinaryShardedJedis.java │ │ │ │ │ │ ├── BitOP.java │ │ │ │ │ │ ├── BitPosParams.java │ │ │ │ │ │ ├── Builder.java │ │ │ │ │ │ ├── BuilderFactory.java │ │ │ │ │ │ ├── Client.java │ │ │ │ │ │ ├── Connection.java │ │ │ │ │ │ ├── DebugParams.java │ │ │ │ │ │ ├── GeoCoordinate.java │ │ │ │ │ │ ├── GeoRadiusResponse.java │ │ │ │ │ │ ├── GeoUnit.java │ │ │ │ │ │ ├── HostAndPort.java │ │ │ │ │ │ ├── Jedis.java │ │ │ │ │ │ ├── JedisCluster.java │ │ │ │ │ │ ├── JedisClusterCommand.java │ │ │ │ │ │ ├── JedisClusterConnectionHandler.java │ │ │ │ │ │ ├── JedisClusterInfoCache.java │ │ │ │ │ │ ├── JedisFactory.java │ │ │ │ │ │ ├── JedisMonitor.java │ │ │ │ │ │ ├── JedisPool.java │ │ │ │ │ │ ├── JedisPoolAbstract.java │ │ │ │ │ │ ├── JedisPoolConfig.java │ │ │ │ │ │ ├── JedisPubSub.java │ │ │ │ │ │ ├── JedisSentinelPool.java │ │ │ │ │ │ ├── JedisShardInfo.java │ │ │ │ │ │ ├── JedisSlotBasedConnectionHandler.java │ │ │ │ │ │ ├── MultiKeyPipelineBase.java │ │ │ │ │ │ ├── Pipeline.java │ │ │ │ │ │ ├── PipelineBase.java │ │ │ │ │ │ ├── PipelineCluster.java │ │ │ │ │ │ ├── PipelineClusterCommand.java │ │ │ │ │ │ ├── Protocol.java │ │ │ │ │ │ ├── Queable.java │ │ │ │ │ │ ├── RedisPipeline.java │ │ │ │ │ │ ├── Response.java │ │ │ │ │ │ ├── ScanParams.java │ │ │ │ │ │ ├── ScanResult.java │ │ │ │ │ │ ├── ShardedJedis.java │ │ │ │ │ │ ├── ShardedJedisPipeline.java │ │ │ │ │ │ ├── ShardedJedisPool.java │ │ │ │ │ │ ├── SortingParams.java │ │ │ │ │ │ ├── SubPubClusterCommand.java │ │ │ │ │ │ ├── Transaction.java │ │ │ │ │ │ ├── Tuple.java │ │ │ │ │ │ ├── ZParams.java │ │ │ │ │ │ ├── commands/ │ │ │ │ │ │ │ ├── AdvancedBinaryJedisCommands.java │ │ │ │ │ │ │ ├── AdvancedJedisCommands.java │ │ │ │ │ │ │ ├── BasicCommands.java │ │ │ │ │ │ │ ├── BasicRedisPipeline.java │ │ │ │ │ │ │ ├── BinaryJedisClusterCommands.java │ │ │ │ │ │ │ ├── BinaryJedisCommands.java │ │ │ │ │ │ │ ├── BinaryRedisPipeline.java │ │ │ │ │ │ │ ├── BinaryScriptingCommands.java │ │ │ │ │ │ │ ├── BinaryScriptingCommandsPipeline.java │ │ │ │ │ │ │ ├── ClusterCommands.java │ │ │ │ │ │ │ ├── ClusterPipeline.java │ │ │ │ │ │ │ ├── Commands.java │ │ │ │ │ │ │ ├── JedisClusterBinaryScriptingCommands.java │ │ │ │ │ │ │ ├── JedisClusterCommands.java │ │ │ │ │ │ │ ├── JedisClusterScriptingCommands.java │ │ │ │ │ │ │ ├── JedisCommands.java │ │ │ │ │ │ │ ├── MultiKeyBinaryCommands.java │ │ │ │ │ │ │ ├── MultiKeyBinaryJedisClusterCommands.java │ │ │ │ │ │ │ ├── MultiKeyBinaryRedisPipeline.java │ │ │ │ │ │ │ ├── MultiKeyCommands.java │ │ │ │ │ │ │ ├── MultiKeyCommandsPipeline.java │ │ │ │ │ │ │ ├── MultiKeyJedisClusterCommands.java │ │ │ │ │ │ │ ├── ProtocolCommand.java │ │ │ │ │ │ │ ├── RedisPipeline.java │ │ │ │ │ │ │ ├── ScriptingCommands.java │ │ │ │ │ │ │ ├── ScriptingCommandsPipeline.java │ │ │ │ │ │ │ └── SentinelCommands.java │ │ │ │ │ │ ├── exceptions/ │ │ │ │ │ │ │ ├── InvalidURIException.java │ │ │ │ │ │ │ ├── JedisAskDataException.java │ │ │ │ │ │ │ ├── JedisClusterCrossSlotException.java │ │ │ │ │ │ │ ├── JedisClusterException.java │ │ │ │ │ │ │ ├── JedisClusterMaxRedirectionsException.java │ │ │ │ │ │ │ ├── JedisConnectionException.java │ │ │ │ │ │ │ ├── JedisDataException.java │ │ │ │ │ │ │ ├── JedisException.java │ │ │ │ │ │ │ ├── JedisMovedDataException.java │ │ │ │ │ │ │ └── JedisRedirectionException.java │ │ │ │ │ │ ├── params/ │ │ │ │ │ │ │ ├── Params.java │ │ │ │ │ │ │ ├── geo/ │ │ │ │ │ │ │ │ └── GeoRadiusParam.java │ │ │ │ │ │ │ ├── set/ │ │ │ │ │ │ │ │ └── SetParams.java │ │ │ │ │ │ │ └── sortedset/ │ │ │ │ │ │ │ ├── ZAddParams.java │ │ │ │ │ │ │ └── ZIncrByParams.java │ │ │ │ │ │ ├── serializable/ │ │ │ │ │ │ │ ├── ProtostuffSerializer.java │ │ │ │ │ │ │ └── VO.java │ │ │ │ │ │ └── valueobject/ │ │ │ │ │ │ ├── RangeScoreVO.java │ │ │ │ │ │ ├── ReshardProcess.java │ │ │ │ │ │ └── SortedSetVO.java │ │ │ │ │ └── util/ │ │ │ │ │ ├── ClusterNodeInformation.java │ │ │ │ │ ├── ClusterNodeInformationParser.java │ │ │ │ │ ├── Hashing.java │ │ │ │ │ ├── IOUtils.java │ │ │ │ │ ├── JedisByteHashMap.java │ │ │ │ │ ├── JedisClusterCRC16.java │ │ │ │ │ ├── JedisURIHelper.java │ │ │ │ │ ├── KeyMergeUtil.java │ │ │ │ │ ├── MurmurHash.java │ │ │ │ │ ├── Pool.java │ │ │ │ │ ├── RedisInputStream.java │ │ │ │ │ ├── RedisOutputStream.java │ │ │ │ │ ├── SafeEncoder.java │ │ │ │ │ ├── ShardInfo.java │ │ │ │ │ ├── Sharded.java │ │ │ │ │ └── Slowlog.java │ │ │ │ └── test/ │ │ │ │ └── java/ │ │ │ │ └── redis/ │ │ │ │ └── clients/ │ │ │ │ └── jedis/ │ │ │ │ ├── PipelineClusterTest.java │ │ │ │ ├── TupleTest.java │ │ │ │ └── tests/ │ │ │ │ ├── BuilderFactoryTest.java │ │ │ │ ├── ConnectionCloseTest.java │ │ │ │ ├── ConnectionTest.java │ │ │ │ ├── FragmentedByteArrayInputStream.java │ │ │ │ ├── HostAndPortUtil.java │ │ │ │ ├── JedisClusterNodeInformationParserTest.java │ │ │ │ ├── JedisClusterTest.java │ │ │ │ ├── JedisPoolTest.java │ │ │ │ ├── JedisSentinelPoolTest.java │ │ │ │ ├── JedisSentinelTest.java │ │ │ │ ├── JedisTest.java │ │ │ │ ├── JedisTestBase.java │ │ │ │ ├── KeyMergeUtilTest.java │ │ │ │ ├── PipeliningTest.java │ │ │ │ ├── ProtocolTest.java │ │ │ │ ├── ShardedJedisPipelineTest.java │ │ │ │ ├── ShardedJedisPoolTest.java │ │ │ │ ├── ShardedJedisTest.java │ │ │ │ ├── benchmark/ │ │ │ │ │ ├── CRC16Benchmark.java │ │ │ │ │ ├── GetSetBenchmark.java │ │ │ │ │ ├── HashingBenchmark.java │ │ │ │ │ ├── PipelinedGetSetBenchmark.java │ │ │ │ │ ├── PoolBenchmark.java │ │ │ │ │ ├── ProtocolBenchmark.java │ │ │ │ │ ├── SafeEncoderBenchmark.java │ │ │ │ │ └── ShardedBenchmark.java │ │ │ │ ├── collections/ │ │ │ │ │ └── SetFromListTest.java │ │ │ │ ├── commands/ │ │ │ │ │ ├── AllKindOfValuesCommandsTest.java │ │ │ │ │ ├── BinaryValuesCommandsTest.java │ │ │ │ │ ├── BitCommandsTest.java │ │ │ │ │ ├── ClusterBinaryJedisCommandsTest.java │ │ │ │ │ ├── ClusterCommandsTest.java │ │ │ │ │ ├── ClusterScriptingCommandsTest.java │ │ │ │ │ ├── ConnectionHandlingCommandsTest.java │ │ │ │ │ ├── ControlCommandsTest.java │ │ │ │ │ ├── GeoCommandsTest.java │ │ │ │ │ ├── HashesCommandsTest.java │ │ │ │ │ ├── HyperLogLogCommandsTest.java │ │ │ │ │ ├── JedisCommandTestBase.java │ │ │ │ │ ├── ListCommandsTest.java │ │ │ │ │ ├── ObjectCommandsTest.java │ │ │ │ │ ├── PublishSubscribeCommandsTest.java │ │ │ │ │ ├── ScriptingCommandsTest.java │ │ │ │ │ ├── SetCommandsTest.java │ │ │ │ │ ├── SlowlogCommandsTest.java │ │ │ │ │ ├── SortedSetCommandsTest.java │ │ │ │ │ ├── SortingCommandsTest.java │ │ │ │ │ ├── StringValuesCommandsTest.java │ │ │ │ │ ├── TransactionCommandsTest.java │ │ │ │ │ └── VariadicCommandsTest.java │ │ │ │ └── utils/ │ │ │ │ ├── ClientKillerUtil.java │ │ │ │ ├── FailoverAbortedException.java │ │ │ │ ├── JedisClusterCRC16Test.java │ │ │ │ ├── JedisClusterTestUtil.java │ │ │ │ ├── JedisSentinelTestUtil.java │ │ │ │ └── JedisURIHelperTest.java │ │ │ ├── cachecloud-open-client-basic/ │ │ │ │ ├── .gitignore │ │ │ │ ├── pom.xml │ │ │ │ └── src/ │ │ │ │ ├── main/ │ │ │ │ │ ├── java/ │ │ │ │ │ │ └── com/ │ │ │ │ │ │ └── sohu/ │ │ │ │ │ │ └── tv/ │ │ │ │ │ │ ├── cache/ │ │ │ │ │ │ │ └── client/ │ │ │ │ │ │ │ └── common/ │ │ │ │ │ │ │ └── jmx/ │ │ │ │ │ │ │ ├── CachecloudDataWatcher.java │ │ │ │ │ │ │ └── CachecloudDataWatcherMBean.java │ │ │ │ │ │ ├── cachecloud/ │ │ │ │ │ │ │ └── client/ │ │ │ │ │ │ │ └── basic/ │ │ │ │ │ │ │ ├── component/ │ │ │ │ │ │ │ │ ├── EmailComponent.java │ │ │ │ │ │ │ │ ├── EmailComponentImpl.java │ │ │ │ │ │ │ │ ├── MobileAlertComponent.java │ │ │ │ │ │ │ │ └── MobileAlertComponentImpl.java │ │ │ │ │ │ │ ├── exception/ │ │ │ │ │ │ │ │ └── CacheCloudClientHttpUtilsException.java │ │ │ │ │ │ │ ├── heartbeat/ │ │ │ │ │ │ │ │ ├── ClientStatusEnum.java │ │ │ │ │ │ │ │ └── HeartbeatInfo.java │ │ │ │ │ │ │ └── util/ │ │ │ │ │ │ │ ├── ConstUtils.java │ │ │ │ │ │ │ ├── DateUtils.java │ │ │ │ │ │ │ ├── HttpUtils.java │ │ │ │ │ │ │ ├── JsonUtil.java │ │ │ │ │ │ │ ├── NamedThreadFactory.java │ │ │ │ │ │ │ ├── NetUtils.java │ │ │ │ │ │ │ └── StringUtil.java │ │ │ │ │ │ └── jedis/ │ │ │ │ │ │ └── stat/ │ │ │ │ │ │ ├── constant/ │ │ │ │ │ │ │ └── ClientReportConstant.java │ │ │ │ │ │ ├── data/ │ │ │ │ │ │ │ └── UsefulDataCollector.java │ │ │ │ │ │ ├── enums/ │ │ │ │ │ │ │ ├── ClientCollectDataTypeEnum.java │ │ │ │ │ │ │ ├── ClientExceptionType.java │ │ │ │ │ │ │ ├── CostTimeDistriEnum.java │ │ │ │ │ │ │ └── ValueSizeDistriEnum.java │ │ │ │ │ │ ├── model/ │ │ │ │ │ │ │ ├── ClientReportBean.java │ │ │ │ │ │ │ ├── CostTimeDetailStatKey.java │ │ │ │ │ │ │ ├── CostTimeDetailStatModel.java │ │ │ │ │ │ │ ├── CostTimeModel.java │ │ │ │ │ │ │ ├── ExceptionModel.java │ │ │ │ │ │ │ ├── UsefulDataModel.java │ │ │ │ │ │ │ └── ValueLengthModel.java │ │ │ │ │ │ └── utils/ │ │ │ │ │ │ ├── AtomicLongMap.java │ │ │ │ │ │ ├── NamedThreadFactory.java │ │ │ │ │ │ └── NumberUtil.java │ │ │ │ │ └── resources/ │ │ │ │ │ └── cacheCloudClient.properties │ │ │ │ └── test/ │ │ │ │ └── java/ │ │ │ │ └── com/ │ │ │ │ └── sohu/ │ │ │ │ └── tv/ │ │ │ │ └── base/ │ │ │ │ └── test/ │ │ │ │ └── BaseTest.java │ │ │ ├── cachecloud-open-client-redis/ │ │ │ │ ├── .gitignore │ │ │ │ ├── pom.xml │ │ │ │ └── src/ │ │ │ │ ├── main/ │ │ │ │ │ └── java/ │ │ │ │ │ └── com/ │ │ │ │ │ └── sohu/ │ │ │ │ │ └── tv/ │ │ │ │ │ ├── builder/ │ │ │ │ │ │ ├── ClientBuilder.java │ │ │ │ │ │ ├── RedisClusterBuilder.java │ │ │ │ │ │ ├── RedisSentinelBuilder.java │ │ │ │ │ │ └── RedisStandaloneBuilder.java │ │ │ │ │ └── cachecloud/ │ │ │ │ │ └── client/ │ │ │ │ │ └── jedis/ │ │ │ │ │ └── stat/ │ │ │ │ │ ├── ClientDataCollectReportExecutor.java │ │ │ │ │ └── ClientReportDataCenter.java │ │ │ │ └── test/ │ │ │ │ └── java/ │ │ │ │ └── com/ │ │ │ │ └── sohu/ │ │ │ │ └── tv/ │ │ │ │ └── test/ │ │ │ │ ├── base/ │ │ │ │ │ └── BaseTest.java │ │ │ │ └── client/ │ │ │ │ ├── RedisClusterTest.java │ │ │ │ ├── RedisSentinelTest.java │ │ │ │ └── RedisStandaloneTest.java │ │ │ ├── cachecloud-open-jedis-stat/ │ │ │ │ ├── pom.xml │ │ │ │ └── src/ │ │ │ │ ├── main/ │ │ │ │ │ └── java/ │ │ │ │ │ └── com/ │ │ │ │ │ └── sohu/ │ │ │ │ │ └── tv/ │ │ │ │ │ ├── cache/ │ │ │ │ │ │ └── client/ │ │ │ │ │ │ └── common/ │ │ │ │ │ │ └── jmx/ │ │ │ │ │ │ ├── CachecloudDataWatcher.java │ │ │ │ │ │ └── CachecloudDataWatcherMBean.java │ │ │ │ │ └── jedis/ │ │ │ │ │ └── stat/ │ │ │ │ │ ├── constant/ │ │ │ │ │ │ └── ClientReportConstant.java │ │ │ │ │ ├── data/ │ │ │ │ │ │ └── UsefulDataCollector.java │ │ │ │ │ ├── enums/ │ │ │ │ │ │ ├── ClientCollectDataTypeEnum.java │ │ │ │ │ │ ├── ClientExceptionType.java │ │ │ │ │ │ ├── CostTimeDistriEnum.java │ │ │ │ │ │ └── ValueSizeDistriEnum.java │ │ │ │ │ ├── model/ │ │ │ │ │ │ ├── ClientReportBean.java │ │ │ │ │ │ ├── CostTimeDetailStatKey.java │ │ │ │ │ │ ├── CostTimeDetailStatModel.java │ │ │ │ │ │ ├── CostTimeModel.java │ │ │ │ │ │ ├── ExceptionModel.java │ │ │ │ │ │ ├── UsefulDataModel.java │ │ │ │ │ │ └── ValueLengthModel.java │ │ │ │ │ └── utils/ │ │ │ │ │ ├── AtomicLongMap.java │ │ │ │ │ ├── DateUtils.java │ │ │ │ │ ├── NamedThreadFactory.java │ │ │ │ │ └── NumberUtil.java │ │ │ │ └── test/ │ │ │ │ ├── java/ │ │ │ │ │ └── com/ │ │ │ │ │ └── sohu/ │ │ │ │ │ └── tv/ │ │ │ │ │ └── jedis/ │ │ │ │ │ └── stat/ │ │ │ │ │ └── data/ │ │ │ │ │ └── test/ │ │ │ │ │ └── UsefulDataCollectorTest.java │ │ │ │ └── resources/ │ │ │ │ └── logback-test.xml │ │ │ └── pom.xml │ │ ├── cachecloud-open-common/ │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ └── main/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── sohu/ │ │ │ └── cache/ │ │ │ ├── util/ │ │ │ │ ├── ConstUtils.java │ │ │ │ └── DemoCodeUtil.java │ │ │ └── web/ │ │ │ ├── component/ │ │ │ │ ├── EmailComponent.java │ │ │ │ ├── EmailComponentImpl.java │ │ │ │ ├── MobileAlertComponent.java │ │ │ │ └── MobileAlertComponentImpl.java │ │ │ └── util/ │ │ │ ├── HttpRequestUtil.java │ │ │ └── LoginUtil.java │ │ ├── cachecloud-open-web/ │ │ │ ├── .gitignore │ │ │ ├── nmon/ │ │ │ │ └── linux/ │ │ │ │ ├── x86/ │ │ │ │ │ ├── centos6 │ │ │ │ │ ├── centos7 │ │ │ │ │ ├── debian5 │ │ │ │ │ ├── debian50 │ │ │ │ │ ├── debian6 │ │ │ │ │ ├── debian60 │ │ │ │ │ ├── debian7 │ │ │ │ │ ├── debian8 │ │ │ │ │ ├── fedora14 │ │ │ │ │ ├── fedora15 │ │ │ │ │ ├── fedora16 │ │ │ │ │ ├── fedora17 │ │ │ │ │ ├── fedora18 │ │ │ │ │ ├── fedora19 │ │ │ │ │ ├── fedora20 │ │ │ │ │ ├── fedora21 │ │ │ │ │ ├── fedora22 │ │ │ │ │ ├── fedoracore4 │ │ │ │ │ ├── knoppix4 │ │ │ │ │ ├── knoppix5 │ │ │ │ │ ├── knoppix6 │ │ │ │ │ ├── knoppix7 │ │ │ │ │ ├── linux │ │ │ │ │ ├── linux_old │ │ │ │ │ ├── mint12 │ │ │ │ │ ├── mint14 │ │ │ │ │ ├── mint15 │ │ │ │ │ ├── mint16 │ │ │ │ │ ├── mint17 │ │ │ │ │ ├── mint7 │ │ │ │ │ ├── mint8 │ │ │ │ │ ├── opensuse11 │ │ │ │ │ ├── opensuse12 │ │ │ │ │ ├── opensuse13 │ │ │ │ │ ├── rhel5 │ │ │ │ │ ├── rhel52 │ │ │ │ │ ├── rhel54 │ │ │ │ │ ├── rhel6 │ │ │ │ │ ├── rhel65 │ │ │ │ │ ├── rhel7 │ │ │ │ │ ├── rhel71 │ │ │ │ │ ├── rhel72 │ │ │ │ │ ├── sles11 │ │ │ │ │ ├── sles12 │ │ │ │ │ ├── sles13 │ │ │ │ │ ├── ubuntu10 │ │ │ │ │ ├── ubuntu1004 │ │ │ │ │ ├── ubuntu1104 │ │ │ │ │ ├── ubuntu1110 │ │ │ │ │ ├── ubuntu13 │ │ │ │ │ ├── ubuntu14 │ │ │ │ │ ├── ubuntu1404 │ │ │ │ │ ├── ubuntu15 │ │ │ │ │ ├── ubuntu1504 │ │ │ │ │ ├── ubuntu1510 │ │ │ │ │ ├── ubuntu6 │ │ │ │ │ ├── ubuntu7 │ │ │ │ │ ├── ubuntu8 │ │ │ │ │ ├── ubuntu810 │ │ │ │ │ ├── ubuntu9 │ │ │ │ │ └── ubuntu910 │ │ │ │ └── x86_64/ │ │ │ │ ├── centos6 │ │ │ │ ├── centos7 │ │ │ │ ├── debian5 │ │ │ │ ├── debian50 │ │ │ │ ├── debian6 │ │ │ │ ├── debian60 │ │ │ │ ├── debian7 │ │ │ │ ├── debian8 │ │ │ │ ├── fedora14 │ │ │ │ ├── fedora15 │ │ │ │ ├── fedora16 │ │ │ │ ├── fedora17 │ │ │ │ ├── fedora18 │ │ │ │ ├── fedora19 │ │ │ │ ├── fedora20 │ │ │ │ ├── fedora21 │ │ │ │ ├── fedora22 │ │ │ │ ├── linux │ │ │ │ ├── linux_old │ │ │ │ ├── mint12 │ │ │ │ ├── mint14 │ │ │ │ ├── mint15 │ │ │ │ ├── mint16 │ │ │ │ ├── mint17 │ │ │ │ ├── opensuse11 │ │ │ │ ├── opensuse12 │ │ │ │ ├── opensuse13 │ │ │ │ ├── rhel4 │ │ │ │ ├── rhel45 │ │ │ │ ├── rhel5 │ │ │ │ ├── rhel54 │ │ │ │ ├── rhel6 │ │ │ │ ├── rhel7 │ │ │ │ ├── sles11 │ │ │ │ ├── sles12 │ │ │ │ ├── sles13 │ │ │ │ ├── ubuntu1004 │ │ │ │ ├── ubuntu1010 │ │ │ │ ├── ubuntu1104 │ │ │ │ ├── ubuntu1110 │ │ │ │ ├── ubuntu13 │ │ │ │ ├── ubuntu14 │ │ │ │ ├── ubuntu1404 │ │ │ │ ├── ubuntu1410 │ │ │ │ ├── ubuntu15 │ │ │ │ ├── ubuntu6 │ │ │ │ ├── ubuntu7 │ │ │ │ ├── ubuntu810 │ │ │ │ └── ubuntu910 │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ ├── main/ │ │ │ │ ├── java/ │ │ │ │ │ └── com/ │ │ │ │ │ └── sohu/ │ │ │ │ │ └── cache/ │ │ │ │ │ ├── alert/ │ │ │ │ │ │ ├── AppAlertService.java │ │ │ │ │ │ ├── InstanceAlertService.java │ │ │ │ │ │ ├── bean/ │ │ │ │ │ │ │ └── AlertConfigBaseData.java │ │ │ │ │ │ ├── impl/ │ │ │ │ │ │ │ ├── AppAlertServiceImpl.java │ │ │ │ │ │ │ ├── BaseAlertService.java │ │ │ │ │ │ │ └── InstanceAlertServiceImpl.java │ │ │ │ │ │ └── strategy/ │ │ │ │ │ │ ├── AlertConfigStrategy.java │ │ │ │ │ │ ├── AofCurrentSizeAlertStrategy.java │ │ │ │ │ │ ├── ClientBiggestInputBufAlertStrategy.java │ │ │ │ │ │ ├── ClientLongestOutputListAlertStrategy.java │ │ │ │ │ │ ├── ClusterSlotsOkAlertStrategy.java │ │ │ │ │ │ ├── ClusterStateAlertStrategy.java │ │ │ │ │ │ ├── InstantaneousOpsPerSecAlertStrategy.java │ │ │ │ │ │ ├── LatestForkUsecAlertStrategy.java │ │ │ │ │ │ ├── MasterSlaveOffsetAlertStrategy.java │ │ │ │ │ │ ├── MemFragmentationRatioAlertStrategy.java │ │ │ │ │ │ ├── MinuteAofDelayedFsyncAlertStrategy.java │ │ │ │ │ │ ├── MinuteRejectedConnectionsAlertStrategy.java │ │ │ │ │ │ ├── MinuteSyncFullAlertStrategy.java │ │ │ │ │ │ ├── MinuteSyncPartialErrAlertStrategy.java │ │ │ │ │ │ ├── MinuteSyncPartialOkAlertStrategy.java │ │ │ │ │ │ ├── MinuteTotalNetInputMBytesAlertStrategy.java │ │ │ │ │ │ ├── MinuteTotalNetOutputMBytesAlertStrategy.java │ │ │ │ │ │ └── RdbLastBgsaveStatusAlertStrategy.java │ │ │ │ │ ├── app/ │ │ │ │ │ │ ├── AliasesResourceSqlSessionFactoryBean.java │ │ │ │ │ │ ├── ApplicationStarter.java │ │ │ │ │ │ └── JvmConfiger.java │ │ │ │ │ ├── async/ │ │ │ │ │ │ ├── AsyncService.java │ │ │ │ │ │ ├── AsyncThreadPoolFactory.java │ │ │ │ │ │ ├── KeyCallable.java │ │ │ │ │ │ ├── KeyFuture.java │ │ │ │ │ │ ├── NamedThreadFactory.java │ │ │ │ │ │ └── impl/ │ │ │ │ │ │ └── AsyncServiceImpl.java │ │ │ │ │ ├── client/ │ │ │ │ │ │ ├── heartbeat/ │ │ │ │ │ │ │ ├── RedisClientController.java │ │ │ │ │ │ │ └── RedisClientReportDataController.java │ │ │ │ │ │ └── service/ │ │ │ │ │ │ ├── AppInstanceClientRelationService.java │ │ │ │ │ │ ├── ClientReportCostDistriService.java │ │ │ │ │ │ ├── ClientReportDataService.java │ │ │ │ │ │ ├── ClientReportDataSizeService.java │ │ │ │ │ │ ├── ClientReportExceptionService.java │ │ │ │ │ │ ├── ClientReportInstanceService.java │ │ │ │ │ │ ├── ClientReportValueDistriService.java │ │ │ │ │ │ ├── ClientVersionService.java │ │ │ │ │ │ └── impl/ │ │ │ │ │ │ ├── AppInstanceClientRelationServiceImpl.java │ │ │ │ │ │ ├── ClientReportCostDistriServiceImpl.java │ │ │ │ │ │ ├── ClientReportDataServiceImpl.java │ │ │ │ │ │ ├── ClientReportDataSizeServiceImpl.java │ │ │ │ │ │ ├── ClientReportExceptionServiceImpl.java │ │ │ │ │ │ ├── ClientReportInstanceServiceImpl.java │ │ │ │ │ │ ├── ClientReportValueDistriServiceImplV2.java │ │ │ │ │ │ └── ClientVersionServiceImpl.java │ │ │ │ │ ├── constant/ │ │ │ │ │ │ ├── AppAuditLogTypeEnum.java │ │ │ │ │ │ ├── AppAuditType.java │ │ │ │ │ │ ├── AppCheckEnum.java │ │ │ │ │ │ ├── AppDataMigrateEnum.java │ │ │ │ │ │ ├── AppDataMigrateResult.java │ │ │ │ │ │ ├── AppDataMigrateStatusEnum.java │ │ │ │ │ │ ├── AppDescEnum.java │ │ │ │ │ │ ├── AppStatusEnum.java │ │ │ │ │ │ ├── AppTopology.java │ │ │ │ │ │ ├── AppUserTypeEnum.java │ │ │ │ │ │ ├── BaseConstant.java │ │ │ │ │ │ ├── ClientStatusEnum.java │ │ │ │ │ │ ├── ClusterOperateResult.java │ │ │ │ │ │ ├── CommandResult.java │ │ │ │ │ │ ├── DataFormatCheckResult.java │ │ │ │ │ │ ├── EmptyObjectConstant.java │ │ │ │ │ │ ├── ErrorMessageEnum.java │ │ │ │ │ │ ├── HorizontalResult.java │ │ │ │ │ │ ├── ImportAppResult.java │ │ │ │ │ │ ├── InstanceStatusEnum.java │ │ │ │ │ │ ├── MachineConstant.java │ │ │ │ │ │ ├── MachineInfoEnum.java │ │ │ │ │ │ ├── PipelineEnum.java │ │ │ │ │ │ ├── RedisConfigTemplateChangeEnum.java │ │ │ │ │ │ ├── RedisConstant.java │ │ │ │ │ │ ├── RedisExcludeCommand.java │ │ │ │ │ │ ├── RedisMigrateToolConstant.java │ │ │ │ │ │ ├── ReshardStatusEnum.java │ │ │ │ │ │ ├── SymbolConstant.java │ │ │ │ │ │ ├── TimeDimensionalityEnum.java │ │ │ │ │ │ └── UserLoginTypeEnum.java │ │ │ │ │ ├── dao/ │ │ │ │ │ │ ├── AppAuditDao.java │ │ │ │ │ │ ├── AppAuditLogDao.java │ │ │ │ │ │ ├── AppClientCostTimeStatDao.java │ │ │ │ │ │ ├── AppClientCostTimeTotalStatDao.java │ │ │ │ │ │ ├── AppClientExceptionStatDao.java │ │ │ │ │ │ ├── AppClientReportDataSizeDao.java │ │ │ │ │ │ ├── AppClientValueStatDao.java │ │ │ │ │ │ ├── AppClientVersionDao.java │ │ │ │ │ │ ├── AppDailyDao.java │ │ │ │ │ │ ├── AppDao.java │ │ │ │ │ │ ├── AppDataMigrateStatusDao.java │ │ │ │ │ │ ├── AppInstanceClientRelationDao.java │ │ │ │ │ │ ├── AppStatsDao.java │ │ │ │ │ │ ├── AppToUserDao.java │ │ │ │ │ │ ├── AppUserDao.java │ │ │ │ │ │ ├── ConfigDao.java │ │ │ │ │ │ ├── InstanceAlertConfigDao.java │ │ │ │ │ │ ├── InstanceConfigDao.java │ │ │ │ │ │ ├── InstanceDao.java │ │ │ │ │ │ ├── InstanceFaultDao.java │ │ │ │ │ │ ├── InstanceReshardProcessDao.java │ │ │ │ │ │ ├── InstanceSlowLogDao.java │ │ │ │ │ │ ├── InstanceStatsDao.java │ │ │ │ │ │ ├── MachineDao.java │ │ │ │ │ │ ├── MachineStatsDao.java │ │ │ │ │ │ ├── MemFaultDao.java │ │ │ │ │ │ ├── QuartzDao.java │ │ │ │ │ │ └── ServerStatusDao.java │ │ │ │ │ ├── entity/ │ │ │ │ │ │ ├── AppAudit.java │ │ │ │ │ │ ├── AppAuditLog.java │ │ │ │ │ │ ├── AppClientCostTimeStat.java │ │ │ │ │ │ ├── AppClientCostTimeTotalStat.java │ │ │ │ │ │ ├── AppClientDataSizeStat.java │ │ │ │ │ │ ├── AppClientExceptionStat.java │ │ │ │ │ │ ├── AppClientValueDistriSimple.java │ │ │ │ │ │ ├── AppClientValueDistriStat.java │ │ │ │ │ │ ├── AppClientValueDistriStatTotal.java │ │ │ │ │ │ ├── AppClientVersion.java │ │ │ │ │ │ ├── AppCommandGroup.java │ │ │ │ │ │ ├── AppCommandStats.java │ │ │ │ │ │ ├── AppDailyData.java │ │ │ │ │ │ ├── AppDataMigrateSearch.java │ │ │ │ │ │ ├── AppDataMigrateStatus.java │ │ │ │ │ │ ├── AppDesc.java │ │ │ │ │ │ ├── AppInstanceClientRelation.java │ │ │ │ │ │ ├── AppSearch.java │ │ │ │ │ │ ├── AppStats.java │ │ │ │ │ │ ├── AppToUser.java │ │ │ │ │ │ ├── AppUser.java │ │ │ │ │ │ ├── ClientInstanceException.java │ │ │ │ │ │ ├── InstanceAlertConfig.java │ │ │ │ │ │ ├── InstanceAlertValueResult.java │ │ │ │ │ │ ├── InstanceCommandStats.java │ │ │ │ │ │ ├── InstanceConfig.java │ │ │ │ │ │ ├── InstanceFault.java │ │ │ │ │ │ ├── InstanceInfo.java │ │ │ │ │ │ ├── InstanceReshardProcess.java │ │ │ │ │ │ ├── InstanceSlotModel.java │ │ │ │ │ │ ├── InstanceSlowLog.java │ │ │ │ │ │ ├── InstanceStats.java │ │ │ │ │ │ ├── LoginResult.java │ │ │ │ │ │ ├── MachineInfo.java │ │ │ │ │ │ ├── MachineMemInfo.java │ │ │ │ │ │ ├── MachineStats.java │ │ │ │ │ │ ├── ServerInfo.java │ │ │ │ │ │ ├── ServerStatus.java │ │ │ │ │ │ ├── StandardStats.java │ │ │ │ │ │ ├── SystemConfig.java │ │ │ │ │ │ ├── TimeBetween.java │ │ │ │ │ │ ├── TimeDimensionality.java │ │ │ │ │ │ └── TriggerInfo.java │ │ │ │ │ ├── exception/ │ │ │ │ │ │ ├── IllegalParamException.java │ │ │ │ │ │ └── SSHException.java │ │ │ │ │ ├── init/ │ │ │ │ │ │ ├── AsyncLoad.java │ │ │ │ │ │ ├── MachineInitLoad.java │ │ │ │ │ │ └── RedisInitLoad.java │ │ │ │ │ ├── inspect/ │ │ │ │ │ │ ├── InspectHandler.java │ │ │ │ │ │ ├── InspectParamEnum.java │ │ │ │ │ │ ├── Inspector.java │ │ │ │ │ │ ├── InspectorJob.java │ │ │ │ │ │ └── impl/ │ │ │ │ │ │ ├── AbstractInspectHandler.java │ │ │ │ │ │ ├── AppClientConnInspector.java │ │ │ │ │ │ ├── AppInspectHandler.java │ │ │ │ │ │ ├── AppMemInspector.java │ │ │ │ │ │ ├── HostInspectHandler.java │ │ │ │ │ │ ├── InstanceRunInspector.java │ │ │ │ │ │ └── RedisIsolationPersistenceInspector.java │ │ │ │ │ ├── interceptor/ │ │ │ │ │ │ ├── AppAndInstanceAuthorityInterceptor.java │ │ │ │ │ │ ├── FrontUserLoginInterceptor.java │ │ │ │ │ │ ├── LoginInterceptorUtil.java │ │ │ │ │ │ └── ManageUserLoginInterceptor.java │ │ │ │ │ ├── jmx/ │ │ │ │ │ │ ├── ErrorLoggerWatcher.java │ │ │ │ │ │ ├── ErrorLoggerWatcherMBean.java │ │ │ │ │ │ ├── ThreadPoolStatisticsImpl.java │ │ │ │ │ │ └── ThreadPoolStatisticsMBean.java │ │ │ │ │ ├── log/ │ │ │ │ │ │ └── statistic/ │ │ │ │ │ │ └── ErrorStatisticsAppender.java │ │ │ │ │ ├── machine/ │ │ │ │ │ │ ├── MachineCenter.java │ │ │ │ │ │ ├── MachineDeployCenter.java │ │ │ │ │ │ ├── MachineProperty.java │ │ │ │ │ │ ├── PortGenerator.java │ │ │ │ │ │ └── impl/ │ │ │ │ │ │ ├── MachineCenterImpl.java │ │ │ │ │ │ └── MachineDeployCenterImpl.java │ │ │ │ │ ├── protocol/ │ │ │ │ │ │ ├── MachineProtocol.java │ │ │ │ │ │ └── RedisProtocol.java │ │ │ │ │ ├── redis/ │ │ │ │ │ │ ├── RedisCenter.java │ │ │ │ │ │ ├── RedisClusterNode.java │ │ │ │ │ │ ├── RedisClusterReshard.java │ │ │ │ │ │ ├── RedisConfigTemplateService.java │ │ │ │ │ │ ├── RedisDeployCenter.java │ │ │ │ │ │ ├── enums/ │ │ │ │ │ │ │ ├── InstanceAlertCheckCycleEnum.java │ │ │ │ │ │ │ ├── InstanceAlertCompareTypeEnum.java │ │ │ │ │ │ │ ├── InstanceAlertStatusEnum.java │ │ │ │ │ │ │ ├── InstanceAlertTypeEnum.java │ │ │ │ │ │ │ ├── RedisAlertConfigEnum.java │ │ │ │ │ │ │ ├── RedisClusterConfigEnum.java │ │ │ │ │ │ │ ├── RedisClusterInfoEnum.java │ │ │ │ │ │ │ ├── RedisConfigEnum.java │ │ │ │ │ │ │ ├── RedisInfoEnum.java │ │ │ │ │ │ │ ├── RedisReadOnlyCommandEnum.java │ │ │ │ │ │ │ └── RedisSentinelConfigEnum.java │ │ │ │ │ │ └── impl/ │ │ │ │ │ │ ├── RedisCenterImpl.java │ │ │ │ │ │ ├── RedisConfigTemplateServiceImpl.java │ │ │ │ │ │ └── RedisDeployCenterImpl.java │ │ │ │ │ ├── schedule/ │ │ │ │ │ │ ├── SchedulerCenter.java │ │ │ │ │ │ ├── TriggerCenter.java │ │ │ │ │ │ ├── impl/ │ │ │ │ │ │ │ ├── SchedulerCenterImpl.java │ │ │ │ │ │ │ └── TriggerCenterImpl.java │ │ │ │ │ │ └── jobs/ │ │ │ │ │ │ ├── AppDailyJob.java │ │ │ │ │ │ ├── CacheBaseJob.java │ │ │ │ │ │ ├── CleanUpStatisticsJob.java │ │ │ │ │ │ ├── ErrorStatisticsJob.java │ │ │ │ │ │ ├── InstanceAlertValueJob.java │ │ │ │ │ │ ├── MachineJob.java │ │ │ │ │ │ ├── MachineMonitorJob.java │ │ │ │ │ │ ├── RedisJob.java │ │ │ │ │ │ ├── RedisSlowLogJob.java │ │ │ │ │ │ ├── ServerJob.java │ │ │ │ │ │ └── SystemConfigRefreshJob.java │ │ │ │ │ ├── server/ │ │ │ │ │ │ ├── ServerStatusCollector.java │ │ │ │ │ │ ├── data/ │ │ │ │ │ │ │ ├── CPU.java │ │ │ │ │ │ │ ├── Connection.java │ │ │ │ │ │ │ ├── Disk.java │ │ │ │ │ │ │ ├── LineParser.java │ │ │ │ │ │ │ ├── Load.java │ │ │ │ │ │ │ ├── Memory.java │ │ │ │ │ │ │ ├── Net.java │ │ │ │ │ │ │ ├── OS.java │ │ │ │ │ │ │ ├── OSInfo.java │ │ │ │ │ │ │ └── Server.java │ │ │ │ │ │ └── nmon/ │ │ │ │ │ │ └── NMONService.java │ │ │ │ │ ├── ssh/ │ │ │ │ │ │ ├── SSHTemplate.java │ │ │ │ │ │ └── SSHUtil.java │ │ │ │ │ ├── stats/ │ │ │ │ │ │ ├── app/ │ │ │ │ │ │ │ ├── AppDailyDataCenter.java │ │ │ │ │ │ │ ├── AppDataMigrateCenter.java │ │ │ │ │ │ │ ├── AppDeployCenter.java │ │ │ │ │ │ │ ├── AppStatsCenter.java │ │ │ │ │ │ │ ├── ImportAppCenter.java │ │ │ │ │ │ │ └── impl/ │ │ │ │ │ │ │ ├── AppDailyDataCenterImpl.java │ │ │ │ │ │ │ ├── AppDataMigrateCenterImpl.java │ │ │ │ │ │ │ ├── AppDeployCenterImpl.java │ │ │ │ │ │ │ ├── AppStatsCenterImpl.java │ │ │ │ │ │ │ └── ImportAppCenterImpl.java │ │ │ │ │ │ └── instance/ │ │ │ │ │ │ ├── InstanceAlertConfigService.java │ │ │ │ │ │ ├── InstanceDeployCenter.java │ │ │ │ │ │ ├── InstanceStatsCenter.java │ │ │ │ │ │ └── impl/ │ │ │ │ │ │ ├── InstanceAlertConfigServiceImpl.java │ │ │ │ │ │ ├── InstanceDeployCenterImpl.java │ │ │ │ │ │ └── InstanceStatsCenterImpl.java │ │ │ │ │ ├── util/ │ │ │ │ │ │ ├── AppKeyUtil.java │ │ │ │ │ │ ├── IdempotentConfirmer.java │ │ │ │ │ │ ├── IntegerUtil.java │ │ │ │ │ │ ├── JsonUtil.java │ │ │ │ │ │ ├── NMONFileFactory.java │ │ │ │ │ │ ├── OSFactory.java │ │ │ │ │ │ ├── ObjectConvert.java │ │ │ │ │ │ ├── ScheduleUtil.java │ │ │ │ │ │ ├── StringUtil.java │ │ │ │ │ │ └── TypeUtil.java │ │ │ │ │ └── web/ │ │ │ │ │ ├── chart/ │ │ │ │ │ │ ├── key/ │ │ │ │ │ │ │ └── ChartKeysUtil.java │ │ │ │ │ │ └── model/ │ │ │ │ │ │ ├── AreaChartEntity.java │ │ │ │ │ │ ├── ChartEntity.java │ │ │ │ │ │ ├── HighchartPoint.java │ │ │ │ │ │ ├── SimpleChartData.java │ │ │ │ │ │ └── SplineChartEntity.java │ │ │ │ │ ├── controller/ │ │ │ │ │ │ ├── AppClientDataShowController.java │ │ │ │ │ │ ├── AppController.java │ │ │ │ │ │ ├── AppDataMigrateController.java │ │ │ │ │ │ ├── AppManageController.java │ │ │ │ │ │ ├── BaseController.java │ │ │ │ │ │ ├── ClientManageController.java │ │ │ │ │ │ ├── ConfigManageController.java │ │ │ │ │ │ ├── FaultController.java │ │ │ │ │ │ ├── ImportAppController.java │ │ │ │ │ │ ├── IndexController.java │ │ │ │ │ │ ├── InstanceAlertValueController.java │ │ │ │ │ │ ├── InstanceController.java │ │ │ │ │ │ ├── InstanceManageController.java │ │ │ │ │ │ ├── JobController.java │ │ │ │ │ │ ├── LoginController.java │ │ │ │ │ │ ├── MachineManageController.java │ │ │ │ │ │ ├── NoticeManageController.java │ │ │ │ │ │ ├── QuartzManageController.java │ │ │ │ │ │ ├── RedisConfigTemplateController.java │ │ │ │ │ │ ├── ServerController.java │ │ │ │ │ │ ├── TotalManageController.java │ │ │ │ │ │ ├── TriggerController.java │ │ │ │ │ │ ├── UserController.java │ │ │ │ │ │ └── UserManageController.java │ │ │ │ │ ├── enums/ │ │ │ │ │ │ ├── AdminEnum.java │ │ │ │ │ │ ├── AppOrderByEnum.java │ │ │ │ │ │ ├── LoginEnum.java │ │ │ │ │ │ ├── RedisOperateEnum.java │ │ │ │ │ │ └── SuccessEnum.java │ │ │ │ │ ├── factory/ │ │ │ │ │ │ └── UserLoginStatusFactory.java │ │ │ │ │ ├── service/ │ │ │ │ │ │ ├── AppService.java │ │ │ │ │ │ ├── ConfigService.java │ │ │ │ │ │ ├── MemFaultService.java │ │ │ │ │ │ ├── ServerDataService.java │ │ │ │ │ │ ├── UserLoginStatusService.java │ │ │ │ │ │ ├── UserService.java │ │ │ │ │ │ └── impl/ │ │ │ │ │ │ ├── AppServiceImpl.java │ │ │ │ │ │ ├── ConfigServiceImpl.java │ │ │ │ │ │ ├── MemFaultServiceImpl.java │ │ │ │ │ │ ├── ServerDataServiceImpl.java │ │ │ │ │ │ ├── UserLoginStatusCookieServiceImpl.java │ │ │ │ │ │ ├── UserLoginStatusSessionServiceImpl.java │ │ │ │ │ │ └── UserServiceImpl.java │ │ │ │ │ ├── util/ │ │ │ │ │ │ ├── AppEmailUtil.java │ │ │ │ │ │ ├── DateUtil.java │ │ │ │ │ │ ├── IpUtil.java │ │ │ │ │ │ ├── Page.java │ │ │ │ │ │ ├── SimpleFileUtil.java │ │ │ │ │ │ └── VelocityUtils.java │ │ │ │ │ └── vo/ │ │ │ │ │ ├── AppDetailVO.java │ │ │ │ │ └── RedisSlowLog.java │ │ │ │ ├── resources/ │ │ │ │ │ ├── application.properties │ │ │ │ │ ├── cachecloud-web.conf │ │ │ │ │ ├── logback.xml │ │ │ │ │ ├── mapper/ │ │ │ │ │ │ ├── AppAuditDao.xml │ │ │ │ │ │ ├── AppAuditLogDao.xml │ │ │ │ │ │ ├── AppClientCostTimeStatDao.xml │ │ │ │ │ │ ├── AppClientCostTimeTotalStatDao.xml │ │ │ │ │ │ ├── AppClientExceptionStatDao.xml │ │ │ │ │ │ ├── AppClientReportDataSizeDao.xml │ │ │ │ │ │ ├── AppClientValueStatDao.xml │ │ │ │ │ │ ├── AppClientVersionDao.xml │ │ │ │ │ │ ├── AppDailyDao.xml │ │ │ │ │ │ ├── AppDao.xml │ │ │ │ │ │ ├── AppDataMigrateStatusDao.xml │ │ │ │ │ │ ├── AppInstanceClientRelationDao.xml │ │ │ │ │ │ ├── AppStatsDao.xml │ │ │ │ │ │ ├── AppToUserDao.xml │ │ │ │ │ │ ├── AppUserDao.xml │ │ │ │ │ │ ├── ConfigDao.xml │ │ │ │ │ │ ├── InstanceAlertConfigDao.xml │ │ │ │ │ │ ├── InstanceConfigDao.xml │ │ │ │ │ │ ├── InstanceDao.xml │ │ │ │ │ │ ├── InstanceFaultDao.xml │ │ │ │ │ │ ├── InstanceReshardProcessDao.xml │ │ │ │ │ │ ├── InstanceSlowLogDao.xml │ │ │ │ │ │ ├── InstanceStatsDao.xml │ │ │ │ │ │ ├── MachineDao.xml │ │ │ │ │ │ ├── MachineStatsDao.xml │ │ │ │ │ │ ├── QuartzDao.xml │ │ │ │ │ │ └── ServerStatusDao.xml │ │ │ │ │ ├── mybatis-config.xml │ │ │ │ │ ├── spring/ │ │ │ │ │ │ ├── spring-alert.xml │ │ │ │ │ │ ├── spring-client-report.xml │ │ │ │ │ │ ├── spring-config.xml │ │ │ │ │ │ ├── spring-data.xml │ │ │ │ │ │ ├── spring-inspector.xml │ │ │ │ │ │ ├── spring-jmx.xml │ │ │ │ │ │ ├── spring-load.xml │ │ │ │ │ │ ├── spring-local.xml │ │ │ │ │ │ ├── spring-manage.xml │ │ │ │ │ │ ├── spring-mvc.xml │ │ │ │ │ │ ├── spring-mybatis.xml │ │ │ │ │ │ ├── spring-online.xml │ │ │ │ │ │ ├── spring-quartz.xml │ │ │ │ │ │ ├── spring-service.xml │ │ │ │ │ │ └── spring.xml │ │ │ │ │ └── templates/ │ │ │ │ │ ├── appAudit.vm │ │ │ │ │ ├── appDaily.vm │ │ │ │ │ └── instanceAlert.vm │ │ │ │ ├── swap/ │ │ │ │ │ ├── local.properties │ │ │ │ │ └── online.properties │ │ │ │ └── webapp/ │ │ │ │ ├── WEB-INF/ │ │ │ │ │ ├── include/ │ │ │ │ │ │ ├── contact.jsp │ │ │ │ │ │ ├── foot.jsp │ │ │ │ │ │ ├── head.jsp │ │ │ │ │ │ ├── headAdmin.jsp │ │ │ │ │ │ └── headMenu.jsp │ │ │ │ │ ├── jsp/ │ │ │ │ │ │ ├── app/ │ │ │ │ │ │ │ ├── appCommand.jsp │ │ │ │ │ │ │ ├── appCommandAnalysis.jsp │ │ │ │ │ │ │ ├── appDaily.jsp │ │ │ │ │ │ │ ├── appDemo.jsp │ │ │ │ │ │ │ ├── appDetail.jsp │ │ │ │ │ │ │ ├── appInit.jsp │ │ │ │ │ │ │ ├── appInstanceNetStat.jsp │ │ │ │ │ │ │ ├── appList.jsp │ │ │ │ │ │ │ ├── appMachineInstancesTopology.jsp │ │ │ │ │ │ │ ├── appScaleApply.jsp │ │ │ │ │ │ │ ├── appStat.jsp │ │ │ │ │ │ │ ├── appTopology.jsp │ │ │ │ │ │ │ ├── initBecomeContributor.jsp │ │ │ │ │ │ │ ├── manageUser.jsp │ │ │ │ │ │ │ ├── slowLog.jsp │ │ │ │ │ │ │ └── userAppsIndex.jsp │ │ │ │ │ │ ├── client/ │ │ │ │ │ │ │ ├── appClientIndex.jsp │ │ │ │ │ │ │ ├── clientCostDistribute.jsp │ │ │ │ │ │ │ ├── clientException.jsp │ │ │ │ │ │ │ └── clientValueDistribute.jsp │ │ │ │ │ │ ├── import/ │ │ │ │ │ │ │ └── init.jsp │ │ │ │ │ │ ├── instance/ │ │ │ │ │ │ │ ├── instanceAdvancedAnalysis.jsp │ │ │ │ │ │ │ ├── instanceClientList.jsp │ │ │ │ │ │ │ ├── instanceCommand.jsp │ │ │ │ │ │ │ ├── instanceConfigSelect.jsp │ │ │ │ │ │ │ ├── instanceFault.jsp │ │ │ │ │ │ │ ├── instanceIndex.jsp │ │ │ │ │ │ │ ├── instanceSlowSelect.jsp │ │ │ │ │ │ │ └── instanceStat.jsp │ │ │ │ │ │ ├── manage/ │ │ │ │ │ │ │ ├── appAudit/ │ │ │ │ │ │ │ │ ├── addAudit.jsp │ │ │ │ │ │ │ │ ├── appAuditList.jsp │ │ │ │ │ │ │ │ ├── appConfigChangeDetail.jsp │ │ │ │ │ │ │ │ ├── appDeploy.jsp │ │ │ │ │ │ │ │ ├── appDeployDetail.jsp │ │ │ │ │ │ │ │ ├── appIntanceReferList.jsp │ │ │ │ │ │ │ │ ├── appScaleApplyDetail.jsp │ │ │ │ │ │ │ │ ├── handleHorizontalScale.jsp │ │ │ │ │ │ │ │ ├── handleHorizontalScaleDetail.jsp │ │ │ │ │ │ │ │ ├── horizontalScaleApplyDetail.jsp │ │ │ │ │ │ │ │ ├── horizontalScaleProcessList.jsp │ │ │ │ │ │ │ │ ├── initAppConfigChange.jsp │ │ │ │ │ │ │ │ ├── initAppDeploy.jsp │ │ │ │ │ │ │ │ ├── initAppScaleApply.jsp │ │ │ │ │ │ │ │ ├── initHorizontalScaleApply.jsp │ │ │ │ │ │ │ │ ├── initInstanceConfigChange.jsp │ │ │ │ │ │ │ │ ├── instanceConfig.jsp │ │ │ │ │ │ │ │ ├── instanceConfigChangeDetail.jsp │ │ │ │ │ │ │ │ ├── list.jsp │ │ │ │ │ │ │ │ ├── machineForHorizontalScaleList.jsp │ │ │ │ │ │ │ │ └── machineReferList.jsp │ │ │ │ │ │ │ ├── appOps/ │ │ │ │ │ │ │ │ ├── appInfoAndAudit.jsp │ │ │ │ │ │ │ │ ├── appInstance.jsp │ │ │ │ │ │ │ │ ├── appMachine.jsp │ │ │ │ │ │ │ │ └── appOpsIndex.jsp │ │ │ │ │ │ │ ├── client/ │ │ │ │ │ │ │ │ ├── exception/ │ │ │ │ │ │ │ │ │ ├── list.jsp │ │ │ │ │ │ │ │ │ └── statList.jsp │ │ │ │ │ │ │ │ └── version/ │ │ │ │ │ │ │ │ ├── list.jsp │ │ │ │ │ │ │ │ └── statList.jsp │ │ │ │ │ │ │ ├── commons/ │ │ │ │ │ │ │ │ ├── appConstants.jsp │ │ │ │ │ │ │ │ └── taglibs.jsp │ │ │ │ │ │ │ ├── config/ │ │ │ │ │ │ │ │ ├── init.jsp │ │ │ │ │ │ │ │ └── initConfigDetail.jsp │ │ │ │ │ │ │ ├── fault/ │ │ │ │ │ │ │ │ ├── list.jsp │ │ │ │ │ │ │ │ └── memFaultList.jsp │ │ │ │ │ │ │ ├── include/ │ │ │ │ │ │ │ │ ├── cache_cloud_main_css.jsp │ │ │ │ │ │ │ │ ├── cache_cloud_main_js.jsp │ │ │ │ │ │ │ │ ├── foot.jsp │ │ │ │ │ │ │ │ ├── head.jsp │ │ │ │ │ │ │ │ └── left.jsp │ │ │ │ │ │ │ ├── instance/ │ │ │ │ │ │ │ │ └── log.jsp │ │ │ │ │ │ │ ├── instanceAlert/ │ │ │ │ │ │ │ │ ├── init.jsp │ │ │ │ │ │ │ │ └── initConfigDetail.jsp │ │ │ │ │ │ │ ├── login.jsp │ │ │ │ │ │ │ ├── machine/ │ │ │ │ │ │ │ │ ├── addMachine.jsp │ │ │ │ │ │ │ │ ├── list.jsp │ │ │ │ │ │ │ │ ├── machineInstances.jsp │ │ │ │ │ │ │ │ ├── machineInstancesDetail.jsp │ │ │ │ │ │ │ │ └── machineList.jsp │ │ │ │ │ │ │ ├── notice/ │ │ │ │ │ │ │ │ ├── initNotice.jsp │ │ │ │ │ │ │ │ └── initNoticeDetail.jsp │ │ │ │ │ │ │ ├── quartz/ │ │ │ │ │ │ │ │ ├── list.jsp │ │ │ │ │ │ │ │ └── quartzList.jsp │ │ │ │ │ │ │ ├── redisConfig/ │ │ │ │ │ │ │ │ ├── init.jsp │ │ │ │ │ │ │ │ ├── initConfigDetail.jsp │ │ │ │ │ │ │ │ └── preview.jsp │ │ │ │ │ │ │ ├── total/ │ │ │ │ │ │ │ │ ├── list.jsp │ │ │ │ │ │ │ │ └── totalList.jsp │ │ │ │ │ │ │ └── user/ │ │ │ │ │ │ │ ├── addUser.jsp │ │ │ │ │ │ │ ├── initUser.jsp │ │ │ │ │ │ │ ├── list.jsp │ │ │ │ │ │ │ └── userList.jsp │ │ │ │ │ │ ├── migrate/ │ │ │ │ │ │ │ ├── checkData.jsp │ │ │ │ │ │ │ ├── config.jsp │ │ │ │ │ │ │ ├── init.jsp │ │ │ │ │ │ │ ├── list.jsp │ │ │ │ │ │ │ ├── log.jsp │ │ │ │ │ │ │ └── process.jsp │ │ │ │ │ │ ├── server/ │ │ │ │ │ │ │ ├── cpu.jsp │ │ │ │ │ │ │ ├── disk.jsp │ │ │ │ │ │ │ ├── index.jsp │ │ │ │ │ │ │ ├── net.jsp │ │ │ │ │ │ │ └── overview.jsp │ │ │ │ │ │ └── user/ │ │ │ │ │ │ └── userRegister.jsp │ │ │ │ │ ├── resources/ │ │ │ │ │ │ ├── My97DatePicker/ │ │ │ │ │ │ │ ├── My97DatePicker.htm │ │ │ │ │ │ │ ├── WdatePicker.js │ │ │ │ │ │ │ ├── calendar.js │ │ │ │ │ │ │ ├── config.js │ │ │ │ │ │ │ ├── lang/ │ │ │ │ │ │ │ │ ├── en.js │ │ │ │ │ │ │ │ ├── zh-cn.js │ │ │ │ │ │ │ │ └── zh-tw.js │ │ │ │ │ │ │ ├── skin/ │ │ │ │ │ │ │ │ ├── WdatePicker.css │ │ │ │ │ │ │ │ ├── default/ │ │ │ │ │ │ │ │ │ └── datepicker.css │ │ │ │ │ │ │ │ └── whyGreen/ │ │ │ │ │ │ │ │ └── datepicker.css │ │ │ │ │ │ │ └── test_02.html │ │ │ │ │ │ ├── assets/ │ │ │ │ │ │ │ └── flash/ │ │ │ │ │ │ │ └── ZeroClipboard.swf │ │ │ │ │ │ ├── bootstrap/ │ │ │ │ │ │ │ ├── bootstrap3/ │ │ │ │ │ │ │ │ ├── css/ │ │ │ │ │ │ │ │ │ ├── bootstrap-theme.css │ │ │ │ │ │ │ │ │ └── bootstrap.css │ │ │ │ │ │ │ │ └── js/ │ │ │ │ │ │ │ │ └── bootstrap.js │ │ │ │ │ │ │ ├── jquery/ │ │ │ │ │ │ │ │ └── jquery-1.11.0.js │ │ │ │ │ │ │ ├── paginator/ │ │ │ │ │ │ │ │ ├── bootstrap-paginator.js │ │ │ │ │ │ │ │ └── custom-pagenitor.js │ │ │ │ │ │ │ └── res/ │ │ │ │ │ │ │ ├── respond.matchmedia.addListener.src.js │ │ │ │ │ │ │ └── respond.src.js │ │ │ │ │ │ ├── css/ │ │ │ │ │ │ │ ├── login.css │ │ │ │ │ │ │ └── mem-cloud.css │ │ │ │ │ │ ├── error/ │ │ │ │ │ │ │ └── noPower.jsp │ │ │ │ │ │ ├── highchart3/ │ │ │ │ │ │ │ └── js/ │ │ │ │ │ │ │ ├── adapters/ │ │ │ │ │ │ │ │ ├── mootools-adapter.js │ │ │ │ │ │ │ │ ├── mootools-adapter.src.js │ │ │ │ │ │ │ │ ├── prototype-adapter.js │ │ │ │ │ │ │ │ └── prototype-adapter.src.js │ │ │ │ │ │ │ ├── highcharts-more.js │ │ │ │ │ │ │ ├── highcharts-more.src.js │ │ │ │ │ │ │ ├── highcharts.js │ │ │ │ │ │ │ ├── highcharts.src.js │ │ │ │ │ │ │ ├── modules/ │ │ │ │ │ │ │ │ ├── annotations.js │ │ │ │ │ │ │ │ ├── annotations.src.js │ │ │ │ │ │ │ │ ├── canvas-tools.js │ │ │ │ │ │ │ │ ├── canvas-tools.src.js │ │ │ │ │ │ │ │ ├── data.js │ │ │ │ │ │ │ │ ├── data.src.js │ │ │ │ │ │ │ │ ├── exporting.js │ │ │ │ │ │ │ │ ├── exporting.src.js │ │ │ │ │ │ │ │ ├── funnel.js │ │ │ │ │ │ │ │ ├── funnel.src.js │ │ │ │ │ │ │ │ ├── heatmap.js │ │ │ │ │ │ │ │ ├── heatmap.src.js │ │ │ │ │ │ │ │ ├── map.js │ │ │ │ │ │ │ │ └── map.src.js │ │ │ │ │ │ │ └── themes/ │ │ │ │ │ │ │ ├── dark-blue.js │ │ │ │ │ │ │ ├── dark-green.js │ │ │ │ │ │ │ ├── gray.js │ │ │ │ │ │ │ ├── grid.js │ │ │ │ │ │ │ └── skies.js │ │ │ │ │ │ ├── js/ │ │ │ │ │ │ │ ├── appClient.js │ │ │ │ │ │ │ ├── appDetail.js │ │ │ │ │ │ │ ├── appInit.js │ │ │ │ │ │ │ ├── appStat.js │ │ │ │ │ │ │ ├── chart.js │ │ │ │ │ │ │ ├── instanceExecute.js │ │ │ │ │ │ │ ├── jquery-console.js │ │ │ │ │ │ │ ├── mem-cloud.js │ │ │ │ │ │ │ ├── myPopover.js │ │ │ │ │ │ │ ├── myhighchart.js │ │ │ │ │ │ │ ├── prettify.css │ │ │ │ │ │ │ ├── prettify.js │ │ │ │ │ │ │ └── run_prettify.js │ │ │ │ │ │ ├── manage/ │ │ │ │ │ │ │ ├── css/ │ │ │ │ │ │ │ │ ├── animate.css │ │ │ │ │ │ │ │ ├── custom.css │ │ │ │ │ │ │ │ ├── pages/ │ │ │ │ │ │ │ │ │ ├── about-us.css │ │ │ │ │ │ │ │ │ ├── blog.css │ │ │ │ │ │ │ │ │ ├── coming-soon.css │ │ │ │ │ │ │ │ │ ├── email.css │ │ │ │ │ │ │ │ │ ├── error.css │ │ │ │ │ │ │ │ │ ├── image-crop.css │ │ │ │ │ │ │ │ │ ├── inbox.css │ │ │ │ │ │ │ │ │ ├── invoice.css │ │ │ │ │ │ │ │ │ ├── lock.css │ │ │ │ │ │ │ │ │ ├── login-soft.css │ │ │ │ │ │ │ │ │ ├── login.css │ │ │ │ │ │ │ │ │ ├── news.css │ │ │ │ │ │ │ │ │ ├── portfolio.css │ │ │ │ │ │ │ │ │ ├── pricing-tables.css │ │ │ │ │ │ │ │ │ ├── profile.css │ │ │ │ │ │ │ │ │ ├── promo.css │ │ │ │ │ │ │ │ │ ├── search.css │ │ │ │ │ │ │ │ │ ├── tasks.css │ │ │ │ │ │ │ │ │ └── timeline.css │ │ │ │ │ │ │ │ ├── plugins.css │ │ │ │ │ │ │ │ ├── print.css │ │ │ │ │ │ │ │ ├── style-metronic.css │ │ │ │ │ │ │ │ ├── style-non-responsive.css │ │ │ │ │ │ │ │ ├── style-responsive.css │ │ │ │ │ │ │ │ ├── style.css │ │ │ │ │ │ │ │ └── themes/ │ │ │ │ │ │ │ │ ├── blue.css │ │ │ │ │ │ │ │ ├── brown.css │ │ │ │ │ │ │ │ ├── default.css │ │ │ │ │ │ │ │ ├── grey.css │ │ │ │ │ │ │ │ ├── light.css │ │ │ │ │ │ │ │ └── purple.css │ │ │ │ │ │ │ ├── fonts/ │ │ │ │ │ │ │ │ └── font.css │ │ │ │ │ │ │ ├── manage/ │ │ │ │ │ │ │ │ ├── auditManage.js │ │ │ │ │ │ │ │ ├── machineManage.js │ │ │ │ │ │ │ │ └── userManage.js │ │ │ │ │ │ │ ├── oldMemResource/ │ │ │ │ │ │ │ │ ├── css/ │ │ │ │ │ │ │ │ │ ├── invalid.css │ │ │ │ │ │ │ │ │ ├── reset.css │ │ │ │ │ │ │ │ │ └── style.css │ │ │ │ │ │ │ │ └── scripts/ │ │ │ │ │ │ │ │ ├── facebox.js │ │ │ │ │ │ │ │ ├── jquery.wysiwyg.js │ │ │ │ │ │ │ │ ├── session-create.js │ │ │ │ │ │ │ │ └── simpla.jquery.configuration.js │ │ │ │ │ │ │ ├── plugins/ │ │ │ │ │ │ │ │ ├── bootstrap/ │ │ │ │ │ │ │ │ │ ├── css/ │ │ │ │ │ │ │ │ │ │ └── bootstrap.css │ │ │ │ │ │ │ │ │ └── js/ │ │ │ │ │ │ │ │ │ ├── bootstrap.js │ │ │ │ │ │ │ │ │ └── bootstrap2-typeahead.js │ │ │ │ │ │ │ │ ├── data-tables/ │ │ │ │ │ │ │ │ │ ├── DT_bootstrap.css │ │ │ │ │ │ │ │ │ ├── DT_bootstrap.js │ │ │ │ │ │ │ │ │ └── jquery.dataTables.js │ │ │ │ │ │ │ │ └── font-awesome/ │ │ │ │ │ │ │ │ ├── css/ │ │ │ │ │ │ │ │ │ └── font-awesome.css │ │ │ │ │ │ │ │ ├── fonts/ │ │ │ │ │ │ │ │ │ └── FontAwesome.otf │ │ │ │ │ │ │ │ ├── less/ │ │ │ │ │ │ │ │ │ ├── bordered-pulled.less │ │ │ │ │ │ │ │ │ ├── core.less │ │ │ │ │ │ │ │ │ ├── fixed-width.less │ │ │ │ │ │ │ │ │ ├── font-awesome.less │ │ │ │ │ │ │ │ │ ├── icons.less │ │ │ │ │ │ │ │ │ ├── larger.less │ │ │ │ │ │ │ │ │ ├── list.less │ │ │ │ │ │ │ │ │ ├── mixins.less │ │ │ │ │ │ │ │ │ ├── path.less │ │ │ │ │ │ │ │ │ ├── rotated-flipped.less │ │ │ │ │ │ │ │ │ ├── spinning.less │ │ │ │ │ │ │ │ │ ├── stacked.less │ │ │ │ │ │ │ │ │ └── variables.less │ │ │ │ │ │ │ │ └── scss/ │ │ │ │ │ │ │ │ ├── _bordered-pulled.scss │ │ │ │ │ │ │ │ ├── _core.scss │ │ │ │ │ │ │ │ ├── _fixed-width.scss │ │ │ │ │ │ │ │ ├── _icons.scss │ │ │ │ │ │ │ │ ├── _larger.scss │ │ │ │ │ │ │ │ ├── _list.scss │ │ │ │ │ │ │ │ ├── _mixins.scss │ │ │ │ │ │ │ │ ├── _path.scss │ │ │ │ │ │ │ │ ├── _rotated-flipped.scss │ │ │ │ │ │ │ │ ├── _spinning.scss │ │ │ │ │ │ │ │ ├── _stacked.scss │ │ │ │ │ │ │ │ ├── _variables.scss │ │ │ │ │ │ │ │ └── font-awesome.scss │ │ │ │ │ │ │ └── scripts/ │ │ │ │ │ │ │ ├── app.js │ │ │ │ │ │ │ ├── calendar.js │ │ │ │ │ │ │ ├── charts.js │ │ │ │ │ │ │ ├── coming-soon.js │ │ │ │ │ │ │ ├── contact-us.js │ │ │ │ │ │ │ ├── custom.js │ │ │ │ │ │ │ ├── form-components.js │ │ │ │ │ │ │ ├── form-dropzone.js │ │ │ │ │ │ │ ├── form-editable.js │ │ │ │ │ │ │ ├── form-fileupload.js │ │ │ │ │ │ │ ├── form-image-crop.js │ │ │ │ │ │ │ ├── form-samples.js │ │ │ │ │ │ │ ├── form-validation.js │ │ │ │ │ │ │ ├── form-wizard.js │ │ │ │ │ │ │ ├── idle-timeout.js │ │ │ │ │ │ │ ├── inbox.js │ │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ │ ├── lock.js │ │ │ │ │ │ │ ├── login-soft.js │ │ │ │ │ │ │ ├── login.js │ │ │ │ │ │ │ ├── maps-google.js │ │ │ │ │ │ │ ├── maps-vector.js │ │ │ │ │ │ │ ├── portfolio.js │ │ │ │ │ │ │ ├── portlet-draggable.js │ │ │ │ │ │ │ ├── search.js │ │ │ │ │ │ │ ├── table-advanced.js │ │ │ │ │ │ │ ├── table-ajax.js │ │ │ │ │ │ │ ├── table-editable.js │ │ │ │ │ │ │ ├── table-managed.js │ │ │ │ │ │ │ ├── tasks.js │ │ │ │ │ │ │ ├── ui-bootbox.js │ │ │ │ │ │ │ ├── ui-datepaginator.js │ │ │ │ │ │ │ ├── ui-extended-modals.js │ │ │ │ │ │ │ ├── ui-general.js │ │ │ │ │ │ │ ├── ui-ion-sliders.js │ │ │ │ │ │ │ ├── ui-jqueryui-sliders.js │ │ │ │ │ │ │ ├── ui-knob.js │ │ │ │ │ │ │ ├── ui-nestable.js │ │ │ │ │ │ │ ├── ui-nouisliders.js │ │ │ │ │ │ │ ├── ui-toastr.js │ │ │ │ │ │ │ └── ui-tree.js │ │ │ │ │ │ └── widgets/ │ │ │ │ │ │ └── jscalendar/ │ │ │ │ │ │ ├── calendar-setup.js │ │ │ │ │ │ ├── calendar-setup_stripped.js │ │ │ │ │ │ ├── calendar.js │ │ │ │ │ │ ├── calendar_stripped.js │ │ │ │ │ │ ├── lang/ │ │ │ │ │ │ │ ├── calendar-af.js │ │ │ │ │ │ │ ├── calendar-al.js │ │ │ │ │ │ │ ├── calendar-bg.js │ │ │ │ │ │ │ ├── calendar-big5-utf8.js │ │ │ │ │ │ │ ├── calendar-big5.js │ │ │ │ │ │ │ ├── calendar-br.js │ │ │ │ │ │ │ ├── calendar-ca.js │ │ │ │ │ │ │ ├── calendar-cs-utf8.js │ │ │ │ │ │ │ ├── calendar-cs-win.js │ │ │ │ │ │ │ ├── calendar-da.js │ │ │ │ │ │ │ ├── calendar-de.js │ │ │ │ │ │ │ ├── calendar-du.js │ │ │ │ │ │ │ ├── calendar-el.js │ │ │ │ │ │ │ ├── calendar-en.js │ │ │ │ │ │ │ ├── calendar-es.js │ │ │ │ │ │ │ ├── calendar-fi.js │ │ │ │ │ │ │ ├── calendar-fr.js │ │ │ │ │ │ │ ├── calendar-he-utf8.js │ │ │ │ │ │ │ ├── calendar-hr-utf8.js │ │ │ │ │ │ │ ├── calendar-hr.js │ │ │ │ │ │ │ ├── calendar-hu.js │ │ │ │ │ │ │ ├── calendar-it.js │ │ │ │ │ │ │ ├── calendar-jp.js │ │ │ │ │ │ │ ├── calendar-ko-utf8.js │ │ │ │ │ │ │ ├── calendar-ko.js │ │ │ │ │ │ │ ├── calendar-lt-utf8.js │ │ │ │ │ │ │ ├── calendar-lt.js │ │ │ │ │ │ │ ├── calendar-lv.js │ │ │ │ │ │ │ ├── calendar-nl.js │ │ │ │ │ │ │ ├── calendar-no.js │ │ │ │ │ │ │ ├── calendar-pl-utf8.js │ │ │ │ │ │ │ ├── calendar-pl.js │ │ │ │ │ │ │ ├── calendar-pt.js │ │ │ │ │ │ │ ├── calendar-ro.js │ │ │ │ │ │ │ ├── calendar-ru.js │ │ │ │ │ │ │ ├── calendar-ru_win_.js │ │ │ │ │ │ │ ├── calendar-si.js │ │ │ │ │ │ │ ├── calendar-sk.js │ │ │ │ │ │ │ ├── calendar-sp.js │ │ │ │ │ │ │ ├── calendar-sv.js │ │ │ │ │ │ │ ├── calendar-tr.js │ │ │ │ │ │ │ ├── calendar-zh.js │ │ │ │ │ │ │ └── cn_utf8.js │ │ │ │ │ │ └── skins/ │ │ │ │ │ │ └── aqua/ │ │ │ │ │ │ └── theme.css │ │ │ │ │ └── web.xml │ │ │ │ ├── daily.jsp │ │ │ │ ├── error.jsp │ │ │ │ ├── index.jsp │ │ │ │ └── test.jsp │ │ │ └── test/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── sohu/ │ │ │ │ ├── cache/ │ │ │ │ │ ├── dao/ │ │ │ │ │ │ ├── InstanceDaoTest.java │ │ │ │ │ │ ├── InstanceFaultDaoTest.java │ │ │ │ │ │ ├── InstanceReshardProcessDaoTest.java │ │ │ │ │ │ └── MachineDaoTest.java │ │ │ │ │ └── stats/ │ │ │ │ │ └── app/ │ │ │ │ │ ├── AppDataMigrateCenterTest.java │ │ │ │ │ └── ImportAppCenterTest.java │ │ │ │ └── test/ │ │ │ │ ├── BaseTest.java │ │ │ │ ├── SimpleBaseTest.java │ │ │ │ ├── alert/ │ │ │ │ │ └── AppServiceAlertImplTest.java │ │ │ │ ├── app/ │ │ │ │ │ └── AppStatsCenterImplTest.java │ │ │ │ ├── cache/ │ │ │ │ │ └── inspect/ │ │ │ │ │ └── AppClientConnInspectorTest.java │ │ │ │ ├── dao/ │ │ │ │ │ ├── AppAuditDaoTest.java │ │ │ │ │ ├── AppAuditLogDaoTest.java │ │ │ │ │ ├── AppClientReportDataSizeDaoTest.java │ │ │ │ │ ├── AppClientVersionDaoTest.java │ │ │ │ │ ├── AppDaoTest.java │ │ │ │ │ ├── AppDataMigrateStatusDaoTest.java │ │ │ │ │ ├── AppStatsDaoTest.java │ │ │ │ │ ├── AppToUserDaoTest.java │ │ │ │ │ ├── AppUserDaoTest.java │ │ │ │ │ ├── InstanceConfigDaoTest.java │ │ │ │ │ └── QuartzDaoTest.java │ │ │ │ ├── init/ │ │ │ │ │ └── MachineInitTest.java │ │ │ │ ├── inspect/ │ │ │ │ │ └── InspectHandlerTest.java │ │ │ │ ├── instance/ │ │ │ │ │ └── InstanceStatsCenterTest.java │ │ │ │ ├── machine/ │ │ │ │ │ └── PortGeneratorTest.java │ │ │ │ ├── misc/ │ │ │ │ │ └── MiscTest.java │ │ │ │ ├── protocol/ │ │ │ │ │ └── RedisProtocolTest.java │ │ │ │ ├── redis/ │ │ │ │ │ ├── Node.java │ │ │ │ │ ├── RedisConfigTemplateTest.java │ │ │ │ │ └── RedisImportantDataDeal.java │ │ │ │ ├── schedule/ │ │ │ │ │ ├── ScheduleUtilTestTest.java │ │ │ │ │ └── SchedulerCenterTest.java │ │ │ │ ├── stats/ │ │ │ │ │ └── app/ │ │ │ │ │ └── AppCenterTest.java │ │ │ │ └── util/ │ │ │ │ ├── ObjectConvertTest.java │ │ │ │ ├── SSHUtilTest.java │ │ │ │ └── ScheduleUtilTest.java │ │ │ └── resources/ │ │ │ ├── logback-test.xml │ │ │ └── spring-test.xml │ │ ├── pom.xml │ │ └── script/ │ │ ├── cachecloud-init.sh │ │ ├── cachecloud.sql │ │ ├── deploy.sh │ │ ├── start.sh │ │ └── stop.sh │ ├── open-admin-server/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── open/ │ │ │ └── capacity/ │ │ │ ├── Controller.java │ │ │ └── OpenAdminApp.java │ │ └── resources/ │ │ └── application.yml │ ├── open-zipkin-center/ │ │ ├── SPRING CLOUD微服务日志挖掘的应用研究.doc │ │ ├── open-zipkin-kafka-client/ │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ └── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── open/ │ │ │ │ └── capacity/ │ │ │ │ └── ZipKinClientApp.java │ │ │ └── resources/ │ │ │ └── application.yml │ │ ├── open-zipkin-kafka-server/ │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ └── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── open/ │ │ │ │ └── capacity/ │ │ │ │ └── OpenZipkinServer.java │ │ │ └── resources/ │ │ │ └── application.yml │ │ ├── open-zipkin-memery-client/ │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ └── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── open/ │ │ │ │ └── capacity/ │ │ │ │ ├── TestController.java │ │ │ │ └── ZipKinClientApp.java │ │ │ └── resources/ │ │ │ └── application.yml │ │ ├── open-zipkin-memery-server/ │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ └── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── open/ │ │ │ │ └── capacity/ │ │ │ │ └── OpenZipkinSerApp.java │ │ │ └── resources/ │ │ │ └── application.yml │ │ └── pom.xml │ └── pom.xml ├── open-oauth-center/ │ ├── README.md │ ├── db/ │ │ └── init.sql │ ├── open-oauth-client/ │ │ ├── .gitignore │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── open/ │ │ │ └── capacity/ │ │ │ ├── UnieapAuthServerApp.java │ │ │ ├── client/ │ │ │ │ └── oauth2/ │ │ │ │ ├── OAuth2ClientConfig.java │ │ │ │ ├── authorize/ │ │ │ │ │ ├── AuthorizeConfigManager.java │ │ │ │ │ ├── AuthorizeConfigProvider.java │ │ │ │ │ ├── OpenAuthorizeConfigManager.java │ │ │ │ │ └── provider/ │ │ │ │ │ └── AuthAuthorizeConfigProvider.java │ │ │ │ ├── config/ │ │ │ │ │ └── SecurityHandlerConfig.java │ │ │ │ ├── service/ │ │ │ │ │ ├── RbacService.java │ │ │ │ │ └── impl/ │ │ │ │ │ └── RbacServiceImpl.java │ │ │ │ └── token/ │ │ │ │ ├── TokenStoreConfig.java │ │ │ │ └── store/ │ │ │ │ └── RedisTemplateTokenStore.java │ │ │ └── controller/ │ │ │ ├── TestController.java │ │ │ └── UserController.java │ │ └── resources/ │ │ └── application.yml │ ├── open-oauth-client-two/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── open/ │ │ │ └── capacity/ │ │ │ ├── UnieapAuthServerApp.java │ │ │ ├── client/ │ │ │ │ └── oauth2/ │ │ │ │ ├── OAuth2ClientConfig.java │ │ │ │ ├── config/ │ │ │ │ │ └── SecurityHandlerConfig.java │ │ │ │ ├── controller/ │ │ │ │ │ └── UserController.java │ │ │ │ └── token/ │ │ │ │ ├── TokenStoreConfig.java │ │ │ │ └── store/ │ │ │ │ └── RedisTemplateTokenStore.java │ │ │ └── controller/ │ │ │ └── TestController.java │ │ └── resources/ │ │ └── application.yml │ ├── open-oauth-server/ │ │ ├── README.md │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── docker/ │ │ │ └── Dockerfile │ │ ├── java/ │ │ │ └── com/ │ │ │ └── open/ │ │ │ └── capacity/ │ │ │ ├── OpenAuthServerApp.java │ │ │ ├── config/ │ │ │ │ ├── FeignConfig.java │ │ │ │ └── TokenStorePostProcessor.java │ │ │ ├── controller/ │ │ │ │ ├── PermissionController.java │ │ │ │ ├── TestController.java │ │ │ │ ├── UserController.java │ │ │ │ └── UserTokenController.java │ │ │ ├── fegin/ │ │ │ │ ├── PermissionClient.java │ │ │ │ ├── RoleClient.java │ │ │ │ └── UserClient.java │ │ │ ├── filter/ │ │ │ │ └── InspectHeaderFilter.java │ │ │ ├── httpclient/ │ │ │ │ └── HttpAuthInvoker.java │ │ │ ├── server/ │ │ │ │ └── oauth2/ │ │ │ │ ├── OAuth2ServerConfig.java │ │ │ │ ├── client/ │ │ │ │ │ └── RedisClientDetailsService.java │ │ │ │ ├── code/ │ │ │ │ │ └── RedisAuthorizationCodeServices.java │ │ │ │ ├── config/ │ │ │ │ │ ├── OauthLogoutHandler.java │ │ │ │ │ ├── PasswordConfig.java │ │ │ │ │ ├── SecurityConfig.java │ │ │ │ │ ├── SecurityHandlerConfig.java │ │ │ │ │ └── SwaggerConfig.java │ │ │ │ ├── dao/ │ │ │ │ │ └── UserDao.java │ │ │ │ ├── service/ │ │ │ │ │ └── UnieapUserDetailsService.java │ │ │ │ └── token/ │ │ │ │ ├── TokenStoreConfig.java │ │ │ │ └── store/ │ │ │ │ └── RedisTemplateTokenStore.java │ │ │ └── utils/ │ │ │ └── SpringUtil.java │ │ ├── resources/ │ │ │ └── application.yml │ │ └── view/ │ │ └── static/ │ │ ├── css/ │ │ │ ├── import_main.css │ │ │ ├── page_all.css │ │ │ └── saved_resource.html │ │ ├── hello.html │ │ ├── index.html │ │ ├── js/ │ │ │ ├── import_base_tan_802b7ff.js │ │ │ ├── login_4765ca5.js │ │ │ ├── page.login_c7313e6.js │ │ │ └── wrapper.js │ │ └── login.html │ ├── open-oauth-sso/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── open/ │ │ │ └── capacity/ │ │ │ ├── SsoClientApp.java │ │ │ ├── client/ │ │ │ │ ├── config/ │ │ │ │ │ └── OauthLogoutHandler.java │ │ │ │ └── web/ │ │ │ │ └── UnieapSecurityConfig.java │ │ │ ├── controller/ │ │ │ │ └── UserController.java │ │ │ ├── filter/ │ │ │ │ └── TokenFilter.java │ │ │ └── utils/ │ │ │ └── SpringUtil.java │ │ ├── resources/ │ │ │ └── application.yml │ │ └── view/ │ │ └── static/ │ │ └── index.html │ └── pom.xml ├── open-user-center/ │ ├── pom.xml │ └── src/ │ └── main/ │ ├── java/ │ │ └── com/ │ │ └── open/ │ │ └── capacity/ │ │ ├── UserCenterApp.java │ │ └── security/ │ │ ├── advice/ │ │ │ ├── ExceptionHandlerAdvice.java │ │ │ └── LogAdvice.java │ │ ├── annotation/ │ │ │ └── LogAnnotation.java │ │ ├── config/ │ │ │ ├── AsycTaskExecutorConfig.java │ │ │ ├── LoginPageConfig.java │ │ │ ├── SecurityConfig.java │ │ │ ├── SecurityHandlerConfig.java │ │ │ ├── SwaggerConfig.java │ │ │ └── WebMvcConfig.java │ │ ├── controller/ │ │ │ ├── PermissionController.java │ │ │ ├── RoleController.java │ │ │ └── UserController.java │ │ ├── dao/ │ │ │ ├── PermissionDao.java │ │ │ ├── RoleDao.java │ │ │ ├── RoleDao.xml │ │ │ ├── SysLogsDao.java │ │ │ ├── SysLogsDao.xml │ │ │ ├── TokenDao.java │ │ │ ├── UserDao.java │ │ │ └── UserDao.xml │ │ ├── dto/ │ │ │ └── Token.java │ │ ├── filter/ │ │ │ └── TokenFilter.java │ │ ├── page/ │ │ │ └── table/ │ │ │ ├── PageTableArgumentResolver.java │ │ │ ├── PageTableHandler.java │ │ │ ├── PageTableRequest.java │ │ │ └── PageTableResponse.java │ │ ├── service/ │ │ │ ├── MicroServiceService.java │ │ │ ├── PermissionService.java │ │ │ ├── RoleService.java │ │ │ ├── SysLogService.java │ │ │ ├── TokenService.java │ │ │ ├── UserService.java │ │ │ └── impl/ │ │ │ ├── PermissionServiceImpl.java │ │ │ ├── RoleServiceImpl.java │ │ │ ├── SysLogServiceImpl.java │ │ │ ├── TokenServiceImpl.java │ │ │ ├── UserDetailsServiceImpl.java │ │ │ └── UserServiceImpl.java │ │ └── utils/ │ │ ├── FileUtil.java │ │ ├── ResponseUtil.java │ │ ├── SpringUtil.java │ │ ├── StrUtil.java │ │ └── UserUtil.java │ └── resources/ │ └── application.yml ├── open-xxl-job/ │ ├── README.md │ ├── db/ │ │ └── tables_xxl_job.sql │ ├── doc/ │ │ ├── 分布式任务调度平台XXL-JOB.html │ │ └── 分布式任务调度平台XXL-JOB_files/ │ │ ├── analytics.js │ │ ├── core.php │ │ ├── hm.js │ │ ├── vue.css │ │ └── z_stat.php │ ├── pom.xml │ ├── xxl-job-admin/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── xxl/ │ │ │ └── job/ │ │ │ └── admin/ │ │ │ ├── Application.java │ │ │ ├── component/ │ │ │ │ └── SpringJobFactory.java │ │ │ ├── config/ │ │ │ │ ├── MyWebMvcConfigurer.java │ │ │ │ ├── QuartzConfig.java │ │ │ │ └── Swagger2Config.java │ │ │ ├── controller/ │ │ │ │ ├── IndexController.java │ │ │ │ ├── JobApiController.java │ │ │ │ ├── JobCodeController.java │ │ │ │ ├── JobGroupController.java │ │ │ │ ├── JobInfoController.java │ │ │ │ ├── JobLogController.java │ │ │ │ ├── annotation/ │ │ │ │ │ └── PermessionLimit.java │ │ │ │ ├── interceptor/ │ │ │ │ │ ├── CookieInterceptor.java │ │ │ │ │ └── PermissionInterceptor.java │ │ │ │ └── resolver/ │ │ │ │ └── WebExceptionResolver.java │ │ │ ├── core/ │ │ │ │ ├── conf/ │ │ │ │ │ └── XxlJobAdminConfig.java │ │ │ │ ├── enums/ │ │ │ │ │ └── ExecutorFailStrategyEnum.java │ │ │ │ ├── jobbean/ │ │ │ │ │ └── RemoteHttpJobBean.java │ │ │ │ ├── model/ │ │ │ │ │ ├── XxlJobGroup.java │ │ │ │ │ ├── XxlJobInfo.java │ │ │ │ │ ├── XxlJobLog.java │ │ │ │ │ ├── XxlJobLogGlue.java │ │ │ │ │ └── XxlJobRegistry.java │ │ │ │ ├── route/ │ │ │ │ │ ├── ExecutorRouteStrategyEnum.java │ │ │ │ │ ├── ExecutorRouter.java │ │ │ │ │ └── strategy/ │ │ │ │ │ ├── ExecutorRouteBusyover.java │ │ │ │ │ ├── ExecutorRouteConsistentHash.java │ │ │ │ │ ├── ExecutorRouteFailover.java │ │ │ │ │ ├── ExecutorRouteFirst.java │ │ │ │ │ ├── ExecutorRouteLFU.java │ │ │ │ │ ├── ExecutorRouteLRU.java │ │ │ │ │ ├── ExecutorRouteLast.java │ │ │ │ │ ├── ExecutorRouteRandom.java │ │ │ │ │ └── ExecutorRouteRound.java │ │ │ │ ├── schedule/ │ │ │ │ │ └── XxlJobDynamicScheduler.java │ │ │ │ ├── thread/ │ │ │ │ │ ├── JobFailMonitorHelper.java │ │ │ │ │ └── JobRegistryMonitorHelper.java │ │ │ │ ├── trigger/ │ │ │ │ │ └── XxlJobTrigger.java │ │ │ │ └── util/ │ │ │ │ ├── CookieUtil.java │ │ │ │ ├── FtlUtil.java │ │ │ │ ├── I18nUtil.java │ │ │ │ ├── LocalCacheUtil.java │ │ │ │ ├── MailUtil.java │ │ │ │ └── PropertiesUtil.java │ │ │ ├── dao/ │ │ │ │ ├── XxlJobGroupDao.java │ │ │ │ ├── XxlJobGroupMapper.xml │ │ │ │ ├── XxlJobInfoDao.java │ │ │ │ ├── XxlJobInfoMapper.xml │ │ │ │ ├── XxlJobLogDao.java │ │ │ │ ├── XxlJobLogGlueDao.java │ │ │ │ ├── XxlJobLogGlueMapper.xml │ │ │ │ ├── XxlJobLogMapper.xml │ │ │ │ ├── XxlJobRegistryDao.java │ │ │ │ └── XxlJobRegistryMapper.xml │ │ │ └── service/ │ │ │ ├── XxlJobService.java │ │ │ └── impl/ │ │ │ ├── AdminBizImpl.java │ │ │ └── XxlJobServiceImpl.java │ │ ├── resources/ │ │ │ ├── application.yml │ │ │ ├── i18n/ │ │ │ │ ├── message.properties │ │ │ │ └── message_en.properties │ │ │ ├── log4j.properties │ │ │ ├── log4j.xml │ │ │ └── xxl-job-admin.properties │ │ └── view/ │ │ ├── 500.html │ │ ├── i18n/ │ │ │ ├── message.properties │ │ │ └── message_en.properties │ │ ├── static/ │ │ │ ├── adminlte/ │ │ │ │ ├── dist/ │ │ │ │ │ └── css/ │ │ │ │ │ └── google-local/ │ │ │ │ │ └── local.google.fonts.css │ │ │ │ └── plugins/ │ │ │ │ ├── datatables/ │ │ │ │ │ ├── dataTables.bootstrap.css │ │ │ │ │ └── jquery.dataTables_themeroller.css │ │ │ │ ├── daterangepicker/ │ │ │ │ │ ├── daterangepicker.css │ │ │ │ │ └── daterangepicker.js │ │ │ │ └── iCheck/ │ │ │ │ └── square/ │ │ │ │ ├── _all.css │ │ │ │ ├── aero.css │ │ │ │ ├── blue.css │ │ │ │ ├── green.css │ │ │ │ ├── grey.css │ │ │ │ ├── orange.css │ │ │ │ ├── pink.css │ │ │ │ ├── purple.css │ │ │ │ ├── red.css │ │ │ │ ├── square.css │ │ │ │ └── yellow.css │ │ │ ├── js/ │ │ │ │ ├── common.1.js │ │ │ │ ├── index.js │ │ │ │ ├── jobcode.index.1.js │ │ │ │ ├── jobgroup.index.1.js │ │ │ │ ├── jobinfo.index.1.js │ │ │ │ ├── joblog.detail.1.js │ │ │ │ ├── joblog.index.1.js │ │ │ │ └── login.1.js │ │ │ └── plugins/ │ │ │ ├── codemirror/ │ │ │ │ ├── addon/ │ │ │ │ │ └── hint/ │ │ │ │ │ ├── anyword-hint.js │ │ │ │ │ ├── show-hint.css │ │ │ │ │ └── show-hint.js │ │ │ │ ├── lib/ │ │ │ │ │ ├── codemirror.css │ │ │ │ │ └── codemirror.js │ │ │ │ └── mode/ │ │ │ │ ├── clike/ │ │ │ │ │ └── clike.js │ │ │ │ ├── python/ │ │ │ │ │ └── python.js │ │ │ │ └── shell/ │ │ │ │ └── shell.js │ │ │ ├── font-awesome-4.5.0/ │ │ │ │ └── fonts/ │ │ │ │ └── FontAwesome.otf │ │ │ ├── jquery/ │ │ │ │ └── jquery.cookie.js │ │ │ ├── layer/ │ │ │ │ ├── layer.js │ │ │ │ ├── mobile/ │ │ │ │ │ ├── layer.js │ │ │ │ │ └── need/ │ │ │ │ │ └── layer.css │ │ │ │ └── skin/ │ │ │ │ └── default/ │ │ │ │ └── layer.css │ │ │ └── pace/ │ │ │ └── themes/ │ │ │ ├── pace-theme-bounce.css │ │ │ └── pace-theme-flash.css │ │ └── templates/ │ │ ├── common/ │ │ │ ├── common.exception.ftl │ │ │ ├── common.macro.ftl │ │ │ └── common.result.ftl │ │ ├── index.ftl │ │ ├── jobcode/ │ │ │ └── jobcode.index.ftl │ │ ├── jobgroup/ │ │ │ └── jobgroup.index.ftl │ │ ├── jobinfo/ │ │ │ └── jobinfo.index.ftl │ │ ├── joblog/ │ │ │ ├── joblog.detail.ftl │ │ │ └── joblog.index.ftl │ │ └── login.ftl │ ├── xxl-job-core/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ └── java/ │ │ └── com/ │ │ └── xxl/ │ │ └── job/ │ │ └── core/ │ │ ├── biz/ │ │ │ ├── AdminBiz.java │ │ │ ├── ExecutorBiz.java │ │ │ ├── impl/ │ │ │ │ └── ExecutorBizImpl.java │ │ │ └── model/ │ │ │ ├── HandleCallbackParam.java │ │ │ ├── LogResult.java │ │ │ ├── RegistryParam.java │ │ │ ├── ReturnT.java │ │ │ └── TriggerParam.java │ │ ├── enums/ │ │ │ ├── ExecutorBlockStrategyEnum.java │ │ │ └── RegistryConfig.java │ │ ├── executor/ │ │ │ └── XxlJobExecutor.java │ │ ├── glue/ │ │ │ ├── GlueFactory.java │ │ │ └── GlueTypeEnum.java │ │ ├── handler/ │ │ │ ├── IJobHandler.java │ │ │ ├── annotation/ │ │ │ │ └── JobHandler.java │ │ │ └── impl/ │ │ │ ├── GlueJobHandler.java │ │ │ └── ScriptJobHandler.java │ │ ├── log/ │ │ │ ├── XxlJobFileAppender.java │ │ │ └── XxlJobLogger.java │ │ ├── rpc/ │ │ │ ├── codec/ │ │ │ │ ├── RpcRequest.java │ │ │ │ └── RpcResponse.java │ │ │ ├── netcom/ │ │ │ │ ├── NetComClientProxy.java │ │ │ │ ├── NetComServerFactory.java │ │ │ │ └── jetty/ │ │ │ │ ├── client/ │ │ │ │ │ └── JettyClient.java │ │ │ │ └── server/ │ │ │ │ ├── JettyServer.java │ │ │ │ └── JettyServerHandler.java │ │ │ └── serialize/ │ │ │ └── HessianSerializer.java │ │ ├── thread/ │ │ │ ├── ExecutorRegistryThread.java │ │ │ ├── JobLogFileCleanThread.java │ │ │ ├── JobThread.java │ │ │ └── TriggerCallbackThread.java │ │ └── util/ │ │ ├── FileUtil.java │ │ ├── HttpClientUtil.java │ │ ├── IpUtil.java │ │ ├── JacksonUtil.java │ │ ├── NetUtil.java │ │ ├── ScriptUtil.java │ │ └── ShardingUtil.java │ └── xxl-job-demo/ │ ├── pom.xml │ └── src/ │ └── main/ │ ├── java/ │ │ └── com/ │ │ └── open/ │ │ └── capacity/ │ │ ├── Application.java │ │ ├── config/ │ │ │ └── XxlJobConfig.java │ │ └── jobhandler/ │ │ ├── DemoJobHandler.java │ │ └── ShardingJobHandler.java │ └── resources/ │ ├── application.properties │ └── logback.xml └── pom.xml