[jira] [Commented] (NIFI-1002) support for Listen WebSocket processor
[ https://issues.apache.org/jira/browse/NIFI-1002?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15671529#comment-15671529 ] ASF subversion and git services commented on NIFI-1002: --- Commit f1eca0a09a887620da4251468178ee3a3e56faf5 in nifi's branch refs/heads/master from [~ozhurakousky] [ https://git-wip-us.apache.org/repos/asf?p=nifi.git;h=f1eca0a ] NIFI-1002 added L entries for Bouncy Castle This closes #1235 > support for Listen WebSocket processor > --- > > Key: NIFI-1002 > URL: https://issues.apache.org/jira/browse/NIFI-1002 > Project: Apache NiFi > Issue Type: New Feature > Components: Extensions >Affects Versions: 0.4.0 >Reporter: sumanth chinthagunta >Assignee: Koji Kawamura > Labels: newbie > Fix For: 1.1.0 > > > A WebSocket listen processor will be helpful for IoT data ingestion. > I am playing with embedded Vert.X for WebSocket and also ability to put > FlowFiles back to WebSocket client via Vert.X EventBus. > https://github.com/xmlking/nifi-websocket > I am new to NiFi. any advise can be helpful. > PS: I feel forcing Interfaces for Controller Services is unnecessary as in > many cases Controller Services are only used by a set of Processors and > developers usually bundle them together. > -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (NIFI-1002) support for Listen WebSocket processor
[ https://issues.apache.org/jira/browse/NIFI-1002?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15671533#comment-15671533 ] ASF GitHub Bot commented on NIFI-1002: -- Github user asfgit closed the pull request at: https://github.com/apache/nifi/pull/1235 > support for Listen WebSocket processor > --- > > Key: NIFI-1002 > URL: https://issues.apache.org/jira/browse/NIFI-1002 > Project: Apache NiFi > Issue Type: New Feature > Components: Extensions >Affects Versions: 0.4.0 >Reporter: sumanth chinthagunta >Assignee: Koji Kawamura > Labels: newbie > Fix For: 1.1.0 > > > A WebSocket listen processor will be helpful for IoT data ingestion. > I am playing with embedded Vert.X for WebSocket and also ability to put > FlowFiles back to WebSocket client via Vert.X EventBus. > https://github.com/xmlking/nifi-websocket > I am new to NiFi. any advise can be helpful. > PS: I feel forcing Interfaces for Controller Services is unnecessary as in > many cases Controller Services are only used by a set of Processors and > developers usually bundle them together. > -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (NIFI-1002) support for Listen WebSocket processor
[ https://issues.apache.org/jira/browse/NIFI-1002?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15671527#comment-15671527 ] ASF GitHub Bot commented on NIFI-1002: -- Github user mattyb149 commented on the issue: https://github.com/apache/nifi/pull/1235 +1 LGTM, merging to master > support for Listen WebSocket processor > --- > > Key: NIFI-1002 > URL: https://issues.apache.org/jira/browse/NIFI-1002 > Project: Apache NiFi > Issue Type: New Feature > Components: Extensions >Affects Versions: 0.4.0 >Reporter: sumanth chinthagunta >Assignee: Koji Kawamura > Labels: newbie > Fix For: 1.1.0 > > > A WebSocket listen processor will be helpful for IoT data ingestion. > I am playing with embedded Vert.X for WebSocket and also ability to put > FlowFiles back to WebSocket client via Vert.X EventBus. > https://github.com/xmlking/nifi-websocket > I am new to NiFi. any advise can be helpful. > PS: I feel forcing Interfaces for Controller Services is unnecessary as in > many cases Controller Services are only used by a set of Processors and > developers usually bundle them together. > -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (NIFI-1002) support for Listen WebSocket processor
[ https://issues.apache.org/jira/browse/NIFI-1002?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15671042#comment-15671042 ] ASF GitHub Bot commented on NIFI-1002: -- Github user asfgit closed the pull request at: https://github.com/apache/nifi/pull/1231 > support for Listen WebSocket processor > --- > > Key: NIFI-1002 > URL: https://issues.apache.org/jira/browse/NIFI-1002 > Project: Apache NiFi > Issue Type: New Feature > Components: Extensions >Affects Versions: 0.4.0 >Reporter: sumanth chinthagunta >Assignee: Koji Kawamura > Labels: newbie > Fix For: 1.1.0 > > > A WebSocket listen processor will be helpful for IoT data ingestion. > I am playing with embedded Vert.X for WebSocket and also ability to put > FlowFiles back to WebSocket client via Vert.X EventBus. > https://github.com/xmlking/nifi-websocket > I am new to NiFi. any advise can be helpful. > PS: I feel forcing Interfaces for Controller Services is unnecessary as in > many cases Controller Services are only used by a set of Processors and > developers usually bundle them together. > -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (NIFI-1002) support for Listen WebSocket processor
[ https://issues.apache.org/jira/browse/NIFI-1002?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15671039#comment-15671039 ] ASF subversion and git services commented on NIFI-1002: --- Commit 31ea50bce9c2faa012a47f05218b74db99b5d197 in nifi's branch refs/heads/master from [~ijokarumawak] [ https://git-wip-us.apache.org/repos/asf?p=nifi.git;h=31ea50b ] NIFI-1002: Added WebSocket support. - Added LICENSE and NOTICE files. - Fixed UnitTest errors. This closes #1231 > support for Listen WebSocket processor > --- > > Key: NIFI-1002 > URL: https://issues.apache.org/jira/browse/NIFI-1002 > Project: Apache NiFi > Issue Type: New Feature > Components: Extensions >Affects Versions: 0.4.0 >Reporter: sumanth chinthagunta >Assignee: Koji Kawamura > Labels: newbie > Fix For: 1.1.0 > > > A WebSocket listen processor will be helpful for IoT data ingestion. > I am playing with embedded Vert.X for WebSocket and also ability to put > FlowFiles back to WebSocket client via Vert.X EventBus. > https://github.com/xmlking/nifi-websocket > I am new to NiFi. any advise can be helpful. > PS: I feel forcing Interfaces for Controller Services is unnecessary as in > many cases Controller Services are only used by a set of Processors and > developers usually bundle them together. > -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (NIFI-1002) support for Listen WebSocket processor
[ https://issues.apache.org/jira/browse/NIFI-1002?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15670346#comment-15670346 ] ASF GitHub Bot commented on NIFI-1002: -- Github user olegz commented on the issue: https://github.com/apache/nifi/pull/1231 Reviewing > support for Listen WebSocket processor > --- > > Key: NIFI-1002 > URL: https://issues.apache.org/jira/browse/NIFI-1002 > Project: Apache NiFi > Issue Type: New Feature > Components: Extensions >Affects Versions: 0.4.0 >Reporter: sumanth chinthagunta >Assignee: Koji Kawamura > Labels: newbie > Fix For: 1.1.0 > > > A WebSocket listen processor will be helpful for IoT data ingestion. > I am playing with embedded Vert.X for WebSocket and also ability to put > FlowFiles back to WebSocket client via Vert.X EventBus. > https://github.com/xmlking/nifi-websocket > I am new to NiFi. any advise can be helpful. > PS: I feel forcing Interfaces for Controller Services is unnecessary as in > many cases Controller Services are only used by a set of Processors and > developers usually bundle them together. > -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (NIFI-1002) support for Listen WebSocket processor
[ https://issues.apache.org/jira/browse/NIFI-1002?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15669421#comment-15669421 ] ASF GitHub Bot commented on NIFI-1002: -- GitHub user ijokarumawak opened a pull request: https://github.com/apache/nifi/pull/1231 NIFI-1002: Added WebSocket support. Thank you for submitting a contribution to Apache NiFi. In order to streamline the review of the contribution we ask you to ensure the following steps have been taken: ### For all changes: - [x] Is there a JIRA ticket associated with this PR? Is it referenced in the commit message? - [x] Does your PR title start with NIFI- where is the JIRA number you are trying to resolve? Pay particular attention to the hyphen "-" character. - [x] Has your PR been rebased against the latest commit within the target branch (typically master)? - [x] Is your initial contribution a single, squashed commit? ### For code changes: - [x] Have you ensured that the full suite of tests is executed via mvn -Pcontrib-check clean install at the root nifi folder? - [x] Have you written or updated unit tests to verify your changes? - [x] If adding new dependencies to the code, are these dependencies licensed in a way that is compatible for inclusion under [ASF 2.0](http://www.apache.org/legal/resolved.html#category-a)? - [x] If applicable, have you updated the LICENSE file, including the main LICENSE file under nifi-assembly? - [x] If applicable, have you updated the NOTICE file, including the main NOTICE file found under nifi-assembly? ### Note: Please ensure that once the PR is submitted, you check travis-ci for build issues and submit an update to your PR as soon as possible. - Added LICENSE and NOTICE files. - Fixed UnitTest errors. You can merge this pull request into a Git repository by running: $ git pull https://github.com/ijokarumawak/nifi nifi-1002-pr2 Alternatively you can review and apply these changes as the patch at: https://github.com/apache/nifi/pull/1231.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #1231 commit 6d160e913a273076a5cb197c8bf98ab46e89664b Author: Koji KawamuraDate: 2016-11-16T04:44:01Z NIFI-1002: Added WebSocket support. - Added LICENSE and NOTICE files. - Fixed UnitTest errors. > support for Listen WebSocket processor > --- > > Key: NIFI-1002 > URL: https://issues.apache.org/jira/browse/NIFI-1002 > Project: Apache NiFi > Issue Type: New Feature > Components: Extensions >Affects Versions: 0.4.0 >Reporter: sumanth chinthagunta >Assignee: Koji Kawamura > Labels: newbie > Fix For: 1.1.0 > > > A WebSocket listen processor will be helpful for IoT data ingestion. > I am playing with embedded Vert.X for WebSocket and also ability to put > FlowFiles back to WebSocket client via Vert.X EventBus. > https://github.com/xmlking/nifi-websocket > I am new to NiFi. any advise can be helpful. > PS: I feel forcing Interfaces for Controller Services is unnecessary as in > many cases Controller Services are only used by a set of Processors and > developers usually bundle them together. > -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (NIFI-1002) support for Listen WebSocket processor
[ https://issues.apache.org/jira/browse/NIFI-1002?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15668922#comment-15668922 ] ASF GitHub Bot commented on NIFI-1002: -- Github user ijokarumawak commented on the issue: https://github.com/apache/nifi/pull/1184 @olegz Thank you very much! I hope it will be helpful for users and willing to improve it over time! > support for Listen WebSocket processor > --- > > Key: NIFI-1002 > URL: https://issues.apache.org/jira/browse/NIFI-1002 > Project: Apache NiFi > Issue Type: New Feature > Components: Extensions >Affects Versions: 0.4.0 >Reporter: sumanth chinthagunta >Assignee: Koji Kawamura > Labels: newbie > Fix For: 1.1.0 > > > A WebSocket listen processor will be helpful for IoT data ingestion. > I am playing with embedded Vert.X for WebSocket and also ability to put > FlowFiles back to WebSocket client via Vert.X EventBus. > https://github.com/xmlking/nifi-websocket > I am new to NiFi. any advise can be helpful. > PS: I feel forcing Interfaces for Controller Services is unnecessary as in > many cases Controller Services are only used by a set of Processors and > developers usually bundle them together. > -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (NIFI-1002) support for Listen WebSocket processor
[ https://issues.apache.org/jira/browse/NIFI-1002?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15668874#comment-15668874 ] ASF subversion and git services commented on NIFI-1002: --- Commit 26a5881d21d4187abd5ec8a47895bbdf7c914857 in nifi's branch refs/heads/master from [~ijokarumawak] [ https://git-wip-us.apache.org/repos/asf?p=nifi.git;h=26a5881 ] NIFI-1002: Added WebSocket support. NIFI-1002: Added WebSocket support. - Reflecting review comments - Added displayName to peroperty descriptors NIFI-1002: Added WebSocket support. This closes #1184 - Reflecting review comments: - Removed unnecessary use of NarCloseable.withComponentNarLoader. - Removed intermediate on memory queue to make it simpler and more robust. Received messages in WebSocket layer now will be transferred to downstream relationships directly. > support for Listen WebSocket processor > --- > > Key: NIFI-1002 > URL: https://issues.apache.org/jira/browse/NIFI-1002 > Project: Apache NiFi > Issue Type: Improvement > Components: Extensions >Affects Versions: 0.4.0 >Reporter: sumanth chinthagunta >Assignee: Koji Kawamura >Priority: Minor > Labels: newbie > Fix For: 1.1.0 > > > A WebSocket listen processor will be helpful for IoT data ingestion. > I am playing with embedded Vert.X for WebSocket and also ability to put > FlowFiles back to WebSocket client via Vert.X EventBus. > https://github.com/xmlking/nifi-websocket > I am new to NiFi. any advise can be helpful. > PS: I feel forcing Interfaces for Controller Services is unnecessary as in > many cases Controller Services are only used by a set of Processors and > developers usually bundle them together. > -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (NIFI-1002) support for Listen WebSocket processor
[ https://issues.apache.org/jira/browse/NIFI-1002?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15668872#comment-15668872 ] ASF subversion and git services commented on NIFI-1002: --- Commit 26a5881d21d4187abd5ec8a47895bbdf7c914857 in nifi's branch refs/heads/master from [~ijokarumawak] [ https://git-wip-us.apache.org/repos/asf?p=nifi.git;h=26a5881 ] NIFI-1002: Added WebSocket support. NIFI-1002: Added WebSocket support. - Reflecting review comments - Added displayName to peroperty descriptors NIFI-1002: Added WebSocket support. This closes #1184 - Reflecting review comments: - Removed unnecessary use of NarCloseable.withComponentNarLoader. - Removed intermediate on memory queue to make it simpler and more robust. Received messages in WebSocket layer now will be transferred to downstream relationships directly. > support for Listen WebSocket processor > --- > > Key: NIFI-1002 > URL: https://issues.apache.org/jira/browse/NIFI-1002 > Project: Apache NiFi > Issue Type: Improvement > Components: Extensions >Affects Versions: 0.4.0 >Reporter: sumanth chinthagunta >Assignee: Koji Kawamura >Priority: Minor > Labels: newbie > Fix For: 1.1.0 > > > A WebSocket listen processor will be helpful for IoT data ingestion. > I am playing with embedded Vert.X for WebSocket and also ability to put > FlowFiles back to WebSocket client via Vert.X EventBus. > https://github.com/xmlking/nifi-websocket > I am new to NiFi. any advise can be helpful. > PS: I feel forcing Interfaces for Controller Services is unnecessary as in > many cases Controller Services are only used by a set of Processors and > developers usually bundle them together. > -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (NIFI-1002) support for Listen WebSocket processor
[ https://issues.apache.org/jira/browse/NIFI-1002?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15668877#comment-15668877 ] ASF GitHub Bot commented on NIFI-1002: -- Github user asfgit closed the pull request at: https://github.com/apache/nifi/pull/1184 > support for Listen WebSocket processor > --- > > Key: NIFI-1002 > URL: https://issues.apache.org/jira/browse/NIFI-1002 > Project: Apache NiFi > Issue Type: Improvement > Components: Extensions >Affects Versions: 0.4.0 >Reporter: sumanth chinthagunta >Assignee: Koji Kawamura >Priority: Minor > Labels: newbie > Fix For: 1.1.0 > > > A WebSocket listen processor will be helpful for IoT data ingestion. > I am playing with embedded Vert.X for WebSocket and also ability to put > FlowFiles back to WebSocket client via Vert.X EventBus. > https://github.com/xmlking/nifi-websocket > I am new to NiFi. any advise can be helpful. > PS: I feel forcing Interfaces for Controller Services is unnecessary as in > many cases Controller Services are only used by a set of Processors and > developers usually bundle them together. > -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (NIFI-1002) support for Listen WebSocket processor
[ https://issues.apache.org/jira/browse/NIFI-1002?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15668875#comment-15668875 ] ASF subversion and git services commented on NIFI-1002: --- Commit 26a5881d21d4187abd5ec8a47895bbdf7c914857 in nifi's branch refs/heads/master from [~ijokarumawak] [ https://git-wip-us.apache.org/repos/asf?p=nifi.git;h=26a5881 ] NIFI-1002: Added WebSocket support. NIFI-1002: Added WebSocket support. - Reflecting review comments - Added displayName to peroperty descriptors NIFI-1002: Added WebSocket support. This closes #1184 - Reflecting review comments: - Removed unnecessary use of NarCloseable.withComponentNarLoader. - Removed intermediate on memory queue to make it simpler and more robust. Received messages in WebSocket layer now will be transferred to downstream relationships directly. > support for Listen WebSocket processor > --- > > Key: NIFI-1002 > URL: https://issues.apache.org/jira/browse/NIFI-1002 > Project: Apache NiFi > Issue Type: Improvement > Components: Extensions >Affects Versions: 0.4.0 >Reporter: sumanth chinthagunta >Assignee: Koji Kawamura >Priority: Minor > Labels: newbie > Fix For: 1.1.0 > > > A WebSocket listen processor will be helpful for IoT data ingestion. > I am playing with embedded Vert.X for WebSocket and also ability to put > FlowFiles back to WebSocket client via Vert.X EventBus. > https://github.com/xmlking/nifi-websocket > I am new to NiFi. any advise can be helpful. > PS: I feel forcing Interfaces for Controller Services is unnecessary as in > many cases Controller Services are only used by a set of Processors and > developers usually bundle them together. > -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (NIFI-1002) support for Listen WebSocket processor
[ https://issues.apache.org/jira/browse/NIFI-1002?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15668864#comment-15668864 ] ASF GitHub Bot commented on NIFI-1002: -- Github user olegz commented on the issue: https://github.com/apache/nifi/pull/1184 @ijokarumawak at this point I am going to say Great work! I am sure in month to come there will be things ti improve as people start using it , but LGTM for now. Will merge shortly! > support for Listen WebSocket processor > --- > > Key: NIFI-1002 > URL: https://issues.apache.org/jira/browse/NIFI-1002 > Project: Apache NiFi > Issue Type: Improvement > Components: Extensions >Affects Versions: 0.4.0 >Reporter: sumanth chinthagunta >Priority: Minor > Labels: newbie > > A WebSocket listen processor will be helpful for IoT data ingestion. > I am playing with embedded Vert.X for WebSocket and also ability to put > FlowFiles back to WebSocket client via Vert.X EventBus. > https://github.com/xmlking/nifi-websocket > I am new to NiFi. any advise can be helpful. > PS: I feel forcing Interfaces for Controller Services is unnecessary as in > many cases Controller Services are only used by a set of Processors and > developers usually bundle them together. > -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (NIFI-1002) support for Listen WebSocket processor
[ https://issues.apache.org/jira/browse/NIFI-1002?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15667060#comment-15667060 ] ASF GitHub Bot commented on NIFI-1002: -- Github user olegz commented on the issue: https://github.com/apache/nifi/pull/1184 Koji, this is great and I'll be looking at it shortly with hopes of merging it some time today. > support for Listen WebSocket processor > --- > > Key: NIFI-1002 > URL: https://issues.apache.org/jira/browse/NIFI-1002 > Project: Apache NiFi > Issue Type: Improvement > Components: Extensions >Affects Versions: 0.4.0 >Reporter: sumanth chinthagunta >Priority: Minor > Labels: newbie > > A WebSocket listen processor will be helpful for IoT data ingestion. > I am playing with embedded Vert.X for WebSocket and also ability to put > FlowFiles back to WebSocket client via Vert.X EventBus. > https://github.com/xmlking/nifi-websocket > I am new to NiFi. any advise can be helpful. > PS: I feel forcing Interfaces for Controller Services is unnecessary as in > many cases Controller Services are only used by a set of Processors and > developers usually bundle them together. > -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (NIFI-1002) support for Listen WebSocket processor
[ https://issues.apache.org/jira/browse/NIFI-1002?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15666346#comment-15666346 ] ASF GitHub Bot commented on NIFI-1002: -- Github user ijokarumawak commented on the issue: https://github.com/apache/nifi/pull/1184 @olegz Thanks again for the great review! I rebased the PR and done additional refactoring based on your feedback. Please let me know if you prefer it to be squashed for further review process. > support for Listen WebSocket processor > --- > > Key: NIFI-1002 > URL: https://issues.apache.org/jira/browse/NIFI-1002 > Project: Apache NiFi > Issue Type: Improvement > Components: Extensions >Affects Versions: 0.4.0 >Reporter: sumanth chinthagunta >Priority: Minor > Labels: newbie > > A WebSocket listen processor will be helpful for IoT data ingestion. > I am playing with embedded Vert.X for WebSocket and also ability to put > FlowFiles back to WebSocket client via Vert.X EventBus. > https://github.com/xmlking/nifi-websocket > I am new to NiFi. any advise can be helpful. > PS: I feel forcing Interfaces for Controller Services is unnecessary as in > many cases Controller Services are only used by a set of Processors and > developers usually bundle them together. > -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (NIFI-1002) support for Listen WebSocket processor
[ https://issues.apache.org/jira/browse/NIFI-1002?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15666340#comment-15666340 ] ASF GitHub Bot commented on NIFI-1002: -- Github user ijokarumawak commented on a diff in the pull request: https://github.com/apache/nifi/pull/1184#discussion_r87958885 --- Diff: nifi-nar-bundles/nifi-websocket-bundle/nifi-websocket-processors/src/main/java/org/apache/nifi/processors/websocket/AbstractWebSocketGatewayProcessor.java --- @@ -0,0 +1,314 @@ +/* + * 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.websocket; + +import org.apache.commons.lang3.StringUtils; +import org.apache.nifi.annotation.behavior.TriggerSerially; +import org.apache.nifi.annotation.lifecycle.OnStopped; +import org.apache.nifi.annotation.lifecycle.OnUnscheduled; +import org.apache.nifi.components.PropertyDescriptor; +import org.apache.nifi.components.ValidationContext; +import org.apache.nifi.components.ValidationResult; +import org.apache.nifi.flowfile.FlowFile; +import org.apache.nifi.flowfile.attributes.CoreAttributes; +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 org.apache.nifi.websocket.BinaryMessageConsumer; +import org.apache.nifi.websocket.ConnectedListener; +import org.apache.nifi.websocket.TextMessageConsumer; +import org.apache.nifi.websocket.WebSocketClientService; +import org.apache.nifi.websocket.WebSocketConfigurationException; +import org.apache.nifi.websocket.WebSocketConnectedMessage; +import org.apache.nifi.websocket.WebSocketMessage; +import org.apache.nifi.websocket.WebSocketService; +import org.apache.nifi.websocket.WebSocketSessionInfo; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.Collection; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.concurrent.LinkedBlockingQueue; + +@TriggerSerially +public abstract class AbstractWebSocketGatewayProcessor extends AbstractWebSocketProcessor implements ConnectedListener, TextMessageConsumer, BinaryMessageConsumer { + +public static final PropertyDescriptor PROP_MAX_QUEUE_SIZE = new PropertyDescriptor.Builder() +.name("max-queue-size") +.displayName("Max Queue Size") +.description("The WebSocket messages are kept in an on-memory queue," + +" then transferred to relationships when this processor is triggered." + +" If the 'Run Schedule' is significantly behind the rate" + +" at which the messages are arriving to this processor then a back up can occur." + +" This property specifies the maximum number of messages this processor will hold in memory at one time." + +" CAUTION: Any incoming WebSocket message arrived while the queue being full" + +" will be discarded and a warning message will be logged.") +.required(true) +.addValidator(StandardValidators.POSITIVE_INTEGER_VALIDATOR) +.defaultValue("1") +.build(); + +private volatile LinkedBlockingQueue incomingMessageQueue; --- End diff -- Thank you for bringing this up. I had been worrying about this queue, too. To make it simpler, I removed the intermediate queue, and let incoming messages to be transferred to NiFi relationships. > support for Listen WebSocket processor > --- > > Key: NIFI-1002 > URL: https://issues.apache.org/jira/browse/NIFI-1002 > Project: Apache NiFi >
[jira] [Commented] (NIFI-1002) support for Listen WebSocket processor
[ https://issues.apache.org/jira/browse/NIFI-1002?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15666337#comment-15666337 ] ASF GitHub Bot commented on NIFI-1002: -- Github user ijokarumawak commented on a diff in the pull request: https://github.com/apache/nifi/pull/1184#discussion_r87958669 --- Diff: nifi-nar-bundles/nifi-websocket-bundle/nifi-websocket-services-jetty/src/main/java/org/apache/nifi/websocket/jetty/JettyWebSocketServer.java --- @@ -0,0 +1,258 @@ +/* + * 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.websocket.jetty; + +import org.apache.nifi.annotation.documentation.CapabilityDescription; +import org.apache.nifi.annotation.documentation.Tags; +import org.apache.nifi.annotation.lifecycle.OnDisabled; +import org.apache.nifi.annotation.lifecycle.OnEnabled; +import org.apache.nifi.annotation.lifecycle.OnShutdown; +import org.apache.nifi.components.AllowableValue; +import org.apache.nifi.components.PropertyDescriptor; +import org.apache.nifi.controller.ConfigurationContext; +import org.apache.nifi.nar.NarCloseable; +import org.apache.nifi.processor.util.StandardValidators; +import org.apache.nifi.ssl.SSLContextService; +import org.apache.nifi.websocket.WebSocketConfigurationException; +import org.apache.nifi.websocket.WebSocketMessageRouter; +import org.apache.nifi.websocket.WebSocketServerService; +import org.eclipse.jetty.server.Connector; +import org.eclipse.jetty.server.Handler; +import org.eclipse.jetty.server.HttpConfiguration; +import org.eclipse.jetty.server.HttpConnectionFactory; +import org.eclipse.jetty.server.SecureRequestCustomizer; +import org.eclipse.jetty.server.Server; +import org.eclipse.jetty.server.ServerConnector; +import org.eclipse.jetty.server.SslConnectionFactory; +import org.eclipse.jetty.server.handler.ContextHandlerCollection; +import org.eclipse.jetty.servlet.ServletContextHandler; +import org.eclipse.jetty.servlet.ServletHandler; +import org.eclipse.jetty.util.ssl.SslContextFactory; +import org.eclipse.jetty.websocket.api.Session; +import org.eclipse.jetty.websocket.api.WebSocketPolicy; +import org.eclipse.jetty.websocket.server.WebSocketServerFactory; +import org.eclipse.jetty.websocket.servlet.ServletUpgradeRequest; +import org.eclipse.jetty.websocket.servlet.ServletUpgradeResponse; +import org.eclipse.jetty.websocket.servlet.WebSocketCreator; +import org.eclipse.jetty.websocket.servlet.WebSocketServlet; +import org.eclipse.jetty.websocket.servlet.WebSocketServletFactory; + +import java.net.URI; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; + +@Tags({"WebSocket", "Jetty", "server"}) +@CapabilityDescription("Implementation of WebSocketServerService." + +" This service uses Jetty WebSocket server module to provide" + +" WebSocket session management throughout the application.") +public class JettyWebSocketServer extends AbstractJettyWebSocketService implements WebSocketServerService { + +/** + * A global map to refer a controller service instance by requested port number. + */ +private static final MapportToControllerService = new ConcurrentHashMap<>(); + +// Allowable values for client auth +public static final AllowableValue CLIENT_NONE = new AllowableValue("no", "No Authentication", +"Processor will not authenticate clients. Anyone can communicate with this Processor anonymously"); +public static final AllowableValue CLIENT_WANT = new AllowableValue("want", "Want Authentication", +"Processor will try to verify the client but if unable to verify will allow the client to communicate anonymously"); +public static final AllowableValue CLIENT_NEED = new AllowableValue("need", "Need
[jira] [Commented] (NIFI-1002) support for Listen WebSocket processor
[ https://issues.apache.org/jira/browse/NIFI-1002?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15666200#comment-15666200 ] Koji Kawamura commented on NIFI-1002: - [~bbende] It used to be unable to load classes in nar properly without this, but after rebasing my branch with the latest master, it works without this. So I removed the use of NarCloseable.withComponentNarLoader from JettyWebSocketServer. I agree that we should avoid using NarCloseable from codes like custom processors. I'll update my PR shortly. Thanks! > support for Listen WebSocket processor > --- > > Key: NIFI-1002 > URL: https://issues.apache.org/jira/browse/NIFI-1002 > Project: Apache NiFi > Issue Type: Improvement > Components: Extensions >Affects Versions: 0.4.0 >Reporter: sumanth chinthagunta >Priority: Minor > Labels: newbie > > A WebSocket listen processor will be helpful for IoT data ingestion. > I am playing with embedded Vert.X for WebSocket and also ability to put > FlowFiles back to WebSocket client via Vert.X EventBus. > https://github.com/xmlking/nifi-websocket > I am new to NiFi. any advise can be helpful. > PS: I feel forcing Interfaces for Controller Services is unnecessary as in > many cases Controller Services are only used by a set of Processors and > developers usually bundle them together. > -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (NIFI-1002) support for Listen WebSocket processor
[ https://issues.apache.org/jira/browse/NIFI-1002?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15665780#comment-15665780 ] Bryan Bende commented on NIFI-1002: --- The change that is causing a compilation problem is to NarCloseable... We used to have: {code} public static NarCloseable withComponentNarLoader(final Class componentClass) { final ClassLoader current = Thread.currentThread().getContextClassLoader(); Thread.currentThread().setContextClassLoader(componentClass.getClassLoader()); return new NarCloseable(current); } {code} Which is replaced with: {code} public static NarCloseable withComponentNarLoader(final Class componentClass, final String componentIdentifier) { final ClassLoader current = Thread.currentThread().getContextClassLoader(); final ClassLoader instanceClassLoader = ExtensionManager.getClassLoader(componentClass.getName(), componentIdentifier); Thread.currentThread().setContextClassLoader(instanceClassLoader); return new NarCloseable(current); } {code} The WebSocket code was using NarCloseable.withComponentNarLoader(WebSocketServerFactory.class) to set the context ClassLoader to the class that loaded WebSocketServerFactory, but I feel like we should try to avoid using NarCloseable outside the framework bundle right? The withComponentNarLoader method was specifically created for wrapping processors, controller services, and reporting tasks. > support for Listen WebSocket processor > --- > > Key: NIFI-1002 > URL: https://issues.apache.org/jira/browse/NIFI-1002 > Project: Apache NiFi > Issue Type: Improvement > Components: Extensions >Affects Versions: 0.4.0 >Reporter: sumanth chinthagunta >Priority: Minor > Labels: newbie > > A WebSocket listen processor will be helpful for IoT data ingestion. > I am playing with embedded Vert.X for WebSocket and also ability to put > FlowFiles back to WebSocket client via Vert.X EventBus. > https://github.com/xmlking/nifi-websocket > I am new to NiFi. any advise can be helpful. > PS: I feel forcing Interfaces for Controller Services is unnecessary as in > many cases Controller Services are only used by a set of Processors and > developers usually bundle them together. > -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (NIFI-1002) support for Listen WebSocket processor
[ https://issues.apache.org/jira/browse/NIFI-1002?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15665639#comment-15665639 ] Joseph Witt commented on NIFI-1002: --- [~bbende] [~ijokarumawak] [~ozhurakousky] i noticed olegs comment about compilation. Can you please confirm [~bbende] that no backward compatibility issues were introduced in your changes? > support for Listen WebSocket processor > --- > > Key: NIFI-1002 > URL: https://issues.apache.org/jira/browse/NIFI-1002 > Project: Apache NiFi > Issue Type: Improvement > Components: Extensions >Affects Versions: 0.4.0 >Reporter: sumanth chinthagunta >Priority: Minor > Labels: newbie > > A WebSocket listen processor will be helpful for IoT data ingestion. > I am playing with embedded Vert.X for WebSocket and also ability to put > FlowFiles back to WebSocket client via Vert.X EventBus. > https://github.com/xmlking/nifi-websocket > I am new to NiFi. any advise can be helpful. > PS: I feel forcing Interfaces for Controller Services is unnecessary as in > many cases Controller Services are only used by a set of Processors and > developers usually bundle them together. > -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (NIFI-1002) support for Listen WebSocket processor
[ https://issues.apache.org/jira/browse/NIFI-1002?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15664804#comment-15664804 ] ASF GitHub Bot commented on NIFI-1002: -- Github user olegz commented on a diff in the pull request: https://github.com/apache/nifi/pull/1184#discussion_r87873512 --- Diff: nifi-nar-bundles/nifi-websocket-bundle/nifi-websocket-services-jetty/src/main/java/org/apache/nifi/websocket/jetty/JettyWebSocketServer.java --- @@ -0,0 +1,258 @@ +/* + * 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.websocket.jetty; + +import org.apache.nifi.annotation.documentation.CapabilityDescription; +import org.apache.nifi.annotation.documentation.Tags; +import org.apache.nifi.annotation.lifecycle.OnDisabled; +import org.apache.nifi.annotation.lifecycle.OnEnabled; +import org.apache.nifi.annotation.lifecycle.OnShutdown; +import org.apache.nifi.components.AllowableValue; +import org.apache.nifi.components.PropertyDescriptor; +import org.apache.nifi.controller.ConfigurationContext; +import org.apache.nifi.nar.NarCloseable; +import org.apache.nifi.processor.util.StandardValidators; +import org.apache.nifi.ssl.SSLContextService; +import org.apache.nifi.websocket.WebSocketConfigurationException; +import org.apache.nifi.websocket.WebSocketMessageRouter; +import org.apache.nifi.websocket.WebSocketServerService; +import org.eclipse.jetty.server.Connector; +import org.eclipse.jetty.server.Handler; +import org.eclipse.jetty.server.HttpConfiguration; +import org.eclipse.jetty.server.HttpConnectionFactory; +import org.eclipse.jetty.server.SecureRequestCustomizer; +import org.eclipse.jetty.server.Server; +import org.eclipse.jetty.server.ServerConnector; +import org.eclipse.jetty.server.SslConnectionFactory; +import org.eclipse.jetty.server.handler.ContextHandlerCollection; +import org.eclipse.jetty.servlet.ServletContextHandler; +import org.eclipse.jetty.servlet.ServletHandler; +import org.eclipse.jetty.util.ssl.SslContextFactory; +import org.eclipse.jetty.websocket.api.Session; +import org.eclipse.jetty.websocket.api.WebSocketPolicy; +import org.eclipse.jetty.websocket.server.WebSocketServerFactory; +import org.eclipse.jetty.websocket.servlet.ServletUpgradeRequest; +import org.eclipse.jetty.websocket.servlet.ServletUpgradeResponse; +import org.eclipse.jetty.websocket.servlet.WebSocketCreator; +import org.eclipse.jetty.websocket.servlet.WebSocketServlet; +import org.eclipse.jetty.websocket.servlet.WebSocketServletFactory; + +import java.net.URI; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; + +@Tags({"WebSocket", "Jetty", "server"}) +@CapabilityDescription("Implementation of WebSocketServerService." + +" This service uses Jetty WebSocket server module to provide" + +" WebSocket session management throughout the application.") +public class JettyWebSocketServer extends AbstractJettyWebSocketService implements WebSocketServerService { + +/** + * A global map to refer a controller service instance by requested port number. + */ +private static final MapportToControllerService = new ConcurrentHashMap<>(); + +// Allowable values for client auth +public static final AllowableValue CLIENT_NONE = new AllowableValue("no", "No Authentication", +"Processor will not authenticate clients. Anyone can communicate with this Processor anonymously"); +public static final AllowableValue CLIENT_WANT = new AllowableValue("want", "Want Authentication", +"Processor will try to verify the client but if unable to verify will allow the client to communicate anonymously"); +public static final AllowableValue CLIENT_NEED = new AllowableValue("need", "Need
[jira] [Commented] (NIFI-1002) support for Listen WebSocket processor
[ https://issues.apache.org/jira/browse/NIFI-1002?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15653835#comment-15653835 ] ASF GitHub Bot commented on NIFI-1002: -- Github user ijokarumawak commented on the issue: https://github.com/apache/nifi/pull/1184 @olegz Thanks for taking time to review! I added a commit to address your feedback. Also, I've added `displayName` to the property descriptors those were added in this PR. > support for Listen WebSocket processor > --- > > Key: NIFI-1002 > URL: https://issues.apache.org/jira/browse/NIFI-1002 > Project: Apache NiFi > Issue Type: Improvement > Components: Extensions >Affects Versions: 0.4.0 >Reporter: sumanth chinthagunta >Priority: Minor > Labels: newbie > > A WebSocket listen processor will be helpful for IoT data ingestion. > I am playing with embedded Vert.X for WebSocket and also ability to put > FlowFiles back to WebSocket client via Vert.X EventBus. > https://github.com/xmlking/nifi-websocket > I am new to NiFi. any advise can be helpful. > PS: I feel forcing Interfaces for Controller Services is unnecessary as in > many cases Controller Services are only used by a set of Processors and > developers usually bundle them together. > -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (NIFI-1002) support for Listen WebSocket processor
[ https://issues.apache.org/jira/browse/NIFI-1002?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15653831#comment-15653831 ] ASF GitHub Bot commented on NIFI-1002: -- Github user ijokarumawak commented on a diff in the pull request: https://github.com/apache/nifi/pull/1184#discussion_r87377445 --- Diff: nifi-nar-bundles/nifi-websocket-bundle/nifi-websocket-processors/src/main/java/org/apache/nifi/processors/websocket/AbstractWebSocketProcessor.java --- @@ -0,0 +1,80 @@ +/* + * 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.websocket; + +import org.apache.nifi.components.PropertyDescriptor; +import org.apache.nifi.logging.ComponentLog; +import org.apache.nifi.processor.AbstractSessionFactoryProcessor; +import org.apache.nifi.processor.ProcessContext; +import org.apache.nifi.processor.ProcessSession; +import org.apache.nifi.processor.ProcessSessionFactory; +import org.apache.nifi.processor.ProcessorInitializationContext; +import org.apache.nifi.processor.exception.ProcessException; +import org.apache.nifi.websocket.WebSocketConfigurationException; +import org.apache.nifi.websocket.WebSocketService; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; + +public abstract class AbstractWebSocketProcessor extends AbstractSessionFactoryProcessor { + +public static final String ATTR_WS_CS_ID = "websocket.controller.service.id"; +public static final String ATTR_WS_SESSION_ID = "websocket.session.id"; +public static final String ATTR_WS_ENDPOINT_ID = "websocket.endpoint.id"; +public static final String ATTR_WS_FAILURE_DETAIL = "websocket.failure.detail"; +public static final String ATTR_WS_MESSAGE_TYPE = "websocket.message.type"; +public static final String ATTR_WS_LOCAL_ADDRESS = "websocket.local.address"; +public static final String ATTR_WS_REMOTE_ADDRESS = "websocket.remote.address"; + +static List getAbstractPropertyDescriptors(){ +final List descriptors = new ArrayList<>(); +return descriptors; +} + +protected ComponentLog logger; +protected ProcessSessionFactory processSessionFactory; --- End diff -- Added volatile keyword to these variables. > support for Listen WebSocket processor > --- > > Key: NIFI-1002 > URL: https://issues.apache.org/jira/browse/NIFI-1002 > Project: Apache NiFi > Issue Type: Improvement > Components: Extensions >Affects Versions: 0.4.0 >Reporter: sumanth chinthagunta >Priority: Minor > Labels: newbie > > A WebSocket listen processor will be helpful for IoT data ingestion. > I am playing with embedded Vert.X for WebSocket and also ability to put > FlowFiles back to WebSocket client via Vert.X EventBus. > https://github.com/xmlking/nifi-websocket > I am new to NiFi. any advise can be helpful. > PS: I feel forcing Interfaces for Controller Services is unnecessary as in > many cases Controller Services are only used by a set of Processors and > developers usually bundle them together. > -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (NIFI-1002) support for Listen WebSocket processor
[ https://issues.apache.org/jira/browse/NIFI-1002?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15651939#comment-15651939 ] ASF GitHub Bot commented on NIFI-1002: -- Github user olegz commented on a diff in the pull request: https://github.com/apache/nifi/pull/1184#discussion_r87269117 --- Diff: nifi-nar-bundles/nifi-websocket-bundle/nifi-websocket-processors/src/main/java/org/apache/nifi/processors/websocket/AbstractWebSocketProcessor.java --- @@ -0,0 +1,80 @@ +/* + * 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.websocket; + +import org.apache.nifi.components.PropertyDescriptor; +import org.apache.nifi.logging.ComponentLog; +import org.apache.nifi.processor.AbstractSessionFactoryProcessor; +import org.apache.nifi.processor.ProcessContext; +import org.apache.nifi.processor.ProcessSession; +import org.apache.nifi.processor.ProcessSessionFactory; +import org.apache.nifi.processor.ProcessorInitializationContext; +import org.apache.nifi.processor.exception.ProcessException; +import org.apache.nifi.websocket.WebSocketConfigurationException; +import org.apache.nifi.websocket.WebSocketService; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; + +public abstract class AbstractWebSocketProcessor extends AbstractSessionFactoryProcessor { + +public static final String ATTR_WS_CS_ID = "websocket.controller.service.id"; +public static final String ATTR_WS_SESSION_ID = "websocket.session.id"; +public static final String ATTR_WS_ENDPOINT_ID = "websocket.endpoint.id"; +public static final String ATTR_WS_FAILURE_DETAIL = "websocket.failure.detail"; +public static final String ATTR_WS_MESSAGE_TYPE = "websocket.message.type"; +public static final String ATTR_WS_LOCAL_ADDRESS = "websocket.local.address"; +public static final String ATTR_WS_REMOTE_ADDRESS = "websocket.remote.address"; + +static List getAbstractPropertyDescriptors(){ +final List descriptors = new ArrayList<>(); +return descriptors; +} + +protected ComponentLog logger; +protected ProcessSessionFactory processSessionFactory; --- End diff -- Since there is a potential for the above variables to be accessed by different thread, there are thread visibility concerns. Consider making them _volatile_. > support for Listen WebSocket processor > --- > > Key: NIFI-1002 > URL: https://issues.apache.org/jira/browse/NIFI-1002 > Project: Apache NiFi > Issue Type: Improvement > Components: Extensions >Affects Versions: 0.4.0 >Reporter: sumanth chinthagunta >Priority: Minor > Labels: newbie > > A WebSocket listen processor will be helpful for IoT data ingestion. > I am playing with embedded Vert.X for WebSocket and also ability to put > FlowFiles back to WebSocket client via Vert.X EventBus. > https://github.com/xmlking/nifi-websocket > I am new to NiFi. any advise can be helpful. > PS: I feel forcing Interfaces for Controller Services is unnecessary as in > many cases Controller Services are only used by a set of Processors and > developers usually bundle them together. > -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (NIFI-1002) support for Listen WebSocket processor
[ https://issues.apache.org/jira/browse/NIFI-1002?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15651932#comment-15651932 ] ASF GitHub Bot commented on NIFI-1002: -- Github user olegz commented on a diff in the pull request: https://github.com/apache/nifi/pull/1184#discussion_r87268737 --- Diff: nifi-nar-bundles/nifi-websocket-bundle/nifi-websocket-processors/src/main/java/org/apache/nifi/processors/websocket/AbstractWebSocketProcessor.java --- @@ -0,0 +1,80 @@ +/* + * 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.websocket; + +import org.apache.nifi.components.PropertyDescriptor; +import org.apache.nifi.logging.ComponentLog; +import org.apache.nifi.processor.AbstractSessionFactoryProcessor; +import org.apache.nifi.processor.ProcessContext; +import org.apache.nifi.processor.ProcessSession; +import org.apache.nifi.processor.ProcessSessionFactory; +import org.apache.nifi.processor.ProcessorInitializationContext; +import org.apache.nifi.processor.exception.ProcessException; +import org.apache.nifi.websocket.WebSocketConfigurationException; +import org.apache.nifi.websocket.WebSocketService; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; + +public abstract class AbstractWebSocketProcessor extends AbstractSessionFactoryProcessor { + +public static final String ATTR_WS_CS_ID = "websocket.controller.service.id"; +public static final String ATTR_WS_SESSION_ID = "websocket.session.id"; +public static final String ATTR_WS_ENDPOINT_ID = "websocket.endpoint.id"; +public static final String ATTR_WS_FAILURE_DETAIL = "websocket.failure.detail"; +public static final String ATTR_WS_MESSAGE_TYPE = "websocket.message.type"; +public static final String ATTR_WS_LOCAL_ADDRESS = "websocket.local.address"; +public static final String ATTR_WS_REMOTE_ADDRESS = "websocket.remote.address"; + +static List getAbstractPropertyDescriptors(){ +final List descriptors = new ArrayList<>(); +return descriptors; --- End diff -- I am not sure I understand this code 1. For each call you create a new List 2. It's always empty Could you please clarify? > support for Listen WebSocket processor > --- > > Key: NIFI-1002 > URL: https://issues.apache.org/jira/browse/NIFI-1002 > Project: Apache NiFi > Issue Type: Improvement > Components: Extensions >Affects Versions: 0.4.0 >Reporter: sumanth chinthagunta >Priority: Minor > Labels: newbie > > A WebSocket listen processor will be helpful for IoT data ingestion. > I am playing with embedded Vert.X for WebSocket and also ability to put > FlowFiles back to WebSocket client via Vert.X EventBus. > https://github.com/xmlking/nifi-websocket > I am new to NiFi. any advise can be helpful. > PS: I feel forcing Interfaces for Controller Services is unnecessary as in > many cases Controller Services are only used by a set of Processors and > developers usually bundle them together. > -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (NIFI-1002) support for Listen WebSocket processor
[ https://issues.apache.org/jira/browse/NIFI-1002?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15651917#comment-15651917 ] ASF GitHub Bot commented on NIFI-1002: -- Github user olegz commented on a diff in the pull request: https://github.com/apache/nifi/pull/1184#discussion_r87267815 --- Diff: nifi-nar-bundles/nifi-websocket-bundle/nifi-websocket-processors/src/main/java/org/apache/nifi/processors/websocket/AbstractWebSocketProcessor.java --- @@ -0,0 +1,80 @@ +/* + * 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.websocket; + +import org.apache.nifi.components.PropertyDescriptor; +import org.apache.nifi.logging.ComponentLog; +import org.apache.nifi.processor.AbstractSessionFactoryProcessor; +import org.apache.nifi.processor.ProcessContext; +import org.apache.nifi.processor.ProcessSession; +import org.apache.nifi.processor.ProcessSessionFactory; +import org.apache.nifi.processor.ProcessorInitializationContext; +import org.apache.nifi.processor.exception.ProcessException; +import org.apache.nifi.websocket.WebSocketConfigurationException; +import org.apache.nifi.websocket.WebSocketService; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; + +public abstract class AbstractWebSocketProcessor extends AbstractSessionFactoryProcessor { --- End diff -- Is there a reason why this class extends from _ AbstractSessionFactoryProcessor_ and not _AbstractProcessor_? Just trying to figure out the need for _ onTrigger()_ implementation that is identical to the one in __AbstractProcessor_. > support for Listen WebSocket processor > --- > > Key: NIFI-1002 > URL: https://issues.apache.org/jira/browse/NIFI-1002 > Project: Apache NiFi > Issue Type: Improvement > Components: Extensions >Affects Versions: 0.4.0 >Reporter: sumanth chinthagunta >Priority: Minor > Labels: newbie > > A WebSocket listen processor will be helpful for IoT data ingestion. > I am playing with embedded Vert.X for WebSocket and also ability to put > FlowFiles back to WebSocket client via Vert.X EventBus. > https://github.com/xmlking/nifi-websocket > I am new to NiFi. any advise can be helpful. > PS: I feel forcing Interfaces for Controller Services is unnecessary as in > many cases Controller Services are only used by a set of Processors and > developers usually bundle them together. > -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (NIFI-1002) support for Listen WebSocket processor
[ https://issues.apache.org/jira/browse/NIFI-1002?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15636600#comment-15636600 ] ASF GitHub Bot commented on NIFI-1002: -- GitHub user ijokarumawak opened a pull request: https://github.com/apache/nifi/pull/1184 NIFI-1002: Added WebSocket support. Thank you for submitting a contribution to Apache NiFi. In order to streamline the review of the contribution we ask you to ensure the following steps have been taken: ### For all changes: - [x] Is there a JIRA ticket associated with this PR? Is it referenced in the commit message? - [x] Does your PR title start with NIFI- where is the JIRA number you are trying to resolve? Pay particular attention to the hyphen "-" character. - [x] Has your PR been rebased against the latest commit within the target branch (typically master)? - [x] Is your initial contribution a single, squashed commit? ### For code changes: - [x] Have you ensured that the full suite of tests is executed via mvn -Pcontrib-check clean install at the root nifi folder? - [x] Have you written or updated unit tests to verify your changes? - [x] If adding new dependencies to the code, are these dependencies licensed in a way that is compatible for inclusion under [ASF 2.0](http://www.apache.org/legal/resolved.html#category-a)? - [x] If applicable, have you updated the LICENSE file, including the main LICENSE file under nifi-assembly? - [x] If applicable, have you updated the NOTICE file, including the main NOTICE file found under nifi-assembly? - [ ] If adding new Properties, have you added .displayName in addition to .name (programmatic access) for each of the new properties? ### For documentation related changes: - [x] Have you ensured that format looks appropriate for the output in which it is rendered? ### Note: Please ensure that once the PR is submitted, you check travis-ci for build issues and submit an update to your PR as soon as possible. You can merge this pull request into a Git repository by running: $ git pull https://github.com/ijokarumawak/nifi nifi-1002 Alternatively you can review and apply these changes as the patch at: https://github.com/apache/nifi/pull/1184.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #1184 commit 1c3f2baa015d53326410cb0b5c5fa1973222aa30 Author: Koji KawamuraDate: 2016-10-18T01:43:42Z NIFI-1002: Added WebSocket support. > support for Listen WebSocket processor > --- > > Key: NIFI-1002 > URL: https://issues.apache.org/jira/browse/NIFI-1002 > Project: Apache NiFi > Issue Type: Improvement > Components: Extensions >Affects Versions: 0.4.0 >Reporter: sumanth chinthagunta >Priority: Minor > Labels: newbie > > A WebSocket listen processor will be helpful for IoT data ingestion. > I am playing with embedded Vert.X for WebSocket and also ability to put > FlowFiles back to WebSocket client via Vert.X EventBus. > https://github.com/xmlking/nifi-websocket > I am new to NiFi. any advise can be helpful. > PS: I feel forcing Interfaces for Controller Services is unnecessary as in > many cases Controller Services are only used by a set of Processors and > developers usually bundle them together. > -- This message was sent by Atlassian JIRA (v6.3.4#6332)