Add Nested JSON Filtering

The refactoring of the JsonProtocolFilter allows for complex filter
queries for JSON events coming in on network topics. The underlying
library used is json-path, which supports path based searching and
ruby regex filtering at any level of the JSON document.

The JsonProtocolFilter no longer requires a FilterRule class as one
json-path filter can contain multiple constraints using "&&" or "||".
This eliminates the need to identify the field name as a key with a
regex associated with it in the controller properties file (see the
original FilterRule implementation). It also simplifies the parsing
needed in the DroolsControllerFactory when extracting the filter
property and creating the JsonProtocolFilter.

JUnit coverage is 100% and all sonar flags were addressed related to
the JsonProtocolFilter class. Tested and verified working with the
telemetry API in a locally deployed PDP-D.

Change-Id: I8bd63db4e497c1ba0b5044b5449ccb7a9e4dbdbc
Issue-ID: POLICY-1489
Signed-off-by: Daniel Cruz <dc443y@att.com>
8 files changed
tree: 92b32081f70d2a7e3219e13836565cf81160ee3a
  1. api-active-standby-management/
  2. api-state-management/
  3. feature-active-standby-management/
  4. feature-distributed-locking/
  5. feature-eelf/
  6. feature-healthcheck/
  7. feature-pooling-dmaap/
  8. feature-session-persistence/
  9. feature-simulators/
  10. feature-state-management/
  11. feature-test-transaction/
  12. packages/
  13. policy-core/
  14. policy-management/
  15. policy-utils/
  16. .gitignore
  17. .gitreview
  18. docker_build.sh
  19. docker_merge.sh
  20. docker_verify.sh
  21. INFO.yaml
  22. LICENSE.txt
  23. pom.xml
  24. README.md
  25. version.properties
README.md

Copyright 2018 AT&T Intellectual Property. All rights reserved. This file is licensed under the CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE Full license text at https://creativecommons.org/licenses/by/4.0/legalcode

This source repository contains the ONAP Policy DroolsPDP code. To build it:

  1. using Maven 3
  2. git clone http://gerrit.onap.org/r/oparent and copy oparent/settings.xml to ~/.m2
  3. mvn clean install