From issues-return-63863-archive-asf-public=cust-asf.ponee.io@nifi.apache.org Mon Sep 3 18:07:36 2018 Return-Path: X-Original-To: archive-asf-public@cust-asf.ponee.io Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by mx-eu-01.ponee.io (Postfix) with SMTP id 6805A180647 for ; Mon, 3 Sep 2018 18:07:36 +0200 (CEST) Received: (qmail 53772 invoked by uid 500); 3 Sep 2018 16:07:35 -0000 Mailing-List: contact issues-help@nifi.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@nifi.apache.org Delivered-To: mailing list issues@nifi.apache.org Received: (qmail 53763 invoked by uid 99); 3 Sep 2018 16:07:35 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 03 Sep 2018 16:07:35 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id 6CC3BE0041; Mon, 3 Sep 2018 16:07:35 +0000 (UTC) From: dalibor-frivaldsky To: issues@nifi.apache.org Reply-To: issues@nifi.apache.org References: In-Reply-To: Subject: [GitHub] nifi pull request #2920: NIFI-5449: Added Base64 Encode/Decode functions to ... Content-Type: text/plain Message-Id: <20180903160735.6CC3BE0041@git1-us-west.apache.org> Date: Mon, 3 Sep 2018 16:07:35 +0000 (UTC) Github user dalibor-frivaldsky commented on a diff in the pull request: https://github.com/apache/nifi/pull/2920#discussion_r214729568 --- Diff: nifi-commons/nifi-record-path/src/main/java/org/apache/nifi/record/path/functions/Base64Encode.java --- @@ -0,0 +1,58 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.nifi.record.path.functions; + +import org.apache.nifi.record.path.FieldValue; +import org.apache.nifi.record.path.RecordPathEvaluationContext; +import org.apache.nifi.record.path.StandardFieldValue; +import org.apache.nifi.record.path.paths.RecordPathSegment; + +import java.io.UnsupportedEncodingException; +import java.util.Base64; +import java.util.stream.Stream; + +public class Base64Encode extends RecordPathSegment { + private final RecordPathSegment recordPath; + + public Base64Encode(final RecordPathSegment recordPath, final boolean absolute) { + super("base64Encode", null, absolute); + this.recordPath = recordPath; + } + + @Override + public Stream evaluate(final RecordPathEvaluationContext context) { + final Stream fieldValues = recordPath.evaluate(context); + return fieldValues.filter(fv -> fv.getValue() != null) + .map(fv -> { + + Object value = fv.getValue(); + if (value instanceof String) { + try { + return new StandardFieldValue(Base64.getEncoder().encodeToString(value.toString().getBytes("UTF-8")), fv.getField(), fv.getParent().orElse(null)); + } catch (final UnsupportedEncodingException e) { + return null; // won't happen. + } + } else if (value instanceof byte[]) { --- End diff -- @mattyb149 Is there anyone else other than @markap14 that can provide the answer here? If this patch is appropriate, it is unfortunate to see it become stale. ---