[
https://issues.apache.org/jira/browse/NIFIREG-190?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16574921#comment-16574921
]
ASF GitHub Bot commented on NIFIREG-190:
----------------------------------------
Github user kevdoran commented on a diff in the pull request:
https://github.com/apache/nifi-registry/pull/133#discussion_r208954806
--- Diff:
nifi-registry-framework/src/main/java/org/apache/nifi/registry/provider/hook/AbstractHookProvider.java
---
@@ -0,0 +1,70 @@
+/*
+ * 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.registry.provider.hook;
+
+import org.apache.nifi.registry.hook.Event;
+import org.apache.nifi.registry.hook.EventHookException;
+import org.apache.nifi.registry.hook.EventHookProvider;
+import org.apache.nifi.registry.hook.EventType;
+import org.apache.nifi.registry.provider.ProviderConfigurationContext;
+import org.apache.nifi.registry.provider.ProviderCreationException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.util.CollectionUtils;
+
+import java.util.List;
+
+/**
+ * An AbstractHookProvider class that serves as a place to keep common
Event Hook implementation details.
+ */
+public abstract class AbstractHookProvider
+ implements EventHookProvider {
+
+ static final Logger LOGGER =
LoggerFactory.getLogger(AbstractHookProvider.class);
+
+ static final String EVENT_WHITELIST = "Event Whitelist";
+ protected List<EventType> whiteListEvents = null;
+
+ @Override
+ public void handle(Event event) throws EventHookException {
+ // Abstract event handling logic can be implemented here.
+ }
+
+ @Override
+ public void onConfigured(ProviderConfigurationContext
configurationContext) throws ProviderCreationException {
+
+ }
+
+ /**
+ * Determines if the Event should be handled or ignored based on the
user configured Event Whitelist property
+ *
+ * @param event
+ * Event that has been passed to the provider by the framework.
+ *
+ * @return
+ * True if the event should be handled by this provider and false
otherwise.
+ */
+ public boolean handleEvent(Event event) {
--- End diff --
As commented on the PR, this should perhaps be implemented differently. But
if going with the Abstract base class approach, I would change the signature of
this method to:
```
protected boolean shouldHandle(Event event)
// or
protected boolean shouldHandle(EventType eventType)
```
> Support for Event Whitelisting in the Registry Event Hooks
> ----------------------------------------------------------
>
> Key: NIFIREG-190
> URL: https://issues.apache.org/jira/browse/NIFIREG-190
> Project: NiFi Registry
> Issue Type: New Feature
> Affects Versions: 0.2.0
> Reporter: Jeremy Dyer
> Assignee: Jeremy Dyer
> Priority: Major
> Fix For: 0.3.0
>
>
> Today when an event hook is configured it will be invoked for all of the NiFi
> Registry events. While a user can parse the arguments in the script and
> manually write scripts which ignore certain events it makes more sense to
> provide this event whitelisting the the registry itself.
> I propose adding a new property called something like "Event Whitelist" to
> the current configuration logic. If this property is not present things
> should continue to operate just as they do now, AKA the script is sent all of
> the events, if the property is specified it should contain a comma delimited
> list of events that the hook provider should be triggered for.
> This will be extremely useful when providers that do not provider any sort of
> filtering logic like the script hook provider come along.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)