フローファイル コンテンツの JSON オブジェクトに属性/文字列を追加できるカスタム プロセッサを Apache NiFi で作成しようとしています。現時点では、文字列を使用するだけでは機能しますが、NiFi の式言語をコードでサポートしているにもかかわらず使用すると機能しません。
式言語は別のプロセッサで動作するため 100% 正しいです。また、別の属性を試して、それが属性ではないことを確認しました。
プロパティ:
public static final PropertyDescriptor ADD_ATTRIBUTE = new PropertyDescriptor
.Builder().name("Add Attribute")
.description("Example Property")
.required(true)
.addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
.expressionLanguageSupported(true)
.build();
コードの後半で、値を取得して、使用する JSON オブジェクトに入れたい場合:
jsonObject.put("hostname", context.getProperty(ADD_ATTRIBUTE).evaluateAttributeExpressions().getValue());
単体テストも作成しましたが、testrunner.setProperty にテキスト値を割り当てると機能します。ただし、テストランナーに属性を割り当てる方法や、テストで式言語を使用する方法がわかりません。
提案や解決策をお寄せいただきありがとうございます。