Add Nested JSON Filtering 09/78509/8
authorDaniel Cruz <dc443y@att.com>
Thu, 14 Feb 2019 06:42:45 +0000 (00:42 -0600)
committerDaniel Cruz <dc443y@att.com>
Thu, 21 Feb 2019 22:36:38 +0000 (16:36 -0600)
commitfa2a5a43c82cd35cca9e7d4b51f83ce70e1e3e59
tree92b32081f70d2a7e3219e13836565cf81160ee3a
parentbf69c619c8c5a660f6fde044dc9aa8304ba12982
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>
policy-management/pom.xml
policy-management/src/main/java/org/onap/policy/drools/controller/DroolsControllerFactory.java
policy-management/src/main/java/org/onap/policy/drools/protocol/coders/JsonProtocolFilter.java
policy-management/src/main/java/org/onap/policy/drools/protocol/coders/ProtocolCoderToolset.java
policy-management/src/main/java/org/onap/policy/drools/server/restful/RestManager.java
policy-management/src/test/java/org/onap/policy/drools/protocol/coders/JsonProtocolFilterTest.java
policy-management/src/test/java/org/onap/policy/drools/protocol/coders/ProtocolCoderToolsetTest.java
pom.xml