Re: [PR] NIFI-12386 Adds processor FilterAttribute (Java 1.8 / NiFi 1.x) [nifi]

2023-11-30 Thread via GitHub


mosermw closed pull request #8064: NIFI-12386 Adds processor FilterAttribute 
(Java 1.8 / NiFi 1.x)
URL: https://github.com/apache/nifi/pull/8064


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscr...@nifi.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org



Re: [PR] NIFI-12386 Adds processor FilterAttribute (Java 1.8 / NiFi 1.x) [nifi]

2023-11-30 Thread via GitHub


mosermw commented on PR #8064:
URL: https://github.com/apache/nifi/pull/8064#issuecomment-1834609921

   I've finished testing on the support/nifi-1.x branch and this processor 
works in the supported scenarios.  So +1 I will merge.  We should have plenty 
of time to resolve NIFI-12446 before the next release(s).
   
   As you can probably tell, my reviews tend to be lenient when it comes to 
code style, as long as readability, functionality and performance goals are met.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscr...@nifi.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org



Re: [PR] NIFI-12386 Adds processor FilterAttribute (Java 1.8 / NiFi 1.x) [nifi]

2023-11-30 Thread via GitHub


EndzeitBegins commented on code in PR #8064:
URL: https://github.com/apache/nifi/pull/8064#discussion_r1411247112


##
nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/FilterAttribute.java:
##
@@ -0,0 +1,273 @@
+/*
+ * 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.processors.standard;
+
+import org.apache.nifi.annotation.behavior.DefaultRunDuration;
+import org.apache.nifi.annotation.behavior.InputRequirement;
+import org.apache.nifi.annotation.behavior.SideEffectFree;
+import org.apache.nifi.annotation.behavior.SupportsBatching;
+import org.apache.nifi.annotation.documentation.CapabilityDescription;
+import org.apache.nifi.annotation.documentation.Tags;
+import org.apache.nifi.annotation.lifecycle.OnScheduled;
+import org.apache.nifi.components.AllowableValue;
+import org.apache.nifi.components.PropertyDescriptor;
+import org.apache.nifi.expression.ExpressionLanguageScope;
+import org.apache.nifi.flowfile.FlowFile;
+import org.apache.nifi.processor.AbstractProcessor;
+import org.apache.nifi.processor.ProcessContext;
+import org.apache.nifi.processor.ProcessSession;
+import org.apache.nifi.processor.Relationship;
+import org.apache.nifi.processor.exception.ProcessException;
+import org.apache.nifi.processor.util.StandardValidators;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+import java.util.function.Predicate;
+import java.util.regex.Pattern;
+import java.util.stream.Collectors;
+
+@SideEffectFree
+@SupportsBatching(defaultDuration = DefaultRunDuration.TWENTY_FIVE_MILLIS)
+@InputRequirement(InputRequirement.Requirement.INPUT_REQUIRED)
+@Tags({"attributes", "modification", "filter", "retain", "remove", "delete", 
"regex", "regular expression", "Attribute Expression Language"})
+@CapabilityDescription("Filters the attributes of a FlowFile by retaining 
specified attributes and removing the rest or by removing specified attributes 
and retaining the rest.")
+public class FilterAttribute extends AbstractProcessor {
+
+public static final Relationship REL_SUCCESS = new Relationship.Builder()
+.description("All successful FlowFiles are routed to this 
relationship").name("success").build();
+
+private final static Set relationships = 
Collections.singleton(REL_SUCCESS);
+
+
+public static final AllowableValue FILTER_MODE_VALUE_RETAIN = new 
AllowableValue(
+"RETAIN",

Review Comment:
   I've written your suggestions in the Jira ticket, @exceptionfactory. Please 
let me know if I missed something or you'd like to change something.
   
   Unless communicated otherwise, I will wait for this PR to be merged and 
start working on NIFI-12446 afterwards, when I can get to it. 
   Or does one of you both want to have a swing at it?



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscr...@nifi.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org



Re: [PR] NIFI-12386 Adds processor FilterAttribute (Java 1.8 / NiFi 1.x) [nifi]

2023-11-30 Thread via GitHub


exceptionfactory commented on code in PR #8064:
URL: https://github.com/apache/nifi/pull/8064#discussion_r1411228506


##
nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/FilterAttribute.java:
##
@@ -0,0 +1,273 @@
+/*
+ * 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.processors.standard;
+
+import org.apache.nifi.annotation.behavior.DefaultRunDuration;
+import org.apache.nifi.annotation.behavior.InputRequirement;
+import org.apache.nifi.annotation.behavior.SideEffectFree;
+import org.apache.nifi.annotation.behavior.SupportsBatching;
+import org.apache.nifi.annotation.documentation.CapabilityDescription;
+import org.apache.nifi.annotation.documentation.Tags;
+import org.apache.nifi.annotation.lifecycle.OnScheduled;
+import org.apache.nifi.components.AllowableValue;
+import org.apache.nifi.components.PropertyDescriptor;
+import org.apache.nifi.expression.ExpressionLanguageScope;
+import org.apache.nifi.flowfile.FlowFile;
+import org.apache.nifi.processor.AbstractProcessor;
+import org.apache.nifi.processor.ProcessContext;
+import org.apache.nifi.processor.ProcessSession;
+import org.apache.nifi.processor.Relationship;
+import org.apache.nifi.processor.exception.ProcessException;
+import org.apache.nifi.processor.util.StandardValidators;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+import java.util.function.Predicate;
+import java.util.regex.Pattern;
+import java.util.stream.Collectors;
+
+@SideEffectFree
+@SupportsBatching(defaultDuration = DefaultRunDuration.TWENTY_FIVE_MILLIS)
+@InputRequirement(InputRequirement.Requirement.INPUT_REQUIRED)
+@Tags({"attributes", "modification", "filter", "retain", "remove", "delete", 
"regex", "regular expression", "Attribute Expression Language"})
+@CapabilityDescription("Filters the attributes of a FlowFile by retaining 
specified attributes and removing the rest or by removing specified attributes 
and retaining the rest.")
+public class FilterAttribute extends AbstractProcessor {
+
+public static final Relationship REL_SUCCESS = new Relationship.Builder()
+.description("All successful FlowFiles are routed to this 
relationship").name("success").build();
+
+private final static Set relationships = 
Collections.singleton(REL_SUCCESS);
+
+
+public static final AllowableValue FILTER_MODE_VALUE_RETAIN = new 
AllowableValue(
+"RETAIN",

Review Comment:
   Thanks @EndzeitBegins and @mosermw, that sounds good, I appreciate the 
response!



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscr...@nifi.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org



Re: [PR] NIFI-12386 Adds processor FilterAttribute (Java 1.8 / NiFi 1.x) [nifi]

2023-11-30 Thread via GitHub


EndzeitBegins commented on code in PR #8064:
URL: https://github.com/apache/nifi/pull/8064#discussion_r1411227342


##
nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/FilterAttribute.java:
##
@@ -0,0 +1,273 @@
+/*
+ * 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.processors.standard;
+
+import org.apache.nifi.annotation.behavior.DefaultRunDuration;
+import org.apache.nifi.annotation.behavior.InputRequirement;
+import org.apache.nifi.annotation.behavior.SideEffectFree;
+import org.apache.nifi.annotation.behavior.SupportsBatching;
+import org.apache.nifi.annotation.documentation.CapabilityDescription;
+import org.apache.nifi.annotation.documentation.Tags;
+import org.apache.nifi.annotation.lifecycle.OnScheduled;
+import org.apache.nifi.components.AllowableValue;
+import org.apache.nifi.components.PropertyDescriptor;
+import org.apache.nifi.expression.ExpressionLanguageScope;
+import org.apache.nifi.flowfile.FlowFile;
+import org.apache.nifi.processor.AbstractProcessor;
+import org.apache.nifi.processor.ProcessContext;
+import org.apache.nifi.processor.ProcessSession;
+import org.apache.nifi.processor.Relationship;
+import org.apache.nifi.processor.exception.ProcessException;
+import org.apache.nifi.processor.util.StandardValidators;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+import java.util.function.Predicate;
+import java.util.regex.Pattern;
+import java.util.stream.Collectors;
+
+@SideEffectFree
+@SupportsBatching(defaultDuration = DefaultRunDuration.TWENTY_FIVE_MILLIS)
+@InputRequirement(InputRequirement.Requirement.INPUT_REQUIRED)
+@Tags({"attributes", "modification", "filter", "retain", "remove", "delete", 
"regex", "regular expression", "Attribute Expression Language"})
+@CapabilityDescription("Filters the attributes of a FlowFile by retaining 
specified attributes and removing the rest or by removing specified attributes 
and retaining the rest.")
+public class FilterAttribute extends AbstractProcessor {
+
+public static final Relationship REL_SUCCESS = new Relationship.Builder()
+.description("All successful FlowFiles are routed to this 
relationship").name("success").build();
+
+private final static Set relationships = 
Collections.singleton(REL_SUCCESS);
+
+
+public static final AllowableValue FILTER_MODE_VALUE_RETAIN = new 
AllowableValue(
+"RETAIN",

Review Comment:
   That sounds like a reasonable approach. We just have to ensure that the new 
PRs are merged before the next releases of 1.x and 2.0. 
   
   I opened [NIFI-12446](https://issues.apache.org/jira/browse/NIFI-12446) to 
track the desired changes.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscr...@nifi.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org



Re: [PR] NIFI-12386 Adds processor FilterAttribute (Java 1.8 / NiFi 1.x) [nifi]

2023-11-30 Thread via GitHub


exceptionfactory commented on code in PR #8064:
URL: https://github.com/apache/nifi/pull/8064#discussion_r1411218921


##
nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/FilterAttribute.java:
##
@@ -0,0 +1,273 @@
+/*
+ * 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.processors.standard;
+
+import org.apache.nifi.annotation.behavior.DefaultRunDuration;
+import org.apache.nifi.annotation.behavior.InputRequirement;
+import org.apache.nifi.annotation.behavior.SideEffectFree;
+import org.apache.nifi.annotation.behavior.SupportsBatching;
+import org.apache.nifi.annotation.documentation.CapabilityDescription;
+import org.apache.nifi.annotation.documentation.Tags;
+import org.apache.nifi.annotation.lifecycle.OnScheduled;
+import org.apache.nifi.components.AllowableValue;
+import org.apache.nifi.components.PropertyDescriptor;
+import org.apache.nifi.expression.ExpressionLanguageScope;
+import org.apache.nifi.flowfile.FlowFile;
+import org.apache.nifi.processor.AbstractProcessor;
+import org.apache.nifi.processor.ProcessContext;
+import org.apache.nifi.processor.ProcessSession;
+import org.apache.nifi.processor.Relationship;
+import org.apache.nifi.processor.exception.ProcessException;
+import org.apache.nifi.processor.util.StandardValidators;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+import java.util.function.Predicate;
+import java.util.regex.Pattern;
+import java.util.stream.Collectors;
+
+@SideEffectFree
+@SupportsBatching(defaultDuration = DefaultRunDuration.TWENTY_FIVE_MILLIS)
+@InputRequirement(InputRequirement.Requirement.INPUT_REQUIRED)
+@Tags({"attributes", "modification", "filter", "retain", "remove", "delete", 
"regex", "regular expression", "Attribute Expression Language"})
+@CapabilityDescription("Filters the attributes of a FlowFile by retaining 
specified attributes and removing the rest or by removing specified attributes 
and retaining the rest.")
+public class FilterAttribute extends AbstractProcessor {
+
+public static final Relationship REL_SUCCESS = new Relationship.Builder()
+.description("All successful FlowFiles are routed to this 
relationship").name("success").build();
+
+private final static Set relationships = 
Collections.singleton(REL_SUCCESS);
+
+
+public static final AllowableValue FILTER_MODE_VALUE_RETAIN = new 
AllowableValue(
+"RETAIN",

Review Comment:
   No problem @mosermw, I should have followed up earlier on the pull request 
for the main branch.
   
   Under the circumstances, it sounds like it may be best to move forward with 
this pull request after you have completed the review, and then address the 
naming convention questions in a new Jira issue, with pull requests to both 
branches.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscr...@nifi.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org



Re: [PR] NIFI-12386 Adds processor FilterAttribute (Java 1.8 / NiFi 1.x) [nifi]

2023-11-30 Thread via GitHub


mosermw commented on code in PR #8064:
URL: https://github.com/apache/nifi/pull/8064#discussion_r1411216311


##
nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/FilterAttribute.java:
##
@@ -0,0 +1,273 @@
+/*
+ * 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.processors.standard;
+
+import org.apache.nifi.annotation.behavior.DefaultRunDuration;
+import org.apache.nifi.annotation.behavior.InputRequirement;
+import org.apache.nifi.annotation.behavior.SideEffectFree;
+import org.apache.nifi.annotation.behavior.SupportsBatching;
+import org.apache.nifi.annotation.documentation.CapabilityDescription;
+import org.apache.nifi.annotation.documentation.Tags;
+import org.apache.nifi.annotation.lifecycle.OnScheduled;
+import org.apache.nifi.components.AllowableValue;
+import org.apache.nifi.components.PropertyDescriptor;
+import org.apache.nifi.expression.ExpressionLanguageScope;
+import org.apache.nifi.flowfile.FlowFile;
+import org.apache.nifi.processor.AbstractProcessor;
+import org.apache.nifi.processor.ProcessContext;
+import org.apache.nifi.processor.ProcessSession;
+import org.apache.nifi.processor.Relationship;
+import org.apache.nifi.processor.exception.ProcessException;
+import org.apache.nifi.processor.util.StandardValidators;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+import java.util.function.Predicate;
+import java.util.regex.Pattern;
+import java.util.stream.Collectors;
+
+@SideEffectFree
+@SupportsBatching(defaultDuration = DefaultRunDuration.TWENTY_FIVE_MILLIS)
+@InputRequirement(InputRequirement.Requirement.INPUT_REQUIRED)
+@Tags({"attributes", "modification", "filter", "retain", "remove", "delete", 
"regex", "regular expression", "Attribute Expression Language"})
+@CapabilityDescription("Filters the attributes of a FlowFile by retaining 
specified attributes and removing the rest or by removing specified attributes 
and retaining the rest.")
+public class FilterAttribute extends AbstractProcessor {
+
+public static final Relationship REL_SUCCESS = new Relationship.Builder()
+.description("All successful FlowFiles are routed to this 
relationship").name("success").build();
+
+private final static Set relationships = 
Collections.singleton(REL_SUCCESS);
+
+
+public static final AllowableValue FILTER_MODE_VALUE_RETAIN = new 
AllowableValue(
+"RETAIN",

Review Comment:
   @exceptionfactory  I didn't realize you had more comments and I already 
merged #8049 to main.  We should make sure whatever changes made to the 
support/nifi-1.x branch in this PR make their way into main, especially any 
changes to PropertyDescriptors.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscr...@nifi.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org



Re: [PR] NIFI-12386 Adds processor FilterAttribute (Java 1.8 / NiFi 1.x) [nifi]

2023-11-30 Thread via GitHub


exceptionfactory commented on code in PR #8064:
URL: https://github.com/apache/nifi/pull/8064#discussion_r1411211679


##
nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/FilterAttribute.java:
##
@@ -0,0 +1,273 @@
+/*
+ * 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.processors.standard;
+
+import org.apache.nifi.annotation.behavior.DefaultRunDuration;
+import org.apache.nifi.annotation.behavior.InputRequirement;
+import org.apache.nifi.annotation.behavior.SideEffectFree;
+import org.apache.nifi.annotation.behavior.SupportsBatching;
+import org.apache.nifi.annotation.documentation.CapabilityDescription;
+import org.apache.nifi.annotation.documentation.Tags;
+import org.apache.nifi.annotation.lifecycle.OnScheduled;
+import org.apache.nifi.components.AllowableValue;
+import org.apache.nifi.components.PropertyDescriptor;
+import org.apache.nifi.expression.ExpressionLanguageScope;
+import org.apache.nifi.flowfile.FlowFile;
+import org.apache.nifi.processor.AbstractProcessor;
+import org.apache.nifi.processor.ProcessContext;
+import org.apache.nifi.processor.ProcessSession;
+import org.apache.nifi.processor.Relationship;
+import org.apache.nifi.processor.exception.ProcessException;
+import org.apache.nifi.processor.util.StandardValidators;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+import java.util.function.Predicate;
+import java.util.regex.Pattern;
+import java.util.stream.Collectors;
+
+@SideEffectFree
+@SupportsBatching(defaultDuration = DefaultRunDuration.TWENTY_FIVE_MILLIS)
+@InputRequirement(InputRequirement.Requirement.INPUT_REQUIRED)
+@Tags({"attributes", "modification", "filter", "retain", "remove", "delete", 
"regex", "regular expression", "Attribute Expression Language"})
+@CapabilityDescription("Filters the attributes of a FlowFile by retaining 
specified attributes and removing the rest or by removing specified attributes 
and retaining the rest.")
+public class FilterAttribute extends AbstractProcessor {
+
+public static final Relationship REL_SUCCESS = new Relationship.Builder()
+.description("All successful FlowFiles are routed to this 
relationship").name("success").build();
+
+private final static Set relationships = 
Collections.singleton(REL_SUCCESS);
+
+
+public static final AllowableValue FILTER_MODE_VALUE_RETAIN = new 
AllowableValue(
+"RETAIN",
+"Retain",
+"Retains only the attributes matching the filter, all other 
attributes are removed."
+);
+
+public static final AllowableValue FILTER_MODE_VALUE_REMOVE = new 
AllowableValue(
+"REMOVE",
+"Remove",
+"Removes the attributes matching the filter, all other attributes 
are retained."
+);
+
+public static final PropertyDescriptor FILTER_MODE = new 
PropertyDescriptor.Builder()
+.name("FILTER_MODE")
+.displayName("Filter mode")

Review Comment:
   That's true, sorry for not flagging this earlier. We should make the change 
on the main branch as well, then we can make sure both are aligned for the next 
releases.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscr...@nifi.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org



Re: [PR] NIFI-12386 Adds processor FilterAttribute (Java 1.8 / NiFi 1.x) [nifi]

2023-11-30 Thread via GitHub


exceptionfactory commented on code in PR #8064:
URL: https://github.com/apache/nifi/pull/8064#discussion_r1411210531


##
nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/FilterAttribute.java:
##
@@ -0,0 +1,273 @@
+/*
+ * 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.processors.standard;
+
+import org.apache.nifi.annotation.behavior.DefaultRunDuration;
+import org.apache.nifi.annotation.behavior.InputRequirement;
+import org.apache.nifi.annotation.behavior.SideEffectFree;
+import org.apache.nifi.annotation.behavior.SupportsBatching;
+import org.apache.nifi.annotation.documentation.CapabilityDescription;
+import org.apache.nifi.annotation.documentation.Tags;
+import org.apache.nifi.annotation.lifecycle.OnScheduled;
+import org.apache.nifi.components.AllowableValue;
+import org.apache.nifi.components.PropertyDescriptor;
+import org.apache.nifi.expression.ExpressionLanguageScope;
+import org.apache.nifi.flowfile.FlowFile;
+import org.apache.nifi.processor.AbstractProcessor;
+import org.apache.nifi.processor.ProcessContext;
+import org.apache.nifi.processor.ProcessSession;
+import org.apache.nifi.processor.Relationship;
+import org.apache.nifi.processor.exception.ProcessException;
+import org.apache.nifi.processor.util.StandardValidators;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+import java.util.function.Predicate;
+import java.util.regex.Pattern;
+import java.util.stream.Collectors;
+
+@SideEffectFree
+@SupportsBatching(defaultDuration = DefaultRunDuration.TWENTY_FIVE_MILLIS)
+@InputRequirement(InputRequirement.Requirement.INPUT_REQUIRED)
+@Tags({"attributes", "modification", "filter", "retain", "remove", "delete", 
"regex", "regular expression", "Attribute Expression Language"})
+@CapabilityDescription("Filters the attributes of a FlowFile by retaining 
specified attributes and removing the rest or by removing specified attributes 
and retaining the rest.")
+public class FilterAttribute extends AbstractProcessor {
+
+public static final Relationship REL_SUCCESS = new Relationship.Builder()
+.description("All successful FlowFiles are routed to this 
relationship").name("success").build();
+
+private final static Set relationships = 
Collections.singleton(REL_SUCCESS);
+
+
+public static final AllowableValue FILTER_MODE_VALUE_RETAIN = new 
AllowableValue(
+"RETAIN",
+"Retain",
+"Retains only the attributes matching the filter, all other 
attributes are removed."
+);
+
+public static final AllowableValue FILTER_MODE_VALUE_REMOVE = new 
AllowableValue(
+"REMOVE",
+"Remove",
+"Removes the attributes matching the filter, all other attributes 
are retained."
+);
+
+public static final PropertyDescriptor FILTER_MODE = new 
PropertyDescriptor.Builder()
+.name("FILTER_MODE")
+.displayName("Filter mode")
+.description("Specifies the strategy to apply on filtered 
attributes. Either 'Remove' or 'Retain' only the matching attributes.")
+.required(true)
+.allowableValues(FILTER_MODE_VALUE_RETAIN, 
FILTER_MODE_VALUE_REMOVE)
+.expressionLanguageSupported(ExpressionLanguageScope.NONE)
+.defaultValue(FILTER_MODE_VALUE_RETAIN.getValue())
+.build();
+
+public static final AllowableValue MATCHING_STRATEGY_VALUE_ENUMERATION = 
new AllowableValue(
+"ENUMERATION",
+"Enumerate attributes",
+"Provides a set of attribute keys to filter for, separated by a 
comma delimiter ','."
+);
+
+public static final AllowableValue MATCHING_STRATEGY_VALUE_REGEX = new 
AllowableValue(
+"REGEX",
+"Use regular expression",
+"Provides a regular expression to match keys of attributes to 
filter for."
+);
+
+public static final PropertyDescriptor MATCHING_STRATEGY = new 
PropertyDescriptor.Builder()
+.name("MATCHING_STRATEGY")
+.displayName("Attribute matching 

Re: [PR] NIFI-12386 Adds processor FilterAttribute (Java 1.8 / NiFi 1.x) [nifi]

2023-11-30 Thread via GitHub


exceptionfactory commented on code in PR #8064:
URL: https://github.com/apache/nifi/pull/8064#discussion_r1411197372


##
nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/FilterAttribute.java:
##
@@ -0,0 +1,273 @@
+/*
+ * 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.processors.standard;
+
+import org.apache.nifi.annotation.behavior.DefaultRunDuration;
+import org.apache.nifi.annotation.behavior.InputRequirement;
+import org.apache.nifi.annotation.behavior.SideEffectFree;
+import org.apache.nifi.annotation.behavior.SupportsBatching;
+import org.apache.nifi.annotation.documentation.CapabilityDescription;
+import org.apache.nifi.annotation.documentation.Tags;
+import org.apache.nifi.annotation.lifecycle.OnScheduled;
+import org.apache.nifi.components.AllowableValue;
+import org.apache.nifi.components.PropertyDescriptor;
+import org.apache.nifi.expression.ExpressionLanguageScope;
+import org.apache.nifi.flowfile.FlowFile;
+import org.apache.nifi.processor.AbstractProcessor;
+import org.apache.nifi.processor.ProcessContext;
+import org.apache.nifi.processor.ProcessSession;
+import org.apache.nifi.processor.Relationship;
+import org.apache.nifi.processor.exception.ProcessException;
+import org.apache.nifi.processor.util.StandardValidators;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+import java.util.function.Predicate;
+import java.util.regex.Pattern;
+import java.util.stream.Collectors;
+
+@SideEffectFree
+@SupportsBatching(defaultDuration = DefaultRunDuration.TWENTY_FIVE_MILLIS)
+@InputRequirement(InputRequirement.Requirement.INPUT_REQUIRED)
+@Tags({"attributes", "modification", "filter", "retain", "remove", "delete", 
"regex", "regular expression", "Attribute Expression Language"})
+@CapabilityDescription("Filters the attributes of a FlowFile by retaining 
specified attributes and removing the rest or by removing specified attributes 
and retaining the rest.")
+public class FilterAttribute extends AbstractProcessor {
+
+public static final Relationship REL_SUCCESS = new Relationship.Builder()
+.description("All successful FlowFiles are routed to this 
relationship").name("success").build();
+
+private final static Set relationships = 
Collections.singleton(REL_SUCCESS);
+
+
+public static final AllowableValue FILTER_MODE_VALUE_RETAIN = new 
AllowableValue(
+"RETAIN",
+"Retain",
+"Retains only the attributes matching the filter, all other 
attributes are removed."
+);
+
+public static final AllowableValue FILTER_MODE_VALUE_REMOVE = new 
AllowableValue(
+"REMOVE",
+"Remove",
+"Removes the attributes matching the filter, all other attributes 
are retained."
+);
+
+public static final PropertyDescriptor FILTER_MODE = new 
PropertyDescriptor.Builder()
+.name("FILTER_MODE")
+.displayName("Filter mode")
+.description("Specifies the strategy to apply on filtered 
attributes. Either 'Remove' or 'Retain' only the matching attributes.")
+.required(true)
+.allowableValues(FILTER_MODE_VALUE_RETAIN, 
FILTER_MODE_VALUE_REMOVE)
+.expressionLanguageSupported(ExpressionLanguageScope.NONE)
+.defaultValue(FILTER_MODE_VALUE_RETAIN.getValue())
+.build();
+
+public static final AllowableValue MATCHING_STRATEGY_VALUE_ENUMERATION = 
new AllowableValue(
+"ENUMERATION",
+"Enumerate attributes",
+"Provides a set of attribute keys to filter for, separated by a 
comma delimiter ','."
+);
+
+public static final AllowableValue MATCHING_STRATEGY_VALUE_REGEX = new 
AllowableValue(
+"REGEX",
+"Use regular expression",
+"Provides a regular expression to match keys of attributes to 
filter for."
+);
+
+public static final PropertyDescriptor MATCHING_STRATEGY = new 
PropertyDescriptor.Builder()
+.name("MATCHING_STRATEGY")
+.displayName("Attribute matching 

Re: [PR] NIFI-12386 Adds processor FilterAttribute (Java 1.8 / NiFi 1.x) [nifi]

2023-11-30 Thread via GitHub


EndzeitBegins commented on code in PR #8064:
URL: https://github.com/apache/nifi/pull/8064#discussion_r1411204064


##
nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/FilterAttribute.java:
##
@@ -0,0 +1,273 @@
+/*
+ * 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.processors.standard;
+
+import org.apache.nifi.annotation.behavior.DefaultRunDuration;
+import org.apache.nifi.annotation.behavior.InputRequirement;
+import org.apache.nifi.annotation.behavior.SideEffectFree;
+import org.apache.nifi.annotation.behavior.SupportsBatching;
+import org.apache.nifi.annotation.documentation.CapabilityDescription;
+import org.apache.nifi.annotation.documentation.Tags;
+import org.apache.nifi.annotation.lifecycle.OnScheduled;
+import org.apache.nifi.components.AllowableValue;
+import org.apache.nifi.components.PropertyDescriptor;
+import org.apache.nifi.expression.ExpressionLanguageScope;
+import org.apache.nifi.flowfile.FlowFile;
+import org.apache.nifi.processor.AbstractProcessor;
+import org.apache.nifi.processor.ProcessContext;
+import org.apache.nifi.processor.ProcessSession;
+import org.apache.nifi.processor.Relationship;
+import org.apache.nifi.processor.exception.ProcessException;
+import org.apache.nifi.processor.util.StandardValidators;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+import java.util.function.Predicate;
+import java.util.regex.Pattern;
+import java.util.stream.Collectors;
+
+@SideEffectFree
+@SupportsBatching(defaultDuration = DefaultRunDuration.TWENTY_FIVE_MILLIS)
+@InputRequirement(InputRequirement.Requirement.INPUT_REQUIRED)
+@Tags({"attributes", "modification", "filter", "retain", "remove", "delete", 
"regex", "regular expression", "Attribute Expression Language"})
+@CapabilityDescription("Filters the attributes of a FlowFile by retaining 
specified attributes and removing the rest or by removing specified attributes 
and retaining the rest.")
+public class FilterAttribute extends AbstractProcessor {
+
+public static final Relationship REL_SUCCESS = new Relationship.Builder()
+.description("All successful FlowFiles are routed to this 
relationship").name("success").build();
+
+private final static Set relationships = 
Collections.singleton(REL_SUCCESS);
+
+
+public static final AllowableValue FILTER_MODE_VALUE_RETAIN = new 
AllowableValue(
+"RETAIN",
+"Retain",
+"Retains only the attributes matching the filter, all other 
attributes are removed."
+);
+
+public static final AllowableValue FILTER_MODE_VALUE_REMOVE = new 
AllowableValue(
+"REMOVE",
+"Remove",
+"Removes the attributes matching the filter, all other attributes 
are retained."
+);
+
+public static final PropertyDescriptor FILTER_MODE = new 
PropertyDescriptor.Builder()
+.name("FILTER_MODE")
+.displayName("Filter mode")

Review Comment:
   I'm not against this suggestion, but I think the name should align with the 
one used for NiFi 2.0 / branch `main`. Thus, we either have to keep this as is 
or push another commit to `main`, changing the name there as well, before the 
next release is made, to avoid breaking changes between versions.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscr...@nifi.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org



Re: [PR] NIFI-12386 Adds processor FilterAttribute (Java 1.8 / NiFi 1.x) [nifi]

2023-11-30 Thread via GitHub


EndzeitBegins commented on code in PR #8064:
URL: https://github.com/apache/nifi/pull/8064#discussion_r1411201844


##
nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/FilterAttribute.java:
##
@@ -0,0 +1,273 @@
+/*
+ * 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.processors.standard;
+
+import org.apache.nifi.annotation.behavior.DefaultRunDuration;
+import org.apache.nifi.annotation.behavior.InputRequirement;
+import org.apache.nifi.annotation.behavior.SideEffectFree;
+import org.apache.nifi.annotation.behavior.SupportsBatching;
+import org.apache.nifi.annotation.documentation.CapabilityDescription;
+import org.apache.nifi.annotation.documentation.Tags;
+import org.apache.nifi.annotation.lifecycle.OnScheduled;
+import org.apache.nifi.components.AllowableValue;
+import org.apache.nifi.components.PropertyDescriptor;
+import org.apache.nifi.expression.ExpressionLanguageScope;
+import org.apache.nifi.flowfile.FlowFile;
+import org.apache.nifi.processor.AbstractProcessor;
+import org.apache.nifi.processor.ProcessContext;
+import org.apache.nifi.processor.ProcessSession;
+import org.apache.nifi.processor.Relationship;
+import org.apache.nifi.processor.exception.ProcessException;
+import org.apache.nifi.processor.util.StandardValidators;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+import java.util.function.Predicate;
+import java.util.regex.Pattern;
+import java.util.stream.Collectors;
+
+@SideEffectFree
+@SupportsBatching(defaultDuration = DefaultRunDuration.TWENTY_FIVE_MILLIS)
+@InputRequirement(InputRequirement.Requirement.INPUT_REQUIRED)
+@Tags({"attributes", "modification", "filter", "retain", "remove", "delete", 
"regex", "regular expression", "Attribute Expression Language"})
+@CapabilityDescription("Filters the attributes of a FlowFile by retaining 
specified attributes and removing the rest or by removing specified attributes 
and retaining the rest.")
+public class FilterAttribute extends AbstractProcessor {
+
+public static final Relationship REL_SUCCESS = new Relationship.Builder()
+.description("All successful FlowFiles are routed to this 
relationship").name("success").build();
+
+private final static Set relationships = 
Collections.singleton(REL_SUCCESS);
+
+
+public static final AllowableValue FILTER_MODE_VALUE_RETAIN = new 
AllowableValue(
+"RETAIN",
+"Retain",
+"Retains only the attributes matching the filter, all other 
attributes are removed."
+);
+
+public static final AllowableValue FILTER_MODE_VALUE_REMOVE = new 
AllowableValue(
+"REMOVE",
+"Remove",
+"Removes the attributes matching the filter, all other attributes 
are retained."
+);
+
+public static final PropertyDescriptor FILTER_MODE = new 
PropertyDescriptor.Builder()
+.name("FILTER_MODE")
+.displayName("Filter mode")
+.description("Specifies the strategy to apply on filtered 
attributes. Either 'Remove' or 'Retain' only the matching attributes.")
+.required(true)
+.allowableValues(FILTER_MODE_VALUE_RETAIN, 
FILTER_MODE_VALUE_REMOVE)
+.expressionLanguageSupported(ExpressionLanguageScope.NONE)
+.defaultValue(FILTER_MODE_VALUE_RETAIN.getValue())
+.build();
+
+public static final AllowableValue MATCHING_STRATEGY_VALUE_ENUMERATION = 
new AllowableValue(
+"ENUMERATION",
+"Enumerate attributes",
+"Provides a set of attribute keys to filter for, separated by a 
comma delimiter ','."
+);
+
+public static final AllowableValue MATCHING_STRATEGY_VALUE_REGEX = new 
AllowableValue(
+"REGEX",
+"Use regular expression",
+"Provides a regular expression to match keys of attributes to 
filter for."
+);
+
+public static final PropertyDescriptor MATCHING_STRATEGY = new 
PropertyDescriptor.Builder()
+.name("MATCHING_STRATEGY")
+.displayName("Attribute matching 

Re: [PR] NIFI-12386 Adds processor FilterAttribute (Java 1.8 / NiFi 1.x) [nifi]

2023-11-30 Thread via GitHub


exceptionfactory commented on code in PR #8064:
URL: https://github.com/apache/nifi/pull/8064#discussion_r1411195445


##
nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/FilterAttribute.java:
##
@@ -0,0 +1,273 @@
+/*
+ * 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.processors.standard;
+
+import org.apache.nifi.annotation.behavior.DefaultRunDuration;
+import org.apache.nifi.annotation.behavior.InputRequirement;
+import org.apache.nifi.annotation.behavior.SideEffectFree;
+import org.apache.nifi.annotation.behavior.SupportsBatching;
+import org.apache.nifi.annotation.documentation.CapabilityDescription;
+import org.apache.nifi.annotation.documentation.Tags;
+import org.apache.nifi.annotation.lifecycle.OnScheduled;
+import org.apache.nifi.components.AllowableValue;
+import org.apache.nifi.components.PropertyDescriptor;
+import org.apache.nifi.expression.ExpressionLanguageScope;
+import org.apache.nifi.flowfile.FlowFile;
+import org.apache.nifi.processor.AbstractProcessor;
+import org.apache.nifi.processor.ProcessContext;
+import org.apache.nifi.processor.ProcessSession;
+import org.apache.nifi.processor.Relationship;
+import org.apache.nifi.processor.exception.ProcessException;
+import org.apache.nifi.processor.util.StandardValidators;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+import java.util.function.Predicate;
+import java.util.regex.Pattern;
+import java.util.stream.Collectors;
+
+@SideEffectFree
+@SupportsBatching(defaultDuration = DefaultRunDuration.TWENTY_FIVE_MILLIS)
+@InputRequirement(InputRequirement.Requirement.INPUT_REQUIRED)
+@Tags({"attributes", "modification", "filter", "retain", "remove", "delete", 
"regex", "regular expression", "Attribute Expression Language"})
+@CapabilityDescription("Filters the attributes of a FlowFile by retaining 
specified attributes and removing the rest or by removing specified attributes 
and retaining the rest.")
+public class FilterAttribute extends AbstractProcessor {
+
+public static final Relationship REL_SUCCESS = new Relationship.Builder()
+.description("All successful FlowFiles are routed to this 
relationship").name("success").build();
+
+private final static Set relationships = 
Collections.singleton(REL_SUCCESS);
+
+
+public static final AllowableValue FILTER_MODE_VALUE_RETAIN = new 
AllowableValue(
+"RETAIN",
+"Retain",
+"Retains only the attributes matching the filter, all other 
attributes are removed."
+);
+
+public static final AllowableValue FILTER_MODE_VALUE_REMOVE = new 
AllowableValue(
+"REMOVE",
+"Remove",
+"Removes the attributes matching the filter, all other attributes 
are retained."
+);
+
+public static final PropertyDescriptor FILTER_MODE = new 
PropertyDescriptor.Builder()
+.name("FILTER_MODE")
+.displayName("Filter mode")
+.description("Specifies the strategy to apply on filtered 
attributes. Either 'Remove' or 'Retain' only the matching attributes.")
+.required(true)
+.allowableValues(FILTER_MODE_VALUE_RETAIN, 
FILTER_MODE_VALUE_REMOVE)
+.expressionLanguageSupported(ExpressionLanguageScope.NONE)
+.defaultValue(FILTER_MODE_VALUE_RETAIN.getValue())
+.build();
+
+public static final AllowableValue MATCHING_STRATEGY_VALUE_ENUMERATION = 
new AllowableValue(
+"ENUMERATION",
+"Enumerate attributes",
+"Provides a set of attribute keys to filter for, separated by a 
comma delimiter ','."
+);
+
+public static final AllowableValue MATCHING_STRATEGY_VALUE_REGEX = new 
AllowableValue(
+"REGEX",
+"Use regular expression",
+"Provides a regular expression to match keys of attributes to 
filter for."
+);
+
+public static final PropertyDescriptor MATCHING_STRATEGY = new 
PropertyDescriptor.Builder()
+.name("MATCHING_STRATEGY")
+.displayName("Attribute matching 

Re: [PR] NIFI-12386 Adds processor FilterAttribute (Java 1.8 / NiFi 1.x) [nifi]

2023-11-30 Thread via GitHub


EndzeitBegins commented on PR #8064:
URL: https://github.com/apache/nifi/pull/8064#issuecomment-1834442892

   No worries, I just wasn't sure you're aware there is a backport available. 
Thanks for your work. 


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscr...@nifi.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org



Re: [PR] NIFI-12386 Adds processor FilterAttribute (Java 1.8 / NiFi 1.x) [nifi]

2023-11-30 Thread via GitHub


mosermw commented on PR #8064:
URL: https://github.com/apache/nifi/pull/8064#issuecomment-1834438804

   Yes, sorry, I meant to note that I'm testing this one now.  The code looks 
good, just doing a final test.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscr...@nifi.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org



Re: [PR] NIFI-12386 Adds processor FilterAttribute (Java 1.8 / NiFi 1.x) [nifi]

2023-11-30 Thread via GitHub


EndzeitBegins commented on PR #8064:
URL: https://github.com/apache/nifi/pull/8064#issuecomment-1834427491

   Thank you for reviewing and merging #8049, @mosermw.
   
   Can we backport the new processor for the 1.x track as well? I would 
appreciate a review as you're familiar with the implementation on `main` 
already. 
   
   As the `main` branch has diverted quite a lot from 1.x already, I backported 
the changes manually. Besides some changes required for compatibility with Java 
1.8, the implementations should align. 


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscr...@nifi.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org