关联漏洞
介绍
# ✨✨✨ FF4J - Feature Flipping for Java ✨✨✨
[](https://travis-ci.org/ff4j/ff4j)
[](#backers) [](#sponsors) [](https://maven-badges.herokuapp.com/maven-central/org.ff4j/ff4j-core/)
[](https://coveralls.io/github/ff4j/ff4j?branch=master)
[](https://www.codacy.com/app/cedrick-lunven/ff4j)
[](https://gitter.im/ff4j/ff4j?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
[](http://www.apache.org/licenses/LICENSE-2.0)
[](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付费,感谢您的支持。