POC详情: 201b43e290f6e951924a2262603551204e2da9f8

来源
关联漏洞
标题: FF4J 安全漏洞 (CVE-2022-44262)
描述:FF4J是FF4J开源的一种特征切换模式的实现库。 FF4J 1.8.1版本存在安全漏洞,该漏洞源于易受远程代码执行(RCE)攻击。
介绍
# ✨✨✨ FF4J - Feature Flipping for Java ✨✨✨

[![Build Status](https://travis-ci.org/ff4j/ff4j.svg?branch=master)](https://travis-ci.org/ff4j/ff4j)
[![Backers on Open Collective](https://opencollective.com/ff4j/backers/badge.svg)](#backers) [![Sponsors on Open Collective](https://opencollective.com/ff4j/sponsors/badge.svg)](#sponsors) [![Maven Central](https://maven-badges.herokuapp.com/maven-central/org.ff4j/ff4j-core/badge.svg)](https://maven-badges.herokuapp.com/maven-central/org.ff4j/ff4j-core/) 
[![Coverage Status](https://coveralls.io/repos/github/ff4j/ff4j/badge.svg?branch=master)](https://coveralls.io/github/ff4j/ff4j?branch=master)

[![Codacy Badge](https://api.codacy.com/project/badge/grade/c900676eb9674bc48c246dc112e60e16)](https://www.codacy.com/app/cedrick-lunven/ff4j)
[![Join the chat at https://gitter.im/ff4j/ff4j](https://badges.gitter.im/ff4j/ff4j.svg)](https://gitter.im/ff4j/ff4j?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
[![License Apache2](https://img.shields.io/hexpm/l/plug.svg)](http://www.apache.org/licenses/LICENSE-2.0)
[![SourceSpy Dashboard](https://sourcespy.com/shield.svg)](https://sourcespy.com/github/ff4jff4j/)


<img src="http://ff4j.github.io/images/ff4j.png" height="100px" />

FF4j, is an implementation of the [Feature Toggle](http://martinfowler.com/bliki/FeatureToggle.html) pattern.

## 🤘Features

- **Feature Toggle:** Enable. and disable features at runtime - no deployments. In your code implement multiple paths protected by dynamic predicates (if/then/else).

- **Role-based Toggling:** Enable features not only with flag values but also drive access with roles and groups (Canary Release). Different frameworks supported starting by Spring Security.

- **Strategy-based Toggling:** Implement custom predicates (Strategy Pattern) to evaluate if a feature is enabled. Some are provided out of the box: White/Black lists ,Time based, Expression based. Connect external source like a Drools rule engine.

- **AOP-driven Toggling:** Keep your code clean and readable: Avoid nested if statements but use annotations. Thanks to Spring AOP target implementation is pick at runtime, and thus driven by feature statuses.

- **Features Monitoring:** For each features execution, ff4j evaluates the predicate therefore it's possible to collect and record events, metrics to compute nice dashboards or draw curves for features usage over time.

- **Audit Trail:** Each action (create, update, delete, toggles) can be traced and saved in the audit trail for troubleshooting. With permissions management (AuthorizationManager) it's possible to identify users.

- **Web Console:**
Administrate FF4j (including features and properties) with the web UI. Packaged as a servlet in the library you will expose it in your backend applications. Almost 10 languages available.

- **Wide choice of Databases** Our proud: we support 20+ databases technologies to store your features, properties and events. Same business model, multiple implementations. Thanks to extension points it's easy to build your own.

- **Spring Boot Starter** Import ff4j-spring-boot-starter dependency in your microservices to get the web console and rest api working immediately. (To be used for the backend app. Now compliant with Spring Boot 2x: 👉 SAMPLES

- **REST Api** Operate FF4j through a WEB API. This is the way to go to use ff4j with others languages, specially javascript frontends.(also: leverage on FeatureStoreHttp to avoid microservices to directly connect to the DB.

- **Properties (CMDB)** Store not only feature statuses but any property value.. Create properties you can change at runtime . It is integrated with most used frameworks like Spring, Archaius, commons-config or Consul.

- **(Distributed) Cache** Evaluating predicates may put pressure on DB (high hit ratio). ff4j provides local and distributed caches to help. (edit feature also evict cache). Leveraging JSR-107 it supports most of cache solutions.

- **Command Line Interface** To automate things or because web ports may be blocked (you know, production...) you can work through SSH using our Command Line Interface (cli), our Shell #devOps. It will interact directly with storages.

- **JMX and MBeans** Limited set of operations can be performed through JMX. ff4j exposes some Mbeans to read metrics or toggle features from external tools (Nagios...). Not all applications are web based.(batches, shell, standalone...)

More information can be found at [ff4j.org](http://ff4j.org) or 
[Reference Documentation](https://github.com/ff4j/ff4j/wiki) in the wiki.


<img src="http://ff4j.org/images/feature_08_technos.png" /> 

## 🔨 Getting Started

[Check the Getting started here](http://ff4j.org/#10min)

## 👀 Screenshot

Home Page
<img src="http://ff4j.github.io/wiki/console-1.6-home.png" /> 

Features
<img src="http://ff4j.github.io/wiki/console-1.6-features.jpg" /> 

Monitoring
<img src="http://ff4j.github.io/wiki/console-1.6-monitoring.png" /> 

## 👤Contributors

This project exists thanks to all the people who contribute. [[Contribute]](CONTRIBUTING.md).
<a href="https://github.com/ff4j/ff4j/graphs/contributors"><img src="https://opencollective.com/ff4j/contributors.svg?width=890" /></a>


## Backers

Thank you to all our backers! 🙏 [[Become a backer](https://opencollective.com/ff4j#backer)]

<a href="https://opencollective.com/ff4j#backers" target="_blank"><img src="https://opencollective.com/ff4j/backers.svg?width=890"></a>


## Sponsors

Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [[Become a sponsor](https://opencollective.com/ff4j#sponsor)]

<a href="https://opencollective.com/ff4j/sponsor/0/website" target="_blank"><img src="https://opencollective.com/ff4j/sponsor/0/avatar.svg"></a>
<a href="https://opencollective.com/ff4j/sponsor/1/website" target="_blank"><img src="https://opencollective.com/ff4j/sponsor/1/avatar.svg"></a>
<a href="https://opencollective.com/ff4j/sponsor/2/website" target="_blank"><img src="https://opencollective.com/ff4j/sponsor/2/avatar.svg"></a>
<a href="https://opencollective.com/ff4j/sponsor/3/website" target="_blank"><img src="https://opencollective.com/ff4j/sponsor/3/avatar.svg"></a>
<a href="https://opencollective.com/ff4j/sponsor/4/website" target="_blank"><img src="https://opencollective.com/ff4j/sponsor/4/avatar.svg"></a>
<a href="https://opencollective.com/ff4j/sponsor/5/website" target="_blank"><img src="https://opencollective.com/ff4j/sponsor/5/avatar.svg"></a>
<a href="https://opencollective.com/ff4j/sponsor/6/website" target="_blank"><img src="https://opencollective.com/ff4j/sponsor/6/avatar.svg"></a>
<a href="https://opencollective.com/ff4j/sponsor/7/website" target="_blank"><img src="https://opencollective.com/ff4j/sponsor/7/avatar.svg"></a>
<a href="https://opencollective.com/ff4j/sponsor/8/website" target="_blank"><img src="https://opencollective.com/ff4j/sponsor/8/avatar.svg"></a>
<a href="https://opencollective.com/ff4j/sponsor/9/website" target="_blank"><img src="https://opencollective.com/ff4j/sponsor/9/avatar.svg"></a>


文件快照

[4.0K] /data/pocs/201b43e290f6e951924a2262603551204e2da9f8 ├── [4.5K] CONTRIBUTING.md ├── [4.0K] ff4j-aop │   ├── [2.0K] pom.xml │   └── [4.0K] src │   ├── [4.0K] main │   │   ├── [4.0K] java │   │   │   └── [4.0K] org │   │   │   └── [4.0K] ff4j │   │   │   ├── [4.0K] aop │   │   │   │   ├── [1.3K] ContextLocation.java │   │   │   │   ├── [ 13K] FeatureAdvisor.java │   │   │   │   ├── [4.8K] FeatureAutoProxy.java │   │   │   │   ├── [2.2K] Flip.java │   │   │   │   └── [ 824] package-info.java │   │   │   └── [4.0K] spring │   │   │   ├── [4.0K] autowire │   │   │   │   ├── [9.5K] AutowiredFF4JBeanPostProcessor.java │   │   │   │   ├── [1.0K] FF4JFeature.java │   │   │   │   ├── [1.0K] FF4JProperty.java │   │   │   │   └── [ 836] package-info.java │   │   │   ├── [4.0K] namespace │   │   │   │   ├── [3.5K] FF4jBeanDefinitionParser.java │   │   │   │   ├── [2.0K] FF4jNameSpaceConstants.java │   │   │   │   ├── [1.7K] FF4jNameSpaceHandler.java │   │   │   │   ├── [3.1K] FF4JPlaceHolderBeanDefinitionParser.java │   │   │   │   └── [ 819] package-info.java │   │   │   └── [4.0K] placeholder │   │   │   ├── [5.2K] FF4jPropertiesPlaceHolderConfigurer.java │   │   │   ├── [ 838] package-info.java │   │   │   └── [7.0K] PropertiesPlaceHolderBeanDefinitionVisitor.java │   │   └── [4.0K] resources │   │   ├── [4.0K] META-INF │   │   │   ├── [ 85] spring.handlers │   │   │   └── [ 82] spring.schemas │   │   └── [1.1K] springns-tags-1.4.xsd │   └── [4.0K] test │   ├── [4.0K] java │   │   ├── [4.0K] META-INF │   │   │   └── [ 39] MANIFEST.MF │   │   └── [4.0K] org │   │   └── [4.0K] ff4j │   │   ├── [4.0K] aop │   │   │   ├── [4.0K] cglib │   │   │   │   ├── [1004] AspectConfiguration.java │   │   │   │   ├── [1.1K] Aspect.java │   │   │   │   └── [4.9K] FeatureAdvisorCGLIBTest.java │   │   │   ├── [1.3K] FeatureAdvisorBisTest.java │   │   │   ├── [4.3K] FeatureAdvisorTest.java │   │   │   ├── [4.0K] tag │   │   │   │   ├── [1.9K] FF4JBeanPostProcessorTest.java │   │   │   │   └── [ 778] package-info.java │   │   │   └── [4.0K] test │   │   │   ├── [4.0K] context │   │   │   │   ├── [1.1K] ContextServiceEnglishImpl.java │   │   │   │   ├── [1.1K] ContextServiceFrenchImpl.java │   │   │   │   ├── [1.3K] ContextService.java │   │   │   │   ├── [1.3K] ContextStrategy.java │   │   │   │   └── [ 787] package-info.java │   │   │   ├── [4.0K] exception │   │   │   │   └── [ 923] ApplicationException.java │   │   │   ├── [4.0K] goodbye │   │   │   │   ├── [1.6K] GoodbyeServiceEnglishImpl.java │   │   │   │   ├── [1.6K] GoodbyeServiceFrenchImpl.java │   │   │   │   ├── [1.6K] GoodbyeService.java │   │   │   │   └── [ 787] package-info.java │   │   │   ├── [4.0K] greeting │   │   │   │   ├── [1017] GreetingServiceEnglishImpl.java │   │   │   │   ├── [1.0K] GreetingServiceFrenchImpl.java │   │   │   │   ├── [ 980] GreetingService.java │   │   │   │   ├── [3.0K] GreetingServiceTest.java │   │   │   │   └── [ 788] package-info.java │   │   │   ├── [4.0K] limit │   │   │   │   └── [2.4K] InvalidParameter.java │   │   │   ├── [4.0K] noalterbean │   │   │   │   ├── [1.0K] SampleServiceFeature.java │   │   │   │   ├── [1.9K] SampleServiceFeatureTest.java │   │   │   │   └── [ 838] SampleService.java │   │   │   ├── [4.0K] noannotation │   │   │   │   ├── [2.3K] AopWithoutAnnotationTest.java │   │   │   │   ├── [1.1K] GreetingService2.java │   │   │   │   ├── [1.2K] GreetingServiceEnglishImpl2.java │   │   │   │   ├── [1.1K] GreetingServiceFrenchImpl2.java │   │   │   │   └── [1.1K] GreetingServiceGermanImpl.java │   │   │   ├── [4.0K] service │   │   │   │   ├── [1.1K] FlippingRepositoryEnglish.java │   │   │   │   ├── [1.0K] FlippingRepositoryFrench.java │   │   │   │   ├── [ 909] FlippingRepositoryStereotype.java │   │   │   │   ├── [1.9K] FlippingRepositoryTest.java │   │   │   │   ├── [1.0K] FlippingServiceEnglish.java │   │   │   │   ├── [1022] FlippingServiceFrench.java │   │   │   │   ├── [ 909] FlippingServiceStereotype.java │   │   │   │   ├── [1.9K] FlippingServiceTest.java │   │   │   │   └── [ 787] package-info.java │   │   │   └── [4.0K] wholeclass │   │   │   ├── [ 790] package-info.java │   │   │   ├── [1.1K] WholeClassFlippingEnglish.java │   │   │   ├── [1.0K] WholeClassFlippingFrench.java │   │   │   ├── [ 897] WholeClassFlipping.java │   │   │   └── [1.9K] WholeClassFlippingTest.java │   │   └── [4.0K] placeholder │   │   ├── [2.9K] PlaceHolderTest.java │   │   ├── [1.5K] PropertyExotic.java │   │   └── [1.4K] SampleBean.java │   └── [4.0K] resources │   ├── [1.3K] applicationContext-ff4j-aop-test.xml │   ├── [1.6K] applicationContext-ff4j-placeholder.xml │   ├── [1.8K] applicationContext-no-annotation.xml │   ├── [1.8K] ff4j-test.xml │   ├── [1.4K] springctx-ff4jtags-1.xml │   ├── [1.3K] springctx-ff4jtags-2.xml │   └── [1.5K] springctx-ff4jtags-3.xml ├── [4.0K] ff4j-cli │   ├── [2.7K] pom.xml │   ├── [ 887] README.md │   └── [4.0K] src │   ├── [4.0K] license │   │   ├── [ 51] header.ftl │   │   └── [ 0] licenses.properties │   ├── [4.0K] main │   │   └── [4.0K] java │   │   └── [4.0K] org │   │   └── [4.0K] ff4j │   │   └── [4.0K] cli │   │   ├── [4.0K] ansi │   │   │   ├── [1.5K] AnsiBackGroundColor.java │   │   │   ├── [1.1K] AnsiConstants.java │   │   │   ├── [1.5K] AnsiForegroundColor.java │   │   │   ├── [4.9K] AnsiTerminal.java │   │   │   ├── [1.5K] AnsiTextAttribute.java │   │   │   └── [ 686] package-info.java │   │   ├── [ 15K] FF4jCliDisplay.java │   │   ├── [4.5K] FF4jCliOptions.java │   │   ├── [ 16K] FF4jCliProcessor.java │   │   ├── [1.8K] MainCli.java │   │   ├── [ 780] package-info.java │   │   └── [4.0K] util │   │   ├── [1.4K] OSSupported.java │   │   ├── [1.6K] OSUtil.java │   │   └── [ 686] package-info.java │   └── [4.0K] test │   ├── [4.0K] java │   │   └── [4.0K] org │   │   └── [4.0K] ff4j │   │   └── [4.0K] cli │   │   ├── [1.7K] AbstractCommandLineTest.java │   │   ├── [3.0K] AnsiTerminalTest.java │   │   ├── [1.6K] ParserTest.java │   │   ├── [4.9K] TestConnected.java │   │   └── [2.3K] TestNotConnected.java │   └── [4.0K] resources │   ├── [2.3K] ff4j-cli-config.xml │   ├── [3.1K] ff4j-cli-features.xml │   └── [3.2K] main.cmd ├── [4.0K] ff4j-config-properties │   ├── [1.1K] pom.xml │   └── [4.0K] src │   ├── [4.0K] license │   │   ├── [ 51] header.ftl │   │   └── [ 0] licenses.properties │   ├── [4.0K] main │   │   └── [4.0K] java │   │   └── [4.0K] org │   │   └── [4.0K] ff4j │   │   └── [4.0K] parser │   │   └── [4.0K] properties │   │   └── [ 16K] PropertiesParser.java │   ├── [4.0K] site │   │   ├── [ 17K] ff4j-site.vm │   │   ├── [4.0K] resources │   │   │   └── [4.0K] images │   │   │   └── [6.0K] right-arrow.png │   │   └── [4.0K] xdoc │   │   └── [2.2K] index.xml │   └── [4.0K] test │   ├── [4.0K] java │   │   └── [4.0K] org │   │   └── [4.0K] ff4j │   │   └── [4.0K] parser │   │   └── [4.0K] properties │   │   ├── [1.3K] InMemoryFeatureStorePropertiesTest2.java │   │   ├── [1.3K] InMemoryFeatureStorePropertiesTest.java │   │   ├── [1.2K] InMemoryPropertyStoreProperties.java │   │   └── [4.3K] PropertiesParserTest.java │   └── [4.0K] resources │   └── [4.9K] sample-generated.properties ├── [4.0K] ff4j-config-yaml │   ├── [1.2K] pom.xml │   └── [4.0K] src │   ├── [4.0K] license │   │   ├── [ 51] header.ftl │   │   └── [ 0] licenses.properties │   ├── [4.0K] main │   │   └── [4.0K] java │   │   └── [4.0K] org │   │   └── [4.0K] ff4j │   │   └── [4.0K] parser │   │   └── [4.0K] yaml │   │   └── [ 15K] YamlParser.java │   ├── [4.0K] site │   │   ├── [ 17K] ff4j-site.vm │   │   ├── [4.0K] resources │   │   │   └── [4.0K] images │   │   │   └── [6.0K] right-arrow.png │   │   └── [4.0K] xdoc │   │   └── [2.2K] index.xml │   └── [4.0K] test │   └── [4.0K] java │   └── [4.0K] org │   └── [4.0K] ff4j │   └── [4.0K] parser │   └── [4.0K] yaml │   ├── [1.3K] InMemoryFeatureStoreYamlTest.java │   ├── [1.2K] InMemoryPropertyStoreYamlTest.java │   └── [4.2K] YamlParserTest.java ├── [4.0K] ff4j-core │   ├── [1.8K] pom.xml │   └── [4.0K] src │   ├── [4.0K] license │   │   ├── [ 51] header.ftl │   │   └── [ 0] licenses.properties │   ├── [4.0K] main │   │   ├── [4.0K] java │   │   │   └── [4.0K] org │   │   │   └── [4.0K] ff4j │   │   │   ├── [4.0K] audit │   │   │   │   ├── [4.0K] chart │   │   │   │   │   ├── [1.7K] AbstractChart.java │   │   │   │   │   ├── [2.1K] BarChart.java │   │   │   │   │   ├── [ 867] package-info.java │   │   │   │   │   ├── [2.2K] PieChart.java │   │   │   │   │   ├── [3.2K] Serie.java │   │   │   │   │   └── [7.2K] TimeSeriesChart.java │   │   │   │   ├── [2.5K] EventBuilder.java │   │   │   │   ├── [2.9K] EventConstants.java │   │   │   │   ├── [9.1K] Event.java │   │   │   │   ├── [5.1K] EventPublisher.java │   │   │   │   ├── [8.2K] EventQueryDefinition.java │   │   │   │   ├── [2.0K] EventRejectedExecutionHandler.java │   │   │   │   ├── [1.9K] EventSeries.java │   │   │   │   ├── [2.5K] EventWorker.java │   │   │   │   ├── [1.7K] MutableHitCount.java │   │   │   │   ├── [ 817] package-info.java │   │   │   │   ├── [4.0K] proxy │   │   │   │   │   ├── [7.8K] FeatureStoreAuditProxy.java │   │   │   │   │   ├── [ 839] package-info.java │   │   │   │   │   └── [5.8K] PropertyStoreAuditProxy.java │   │   │   │   ├── [1.8K] PublisherThreadFactory.java │   │   │   │   └── [4.0K] repository │   │   │   │   ├── [9.0K] AbstractEventRepository.java │   │   │   │   ├── [6.8K] EventRepository.java │   │   │   │   ├── [ 828] EventRepositoryObserver.java │   │   │   │   ├── [ 17K] InMemoryEventRepository.java │   │   │   │   ├── [ 13K] JdbcEventRepository.java │   │   │   │   └── [ 854] package-info.java │   │   │   ├── [4.0K] cache │   │   │   │   ├── [3.7K] FF4JCacheManager.java │   │   │   │   ├── [ 18K] FF4jCacheProxy.java │   │   │   │   ├── [2.6K] InMemoryCacheEntry.java │   │   │   │   ├── [6.1K] InMemoryCacheManager.java │   │   │   │   ├── [ 877] package-info.java │   │   │   │   ├── [4.2K] Store2CachePollingScheduler.java │   │   │   │   └── [3.8K] Store2CachePollingWorker.java │   │   │   ├── [4.0K] conf │   │   │   │   ├── [3.7K] FF4jConfiguration.java │   │   │   │   ├── [2.9K] FF4jConfigurationParser.java │   │   │   │   ├── [ 838] package-info.java │   │   │   │   ├── [ 976] XmlConfig.java │   │   │   │   ├── [1.3K] XmlParserErrorHandler.java │   │   │   │   └── [ 30K] XmlParser.java │   │   │   ├── [4.0K] core │   │   │   │   ├── [ 13K] Feature.java │   │   │   │   ├── [4.7K] FeatureStore.java │   │   │   │   ├── [8.7K] FlippingExecutionContext.java │   │   │   │   ├── [1.7K] FlippingStrategy.java │   │   │   │   └── [ 854] package-info.java │   │   │   ├── [4.0K] exception │   │   │   │   ├── [1.4K] AuditAccessException.java │   │   │   │   ├── [1.4K] FeatureAccessException.java │   │   │   │   ├── [1.2K] FeatureAlreadyExistException.java │   │   │   │   ├── [1.5K] FeatureNotFoundException.java │   │   │   │   ├── [1.2K] GroupNotFoundException.java │   │   │   │   ├── [1.3K] InvalidPropertyTypeException.java │   │   │   │   ├── [ 876] package-info.java │   │   │   │   ├── [1.4K] PropertyAccessException.java │   │   │   │   ├── [1.2K] PropertyAlreadyExistException.java │   │   │   │   └── [1.2K] PropertyNotFoundException.java │   │   │   ├── [ 34K] FF4j.java │   │   │   ├── [4.0K] mapper │   │   │   │   ├── [ 919] EventMapper.java │   │   │   │   ├── [ 950] FeatureMapper.java │   │   │   │   ├── [1.3K] Mapper.java │   │   │   │   ├── [ 861] package-info.java │   │   │   │   └── [ 988] PropertyMapper.java │   │   │   ├── [ 818] package-info.java │   │   │   ├── [4.0K] property │   │   │   │   ├── [3.2K] BasePropertyBean.java │   │   │   │   ├── [4.0K] multi │   │   │   │   │   ├── [4.0K] AbstractPropertyList.java │   │   │   │   │   ├── [2.8K] AbstractPropertyMap.java │   │   │   │   │   ├── [5.3K] AbstractPropertyMultiValued.java │   │   │   │   │   ├── [2.0K] AbstractPropertySet.java │   │   │   │   │   └── [ 865] package-info.java │   │   │   │   ├── [ 822] package-info.java │   │   │   │   ├── [2.3K] PropertyBigDecimal.java │   │   │   │   ├── [2.3K] PropertyBigInteger.java │   │   │   │   ├── [2.3K] PropertyBoolean.java │   │   │   │   ├── [2.1K] PropertyByte.java │   │   │   │   ├── [2.5K] PropertyCalendar.java │   │   │   │   ├── [2.3K] PropertyClass.java │   │   │   │   ├── [2.4K] PropertyDate.java │   │   │   │   ├── [2.1K] PropertyDouble.java │   │   │   │   ├── [2.0K] PropertyFloat.java │   │   │   │   ├── [2.9K] PropertyInstant.java │   │   │   │   ├── [2.5K] PropertyInt.java │   │   │   │   ├── [8.1K] Property.java │   │   │   │   ├── [2.3K] PropertyLocalDateTime.java │   │   │   │   ├── [3.0K] PropertyLogLevel.java │   │   │   │   ├── [2.2K] PropertyLong.java │   │   │   │   ├── [2.2K] PropertyShort.java │   │   │   │   ├── [2.3K] PropertyString.java │   │   │   │   ├── [4.0K] store │   │   │   │   │   ├── [6.0K] AbstractPropertyStore.java │   │   │   │   │   ├── [5.5K] InMemoryPropertyStore.java │   │   │   │   │   ├── [2.0K] JdbcPropertyMapper.java │   │   │   │   │   ├── [ 11K] JdbcPropertyStore.java │   │   │   │   │   ├── [ 845] package-info.java │   │   │   │   │   └── [3.2K] PropertyStore.java │   │   │   │   └── [4.0K] util │   │   │   │   ├── [ 812] package-info.java │   │   │   │   ├── [6.9K] PropertyFactory.java │   │   │   │   └── [3.7K] PropertyJsonBean.java │   │   │   ├── [4.0K] security │   │   │   │   ├── [1.7K] AbstractAuthorizationManager.java │   │   │   │   ├── [2.0K] AuthorizationsManager.java │   │   │   │   └── [ 838] package-info.java │   │   │   ├── [4.0K] store │   │   │   │   ├── [9.5K] AbstractFeatureStore.java │   │   │   │   ├── [9.3K] InMemoryFeatureStore.java │   │   │   │   ├── [2.6K] JdbcEventMapper.java │   │   │   │   ├── [2.0K] JdbcFeatureMapper.java │   │   │   │   ├── [ 27K] JdbcFeatureStore.java │   │   │   │   ├── [ 24K] JdbcQueryBuilder.java │   │   │   │   ├── [ 12K] JdbcStoreConstants.java │   │   │   │   ├── [4.0K] kv │   │   │   │   │   ├── [1.8K] KeyValueDriver.java │   │   │   │   │   ├── [4.7K] KeyValueEventRepository.java │   │   │   │   │   ├── [5.9K] KeyValueFeatureStore.java │   │   │   │   │   └── [5.7K] KeyValuePropertyStore.java │   │   │   │   └── [ 834] package-info.java │   │   │   ├── [4.0K] strategy │   │   │   │   ├── [2.6K] AbstractFlipStrategy.java │   │   │   │   ├── [1.6K] BlackListStrategy.java │   │   │   │   ├── [3.1K] ClientFilterStrategy.java │   │   │   │   ├── [1.5K] DarkLaunchStrategy.java │   │   │   │   ├── [4.0K] el │   │   │   │   │   ├── [4.5K] ExpressionFlipStrategy.java │   │   │   │   │   ├── [5.9K] ExpressionNode.java │   │   │   │   │   ├── [1.4K] ExpressionOperator.java │   │   │   │   │   ├── [ 13K] ExpressionParser.java │   │   │   │   │   └── [ 863] package-info.java │   │   │   │   ├── [ 849] package-info.java │   │   │   │   ├── [3.0K] PonderationStrategy.java │   │   │   │   ├── [2.2K] RegionFlippingStrategy.java │   │   │   │   ├── [3.0K] ServerFilterStrategy.java │   │   │   │   ├── [4.0K] time │   │   │   │   │   ├── [4.6K] HourInterval.java │   │   │   │   │   ├── [7.7K] OfficeHourStrategy.java │   │   │   │   │   ├── [ 833] package-info.java │   │   │   │   │   └── [3.5K] ReleaseDateFlipStrategy.java │   │   │   │   └── [1.2K] WhiteListStrategy.java │   │   │   ├── [4.0K] utils │   │   │   │   ├── [4.4K] GeneratorUtils.java │   │   │   │   ├── [1.8K] IOUtil.java │   │   │   │   ├── [6.6K] JdbcUtils.java │   │   │   │   ├── [7.4K] JsonUtils.java │   │   │   │   ├── [6.8K] MappingUtil.java │   │   │   │   ├── [1.3K] OptionalEx.java │   │   │   │   ├── [ 823] package-info.java │   │   │   │   ├── [1.6K] TimeUtils.java │   │   │   │   └── [ 13K] Util.java │   │   │   └── [4.0K] web │   │   │   ├── [3.0K] ApiConfigBuilder.java │   │   │   ├── [9.1K] ApiConfig.java │   │   │   ├── [1.1K] FF4jProvider.java │   │   │   ├── [4.2K] FF4jWebConstants.java │   │   │   └── [ 817] package-info.java │   │   └── [4.0K] resources │   │   ├── [2.4K] ff4j-1.2.0.xsd │   │   ├── [3.2K] ff4j-1.3.0.xsd │   │   ├── [4.0K] ff4j-1.4.0.xsd │   │   ├── [4.0K] ff4j-1.5.xsd │   │   ├── [4.0K] ff4j-1.6.xsd │   │   ├── [1.5K] schema-ddl-db2.sql │   │   ├── [1.6K] schema-ddl.sql │   │   └── [ 140] schema-drop.sql │   └── [4.0K] test │   ├── [4.0K] java │   │   └── [4.0K] org │   │   └── [4.0K] ff4j │   │   ├── [4.0K] lab │   │   │   ├── [1.5K] ConditionalProperty.java │   │   │   ├── [5.0K] FeatureStoreOverPropertyStore.java │   │   │   ├── [1.6K] PropertyEvaluationStrategy.java │   │   │   ├── [7.5K] PropertyExecutionContext.java │   │   │   └── [2.3K] PropertyFeature.java │   │   └── [4.0K] test │   │   ├── [3.2K] AbstractFf4jTest.java │   │   ├── [ 12K] AssertFf4j.java │   │   ├── [4.0K] audit │   │   │   ├── [ 16K] AbstractEventRepositoryTest.java │   │   │   ├── [6.3K] AuditBeanTest.java │   │   │   ├── [2.7K] EventWorkerTest.java │   │   │   ├── [1.9K] FeatureStoreAuditProxyTest.java │   │   │   ├── [1.1K] InMemoryEventRepositoryTest.java │   │   │   ├── [2.5K] JdbcEventRepositorySchemaTest.java │   │   │   ├── [2.2K] JdbcEventRepositoryTest.java │   │   │   ├── [2.3K] JdbcEventRepositoryWithSchema.java │   │   │   └── [1.4K] PropertyStoreAuditProxyTest.java │   │   ├── [4.0K] cache │   │   │   ├── [4.7K] CacheProxyTest.java │   │   │   ├── [5.0K] CacheProxyWithPollingTest.java │   │   │   └── [7.6K] InMemoryCacheTest.java │   │   ├── [1.5K] DefinedPermissionSecurityManager.java │   │   ├── [4.2K] FF4j_autocreate_multithreaded_Test.java │   │   ├── [2.2K] FF4jInitializationTest.java │   │   ├── [ 15K] FF4jTest.java │   │   ├── [4.0K] parser │   │   │   ├── [9.5K] FeatureXmlParserTest.java │   │   │   ├── [1.1K] ParameterUtilsTest.java │   │   │   └── [6.0K] XmlParserTest.java │   │   ├── [4.0K] property │   │   │   ├── [ 14K] AbstractPropertyStoreJunitTest.java │   │   │   ├── [1.4K] CardinalPoint.java │   │   │   ├── [5.3K] InMemoryPropertiesStoreTest.java │   │   │   ├── [4.5K] JdbcPropertyStoreErrorTest.java │   │   │   ├── [2.4K] JdbcPropertyStorePrefixTest.java │   │   │   ├── [2.5K] JdbcPropertyStoreSchemaTest.java │   │   │   ├── [3.0K] JdbcPropertyStoreTest.java │   │   │   ├── [7.2K] MultiValuedPropertyTest.java │   │   │   ├── [4.5K] PropertyFactoryTest.java │   │   │   └── [ 12K] PropertyTest.java │   │   ├── [4.0K] security │   │   │   └── [2.4K] AuthorizationManagementTest.java │   │   ├── [4.0K] store │   │   │   ├── [ 33K] CoreFeatureStoreTestSupport.java │   │   │   ├── [3.7K] InMemoryFeatureStoreTest.java │   │   │   ├── [5.2K] JdbcFeatureDataSourceTest.java │   │   │   ├── [3.7K] JdbcFeatureStoreCoreTest.java │   │   │   ├── [7.5K] JdbcFeatureStoreErrorTest.java │   │   │   ├── [2.4K] JdbcFeatureStorePrefixTest.java │   │   │   ├── [5.5K] JdbcFeatureStoreSchemaTest.java │   │   │   ├── [2.3K] JdbcFeatureStoreTestInvalidData.java │   │   │   └── [1.5K] JdbcFeatureStoreXmlTest.java │   │   ├── [4.0K] strategy │   │   │   ├── [5.8K] ClientFilterStrategyTest.java │   │   │   ├── [4.0K] el │   │   │   │   ├── [2.6K] ExpressionFlipStategyTest.java │   │   │   │   └── [5.1K] ExpressionParserTest.java │   │   │   ├── [8.2K] OfficeHourStrategyTest.java │   │   │   ├── [3.6K] PonderationStrategyTest.java │   │   │   ├── [2.7K] ReleaseDateFlipStrategyTest.java │   │   │   └── [2.6K] ServerFilterStrategyTest.java │   │   ├── [1.7K] TestConstantsFF4j.java │   │   ├── [4.0K] unsafe │   │   │   ├── [ 832] UnsafeFlippingStrategy.java │   │   │   └── [ 841] UnsafeProperty.java │   │   ├── [4.0K] utils │   │   │   ├── [3.7K] ExceptionsTest.java │   │   │   ├── [5.4K] FeatureJsonMarshallTest.java │   │   │   ├── [2.2K] GenerationUtilTest.java │   │   │   ├── [1.4K] IOUtilsTest.java │   │   │   ├── [2.8K] JdbcTestHelper.java │   │   │   ├── [5.4K] MappingUtilsTest.java │   │   │   ├── [8.1K] SqlScriptRunner.java │   │   │   └── [5.8K] UtilTest.java │   │   └── [4.0K] web │   │   ├── [2.5K] ApiConfigTest.java │   │   └── [ 780] package-info.java │   └── [4.0K] resources │   ├── [1.9K] applicationContext.xml │   ├── [4.5K] ddl-prefix-data.sql │   ├── [2.3K] ddl-prefix-schema.sql │   ├── [3.1K] ff4j-parser-all.xml │   ├── [2.7K] ff4j-parser-features.xml │   ├── [1.7K] ff4j-parser-properties.xml │   ├── [3.3K] ff4j.xml │   ├── [4.4K] ff-invalidstore.sql │   ├── [4.4K] ff-store.sql │   ├── [1.0K] logback.xml │   ├── [2.3K] named-schema-ddl.sql │   ├── [4.5K] schemanamed-ff-store.sql │   ├── [1.1K] test-clientFilterStrategy.xml │   ├── [1.2K] test-expressionFlipStategy-ok.xml │   ├── [ 832] test-feature-json1.xml │   ├── [ 926] test-feature-ko1.xml │   ├── [ 905] test-feature-ko2.xml │   ├── [ 719] test-feature-ko3.xml │   ├── [1004] test-feature-ko4.xml │   ├── [1.1K] test-feature-ko5.xml │   ├── [1.1K] test-feature-ko6.xml │   ├── [ 897] test-feature-ko7.xml │   ├── [ 853] test-feature-ko8.xml │   ├── [2.4K] test-featureXmlParserTest-import-export.xml │   ├── [ 754] test-featureXmlParserTest-ko-enablerequired.xml │   ├── [ 755] test-featureXmlParserTest-ko-uidrequired.xml │   ├── [2.1K] test-featureXmlParserTest-ok.xml │   ├── [2.3K] test-parser-specialchars.xml │   ├── [1.5K] test-ponderationStrategy-ko.xml │   ├── [1.7K] test-ponderationStrategy-ok.xml │   ├── [1.1K] test-property1.xml │   ├── [ 947] test-property2.xml │   ├── [ 954] test-property3.xml │   ├── [ 986] test-property4.xml │   ├── [1.0K] test-property5.xml │   ├── [1010] test-property6.xml │   ├── [1.4K] test-releaseDateStrategyTest-ok.xml │   ├── [1.1K] test-serverFilterStrategy.xml │   └── [1.6K] test-strategy-officehour.xml ├── [4.0K] ff4j-jmx │   ├── [2.2K] pom.xml │   ├── [3.2K] README.md │   └── [4.0K] src │   ├── [4.0K] main │   │   └── [4.0K] java │   │   └── [4.0K] org │   │   └── [4.0K] ff4j │   │   └── [4.0K] jmx │   │   ├── [4.0K] client │   │   │   ├── [ 738] EventRepositoryJmxClient.java │   │   │   ├── [ 735] FeatureStoreJmxClient.java │   │   │   ├── [ 804] package-info.java │   │   │   └── [ 736] PropertyStoreJmxClient.java │   │   ├── [ 722] FeatureStoreMBean.java │   │   ├── [5.3K] FeatureStoreMBeanSpring.java │   │   ├── [5.1K] FF4JMBean.java │   │   └── [ 797] package-info.java │   └── [4.0K] test │   ├── [4.0K] java │   │   └── [4.0K] org │   │   └── [4.0K] ff4j │   │   └── [4.0K] jmx │   │   ├── [4.0K] client │   │   │   ├── [ 910] EventRepositoryJmxClientTest.java │   │   │   ├── [1012] FeatureStoreJmxClientTest.java │   │   │   └── [ 906] PropertyStoreJmxClientTest.java │   │   ├── [6.6K] FF4JMBeanTest.java │   │   └── [2.3K] SampleJMX.java │   └── [4.0K] resources │   ├── [2.2K] applicationContext-ff4j-jmx-test.xml │   └── [1.0K] test-ff4j-jmx.xml ├── [4.0K] ff4j-security-shiro │   ├── [ 970] pom.xml │   └── [4.0K] src │   ├── [4.0K] main │   │   └── [4.0K] java │   │   └── [4.0K] org │   │   └── [4.0K] ff4j │   │   └── [4.0K] security │   │   ├── [2.6K] ApacheShiroAuthorizationManager.java │   │   └── [ 814] package-info.java │   └── [4.0K] test │   └── [4.0K] resources │   └── [1.1K] logback.xml ├── [4.0K] ff4j-security-spring │   ├── [2.4K] pom.xml │   └── [4.0K] src │   ├── [4.0K] main │   │   └── [4.0K] java │   │   └── [4.0K] org │   │   └── [4.0K] ff4j │   │   └── [4.0K] security │   │   ├── [ 816] package-info.java │   │   └── [2.2K] SpringSecurityAuthorisationManager.java │   └── [4.0K] test │   ├── [4.0K] java │   │   └── [4.0K] org │   │   └── [4.0K] ff4j │   │   └── [4.0K] security │   │   └── [4.0K] test │   │   ├── [3.5K] FlipSecurityTests2.java │   │   └── [3.3K] FlipSecurityTests.java │   └── [4.0K] resources │   ├── [1.5K] applicationContext-ff4j-security.xml │   ├── [1.1K] logback.xml │   └── [1015] test-ff4j-security-spring.xml ├── [4.0K] ff4j-store-arangodb │   ├── [2.9K] pom.xml │   └── [4.0K] src │   ├── [4.0K] main │   │   └── [4.0K] java │   │   └── [4.0K] org │   │   └── [4.0K] ff4j │   │   └── [4.0K] arangodb │   │   ├── [4.0K] document │   │   │   ├── [1.2K] ArangoDBEvent.java │   │   │   ├── [1.5K] ArangoDBFeature.java │   │   │   └── [1.4K] ArangoDBProperty.java │   │   ├── [4.0K] store │   │   │   ├── [5.0K] EventStoreArangoDB.java │   │   │   ├── [9.2K] FeatureStoreArangoDB.java │   │   │   ├── [3.7K] GenericArangoDBClient.java │   │   │   └── [5.7K] PropertyStoreArangoDB.java │   │   └── [3.9K] StoreMapper.java │   └── [4.0K] test │   └── [4.0K] java │   └── [4.0K] org │   └── [4.0K] ff4j │   └── [4.0K] arangodb │   └── [4.0K] store │   ├── [1.2K] ArangoDBTestContainer.java │   ├── [1.7K] FeatureStoreArangoDBIT.java │   └── [1.7K] PropertyStoreArangoDBIT.java ├── [4.0K] ff4j-store-archaius │   ├── [2.7K] pom.xml │   └── [4.0K] src │   ├── [4.0K] main │   │   └── [4.0K] java │   │   └── [4.0K] org │   │   └── [4.0K] ff4j │   │   └── [4.0K] archaius │   │   ├── [2.8K] FF4jPolledConfigurationSource.java │   │   └── [1.8K] PropertyStoreArchaius.java │   └── [4.0K] test │   ├── [4.0K] java │   │   └── [4.0K] org │   │   └── [4.0K] ff4j │   │   └── [4.0K] archaius │   │   ├── [3.4K] PropertyStoreArchaiusCommonsConfTest.java │   │   ├── [3.9K] PropertyStoreArchaiusPolledSourceTest.java │   │   └── [2.7K] PropertyStoreAsArchaiusInputTest.java │   └── [4.0K] resources │   ├── [ 888] application.properties │   ├── [1.6K] ff4j-configuration.xml │   └── [1.7K] ff4j-properties.xml ├── [4.0K] ff4j-store-aws-dynamodb │   ├── [4.0K] pom.xml │   └── [4.0K] src │   ├── [4.0K] main │   │   ├── [4.0K] config │   │   │   ├── [1.0K] create-feature-dynamodb-table.json │   │   │   └── [ 432] create-property-dynamodb-table.json │   │   └── [4.0K] java │   │   └── [4.0K] org │   │   └── [4.0K] ff4j │   │   └── [4.0K] dynamodb │   │   ├── [5.4K] DynamoDBClient.java │   │   ├── [2.2K] DynamoDBConstants.java │   │   ├── [4.0K] feature │   │   │   ├── [2.8K] DynamoDbFeature.java │   │   │   ├── [9.5K] FeatureDynamoDBClient.java │   │   │   ├── [3.6K] FeatureDynamoDBMapper.java │   │   │   └── [ 11K] FeatureStoreDynamoDB.java │   │   └── [4.0K] property │   │   ├── [1.9K] DynamoDbProperty.java │   │   ├── [4.6K] PropertyDynamoDBClient.java │   │   ├── [2.2K] PropertyDynamoDBMapper.java │   │   └── [7.5K] PropertyStoreDynamoDB.java │   ├── [4.0K] site │   │   ├── [ 17K] ff4j-site.vm │   │   ├── [4.0K] resources │   │   │   └── [4.0K] images │   │   │   └── [6.0K] right-arrow.png │   │   └── [4.0K] xdoc │   │   └── [2.3K] index.xml │   └── [4.0K] test │   ├── [4.0K] java │   │   └── [4.0K] org │   │   └── [4.0K] ff4j │   │   └── [4.0K] dynamodb │   │   ├── [4.0K] feature │   │   │   └── [2.5K] FeatureStoreDynamoDBIT.java │   │   └── [4.0K] property │   │   └── [1.7K] PropertyStoreDynamoDBIT.java │   └── [4.0K] resources │   └── [1.1K] ff4j-dynamodb.properties ├── [4.0K] ff4j-store-aws-ssm │   ├── [3.2K] pom.xml │   └── [4.0K] src │   ├── [4.0K] main │   │   └── [4.0K] java │   │   └── [4.0K] org │   │   └── [4.0K] ff4j │   │   └── [4.0K] awsssm │   │   └── [4.0K] store │   │   └── [7.3K] PropertyStoreAwsSSM.java │   └── [4.0K] test │   ├── [4.0K] java │   │   └── [4.0K] org │   │   └── [4.0K] ff4j │   │   └── [4.0K] awsssm │   │   └── [4.0K] store │   │   ├── [4.7K] PropertyStoreAwsSSMIT.java │   │   └── [3.6K] PropertyStoreAwsSSMTest.java │   └── [4.0K] resources │   └── [1.2K] ff4j-properties.xml ├── [4.0K] ff4j-store-cassandra │   ├── [3.3K] pom.xml │   └── [4.0K] src │   ├── [4.0K] main │   │   ├── [4.0K] java │   │   │   └── [4.0K] org │   │   │   └── [4.0K] ff4j │   │   │   └── [4.0K] cassandra │   │   │   ├── [ 16K] FF4jCassandraSchema.java │   │   │   └── [4.0K] store │   │   │   ├── [ 16K] EventRepositoryCassandra.java │   │   │   ├── [ 16K] FeatureStoreCassandra.java │   │   │   └── [6.1K] PropertyStoreCassandra.java │   │   └── [4.0K] resources │   │   └── [1.2K] ddl-schema-create.cql │   └── [4.0K] test │   ├── [4.0K] java │   │   └── [4.0K] org │   │   └── [4.0K] ff4j │   │   └── [4.0K] cassandra │   │   ├── [1.6K] AsbtractEventRepositoryCassandraTest.java │   │   ├── [1.7K] AsbtractFeatureStoreCassandraTest.java │   │   ├── [1.7K] AsbtractPropertyStoreCassandraTest.java │   │   ├── [4.0K] astra │   │   │   ├── [1.8K] EventRepositoryassandraTestAstra.java │   │   │   ├── [1.8K] FeatureStoreCassandraTestAstra.java │   │   │   └── [1.8K] PropertyStoreCassandraTestAstra.java │   │   ├── [4.0K] docker │   │   │   ├── [2.9K] EventRepositoryassandraTestDocker.java │   │   │   ├── [3.0K] FeatureStoreCassandraTestDocker.java │   │   │   └── [2.9K] PropertyStoreCassandraTestDocker.java │   │   └── [4.0K] embedded │   │   ├── [2.4K] EventRepositoryassandraTestEmbedded.java │   │   ├── [2.5K] FeatureStoreCassandraTestEmbedded.java │   │   └── [2.4K] PropertyStoreCassandraTestEmbedded.java │   └── [4.0K] resources │   ├── [ 602] application_astra.conf │   ├── [6.0K] cassandra-test-queries.sql │   ├── [3.8K] docker-compose-3nodes.yaml │   ├── [ 743] docker-compose.yaml │   ├── [1.8K] ff4j.xml │   └── [1.1K] logback-test.xml ├── [4.0K] ff4j-store-commonsconfig │   ├── [2.4K] pom.xml │   └── [4.0K] src │   ├── [4.0K] main │   │   └── [4.0K] java │   │   └── [4.0K] org │   │   └── [4.0K] ff4j │   │   └── [4.0K] commonsconf │   │   ├── [ 14K] FF4jConfiguration.java │   │   └── [4.6K] PropertyStoreCommonsConfig.java │   └── [4.0K] test │   ├── [4.0K] java │   │   └── [4.0K] org │   │   └── [4.0K] ff4j │   │   └── [4.0K] commonsconf │   │   ├── [2.1K] CommonsConfigWithPropertyStoreTest.java │   │   ├── [ 19K] FF4JConfigurationTest.java │   │   └── [3.4K] PropertyStoreCommonsConfigTest.java │   └── [4.0K] resources │   ├── [ 888] application.properties │   ├── [1.6K] ff4j-configuration.xml │   └── [1.7K] ff4j-properties.xml ├── [4.0K] ff4j-store-consul │   ├── [3.8K] pom.xml │   └── [4.0K] src │   ├── [4.0K] main │   │   └── [4.0K] java │   │   └── [4.0K] org │   │   └── [4.0K] ff4j │   │   └── [4.0K] consul │   │   ├── [8.9K] ConsulConnection.java │   │   ├── [1.6K] ConsulConstants.java │   │   ├── [ 793] package-info.java │   │   └── [4.0K] store │   │   ├── [2.5K] ConsulKeyBuilder.java │   │   ├── [1.5K] FeatureStoreConsul.java │   │   ├── [ 798] package-info.java │   │   └── [1.4K] PropertyStoreConsul.java │   └── [4.0K] test │   ├── [4.0K] java │   │   └── [4.0K] org │   │   └── [4.0K] ff4j │   │   └── [4.0K] cache │   │   └── [4.0K] store │   │   ├── [2.4K] FeatureStoreConsulEmbeddedTest.java │   │   ├── [4.0K] it │   │   │   ├── [1.4K] FeatureStoreConsulTestIT.java │   │   │   └── [1.4K] PropertyStoreConsulTestIT.java │   │   └── [2.4K] PropertyStoreConsulEmbeddedTest.java │   └── [4.0K] resources │   └── [3.2K] ff4j.xml ├── [4.0K] ff4j-store-couchbase │   ├── [2.9K] pom.xml │   ├── [1.5K] README.md │   └── [4.0K] src │   ├── [4.0K] main │   │   └── [4.0K] java │   │   └── [4.0K] org │   │   └── [4.0K] ff4j │   │   └── [4.0K] couchbase │   │   ├── [ 16K] CouchbaseConnection.java │   │   ├── [2.0K] CouchbaseConstants.java │   │   ├── [4.0K] mapper │   │   │   ├── [2.1K] FeatureCouchbaseMapper.java │   │   │   └── [2.1K] PropertyCouchbaseMapper.java │   │   └── [4.0K] store │   │   ├── [1.5K] EventRepositoryCouchbase.java │   │   ├── [8.2K] FeatureStoreCouchbase.java │   │   └── [5.1K] PropertyStoreCouchbase.java │   └── [4.0K] test │   ├── [4.0K] java │   │   └── [4.0K] org │   │   └── [4.0K] ff4j │   │   └── [4.0K] couchbase │   │   └── [4.0K] test │   │   ├── [1.7K] FeatureStoreCouchbaseTest.java │   │   └── [1.7K] PropertyStoreCouchbaseTest.java │   └── [4.0K] resources │   └── [1.8K] ff4j.xml ├── [4.0K] ff4j-store-couchdb │   ├── [3.2K] pom.xml │   ├── [ 463] release.properties │   └── [4.0K] src │   ├── [4.0K] main │   │   └── [4.0K] java │   │   └── [4.0K] org │   │   └── [4.0K] ff4j │   │   └── [4.0K] couchdb │   │   ├── [ 11K] CouchDbConnection.java │   │   ├── [1.8K] CouchDbConstants.java │   │   ├── [1.2K] CouchDbEventView.java │   │   ├── [1.3K] CouchDbFeatureView.java │   │   ├── [1.2K] CouchDbPropertyView.java │   │   ├── [4.0K] document │   │   │   ├── [1.9K] CouchDbEvent.java │   │   │   ├── [2.0K] CouchDbFeature.java │   │   │   └── [1.9K] CouchDbProperty.java │   │   └── [4.0K] store │   │   ├── [8.5K] EventStoreCouchDb.java │   │   ├── [ 18K] FeatureStoreCouchDb.java │   │   └── [8.1K] PropertyStoreCouchDb.java │   └── [4.0K] test │   ├── [4.0K] java │   │   └── [4.0K] org │   │   └── [4.0K] ff4j │   │   └── [4.0K] couchdb │   │   └── [4.0K] store │   │   ├── [3.8K] EventStoreCouchDbTest.java │   │   ├── [2.4K] FeatureStoreCouchDbTest.java │   │   └── [2.5K] PropertyStoreCouchDbTest.java │   └── [4.0K] resources │   └── [1.8K] ff4j.xml ├── [4.0K] ff4j-store-ehcache │   ├── [6.5K] pom.xml │   └── [4.0K] src │   ├── [4.0K] main │   │   └── [4.0K] java │   │   └── [4.0K] org │   │   └── [4.0K] ff4j │   │   ├── [4.0K] cache │   │   │   ├── [7.4K] FeatureCacheProviderEhCache.java │   │   │   └── [ 799] package-info.java │   │   ├── [4.0K] ehcache │   │   │   ├── [1.2K] FF4JEhCacheConstants.java │   │   │   ├── [3.6K] FF4jEhCacheWrapper.java │   │   │   └── [ 786] package-info.java │   │   └── [4.0K] store │   │   ├── [3.1K] EventRepositoryEhCache.java │   │   ├── [8.4K] FeatureStoreEhCache.java │   │   ├── [ 778] package-info.java │   │   └── [4.8K] PropertyStoreEhCache.java │   └── [4.0K] test │   ├── [4.0K] java │   │   └── [4.0K] org │   │   └── [4.0K] ff4j │   │   ├── [4.0K] cache │   │   │   ├── [2.5K] EhCacheCacheManagerTest2.java │   │   │   ├── [1.1K] EhCacheCacheManagerTest.java │   │   │   ├── [2.0K] EhCacheCacheProviderBisTest.java │   │   │   └── [2.6K] EhCacheCacheProviderTest.java │   │   ├── [4.0K] store │   │   │   ├── [2.5K] FeatureStoreEhCacheTest.java │   │   │   └── [3.6K] PropertyStoreEhCacheTest.java │   │   └── [4.0K] terracotta │   │   └── [4.0K] it │   │   └── [2.8K] FeatureStoreTerracottaTestIT.java │   └── [4.0K] resources │   ├── [1.1K] ehcache.xml │   ├── [1.4K] ff4j-properties.xml │   ├── [1.8K] ff4j.xml │   ├── [1.1K] tc-config.xml │   └── [2.5K] test-ehcacheProvider.xml ├── [4.0K] ff4j-store-elastic │   ├── [1.8K] pom.xml │   └── [4.0K] src │   ├── [4.0K] main │   │   └── [4.0K] java │   │   └── [4.0K] org │   │   └── [4.0K] ff4j │   │   └── [4.0K] elastic │   │   ├── [ 12K] ElasticQueryBuilder.java │   │   ├── [8.9K] ElasticQueryHelper.java │   │   ├── [4.0K] mapper │   │   │   ├── [5.1K] FeatureMapper.java │   │   │   └── [3.1K] PropertyMapper.java │   │   └── [4.0K] store │   │   ├── [ 13K] EventRepositoryElastic.java │   │   ├── [ 12K] FeatureStoreElastic.java │   │   └── [6.9K] PropertyStoreElastic.java │   └── [4.0K] test │   ├── [4.0K] java │   │   └── [4.0K] org │   │   └── [4.0K] ff4j │   │   └── [4.0K] elastic │   │   └── [4.0K] store │   │   ├── [1.8K] EventRepositoryElasticTest.java │   │   ├── [1.4K] FeatureStoreElasticTest.java │   │   ├── [1.4K] JestClientTestFactory.java │   │   └── [1.5K] PropertyStoreElasticTest.java │   └── [4.0K] resources │   ├── [2.0K] docker-compose.yml │   ├── [ 59K] ff4j-kibana-dashboard.ndjson │   └── [1.2K] logback-test.xml ├── [4.0K] ff4j-store-gcp-datastore │   ├── [2.9K] pom.xml │   └── [4.0K] src │   ├── [4.0K] main │   │   └── [4.0K] java │   │   └── [4.0K] org │   │   └── [4.0K] ff4j │   │   └── [4.0K] gcpdatastore │   │   └── [4.0K] store │   │   ├── [2.9K] DatastoreClient.java │   │   ├── [7.5K] EntityMapper.java │   │   ├── [4.0K] event │   │   │   ├── [1.1K] DatastoreEvent.java │   │   │   └── [5.4K] DatastoreEventRepository.java │   │   ├── [4.0K] feature │   │   │   ├── [1.8K] DatastoreFeature.java │   │   │   └── [5.1K] DatastoreFeatureStore.java │   │   ├── [4.0K] property │   │   │   ├── [1.6K] DatastoreProperty.java │   │   │   └── [5.1K] DatastorePropertyStore.java │   │   └── [4.2K] StoreMapper.java │   └── [4.0K] test │   └── [4.0K] java │   └── [4.0K] org │   └── [4.0K] ff4j │   └── [4.0K] gcpdatastore │   └── [4.0K] store │   ├── [1.8K] DatastoreFeatureStoreTest.java │   ├── [1.7K] DatastorePropertyStoreTest.java │   └── [1.4K] DatastoreTestContainer.java ├── [4.0K] ff4j-store-hazelcast │   ├── [2.7K] pom.xml │   └── [4.0K] src │   ├── [4.0K] main │   │   └── [4.0K] java │   │   └── [4.0K] org │   │   └── [4.0K] ff4j │   │   └── [4.0K] hazelcast │   │   ├── [3.4K] CacheManagerHazelCast.java │   │   └── [4.0K] store │   │   ├── [2.1K] FeatureStoreHazelCast.java │   │   └── [2.1K] PropertyStoreHazelCast.java │   └── [4.0K] test │   ├── [4.0K] java │   │   └── [4.0K] org │   │   └── [4.0K] ff4j │   │   └── [4.0K] hazelcast │   │   ├── [1.4K] CacheManagerHazelCastTest.java │   │   └── [4.0K] store │   │   ├── [1.4K] FeatureStoreHazelCastTest.java │   │   └── [1.5K] PropertyStoreHazelCastTest.java │   └── [4.0K] resources │   ├── [3.2K] ff4j.xml │   ├── [ 11K] hazelcast-config.xml │   └── [1.1K] logback.xml ├── [4.0K] ff4j-store-hbase │   ├── [2.8K] pom.xml │   ├── [4.1K] README.MD │   └── [4.0K] src │   ├── [4.0K] main │   │   └── [4.0K] java │   │   └── [4.0K] org │   │   └── [4.0K] ff4j │   │   └── [4.0K] hbase │   │   ├── [6.5K] HBaseConnection.java │   │   ├── [ 10K] HBaseConstants.java │   │   ├── [4.0K] mapper │   │   │   ├── [4.5K] HBaseEventMapper.java │   │   │   ├── [5.0K] HBaseFeatureMapper.java │   │   │   └── [4.1K] HBasePropertyMapper.java │   │   └── [4.0K] store │   │   ├── [ 16K] EventRepositoryHBase.java │   │   ├── [8.0K] FeatureStoreHBase.java │   │   └── [6.5K] PropertyStoreHBase.java │   └── [4.0K] test │   ├── [4.0K] java │   │   └── [4.0K] org │   │   └── [4.0K] ff4j │   │   └── [4.0K] hbase │   │   ├── [1.5K] EventRepositoryHBaseTest.java │   │   ├── [1.5K] FeatureStoreHBaseTest.java │   │   └── [1.6K] PropertyStoreHBaseTest.java │   └── [4.0K] resources │   ├── [3.3K] ff4j.xml │   └── [1.0K] hbase-site.xml ├── [4.0K] ff4j-store-ignite │   ├── [4.0K] ignite │   │   ├── [ 397] README.txt │   │   └── [4.0K] work │   │   └── [4.0K] db │   │   └── [4.0K] marshaller │   │   ├── [ 47] 1221433721.classname0 │   │   ├── [ 30] -1698037938.classname0 │   │   ├── [ 21] -1802493291.classname0 │   │   ├── [ 43] -292157308.classname0 │   │   ├── [ 29] -470412209.classname0 │   │   ├── [ 34] 704750176.classname0 │   │   ├── [ 32] 720046001.classname0 │   │   ├── [ 43] -751316910.classname0 │   │   └── [ 37] 942405945.classname0 │   ├── [2.6K] pom.xml │   └── [4.0K] src │   ├── [4.0K] main │   │   └── [4.0K] java │   │   └── [4.0K] org │   │   └── [4.0K] ff4j │   │   └── [4.0K] ignite │   │   ├── [3.0K] FF4jCacheManagerIgnite.java │   │   ├── [4.0K] jcache │   │   │   ├── [4.4K] IgniteCachingManagerImpl.java │   │   │   └── [3.3K] IgniteCachingProviderImpl.java │   │   └── [4.0K] store │   │   ├── [2.2K] FeatureStoreIgnite.java │   │   └── [2.2K] PropertyStoreIgnite.java │   └── [4.0K] test │   ├── [4.0K] java │   │   └── [4.0K] org │   │   └── [4.0K] ff4j │   │   └── [4.0K] ignite │   │   ├── [1.7K] CacheManagerIgniteTest.java │   │   └── [4.0K] store │   │   ├── [1.7K] FeatureStoreIgniteTest.java │   │   └── [1.8K] PropertyStoreIgniteTest.java │   └── [4.0K] resources │   └── [3.2K] ff4j.xml ├── [4.0K] ff4j-store-jcache │   ├── [3.3K] pom.xml │   └── [4.0K] src │   ├── [4.0K] main │   │   └── [4.0K] java │   │   └── [4.0K] org │   │   └── [4.0K] ff4j │   │   ├── [4.0K] cache │   │   │   ├── [ 10K] FF4jJCacheManager.java │   │   │   └── [ 792] package-info.java │   │   └── [4.0K] store │   │   ├── [8.2K] FeatureStoreJCache.java │   │   ├── [ 791] package-info.java │   │   └── [4.7K] PropertyStoreJCache.java │   └── [4.0K] test │   ├── [4.0K] java │   │   └── [4.0K] org │   │   └── [4.0K] ff4j │   │   ├── [4.0K] cache │   │   │   ├── [1.2K] FeatureCacheProviderEHCacheTest.java │   │   │   ├── [3.2K] FeatureCacheProviderJCacheRITest.java │   │   │   └── [4.0K] store │   │   │   ├── [ 36K] FeatureStoreJCacheTest.java │   │   │   └── [1.7K] FeatureStoreJCacheTestRICache.java │   │   └── [4.0K] propertystore │   │   ├── [ 13K] PropertyStoreJCacheTest.java │   │   └── [1.4K] PropertyStoreJCacheTestRICache.java │   └── [4.0K] resources │   ├── [1.5K] ehcache.xml │   ├── [3.2K] ff4j.xml │   └── [1.6K] test-ehcacheProvider.xml ├── [4.0K] ff4j-store-mongodb │   ├── [2.5K] pom.xml │   └── [4.0K] src │   ├── [4.0K] main │   │   └── [4.0K] java │   │   └── [4.0K] org │   │   └── [4.0K] ff4j │   │   └── [4.0K] mongo │   │   ├── [4.0K] mapper │   │   │   ├── [8.9K] EventDocumentBuilder.java │   │   │   ├── [5.6K] FeatureDocumentBuilder.java │   │   │   ├── [2.6K] MongoEventMapper.java │   │   │   ├── [5.4K] MongoFeatureMapper.java │   │   │   ├── [3.5K] MongoPropertyMapper.java │   │   │   ├── [ 792] package-info.java │   │   │   └── [4.6K] PropertyDocumentBuilder.java │   │   ├── [2.7K] MongoDbConstants.java │   │   └── [4.0K] store │   │   ├── [9.4K] EventRepositoryMongo.java │   │   ├── [ 15K] FeatureStoreMongo.java │   │   ├── [ 820] package-info.java │   │   └── [7.9K] PropertyStoreMongo.java │   └── [4.0K] test │   ├── [4.0K] java │   │   └── [4.0K] org │   │   └── [4.0K] ff4j │   │   └── [4.0K] test │   │   ├── [4.0K] docker │   │   │   ├── [4.0K] FeatureStoreMongoCollectionCore1Test.java │   │   │   └── [3.1K] PropertyStoreMongoCollectionCore1Test.java │   │   └── [4.0K] store │   │   └── [1.6K] DBObjectBuilderTest.java │   └── [4.0K] resources │   └── [1.8K] ff4j.xml ├── [4.0K] ff4j-store-neo4j │   ├── [4.4K] pom.xml │   ├── [7.5K] README.md │   └── [4.0K] src │   ├── [4.0K] main │   │   └── [4.0K] java │   │   └── [4.0K] org │   │   └── [4.0K] ff4j │   │   └── [4.0K] neo4j │   │   ├── [ 11K] FF4jNeo4jConstants.java │   │   ├── [1.2K] FF4jNeo4jLabels.java │   │   ├── [1.1K] FF4jNeo4jRelationShips.java │   │   ├── [4.0K] mapper │   │   │   ├── [5.5K] Neo4jMapper.java │   │   │   └── [ 810] package-info.java │   │   ├── [ 811] package-info.java │   │   └── [4.0K] store │   │   ├── [ 28K] FeatureStoreNeo4J.java │   │   ├── [ 817] package-info.java │   │   └── [7.2K] PropertyStoreNeo4j.java │   └── [4.0K] test │   ├── [4.0K] java │   │   └── [4.0K] org │   │   └── [4.0K] ff4j │   │   └── [4.0K] neo4j │   │   ├── [4.9K] FeatureStoreNeo4jLimitTest.java │   │   ├── [2.0K] FeatureStoreNeo4jSchemaTest.java │   │   ├── [6.1K] FeatureStoreNeo4jTest.java │   │   ├── [1.9K] Neo4jMapperTest.java │   │   └── [6.4K] PropertyStoreNeo4jTest.java │   └── [4.0K] resources │   ├── [3.2K] ff4j.xml │   └── [6.6K] neo4j-queries.properties ├── [4.0K] ff4j-store-redis │   ├── [4.3K] pom.xml │   └── [4.0K] src │   ├── [4.0K] main │   │   └── [4.0K] java │   │   └── [4.0K] org │   │   └── [4.0K] ff4j │   │   ├── [4.0K] cache │   │   │   ├── [ 10K] FF4jCacheManagerRedis.java │   │   │   ├── [ 10K] FF4jCacheManagerRedisLettuce.java │   │   │   └── [ 797] package-info.java │   │   ├── [4.0K] redis │   │   │   ├── [ 806] package-info.java │   │   │   ├── [6.2K] RedisConnection.java │   │   │   └── [3.2K] RedisKeysBuilder.java │   │   └── [4.0K] store │   │   ├── [ 11K] EventRepositoryRedis.java │   │   ├── [ 11K] EventRepositoryRedisLettuce.java │   │   ├── [ 11K] FeatureStoreRedis.java │   │   ├── [ 10K] FeatureStoreRedisLettuce.java │   │   ├── [6.5K] PropertyStoreRedis.java │   │   └── [5.4K] PropertyStoreRedisLettuce.java │   └── [4.0K] test │   ├── [4.0K] java │   │   └── [4.0K] org │   │   └── [4.0K] ff4j │   │   ├── [4.0K] cache │   │   │   ├── [4.0K] it │   │   │   │   ├── [5.3K] FeatureStoreWithRedisCacheLettuceTest.java │   │   │   │   ├── [5.2K] FeatureStoreWithRedisCacheTestIT.java │   │   │   │   ├── [1.4K] PropertyStoreWithRedisCacheLettuceIT.java │   │   │   │   ├── [1.3K] PropertyStoreWithRedisCacheTestIT.java │   │   │   │   └── [3.4K] RedisTestSupport.java │   │   │   └── [2.3K] RedisCacheManagerTestIT.java │   │   └── [4.0K] store │   │   └── [4.0K] it │   │   ├── [1.8K] FeatureStoreRedisLettuceClusterTestIT.java │   │   ├── [1.7K] FeatureStoreRedisLettuceTestIT.java │   │   ├── [1.8K] FeatureStoreRedisTestIT.java │   │   ├── [1.8K] PropertyStoreRedisTestIT.java │   │   ├── [1.9K] PropertyStoreRedisTestLettuceClusterI.java │   │   └── [1.7K] PropertyStoreRedisTestLettuceIT.java │   └── [4.0K] resources │   ├── [ 90] docker-compose.yaml │   ├── [1.8K] ff4j.xml │   ├── [1.1K] logback.xml │   └── [ 651] test-redis-applicationContext.xml ├── [4.0K] ff4j-store-spring-cloudconfig │   ├── [2.8K] pom.xml │   └── [4.0K] src │   └── [4.0K] main │   ├── [4.0K] java │   │   └── [4.0K] org │   │   └── [4.0K] ff4j │   │   └── [4.0K] spring │   │   └── [4.0K] cloudconfig │   │   ├── [4.0K] source │   │   │   ├── [2.0K] FF4jBootstrapConfiguration.java │   │   │   ├── [2.3K] FF4jPropertySource.java │   │   │   ├── [1.4K] FF4jPropertySourceLocator.java │   │   │   └── [ 820] package-info.java │   │   └── [4.0K] store │   │   ├── [1.2K] FF4jEnvironmentRepository.java │   │   └── [3.2K] FF4jPropertyStoreSpringConfig.java │   └── [4.0K] resources │   ├── [ 0] application.properties │   └── [4.0K] META-INF │   └── [ 150] spring.factories ├── [4.0K] ff4j-store-springjdbc │   ├── [3.1K] pom.xml │   └── [4.0K] src │   ├── [4.0K] main │   │   └── [4.0K] java │   │   └── [4.0K] org │   │   └── [4.0K] ff4j │   │   └── [4.0K] springjdbc │   │   └── [4.0K] store │   │   ├── [4.0K] dto │   │   │   └── [2.4K] HitCountDto.java │   │   ├── [8.7K] EventRepositorySpringJdbc.java │   │   ├── [ 16K] FeatureStoreSpringJdbc.java │   │   ├── [ 851] package-info.java │   │   ├── [6.8K] PropertyStoreSpringJdbc.java │   │   └── [4.0K] rowmapper │   │   ├── [1.2K] CustomPropertyRowMapper.java │   │   ├── [1.3K] EventRowMapper.java │   │   ├── [2.0K] FeatureRowMapper.java │   │   ├── [1.4K] HitCountRowMapper.java │   │   ├── [ 843] package-info.java │   │   └── [1.9K] RoleRowMapper.java │   └── [4.0K] test │   ├── [4.0K] java │   │   └── [4.0K] org │   │   └── [4.0K] ff4j │   │   └── [4.0K] test │   │   └── [4.0K] store │   │   ├── [4.0K] docker │   │   │   └── [2.8K] SpringJdbcPropertyStoreTestDocker.java │   │   ├── [2.3K] SpringJdbcEmbedDataSourceStoreTest.java │   │   ├── [2.4K] SpringJdbcEventRepositoryTest.java │   │   ├── [2.4K] SpringJdbcFeatureStorePrefixTest.java │   │   ├── [2.3K] SpringJdbcFeatureStoreTestInitXml.java │   │   ├── [2.3K] SpringJdbcFeatureStoreTest.java │   │   ├── [2.5K] SpringJdbcPropertyStorePrefixTest.java │   │   ├── [2.4K] SpringJdbcPropertyStoreTest.java │   │   ├── [4.3K] SpringJdbcStoresCreateSchema.java │   │   ├── [6.0K] SpringJdbcXMLDataSourceStoreTest.java │   │   └── [1.3K] TestSpringJdbcErrors.java │   └── [4.0K] resources │   ├── [2.4K] applicationContext-jdbc-test.xml │   ├── [4.5K] ddl-prefix-data.sql │   ├── [2.3K] ddl-prefix-schema.sql │   ├── [4.4K] ff-store.sql │   └── [4.5K] schemanamed-ff-store.sql ├── [4.0K] ff4j-strategy-drools │   ├── [2.0K] pom.xml │   └── [4.0K] src │   ├── [4.0K] main │   │   └── [4.0K] java │   │   └── [4.0K] org │   │   └── [4.0K] ff4j │   │   └── [4.0K] drools │   │   ├── [7.0K] FF4jDroolsFlippingStrategy.java │   │   ├── [4.2K] FF4jDroolsRequest.java │   │   ├── [8.3K] FF4jDroolsService.java │   │   └── [ 849] package-info.java │   └── [4.0K] test │   ├── [4.0K] java │   │   └── [4.0K] org │   │   └── [4.0K] ff4j │   │   └── [4.0K] drools │   │   ├── [1.4K] FF4jDroolsDRLFilesProgrammatic.java │   │   ├── [1.2K] FF4jDroolsDRLFilesXml.java │   │   ├── [1.3K] FF4jDroolsKBaseProgrammatic.java │   │   └── [1.2K] FF4jDroolsKBaseXml.java │   └── [4.0K] resources │   ├── [1.1K] ff4j-drl.xml │   ├── [1.1K] ff4jDroolsSample.drl │   ├── [1.1K] ff4j-kbase.xml │   └── [4.0K] META-INF │   └── [ 934] kmodule.xml ├── [4.0K] ff4j-test │   ├── [1.9K] pom.xml │   └── [4.0K] src │   ├── [4.0K] main │   │   ├── [4.0K] java │   │   │   └── [4.0K] org │   │   │   └── [4.0K] ff4j │   │   │   └── [4.0K] test │   │   │   ├── [ 13K] AssertFf4j.java │   │   │   ├── [4.0K] audit │   │   │   │   └── [ 14K] EventRepositoryTestSupport.java │   │   │   ├── [4.0K] cache │   │   │   │   ├── [4.3K] AbstractCacheManagerJUnitTest.java │   │   │   │   └── [ 825] package-info.java │   │   │   ├── [ 797] package-info.java │   │   │   ├── [4.0K] propertystore │   │   │   │   ├── [ 820] package-info.java │   │   │   │   └── [ 12K] PropertyStoreTestSupport.java │   │   │   ├── [4.0K] security │   │   │   │   ├── [2.6K] DefaultAuthorisationManager.java │   │   │   │   └── [ 785] package-info.java │   │   │   ├── [4.0K] store │   │   │   │   ├── [ 30K] FeatureStoreTestSupport.java │   │   │   │   └── [ 812] package-info.java │   │   │   ├── [2.4K] TestsFf4jConstants.java │   │   │   └── [4.0K] unsafe │   │   │   ├── [ 834] UnsafeFlippingStrategy.java │   │   │   └── [ 843] UnsafeProperty.java │   │   └── [4.0K] resources │   │   ├── [1.1K] logback-test.xml │   │   ├── [1.1K] logback.xml │   │   ├── [4.3K] test-ff4j-features.json │   │   ├── [4.3K] test-ff4j-features.properties │   │   ├── [3.8K] test-ff4j-features.xml │   │   ├── [3.5K] test-ff4j-features.yml │   │   └── [4.0K] unsafe │   │   ├── [ 220] test-ff4j-features.json │   │   ├── [ 763] test-ff4j-features.properties │   │   ├── [1006] test-ff4j-features.xml │   │   ├── [ 323] test-ff4j-features.yml │   │   ├── [ 306] test-ff4j-strategy.json │   │   ├── [ 812] test-ff4j-strategy.properties │   │   ├── [1.0K] test-ff4j-strategy.xml │   │   └── [ 379] test-ff4j-strategy.yml │   └── [4.0K] test │   └── [4.0K] java │   └── [4.0K] org │   └── [4.0K] ff4j │   └── [4.0K] test │   ├── [4.0K] security │   │   ├── [2.8K] AssertTest.java │   │   └── [1.5K] DefaultAuthorisationTest.java │   └── [4.0K] store │   ├── [5.6K] AbstractCacheManagerTest.java │   ├── [1.2K] InMemoryEventStoreTest.java │   ├── [1.2K] InMemoryFeatureCache.java │   ├── [1.6K] InMemoryFeatureStoreTest.java │   ├── [5.3K] InMemoryPropertyStoreTest.java │   ├── [4.2K] MockFeatureStore.java │   └── [3.2K] MockPropertyStore.java ├── [4.0K] ff4j-utils-json │   ├── [1.8K] pom.xml │   └── [4.0K] src │   ├── [4.0K] main │   │   └── [4.0K] java │   │   └── [4.0K] org │   │   └── [4.0K] ff4j │   │   └── [4.0K] utils │   │   ├── [4.0K] json │   │   │   ├── [4.3K] EventJsonParser.java │   │   │   ├── [8.1K] FeatureJsonParser.java │   │   │   ├── [2.2K] FF4jCustomObjectMapper.java │   │   │   ├── [ 817] package-info.java │   │   │   └── [4.7K] PropertyJsonParser.java │   │   └── [4.0K] mapping │   │   ├── [1.3K] JsonStringEventMapper.java │   │   ├── [1.3K] JsonStringFeatureMapper.java │   │   └── [1.4K] JsonStringPropertyMapper.java │   └── [4.0K] test │   ├── [4.0K] java │   │   └── [4.0K] org │   │   └── [4.0K] ff4j │   │   └── [4.0K] utils │   │   └── [4.0K] json │   │   ├── [ 908] CustomObjectMapperTest.java │   │   ├── [4.4K] EventJsonParserTest.java │   │   ├── [6.2K] FeatureJsonParserTest.java │   │   └── [1.8K] PropertyJsonParserTest.java │   └── [4.0K] resources │   └── [3.8K] test-ff4j-parser.xml ├── [4.0K] ff4j-web │   ├── [3.6K] pom.xml │   └── [4.0K] src │   ├── [4.0K] main │   │   ├── [4.0K] java │   │   │   └── [4.0K] org │   │   │   └── [4.0K] ff4j │   │   │   └── [4.0K] web │   │   │   ├── [4.0K] bean │   │   │   │   ├── [7.0K] HomeBean.java │   │   │   │   ├── [1.8K] Interval.java │   │   │   │   └── [ 12K] WebConstants.java │   │   │   ├── [4.0K] console │   │   │   │   └── [3.9K] ImageProvider.java │   │   │   ├── [4.0K] controller │   │   │   │   ├── [ 11K] AbstractController.java │   │   │   │   ├── [1.2K] AdminConsoleController.java │   │   │   │   ├── [2.4K] AuditController.java │   │   │   │   ├── [ 13K] FeaturesController.java │   │   │   │   ├── [2.3K] FeatureUsageController.java │   │   │   │   ├── [6.5K] HomeController.java │   │   │   │   ├── [1.8K] InfosController.java │   │   │   │   ├── [1.6K] NotFoundController.java │   │   │   │   ├── [ 10K] OperationsController.java │   │   │   │   ├── [8.5K] PropertiesController.java │   │   │   │   ├── [2.8K] SettingsController.java │   │   │   │   ├── [5.8K] StaticResourceController.java │   │   │   │   └── [2.3K] TimeSeriesController.java │   │   │   ├── [4.0K] embedded │   │   │   │   ├── [7.8K] ConsoleConstants.java │   │   │   │   ├── [ 19K] ConsoleOperations.java │   │   │   │   └── [ 800] package-info.java │   │   │   ├── [3.8K] FF4jDispatcherServlet.java │   │   │   ├── [9.1K] FF4jServlet.java │   │   │   ├── [ 784] package-info.java │   │   │   ├── [4.0K] taglib │   │   │   │   ├── [8.0K] AbstractFeatureTag.java │   │   │   │   ├── [1.7K] FeatureTagDisable.java │   │   │   │   ├── [1.9K] FeatureTagEnable.java │   │   │   │   └── [ 785] package-info.java │   │   │   ├── [4.0K] thymeleaf │   │   │   │   ├── [5.6K] CustomMessageResolver.java │   │   │   │   ├── [ 924] FF4JDialect.java │   │   │   │   ├── [1.8K] FF4jDisableAttrProcessor.java │   │   │   │   └── [1.8K] FF4jEnableAttrProcessor.java │   │   │   └── [4.0K] utils │   │   │   ├── [7.1K] FileUtils.java │   │   │   └── [2.2K] WebUtils.java │   │   └── [4.0K] resources │   │   ├── [168K] ff4j-embedded.css │   │   ├── [105K] ff4j-embedded.js │   │   ├── [7.2K] ff4j-messages_ar.properties │   │   ├── [6.0K] ff4j-messages_cn.properties │   │   ├── [6.2K] ff4j-messages_de.properties │   │   ├── [6.2K] ff4j-messages_en.properties │   │   ├── [6.5K] ff4j-messages_es.properties │   │   ├── [6.4K] ff4j-messages_fr.properties │   │   ├── [6.4K] ff4j-messages_ja.properties │   │   ├── [6.2K] ff4j-messages.properties │   │   ├── [6.5K] ff4j-messages_pt_br.properties │   │   ├── [ 16K] ff4j-monitoring.html │   │   ├── [ 52K] ff4j-template.html │   │   ├── [4.2K] ff4j.xml │   │   ├── [ 574] jetty.xml │   │   ├── [4.0K] META-INF │   │   │   └── [4.0K] tags │   │   │   └── [2.8K] ff4j.tld │   │   ├── [4.0K] static │   │   │   ├── [4.0K] css │   │   │   │   ├── [6.3K] bootstrap-datetimepicker.min.css │   │   │   │   ├── [ 92K] bootstrap.min.css │   │   │   │   ├── [8.9K] bootstrap-responsive.min.css │   │   │   │   ├── [5.2K] dashboard.css │   │   │   │   ├── [ 28K] font-awesome-3.2.1.css │   │   │   │   ├── [ 14K] jquery.dataTables.min.css │   │   │   │   └── [ 28K] style.css │   │   │   ├── [4.0K] font │   │   │   │   ├── [ 60K] FontAwesome.otf │   │   │   │   ├── [ 41K] fontawesome-webfontd41d.eot │   │   │   │   ├── [ 37K] fontawesome-webfont.eot │   │   │   │   ├── [194K] fontawesome-webfont.svg │   │   │   │   ├── [ 21K] fontawesome-webfont.svgz │   │   │   │   ├── [ 77K] fontawesome-webfont.ttf │   │   │   │   └── [ 43K] fontawesome-webfont.woff │   │   │   ├── [4.0K] img │   │   │   │   ├── [ 16K] bodybg.png │   │   │   │   ├── [1.7K] btn_donate_LG.gif │   │   │   │   ├── [4.0K] db │   │   │   │   │   ├── [ 43K] db-arangodb.png │   │   │   │   │   ├── [7.5K] db-archaius.png │   │   │   │   │   ├── [ 13K] db-aws-ssm.png │   │   │   │   │   ├── [9.0K] db-cassandra.png │   │   │   │   │   ├── [2.4K] db-commonsconfig.png │   │   │   │   │   ├── [1.6K] db-consul.png │   │   │   │   │   ├── [5.5K] db-couchbase.png │   │   │   │   │   ├── [4.6K] db-couchdb.png │   │   │   │   │   ├── [6.2K] db-dynamodb.png │   │   │   │   │   ├── [2.0K] db-ehcache.png │   │   │   │   │   ├── [6.9K] db-elastic.png │   │   │   │   │   ├── [7.5K] db-eureka.png │   │   │   │   │   ├── [ 43K] db-eventstorearangodb.png │   │   │   │   │   ├── [2.2K] db-hazelcast.png │   │   │   │   │   ├── [ 986] db-hbase.png │   │   │   │   │   ├── [8.5K] db-ignite.png │   │   │   │   │   ├── [7.1K] db-inmemory.png │   │   │   │   │   ├── [7.1K] db-jdbc.png │   │   │   │   │   ├── [5.5K] db-jhipster.png │   │   │   │   │   ├── [5.9K] db-maria.png │   │   │   │   │   ├── [5.2K] db-mongo.png │   │   │   │   │   ├── [8.2K] db-neo4j.png │   │   │   │   │   ├── [5.5K] db-oracle.png │   │   │   │   │   ├── [ 10K] db-postgres.png │   │   │   │   │   ├── [7.5K] db-redislettuce.png │   │   │   │   │   ├── [7.5K] db-redis.png │   │   │   │   │   ├── [8.4K] db-springboot.png │   │   │   │   │   ├── [6.9K] db-springjdbc.png │   │   │   │   │   ├── [ 14K] db-sqlserver.png │   │   │   │   │   └── [2.6K] db-terracotta.png │   │   │   │   ├── [1.5K] disabled.png │   │   │   │   ├── [ 13K] ff4j.png │   │   │   │   ├── [4.0K] flags │   │   │   │   │   ├── [1.2K] flagBrasil.png │   │   │   │   │   ├── [ 970] flagChina.png │   │   │   │   │   ├── [ 426] flagEmirate.png │   │   │   │   │   ├── [ 680] flagEnglish.png │   │   │   │   │   ├── [ 175] flagFrance.png │   │   │   │   │   ├── [ 168] flagGermany.png │   │   │   │   │   ├── [2.1K] flagJapanese.png │   │   │   │   │   ├── [2.8K] flagMexico.png │   │   │   │   │   ├── [ 845] flagPortugal.png │   │   │   │   │   ├── [ 342] flagRussia.png │   │   │   │   │   └── [ 340] flagSpain.png │   │   │   │   ├── [ 12K] glyphicons-halflings.png │   │   │   │   ├── [8.6K] glyphicons-halflings-white.png │   │   │   │   ├── [4.0K] icons │   │   │   │   │   └── [4.3K] ff4j-ico.png │   │   │   │   ├── [ 43] pixel.gif │   │   │   │   ├── [4.0K] secu │   │   │   │   │   ├── [ 16K] apacheshiro.png │   │   │   │   │   ├── [5.5K] jhipster.png │   │   │   │   │   └── [3.4K] springsecurity.png │   │   │   │   ├── [4.0K] strategy │   │   │   │   │   └── [6.3K] s-drools.png │   │   │   │   └── [ 19K] subnavbg.png │   │   │   └── [4.0K] js │   │   │   ├── [ 168] base.js │   │   │   ├── [ 29K] bootstrap-datetimepicker.min.js │   │   │   ├── [ 14K] bootstrap.js │   │   │   ├── [ 729] ff4j-client.js │   │   │   ├── [ 18K] ff4j.js │   │   │   ├── [4.0K] jqplot │   │   │   │   ├── [3.4K] jquery.jqplot.min.css │   │   │   │   ├── [168K] jquery.jqplot.min.js │   │   │   │   └── [4.0K] plugins │   │   │   │   ├── [ 13K] jqplot.barRenderer.min.js │   │   │   │   ├── [6.3K] jqplot.BezierCurveRenderer.min.js │   │   │   │   ├── [3.2K] jqplot.blockRenderer.min.js │   │   │   │   ├── [ 13K] jqplot.bubbleRenderer.min.js │   │   │   │   ├── [2.6K] jqplot.canvasAxisLabelRenderer.min.js │   │   │   │   ├── [3.1K] jqplot.canvasAxisTickRenderer.min.js │   │   │   │   ├── [ 14K] jqplot.canvasOverlay.min.js │   │   │   │   ├── [ 16K] jqplot.canvasTextRenderer.min.js │   │   │   │   ├── [9.5K] jqplot.categoryAxisRenderer.min.js │   │   │   │   ├── [ 790] jqplot.ciParser.min.js │   │   │   │   ├── [ 18K] jqplot.cursor.min.js │   │   │   │   ├── [9.8K] jqplot.dateAxisRenderer.min.js │   │   │   │   ├── [ 13K] jqplot.donutRenderer.min.js │   │   │   │   ├── [4.1K] jqplot.dragable.min.js │   │   │   │   ├── [4.7K] jqplot.enhancedLegendRenderer.min.js │   │   │   │   ├── [ 13K] jqplot.funnelRenderer.min.js │   │   │   │   ├── [7.4K] jqplot.highlighter.min.js │   │   │   │   ├── [3.5K] jqplot.json2.min.js │   │   │   │   ├── [7.2K] jqplot.logAxisRenderer.min.js │   │   │   │   ├── [9.1K] jqplot.mekkoAxisRenderer.min.js │   │   │   │   ├── [6.7K] jqplot.mekkoRenderer.min.js │   │   │   │   ├── [ 18K] jqplot.meterGaugeRenderer.min.js │   │   │   │   ├── [ 964] jqplot.mobile.min.js │   │   │   │   ├── [4.1K] jqplot.ohlcRenderer.min.js │   │   │   │   ├── [ 13K] jqplot.pieRenderer.min.js │   │   │   │   ├── [4.5K] jqplot.pointLabels.min.js │   │   │   │   ├── [ 10K] jqplot.pyramidAxisRenderer.min.js │   │   │   │   ├── [8.2K] jqplot.pyramidGridRenderer.min.js │   │   │   │   ├── [8.3K] jqplot.pyramidRenderer.min.js │   │   │   │   └── [2.3K] jqplot.trendline.min.js │   │   │   ├── [4.0K] jquery │   │   │   │   └── [ 87K] jquery-3.5.1.min.js │   │   │   └── [ 84K] jquery.dataTables.min.js │   │   └── [4.0K] views │   │   ├── [1.2K] view-404.html │   │   ├── [5.0K] view-audit.html │   │   ├── [7.1K] view-features.html │   │   ├── [7.3K] view-featureUsage.html │   │   ├── [2.1K] view-header.html │   │   ├── [8.0K] view-home.html │   │   ├── [ 14K] view-infos.html │   │   ├── [ 597] view-messages.html │   │   ├── [ 27K] view-modal-features.html │   │   ├── [2.7K] view-modal-home.html │   │   ├── [ 24K] view-modal-properties.html │   │   ├── [ 13K] view-navbar.html │   │   ├── [3.9K] view-properties.html │   │   ├── [2.0K] view-settings.html │   │   └── [5.1K] view-timeSeries.html │   └── [4.0K] test │   └── [4.0K] java │   └── [4.0K] org │   └── [4.0K] ff4j │   └── [4.0K] web │   └── [4.0K] taglib │   ├── [3.3K] FeatureTagEnableTest.java │   └── [1.5K] TestParsingExpression.java ├── [4.0K] ff4j-webapi │   ├── [2.2K] pom.xml │   └── [4.0K] src │   └── [4.0K] main │   └── [4.0K] java │   └── [4.0K] org │   └── [4.0K] ff4j │   └── [4.0K] web │   └── [4.0K] api │   ├── [1.2K] FF4jJacksonMapper.java │   ├── [1.7K] FF4jSwaggerConfiguration.java │   ├── [ 804] package-info.java │   ├── [4.0K] resources │   │   ├── [2.9K] AbstractResource.java │   │   ├── [4.0K] domain │   │   │   ├── [2.6K] AuthorizationsManagerApiBean.java │   │   │   ├── [2.7K] BarChartApiBean.java │   │   │   ├── [2.7K] BarSeriesApiBean.java │   │   │   ├── [5.0K] CacheApiBean.java │   │   │   ├── [4.4K] EventRepositoryApiBean.java │   │   │   ├── [6.8K] FeatureApiBean.java │   │   │   ├── [3.9K] FeatureMonitoringApiBean.java │   │   │   ├── [5.5K] FeatureStoreApiBean.java │   │   │   ├── [6.7K] FF4jStatusApiBean.java │   │   │   ├── [3.0K] FlippingStrategyApiBean.java │   │   │   ├── [2.4K] GroupApiBean.java │   │   │   ├── [2.8K] GroupDescApiBean.java │   │   │   ├── [ 803] package-info.java │   │   │   ├── [2.9K] PieChartApiBean.java │   │   │   ├── [3.2K] PieSectorApiBean.java │   │   │   ├── [5.2K] PropertyApiBean.java │   │   │   └── [4.2K] PropertyStoreApiBean.java │   │   ├── [ 13K] FeatureResource.java │   │   ├── [7.2K] FeatureStoreResource.java │   │   ├── [7.9K] FF4jResource.java │   │   ├── [3.4K] GroupResource.java │   │   ├── [5.4K] MonitoringResource.java │   │   ├── [ 782] package-info.java │   │   ├── [6.7K] PropertyResource.java │   │   ├── [5.5K] PropertyStoreResource.java │   │   └── [2.9K] RuntimeExceptionMapper.java │   └── [4.0K] security │   ├── [1.5K] FF4JSecurityContextHolder.java │   ├── [3.6K] FF4jSecurityContext.java │   └── [ 775] package-info.java ├── [4.0K] ff4j-webapi-jersey2x │   ├── [6.4K] pom.xml │   └── [4.0K] src │   ├── [4.0K] main │   │   └── [4.0K] java │   │   └── [4.0K] org │   │   └── [4.0K] ff4j │   │   └── [4.0K] web │   │   ├── [4.0K] api │   │   │   ├── [4.7K] FF4jApiApplicationJersey2x.java │   │   │   ├── [4.0K] filter │   │   │   │   ├── [2.5K] ApiKey.java │   │   │   │   ├── [3.5K] ApiKeyValidatorFilter.java │   │   │   │   ├── [2.0K] JerseyApplicationEventListener.java │   │   │   │   └── [1.8K] JerseyRequestEventListener.java │   │   │   ├── [ 790] package-info.java │   │   │   ├── [4.0K] security │   │   │   │   ├── [5.4K] FF4jAuthenticationFilter.java │   │   │   │   ├── [5.3K] FF4jAuthorizationFilter.java │   │   │   │   └── [2.6K] FF4JSecurityContextAuthenticationManager.java │   │   │   └── [4.0K] utils │   │   │   └── [4.2K] ClientHttpUtils.java │   │   └── [4.0K] jersey2 │   │   └── [4.0K] store │   │   ├── [ 18K] FeatureStoreHttp.java │   │   └── [9.8K] PropertyStoreHttp.java │   └── [4.0K] test │   ├── [4.0K] java │   │   └── [4.0K] org │   │   └── [4.0K] ff4j │   │   └── [4.0K] web │   │   ├── [4.0K] api │   │   │   └── [4.0K] test │   │   │   ├── [1.2K] ApiKeyBeanTest.java │   │   │   ├── [1.2K] Base64EncodingTest.java │   │   │   ├── [4.0K] embedded │   │   │   │   ├── [3.3K] AbstractEmbeddedGrizzlyIntegrationTest.java │   │   │   │   └── [1.0K] FF4JIntegrationTest.java │   │   │   ├── [4.0K] filter │   │   │   │   ├── [5.3K] ApiKeyValidatorFilterTest.java │   │   │   │   ├── [1.5K] MockResourceClass.java │   │   │   │   ├── [5.4K] SecurityAuthenticationFilterTest.java │   │   │   │   └── [6.7K] SecurityAuthorizationFilterTest.java │   │   │   ├── [4.0K] it │   │   │   │   ├── [4.4K] AbstractWebResourceTestIT.java │   │   │   │   ├── [2.4K] FeatureResource2DeleteTestIT.java │   │   │   │   ├── [2.5K] FeatureResource2GetTestIT.java │   │   │   │   ├── [ 11K] FeatureResource2PostTestIT.java │   │   │   │   ├── [2.1K] FeatureResource2PutCreateTestIT.java │   │   │   │   ├── [2.2K] FeatureResource2PutUpdateAuth1TestIT.java │   │   │   │   ├── [2.2K] FeatureResource2PutUpdateAuth2TestIT.java │   │   │   │   ├── [2.1K] FeatureResource2PutUpdateGroup1TestIT.java │   │   │   │   ├── [2.1K] FeatureResource2PutUpdateGroup2TestIT.java │   │   │   │   ├── [1.7K] FeaturesResource2TestIT.java │   │   │   │   ├── [1.6K] FeatureStoreResource2TestIT.java │   │   │   │   ├── [7.6K] FF4JResource2TestIT.java │   │   │   │   ├── [3.1K] GroupResourceTestIT.java │   │   │   │   ├── [1.8K] GroupsResourceGetTestIT.java │   │   │   │   ├── [ 10K] SecuredFF4JResourceTestIT.java │   │   │   │   └── [1.8K] SecuredJersey2Application.java │   │   │   ├── [1.5K] JacksonMarshallingTest.java │   │   │   └── [1.4K] SampleFF4jJersey2Application.java │   │   └── [4.0K] test │   │   └── [4.0K] store │   │   ├── [ 834] FeatureStoreHttpTestIT.java │   │   └── [3.1K] FeatureStoreHttpTest.java │   └── [4.0K] resources │   ├── [2.2K] ff4j.xml │   ├── [1.2K] spring-context.xml │   └── [1.5K] test-WebApi-context.xml ├── [ 45K] pom.xml ├── [7.1K] README.md ├── [ 11K] RELEASE.MD └── [4.0K] src └── [4.0K] license ├── [4.0K] apache_v2 │   ├── [ 533] header.txt │   └── [ 11K] license.txt └── [ 19] licenses.properties 643 directories, 1066 files
神龙机器人已为您缓存
备注
    1. 建议优先通过来源进行访问。
    2. 如果因为来源失效或无法访问,请发送邮箱到 f.jinxu#gmail.com 索取本地快照(把 # 换成 @)。
    3. 神龙已为您对POC代码进行快照,为了长期维护,请考虑为本地POC付费,感谢您的支持。