Hello,

I’m trying to use the latest jolt specification, especially the operation 
"modify-overwrite-beta“, introduced with jolt version 0.0.22. It seems that 
currently only version 0.0.21 is used by nifi (see 
nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/pom.xml). I 
tried to update to the latest jolt version (from 0.0.21 to 0.0.24) in the 
corresponding pom.xml and packaged the whole package (after I removed one 
failing test in 
nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/test/java/org/apache/nifi/cluster/coordination/http/StandardHttpResponseMapperSpec.groovy,
 not the way to go but need some fast results :-)).
Nifi is using the new .nar file but unfortunately the jolt processor is still 
complaining that the jolt specification is invalid (see below).

Does anyone has a hint/idea how to use the latest jolt version, I had already 
in mind of extracting the processor from the nifi standard bar bundle and 
create a new named processor for testing, but I guess there must be an easier 
solution?

The jolt spec I’m using:
[
  {
    "operation": "modify-overwrite",
    "spec": {
      "lastElementOfType": "=lastElement(@(1,type))"
    }
  },
  {
    "operation": "shift",
    "spec": {
      "value": "@(1,lastElementOfType)",
      "_meta": {
        "appId": "appId",
        "userId": "userId"
      }
    }
  }
]

The data I’m using:
  {
    "type":["user","profile","personalInfo", "firstName"],
    "value":"testname",
    "_meta":{"appId":"test","userId":"56c1614b677c35cc3f28fbd0"}
  }

The expected flow file content afterwards:
{
  "appId" : "test",
  "firstName" : "testname",
  "playerId" : "56c1614b677c35cc3f28fbd0"
}

The jolt demo from http://jolt-demo.appspot.com/#inception 
<http://jolt-demo.appspot.com/#inception> delivers the expected results.

Thanks,

Sebastian

Reply via email to